From 25ecf5241703f1c06d8ef57d0434bde0bc0afe74 Mon Sep 17 00:00:00 2001 From: Zyie <24736175+Zyie@users.noreply.github.com> Date: Thu, 12 Sep 2024 09:55:17 +0000 Subject: [PATCH] Updates --- dist/pixi-spine-pixi.mjs | 35 + dist/pixi-spine-pixi.mjs.map | 1 + dist/spine-pixi.js | 13132 ++++++++++++++++ dist/spine-pixi.js.map | 7 + docs/BatchableSpineSlot.html | 414 + docs/DarkTintBatcher.html | 475 + docs/ISpineDebugRenderer.html | 601 + docs/Spine.html | 1845 +++ docs/SpineDebugRenderer.html | 542 + docs/fonts/OpenSans-Bold.svg | 958 ++ docs/fonts/OpenSans-Bold.ttf | Bin 0 -> 109928 bytes docs/fonts/OpenSans-Bold.woff | Bin 0 -> 63564 bytes docs/fonts/OpenSans-Bold.woff2 | Bin 0 -> 46676 bytes docs/fonts/OpenSans-BoldItalic.svg | 958 ++ docs/fonts/OpenSans-BoldItalic.ttf | Bin 0 -> 127844 bytes docs/fonts/OpenSans-BoldItalic.woff | Bin 0 -> 73624 bytes docs/fonts/OpenSans-BoldItalic.woff2 | Bin 0 -> 54528 bytes docs/fonts/OpenSans-Italic.svg | 958 ++ docs/fonts/OpenSans-Italic.ttf | Bin 0 -> 131152 bytes docs/fonts/OpenSans-Italic.woff | Bin 0 -> 76104 bytes docs/fonts/OpenSans-Italic.woff2 | Bin 0 -> 56676 bytes docs/fonts/OpenSans-Light.svg | 958 ++ docs/fonts/OpenSans-Light.ttf | Bin 0 -> 107460 bytes docs/fonts/OpenSans-Light.woff | Bin 0 -> 62844 bytes docs/fonts/OpenSans-Light.woff2 | Bin 0 -> 45900 bytes docs/fonts/OpenSans-LightItalic.svg | 958 ++ docs/fonts/OpenSans-LightItalic.ttf | Bin 0 -> 132796 bytes docs/fonts/OpenSans-LightItalic.woff | Bin 0 -> 76408 bytes docs/fonts/OpenSans-LightItalic.woff2 | Bin 0 -> 56508 bytes docs/fonts/OpenSans-Regular.svg | 958 ++ docs/fonts/OpenSans-Regular.ttf | Bin 0 -> 106252 bytes docs/fonts/OpenSans-Regular.woff | Bin 0 -> 63712 bytes docs/fonts/OpenSans-Regular.woff2 | Bin 0 -> 47016 bytes docs/fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes docs/fonts/glyphicons-halflings-regular.svg | 288 + docs/fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes docs/fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes docs/fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes docs/icons/chevron-down.svg | 1 + docs/index.html | 270 + docs/scripts/Apache-License-2.0.txt | 202 + docs/scripts/bootstrap.min.js | 7 + docs/scripts/jquery.min.js | 6 + docs/scripts/jquery.min.map | 1 + docs/scripts/lang-css.js | 160 + docs/scripts/linenumber.js | 25 + docs/scripts/main.js | 1 + docs/scripts/prettify.js | 1742 ++ docs/scripts/prettify/Apache-License-2.0.txt | 202 + docs/scripts/prettify/lang-css.js | 2 + docs/scripts/prettify/prettify.js | 28 + docs/styles/bootstrap.min.css | 6 + docs/styles/collapsible-group.css | 19 + docs/styles/jsdoc-default.css | 7 + docs/styles/main.css | 1 + docs/styles/prettify-jsdoc.css | 111 + docs/styles/prettify-tomorrow.css | 132 + docs/styles/tomorrow.min.css | 2 + examples/assets/celestial-circus-pma.atlas | 174 + examples/assets/celestial-circus-pma.png | Bin 0 -> 818183 bytes examples/assets/celestial-circus-pro.json | 3758 +++++ examples/assets/celestial-circus-pro.skel | Bin 0 -> 52572 bytes examples/assets/celestial-circus.atlas | 173 + examples/assets/celestial-circus.png | Bin 0 -> 808981 bytes examples/assets/cloud-pot-pma.atlas | 86 + examples/assets/cloud-pot-pma.png | Bin 0 -> 357857 bytes examples/assets/cloud-pot.json | 842 + examples/assets/cloud-pot.skel | Bin 0 -> 8397 bytes examples/assets/coin-pma.atlas | 19 + examples/assets/coin-pma.png | Bin 0 -> 312321 bytes examples/assets/coin-pro.skel | Bin 0 -> 2790 bytes examples/assets/mix-and-match-pma.atlas | 359 + examples/assets/mix-and-match-pma.png | Bin 0 -> 377480 bytes examples/assets/mix-and-match-pro.skel | Bin 0 -> 259912 bytes examples/assets/raptor-pma.atlas | 101 + examples/assets/raptor-pma.png | Bin 0 -> 419093 bytes examples/assets/raptor-pro.json | 9185 +++++++++++ examples/assets/raptor.atlas | 93 + examples/assets/raptor.png | Bin 0 -> 423005 bytes examples/assets/sack-pma.atlas | 11 + examples/assets/sack-pma.png | Bin 0 -> 167014 bytes examples/assets/sack-pro.json | 4940 ++++++ examples/assets/sack-pro.skel | Bin 0 -> 42777 bytes examples/assets/snowglobe-pma.atlas | 210 + examples/assets/snowglobe-pma.png | Bin 0 -> 688917 bytes examples/assets/snowglobe-pma_2.png | Bin 0 -> 803281 bytes examples/assets/snowglobe-pma_3.png | Bin 0 -> 409360 bytes examples/assets/snowglobe-pma_4.png | Bin 0 -> 245339 bytes examples/assets/snowglobe-pma_5.png | Bin 0 -> 401332 bytes examples/assets/snowglobe-pro.json | 2911 ++++ examples/assets/snowglobe-pro.skel | Bin 0 -> 43213 bytes examples/assets/spine_logo.png | Bin 0 -> 3495 bytes examples/assets/spineboy-pma.atlas | 95 + examples/assets/spineboy-pma.png | Bin 0 -> 244861 bytes examples/assets/spineboy-pro.json | 8723 ++++++++++ examples/assets/spineboy-pro.skel | Bin 0 -> 64463 bytes examples/assets/spineboy.atlas | 94 + examples/assets/spineboy.png | Bin 0 -> 245321 bytes examples/assets/stretchyman-pma.atlas | 19 + examples/assets/stretchyman-pma.png | Bin 0 -> 91986 bytes examples/assets/stretchyman-pro.skel | Bin 0 -> 24905 bytes examples/basic.html | 52 + examples/control-bones-example.html | 111 + examples/events-example.html | 82 + examples/index.css | 228 + examples/index.html | 44 + examples/manual-loading.html | 59 + examples/mix-and-match-example.html | 69 + examples/mouse-following.html | 92 + examples/physics.html | 48 + examples/physics2.html | 143 + examples/physics3.html | 48 + examples/physics4.html | 48 + examples/simple-input.html | 99 + examples/slot-objects.html | 125 + 115 files changed, 59054 insertions(+) create mode 100644 dist/pixi-spine-pixi.mjs create mode 100644 dist/pixi-spine-pixi.mjs.map create mode 100644 dist/spine-pixi.js create mode 100644 dist/spine-pixi.js.map create mode 100644 docs/BatchableSpineSlot.html create mode 100644 docs/DarkTintBatcher.html create mode 100644 docs/ISpineDebugRenderer.html create mode 100644 docs/Spine.html create mode 100644 docs/SpineDebugRenderer.html create mode 100644 docs/fonts/OpenSans-Bold.svg create mode 100644 docs/fonts/OpenSans-Bold.ttf create mode 100644 docs/fonts/OpenSans-Bold.woff create mode 100644 docs/fonts/OpenSans-Bold.woff2 create mode 100644 docs/fonts/OpenSans-BoldItalic.svg create mode 100644 docs/fonts/OpenSans-BoldItalic.ttf create mode 100644 docs/fonts/OpenSans-BoldItalic.woff create mode 100644 docs/fonts/OpenSans-BoldItalic.woff2 create mode 100644 docs/fonts/OpenSans-Italic.svg create mode 100644 docs/fonts/OpenSans-Italic.ttf create mode 100644 docs/fonts/OpenSans-Italic.woff create mode 100644 docs/fonts/OpenSans-Italic.woff2 create mode 100644 docs/fonts/OpenSans-Light.svg create mode 100644 docs/fonts/OpenSans-Light.ttf create mode 100644 docs/fonts/OpenSans-Light.woff create mode 100644 docs/fonts/OpenSans-Light.woff2 create mode 100644 docs/fonts/OpenSans-LightItalic.svg create mode 100644 docs/fonts/OpenSans-LightItalic.ttf create mode 100644 docs/fonts/OpenSans-LightItalic.woff create mode 100644 docs/fonts/OpenSans-LightItalic.woff2 create mode 100644 docs/fonts/OpenSans-Regular.svg create mode 100644 docs/fonts/OpenSans-Regular.ttf create mode 100644 docs/fonts/OpenSans-Regular.woff create mode 100644 docs/fonts/OpenSans-Regular.woff2 create mode 100644 docs/fonts/glyphicons-halflings-regular.eot create mode 100644 docs/fonts/glyphicons-halflings-regular.svg create mode 100644 docs/fonts/glyphicons-halflings-regular.ttf create mode 100644 docs/fonts/glyphicons-halflings-regular.woff create mode 100644 docs/fonts/glyphicons-halflings-regular.woff2 create mode 100644 docs/icons/chevron-down.svg create mode 100644 docs/index.html create mode 100644 docs/scripts/Apache-License-2.0.txt create mode 100644 docs/scripts/bootstrap.min.js create mode 100644 docs/scripts/jquery.min.js create mode 100644 docs/scripts/jquery.min.map create mode 100644 docs/scripts/lang-css.js create mode 100644 docs/scripts/linenumber.js create mode 100644 docs/scripts/main.js create mode 100644 docs/scripts/prettify.js create mode 100644 docs/scripts/prettify/Apache-License-2.0.txt create mode 100644 docs/scripts/prettify/lang-css.js create mode 100644 docs/scripts/prettify/prettify.js create mode 100644 docs/styles/bootstrap.min.css create mode 100644 docs/styles/collapsible-group.css create mode 100644 docs/styles/jsdoc-default.css create mode 100644 docs/styles/main.css create mode 100644 docs/styles/prettify-jsdoc.css create mode 100644 docs/styles/prettify-tomorrow.css create mode 100644 docs/styles/tomorrow.min.css create mode 100644 examples/assets/celestial-circus-pma.atlas create mode 100644 examples/assets/celestial-circus-pma.png create mode 100644 examples/assets/celestial-circus-pro.json create mode 100644 examples/assets/celestial-circus-pro.skel create mode 100644 examples/assets/celestial-circus.atlas create mode 100644 examples/assets/celestial-circus.png create mode 100644 examples/assets/cloud-pot-pma.atlas create mode 100644 examples/assets/cloud-pot-pma.png create mode 100644 examples/assets/cloud-pot.json create mode 100644 examples/assets/cloud-pot.skel create mode 100644 examples/assets/coin-pma.atlas create mode 100644 examples/assets/coin-pma.png create mode 100644 examples/assets/coin-pro.skel create mode 100644 examples/assets/mix-and-match-pma.atlas create mode 100644 examples/assets/mix-and-match-pma.png create mode 100644 examples/assets/mix-and-match-pro.skel create mode 100644 examples/assets/raptor-pma.atlas create mode 100644 examples/assets/raptor-pma.png create mode 100644 examples/assets/raptor-pro.json create mode 100644 examples/assets/raptor.atlas create mode 100644 examples/assets/raptor.png create mode 100644 examples/assets/sack-pma.atlas create mode 100644 examples/assets/sack-pma.png create mode 100644 examples/assets/sack-pro.json create mode 100644 examples/assets/sack-pro.skel create mode 100644 examples/assets/snowglobe-pma.atlas create mode 100644 examples/assets/snowglobe-pma.png create mode 100644 examples/assets/snowglobe-pma_2.png create mode 100644 examples/assets/snowglobe-pma_3.png create mode 100644 examples/assets/snowglobe-pma_4.png create mode 100644 examples/assets/snowglobe-pma_5.png create mode 100644 examples/assets/snowglobe-pro.json create mode 100644 examples/assets/snowglobe-pro.skel create mode 100644 examples/assets/spine_logo.png create mode 100644 examples/assets/spineboy-pma.atlas create mode 100644 examples/assets/spineboy-pma.png create mode 100644 examples/assets/spineboy-pro.json create mode 100644 examples/assets/spineboy-pro.skel create mode 100644 examples/assets/spineboy.atlas create mode 100644 examples/assets/spineboy.png create mode 100644 examples/assets/stretchyman-pma.atlas create mode 100644 examples/assets/stretchyman-pma.png create mode 100644 examples/assets/stretchyman-pro.skel create mode 100644 examples/basic.html create mode 100644 examples/control-bones-example.html create mode 100644 examples/events-example.html create mode 100644 examples/index.css create mode 100644 examples/index.html create mode 100644 examples/manual-loading.html create mode 100644 examples/mix-and-match-example.html create mode 100644 examples/mouse-following.html create mode 100644 examples/physics.html create mode 100644 examples/physics2.html create mode 100644 examples/physics3.html create mode 100644 examples/physics4.html create mode 100644 examples/simple-input.html create mode 100644 examples/slot-objects.html diff --git a/dist/pixi-spine-pixi.mjs b/dist/pixi-spine-pixi.mjs new file mode 100644 index 0000000..90a6221 --- /dev/null +++ b/dist/pixi-spine-pixi.mjs @@ -0,0 +1,35 @@ +/*! + * @pixi/spine-pixi - v2.0.4 + * Compiled Thu, 12 Sep 2024 09:55:11 UTC + * + * @pixi/spine-pixi is licensed under the MIT License. + * http://www.opensource.org/licenses/mit-license + * + * Copyright 2024, PixiJS Team, All Rights Reserved + */import{Texture as te,ExtensionType as O,LoaderParserPriority as ne,checkExtension as W,DOMAdapter as re,path as V,TextureSource as se,extensions as Y,Geometry as xe,Buffer as oe,BufferUsage as I,Shader as ve,compileHighShaderGlProgram as ye,colorBitGl as ke,generateTextureBatchBitGl as Se,roundPixelsBitGl as Te,compileHighShaderGpuProgram as De,colorBit as Be,generateTextureBatchBit as Pe,roundPixelsBit as Ae,getBatchSamplersUniformGroup as Me,Batcher as Oe,collectAllRenderables as _e,ViewContainer as Le,Ticker as N,DEG_TO_RAD as je,Container as z,Cache as Q,Assets as ie,Graphics as B,Text as Fe}from"pixi.js";import{Texture as Ue,TextureFilter as T,TextureWrap as J,BlendMode as G,TextureAtlas as Re,SkeletonClipping as ae,RegionAttachment as L,MeshAttachment as X,Vector2 as We,Color as F,Skeleton as le,SkeletonData as de,AnimationState as Xe,AnimationStateData as Ee,Physics as $e,ClippingAttachment as ce,SkeletonBounds as he,AtlasAttachmentLoader as Ve,SkeletonBinary as Ye,SkeletonJson as Ie,PathAttachment as Ne}from"@esotericsoftware/spine-core";export*from"@esotericsoftware/spine-core";if(typeof window!="undefined"&&window.PIXI){const o=window.require;window.require=e=>{if(o)return o(e);if(e.startsWith("@pixi/")||e.startsWith("pixi.js"))return window.PIXI}}var ze=Object.defineProperty,Ge=(o,e,t)=>e in o?ze(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,ue=(o,e,t)=>(Ge(o,typeof e!="symbol"?e+"":e,t),t);const pe=class M extends Ue{constructor(e){super(e.resource),ue(this,"texture"),this.texture=te.from(e)}static from(e){return M.textureMap.has(e)?M.textureMap.get(e):new M(e)}setFilters(e,t){const r=this.texture.source.style;r.minFilter=M.toPixiTextureFilter(e),r.magFilter=M.toPixiTextureFilter(t),this.texture.source.autoGenerateMipmaps=M.toPixiMipMap(e),this.texture.source.updateMipmaps()}setWraps(e,t){const r=this.texture.source.style;r.addressModeU=M.toPixiTextureWrap(e),r.addressModeV=M.toPixiTextureWrap(t)}dispose(){this.texture.destroy()}static toPixiMipMap(e){switch(e){case T.Nearest:case T.Linear:return!1;case T.MipMapNearestLinear:case T.MipMapNearestNearest:case T.MipMapLinearLinear:case T.MipMapLinearNearest:return!0;default:throw new Error(`Unknown texture filter: ${String(e)}`)}}static toPixiTextureFilter(e){switch(e){case T.Nearest:case T.MipMapNearestLinear:case T.MipMapNearestNearest:return"nearest";case T.Linear:case T.MipMapLinearLinear:case T.MipMapLinearNearest:return"linear";default:throw new Error(`Unknown texture filter: ${String(e)}`)}}static toPixiTextureWrap(e){switch(e){case J.ClampToEdge:return"clamp-to-edge";case J.MirroredRepeat:return"mirror-repeat";case J.Repeat:return"repeat";default:throw new Error(`Unknown texture wrap: ${String(e)}`)}}static toPixiBlending(e){switch(e){case G.Normal:return"normal";case G.Additive:return"add";case G.Multiply:return"multiply";case G.Screen:return"screen";default:throw new Error(`Unknown blendMode: ${String(e)}`)}}};ue(pe,"textureMap",new Map);let K=pe;var He=Object.defineProperty,qe=Object.defineProperties,Qe=Object.getOwnPropertyDescriptors,ge=Object.getOwnPropertySymbols,Je=Object.prototype.hasOwnProperty,Ke=Object.prototype.propertyIsEnumerable,be=(o,e,t)=>e in o?He(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,Ze=(o,e)=>{for(var t in e||(e={}))Je.call(e,t)&&be(o,t,e[t]);if(ge)for(var t of ge(e))Ke.call(e,t)&&be(o,t,e[t]);return o},et=(o,e)=>qe(o,Qe(e));const tt={extension:O.Asset,loader:{extension:{type:O.LoadParser,priority:ne.Normal,name:"spineTextureAtlasLoader"},test(o){return W(o,".atlas")},async load(o){return await(await re.get().fetch(o)).text()},testParse(o,e){const t=W(e.src,".atlas"),r=typeof o=="string";return Promise.resolve(t&&r)},unload(o){o.dispose()},async parse(o,e,t){const r=e.data||{};let n=V.dirname(e.src);n&&n.lastIndexOf("/")!==n.length-1&&(n+="/");const s=new Re(o);if(r.images instanceof se||typeof r.images=="string"){const i=r.images;r.images={},r.images[s.pages[0].name]=i}const a=[];for(const i of s.pages){const c=i.name,d=r!=null&&r.images?r.images[c]:void 0;if(d instanceof se)i.setTexture(K.from(d));else{const h={src:d!=null?d:V.normalize([...n.split(V.sep),c].join(V.sep)),data:et(Ze({},r.imageMetadata),{alphaMode:i.pma?"premultiplied-alpha":"premultiply-alpha-on-upload"})},l=t.load(h).then(p=>{i.setTexture(K.from(p.source))});a.push(l)}}return await Promise.all(a),s}}};Y.add(tt);function nt(o){return Object.prototype.hasOwnProperty.call(o,"bones")}function rt(o){return o instanceof Uint8Array}const st={extension:O.Asset,loader:{extension:{type:O.LoadParser,priority:ne.Normal,name:"spineSkeletonLoader"},test(o){return W(o,".skel")},async load(o){const e=await re.get().fetch(o);return new Uint8Array(await e.arrayBuffer())},testParse(o,e){const t=W(e.src,".json")&&nt(o),r=W(e.src,".skel")&&rt(o);return Promise.resolve(t||r)}}};Y.add(st);const ot=new Float32Array(1),it=new Uint32Array(1);class at extends xe{constructor(){const e=new oe({data:ot,label:"attribute-batch-buffer",usage:I.VERTEX|I.COPY_DST,shrinkToFit:!1}),t=new oe({data:it,label:"index-batch-buffer",usage:I.INDEX|I.COPY_DST,shrinkToFit:!1}),r=7*4;super({attributes:{aPosition:{buffer:e,format:"float32x2",stride:r,offset:0},aUV:{buffer:e,format:"float32x2",stride:r,offset:2*4},aColor:{buffer:e,format:"unorm8x4",stride:r,offset:4*4},aDarkColor:{buffer:e,format:"unorm8x4",stride:r,offset:5*4},aTextureIdAndRound:{buffer:e,format:"uint16x2",stride:r,offset:6*4}},indexBuffer:t})}}const lt={name:"color-bit",vertex:{header:` + @in aDarkColor: vec4; + @out vDarkColor: vec4; + `,main:` + vDarkColor = aDarkColor; + `},fragment:{header:` + @in vDarkColor: vec4; + `,end:` + + let alpha = outColor.a * vColor.a; + let rgb = ((outColor.a - 1.0) * vDarkColor.a + 1.0 - outColor.rgb) * vDarkColor.rgb + outColor.rgb * vColor.rgb; + + finalColor = vec4(rgb, alpha); + + `}},dt={name:"color-bit",vertex:{header:` + in vec4 aDarkColor; + out vec4 vDarkColor; + `,main:` + vDarkColor = aDarkColor; + `},fragment:{header:` + in vec4 vDarkColor; + `,end:` + + finalColor.a = outColor.a * vColor.a; + finalColor.rgb = ((outColor.a - 1.0) * vDarkColor.a + 1.0 - outColor.rgb) * vDarkColor.rgb + outColor.rgb * vColor.rgb; + `}};class ct extends ve{constructor(e){const t=ye({name:"dark-tint-batch",bits:[ke,dt,Se(e),Te]}),r=De({name:"dark-tint-batch",bits:[Be,lt,Pe(e),Ae]});super({glProgram:t,gpuProgram:r,resources:{batchSamplers:Me(e)}})}}var ht=Object.defineProperty,ut=(o,e,t)=>e in o?ht(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,E=(o,e,t)=>(ut(o,typeof e!="symbol"?e+"":e,t),t);let me=null;const fe=class we extends Oe{constructor(){super(...arguments),E(this,"geometry",new at),E(this,"shader",me||(me=new ct(this.maxTextures))),E(this,"name",we.extension.name),E(this,"vertexSize",7)}packAttributes(e,t,r,n,s){const a=s<<16|e.roundPixels&65535,i=e.transform,c=i.a,d=i.b,h=i.c,l=i.d,p=i.tx,f=i.ty,{positions:g,uvs:u}=e,b=e.color,m=e.darkColor,w=e.attributeOffset,x=w+e.attributeSize;for(let k=w;ke in o?gt(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,v=(o,e,t)=>(bt(o,typeof e!="symbol"?e+"":e,t),t);class mt{constructor(){v(this,"indexOffset",0),v(this,"attributeOffset",0),v(this,"indexSize"),v(this,"attributeSize"),v(this,"batcherName","darkTint"),v(this,"packAsQuad",!1),v(this,"renderable"),v(this,"positions"),v(this,"indices"),v(this,"uvs"),v(this,"roundPixels"),v(this,"data"),v(this,"blendMode"),v(this,"darkTint"),v(this,"texture"),v(this,"transform"),v(this,"_textureId"),v(this,"_attributeStart"),v(this,"_indexStart"),v(this,"_batcher"),v(this,"_batch")}get color(){const e=this.data.color,t=this.renderable.groupColor,r=this.renderable.groupAlpha;let n;const s=e.a*r*255;if(t!==16777215){const a=t>>16&255,i=t>>8&255,c=t&255,d=e.r*c,h=e.g*i,l=e.b*a;n=s<<24|l<<16|h<<8|d}else n=s<<24|e.b*255<<16|e.g*255<<8|e.r*255;return n}get darkColor(){const e=this.data.darkColor;return e.a<<24|e.b*255<<16|e.g*255<<8|e.r*255}get groupTransform(){return this.renderable.groupTransform}setData(e,t,r,n,s){if(this.renderable=e,this.transform=e.groupTransform,this.data=t,t.clipped){const a=t.clippedData;this.indexSize=a.indicesCount,this.attributeSize=a.vertexCount,this.positions=a.vertices,this.indices=a.indices,this.uvs=a.uvs}else this.indexSize=t.indices.length,this.attributeSize=t.vertices.length/2,this.positions=t.vertices,this.indices=t.indices,this.uvs=t.uvs;this.texture=r,this.roundPixels=s,this.blendMode=n,this.batcherName=t.darkTint?"darkTint":"default"}}var ft=Object.defineProperty,wt=(o,e,t)=>e in o?ft(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,Z=(o,e,t)=>(wt(o,typeof e!="symbol"?e+"":e,t),t);const Ct=new ae,xt={0:"normal",1:"add",2:"multiply",3:"screen"};class ee{constructor(e){Z(this,"renderer"),Z(this,"gpuSpineData",{}),this.renderer=e}validateRenderable(e){return e._applyState(),e.spineAttachmentsDirty}addRenderable(e,t){var r,n,s,a,i;const c=(r=this.gpuSpineData)[n=e.uid]||(r[n]={slotBatches:{}}),d=this.renderer.renderPipes.batch,h=e.skeleton.drawOrder,l=this.renderer._roundPixels|e._roundPixels;e._applyState();for(let p=0,f=h.length;pe in o?vt(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,y=(o,e,t)=>(yt(o,typeof e!="symbol"?e+"":e,t),t);const H=new We,kt=new F,St=new F;le.yDown=!0;const U=new ae;class q extends Le{constructor(e){var t;e instanceof de&&(e={skeletonData:e}),super(),y(this,"batched",!0),y(this,"buildId",0),y(this,"renderPipeId","spine"),y(this,"_didSpineUpdate",!1),y(this,"beforeUpdateWorldTransforms",()=>{}),y(this,"afterUpdateWorldTransforms",()=>{}),y(this,"skeleton"),y(this,"state"),y(this,"skeletonBounds"),y(this,"_debug"),y(this,"_slotsObject",Object.create(null)),y(this,"spineAttachmentsDirty"),y(this,"_lastAttachments"),y(this,"_stateChanged"),y(this,"attachmentCacheData",[]),y(this,"autoUpdateWarned",!1),y(this,"_autoUpdate",!0);const r=e instanceof de?e:e.skeletonData;this.skeleton=new le(r),this.state=new Xe(new Ee(r)),this.autoUpdate=(t=e==null?void 0:e.autoUpdate)!=null?t:!0;const n=this.skeleton.slots;for(let s=0;se in o?Tt(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,C=(o,e,t)=>(Dt(o,typeof e!="symbol"?e+"":e,t),t);class Bt{constructor(){C(this,"registeredSpines",new Map),C(this,"drawMeshHull",!0),C(this,"drawMeshTriangles",!0),C(this,"drawBones",!0),C(this,"drawPaths",!0),C(this,"drawBoundingBoxes",!0),C(this,"drawClipping",!0),C(this,"drawRegionAttachments",!0),C(this,"drawEvents",!0),C(this,"lineWidth",1),C(this,"regionAttachmentsColor",30975),C(this,"meshHullColor",30975),C(this,"meshTrianglesColor",16763904),C(this,"clippingPolygonColor",16711935),C(this,"boundingBoxesRectColor",65280),C(this,"boundingBoxesPolygonColor",65280),C(this,"boundingBoxesCircleColor",65280),C(this,"pathsCurveColor",16711680),C(this,"pathsLineColor",16711935),C(this,"skeletonXYColor",16711680),C(this,"bonesColor",61132),C(this,"eventFontSize",24),C(this,"eventFontColor",0)}registerSpine(e){if(this.registeredSpines.has(e)){console.warn("SpineDebugRenderer.registerSpine() - this spine is already registered!",e);return}const t={parentDebugContainer:new z,bones:new z,skeletonXY:new B,regionAttachmentsShape:new B,meshTrianglesLine:new B,meshHullLine:new B,clippingPolygon:new B,boundingBoxesRect:new B,boundingBoxesCircle:new B,boundingBoxesPolygon:new B,pathsCurve:new B,pathsLine:new B,eventText:new z,eventCallback:{event:(r,n)=>{if(this.drawEvents){const s=Math.abs(e.scale.x||e.scale.y||1),a=new Fe({text:n.data.name,style:{fontSize:this.eventFontSize/s,fill:this.eventFontColor,fontFamily:"monospace"}});a.scale.x=Math.sign(e.scale.x),a.anchor.set(.5),t.eventText.addChild(a),setTimeout(()=>{a.destroyed||a.destroy()},250)}}}};t.parentDebugContainer.addChild(t.bones),t.parentDebugContainer.addChild(t.skeletonXY),t.parentDebugContainer.addChild(t.regionAttachmentsShape),t.parentDebugContainer.addChild(t.meshTrianglesLine),t.parentDebugContainer.addChild(t.meshHullLine),t.parentDebugContainer.addChild(t.clippingPolygon),t.parentDebugContainer.addChild(t.boundingBoxesRect),t.parentDebugContainer.addChild(t.boundingBoxesCircle),t.parentDebugContainer.addChild(t.boundingBoxesPolygon),t.parentDebugContainer.addChild(t.pathsCurve),t.parentDebugContainer.addChild(t.pathsLine),t.parentDebugContainer.addChild(t.eventText),t.parentDebugContainer.zIndex=9999999,t.parentDebugContainer.accessibleChildren=!1,t.parentDebugContainer.eventMode="none",t.parentDebugContainer.interactiveChildren=!1,e.addChild(t.parentDebugContainer),e.state.addListener(t.eventCallback),this.registeredSpines.set(e,t)}renderDebug(e){this.registeredSpines.has(e)||this.registerSpine(e);const t=this.registeredSpines.get(e);if(!t)return;e.addChild(t.parentDebugContainer),t.skeletonXY.clear(),t.regionAttachmentsShape.clear(),t.meshTrianglesLine.clear(),t.meshHullLine.clear(),t.clippingPolygon.clear(),t.boundingBoxesRect.clear(),t.boundingBoxesCircle.clear(),t.boundingBoxesPolygon.clear(),t.pathsCurve.clear(),t.pathsLine.clear();for(let s=t.bones.children.length;s>0;s--)t.bones.children[s-1].destroy({children:!0,texture:!0,textureSource:!0});const r=Math.abs(e.scale.x||e.scale.y||1),n=this.lineWidth/r;if(this.drawBones&&this.drawBonesFunc(e,t,n,r),this.drawPaths&&this.drawPathsFunc(e,t,n),this.drawBoundingBoxes&&this.drawBoundingBoxesFunc(e,t,n),this.drawClipping&&this.drawClippingFunc(e,t,n),(this.drawMeshHull||this.drawMeshTriangles)&&this.drawMeshHullAndMeshTriangles(e,t,n),this.drawRegionAttachments&&this.drawRegionAttachmentsFunc(e,t,n),this.drawEvents)for(const s of t.eventText.children)s.alpha-=.05,s.y-=2}drawBonesFunc(e,t,r,n){const s=e.skeleton,a=s.x,i=s.y,c=s.bones;t.skeletonXY.strokeStyle={width:r,color:this.skeletonXYColor};for(let h=0,l=c.length;hb&&ub&&u>m?A=-$:gm?A=$:u===m&&gb?A=-90*R:g===b&&um&&(A=0),_.rotation=A,_.circle(0,S,j*1.2).fill({color:0,alpha:.6}).stroke({width:r,color:this.skeletonXYColor})}const d=r*3;t.skeletonXY.context.moveTo(a-d,i-d).lineTo(a+d,i+d).moveTo(a+d,i-d).lineTo(a-d,i+d).stroke()}drawRegionAttachmentsFunc(e,t,r){const n=e.skeleton.slots;for(let s=0,a=n.length;s0){p=(p>>1)*2;let f=h[p-2],g=h[p-1];for(let u=0,b=p;u{if(d<3)throw new Error("Polygon must contain at least 3 vertices");const h=[],l=r*2;for(let p=0,f=i.length;p\n {\n if (prevRequire) return prevRequire(x);\n else if (x.startsWith('@pixi/') || x.startsWith('pixi.js')) return window.PIXI;\n };\n}\n\nexport { };\n","/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport { Texture as PixiTexture } from 'pixi.js';\nimport { BlendMode, Texture, TextureFilter, TextureWrap } from '@esotericsoftware/spine-core';\n\nimport type { BLEND_MODES, SCALE_MODE, TextureSource, WRAP_MODE } from 'pixi.js';\n\nexport class SpineTexture extends Texture\n{\n private static readonly textureMap: Map = new Map();\n\n public static from(texture: TextureSource): SpineTexture\n {\n if (SpineTexture.textureMap.has(texture))\n {\n return SpineTexture.textureMap.get(texture) as SpineTexture;\n }\n\n return new SpineTexture(texture);\n }\n\n public readonly texture: PixiTexture;\n\n private constructor(image: TextureSource)\n {\n // Todo: maybe add error handling if you feed a video texture to spine?\n super(image.resource);\n this.texture = PixiTexture.from(image);\n }\n\n public setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void\n {\n const style = this.texture.source.style;\n\n style.minFilter = SpineTexture.toPixiTextureFilter(minFilter);\n style.magFilter = SpineTexture.toPixiTextureFilter(magFilter);\n this.texture.source.autoGenerateMipmaps = SpineTexture.toPixiMipMap(minFilter);\n this.texture.source.updateMipmaps();\n }\n\n public setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void\n {\n const style = this.texture.source.style;\n\n style.addressModeU = SpineTexture.toPixiTextureWrap(uWrap);\n style.addressModeV = SpineTexture.toPixiTextureWrap(vWrap);\n }\n\n public dispose(): void\n {\n // I am not entirely sure about this...\n this.texture.destroy();\n }\n\n private static toPixiMipMap(filter: TextureFilter): boolean\n {\n switch (filter)\n {\n case TextureFilter.Nearest:\n case TextureFilter.Linear:\n return false;\n\n case TextureFilter.MipMapNearestLinear:\n case TextureFilter.MipMapNearestNearest:\n case TextureFilter.MipMapLinearLinear: // TextureFilter.MipMapLinearLinear == TextureFilter.MipMap\n case TextureFilter.MipMapLinearNearest:\n return true;\n\n default:\n throw new Error(`Unknown texture filter: ${String(filter)}`);\n }\n }\n\n private static toPixiTextureFilter(filter: TextureFilter): SCALE_MODE\n {\n switch (filter)\n {\n case TextureFilter.Nearest:\n case TextureFilter.MipMapNearestLinear:\n case TextureFilter.MipMapNearestNearest:\n return 'nearest';\n\n case TextureFilter.Linear:\n case TextureFilter.MipMapLinearLinear: // TextureFilter.MipMapLinearLinear == TextureFilter.MipMap\n case TextureFilter.MipMapLinearNearest:\n return 'linear';\n\n default:\n throw new Error(`Unknown texture filter: ${String(filter)}`);\n }\n }\n\n private static toPixiTextureWrap(wrap: TextureWrap): WRAP_MODE\n {\n switch (wrap)\n {\n case TextureWrap.ClampToEdge:\n return 'clamp-to-edge';\n\n case TextureWrap.MirroredRepeat:\n return 'mirror-repeat';\n\n case TextureWrap.Repeat:\n return 'repeat';\n\n default:\n throw new Error(`Unknown texture wrap: ${String(wrap)}`);\n }\n }\n\n public static toPixiBlending(blend: BlendMode): BLEND_MODES\n {\n switch (blend)\n {\n case BlendMode.Normal:\n return 'normal';\n\n case BlendMode.Additive:\n return 'add';\n\n case BlendMode.Multiply:\n return 'multiply';\n\n case BlendMode.Screen:\n return 'screen';\n\n default:\n throw new Error(`Unknown blendMode: ${String(blend)}`);\n }\n }\n}\n","/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport {\n checkExtension,\n DOMAdapter,\n extensions,\n ExtensionType,\n LoaderParserPriority,\n path,\n TextureSource\n} from 'pixi.js';\nimport { SpineTexture } from '../SpineTexture';\nimport { TextureAtlas } from '@esotericsoftware/spine-core';\n\nimport type { AssetExtension, Loader, ResolvedAsset, Texture } from 'pixi.js';\n\ntype RawAtlas = string;\n\nconst spineTextureAtlasLoader: AssetExtension = {\n extension: ExtensionType.Asset,\n\n loader: {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.Normal,\n name: 'spineTextureAtlasLoader',\n },\n\n test(url: string): boolean\n {\n return checkExtension(url, '.atlas');\n },\n\n async load(url: string): Promise\n {\n const response = await DOMAdapter.get().fetch(url);\n\n const txt = await response.text();\n\n return txt;\n },\n\n testParse(asset: unknown, options: ResolvedAsset): Promise\n {\n const isExtensionRight = checkExtension(options.src as string, '.atlas');\n const isString = typeof asset === 'string';\n\n return Promise.resolve(isExtensionRight && isString);\n },\n\n unload(atlas: TextureAtlas)\n {\n atlas.dispose();\n },\n\n async parse(asset: RawAtlas, options: ResolvedAsset, loader: Loader): Promise\n {\n const metadata: ISpineAtlasMetadata = options.data || {};\n let basePath = path.dirname(options.src as string);\n\n if (basePath && basePath.lastIndexOf('/') !== basePath.length - 1)\n {\n basePath += '/';\n }\n\n // Retval is going to be a texture atlas. However we need to wait for it's callback to resolve this promise.\n const retval = new TextureAtlas(asset);\n\n // If the user gave me only one texture, that one is assumed to be the \"first\" texture in the atlas\n if (metadata.images instanceof TextureSource || typeof metadata.images === 'string')\n {\n const pixiTexture = metadata.images;\n\n metadata.images = {} as Record;\n metadata.images[retval.pages[0].name] = pixiTexture;\n }\n\n // we will wait for all promises for the textures at the same time at the end.\n const textureLoadingPromises:Promise[] = [];\n\n // fill the pages\n for (const page of retval.pages)\n {\n const pageName = page.name;\n const providedPage = metadata?.images ? metadata.images[pageName] : undefined;\n\n if (providedPage instanceof TextureSource)\n {\n page.setTexture(SpineTexture.from(providedPage));\n }\n else\n {\n // eslint-disable-next-line max-len\n const url: string = providedPage ?? path.normalize([...basePath.split(path.sep), pageName].join(path.sep));\n\n const assetsToLoadIn = {\n src: url,\n data: {\n ...metadata.imageMetadata,\n alphaMode: page.pma ? 'premultiplied-alpha' : 'premultiply-alpha-on-upload'\n }\n };\n\n const pixiPromise = loader.load(assetsToLoadIn).then((texture) =>\n {\n page.setTexture(SpineTexture.from(texture.source));\n });\n\n textureLoadingPromises.push(pixiPromise);\n }\n }\n\n await Promise.all(textureLoadingPromises);\n\n return retval;\n },\n },\n} as AssetExtension;\n\nextensions.add(spineTextureAtlasLoader);\n\nexport interface ISpineAtlasMetadata\n{\n // If you are downloading an .atlas file, this metadata will go to the Texture loader\n imageMetadata?: any;\n // If you already have atlas pages loaded as pixi textures\n // and want to use that to create the atlas, you can pass them here\n images?: TextureSource | string | Record;\n}\n","/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport {\n type AssetExtension,\n checkExtension,\n DOMAdapter,\n extensions,\n ExtensionType,\n LoaderParserPriority,\n ResolvedAsset\n} from 'pixi.js';\n\ntype SkeletonJsonAsset = any;\ntype SkeletonBinaryAsset = Uint8Array;\n\nfunction isJson(resource: any): resource is SkeletonJsonAsset\n{\n return Object.prototype.hasOwnProperty.call(resource, 'bones');\n}\n\nfunction isBuffer(resource: any): resource is SkeletonBinaryAsset\n{\n return resource instanceof Uint8Array;\n}\n\nconst spineLoaderExtension: AssetExtension = {\n extension: ExtensionType.Asset,\n\n loader: {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.Normal,\n name: 'spineSkeletonLoader',\n },\n\n test(url)\n {\n return checkExtension(url, '.skel');\n },\n\n async load(url: string): Promise\n {\n const response = await DOMAdapter.get().fetch(url);\n\n const buffer = new Uint8Array(await response.arrayBuffer());\n\n return buffer;\n },\n testParse(asset: unknown, options: ResolvedAsset): Promise\n {\n const isJsonSpineModel = checkExtension(options.src, '.json') && isJson(asset);\n const isBinarySpineModel = checkExtension(options.src, '.skel') && isBuffer(asset);\n\n return Promise.resolve(isJsonSpineModel || isBinarySpineModel);\n },\n },\n} as AssetExtension;\n\nextensions.add(spineLoaderExtension);\n","import { Buffer, BufferUsage, Geometry } from 'pixi.js';\n\nconst placeHolderBufferData = new Float32Array(1);\nconst placeHolderIndexData = new Uint32Array(1);\n\nexport class DarkTintBatchGeometry extends Geometry\n{\n constructor()\n {\n const vertexSize = 7;\n\n const attributeBuffer = new Buffer({\n data: placeHolderBufferData,\n label: 'attribute-batch-buffer',\n usage: BufferUsage.VERTEX | BufferUsage.COPY_DST,\n shrinkToFit: false,\n });\n\n const indexBuffer = new Buffer({\n data: placeHolderIndexData,\n label: 'index-batch-buffer',\n usage: BufferUsage.INDEX | BufferUsage.COPY_DST, // | BufferUsage.STATIC,\n shrinkToFit: false,\n });\n\n const stride = vertexSize * 4;\n\n super({\n attributes: {\n aPosition: {\n buffer: attributeBuffer,\n format: 'float32x2',\n stride,\n offset: 0,\n },\n aUV: {\n buffer: attributeBuffer,\n format: 'float32x2',\n stride,\n offset: 2 * 4,\n },\n aColor: {\n buffer: attributeBuffer,\n format: 'unorm8x4',\n stride,\n offset: 4 * 4,\n },\n aDarkColor: {\n buffer: attributeBuffer,\n format: 'unorm8x4',\n stride,\n offset: 5 * 4,\n },\n aTextureIdAndRound: {\n buffer: attributeBuffer,\n format: 'uint16x2',\n stride,\n offset: 6 * 4,\n },\n },\n indexBuffer\n });\n }\n}\n\n","/* eslint-disable max-len */\nexport const darkTintBit = {\n name: 'color-bit',\n vertex: {\n header: /* wgsl */`\n @in aDarkColor: vec4;\n @out vDarkColor: vec4;\n `,\n main: /* wgsl */`\n vDarkColor = aDarkColor;\n `\n },\n fragment: {\n header: /* wgsl */`\n @in vDarkColor: vec4;\n `,\n end: /* wgsl */`\n \n let alpha = outColor.a * vColor.a;\n let rgb = ((outColor.a - 1.0) * vDarkColor.a + 1.0 - outColor.rgb) * vDarkColor.rgb + outColor.rgb * vColor.rgb;\n\n finalColor = vec4(rgb, alpha);\n\n `\n }\n};\n\nexport const darkTintBitGl = {\n name: 'color-bit',\n vertex: {\n header: /* glsl */`\n in vec4 aDarkColor;\n out vec4 vDarkColor;\n `,\n main: /* glsl */`\n vDarkColor = aDarkColor;\n `\n },\n fragment: {\n header: /* glsl */`\n in vec4 vDarkColor;\n `,\n end: /* glsl */`\n \n finalColor.a = outColor.a * vColor.a;\n finalColor.rgb = ((outColor.a - 1.0) * vDarkColor.a + 1.0 - outColor.rgb) * vDarkColor.rgb + outColor.rgb * vColor.rgb;\n `\n }\n};\n","import {\n colorBit,\n colorBitGl,\n compileHighShaderGlProgram,\n compileHighShaderGpuProgram,\n generateTextureBatchBit,\n generateTextureBatchBitGl,\n getBatchSamplersUniformGroup,\n roundPixelsBit,\n roundPixelsBitGl,\n Shader\n} from 'pixi.js';\nimport { darkTintBit, darkTintBitGl } from './darkTintBit';\n\nexport class DarkTintShader extends Shader\n{\n constructor(maxTextures: number)\n {\n const glProgram = compileHighShaderGlProgram({\n name: 'dark-tint-batch',\n bits: [\n colorBitGl,\n darkTintBitGl,\n generateTextureBatchBitGl(maxTextures),\n roundPixelsBitGl,\n ]\n });\n\n const gpuProgram = compileHighShaderGpuProgram({\n name: 'dark-tint-batch',\n bits: [\n colorBit,\n darkTintBit,\n generateTextureBatchBit(maxTextures),\n roundPixelsBit,\n ]\n });\n\n super({\n glProgram,\n gpuProgram,\n resources: {\n batchSamplers: getBatchSamplersUniformGroup(maxTextures),\n }\n });\n }\n}\n","import {\n Batcher,\n DefaultBatchableMeshElement,\n DefaultBatchableQuadElement,\n extensions,\n ExtensionType,\n Shader\n} from 'pixi.js';\nimport { DarkTintBatchGeometry } from './DarkTintBatchGeometry';\nimport { DarkTintShader } from './DarkTintShader';\n\nlet defaultShader: Shader = null;\n\n/** The default batcher is used to batch quads and meshes. */\nexport class DarkTintBatcher extends Batcher\n{\n /** @ignore */\n public static extension = {\n type: [\n ExtensionType.Batcher,\n ],\n name: 'darkTint',\n } as const;\n\n public geometry = new DarkTintBatchGeometry();\n public shader = defaultShader || (defaultShader = new DarkTintShader(this.maxTextures));\n public name = DarkTintBatcher.extension.name;\n\n /** The size of one attribute. 1 = 32 bit. x, y, u, v, color, darkColor, textureIdAndRound -> total = 7 */\n public vertexSize = 7;\n\n public packAttributes(\n element: DefaultBatchableMeshElement & { darkColor: number },\n float32View: Float32Array,\n uint32View: Uint32Array,\n index: number,\n textureId: number\n )\n {\n const textureIdAndRound = (textureId << 16) | (element.roundPixels & 0xFFFF);\n\n const wt = element.transform;\n\n const a = wt.a;\n const b = wt.b;\n const c = wt.c;\n const d = wt.d;\n const tx = wt.tx;\n const ty = wt.ty;\n\n const { positions, uvs } = element;\n\n const argb = element.color;\n const darkColor = element.darkColor;\n\n const offset = element.attributeOffset;\n const end = offset + element.attributeSize;\n\n for (let i = offset; i < end; i++)\n {\n const i2 = i * 2;\n\n const x = positions[i2];\n const y = positions[(i2) + 1];\n\n float32View[index++] = (a * x) + (c * y) + tx;\n float32View[index++] = (d * y) + (b * x) + ty;\n\n float32View[index++] = uvs[i2];\n float32View[index++] = uvs[(i2) + 1];\n\n uint32View[index++] = argb;\n uint32View[index++] = darkColor;\n\n uint32View[index++] = textureIdAndRound;\n }\n }\n\n public packQuadAttributes(\n element: DefaultBatchableQuadElement & { darkColor: number },\n float32View: Float32Array,\n uint32View: Uint32Array,\n index: number,\n textureId: number\n )\n {\n const texture = element.texture;\n\n const wt = element.transform;\n\n const a = wt.a;\n const b = wt.b;\n const c = wt.c;\n const d = wt.d;\n const tx = wt.tx;\n const ty = wt.ty;\n\n const bounds = element.bounds;\n\n const w0 = bounds.maxX;\n const w1 = bounds.minX;\n const h0 = bounds.maxY;\n const h1 = bounds.minY;\n\n const uvs = texture.uvs;\n\n // _ _ _ _\n // a b g r\n const argb = element.color;\n const darkColor = element.darkColor;\n\n const textureIdAndRound = (textureId << 16) | (element.roundPixels & 0xFFFF);\n\n float32View[index + 0] = (a * w1) + (c * h1) + tx;\n float32View[index + 1] = (d * h1) + (b * w1) + ty;\n\n float32View[index + 2] = uvs.x0;\n float32View[index + 3] = uvs.y0;\n\n uint32View[index + 4] = argb;\n uint32View[index + 5] = darkColor;\n uint32View[index + 6] = textureIdAndRound;\n\n // xy\n float32View[index + 7] = (a * w0) + (c * h1) + tx;\n float32View[index + 8] = (d * h1) + (b * w0) + ty;\n\n float32View[index + 9] = uvs.x1;\n float32View[index + 10] = uvs.y1;\n\n uint32View[index + 11] = argb;\n uint32View[index + 12] = darkColor;\n uint32View[index + 13] = textureIdAndRound;\n\n // xy\n float32View[index + 14] = (a * w0) + (c * h0) + tx;\n float32View[index + 15] = (d * h0) + (b * w0) + ty;\n\n float32View[index + 16] = uvs.x2;\n float32View[index + 17] = uvs.y2;\n\n uint32View[index + 18] = argb;\n uint32View[index + 19] = darkColor;\n uint32View[index + 20] = textureIdAndRound;\n\n // xy\n float32View[index + 21] = (a * w1) + (c * h0) + tx;\n float32View[index + 22] = (d * h0) + (b * w1) + ty;\n\n float32View[index + 23] = uvs.x3;\n float32View[index + 24] = uvs.y3;\n\n uint32View[index + 25] = argb;\n uint32View[index + 26] = darkColor;\n uint32View[index + 27] = textureIdAndRound;\n }\n}\n\nextensions.add(DarkTintBatcher);\n","/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport { AttachmentCacheData, Spine } from './Spine';\n\nimport type { Batch, Batcher, BLEND_MODES, DefaultBatchableMeshElement, Matrix, Texture } from 'pixi.js';\n\nexport class BatchableSpineSlot implements DefaultBatchableMeshElement\n{\n indexOffset = 0;\n attributeOffset = 0;\n\n indexSize: number;\n attributeSize: number;\n\n batcherName = 'darkTint';\n\n readonly packAsQuad = false;\n\n renderable: Spine;\n\n positions: Float32Array;\n indices: number[] | Uint16Array;\n uvs: Float32Array;\n\n roundPixels: 0 | 1;\n data: AttachmentCacheData;\n blendMode: BLEND_MODES;\n\n darkTint: number;\n\n texture: Texture;\n\n transform: Matrix;\n\n // used internally by batcher specific..\n // stored for efficient updating..\n _textureId: number;\n _attributeStart: number;\n _indexStart: number;\n _batcher: Batcher;\n _batch: Batch;\n\n get color()\n {\n const slotColor = this.data.color;\n\n const parentColor:number = this.renderable.groupColor;\n const parentAlpha:number = this.renderable.groupAlpha;\n let abgr:number;\n\n const mixedA = (slotColor.a * parentAlpha) * 255;\n\n if (parentColor !== 0xFFFFFF)\n {\n const parentB = (parentColor >> 16) & 0xFF;\n const parentG = (parentColor >> 8) & 0xFF;\n const parentR = parentColor & 0xFF;\n\n const mixedR = (slotColor.r * parentR);\n const mixedG = (slotColor.g * parentG);\n const mixedB = (slotColor.b * parentB);\n\n abgr = ((mixedA) << 24) | (mixedB << 16) | (mixedG << 8) | mixedR;\n }\n else\n {\n abgr = ((mixedA) << 24) | ((slotColor.b * 255) << 16) | ((slotColor.g * 255) << 8) | (slotColor.r * 255);\n }\n\n return abgr;\n }\n\n get darkColor()\n {\n const darkColor = this.data.darkColor;\n\n return ((darkColor.a) << 24) | ((darkColor.b * 255) << 16) | ((darkColor.g * 255) << 8) | (darkColor.r * 255);\n }\n\n get groupTransform() { return this.renderable.groupTransform; }\n\n setData(\n renderable:Spine,\n data:AttachmentCacheData,\n texture:Texture,\n blendMode:BLEND_MODES,\n roundPixels: 0 | 1)\n {\n this.renderable = renderable;\n this.transform = renderable.groupTransform;\n this.data = data;\n\n if (data.clipped)\n {\n const clippedData = data.clippedData;\n\n this.indexSize = clippedData.indicesCount;\n this.attributeSize = clippedData.vertexCount;\n this.positions = clippedData.vertices;\n this.indices = clippedData.indices;\n this.uvs = clippedData.uvs;\n }\n else\n {\n this.indexSize = data.indices.length;\n this.attributeSize = data.vertices.length / 2;\n this.positions = data.vertices;\n this.indices = data.indices;\n this.uvs = data.uvs;\n }\n\n this.texture = texture;\n this.roundPixels = roundPixels;\n\n this.blendMode = blendMode;\n\n this.batcherName = data.darkTint ? 'darkTint' : 'default';\n }\n}\n","/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport {\n collectAllRenderables,\n extensions, ExtensionType,\n InstructionSet,\n type Renderer,\n type RenderPipe,\n Texture\n} from 'pixi.js';\nimport { BatchableSpineSlot } from './BatchableSpineSlot';\nimport { Spine } from './Spine';\nimport { MeshAttachment, RegionAttachment, SkeletonClipping } from '@esotericsoftware/spine-core';\n\nconst clipper = new SkeletonClipping();\n\nconst spineBlendModeMap = {\n 0: 'normal',\n 1: 'add',\n 2: 'multiply',\n 3: 'screen'\n};\n\n// eslint-disable-next-line max-len\nexport class SpinePipe implements RenderPipe\n{\n /** @ignore */\n static extension = {\n type: [\n ExtensionType.WebGLPipes,\n ExtensionType.WebGPUPipes,\n ExtensionType.CanvasPipes,\n ],\n name: 'spine',\n } as const;\n\n renderer: Renderer;\n\n private gpuSpineData:Record = {};\n\n constructor(renderer: Renderer)\n {\n this.renderer = renderer;\n }\n\n validateRenderable(spine: Spine): boolean\n {\n spine._applyState();\n // loop through and see if the mesh lengths have changed..\n\n return spine.spineAttachmentsDirty;\n }\n\n addRenderable(spine: Spine, instructionSet:InstructionSet)\n {\n const gpuSpine = this.gpuSpineData[spine.uid] ||= { slotBatches: {} };\n\n const batcher = this.renderer.renderPipes.batch;\n\n const drawOrder = spine.skeleton.drawOrder;\n\n const roundPixels = (this.renderer._roundPixels | spine._roundPixels) as 0 | 1;\n\n spine._applyState();\n\n for (let i = 0, n = drawOrder.length; i < n; i++)\n {\n const slot = drawOrder[i];\n const attachment = slot.getAttachment();\n const blendMode = spineBlendModeMap[slot.data.blendMode];\n\n if (attachment instanceof RegionAttachment || attachment instanceof MeshAttachment)\n {\n const cacheData = spine._getCachedData(slot, attachment);\n const batchableSpineSlot = gpuSpine.slotBatches[cacheData.id] ||= new BatchableSpineSlot();\n\n batchableSpineSlot.setData(\n spine,\n cacheData,\n (attachment.region?.texture.texture) || Texture.EMPTY,\n blendMode,\n roundPixels\n );\n\n if (!cacheData.skipRender)\n {\n batcher.addToBatch(batchableSpineSlot, instructionSet);\n }\n }\n\n const containerAttachment = spine._slotsObject[slot.data.name];\n\n if (containerAttachment)\n {\n const container = containerAttachment.container;\n\n container.includeInBuild = true;\n collectAllRenderables(container, instructionSet, this.renderer);\n container.includeInBuild = false;\n }\n }\n\n clipper.clipEnd();\n }\n\n updateRenderable(spine: Spine)\n {\n // we assume that spine will always change its verts size..\n const gpuSpine = this.gpuSpineData[spine.uid];\n\n spine._applyState();\n\n const drawOrder = spine.skeleton.drawOrder;\n\n for (let i = 0, n = drawOrder.length; i < n; i++)\n {\n const slot = drawOrder[i];\n const attachment = slot.getAttachment();\n\n if (attachment instanceof RegionAttachment || attachment instanceof MeshAttachment)\n {\n const cacheData = spine._getCachedData(slot, attachment);\n\n if (!cacheData.skipRender)\n {\n const batchableSpineSlot = gpuSpine.slotBatches[spine._getCachedData(slot, attachment).id];\n\n batchableSpineSlot._batcher?.updateElement(batchableSpineSlot);\n }\n }\n }\n }\n\n destroyRenderable(spine: Spine)\n {\n // TODO remove the renderable from the batcher\n this.gpuSpineData[spine.uid] = null as any;\n }\n\n destroy()\n {\n this.gpuSpineData = null as any;\n this.renderer = null as any;\n }\n}\n\nextensions.add(SpinePipe);\n","/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport {\n Assets,\n Bounds,\n Cache,\n Container,\n ContainerOptions,\n DEG_TO_RAD,\n DestroyOptions,\n PointData,\n Ticker,\n ViewContainer,\n} from 'pixi.js';\nimport { ISpineDebugRenderer } from './SpineDebugRenderer';\nimport {\n AnimationState,\n AnimationStateData,\n AtlasAttachmentLoader,\n Attachment,\n Bone,\n ClippingAttachment,\n Color,\n MeshAttachment,\n Physics,\n RegionAttachment,\n Skeleton,\n SkeletonBinary,\n SkeletonBounds,\n SkeletonClipping,\n SkeletonData,\n SkeletonJson,\n Slot,\n type TextureAtlas,\n TrackEntry,\n Vector2,\n} from '@esotericsoftware/spine-core';\n\nexport type SpineFromOptions = {\n skeleton: string;\n atlas: string;\n scale?: number;\n};\n\nconst vectorAux = new Vector2();\nconst lightColor = new Color();\nconst darkColor = new Color();\n\nSkeleton.yDown = true;\n\nconst clipper = new SkeletonClipping();\n\nexport interface SpineOptions extends ContainerOptions\n{\n skeletonData: SkeletonData;\n autoUpdate?: boolean;\n}\n\nexport interface SpineEvents\n{\n complete: [trackEntry: TrackEntry];\n dispose: [trackEntry: TrackEntry];\n end: [trackEntry: TrackEntry];\n event: [trackEntry: TrackEntry, event: Event];\n interrupt: [trackEntry: TrackEntry];\n start: [trackEntry: TrackEntry];\n}\n\nexport interface AttachmentCacheData\n{\n id: string;\n clipped: boolean;\n vertices: Float32Array;\n uvs: Float32Array;\n indices: number[];\n color: Color;\n darkColor: Color | null;\n darkTint: boolean;\n skipRender: boolean;\n clippedData?: {\n vertices: Float32Array;\n uvs: Float32Array;\n indices: Uint16Array;\n vertexCount: number;\n indicesCount: number;\n };\n}\n\nexport class Spine extends ViewContainer\n{\n // Pixi properties\n public batched = true;\n public buildId = 0;\n public override readonly renderPipeId = 'spine';\n public _didSpineUpdate = false;\n\n public beforeUpdateWorldTransforms: (object: Spine) => void = () => { /** */ };\n public afterUpdateWorldTransforms: (object: Spine) => void = () => { /** */ };\n\n // Spine properties\n public skeleton: Skeleton;\n public state: AnimationState;\n public skeletonBounds: SkeletonBounds;\n private _debug?: ISpineDebugRenderer | undefined = undefined;\n\n readonly _slotsObject: Record = Object.create(null);\n\n private getSlotFromRef(slotRef: number | string | Slot): Slot\n {\n let slot: Slot | null;\n\n if (typeof slotRef === 'number') slot = this.skeleton.slots[slotRef];\n else if (typeof slotRef === 'string') slot = this.skeleton.findSlot(slotRef);\n else slot = slotRef;\n\n if (!slot) throw new Error(`No slot found with the given slot reference: ${slotRef}`);\n\n return slot;\n }\n\n public spineAttachmentsDirty: boolean;\n private _lastAttachments: Attachment[];\n\n private _stateChanged: boolean;\n private attachmentCacheData: Record[] = [];\n\n public get debug(): ISpineDebugRenderer | undefined\n {\n return this._debug;\n }\n\n public set debug(value: ISpineDebugRenderer | undefined)\n {\n if (this._debug)\n {\n this._debug.unregisterSpine(this);\n }\n if (value)\n {\n value.registerSpine(this);\n }\n this._debug = value;\n }\n\n private autoUpdateWarned = false;\n private _autoUpdate = true;\n\n public get autoUpdate(): boolean\n {\n return this._autoUpdate;\n }\n\n public set autoUpdate(value: boolean)\n {\n if (value)\n {\n Ticker.shared.add(this.internalUpdate, this);\n this.autoUpdateWarned = false;\n }\n else\n {\n Ticker.shared.remove(this.internalUpdate, this);\n }\n\n this._autoUpdate = value;\n }\n\n constructor(options: SpineOptions | SkeletonData)\n {\n if (options instanceof SkeletonData)\n {\n options = {\n skeletonData: options,\n };\n }\n\n super();\n\n const skeletonData = options instanceof SkeletonData ? options : options.skeletonData;\n\n this.skeleton = new Skeleton(skeletonData);\n this.state = new AnimationState(new AnimationStateData(skeletonData));\n this.autoUpdate = options?.autoUpdate ?? true;\n\n const slots = this.skeleton.slots;\n\n for (let i = 0; i < slots.length; i++)\n {\n this.attachmentCacheData[i] = Object.create(null);\n }\n\n this._updateState(0);\n }\n\n public update(dt: number): void\n {\n if (this.autoUpdate && !this.autoUpdateWarned)\n {\n console.warn(\n // eslint-disable-next-line max-len\n 'You are calling update on a Spine instance that has autoUpdate set to true. This is probably not what you want.',\n );\n this.autoUpdateWarned = true;\n }\n\n this.internalUpdate(0, dt);\n }\n\n protected internalUpdate(_deltaFrame: any, deltaSeconds?: number): void\n {\n // Because reasons, pixi uses deltaFrames at 60fps.\n // We ignore the default deltaFrames and use the deltaSeconds from pixi ticker.\n this._updateState(deltaSeconds ?? Ticker.shared.deltaMS / 1000);\n }\n\n get bounds()\n {\n if (this._boundsDirty)\n {\n this.updateBounds();\n }\n\n return this._bounds;\n }\n\n public setBonePosition(bone: string | Bone, position: PointData): void\n {\n const boneAux = bone;\n\n if (typeof bone === 'string')\n {\n bone = this.skeleton.findBone(bone) as Bone;\n }\n\n if (!bone) throw Error(`Cant set bone position, bone ${String(boneAux)} not found`);\n vectorAux.set(position.x, position.y);\n\n if (bone.parent)\n {\n const aux = bone.parent.worldToLocal(vectorAux);\n\n bone.x = aux.x;\n bone.y = -aux.y;\n }\n else\n {\n bone.x = vectorAux.x;\n bone.y = vectorAux.y;\n }\n }\n\n public getBonePosition(bone: string | Bone, outPos?: PointData): PointData | undefined\n {\n const boneAux = bone;\n\n if (typeof bone === 'string')\n {\n bone = this.skeleton.findBone(bone) as Bone;\n }\n\n if (!bone)\n {\n console.error(`Cant set bone position! Bone ${String(boneAux)} not found`);\n\n return outPos;\n }\n\n if (!outPos)\n {\n outPos = { x: 0, y: 0 };\n }\n\n outPos.x = bone.worldX;\n outPos.y = bone.worldY;\n\n return outPos;\n }\n\n /**\n * Will update the state based on the specified time, this will not apply the state to the skeleton\n * as this is differed until the `applyState` method is called.\n *\n * @param time the time at which to set the state\n * @internal\n */\n _updateState(time: number)\n {\n this.state.update(time);\n this.skeleton.update(time);\n\n this._stateChanged = true;\n\n this._boundsDirty = true;\n\n this.onViewUpdate();\n }\n\n /**\n * Applies the state to this spine instance.\n * - updates the state to the skeleton\n * - updates its world transform (spine world transform)\n * - validates the attachments - to flag if the attachments have changed this state\n * - transforms the attachments - to update the vertices of the attachments based on the new positions\n * - update the slot attachments - to update the position, rotation, scale, and visibility of the attached containers\n * @internal\n */\n _applyState()\n {\n if (!this._stateChanged) return;\n this._stateChanged = false;\n\n const { skeleton } = this;\n\n this.state.apply(skeleton);\n\n this.beforeUpdateWorldTransforms(this);\n skeleton.updateWorldTransform(Physics.update);\n this.afterUpdateWorldTransforms(this);\n\n this.validateAttachments();\n\n this.transformAttachments();\n\n this.updateSlotObjects();\n }\n\n private validateAttachments()\n {\n const currentDrawOrder = this.skeleton.drawOrder;\n\n const lastAttachments = (this._lastAttachments ||= []);\n\n let index = 0;\n\n let spineAttachmentsDirty = false;\n\n for (let i = 0; i < currentDrawOrder.length; i++)\n {\n const slot = currentDrawOrder[i];\n const attachment = slot.getAttachment();\n\n if (attachment)\n {\n if (attachment !== lastAttachments[index])\n {\n spineAttachmentsDirty = true;\n lastAttachments[index] = attachment;\n }\n\n index++;\n }\n }\n\n if (index !== lastAttachments.length)\n {\n spineAttachmentsDirty = true;\n lastAttachments.length = index;\n }\n\n this.spineAttachmentsDirty = spineAttachmentsDirty;\n }\n\n private transformAttachments()\n {\n const currentDrawOrder = this.skeleton.drawOrder;\n\n for (let i = 0; i < currentDrawOrder.length; i++)\n {\n const slot = currentDrawOrder[i];\n\n const attachment = slot.getAttachment();\n\n if (attachment)\n {\n if (attachment instanceof MeshAttachment || attachment instanceof RegionAttachment)\n {\n const cacheData = this._getCachedData(slot, attachment);\n\n if (attachment instanceof RegionAttachment)\n {\n attachment.computeWorldVertices(slot, cacheData.vertices, 0, 2);\n }\n else\n {\n attachment.computeWorldVertices(\n slot,\n 0,\n attachment.worldVerticesLength,\n cacheData.vertices,\n 0,\n 2,\n );\n }\n\n cacheData.uvs = attachment.uvs as Float32Array;\n\n const skeleton = slot.bone.skeleton;\n const skeletonColor = skeleton.color;\n const slotColor = slot.color;\n\n const attachmentColor = attachment.color;\n\n cacheData.color.set(\n skeletonColor.r * slotColor.r * attachmentColor.r,\n skeletonColor.g * slotColor.g * attachmentColor.g,\n skeletonColor.b * slotColor.b * attachmentColor.b,\n skeletonColor.a * slotColor.a * attachmentColor.a,\n );\n\n cacheData.darkTint = !!slot.darkColor;\n\n if (slot.darkColor)\n {\n cacheData.darkColor.setFromColor(slot.darkColor);\n }\n\n cacheData.skipRender = cacheData.clipped = false;\n\n if (clipper.isClipping())\n {\n this.updateClippingData(cacheData);\n }\n }\n else if (attachment instanceof ClippingAttachment)\n {\n clipper.clipStart(slot, attachment);\n continue;\n }\n }\n clipper.clipEndWithSlot(slot);\n }\n clipper.clipEnd();\n }\n\n private updateClippingData(cacheData: AttachmentCacheData)\n {\n cacheData.clipped = true;\n\n clipper.clipTriangles(\n cacheData.vertices,\n cacheData.vertices.length,\n cacheData.indices,\n cacheData.indices.length,\n cacheData.uvs,\n lightColor,\n darkColor,\n false,\n );\n\n const { clippedVertices, clippedTriangles } = clipper;\n\n const verticesCount = clippedVertices.length / 8;\n const indicesCount = clippedTriangles.length;\n\n if (!cacheData.clippedData)\n {\n cacheData.clippedData = {\n vertices: new Float32Array(verticesCount * 2),\n uvs: new Float32Array(verticesCount * 2),\n vertexCount: verticesCount,\n indices: new Uint16Array(indicesCount),\n indicesCount,\n };\n\n this.spineAttachmentsDirty = true;\n }\n\n const clippedData = cacheData.clippedData;\n\n const sizeChange = clippedData.vertexCount !== verticesCount || indicesCount !== clippedData.indicesCount;\n\n cacheData.skipRender = verticesCount === 0;\n\n if (sizeChange)\n {\n this.spineAttachmentsDirty = true;\n\n if (clippedData.vertexCount < verticesCount)\n {\n // buffer reuse!\n clippedData.vertices = new Float32Array(verticesCount * 2);\n clippedData.uvs = new Float32Array(verticesCount * 2);\n }\n\n if (clippedData.indices.length < indicesCount)\n {\n clippedData.indices = new Uint16Array(indicesCount);\n }\n }\n\n const { vertices, uvs, indices } = clippedData;\n\n for (let i = 0; i < verticesCount; i++)\n {\n vertices[i * 2] = clippedVertices[i * 8];\n vertices[(i * 2) + 1] = clippedVertices[(i * 8) + 1];\n\n uvs[i * 2] = clippedVertices[(i * 8) + 6];\n uvs[(i * 2) + 1] = clippedVertices[(i * 8) + 7];\n }\n\n clippedData.vertexCount = verticesCount;\n\n for (let i = 0; i < indices.length; i++)\n {\n indices[i] = clippedTriangles[i];\n }\n\n clippedData.indicesCount = indicesCount;\n }\n\n /**\n * ensure that attached containers map correctly to their slots\n * along with their position, rotation, scale, and visibility.\n */\n private updateSlotObjects()\n {\n for (const i in this._slotsObject)\n {\n const slotAttachment = this._slotsObject[i];\n\n if (!slotAttachment) continue;\n\n this.updateSlotObject(slotAttachment);\n }\n }\n\n private updateSlotObject(slotAttachment: {slot:Slot, container:Container})\n {\n const { slot, container } = slotAttachment;\n\n container.visible = this.skeleton.drawOrder.includes(slot);\n\n if (container.visible)\n {\n const bone = slot.bone;\n\n container.position.set(bone.worldX, bone.worldY);\n\n container.scale.x = bone.getWorldScaleX();\n container.scale.y = bone.getWorldScaleY();\n\n container.rotation = bone.getWorldRotationX() * DEG_TO_RAD;\n }\n }\n\n /** @internal */\n _getCachedData(slot: Slot, attachment: RegionAttachment | MeshAttachment): AttachmentCacheData\n {\n return this.attachmentCacheData[slot.data.index][attachment.name] || this.initCachedData(slot, attachment);\n }\n\n private initCachedData(slot: Slot, attachment: RegionAttachment | MeshAttachment): AttachmentCacheData\n {\n let vertices: Float32Array;\n\n if (attachment instanceof RegionAttachment)\n {\n vertices = new Float32Array(8);\n\n this.attachmentCacheData[slot.data.index][attachment.name] = {\n id: `${slot.data.index}-${attachment.name}`,\n vertices,\n clipped: false,\n indices: [0, 1, 2, 0, 2, 3],\n uvs: attachment.uvs as Float32Array,\n color: new Color(1, 1, 1, 1),\n darkColor: new Color(0, 0, 0, 0),\n darkTint: false,\n skipRender: false,\n };\n }\n else\n {\n vertices = new Float32Array(attachment.worldVerticesLength);\n\n this.attachmentCacheData[slot.data.index][attachment.name] = {\n id: `${slot.data.index}-${attachment.name}`,\n vertices,\n clipped: false,\n indices: attachment.triangles,\n uvs: attachment.uvs as Float32Array,\n color: new Color(1, 1, 1, 1),\n darkColor: new Color(0, 0, 0, 0),\n darkTint: false,\n skipRender: false,\n };\n }\n\n return this.attachmentCacheData[slot.data.index][attachment.name];\n }\n\n protected onViewUpdate()\n {\n // increment from the 12th bit!\n this._didChangeId += 1 << 12;\n\n this._boundsDirty = true;\n\n if (this.didViewUpdate) return;\n this.didViewUpdate = true;\n\n const renderGroup = this.renderGroup || this.parentRenderGroup;\n\n if (renderGroup)\n {\n renderGroup.onChildViewUpdate(this);\n }\n\n this.debug?.renderDebug(this);\n }\n\n /**\n * Attaches a PixiJS container to a specified slot. This will map the world transform of the slots bone\n * to the attached container. A container can only be attached to one slot at a time.\n *\n * @param container - The container to attach to the slot\n * @param slotRef - The slot id or slot to attach to\n */\n public addSlotObject(slot: number | string | Slot, container: Container)\n {\n slot = this.getSlotFromRef(slot);\n\n // need to check in on the container too...\n for (const i in this._slotsObject)\n {\n if (this._slotsObject[i]?.container === container)\n {\n this.removeSlotObject(this._slotsObject[i].slot);\n }\n }\n\n this.removeSlotObject(slot);\n\n container.includeInBuild = false;\n\n // TODO only add once??\n this.addChild(container);\n\n this._slotsObject[slot.data.name] = {\n container,\n slot\n };\n\n this.updateSlotObject(this._slotsObject[slot.data.name]);\n }\n\n /**\n * Removes a PixiJS container from the slot it is attached to.\n *\n * @param container - The container to detach from the slot\n * @param slotOrContainer - The container, slot id or slot to detach from\n */\n public removeSlotObject(slotOrContainer: number | string | Slot | Container)\n {\n let containerToRemove: Container | undefined;\n\n if (slotOrContainer instanceof Container)\n {\n for (const i in this._slotsObject)\n {\n if (this._slotsObject[i]?.container === slotOrContainer)\n {\n this._slotsObject[i] = null;\n\n containerToRemove = slotOrContainer;\n break;\n }\n }\n }\n else\n {\n const slot = this.getSlotFromRef(slotOrContainer);\n\n containerToRemove = this._slotsObject[slot.data.name]?.container;\n this._slotsObject[slot.data.name] = null;\n }\n\n if (containerToRemove)\n {\n this.removeChild(containerToRemove);\n\n containerToRemove.includeInBuild = true;\n }\n }\n\n /**\n * Returns a container attached to a slot, or undefined if no container is attached.\n *\n * @param slotRef - The slot id or slot to get the attachment from\n * @returns - The container attached to the slot\n */\n public getSlotObject(slot: number | string | Slot)\n {\n slot = this.getSlotFromRef(slot);\n\n return this._slotsObject[slot.data.name].container;\n }\n\n private updateBounds()\n {\n this._boundsDirty = false;\n\n this.skeletonBounds ||= new SkeletonBounds();\n\n const skeletonBounds = this.skeletonBounds;\n\n skeletonBounds.update(this.skeleton, true);\n\n if (skeletonBounds.minX === Infinity)\n {\n this._applyState();\n\n const drawOrder = this.skeleton.drawOrder;\n const bounds = this._bounds;\n\n bounds.clear();\n\n for (let i = 0; i < drawOrder.length; i++)\n {\n const slot = drawOrder[i];\n\n const attachment = slot.getAttachment();\n\n if (attachment && (attachment instanceof RegionAttachment || attachment instanceof MeshAttachment))\n {\n const cacheData = this._getCachedData(slot, attachment);\n\n bounds.addVertexData(cacheData.vertices, 0, cacheData.vertices.length);\n }\n }\n }\n else\n {\n this._bounds.minX = skeletonBounds.minX;\n this._bounds.minY = skeletonBounds.minY;\n this._bounds.maxX = skeletonBounds.maxX;\n this._bounds.maxY = skeletonBounds.maxY;\n }\n }\n\n /** @internal */\n addBounds(bounds: Bounds)\n {\n bounds.addBounds(this.bounds);\n }\n\n /**\n * Destroys this sprite renderable and optionally its texture.\n * @param options - Options parameter. A boolean will act as if all options\n * have been set to that value\n * @param {boolean} [options.texture=false] - Should it destroy the current texture of the renderable as well\n * @param {boolean} [options.textureSource=false] - Should it destroy the textureSource of the renderable as well\n */\n public override destroy(options: DestroyOptions = false)\n {\n super.destroy(options);\n\n Ticker.shared.remove(this.internalUpdate, this);\n this.state.clearListeners();\n this.debug = undefined;\n this.skeleton = null as any;\n this.state = null as any;\n (this._slotsObject as any) = null;\n this._lastAttachments = null;\n this.attachmentCacheData = null as any;\n }\n\n /** Converts a point from the skeleton coordinate system to the Pixi world coordinate system. */\n public skeletonToPixiWorldCoordinates(point: { x: number; y: number })\n {\n this.worldTransform.apply(point, point);\n }\n\n /** Converts a point from the Pixi world coordinate system to the skeleton coordinate system. */\n public pixiWorldCoordinatesToSkeleton(point: { x: number; y: number })\n {\n this.worldTransform.applyInverse(point, point);\n }\n\n /** Converts a point from the Pixi world coordinate system to the bone's local coordinate system. */\n public pixiWorldCoordinatesToBone(point: { x: number; y: number }, bone: Bone)\n {\n this.pixiWorldCoordinatesToSkeleton(point);\n if (bone.parent)\n {\n bone.parent.worldToLocal(point as Vector2);\n }\n else\n {\n bone.worldToLocal(point as Vector2);\n }\n }\n\n static from({ skeleton, atlas, scale = 1 }: SpineFromOptions)\n {\n const cacheKey = `${skeleton}-${atlas}-${scale}`;\n\n if (Cache.has(cacheKey))\n {\n return new Spine(Cache.get(cacheKey));\n }\n\n const skeletonAsset = Assets.get(skeleton);\n\n const atlasAsset = Assets.get(atlas);\n const attachmentLoader = new AtlasAttachmentLoader(atlasAsset);\n // eslint-disable-next-line max-len\n const parser\n = skeletonAsset instanceof Uint8Array\n ? new SkeletonBinary(attachmentLoader)\n : new SkeletonJson(attachmentLoader);\n\n // TODO scale?\n parser.scale = scale;\n const skeletonData = parser.readSkeletonData(skeletonAsset);\n\n Cache.set(cacheKey, skeletonData);\n\n return new Spine({\n skeletonData,\n });\n }\n}\n","/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport { Container, Graphics, Text } from 'pixi.js';\nimport { Spine } from './Spine';\nimport {\n ClippingAttachment,\n MeshAttachment,\n PathAttachment,\n RegionAttachment,\n SkeletonBounds\n} from '@esotericsoftware/spine-core';\n\nimport type { AnimationStateListener } from '@esotericsoftware/spine-core';\n\n/**\n * Make a class that extends from this interface to create your own debug renderer.\n * @public\n */\nexport interface ISpineDebugRenderer\n{\n /**\n * This will be called every frame, after the spine has been updated.\n */\n renderDebug: (spine: Spine) => void;\n\n /**\n * This is called when the `spine.debug` object is set to null or when the spine is destroyed.\n */\n unregisterSpine: (spine: Spine) => void;\n\n /**\n * This is called when the `spine.debug` object is set to a new instance of a debug renderer.\n */\n registerSpine: (spine: Spine) => void;\n}\n\ntype DebugDisplayObjects = {\n bones: Container;\n skeletonXY: Graphics;\n regionAttachmentsShape: Graphics;\n meshTrianglesLine: Graphics;\n meshHullLine: Graphics;\n clippingPolygon: Graphics;\n boundingBoxesRect: Graphics;\n boundingBoxesCircle: Graphics;\n boundingBoxesPolygon: Graphics;\n pathsCurve: Graphics;\n pathsLine: Graphics;\n parentDebugContainer: Container;\n eventText: Container;\n eventCallback: AnimationStateListener;\n};\n\n/**\n * This is a debug renderer that uses PixiJS Graphics under the hood.\n * @public\n */\nexport class SpineDebugRenderer implements ISpineDebugRenderer\n{\n private readonly registeredSpines: Map = new Map();\n\n public drawMeshHull = true;\n public drawMeshTriangles = true;\n public drawBones = true;\n public drawPaths = true;\n public drawBoundingBoxes = true;\n public drawClipping = true;\n public drawRegionAttachments = true;\n public drawEvents = true;\n\n public lineWidth = 1;\n public regionAttachmentsColor = 0x0078ff;\n public meshHullColor = 0x0078ff;\n public meshTrianglesColor = 0xffcc00;\n public clippingPolygonColor = 0xff00ff;\n public boundingBoxesRectColor = 0x00ff00;\n public boundingBoxesPolygonColor = 0x00ff00;\n public boundingBoxesCircleColor = 0x00ff00;\n public pathsCurveColor = 0xff0000;\n public pathsLineColor = 0xff00ff;\n public skeletonXYColor = 0xff0000;\n public bonesColor = 0x00eecc;\n public eventFontSize = 24;\n public eventFontColor = 0x0;\n\n /**\n * The debug is attached by force to each spine object.\n * So we need to create it inside the spine when we get the first update\n */\n public registerSpine(spine: Spine): void\n {\n if (this.registeredSpines.has(spine))\n {\n console.warn('SpineDebugRenderer.registerSpine() - this spine is already registered!', spine);\n\n return;\n }\n const debugDisplayObjects: DebugDisplayObjects = {\n parentDebugContainer: new Container(),\n bones: new Container(),\n skeletonXY: new Graphics(),\n regionAttachmentsShape: new Graphics(),\n meshTrianglesLine: new Graphics(),\n meshHullLine: new Graphics(),\n clippingPolygon: new Graphics(),\n boundingBoxesRect: new Graphics(),\n boundingBoxesCircle: new Graphics(),\n boundingBoxesPolygon: new Graphics(),\n pathsCurve: new Graphics(),\n pathsLine: new Graphics(),\n eventText: new Container(),\n eventCallback: {\n event: (_, event) =>\n {\n if (this.drawEvents)\n {\n const scale = Math.abs(spine.scale.x || spine.scale.y || 1);\n const text = new Text({\n text: event.data.name,\n style: {\n fontSize: this.eventFontSize / scale,\n fill: this.eventFontColor,\n fontFamily: 'monospace'\n }\n });\n\n text.scale.x = Math.sign(spine.scale.x);\n text.anchor.set(0.5);\n debugDisplayObjects.eventText.addChild(text);\n setTimeout(() =>\n {\n if (!text.destroyed)\n {\n text.destroy();\n }\n }, 250);\n }\n },\n },\n };\n\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.bones);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.skeletonXY);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.regionAttachmentsShape);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.meshTrianglesLine);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.meshHullLine);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.clippingPolygon);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.boundingBoxesRect);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.boundingBoxesCircle);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.boundingBoxesPolygon);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.pathsCurve);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.pathsLine);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.eventText);\n\n (debugDisplayObjects.parentDebugContainer as any).zIndex = 9999999;\n\n // Disable screen reader and mouse input on debug objects.\n (debugDisplayObjects.parentDebugContainer as any).accessibleChildren = false;\n (debugDisplayObjects.parentDebugContainer as any).eventMode = 'none';\n (debugDisplayObjects.parentDebugContainer as any).interactiveChildren = false;\n\n spine.addChild(debugDisplayObjects.parentDebugContainer);\n\n spine.state.addListener(debugDisplayObjects.eventCallback);\n\n this.registeredSpines.set(spine, debugDisplayObjects);\n }\n\n public renderDebug(spine: Spine): void\n {\n if (!this.registeredSpines.has(spine))\n {\n // This should never happen. Spines are registered when you assign spine.debug\n this.registerSpine(spine);\n }\n\n const debugDisplayObjects = this.registeredSpines.get(spine);\n\n if (!debugDisplayObjects)\n {\n return;\n }\n spine.addChild(debugDisplayObjects.parentDebugContainer);\n\n debugDisplayObjects.skeletonXY.clear();\n debugDisplayObjects.regionAttachmentsShape.clear();\n debugDisplayObjects.meshTrianglesLine.clear();\n debugDisplayObjects.meshHullLine.clear();\n debugDisplayObjects.clippingPolygon.clear();\n debugDisplayObjects.boundingBoxesRect.clear();\n debugDisplayObjects.boundingBoxesCircle.clear();\n debugDisplayObjects.boundingBoxesPolygon.clear();\n debugDisplayObjects.pathsCurve.clear();\n debugDisplayObjects.pathsLine.clear();\n\n for (let len = debugDisplayObjects.bones.children.length; len > 0; len--)\n {\n debugDisplayObjects.bones.children[len - 1].destroy({ children: true, texture: true, textureSource: true });\n }\n\n const scale = Math.abs(spine.scale.x || spine.scale.y || 1);\n const lineWidth = this.lineWidth / scale;\n\n if (this.drawBones)\n {\n this.drawBonesFunc(spine, debugDisplayObjects, lineWidth, scale);\n }\n\n if (this.drawPaths)\n {\n this.drawPathsFunc(spine, debugDisplayObjects, lineWidth);\n }\n\n if (this.drawBoundingBoxes)\n {\n this.drawBoundingBoxesFunc(spine, debugDisplayObjects, lineWidth);\n }\n\n if (this.drawClipping)\n {\n this.drawClippingFunc(spine, debugDisplayObjects, lineWidth);\n }\n\n if (this.drawMeshHull || this.drawMeshTriangles)\n {\n this.drawMeshHullAndMeshTriangles(spine, debugDisplayObjects, lineWidth);\n }\n\n if (this.drawRegionAttachments)\n {\n this.drawRegionAttachmentsFunc(spine, debugDisplayObjects, lineWidth);\n }\n\n if (this.drawEvents)\n {\n for (const child of debugDisplayObjects.eventText.children)\n {\n child.alpha -= 0.05;\n child.y -= 2;\n }\n }\n }\n\n private drawBonesFunc(spine: Spine, debugDisplayObjects: DebugDisplayObjects, lineWidth: number, scale: number): void\n {\n const skeleton = spine.skeleton;\n const skeletonX = skeleton.x;\n const skeletonY = skeleton.y;\n const bones = skeleton.bones;\n\n debugDisplayObjects.skeletonXY.strokeStyle = { width: lineWidth, color: this.skeletonXYColor };\n\n for (let i = 0, len = bones.length; i < len; i++)\n {\n const bone = bones[i];\n const boneLen = bone.data.length;\n const starX = skeletonX + bone.worldX;\n const starY = skeletonY + bone.worldY;\n const endX = skeletonX + (boneLen * bone.a) + bone.worldX;\n const endY = skeletonY + (boneLen * bone.b) + bone.worldY;\n\n if (bone.data.name === 'root' || bone.data.parent === null)\n {\n continue;\n }\n\n const w = Math.abs(starX - endX);\n const h = Math.abs(starY - endY);\n // a = w, // side length a\n const a2 = Math.pow(w, 2); // square root of side length a\n const b = h; // side length b\n const b2 = Math.pow(h, 2); // square root of side length b\n const c = Math.sqrt(a2 + b2); // side length c\n const c2 = Math.pow(c, 2); // square root of side length c\n const rad = Math.PI / 180;\n // A = Math.acos([a2 + c2 - b2] / [2 * a * c]) || 0, // Angle A\n // C = Math.acos([a2 + b2 - c2] / [2 * a * b]) || 0, // C angle\n const B = Math.acos((c2 + b2 - a2) / (2 * b * c)) || 0; // angle of corner B\n\n if (c === 0)\n {\n continue;\n }\n\n const gp = new Graphics();\n\n debugDisplayObjects.bones.addChild(gp);\n\n // draw bone\n const refRation = c / 50 / scale;\n\n gp.context\n .poly([0, 0, 0 - refRation, c - (refRation * 3), 0, c - refRation, 0 + refRation, c - (refRation * 3)])\n .fill(this.bonesColor);\n gp.x = starX;\n gp.y = starY;\n gp.pivot.y = c;\n\n // Calculate bone rotation angle\n let rotation = 0;\n\n if (starX < endX && starY < endY)\n {\n // bottom right\n rotation = -B + (180 * rad);\n }\n else if (starX > endX && starY < endY)\n {\n // bottom left\n rotation = 180 * (rad + B);\n }\n else if (starX > endX && starY > endY)\n {\n // top left\n rotation = -B;\n }\n else if (starX < endX && starY > endY)\n {\n // bottom left\n rotation = B;\n }\n else if (starY === endY && starX < endX)\n {\n // To the right\n rotation = 90 * rad;\n }\n else if (starY === endY && starX > endX)\n {\n // go left\n rotation = -90 * rad;\n }\n else if (starX === endX && starY < endY)\n {\n // down\n rotation = 180 * rad;\n }\n else if (starX === endX && starY > endY)\n {\n // up\n rotation = 0;\n }\n gp.rotation = rotation;\n\n // Draw the starting rotation point of the bone\n gp.circle(0, c, refRation * 1.2)\n .fill({ color: 0x000000, alpha: 0.6 })\n .stroke({ width: lineWidth, color: this.skeletonXYColor });\n }\n\n // Draw the skeleton starting point \"X\" form\n const startDotSize = lineWidth * 3;\n\n debugDisplayObjects.skeletonXY.context\n .moveTo(skeletonX - startDotSize, skeletonY - startDotSize)\n .lineTo(skeletonX + startDotSize, skeletonY + startDotSize)\n .moveTo(skeletonX + startDotSize, skeletonY - startDotSize)\n .lineTo(skeletonX - startDotSize, skeletonY + startDotSize)\n .stroke();\n }\n\n private drawRegionAttachmentsFunc(spine: Spine, debugDisplayObjects: DebugDisplayObjects, lineWidth: number): void\n {\n const skeleton = spine.skeleton;\n const slots = skeleton.slots;\n\n for (let i = 0, len = slots.length; i < len; i++)\n {\n const slot = slots[i];\n const attachment = slot.getAttachment();\n\n if (attachment === null || !(attachment instanceof RegionAttachment))\n {\n continue;\n }\n\n const regionAttachment = attachment;\n\n const vertices = new Float32Array(8);\n\n regionAttachment.computeWorldVertices(slot, vertices, 0, 2);\n\n debugDisplayObjects.regionAttachmentsShape.poly(Array.from(vertices.slice(0, 8)));\n }\n\n debugDisplayObjects.regionAttachmentsShape.stroke({\n color: this.regionAttachmentsColor,\n width: lineWidth\n });\n }\n\n private drawMeshHullAndMeshTriangles(spine: Spine, debugDisplayObjects: DebugDisplayObjects, lineWidth: number): void\n {\n const skeleton = spine.skeleton;\n const slots = skeleton.slots;\n\n for (let i = 0, len = slots.length; i < len; i++)\n {\n const slot = slots[i];\n\n if (!slot.bone.active)\n {\n continue;\n }\n const attachment = slot.getAttachment();\n\n if (attachment === null || !(attachment instanceof MeshAttachment))\n {\n continue;\n }\n\n const meshAttachment = attachment;\n\n const vertices = new Float32Array(meshAttachment.worldVerticesLength);\n const triangles = meshAttachment.triangles;\n let hullLength = meshAttachment.hullLength;\n\n meshAttachment.computeWorldVertices(slot, 0, meshAttachment.worldVerticesLength, vertices, 0, 2);\n // draw the skinned mesh (triangle)\n if (this.drawMeshTriangles)\n {\n for (let i = 0, len = triangles.length; i < len; i += 3)\n {\n const v1 = triangles[i] * 2;\n const v2 = triangles[i + 1] * 2;\n const v3 = triangles[i + 2] * 2;\n\n debugDisplayObjects.meshTrianglesLine.context\n .moveTo(vertices[v1], vertices[v1 + 1])\n .lineTo(vertices[v2], vertices[v2 + 1])\n .lineTo(vertices[v3], vertices[v3 + 1]);\n }\n }\n\n // draw skin border\n if (this.drawMeshHull && hullLength > 0)\n {\n hullLength = (hullLength >> 1) * 2;\n let lastX = vertices[hullLength - 2];\n let lastY = vertices[hullLength - 1];\n\n for (let i = 0, len = hullLength; i < len; i += 2)\n {\n const x = vertices[i];\n const y = vertices[i + 1];\n\n debugDisplayObjects.meshHullLine.context\n .moveTo(x, y)\n .lineTo(lastX, lastY);\n lastX = x;\n lastY = y;\n }\n }\n }\n\n debugDisplayObjects.meshHullLine.stroke({ width: lineWidth, color: this.meshHullColor });\n debugDisplayObjects.meshTrianglesLine.stroke({ width: lineWidth, color: this.meshTrianglesColor });\n }\n\n drawClippingFunc(spine: Spine, debugDisplayObjects: DebugDisplayObjects, lineWidth: number): void\n {\n const skeleton = spine.skeleton;\n const slots = skeleton.slots;\n\n for (let i = 0, len = slots.length; i < len; i++)\n {\n const slot = slots[i];\n\n if (!slot.bone.active)\n {\n continue;\n }\n const attachment = slot.getAttachment();\n\n if (attachment === null || !(attachment instanceof ClippingAttachment))\n {\n continue;\n }\n\n const clippingAttachment = attachment;\n\n const nn = clippingAttachment.worldVerticesLength;\n const world = new Float32Array(nn);\n\n clippingAttachment.computeWorldVertices(slot, 0, nn, world, 0, 2);\n debugDisplayObjects.clippingPolygon.poly(Array.from(world));\n }\n\n debugDisplayObjects.clippingPolygon.stroke({\n width: lineWidth, color: this.clippingPolygonColor, alpha: 1\n });\n }\n\n drawBoundingBoxesFunc(spine: Spine, debugDisplayObjects: DebugDisplayObjects, lineWidth: number): void\n {\n // draw the total outline of the bounding box\n debugDisplayObjects.boundingBoxesRect.lineStyle(lineWidth, this.boundingBoxesRectColor, 5);\n\n const bounds = new SkeletonBounds();\n\n bounds.update(spine.skeleton, true);\n\n debugDisplayObjects.boundingBoxesRect\n .rect(bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight())\n .stroke({ width: lineWidth, color: this.boundingBoxesRectColor });\n\n const polygons = bounds.polygons;\n const drawPolygon = (polygonVertices: ArrayLike, _offset: unknown, count: number): void =>\n {\n if (count < 3)\n {\n throw new Error('Polygon must contain at least 3 vertices');\n }\n const paths:number[] = [];\n const dotSize = lineWidth * 2;\n\n for (let i = 0, len = polygonVertices.length; i < len; i += 2)\n {\n const x1 = polygonVertices[i];\n const y1 = polygonVertices[i + 1];\n\n // draw the bounding box node\n debugDisplayObjects.boundingBoxesCircle.beginFill(this.boundingBoxesCircleColor);\n debugDisplayObjects.boundingBoxesCircle.drawCircle(x1, y1, dotSize);\n debugDisplayObjects.boundingBoxesCircle.fill(0);\n\n paths.push(x1, y1);\n }\n\n // draw the bounding box area\n debugDisplayObjects.boundingBoxesPolygon\n .poly(paths)\n .fill({\n color: this.boundingBoxesPolygonColor,\n alpha: 0.1\n })\n .stroke({\n width: lineWidth,\n color: this.boundingBoxesPolygonColor\n });\n };\n\n for (let i = 0, len = polygons.length; i < len; i++)\n {\n const polygon = polygons[i];\n\n drawPolygon(polygon, 0, polygon.length);\n }\n }\n\n private drawPathsFunc(spine: Spine, debugDisplayObjects: DebugDisplayObjects, lineWidth: number): void\n {\n const skeleton = spine.skeleton;\n const slots = skeleton.slots;\n\n for (let i = 0, len = slots.length; i < len; i++)\n {\n const slot = slots[i];\n\n if (!slot.bone.active)\n {\n continue;\n }\n const attachment = slot.getAttachment();\n\n if (attachment === null || !(attachment instanceof PathAttachment))\n {\n continue;\n }\n\n const pathAttachment = attachment;\n let nn = pathAttachment.worldVerticesLength;\n const world = new Float32Array(nn);\n\n pathAttachment.computeWorldVertices(slot, 0, nn, world, 0, 2);\n let x1 = world[2];\n let y1 = world[3];\n let x2 = 0;\n let y2 = 0;\n\n if (pathAttachment.closed)\n {\n const cx1 = world[0];\n const cy1 = world[1];\n const cx2 = world[nn - 2];\n const cy2 = world[nn - 1];\n\n x2 = world[nn - 4];\n y2 = world[nn - 3];\n\n // curve\n debugDisplayObjects.pathsCurve.moveTo(x1, y1);\n debugDisplayObjects.pathsCurve.bezierCurveTo(cx1, cy1, cx2, cy2, x2, y2);\n\n // handle\n debugDisplayObjects.pathsLine.moveTo(x1, y1);\n debugDisplayObjects.pathsLine.lineTo(cx1, cy1);\n debugDisplayObjects.pathsLine.moveTo(x2, y2);\n debugDisplayObjects.pathsLine.lineTo(cx2, cy2);\n }\n nn -= 4;\n for (let ii = 4; ii < nn; ii += 6)\n {\n const cx1 = world[ii];\n const cy1 = world[ii + 1];\n const cx2 = world[ii + 2];\n const cy2 = world[ii + 3];\n\n x2 = world[ii + 4];\n y2 = world[ii + 5];\n // curve\n debugDisplayObjects.pathsCurve.moveTo(x1, y1);\n debugDisplayObjects.pathsCurve.bezierCurveTo(cx1, cy1, cx2, cy2, x2, y2);\n\n // handle\n debugDisplayObjects.pathsLine.moveTo(x1, y1);\n debugDisplayObjects.pathsLine.lineTo(cx1, cy1);\n debugDisplayObjects.pathsLine.moveTo(x2, y2);\n debugDisplayObjects.pathsLine.lineTo(cx2, cy2);\n x1 = x2;\n y1 = y2;\n }\n }\n\n debugDisplayObjects.pathsCurve.stroke({ width: lineWidth, color: this.pathsCurveColor });\n debugDisplayObjects.pathsLine.stroke({ width: lineWidth, color: this.pathsLineColor });\n }\n\n public unregisterSpine(spine: Spine): void\n {\n if (!this.registeredSpines.has(spine))\n {\n console.warn('SpineDebugRenderer.unregisterSpine() - spine is not registered, can\\'t unregister!', spine);\n }\n const debugDisplayObjects = this.registeredSpines.get(spine);\n\n if (!debugDisplayObjects)\n {\n return;\n }\n\n spine.state.removeListener(debugDisplayObjects.eventCallback);\n\n debugDisplayObjects.parentDebugContainer.destroy({ textureSource: true, children: true, texture: true });\n this.registeredSpines.delete(spine);\n }\n}\n"],"names":["prevRequire","x","c","a","i","e","o","_SpineTexture","Texture","image","__publicField","PixiTexture","texture","minFilter","magFilter","style","uWrap","vWrap","filter","TextureFilter","wrap","TextureWrap","blend","BlendMode","SpineTexture","R","w","S","u","L","M","t","s","d","spineTextureAtlasLoader","ExtensionType","LoaderParserPriority","url","checkExtension","DOMAdapter","asset","options","isExtensionRight","isString","atlas","loader","metadata","basePath","path","retval","TextureAtlas","TextureSource","pixiTexture","textureLoadingPromises","page","pageName","providedPage","assetsToLoadIn","__spreadProps","__spreadValues","pixiPromise","extensions","isJson","resource","isBuffer","spineLoaderExtension","response","isJsonSpineModel","isBinarySpineModel","placeHolderBufferData","placeHolderIndexData","DarkTintBatchGeometry","Geometry","attributeBuffer","Buffer","BufferUsage","indexBuffer","stride","darkTintBit","darkTintBitGl","DarkTintShader","Shader","maxTextures","glProgram","compileHighShaderGlProgram","colorBitGl","generateTextureBatchBitGl","roundPixelsBitGl","gpuProgram","compileHighShaderGpuProgram","colorBit","generateTextureBatchBit","roundPixelsBit","getBatchSamplersUniformGroup","defaultShader","_DarkTintBatcher","Batcher","element","float32View","uint32View","index","textureId","textureIdAndRound","wt","b","tx","ty","positions","uvs","argb","darkColor","offset","end","i2","y","bounds","w0","w1","h0","h1","DarkTintBatcher","BatchableSpineSlot","slotColor","parentColor","parentAlpha","abgr","mixedA","parentB","parentG","parentR","mixedR","mixedG","mixedB","renderable","data","blendMode","roundPixels","clippedData","_","B","r","h","clipper","SkeletonClipping","spineBlendModeMap","SpinePipe","renderer","spine","instructionSet","_a","_b","_c","_d","_e","gpuSpine","batcher","drawOrder","n","slot","attachment","RegionAttachment","MeshAttachment","cacheData","batchableSpineSlot","containerAttachment","container","collectAllRenderables","vectorAux","Vector2","lightColor","Color","Skeleton","Spine","ViewContainer","SkeletonData","skeletonData","AnimationState","AnimationStateData","slots","slotRef","value","Ticker","dt","_deltaFrame","deltaSeconds","bone","position","boneAux","aux","outPos","time","skeleton","Physics","currentDrawOrder","lastAttachments","spineAttachmentsDirty","skeletonColor","attachmentColor","ClippingAttachment","clippedVertices","clippedTriangles","verticesCount","indicesCount","sizeChange","vertices","indices","slotAttachment","DEG_TO_RAD","renderGroup","slotOrContainer","containerToRemove","Container","SkeletonBounds","skeletonBounds","point","scale","cacheKey","Cache","skeletonAsset","Assets","atlasAsset","attachmentLoader","AtlasAttachmentLoader","parser","SkeletonBinary","SkeletonJson","SpineDebugRenderer","debugDisplayObjects","Graphics","event","text","Text","len","lineWidth","child","skeletonX","skeletonY","bones","boneLen","starX","starY","endX","endY","a2","b2","c2","rad","gp","refRation","rotation","startDotSize","regionAttachment","meshAttachment","triangles","hullLength","v1","v2","v3","lastX","lastY","clippingAttachment","nn","world","polygons","drawPolygon","polygonVertices","_offset","count","paths","dotSize","x1","y1","polygon","PathAttachment","pathAttachment","x2","y2","cx1","cy1","cx2","cy2","ii"],"mappings":"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"} \ No newline at end of file diff --git a/dist/spine-pixi.js b/dist/spine-pixi.js new file mode 100644 index 0000000..c856552 --- /dev/null +++ b/dist/spine-pixi.js @@ -0,0 +1,13132 @@ +"use strict"; +var spine = (() => { + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { + get: (a, b) => (typeof require !== "undefined" ? require : a)[b] + }) : x)(function(x) { + if (typeof require !== "undefined") + return require.apply(this, arguments); + throw Error('Dynamic require of "' + x + '" is not supported'); + }); + var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + + // src/index.ts + var src_exports = {}; + __export(src_exports, { + AlphaTimeline: () => AlphaTimeline, + Animation: () => Animation, + AnimationState: () => AnimationState, + AnimationStateAdapter: () => AnimationStateAdapter, + AnimationStateData: () => AnimationStateData, + AssetManagerBase: () => AssetManagerBase, + AtlasAttachmentLoader: () => AtlasAttachmentLoader, + Attachment: () => Attachment, + AttachmentTimeline: () => AttachmentTimeline, + BinaryInput: () => BinaryInput, + BlendMode: () => BlendMode, + Bone: () => Bone, + BoneData: () => BoneData, + BoundingBoxAttachment: () => BoundingBoxAttachment, + CURRENT: () => CURRENT, + ClippingAttachment: () => ClippingAttachment, + Color: () => Color, + ConstraintData: () => ConstraintData, + CurveTimeline: () => CurveTimeline, + CurveTimeline1: () => CurveTimeline1, + CurveTimeline2: () => CurveTimeline2, + DebugUtils: () => DebugUtils, + DeformTimeline: () => DeformTimeline, + Downloader: () => Downloader, + DrawOrderTimeline: () => DrawOrderTimeline, + Event: () => Event, + EventData: () => EventData, + EventQueue: () => EventQueue, + EventTimeline: () => EventTimeline, + EventType: () => EventType, + FIRST: () => FIRST, + FakeTexture: () => FakeTexture, + HOLD_FIRST: () => HOLD_FIRST, + HOLD_MIX: () => HOLD_MIX, + HOLD_SUBSEQUENT: () => HOLD_SUBSEQUENT, + IkConstraint: () => IkConstraint, + IkConstraintData: () => IkConstraintData, + IkConstraintTimeline: () => IkConstraintTimeline, + Inherit: () => Inherit, + InheritTimeline: () => InheritTimeline, + IntSet: () => IntSet, + Interpolation: () => Interpolation, + MathUtils: () => MathUtils, + MeshAttachment: () => MeshAttachment, + MixBlend: () => MixBlend, + MixDirection: () => MixDirection, + PathAttachment: () => PathAttachment, + PathConstraint: () => PathConstraint, + PathConstraintData: () => PathConstraintData, + PathConstraintMixTimeline: () => PathConstraintMixTimeline, + PathConstraintPositionTimeline: () => PathConstraintPositionTimeline, + PathConstraintSpacingTimeline: () => PathConstraintSpacingTimeline, + Physics: () => Physics, + PhysicsConstraintDampingTimeline: () => PhysicsConstraintDampingTimeline, + PhysicsConstraintGravityTimeline: () => PhysicsConstraintGravityTimeline, + PhysicsConstraintInertiaTimeline: () => PhysicsConstraintInertiaTimeline, + PhysicsConstraintMassTimeline: () => PhysicsConstraintMassTimeline, + PhysicsConstraintMixTimeline: () => PhysicsConstraintMixTimeline, + PhysicsConstraintResetTimeline: () => PhysicsConstraintResetTimeline, + PhysicsConstraintStrengthTimeline: () => PhysicsConstraintStrengthTimeline, + PhysicsConstraintTimeline: () => PhysicsConstraintTimeline, + PhysicsConstraintWindTimeline: () => PhysicsConstraintWindTimeline, + PointAttachment: () => PointAttachment, + Pool: () => Pool, + PositionMode: () => PositionMode, + Pow: () => Pow, + PowOut: () => PowOut, + RGB2Timeline: () => RGB2Timeline, + RGBA2Timeline: () => RGBA2Timeline, + RGBATimeline: () => RGBATimeline, + RGBTimeline: () => RGBTimeline, + RegionAttachment: () => RegionAttachment, + RotateMode: () => RotateMode, + RotateTimeline: () => RotateTimeline, + SETUP: () => SETUP, + SUBSEQUENT: () => SUBSEQUENT, + ScaleTimeline: () => ScaleTimeline, + ScaleXTimeline: () => ScaleXTimeline, + ScaleYTimeline: () => ScaleYTimeline, + SequenceTimeline: () => SequenceTimeline, + ShearTimeline: () => ShearTimeline, + ShearXTimeline: () => ShearXTimeline, + ShearYTimeline: () => ShearYTimeline, + Skeleton: () => Skeleton, + SkeletonBinary: () => SkeletonBinary, + SkeletonBounds: () => SkeletonBounds, + SkeletonClipping: () => SkeletonClipping, + SkeletonData: () => SkeletonData, + SkeletonJson: () => SkeletonJson, + Skin: () => Skin, + SkinEntry: () => SkinEntry, + Slot: () => Slot, + SlotData: () => SlotData, + SpacingMode: () => SpacingMode, + Spine: () => Spine, + SpineDebugRenderer: () => SpineDebugRenderer, + SpinePipe: () => SpinePipe, + SpineTexture: () => SpineTexture, + StringSet: () => StringSet, + Texture: () => Texture, + TextureAtlas: () => TextureAtlas, + TextureAtlasPage: () => TextureAtlasPage, + TextureAtlasRegion: () => TextureAtlasRegion, + TextureFilter: () => TextureFilter, + TextureRegion: () => TextureRegion, + TextureWrap: () => TextureWrap, + TimeKeeper: () => TimeKeeper, + Timeline: () => Timeline, + TrackEntry: () => TrackEntry, + TransformConstraint: () => TransformConstraint, + TransformConstraintData: () => TransformConstraintData, + TransformConstraintTimeline: () => TransformConstraintTimeline, + TranslateTimeline: () => TranslateTimeline, + TranslateXTimeline: () => TranslateXTimeline, + TranslateYTimeline: () => TranslateYTimeline, + Triangulator: () => Triangulator, + Utils: () => Utils, + Vector2: () => Vector2, + VertexAttachment: () => VertexAttachment, + WindowedMean: () => WindowedMean + }); + + // src/require-shim.ts + if (typeof window !== "undefined" && window.PIXI) { + const prevRequire = window.require; + window.require = (x) => { + if (prevRequire) + return prevRequire(x); + else if (x.startsWith("@pixi/") || x.startsWith("pixi.js")) + return window.PIXI; + }; + } + + // src/assets/atlasLoader.ts + var import_pixi2 = __require("pixi.js"); + + // src/SpineTexture.ts + var import_pixi = __require("pixi.js"); + + // node_modules/@esotericsoftware/spine-core/dist/Utils.js + var IntSet = class { + array = new Array(); + add(value) { + let contains = this.contains(value); + this.array[value | 0] = value | 0; + return !contains; + } + contains(value) { + return this.array[value | 0] != void 0; + } + remove(value) { + this.array[value | 0] = void 0; + } + clear() { + this.array.length = 0; + } + }; + var StringSet = class { + entries = {}; + size = 0; + add(value) { + let contains = this.entries[value]; + this.entries[value] = true; + if (!contains) { + this.size++; + return true; + } + return false; + } + addAll(values) { + let oldSize = this.size; + for (var i = 0, n = values.length; i < n; i++) + this.add(values[i]); + return oldSize != this.size; + } + contains(value) { + return this.entries[value]; + } + clear() { + this.entries = {}; + this.size = 0; + } + }; + var Color = class _Color { + r; + g; + b; + a; + static WHITE = new _Color(1, 1, 1, 1); + static RED = new _Color(1, 0, 0, 1); + static GREEN = new _Color(0, 1, 0, 1); + static BLUE = new _Color(0, 0, 1, 1); + static MAGENTA = new _Color(1, 0, 1, 1); + constructor(r = 0, g = 0, b = 0, a = 0) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + } + set(r, g, b, a) { + this.r = r; + this.g = g; + this.b = b; + this.a = a; + return this.clamp(); + } + setFromColor(c) { + this.r = c.r; + this.g = c.g; + this.b = c.b; + this.a = c.a; + return this; + } + setFromString(hex) { + hex = hex.charAt(0) == "#" ? hex.substr(1) : hex; + this.r = parseInt(hex.substr(0, 2), 16) / 255; + this.g = parseInt(hex.substr(2, 2), 16) / 255; + this.b = parseInt(hex.substr(4, 2), 16) / 255; + this.a = hex.length != 8 ? 1 : parseInt(hex.substr(6, 2), 16) / 255; + return this; + } + add(r, g, b, a) { + this.r += r; + this.g += g; + this.b += b; + this.a += a; + return this.clamp(); + } + clamp() { + if (this.r < 0) + this.r = 0; + else if (this.r > 1) + this.r = 1; + if (this.g < 0) + this.g = 0; + else if (this.g > 1) + this.g = 1; + if (this.b < 0) + this.b = 0; + else if (this.b > 1) + this.b = 1; + if (this.a < 0) + this.a = 0; + else if (this.a > 1) + this.a = 1; + return this; + } + static rgba8888ToColor(color, value) { + color.r = ((value & 4278190080) >>> 24) / 255; + color.g = ((value & 16711680) >>> 16) / 255; + color.b = ((value & 65280) >>> 8) / 255; + color.a = (value & 255) / 255; + } + static rgb888ToColor(color, value) { + color.r = ((value & 16711680) >>> 16) / 255; + color.g = ((value & 65280) >>> 8) / 255; + color.b = (value & 255) / 255; + } + toRgb888() { + const hex = (x) => ("0" + (x * 255).toString(16)).slice(-2); + return Number("0x" + hex(this.r) + hex(this.g) + hex(this.b)); + } + static fromString(hex) { + return new _Color().setFromString(hex); + } + }; + var MathUtils = class _MathUtils { + static PI = 3.1415927; + static PI2 = _MathUtils.PI * 2; + static invPI2 = 1 / _MathUtils.PI2; + static radiansToDegrees = 180 / _MathUtils.PI; + static radDeg = _MathUtils.radiansToDegrees; + static degreesToRadians = _MathUtils.PI / 180; + static degRad = _MathUtils.degreesToRadians; + static clamp(value, min, max) { + if (value < min) + return min; + if (value > max) + return max; + return value; + } + static cosDeg(degrees) { + return Math.cos(degrees * _MathUtils.degRad); + } + static sinDeg(degrees) { + return Math.sin(degrees * _MathUtils.degRad); + } + static atan2Deg(y, x) { + return Math.atan2(y, x) * _MathUtils.degRad; + } + static signum(value) { + return value > 0 ? 1 : value < 0 ? -1 : 0; + } + static toInt(x) { + return x > 0 ? Math.floor(x) : Math.ceil(x); + } + static cbrt(x) { + let y = Math.pow(Math.abs(x), 1 / 3); + return x < 0 ? -y : y; + } + static randomTriangular(min, max) { + return _MathUtils.randomTriangularWith(min, max, (min + max) * 0.5); + } + static randomTriangularWith(min, max, mode) { + let u = Math.random(); + let d = max - min; + if (u <= (mode - min) / d) + return min + Math.sqrt(u * d * (mode - min)); + return max - Math.sqrt((1 - u) * d * (max - mode)); + } + static isPowerOfTwo(value) { + return value && (value & value - 1) === 0; + } + }; + var Interpolation = class { + apply(start, end, a) { + return start + (end - start) * this.applyInternal(a); + } + }; + var Pow = class extends Interpolation { + power = 2; + constructor(power) { + super(); + this.power = power; + } + applyInternal(a) { + if (a <= 0.5) + return Math.pow(a * 2, this.power) / 2; + return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1; + } + }; + var PowOut = class extends Pow { + constructor(power) { + super(power); + } + applyInternal(a) { + return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1; + } + }; + var Utils = class _Utils { + static SUPPORTS_TYPED_ARRAYS = typeof Float32Array !== "undefined"; + static arrayCopy(source, sourceStart, dest, destStart, numElements) { + for (let i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) { + dest[j] = source[i]; + } + } + static arrayFill(array, fromIndex, toIndex, value) { + for (let i = fromIndex; i < toIndex; i++) + array[i] = value; + } + static setArraySize(array, size, value = 0) { + let oldSize = array.length; + if (oldSize == size) + return array; + array.length = size; + if (oldSize < size) { + for (let i = oldSize; i < size; i++) + array[i] = value; + } + return array; + } + static ensureArrayCapacity(array, size, value = 0) { + if (array.length >= size) + return array; + return _Utils.setArraySize(array, size, value); + } + static newArray(size, defaultValue) { + let array = new Array(size); + for (let i = 0; i < size; i++) + array[i] = defaultValue; + return array; + } + static newFloatArray(size) { + if (_Utils.SUPPORTS_TYPED_ARRAYS) + return new Float32Array(size); + else { + let array = new Array(size); + for (let i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + } + static newShortArray(size) { + if (_Utils.SUPPORTS_TYPED_ARRAYS) + return new Int16Array(size); + else { + let array = new Array(size); + for (let i = 0; i < array.length; i++) + array[i] = 0; + return array; + } + } + static toFloatArray(array) { + return _Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array; + } + static toSinglePrecision(value) { + return _Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value; + } + // This function is used to fix WebKit 602 specific issue described at http://esotericsoftware.com/forum/iOS-10-disappearing-graphics-10109 + static webkit602BugfixHelper(alpha, blend) { + } + static contains(array, element, identity = true) { + for (var i = 0; i < array.length; i++) + if (array[i] == element) + return true; + return false; + } + static enumValue(type, name) { + return type[name[0].toUpperCase() + name.slice(1)]; + } + }; + var DebugUtils = class { + static logBones(skeleton) { + for (let i = 0; i < skeleton.bones.length; i++) { + let bone = skeleton.bones[i]; + console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY); + } + } + }; + var Pool = class { + items = new Array(); + instantiator; + constructor(instantiator) { + this.instantiator = instantiator; + } + obtain() { + return this.items.length > 0 ? this.items.pop() : this.instantiator(); + } + free(item) { + if (item.reset) + item.reset(); + this.items.push(item); + } + freeAll(items) { + for (let i = 0; i < items.length; i++) + this.free(items[i]); + } + clear() { + this.items.length = 0; + } + }; + var Vector2 = class { + x; + y; + constructor(x = 0, y = 0) { + this.x = x; + this.y = y; + } + set(x, y) { + this.x = x; + this.y = y; + return this; + } + length() { + let x = this.x; + let y = this.y; + return Math.sqrt(x * x + y * y); + } + normalize() { + let len = this.length(); + if (len != 0) { + this.x /= len; + this.y /= len; + } + return this; + } + }; + var TimeKeeper = class { + maxDelta = 0.064; + framesPerSecond = 0; + delta = 0; + totalTime = 0; + lastTime = Date.now() / 1e3; + frameCount = 0; + frameTime = 0; + update() { + let now = Date.now() / 1e3; + this.delta = now - this.lastTime; + this.frameTime += this.delta; + this.totalTime += this.delta; + if (this.delta > this.maxDelta) + this.delta = this.maxDelta; + this.lastTime = now; + this.frameCount++; + if (this.frameTime > 1) { + this.framesPerSecond = this.frameCount / this.frameTime; + this.frameTime = 0; + this.frameCount = 0; + } + } + }; + var WindowedMean = class { + values; + addedValues = 0; + lastValue = 0; + mean = 0; + dirty = true; + constructor(windowSize = 32) { + this.values = new Array(windowSize); + } + hasEnoughData() { + return this.addedValues >= this.values.length; + } + addValue(value) { + if (this.addedValues < this.values.length) + this.addedValues++; + this.values[this.lastValue++] = value; + if (this.lastValue > this.values.length - 1) + this.lastValue = 0; + this.dirty = true; + } + getMean() { + if (this.hasEnoughData()) { + if (this.dirty) { + let mean = 0; + for (let i = 0; i < this.values.length; i++) + mean += this.values[i]; + this.mean = mean / this.values.length; + this.dirty = false; + } + return this.mean; + } + return 0; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/attachments/Attachment.js + var Attachment = class { + name; + constructor(name) { + if (!name) + throw new Error("name cannot be null."); + this.name = name; + } + }; + var VertexAttachment = class _VertexAttachment extends Attachment { + static nextID = 0; + /** The unique ID for this attachment. */ + id = _VertexAttachment.nextID++; + /** The bones which affect the {@link #getVertices()}. The array entries are, for each vertex, the number of bones affecting + * the vertex followed by that many bone indices, which is the index of the bone in {@link Skeleton#bones}. Will be null + * if this attachment has no weights. */ + bones = null; + /** The vertex positions in the bone's coordinate system. For a non-weighted attachment, the values are `x,y` + * entries for each vertex. For a weighted attachment, the values are `x,y,weight` entries for each bone affecting + * each vertex. */ + vertices = []; + /** The maximum number of world vertex values that can be output by + * {@link #computeWorldVertices()} using the `count` parameter. */ + worldVerticesLength = 0; + /** Timelines for the timeline attachment are also applied to this attachment. + * May be null if no attachment-specific timelines should be applied. */ + timelineAttachment = this; + constructor(name) { + super(name); + } + /** Transforms the attachment's local {@link #vertices} to world coordinates. If the slot's {@link Slot#deform} is + * not empty, it is used to deform the vertices. + * + * See [World transforms](http://esotericsoftware.com/spine-runtime-skeletons#World-transforms) in the Spine + * Runtimes Guide. + * @param start The index of the first {@link #vertices} value to transform. Each vertex has 2 values, x and y. + * @param count The number of world vertex values to output. Must be <= {@link #worldVerticesLength} - `start`. + * @param worldVertices The output world vertices. Must have a length >= `offset` + `count` * + * `stride` / 2. + * @param offset The `worldVertices` index to begin writing values. + * @param stride The number of `worldVertices` entries between the value pairs written. */ + computeWorldVertices(slot, start, count, worldVertices, offset, stride) { + count = offset + (count >> 1) * stride; + let skeleton = slot.bone.skeleton; + let deformArray = slot.deform; + let vertices = this.vertices; + let bones = this.bones; + if (!bones) { + if (deformArray.length > 0) + vertices = deformArray; + let bone = slot.bone; + let x = bone.worldX; + let y = bone.worldY; + let a = bone.a, b = bone.b, c = bone.c, d = bone.d; + for (let v2 = start, w = offset; w < count; v2 += 2, w += stride) { + let vx = vertices[v2], vy = vertices[v2 + 1]; + worldVertices[w] = vx * a + vy * b + x; + worldVertices[w + 1] = vx * c + vy * d + y; + } + return; + } + let v = 0, skip = 0; + for (let i = 0; i < start; i += 2) { + let n = bones[v]; + v += n + 1; + skip += n; + } + let skeletonBones = skeleton.bones; + if (deformArray.length == 0) { + for (let w = offset, b = skip * 3; w < count; w += stride) { + let wx = 0, wy = 0; + let n = bones[v++]; + n += v; + for (; v < n; v++, b += 3) { + let bone = skeletonBones[bones[v]]; + let vx = vertices[b], vy = vertices[b + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } else { + let deform = deformArray; + for (let w = offset, b = skip * 3, f = skip << 1; w < count; w += stride) { + let wx = 0, wy = 0; + let n = bones[v++]; + n += v; + for (; v < n; v++, b += 3, f += 2) { + let bone = skeletonBones[bones[v]]; + let vx = vertices[b] + deform[f], vy = vertices[b + 1] + deform[f + 1], weight = vertices[b + 2]; + wx += (vx * bone.a + vy * bone.b + bone.worldX) * weight; + wy += (vx * bone.c + vy * bone.d + bone.worldY) * weight; + } + worldVertices[w] = wx; + worldVertices[w + 1] = wy; + } + } + } + /** Does not copy id (generated) or name (set on construction). **/ + copyTo(attachment) { + if (this.bones) { + attachment.bones = new Array(this.bones.length); + Utils.arrayCopy(this.bones, 0, attachment.bones, 0, this.bones.length); + } else + attachment.bones = null; + if (this.vertices) { + attachment.vertices = Utils.newFloatArray(this.vertices.length); + Utils.arrayCopy(this.vertices, 0, attachment.vertices, 0, this.vertices.length); + } + attachment.worldVerticesLength = this.worldVerticesLength; + attachment.timelineAttachment = this.timelineAttachment; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/attachments/Sequence.js + var Sequence = class _Sequence { + static _nextID = 0; + id = _Sequence.nextID(); + regions; + start = 0; + digits = 0; + /** The index of the region to show for the setup pose. */ + setupIndex = 0; + constructor(count) { + this.regions = new Array(count); + } + copy() { + let copy = new _Sequence(this.regions.length); + Utils.arrayCopy(this.regions, 0, copy.regions, 0, this.regions.length); + copy.start = this.start; + copy.digits = this.digits; + copy.setupIndex = this.setupIndex; + return copy; + } + apply(slot, attachment) { + let index = slot.sequenceIndex; + if (index == -1) + index = this.setupIndex; + if (index >= this.regions.length) + index = this.regions.length - 1; + let region = this.regions[index]; + if (attachment.region != region) { + attachment.region = region; + attachment.updateRegion(); + } + } + getPath(basePath, index) { + let result = basePath; + let frame = (this.start + index).toString(); + for (let i = this.digits - frame.length; i > 0; i--) + result += "0"; + result += frame; + return result; + } + static nextID() { + return _Sequence._nextID++; + } + }; + var SequenceMode; + (function(SequenceMode2) { + SequenceMode2[SequenceMode2["hold"] = 0] = "hold"; + SequenceMode2[SequenceMode2["once"] = 1] = "once"; + SequenceMode2[SequenceMode2["loop"] = 2] = "loop"; + SequenceMode2[SequenceMode2["pingpong"] = 3] = "pingpong"; + SequenceMode2[SequenceMode2["onceReverse"] = 4] = "onceReverse"; + SequenceMode2[SequenceMode2["loopReverse"] = 5] = "loopReverse"; + SequenceMode2[SequenceMode2["pingpongReverse"] = 6] = "pingpongReverse"; + })(SequenceMode || (SequenceMode = {})); + var SequenceModeValues = [ + SequenceMode.hold, + SequenceMode.once, + SequenceMode.loop, + SequenceMode.pingpong, + SequenceMode.onceReverse, + SequenceMode.loopReverse, + SequenceMode.pingpongReverse + ]; + + // node_modules/@esotericsoftware/spine-core/dist/Animation.js + var Animation = class { + /** The animation's name, which is unique across all animations in the skeleton. */ + name; + timelines = []; + timelineIds = new StringSet(); + /** The duration of the animation in seconds, which is the highest time of all keys in the timeline. */ + duration; + constructor(name, timelines, duration) { + if (!name) + throw new Error("name cannot be null."); + this.name = name; + this.setTimelines(timelines); + this.duration = duration; + } + setTimelines(timelines) { + if (!timelines) + throw new Error("timelines cannot be null."); + this.timelines = timelines; + this.timelineIds.clear(); + for (var i = 0; i < timelines.length; i++) + this.timelineIds.addAll(timelines[i].getPropertyIds()); + } + hasTimeline(ids) { + for (let i = 0; i < ids.length; i++) + if (this.timelineIds.contains(ids[i])) + return true; + return false; + } + /** Applies all the animation's timelines to the specified skeleton. + * + * See Timeline {@link Timeline#apply(Skeleton, float, float, Array, float, MixBlend, MixDirection)}. + * @param loop If true, the animation repeats after {@link #getDuration()}. + * @param events May be null to ignore fired events. */ + apply(skeleton, lastTime, time, loop, events, alpha, blend, direction) { + if (!skeleton) + throw new Error("skeleton cannot be null."); + if (loop && this.duration != 0) { + time %= this.duration; + if (lastTime > 0) + lastTime %= this.duration; + } + let timelines = this.timelines; + for (let i = 0, n = timelines.length; i < n; i++) + timelines[i].apply(skeleton, lastTime, time, events, alpha, blend, direction); + } + }; + var MixBlend; + (function(MixBlend2) { + MixBlend2[MixBlend2["setup"] = 0] = "setup"; + MixBlend2[MixBlend2["first"] = 1] = "first"; + MixBlend2[MixBlend2["replace"] = 2] = "replace"; + MixBlend2[MixBlend2["add"] = 3] = "add"; + })(MixBlend || (MixBlend = {})); + var MixDirection; + (function(MixDirection2) { + MixDirection2[MixDirection2["mixIn"] = 0] = "mixIn"; + MixDirection2[MixDirection2["mixOut"] = 1] = "mixOut"; + })(MixDirection || (MixDirection = {})); + var Property = { + 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 + }; + var Timeline = class { + propertyIds; + frames; + constructor(frameCount, propertyIds) { + this.propertyIds = propertyIds; + this.frames = Utils.newFloatArray(frameCount * 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(frames, time) { + let n = frames.length; + for (let i = 1; i < n; i++) + if (frames[i] > time) + return i - 1; + return n - 1; + } + static search(frames, time, step) { + let n = frames.length; + for (let i = step; i < n; i += step) + if (frames[i] > time) + return i - step; + return n - step; + } + }; + var CurveTimeline = class extends Timeline { + curves; + // type, x, y, ... + constructor(frameCount, bezierCount, propertyIds) { + super(frameCount, propertyIds); + this.curves = Utils.newFloatArray( + frameCount + bezierCount * 18 + /*BEZIER_SIZE*/ + ); + this.curves[frameCount - 1] = 1; + } + /** Sets the specified key frame to linear interpolation. */ + setLinear(frame) { + this.curves[frame] = 0; + } + /** Sets the specified key frame to stepped interpolation. */ + setStepped(frame) { + this.curves[frame] = 1; + } + /** Shrinks the storage for Bezier curves, for use when bezierCount (specified in the constructor) was larger + * than the actual number of Bezier curves. */ + shrink(bezierCount) { + let size = this.getFrameCount() + bezierCount * 18; + if (this.curves.length > size) { + let newCurves = Utils.newFloatArray(size); + Utils.arrayCopy(this.curves, 0, newCurves, 0, size); + this.curves = newCurves; + } + } + /** Stores the segments for the specified Bezier curve. For timelines that modify multiple values, there may be more than + * one curve per frame. + * @param bezier The ordinal of this Bezier curve for this timeline, between 0 and bezierCount - 1 (specified + * in the constructor), inclusive. + * @param frame Between 0 and frameCount - 1, inclusive. + * @param value The index of the value for this frame that this curve is used for. + * @param time1 The time for the first key. + * @param value1 The value for the first key. + * @param cx1 The time for the first Bezier handle. + * @param cy1 The value for the first Bezier handle. + * @param cx2 The time of the second Bezier handle. + * @param cy2 The value for the second Bezier handle. + * @param time2 The time for the second key. + * @param value2 The value for the second key. */ + setBezier(bezier, frame, value, time1, value1, cx1, cy1, cx2, cy2, time2, value2) { + let curves = this.curves; + let i = this.getFrameCount() + bezier * 18; + if (value == 0) + curves[frame] = 2 + i; + let tmpx = (time1 - cx1 * 2 + cx2) * 0.03, tmpy = (value1 - cy1 * 2 + cy2) * 0.03; + let dddx = ((cx1 - cx2) * 3 - time1 + time2) * 6e-3, dddy = ((cy1 - cy2) * 3 - value1 + value2) * 6e-3; + let ddx = tmpx * 2 + dddx, ddy = tmpy * 2 + dddy; + let dx = (cx1 - time1) * 0.3 + tmpx + dddx * 0.16666667, dy = (cy1 - value1) * 0.3 + tmpy + dddy * 0.16666667; + let x = time1 + dx, y = value1 + dy; + for (let n = i + 18; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dx += ddx; + dy += ddy; + ddx += dddx; + ddy += dddy; + x += dx; + y += dy; + } + } + /** Returns the Bezier interpolated value for the specified time. + * @param frameIndex The index into {@link #getFrames()} for the values of the frame before time. + * @param valueOffset The offset from frameIndex to the value this curve is used for. + * @param i The index of the Bezier segments. See {@link #getCurveType(int)}. */ + getBezierValue(time, frameIndex, valueOffset, i) { + let curves = this.curves; + if (curves[i] > time) { + let x2 = this.frames[frameIndex], y2 = this.frames[frameIndex + valueOffset]; + return y2 + (time - x2) / (curves[i] - x2) * (curves[i + 1] - y2); + } + let n = i + 18; + for (i += 2; i < n; i += 2) { + if (curves[i] >= time) { + let x2 = curves[i - 2], y2 = curves[i - 1]; + return y2 + (time - x2) / (curves[i] - x2) * (curves[i + 1] - y2); + } + } + frameIndex += this.getFrameEntries(); + let x = curves[n - 2], y = curves[n - 1]; + return y + (time - x) / (this.frames[frameIndex] - x) * (this.frames[frameIndex + valueOffset] - y); + } + }; + var CurveTimeline1 = class extends CurveTimeline { + constructor(frameCount, bezierCount, propertyId) { + super(frameCount, bezierCount, [propertyId]); + } + getFrameEntries() { + return 2; + } + /** Sets the time and value for the specified frame. + * @param frame Between 0 and frameCount, inclusive. + * @param time The frame time in seconds. */ + setFrame(frame, time, value) { + frame <<= 1; + this.frames[frame] = time; + this.frames[ + frame + 1 + /*VALUE*/ + ] = value; + } + /** Returns the interpolated value for the specified time. */ + getCurveValue(time) { + let frames = this.frames; + let i = frames.length - 2; + for (let ii = 2; ii <= i; ii += 2) { + if (frames[ii] > time) { + i = ii - 2; + break; + } + } + let curveType = this.curves[i >> 1]; + switch (curveType) { + case 0: + let before = frames[i], value = frames[ + i + 1 + /*VALUE*/ + ]; + return value + (time - before) / (frames[ + i + 2 + /*ENTRIES*/ + ] - before) * (frames[ + i + 2 + 1 + /*VALUE*/ + ] - value); + case 1: + return frames[ + i + 1 + /*VALUE*/ + ]; + } + return this.getBezierValue( + time, + i, + 1, + curveType - 2 + /*BEZIER*/ + ); + } + getRelativeValue(time, alpha, blend, current, setup) { + if (time < this.frames[0]) { + switch (blend) { + case MixBlend.setup: + return setup; + case MixBlend.first: + return current + (setup - current) * alpha; + } + return current; + } + let value = this.getCurveValue(time); + switch (blend) { + case MixBlend.setup: + return setup + value * alpha; + case MixBlend.first: + case MixBlend.replace: + value += setup - current; + } + return current + value * alpha; + } + getAbsoluteValue(time, alpha, blend, current, setup) { + if (time < this.frames[0]) { + switch (blend) { + case MixBlend.setup: + return setup; + case MixBlend.first: + return current + (setup - current) * alpha; + } + return current; + } + let value = this.getCurveValue(time); + if (blend == MixBlend.setup) + return setup + (value - setup) * alpha; + return current + (value - current) * alpha; + } + getAbsoluteValue2(time, alpha, blend, current, setup, value) { + if (time < this.frames[0]) { + switch (blend) { + case MixBlend.setup: + return setup; + case MixBlend.first: + return current + (setup - current) * alpha; + } + return current; + } + if (blend == MixBlend.setup) + return setup + (value - setup) * alpha; + return current + (value - current) * alpha; + } + getScaleValue(time, alpha, blend, direction, current, setup) { + const frames = this.frames; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + return setup; + case MixBlend.first: + return current + (setup - current) * alpha; + } + return current; + } + let value = this.getCurveValue(time) * setup; + if (alpha == 1) { + if (blend == MixBlend.add) + return current + value - setup; + return value; + } + if (direction == MixDirection.mixOut) { + switch (blend) { + case MixBlend.setup: + return setup + (Math.abs(value) * MathUtils.signum(setup) - setup) * alpha; + case MixBlend.first: + case MixBlend.replace: + return current + (Math.abs(value) * MathUtils.signum(current) - current) * alpha; + } + } else { + let s = 0; + switch (blend) { + case MixBlend.setup: + s = Math.abs(setup) * MathUtils.signum(value); + return s + (value - s) * alpha; + case MixBlend.first: + case MixBlend.replace: + s = Math.abs(current) * MathUtils.signum(value); + return s + (value - s) * alpha; + } + } + return current + (value - setup) * alpha; + } + }; + var CurveTimeline2 = class extends CurveTimeline { + /** @param bezierCount The maximum number of Bezier curves. See {@link #shrink(int)}. + * @param propertyIds Unique identifiers for the properties the timeline modifies. */ + constructor(frameCount, bezierCount, propertyId1, propertyId2) { + super(frameCount, bezierCount, [propertyId1, propertyId2]); + } + getFrameEntries() { + return 3; + } + /** Sets the time and values for the specified frame. + * @param frame Between 0 and frameCount, inclusive. + * @param time The frame time in seconds. */ + setFrame(frame, time, value1, value2) { + frame *= 3; + this.frames[frame] = time; + this.frames[ + frame + 1 + /*VALUE1*/ + ] = value1; + this.frames[ + frame + 2 + /*VALUE2*/ + ] = value2; + } + }; + var RotateTimeline = class extends CurveTimeline1 { + boneIndex = 0; + constructor(frameCount, bezierCount, boneIndex) { + super(frameCount, bezierCount, Property.rotate + "|" + boneIndex); + this.boneIndex = boneIndex; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let bone = skeleton.bones[this.boneIndex]; + if (bone.active) + bone.rotation = this.getRelativeValue(time, alpha, blend, bone.rotation, bone.data.rotation); + } + }; + var TranslateTimeline = class extends CurveTimeline2 { + boneIndex = 0; + constructor(frameCount, bezierCount, boneIndex) { + super(frameCount, bezierCount, Property.x + "|" + boneIndex, Property.y + "|" + boneIndex); + this.boneIndex = boneIndex; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let bone = skeleton.bones[this.boneIndex]; + if (!bone.active) + return; + let frames = this.frames; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.x = bone.data.x; + bone.y = bone.data.y; + return; + case MixBlend.first: + bone.x += (bone.data.x - bone.x) * alpha; + bone.y += (bone.data.y - bone.y) * alpha; + } + return; + } + let x = 0, y = 0; + let i = Timeline.search( + frames, + time, + 3 + /*ENTRIES*/ + ); + let curveType = this.curves[ + i / 3 + /*ENTRIES*/ + ]; + switch (curveType) { + case 0: + let before = frames[i]; + x = frames[ + i + 1 + /*VALUE1*/ + ]; + y = frames[ + i + 2 + /*VALUE2*/ + ]; + let t = (time - before) / (frames[ + i + 3 + /*ENTRIES*/ + ] - before); + x += (frames[ + i + 3 + 1 + /*VALUE1*/ + ] - x) * t; + y += (frames[ + i + 3 + 2 + /*VALUE2*/ + ] - y) * t; + break; + case 1: + x = frames[ + i + 1 + /*VALUE1*/ + ]; + y = frames[ + i + 2 + /*VALUE2*/ + ]; + break; + default: + x = this.getBezierValue( + time, + i, + 1, + curveType - 2 + /*BEZIER*/ + ); + y = this.getBezierValue( + time, + i, + 2, + curveType + 18 - 2 + /*BEZIER*/ + ); + } + switch (blend) { + case MixBlend.setup: + bone.x = bone.data.x + x * alpha; + bone.y = bone.data.y + y * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + bone.x += (bone.data.x + x - bone.x) * alpha; + bone.y += (bone.data.y + y - bone.y) * alpha; + break; + case MixBlend.add: + bone.x += x * alpha; + bone.y += y * alpha; + } + } + }; + var TranslateXTimeline = class extends CurveTimeline1 { + boneIndex = 0; + constructor(frameCount, bezierCount, boneIndex) { + super(frameCount, bezierCount, Property.x + "|" + boneIndex); + this.boneIndex = boneIndex; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let bone = skeleton.bones[this.boneIndex]; + if (bone.active) + bone.x = this.getRelativeValue(time, alpha, blend, bone.x, bone.data.x); + } + }; + var TranslateYTimeline = class extends CurveTimeline1 { + boneIndex = 0; + constructor(frameCount, bezierCount, boneIndex) { + super(frameCount, bezierCount, Property.y + "|" + boneIndex); + this.boneIndex = boneIndex; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let bone = skeleton.bones[this.boneIndex]; + if (bone.active) + bone.y = this.getRelativeValue(time, alpha, blend, bone.y, bone.data.y); + } + }; + var ScaleTimeline = class extends CurveTimeline2 { + boneIndex = 0; + constructor(frameCount, bezierCount, boneIndex) { + super(frameCount, bezierCount, Property.scaleX + "|" + boneIndex, Property.scaleY + "|" + boneIndex); + this.boneIndex = boneIndex; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let bone = skeleton.bones[this.boneIndex]; + if (!bone.active) + return; + let frames = this.frames; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.scaleX = bone.data.scaleX; + bone.scaleY = bone.data.scaleY; + return; + case MixBlend.first: + bone.scaleX += (bone.data.scaleX - bone.scaleX) * alpha; + bone.scaleY += (bone.data.scaleY - bone.scaleY) * alpha; + } + return; + } + let x, y; + let i = Timeline.search( + frames, + time, + 3 + /*ENTRIES*/ + ); + let curveType = this.curves[ + i / 3 + /*ENTRIES*/ + ]; + switch (curveType) { + case 0: + let before = frames[i]; + x = frames[ + i + 1 + /*VALUE1*/ + ]; + y = frames[ + i + 2 + /*VALUE2*/ + ]; + let t = (time - before) / (frames[ + i + 3 + /*ENTRIES*/ + ] - before); + x += (frames[ + i + 3 + 1 + /*VALUE1*/ + ] - x) * t; + y += (frames[ + i + 3 + 2 + /*VALUE2*/ + ] - y) * t; + break; + case 1: + x = frames[ + i + 1 + /*VALUE1*/ + ]; + y = frames[ + i + 2 + /*VALUE2*/ + ]; + break; + default: + x = this.getBezierValue( + time, + i, + 1, + curveType - 2 + /*BEZIER*/ + ); + y = this.getBezierValue( + time, + i, + 2, + curveType + 18 - 2 + /*BEZIER*/ + ); + } + x *= bone.data.scaleX; + y *= bone.data.scaleY; + if (alpha == 1) { + if (blend == MixBlend.add) { + bone.scaleX += x - bone.data.scaleX; + bone.scaleY += y - bone.data.scaleY; + } else { + bone.scaleX = x; + bone.scaleY = y; + } + } else { + let bx = 0, by = 0; + if (direction == MixDirection.mixOut) { + switch (blend) { + case MixBlend.setup: + bx = bone.data.scaleX; + by = bone.data.scaleY; + bone.scaleX = bx + (Math.abs(x) * MathUtils.signum(bx) - bx) * alpha; + bone.scaleY = by + (Math.abs(y) * MathUtils.signum(by) - by) * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + bx = bone.scaleX; + by = bone.scaleY; + bone.scaleX = bx + (Math.abs(x) * MathUtils.signum(bx) - bx) * alpha; + bone.scaleY = by + (Math.abs(y) * MathUtils.signum(by) - by) * alpha; + break; + case MixBlend.add: + bone.scaleX += (x - bone.data.scaleX) * alpha; + bone.scaleY += (y - bone.data.scaleY) * alpha; + } + } else { + switch (blend) { + case MixBlend.setup: + bx = Math.abs(bone.data.scaleX) * MathUtils.signum(x); + by = Math.abs(bone.data.scaleY) * MathUtils.signum(y); + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + bx = Math.abs(bone.scaleX) * MathUtils.signum(x); + by = Math.abs(bone.scaleY) * MathUtils.signum(y); + bone.scaleX = bx + (x - bx) * alpha; + bone.scaleY = by + (y - by) * alpha; + break; + case MixBlend.add: + bone.scaleX += (x - bone.data.scaleX) * alpha; + bone.scaleY += (y - bone.data.scaleY) * alpha; + } + } + } + } + }; + var ScaleXTimeline = class extends CurveTimeline1 { + boneIndex = 0; + constructor(frameCount, bezierCount, boneIndex) { + super(frameCount, bezierCount, Property.scaleX + "|" + boneIndex); + this.boneIndex = boneIndex; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let bone = skeleton.bones[this.boneIndex]; + if (bone.active) + bone.scaleX = this.getScaleValue(time, alpha, blend, direction, bone.scaleX, bone.data.scaleX); + } + }; + var ScaleYTimeline = class extends CurveTimeline1 { + boneIndex = 0; + constructor(frameCount, bezierCount, boneIndex) { + super(frameCount, bezierCount, Property.scaleY + "|" + boneIndex); + this.boneIndex = boneIndex; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let bone = skeleton.bones[this.boneIndex]; + if (bone.active) + bone.scaleY = this.getScaleValue(time, alpha, blend, direction, bone.scaleY, bone.data.scaleY); + } + }; + var ShearTimeline = class extends CurveTimeline2 { + boneIndex = 0; + constructor(frameCount, bezierCount, boneIndex) { + super(frameCount, bezierCount, Property.shearX + "|" + boneIndex, Property.shearY + "|" + boneIndex); + this.boneIndex = boneIndex; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let bone = skeleton.bones[this.boneIndex]; + if (!bone.active) + return; + let frames = this.frames; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.shearX = bone.data.shearX; + bone.shearY = bone.data.shearY; + return; + case MixBlend.first: + bone.shearX += (bone.data.shearX - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY - bone.shearY) * alpha; + } + return; + } + let x = 0, y = 0; + let i = Timeline.search( + frames, + time, + 3 + /*ENTRIES*/ + ); + let curveType = this.curves[ + i / 3 + /*ENTRIES*/ + ]; + switch (curveType) { + case 0: + let before = frames[i]; + x = frames[ + i + 1 + /*VALUE1*/ + ]; + y = frames[ + i + 2 + /*VALUE2*/ + ]; + let t = (time - before) / (frames[ + i + 3 + /*ENTRIES*/ + ] - before); + x += (frames[ + i + 3 + 1 + /*VALUE1*/ + ] - x) * t; + y += (frames[ + i + 3 + 2 + /*VALUE2*/ + ] - y) * t; + break; + case 1: + x = frames[ + i + 1 + /*VALUE1*/ + ]; + y = frames[ + i + 2 + /*VALUE2*/ + ]; + break; + default: + x = this.getBezierValue( + time, + i, + 1, + curveType - 2 + /*BEZIER*/ + ); + y = this.getBezierValue( + time, + i, + 2, + curveType + 18 - 2 + /*BEZIER*/ + ); + } + switch (blend) { + case MixBlend.setup: + bone.shearX = bone.data.shearX + x * alpha; + bone.shearY = bone.data.shearY + y * alpha; + break; + case MixBlend.first: + case MixBlend.replace: + bone.shearX += (bone.data.shearX + x - bone.shearX) * alpha; + bone.shearY += (bone.data.shearY + y - bone.shearY) * alpha; + break; + case MixBlend.add: + bone.shearX += x * alpha; + bone.shearY += y * alpha; + } + } + }; + var ShearXTimeline = class extends CurveTimeline1 { + boneIndex = 0; + constructor(frameCount, bezierCount, boneIndex) { + super(frameCount, bezierCount, Property.shearX + "|" + boneIndex); + this.boneIndex = boneIndex; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let bone = skeleton.bones[this.boneIndex]; + if (bone.active) + bone.shearX = this.getRelativeValue(time, alpha, blend, bone.shearX, bone.data.shearX); + } + }; + var ShearYTimeline = class extends CurveTimeline1 { + boneIndex = 0; + constructor(frameCount, bezierCount, boneIndex) { + super(frameCount, bezierCount, Property.shearY + "|" + boneIndex); + this.boneIndex = boneIndex; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let bone = skeleton.bones[this.boneIndex]; + if (bone.active) + bone.shearY = this.getRelativeValue(time, alpha, blend, bone.shearY, bone.data.shearY); + } + }; + var InheritTimeline = class extends Timeline { + boneIndex = 0; + constructor(frameCount, boneIndex) { + super(frameCount, [Property.inherit + "|" + boneIndex]); + this.boneIndex = boneIndex; + } + getFrameEntries() { + return 2; + } + /** Sets the transform mode for the specified frame. + * @param frame Between 0 and frameCount, inclusive. + * @param time The frame time in seconds. */ + setFrame(frame, time, inherit) { + frame *= 2; + this.frames[frame] = time; + this.frames[ + frame + 1 + /*INHERIT*/ + ] = inherit; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let bone = skeleton.bones[this.boneIndex]; + if (!bone.active) + return; + let frames = this.frames; + if (time < frames[0]) { + if (blend == MixBlend.setup || blend == MixBlend.first) + bone.inherit = bone.data.inherit; + return; + } + bone.inherit = this.frames[ + Timeline.search( + frames, + time, + 2 + /*ENTRIES*/ + ) + 1 + /*INHERIT*/ + ]; + } + }; + var RGBATimeline = class extends CurveTimeline { + slotIndex = 0; + constructor(frameCount, bezierCount, slotIndex) { + super(frameCount, bezierCount, [ + Property.rgb + "|" + slotIndex, + Property.alpha + "|" + slotIndex + ]); + this.slotIndex = slotIndex; + } + getFrameEntries() { + return 5; + } + /** Sets the time in seconds, red, green, blue, and alpha for the specified key frame. */ + setFrame(frame, time, r, g, b, a) { + frame *= 5; + this.frames[frame] = time; + this.frames[ + frame + 1 + /*R*/ + ] = r; + this.frames[ + frame + 2 + /*G*/ + ] = g; + this.frames[ + frame + 3 + /*B*/ + ] = b; + this.frames[ + frame + 4 + /*A*/ + ] = a; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + let frames = this.frames; + let color = slot.color; + if (time < frames[0]) { + let setup = slot.data.color; + switch (blend) { + case MixBlend.setup: + color.setFromColor(setup); + return; + case MixBlend.first: + color.add((setup.r - color.r) * alpha, (setup.g - color.g) * alpha, (setup.b - color.b) * alpha, (setup.a - color.a) * alpha); + } + return; + } + let r = 0, g = 0, b = 0, a = 0; + let i = Timeline.search( + frames, + time, + 5 + /*ENTRIES*/ + ); + let curveType = this.curves[ + i / 5 + /*ENTRIES*/ + ]; + switch (curveType) { + case 0: + let before = frames[i]; + r = frames[ + i + 1 + /*R*/ + ]; + g = frames[ + i + 2 + /*G*/ + ]; + b = frames[ + i + 3 + /*B*/ + ]; + a = frames[ + i + 4 + /*A*/ + ]; + let t = (time - before) / (frames[ + i + 5 + /*ENTRIES*/ + ] - before); + r += (frames[ + i + 5 + 1 + /*R*/ + ] - r) * t; + g += (frames[ + i + 5 + 2 + /*G*/ + ] - g) * t; + b += (frames[ + i + 5 + 3 + /*B*/ + ] - b) * t; + a += (frames[ + i + 5 + 4 + /*A*/ + ] - a) * t; + break; + case 1: + r = frames[ + i + 1 + /*R*/ + ]; + g = frames[ + i + 2 + /*G*/ + ]; + b = frames[ + i + 3 + /*B*/ + ]; + a = frames[ + i + 4 + /*A*/ + ]; + break; + default: + r = this.getBezierValue( + time, + i, + 1, + curveType - 2 + /*BEZIER*/ + ); + g = this.getBezierValue( + time, + i, + 2, + curveType + 18 - 2 + /*BEZIER*/ + ); + b = this.getBezierValue( + time, + i, + 3, + curveType + 18 * 2 - 2 + /*BEZIER*/ + ); + a = this.getBezierValue( + time, + i, + 4, + curveType + 18 * 3 - 2 + /*BEZIER*/ + ); + } + if (alpha == 1) + color.set(r, g, b, a); + else { + if (blend == MixBlend.setup) + color.setFromColor(slot.data.color); + color.add((r - color.r) * alpha, (g - color.g) * alpha, (b - color.b) * alpha, (a - color.a) * alpha); + } + } + }; + var RGBTimeline = class extends CurveTimeline { + slotIndex = 0; + constructor(frameCount, bezierCount, slotIndex) { + super(frameCount, bezierCount, [ + Property.rgb + "|" + slotIndex + ]); + this.slotIndex = slotIndex; + } + getFrameEntries() { + return 4; + } + /** Sets the time in seconds, red, green, blue, and alpha for the specified key frame. */ + setFrame(frame, time, r, g, b) { + frame <<= 2; + this.frames[frame] = time; + this.frames[ + frame + 1 + /*R*/ + ] = r; + this.frames[ + frame + 2 + /*G*/ + ] = g; + this.frames[ + frame + 3 + /*B*/ + ] = b; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + let frames = this.frames; + let color = slot.color; + if (time < frames[0]) { + let setup = slot.data.color; + switch (blend) { + case MixBlend.setup: + color.r = setup.r; + color.g = setup.g; + color.b = setup.b; + return; + case MixBlend.first: + color.r += (setup.r - color.r) * alpha; + color.g += (setup.g - color.g) * alpha; + color.b += (setup.b - color.b) * alpha; + } + return; + } + let r = 0, g = 0, b = 0; + let i = Timeline.search( + frames, + time, + 4 + /*ENTRIES*/ + ); + let curveType = this.curves[i >> 2]; + switch (curveType) { + case 0: + let before = frames[i]; + r = frames[ + i + 1 + /*R*/ + ]; + g = frames[ + i + 2 + /*G*/ + ]; + b = frames[ + i + 3 + /*B*/ + ]; + let t = (time - before) / (frames[ + i + 4 + /*ENTRIES*/ + ] - before); + r += (frames[ + i + 4 + 1 + /*R*/ + ] - r) * t; + g += (frames[ + i + 4 + 2 + /*G*/ + ] - g) * t; + b += (frames[ + i + 4 + 3 + /*B*/ + ] - b) * t; + break; + case 1: + r = frames[ + i + 1 + /*R*/ + ]; + g = frames[ + i + 2 + /*G*/ + ]; + b = frames[ + i + 3 + /*B*/ + ]; + break; + default: + r = this.getBezierValue( + time, + i, + 1, + curveType - 2 + /*BEZIER*/ + ); + g = this.getBezierValue( + time, + i, + 2, + curveType + 18 - 2 + /*BEZIER*/ + ); + b = this.getBezierValue( + time, + i, + 3, + curveType + 18 * 2 - 2 + /*BEZIER*/ + ); + } + if (alpha == 1) { + color.r = r; + color.g = g; + color.b = b; + } else { + if (blend == MixBlend.setup) { + let setup = slot.data.color; + color.r = setup.r; + color.g = setup.g; + color.b = setup.b; + } + color.r += (r - color.r) * alpha; + color.g += (g - color.g) * alpha; + color.b += (b - color.b) * alpha; + } + } + }; + var AlphaTimeline = class extends CurveTimeline1 { + slotIndex = 0; + constructor(frameCount, bezierCount, slotIndex) { + super(frameCount, bezierCount, Property.alpha + "|" + slotIndex); + this.slotIndex = slotIndex; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + let color = slot.color; + if (time < this.frames[0]) { + let setup = slot.data.color; + switch (blend) { + case MixBlend.setup: + color.a = setup.a; + return; + case MixBlend.first: + color.a += (setup.a - color.a) * alpha; + } + return; + } + let a = this.getCurveValue(time); + if (alpha == 1) + color.a = a; + else { + if (blend == MixBlend.setup) + color.a = slot.data.color.a; + color.a += (a - color.a) * alpha; + } + } + }; + var RGBA2Timeline = class extends CurveTimeline { + slotIndex = 0; + constructor(frameCount, bezierCount, slotIndex) { + super(frameCount, bezierCount, [ + Property.rgb + "|" + slotIndex, + Property.alpha + "|" + slotIndex, + Property.rgb2 + "|" + slotIndex + ]); + this.slotIndex = slotIndex; + } + getFrameEntries() { + return 8; + } + /** Sets the time in seconds, light, and dark colors for the specified key frame. */ + setFrame(frame, time, r, g, b, a, r2, g2, b2) { + frame <<= 3; + this.frames[frame] = time; + this.frames[ + frame + 1 + /*R*/ + ] = r; + this.frames[ + frame + 2 + /*G*/ + ] = g; + this.frames[ + frame + 3 + /*B*/ + ] = b; + this.frames[ + frame + 4 + /*A*/ + ] = a; + this.frames[ + frame + 5 + /*R2*/ + ] = r2; + this.frames[ + frame + 6 + /*G2*/ + ] = g2; + this.frames[ + frame + 7 + /*B2*/ + ] = b2; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + let frames = this.frames; + let light = slot.color, dark = slot.darkColor; + if (time < frames[0]) { + let setupLight = slot.data.color, setupDark = slot.data.darkColor; + switch (blend) { + case MixBlend.setup: + light.setFromColor(setupLight); + dark.r = setupDark.r; + dark.g = setupDark.g; + dark.b = setupDark.b; + return; + case MixBlend.first: + light.add((setupLight.r - light.r) * alpha, (setupLight.g - light.g) * alpha, (setupLight.b - light.b) * alpha, (setupLight.a - light.a) * alpha); + dark.r += (setupDark.r - dark.r) * alpha; + dark.g += (setupDark.g - dark.g) * alpha; + dark.b += (setupDark.b - dark.b) * alpha; + } + return; + } + let r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + let i = Timeline.search( + frames, + time, + 8 + /*ENTRIES*/ + ); + let curveType = this.curves[i >> 3]; + switch (curveType) { + case 0: + let before = frames[i]; + r = frames[ + i + 1 + /*R*/ + ]; + g = frames[ + i + 2 + /*G*/ + ]; + b = frames[ + i + 3 + /*B*/ + ]; + a = frames[ + i + 4 + /*A*/ + ]; + r2 = frames[ + i + 5 + /*R2*/ + ]; + g2 = frames[ + i + 6 + /*G2*/ + ]; + b2 = frames[ + i + 7 + /*B2*/ + ]; + let t = (time - before) / (frames[ + i + 8 + /*ENTRIES*/ + ] - before); + r += (frames[ + i + 8 + 1 + /*R*/ + ] - r) * t; + g += (frames[ + i + 8 + 2 + /*G*/ + ] - g) * t; + b += (frames[ + i + 8 + 3 + /*B*/ + ] - b) * t; + a += (frames[ + i + 8 + 4 + /*A*/ + ] - a) * t; + r2 += (frames[ + i + 8 + 5 + /*R2*/ + ] - r2) * t; + g2 += (frames[ + i + 8 + 6 + /*G2*/ + ] - g2) * t; + b2 += (frames[ + i + 8 + 7 + /*B2*/ + ] - b2) * t; + break; + case 1: + r = frames[ + i + 1 + /*R*/ + ]; + g = frames[ + i + 2 + /*G*/ + ]; + b = frames[ + i + 3 + /*B*/ + ]; + a = frames[ + i + 4 + /*A*/ + ]; + r2 = frames[ + i + 5 + /*R2*/ + ]; + g2 = frames[ + i + 6 + /*G2*/ + ]; + b2 = frames[ + i + 7 + /*B2*/ + ]; + break; + default: + r = this.getBezierValue( + time, + i, + 1, + curveType - 2 + /*BEZIER*/ + ); + g = this.getBezierValue( + time, + i, + 2, + curveType + 18 - 2 + /*BEZIER*/ + ); + b = this.getBezierValue( + time, + i, + 3, + curveType + 18 * 2 - 2 + /*BEZIER*/ + ); + a = this.getBezierValue( + time, + i, + 4, + curveType + 18 * 3 - 2 + /*BEZIER*/ + ); + r2 = this.getBezierValue( + time, + i, + 5, + curveType + 18 * 4 - 2 + /*BEZIER*/ + ); + g2 = this.getBezierValue( + time, + i, + 6, + curveType + 18 * 5 - 2 + /*BEZIER*/ + ); + b2 = this.getBezierValue( + time, + i, + 7, + curveType + 18 * 6 - 2 + /*BEZIER*/ + ); + } + if (alpha == 1) { + light.set(r, g, b, a); + dark.r = r2; + dark.g = g2; + dark.b = b2; + } else { + if (blend == MixBlend.setup) { + light.setFromColor(slot.data.color); + let setupDark = slot.data.darkColor; + dark.r = setupDark.r; + dark.g = setupDark.g; + dark.b = setupDark.b; + } + light.add((r - light.r) * alpha, (g - light.g) * alpha, (b - light.b) * alpha, (a - light.a) * alpha); + dark.r += (r2 - dark.r) * alpha; + dark.g += (g2 - dark.g) * alpha; + dark.b += (b2 - dark.b) * alpha; + } + } + }; + var RGB2Timeline = class extends CurveTimeline { + slotIndex = 0; + constructor(frameCount, bezierCount, slotIndex) { + super(frameCount, bezierCount, [ + Property.rgb + "|" + slotIndex, + Property.rgb2 + "|" + slotIndex + ]); + this.slotIndex = slotIndex; + } + getFrameEntries() { + return 7; + } + /** Sets the time in seconds, light, and dark colors for the specified key frame. */ + setFrame(frame, time, r, g, b, r2, g2, b2) { + frame *= 7; + this.frames[frame] = time; + this.frames[ + frame + 1 + /*R*/ + ] = r; + this.frames[ + frame + 2 + /*G*/ + ] = g; + this.frames[ + frame + 3 + /*B*/ + ] = b; + this.frames[ + frame + 4 + /*R2*/ + ] = r2; + this.frames[ + frame + 5 + /*G2*/ + ] = g2; + this.frames[ + frame + 6 + /*B2*/ + ] = b2; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + let frames = this.frames; + let light = slot.color, dark = slot.darkColor; + if (time < frames[0]) { + let setupLight = slot.data.color, setupDark = slot.data.darkColor; + switch (blend) { + case MixBlend.setup: + light.r = setupLight.r; + light.g = setupLight.g; + light.b = setupLight.b; + dark.r = setupDark.r; + dark.g = setupDark.g; + dark.b = setupDark.b; + return; + case MixBlend.first: + light.r += (setupLight.r - light.r) * alpha; + light.g += (setupLight.g - light.g) * alpha; + light.b += (setupLight.b - light.b) * alpha; + dark.r += (setupDark.r - dark.r) * alpha; + dark.g += (setupDark.g - dark.g) * alpha; + dark.b += (setupDark.b - dark.b) * alpha; + } + return; + } + let r = 0, g = 0, b = 0, a = 0, r2 = 0, g2 = 0, b2 = 0; + let i = Timeline.search( + frames, + time, + 7 + /*ENTRIES*/ + ); + let curveType = this.curves[ + i / 7 + /*ENTRIES*/ + ]; + switch (curveType) { + case 0: + let before = frames[i]; + r = frames[ + i + 1 + /*R*/ + ]; + g = frames[ + i + 2 + /*G*/ + ]; + b = frames[ + i + 3 + /*B*/ + ]; + r2 = frames[ + i + 4 + /*R2*/ + ]; + g2 = frames[ + i + 5 + /*G2*/ + ]; + b2 = frames[ + i + 6 + /*B2*/ + ]; + let t = (time - before) / (frames[ + i + 7 + /*ENTRIES*/ + ] - before); + r += (frames[ + i + 7 + 1 + /*R*/ + ] - r) * t; + g += (frames[ + i + 7 + 2 + /*G*/ + ] - g) * t; + b += (frames[ + i + 7 + 3 + /*B*/ + ] - b) * t; + r2 += (frames[ + i + 7 + 4 + /*R2*/ + ] - r2) * t; + g2 += (frames[ + i + 7 + 5 + /*G2*/ + ] - g2) * t; + b2 += (frames[ + i + 7 + 6 + /*B2*/ + ] - b2) * t; + break; + case 1: + r = frames[ + i + 1 + /*R*/ + ]; + g = frames[ + i + 2 + /*G*/ + ]; + b = frames[ + i + 3 + /*B*/ + ]; + r2 = frames[ + i + 4 + /*R2*/ + ]; + g2 = frames[ + i + 5 + /*G2*/ + ]; + b2 = frames[ + i + 6 + /*B2*/ + ]; + break; + default: + r = this.getBezierValue( + time, + i, + 1, + curveType - 2 + /*BEZIER*/ + ); + g = this.getBezierValue( + time, + i, + 2, + curveType + 18 - 2 + /*BEZIER*/ + ); + b = this.getBezierValue( + time, + i, + 3, + curveType + 18 * 2 - 2 + /*BEZIER*/ + ); + r2 = this.getBezierValue( + time, + i, + 4, + curveType + 18 * 3 - 2 + /*BEZIER*/ + ); + g2 = this.getBezierValue( + time, + i, + 5, + curveType + 18 * 4 - 2 + /*BEZIER*/ + ); + b2 = this.getBezierValue( + time, + i, + 6, + curveType + 18 * 5 - 2 + /*BEZIER*/ + ); + } + if (alpha == 1) { + light.r = r; + light.g = g; + light.b = b; + dark.r = r2; + dark.g = g2; + dark.b = b2; + } else { + if (blend == MixBlend.setup) { + let setupLight = slot.data.color, setupDark = slot.data.darkColor; + light.r = setupLight.r; + light.g = setupLight.g; + light.b = setupLight.b; + dark.r = setupDark.r; + dark.g = setupDark.g; + dark.b = setupDark.b; + } + light.r += (r - light.r) * alpha; + light.g += (g - light.g) * alpha; + light.b += (b - light.b) * alpha; + dark.r += (r2 - dark.r) * alpha; + dark.g += (g2 - dark.g) * alpha; + dark.b += (b2 - dark.b) * alpha; + } + } + }; + var AttachmentTimeline = class extends Timeline { + slotIndex = 0; + /** The attachment name for each key frame. May contain null values to clear the attachment. */ + attachmentNames; + constructor(frameCount, slotIndex) { + super(frameCount, [ + Property.attachment + "|" + slotIndex + ]); + this.slotIndex = slotIndex; + this.attachmentNames = new Array(frameCount); + } + getFrameCount() { + return this.frames.length; + } + /** Sets the time in seconds and the attachment name for the specified key frame. */ + setFrame(frame, time, attachmentName) { + this.frames[frame] = time; + this.attachmentNames[frame] = attachmentName; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + if (direction == MixDirection.mixOut) { + if (blend == MixBlend.setup) + this.setAttachment(skeleton, slot, slot.data.attachmentName); + return; + } + if (time < this.frames[0]) { + if (blend == MixBlend.setup || blend == MixBlend.first) + this.setAttachment(skeleton, slot, slot.data.attachmentName); + return; + } + this.setAttachment(skeleton, slot, this.attachmentNames[Timeline.search1(this.frames, time)]); + } + setAttachment(skeleton, slot, attachmentName) { + slot.setAttachment(!attachmentName ? null : skeleton.getAttachment(this.slotIndex, attachmentName)); + } + }; + var DeformTimeline = class extends CurveTimeline { + slotIndex = 0; + /** The attachment that will be deformed. */ + attachment; + /** The vertices for each key frame. */ + vertices; + constructor(frameCount, bezierCount, slotIndex, attachment) { + super(frameCount, bezierCount, [ + Property.deform + "|" + slotIndex + "|" + attachment.id + ]); + this.slotIndex = slotIndex; + this.attachment = attachment; + this.vertices = new Array(frameCount); + } + getFrameCount() { + return this.frames.length; + } + /** Sets the time in seconds and the vertices for the specified key frame. + * @param vertices Vertex positions for an unweighted VertexAttachment, or deform offsets if it has weights. */ + setFrame(frame, time, vertices) { + this.frames[frame] = time; + this.vertices[frame] = vertices; + } + /** @param value1 Ignored (0 is used for a deform timeline). + * @param value2 Ignored (1 is used for a deform timeline). */ + setBezier(bezier, frame, value, time1, value1, cx1, cy1, cx2, cy2, time2, value2) { + let curves = this.curves; + let i = this.getFrameCount() + bezier * 18; + if (value == 0) + curves[frame] = 2 + i; + let tmpx = (time1 - cx1 * 2 + cx2) * 0.03, tmpy = cy2 * 0.03 - cy1 * 0.06; + let dddx = ((cx1 - cx2) * 3 - time1 + time2) * 6e-3, dddy = (cy1 - cy2 + 0.33333333) * 0.018; + let ddx = tmpx * 2 + dddx, ddy = tmpy * 2 + dddy; + let dx = (cx1 - time1) * 0.3 + tmpx + dddx * 0.16666667, dy = cy1 * 0.3 + tmpy + dddy * 0.16666667; + let x = time1 + dx, y = dy; + for (let n = i + 18; i < n; i += 2) { + curves[i] = x; + curves[i + 1] = y; + dx += ddx; + dy += ddy; + ddx += dddx; + ddy += dddy; + x += dx; + y += dy; + } + } + getCurvePercent(time, frame) { + let curves = this.curves; + let i = curves[frame]; + switch (i) { + case 0: + let x2 = this.frames[frame]; + return (time - x2) / (this.frames[frame + this.getFrameEntries()] - x2); + case 1: + return 0; + } + i -= 2; + if (curves[i] > time) { + let x2 = this.frames[frame]; + return curves[i + 1] * (time - x2) / (curves[i] - x2); + } + let n = i + 18; + for (i += 2; i < n; i += 2) { + if (curves[i] >= time) { + let x2 = curves[i - 2], y2 = curves[i - 1]; + return y2 + (time - x2) / (curves[i] - x2) * (curves[i + 1] - y2); + } + } + let x = curves[n - 2], y = curves[n - 1]; + return y + (1 - y) * (time - x) / (this.frames[frame + this.getFrameEntries()] - x); + } + apply(skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + let slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + let slotAttachment = slot.getAttachment(); + if (!slotAttachment) + return; + if (!(slotAttachment instanceof VertexAttachment) || slotAttachment.timelineAttachment != this.attachment) + return; + let deform = slot.deform; + if (deform.length == 0) + blend = MixBlend.setup; + let vertices = this.vertices; + let vertexCount = vertices[0].length; + let frames = this.frames; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + deform.length = 0; + return; + case MixBlend.first: + if (alpha == 1) { + deform.length = 0; + return; + } + deform.length = vertexCount; + let vertexAttachment = slotAttachment; + if (!vertexAttachment.bones) { + let setupVertices = vertexAttachment.vertices; + for (var i = 0; i < vertexCount; i++) + deform[i] += (setupVertices[i] - deform[i]) * alpha; + } else { + alpha = 1 - alpha; + for (var i = 0; i < vertexCount; i++) + deform[i] *= alpha; + } + } + return; + } + deform.length = vertexCount; + if (time >= frames[frames.length - 1]) { + let lastVertices = vertices[frames.length - 1]; + if (alpha == 1) { + if (blend == MixBlend.add) { + let vertexAttachment = slotAttachment; + if (!vertexAttachment.bones) { + let setupVertices = vertexAttachment.vertices; + for (let i2 = 0; i2 < vertexCount; i2++) + deform[i2] += lastVertices[i2] - setupVertices[i2]; + } else { + for (let i2 = 0; i2 < vertexCount; i2++) + deform[i2] += lastVertices[i2]; + } + } else + Utils.arrayCopy(lastVertices, 0, deform, 0, vertexCount); + } else { + switch (blend) { + case MixBlend.setup: { + let vertexAttachment2 = slotAttachment; + if (!vertexAttachment2.bones) { + let setupVertices = vertexAttachment2.vertices; + for (let i2 = 0; i2 < vertexCount; i2++) { + let setup = setupVertices[i2]; + deform[i2] = setup + (lastVertices[i2] - setup) * alpha; + } + } else { + for (let i2 = 0; i2 < vertexCount; i2++) + deform[i2] = lastVertices[i2] * alpha; + } + break; + } + case MixBlend.first: + case MixBlend.replace: + for (let i2 = 0; i2 < vertexCount; i2++) + deform[i2] += (lastVertices[i2] - deform[i2]) * alpha; + break; + case MixBlend.add: + let vertexAttachment = slotAttachment; + if (!vertexAttachment.bones) { + let setupVertices = vertexAttachment.vertices; + for (let i2 = 0; i2 < vertexCount; i2++) + deform[i2] += (lastVertices[i2] - setupVertices[i2]) * alpha; + } else { + for (let i2 = 0; i2 < vertexCount; i2++) + deform[i2] += lastVertices[i2] * alpha; + } + } + } + return; + } + let frame = Timeline.search1(frames, time); + let percent = this.getCurvePercent(time, frame); + let prevVertices = vertices[frame]; + let nextVertices = vertices[frame + 1]; + if (alpha == 1) { + if (blend == MixBlend.add) { + let vertexAttachment = slotAttachment; + if (!vertexAttachment.bones) { + let setupVertices = vertexAttachment.vertices; + for (let i2 = 0; i2 < vertexCount; i2++) { + let prev = prevVertices[i2]; + deform[i2] += prev + (nextVertices[i2] - prev) * percent - setupVertices[i2]; + } + } else { + for (let i2 = 0; i2 < vertexCount; i2++) { + let prev = prevVertices[i2]; + deform[i2] += prev + (nextVertices[i2] - prev) * percent; + } + } + } else { + for (let i2 = 0; i2 < vertexCount; i2++) { + let prev = prevVertices[i2]; + deform[i2] = prev + (nextVertices[i2] - prev) * percent; + } + } + } else { + switch (blend) { + case MixBlend.setup: { + let vertexAttachment2 = slotAttachment; + if (!vertexAttachment2.bones) { + let setupVertices = vertexAttachment2.vertices; + for (let i2 = 0; i2 < vertexCount; i2++) { + let prev = prevVertices[i2], setup = setupVertices[i2]; + deform[i2] = setup + (prev + (nextVertices[i2] - prev) * percent - setup) * alpha; + } + } else { + for (let i2 = 0; i2 < vertexCount; i2++) { + let prev = prevVertices[i2]; + deform[i2] = (prev + (nextVertices[i2] - prev) * percent) * alpha; + } + } + break; + } + case MixBlend.first: + case MixBlend.replace: + for (let i2 = 0; i2 < vertexCount; i2++) { + let prev = prevVertices[i2]; + deform[i2] += (prev + (nextVertices[i2] - prev) * percent - deform[i2]) * alpha; + } + break; + case MixBlend.add: + let vertexAttachment = slotAttachment; + if (!vertexAttachment.bones) { + let setupVertices = vertexAttachment.vertices; + for (let i2 = 0; i2 < vertexCount; i2++) { + let prev = prevVertices[i2]; + deform[i2] += (prev + (nextVertices[i2] - prev) * percent - setupVertices[i2]) * alpha; + } + } else { + for (let i2 = 0; i2 < vertexCount; i2++) { + let prev = prevVertices[i2]; + deform[i2] += (prev + (nextVertices[i2] - prev) * percent) * alpha; + } + } + } + } + } + }; + var EventTimeline = class _EventTimeline extends Timeline { + static propertyIds = ["" + Property.event]; + /** The event for each key frame. */ + events; + constructor(frameCount) { + super(frameCount, _EventTimeline.propertyIds); + this.events = new Array(frameCount); + } + getFrameCount() { + return this.frames.length; + } + /** Sets the time in seconds and the event for the specified key frame. */ + setFrame(frame, event) { + this.frames[frame] = event.time; + this.events[frame] = event; + } + /** Fires events for frames > `lastTime` and <= `time`. */ + apply(skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + if (!firedEvents) + return; + let frames = this.frames; + let frameCount = this.frames.length; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, firedEvents, alpha, blend, direction); + lastTime = -1; + } else if (lastTime >= frames[frameCount - 1]) + return; + if (time < frames[0]) + return; + let i = 0; + if (lastTime < frames[0]) + i = 0; + else { + i = Timeline.search1(frames, lastTime) + 1; + let frameTime = frames[i]; + while (i > 0) { + if (frames[i - 1] != frameTime) + break; + i--; + } + } + for (; i < frameCount && time >= frames[i]; i++) + firedEvents.push(this.events[i]); + } + }; + var DrawOrderTimeline = class _DrawOrderTimeline extends Timeline { + static propertyIds = ["" + Property.drawOrder]; + /** The draw order for each key frame. See {@link #setFrame(int, float, int[])}. */ + drawOrders; + constructor(frameCount) { + super(frameCount, _DrawOrderTimeline.propertyIds); + this.drawOrders = new Array(frameCount); + } + getFrameCount() { + return this.frames.length; + } + /** Sets the time in seconds and the draw order for the specified key frame. + * @param drawOrder For each slot in {@link Skeleton#slots}, the index of the new draw order. May be null to use setup pose + * draw order. */ + setFrame(frame, time, drawOrder) { + this.frames[frame] = time; + this.drawOrders[frame] = drawOrder; + } + apply(skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + if (direction == MixDirection.mixOut) { + if (blend == MixBlend.setup) + Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + if (time < this.frames[0]) { + if (blend == MixBlend.setup || blend == MixBlend.first) + Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + return; + } + let idx = Timeline.search1(this.frames, time); + let drawOrderToSetupIndex = this.drawOrders[idx]; + if (!drawOrderToSetupIndex) + Utils.arrayCopy(skeleton.slots, 0, skeleton.drawOrder, 0, skeleton.slots.length); + else { + let drawOrder = skeleton.drawOrder; + let slots = skeleton.slots; + for (let i = 0, n = drawOrderToSetupIndex.length; i < n; i++) + drawOrder[i] = slots[drawOrderToSetupIndex[i]]; + } + } + }; + var IkConstraintTimeline = class extends CurveTimeline { + /** The index of the IK constraint in {@link Skeleton#getIkConstraints()} that will be changed when this timeline is applied */ + constraintIndex = 0; + constructor(frameCount, bezierCount, ikConstraintIndex) { + super(frameCount, bezierCount, [ + Property.ikConstraint + "|" + ikConstraintIndex + ]); + this.constraintIndex = ikConstraintIndex; + } + getFrameEntries() { + return 6; + } + /** Sets the time in seconds, mix, softness, bend direction, compress, and stretch for the specified key frame. */ + setFrame(frame, time, mix, softness, bendDirection, compress, stretch) { + frame *= 6; + this.frames[frame] = time; + this.frames[ + frame + 1 + /*MIX*/ + ] = mix; + this.frames[ + frame + 2 + /*SOFTNESS*/ + ] = softness; + this.frames[ + frame + 3 + /*BEND_DIRECTION*/ + ] = bendDirection; + this.frames[ + frame + 4 + /*COMPRESS*/ + ] = compress ? 1 : 0; + this.frames[ + frame + 5 + /*STRETCH*/ + ] = stretch ? 1 : 0; + } + apply(skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + let constraint = skeleton.ikConstraints[this.constraintIndex]; + if (!constraint.active) + return; + let frames = this.frames; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.mix = constraint.data.mix; + constraint.softness = constraint.data.softness; + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + return; + case MixBlend.first: + constraint.mix += (constraint.data.mix - constraint.mix) * alpha; + constraint.softness += (constraint.data.softness - constraint.softness) * alpha; + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + } + return; + } + let mix = 0, softness = 0; + let i = Timeline.search( + frames, + time, + 6 + /*ENTRIES*/ + ); + let curveType = this.curves[ + i / 6 + /*ENTRIES*/ + ]; + switch (curveType) { + case 0: + let before = frames[i]; + mix = frames[ + i + 1 + /*MIX*/ + ]; + softness = frames[ + i + 2 + /*SOFTNESS*/ + ]; + let t = (time - before) / (frames[ + i + 6 + /*ENTRIES*/ + ] - before); + mix += (frames[ + i + 6 + 1 + /*MIX*/ + ] - mix) * t; + softness += (frames[ + i + 6 + 2 + /*SOFTNESS*/ + ] - softness) * t; + break; + case 1: + mix = frames[ + i + 1 + /*MIX*/ + ]; + softness = frames[ + i + 2 + /*SOFTNESS*/ + ]; + break; + default: + mix = this.getBezierValue( + time, + i, + 1, + curveType - 2 + /*BEZIER*/ + ); + softness = this.getBezierValue( + time, + i, + 2, + curveType + 18 - 2 + /*BEZIER*/ + ); + } + if (blend == MixBlend.setup) { + constraint.mix = constraint.data.mix + (mix - constraint.data.mix) * alpha; + constraint.softness = constraint.data.softness + (softness - constraint.data.softness) * alpha; + if (direction == MixDirection.mixOut) { + constraint.bendDirection = constraint.data.bendDirection; + constraint.compress = constraint.data.compress; + constraint.stretch = constraint.data.stretch; + } else { + constraint.bendDirection = frames[ + i + 3 + /*BEND_DIRECTION*/ + ]; + constraint.compress = frames[ + i + 4 + /*COMPRESS*/ + ] != 0; + constraint.stretch = frames[ + i + 5 + /*STRETCH*/ + ] != 0; + } + } else { + constraint.mix += (mix - constraint.mix) * alpha; + constraint.softness += (softness - constraint.softness) * alpha; + if (direction == MixDirection.mixIn) { + constraint.bendDirection = frames[ + i + 3 + /*BEND_DIRECTION*/ + ]; + constraint.compress = frames[ + i + 4 + /*COMPRESS*/ + ] != 0; + constraint.stretch = frames[ + i + 5 + /*STRETCH*/ + ] != 0; + } + } + } + }; + var TransformConstraintTimeline = class extends CurveTimeline { + /** The index of the transform constraint slot in {@link Skeleton#transformConstraints} that will be changed. */ + constraintIndex = 0; + constructor(frameCount, bezierCount, transformConstraintIndex) { + super(frameCount, bezierCount, [ + Property.transformConstraint + "|" + transformConstraintIndex + ]); + this.constraintIndex = transformConstraintIndex; + } + getFrameEntries() { + return 7; + } + /** The time in seconds, rotate mix, translate mix, scale mix, and shear mix for the specified key frame. */ + setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY) { + let frames = this.frames; + frame *= 7; + frames[frame] = time; + frames[ + frame + 1 + /*ROTATE*/ + ] = mixRotate; + frames[ + frame + 2 + /*X*/ + ] = mixX; + frames[ + frame + 3 + /*Y*/ + ] = mixY; + frames[ + frame + 4 + /*SCALEX*/ + ] = mixScaleX; + frames[ + frame + 5 + /*SCALEY*/ + ] = mixScaleY; + frames[ + frame + 6 + /*SHEARY*/ + ] = mixShearY; + } + apply(skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + let constraint = skeleton.transformConstraints[this.constraintIndex]; + if (!constraint.active) + return; + let frames = this.frames; + if (time < frames[0]) { + let data = constraint.data; + switch (blend) { + case MixBlend.setup: + constraint.mixRotate = data.mixRotate; + constraint.mixX = data.mixX; + constraint.mixY = data.mixY; + constraint.mixScaleX = data.mixScaleX; + constraint.mixScaleY = data.mixScaleY; + constraint.mixShearY = data.mixShearY; + return; + case MixBlend.first: + constraint.mixRotate += (data.mixRotate - constraint.mixRotate) * alpha; + constraint.mixX += (data.mixX - constraint.mixX) * alpha; + constraint.mixY += (data.mixY - constraint.mixY) * alpha; + constraint.mixScaleX += (data.mixScaleX - constraint.mixScaleX) * alpha; + constraint.mixScaleY += (data.mixScaleY - constraint.mixScaleY) * alpha; + constraint.mixShearY += (data.mixShearY - constraint.mixShearY) * alpha; + } + return; + } + let rotate, x, y, scaleX, scaleY, shearY; + let i = Timeline.search( + frames, + time, + 7 + /*ENTRIES*/ + ); + let curveType = this.curves[ + i / 7 + /*ENTRIES*/ + ]; + switch (curveType) { + case 0: + let before = frames[i]; + rotate = frames[ + i + 1 + /*ROTATE*/ + ]; + x = frames[ + i + 2 + /*X*/ + ]; + y = frames[ + i + 3 + /*Y*/ + ]; + scaleX = frames[ + i + 4 + /*SCALEX*/ + ]; + scaleY = frames[ + i + 5 + /*SCALEY*/ + ]; + shearY = frames[ + i + 6 + /*SHEARY*/ + ]; + let t = (time - before) / (frames[ + i + 7 + /*ENTRIES*/ + ] - before); + rotate += (frames[ + i + 7 + 1 + /*ROTATE*/ + ] - rotate) * t; + x += (frames[ + i + 7 + 2 + /*X*/ + ] - x) * t; + y += (frames[ + i + 7 + 3 + /*Y*/ + ] - y) * t; + scaleX += (frames[ + i + 7 + 4 + /*SCALEX*/ + ] - scaleX) * t; + scaleY += (frames[ + i + 7 + 5 + /*SCALEY*/ + ] - scaleY) * t; + shearY += (frames[ + i + 7 + 6 + /*SHEARY*/ + ] - shearY) * t; + break; + case 1: + rotate = frames[ + i + 1 + /*ROTATE*/ + ]; + x = frames[ + i + 2 + /*X*/ + ]; + y = frames[ + i + 3 + /*Y*/ + ]; + scaleX = frames[ + i + 4 + /*SCALEX*/ + ]; + scaleY = frames[ + i + 5 + /*SCALEY*/ + ]; + shearY = frames[ + i + 6 + /*SHEARY*/ + ]; + break; + default: + rotate = this.getBezierValue( + time, + i, + 1, + curveType - 2 + /*BEZIER*/ + ); + x = this.getBezierValue( + time, + i, + 2, + curveType + 18 - 2 + /*BEZIER*/ + ); + y = this.getBezierValue( + time, + i, + 3, + curveType + 18 * 2 - 2 + /*BEZIER*/ + ); + scaleX = this.getBezierValue( + time, + i, + 4, + curveType + 18 * 3 - 2 + /*BEZIER*/ + ); + scaleY = this.getBezierValue( + time, + i, + 5, + curveType + 18 * 4 - 2 + /*BEZIER*/ + ); + shearY = this.getBezierValue( + time, + i, + 6, + curveType + 18 * 5 - 2 + /*BEZIER*/ + ); + } + if (blend == MixBlend.setup) { + let data = constraint.data; + constraint.mixRotate = data.mixRotate + (rotate - data.mixRotate) * alpha; + constraint.mixX = data.mixX + (x - data.mixX) * alpha; + constraint.mixY = data.mixY + (y - data.mixY) * alpha; + constraint.mixScaleX = data.mixScaleX + (scaleX - data.mixScaleX) * alpha; + constraint.mixScaleY = data.mixScaleY + (scaleY - data.mixScaleY) * alpha; + constraint.mixShearY = data.mixShearY + (shearY - data.mixShearY) * alpha; + } else { + constraint.mixRotate += (rotate - constraint.mixRotate) * alpha; + constraint.mixX += (x - constraint.mixX) * alpha; + constraint.mixY += (y - constraint.mixY) * alpha; + constraint.mixScaleX += (scaleX - constraint.mixScaleX) * alpha; + constraint.mixScaleY += (scaleY - constraint.mixScaleY) * alpha; + constraint.mixShearY += (shearY - constraint.mixShearY) * alpha; + } + } + }; + var PathConstraintPositionTimeline = class extends CurveTimeline1 { + /** The index of the path constraint in {@link Skeleton#getPathConstraints()} that will be changed when this timeline is + * applied. */ + constraintIndex = 0; + constructor(frameCount, bezierCount, pathConstraintIndex) { + super(frameCount, bezierCount, Property.pathConstraintPosition + "|" + pathConstraintIndex); + this.constraintIndex = pathConstraintIndex; + } + apply(skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + let constraint = skeleton.pathConstraints[this.constraintIndex]; + if (constraint.active) + constraint.position = this.getAbsoluteValue(time, alpha, blend, constraint.position, constraint.data.position); + } + }; + var PathConstraintSpacingTimeline = class extends CurveTimeline1 { + /** The index of the path constraint in {@link Skeleton#getPathConstraints()} that will be changed when this timeline is + * applied. */ + constraintIndex = 0; + constructor(frameCount, bezierCount, pathConstraintIndex) { + super(frameCount, bezierCount, Property.pathConstraintSpacing + "|" + pathConstraintIndex); + this.constraintIndex = pathConstraintIndex; + } + apply(skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + let constraint = skeleton.pathConstraints[this.constraintIndex]; + if (constraint.active) + constraint.spacing = this.getAbsoluteValue(time, alpha, blend, constraint.spacing, constraint.data.spacing); + } + }; + var PathConstraintMixTimeline = class extends CurveTimeline { + /** The index of the path constraint in {@link Skeleton#getPathConstraints()} that will be changed when this timeline is + * applied. */ + constraintIndex = 0; + constructor(frameCount, bezierCount, pathConstraintIndex) { + super(frameCount, bezierCount, [ + Property.pathConstraintMix + "|" + pathConstraintIndex + ]); + this.constraintIndex = pathConstraintIndex; + } + getFrameEntries() { + return 4; + } + setFrame(frame, time, mixRotate, mixX, mixY) { + let frames = this.frames; + frame <<= 2; + frames[frame] = time; + frames[ + frame + 1 + /*ROTATE*/ + ] = mixRotate; + frames[ + frame + 2 + /*X*/ + ] = mixX; + frames[ + frame + 3 + /*Y*/ + ] = mixY; + } + apply(skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + let constraint = skeleton.pathConstraints[this.constraintIndex]; + if (!constraint.active) + return; + let frames = this.frames; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + constraint.mixRotate = constraint.data.mixRotate; + constraint.mixX = constraint.data.mixX; + constraint.mixY = constraint.data.mixY; + return; + case MixBlend.first: + constraint.mixRotate += (constraint.data.mixRotate - constraint.mixRotate) * alpha; + constraint.mixX += (constraint.data.mixX - constraint.mixX) * alpha; + constraint.mixY += (constraint.data.mixY - constraint.mixY) * alpha; + } + return; + } + let rotate, x, y; + let i = Timeline.search( + frames, + time, + 4 + /*ENTRIES*/ + ); + let curveType = this.curves[i >> 2]; + switch (curveType) { + case 0: + let before = frames[i]; + rotate = frames[ + i + 1 + /*ROTATE*/ + ]; + x = frames[ + i + 2 + /*X*/ + ]; + y = frames[ + i + 3 + /*Y*/ + ]; + let t = (time - before) / (frames[ + i + 4 + /*ENTRIES*/ + ] - before); + rotate += (frames[ + i + 4 + 1 + /*ROTATE*/ + ] - rotate) * t; + x += (frames[ + i + 4 + 2 + /*X*/ + ] - x) * t; + y += (frames[ + i + 4 + 3 + /*Y*/ + ] - y) * t; + break; + case 1: + rotate = frames[ + i + 1 + /*ROTATE*/ + ]; + x = frames[ + i + 2 + /*X*/ + ]; + y = frames[ + i + 3 + /*Y*/ + ]; + break; + default: + rotate = this.getBezierValue( + time, + i, + 1, + curveType - 2 + /*BEZIER*/ + ); + x = this.getBezierValue( + time, + i, + 2, + curveType + 18 - 2 + /*BEZIER*/ + ); + y = this.getBezierValue( + time, + i, + 3, + curveType + 18 * 2 - 2 + /*BEZIER*/ + ); + } + if (blend == MixBlend.setup) { + let data = constraint.data; + constraint.mixRotate = data.mixRotate + (rotate - data.mixRotate) * alpha; + constraint.mixX = data.mixX + (x - data.mixX) * alpha; + constraint.mixY = data.mixY + (y - data.mixY) * alpha; + } else { + constraint.mixRotate += (rotate - constraint.mixRotate) * alpha; + constraint.mixX += (x - constraint.mixX) * alpha; + constraint.mixY += (y - constraint.mixY) * alpha; + } + } + }; + var PhysicsConstraintTimeline = class extends CurveTimeline1 { + /** The index of the physics constraint in {@link Skeleton#getPhysicsConstraints()} that will be changed when this timeline + * is applied, or -1 if all physics constraints in the skeleton will be changed. */ + constraintIndex = 0; + /** @param physicsConstraintIndex -1 for all physics constraints in the skeleton. */ + constructor(frameCount, bezierCount, physicsConstraintIndex, property) { + super(frameCount, bezierCount, property + "|" + physicsConstraintIndex); + this.constraintIndex = physicsConstraintIndex; + } + apply(skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + let constraint; + if (this.constraintIndex == -1) { + const value = time >= this.frames[0] ? this.getCurveValue(time) : 0; + for (const constraint2 of skeleton.physicsConstraints) { + if (constraint2.active && this.global(constraint2.data)) + this.set(constraint2, this.getAbsoluteValue2(time, alpha, blend, this.get(constraint2), this.setup(constraint2), value)); + } + } else { + constraint = skeleton.physicsConstraints[this.constraintIndex]; + if (constraint.active) + this.set(constraint, this.getAbsoluteValue(time, alpha, blend, this.get(constraint), this.setup(constraint))); + } + } + }; + var PhysicsConstraintInertiaTimeline = class extends PhysicsConstraintTimeline { + constructor(frameCount, bezierCount, physicsConstraintIndex) { + super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintInertia); + } + setup(constraint) { + return constraint.data.inertia; + } + get(constraint) { + return constraint.inertia; + } + set(constraint, value) { + constraint.inertia = value; + } + global(constraint) { + return constraint.inertiaGlobal; + } + }; + var PhysicsConstraintStrengthTimeline = class extends PhysicsConstraintTimeline { + constructor(frameCount, bezierCount, physicsConstraintIndex) { + super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintStrength); + } + setup(constraint) { + return constraint.data.strength; + } + get(constraint) { + return constraint.strength; + } + set(constraint, value) { + constraint.strength = value; + } + global(constraint) { + return constraint.strengthGlobal; + } + }; + var PhysicsConstraintDampingTimeline = class extends PhysicsConstraintTimeline { + constructor(frameCount, bezierCount, physicsConstraintIndex) { + super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintDamping); + } + setup(constraint) { + return constraint.data.damping; + } + get(constraint) { + return constraint.damping; + } + set(constraint, value) { + constraint.damping = value; + } + global(constraint) { + return constraint.dampingGlobal; + } + }; + var PhysicsConstraintMassTimeline = class extends PhysicsConstraintTimeline { + constructor(frameCount, bezierCount, physicsConstraintIndex) { + super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintMass); + } + setup(constraint) { + return 1 / constraint.data.massInverse; + } + get(constraint) { + return 1 / constraint.massInverse; + } + set(constraint, value) { + constraint.massInverse = 1 / value; + } + global(constraint) { + return constraint.massGlobal; + } + }; + var PhysicsConstraintWindTimeline = class extends PhysicsConstraintTimeline { + constructor(frameCount, bezierCount, physicsConstraintIndex) { + super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintWind); + } + setup(constraint) { + return constraint.data.wind; + } + get(constraint) { + return constraint.wind; + } + set(constraint, value) { + constraint.wind = value; + } + global(constraint) { + return constraint.windGlobal; + } + }; + var PhysicsConstraintGravityTimeline = class extends PhysicsConstraintTimeline { + constructor(frameCount, bezierCount, physicsConstraintIndex) { + super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintGravity); + } + setup(constraint) { + return constraint.data.gravity; + } + get(constraint) { + return constraint.gravity; + } + set(constraint, value) { + constraint.gravity = value; + } + global(constraint) { + return constraint.gravityGlobal; + } + }; + var PhysicsConstraintMixTimeline = class extends PhysicsConstraintTimeline { + constructor(frameCount, bezierCount, physicsConstraintIndex) { + super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintMix); + } + setup(constraint) { + return constraint.data.mix; + } + get(constraint) { + return constraint.mix; + } + set(constraint, value) { + constraint.mix = value; + } + global(constraint) { + return constraint.mixGlobal; + } + }; + var PhysicsConstraintResetTimeline = class _PhysicsConstraintResetTimeline extends Timeline { + static propertyIds = [Property.physicsConstraintReset.toString()]; + /** The index of the physics constraint in {@link Skeleton#getPhysicsConstraints()} that will be reset when this timeline is + * applied, or -1 if all physics constraints in the skeleton will be reset. */ + constraintIndex; + /** @param physicsConstraintIndex -1 for all physics constraints in the skeleton. */ + constructor(frameCount, physicsConstraintIndex) { + super(frameCount, _PhysicsConstraintResetTimeline.propertyIds); + this.constraintIndex = physicsConstraintIndex; + } + getFrameCount() { + return this.frames.length; + } + /** Sets the time for the specified frame. + * @param frame Between 0 and frameCount, inclusive. */ + setFrame(frame, time) { + this.frames[frame] = time; + } + /** Resets the physics constraint when frames > lastTime and <= time. */ + apply(skeleton, lastTime, time, firedEvents, alpha, blend, direction) { + let constraint; + if (this.constraintIndex != -1) { + constraint = skeleton.physicsConstraints[this.constraintIndex]; + if (!constraint.active) + return; + } + const frames = this.frames; + if (lastTime > time) { + this.apply(skeleton, lastTime, Number.MAX_VALUE, [], alpha, blend, direction); + lastTime = -1; + } else if (lastTime >= frames[frames.length - 1]) + return; + if (time < frames[0]) + return; + if (lastTime < frames[0] || time >= frames[Timeline.search1(frames, lastTime) + 1]) { + if (constraint != null) + constraint.reset(); + else { + for (const constraint2 of skeleton.physicsConstraints) { + if (constraint2.active) + constraint2.reset(); + } + } + } + } + }; + var SequenceTimeline = class _SequenceTimeline extends Timeline { + static ENTRIES = 3; + static MODE = 1; + static DELAY = 2; + slotIndex; + attachment; + constructor(frameCount, slotIndex, attachment) { + super(frameCount, [ + Property.sequence + "|" + slotIndex + "|" + attachment.sequence.id + ]); + this.slotIndex = slotIndex; + this.attachment = attachment; + } + getFrameEntries() { + return _SequenceTimeline.ENTRIES; + } + getSlotIndex() { + return this.slotIndex; + } + getAttachment() { + return this.attachment; + } + /** Sets the time, mode, index, and frame time for the specified frame. + * @param frame Between 0 and frameCount, inclusive. + * @param time Seconds between frames. */ + setFrame(frame, time, mode, index, delay) { + let frames = this.frames; + frame *= _SequenceTimeline.ENTRIES; + frames[frame] = time; + frames[frame + _SequenceTimeline.MODE] = mode | index << 4; + frames[frame + _SequenceTimeline.DELAY] = delay; + } + apply(skeleton, lastTime, time, events, alpha, blend, direction) { + let slot = skeleton.slots[this.slotIndex]; + if (!slot.bone.active) + return; + let slotAttachment = slot.attachment; + let attachment = this.attachment; + if (slotAttachment != attachment) { + if (!(slotAttachment instanceof VertexAttachment) || slotAttachment.timelineAttachment != attachment) + return; + } + let frames = this.frames; + if (time < frames[0]) { + if (blend == MixBlend.setup || blend == MixBlend.first) + slot.sequenceIndex = -1; + return; + } + let i = Timeline.search(frames, time, _SequenceTimeline.ENTRIES); + let before = frames[i]; + let modeAndIndex = frames[i + _SequenceTimeline.MODE]; + let delay = frames[i + _SequenceTimeline.DELAY]; + if (!this.attachment.sequence) + return; + let index = modeAndIndex >> 4, count = this.attachment.sequence.regions.length; + let mode = SequenceModeValues[modeAndIndex & 15]; + if (mode != SequenceMode.hold) { + index += (time - before) / delay + 1e-5 | 0; + switch (mode) { + case SequenceMode.once: + index = Math.min(count - 1, index); + break; + case SequenceMode.loop: + index %= count; + break; + case SequenceMode.pingpong: { + let n = (count << 1) - 2; + index = n == 0 ? 0 : index % n; + if (index >= count) + index = n - index; + break; + } + case SequenceMode.onceReverse: + index = Math.max(count - 1 - index, 0); + break; + case SequenceMode.loopReverse: + index = count - 1 - index % count; + break; + case SequenceMode.pingpongReverse: { + let n = (count << 1) - 2; + index = n == 0 ? 0 : (index + count - 1) % n; + if (index >= count) + index = n - index; + } + } + } + slot.sequenceIndex = index; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/AnimationState.js + var AnimationState = class _AnimationState { + static _emptyAnimation = new Animation("", [], 0); + static emptyAnimation() { + return _AnimationState._emptyAnimation; + } + /** The AnimationStateData to look up mix durations. */ + data; + /** The list of tracks that currently have animations, which may contain null entries. */ + tracks = new Array(); + /** Multiplier for the delta time when the animation state is updated, causing time for all animations and mixes to play slower + * or faster. Defaults to 1. + * + * See TrackEntry {@link TrackEntry#timeScale} for affecting a single animation. */ + timeScale = 1; + unkeyedState = 0; + events = new Array(); + listeners = new Array(); + queue = new EventQueue(this); + propertyIDs = new StringSet(); + animationsChanged = false; + trackEntryPool = new Pool(() => new TrackEntry()); + constructor(data) { + this.data = data; + } + /** Increments each track entry {@link TrackEntry#trackTime()}, setting queued animations as current if needed. */ + update(delta) { + delta *= this.timeScale; + let tracks = this.tracks; + for (let i = 0, n = tracks.length; i < n; i++) { + let current = tracks[i]; + if (!current) + continue; + current.animationLast = current.nextAnimationLast; + current.trackLast = current.nextTrackLast; + let currentDelta = delta * current.timeScale; + if (current.delay > 0) { + current.delay -= currentDelta; + if (current.delay > 0) + continue; + currentDelta = -current.delay; + current.delay = 0; + } + let next = current.next; + if (next) { + let nextTime = current.trackLast - next.delay; + if (nextTime >= 0) { + next.delay = 0; + next.trackTime += current.timeScale == 0 ? 0 : (nextTime / current.timeScale + delta) * next.timeScale; + current.trackTime += currentDelta; + this.setCurrent(i, next, true); + while (next.mixingFrom) { + next.mixTime += delta; + next = next.mixingFrom; + } + continue; + } + } else if (current.trackLast >= current.trackEnd && !current.mixingFrom) { + tracks[i] = null; + this.queue.end(current); + this.clearNext(current); + continue; + } + if (current.mixingFrom && this.updateMixingFrom(current, delta)) { + let from = current.mixingFrom; + current.mixingFrom = null; + if (from) + from.mixingTo = null; + while (from) { + this.queue.end(from); + from = from.mixingFrom; + } + } + current.trackTime += currentDelta; + } + this.queue.drain(); + } + /** Returns true when all mixing from entries are complete. */ + updateMixingFrom(to, delta) { + let from = to.mixingFrom; + if (!from) + return true; + let finished = this.updateMixingFrom(from, delta); + from.animationLast = from.nextAnimationLast; + from.trackLast = from.nextTrackLast; + if (to.mixTime > 0 && to.mixTime >= to.mixDuration) { + if (from.totalAlpha == 0 || to.mixDuration == 0) { + to.mixingFrom = from.mixingFrom; + if (from.mixingFrom) + from.mixingFrom.mixingTo = to; + to.interruptAlpha = from.interruptAlpha; + this.queue.end(from); + } + return finished; + } + from.trackTime += delta * from.timeScale; + to.mixTime += delta; + return false; + } + /** Poses the skeleton using the track entry animations. There are no side effects other than invoking listeners, so the + * animation state can be applied to multiple skeletons to pose them identically. + * @returns True if any animations were applied. */ + apply(skeleton) { + if (!skeleton) + throw new Error("skeleton cannot be null."); + if (this.animationsChanged) + this._animationsChanged(); + let events = this.events; + let tracks = this.tracks; + let applied = false; + for (let i2 = 0, n2 = tracks.length; i2 < n2; i2++) { + let current = tracks[i2]; + if (!current || current.delay > 0) + continue; + applied = true; + let blend = i2 == 0 ? MixBlend.first : current.mixBlend; + let alpha = current.alpha; + if (current.mixingFrom) + alpha *= this.applyMixingFrom(current, skeleton, blend); + else if (current.trackTime >= current.trackEnd && !current.next) + alpha = 0; + let attachments = alpha >= current.alphaAttachmentThreshold; + let animationLast = current.animationLast, animationTime = current.getAnimationTime(), applyTime = animationTime; + let applyEvents = events; + if (current.reverse) { + applyTime = current.animation.duration - applyTime; + applyEvents = null; + } + let timelines = current.animation.timelines; + let timelineCount = timelines.length; + if (i2 == 0 && alpha == 1 || blend == MixBlend.add) { + if (i2 == 0) + attachments = true; + for (let ii = 0; ii < timelineCount; ii++) { + Utils.webkit602BugfixHelper(alpha, blend); + var timeline = timelines[ii]; + if (timeline instanceof AttachmentTimeline) + this.applyAttachmentTimeline(timeline, skeleton, applyTime, blend, attachments); + else + timeline.apply(skeleton, animationLast, applyTime, applyEvents, alpha, blend, MixDirection.mixIn); + } + } else { + let timelineMode = current.timelineMode; + let shortestRotation = current.shortestRotation; + let firstFrame = !shortestRotation && current.timelinesRotation.length != timelineCount << 1; + if (firstFrame) + current.timelinesRotation.length = timelineCount << 1; + for (let ii = 0; ii < timelineCount; ii++) { + let timeline2 = timelines[ii]; + let timelineBlend = timelineMode[ii] == SUBSEQUENT ? blend : MixBlend.setup; + if (!shortestRotation && timeline2 instanceof RotateTimeline) { + this.applyRotateTimeline(timeline2, skeleton, applyTime, alpha, timelineBlend, current.timelinesRotation, ii << 1, firstFrame); + } else if (timeline2 instanceof AttachmentTimeline) { + this.applyAttachmentTimeline(timeline2, skeleton, applyTime, blend, attachments); + } else { + Utils.webkit602BugfixHelper(alpha, blend); + timeline2.apply(skeleton, animationLast, applyTime, applyEvents, alpha, timelineBlend, MixDirection.mixIn); + } + } + } + this.queueEvents(current, animationTime); + events.length = 0; + current.nextAnimationLast = animationTime; + current.nextTrackLast = current.trackTime; + } + var setupState = this.unkeyedState + SETUP; + var slots = skeleton.slots; + for (var i = 0, n = skeleton.slots.length; i < n; i++) { + var slot = slots[i]; + if (slot.attachmentState == setupState) { + var attachmentName = slot.data.attachmentName; + slot.setAttachment(!attachmentName ? null : skeleton.getAttachment(slot.data.index, attachmentName)); + } + } + this.unkeyedState += 2; + this.queue.drain(); + return applied; + } + applyMixingFrom(to, skeleton, blend) { + let from = to.mixingFrom; + if (from.mixingFrom) + this.applyMixingFrom(from, skeleton, blend); + let mix = 0; + if (to.mixDuration == 0) { + mix = 1; + if (blend == MixBlend.first) + blend = MixBlend.setup; + } else { + mix = to.mixTime / to.mixDuration; + if (mix > 1) + mix = 1; + if (blend != MixBlend.first) + blend = from.mixBlend; + } + let attachments = mix < from.mixAttachmentThreshold, drawOrder = mix < from.mixDrawOrderThreshold; + let timelines = from.animation.timelines; + let timelineCount = timelines.length; + let alphaHold = from.alpha * to.interruptAlpha, alphaMix = alphaHold * (1 - mix); + let animationLast = from.animationLast, animationTime = from.getAnimationTime(), applyTime = animationTime; + let events = null; + if (from.reverse) + applyTime = from.animation.duration - applyTime; + else if (mix < from.eventThreshold) + events = this.events; + if (blend == MixBlend.add) { + for (let i = 0; i < timelineCount; i++) + timelines[i].apply(skeleton, animationLast, applyTime, events, alphaMix, blend, MixDirection.mixOut); + } else { + let timelineMode = from.timelineMode; + let timelineHoldMix = from.timelineHoldMix; + let shortestRotation = from.shortestRotation; + let firstFrame = !shortestRotation && from.timelinesRotation.length != timelineCount << 1; + if (firstFrame) + from.timelinesRotation.length = timelineCount << 1; + from.totalAlpha = 0; + for (let i = 0; i < timelineCount; i++) { + let timeline = timelines[i]; + let direction = MixDirection.mixOut; + let timelineBlend; + let alpha = 0; + switch (timelineMode[i]) { + case SUBSEQUENT: + if (!drawOrder && timeline instanceof DrawOrderTimeline) + continue; + timelineBlend = blend; + alpha = alphaMix; + break; + case FIRST: + timelineBlend = MixBlend.setup; + alpha = alphaMix; + break; + case HOLD_SUBSEQUENT: + timelineBlend = blend; + alpha = alphaHold; + break; + case HOLD_FIRST: + timelineBlend = MixBlend.setup; + alpha = alphaHold; + break; + default: + timelineBlend = MixBlend.setup; + let holdMix = timelineHoldMix[i]; + alpha = alphaHold * Math.max(0, 1 - holdMix.mixTime / holdMix.mixDuration); + break; + } + from.totalAlpha += alpha; + if (!shortestRotation && timeline instanceof RotateTimeline) + this.applyRotateTimeline(timeline, skeleton, applyTime, alpha, timelineBlend, from.timelinesRotation, i << 1, firstFrame); + else if (timeline instanceof AttachmentTimeline) + this.applyAttachmentTimeline(timeline, skeleton, applyTime, timelineBlend, attachments && alpha >= from.alphaAttachmentThreshold); + else { + Utils.webkit602BugfixHelper(alpha, blend); + if (drawOrder && timeline instanceof DrawOrderTimeline && timelineBlend == MixBlend.setup) + direction = MixDirection.mixIn; + timeline.apply(skeleton, animationLast, applyTime, events, alpha, timelineBlend, direction); + } + } + } + if (to.mixDuration > 0) + this.queueEvents(from, animationTime); + this.events.length = 0; + from.nextAnimationLast = animationTime; + from.nextTrackLast = from.trackTime; + return mix; + } + applyAttachmentTimeline(timeline, skeleton, time, blend, attachments) { + var slot = skeleton.slots[timeline.slotIndex]; + if (!slot.bone.active) + return; + if (time < timeline.frames[0]) { + if (blend == MixBlend.setup || blend == MixBlend.first) + this.setAttachment(skeleton, slot, slot.data.attachmentName, attachments); + } else + this.setAttachment(skeleton, slot, timeline.attachmentNames[Timeline.search1(timeline.frames, time)], attachments); + if (slot.attachmentState <= this.unkeyedState) + slot.attachmentState = this.unkeyedState + SETUP; + } + setAttachment(skeleton, slot, attachmentName, attachments) { + slot.setAttachment(!attachmentName ? null : skeleton.getAttachment(slot.data.index, attachmentName)); + if (attachments) + slot.attachmentState = this.unkeyedState + CURRENT; + } + applyRotateTimeline(timeline, skeleton, time, alpha, blend, timelinesRotation, i, firstFrame) { + if (firstFrame) + timelinesRotation[i] = 0; + if (alpha == 1) { + timeline.apply(skeleton, 0, time, null, 1, blend, MixDirection.mixIn); + return; + } + let bone = skeleton.bones[timeline.boneIndex]; + if (!bone.active) + return; + let frames = timeline.frames; + let r1 = 0, r2 = 0; + if (time < frames[0]) { + switch (blend) { + case MixBlend.setup: + bone.rotation = bone.data.rotation; + default: + return; + case MixBlend.first: + r1 = bone.rotation; + r2 = bone.data.rotation; + } + } else { + r1 = blend == MixBlend.setup ? bone.data.rotation : bone.rotation; + r2 = bone.data.rotation + timeline.getCurveValue(time); + } + let total = 0, diff = r2 - r1; + diff -= Math.ceil(diff / 360 - 0.5) * 360; + if (diff == 0) { + total = timelinesRotation[i]; + } else { + let lastTotal = 0, lastDiff = 0; + if (firstFrame) { + lastTotal = 0; + lastDiff = diff; + } else { + lastTotal = timelinesRotation[i]; + lastDiff = timelinesRotation[i + 1]; + } + let loops = lastTotal - lastTotal % 360; + total = diff + loops; + let current = diff >= 0, dir = lastTotal >= 0; + if (Math.abs(lastDiff) <= 90 && MathUtils.signum(lastDiff) != MathUtils.signum(diff)) { + if (Math.abs(lastTotal - loops) > 180) { + total += 360 * MathUtils.signum(lastTotal); + dir = current; + } else if (loops != 0) + total -= 360 * MathUtils.signum(lastTotal); + else + dir = current; + } + if (dir != current) + total += 360 * MathUtils.signum(lastTotal); + timelinesRotation[i] = total; + } + timelinesRotation[i + 1] = diff; + bone.rotation = r1 + total * alpha; + } + queueEvents(entry, animationTime) { + let animationStart = entry.animationStart, animationEnd = entry.animationEnd; + let duration = animationEnd - animationStart; + let trackLastWrapped = entry.trackLast % duration; + let events = this.events; + let i = 0, n = events.length; + for (; i < n; i++) { + let event = events[i]; + if (event.time < trackLastWrapped) + break; + if (event.time > animationEnd) + continue; + this.queue.event(entry, event); + } + let complete = false; + if (entry.loop) { + if (duration == 0) + complete = true; + else { + const cycles = Math.floor(entry.trackTime / duration); + complete = cycles > 0 && cycles > Math.floor(entry.trackLast / duration); + } + } else + complete = animationTime >= animationEnd && entry.animationLast < animationEnd; + if (complete) + this.queue.complete(entry); + for (; i < n; i++) { + let event = events[i]; + if (event.time < animationStart) + continue; + this.queue.event(entry, event); + } + } + /** Removes all animations from all tracks, leaving skeletons in their current pose. + * + * It may be desired to use {@link AnimationState#setEmptyAnimation()} to mix the skeletons back to the setup pose, + * rather than leaving them in their current pose. */ + clearTracks() { + let oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (let i = 0, n = this.tracks.length; i < n; i++) + this.clearTrack(i); + this.tracks.length = 0; + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + } + /** Removes all animations from the track, leaving skeletons in their current pose. + * + * It may be desired to use {@link AnimationState#setEmptyAnimation()} to mix the skeletons back to the setup pose, + * rather than leaving them in their current pose. */ + clearTrack(trackIndex) { + if (trackIndex >= this.tracks.length) + return; + let current = this.tracks[trackIndex]; + if (!current) + return; + this.queue.end(current); + this.clearNext(current); + let entry = current; + while (true) { + let from = entry.mixingFrom; + if (!from) + break; + this.queue.end(from); + entry.mixingFrom = null; + entry.mixingTo = null; + entry = from; + } + this.tracks[current.trackIndex] = null; + this.queue.drain(); + } + setCurrent(index, current, interrupt) { + let from = this.expandToIndex(index); + this.tracks[index] = current; + current.previous = null; + if (from) { + if (interrupt) + this.queue.interrupt(from); + current.mixingFrom = from; + from.mixingTo = current; + current.mixTime = 0; + if (from.mixingFrom && from.mixDuration > 0) + current.interruptAlpha *= Math.min(1, from.mixTime / from.mixDuration); + from.timelinesRotation.length = 0; + } + this.queue.start(current); + } + /** Sets an animation by name. + * + * See {@link #setAnimationWith()}. */ + setAnimation(trackIndex, animationName, loop = false) { + let animation = this.data.skeletonData.findAnimation(animationName); + if (!animation) + throw new Error("Animation not found: " + animationName); + return this.setAnimationWith(trackIndex, animation, loop); + } + /** Sets the current animation for a track, discarding any queued animations. If the formerly current track entry was never + * applied to a skeleton, it is replaced (not mixed from). + * @param loop If true, the animation will repeat. If false it will not, instead its last frame is applied if played beyond its + * duration. In either case {@link TrackEntry#trackEnd} determines when the track is cleared. + * @returns A track entry to allow further customization of animation playback. References to the track entry must not be kept + * after the {@link AnimationStateListener#dispose()} event occurs. */ + setAnimationWith(trackIndex, animation, loop = false) { + if (!animation) + throw new Error("animation cannot be null."); + let interrupt = true; + let current = this.expandToIndex(trackIndex); + if (current) { + if (current.nextTrackLast == -1) { + this.tracks[trackIndex] = current.mixingFrom; + this.queue.interrupt(current); + this.queue.end(current); + this.clearNext(current); + current = current.mixingFrom; + interrupt = false; + } else + this.clearNext(current); + } + let entry = this.trackEntry(trackIndex, animation, loop, current); + this.setCurrent(trackIndex, entry, interrupt); + this.queue.drain(); + return entry; + } + /** Queues an animation by name. + * + * See {@link #addAnimationWith()}. */ + addAnimation(trackIndex, animationName, loop = false, delay = 0) { + let animation = this.data.skeletonData.findAnimation(animationName); + if (!animation) + throw new Error("Animation not found: " + animationName); + return this.addAnimationWith(trackIndex, animation, loop, delay); + } + /** Adds an animation to be played after the current or last queued animation for a track. If the track is empty, it is + * equivalent to calling {@link #setAnimationWith()}. + * @param delay If > 0, sets {@link TrackEntry#delay}. If <= 0, the delay set is the duration of the previous track entry + * minus any mix duration (from the {@link AnimationStateData}) plus the specified `delay` (ie the mix + * ends at (`delay` = 0) or before (`delay` < 0) the previous track entry duration). If the + * previous entry is looping, its next loop completion is used instead of its duration. + * @returns A track entry to allow further customization of animation playback. References to the track entry must not be kept + * after the {@link AnimationStateListener#dispose()} event occurs. */ + addAnimationWith(trackIndex, animation, loop = false, delay = 0) { + if (!animation) + throw new Error("animation cannot be null."); + let last = this.expandToIndex(trackIndex); + if (last) { + while (last.next) + last = last.next; + } + let entry = this.trackEntry(trackIndex, animation, loop, last); + if (!last) { + this.setCurrent(trackIndex, entry, true); + this.queue.drain(); + } else { + last.next = entry; + entry.previous = last; + if (delay <= 0) + delay += last.getTrackComplete() - entry.mixDuration; + } + entry.delay = delay; + return entry; + } + /** Sets an empty animation for a track, discarding any queued animations, and sets the track entry's + * {@link TrackEntry#mixduration}. An empty animation has no timelines and serves as a placeholder for mixing in or out. + * + * Mixing out is done by setting an empty animation with a mix duration using either {@link #setEmptyAnimation()}, + * {@link #setEmptyAnimations()}, or {@link #addEmptyAnimation()}. Mixing to an empty animation causes + * the previous animation to be applied less and less over the mix duration. Properties keyed in the previous animation + * transition to the value from lower tracks or to the setup pose value if no lower tracks key the property. A mix duration of + * 0 still mixes out over one frame. + * + * Mixing in is done by first setting an empty animation, then adding an animation using + * {@link #addAnimation()} and on the returned track entry, set the + * {@link TrackEntry#setMixDuration()}. Mixing from an empty animation causes the new animation to be applied more and + * more over the mix duration. Properties keyed in the new animation transition from the value from lower tracks or from the + * setup pose value if no lower tracks key the property to the value keyed in the new animation. */ + setEmptyAnimation(trackIndex, mixDuration = 0) { + let entry = this.setAnimationWith(trackIndex, _AnimationState.emptyAnimation(), false); + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + } + /** Adds an empty animation to be played after the current or last queued animation for a track, and sets the track entry's + * {@link TrackEntry#mixDuration}. If the track is empty, it is equivalent to calling + * {@link #setEmptyAnimation()}. + * + * See {@link #setEmptyAnimation()}. + * @param delay If > 0, sets {@link TrackEntry#delay}. If <= 0, the delay set is the duration of the previous track entry + * minus any mix duration plus the specified `delay` (ie the mix ends at (`delay` = 0) or + * before (`delay` < 0) the previous track entry duration). If the previous entry is looping, its next + * loop completion is used instead of its duration. + * @return A track entry to allow further customization of animation playback. References to the track entry must not be kept + * after the {@link AnimationStateListener#dispose()} event occurs. */ + addEmptyAnimation(trackIndex, mixDuration = 0, delay = 0) { + let entry = this.addAnimationWith(trackIndex, _AnimationState.emptyAnimation(), false, delay); + if (delay <= 0) + entry.delay += entry.mixDuration - mixDuration; + entry.mixDuration = mixDuration; + entry.trackEnd = mixDuration; + return entry; + } + /** Sets an empty animation for every track, discarding any queued animations, and mixes to it over the specified mix + * duration. */ + setEmptyAnimations(mixDuration = 0) { + let oldDrainDisabled = this.queue.drainDisabled; + this.queue.drainDisabled = true; + for (let i = 0, n = this.tracks.length; i < n; i++) { + let current = this.tracks[i]; + if (current) + this.setEmptyAnimation(current.trackIndex, mixDuration); + } + this.queue.drainDisabled = oldDrainDisabled; + this.queue.drain(); + } + expandToIndex(index) { + if (index < this.tracks.length) + return this.tracks[index]; + Utils.ensureArrayCapacity(this.tracks, index + 1, null); + this.tracks.length = index + 1; + return null; + } + /** @param last May be null. */ + trackEntry(trackIndex, animation, loop, last) { + let entry = this.trackEntryPool.obtain(); + entry.reset(); + entry.trackIndex = trackIndex; + entry.animation = animation; + entry.loop = loop; + entry.holdPrevious = false; + entry.reverse = false; + entry.shortestRotation = false; + entry.eventThreshold = 0; + entry.alphaAttachmentThreshold = 0; + entry.mixAttachmentThreshold = 0; + entry.mixDrawOrderThreshold = 0; + entry.animationStart = 0; + entry.animationEnd = animation.duration; + entry.animationLast = -1; + entry.nextAnimationLast = -1; + entry.delay = 0; + entry.trackTime = 0; + entry.trackLast = -1; + entry.nextTrackLast = -1; + entry.trackEnd = Number.MAX_VALUE; + entry.timeScale = 1; + entry.alpha = 1; + entry.mixTime = 0; + entry.mixDuration = !last ? 0 : this.data.getMix(last.animation, animation); + entry.interruptAlpha = 1; + entry.totalAlpha = 0; + entry.mixBlend = MixBlend.replace; + return entry; + } + /** Removes the {@link TrackEntry#getNext() next entry} and all entries after it for the specified entry. */ + clearNext(entry) { + let next = entry.next; + while (next) { + this.queue.dispose(next); + next = next.next; + } + entry.next = null; + } + _animationsChanged() { + this.animationsChanged = false; + this.propertyIDs.clear(); + let tracks = this.tracks; + for (let i = 0, n = tracks.length; i < n; i++) { + let entry = tracks[i]; + if (!entry) + continue; + while (entry.mixingFrom) + entry = entry.mixingFrom; + do { + if (!entry.mixingTo || entry.mixBlend != MixBlend.add) + this.computeHold(entry); + entry = entry.mixingTo; + } while (entry); + } + } + computeHold(entry) { + let to = entry.mixingTo; + let timelines = entry.animation.timelines; + let timelinesCount = entry.animation.timelines.length; + let timelineMode = entry.timelineMode; + timelineMode.length = timelinesCount; + let timelineHoldMix = entry.timelineHoldMix; + timelineHoldMix.length = 0; + let propertyIDs = this.propertyIDs; + if (to && to.holdPrevious) { + for (let i = 0; i < timelinesCount; i++) + timelineMode[i] = propertyIDs.addAll(timelines[i].getPropertyIds()) ? HOLD_FIRST : HOLD_SUBSEQUENT; + return; + } + outer: + for (let i = 0; i < timelinesCount; i++) { + let timeline = timelines[i]; + let ids = timeline.getPropertyIds(); + if (!propertyIDs.addAll(ids)) + timelineMode[i] = SUBSEQUENT; + else if (!to || timeline instanceof AttachmentTimeline || timeline instanceof DrawOrderTimeline || timeline instanceof EventTimeline || !to.animation.hasTimeline(ids)) { + timelineMode[i] = FIRST; + } else { + for (let next = to.mixingTo; next; next = next.mixingTo) { + if (next.animation.hasTimeline(ids)) + continue; + if (entry.mixDuration > 0) { + timelineMode[i] = HOLD_MIX; + timelineHoldMix[i] = next; + continue outer; + } + break; + } + timelineMode[i] = HOLD_FIRST; + } + } + } + /** Returns the track entry for the animation currently playing on the track, or null if no animation is currently playing. */ + getCurrent(trackIndex) { + if (trackIndex >= this.tracks.length) + return null; + return this.tracks[trackIndex]; + } + /** Adds a listener to receive events for all track entries. */ + addListener(listener) { + if (!listener) + throw new Error("listener cannot be null."); + this.listeners.push(listener); + } + /** Removes the listener added with {@link #addListener()}. */ + removeListener(listener) { + let index = this.listeners.indexOf(listener); + if (index >= 0) + this.listeners.splice(index, 1); + } + /** Removes all listeners added with {@link #addListener()}. */ + clearListeners() { + this.listeners.length = 0; + } + /** Discards all listener notifications that have not yet been delivered. This can be useful to call from an + * {@link AnimationStateListener} when it is known that further notifications that may have been already queued for delivery + * are not wanted because new animations are being set. */ + clearListenerNotifications() { + this.queue.clear(); + } + }; + var TrackEntry = class { + /** The animation to apply for this track entry. */ + animation = null; + previous = null; + /** The animation queued to start after this animation, or null. `next` makes up a linked list. */ + next = null; + /** The track entry for the previous animation when mixing from the previous animation to this animation, or null if no + * mixing is currently occuring. When mixing from multiple animations, `mixingFrom` makes up a linked list. */ + mixingFrom = null; + /** The track entry for the next animation when mixing from this animation to the next animation, or null if no mixing is + * currently occuring. When mixing to multiple animations, `mixingTo` makes up a linked list. */ + mixingTo = null; + /** The listener for events generated by this track entry, or null. + * + * A track entry returned from {@link AnimationState#setAnimation()} is already the current animation + * for the track, so the track entry listener {@link AnimationStateListener#start()} will not be called. */ + listener = null; + /** The index of the track where this track entry is either current or queued. + * + * See {@link AnimationState#getCurrent()}. */ + trackIndex = 0; + /** If true, the animation will repeat. If false it will not, instead its last frame is applied if played beyond its + * duration. */ + loop = false; + /** If true, when mixing from the previous animation to this animation, the previous animation is applied as normal instead + * of being mixed out. + * + * When mixing between animations that key the same property, if a lower track also keys that property then the value will + * briefly dip toward the lower track value during the mix. This happens because the first animation mixes from 100% to 0% + * while the second animation mixes from 0% to 100%. Setting `holdPrevious` to true applies the first animation + * at 100% during the mix so the lower track value is overwritten. Such dipping does not occur on the lowest track which + * keys the property, only when a higher track also keys the property. + * + * Snapping will occur if `holdPrevious` is true and this animation does not key all the same properties as the + * previous animation. */ + holdPrevious = false; + reverse = false; + shortestRotation = false; + /** When the mix percentage ({@link #mixTime} / {@link #mixDuration}) is less than the + * `eventThreshold`, event timelines are applied while this animation is being mixed out. Defaults to 0, so event + * timelines are not applied while this animation is being mixed out. */ + eventThreshold = 0; + /** When the mix percentage ({@link #mixtime} / {@link #mixDuration}) is less than the + * `attachmentThreshold`, attachment timelines are applied while this animation is being mixed out. Defaults to + * 0, so attachment timelines are not applied while this animation is being mixed out. */ + mixAttachmentThreshold = 0; + /** When {@link #getAlpha()} is greater than alphaAttachmentThreshold, attachment timelines are applied. + * Defaults to 0, so attachment timelines are always applied. */ + alphaAttachmentThreshold = 0; + /** When the mix percentage ({@link #getMixTime()} / {@link #getMixDuration()}) is less than the + * mixDrawOrderThreshold, draw order timelines are applied while this animation is being mixed out. Defaults to + * 0, so draw order timelines are not applied while this animation is being mixed out. */ + mixDrawOrderThreshold = 0; + /** Seconds when this animation starts, both initially and after looping. Defaults to 0. + * + * When changing the `animationStart` time, it often makes sense to set {@link #animationLast} to the same + * value to prevent timeline keys before the start time from triggering. */ + animationStart = 0; + /** Seconds for the last frame of this animation. Non-looping animations won't play past this time. Looping animations will + * loop back to {@link #animationStart} at this time. Defaults to the animation {@link Animation#duration}. */ + animationEnd = 0; + /** The time in seconds this animation was last applied. Some timelines use this for one-time triggers. Eg, when this + * animation is applied, event timelines will fire all events between the `animationLast` time (exclusive) and + * `animationTime` (inclusive). Defaults to -1 to ensure triggers on frame 0 happen the first time this animation + * is applied. */ + animationLast = 0; + nextAnimationLast = 0; + /** Seconds to postpone playing the animation. When this track entry is the current track entry, `delay` + * postpones incrementing the {@link #trackTime}. When this track entry is queued, `delay` is the time from + * the start of the previous animation to when this track entry will become the current track entry (ie when the previous + * track entry {@link TrackEntry#trackTime} >= this track entry's `delay`). + * + * {@link #timeScale} affects the delay. */ + delay = 0; + /** Current time in seconds this track entry has been the current track entry. The track time determines + * {@link #animationTime}. The track time can be set to start the animation at a time other than 0, without affecting + * looping. */ + trackTime = 0; + trackLast = 0; + nextTrackLast = 0; + /** The track time in seconds when this animation will be removed from the track. Defaults to the highest possible float + * value, meaning the animation will be applied until a new animation is set or the track is cleared. If the track end time + * is reached, no other animations are queued for playback, and mixing from any previous animations is complete, then the + * properties keyed by the animation are set to the setup pose and the track is cleared. + * + * It may be desired to use {@link AnimationState#addEmptyAnimation()} rather than have the animation + * abruptly cease being applied. */ + trackEnd = 0; + /** Multiplier for the delta time when this track entry is updated, causing time for this animation to pass slower or + * faster. Defaults to 1. + * + * {@link #mixTime} is not affected by track entry time scale, so {@link #mixDuration} may need to be adjusted to + * match the animation speed. + * + * When using {@link AnimationState#addAnimation()} with a `delay` <= 0, note the + * {@link #delay} is set using the mix duration from the {@link AnimationStateData}, assuming time scale to be 1. If + * the time scale is not 1, the delay may need to be adjusted. + * + * See AnimationState {@link AnimationState#timeScale} for affecting all animations. */ + timeScale = 0; + /** Values < 1 mix this animation with the skeleton's current pose (usually the pose resulting from lower tracks). Defaults + * to 1, which overwrites the skeleton's current pose with this animation. + * + * Typically track 0 is used to completely pose the skeleton, then alpha is used on higher tracks. It doesn't make sense to + * use alpha on track 0 if the skeleton pose is from the last frame render. */ + alpha = 0; + /** Seconds from 0 to the {@link #getMixDuration()} when mixing from the previous animation to this animation. May be + * slightly more than `mixDuration` when the mix is complete. */ + mixTime = 0; + /** Seconds for mixing from the previous animation to this animation. Defaults to the value provided by AnimationStateData + * {@link AnimationStateData#getMix()} based on the animation before this animation (if any). + * + * A mix duration of 0 still mixes out over one frame to provide the track entry being mixed out a chance to revert the + * properties it was animating. + * + * The `mixDuration` can be set manually rather than use the value from + * {@link AnimationStateData#getMix()}. In that case, the `mixDuration` can be set for a new + * track entry only before {@link AnimationState#update(float)} is first called. + * + * When using {@link AnimationState#addAnimation()} with a `delay` <= 0, note the + * {@link #delay} is set using the mix duration from the {@link AnimationStateData}, not a mix duration set + * afterward. */ + _mixDuration = 0; + interruptAlpha = 0; + totalAlpha = 0; + get mixDuration() { + return this._mixDuration; + } + set mixDuration(mixDuration) { + this._mixDuration = mixDuration; + } + setMixDurationWithDelay(mixDuration, delay) { + this._mixDuration = mixDuration; + if (this.previous != null && delay <= 0) + delay += this.previous.getTrackComplete() - mixDuration; + this.delay = delay; + } + /** Controls how properties keyed in the animation are mixed with lower tracks. Defaults to {@link MixBlend#replace}, which + * replaces the values from the lower tracks with the animation values. {@link MixBlend#add} adds the animation values to + * the values from the lower tracks. + * + * The `mixBlend` can be set for a new track entry only before {@link AnimationState#apply()} is first + * called. */ + mixBlend = 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; + } + /** Uses {@link #trackTime} to compute the `animationTime`, which is between {@link #animationStart} + * and {@link #animationEnd}. When the `trackTime` is 0, the `animationTime` is equal to the + * `animationStart` time. */ + getAnimationTime() { + if (this.loop) { + let duration = this.animationEnd - this.animationStart; + if (duration == 0) + return this.animationStart; + return this.trackTime % duration + this.animationStart; + } + return Math.min(this.trackTime + this.animationStart, this.animationEnd); + } + setAnimationLast(animationLast) { + this.animationLast = animationLast; + this.nextAnimationLast = animationLast; + } + /** Returns true if at least one loop has been completed. + * + * See {@link AnimationStateListener#complete()}. */ + isComplete() { + return this.trackTime >= this.animationEnd - this.animationStart; + } + /** Resets the rotation directions for mixing this entry's rotate timelines. This can be useful to avoid bones rotating the + * long way around when using {@link #alpha} and starting animations on other tracks. + * + * Mixing with {@link MixBlend#replace} involves finding a rotation between two others, which has two possible solutions: + * the short way or the long way around. The two rotations likely change over time, so which direction is the short or long + * way also changes. If the short way was always chosen, bones would flip to the other side when that direction became the + * long way. TrackEntry chooses the short way the first time it is applied and remembers that direction. */ + resetRotationDirections() { + this.timelinesRotation.length = 0; + } + getTrackComplete() { + let duration = this.animationEnd - this.animationStart; + if (duration != 0) { + if (this.loop) + return duration * (1 + (this.trackTime / duration | 0)); + if (this.trackTime < duration) + return duration; + } + return this.trackTime; + } + /** Returns true if this track entry has been applied at least once. + *

+ * See {@link AnimationState#apply(Skeleton)}. */ + wasApplied() { + return this.nextTrackLast != -1; + } + }; + var EventQueue = class { + objects = []; + drainDisabled = false; + animState; + constructor(animState) { + this.animState = animState; + } + start(entry) { + this.objects.push(EventType.start); + this.objects.push(entry); + this.animState.animationsChanged = true; + } + interrupt(entry) { + this.objects.push(EventType.interrupt); + this.objects.push(entry); + } + end(entry) { + this.objects.push(EventType.end); + this.objects.push(entry); + this.animState.animationsChanged = true; + } + dispose(entry) { + this.objects.push(EventType.dispose); + this.objects.push(entry); + } + complete(entry) { + this.objects.push(EventType.complete); + this.objects.push(entry); + } + event(entry, event) { + this.objects.push(EventType.event); + this.objects.push(entry); + this.objects.push(event); + } + drain() { + if (this.drainDisabled) + return; + this.drainDisabled = true; + let objects = this.objects; + let listeners = this.animState.listeners; + for (let i = 0; i < objects.length; i += 2) { + let type = objects[i]; + let entry = objects[i + 1]; + switch (type) { + case EventType.start: + if (entry.listener && entry.listener.start) + entry.listener.start(entry); + for (let ii = 0; ii < listeners.length; ii++) { + let listener = listeners[ii]; + if (listener.start) + listener.start(entry); + } + break; + case EventType.interrupt: + if (entry.listener && entry.listener.interrupt) + entry.listener.interrupt(entry); + for (let ii = 0; ii < listeners.length; ii++) { + let listener = listeners[ii]; + if (listener.interrupt) + listener.interrupt(entry); + } + break; + case EventType.end: + if (entry.listener && entry.listener.end) + entry.listener.end(entry); + for (let ii = 0; ii < listeners.length; ii++) { + let listener = listeners[ii]; + if (listener.end) + listener.end(entry); + } + case EventType.dispose: + if (entry.listener && entry.listener.dispose) + entry.listener.dispose(entry); + for (let ii = 0; ii < listeners.length; ii++) { + let listener = listeners[ii]; + if (listener.dispose) + listener.dispose(entry); + } + this.animState.trackEntryPool.free(entry); + break; + case EventType.complete: + if (entry.listener && entry.listener.complete) + entry.listener.complete(entry); + for (let ii = 0; ii < listeners.length; ii++) { + let listener = listeners[ii]; + if (listener.complete) + listener.complete(entry); + } + break; + case EventType.event: + let event = objects[i++ + 2]; + if (entry.listener && entry.listener.event) + entry.listener.event(entry, event); + for (let ii = 0; ii < listeners.length; ii++) { + let listener = listeners[ii]; + if (listener.event) + listener.event(entry, event); + } + break; + } + } + this.clear(); + this.drainDisabled = false; + } + clear() { + this.objects.length = 0; + } + }; + var EventType; + (function(EventType2) { + EventType2[EventType2["start"] = 0] = "start"; + EventType2[EventType2["interrupt"] = 1] = "interrupt"; + EventType2[EventType2["end"] = 2] = "end"; + EventType2[EventType2["dispose"] = 3] = "dispose"; + EventType2[EventType2["complete"] = 4] = "complete"; + EventType2[EventType2["event"] = 5] = "event"; + })(EventType || (EventType = {})); + var AnimationStateAdapter = class { + start(entry) { + } + interrupt(entry) { + } + end(entry) { + } + dispose(entry) { + } + complete(entry) { + } + event(entry, event) { + } + }; + var SUBSEQUENT = 0; + var FIRST = 1; + var HOLD_SUBSEQUENT = 2; + var HOLD_FIRST = 3; + var HOLD_MIX = 4; + var SETUP = 1; + var CURRENT = 2; + + // node_modules/@esotericsoftware/spine-core/dist/AnimationStateData.js + var AnimationStateData = class { + /** The SkeletonData to look up animations when they are specified by name. */ + skeletonData; + animationToMixTime = {}; + /** The mix duration to use when no mix duration has been defined between two animations. */ + defaultMix = 0; + constructor(skeletonData) { + if (!skeletonData) + throw new Error("skeletonData cannot be null."); + this.skeletonData = skeletonData; + } + /** Sets a mix duration by animation name. + * + * See {@link #setMixWith()}. */ + setMix(fromName, toName, duration) { + let from = this.skeletonData.findAnimation(fromName); + if (!from) + throw new Error("Animation not found: " + fromName); + let to = this.skeletonData.findAnimation(toName); + if (!to) + throw new Error("Animation not found: " + toName); + this.setMixWith(from, to, duration); + } + /** Sets the mix duration when changing from the specified animation to the other. + * + * See {@link TrackEntry#mixDuration}. */ + setMixWith(from, to, duration) { + if (!from) + throw new Error("from cannot be null."); + if (!to) + throw new Error("to cannot be null."); + let key = from.name + "." + to.name; + this.animationToMixTime[key] = duration; + } + /** Returns the mix duration to use when changing from the specified animation to the other, or the {@link #defaultMix} if + * no mix duration has been set. */ + getMix(from, to) { + let key = from.name + "." + to.name; + let value = this.animationToMixTime[key]; + return value === void 0 ? this.defaultMix : value; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/attachments/BoundingBoxAttachment.js + var BoundingBoxAttachment = class _BoundingBoxAttachment extends VertexAttachment { + color = new Color(1, 1, 1, 1); + constructor(name) { + super(name); + } + copy() { + let copy = new _BoundingBoxAttachment(this.name); + this.copyTo(copy); + copy.color.setFromColor(this.color); + return copy; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/attachments/ClippingAttachment.js + var ClippingAttachment = class _ClippingAttachment extends VertexAttachment { + /** Clipping is performed between the clipping polygon's slot and the end slot. Returns null if clipping is done until the end of + * the skeleton's rendering. */ + endSlot = null; + // Nonessential. + /** The color of the clipping polygon as it was in Spine. Available only when nonessential data was exported. Clipping polygons + * are not usually rendered at runtime. */ + color = new Color(0.2275, 0.2275, 0.8078, 1); + // ce3a3aff + constructor(name) { + super(name); + } + copy() { + let copy = new _ClippingAttachment(this.name); + this.copyTo(copy); + copy.endSlot = this.endSlot; + copy.color.setFromColor(this.color); + return copy; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/Texture.js + var Texture = class { + _image; + constructor(image) { + this._image = image; + } + getImage() { + return this._image; + } + }; + var TextureFilter; + (function(TextureFilter2) { + TextureFilter2[TextureFilter2["Nearest"] = 9728] = "Nearest"; + TextureFilter2[TextureFilter2["Linear"] = 9729] = "Linear"; + TextureFilter2[TextureFilter2["MipMap"] = 9987] = "MipMap"; + TextureFilter2[TextureFilter2["MipMapNearestNearest"] = 9984] = "MipMapNearestNearest"; + TextureFilter2[TextureFilter2["MipMapLinearNearest"] = 9985] = "MipMapLinearNearest"; + TextureFilter2[TextureFilter2["MipMapNearestLinear"] = 9986] = "MipMapNearestLinear"; + TextureFilter2[TextureFilter2["MipMapLinearLinear"] = 9987] = "MipMapLinearLinear"; + })(TextureFilter || (TextureFilter = {})); + var TextureWrap; + (function(TextureWrap2) { + TextureWrap2[TextureWrap2["MirroredRepeat"] = 33648] = "MirroredRepeat"; + TextureWrap2[TextureWrap2["ClampToEdge"] = 33071] = "ClampToEdge"; + TextureWrap2[TextureWrap2["Repeat"] = 10497] = "Repeat"; + })(TextureWrap || (TextureWrap = {})); + var TextureRegion = class { + texture; + u = 0; + v = 0; + u2 = 0; + v2 = 0; + width = 0; + height = 0; + degrees = 0; + offsetX = 0; + offsetY = 0; + originalWidth = 0; + originalHeight = 0; + }; + var FakeTexture = class extends Texture { + setFilters(minFilter, magFilter) { + } + setWraps(uWrap, vWrap) { + } + dispose() { + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/TextureAtlas.js + var TextureAtlas = class { + pages = new Array(); + regions = new Array(); + constructor(atlasText) { + let reader = new TextureAtlasReader(atlasText); + let entry = new Array(4); + let pageFields = {}; + pageFields["size"] = (page2) => { + page2.width = parseInt(entry[1]); + page2.height = parseInt(entry[2]); + }; + pageFields["format"] = () => { + }; + pageFields["filter"] = (page2) => { + page2.minFilter = Utils.enumValue(TextureFilter, entry[1]); + page2.magFilter = Utils.enumValue(TextureFilter, entry[2]); + }; + pageFields["repeat"] = (page2) => { + if (entry[1].indexOf("x") != -1) + page2.uWrap = TextureWrap.Repeat; + if (entry[1].indexOf("y") != -1) + page2.vWrap = TextureWrap.Repeat; + }; + pageFields["pma"] = (page2) => { + page2.pma = entry[1] == "true"; + }; + var regionFields = {}; + regionFields["xy"] = (region) => { + region.x = parseInt(entry[1]); + region.y = parseInt(entry[2]); + }; + regionFields["size"] = (region) => { + region.width = parseInt(entry[1]); + region.height = parseInt(entry[2]); + }; + regionFields["bounds"] = (region) => { + region.x = parseInt(entry[1]); + region.y = parseInt(entry[2]); + region.width = parseInt(entry[3]); + region.height = parseInt(entry[4]); + }; + regionFields["offset"] = (region) => { + region.offsetX = parseInt(entry[1]); + region.offsetY = parseInt(entry[2]); + }; + regionFields["orig"] = (region) => { + region.originalWidth = parseInt(entry[1]); + region.originalHeight = parseInt(entry[2]); + }; + regionFields["offsets"] = (region) => { + region.offsetX = parseInt(entry[1]); + region.offsetY = parseInt(entry[2]); + region.originalWidth = parseInt(entry[3]); + region.originalHeight = parseInt(entry[4]); + }; + regionFields["rotate"] = (region) => { + let value = entry[1]; + if (value == "true") + region.degrees = 90; + else if (value != "false") + region.degrees = parseInt(value); + }; + regionFields["index"] = (region) => { + region.index = parseInt(entry[1]); + }; + let line = reader.readLine(); + while (line && line.trim().length == 0) + line = reader.readLine(); + while (true) { + if (!line || line.trim().length == 0) + break; + if (reader.readEntry(entry, line) == 0) + break; + line = reader.readLine(); + } + let page = null; + let names = null; + let values = null; + while (true) { + if (line === null) + break; + if (line.trim().length == 0) { + page = null; + line = reader.readLine(); + } else if (!page) { + page = new TextureAtlasPage(line.trim()); + while (true) { + if (reader.readEntry(entry, line = reader.readLine()) == 0) + break; + let field = pageFields[entry[0]]; + if (field) + field(page); + } + this.pages.push(page); + } else { + let region = new TextureAtlasRegion(page, line); + while (true) { + let count = reader.readEntry(entry, line = reader.readLine()); + if (count == 0) + break; + let field = regionFields[entry[0]]; + if (field) + field(region); + else { + if (!names) + names = []; + if (!values) + values = []; + names.push(entry[0]); + let entryValues = []; + for (let i = 0; i < count; i++) + entryValues.push(parseInt(entry[i + 1])); + values.push(entryValues); + } + } + if (region.originalWidth == 0 && region.originalHeight == 0) { + region.originalWidth = region.width; + region.originalHeight = region.height; + } + if (names && names.length > 0 && values && values.length > 0) { + region.names = names; + region.values = values; + names = null; + values = null; + } + region.u = region.x / page.width; + region.v = region.y / page.height; + if (region.degrees == 90) { + region.u2 = (region.x + region.height) / page.width; + region.v2 = (region.y + region.width) / page.height; + } else { + region.u2 = (region.x + region.width) / page.width; + region.v2 = (region.y + region.height) / page.height; + } + this.regions.push(region); + } + } + } + findRegion(name) { + for (let i = 0; i < this.regions.length; i++) { + if (this.regions[i].name == name) { + return this.regions[i]; + } + } + return null; + } + setTextures(assetManager, pathPrefix = "") { + for (let page of this.pages) + page.setTexture(assetManager.get(pathPrefix + page.name)); + } + dispose() { + for (let i = 0; i < this.pages.length; i++) { + this.pages[i].texture?.dispose(); + } + } + }; + var TextureAtlasReader = class { + lines; + index = 0; + constructor(text) { + this.lines = text.split(/\r\n|\r|\n/); + } + readLine() { + if (this.index >= this.lines.length) + return null; + return this.lines[this.index++]; + } + readEntry(entry, line) { + if (!line) + return 0; + line = line.trim(); + if (line.length == 0) + return 0; + let colon = line.indexOf(":"); + if (colon == -1) + return 0; + entry[0] = line.substr(0, colon).trim(); + for (let i = 1, lastMatch = colon + 1; ; i++) { + let comma = line.indexOf(",", lastMatch); + if (comma == -1) { + entry[i] = line.substr(lastMatch).trim(); + return i; + } + entry[i] = line.substr(lastMatch, comma - lastMatch).trim(); + lastMatch = comma + 1; + if (i == 4) + return 4; + } + } + }; + var TextureAtlasPage = class { + name; + minFilter = TextureFilter.Nearest; + magFilter = TextureFilter.Nearest; + uWrap = TextureWrap.ClampToEdge; + vWrap = TextureWrap.ClampToEdge; + texture = null; + width = 0; + height = 0; + pma = false; + regions = new Array(); + constructor(name) { + this.name = name; + } + setTexture(texture) { + this.texture = texture; + texture.setFilters(this.minFilter, this.magFilter); + texture.setWraps(this.uWrap, this.vWrap); + for (let region of this.regions) + region.texture = texture; + } + }; + var TextureAtlasRegion = class extends TextureRegion { + page; + name; + x = 0; + y = 0; + offsetX = 0; + offsetY = 0; + originalWidth = 0; + originalHeight = 0; + index = 0; + degrees = 0; + names = null; + values = null; + constructor(page, name) { + super(); + this.page = page; + this.name = name; + page.regions.push(this); + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/attachments/MeshAttachment.js + var MeshAttachment = class _MeshAttachment extends VertexAttachment { + region = null; + /** The name of the texture region for this attachment. */ + path; + /** The UV pair for each vertex, normalized within the texture region. */ + regionUVs = []; + /** The UV pair for each vertex, normalized within the entire texture. + * + * See {@link #updateUVs}. */ + uvs = []; + /** Triplets of vertex indices which describe the mesh's triangulation. */ + triangles = []; + /** The color to tint the mesh. */ + color = new Color(1, 1, 1, 1); + /** The width of the mesh's image. Available only when nonessential data was exported. */ + width = 0; + /** The height of the mesh's image. Available only when nonessential data was exported. */ + height = 0; + /** The number of entries at the beginning of {@link #vertices} that make up the mesh hull. */ + hullLength = 0; + /** Vertex index pairs describing edges for controling triangulation. Mesh triangles will never cross edges. Only available if + * nonessential data was exported. Triangulation is not performed at runtime. */ + edges = []; + parentMesh = null; + sequence = null; + tempColor = new Color(0, 0, 0, 0); + constructor(name, path2) { + super(name); + this.path = path2; + } + /** Calculates {@link #uvs} using the {@link #regionUVs} and region. Must be called if the region, the region's properties, or + * the {@link #regionUVs} are changed. */ + updateRegion() { + if (!this.region) + throw new Error("Region not set."); + let regionUVs = this.regionUVs; + if (!this.uvs || this.uvs.length != regionUVs.length) + this.uvs = Utils.newFloatArray(regionUVs.length); + let uvs = this.uvs; + let n = this.uvs.length; + let u = this.region.u, v = this.region.v, width = 0, height = 0; + if (this.region instanceof TextureAtlasRegion) { + let region = this.region, page = region.page; + let textureWidth = page.width, textureHeight = page.height; + switch (region.degrees) { + case 90: + u -= (region.originalHeight - region.offsetY - region.height) / textureWidth; + v -= (region.originalWidth - region.offsetX - region.width) / textureHeight; + width = region.originalHeight / textureWidth; + height = region.originalWidth / textureHeight; + for (let i = 0; i < n; i += 2) { + uvs[i] = u + regionUVs[i + 1] * width; + uvs[i + 1] = v + (1 - regionUVs[i]) * height; + } + return; + case 180: + u -= (region.originalWidth - region.offsetX - region.width) / textureWidth; + v -= region.offsetY / textureHeight; + width = region.originalWidth / textureWidth; + height = region.originalHeight / textureHeight; + for (let i = 0; i < n; i += 2) { + uvs[i] = u + (1 - regionUVs[i]) * width; + uvs[i + 1] = v + (1 - regionUVs[i + 1]) * height; + } + return; + case 270: + u -= region.offsetY / textureWidth; + v -= region.offsetX / textureHeight; + width = region.originalHeight / textureWidth; + height = region.originalWidth / textureHeight; + for (let i = 0; i < n; i += 2) { + uvs[i] = u + (1 - regionUVs[i + 1]) * width; + uvs[i + 1] = v + regionUVs[i] * height; + } + return; + } + u -= region.offsetX / textureWidth; + v -= (region.originalHeight - region.offsetY - region.height) / textureHeight; + width = region.originalWidth / textureWidth; + height = region.originalHeight / textureHeight; + } else if (!this.region) { + u = v = 0; + width = height = 1; + } else { + width = this.region.u2 - u; + height = this.region.v2 - v; + } + for (let i = 0; i < n; i += 2) { + uvs[i] = u + regionUVs[i] * width; + uvs[i + 1] = v + regionUVs[i + 1] * height; + } + } + /** The parent mesh if this is a linked mesh, else null. A linked mesh shares the {@link #bones}, {@link #vertices}, + * {@link #regionUVs}, {@link #triangles}, {@link #hullLength}, {@link #edges}, {@link #width}, and {@link #height} with the + * parent mesh, but may have a different {@link #name} or {@link #path} (and therefore a different texture). */ + getParentMesh() { + return this.parentMesh; + } + /** @param parentMesh May be null. */ + setParentMesh(parentMesh) { + this.parentMesh = parentMesh; + if (parentMesh) { + this.bones = parentMesh.bones; + this.vertices = parentMesh.vertices; + this.worldVerticesLength = parentMesh.worldVerticesLength; + this.regionUVs = parentMesh.regionUVs; + this.triangles = parentMesh.triangles; + this.hullLength = parentMesh.hullLength; + this.worldVerticesLength = parentMesh.worldVerticesLength; + } + } + copy() { + if (this.parentMesh) + return this.newLinkedMesh(); + let copy = new _MeshAttachment(this.name, this.path); + copy.region = this.region; + copy.color.setFromColor(this.color); + this.copyTo(copy); + copy.regionUVs = new Array(this.regionUVs.length); + Utils.arrayCopy(this.regionUVs, 0, copy.regionUVs, 0, this.regionUVs.length); + copy.uvs = new Array(this.uvs.length); + Utils.arrayCopy(this.uvs, 0, copy.uvs, 0, this.uvs.length); + copy.triangles = new Array(this.triangles.length); + Utils.arrayCopy(this.triangles, 0, copy.triangles, 0, this.triangles.length); + copy.hullLength = this.hullLength; + copy.sequence = this.sequence != null ? this.sequence.copy() : null; + if (this.edges) { + copy.edges = new Array(this.edges.length); + Utils.arrayCopy(this.edges, 0, copy.edges, 0, this.edges.length); + } + copy.width = this.width; + copy.height = this.height; + return copy; + } + computeWorldVertices(slot, start, count, worldVertices, offset, stride) { + if (this.sequence != null) + this.sequence.apply(slot, this); + super.computeWorldVertices(slot, start, count, worldVertices, offset, stride); + } + /** Returns a new mesh with the {@link #parentMesh} set to this mesh's parent mesh, if any, else to this mesh. **/ + newLinkedMesh() { + let copy = new _MeshAttachment(this.name, this.path); + copy.region = this.region; + copy.color.setFromColor(this.color); + copy.timelineAttachment = this.timelineAttachment; + copy.setParentMesh(this.parentMesh ? this.parentMesh : this); + if (copy.region != null) + copy.updateRegion(); + return copy; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/attachments/PathAttachment.js + var PathAttachment = class _PathAttachment extends VertexAttachment { + /** The lengths along the path in the setup pose from the start of the path to the end of each Bezier curve. */ + lengths = []; + /** If true, the start and end knots are connected. */ + closed = false; + /** If true, additional calculations are performed to make calculating positions along the path more accurate. If false, fewer + * calculations are performed but calculating positions along the path is less accurate. */ + constantSpeed = false; + /** The color of the path as it was in Spine. Available only when nonessential data was exported. Paths are not usually + * rendered at runtime. */ + color = new Color(1, 1, 1, 1); + constructor(name) { + super(name); + } + copy() { + let copy = new _PathAttachment(this.name); + this.copyTo(copy); + copy.lengths = new Array(this.lengths.length); + Utils.arrayCopy(this.lengths, 0, copy.lengths, 0, this.lengths.length); + copy.closed = closed; + copy.constantSpeed = this.constantSpeed; + copy.color.setFromColor(this.color); + return copy; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/attachments/PointAttachment.js + var PointAttachment = class _PointAttachment extends VertexAttachment { + x = 0; + y = 0; + rotation = 0; + /** The color of the point attachment as it was in Spine. Available only when nonessential data was exported. Point attachments + * are not usually rendered at runtime. */ + color = new Color(0.38, 0.94, 0, 1); + constructor(name) { + super(name); + } + computeWorldPosition(bone, point) { + point.x = this.x * bone.a + this.y * bone.b + bone.worldX; + point.y = this.x * bone.c + this.y * bone.d + bone.worldY; + return point; + } + computeWorldRotation(bone) { + const r = this.rotation * MathUtils.degRad, cos = Math.cos(r), sin = Math.sin(r); + const x = cos * bone.a + sin * bone.b; + const y = cos * bone.c + sin * bone.d; + return MathUtils.atan2Deg(y, x); + } + copy() { + let copy = new _PointAttachment(this.name); + copy.x = this.x; + copy.y = this.y; + copy.rotation = this.rotation; + copy.color.setFromColor(this.color); + return copy; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/attachments/RegionAttachment.js + var RegionAttachment = class _RegionAttachment extends Attachment { + /** The local x translation. */ + x = 0; + /** The local y translation. */ + y = 0; + /** The local scaleX. */ + scaleX = 1; + /** The local scaleY. */ + scaleY = 1; + /** The local rotation. */ + rotation = 0; + /** The width of the region attachment in Spine. */ + width = 0; + /** The height of the region attachment in Spine. */ + height = 0; + /** The color to tint the region attachment. */ + color = new Color(1, 1, 1, 1); + /** The name of the texture region for this attachment. */ + path; + region = null; + sequence = null; + /** For each of the 4 vertices, a pair of x,y values that is the local position of the vertex. + * + * See {@link #updateOffset()}. */ + offset = Utils.newFloatArray(8); + uvs = Utils.newFloatArray(8); + tempColor = new Color(1, 1, 1, 1); + constructor(name, path2) { + super(name); + this.path = path2; + } + /** Calculates the {@link #offset} using the region settings. Must be called after changing region settings. */ + updateRegion() { + if (!this.region) + throw new Error("Region not set."); + let region = this.region; + let uvs = this.uvs; + if (region == null) { + uvs[0] = 0; + uvs[1] = 0; + uvs[2] = 0; + uvs[3] = 1; + uvs[4] = 1; + uvs[5] = 1; + uvs[6] = 1; + uvs[7] = 0; + return; + } + let regionScaleX = this.width / this.region.originalWidth * this.scaleX; + let regionScaleY = this.height / this.region.originalHeight * this.scaleY; + let localX = -this.width / 2 * this.scaleX + this.region.offsetX * regionScaleX; + let localY = -this.height / 2 * this.scaleY + this.region.offsetY * regionScaleY; + let localX2 = localX + this.region.width * regionScaleX; + let localY2 = localY + this.region.height * regionScaleY; + let radians = this.rotation * MathUtils.degRad; + let cos = Math.cos(radians); + let sin = Math.sin(radians); + let x = this.x, y = this.y; + let localXCos = localX * cos + x; + let localXSin = localX * sin; + let localYCos = localY * cos + y; + let localYSin = localY * sin; + let localX2Cos = localX2 * cos + x; + let localX2Sin = localX2 * sin; + let localY2Cos = localY2 * cos + y; + let localY2Sin = localY2 * sin; + let offset = this.offset; + offset[0] = localXCos - localYSin; + offset[1] = localYCos + localXSin; + offset[2] = localXCos - localY2Sin; + offset[3] = localY2Cos + localXSin; + offset[4] = localX2Cos - localY2Sin; + offset[5] = localY2Cos + localX2Sin; + offset[6] = localX2Cos - localYSin; + offset[7] = localYCos + localX2Sin; + if (region.degrees == 90) { + uvs[0] = region.u2; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v2; + uvs[4] = region.u; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v; + } else { + uvs[0] = region.u; + uvs[1] = region.v2; + uvs[2] = region.u; + uvs[3] = region.v; + uvs[4] = region.u2; + uvs[5] = region.v; + uvs[6] = region.u2; + uvs[7] = region.v2; + } + } + /** Transforms the attachment's four vertices to world coordinates. If the attachment has a {@link #sequence}, the region may + * be changed. + *

+ * See World transforms in the Spine + * Runtimes Guide. + * @param worldVertices The output world vertices. Must have a length >= offset + 8. + * @param offset The worldVertices index to begin writing values. + * @param stride The number of worldVertices entries between the value pairs written. */ + computeWorldVertices(slot, worldVertices, offset, stride) { + if (this.sequence != null) + this.sequence.apply(slot, this); + let bone = slot.bone; + let vertexOffset = this.offset; + let x = bone.worldX, y = bone.worldY; + let a = bone.a, b = bone.b, c = bone.c, d = bone.d; + let offsetX = 0, offsetY = 0; + offsetX = vertexOffset[0]; + offsetY = vertexOffset[1]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[2]; + offsetY = vertexOffset[3]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[4]; + offsetY = vertexOffset[5]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + offset += stride; + offsetX = vertexOffset[6]; + offsetY = vertexOffset[7]; + worldVertices[offset] = offsetX * a + offsetY * b + x; + worldVertices[offset + 1] = offsetX * c + offsetY * d + y; + } + copy() { + let copy = new _RegionAttachment(this.name, this.path); + copy.region = this.region; + copy.x = this.x; + copy.y = this.y; + copy.scaleX = this.scaleX; + copy.scaleY = this.scaleY; + copy.rotation = this.rotation; + copy.width = this.width; + copy.height = this.height; + Utils.arrayCopy(this.uvs, 0, copy.uvs, 0, 8); + Utils.arrayCopy(this.offset, 0, copy.offset, 0, 8); + copy.color.setFromColor(this.color); + copy.sequence = this.sequence != null ? this.sequence.copy() : null; + return copy; + } + 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; + }; + + // node_modules/@esotericsoftware/spine-core/dist/AtlasAttachmentLoader.js + var AtlasAttachmentLoader = class { + atlas; + constructor(atlas) { + this.atlas = atlas; + } + loadSequence(name, basePath, sequence) { + let regions = sequence.regions; + for (let i = 0, n = regions.length; i < n; i++) { + let path2 = sequence.getPath(basePath, i); + let region = this.atlas.findRegion(path2); + if (region == null) + throw new Error("Region not found in atlas: " + path2 + " (sequence: " + name + ")"); + regions[i] = region; + } + } + newRegionAttachment(skin, name, path2, sequence) { + let attachment = new RegionAttachment(name, path2); + if (sequence != null) { + this.loadSequence(name, path2, sequence); + } else { + let region = this.atlas.findRegion(path2); + if (!region) + throw new Error("Region not found in atlas: " + path2 + " (region attachment: " + name + ")"); + attachment.region = region; + } + return attachment; + } + newMeshAttachment(skin, name, path2, sequence) { + let attachment = new MeshAttachment(name, path2); + if (sequence != null) { + this.loadSequence(name, path2, sequence); + } else { + let region = this.atlas.findRegion(path2); + if (!region) + throw new Error("Region not found in atlas: " + path2 + " (mesh attachment: " + name + ")"); + attachment.region = region; + } + return attachment; + } + newBoundingBoxAttachment(skin, name) { + return new BoundingBoxAttachment(name); + } + newPathAttachment(skin, name) { + return new PathAttachment(name); + } + newPointAttachment(skin, name) { + return new PointAttachment(name); + } + newClippingAttachment(skin, name) { + return new ClippingAttachment(name); + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/BoneData.js + var BoneData = class { + /** The index of the bone in {@link Skeleton#getBones()}. */ + index = 0; + /** The name of the bone, which is unique across all bones in the skeleton. */ + name; + /** @returns May be null. */ + parent = null; + /** The bone's length. */ + length = 0; + /** The local x translation. */ + x = 0; + /** The local y translation. */ + y = 0; + /** The local rotation in degrees, counter clockwise. */ + rotation = 0; + /** The local scaleX. */ + scaleX = 1; + /** The local scaleY. */ + scaleY = 1; + /** The local shearX. */ + shearX = 0; + /** The local shearX. */ + shearY = 0; + /** The transform mode for how parent world transforms affect this bone. */ + inherit = Inherit.Normal; + /** When true, {@link Skeleton#updateWorldTransform()} only updates this bone if the {@link Skeleton#skin} contains this + * bone. + * @see Skin#bones */ + skinRequired = false; + /** The color of the bone as it was in Spine. Available only when nonessential data was exported. Bones are not usually + * rendered at runtime. */ + color = new Color(); + /** The bone icon as it was in Spine, or null if nonessential data was not exported. */ + icon; + /** False if the bone was hidden in Spine and nonessential data was exported. Does not affect runtime rendering. */ + visible = false; + constructor(index, name, parent) { + if (index < 0) + throw new Error("index must be >= 0."); + if (!name) + throw new Error("name cannot be null."); + this.index = index; + this.name = name; + this.parent = parent; + } + }; + var Inherit; + (function(Inherit2) { + Inherit2[Inherit2["Normal"] = 0] = "Normal"; + Inherit2[Inherit2["OnlyTranslation"] = 1] = "OnlyTranslation"; + Inherit2[Inherit2["NoRotationOrReflection"] = 2] = "NoRotationOrReflection"; + Inherit2[Inherit2["NoScale"] = 3] = "NoScale"; + Inherit2[Inherit2["NoScaleOrReflection"] = 4] = "NoScaleOrReflection"; + })(Inherit || (Inherit = {})); + + // node_modules/@esotericsoftware/spine-core/dist/Bone.js + var Bone = class { + /** The bone's setup pose data. */ + data; + /** The skeleton this bone belongs to. */ + skeleton; + /** The parent bone, or null if this is the root bone. */ + parent = null; + /** The immediate children of this bone. */ + children = new Array(); + /** The local x translation. */ + x = 0; + /** The local y translation. */ + y = 0; + /** The local rotation in degrees, counter clockwise. */ + rotation = 0; + /** The local scaleX. */ + scaleX = 0; + /** The local scaleY. */ + scaleY = 0; + /** The local shearX. */ + shearX = 0; + /** The local shearY. */ + shearY = 0; + /** The applied local x translation. */ + ax = 0; + /** The applied local y translation. */ + ay = 0; + /** The applied local rotation in degrees, counter clockwise. */ + arotation = 0; + /** The applied local scaleX. */ + ascaleX = 0; + /** The applied local scaleY. */ + ascaleY = 0; + /** The applied local shearX. */ + ashearX = 0; + /** The applied local shearY. */ + ashearY = 0; + /** Part of the world transform matrix for the X axis. If changed, {@link #updateAppliedTransform()} should be called. */ + a = 0; + /** Part of the world transform matrix for the Y axis. If changed, {@link #updateAppliedTransform()} should be called. */ + b = 0; + /** Part of the world transform matrix for the X axis. If changed, {@link #updateAppliedTransform()} should be called. */ + c = 0; + /** Part of the world transform matrix for the Y axis. If changed, {@link #updateAppliedTransform()} should be called. */ + d = 0; + /** The world X position. If changed, {@link #updateAppliedTransform()} should be called. */ + worldY = 0; + /** The world Y position. If changed, {@link #updateAppliedTransform()} should be called. */ + worldX = 0; + inherit = Inherit.Normal; + sorted = false; + active = false; + /** @param parent May be null. */ + constructor(data, skeleton, parent) { + if (!data) + throw new Error("data cannot be null."); + if (!skeleton) + throw new Error("skeleton cannot be null."); + this.data = data; + this.skeleton = skeleton; + this.parent = parent; + this.setToSetupPose(); + } + /** Returns false when the bone has not been computed because {@link BoneData#skinRequired} is true and the + * {@link Skeleton#skin active skin} does not {@link Skin#bones contain} this bone. */ + isActive() { + return this.active; + } + /** Computes the world transform using the parent bone and this bone's local applied transform. */ + update(physics) { + this.updateWorldTransformWith(this.ax, this.ay, this.arotation, this.ascaleX, this.ascaleY, this.ashearX, this.ashearY); + } + /** Computes the world transform using the parent bone and this bone's local transform. + * + * See {@link #updateWorldTransformWith()}. */ + updateWorldTransform() { + this.updateWorldTransformWith(this.x, this.y, this.rotation, this.scaleX, this.scaleY, this.shearX, this.shearY); + } + /** Computes the world transform using the parent bone and the specified local transform. The applied transform is set to the + * specified local transform. Child bones are not updated. + * + * See [World transforms](http://esotericsoftware.com/spine-runtime-skeletons#World-transforms) in the Spine + * Runtimes Guide. */ + updateWorldTransformWith(x, y, rotation, scaleX, scaleY, shearX, shearY) { + this.ax = x; + this.ay = y; + this.arotation = rotation; + this.ascaleX = scaleX; + this.ascaleY = scaleY; + this.ashearX = shearX; + this.ashearY = shearY; + let parent = this.parent; + if (!parent) { + let skeleton = this.skeleton; + const sx = skeleton.scaleX, sy = skeleton.scaleY; + const rx = (rotation + shearX) * MathUtils.degRad; + const ry = (rotation + 90 + shearY) * MathUtils.degRad; + this.a = Math.cos(rx) * scaleX * sx; + this.b = Math.cos(ry) * scaleY * sx; + this.c = Math.sin(rx) * scaleX * sy; + this.d = Math.sin(ry) * scaleY * sy; + this.worldX = x * sx + skeleton.x; + this.worldY = y * sy + skeleton.y; + return; + } + let pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + this.worldX = pa * x + pb * y + parent.worldX; + this.worldY = pc * x + pd * y + parent.worldY; + switch (this.inherit) { + case Inherit.Normal: { + const rx = (rotation + shearX) * MathUtils.degRad; + const ry = (rotation + 90 + shearY) * MathUtils.degRad; + const la = Math.cos(rx) * scaleX; + const lb = Math.cos(ry) * scaleY; + const lc = Math.sin(rx) * scaleX; + const ld = Math.sin(ry) * scaleY; + this.a = pa * la + pb * lc; + this.b = pa * lb + pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + return; + } + case Inherit.OnlyTranslation: { + const rx = (rotation + shearX) * MathUtils.degRad; + const ry = (rotation + 90 + shearY) * MathUtils.degRad; + this.a = Math.cos(rx) * scaleX; + this.b = Math.cos(ry) * scaleY; + this.c = Math.sin(rx) * scaleX; + this.d = Math.sin(ry) * scaleY; + break; + } + case Inherit.NoRotationOrReflection: { + let s = pa * pa + pc * pc; + let prx = 0; + if (s > 1e-4) { + s = Math.abs(pa * pd - pb * pc) / s; + pa /= this.skeleton.scaleX; + pc /= this.skeleton.scaleY; + pb = pc * s; + pd = pa * s; + prx = Math.atan2(pc, pa) * MathUtils.radDeg; + } else { + pa = 0; + pc = 0; + prx = 90 - Math.atan2(pd, pb) * MathUtils.radDeg; + } + const rx = (rotation + shearX - prx) * MathUtils.degRad; + const ry = (rotation + shearY - prx + 90) * MathUtils.degRad; + const la = Math.cos(rx) * scaleX; + const lb = Math.cos(ry) * scaleY; + const lc = Math.sin(rx) * scaleX; + const ld = Math.sin(ry) * scaleY; + this.a = pa * la - pb * lc; + this.b = pa * lb - pb * ld; + this.c = pc * la + pd * lc; + this.d = pc * lb + pd * ld; + break; + } + case Inherit.NoScale: + case Inherit.NoScaleOrReflection: { + rotation *= MathUtils.degRad; + const cos = Math.cos(rotation), sin = Math.sin(rotation); + let za = (pa * cos + pb * sin) / this.skeleton.scaleX; + let zc = (pc * cos + pd * sin) / this.skeleton.scaleY; + let s = Math.sqrt(za * za + zc * zc); + if (s > 1e-5) + s = 1 / s; + za *= s; + zc *= s; + s = Math.sqrt(za * za + zc * zc); + if (this.inherit == Inherit.NoScale && pa * pd - pb * pc < 0 != (this.skeleton.scaleX < 0 != this.skeleton.scaleY < 0)) + s = -s; + rotation = Math.PI / 2 + Math.atan2(zc, za); + const zb = Math.cos(rotation) * s; + const zd = Math.sin(rotation) * s; + shearX *= MathUtils.degRad; + shearY = (90 + shearY) * MathUtils.degRad; + const la = Math.cos(shearX) * scaleX; + const lb = Math.cos(shearY) * scaleY; + const lc = Math.sin(shearX) * scaleX; + const ld = Math.sin(shearY) * scaleY; + this.a = za * la + zb * lc; + this.b = za * lb + zb * ld; + this.c = zc * la + zd * lc; + this.d = zc * lb + zd * ld; + break; + } + } + this.a *= this.skeleton.scaleX; + this.b *= this.skeleton.scaleX; + this.c *= this.skeleton.scaleY; + this.d *= this.skeleton.scaleY; + } + /** Sets this bone's local transform to the setup pose. */ + setToSetupPose() { + let data = this.data; + this.x = data.x; + this.y = data.y; + this.rotation = data.rotation; + this.scaleX = data.scaleX; + this.scaleY = data.scaleY; + this.shearX = data.shearX; + this.shearY = data.shearY; + this.inherit = data.inherit; + } + /** Computes the applied transform values from the world transform. + * + * If the world transform is modified (by a constraint, {@link #rotateWorld(float)}, etc) then this method should be called so + * the applied transform matches the world transform. The applied transform may be needed by other code (eg to apply other + * constraints). + * + * Some information is ambiguous in the world transform, such as -1,-1 scale versus 180 rotation. The applied transform after + * calling this method is equivalent to the local transform used to compute the world transform, but may not be identical. */ + updateAppliedTransform() { + let parent = this.parent; + if (!parent) { + this.ax = this.worldX - this.skeleton.x; + this.ay = this.worldY - this.skeleton.y; + this.arotation = Math.atan2(this.c, this.a) * MathUtils.radDeg; + this.ascaleX = Math.sqrt(this.a * this.a + this.c * this.c); + this.ascaleY = Math.sqrt(this.b * this.b + this.d * this.d); + this.ashearX = 0; + this.ashearY = Math.atan2(this.a * this.b + this.c * this.d, this.a * this.d - this.b * this.c) * MathUtils.radDeg; + return; + } + let pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + let pid = 1 / (pa * pd - pb * pc); + let ia = pd * pid, ib = pb * pid, ic = pc * pid, id = pa * pid; + let dx = this.worldX - parent.worldX, dy = this.worldY - parent.worldY; + this.ax = dx * ia - dy * ib; + this.ay = dy * id - dx * ic; + let ra, rb, rc, rd; + if (this.inherit == Inherit.OnlyTranslation) { + ra = this.a; + rb = this.b; + rc = this.c; + rd = this.d; + } else { + switch (this.inherit) { + case Inherit.NoRotationOrReflection: { + let s2 = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc); + let sa = pa / this.skeleton.scaleX; + let sc = pc / this.skeleton.scaleY; + pb = -sc * s2 * this.skeleton.scaleX; + pd = sa * s2 * this.skeleton.scaleY; + pid = 1 / (pa * pd - pb * pc); + ia = pd * pid; + ib = pb * pid; + break; + } + case Inherit.NoScale: + case Inherit.NoScaleOrReflection: + let cos = MathUtils.cosDeg(this.rotation), sin = MathUtils.sinDeg(this.rotation); + pa = (pa * cos + pb * sin) / this.skeleton.scaleX; + pc = (pc * cos + pd * sin) / this.skeleton.scaleY; + let s = Math.sqrt(pa * pa + pc * pc); + if (s > 1e-5) + s = 1 / s; + pa *= s; + pc *= s; + s = Math.sqrt(pa * pa + pc * pc); + if (this.inherit == Inherit.NoScale && pid < 0 != (this.skeleton.scaleX < 0 != this.skeleton.scaleY < 0)) + s = -s; + let r = MathUtils.PI / 2 + Math.atan2(pc, pa); + pb = Math.cos(r) * s; + pd = Math.sin(r) * s; + pid = 1 / (pa * pd - pb * pc); + ia = pd * pid; + ib = pb * pid; + ic = pc * pid; + id = pa * pid; + } + ra = ia * this.a - ib * this.c; + rb = ia * this.b - ib * this.d; + rc = id * this.c - ic * this.a; + rd = id * this.d - ic * this.b; + } + this.ashearX = 0; + this.ascaleX = Math.sqrt(ra * ra + rc * rc); + if (this.ascaleX > 1e-4) { + let det = ra * rd - rb * rc; + this.ascaleY = det / this.ascaleX; + this.ashearY = -Math.atan2(ra * rb + rc * rd, det) * MathUtils.radDeg; + this.arotation = Math.atan2(rc, ra) * MathUtils.radDeg; + } else { + this.ascaleX = 0; + this.ascaleY = Math.sqrt(rb * rb + rd * rd); + this.ashearY = 0; + this.arotation = 90 - Math.atan2(rd, rb) * MathUtils.radDeg; + } + } + /** The world rotation for the X axis, calculated using {@link #a} and {@link #c}. */ + getWorldRotationX() { + return Math.atan2(this.c, this.a) * MathUtils.radDeg; + } + /** The world rotation for the Y axis, calculated using {@link #b} and {@link #d}. */ + getWorldRotationY() { + return Math.atan2(this.d, this.b) * MathUtils.radDeg; + } + /** The magnitude (always positive) of the world scale X, calculated using {@link #a} and {@link #c}. */ + getWorldScaleX() { + return Math.sqrt(this.a * this.a + this.c * this.c); + } + /** The magnitude (always positive) of the world scale Y, calculated using {@link #b} and {@link #d}. */ + getWorldScaleY() { + return Math.sqrt(this.b * this.b + this.d * this.d); + } + /** Transforms a point from world coordinates to the bone's local coordinates. */ + worldToLocal(world) { + let invDet = 1 / (this.a * this.d - this.b * this.c); + let x = world.x - this.worldX, y = world.y - this.worldY; + world.x = x * this.d * invDet - y * this.b * invDet; + world.y = y * this.a * invDet - x * this.c * invDet; + return world; + } + /** Transforms a point from the bone's local coordinates to world coordinates. */ + localToWorld(local) { + let x = local.x, y = local.y; + local.x = x * this.a + y * this.b + this.worldX; + local.y = x * this.c + y * this.d + this.worldY; + return local; + } + /** Transforms a point from world coordinates to the parent bone's local coordinates. */ + worldToParent(world) { + if (world == null) + throw new Error("world cannot be null."); + return this.parent == null ? world : this.parent.worldToLocal(world); + } + /** Transforms a point from the parent bone's coordinates to world coordinates. */ + parentToWorld(world) { + if (world == null) + throw new Error("world cannot be null."); + return this.parent == null ? world : this.parent.localToWorld(world); + } + /** Transforms a world rotation to a local rotation. */ + worldToLocalRotation(worldRotation) { + let sin = MathUtils.sinDeg(worldRotation), cos = MathUtils.cosDeg(worldRotation); + return Math.atan2(this.a * sin - this.c * cos, this.d * cos - this.b * sin) * MathUtils.radDeg + this.rotation - this.shearX; + } + /** Transforms a local rotation to a world rotation. */ + localToWorldRotation(localRotation) { + localRotation -= this.rotation - this.shearX; + let sin = MathUtils.sinDeg(localRotation), cos = MathUtils.cosDeg(localRotation); + return Math.atan2(cos * this.c + sin * this.d, cos * this.a + sin * this.b) * MathUtils.radDeg; + } + /** Rotates the world transform the specified amount. + *

+ * After changes are made to the world transform, {@link #updateAppliedTransform()} should be called and + * {@link #update(Physics)} will need to be called on any child bones, recursively. */ + rotateWorld(degrees) { + degrees *= MathUtils.degRad; + const sin = Math.sin(degrees), cos = Math.cos(degrees); + const ra = this.a, rb = this.b; + this.a = cos * ra - sin * this.c; + this.b = cos * rb - sin * this.d; + this.c = sin * ra + cos * this.c; + this.d = sin * rb + cos * this.d; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/ConstraintData.js + var ConstraintData = class { + name; + order; + skinRequired; + constructor(name, order, skinRequired) { + this.name = name; + this.order = order; + this.skinRequired = skinRequired; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/AssetManagerBase.js + var AssetManagerBase = class { + pathPrefix = ""; + textureLoader; + downloader; + assets = {}; + errors = {}; + toLoad = 0; + loaded = 0; + constructor(textureLoader, pathPrefix = "", downloader = new Downloader()) { + this.textureLoader = textureLoader; + this.pathPrefix = pathPrefix; + this.downloader = downloader; + } + start(path2) { + this.toLoad++; + return this.pathPrefix + path2; + } + success(callback, path2, asset) { + this.toLoad--; + this.loaded++; + this.assets[path2] = asset; + if (callback) + callback(path2, asset); + } + error(callback, path2, message) { + this.toLoad--; + this.loaded++; + this.errors[path2] = message; + if (callback) + callback(path2, message); + } + loadAll() { + let promise = new Promise((resolve, reject) => { + let check = () => { + if (this.isLoadingComplete()) { + if (this.hasErrors()) + reject(this.errors); + else + resolve(this); + return; + } + requestAnimationFrame(check); + }; + requestAnimationFrame(check); + }); + return promise; + } + setRawDataURI(path2, data) { + this.downloader.rawDataUris[this.pathPrefix + path2] = data; + } + loadBinary(path2, success = () => { + }, error = () => { + }) { + path2 = this.start(path2); + this.downloader.downloadBinary(path2, (data) => { + this.success(success, path2, data); + }, (status, responseText) => { + this.error(error, path2, `Couldn't load binary ${path2}: status ${status}, ${responseText}`); + }); + } + loadText(path2, success = () => { + }, error = () => { + }) { + path2 = this.start(path2); + this.downloader.downloadText(path2, (data) => { + this.success(success, path2, data); + }, (status, responseText) => { + this.error(error, path2, `Couldn't load text ${path2}: status ${status}, ${responseText}`); + }); + } + loadJson(path2, success = () => { + }, error = () => { + }) { + path2 = this.start(path2); + this.downloader.downloadJson(path2, (data) => { + this.success(success, path2, data); + }, (status, responseText) => { + this.error(error, path2, `Couldn't load JSON ${path2}: status ${status}, ${responseText}`); + }); + } + loadTexture(path2, success = () => { + }, error = () => { + }) { + path2 = this.start(path2); + let isBrowser = !!(typeof window !== "undefined" && typeof navigator !== "undefined" && window.document); + let isWebWorker = !isBrowser; + if (isWebWorker) { + fetch(path2, { mode: "cors" }).then((response) => { + if (response.ok) + return response.blob(); + this.error(error, path2, `Couldn't load image: ${path2}`); + return null; + }).then((blob) => { + return blob ? createImageBitmap(blob, { premultiplyAlpha: "none", colorSpaceConversion: "none" }) : null; + }).then((bitmap) => { + if (bitmap) + this.success(success, path2, this.textureLoader(bitmap)); + }); + } else { + let image = new Image(); + image.crossOrigin = "anonymous"; + image.onload = () => { + this.success(success, path2, this.textureLoader(image)); + }; + image.onerror = () => { + this.error(error, path2, `Couldn't load image: ${path2}`); + }; + if (this.downloader.rawDataUris[path2]) + path2 = this.downloader.rawDataUris[path2]; + image.src = path2; + } + } + loadTextureAtlas(path2, success = () => { + }, error = () => { + }, fileAlias) { + let index = path2.lastIndexOf("/"); + let parent = index >= 0 ? path2.substring(0, index + 1) : ""; + path2 = this.start(path2); + this.downloader.downloadText(path2, (atlasText) => { + try { + let atlas = new TextureAtlas(atlasText); + let toLoad = atlas.pages.length, abort = false; + for (let page of atlas.pages) { + this.loadTexture(!fileAlias ? parent + page.name : fileAlias[page.name], (imagePath, texture) => { + if (!abort) { + page.setTexture(texture); + if (--toLoad == 0) + this.success(success, path2, atlas); + } + }, (imagePath, message) => { + if (!abort) + this.error(error, path2, `Couldn't load texture atlas ${path2} page image: ${imagePath}`); + abort = true; + }); + } + } catch (e) { + this.error(error, path2, `Couldn't parse texture atlas ${path2}: ${e.message}`); + } + }, (status, responseText) => { + this.error(error, path2, `Couldn't load texture atlas ${path2}: status ${status}, ${responseText}`); + }); + } + get(path2) { + return this.assets[this.pathPrefix + path2]; + } + require(path2) { + path2 = this.pathPrefix + path2; + let asset = this.assets[path2]; + if (asset) + return asset; + let error = this.errors[path2]; + throw Error("Asset not found: " + path2 + (error ? "\n" + error : "")); + } + remove(path2) { + path2 = this.pathPrefix + path2; + let asset = this.assets[path2]; + if (asset.dispose) + asset.dispose(); + delete this.assets[path2]; + return asset; + } + removeAll() { + for (let key in this.assets) { + let asset = this.assets[key]; + if (asset.dispose) + asset.dispose(); + } + this.assets = {}; + } + isLoadingComplete() { + return this.toLoad == 0; + } + getToLoad() { + return this.toLoad; + } + getLoaded() { + return this.loaded; + } + dispose() { + this.removeAll(); + } + hasErrors() { + return Object.keys(this.errors).length > 0; + } + getErrors() { + return this.errors; + } + }; + var Downloader = class { + callbacks = {}; + rawDataUris = {}; + dataUriToString(dataUri) { + if (!dataUri.startsWith("data:")) { + throw new Error("Not a data URI."); + } + let base64Idx = dataUri.indexOf("base64,"); + if (base64Idx != -1) { + base64Idx += "base64,".length; + return atob(dataUri.substr(base64Idx)); + } else { + return dataUri.substr(dataUri.indexOf(",") + 1); + } + } + base64ToUint8Array(base64) { + var binary_string = window.atob(base64); + var len = binary_string.length; + var bytes = new Uint8Array(len); + for (var i = 0; i < len; i++) { + bytes[i] = binary_string.charCodeAt(i); + } + return bytes; + } + dataUriToUint8Array(dataUri) { + if (!dataUri.startsWith("data:")) { + throw new Error("Not a data URI."); + } + let base64Idx = dataUri.indexOf("base64,"); + if (base64Idx == -1) + throw new Error("Not a binary data URI."); + base64Idx += "base64,".length; + return this.base64ToUint8Array(dataUri.substr(base64Idx)); + } + downloadText(url, success, error) { + if (this.start(url, success, error)) + return; + if (this.rawDataUris[url]) { + try { + let dataUri = this.rawDataUris[url]; + this.finish(url, 200, this.dataUriToString(dataUri)); + } catch (e) { + this.finish(url, 400, JSON.stringify(e)); + } + return; + } + let request = new XMLHttpRequest(); + request.overrideMimeType("text/html"); + request.open("GET", url, true); + let done = () => { + this.finish(url, request.status, request.responseText); + }; + request.onload = done; + request.onerror = done; + request.send(); + } + downloadJson(url, success, error) { + this.downloadText(url, (data) => { + success(JSON.parse(data)); + }, error); + } + downloadBinary(url, success, error) { + if (this.start(url, success, error)) + return; + if (this.rawDataUris[url]) { + try { + let dataUri = this.rawDataUris[url]; + this.finish(url, 200, this.dataUriToUint8Array(dataUri)); + } catch (e) { + this.finish(url, 400, JSON.stringify(e)); + } + return; + } + let request = new XMLHttpRequest(); + request.open("GET", url, true); + request.responseType = "arraybuffer"; + let onerror = () => { + this.finish(url, request.status, request.response); + }; + request.onload = () => { + if (request.status == 200 || request.status == 0) + this.finish(url, 200, new Uint8Array(request.response)); + else + onerror(); + }; + request.onerror = onerror; + request.send(); + } + start(url, success, error) { + let callbacks = this.callbacks[url]; + try { + if (callbacks) + return true; + this.callbacks[url] = callbacks = []; + } finally { + callbacks.push(success, error); + } + } + finish(url, status, data) { + let callbacks = this.callbacks[url]; + delete this.callbacks[url]; + let args = status == 200 || status == 0 ? [data] : [status, data]; + for (let i = args.length - 1, n = callbacks.length; i < n; i += 2) + callbacks[i].apply(null, args); + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/Event.js + var Event = class { + data; + intValue = 0; + floatValue = 0; + stringValue = null; + time = 0; + volume = 0; + balance = 0; + constructor(time, data) { + if (!data) + throw new Error("data cannot be null."); + this.time = time; + this.data = data; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/EventData.js + var EventData = class { + name; + intValue = 0; + floatValue = 0; + stringValue = null; + audioPath = null; + volume = 0; + balance = 0; + constructor(name) { + this.name = name; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/IkConstraint.js + var IkConstraint = class { + /** The IK constraint's setup pose data. */ + data; + /** The bones that will be modified by this IK constraint. */ + bones; + /** The bone that is the IK target. */ + target; + /** Controls the bend direction of the IK bones, either 1 or -1. */ + bendDirection = 0; + /** When true and only a single bone is being constrained, if the target is too close, the bone is scaled to reach it. */ + compress = false; + /** When true, if the target is out of range, the parent bone is scaled to reach it. If more than one bone is being constrained + * and the parent bone has local nonuniform scale, stretch is not applied. */ + stretch = false; + /** A percentage (0-1) that controls the mix between the constrained and unconstrained rotations. */ + mix = 1; + /** For two bone IK, the distance from the maximum reach of the bones that rotation will slow. */ + softness = 0; + active = false; + constructor(data, skeleton) { + if (!data) + throw new Error("data cannot be null."); + if (!skeleton) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (let i = 0; i < data.bones.length; i++) { + let bone = skeleton.findBone(data.bones[i].name); + if (!bone) + throw new Error(`Couldn't find bone ${data.bones[i].name}`); + this.bones.push(bone); + } + let target = skeleton.findBone(data.target.name); + if (!target) + throw new Error(`Couldn't find bone ${data.target.name}`); + this.target = target; + this.mix = data.mix; + this.softness = data.softness; + this.bendDirection = data.bendDirection; + this.compress = data.compress; + this.stretch = data.stretch; + } + isActive() { + return this.active; + } + setToSetupPose() { + const data = this.data; + this.mix = data.mix; + this.softness = data.softness; + this.bendDirection = data.bendDirection; + this.compress = data.compress; + this.stretch = data.stretch; + } + update(physics) { + if (this.mix == 0) + return; + let target = this.target; + let bones = this.bones; + switch (bones.length) { + case 1: + this.apply1(bones[0], target.worldX, target.worldY, this.compress, this.stretch, this.data.uniform, this.mix); + break; + case 2: + this.apply2(bones[0], bones[1], target.worldX, target.worldY, this.bendDirection, this.stretch, this.data.uniform, this.softness, this.mix); + break; + } + } + /** Applies 1 bone IK. The target is specified in the world coordinate system. */ + apply1(bone, targetX, targetY, compress, stretch, uniform, alpha) { + let p = bone.parent; + if (!p) + throw new Error("IK bone must have parent."); + let pa = p.a, pb = p.b, pc = p.c, pd = p.d; + let rotationIK = -bone.ashearX - bone.arotation, tx = 0, ty = 0; + switch (bone.inherit) { + case Inherit.OnlyTranslation: + tx = (targetX - bone.worldX) * MathUtils.signum(bone.skeleton.scaleX); + ty = (targetY - bone.worldY) * MathUtils.signum(bone.skeleton.scaleY); + break; + case Inherit.NoRotationOrReflection: + let s = Math.abs(pa * pd - pb * pc) / Math.max(1e-4, pa * pa + pc * pc); + let sa = pa / bone.skeleton.scaleX; + let sc = pc / bone.skeleton.scaleY; + pb = -sc * s * bone.skeleton.scaleX; + pd = sa * s * bone.skeleton.scaleY; + rotationIK += Math.atan2(sc, sa) * MathUtils.radDeg; + default: + let x = targetX - p.worldX, y = targetY - p.worldY; + let d = pa * pd - pb * pc; + if (Math.abs(d) <= 1e-4) { + tx = 0; + ty = 0; + } else { + tx = (x * pd - y * pb) / d - bone.ax; + ty = (y * pa - x * pc) / d - bone.ay; + } + } + rotationIK += Math.atan2(ty, tx) * MathUtils.radDeg; + if (bone.ascaleX < 0) + rotationIK += 180; + if (rotationIK > 180) + rotationIK -= 360; + else if (rotationIK < -180) + rotationIK += 360; + let sx = bone.ascaleX, sy = bone.ascaleY; + if (compress || stretch) { + switch (bone.inherit) { + case Inherit.NoScale: + case Inherit.NoScaleOrReflection: + tx = targetX - bone.worldX; + ty = targetY - bone.worldY; + } + const b = bone.data.length * sx; + if (b > 1e-4) { + const dd = tx * tx + ty * ty; + if (compress && dd < b * b || stretch && dd > b * b) { + const s = (Math.sqrt(dd) / b - 1) * alpha + 1; + sx *= s; + if (uniform) + sy *= s; + } + } + } + bone.updateWorldTransformWith(bone.ax, bone.ay, bone.arotation + rotationIK * alpha, sx, sy, bone.ashearX, bone.ashearY); + } + /** Applies 2 bone IK. The target is specified in the world coordinate system. + * @param child A direct descendant of the parent bone. */ + apply2(parent, child, targetX, targetY, bendDir, stretch, uniform, softness, alpha) { + if (parent.inherit != Inherit.Normal || child.inherit != Inherit.Normal) + return; + let px = parent.ax, py = parent.ay, psx = parent.ascaleX, psy = parent.ascaleY, sx = psx, sy = psy, csx = child.ascaleX; + let os1 = 0, os2 = 0, s2 = 0; + if (psx < 0) { + psx = -psx; + os1 = 180; + s2 = -1; + } else { + os1 = 0; + s2 = 1; + } + if (psy < 0) { + psy = -psy; + s2 = -s2; + } + if (csx < 0) { + csx = -csx; + os2 = 180; + } else + os2 = 0; + let cx = child.ax, cy = 0, cwx = 0, cwy = 0, a = parent.a, b = parent.b, c = parent.c, d = parent.d; + let u = Math.abs(psx - psy) <= 1e-4; + if (!u || stretch) { + cy = 0; + cwx = a * cx + parent.worldX; + cwy = c * cx + parent.worldY; + } else { + cy = child.ay; + cwx = a * cx + b * cy + parent.worldX; + cwy = c * cx + d * cy + parent.worldY; + } + let pp = parent.parent; + if (!pp) + throw new Error("IK parent must itself have a parent."); + a = pp.a; + b = pp.b; + c = pp.c; + d = pp.d; + let id = a * d - b * c, x = cwx - pp.worldX, y = cwy - pp.worldY; + id = Math.abs(id) <= 1e-4 ? 0 : 1 / id; + let dx = (x * d - y * b) * id - px, dy = (y * a - x * c) * id - py; + let l1 = Math.sqrt(dx * dx + dy * dy), l2 = child.data.length * csx, a1, a2; + if (l1 < 1e-4) { + this.apply1(parent, targetX, targetY, false, stretch, false, alpha); + child.updateWorldTransformWith(cx, cy, 0, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + return; + } + x = targetX - pp.worldX; + y = targetY - pp.worldY; + let tx = (x * d - y * b) * id - px, ty = (y * a - x * c) * id - py; + let dd = tx * tx + ty * ty; + if (softness != 0) { + softness *= psx * (csx + 1) * 0.5; + let td = Math.sqrt(dd), sd = td - l1 - l2 * psx + softness; + if (sd > 0) { + let p = Math.min(1, sd / (softness * 2)) - 1; + p = (sd - softness * (1 - p * p)) / td; + tx -= p * tx; + ty -= p * ty; + dd = tx * tx + ty * ty; + } + } + outer: + if (u) { + l2 *= psx; + let cos = (dd - l1 * l1 - l2 * l2) / (2 * l1 * l2); + if (cos < -1) { + cos = -1; + a2 = Math.PI * bendDir; + } else if (cos > 1) { + cos = 1; + a2 = 0; + if (stretch) { + a = (Math.sqrt(dd) / (l1 + l2) - 1) * alpha + 1; + sx *= a; + if (uniform) + sy *= a; + } + } else + a2 = Math.acos(cos) * bendDir; + a = l1 + l2 * cos; + b = l2 * Math.sin(a2); + a1 = Math.atan2(ty * a - tx * b, tx * a + ty * b); + } else { + a = psx * l2; + b = psy * l2; + let aa = a * a, bb = b * b, ta = Math.atan2(ty, tx); + c = bb * l1 * l1 + aa * dd - aa * bb; + let c1 = -2 * bb * l1, c2 = bb - aa; + d = c1 * c1 - 4 * c2 * c; + if (d >= 0) { + let q = Math.sqrt(d); + if (c1 < 0) + q = -q; + q = -(c1 + q) * 0.5; + let r0 = q / c2, r1 = c / q; + let r = Math.abs(r0) < Math.abs(r1) ? r0 : r1; + if (r * r <= dd) { + y = Math.sqrt(dd - r * r) * bendDir; + a1 = ta - Math.atan2(y, r); + a2 = Math.atan2(y / psy, (r - l1) / psx); + break outer; + } + } + let minAngle = MathUtils.PI, minX = l1 - a, minDist = minX * minX, minY = 0; + let maxAngle = 0, maxX = l1 + a, maxDist = maxX * maxX, maxY = 0; + c = -a * l1 / (aa - bb); + if (c >= -1 && c <= 1) { + c = Math.acos(c); + x = a * Math.cos(c) + l1; + y = b * Math.sin(c); + d = x * x + y * y; + if (d < minDist) { + minAngle = c; + minDist = d; + minX = x; + minY = y; + } + if (d > maxDist) { + maxAngle = c; + maxDist = d; + maxX = x; + maxY = y; + } + } + if (dd <= (minDist + maxDist) * 0.5) { + a1 = ta - Math.atan2(minY * bendDir, minX); + a2 = minAngle * bendDir; + } else { + a1 = ta - Math.atan2(maxY * bendDir, maxX); + a2 = maxAngle * bendDir; + } + } + let os = Math.atan2(cy, cx) * s2; + let rotation = parent.arotation; + a1 = (a1 - os) * MathUtils.radDeg + os1 - rotation; + if (a1 > 180) + a1 -= 360; + else if (a1 < -180) + a1 += 360; + parent.updateWorldTransformWith(px, py, rotation + a1 * alpha, sx, sy, 0, 0); + rotation = child.arotation; + a2 = ((a2 + os) * MathUtils.radDeg - child.ashearX) * s2 + os2 - rotation; + if (a2 > 180) + a2 -= 360; + else if (a2 < -180) + a2 += 360; + child.updateWorldTransformWith(cx, cy, rotation + a2 * alpha, child.ascaleX, child.ascaleY, child.ashearX, child.ashearY); + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/IkConstraintData.js + var IkConstraintData = class extends ConstraintData { + /** The bones that are constrained by this IK constraint. */ + bones = new Array(); + /** The bone that is the IK target. */ + _target = null; + set target(boneData) { + this._target = boneData; + } + get target() { + if (!this._target) + throw new Error("BoneData not set."); + else + return this._target; + } + /** Controls the bend direction of the IK bones, either 1 or -1. */ + bendDirection = 0; + /** When true and only a single bone is being constrained, if the target is too close, the bone is scaled to reach it. */ + compress = false; + /** When true, if the target is out of range, the parent bone is scaled to reach it. If more than one bone is being constrained + * and the parent bone has local nonuniform scale, stretch is not applied. */ + stretch = false; + /** When true, only a single bone is being constrained, and {@link #getCompress()} or {@link #getStretch()} is used, the bone + * is scaled on both the X and Y axes. */ + uniform = false; + /** A percentage (0-1) that controls the mix between the constrained and unconstrained rotations. */ + mix = 0; + /** For two bone IK, the distance from the maximum reach of the bones that rotation will slow. */ + softness = 0; + constructor(name) { + super(name, 0, false); + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/PathConstraintData.js + var PathConstraintData = class extends ConstraintData { + /** The bones that will be modified by this path constraint. */ + bones = new Array(); + /** The slot whose path attachment will be used to constrained the bones. */ + _target = null; + set target(slotData) { + this._target = slotData; + } + get target() { + if (!this._target) + throw new Error("SlotData not set."); + else + return this._target; + } + /** The mode for positioning the first bone on the path. */ + positionMode = PositionMode.Fixed; + /** The mode for positioning the bones after the first bone on the path. */ + spacingMode = SpacingMode.Fixed; + /** The mode for adjusting the rotation of the bones. */ + rotateMode = RotateMode.Chain; + /** An offset added to the constrained bone rotation. */ + offsetRotation = 0; + /** The position along the path. */ + position = 0; + /** The spacing between bones. */ + spacing = 0; + mixRotate = 0; + mixX = 0; + mixY = 0; + constructor(name) { + super(name, 0, false); + } + }; + var PositionMode; + (function(PositionMode2) { + PositionMode2[PositionMode2["Fixed"] = 0] = "Fixed"; + PositionMode2[PositionMode2["Percent"] = 1] = "Percent"; + })(PositionMode || (PositionMode = {})); + var SpacingMode; + (function(SpacingMode2) { + SpacingMode2[SpacingMode2["Length"] = 0] = "Length"; + SpacingMode2[SpacingMode2["Fixed"] = 1] = "Fixed"; + SpacingMode2[SpacingMode2["Percent"] = 2] = "Percent"; + SpacingMode2[SpacingMode2["Proportional"] = 3] = "Proportional"; + })(SpacingMode || (SpacingMode = {})); + var RotateMode; + (function(RotateMode2) { + RotateMode2[RotateMode2["Tangent"] = 0] = "Tangent"; + RotateMode2[RotateMode2["Chain"] = 1] = "Chain"; + RotateMode2[RotateMode2["ChainScale"] = 2] = "ChainScale"; + })(RotateMode || (RotateMode = {})); + + // node_modules/@esotericsoftware/spine-core/dist/PathConstraint.js + var PathConstraint = class _PathConstraint { + static NONE = -1; + static BEFORE = -2; + static AFTER = -3; + static epsilon = 1e-5; + /** The path constraint's setup pose data. */ + data; + /** The bones that will be modified by this path constraint. */ + bones; + /** The slot whose path attachment will be used to constrained the bones. */ + target; + /** The position along the path. */ + position = 0; + /** The spacing between bones. */ + 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 = false; + constructor(data, skeleton) { + if (!data) + throw new Error("data cannot be null."); + if (!skeleton) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (let i = 0, n = data.bones.length; i < n; i++) { + let bone = skeleton.findBone(data.bones[i].name); + if (!bone) + throw new Error(`Couldn't find bone ${data.bones[i].name}.`); + this.bones.push(bone); + } + let target = skeleton.findSlot(data.target.name); + if (!target) + throw new Error(`Couldn't find target bone ${data.target.name}`); + this.target = target; + this.position = data.position; + this.spacing = data.spacing; + this.mixRotate = data.mixRotate; + this.mixX = data.mixX; + this.mixY = data.mixY; + } + isActive() { + return this.active; + } + setToSetupPose() { + const data = this.data; + this.position = data.position; + this.spacing = data.spacing; + this.mixRotate = data.mixRotate; + this.mixX = data.mixX; + this.mixY = data.mixY; + } + update(physics) { + let attachment = this.target.getAttachment(); + if (!(attachment instanceof PathAttachment)) + return; + let mixRotate = this.mixRotate, mixX = this.mixX, mixY = this.mixY; + if (mixRotate == 0 && mixX == 0 && mixY == 0) + return; + let data = this.data; + let tangents = data.rotateMode == RotateMode.Tangent, scale = data.rotateMode == RotateMode.ChainScale; + let bones = this.bones; + let boneCount = bones.length, spacesCount = tangents ? boneCount : boneCount + 1; + let spaces = Utils.setArraySize(this.spaces, spacesCount), lengths = scale ? this.lengths = Utils.setArraySize(this.lengths, boneCount) : []; + let spacing = this.spacing; + switch (data.spacingMode) { + case SpacingMode.Percent: + if (scale) { + for (let i = 0, n = spacesCount - 1; i < n; i++) { + let bone = bones[i]; + let setupLength = bone.data.length; + let x = setupLength * bone.a, y = setupLength * bone.c; + lengths[i] = Math.sqrt(x * x + y * y); + } + } + Utils.arrayFill(spaces, 1, spacesCount, spacing); + break; + case SpacingMode.Proportional: + let sum = 0; + for (let i = 0, n = spacesCount - 1; i < n; ) { + let bone = bones[i]; + let setupLength = bone.data.length; + if (setupLength < _PathConstraint.epsilon) { + if (scale) + lengths[i] = 0; + spaces[++i] = spacing; + } else { + let x = setupLength * bone.a, y = setupLength * bone.c; + let length = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length; + spaces[++i] = length; + sum += length; + } + } + if (sum > 0) { + sum = spacesCount / sum * spacing; + for (let i = 1; i < spacesCount; i++) + spaces[i] *= sum; + } + break; + default: + let lengthSpacing = data.spacingMode == SpacingMode.Length; + for (let i = 0, n = spacesCount - 1; i < n; ) { + let bone = bones[i]; + let setupLength = bone.data.length; + if (setupLength < _PathConstraint.epsilon) { + if (scale) + lengths[i] = 0; + spaces[++i] = spacing; + } else { + let x = setupLength * bone.a, y = setupLength * bone.c; + let length = Math.sqrt(x * x + y * y); + if (scale) + lengths[i] = length; + spaces[++i] = (lengthSpacing ? setupLength + spacing : spacing) * length / setupLength; + } + } + } + let positions = this.computeWorldPositions(attachment, spacesCount, tangents); + let boneX = positions[0], boneY = positions[1], offsetRotation = data.offsetRotation; + let tip = false; + if (offsetRotation == 0) + tip = data.rotateMode == RotateMode.Chain; + else { + tip = false; + let p = this.target.bone; + offsetRotation *= p.a * p.d - p.b * p.c > 0 ? MathUtils.degRad : -MathUtils.degRad; + } + for (let i = 0, p = 3; i < boneCount; i++, p += 3) { + let bone = bones[i]; + bone.worldX += (boneX - bone.worldX) * mixX; + bone.worldY += (boneY - bone.worldY) * mixY; + let x = positions[p], y = positions[p + 1], dx = x - boneX, dy = y - boneY; + if (scale) { + let length = lengths[i]; + if (length != 0) { + let s = (Math.sqrt(dx * dx + dy * dy) / length - 1) * mixRotate + 1; + bone.a *= s; + bone.c *= s; + } + } + boneX = x; + boneY = y; + if (mixRotate > 0) { + let a = bone.a, b = bone.b, c = bone.c, d = bone.d, r = 0, cos = 0, sin = 0; + if (tangents) + r = positions[p - 1]; + else if (spaces[i + 1] == 0) + r = positions[p + 2]; + else + r = Math.atan2(dy, dx); + r -= Math.atan2(c, a); + if (tip) { + cos = Math.cos(r); + sin = Math.sin(r); + let length = bone.data.length; + boneX += (length * (cos * a - sin * c) - dx) * mixRotate; + boneY += (length * (sin * a + cos * c) - dy) * mixRotate; + } else { + r += offsetRotation; + } + if (r > MathUtils.PI) + r -= MathUtils.PI2; + else if (r < -MathUtils.PI) + r += MathUtils.PI2; + r *= mixRotate; + cos = Math.cos(r); + sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + bone.updateAppliedTransform(); + } + } + computeWorldPositions(path2, spacesCount, tangents) { + let target = this.target; + let position = this.position; + let spaces = this.spaces, out = Utils.setArraySize(this.positions, spacesCount * 3 + 2), world = this.world; + let closed2 = path2.closed; + let verticesLength = path2.worldVerticesLength, curveCount = verticesLength / 6, prevCurve = _PathConstraint.NONE; + if (!path2.constantSpeed) { + let lengths = path2.lengths; + curveCount -= closed2 ? 1 : 2; + let pathLength2 = lengths[curveCount]; + if (this.data.positionMode == PositionMode.Percent) + position *= pathLength2; + let multiplier2; + switch (this.data.spacingMode) { + case SpacingMode.Percent: + multiplier2 = pathLength2; + break; + case SpacingMode.Proportional: + multiplier2 = pathLength2 / spacesCount; + break; + default: + multiplier2 = 1; + } + world = Utils.setArraySize(this.world, 8); + for (let i = 0, o = 0, curve = 0; i < spacesCount; i++, o += 3) { + let space = spaces[i] * multiplier2; + position += space; + let p = position; + if (closed2) { + p %= pathLength2; + if (p < 0) + p += pathLength2; + curve = 0; + } else if (p < 0) { + if (prevCurve != _PathConstraint.BEFORE) { + prevCurve = _PathConstraint.BEFORE; + path2.computeWorldVertices(target, 2, 4, world, 0, 2); + } + this.addBeforePosition(p, world, 0, out, o); + continue; + } else if (p > pathLength2) { + if (prevCurve != _PathConstraint.AFTER) { + prevCurve = _PathConstraint.AFTER; + path2.computeWorldVertices(target, verticesLength - 6, 4, world, 0, 2); + } + this.addAfterPosition(p - pathLength2, world, 0, out, o); + continue; + } + for (; ; curve++) { + let length = lengths[curve]; + if (p > length) + continue; + if (curve == 0) + p /= length; + else { + let prev = lengths[curve - 1]; + p = (p - prev) / (length - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + if (closed2 && curve == curveCount) { + path2.computeWorldVertices(target, verticesLength - 4, 4, world, 0, 2); + path2.computeWorldVertices(target, 0, 4, world, 4, 2); + } else + path2.computeWorldVertices(target, curve * 6 + 2, 8, world, 0, 2); + } + this.addCurvePosition(p, world[0], world[1], world[2], world[3], world[4], world[5], world[6], world[7], out, o, tangents || i > 0 && space == 0); + } + return out; + } + if (closed2) { + verticesLength += 2; + world = Utils.setArraySize(this.world, verticesLength); + path2.computeWorldVertices(target, 2, verticesLength - 4, world, 0, 2); + path2.computeWorldVertices(target, 0, 2, world, verticesLength - 4, 2); + world[verticesLength - 2] = world[0]; + world[verticesLength - 1] = world[1]; + } else { + curveCount--; + verticesLength -= 4; + world = Utils.setArraySize(this.world, verticesLength); + path2.computeWorldVertices(target, 2, verticesLength, world, 0, 2); + } + let curves = Utils.setArraySize(this.curves, curveCount); + let pathLength = 0; + let x1 = world[0], y1 = world[1], cx1 = 0, cy1 = 0, cx2 = 0, cy2 = 0, x2 = 0, y2 = 0; + let tmpx = 0, tmpy = 0, dddfx = 0, dddfy = 0, ddfx = 0, ddfy = 0, dfx = 0, dfy = 0; + for (let i = 0, w = 2; i < curveCount; i++, w += 6) { + cx1 = world[w]; + cy1 = world[w + 1]; + cx2 = world[w + 2]; + cy2 = world[w + 3]; + x2 = world[w + 4]; + y2 = world[w + 5]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.1875; + tmpy = (y1 - cy1 * 2 + cy2) * 0.1875; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 0.09375; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 0.09375; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.75 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.75 + tmpy + dddfy * 0.16666667; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx; + dfy += ddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + pathLength += Math.sqrt(dfx * dfx + dfy * dfy); + curves[i] = pathLength; + x1 = x2; + y1 = y2; + } + if (this.data.positionMode == PositionMode.Percent) + position *= pathLength; + let multiplier; + switch (this.data.spacingMode) { + case SpacingMode.Percent: + multiplier = pathLength; + break; + case SpacingMode.Proportional: + multiplier = pathLength / spacesCount; + break; + default: + multiplier = 1; + } + let segments = this.segments; + let curveLength = 0; + for (let i = 0, o = 0, curve = 0, segment = 0; i < spacesCount; i++, o += 3) { + let space = spaces[i] * multiplier; + position += space; + let p = position; + if (closed2) { + p %= pathLength; + if (p < 0) + p += pathLength; + curve = 0; + } else if (p < 0) { + this.addBeforePosition(p, world, 0, out, o); + continue; + } else if (p > pathLength) { + this.addAfterPosition(p - pathLength, world, verticesLength - 4, out, o); + continue; + } + for (; ; curve++) { + let length = curves[curve]; + if (p > length) + continue; + if (curve == 0) + p /= length; + else { + let prev = curves[curve - 1]; + p = (p - prev) / (length - prev); + } + break; + } + if (curve != prevCurve) { + prevCurve = curve; + let ii = curve * 6; + x1 = world[ii]; + y1 = world[ii + 1]; + cx1 = world[ii + 2]; + cy1 = world[ii + 3]; + cx2 = world[ii + 4]; + cy2 = world[ii + 5]; + x2 = world[ii + 6]; + y2 = world[ii + 7]; + tmpx = (x1 - cx1 * 2 + cx2) * 0.03; + tmpy = (y1 - cy1 * 2 + cy2) * 0.03; + dddfx = ((cx1 - cx2) * 3 - x1 + x2) * 6e-3; + dddfy = ((cy1 - cy2) * 3 - y1 + y2) * 6e-3; + ddfx = tmpx * 2 + dddfx; + ddfy = tmpy * 2 + dddfy; + dfx = (cx1 - x1) * 0.3 + tmpx + dddfx * 0.16666667; + dfy = (cy1 - y1) * 0.3 + tmpy + dddfy * 0.16666667; + curveLength = Math.sqrt(dfx * dfx + dfy * dfy); + segments[0] = curveLength; + for (ii = 1; ii < 8; ii++) { + dfx += ddfx; + dfy += ddfy; + ddfx += dddfx; + ddfy += dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[ii] = curveLength; + } + dfx += ddfx; + dfy += ddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[8] = curveLength; + dfx += ddfx + dddfx; + dfy += ddfy + dddfy; + curveLength += Math.sqrt(dfx * dfx + dfy * dfy); + segments[9] = curveLength; + segment = 0; + } + p *= curveLength; + for (; ; segment++) { + let length = segments[segment]; + if (p > length) + continue; + if (segment == 0) + p /= length; + else { + let prev = segments[segment - 1]; + p = segment + (p - prev) / (length - prev); + } + break; + } + this.addCurvePosition(p * 0.1, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents || i > 0 && space == 0); + } + return out; + } + addBeforePosition(p, temp, i, out, o) { + let x1 = temp[i], y1 = temp[i + 1], dx = temp[i + 2] - x1, dy = temp[i + 3] - y1, r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + } + addAfterPosition(p, temp, i, out, o) { + let x1 = temp[i + 2], y1 = temp[i + 3], dx = x1 - temp[i], dy = y1 - temp[i + 1], r = Math.atan2(dy, dx); + out[o] = x1 + p * Math.cos(r); + out[o + 1] = y1 + p * Math.sin(r); + out[o + 2] = r; + } + addCurvePosition(p, x1, y1, cx1, cy1, cx2, cy2, x2, y2, out, o, tangents) { + if (p == 0 || isNaN(p)) { + out[o] = x1; + out[o + 1] = y1; + out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1); + return; + } + let tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u; + let ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p; + let x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt; + out[o] = x; + out[o + 1] = y; + if (tangents) { + if (p < 1e-3) + out[o + 2] = Math.atan2(cy1 - y1, cx1 - x1); + else + out[o + 2] = Math.atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt)); + } + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/PhysicsConstraint.js + var PhysicsConstraint = class { + data; + _bone = null; + /** The bone constrained by this physics constraint. */ + set bone(bone) { + this._bone = bone; + } + get bone() { + if (!this._bone) + throw new Error("Bone not set."); + else + return this._bone; + } + inertia = 0; + strength = 0; + damping = 0; + massInverse = 0; + wind = 0; + gravity = 0; + mix = 0; + _reset = true; + 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 = false; + skeleton; + remaining = 0; + lastTime = 0; + constructor(data, skeleton) { + this.data = data; + this.skeleton = skeleton; + this.bone = skeleton.bones[data.bone.index]; + this.inertia = data.inertia; + this.strength = data.strength; + this.damping = data.damping; + this.massInverse = data.massInverse; + this.wind = data.wind; + this.gravity = data.gravity; + this.mix = data.mix; + } + reset() { + this.remaining = 0; + this.lastTime = this.skeleton.time; + this._reset = true; + 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 data = this.data; + this.inertia = data.inertia; + this.strength = data.strength; + this.damping = data.damping; + this.massInverse = data.massInverse; + this.wind = data.wind; + this.gravity = data.gravity; + this.mix = data.mix; + } + isActive() { + return this.active; + } + /** Applies the constraint to the constrained bones. */ + update(physics) { + const mix = this.mix; + if (mix == 0) + return; + const x = this.data.x > 0, y = this.data.y > 0, rotateOrShearX = this.data.rotate > 0 || this.data.shearX > 0, scaleX = this.data.scaleX > 0; + const bone = this.bone; + const l = bone.data.length; + switch (physics) { + case Physics.none: + return; + case Physics.reset: + this.reset(); + case Physics.update: + const delta = Math.max(this.skeleton.time - this.lastTime, 0); + this.remaining += delta; + this.lastTime = this.skeleton.time; + const bx = bone.worldX, by = bone.worldY; + if (this._reset) { + this._reset = false; + this.ux = bx; + this.uy = by; + } else { + let a = this.remaining, i = this.inertia, q = this.data.limit * delta, t = this.data.step, f = this.skeleton.data.referenceScale, d = -1; + if (x || y) { + if (x) { + const u = (this.ux - bx) * i; + this.xOffset += u > q ? q : u < -q ? -q : u; + this.ux = bx; + } + if (y) { + const u = (this.uy - by) * i; + this.yOffset += u > q ? q : u < -q ? -q : u; + this.uy = by; + } + if (a >= t) { + d = Math.pow(this.damping, 60 * t); + const m = this.massInverse * t, e = this.strength, w = this.wind * f, g = (Skeleton.yDown ? -this.gravity : this.gravity) * f; + do { + if (x) { + this.xVelocity += (w - this.xOffset * e) * m; + this.xOffset += this.xVelocity * t; + this.xVelocity *= d; + } + if (y) { + this.yVelocity -= (g + this.yOffset * e) * m; + this.yOffset += this.yVelocity * t; + this.yVelocity *= d; + } + a -= t; + } while (a >= t); + } + if (x) + bone.worldX += this.xOffset * mix * this.data.x; + if (y) + bone.worldY += this.yOffset * mix * this.data.y; + } + if (rotateOrShearX || scaleX) { + let ca = Math.atan2(bone.c, bone.a), c = 0, s = 0, mr = 0; + let dx = this.cx - bone.worldX, dy = this.cy - bone.worldY; + if (dx > q) + dx = q; + else if (dx < -q) + dx = -q; + if (dy > q) + dy = q; + else if (dy < -q) + dy = -q; + if (rotateOrShearX) { + mr = (this.data.rotate + this.data.shearX) * mix; + let r = Math.atan2(dy + this.ty, dx + this.tx) - ca - this.rotateOffset * mr; + this.rotateOffset += (r - Math.ceil(r * MathUtils.invPI2 - 0.5) * MathUtils.PI2) * i; + r = this.rotateOffset * mr + ca; + c = Math.cos(r); + s = Math.sin(r); + if (scaleX) { + r = l * bone.getWorldScaleX(); + if (r > 0) + this.scaleOffset += (dx * c + dy * s) * i / r; + } + } else { + c = Math.cos(ca); + s = Math.sin(ca); + const r = l * bone.getWorldScaleX(); + if (r > 0) + this.scaleOffset += (dx * c + dy * s) * i / r; + } + a = this.remaining; + if (a >= t) { + if (d == -1) + d = Math.pow(this.damping, 60 * t); + const m = this.massInverse * t, e = this.strength, w = this.wind, g = Skeleton.yDown ? -this.gravity : this.gravity, h = l / f; + while (true) { + a -= t; + if (scaleX) { + this.scaleVelocity += (w * c - g * s - this.scaleOffset * e) * m; + this.scaleOffset += this.scaleVelocity * t; + this.scaleVelocity *= d; + } + if (rotateOrShearX) { + this.rotateVelocity -= ((w * s + g * c) * h + this.rotateOffset * e) * m; + this.rotateOffset += this.rotateVelocity * t; + this.rotateVelocity *= d; + if (a < t) + break; + const r = this.rotateOffset * mr + ca; + c = Math.cos(r); + s = Math.sin(r); + } else if (a < t) + break; + } + } + } + this.remaining = a; + } + this.cx = bone.worldX; + this.cy = bone.worldY; + break; + case Physics.pose: + if (x) + bone.worldX += this.xOffset * mix * this.data.x; + if (y) + bone.worldY += this.yOffset * mix * this.data.y; + } + if (rotateOrShearX) { + let o = this.rotateOffset * mix, s = 0, c = 0, a = 0; + if (this.data.shearX > 0) { + let r = 0; + if (this.data.rotate > 0) { + r = o * this.data.rotate; + s = Math.sin(r); + c = Math.cos(r); + a = bone.b; + bone.b = c * a - s * bone.d; + bone.d = s * a + c * bone.d; + } + r += o * this.data.shearX; + s = Math.sin(r); + c = Math.cos(r); + a = bone.a; + bone.a = c * a - s * bone.c; + bone.c = s * a + c * bone.c; + } else { + o *= this.data.rotate; + s = Math.sin(o); + c = Math.cos(o); + a = bone.a; + bone.a = c * a - s * bone.c; + bone.c = s * a + c * bone.c; + a = bone.b; + bone.b = c * a - s * bone.d; + bone.d = s * a + c * bone.d; + } + } + if (scaleX) { + const s = 1 + this.scaleOffset * mix * this.data.scaleX; + bone.a *= s; + bone.c *= s; + } + if (physics != Physics.pose) { + this.tx = l * bone.a; + this.ty = l * bone.c; + } + bone.updateAppliedTransform(); + } + /** Translates the physics constraint so next {@link #update(Physics)} forces are applied as if the bone moved an additional + * amount in world space. */ + translate(x, y) { + this.ux -= x; + this.uy -= y; + this.cx -= x; + this.cy -= y; + } + /** Rotates the physics constraint so next {@link #update(Physics)} forces are applied as if the bone rotated around the + * specified point in world space. */ + rotate(x, y, degrees) { + const r = degrees * MathUtils.degRad, cos = Math.cos(r), sin = Math.sin(r); + const dx = this.cx - x, dy = this.cy - y; + this.translate(dx * cos - dy * sin - dx, dx * sin + dy * cos - dy); + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/Slot.js + var Slot = class { + /** The slot's setup pose data. */ + data; + /** The bone this slot belongs to. */ + bone; + /** The color used to tint the slot's attachment. If {@link #getDarkColor()} is set, this is used as the light color for two + * color tinting. */ + color; + /** The dark color used to tint the slot's attachment for two color tinting, or null if two color tinting is not used. The dark + * color's alpha is not used. */ + darkColor = null; + attachment = null; + attachmentState = 0; + /** The index of the texture region to display when the slot's attachment has a {@link Sequence}. -1 represents the + * {@link Sequence#getSetupIndex()}. */ + sequenceIndex = -1; + /** Values to deform the slot's attachment. For an unweighted mesh, the entries are local positions for each vertex. For a + * weighted mesh, the entries are an offset for each vertex which will be added to the mesh's local vertex positions. + * + * See {@link VertexAttachment#computeWorldVertices()} and {@link DeformTimeline}. */ + deform = new Array(); + constructor(data, bone) { + if (!data) + throw new Error("data cannot be null."); + if (!bone) + throw new Error("bone cannot be null."); + this.data = data; + this.bone = bone; + this.color = new Color(); + this.darkColor = !data.darkColor ? null : new Color(); + this.setToSetupPose(); + } + /** The skeleton this slot belongs to. */ + getSkeleton() { + return this.bone.skeleton; + } + /** The current attachment for the slot, or null if the slot has no attachment. */ + getAttachment() { + return this.attachment; + } + /** Sets the slot's attachment and, if the attachment changed, resets {@link #sequenceIndex} and clears the {@link #deform}. + * The deform is not cleared if the old attachment has the same {@link VertexAttachment#getTimelineAttachment()} as the + * specified attachment. */ + setAttachment(attachment) { + if (this.attachment == attachment) + return; + if (!(attachment instanceof VertexAttachment) || !(this.attachment instanceof VertexAttachment) || attachment.timelineAttachment != this.attachment.timelineAttachment) { + this.deform.length = 0; + } + this.attachment = attachment; + this.sequenceIndex = -1; + } + /** Sets this slot to the setup pose. */ + setToSetupPose() { + this.color.setFromColor(this.data.color); + if (this.darkColor) + this.darkColor.setFromColor(this.data.darkColor); + if (!this.data.attachmentName) + this.attachment = null; + else { + this.attachment = null; + this.setAttachment(this.bone.skeleton.getAttachment(this.data.index, this.data.attachmentName)); + } + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/TransformConstraint.js + var TransformConstraint = class { + /** The transform constraint's setup pose data. */ + data; + /** The bones that will be modified by this transform constraint. */ + bones; + /** The target bone whose world transform will be copied to the constrained bones. */ + target; + mixRotate = 0; + mixX = 0; + mixY = 0; + mixScaleX = 0; + mixScaleY = 0; + mixShearY = 0; + temp = new Vector2(); + active = false; + constructor(data, skeleton) { + if (!data) + throw new Error("data cannot be null."); + if (!skeleton) + throw new Error("skeleton cannot be null."); + this.data = data; + this.bones = new Array(); + for (let i = 0; i < data.bones.length; i++) { + let bone = skeleton.findBone(data.bones[i].name); + if (!bone) + throw new Error(`Couldn't find bone ${data.bones[i].name}.`); + this.bones.push(bone); + } + let target = skeleton.findBone(data.target.name); + if (!target) + throw new Error(`Couldn't find target bone ${data.target.name}.`); + this.target = target; + this.mixRotate = data.mixRotate; + this.mixX = data.mixX; + this.mixY = data.mixY; + this.mixScaleX = data.mixScaleX; + this.mixScaleY = data.mixScaleY; + this.mixShearY = data.mixShearY; + } + isActive() { + return this.active; + } + setToSetupPose() { + const data = this.data; + this.mixRotate = data.mixRotate; + this.mixX = data.mixX; + this.mixY = data.mixY; + this.mixScaleX = data.mixScaleX; + this.mixScaleY = data.mixScaleY; + this.mixShearY = data.mixShearY; + } + update(physics) { + if (this.mixRotate == 0 && this.mixX == 0 && this.mixY == 0 && this.mixScaleX == 0 && this.mixScaleY == 0 && this.mixShearY == 0) + return; + if (this.data.local) { + if (this.data.relative) + this.applyRelativeLocal(); + else + this.applyAbsoluteLocal(); + } else { + if (this.data.relative) + this.applyRelativeWorld(); + else + this.applyAbsoluteWorld(); + } + } + applyAbsoluteWorld() { + let mixRotate = this.mixRotate, mixX = this.mixX, mixY = this.mixY, mixScaleX = this.mixScaleX, mixScaleY = this.mixScaleY, mixShearY = this.mixShearY; + let translate = mixX != 0 || mixY != 0; + let target = this.target; + let ta = target.a, tb = target.b, tc = target.c, td = target.d; + let degRadReflect = ta * td - tb * tc > 0 ? MathUtils.degRad : -MathUtils.degRad; + let offsetRotation = this.data.offsetRotation * degRadReflect; + let offsetShearY = this.data.offsetShearY * degRadReflect; + let bones = this.bones; + for (let i = 0, n = bones.length; i < n; i++) { + let bone = bones[i]; + if (mixRotate != 0) { + let a = bone.a, b = bone.b, c = bone.c, d = bone.d; + let r = Math.atan2(tc, ta) - Math.atan2(c, a) + offsetRotation; + if (r > MathUtils.PI) + r -= MathUtils.PI2; + else if (r < -MathUtils.PI) + r += MathUtils.PI2; + r *= mixRotate; + let cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + if (translate) { + let temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += (temp.x - bone.worldX) * mixX; + bone.worldY += (temp.y - bone.worldY) * mixY; + } + if (mixScaleX != 0) { + let s = Math.sqrt(bone.a * bone.a + bone.c * bone.c); + if (s != 0) + s = (s + (Math.sqrt(ta * ta + tc * tc) - s + this.data.offsetScaleX) * mixScaleX) / s; + bone.a *= s; + bone.c *= s; + } + if (mixScaleY != 0) { + let s = Math.sqrt(bone.b * bone.b + bone.d * bone.d); + if (s != 0) + s = (s + (Math.sqrt(tb * tb + td * td) - s + this.data.offsetScaleY) * mixScaleY) / s; + bone.b *= s; + bone.d *= s; + } + if (mixShearY > 0) { + let b = bone.b, d = bone.d; + let by = Math.atan2(d, b); + let r = Math.atan2(td, tb) - Math.atan2(tc, ta) - (by - Math.atan2(bone.c, bone.a)); + if (r > MathUtils.PI) + r -= MathUtils.PI2; + else if (r < -MathUtils.PI) + r += MathUtils.PI2; + r = by + (r + offsetShearY) * mixShearY; + let s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + } + bone.updateAppliedTransform(); + } + } + applyRelativeWorld() { + let mixRotate = this.mixRotate, mixX = this.mixX, mixY = this.mixY, mixScaleX = this.mixScaleX, mixScaleY = this.mixScaleY, mixShearY = this.mixShearY; + let translate = mixX != 0 || mixY != 0; + let target = this.target; + let ta = target.a, tb = target.b, tc = target.c, td = target.d; + let degRadReflect = ta * td - tb * tc > 0 ? MathUtils.degRad : -MathUtils.degRad; + let offsetRotation = this.data.offsetRotation * degRadReflect, offsetShearY = this.data.offsetShearY * degRadReflect; + let bones = this.bones; + for (let i = 0, n = bones.length; i < n; i++) { + let bone = bones[i]; + if (mixRotate != 0) { + let a = bone.a, b = bone.b, c = bone.c, d = bone.d; + let r = Math.atan2(tc, ta) + offsetRotation; + if (r > MathUtils.PI) + r -= MathUtils.PI2; + else if (r < -MathUtils.PI) + r += MathUtils.PI2; + r *= mixRotate; + let cos = Math.cos(r), sin = Math.sin(r); + bone.a = cos * a - sin * c; + bone.b = cos * b - sin * d; + bone.c = sin * a + cos * c; + bone.d = sin * b + cos * d; + } + if (translate) { + let temp = this.temp; + target.localToWorld(temp.set(this.data.offsetX, this.data.offsetY)); + bone.worldX += temp.x * mixX; + bone.worldY += temp.y * mixY; + } + if (mixScaleX != 0) { + let s = (Math.sqrt(ta * ta + tc * tc) - 1 + this.data.offsetScaleX) * mixScaleX + 1; + bone.a *= s; + bone.c *= s; + } + if (mixScaleY != 0) { + let s = (Math.sqrt(tb * tb + td * td) - 1 + this.data.offsetScaleY) * mixScaleY + 1; + bone.b *= s; + bone.d *= s; + } + if (mixShearY > 0) { + let r = Math.atan2(td, tb) - Math.atan2(tc, ta); + if (r > MathUtils.PI) + r -= MathUtils.PI2; + else if (r < -MathUtils.PI) + r += MathUtils.PI2; + let b = bone.b, d = bone.d; + r = Math.atan2(d, b) + (r - MathUtils.PI / 2 + offsetShearY) * mixShearY; + let s = Math.sqrt(b * b + d * d); + bone.b = Math.cos(r) * s; + bone.d = Math.sin(r) * s; + } + bone.updateAppliedTransform(); + } + } + applyAbsoluteLocal() { + let mixRotate = this.mixRotate, mixX = this.mixX, mixY = this.mixY, mixScaleX = this.mixScaleX, mixScaleY = this.mixScaleY, mixShearY = this.mixShearY; + let target = this.target; + let bones = this.bones; + for (let i = 0, n = bones.length; i < n; i++) { + let bone = bones[i]; + let rotation = bone.arotation; + if (mixRotate != 0) + rotation += (target.arotation - rotation + this.data.offsetRotation) * mixRotate; + let x = bone.ax, y = bone.ay; + x += (target.ax - x + this.data.offsetX) * mixX; + y += (target.ay - y + this.data.offsetY) * mixY; + let scaleX = bone.ascaleX, scaleY = bone.ascaleY; + if (mixScaleX != 0 && scaleX != 0) + scaleX = (scaleX + (target.ascaleX - scaleX + this.data.offsetScaleX) * mixScaleX) / scaleX; + if (mixScaleY != 0 && scaleY != 0) + scaleY = (scaleY + (target.ascaleY - scaleY + this.data.offsetScaleY) * mixScaleY) / scaleY; + let shearY = bone.ashearY; + if (mixShearY != 0) + shearY += (target.ashearY - shearY + this.data.offsetShearY) * mixShearY; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + } + applyRelativeLocal() { + let mixRotate = this.mixRotate, mixX = this.mixX, mixY = this.mixY, mixScaleX = this.mixScaleX, mixScaleY = this.mixScaleY, mixShearY = this.mixShearY; + let target = this.target; + let bones = this.bones; + for (let i = 0, n = bones.length; i < n; i++) { + let bone = bones[i]; + let rotation = bone.arotation + (target.arotation + this.data.offsetRotation) * mixRotate; + let x = bone.ax + (target.ax + this.data.offsetX) * mixX; + let y = bone.ay + (target.ay + this.data.offsetY) * mixY; + let scaleX = bone.ascaleX * ((target.ascaleX - 1 + this.data.offsetScaleX) * mixScaleX + 1); + let scaleY = bone.ascaleY * ((target.ascaleY - 1 + this.data.offsetScaleY) * mixScaleY + 1); + let shearY = bone.ashearY + (target.ashearY + this.data.offsetShearY) * mixShearY; + bone.updateWorldTransformWith(x, y, rotation, scaleX, scaleY, bone.ashearX, shearY); + } + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/Skeleton.js + var Skeleton = class _Skeleton { + static quadTriangles = [0, 1, 2, 2, 3, 0]; + static yDown = false; + /** The skeleton's setup pose data. */ + data; + /** The skeleton's bones, sorted parent first. The root bone is always the first bone. */ + bones; + /** The skeleton's slots in the setup pose draw order. */ + slots; + /** The skeleton's slots in the order they should be drawn. The returned array may be modified to change the draw order. */ + drawOrder; + /** The skeleton's IK constraints. */ + ikConstraints; + /** The skeleton's transform constraints. */ + transformConstraints; + /** The skeleton's path constraints. */ + pathConstraints; + /** The skeleton's physics constraints. */ + physicsConstraints; + /** The list of bones and constraints, sorted in the order they should be updated, as computed by {@link #updateCache()}. */ + _updateCache = new Array(); + /** The skeleton's current skin. May be null. */ + skin = null; + /** The color to tint all the skeleton's attachments. */ + color; + /** Scales the entire skeleton on the X axis. This affects all bones, even if the bone's transform mode disallows scale + * inheritance. */ + scaleX = 1; + /** Scales the entire skeleton on the Y axis. This affects all bones, even if the bone's transform mode disallows scale + * inheritance. */ + _scaleY = 1; + get scaleY() { + return _Skeleton.yDown ? -this._scaleY : this._scaleY; + } + set scaleY(scaleY) { + this._scaleY = scaleY; + } + /** Sets the skeleton X position, which is added to the root bone worldX position. */ + x = 0; + /** Sets the skeleton Y position, which is added to the root bone worldY position. */ + y = 0; + /** Returns the skeleton's time. This is used for time-based manipulations, such as {@link PhysicsConstraint}. + *

+ * See {@link #update(float)}. */ + time = 0; + constructor(data) { + if (!data) + throw new Error("data cannot be null."); + this.data = data; + this.bones = new Array(); + for (let i = 0; i < data.bones.length; i++) { + let boneData = data.bones[i]; + let bone; + if (!boneData.parent) + bone = new Bone(boneData, this, null); + else { + let parent = this.bones[boneData.parent.index]; + bone = new Bone(boneData, this, parent); + parent.children.push(bone); + } + this.bones.push(bone); + } + this.slots = new Array(); + this.drawOrder = new Array(); + for (let i = 0; i < data.slots.length; i++) { + let slotData = data.slots[i]; + let bone = this.bones[slotData.boneData.index]; + let slot = new Slot(slotData, bone); + this.slots.push(slot); + this.drawOrder.push(slot); + } + this.ikConstraints = new Array(); + for (let i = 0; i < data.ikConstraints.length; i++) { + let ikConstraintData = data.ikConstraints[i]; + this.ikConstraints.push(new IkConstraint(ikConstraintData, this)); + } + this.transformConstraints = new Array(); + for (let i = 0; i < data.transformConstraints.length; i++) { + let transformConstraintData = data.transformConstraints[i]; + this.transformConstraints.push(new TransformConstraint(transformConstraintData, this)); + } + this.pathConstraints = new Array(); + for (let i = 0; i < data.pathConstraints.length; i++) { + let pathConstraintData = data.pathConstraints[i]; + this.pathConstraints.push(new PathConstraint(pathConstraintData, this)); + } + this.physicsConstraints = new Array(); + for (let i = 0; i < data.physicsConstraints.length; i++) { + let physicsConstraintData = data.physicsConstraints[i]; + this.physicsConstraints.push(new PhysicsConstraint(physicsConstraintData, this)); + } + this.color = new Color(1, 1, 1, 1); + this.updateCache(); + } + /** Caches information about bones and constraints. Must be called if the {@link #getSkin()} is modified or if bones, + * constraints, or weighted path attachments are added or removed. */ + updateCache() { + let updateCache = this._updateCache; + updateCache.length = 0; + let bones = this.bones; + for (let i = 0, n = bones.length; i < n; i++) { + let bone = bones[i]; + bone.sorted = bone.data.skinRequired; + bone.active = !bone.sorted; + } + if (this.skin) { + let skinBones = this.skin.bones; + for (let i = 0, n = this.skin.bones.length; i < n; i++) { + let bone = this.bones[skinBones[i].index]; + do { + bone.sorted = false; + bone.active = true; + bone = bone.parent; + } while (bone); + } + } + let ikConstraints = this.ikConstraints; + let transformConstraints = this.transformConstraints; + let pathConstraints = this.pathConstraints; + let physicsConstraints = this.physicsConstraints; + let ikCount = ikConstraints.length, transformCount = transformConstraints.length, pathCount = pathConstraints.length, physicsCount = this.physicsConstraints.length; + let constraintCount = ikCount + transformCount + pathCount + physicsCount; + outer: + for (let i = 0; i < constraintCount; i++) { + for (let ii = 0; ii < ikCount; ii++) { + let constraint = ikConstraints[ii]; + if (constraint.data.order == i) { + this.sortIkConstraint(constraint); + continue outer; + } + } + for (let ii = 0; ii < transformCount; ii++) { + let constraint = transformConstraints[ii]; + if (constraint.data.order == i) { + this.sortTransformConstraint(constraint); + continue outer; + } + } + for (let ii = 0; ii < pathCount; ii++) { + let constraint = pathConstraints[ii]; + if (constraint.data.order == i) { + this.sortPathConstraint(constraint); + continue outer; + } + } + for (let ii = 0; ii < physicsCount; ii++) { + const constraint = physicsConstraints[ii]; + if (constraint.data.order == i) { + this.sortPhysicsConstraint(constraint); + continue outer; + } + } + } + for (let i = 0, n = bones.length; i < n; i++) + this.sortBone(bones[i]); + } + sortIkConstraint(constraint) { + constraint.active = constraint.target.isActive() && (!constraint.data.skinRequired || this.skin && Utils.contains(this.skin.constraints, constraint.data, true)); + if (!constraint.active) + return; + let target = constraint.target; + this.sortBone(target); + let constrained = constraint.bones; + let parent = constrained[0]; + this.sortBone(parent); + if (constrained.length == 1) { + this._updateCache.push(constraint); + this.sortReset(parent.children); + } else { + let child = constrained[constrained.length - 1]; + this.sortBone(child); + this._updateCache.push(constraint); + this.sortReset(parent.children); + child.sorted = true; + } + } + sortPathConstraint(constraint) { + constraint.active = constraint.target.bone.isActive() && (!constraint.data.skinRequired || this.skin && Utils.contains(this.skin.constraints, constraint.data, true)); + if (!constraint.active) + return; + let slot = constraint.target; + let slotIndex = slot.data.index; + let slotBone = slot.bone; + if (this.skin) + this.sortPathConstraintAttachment(this.skin, slotIndex, slotBone); + if (this.data.defaultSkin && this.data.defaultSkin != this.skin) + this.sortPathConstraintAttachment(this.data.defaultSkin, slotIndex, slotBone); + for (let i = 0, n = this.data.skins.length; i < n; i++) + this.sortPathConstraintAttachment(this.data.skins[i], slotIndex, slotBone); + let attachment = slot.getAttachment(); + if (attachment instanceof PathAttachment) + this.sortPathConstraintAttachmentWith(attachment, slotBone); + let constrained = constraint.bones; + let boneCount = constrained.length; + for (let i = 0; i < boneCount; i++) + this.sortBone(constrained[i]); + this._updateCache.push(constraint); + for (let i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (let i = 0; i < boneCount; i++) + constrained[i].sorted = true; + } + sortTransformConstraint(constraint) { + constraint.active = constraint.target.isActive() && (!constraint.data.skinRequired || this.skin && Utils.contains(this.skin.constraints, constraint.data, true)); + if (!constraint.active) + return; + this.sortBone(constraint.target); + let constrained = constraint.bones; + let boneCount = constrained.length; + if (constraint.data.local) { + for (let i = 0; i < boneCount; i++) { + let child = constrained[i]; + this.sortBone(child.parent); + this.sortBone(child); + } + } else { + for (let i = 0; i < boneCount; i++) { + this.sortBone(constrained[i]); + } + } + this._updateCache.push(constraint); + for (let i = 0; i < boneCount; i++) + this.sortReset(constrained[i].children); + for (let i = 0; i < boneCount; i++) + constrained[i].sorted = true; + } + sortPathConstraintAttachment(skin, slotIndex, slotBone) { + let attachments = skin.attachments[slotIndex]; + if (!attachments) + return; + for (let key in attachments) { + this.sortPathConstraintAttachmentWith(attachments[key], slotBone); + } + } + sortPathConstraintAttachmentWith(attachment, slotBone) { + if (!(attachment instanceof PathAttachment)) + return; + let pathBones = attachment.bones; + if (!pathBones) + this.sortBone(slotBone); + else { + let bones = this.bones; + for (let i = 0, n = pathBones.length; i < n; ) { + let nn = pathBones[i++]; + nn += i; + while (i < nn) + this.sortBone(bones[pathBones[i++]]); + } + } + } + sortPhysicsConstraint(constraint) { + const bone = constraint.bone; + constraint.active = bone.active && (!constraint.data.skinRequired || this.skin != null && Utils.contains(this.skin.constraints, constraint.data, true)); + if (!constraint.active) + return; + this.sortBone(bone); + this._updateCache.push(constraint); + this.sortReset(bone.children); + bone.sorted = true; + } + sortBone(bone) { + if (!bone) + return; + if (bone.sorted) + return; + let parent = bone.parent; + if (parent) + this.sortBone(parent); + bone.sorted = true; + this._updateCache.push(bone); + } + sortReset(bones) { + for (let i = 0, n = bones.length; i < n; i++) { + let bone = bones[i]; + if (!bone.active) + continue; + if (bone.sorted) + this.sortReset(bone.children); + bone.sorted = false; + } + } + /** Updates the world transform for each bone and applies all constraints. + * + * See [World transforms](http://esotericsoftware.com/spine-runtime-skeletons#World-transforms) in the Spine + * Runtimes Guide. */ + updateWorldTransform(physics) { + if (physics === void 0 || physics === null) + throw new Error("physics is undefined"); + let bones = this.bones; + for (let i = 0, n = bones.length; i < n; i++) { + let bone = bones[i]; + bone.ax = bone.x; + bone.ay = bone.y; + bone.arotation = bone.rotation; + bone.ascaleX = bone.scaleX; + bone.ascaleY = bone.scaleY; + bone.ashearX = bone.shearX; + bone.ashearY = bone.shearY; + } + let updateCache = this._updateCache; + for (let i = 0, n = updateCache.length; i < n; i++) + updateCache[i].update(physics); + } + updateWorldTransformWith(physics, parent) { + let rootBone = this.getRootBone(); + if (!rootBone) + throw new Error("Root bone must not be null."); + let pa = parent.a, pb = parent.b, pc = parent.c, pd = parent.d; + rootBone.worldX = pa * this.x + pb * this.y + parent.worldX; + rootBone.worldY = pc * this.x + pd * this.y + parent.worldY; + const rx = (rootBone.rotation + rootBone.shearX) * MathUtils.degRad; + const ry = (rootBone.rotation + 90 + rootBone.shearY) * MathUtils.degRad; + const la = Math.cos(rx) * rootBone.scaleX; + const lb = Math.cos(ry) * rootBone.scaleY; + const lc = Math.sin(rx) * rootBone.scaleX; + const ld = Math.sin(ry) * rootBone.scaleY; + rootBone.a = (pa * la + pb * lc) * this.scaleX; + rootBone.b = (pa * lb + pb * ld) * this.scaleX; + rootBone.c = (pc * la + pd * lc) * this.scaleY; + rootBone.d = (pc * lb + pd * ld) * this.scaleY; + let updateCache = this._updateCache; + for (let i = 0, n = updateCache.length; i < n; i++) { + let updatable = updateCache[i]; + if (updatable != rootBone) + updatable.update(physics); + } + } + /** Sets the bones, constraints, and slots to their setup pose values. */ + setToSetupPose() { + this.setBonesToSetupPose(); + this.setSlotsToSetupPose(); + } + /** Sets the bones and constraints to their setup pose values. */ + setBonesToSetupPose() { + for (const bone of this.bones) + bone.setToSetupPose(); + for (const constraint of this.ikConstraints) + constraint.setToSetupPose(); + for (const constraint of this.transformConstraints) + constraint.setToSetupPose(); + for (const constraint of this.pathConstraints) + constraint.setToSetupPose(); + for (const constraint of this.physicsConstraints) + constraint.setToSetupPose(); + } + /** Sets the slots and draw order to their setup pose values. */ + setSlotsToSetupPose() { + let slots = this.slots; + Utils.arrayCopy(slots, 0, this.drawOrder, 0, slots.length); + for (let i = 0, n = slots.length; i < n; i++) + slots[i].setToSetupPose(); + } + /** @returns May return null. */ + getRootBone() { + if (this.bones.length == 0) + return null; + return this.bones[0]; + } + /** @returns May be null. */ + findBone(boneName) { + if (!boneName) + throw new Error("boneName cannot be null."); + let bones = this.bones; + for (let i = 0, n = bones.length; i < n; i++) { + let bone = bones[i]; + if (bone.data.name == boneName) + return bone; + } + return null; + } + /** Finds a slot by comparing each slot's name. It is more efficient to cache the results of this method than to call it + * repeatedly. + * @returns May be null. */ + findSlot(slotName) { + if (!slotName) + throw new Error("slotName cannot be null."); + let slots = this.slots; + for (let i = 0, n = slots.length; i < n; i++) { + let slot = slots[i]; + if (slot.data.name == slotName) + return slot; + } + return null; + } + /** Sets a skin by name. + * + * See {@link #setSkin()}. */ + setSkinByName(skinName) { + let skin = this.data.findSkin(skinName); + if (!skin) + throw new Error("Skin not found: " + skinName); + this.setSkin(skin); + } + /** Sets the skin used to look up attachments before looking in the {@link SkeletonData#defaultSkin default skin}. If the + * skin is changed, {@link #updateCache()} is called. + * + * Attachments from the new skin are attached if the corresponding attachment from the old skin was attached. If there was no + * old skin, each slot's setup mode attachment is attached from the new skin. + * + * After changing the skin, the visible attachments can be reset to those attached in the setup pose by calling + * {@link #setSlotsToSetupPose()}. Also, often {@link AnimationState#apply()} is called before the next time the + * skeleton is rendered to allow any attachment keys in the current animation(s) to hide or show attachments from the new skin. + * @param newSkin May be null. */ + setSkin(newSkin) { + if (newSkin == this.skin) + return; + if (newSkin) { + if (this.skin) + newSkin.attachAll(this, this.skin); + else { + let slots = this.slots; + for (let i = 0, n = slots.length; i < n; i++) { + let slot = slots[i]; + let name = slot.data.attachmentName; + if (name) { + let attachment = newSkin.getAttachment(i, name); + if (attachment) + slot.setAttachment(attachment); + } + } + } + } + this.skin = newSkin; + this.updateCache(); + } + /** Finds an attachment by looking in the {@link #skin} and {@link SkeletonData#defaultSkin} using the slot name and attachment + * name. + * + * See {@link #getAttachment()}. + * @returns May be null. */ + getAttachmentByName(slotName, attachmentName) { + let slot = this.data.findSlot(slotName); + if (!slot) + throw new Error(`Can't find slot with name ${slotName}`); + return this.getAttachment(slot.index, attachmentName); + } + /** Finds an attachment by looking in the {@link #skin} and {@link SkeletonData#defaultSkin} using the slot index and + * attachment name. First the skin is checked and if the attachment was not found, the default skin is checked. + * + * See [Runtime skins](http://esotericsoftware.com/spine-runtime-skins) in the Spine Runtimes Guide. + * @returns May be null. */ + getAttachment(slotIndex, attachmentName) { + if (!attachmentName) + throw new Error("attachmentName cannot be null."); + if (this.skin) { + let attachment = this.skin.getAttachment(slotIndex, attachmentName); + if (attachment) + return attachment; + } + if (this.data.defaultSkin) + return this.data.defaultSkin.getAttachment(slotIndex, attachmentName); + return null; + } + /** A convenience method to set an attachment by finding the slot with {@link #findSlot()}, finding the attachment with + * {@link #getAttachment()}, then setting the slot's {@link Slot#attachment}. + * @param attachmentName May be null to clear the slot's attachment. */ + setAttachment(slotName, attachmentName) { + if (!slotName) + throw new Error("slotName cannot be null."); + let slots = this.slots; + for (let i = 0, n = slots.length; i < n; i++) { + let slot = slots[i]; + if (slot.data.name == slotName) { + let attachment = null; + if (attachmentName) { + attachment = this.getAttachment(i, attachmentName); + if (!attachment) + throw new Error("Attachment not found: " + attachmentName + ", for slot: " + slotName); + } + slot.setAttachment(attachment); + return; + } + } + throw new Error("Slot not found: " + slotName); + } + /** Finds an IK constraint by comparing each IK constraint's name. It is more efficient to cache the results of this method + * than to call it repeatedly. + * @return May be null. */ + findIkConstraint(constraintName) { + if (!constraintName) + throw new Error("constraintName cannot be null."); + return this.ikConstraints.find((constraint) => constraint.data.name == constraintName) ?? null; + } + /** Finds a transform constraint by comparing each transform constraint's name. It is more efficient to cache the results of + * this method than to call it repeatedly. + * @return May be null. */ + findTransformConstraint(constraintName) { + if (!constraintName) + throw new Error("constraintName cannot be null."); + return this.transformConstraints.find((constraint) => constraint.data.name == constraintName) ?? null; + } + /** Finds a path constraint by comparing each path constraint's name. It is more efficient to cache the results of this method + * than to call it repeatedly. + * @return May be null. */ + findPathConstraint(constraintName) { + if (!constraintName) + throw new Error("constraintName cannot be null."); + return this.pathConstraints.find((constraint) => constraint.data.name == constraintName) ?? null; + } + /** Finds a physics constraint by comparing each physics constraint's name. It is more efficient to cache the results of this + * method than to call it repeatedly. */ + findPhysicsConstraint(constraintName) { + if (constraintName == null) + throw new Error("constraintName cannot be null."); + return this.physicsConstraints.find((constraint) => constraint.data.name == constraintName) ?? null; + } + /** Returns the axis aligned bounding box (AABB) of the region and mesh attachments for the current pose as `{ x: number, y: number, width: number, height: number }`. + * Note that this method will create temporary objects which can add to garbage collection pressure. Use `getBounds()` if garbage collection is a concern. */ + getBoundsRect() { + let offset = new Vector2(); + let size = new Vector2(); + this.getBounds(offset, size); + return { x: offset.x, y: offset.y, width: size.x, height: size.y }; + } + /** Returns the axis aligned bounding box (AABB) of the region and mesh attachments for the current pose. + * @param offset An output value, the distance from the skeleton origin to the bottom left corner of the AABB. + * @param size An output value, the width and height of the AABB. + * @param temp Working memory to temporarily store attachments' computed world vertices. + * @param clipper {@link SkeletonClipping} to use. If null, no clipping is applied. */ + getBounds(offset, size, temp = new Array(2), clipper3 = null) { + if (!offset) + throw new Error("offset cannot be null."); + if (!size) + throw new Error("size cannot be null."); + let drawOrder = this.drawOrder; + let minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + for (let i = 0, n = drawOrder.length; i < n; i++) { + let slot = drawOrder[i]; + if (!slot.bone.active) + continue; + let verticesLength = 0; + let vertices = null; + let triangles = null; + let attachment = slot.getAttachment(); + if (attachment instanceof RegionAttachment) { + verticesLength = 8; + vertices = Utils.setArraySize(temp, verticesLength, 0); + attachment.computeWorldVertices(slot, vertices, 0, 2); + triangles = _Skeleton.quadTriangles; + } else if (attachment instanceof MeshAttachment) { + let mesh = attachment; + verticesLength = mesh.worldVerticesLength; + vertices = Utils.setArraySize(temp, verticesLength, 0); + mesh.computeWorldVertices(slot, 0, verticesLength, vertices, 0, 2); + triangles = mesh.triangles; + } else if (attachment instanceof ClippingAttachment && clipper3 != null) { + clipper3.clipStart(slot, attachment); + continue; + } + if (vertices && triangles) { + if (clipper3 != null && clipper3.isClipping()) { + clipper3.clipTriangles(vertices, verticesLength, triangles, triangles.length); + vertices = clipper3.clippedVertices; + verticesLength = clipper3.clippedVertices.length; + } + for (let ii = 0, nn = vertices.length; ii < nn; ii += 2) { + let x = vertices[ii], y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + if (clipper3 != null) + clipper3.clipEndWithSlot(slot); + } + if (clipper3 != null) + clipper3.clipEnd(); + offset.set(minX, minY); + size.set(maxX - minX, maxY - minY); + } + /** Increments the skeleton's {@link #time}. */ + update(delta) { + this.time += delta; + } + physicsTranslate(x, y) { + const physicsConstraints = this.physicsConstraints; + for (let i = 0, n = physicsConstraints.length; i < n; i++) + physicsConstraints[i].translate(x, y); + } + /** Calls {@link PhysicsConstraint#rotate(float, float, float)} for each physics constraint. */ + physicsRotate(x, y, degrees) { + const physicsConstraints = this.physicsConstraints; + for (let i = 0, n = physicsConstraints.length; i < n; i++) + physicsConstraints[i].rotate(x, y, degrees); + } + }; + var Physics; + (function(Physics2) { + Physics2[Physics2["none"] = 0] = "none"; + Physics2[Physics2["reset"] = 1] = "reset"; + Physics2[Physics2["update"] = 2] = "update"; + Physics2[Physics2["pose"] = 3] = "pose"; + })(Physics || (Physics = {})); + + // node_modules/@esotericsoftware/spine-core/dist/PhysicsConstraintData.js + var PhysicsConstraintData = class extends ConstraintData { + _bone = null; + /** The bone constrained by this physics constraint. */ + set bone(boneData) { + this._bone = boneData; + } + get bone() { + if (!this._bone) + throw new Error("BoneData not set."); + else + return this._bone; + } + 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; + /** A percentage (0-1) that controls the mix between the constrained and unconstrained poses. */ + mix = 0; + inertiaGlobal = false; + strengthGlobal = false; + dampingGlobal = false; + massGlobal = false; + windGlobal = false; + gravityGlobal = false; + mixGlobal = false; + constructor(name) { + super(name, 0, false); + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/SkeletonData.js + var SkeletonData = class { + /** The skeleton's name, which by default is the name of the skeleton data file, if possible. May be null. */ + name = null; + /** The skeleton's bones, sorted parent first. The root bone is always the first bone. */ + bones = new Array(); + // Ordered parents first. + /** The skeleton's slots in the setup pose draw order. */ + slots = new Array(); + // Setup pose draw order. + skins = new Array(); + /** The skeleton's default skin. By default this skin contains all attachments that were not in a skin in Spine. + * + * See {@link Skeleton#getAttachmentByName()}. + * May be null. */ + defaultSkin = null; + /** The skeleton's events. */ + events = new Array(); + /** The skeleton's animations. */ + animations = new Array(); + /** The skeleton's IK constraints. */ + ikConstraints = new Array(); + /** The skeleton's transform constraints. */ + transformConstraints = new Array(); + /** The skeleton's path constraints. */ + pathConstraints = new Array(); + /** The skeleton's physics constraints. */ + physicsConstraints = new Array(); + /** The X coordinate of the skeleton's axis aligned bounding box in the setup pose. */ + x = 0; + /** The Y coordinate of the skeleton's axis aligned bounding box in the setup pose. */ + y = 0; + /** The width of the skeleton's axis aligned bounding box in the setup pose. */ + width = 0; + /** The height of the skeleton's axis aligned bounding box in the setup pose. */ + height = 0; + /** Baseline scale factor for applying distance-dependent effects on non-scalable properties, such as angle or scale. Default + * is 100. */ + referenceScale = 100; + /** The Spine version used to export the skeleton data, or null. */ + version = null; + /** The skeleton data hash. This value will change if any of the skeleton data has changed. May be null. */ + hash = null; + // Nonessential + /** The dopesheet FPS in Spine. Available only when nonessential data was exported. */ + fps = 0; + /** The path to the images directory as defined in Spine. Available only when nonessential data was exported. May be null. */ + imagesPath = null; + /** The path to the audio directory as defined in Spine. Available only when nonessential data was exported. May be null. */ + audioPath = null; + /** Finds a bone by comparing each bone's name. It is more efficient to cache the results of this method than to call it + * multiple times. + * @returns May be null. */ + findBone(boneName) { + if (!boneName) + throw new Error("boneName cannot be null."); + let bones = this.bones; + for (let i = 0, n = bones.length; i < n; i++) { + let bone = bones[i]; + if (bone.name == boneName) + return bone; + } + return null; + } + /** Finds a slot by comparing each slot's name. It is more efficient to cache the results of this method than to call it + * multiple times. + * @returns May be null. */ + findSlot(slotName) { + if (!slotName) + throw new Error("slotName cannot be null."); + let slots = this.slots; + for (let i = 0, n = slots.length; i < n; i++) { + let slot = slots[i]; + if (slot.name == slotName) + return slot; + } + return null; + } + /** Finds a skin by comparing each skin's name. It is more efficient to cache the results of this method than to call it + * multiple times. + * @returns May be null. */ + findSkin(skinName) { + if (!skinName) + throw new Error("skinName cannot be null."); + let skins = this.skins; + for (let i = 0, n = skins.length; i < n; i++) { + let skin = skins[i]; + if (skin.name == skinName) + return skin; + } + return null; + } + /** Finds an event by comparing each events's name. It is more efficient to cache the results of this method than to call it + * multiple times. + * @returns May be null. */ + findEvent(eventDataName) { + if (!eventDataName) + throw new Error("eventDataName cannot be null."); + let events = this.events; + for (let i = 0, n = events.length; i < n; i++) { + let event = events[i]; + if (event.name == eventDataName) + return event; + } + return null; + } + /** Finds an animation by comparing each animation's name. It is more efficient to cache the results of this method than to + * call it multiple times. + * @returns May be null. */ + findAnimation(animationName) { + if (!animationName) + throw new Error("animationName cannot be null."); + let animations = this.animations; + for (let i = 0, n = animations.length; i < n; i++) { + let animation = animations[i]; + if (animation.name == animationName) + return animation; + } + return null; + } + /** Finds an IK constraint by comparing each IK constraint's name. It is more efficient to cache the results of this method + * than to call it multiple times. + * @return May be null. */ + findIkConstraint(constraintName) { + if (!constraintName) + throw new Error("constraintName cannot be null."); + const ikConstraints = this.ikConstraints; + for (let i = 0, n = ikConstraints.length; i < n; i++) { + const constraint = ikConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + } + /** Finds a transform constraint by comparing each transform constraint's name. It is more efficient to cache the results of + * this method than to call it multiple times. + * @return May be null. */ + findTransformConstraint(constraintName) { + if (!constraintName) + throw new Error("constraintName cannot be null."); + const transformConstraints = this.transformConstraints; + for (let i = 0, n = transformConstraints.length; i < n; i++) { + const constraint = transformConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + } + /** Finds a path constraint by comparing each path constraint's name. It is more efficient to cache the results of this method + * than to call it multiple times. + * @return May be null. */ + findPathConstraint(constraintName) { + if (!constraintName) + throw new Error("constraintName cannot be null."); + const pathConstraints = this.pathConstraints; + for (let i = 0, n = pathConstraints.length; i < n; i++) { + const constraint = pathConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + } + /** Finds a physics constraint by comparing each physics constraint's name. It is more efficient to cache the results of this method + * than to call it multiple times. + * @return May be null. */ + findPhysicsConstraint(constraintName) { + if (!constraintName) + throw new Error("constraintName cannot be null."); + const physicsConstraints = this.physicsConstraints; + for (let i = 0, n = physicsConstraints.length; i < n; i++) { + const constraint = physicsConstraints[i]; + if (constraint.name == constraintName) + return constraint; + } + return null; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/Skin.js + var SkinEntry = class { + slotIndex; + name; + attachment; + constructor(slotIndex = 0, name, attachment) { + this.slotIndex = slotIndex; + this.name = name; + this.attachment = attachment; + } + }; + var Skin = class { + /** The skin's name, which is unique across all skins in the skeleton. */ + name; + attachments = new Array(); + bones = Array(); + constraints = new Array(); + /** The color of the skin as it was in Spine, or a default color if nonessential data was not exported. */ + color = new Color(0.99607843, 0.61960787, 0.30980393, 1); + // fe9e4fff + constructor(name) { + if (!name) + throw new Error("name cannot be null."); + this.name = name; + } + /** Adds an attachment to the skin for the specified slot index and name. */ + setAttachment(slotIndex, name, attachment) { + if (!attachment) + throw new Error("attachment cannot be null."); + let attachments = this.attachments; + if (slotIndex >= attachments.length) + attachments.length = slotIndex + 1; + if (!attachments[slotIndex]) + attachments[slotIndex] = {}; + attachments[slotIndex][name] = attachment; + } + /** Adds all attachments, bones, and constraints from the specified skin to this skin. */ + addSkin(skin) { + for (let i = 0; i < skin.bones.length; i++) { + let bone = skin.bones[i]; + let contained = false; + for (let ii = 0; ii < this.bones.length; ii++) { + if (this.bones[ii] == bone) { + contained = true; + break; + } + } + if (!contained) + this.bones.push(bone); + } + for (let i = 0; i < skin.constraints.length; i++) { + let constraint = skin.constraints[i]; + let contained = false; + for (let ii = 0; ii < this.constraints.length; ii++) { + if (this.constraints[ii] == constraint) { + contained = true; + break; + } + } + if (!contained) + this.constraints.push(constraint); + } + let attachments = skin.getAttachments(); + for (let i = 0; i < attachments.length; i++) { + var attachment = attachments[i]; + this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); + } + } + /** Adds all bones and constraints and copies of all attachments from the specified skin to this skin. Mesh attachments are not + * copied, instead a new linked mesh is created. The attachment copies can be modified without affecting the originals. */ + copySkin(skin) { + for (let i = 0; i < skin.bones.length; i++) { + let bone = skin.bones[i]; + let contained = false; + for (let ii = 0; ii < this.bones.length; ii++) { + if (this.bones[ii] == bone) { + contained = true; + break; + } + } + if (!contained) + this.bones.push(bone); + } + for (let i = 0; i < skin.constraints.length; i++) { + let constraint = skin.constraints[i]; + let contained = false; + for (let ii = 0; ii < this.constraints.length; ii++) { + if (this.constraints[ii] == constraint) { + contained = true; + break; + } + } + if (!contained) + this.constraints.push(constraint); + } + let attachments = skin.getAttachments(); + for (let i = 0; i < attachments.length; i++) { + var attachment = attachments[i]; + if (!attachment.attachment) + continue; + if (attachment.attachment instanceof MeshAttachment) { + attachment.attachment = attachment.attachment.newLinkedMesh(); + this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); + } else { + attachment.attachment = attachment.attachment.copy(); + this.setAttachment(attachment.slotIndex, attachment.name, attachment.attachment); + } + } + } + /** Returns the attachment for the specified slot index and name, or null. */ + getAttachment(slotIndex, name) { + let dictionary = this.attachments[slotIndex]; + return dictionary ? dictionary[name] : null; + } + /** Removes the attachment in the skin for the specified slot index and name, if any. */ + removeAttachment(slotIndex, name) { + let dictionary = this.attachments[slotIndex]; + if (dictionary) + delete dictionary[name]; + } + /** Returns all attachments in this skin. */ + getAttachments() { + let entries = new Array(); + for (var i = 0; i < this.attachments.length; i++) { + let slotAttachments = this.attachments[i]; + if (slotAttachments) { + for (let name in slotAttachments) { + let attachment = slotAttachments[name]; + if (attachment) + entries.push(new SkinEntry(i, name, attachment)); + } + } + } + return entries; + } + /** Returns all attachments in this skin for the specified slot index. */ + getAttachmentsForSlot(slotIndex, attachments) { + let slotAttachments = this.attachments[slotIndex]; + if (slotAttachments) { + for (let name in slotAttachments) { + let attachment = slotAttachments[name]; + if (attachment) + attachments.push(new SkinEntry(slotIndex, name, attachment)); + } + } + } + /** Clears all attachments, bones, and constraints. */ + clear() { + this.attachments.length = 0; + this.bones.length = 0; + this.constraints.length = 0; + } + /** Attach each attachment in this skin if the corresponding attachment in the old skin is currently attached. */ + attachAll(skeleton, oldSkin) { + let slotIndex = 0; + for (let i = 0; i < skeleton.slots.length; i++) { + let slot = skeleton.slots[i]; + let slotAttachment = slot.getAttachment(); + if (slotAttachment && slotIndex < oldSkin.attachments.length) { + let dictionary = oldSkin.attachments[slotIndex]; + for (let key in dictionary) { + let skinAttachment = dictionary[key]; + if (slotAttachment == skinAttachment) { + let attachment = this.getAttachment(slotIndex, key); + if (attachment) + slot.setAttachment(attachment); + break; + } + } + } + slotIndex++; + } + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/SlotData.js + var SlotData = class { + /** The index of the slot in {@link Skeleton#getSlots()}. */ + index = 0; + /** The name of the slot, which is unique across all slots in the skeleton. */ + name; + /** The bone this slot belongs to. */ + boneData; + /** The color used to tint the slot's attachment. If {@link #getDarkColor()} is set, this is used as the light color for two + * color tinting. */ + color = new Color(1, 1, 1, 1); + /** The dark color used to tint the slot's attachment for two color tinting, or null if two color tinting is not used. The dark + * color's alpha is not used. */ + darkColor = null; + /** The name of the attachment that is visible for this slot in the setup pose, or null if no attachment is visible. */ + attachmentName = null; + /** The blend mode for drawing the slot's attachment. */ + blendMode = BlendMode.Normal; + /** False if the slot was hidden in Spine and nonessential data was exported. Does not affect runtime rendering. */ + visible = true; + constructor(index, name, boneData) { + if (index < 0) + throw new Error("index must be >= 0."); + if (!name) + throw new Error("name cannot be null."); + if (!boneData) + throw new Error("boneData cannot be null."); + this.index = index; + this.name = name; + this.boneData = boneData; + } + }; + var BlendMode; + (function(BlendMode2) { + BlendMode2[BlendMode2["Normal"] = 0] = "Normal"; + BlendMode2[BlendMode2["Additive"] = 1] = "Additive"; + BlendMode2[BlendMode2["Multiply"] = 2] = "Multiply"; + BlendMode2[BlendMode2["Screen"] = 3] = "Screen"; + })(BlendMode || (BlendMode = {})); + + // node_modules/@esotericsoftware/spine-core/dist/TransformConstraintData.js + var TransformConstraintData = class extends ConstraintData { + /** The bones that will be modified by this transform constraint. */ + bones = new Array(); + /** The target bone whose world transform will be copied to the constrained bones. */ + _target = null; + set target(boneData) { + this._target = boneData; + } + get target() { + if (!this._target) + throw new Error("BoneData not set."); + else + return this._target; + } + mixRotate = 0; + mixX = 0; + mixY = 0; + mixScaleX = 0; + mixScaleY = 0; + mixShearY = 0; + /** An offset added to the constrained bone rotation. */ + offsetRotation = 0; + /** An offset added to the constrained bone X translation. */ + offsetX = 0; + /** An offset added to the constrained bone Y translation. */ + offsetY = 0; + /** An offset added to the constrained bone scaleX. */ + offsetScaleX = 0; + /** An offset added to the constrained bone scaleY. */ + offsetScaleY = 0; + /** An offset added to the constrained bone shearY. */ + offsetShearY = 0; + relative = false; + local = false; + constructor(name) { + super(name, 0, false); + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/SkeletonBinary.js + var SkeletonBinary = class { + /** Scales bone positions, image sizes, and translations as they are loaded. This allows different size images to be used at + * runtime than were used in Spine. + * + * See [Scaling](http://esotericsoftware.com/spine-loading-skeleton-data#Scaling) in the Spine Runtimes Guide. */ + scale = 1; + attachmentLoader; + linkedMeshes = new Array(); + constructor(attachmentLoader) { + this.attachmentLoader = attachmentLoader; + } + readSkeletonData(binary) { + let scale = this.scale; + let skeletonData = new SkeletonData(); + skeletonData.name = ""; + let input = new BinaryInput(binary); + let lowHash = input.readInt32(); + let highHash = input.readInt32(); + skeletonData.hash = highHash == 0 && lowHash == 0 ? null : highHash.toString(16) + lowHash.toString(16); + skeletonData.version = input.readString(); + skeletonData.x = input.readFloat(); + skeletonData.y = input.readFloat(); + skeletonData.width = input.readFloat(); + skeletonData.height = input.readFloat(); + skeletonData.referenceScale = input.readFloat() * scale; + let nonessential = input.readBoolean(); + if (nonessential) { + skeletonData.fps = input.readFloat(); + skeletonData.imagesPath = input.readString(); + skeletonData.audioPath = input.readString(); + } + let n = 0; + n = input.readInt(true); + for (let i = 0; i < n; i++) { + let str = input.readString(); + if (!str) + throw new Error("String in string table must not be null."); + input.strings.push(str); + } + n = input.readInt(true); + for (let i = 0; i < n; i++) { + let name = input.readString(); + if (!name) + throw new Error("Bone name must not be null."); + let parent = i == 0 ? null : skeletonData.bones[input.readInt(true)]; + let data = new BoneData(i, name, parent); + data.rotation = input.readFloat(); + data.x = input.readFloat() * scale; + data.y = input.readFloat() * scale; + data.scaleX = input.readFloat(); + data.scaleY = input.readFloat(); + data.shearX = input.readFloat(); + data.shearY = input.readFloat(); + data.length = input.readFloat() * scale; + data.inherit = input.readByte(); + data.skinRequired = input.readBoolean(); + if (nonessential) { + Color.rgba8888ToColor(data.color, input.readInt32()); + data.icon = input.readString() ?? void 0; + data.visible = input.readBoolean(); + } + skeletonData.bones.push(data); + } + n = input.readInt(true); + for (let i = 0; i < n; i++) { + let slotName = input.readString(); + if (!slotName) + throw new Error("Slot name must not be null."); + let boneData = skeletonData.bones[input.readInt(true)]; + let data = new SlotData(i, slotName, boneData); + Color.rgba8888ToColor(data.color, input.readInt32()); + let darkColor2 = input.readInt32(); + if (darkColor2 != -1) + Color.rgb888ToColor(data.darkColor = new Color(), darkColor2); + data.attachmentName = input.readStringRef(); + data.blendMode = input.readInt(true); + if (nonessential) + data.visible = input.readBoolean(); + skeletonData.slots.push(data); + } + n = input.readInt(true); + for (let i = 0, nn; i < n; i++) { + let name = input.readString(); + if (!name) + throw new Error("IK constraint data name must not be null."); + let data = new IkConstraintData(name); + data.order = input.readInt(true); + nn = input.readInt(true); + for (let ii = 0; ii < nn; ii++) + data.bones.push(skeletonData.bones[input.readInt(true)]); + data.target = skeletonData.bones[input.readInt(true)]; + let flags = input.readByte(); + data.skinRequired = (flags & 1) != 0; + data.bendDirection = (flags & 2) != 0 ? 1 : -1; + data.compress = (flags & 4) != 0; + data.stretch = (flags & 8) != 0; + data.uniform = (flags & 16) != 0; + if ((flags & 32) != 0) + data.mix = (flags & 64) != 0 ? input.readFloat() : 1; + if ((flags & 128) != 0) + data.softness = input.readFloat() * scale; + skeletonData.ikConstraints.push(data); + } + n = input.readInt(true); + for (let i = 0, nn; i < n; i++) { + let name = input.readString(); + if (!name) + throw new Error("Transform constraint data name must not be null."); + let data = new TransformConstraintData(name); + data.order = input.readInt(true); + nn = input.readInt(true); + for (let ii = 0; ii < nn; ii++) + data.bones.push(skeletonData.bones[input.readInt(true)]); + data.target = skeletonData.bones[input.readInt(true)]; + let flags = input.readByte(); + data.skinRequired = (flags & 1) != 0; + data.local = (flags & 2) != 0; + data.relative = (flags & 4) != 0; + if ((flags & 8) != 0) + data.offsetRotation = input.readFloat(); + if ((flags & 16) != 0) + data.offsetX = input.readFloat() * scale; + if ((flags & 32) != 0) + data.offsetY = input.readFloat() * scale; + if ((flags & 64) != 0) + data.offsetScaleX = input.readFloat(); + if ((flags & 128) != 0) + data.offsetScaleY = input.readFloat(); + flags = input.readByte(); + if ((flags & 1) != 0) + data.offsetShearY = input.readFloat(); + if ((flags & 2) != 0) + data.mixRotate = input.readFloat(); + if ((flags & 4) != 0) + data.mixX = input.readFloat(); + if ((flags & 8) != 0) + data.mixY = input.readFloat(); + if ((flags & 16) != 0) + data.mixScaleX = input.readFloat(); + if ((flags & 32) != 0) + data.mixScaleY = input.readFloat(); + if ((flags & 64) != 0) + data.mixShearY = input.readFloat(); + skeletonData.transformConstraints.push(data); + } + n = input.readInt(true); + for (let i = 0, nn; i < n; i++) { + let name = input.readString(); + if (!name) + throw new Error("Path constraint data name must not be null."); + let data = new PathConstraintData(name); + data.order = input.readInt(true); + data.skinRequired = input.readBoolean(); + nn = input.readInt(true); + for (let ii = 0; ii < nn; ii++) + data.bones.push(skeletonData.bones[input.readInt(true)]); + data.target = skeletonData.slots[input.readInt(true)]; + const flags = input.readByte(); + data.positionMode = flags & 1; + data.spacingMode = flags >> 1 & 3; + data.rotateMode = flags >> 3 & 3; + if ((flags & 128) != 0) + data.offsetRotation = input.readFloat(); + data.position = input.readFloat(); + if (data.positionMode == PositionMode.Fixed) + data.position *= scale; + data.spacing = input.readFloat(); + if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) + data.spacing *= scale; + data.mixRotate = input.readFloat(); + data.mixX = input.readFloat(); + data.mixY = input.readFloat(); + skeletonData.pathConstraints.push(data); + } + n = input.readInt(true); + for (let i = 0, nn; i < n; i++) { + const name = input.readString(); + if (!name) + throw new Error("Physics constraint data name must not be null."); + const data = new PhysicsConstraintData(name); + data.order = input.readInt(true); + data.bone = skeletonData.bones[input.readInt(true)]; + let flags = input.readByte(); + data.skinRequired = (flags & 1) != 0; + if ((flags & 2) != 0) + data.x = input.readFloat(); + if ((flags & 4) != 0) + data.y = input.readFloat(); + if ((flags & 8) != 0) + data.rotate = input.readFloat(); + if ((flags & 16) != 0) + data.scaleX = input.readFloat(); + if ((flags & 32) != 0) + data.shearX = input.readFloat(); + data.limit = ((flags & 64) != 0 ? input.readFloat() : 5e3) * scale; + data.step = 1 / input.readUnsignedByte(); + data.inertia = input.readFloat(); + data.strength = input.readFloat(); + data.damping = input.readFloat(); + data.massInverse = (flags & 128) != 0 ? input.readFloat() : 1; + data.wind = input.readFloat(); + data.gravity = input.readFloat(); + flags = input.readByte(); + if ((flags & 1) != 0) + data.inertiaGlobal = true; + if ((flags & 2) != 0) + data.strengthGlobal = true; + if ((flags & 4) != 0) + data.dampingGlobal = true; + if ((flags & 8) != 0) + data.massGlobal = true; + if ((flags & 16) != 0) + data.windGlobal = true; + if ((flags & 32) != 0) + data.gravityGlobal = true; + if ((flags & 64) != 0) + data.mixGlobal = true; + data.mix = (flags & 128) != 0 ? input.readFloat() : 1; + skeletonData.physicsConstraints.push(data); + } + let defaultSkin = this.readSkin(input, skeletonData, true, nonessential); + if (defaultSkin) { + skeletonData.defaultSkin = defaultSkin; + skeletonData.skins.push(defaultSkin); + } + { + let i = skeletonData.skins.length; + Utils.setArraySize(skeletonData.skins, n = i + input.readInt(true)); + for (; i < n; i++) { + let skin = this.readSkin(input, skeletonData, false, nonessential); + if (!skin) + throw new Error("readSkin() should not have returned null."); + skeletonData.skins[i] = skin; + } + } + n = this.linkedMeshes.length; + for (let i = 0; i < n; i++) { + let linkedMesh = this.linkedMeshes[i]; + const skin = skeletonData.skins[linkedMesh.skinIndex]; + if (!linkedMesh.parent) + throw new Error("Linked mesh parent must not be null"); + let parent = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (!parent) + throw new Error(`Parent mesh not found: ${linkedMesh.parent}`); + linkedMesh.mesh.timelineAttachment = linkedMesh.inheritTimeline ? parent : linkedMesh.mesh; + linkedMesh.mesh.setParentMesh(parent); + if (linkedMesh.mesh.region != null) + linkedMesh.mesh.updateRegion(); + } + this.linkedMeshes.length = 0; + n = input.readInt(true); + for (let i = 0; i < n; i++) { + let eventName = input.readString(); + if (!eventName) + throw new Error("Event data name must not be null"); + let data = new EventData(eventName); + data.intValue = input.readInt(false); + data.floatValue = input.readFloat(); + data.stringValue = input.readString(); + data.audioPath = input.readString(); + if (data.audioPath) { + data.volume = input.readFloat(); + data.balance = input.readFloat(); + } + skeletonData.events.push(data); + } + n = input.readInt(true); + for (let i = 0; i < n; i++) { + let animationName = input.readString(); + if (!animationName) + throw new Error("Animatio name must not be null."); + skeletonData.animations.push(this.readAnimation(input, animationName, skeletonData)); + } + return skeletonData; + } + readSkin(input, skeletonData, defaultSkin, nonessential) { + let skin = null; + let slotCount = 0; + if (defaultSkin) { + slotCount = input.readInt(true); + if (slotCount == 0) + return null; + skin = new Skin("default"); + } else { + let skinName = input.readString(); + if (!skinName) + throw new Error("Skin name must not be null."); + skin = new Skin(skinName); + if (nonessential) + Color.rgba8888ToColor(skin.color, input.readInt32()); + skin.bones.length = input.readInt(true); + for (let i = 0, n = skin.bones.length; i < n; i++) + skin.bones[i] = skeletonData.bones[input.readInt(true)]; + for (let i = 0, n = input.readInt(true); i < n; i++) + skin.constraints.push(skeletonData.ikConstraints[input.readInt(true)]); + for (let i = 0, n = input.readInt(true); i < n; i++) + skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]); + for (let i = 0, n = input.readInt(true); i < n; i++) + skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]); + for (let i = 0, n = input.readInt(true); i < n; i++) + skin.constraints.push(skeletonData.physicsConstraints[input.readInt(true)]); + slotCount = input.readInt(true); + } + for (let i = 0; i < slotCount; i++) { + let slotIndex = input.readInt(true); + for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) { + let name = input.readStringRef(); + if (!name) + throw new Error("Attachment name must not be null"); + let attachment = this.readAttachment(input, skeletonData, skin, slotIndex, name, nonessential); + if (attachment) + skin.setAttachment(slotIndex, name, attachment); + } + } + return skin; + } + readAttachment(input, skeletonData, skin, slotIndex, attachmentName, nonessential) { + let scale = this.scale; + let flags = input.readByte(); + const name = (flags & 8) != 0 ? input.readStringRef() : attachmentName; + if (!name) + throw new Error("Attachment name must not be null"); + switch (flags & 7) { + case AttachmentType.Region: { + let path2 = (flags & 16) != 0 ? input.readStringRef() : null; + const color = (flags & 32) != 0 ? input.readInt32() : 4294967295; + const sequence = (flags & 64) != 0 ? this.readSequence(input) : null; + let rotation = (flags & 128) != 0 ? input.readFloat() : 0; + let x = input.readFloat(); + let y = input.readFloat(); + let scaleX = input.readFloat(); + let scaleY = input.readFloat(); + let width = input.readFloat(); + let height = input.readFloat(); + if (!path2) + path2 = name; + let region = this.attachmentLoader.newRegionAttachment(skin, name, path2, sequence); + if (!region) + return null; + region.path = path2; + region.x = x * scale; + region.y = y * scale; + region.scaleX = scaleX; + region.scaleY = scaleY; + region.rotation = rotation; + region.width = width * scale; + region.height = height * scale; + Color.rgba8888ToColor(region.color, color); + region.sequence = sequence; + if (sequence == null) + region.updateRegion(); + return region; + } + case AttachmentType.BoundingBox: { + let vertices = this.readVertices(input, (flags & 16) != 0); + let color = nonessential ? input.readInt32() : 0; + let box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (!box) + return null; + box.worldVerticesLength = vertices.length; + box.vertices = vertices.vertices; + box.bones = vertices.bones; + if (nonessential) + Color.rgba8888ToColor(box.color, color); + return box; + } + case AttachmentType.Mesh: { + let path2 = (flags & 16) != 0 ? input.readStringRef() : name; + const color = (flags & 32) != 0 ? input.readInt32() : 4294967295; + const sequence = (flags & 64) != 0 ? this.readSequence(input) : null; + const hullLength = input.readInt(true); + const vertices = this.readVertices(input, (flags & 128) != 0); + const uvs = this.readFloatArray(input, vertices.length, 1); + const triangles = this.readShortArray(input, (vertices.length - hullLength - 2) * 3); + let edges = []; + let width = 0, height = 0; + if (nonessential) { + edges = this.readShortArray(input, input.readInt(true)); + width = input.readFloat(); + height = input.readFloat(); + } + if (!path2) + path2 = name; + let mesh = this.attachmentLoader.newMeshAttachment(skin, name, path2, sequence); + if (!mesh) + return null; + mesh.path = path2; + Color.rgba8888ToColor(mesh.color, color); + mesh.bones = vertices.bones; + mesh.vertices = vertices.vertices; + mesh.worldVerticesLength = vertices.length; + mesh.triangles = triangles; + mesh.regionUVs = uvs; + if (sequence == null) + mesh.updateRegion(); + mesh.hullLength = hullLength << 1; + mesh.sequence = sequence; + if (nonessential) { + mesh.edges = edges; + mesh.width = width * scale; + mesh.height = height * scale; + } + return mesh; + } + case AttachmentType.LinkedMesh: { + const path2 = (flags & 16) != 0 ? input.readStringRef() : name; + if (path2 == null) + throw new Error("Path of linked mesh must not be null"); + const color = (flags & 32) != 0 ? input.readInt32() : 4294967295; + const sequence = (flags & 64) != 0 ? this.readSequence(input) : null; + const inheritTimelines = (flags & 128) != 0; + const skinIndex = input.readInt(true); + const parent = input.readStringRef(); + let width = 0, height = 0; + if (nonessential) { + width = input.readFloat(); + height = input.readFloat(); + } + let mesh = this.attachmentLoader.newMeshAttachment(skin, name, path2, sequence); + if (!mesh) + return null; + mesh.path = path2; + Color.rgba8888ToColor(mesh.color, color); + mesh.sequence = sequence; + if (nonessential) { + mesh.width = width * scale; + mesh.height = height * scale; + } + this.linkedMeshes.push(new LinkedMesh(mesh, skinIndex, slotIndex, parent, inheritTimelines)); + return mesh; + } + case AttachmentType.Path: { + const closed2 = (flags & 16) != 0; + const constantSpeed = (flags & 32) != 0; + const vertices = this.readVertices(input, (flags & 64) != 0); + const lengths = Utils.newArray(vertices.length / 6, 0); + for (let i = 0, n = lengths.length; i < n; i++) + lengths[i] = input.readFloat() * scale; + const color = nonessential ? input.readInt32() : 0; + const path2 = this.attachmentLoader.newPathAttachment(skin, name); + if (!path2) + return null; + path2.closed = closed2; + path2.constantSpeed = constantSpeed; + path2.worldVerticesLength = vertices.length; + path2.vertices = vertices.vertices; + path2.bones = vertices.bones; + path2.lengths = lengths; + if (nonessential) + Color.rgba8888ToColor(path2.color, color); + return path2; + } + case AttachmentType.Point: { + const rotation = input.readFloat(); + const x = input.readFloat(); + const y = input.readFloat(); + const color = nonessential ? input.readInt32() : 0; + const point = this.attachmentLoader.newPointAttachment(skin, name); + if (!point) + return null; + point.x = x * scale; + point.y = y * scale; + point.rotation = rotation; + if (nonessential) + Color.rgba8888ToColor(point.color, color); + return point; + } + case AttachmentType.Clipping: { + const endSlotIndex = input.readInt(true); + const vertices = this.readVertices(input, (flags & 16) != 0); + let color = nonessential ? input.readInt32() : 0; + let clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (!clip) + return null; + clip.endSlot = skeletonData.slots[endSlotIndex]; + clip.worldVerticesLength = vertices.length; + clip.vertices = vertices.vertices; + clip.bones = vertices.bones; + if (nonessential) + Color.rgba8888ToColor(clip.color, color); + return clip; + } + } + return null; + } + readSequence(input) { + let sequence = new Sequence(input.readInt(true)); + sequence.start = input.readInt(true); + sequence.digits = input.readInt(true); + sequence.setupIndex = input.readInt(true); + return sequence; + } + readVertices(input, weighted) { + const scale = this.scale; + const vertexCount = input.readInt(true); + const vertices = new Vertices(); + vertices.length = vertexCount << 1; + if (!weighted) { + vertices.vertices = this.readFloatArray(input, vertices.length, scale); + return vertices; + } + let weights = new Array(); + let bonesArray = new Array(); + for (let i = 0; i < vertexCount; i++) { + let boneCount = input.readInt(true); + bonesArray.push(boneCount); + for (let ii = 0; ii < boneCount; ii++) { + bonesArray.push(input.readInt(true)); + weights.push(input.readFloat() * scale); + weights.push(input.readFloat() * scale); + weights.push(input.readFloat()); + } + } + vertices.vertices = Utils.toFloatArray(weights); + vertices.bones = bonesArray; + return vertices; + } + readFloatArray(input, n, scale) { + let array = new Array(n); + if (scale == 1) { + for (let i = 0; i < n; i++) + array[i] = input.readFloat(); + } else { + for (let i = 0; i < n; i++) + array[i] = input.readFloat() * scale; + } + return array; + } + readShortArray(input, n) { + let array = new Array(n); + for (let i = 0; i < n; i++) + array[i] = input.readInt(true); + return array; + } + readAnimation(input, name, skeletonData) { + input.readInt(true); + let timelines = new Array(); + let scale = this.scale; + for (let i = 0, n = input.readInt(true); i < n; i++) { + let slotIndex = input.readInt(true); + for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) { + let timelineType = input.readByte(); + let frameCount = input.readInt(true); + let frameLast = frameCount - 1; + switch (timelineType) { + case SLOT_ATTACHMENT: { + let timeline = new AttachmentTimeline(frameCount, slotIndex); + for (let frame = 0; frame < frameCount; frame++) + timeline.setFrame(frame, input.readFloat(), input.readStringRef()); + timelines.push(timeline); + break; + } + case SLOT_RGBA: { + let bezierCount = input.readInt(true); + let timeline = new RGBATimeline(frameCount, bezierCount, slotIndex); + let time = input.readFloat(); + let r = input.readUnsignedByte() / 255; + let g = input.readUnsignedByte() / 255; + let b = input.readUnsignedByte() / 255; + let a = input.readUnsignedByte() / 255; + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, r, g, b, a); + if (frame == frameLast) + break; + let time2 = input.readFloat(); + let r2 = input.readUnsignedByte() / 255; + let g2 = input.readUnsignedByte() / 255; + let b2 = input.readUnsignedByte() / 255; + let a2 = input.readUnsignedByte() / 255; + switch (input.readByte()) { + case CURVE_STEPPED: + timeline.setStepped(frame); + break; + case CURVE_BEZIER: + setBezier(input, timeline, bezier++, frame, 0, time, time2, r, r2, 1); + setBezier(input, timeline, bezier++, frame, 1, time, time2, g, g2, 1); + setBezier(input, timeline, bezier++, frame, 2, time, time2, b, b2, 1); + setBezier(input, timeline, bezier++, frame, 3, time, time2, a, a2, 1); + } + time = time2; + r = r2; + g = g2; + b = b2; + a = a2; + } + timelines.push(timeline); + break; + } + case SLOT_RGB: { + let bezierCount = input.readInt(true); + let timeline = new RGBTimeline(frameCount, bezierCount, slotIndex); + let time = input.readFloat(); + let r = input.readUnsignedByte() / 255; + let g = input.readUnsignedByte() / 255; + let b = input.readUnsignedByte() / 255; + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, r, g, b); + if (frame == frameLast) + break; + let time2 = input.readFloat(); + let r2 = input.readUnsignedByte() / 255; + let g2 = input.readUnsignedByte() / 255; + let b2 = input.readUnsignedByte() / 255; + switch (input.readByte()) { + case CURVE_STEPPED: + timeline.setStepped(frame); + break; + case CURVE_BEZIER: + setBezier(input, timeline, bezier++, frame, 0, time, time2, r, r2, 1); + setBezier(input, timeline, bezier++, frame, 1, time, time2, g, g2, 1); + setBezier(input, timeline, bezier++, frame, 2, time, time2, b, b2, 1); + } + time = time2; + r = r2; + g = g2; + b = b2; + } + timelines.push(timeline); + break; + } + case SLOT_RGBA2: { + let bezierCount = input.readInt(true); + let timeline = new RGBA2Timeline(frameCount, bezierCount, slotIndex); + let time = input.readFloat(); + let r = input.readUnsignedByte() / 255; + let g = input.readUnsignedByte() / 255; + let b = input.readUnsignedByte() / 255; + let a = input.readUnsignedByte() / 255; + let r2 = input.readUnsignedByte() / 255; + let g2 = input.readUnsignedByte() / 255; + let b2 = input.readUnsignedByte() / 255; + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, r, g, b, a, r2, g2, b2); + if (frame == frameLast) + break; + let time2 = input.readFloat(); + let nr = input.readUnsignedByte() / 255; + let ng = input.readUnsignedByte() / 255; + let nb = input.readUnsignedByte() / 255; + let na = input.readUnsignedByte() / 255; + let nr2 = input.readUnsignedByte() / 255; + let ng2 = input.readUnsignedByte() / 255; + let nb2 = input.readUnsignedByte() / 255; + switch (input.readByte()) { + case CURVE_STEPPED: + timeline.setStepped(frame); + break; + case CURVE_BEZIER: + setBezier(input, timeline, bezier++, frame, 0, time, time2, r, nr, 1); + setBezier(input, timeline, bezier++, frame, 1, time, time2, g, ng, 1); + setBezier(input, timeline, bezier++, frame, 2, time, time2, b, nb, 1); + setBezier(input, timeline, bezier++, frame, 3, time, time2, a, na, 1); + setBezier(input, timeline, bezier++, frame, 4, time, time2, r2, nr2, 1); + setBezier(input, timeline, bezier++, frame, 5, time, time2, g2, ng2, 1); + setBezier(input, timeline, bezier++, frame, 6, time, time2, b2, nb2, 1); + } + time = time2; + r = nr; + g = ng; + b = nb; + a = na; + r2 = nr2; + g2 = ng2; + b2 = nb2; + } + timelines.push(timeline); + break; + } + case SLOT_RGB2: { + let bezierCount = input.readInt(true); + let timeline = new RGB2Timeline(frameCount, bezierCount, slotIndex); + let time = input.readFloat(); + let r = input.readUnsignedByte() / 255; + let g = input.readUnsignedByte() / 255; + let b = input.readUnsignedByte() / 255; + let r2 = input.readUnsignedByte() / 255; + let g2 = input.readUnsignedByte() / 255; + let b2 = input.readUnsignedByte() / 255; + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, r, g, b, r2, g2, b2); + if (frame == frameLast) + break; + let time2 = input.readFloat(); + let nr = input.readUnsignedByte() / 255; + let ng = input.readUnsignedByte() / 255; + let nb = input.readUnsignedByte() / 255; + let nr2 = input.readUnsignedByte() / 255; + let ng2 = input.readUnsignedByte() / 255; + let nb2 = input.readUnsignedByte() / 255; + switch (input.readByte()) { + case CURVE_STEPPED: + timeline.setStepped(frame); + break; + case CURVE_BEZIER: + setBezier(input, timeline, bezier++, frame, 0, time, time2, r, nr, 1); + setBezier(input, timeline, bezier++, frame, 1, time, time2, g, ng, 1); + setBezier(input, timeline, bezier++, frame, 2, time, time2, b, nb, 1); + setBezier(input, timeline, bezier++, frame, 3, time, time2, r2, nr2, 1); + setBezier(input, timeline, bezier++, frame, 4, time, time2, g2, ng2, 1); + setBezier(input, timeline, bezier++, frame, 5, time, time2, b2, nb2, 1); + } + time = time2; + r = nr; + g = ng; + b = nb; + r2 = nr2; + g2 = ng2; + b2 = nb2; + } + timelines.push(timeline); + break; + } + case SLOT_ALPHA: { + let timeline = new AlphaTimeline(frameCount, input.readInt(true), slotIndex); + let time = input.readFloat(), a = input.readUnsignedByte() / 255; + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, a); + if (frame == frameLast) + break; + let time2 = input.readFloat(); + let a2 = input.readUnsignedByte() / 255; + switch (input.readByte()) { + case CURVE_STEPPED: + timeline.setStepped(frame); + break; + case CURVE_BEZIER: + setBezier(input, timeline, bezier++, frame, 0, time, time2, a, a2, 1); + } + time = time2; + a = a2; + } + timelines.push(timeline); + } + } + } + } + for (let i = 0, n = input.readInt(true); i < n; i++) { + let boneIndex = input.readInt(true); + for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) { + let type = input.readByte(), frameCount = input.readInt(true); + if (type == BONE_INHERIT) { + let timeline = new InheritTimeline(frameCount, boneIndex); + for (let frame = 0; frame < frameCount; frame++) { + timeline.setFrame(frame, input.readFloat(), input.readByte()); + } + timelines.push(timeline); + continue; + } + let bezierCount = input.readInt(true); + switch (type) { + case BONE_ROTATE: + timelines.push(readTimeline1(input, new RotateTimeline(frameCount, bezierCount, boneIndex), 1)); + break; + case BONE_TRANSLATE: + timelines.push(readTimeline2(input, new TranslateTimeline(frameCount, bezierCount, boneIndex), scale)); + break; + case BONE_TRANSLATEX: + timelines.push(readTimeline1(input, new TranslateXTimeline(frameCount, bezierCount, boneIndex), scale)); + break; + case BONE_TRANSLATEY: + timelines.push(readTimeline1(input, new TranslateYTimeline(frameCount, bezierCount, boneIndex), scale)); + break; + case BONE_SCALE: + timelines.push(readTimeline2(input, new ScaleTimeline(frameCount, bezierCount, boneIndex), 1)); + break; + case BONE_SCALEX: + timelines.push(readTimeline1(input, new ScaleXTimeline(frameCount, bezierCount, boneIndex), 1)); + break; + case BONE_SCALEY: + timelines.push(readTimeline1(input, new ScaleYTimeline(frameCount, bezierCount, boneIndex), 1)); + break; + case BONE_SHEAR: + timelines.push(readTimeline2(input, new ShearTimeline(frameCount, bezierCount, boneIndex), 1)); + break; + case BONE_SHEARX: + timelines.push(readTimeline1(input, new ShearXTimeline(frameCount, bezierCount, boneIndex), 1)); + break; + case BONE_SHEARY: + timelines.push(readTimeline1(input, new ShearYTimeline(frameCount, bezierCount, boneIndex), 1)); + } + } + } + for (let i = 0, n = input.readInt(true); i < n; i++) { + let index = input.readInt(true), frameCount = input.readInt(true), frameLast = frameCount - 1; + let timeline = new IkConstraintTimeline(frameCount, input.readInt(true), index); + let flags = input.readByte(); + let time = input.readFloat(), mix = (flags & 1) != 0 ? (flags & 2) != 0 ? input.readFloat() : 1 : 0; + let softness = (flags & 4) != 0 ? input.readFloat() * scale : 0; + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, mix, softness, (flags & 8) != 0 ? 1 : -1, (flags & 16) != 0, (flags & 32) != 0); + if (frame == frameLast) + break; + flags = input.readByte(); + const time2 = input.readFloat(), mix2 = (flags & 1) != 0 ? (flags & 2) != 0 ? input.readFloat() : 1 : 0; + const softness2 = (flags & 4) != 0 ? input.readFloat() * scale : 0; + if ((flags & 64) != 0) { + timeline.setStepped(frame); + } else if ((flags & 128) != 0) { + setBezier(input, timeline, bezier++, frame, 0, time, time2, mix, mix2, 1); + setBezier(input, timeline, bezier++, frame, 1, time, time2, softness, softness2, scale); + } + time = time2; + mix = mix2; + softness = softness2; + } + timelines.push(timeline); + } + for (let i = 0, n = input.readInt(true); i < n; i++) { + let index = input.readInt(true), frameCount = input.readInt(true), frameLast = frameCount - 1; + let timeline = new TransformConstraintTimeline(frameCount, input.readInt(true), index); + let time = input.readFloat(), mixRotate = input.readFloat(), mixX = input.readFloat(), mixY = input.readFloat(), mixScaleX = input.readFloat(), mixScaleY = input.readFloat(), mixShearY = input.readFloat(); + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY); + if (frame == frameLast) + break; + let time2 = input.readFloat(), mixRotate2 = input.readFloat(), mixX2 = input.readFloat(), mixY2 = input.readFloat(), mixScaleX2 = input.readFloat(), mixScaleY2 = input.readFloat(), mixShearY2 = input.readFloat(); + switch (input.readByte()) { + case CURVE_STEPPED: + timeline.setStepped(frame); + break; + case CURVE_BEZIER: + setBezier(input, timeline, bezier++, frame, 0, time, time2, mixRotate, mixRotate2, 1); + setBezier(input, timeline, bezier++, frame, 1, time, time2, mixX, mixX2, 1); + setBezier(input, timeline, bezier++, frame, 2, time, time2, mixY, mixY2, 1); + setBezier(input, timeline, bezier++, frame, 3, time, time2, mixScaleX, mixScaleX2, 1); + setBezier(input, timeline, bezier++, frame, 4, time, time2, mixScaleY, mixScaleY2, 1); + setBezier(input, timeline, bezier++, frame, 5, time, time2, mixShearY, mixShearY2, 1); + } + time = time2; + mixRotate = mixRotate2; + mixX = mixX2; + mixY = mixY2; + mixScaleX = mixScaleX2; + mixScaleY = mixScaleY2; + mixShearY = mixShearY2; + } + timelines.push(timeline); + } + for (let i = 0, n = input.readInt(true); i < n; i++) { + let index = input.readInt(true); + let data = skeletonData.pathConstraints[index]; + for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) { + const type = input.readByte(), frameCount = input.readInt(true), bezierCount = input.readInt(true); + switch (type) { + case PATH_POSITION: + timelines.push(readTimeline1(input, new PathConstraintPositionTimeline(frameCount, bezierCount, index), data.positionMode == PositionMode.Fixed ? scale : 1)); + break; + case PATH_SPACING: + timelines.push(readTimeline1(input, new PathConstraintSpacingTimeline(frameCount, bezierCount, index), data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed ? scale : 1)); + break; + case PATH_MIX: + let timeline = new PathConstraintMixTimeline(frameCount, bezierCount, index); + let time = input.readFloat(), mixRotate = input.readFloat(), mixX = input.readFloat(), mixY = input.readFloat(); + for (let frame = 0, bezier = 0, frameLast = timeline.getFrameCount() - 1; ; frame++) { + timeline.setFrame(frame, time, mixRotate, mixX, mixY); + if (frame == frameLast) + break; + let time2 = input.readFloat(), mixRotate2 = input.readFloat(), mixX2 = input.readFloat(), mixY2 = input.readFloat(); + switch (input.readByte()) { + case CURVE_STEPPED: + timeline.setStepped(frame); + break; + case CURVE_BEZIER: + setBezier(input, timeline, bezier++, frame, 0, time, time2, mixRotate, mixRotate2, 1); + setBezier(input, timeline, bezier++, frame, 1, time, time2, mixX, mixX2, 1); + setBezier(input, timeline, bezier++, frame, 2, time, time2, mixY, mixY2, 1); + } + time = time2; + mixRotate = mixRotate2; + mixX = mixX2; + mixY = mixY2; + } + timelines.push(timeline); + } + } + } + for (let i = 0, n = input.readInt(true); i < n; i++) { + const index = input.readInt(true) - 1; + for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) { + const type = input.readByte(), frameCount = input.readInt(true); + if (type == PHYSICS_RESET) { + const timeline = new PhysicsConstraintResetTimeline(frameCount, index); + for (let frame = 0; frame < frameCount; frame++) + timeline.setFrame(frame, input.readFloat()); + timelines.push(timeline); + continue; + } + const bezierCount = input.readInt(true); + switch (type) { + case PHYSICS_INERTIA: + timelines.push(readTimeline1(input, new PhysicsConstraintInertiaTimeline(frameCount, bezierCount, index), 1)); + break; + case PHYSICS_STRENGTH: + timelines.push(readTimeline1(input, new PhysicsConstraintStrengthTimeline(frameCount, bezierCount, index), 1)); + break; + case PHYSICS_DAMPING: + timelines.push(readTimeline1(input, new PhysicsConstraintDampingTimeline(frameCount, bezierCount, index), 1)); + break; + case PHYSICS_MASS: + timelines.push(readTimeline1(input, new PhysicsConstraintMassTimeline(frameCount, bezierCount, index), 1)); + break; + case PHYSICS_WIND: + timelines.push(readTimeline1(input, new PhysicsConstraintWindTimeline(frameCount, bezierCount, index), 1)); + break; + case PHYSICS_GRAVITY: + timelines.push(readTimeline1(input, new PhysicsConstraintGravityTimeline(frameCount, bezierCount, index), 1)); + break; + case PHYSICS_MIX: + timelines.push(readTimeline1(input, new PhysicsConstraintMixTimeline(frameCount, bezierCount, index), 1)); + } + } + } + for (let i = 0, n = input.readInt(true); i < n; i++) { + let skin = skeletonData.skins[input.readInt(true)]; + for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) { + let slotIndex = input.readInt(true); + for (let iii = 0, nnn = input.readInt(true); iii < nnn; iii++) { + let attachmentName = input.readStringRef(); + if (!attachmentName) + throw new Error("attachmentName must not be null."); + let attachment = skin.getAttachment(slotIndex, attachmentName); + let timelineType = input.readByte(); + let frameCount = input.readInt(true); + let frameLast = frameCount - 1; + switch (timelineType) { + case ATTACHMENT_DEFORM: { + let vertexAttachment = attachment; + let weighted = vertexAttachment.bones; + let vertices = vertexAttachment.vertices; + let deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + let bezierCount = input.readInt(true); + let timeline = new DeformTimeline(frameCount, bezierCount, slotIndex, vertexAttachment); + let time = input.readFloat(); + for (let frame = 0, bezier = 0; ; frame++) { + let deform; + let end = input.readInt(true); + if (end == 0) + deform = weighted ? Utils.newFloatArray(deformLength) : vertices; + else { + deform = Utils.newFloatArray(deformLength); + let start = input.readInt(true); + end += start; + if (scale == 1) { + for (let v = start; v < end; v++) + deform[v] = input.readFloat(); + } else { + for (let v = start; v < end; v++) + deform[v] = input.readFloat() * scale; + } + if (!weighted) { + for (let v = 0, vn = deform.length; v < vn; v++) + deform[v] += vertices[v]; + } + } + timeline.setFrame(frame, time, deform); + if (frame == frameLast) + break; + let time2 = input.readFloat(); + switch (input.readByte()) { + case CURVE_STEPPED: + timeline.setStepped(frame); + break; + case CURVE_BEZIER: + setBezier(input, timeline, bezier++, frame, 0, time, time2, 0, 1, 1); + } + time = time2; + } + timelines.push(timeline); + break; + } + case ATTACHMENT_SEQUENCE: { + let timeline = new SequenceTimeline(frameCount, slotIndex, attachment); + for (let frame = 0; frame < frameCount; frame++) { + let time = input.readFloat(); + let modeAndIndex = input.readInt32(); + timeline.setFrame(frame, time, SequenceModeValues[modeAndIndex & 15], modeAndIndex >> 4, input.readFloat()); + } + timelines.push(timeline); + break; + } + } + } + } + } + let drawOrderCount = input.readInt(true); + if (drawOrderCount > 0) { + let timeline = new DrawOrderTimeline(drawOrderCount); + let slotCount = skeletonData.slots.length; + for (let i = 0; i < drawOrderCount; i++) { + let time = input.readFloat(); + let offsetCount = input.readInt(true); + let drawOrder = Utils.newArray(slotCount, 0); + for (let ii = slotCount - 1; ii >= 0; ii--) + drawOrder[ii] = -1; + let unchanged = Utils.newArray(slotCount - offsetCount, 0); + let originalIndex = 0, unchangedIndex = 0; + for (let ii = 0; ii < offsetCount; ii++) { + let slotIndex = input.readInt(true); + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + input.readInt(true)] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (let ii = slotCount - 1; ii >= 0; ii--) + if (drawOrder[ii] == -1) + drawOrder[ii] = unchanged[--unchangedIndex]; + timeline.setFrame(i, time, drawOrder); + } + timelines.push(timeline); + } + let eventCount = input.readInt(true); + if (eventCount > 0) { + let timeline = new EventTimeline(eventCount); + for (let i = 0; i < eventCount; i++) { + let time = input.readFloat(); + let eventData = skeletonData.events[input.readInt(true)]; + let event = new Event(time, eventData); + event.intValue = input.readInt(false); + event.floatValue = input.readFloat(); + event.stringValue = input.readString(); + if (event.stringValue == null) + event.stringValue = eventData.stringValue; + if (event.data.audioPath) { + event.volume = input.readFloat(); + event.balance = input.readFloat(); + } + timeline.setFrame(i, event); + } + timelines.push(timeline); + } + let duration = 0; + for (let i = 0, n = timelines.length; i < n; i++) + duration = Math.max(duration, timelines[i].getDuration()); + return new Animation(name, timelines, duration); + } + }; + var BinaryInput = class { + strings; + index; + buffer; + constructor(data, strings = new Array(), index = 0, buffer = new DataView(data.buffer)) { + this.strings = strings; + this.index = index; + this.buffer = buffer; + } + readByte() { + return this.buffer.getInt8(this.index++); + } + readUnsignedByte() { + return this.buffer.getUint8(this.index++); + } + readShort() { + let value = this.buffer.getInt16(this.index); + this.index += 2; + return value; + } + readInt32() { + let value = this.buffer.getInt32(this.index); + this.index += 4; + return value; + } + readInt(optimizePositive) { + let b = this.readByte(); + let result = b & 127; + if ((b & 128) != 0) { + b = this.readByte(); + result |= (b & 127) << 7; + if ((b & 128) != 0) { + b = this.readByte(); + result |= (b & 127) << 14; + if ((b & 128) != 0) { + b = this.readByte(); + result |= (b & 127) << 21; + if ((b & 128) != 0) { + b = this.readByte(); + result |= (b & 127) << 28; + } + } + } + } + return optimizePositive ? result : result >>> 1 ^ -(result & 1); + } + readStringRef() { + let index = this.readInt(true); + return index == 0 ? null : this.strings[index - 1]; + } + readString() { + let byteCount = this.readInt(true); + switch (byteCount) { + case 0: + return null; + case 1: + return ""; + } + byteCount--; + let chars = ""; + let charCount = 0; + for (let i = 0; i < byteCount; ) { + let b = this.readUnsignedByte(); + switch (b >> 4) { + case 12: + case 13: + chars += String.fromCharCode((b & 31) << 6 | this.readByte() & 63); + i += 2; + break; + case 14: + chars += String.fromCharCode((b & 15) << 12 | (this.readByte() & 63) << 6 | this.readByte() & 63); + i += 3; + break; + default: + chars += String.fromCharCode(b); + i++; + } + } + return chars; + } + readFloat() { + let value = this.buffer.getFloat32(this.index); + this.index += 4; + return value; + } + readBoolean() { + return this.readByte() != 0; + } + }; + var LinkedMesh = class { + parent; + skinIndex; + slotIndex; + mesh; + inheritTimeline; + constructor(mesh, skinIndex, slotIndex, parent, inheritDeform) { + this.mesh = mesh; + this.skinIndex = skinIndex; + this.slotIndex = slotIndex; + this.parent = parent; + this.inheritTimeline = inheritDeform; + } + }; + var Vertices = class { + bones; + vertices; + length; + constructor(bones = null, vertices = null, length = 0) { + this.bones = bones; + this.vertices = vertices; + this.length = length; + } + }; + var AttachmentType; + (function(AttachmentType2) { + AttachmentType2[AttachmentType2["Region"] = 0] = "Region"; + AttachmentType2[AttachmentType2["BoundingBox"] = 1] = "BoundingBox"; + AttachmentType2[AttachmentType2["Mesh"] = 2] = "Mesh"; + AttachmentType2[AttachmentType2["LinkedMesh"] = 3] = "LinkedMesh"; + AttachmentType2[AttachmentType2["Path"] = 4] = "Path"; + AttachmentType2[AttachmentType2["Point"] = 5] = "Point"; + AttachmentType2[AttachmentType2["Clipping"] = 6] = "Clipping"; + })(AttachmentType || (AttachmentType = {})); + function readTimeline1(input, timeline, scale) { + let time = input.readFloat(), value = input.readFloat() * scale; + for (let frame = 0, bezier = 0, frameLast = timeline.getFrameCount() - 1; ; frame++) { + timeline.setFrame(frame, time, value); + if (frame == frameLast) + break; + let time2 = input.readFloat(), value2 = input.readFloat() * scale; + switch (input.readByte()) { + case CURVE_STEPPED: + timeline.setStepped(frame); + break; + case CURVE_BEZIER: + setBezier(input, timeline, bezier++, frame, 0, time, time2, value, value2, scale); + } + time = time2; + value = value2; + } + return timeline; + } + function readTimeline2(input, timeline, scale) { + let time = input.readFloat(), value1 = input.readFloat() * scale, value2 = input.readFloat() * scale; + for (let frame = 0, bezier = 0, frameLast = timeline.getFrameCount() - 1; ; frame++) { + timeline.setFrame(frame, time, value1, value2); + if (frame == frameLast) + break; + let time2 = input.readFloat(), nvalue1 = input.readFloat() * scale, nvalue2 = input.readFloat() * scale; + switch (input.readByte()) { + case CURVE_STEPPED: + timeline.setStepped(frame); + break; + case CURVE_BEZIER: + setBezier(input, timeline, bezier++, frame, 0, time, time2, value1, nvalue1, scale); + setBezier(input, timeline, bezier++, frame, 1, time, time2, value2, nvalue2, scale); + } + time = time2; + value1 = nvalue1; + value2 = nvalue2; + } + return timeline; + } + function setBezier(input, timeline, bezier, frame, value, time1, time2, value1, value2, scale) { + timeline.setBezier(bezier, frame, value, time1, value1, input.readFloat(), input.readFloat() * scale, input.readFloat(), input.readFloat() * scale, time2, value2); + } + var BONE_ROTATE = 0; + var BONE_TRANSLATE = 1; + var BONE_TRANSLATEX = 2; + var BONE_TRANSLATEY = 3; + var BONE_SCALE = 4; + var BONE_SCALEX = 5; + var BONE_SCALEY = 6; + var BONE_SHEAR = 7; + var BONE_SHEARX = 8; + var BONE_SHEARY = 9; + var BONE_INHERIT = 10; + var SLOT_ATTACHMENT = 0; + var SLOT_RGBA = 1; + var SLOT_RGB = 2; + var SLOT_RGBA2 = 3; + var SLOT_RGB2 = 4; + var SLOT_ALPHA = 5; + var ATTACHMENT_DEFORM = 0; + var ATTACHMENT_SEQUENCE = 1; + var PATH_POSITION = 0; + var PATH_SPACING = 1; + var PATH_MIX = 2; + var PHYSICS_INERTIA = 0; + var PHYSICS_STRENGTH = 1; + var PHYSICS_DAMPING = 2; + var PHYSICS_MASS = 4; + var PHYSICS_WIND = 5; + var PHYSICS_GRAVITY = 6; + var PHYSICS_MIX = 7; + var PHYSICS_RESET = 8; + var CURVE_STEPPED = 1; + var CURVE_BEZIER = 2; + + // node_modules/@esotericsoftware/spine-core/dist/SkeletonBounds.js + var SkeletonBounds = class { + /** The left edge of the axis aligned bounding box. */ + minX = 0; + /** The bottom edge of the axis aligned bounding box. */ + minY = 0; + /** The right edge of the axis aligned bounding box. */ + maxX = 0; + /** The top edge of the axis aligned bounding box. */ + maxY = 0; + /** The visible bounding boxes. */ + boundingBoxes = new Array(); + /** The world vertices for the bounding box polygons. */ + polygons = new Array(); + polygonPool = new Pool(() => { + return Utils.newFloatArray(16); + }); + /** Clears any previous polygons, finds all visible bounding box attachments, and computes the world vertices for each bounding + * box's polygon. + * @param updateAabb If true, the axis aligned bounding box containing all the polygons is computed. If false, the + * SkeletonBounds AABB methods will always return true. */ + update(skeleton, updateAabb) { + if (!skeleton) + throw new Error("skeleton cannot be null."); + let boundingBoxes = this.boundingBoxes; + let polygons = this.polygons; + let polygonPool = this.polygonPool; + let slots = skeleton.slots; + let slotCount = slots.length; + boundingBoxes.length = 0; + polygonPool.freeAll(polygons); + polygons.length = 0; + for (let i = 0; i < slotCount; i++) { + let slot = slots[i]; + if (!slot.bone.active) + continue; + let attachment = slot.getAttachment(); + if (attachment instanceof BoundingBoxAttachment) { + let boundingBox = attachment; + boundingBoxes.push(boundingBox); + let polygon = polygonPool.obtain(); + if (polygon.length != boundingBox.worldVerticesLength) { + polygon = Utils.newFloatArray(boundingBox.worldVerticesLength); + } + polygons.push(polygon); + boundingBox.computeWorldVertices(slot, 0, boundingBox.worldVerticesLength, polygon, 0, 2); + } + } + if (updateAabb) { + this.aabbCompute(); + } else { + this.minX = Number.POSITIVE_INFINITY; + this.minY = Number.POSITIVE_INFINITY; + this.maxX = Number.NEGATIVE_INFINITY; + this.maxY = Number.NEGATIVE_INFINITY; + } + } + aabbCompute() { + let minX = Number.POSITIVE_INFINITY, minY = Number.POSITIVE_INFINITY, maxX = Number.NEGATIVE_INFINITY, maxY = Number.NEGATIVE_INFINITY; + let polygons = this.polygons; + for (let i = 0, n = polygons.length; i < n; i++) { + let polygon = polygons[i]; + let vertices = polygon; + for (let ii = 0, nn = polygon.length; ii < nn; ii += 2) { + let x = vertices[ii]; + let y = vertices[ii + 1]; + minX = Math.min(minX, x); + minY = Math.min(minY, y); + maxX = Math.max(maxX, x); + maxY = Math.max(maxY, y); + } + } + this.minX = minX; + this.minY = minY; + this.maxX = maxX; + this.maxY = maxY; + } + /** Returns true if the axis aligned bounding box contains the point. */ + aabbContainsPoint(x, y) { + return x >= this.minX && x <= this.maxX && y >= this.minY && y <= this.maxY; + } + /** Returns true if the axis aligned bounding box intersects the line segment. */ + aabbIntersectsSegment(x1, y1, x2, y2) { + let minX = this.minX; + let minY = this.minY; + let maxX = this.maxX; + let maxY = this.maxY; + if (x1 <= minX && x2 <= minX || y1 <= minY && y2 <= minY || x1 >= maxX && x2 >= maxX || y1 >= maxY && y2 >= maxY) + return false; + let m = (y2 - y1) / (x2 - x1); + let y = m * (minX - x1) + y1; + if (y > minY && y < maxY) + return true; + y = m * (maxX - x1) + y1; + if (y > minY && y < maxY) + return true; + let x = (minY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + x = (maxY - y1) / m + x1; + if (x > minX && x < maxX) + return true; + return false; + } + /** Returns true if the axis aligned bounding box intersects the axis aligned bounding box of the specified bounds. */ + aabbIntersectsSkeleton(bounds) { + return this.minX < bounds.maxX && this.maxX > bounds.minX && this.minY < bounds.maxY && this.maxY > bounds.minY; + } + /** Returns the first bounding box attachment that contains the point, or null. When doing many checks, it is usually more + * efficient to only call this method if {@link #aabbContainsPoint(float, float)} returns true. */ + containsPoint(x, y) { + let polygons = this.polygons; + for (let i = 0, n = polygons.length; i < n; i++) + if (this.containsPointPolygon(polygons[i], x, y)) + return this.boundingBoxes[i]; + return null; + } + /** Returns true if the polygon contains the point. */ + containsPointPolygon(polygon, x, y) { + let vertices = polygon; + let nn = polygon.length; + let prevIndex = nn - 2; + let inside = false; + for (let ii = 0; ii < nn; ii += 2) { + let vertexY = vertices[ii + 1]; + let prevY = vertices[prevIndex + 1]; + if (vertexY < y && prevY >= y || prevY < y && vertexY >= y) { + let vertexX = vertices[ii]; + if (vertexX + (y - vertexY) / (prevY - vertexY) * (vertices[prevIndex] - vertexX) < x) + inside = !inside; + } + prevIndex = ii; + } + return inside; + } + /** Returns the first bounding box attachment that contains any part of the line segment, or null. When doing many checks, it + * is usually more efficient to only call this method if {@link #aabbIntersectsSegment()} returns + * true. */ + intersectsSegment(x1, y1, x2, y2) { + let polygons = this.polygons; + for (let i = 0, n = polygons.length; i < n; i++) + if (this.intersectsSegmentPolygon(polygons[i], x1, y1, x2, y2)) + return this.boundingBoxes[i]; + return null; + } + /** Returns true if the polygon contains any part of the line segment. */ + intersectsSegmentPolygon(polygon, x1, y1, x2, y2) { + let vertices = polygon; + let nn = polygon.length; + let width12 = x1 - x2, height12 = y1 - y2; + let det1 = x1 * y2 - y1 * x2; + let x3 = vertices[nn - 2], y3 = vertices[nn - 1]; + for (let ii = 0; ii < nn; ii += 2) { + let x4 = vertices[ii], y4 = vertices[ii + 1]; + let det2 = x3 * y4 - y3 * x4; + let width34 = x3 - x4, height34 = y3 - y4; + let det3 = width12 * height34 - height12 * width34; + let x = (det1 * width34 - width12 * det2) / det3; + if ((x >= x3 && x <= x4 || x >= x4 && x <= x3) && (x >= x1 && x <= x2 || x >= x2 && x <= x1)) { + let y = (det1 * height34 - height12 * det2) / det3; + if ((y >= y3 && y <= y4 || y >= y4 && y <= y3) && (y >= y1 && y <= y2 || y >= y2 && y <= y1)) + return true; + } + x3 = x4; + y3 = y4; + } + return false; + } + /** Returns the polygon for the specified bounding box, or null. */ + getPolygon(boundingBox) { + if (!boundingBox) + throw new Error("boundingBox cannot be null."); + let index = this.boundingBoxes.indexOf(boundingBox); + return index == -1 ? null : this.polygons[index]; + } + /** The width of the axis aligned bounding box. */ + getWidth() { + return this.maxX - this.minX; + } + /** The height of the axis aligned bounding box. */ + getHeight() { + return this.maxY - this.minY; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/Triangulator.js + var Triangulator = class _Triangulator { + convexPolygons = new Array(); + convexPolygonsIndices = new Array(); + indicesArray = new Array(); + isConcaveArray = new Array(); + triangles = new Array(); + polygonPool = new Pool(() => { + return new Array(); + }); + polygonIndicesPool = new Pool(() => { + return new Array(); + }); + triangulate(verticesArray) { + let vertices = verticesArray; + let vertexCount = verticesArray.length >> 1; + let indices = this.indicesArray; + indices.length = 0; + for (let i = 0; i < vertexCount; i++) + indices[i] = i; + let isConcave = this.isConcaveArray; + isConcave.length = 0; + for (let i = 0, n = vertexCount; i < n; ++i) + isConcave[i] = _Triangulator.isConcave(i, vertexCount, vertices, indices); + let triangles = this.triangles; + triangles.length = 0; + while (vertexCount > 3) { + let previous = vertexCount - 1, i = 0, next = 1; + while (true) { + outer: + if (!isConcave[i]) { + let p1 = indices[previous] << 1, p2 = indices[i] << 1, p3 = indices[next] << 1; + let p1x = vertices[p1], p1y = vertices[p1 + 1]; + let p2x = vertices[p2], p2y = vertices[p2 + 1]; + let p3x = vertices[p3], p3y = vertices[p3 + 1]; + for (let ii = (next + 1) % vertexCount; ii != previous; ii = (ii + 1) % vertexCount) { + if (!isConcave[ii]) + continue; + let v = indices[ii] << 1; + let vx = vertices[v], vy = vertices[v + 1]; + if (_Triangulator.positiveArea(p3x, p3y, p1x, p1y, vx, vy)) { + if (_Triangulator.positiveArea(p1x, p1y, p2x, p2y, vx, vy)) { + if (_Triangulator.positiveArea(p2x, p2y, p3x, p3y, vx, vy)) + break outer; + } + } + } + break; + } + if (next == 0) { + do { + if (!isConcave[i]) + break; + i--; + } while (i > 0); + break; + } + previous = i; + i = next; + next = (next + 1) % vertexCount; + } + triangles.push(indices[(vertexCount + i - 1) % vertexCount]); + triangles.push(indices[i]); + triangles.push(indices[(i + 1) % vertexCount]); + indices.splice(i, 1); + isConcave.splice(i, 1); + vertexCount--; + let previousIndex = (vertexCount + i - 1) % vertexCount; + let nextIndex = i == vertexCount ? 0 : i; + isConcave[previousIndex] = _Triangulator.isConcave(previousIndex, vertexCount, vertices, indices); + isConcave[nextIndex] = _Triangulator.isConcave(nextIndex, vertexCount, vertices, indices); + } + if (vertexCount == 3) { + triangles.push(indices[2]); + triangles.push(indices[0]); + triangles.push(indices[1]); + } + return triangles; + } + decompose(verticesArray, triangles) { + let vertices = verticesArray; + let convexPolygons = this.convexPolygons; + this.polygonPool.freeAll(convexPolygons); + convexPolygons.length = 0; + let convexPolygonsIndices = this.convexPolygonsIndices; + this.polygonIndicesPool.freeAll(convexPolygonsIndices); + convexPolygonsIndices.length = 0; + let polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + let polygon = this.polygonPool.obtain(); + polygon.length = 0; + let fanBaseIndex = -1, lastWinding = 0; + for (let i = 0, n = triangles.length; i < n; i += 3) { + let t1 = triangles[i] << 1, t2 = triangles[i + 1] << 1, t3 = triangles[i + 2] << 1; + let x1 = vertices[t1], y1 = vertices[t1 + 1]; + let x2 = vertices[t2], y2 = vertices[t2 + 1]; + let x3 = vertices[t3], y3 = vertices[t3 + 1]; + let merged = false; + if (fanBaseIndex == t1) { + let o = polygon.length - 4; + let winding1 = _Triangulator.winding(polygon[o], polygon[o + 1], polygon[o + 2], polygon[o + 3], x3, y3); + let winding2 = _Triangulator.winding(x3, y3, polygon[0], polygon[1], polygon[2], polygon[3]); + if (winding1 == lastWinding && winding2 == lastWinding) { + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(t3); + merged = true; + } + } + if (!merged) { + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } else { + this.polygonPool.free(polygon); + this.polygonIndicesPool.free(polygonIndices); + } + polygon = this.polygonPool.obtain(); + polygon.length = 0; + polygon.push(x1); + polygon.push(y1); + polygon.push(x2); + polygon.push(y2); + polygon.push(x3); + polygon.push(y3); + polygonIndices = this.polygonIndicesPool.obtain(); + polygonIndices.length = 0; + polygonIndices.push(t1); + polygonIndices.push(t2); + polygonIndices.push(t3); + lastWinding = _Triangulator.winding(x1, y1, x2, y2, x3, y3); + fanBaseIndex = t1; + } + } + if (polygon.length > 0) { + convexPolygons.push(polygon); + convexPolygonsIndices.push(polygonIndices); + } + for (let i = 0, n = convexPolygons.length; i < n; i++) { + polygonIndices = convexPolygonsIndices[i]; + if (polygonIndices.length == 0) + continue; + let firstIndex = polygonIndices[0]; + let lastIndex = polygonIndices[polygonIndices.length - 1]; + polygon = convexPolygons[i]; + let o = polygon.length - 4; + let prevPrevX = polygon[o], prevPrevY = polygon[o + 1]; + let prevX = polygon[o + 2], prevY = polygon[o + 3]; + let firstX = polygon[0], firstY = polygon[1]; + let secondX = polygon[2], secondY = polygon[3]; + let winding = _Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, firstX, firstY); + for (let ii = 0; ii < n; ii++) { + if (ii == i) + continue; + let otherIndices = convexPolygonsIndices[ii]; + if (otherIndices.length != 3) + continue; + let otherFirstIndex = otherIndices[0]; + let otherSecondIndex = otherIndices[1]; + let otherLastIndex = otherIndices[2]; + let otherPoly = convexPolygons[ii]; + let x3 = otherPoly[otherPoly.length - 2], y3 = otherPoly[otherPoly.length - 1]; + if (otherFirstIndex != firstIndex || otherSecondIndex != lastIndex) + continue; + let winding1 = _Triangulator.winding(prevPrevX, prevPrevY, prevX, prevY, x3, y3); + let winding2 = _Triangulator.winding(x3, y3, firstX, firstY, secondX, secondY); + if (winding1 == winding && winding2 == winding) { + otherPoly.length = 0; + otherIndices.length = 0; + polygon.push(x3); + polygon.push(y3); + polygonIndices.push(otherLastIndex); + prevPrevX = prevX; + prevPrevY = prevY; + prevX = x3; + prevY = y3; + ii = 0; + } + } + } + for (let i = convexPolygons.length - 1; i >= 0; i--) { + polygon = convexPolygons[i]; + if (polygon.length == 0) { + convexPolygons.splice(i, 1); + this.polygonPool.free(polygon); + polygonIndices = convexPolygonsIndices[i]; + convexPolygonsIndices.splice(i, 1); + this.polygonIndicesPool.free(polygonIndices); + } + } + return convexPolygons; + } + static isConcave(index, vertexCount, vertices, indices) { + let previous = indices[(vertexCount + index - 1) % vertexCount] << 1; + let current = indices[index] << 1; + let next = indices[(index + 1) % vertexCount] << 1; + return !this.positiveArea(vertices[previous], vertices[previous + 1], vertices[current], vertices[current + 1], vertices[next], vertices[next + 1]); + } + static positiveArea(p1x, p1y, p2x, p2y, p3x, p3y) { + return p1x * (p3y - p2y) + p2x * (p1y - p3y) + p3x * (p2y - p1y) >= 0; + } + static winding(p1x, p1y, p2x, p2y, p3x, p3y) { + let px = p2x - p1x, py = p2y - p1y; + return p3x * py - p3y * px + px * p1y - p1x * py >= 0 ? 1 : -1; + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/SkeletonClipping.js + var SkeletonClipping = class _SkeletonClipping { + triangulator = new Triangulator(); + clippingPolygon = new Array(); + clipOutput = new Array(); + clippedVertices = new Array(); + clippedTriangles = new Array(); + scratch = new Array(); + clipAttachment = null; + clippingPolygons = null; + clipStart(slot, clip) { + if (this.clipAttachment) + return 0; + this.clipAttachment = clip; + let n = clip.worldVerticesLength; + let vertices = Utils.setArraySize(this.clippingPolygon, n); + clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); + let clippingPolygon = this.clippingPolygon; + _SkeletonClipping.makeClockwise(clippingPolygon); + let clippingPolygons = this.clippingPolygons = this.triangulator.decompose(clippingPolygon, this.triangulator.triangulate(clippingPolygon)); + for (let i = 0, n2 = clippingPolygons.length; i < n2; i++) { + let polygon = clippingPolygons[i]; + _SkeletonClipping.makeClockwise(polygon); + polygon.push(polygon[0]); + polygon.push(polygon[1]); + } + return clippingPolygons.length; + } + clipEndWithSlot(slot) { + if (this.clipAttachment && this.clipAttachment.endSlot == slot.data) + this.clipEnd(); + } + clipEnd() { + if (!this.clipAttachment) + return; + this.clipAttachment = null; + this.clippingPolygons = null; + this.clippedVertices.length = 0; + this.clippedTriangles.length = 0; + this.clippingPolygon.length = 0; + } + isClipping() { + return this.clipAttachment != null; + } + clipTriangles(vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + if (uvs && light && dark && typeof twoColor === "boolean") + this.clipTrianglesRender(vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor); + else + this.clipTrianglesNoRender(vertices, verticesLength, triangles, trianglesLength); + } + clipTrianglesNoRender(vertices, verticesLength, triangles, trianglesLength) { + let clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + let clippedTriangles = this.clippedTriangles; + let polygons = this.clippingPolygons; + let polygonsCount = polygons.length; + let vertexSize = 2; + let index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: + for (let i = 0; i < trianglesLength; i += 3) { + let vertexOffset = triangles[i] << 1; + let x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + let x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + let x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + for (let p = 0; p < polygonsCount; p++) { + let s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + let clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + let clipOutputCount = clipOutputLength >> 1; + let clipOutputItems = this.clipOutput; + let clippedVerticesItems = Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (let ii = 0; ii < clipOutputLength; ii += 2) { + let x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + s += 2; + } + s = clippedTriangles.length; + let clippedTrianglesItems = Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (let ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = index + ii; + clippedTrianglesItems[s + 2] = index + ii + 1; + s += 3; + } + index += clipOutputCount + 1; + } else { + let clippedVerticesItems = Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = x2; + clippedVerticesItems[s + 3] = y2; + clippedVerticesItems[s + 4] = x3; + clippedVerticesItems[s + 5] = y3; + s = clippedTriangles.length; + let clippedTrianglesItems = Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = index + 1; + clippedTrianglesItems[s + 2] = index + 2; + index += 3; + continue outer; + } + } + } + } + clipTrianglesRender(vertices, verticesLength, triangles, trianglesLength, uvs, light, dark, twoColor) { + let clipOutput = this.clipOutput, clippedVertices = this.clippedVertices; + let clippedTriangles = this.clippedTriangles; + let polygons = this.clippingPolygons; + let polygonsCount = polygons.length; + let vertexSize = twoColor ? 12 : 8; + let index = 0; + clippedVertices.length = 0; + clippedTriangles.length = 0; + outer: + for (let i = 0; i < trianglesLength; i += 3) { + let vertexOffset = triangles[i] << 1; + let x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; + let u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 1] << 1; + let x2 = vertices[vertexOffset], y2 = vertices[vertexOffset + 1]; + let u2 = uvs[vertexOffset], v2 = uvs[vertexOffset + 1]; + vertexOffset = triangles[i + 2] << 1; + let x3 = vertices[vertexOffset], y3 = vertices[vertexOffset + 1]; + let u3 = uvs[vertexOffset], v3 = uvs[vertexOffset + 1]; + for (let p = 0; p < polygonsCount; p++) { + let s = clippedVertices.length; + if (this.clip(x1, y1, x2, y2, x3, y3, polygons[p], clipOutput)) { + let clipOutputLength = clipOutput.length; + if (clipOutputLength == 0) + continue; + let d0 = y2 - y3, d1 = x3 - x2, d2 = x1 - x3, d4 = y3 - y1; + let d = 1 / (d0 * d2 + d1 * (y1 - y3)); + let clipOutputCount = clipOutputLength >> 1; + let clipOutputItems = this.clipOutput; + let clippedVerticesItems = Utils.setArraySize(clippedVertices, s + clipOutputCount * vertexSize); + for (let ii = 0; ii < clipOutputLength; ii += 2) { + let x = clipOutputItems[ii], y = clipOutputItems[ii + 1]; + clippedVerticesItems[s] = x; + clippedVerticesItems[s + 1] = y; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + let c0 = x - x3, c1 = y - y3; + let a = (d0 * c0 + d1 * c1) * d; + let b = (d4 * c0 + d2 * c1) * d; + let c = 1 - a - b; + clippedVerticesItems[s + 6] = u1 * a + u2 * b + u3 * c; + clippedVerticesItems[s + 7] = v1 * a + v2 * b + v3 * c; + if (twoColor) { + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + } + s += vertexSize; + } + s = clippedTriangles.length; + let clippedTrianglesItems = Utils.setArraySize(clippedTriangles, s + 3 * (clipOutputCount - 2)); + clipOutputCount--; + for (let ii = 1; ii < clipOutputCount; ii++) { + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = index + ii; + clippedTrianglesItems[s + 2] = index + ii + 1; + s += 3; + } + index += clipOutputCount + 1; + } else { + let clippedVerticesItems = Utils.setArraySize(clippedVertices, s + 3 * vertexSize); + clippedVerticesItems[s] = x1; + clippedVerticesItems[s + 1] = y1; + clippedVerticesItems[s + 2] = light.r; + clippedVerticesItems[s + 3] = light.g; + clippedVerticesItems[s + 4] = light.b; + clippedVerticesItems[s + 5] = light.a; + if (!twoColor) { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = x2; + clippedVerticesItems[s + 9] = y2; + clippedVerticesItems[s + 10] = light.r; + clippedVerticesItems[s + 11] = light.g; + clippedVerticesItems[s + 12] = light.b; + clippedVerticesItems[s + 13] = light.a; + clippedVerticesItems[s + 14] = u2; + clippedVerticesItems[s + 15] = v2; + clippedVerticesItems[s + 16] = x3; + clippedVerticesItems[s + 17] = y3; + clippedVerticesItems[s + 18] = light.r; + clippedVerticesItems[s + 19] = light.g; + clippedVerticesItems[s + 20] = light.b; + clippedVerticesItems[s + 21] = light.a; + clippedVerticesItems[s + 22] = u3; + clippedVerticesItems[s + 23] = v3; + } else { + clippedVerticesItems[s + 6] = u1; + clippedVerticesItems[s + 7] = v1; + clippedVerticesItems[s + 8] = dark.r; + clippedVerticesItems[s + 9] = dark.g; + clippedVerticesItems[s + 10] = dark.b; + clippedVerticesItems[s + 11] = dark.a; + clippedVerticesItems[s + 12] = x2; + clippedVerticesItems[s + 13] = y2; + clippedVerticesItems[s + 14] = light.r; + clippedVerticesItems[s + 15] = light.g; + clippedVerticesItems[s + 16] = light.b; + clippedVerticesItems[s + 17] = light.a; + clippedVerticesItems[s + 18] = u2; + clippedVerticesItems[s + 19] = v2; + clippedVerticesItems[s + 20] = dark.r; + clippedVerticesItems[s + 21] = dark.g; + clippedVerticesItems[s + 22] = dark.b; + clippedVerticesItems[s + 23] = dark.a; + clippedVerticesItems[s + 24] = x3; + clippedVerticesItems[s + 25] = y3; + clippedVerticesItems[s + 26] = light.r; + clippedVerticesItems[s + 27] = light.g; + clippedVerticesItems[s + 28] = light.b; + clippedVerticesItems[s + 29] = light.a; + clippedVerticesItems[s + 30] = u3; + clippedVerticesItems[s + 31] = v3; + clippedVerticesItems[s + 32] = dark.r; + clippedVerticesItems[s + 33] = dark.g; + clippedVerticesItems[s + 34] = dark.b; + clippedVerticesItems[s + 35] = dark.a; + } + s = clippedTriangles.length; + let clippedTrianglesItems = Utils.setArraySize(clippedTriangles, s + 3); + clippedTrianglesItems[s] = index; + clippedTrianglesItems[s + 1] = index + 1; + clippedTrianglesItems[s + 2] = index + 2; + index += 3; + continue outer; + } + } + } + } + /** Clips the input triangle against the convex, clockwise clipping area. If the triangle lies entirely within the clipping + * area, false is returned. The clipping area must duplicate the first vertex at the end of the vertices list. */ + clip(x1, y1, x2, y2, x3, y3, clippingArea, output) { + let originalOutput = output; + let clipped = false; + let input; + if (clippingArea.length % 4 >= 2) { + input = output; + output = this.scratch; + } else + input = this.scratch; + input.length = 0; + input.push(x1); + input.push(y1); + input.push(x2); + input.push(y2); + input.push(x3); + input.push(y3); + input.push(x1); + input.push(y1); + output.length = 0; + let clippingVertices = clippingArea; + let clippingVerticesLast = clippingArea.length - 4; + for (let i = 0; ; i += 2) { + let edgeX = clippingVertices[i], edgeY = clippingVertices[i + 1]; + let edgeX2 = clippingVertices[i + 2], edgeY2 = clippingVertices[i + 3]; + let deltaX = edgeX - edgeX2, deltaY = edgeY - edgeY2; + let inputVertices = input; + let inputVerticesLength = input.length - 2, outputStart = output.length; + for (let ii = 0; ii < inputVerticesLength; ii += 2) { + let inputX = inputVertices[ii], inputY = inputVertices[ii + 1]; + let inputX2 = inputVertices[ii + 2], inputY2 = inputVertices[ii + 3]; + let side2 = deltaX * (inputY2 - edgeY2) - deltaY * (inputX2 - edgeX2) > 0; + if (deltaX * (inputY - edgeY2) - deltaY * (inputX - edgeX2) > 0) { + if (side2) { + output.push(inputX2); + output.push(inputY2); + continue; + } + let c0 = inputY2 - inputY, c2 = inputX2 - inputX; + let s = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); + if (Math.abs(s) > 1e-6) { + let ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / s; + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } else { + output.push(edgeX); + output.push(edgeY); + } + } else if (side2) { + let c0 = inputY2 - inputY, c2 = inputX2 - inputX; + let s = c0 * (edgeX2 - edgeX) - c2 * (edgeY2 - edgeY); + if (Math.abs(s) > 1e-6) { + let ua = (c2 * (edgeY - inputY) - c0 * (edgeX - inputX)) / s; + output.push(edgeX + (edgeX2 - edgeX) * ua); + output.push(edgeY + (edgeY2 - edgeY) * ua); + } else { + output.push(edgeX); + output.push(edgeY); + } + output.push(inputX2); + output.push(inputY2); + } + clipped = true; + } + if (outputStart == output.length) { + originalOutput.length = 0; + return true; + } + output.push(output[0]); + output.push(output[1]); + if (i == clippingVerticesLast) + break; + let temp = output; + output = input; + output.length = 0; + input = temp; + } + if (originalOutput != output) { + originalOutput.length = 0; + for (let i = 0, n = output.length - 2; i < n; i++) + originalOutput[i] = output[i]; + } else + originalOutput.length = originalOutput.length - 2; + return clipped; + } + static makeClockwise(polygon) { + let vertices = polygon; + let verticeslength = polygon.length; + let area = vertices[verticeslength - 2] * vertices[1] - vertices[0] * vertices[verticeslength - 1], p1x = 0, p1y = 0, p2x = 0, p2y = 0; + for (let i = 0, n = verticeslength - 3; i < n; i += 2) { + p1x = vertices[i]; + p1y = vertices[i + 1]; + p2x = vertices[i + 2]; + p2y = vertices[i + 3]; + area += p1x * p2y - p2x * p1y; + } + if (area < 0) + return; + for (let i = 0, lastX = verticeslength - 2, n = verticeslength >> 1; i < n; i += 2) { + let x = vertices[i], y = vertices[i + 1]; + let other = lastX - i; + vertices[i] = vertices[other]; + vertices[i + 1] = vertices[other + 1]; + vertices[other] = x; + vertices[other + 1] = y; + } + } + }; + + // node_modules/@esotericsoftware/spine-core/dist/SkeletonJson.js + var SkeletonJson = class { + attachmentLoader; + /** Scales bone positions, image sizes, and translations as they are loaded. This allows different size images to be used at + * runtime than were used in Spine. + * + * See [Scaling](http://esotericsoftware.com/spine-loading-skeleton-data#Scaling) in the Spine Runtimes Guide. */ + scale = 1; + linkedMeshes = new Array(); + constructor(attachmentLoader) { + this.attachmentLoader = attachmentLoader; + } + readSkeletonData(json) { + let scale = this.scale; + let skeletonData = new SkeletonData(); + let root = typeof json === "string" ? JSON.parse(json) : json; + let skeletonMap = root.skeleton; + if (skeletonMap) { + skeletonData.hash = skeletonMap.hash; + skeletonData.version = skeletonMap.spine; + skeletonData.x = skeletonMap.x; + skeletonData.y = skeletonMap.y; + skeletonData.width = skeletonMap.width; + skeletonData.height = skeletonMap.height; + skeletonData.referenceScale = getValue(skeletonMap, "referenceScale", 100) * scale; + skeletonData.fps = skeletonMap.fps; + skeletonData.imagesPath = skeletonMap.images ?? null; + skeletonData.audioPath = skeletonMap.audio ?? null; + } + if (root.bones) { + for (let i = 0; i < root.bones.length; i++) { + let boneMap = root.bones[i]; + let parent = null; + let parentName = getValue(boneMap, "parent", null); + if (parentName) + parent = skeletonData.findBone(parentName); + let data = new BoneData(skeletonData.bones.length, boneMap.name, parent); + data.length = getValue(boneMap, "length", 0) * scale; + data.x = getValue(boneMap, "x", 0) * scale; + data.y = getValue(boneMap, "y", 0) * scale; + data.rotation = getValue(boneMap, "rotation", 0); + data.scaleX = getValue(boneMap, "scaleX", 1); + data.scaleY = getValue(boneMap, "scaleY", 1); + data.shearX = getValue(boneMap, "shearX", 0); + data.shearY = getValue(boneMap, "shearY", 0); + data.inherit = Utils.enumValue(Inherit, getValue(boneMap, "inherit", "Normal")); + data.skinRequired = getValue(boneMap, "skin", false); + let color = getValue(boneMap, "color", null); + if (color) + data.color.setFromString(color); + skeletonData.bones.push(data); + } + } + if (root.slots) { + for (let i = 0; i < root.slots.length; i++) { + let slotMap = root.slots[i]; + let slotName = slotMap.name; + let boneData = skeletonData.findBone(slotMap.bone); + if (!boneData) + throw new Error(`Couldn't find bone ${slotMap.bone} for slot ${slotName}`); + let data = new SlotData(skeletonData.slots.length, slotName, boneData); + let color = getValue(slotMap, "color", null); + if (color) + data.color.setFromString(color); + let dark = getValue(slotMap, "dark", null); + if (dark) + data.darkColor = Color.fromString(dark); + data.attachmentName = getValue(slotMap, "attachment", null); + data.blendMode = Utils.enumValue(BlendMode, getValue(slotMap, "blend", "normal")); + data.visible = getValue(slotMap, "visible", true); + skeletonData.slots.push(data); + } + } + if (root.ik) { + for (let i = 0; i < root.ik.length; i++) { + let constraintMap = root.ik[i]; + let data = new IkConstraintData(constraintMap.name); + data.order = getValue(constraintMap, "order", 0); + data.skinRequired = getValue(constraintMap, "skin", false); + for (let ii = 0; ii < constraintMap.bones.length; ii++) { + let bone = skeletonData.findBone(constraintMap.bones[ii]); + if (!bone) + throw new Error(`Couldn't find bone ${constraintMap.bones[ii]} for IK constraint ${constraintMap.name}.`); + data.bones.push(bone); + } + let target = skeletonData.findBone(constraintMap.target); + ; + if (!target) + throw new Error(`Couldn't find target bone ${constraintMap.target} for IK constraint ${constraintMap.name}.`); + data.target = target; + data.mix = getValue(constraintMap, "mix", 1); + data.softness = getValue(constraintMap, "softness", 0) * scale; + data.bendDirection = getValue(constraintMap, "bendPositive", true) ? 1 : -1; + data.compress = getValue(constraintMap, "compress", false); + data.stretch = getValue(constraintMap, "stretch", false); + data.uniform = getValue(constraintMap, "uniform", false); + skeletonData.ikConstraints.push(data); + } + } + if (root.transform) { + for (let i = 0; i < root.transform.length; i++) { + let constraintMap = root.transform[i]; + let data = new TransformConstraintData(constraintMap.name); + data.order = getValue(constraintMap, "order", 0); + data.skinRequired = getValue(constraintMap, "skin", false); + for (let ii = 0; ii < constraintMap.bones.length; ii++) { + let boneName = constraintMap.bones[ii]; + let bone = skeletonData.findBone(boneName); + if (!bone) + throw new Error(`Couldn't find bone ${boneName} for transform constraint ${constraintMap.name}.`); + data.bones.push(bone); + } + let targetName = constraintMap.target; + let target = skeletonData.findBone(targetName); + if (!target) + throw new Error(`Couldn't find target bone ${targetName} for transform constraint ${constraintMap.name}.`); + data.target = target; + data.local = getValue(constraintMap, "local", false); + data.relative = getValue(constraintMap, "relative", false); + data.offsetRotation = getValue(constraintMap, "rotation", 0); + data.offsetX = getValue(constraintMap, "x", 0) * scale; + data.offsetY = getValue(constraintMap, "y", 0) * scale; + data.offsetScaleX = getValue(constraintMap, "scaleX", 0); + data.offsetScaleY = getValue(constraintMap, "scaleY", 0); + data.offsetShearY = getValue(constraintMap, "shearY", 0); + data.mixRotate = getValue(constraintMap, "mixRotate", 1); + data.mixX = getValue(constraintMap, "mixX", 1); + data.mixY = getValue(constraintMap, "mixY", data.mixX); + data.mixScaleX = getValue(constraintMap, "mixScaleX", 1); + data.mixScaleY = getValue(constraintMap, "mixScaleY", data.mixScaleX); + data.mixShearY = getValue(constraintMap, "mixShearY", 1); + skeletonData.transformConstraints.push(data); + } + } + if (root.path) { + for (let i = 0; i < root.path.length; i++) { + let constraintMap = root.path[i]; + let data = new PathConstraintData(constraintMap.name); + data.order = getValue(constraintMap, "order", 0); + data.skinRequired = getValue(constraintMap, "skin", false); + for (let ii = 0; ii < constraintMap.bones.length; ii++) { + let boneName = constraintMap.bones[ii]; + let bone = skeletonData.findBone(boneName); + if (!bone) + throw new Error(`Couldn't find bone ${boneName} for path constraint ${constraintMap.name}.`); + data.bones.push(bone); + } + let targetName = constraintMap.target; + let target = skeletonData.findSlot(targetName); + if (!target) + throw new Error(`Couldn't find target slot ${targetName} for path constraint ${constraintMap.name}.`); + data.target = target; + data.positionMode = Utils.enumValue(PositionMode, getValue(constraintMap, "positionMode", "Percent")); + data.spacingMode = Utils.enumValue(SpacingMode, getValue(constraintMap, "spacingMode", "Length")); + data.rotateMode = Utils.enumValue(RotateMode, getValue(constraintMap, "rotateMode", "Tangent")); + data.offsetRotation = getValue(constraintMap, "rotation", 0); + data.position = getValue(constraintMap, "position", 0); + if (data.positionMode == PositionMode.Fixed) + data.position *= scale; + data.spacing = getValue(constraintMap, "spacing", 0); + if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) + data.spacing *= scale; + data.mixRotate = getValue(constraintMap, "mixRotate", 1); + data.mixX = getValue(constraintMap, "mixX", 1); + data.mixY = getValue(constraintMap, "mixY", data.mixX); + skeletonData.pathConstraints.push(data); + } + } + if (root.physics) { + for (let i = 0; i < root.physics.length; i++) { + const constraintMap = root.physics[i]; + const data = new PhysicsConstraintData(constraintMap.name); + data.order = getValue(constraintMap, "order", 0); + data.skinRequired = getValue(constraintMap, "skin", false); + const boneName = constraintMap.bone; + const bone = skeletonData.findBone(boneName); + if (bone == null) + throw new Error("Physics bone not found: " + boneName); + data.bone = bone; + data.x = getValue(constraintMap, "x", 0); + data.y = getValue(constraintMap, "y", 0); + data.rotate = getValue(constraintMap, "rotate", 0); + data.scaleX = getValue(constraintMap, "scaleX", 0); + data.shearX = getValue(constraintMap, "shearX", 0); + data.limit = getValue(constraintMap, "limit", 5e3) * scale; + data.step = 1 / getValue(constraintMap, "fps", 60); + data.inertia = getValue(constraintMap, "inertia", 1); + data.strength = getValue(constraintMap, "strength", 100); + data.damping = getValue(constraintMap, "damping", 1); + data.massInverse = 1 / getValue(constraintMap, "mass", 1); + data.wind = getValue(constraintMap, "wind", 0); + data.gravity = getValue(constraintMap, "gravity", 0); + data.mix = getValue(constraintMap, "mix", 1); + data.inertiaGlobal = getValue(constraintMap, "inertiaGlobal", false); + data.strengthGlobal = getValue(constraintMap, "strengthGlobal", false); + data.dampingGlobal = getValue(constraintMap, "dampingGlobal", false); + data.massGlobal = getValue(constraintMap, "massGlobal", false); + data.windGlobal = getValue(constraintMap, "windGlobal", false); + data.gravityGlobal = getValue(constraintMap, "gravityGlobal", false); + data.mixGlobal = getValue(constraintMap, "mixGlobal", false); + skeletonData.physicsConstraints.push(data); + } + } + if (root.skins) { + for (let i = 0; i < root.skins.length; i++) { + let skinMap = root.skins[i]; + let skin = new Skin(skinMap.name); + if (skinMap.bones) { + for (let ii = 0; ii < skinMap.bones.length; ii++) { + let boneName = skinMap.bones[ii]; + let bone = skeletonData.findBone(boneName); + if (!bone) + throw new Error(`Couldn't find bone ${boneName} for skin ${skinMap.name}.`); + skin.bones.push(bone); + } + } + if (skinMap.ik) { + for (let ii = 0; ii < skinMap.ik.length; ii++) { + let constraintName = skinMap.ik[ii]; + let constraint = skeletonData.findIkConstraint(constraintName); + if (!constraint) + throw new Error(`Couldn't find IK constraint ${constraintName} for skin ${skinMap.name}.`); + skin.constraints.push(constraint); + } + } + if (skinMap.transform) { + for (let ii = 0; ii < skinMap.transform.length; ii++) { + let constraintName = skinMap.transform[ii]; + let constraint = skeletonData.findTransformConstraint(constraintName); + if (!constraint) + throw new Error(`Couldn't find transform constraint ${constraintName} for skin ${skinMap.name}.`); + skin.constraints.push(constraint); + } + } + if (skinMap.path) { + for (let ii = 0; ii < skinMap.path.length; ii++) { + let constraintName = skinMap.path[ii]; + let constraint = skeletonData.findPathConstraint(constraintName); + if (!constraint) + throw new Error(`Couldn't find path constraint ${constraintName} for skin ${skinMap.name}.`); + skin.constraints.push(constraint); + } + } + if (skinMap.physics) { + for (let ii = 0; ii < skinMap.physics.length; ii++) { + let constraintName = skinMap.physics[ii]; + let constraint = skeletonData.findPhysicsConstraint(constraintName); + if (!constraint) + throw new Error(`Couldn't find physics constraint ${constraintName} for skin ${skinMap.name}.`); + skin.constraints.push(constraint); + } + } + for (let slotName in skinMap.attachments) { + let slot = skeletonData.findSlot(slotName); + if (!slot) + throw new Error(`Couldn't find slot ${slotName} for skin ${skinMap.name}.`); + let slotMap = skinMap.attachments[slotName]; + for (let entryName in slotMap) { + let attachment = this.readAttachment(slotMap[entryName], skin, slot.index, entryName, skeletonData); + if (attachment) + skin.setAttachment(slot.index, entryName, attachment); + } + } + skeletonData.skins.push(skin); + if (skin.name == "default") + skeletonData.defaultSkin = skin; + } + } + for (let i = 0, n = this.linkedMeshes.length; i < n; i++) { + let linkedMesh = this.linkedMeshes[i]; + let skin = !linkedMesh.skin ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin); + if (!skin) + throw new Error(`Skin not found: ${linkedMesh.skin}`); + let parent = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent); + if (!parent) + throw new Error(`Parent mesh not found: ${linkedMesh.parent}`); + linkedMesh.mesh.timelineAttachment = linkedMesh.inheritTimeline ? parent : linkedMesh.mesh; + linkedMesh.mesh.setParentMesh(parent); + if (linkedMesh.mesh.region != null) + linkedMesh.mesh.updateRegion(); + } + this.linkedMeshes.length = 0; + if (root.events) { + for (let eventName in root.events) { + let eventMap = root.events[eventName]; + let data = new EventData(eventName); + data.intValue = getValue(eventMap, "int", 0); + data.floatValue = getValue(eventMap, "float", 0); + data.stringValue = getValue(eventMap, "string", ""); + data.audioPath = getValue(eventMap, "audio", null); + if (data.audioPath) { + data.volume = getValue(eventMap, "volume", 1); + data.balance = getValue(eventMap, "balance", 0); + } + skeletonData.events.push(data); + } + } + if (root.animations) { + for (let animationName in root.animations) { + let animationMap = root.animations[animationName]; + this.readAnimation(animationMap, animationName, skeletonData); + } + } + return skeletonData; + } + readAttachment(map, skin, slotIndex, name, skeletonData) { + let scale = this.scale; + name = getValue(map, "name", name); + switch (getValue(map, "type", "region")) { + case "region": { + let path2 = getValue(map, "path", name); + let sequence = this.readSequence(getValue(map, "sequence", null)); + let region = this.attachmentLoader.newRegionAttachment(skin, name, path2, sequence); + if (!region) + return null; + region.path = path2; + region.x = getValue(map, "x", 0) * scale; + region.y = getValue(map, "y", 0) * scale; + region.scaleX = getValue(map, "scaleX", 1); + region.scaleY = getValue(map, "scaleY", 1); + region.rotation = getValue(map, "rotation", 0); + region.width = map.width * scale; + region.height = map.height * scale; + region.sequence = sequence; + let color = getValue(map, "color", null); + if (color) + region.color.setFromString(color); + if (region.region != null) + region.updateRegion(); + return region; + } + case "boundingbox": { + let box = this.attachmentLoader.newBoundingBoxAttachment(skin, name); + if (!box) + return null; + this.readVertices(map, box, map.vertexCount << 1); + let color = getValue(map, "color", null); + if (color) + box.color.setFromString(color); + return box; + } + case "mesh": + case "linkedmesh": { + let path2 = getValue(map, "path", name); + let sequence = this.readSequence(getValue(map, "sequence", null)); + let mesh = this.attachmentLoader.newMeshAttachment(skin, name, path2, sequence); + if (!mesh) + return null; + mesh.path = path2; + let color = getValue(map, "color", null); + if (color) + mesh.color.setFromString(color); + mesh.width = getValue(map, "width", 0) * scale; + mesh.height = getValue(map, "height", 0) * scale; + mesh.sequence = sequence; + let parent = getValue(map, "parent", null); + if (parent) { + this.linkedMeshes.push(new LinkedMesh2(mesh, getValue(map, "skin", null), slotIndex, parent, getValue(map, "timelines", true))); + return mesh; + } + let uvs = map.uvs; + this.readVertices(map, mesh, uvs.length); + mesh.triangles = map.triangles; + mesh.regionUVs = uvs; + if (mesh.region != null) + mesh.updateRegion(); + mesh.edges = getValue(map, "edges", null); + mesh.hullLength = getValue(map, "hull", 0) * 2; + return mesh; + } + case "path": { + let path2 = this.attachmentLoader.newPathAttachment(skin, name); + if (!path2) + return null; + path2.closed = getValue(map, "closed", false); + path2.constantSpeed = getValue(map, "constantSpeed", true); + let vertexCount = map.vertexCount; + this.readVertices(map, path2, vertexCount << 1); + let lengths = Utils.newArray(vertexCount / 3, 0); + for (let i = 0; i < map.lengths.length; i++) + lengths[i] = map.lengths[i] * scale; + path2.lengths = lengths; + let color = getValue(map, "color", null); + if (color) + path2.color.setFromString(color); + return path2; + } + case "point": { + let point = this.attachmentLoader.newPointAttachment(skin, name); + if (!point) + return null; + point.x = getValue(map, "x", 0) * scale; + point.y = getValue(map, "y", 0) * scale; + point.rotation = getValue(map, "rotation", 0); + let color = getValue(map, "color", null); + if (color) + point.color.setFromString(color); + return point; + } + case "clipping": { + let clip = this.attachmentLoader.newClippingAttachment(skin, name); + if (!clip) + return null; + let end = getValue(map, "end", null); + if (end) + clip.endSlot = skeletonData.findSlot(end); + let vertexCount = map.vertexCount; + this.readVertices(map, clip, vertexCount << 1); + let color = getValue(map, "color", null); + if (color) + clip.color.setFromString(color); + return clip; + } + } + return null; + } + readSequence(map) { + if (map == null) + return null; + let sequence = new Sequence(getValue(map, "count", 0)); + sequence.start = getValue(map, "start", 1); + sequence.digits = getValue(map, "digits", 0); + sequence.setupIndex = getValue(map, "setup", 0); + return sequence; + } + readVertices(map, attachment, verticesLength) { + let scale = this.scale; + attachment.worldVerticesLength = verticesLength; + let vertices = map.vertices; + if (verticesLength == vertices.length) { + let scaledVertices = Utils.toFloatArray(vertices); + if (scale != 1) { + for (let i = 0, n = vertices.length; i < n; i++) + scaledVertices[i] *= scale; + } + attachment.vertices = scaledVertices; + return; + } + let weights = new Array(); + let bones = new Array(); + for (let i = 0, n = vertices.length; i < n; ) { + let boneCount = vertices[i++]; + bones.push(boneCount); + for (let nn = i + boneCount * 4; i < nn; i += 4) { + bones.push(vertices[i]); + weights.push(vertices[i + 1] * scale); + weights.push(vertices[i + 2] * scale); + weights.push(vertices[i + 3]); + } + } + attachment.bones = bones; + attachment.vertices = Utils.toFloatArray(weights); + } + readAnimation(map, name, skeletonData) { + let scale = this.scale; + let timelines = new Array(); + if (map.slots) { + for (let slotName in map.slots) { + let slotMap = map.slots[slotName]; + let slot = skeletonData.findSlot(slotName); + if (!slot) + throw new Error("Slot not found: " + slotName); + let slotIndex = slot.index; + for (let timelineName in slotMap) { + let timelineMap = slotMap[timelineName]; + if (!timelineMap) + continue; + let frames = timelineMap.length; + if (timelineName == "attachment") { + let timeline = new AttachmentTimeline(frames, slotIndex); + for (let frame = 0; frame < frames; frame++) { + let keyMap = timelineMap[frame]; + timeline.setFrame(frame, getValue(keyMap, "time", 0), getValue(keyMap, "name", null)); + } + timelines.push(timeline); + } else if (timelineName == "rgba") { + let timeline = new RGBATimeline(frames, frames << 2, slotIndex); + let keyMap = timelineMap[0]; + let time = getValue(keyMap, "time", 0); + let color = Color.fromString(keyMap.color); + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, color.r, color.g, color.b, color.a); + let nextMap = timelineMap[frame + 1]; + if (!nextMap) { + timeline.shrink(bezier); + break; + } + let time2 = getValue(nextMap, "time", 0); + let newColor = Color.fromString(nextMap.color); + let curve = keyMap.curve; + if (curve) { + bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, color.r, newColor.r, 1); + bezier = readCurve(curve, timeline, bezier, frame, 1, time, time2, color.g, newColor.g, 1); + bezier = readCurve(curve, timeline, bezier, frame, 2, time, time2, color.b, newColor.b, 1); + bezier = readCurve(curve, timeline, bezier, frame, 3, time, time2, color.a, newColor.a, 1); + } + time = time2; + color = newColor; + keyMap = nextMap; + } + timelines.push(timeline); + } else if (timelineName == "rgb") { + let timeline = new RGBTimeline(frames, frames * 3, slotIndex); + let keyMap = timelineMap[0]; + let time = getValue(keyMap, "time", 0); + let color = Color.fromString(keyMap.color); + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, color.r, color.g, color.b); + let nextMap = timelineMap[frame + 1]; + if (!nextMap) { + timeline.shrink(bezier); + break; + } + let time2 = getValue(nextMap, "time", 0); + let newColor = Color.fromString(nextMap.color); + let curve = keyMap.curve; + if (curve) { + bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, color.r, newColor.r, 1); + bezier = readCurve(curve, timeline, bezier, frame, 1, time, time2, color.g, newColor.g, 1); + bezier = readCurve(curve, timeline, bezier, frame, 2, time, time2, color.b, newColor.b, 1); + } + time = time2; + color = newColor; + keyMap = nextMap; + } + timelines.push(timeline); + } else if (timelineName == "alpha") { + timelines.push(readTimeline12(timelineMap, new AlphaTimeline(frames, frames, slotIndex), 0, 1)); + } else if (timelineName == "rgba2") { + let timeline = new RGBA2Timeline(frames, frames * 7, slotIndex); + let keyMap = timelineMap[0]; + let time = getValue(keyMap, "time", 0); + let color = Color.fromString(keyMap.light); + let color2 = Color.fromString(keyMap.dark); + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, color.r, color.g, color.b, color.a, color2.r, color2.g, color2.b); + let nextMap = timelineMap[frame + 1]; + if (!nextMap) { + timeline.shrink(bezier); + break; + } + let time2 = getValue(nextMap, "time", 0); + let newColor = Color.fromString(nextMap.light); + let newColor2 = Color.fromString(nextMap.dark); + let curve = keyMap.curve; + if (curve) { + bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, color.r, newColor.r, 1); + bezier = readCurve(curve, timeline, bezier, frame, 1, time, time2, color.g, newColor.g, 1); + bezier = readCurve(curve, timeline, bezier, frame, 2, time, time2, color.b, newColor.b, 1); + bezier = readCurve(curve, timeline, bezier, frame, 3, time, time2, color.a, newColor.a, 1); + bezier = readCurve(curve, timeline, bezier, frame, 4, time, time2, color2.r, newColor2.r, 1); + bezier = readCurve(curve, timeline, bezier, frame, 5, time, time2, color2.g, newColor2.g, 1); + bezier = readCurve(curve, timeline, bezier, frame, 6, time, time2, color2.b, newColor2.b, 1); + } + time = time2; + color = newColor; + color2 = newColor2; + keyMap = nextMap; + } + timelines.push(timeline); + } else if (timelineName == "rgb2") { + let timeline = new RGB2Timeline(frames, frames * 6, slotIndex); + let keyMap = timelineMap[0]; + let time = getValue(keyMap, "time", 0); + let color = Color.fromString(keyMap.light); + let color2 = Color.fromString(keyMap.dark); + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, color.r, color.g, color.b, color2.r, color2.g, color2.b); + let nextMap = timelineMap[frame + 1]; + if (!nextMap) { + timeline.shrink(bezier); + break; + } + let time2 = getValue(nextMap, "time", 0); + let newColor = Color.fromString(nextMap.light); + let newColor2 = Color.fromString(nextMap.dark); + let curve = keyMap.curve; + if (curve) { + bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, color.r, newColor.r, 1); + bezier = readCurve(curve, timeline, bezier, frame, 1, time, time2, color.g, newColor.g, 1); + bezier = readCurve(curve, timeline, bezier, frame, 2, time, time2, color.b, newColor.b, 1); + bezier = readCurve(curve, timeline, bezier, frame, 3, time, time2, color2.r, newColor2.r, 1); + bezier = readCurve(curve, timeline, bezier, frame, 4, time, time2, color2.g, newColor2.g, 1); + bezier = readCurve(curve, timeline, bezier, frame, 5, time, time2, color2.b, newColor2.b, 1); + } + time = time2; + color = newColor; + color2 = newColor2; + keyMap = nextMap; + } + timelines.push(timeline); + } + } + } + } + if (map.bones) { + for (let boneName in map.bones) { + let boneMap = map.bones[boneName]; + let bone = skeletonData.findBone(boneName); + if (!bone) + throw new Error("Bone not found: " + boneName); + let boneIndex = bone.index; + for (let timelineName in boneMap) { + let timelineMap = boneMap[timelineName]; + let frames = timelineMap.length; + if (frames == 0) + continue; + if (timelineName === "rotate") { + timelines.push(readTimeline12(timelineMap, new RotateTimeline(frames, frames, boneIndex), 0, 1)); + } else if (timelineName === "translate") { + let timeline = new TranslateTimeline(frames, frames << 1, boneIndex); + timelines.push(readTimeline22(timelineMap, timeline, "x", "y", 0, scale)); + } else if (timelineName === "translatex") { + let timeline = new TranslateXTimeline(frames, frames, boneIndex); + timelines.push(readTimeline12(timelineMap, timeline, 0, scale)); + } else if (timelineName === "translatey") { + let timeline = new TranslateYTimeline(frames, frames, boneIndex); + timelines.push(readTimeline12(timelineMap, timeline, 0, scale)); + } else if (timelineName === "scale") { + let timeline = new ScaleTimeline(frames, frames << 1, boneIndex); + timelines.push(readTimeline22(timelineMap, timeline, "x", "y", 1, 1)); + } else if (timelineName === "scalex") { + let timeline = new ScaleXTimeline(frames, frames, boneIndex); + timelines.push(readTimeline12(timelineMap, timeline, 1, 1)); + } else if (timelineName === "scaley") { + let timeline = new ScaleYTimeline(frames, frames, boneIndex); + timelines.push(readTimeline12(timelineMap, timeline, 1, 1)); + } else if (timelineName === "shear") { + let timeline = new ShearTimeline(frames, frames << 1, boneIndex); + timelines.push(readTimeline22(timelineMap, timeline, "x", "y", 0, 1)); + } else if (timelineName === "shearx") { + let timeline = new ShearXTimeline(frames, frames, boneIndex); + timelines.push(readTimeline12(timelineMap, timeline, 0, 1)); + } else if (timelineName === "sheary") { + let timeline = new ShearYTimeline(frames, frames, boneIndex); + timelines.push(readTimeline12(timelineMap, timeline, 0, 1)); + } else if (timelineName === "inherit") { + let timeline = new InheritTimeline(frames, bone.index); + for (let frame = 0; frame < timelineMap.length; frame++) { + let aFrame = timelineMap[frame]; + timeline.setFrame(frame, getValue(aFrame, "time", 0), Utils.enumValue(Inherit, getValue(aFrame, "inherit", "Normal"))); + } + timelines.push(timeline); + } + } + } + } + if (map.ik) { + for (let constraintName in map.ik) { + let constraintMap = map.ik[constraintName]; + let keyMap = constraintMap[0]; + if (!keyMap) + continue; + let constraint = skeletonData.findIkConstraint(constraintName); + if (!constraint) + throw new Error("IK Constraint not found: " + constraintName); + let constraintIndex = skeletonData.ikConstraints.indexOf(constraint); + let timeline = new IkConstraintTimeline(constraintMap.length, constraintMap.length << 1, constraintIndex); + let time = getValue(keyMap, "time", 0); + let mix = getValue(keyMap, "mix", 1); + let softness = getValue(keyMap, "softness", 0) * scale; + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, mix, softness, getValue(keyMap, "bendPositive", true) ? 1 : -1, getValue(keyMap, "compress", false), getValue(keyMap, "stretch", false)); + let nextMap = constraintMap[frame + 1]; + if (!nextMap) { + timeline.shrink(bezier); + break; + } + let time2 = getValue(nextMap, "time", 0); + let mix2 = getValue(nextMap, "mix", 1); + let softness2 = getValue(nextMap, "softness", 0) * scale; + let curve = keyMap.curve; + if (curve) { + bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mix, mix2, 1); + bezier = readCurve(curve, timeline, bezier, frame, 1, time, time2, softness, softness2, scale); + } + time = time2; + mix = mix2; + softness = softness2; + keyMap = nextMap; + } + timelines.push(timeline); + } + } + if (map.transform) { + for (let constraintName in map.transform) { + let timelineMap = map.transform[constraintName]; + let keyMap = timelineMap[0]; + if (!keyMap) + continue; + let constraint = skeletonData.findTransformConstraint(constraintName); + if (!constraint) + throw new Error("Transform constraint not found: " + constraintName); + let constraintIndex = skeletonData.transformConstraints.indexOf(constraint); + let timeline = new TransformConstraintTimeline(timelineMap.length, timelineMap.length * 6, constraintIndex); + let time = getValue(keyMap, "time", 0); + let mixRotate = getValue(keyMap, "mixRotate", 1); + let mixX = getValue(keyMap, "mixX", 1); + let mixY = getValue(keyMap, "mixY", mixX); + let mixScaleX = getValue(keyMap, "mixScaleX", 1); + let mixScaleY = getValue(keyMap, "mixScaleY", mixScaleX); + let mixShearY = getValue(keyMap, "mixShearY", 1); + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY); + let nextMap = timelineMap[frame + 1]; + if (!nextMap) { + timeline.shrink(bezier); + break; + } + let time2 = getValue(nextMap, "time", 0); + let mixRotate2 = getValue(nextMap, "mixRotate", 1); + let mixX2 = getValue(nextMap, "mixX", 1); + let mixY2 = getValue(nextMap, "mixY", mixX2); + let mixScaleX2 = getValue(nextMap, "mixScaleX", 1); + let mixScaleY2 = getValue(nextMap, "mixScaleY", mixScaleX2); + let mixShearY2 = getValue(nextMap, "mixShearY", 1); + let curve = keyMap.curve; + if (curve) { + bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1); + bezier = readCurve(curve, timeline, bezier, frame, 1, time, time2, mixX, mixX2, 1); + bezier = readCurve(curve, timeline, bezier, frame, 2, time, time2, mixY, mixY2, 1); + bezier = readCurve(curve, timeline, bezier, frame, 3, time, time2, mixScaleX, mixScaleX2, 1); + bezier = readCurve(curve, timeline, bezier, frame, 4, time, time2, mixScaleY, mixScaleY2, 1); + bezier = readCurve(curve, timeline, bezier, frame, 5, time, time2, mixShearY, mixShearY2, 1); + } + time = time2; + mixRotate = mixRotate2; + mixX = mixX2; + mixY = mixY2; + mixScaleX = mixScaleX2; + mixScaleY = mixScaleY2; + mixScaleX = mixScaleX2; + keyMap = nextMap; + } + timelines.push(timeline); + } + } + if (map.path) { + for (let constraintName in map.path) { + let constraintMap = map.path[constraintName]; + let constraint = skeletonData.findPathConstraint(constraintName); + if (!constraint) + throw new Error("Path constraint not found: " + constraintName); + let constraintIndex = skeletonData.pathConstraints.indexOf(constraint); + for (let timelineName in constraintMap) { + let timelineMap = constraintMap[timelineName]; + let keyMap = timelineMap[0]; + if (!keyMap) + continue; + let frames = timelineMap.length; + if (timelineName === "position") { + let timeline = new PathConstraintPositionTimeline(frames, frames, constraintIndex); + timelines.push(readTimeline12(timelineMap, timeline, 0, constraint.positionMode == PositionMode.Fixed ? scale : 1)); + } else if (timelineName === "spacing") { + let timeline = new PathConstraintSpacingTimeline(frames, frames, constraintIndex); + timelines.push(readTimeline12(timelineMap, timeline, 0, constraint.spacingMode == SpacingMode.Length || constraint.spacingMode == SpacingMode.Fixed ? scale : 1)); + } else if (timelineName === "mix") { + let timeline = new PathConstraintMixTimeline(frames, frames * 3, constraintIndex); + let time = getValue(keyMap, "time", 0); + let mixRotate = getValue(keyMap, "mixRotate", 1); + let mixX = getValue(keyMap, "mixX", 1); + let mixY = getValue(keyMap, "mixY", mixX); + for (let frame = 0, bezier = 0; ; frame++) { + timeline.setFrame(frame, time, mixRotate, mixX, mixY); + let nextMap = timelineMap[frame + 1]; + if (!nextMap) { + timeline.shrink(bezier); + break; + } + let time2 = getValue(nextMap, "time", 0); + let mixRotate2 = getValue(nextMap, "mixRotate", 1); + let mixX2 = getValue(nextMap, "mixX", 1); + let mixY2 = getValue(nextMap, "mixY", mixX2); + let curve = keyMap.curve; + if (curve) { + bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1); + bezier = readCurve(curve, timeline, bezier, frame, 1, time, time2, mixX, mixX2, 1); + bezier = readCurve(curve, timeline, bezier, frame, 2, time, time2, mixY, mixY2, 1); + } + time = time2; + mixRotate = mixRotate2; + mixX = mixX2; + mixY = mixY2; + keyMap = nextMap; + } + timelines.push(timeline); + } + } + } + } + if (map.physics) { + for (let constraintName in map.physics) { + let constraintMap = map.physics[constraintName]; + let constraintIndex = -1; + if (constraintName.length > 0) { + let constraint = skeletonData.findPhysicsConstraint(constraintName); + if (!constraint) + throw new Error("Physics constraint not found: " + constraintName); + constraintIndex = skeletonData.physicsConstraints.indexOf(constraint); + } + for (let timelineName in constraintMap) { + let timelineMap = constraintMap[timelineName]; + let keyMap = timelineMap[0]; + if (!keyMap) + continue; + let frames = timelineMap.length; + if (timelineName == "reset") { + const timeline2 = new PhysicsConstraintResetTimeline(frames, constraintIndex); + for (let frame = 0; keyMap != null; keyMap = timelineMap[frame + 1], frame++) + timeline2.setFrame(frame, getValue(keyMap, "time", 0)); + timelines.push(timeline2); + continue; + } + let timeline; + if (timelineName == "inertia") + timeline = new PhysicsConstraintInertiaTimeline(frames, frames, constraintIndex); + else if (timelineName == "strength") + timeline = new PhysicsConstraintStrengthTimeline(frames, frames, constraintIndex); + else if (timelineName == "damping") + timeline = new PhysicsConstraintDampingTimeline(frames, frames, constraintIndex); + else if (timelineName == "mass") + timeline = new PhysicsConstraintMassTimeline(frames, frames, constraintIndex); + else if (timelineName == "wind") + timeline = new PhysicsConstraintWindTimeline(frames, frames, constraintIndex); + else if (timelineName == "gravity") + timeline = new PhysicsConstraintGravityTimeline(frames, frames, constraintIndex); + else if (timelineName == "mix") + timeline = new PhysicsConstraintMixTimeline(frames, frames, constraintIndex); + else + continue; + timelines.push(readTimeline12(timelineMap, timeline, 0, 1)); + } + } + } + if (map.attachments) { + for (let attachmentsName in map.attachments) { + let attachmentsMap = map.attachments[attachmentsName]; + let skin = skeletonData.findSkin(attachmentsName); + if (!skin) + throw new Error("Skin not found: " + attachmentsName); + for (let slotMapName in attachmentsMap) { + let slotMap = attachmentsMap[slotMapName]; + let slot = skeletonData.findSlot(slotMapName); + if (!slot) + throw new Error("Slot not found: " + slotMapName); + let slotIndex = slot.index; + for (let attachmentMapName in slotMap) { + let attachmentMap = slotMap[attachmentMapName]; + let attachment = skin.getAttachment(slotIndex, attachmentMapName); + for (let timelineMapName in attachmentMap) { + let timelineMap = attachmentMap[timelineMapName]; + let keyMap = timelineMap[0]; + if (!keyMap) + continue; + if (timelineMapName == "deform") { + let weighted = attachment.bones; + let vertices = attachment.vertices; + let deformLength = weighted ? vertices.length / 3 * 2 : vertices.length; + let timeline = new DeformTimeline(timelineMap.length, timelineMap.length, slotIndex, attachment); + let time = getValue(keyMap, "time", 0); + for (let frame = 0, bezier = 0; ; frame++) { + let deform; + let verticesValue = getValue(keyMap, "vertices", null); + if (!verticesValue) + deform = weighted ? Utils.newFloatArray(deformLength) : vertices; + else { + deform = Utils.newFloatArray(deformLength); + let start = getValue(keyMap, "offset", 0); + Utils.arrayCopy(verticesValue, 0, deform, start, verticesValue.length); + if (scale != 1) { + for (let i = start, n = i + verticesValue.length; i < n; i++) + deform[i] *= scale; + } + if (!weighted) { + for (let i = 0; i < deformLength; i++) + deform[i] += vertices[i]; + } + } + timeline.setFrame(frame, time, deform); + let nextMap = timelineMap[frame + 1]; + if (!nextMap) { + timeline.shrink(bezier); + break; + } + let time2 = getValue(nextMap, "time", 0); + let curve = keyMap.curve; + if (curve) + bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, 0, 1, 1); + time = time2; + keyMap = nextMap; + } + timelines.push(timeline); + } else if (timelineMapName == "sequence") { + let timeline = new SequenceTimeline(timelineMap.length, slotIndex, attachment); + let lastDelay = 0; + for (let frame = 0; frame < timelineMap.length; frame++) { + let delay = getValue(keyMap, "delay", lastDelay); + let time = getValue(keyMap, "time", 0); + let mode = SequenceMode[getValue(keyMap, "mode", "hold")]; + let index = getValue(keyMap, "index", 0); + timeline.setFrame(frame, time, mode, index, delay); + lastDelay = delay; + keyMap = timelineMap[frame + 1]; + } + timelines.push(timeline); + } + } + } + } + } + } + if (map.drawOrder) { + let timeline = new DrawOrderTimeline(map.drawOrder.length); + let slotCount = skeletonData.slots.length; + let frame = 0; + for (let i = 0; i < map.drawOrder.length; i++, frame++) { + let drawOrderMap = map.drawOrder[i]; + let drawOrder = null; + let offsets = getValue(drawOrderMap, "offsets", null); + if (offsets) { + drawOrder = Utils.newArray(slotCount, -1); + let unchanged = Utils.newArray(slotCount - offsets.length, 0); + let originalIndex = 0, unchangedIndex = 0; + for (let ii = 0; ii < offsets.length; ii++) { + let offsetMap = offsets[ii]; + let slot = skeletonData.findSlot(offsetMap.slot); + if (!slot) + throw new Error("Slot not found: " + slot); + let slotIndex = slot.index; + while (originalIndex != slotIndex) + unchanged[unchangedIndex++] = originalIndex++; + drawOrder[originalIndex + offsetMap.offset] = originalIndex++; + } + while (originalIndex < slotCount) + unchanged[unchangedIndex++] = originalIndex++; + for (let ii = slotCount - 1; ii >= 0; ii--) + if (drawOrder[ii] == -1) + drawOrder[ii] = unchanged[--unchangedIndex]; + } + timeline.setFrame(frame, getValue(drawOrderMap, "time", 0), drawOrder); + } + timelines.push(timeline); + } + if (map.events) { + let timeline = new EventTimeline(map.events.length); + let frame = 0; + for (let i = 0; i < map.events.length; i++, frame++) { + let eventMap = map.events[i]; + let eventData = skeletonData.findEvent(eventMap.name); + if (!eventData) + throw new Error("Event not found: " + eventMap.name); + let event = new Event(Utils.toSinglePrecision(getValue(eventMap, "time", 0)), eventData); + event.intValue = getValue(eventMap, "int", eventData.intValue); + event.floatValue = getValue(eventMap, "float", eventData.floatValue); + event.stringValue = getValue(eventMap, "string", eventData.stringValue); + if (event.data.audioPath) { + event.volume = getValue(eventMap, "volume", 1); + event.balance = getValue(eventMap, "balance", 0); + } + timeline.setFrame(frame, event); + } + timelines.push(timeline); + } + let duration = 0; + for (let i = 0, n = timelines.length; i < n; i++) + duration = Math.max(duration, timelines[i].getDuration()); + skeletonData.animations.push(new Animation(name, timelines, duration)); + } + }; + var LinkedMesh2 = class { + parent; + skin; + slotIndex; + mesh; + inheritTimeline; + constructor(mesh, skin, slotIndex, parent, inheritDeform) { + this.mesh = mesh; + this.skin = skin; + this.slotIndex = slotIndex; + this.parent = parent; + this.inheritTimeline = inheritDeform; + } + }; + function readTimeline12(keys, timeline, defaultValue, scale) { + let keyMap = keys[0]; + let time = getValue(keyMap, "time", 0); + let value = getValue(keyMap, "value", defaultValue) * scale; + let bezier = 0; + for (let frame = 0; ; frame++) { + timeline.setFrame(frame, time, value); + let nextMap = keys[frame + 1]; + if (!nextMap) { + timeline.shrink(bezier); + return timeline; + } + let time2 = getValue(nextMap, "time", 0); + let value2 = getValue(nextMap, "value", defaultValue) * scale; + if (keyMap.curve) + bezier = readCurve(keyMap.curve, timeline, bezier, frame, 0, time, time2, value, value2, scale); + time = time2; + value = value2; + keyMap = nextMap; + } + } + function readTimeline22(keys, timeline, name1, name2, defaultValue, scale) { + let keyMap = keys[0]; + let time = getValue(keyMap, "time", 0); + let value1 = getValue(keyMap, name1, defaultValue) * scale; + let value2 = getValue(keyMap, name2, defaultValue) * scale; + let bezier = 0; + for (let frame = 0; ; frame++) { + timeline.setFrame(frame, time, value1, value2); + let nextMap = keys[frame + 1]; + if (!nextMap) { + timeline.shrink(bezier); + return timeline; + } + let time2 = getValue(nextMap, "time", 0); + let nvalue1 = getValue(nextMap, name1, defaultValue) * scale; + let nvalue2 = getValue(nextMap, name2, defaultValue) * scale; + let curve = keyMap.curve; + if (curve) { + bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, value1, nvalue1, scale); + bezier = readCurve(curve, timeline, bezier, frame, 1, time, time2, value2, nvalue2, scale); + } + time = time2; + value1 = nvalue1; + value2 = nvalue2; + keyMap = nextMap; + } + } + function readCurve(curve, timeline, bezier, frame, value, time1, time2, value1, value2, scale) { + if (curve == "stepped") { + timeline.setStepped(frame); + return bezier; + } + let i = value << 2; + let cx1 = curve[i]; + let cy1 = curve[i + 1] * scale; + let cx2 = curve[i + 2]; + let cy2 = curve[i + 3] * scale; + timeline.setBezier(bezier, frame, value, time1, value1, cx1, cy1, cx2, cy2, time2, value2); + return bezier + 1; + } + function getValue(map, property, defaultValue) { + return map[property] !== void 0 ? map[property] : defaultValue; + } + + // node_modules/@esotericsoftware/spine-core/dist/polyfills.js + (() => { + if (typeof Math.fround === "undefined") { + Math.fround = /* @__PURE__ */ function(array) { + return function(x) { + return array[0] = x, array[0]; + }; + }(new Float32Array(1)); + } + })(); + + // src/SpineTexture.ts + var SpineTexture = class _SpineTexture extends Texture { + static textureMap = /* @__PURE__ */ new Map(); + static from(texture) { + if (_SpineTexture.textureMap.has(texture)) { + return _SpineTexture.textureMap.get(texture); + } + return new _SpineTexture(texture); + } + texture; + constructor(image) { + super(image.resource); + this.texture = import_pixi.Texture.from(image); + } + setFilters(minFilter, magFilter) { + const style = this.texture.source.style; + style.minFilter = _SpineTexture.toPixiTextureFilter(minFilter); + style.magFilter = _SpineTexture.toPixiTextureFilter(magFilter); + this.texture.source.autoGenerateMipmaps = _SpineTexture.toPixiMipMap(minFilter); + this.texture.source.updateMipmaps(); + } + setWraps(uWrap, vWrap) { + const style = this.texture.source.style; + style.addressModeU = _SpineTexture.toPixiTextureWrap(uWrap); + style.addressModeV = _SpineTexture.toPixiTextureWrap(vWrap); + } + dispose() { + this.texture.destroy(); + } + static toPixiMipMap(filter) { + switch (filter) { + case TextureFilter.Nearest: + case TextureFilter.Linear: + return false; + case TextureFilter.MipMapNearestLinear: + case TextureFilter.MipMapNearestNearest: + case TextureFilter.MipMapLinearLinear: + case TextureFilter.MipMapLinearNearest: + return true; + default: + throw new Error(`Unknown texture filter: ${String(filter)}`); + } + } + static toPixiTextureFilter(filter) { + switch (filter) { + case TextureFilter.Nearest: + case TextureFilter.MipMapNearestLinear: + case TextureFilter.MipMapNearestNearest: + return "nearest"; + case TextureFilter.Linear: + case TextureFilter.MipMapLinearLinear: + case TextureFilter.MipMapLinearNearest: + return "linear"; + default: + throw new Error(`Unknown texture filter: ${String(filter)}`); + } + } + static toPixiTextureWrap(wrap) { + switch (wrap) { + case TextureWrap.ClampToEdge: + return "clamp-to-edge"; + case TextureWrap.MirroredRepeat: + return "mirror-repeat"; + case TextureWrap.Repeat: + return "repeat"; + default: + throw new Error(`Unknown texture wrap: ${String(wrap)}`); + } + } + static toPixiBlending(blend) { + switch (blend) { + case BlendMode.Normal: + return "normal"; + case BlendMode.Additive: + return "add"; + case BlendMode.Multiply: + return "multiply"; + case BlendMode.Screen: + return "screen"; + default: + throw new Error(`Unknown blendMode: ${String(blend)}`); + } + } + }; + + // src/assets/atlasLoader.ts + var spineTextureAtlasLoader = { + extension: import_pixi2.ExtensionType.Asset, + loader: { + extension: { + type: import_pixi2.ExtensionType.LoadParser, + priority: import_pixi2.LoaderParserPriority.Normal, + name: "spineTextureAtlasLoader" + }, + test(url) { + return (0, import_pixi2.checkExtension)(url, ".atlas"); + }, + async load(url) { + const response = await import_pixi2.DOMAdapter.get().fetch(url); + const txt = await response.text(); + return txt; + }, + testParse(asset, options) { + const isExtensionRight = (0, import_pixi2.checkExtension)(options.src, ".atlas"); + const isString = typeof asset === "string"; + return Promise.resolve(isExtensionRight && isString); + }, + unload(atlas) { + atlas.dispose(); + }, + async parse(asset, options, loader) { + const metadata = options.data || {}; + let basePath = import_pixi2.path.dirname(options.src); + if (basePath && basePath.lastIndexOf("/") !== basePath.length - 1) { + basePath += "/"; + } + const retval = new TextureAtlas(asset); + if (metadata.images instanceof import_pixi2.TextureSource || typeof metadata.images === "string") { + const pixiTexture = metadata.images; + metadata.images = {}; + metadata.images[retval.pages[0].name] = pixiTexture; + } + const textureLoadingPromises = []; + for (const page of retval.pages) { + const pageName = page.name; + const providedPage = metadata?.images ? metadata.images[pageName] : void 0; + if (providedPage instanceof import_pixi2.TextureSource) { + page.setTexture(SpineTexture.from(providedPage)); + } else { + const url = providedPage ?? import_pixi2.path.normalize([...basePath.split(import_pixi2.path.sep), pageName].join(import_pixi2.path.sep)); + const assetsToLoadIn = { + src: url, + data: { + ...metadata.imageMetadata, + alphaMode: page.pma ? "premultiplied-alpha" : "premultiply-alpha-on-upload" + } + }; + const pixiPromise = loader.load(assetsToLoadIn).then((texture) => { + page.setTexture(SpineTexture.from(texture.source)); + }); + textureLoadingPromises.push(pixiPromise); + } + } + await Promise.all(textureLoadingPromises); + return retval; + } + } + }; + import_pixi2.extensions.add(spineTextureAtlasLoader); + + // src/assets/skeletonLoader.ts + var import_pixi3 = __require("pixi.js"); + function isJson(resource) { + return Object.prototype.hasOwnProperty.call(resource, "bones"); + } + function isBuffer(resource) { + return resource instanceof Uint8Array; + } + var spineLoaderExtension = { + extension: import_pixi3.ExtensionType.Asset, + loader: { + extension: { + type: import_pixi3.ExtensionType.LoadParser, + priority: import_pixi3.LoaderParserPriority.Normal, + name: "spineSkeletonLoader" + }, + test(url) { + return (0, import_pixi3.checkExtension)(url, ".skel"); + }, + async load(url) { + const response = await import_pixi3.DOMAdapter.get().fetch(url); + const buffer = new Uint8Array(await response.arrayBuffer()); + return buffer; + }, + testParse(asset, options) { + const isJsonSpineModel = (0, import_pixi3.checkExtension)(options.src, ".json") && isJson(asset); + const isBinarySpineModel = (0, import_pixi3.checkExtension)(options.src, ".skel") && isBuffer(asset); + return Promise.resolve(isJsonSpineModel || isBinarySpineModel); + } + } + }; + import_pixi3.extensions.add(spineLoaderExtension); + + // src/darktint/DarkTintBatcher.ts + var import_pixi6 = __require("pixi.js"); + + // src/darktint/DarkTintBatchGeometry.ts + var import_pixi4 = __require("pixi.js"); + var placeHolderBufferData = new Float32Array(1); + var placeHolderIndexData = new Uint32Array(1); + var DarkTintBatchGeometry = class extends import_pixi4.Geometry { + constructor() { + const vertexSize = 7; + const attributeBuffer = new import_pixi4.Buffer({ + data: placeHolderBufferData, + label: "attribute-batch-buffer", + usage: import_pixi4.BufferUsage.VERTEX | import_pixi4.BufferUsage.COPY_DST, + shrinkToFit: false + }); + const indexBuffer = new import_pixi4.Buffer({ + data: placeHolderIndexData, + label: "index-batch-buffer", + usage: import_pixi4.BufferUsage.INDEX | import_pixi4.BufferUsage.COPY_DST, + // | BufferUsage.STATIC, + shrinkToFit: false + }); + const stride = vertexSize * 4; + super({ + attributes: { + aPosition: { + buffer: attributeBuffer, + format: "float32x2", + stride, + offset: 0 + }, + aUV: { + buffer: attributeBuffer, + format: "float32x2", + stride, + offset: 2 * 4 + }, + aColor: { + buffer: attributeBuffer, + format: "unorm8x4", + stride, + offset: 4 * 4 + }, + aDarkColor: { + buffer: attributeBuffer, + format: "unorm8x4", + stride, + offset: 5 * 4 + }, + aTextureIdAndRound: { + buffer: attributeBuffer, + format: "uint16x2", + stride, + offset: 6 * 4 + } + }, + indexBuffer + }); + } + }; + + // src/darktint/DarkTintShader.ts + var import_pixi5 = __require("pixi.js"); + + // src/darktint/darkTintBit.ts + var darkTintBit = { + name: "color-bit", + vertex: { + header: ( + /* wgsl */ + ` + @in aDarkColor: vec4; + @out vDarkColor: vec4; + ` + ), + main: ( + /* wgsl */ + ` + vDarkColor = aDarkColor; + ` + ) + }, + fragment: { + header: ( + /* wgsl */ + ` + @in vDarkColor: vec4; + ` + ), + end: ( + /* wgsl */ + ` + + let alpha = outColor.a * vColor.a; + let rgb = ((outColor.a - 1.0) * vDarkColor.a + 1.0 - outColor.rgb) * vDarkColor.rgb + outColor.rgb * vColor.rgb; + + finalColor = vec4(rgb, alpha); + + ` + ) + } + }; + var darkTintBitGl = { + name: "color-bit", + vertex: { + header: ( + /* glsl */ + ` + in vec4 aDarkColor; + out vec4 vDarkColor; + ` + ), + main: ( + /* glsl */ + ` + vDarkColor = aDarkColor; + ` + ) + }, + fragment: { + header: ( + /* glsl */ + ` + in vec4 vDarkColor; + ` + ), + end: ( + /* glsl */ + ` + + finalColor.a = outColor.a * vColor.a; + finalColor.rgb = ((outColor.a - 1.0) * vDarkColor.a + 1.0 - outColor.rgb) * vDarkColor.rgb + outColor.rgb * vColor.rgb; + ` + ) + } + }; + + // src/darktint/DarkTintShader.ts + var DarkTintShader = class extends import_pixi5.Shader { + constructor(maxTextures) { + const glProgram = (0, import_pixi5.compileHighShaderGlProgram)({ + name: "dark-tint-batch", + bits: [ + import_pixi5.colorBitGl, + darkTintBitGl, + (0, import_pixi5.generateTextureBatchBitGl)(maxTextures), + import_pixi5.roundPixelsBitGl + ] + }); + const gpuProgram = (0, import_pixi5.compileHighShaderGpuProgram)({ + name: "dark-tint-batch", + bits: [ + import_pixi5.colorBit, + darkTintBit, + (0, import_pixi5.generateTextureBatchBit)(maxTextures), + import_pixi5.roundPixelsBit + ] + }); + super({ + glProgram, + gpuProgram, + resources: { + batchSamplers: (0, import_pixi5.getBatchSamplersUniformGroup)(maxTextures) + } + }); + } + }; + + // src/darktint/DarkTintBatcher.ts + var defaultShader = null; + var DarkTintBatcher = class _DarkTintBatcher extends import_pixi6.Batcher { + /** @ignore */ + static extension = { + type: [ + import_pixi6.ExtensionType.Batcher + ], + name: "darkTint" + }; + geometry = new DarkTintBatchGeometry(); + shader = defaultShader || (defaultShader = new DarkTintShader(this.maxTextures)); + name = _DarkTintBatcher.extension.name; + /** The size of one attribute. 1 = 32 bit. x, y, u, v, color, darkColor, textureIdAndRound -> total = 7 */ + vertexSize = 7; + packAttributes(element, float32View, uint32View, index, textureId) { + const textureIdAndRound = textureId << 16 | element.roundPixels & 65535; + const wt = element.transform; + const a = wt.a; + const b = wt.b; + const c = wt.c; + const d = wt.d; + const tx = wt.tx; + const ty = wt.ty; + const { positions, uvs } = element; + const argb = element.color; + const darkColor2 = element.darkColor; + const offset = element.attributeOffset; + const end = offset + element.attributeSize; + for (let i = offset; i < end; i++) { + const i2 = i * 2; + const x = positions[i2]; + const y = positions[i2 + 1]; + float32View[index++] = a * x + c * y + tx; + float32View[index++] = d * y + b * x + ty; + float32View[index++] = uvs[i2]; + float32View[index++] = uvs[i2 + 1]; + uint32View[index++] = argb; + uint32View[index++] = darkColor2; + uint32View[index++] = textureIdAndRound; + } + } + packQuadAttributes(element, float32View, uint32View, index, textureId) { + const texture = element.texture; + const wt = element.transform; + const a = wt.a; + const b = wt.b; + const c = wt.c; + const d = wt.d; + const tx = wt.tx; + const ty = wt.ty; + const bounds = element.bounds; + const w0 = bounds.maxX; + const w1 = bounds.minX; + const h0 = bounds.maxY; + const h1 = bounds.minY; + const uvs = texture.uvs; + const argb = element.color; + const darkColor2 = element.darkColor; + const textureIdAndRound = textureId << 16 | element.roundPixels & 65535; + float32View[index + 0] = a * w1 + c * h1 + tx; + float32View[index + 1] = d * h1 + b * w1 + ty; + float32View[index + 2] = uvs.x0; + float32View[index + 3] = uvs.y0; + uint32View[index + 4] = argb; + uint32View[index + 5] = darkColor2; + uint32View[index + 6] = textureIdAndRound; + float32View[index + 7] = a * w0 + c * h1 + tx; + float32View[index + 8] = d * h1 + b * w0 + ty; + float32View[index + 9] = uvs.x1; + float32View[index + 10] = uvs.y1; + uint32View[index + 11] = argb; + uint32View[index + 12] = darkColor2; + uint32View[index + 13] = textureIdAndRound; + float32View[index + 14] = a * w0 + c * h0 + tx; + float32View[index + 15] = d * h0 + b * w0 + ty; + float32View[index + 16] = uvs.x2; + float32View[index + 17] = uvs.y2; + uint32View[index + 18] = argb; + uint32View[index + 19] = darkColor2; + uint32View[index + 20] = textureIdAndRound; + float32View[index + 21] = a * w1 + c * h0 + tx; + float32View[index + 22] = d * h0 + b * w1 + ty; + float32View[index + 23] = uvs.x3; + float32View[index + 24] = uvs.y3; + uint32View[index + 25] = argb; + uint32View[index + 26] = darkColor2; + uint32View[index + 27] = textureIdAndRound; + } + }; + import_pixi6.extensions.add(DarkTintBatcher); + + // src/SpinePipe.ts + var import_pixi7 = __require("pixi.js"); + + // src/BatchableSpineSlot.ts + var BatchableSpineSlot = class { + indexOffset = 0; + attributeOffset = 0; + indexSize; + attributeSize; + batcherName = "darkTint"; + packAsQuad = false; + renderable; + positions; + indices; + uvs; + roundPixels; + data; + blendMode; + darkTint; + texture; + transform; + // used internally by batcher specific.. + // stored for efficient updating.. + _textureId; + _attributeStart; + _indexStart; + _batcher; + _batch; + get color() { + const slotColor = this.data.color; + const parentColor = this.renderable.groupColor; + const parentAlpha = this.renderable.groupAlpha; + let abgr; + const mixedA = slotColor.a * parentAlpha * 255; + if (parentColor !== 16777215) { + const parentB = parentColor >> 16 & 255; + const parentG = parentColor >> 8 & 255; + const parentR = parentColor & 255; + const mixedR = slotColor.r * parentR; + const mixedG = slotColor.g * parentG; + const mixedB = slotColor.b * parentB; + abgr = mixedA << 24 | mixedB << 16 | mixedG << 8 | mixedR; + } else { + abgr = mixedA << 24 | slotColor.b * 255 << 16 | slotColor.g * 255 << 8 | slotColor.r * 255; + } + return abgr; + } + get darkColor() { + const darkColor2 = this.data.darkColor; + return darkColor2.a << 24 | darkColor2.b * 255 << 16 | darkColor2.g * 255 << 8 | darkColor2.r * 255; + } + get groupTransform() { + return this.renderable.groupTransform; + } + setData(renderable, data, texture, blendMode, roundPixels) { + this.renderable = renderable; + this.transform = renderable.groupTransform; + this.data = data; + if (data.clipped) { + const clippedData = data.clippedData; + this.indexSize = clippedData.indicesCount; + this.attributeSize = clippedData.vertexCount; + this.positions = clippedData.vertices; + this.indices = clippedData.indices; + this.uvs = clippedData.uvs; + } else { + this.indexSize = data.indices.length; + this.attributeSize = data.vertices.length / 2; + this.positions = data.vertices; + this.indices = data.indices; + this.uvs = data.uvs; + } + this.texture = texture; + this.roundPixels = roundPixels; + this.blendMode = blendMode; + this.batcherName = data.darkTint ? "darkTint" : "default"; + } + }; + + // src/SpinePipe.ts + var clipper = new SkeletonClipping(); + var spineBlendModeMap = { + 0: "normal", + 1: "add", + 2: "multiply", + 3: "screen" + }; + var SpinePipe = class { + /** @ignore */ + static extension = { + type: [ + import_pixi7.ExtensionType.WebGLPipes, + import_pixi7.ExtensionType.WebGPUPipes, + import_pixi7.ExtensionType.CanvasPipes + ], + name: "spine" + }; + renderer; + gpuSpineData = {}; + constructor(renderer) { + this.renderer = renderer; + } + validateRenderable(spine) { + spine._applyState(); + return spine.spineAttachmentsDirty; + } + addRenderable(spine, instructionSet) { + const gpuSpine = this.gpuSpineData[spine.uid] ||= { slotBatches: {} }; + const batcher = this.renderer.renderPipes.batch; + const drawOrder = spine.skeleton.drawOrder; + const roundPixels = this.renderer._roundPixels | spine._roundPixels; + spine._applyState(); + for (let i = 0, n = drawOrder.length; i < n; i++) { + const slot = drawOrder[i]; + const attachment = slot.getAttachment(); + const blendMode = spineBlendModeMap[slot.data.blendMode]; + if (attachment instanceof RegionAttachment || attachment instanceof MeshAttachment) { + const cacheData = spine._getCachedData(slot, attachment); + const batchableSpineSlot = gpuSpine.slotBatches[cacheData.id] ||= new BatchableSpineSlot(); + batchableSpineSlot.setData( + spine, + cacheData, + attachment.region?.texture.texture || import_pixi7.Texture.EMPTY, + blendMode, + roundPixels + ); + if (!cacheData.skipRender) { + batcher.addToBatch(batchableSpineSlot, instructionSet); + } + } + const containerAttachment = spine._slotsObject[slot.data.name]; + if (containerAttachment) { + const container = containerAttachment.container; + container.includeInBuild = true; + (0, import_pixi7.collectAllRenderables)(container, instructionSet, this.renderer); + container.includeInBuild = false; + } + } + clipper.clipEnd(); + } + updateRenderable(spine) { + const gpuSpine = this.gpuSpineData[spine.uid]; + spine._applyState(); + const drawOrder = spine.skeleton.drawOrder; + for (let i = 0, n = drawOrder.length; i < n; i++) { + const slot = drawOrder[i]; + const attachment = slot.getAttachment(); + if (attachment instanceof RegionAttachment || attachment instanceof MeshAttachment) { + const cacheData = spine._getCachedData(slot, attachment); + if (!cacheData.skipRender) { + const batchableSpineSlot = gpuSpine.slotBatches[spine._getCachedData(slot, attachment).id]; + batchableSpineSlot._batcher?.updateElement(batchableSpineSlot); + } + } + } + } + destroyRenderable(spine) { + this.gpuSpineData[spine.uid] = null; + } + destroy() { + this.gpuSpineData = null; + this.renderer = null; + } + }; + import_pixi7.extensions.add(SpinePipe); + + // src/Spine.ts + var import_pixi8 = __require("pixi.js"); + var vectorAux = new Vector2(); + var lightColor = new Color(); + var darkColor = new Color(); + Skeleton.yDown = true; + var clipper2 = new SkeletonClipping(); + var Spine = class _Spine extends import_pixi8.ViewContainer { + // Pixi properties + batched = true; + buildId = 0; + renderPipeId = "spine"; + _didSpineUpdate = false; + beforeUpdateWorldTransforms = () => { + }; + afterUpdateWorldTransforms = () => { + }; + // Spine properties + skeleton; + state; + skeletonBounds; + _debug = void 0; + _slotsObject = /* @__PURE__ */ Object.create(null); + getSlotFromRef(slotRef) { + let slot; + if (typeof slotRef === "number") + slot = this.skeleton.slots[slotRef]; + else if (typeof slotRef === "string") + slot = this.skeleton.findSlot(slotRef); + else + slot = slotRef; + if (!slot) + throw new Error(`No slot found with the given slot reference: ${slotRef}`); + return slot; + } + spineAttachmentsDirty; + _lastAttachments; + _stateChanged; + attachmentCacheData = []; + get debug() { + return this._debug; + } + set debug(value) { + if (this._debug) { + this._debug.unregisterSpine(this); + } + if (value) { + value.registerSpine(this); + } + this._debug = value; + } + autoUpdateWarned = false; + _autoUpdate = true; + get autoUpdate() { + return this._autoUpdate; + } + set autoUpdate(value) { + if (value) { + import_pixi8.Ticker.shared.add(this.internalUpdate, this); + this.autoUpdateWarned = false; + } else { + import_pixi8.Ticker.shared.remove(this.internalUpdate, this); + } + this._autoUpdate = value; + } + constructor(options) { + if (options instanceof SkeletonData) { + options = { + skeletonData: options + }; + } + super(); + const skeletonData = options instanceof SkeletonData ? options : options.skeletonData; + this.skeleton = new Skeleton(skeletonData); + this.state = new AnimationState(new AnimationStateData(skeletonData)); + this.autoUpdate = options?.autoUpdate ?? true; + const slots = this.skeleton.slots; + for (let i = 0; i < slots.length; i++) { + this.attachmentCacheData[i] = /* @__PURE__ */ Object.create(null); + } + this._updateState(0); + } + update(dt) { + if (this.autoUpdate && !this.autoUpdateWarned) { + console.warn( + // eslint-disable-next-line max-len + "You are calling update on a Spine instance that has autoUpdate set to true. This is probably not what you want." + ); + this.autoUpdateWarned = true; + } + this.internalUpdate(0, dt); + } + internalUpdate(_deltaFrame, deltaSeconds) { + this._updateState(deltaSeconds ?? import_pixi8.Ticker.shared.deltaMS / 1e3); + } + get bounds() { + if (this._boundsDirty) { + this.updateBounds(); + } + return this._bounds; + } + setBonePosition(bone, position) { + const boneAux = bone; + if (typeof bone === "string") { + bone = this.skeleton.findBone(bone); + } + if (!bone) + throw Error(`Cant set bone position, bone ${String(boneAux)} not found`); + vectorAux.set(position.x, position.y); + if (bone.parent) { + const aux = bone.parent.worldToLocal(vectorAux); + bone.x = aux.x; + bone.y = -aux.y; + } else { + bone.x = vectorAux.x; + bone.y = vectorAux.y; + } + } + getBonePosition(bone, outPos) { + const boneAux = bone; + if (typeof bone === "string") { + bone = this.skeleton.findBone(bone); + } + if (!bone) { + console.error(`Cant set bone position! Bone ${String(boneAux)} not found`); + return outPos; + } + if (!outPos) { + outPos = { x: 0, y: 0 }; + } + outPos.x = bone.worldX; + outPos.y = bone.worldY; + return outPos; + } + /** + * Will update the state based on the specified time, this will not apply the state to the skeleton + * as this is differed until the `applyState` method is called. + * + * @param time the time at which to set the state + * @internal + */ + _updateState(time) { + this.state.update(time); + this.skeleton.update(time); + this._stateChanged = true; + this._boundsDirty = true; + this.onViewUpdate(); + } + /** + * Applies the state to this spine instance. + * - updates the state to the skeleton + * - updates its world transform (spine world transform) + * - validates the attachments - to flag if the attachments have changed this state + * - transforms the attachments - to update the vertices of the attachments based on the new positions + * - update the slot attachments - to update the position, rotation, scale, and visibility of the attached containers + * @internal + */ + _applyState() { + if (!this._stateChanged) + return; + this._stateChanged = false; + const { skeleton } = this; + this.state.apply(skeleton); + this.beforeUpdateWorldTransforms(this); + skeleton.updateWorldTransform(Physics.update); + this.afterUpdateWorldTransforms(this); + this.validateAttachments(); + this.transformAttachments(); + this.updateSlotObjects(); + } + validateAttachments() { + const currentDrawOrder = this.skeleton.drawOrder; + const lastAttachments = this._lastAttachments ||= []; + let index = 0; + let spineAttachmentsDirty = false; + for (let i = 0; i < currentDrawOrder.length; i++) { + const slot = currentDrawOrder[i]; + const attachment = slot.getAttachment(); + if (attachment) { + if (attachment !== lastAttachments[index]) { + spineAttachmentsDirty = true; + lastAttachments[index] = attachment; + } + index++; + } + } + if (index !== lastAttachments.length) { + spineAttachmentsDirty = true; + lastAttachments.length = index; + } + this.spineAttachmentsDirty = spineAttachmentsDirty; + } + transformAttachments() { + const currentDrawOrder = this.skeleton.drawOrder; + for (let i = 0; i < currentDrawOrder.length; i++) { + const slot = currentDrawOrder[i]; + const attachment = slot.getAttachment(); + if (attachment) { + if (attachment instanceof MeshAttachment || attachment instanceof RegionAttachment) { + const cacheData = this._getCachedData(slot, attachment); + if (attachment instanceof RegionAttachment) { + attachment.computeWorldVertices(slot, cacheData.vertices, 0, 2); + } else { + attachment.computeWorldVertices( + slot, + 0, + attachment.worldVerticesLength, + cacheData.vertices, + 0, + 2 + ); + } + cacheData.uvs = attachment.uvs; + const skeleton = slot.bone.skeleton; + const skeletonColor = skeleton.color; + const slotColor = slot.color; + const attachmentColor = attachment.color; + cacheData.color.set( + skeletonColor.r * slotColor.r * attachmentColor.r, + skeletonColor.g * slotColor.g * attachmentColor.g, + skeletonColor.b * slotColor.b * attachmentColor.b, + skeletonColor.a * slotColor.a * attachmentColor.a + ); + cacheData.darkTint = !!slot.darkColor; + if (slot.darkColor) { + cacheData.darkColor.setFromColor(slot.darkColor); + } + cacheData.skipRender = cacheData.clipped = false; + if (clipper2.isClipping()) { + this.updateClippingData(cacheData); + } + } else if (attachment instanceof ClippingAttachment) { + clipper2.clipStart(slot, attachment); + continue; + } + } + clipper2.clipEndWithSlot(slot); + } + clipper2.clipEnd(); + } + updateClippingData(cacheData) { + cacheData.clipped = true; + clipper2.clipTriangles( + cacheData.vertices, + cacheData.vertices.length, + cacheData.indices, + cacheData.indices.length, + cacheData.uvs, + lightColor, + darkColor, + false + ); + const { clippedVertices, clippedTriangles } = clipper2; + const verticesCount = clippedVertices.length / 8; + const indicesCount = clippedTriangles.length; + if (!cacheData.clippedData) { + cacheData.clippedData = { + vertices: new Float32Array(verticesCount * 2), + uvs: new Float32Array(verticesCount * 2), + vertexCount: verticesCount, + indices: new Uint16Array(indicesCount), + indicesCount + }; + this.spineAttachmentsDirty = true; + } + const clippedData = cacheData.clippedData; + const sizeChange = clippedData.vertexCount !== verticesCount || indicesCount !== clippedData.indicesCount; + cacheData.skipRender = verticesCount === 0; + if (sizeChange) { + this.spineAttachmentsDirty = true; + if (clippedData.vertexCount < verticesCount) { + clippedData.vertices = new Float32Array(verticesCount * 2); + clippedData.uvs = new Float32Array(verticesCount * 2); + } + if (clippedData.indices.length < indicesCount) { + clippedData.indices = new Uint16Array(indicesCount); + } + } + const { vertices, uvs, indices } = clippedData; + for (let i = 0; i < verticesCount; i++) { + vertices[i * 2] = clippedVertices[i * 8]; + vertices[i * 2 + 1] = clippedVertices[i * 8 + 1]; + uvs[i * 2] = clippedVertices[i * 8 + 6]; + uvs[i * 2 + 1] = clippedVertices[i * 8 + 7]; + } + clippedData.vertexCount = verticesCount; + for (let i = 0; i < indices.length; i++) { + indices[i] = clippedTriangles[i]; + } + clippedData.indicesCount = indicesCount; + } + /** + * ensure that attached containers map correctly to their slots + * along with their position, rotation, scale, and visibility. + */ + updateSlotObjects() { + for (const i in this._slotsObject) { + const slotAttachment = this._slotsObject[i]; + if (!slotAttachment) + continue; + this.updateSlotObject(slotAttachment); + } + } + updateSlotObject(slotAttachment) { + const { slot, container } = slotAttachment; + container.visible = this.skeleton.drawOrder.includes(slot); + if (container.visible) { + const bone = slot.bone; + container.position.set(bone.worldX, bone.worldY); + container.scale.x = bone.getWorldScaleX(); + container.scale.y = bone.getWorldScaleY(); + container.rotation = bone.getWorldRotationX() * import_pixi8.DEG_TO_RAD; + } + } + /** @internal */ + _getCachedData(slot, attachment) { + return this.attachmentCacheData[slot.data.index][attachment.name] || this.initCachedData(slot, attachment); + } + initCachedData(slot, attachment) { + let vertices; + if (attachment instanceof RegionAttachment) { + vertices = new Float32Array(8); + this.attachmentCacheData[slot.data.index][attachment.name] = { + id: `${slot.data.index}-${attachment.name}`, + vertices, + clipped: false, + indices: [0, 1, 2, 0, 2, 3], + uvs: attachment.uvs, + color: new Color(1, 1, 1, 1), + darkColor: new Color(0, 0, 0, 0), + darkTint: false, + skipRender: false + }; + } else { + vertices = new Float32Array(attachment.worldVerticesLength); + this.attachmentCacheData[slot.data.index][attachment.name] = { + id: `${slot.data.index}-${attachment.name}`, + vertices, + clipped: false, + indices: attachment.triangles, + uvs: attachment.uvs, + color: new Color(1, 1, 1, 1), + darkColor: new Color(0, 0, 0, 0), + darkTint: false, + skipRender: false + }; + } + return this.attachmentCacheData[slot.data.index][attachment.name]; + } + onViewUpdate() { + this._didChangeId += 1 << 12; + this._boundsDirty = true; + if (this.didViewUpdate) + return; + this.didViewUpdate = true; + const renderGroup = this.renderGroup || this.parentRenderGroup; + if (renderGroup) { + renderGroup.onChildViewUpdate(this); + } + this.debug?.renderDebug(this); + } + /** + * Attaches a PixiJS container to a specified slot. This will map the world transform of the slots bone + * to the attached container. A container can only be attached to one slot at a time. + * + * @param container - The container to attach to the slot + * @param slotRef - The slot id or slot to attach to + */ + addSlotObject(slot, container) { + slot = this.getSlotFromRef(slot); + for (const i in this._slotsObject) { + if (this._slotsObject[i]?.container === container) { + this.removeSlotObject(this._slotsObject[i].slot); + } + } + this.removeSlotObject(slot); + container.includeInBuild = false; + this.addChild(container); + this._slotsObject[slot.data.name] = { + container, + slot + }; + this.updateSlotObject(this._slotsObject[slot.data.name]); + } + /** + * Removes a PixiJS container from the slot it is attached to. + * + * @param container - The container to detach from the slot + * @param slotOrContainer - The container, slot id or slot to detach from + */ + removeSlotObject(slotOrContainer) { + let containerToRemove; + if (slotOrContainer instanceof import_pixi8.Container) { + for (const i in this._slotsObject) { + if (this._slotsObject[i]?.container === slotOrContainer) { + this._slotsObject[i] = null; + containerToRemove = slotOrContainer; + break; + } + } + } else { + const slot = this.getSlotFromRef(slotOrContainer); + containerToRemove = this._slotsObject[slot.data.name]?.container; + this._slotsObject[slot.data.name] = null; + } + if (containerToRemove) { + this.removeChild(containerToRemove); + containerToRemove.includeInBuild = true; + } + } + /** + * Returns a container attached to a slot, or undefined if no container is attached. + * + * @param slotRef - The slot id or slot to get the attachment from + * @returns - The container attached to the slot + */ + getSlotObject(slot) { + slot = this.getSlotFromRef(slot); + return this._slotsObject[slot.data.name].container; + } + updateBounds() { + this._boundsDirty = false; + this.skeletonBounds ||= new SkeletonBounds(); + const skeletonBounds = this.skeletonBounds; + skeletonBounds.update(this.skeleton, true); + if (skeletonBounds.minX === Infinity) { + this._applyState(); + const drawOrder = this.skeleton.drawOrder; + const bounds = this._bounds; + bounds.clear(); + for (let i = 0; i < drawOrder.length; i++) { + const slot = drawOrder[i]; + const attachment = slot.getAttachment(); + if (attachment && (attachment instanceof RegionAttachment || attachment instanceof MeshAttachment)) { + const cacheData = this._getCachedData(slot, attachment); + bounds.addVertexData(cacheData.vertices, 0, cacheData.vertices.length); + } + } + } else { + this._bounds.minX = skeletonBounds.minX; + this._bounds.minY = skeletonBounds.minY; + this._bounds.maxX = skeletonBounds.maxX; + this._bounds.maxY = skeletonBounds.maxY; + } + } + /** @internal */ + addBounds(bounds) { + bounds.addBounds(this.bounds); + } + /** + * Destroys this sprite renderable and optionally its texture. + * @param options - Options parameter. A boolean will act as if all options + * have been set to that value + * @param {boolean} [options.texture=false] - Should it destroy the current texture of the renderable as well + * @param {boolean} [options.textureSource=false] - Should it destroy the textureSource of the renderable as well + */ + destroy(options = false) { + super.destroy(options); + import_pixi8.Ticker.shared.remove(this.internalUpdate, this); + this.state.clearListeners(); + this.debug = void 0; + this.skeleton = null; + this.state = null; + this._slotsObject = null; + this._lastAttachments = null; + this.attachmentCacheData = null; + } + /** Converts a point from the skeleton coordinate system to the Pixi world coordinate system. */ + skeletonToPixiWorldCoordinates(point) { + this.worldTransform.apply(point, point); + } + /** Converts a point from the Pixi world coordinate system to the skeleton coordinate system. */ + pixiWorldCoordinatesToSkeleton(point) { + this.worldTransform.applyInverse(point, point); + } + /** Converts a point from the Pixi world coordinate system to the bone's local coordinate system. */ + pixiWorldCoordinatesToBone(point, bone) { + this.pixiWorldCoordinatesToSkeleton(point); + if (bone.parent) { + bone.parent.worldToLocal(point); + } else { + bone.worldToLocal(point); + } + } + static from({ skeleton, atlas, scale = 1 }) { + const cacheKey = `${skeleton}-${atlas}-${scale}`; + if (import_pixi8.Cache.has(cacheKey)) { + return new _Spine(import_pixi8.Cache.get(cacheKey)); + } + const skeletonAsset = import_pixi8.Assets.get(skeleton); + const atlasAsset = import_pixi8.Assets.get(atlas); + const attachmentLoader = new AtlasAttachmentLoader(atlasAsset); + const parser = skeletonAsset instanceof Uint8Array ? new SkeletonBinary(attachmentLoader) : new SkeletonJson(attachmentLoader); + parser.scale = scale; + const skeletonData = parser.readSkeletonData(skeletonAsset); + import_pixi8.Cache.set(cacheKey, skeletonData); + return new _Spine({ + skeletonData + }); + } + }; + + // src/SpineDebugRenderer.ts + var import_pixi9 = __require("pixi.js"); + var SpineDebugRenderer = class { + registeredSpines = /* @__PURE__ */ new Map(); + drawMeshHull = true; + drawMeshTriangles = true; + drawBones = true; + drawPaths = true; + drawBoundingBoxes = true; + drawClipping = true; + drawRegionAttachments = true; + drawEvents = true; + lineWidth = 1; + regionAttachmentsColor = 30975; + meshHullColor = 30975; + meshTrianglesColor = 16763904; + clippingPolygonColor = 16711935; + boundingBoxesRectColor = 65280; + boundingBoxesPolygonColor = 65280; + boundingBoxesCircleColor = 65280; + pathsCurveColor = 16711680; + pathsLineColor = 16711935; + skeletonXYColor = 16711680; + bonesColor = 61132; + eventFontSize = 24; + eventFontColor = 0; + /** + * The debug is attached by force to each spine object. + * So we need to create it inside the spine when we get the first update + */ + registerSpine(spine) { + if (this.registeredSpines.has(spine)) { + console.warn("SpineDebugRenderer.registerSpine() - this spine is already registered!", spine); + return; + } + const debugDisplayObjects = { + parentDebugContainer: new import_pixi9.Container(), + bones: new import_pixi9.Container(), + skeletonXY: new import_pixi9.Graphics(), + regionAttachmentsShape: new import_pixi9.Graphics(), + meshTrianglesLine: new import_pixi9.Graphics(), + meshHullLine: new import_pixi9.Graphics(), + clippingPolygon: new import_pixi9.Graphics(), + boundingBoxesRect: new import_pixi9.Graphics(), + boundingBoxesCircle: new import_pixi9.Graphics(), + boundingBoxesPolygon: new import_pixi9.Graphics(), + pathsCurve: new import_pixi9.Graphics(), + pathsLine: new import_pixi9.Graphics(), + eventText: new import_pixi9.Container(), + eventCallback: { + event: (_, event) => { + if (this.drawEvents) { + const scale = Math.abs(spine.scale.x || spine.scale.y || 1); + const text = new import_pixi9.Text({ + text: event.data.name, + style: { + fontSize: this.eventFontSize / scale, + fill: this.eventFontColor, + fontFamily: "monospace" + } + }); + text.scale.x = Math.sign(spine.scale.x); + text.anchor.set(0.5); + debugDisplayObjects.eventText.addChild(text); + setTimeout(() => { + if (!text.destroyed) { + text.destroy(); + } + }, 250); + } + } + } + }; + debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.bones); + debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.skeletonXY); + debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.regionAttachmentsShape); + debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.meshTrianglesLine); + debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.meshHullLine); + debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.clippingPolygon); + debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.boundingBoxesRect); + debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.boundingBoxesCircle); + debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.boundingBoxesPolygon); + debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.pathsCurve); + debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.pathsLine); + debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.eventText); + debugDisplayObjects.parentDebugContainer.zIndex = 9999999; + debugDisplayObjects.parentDebugContainer.accessibleChildren = false; + debugDisplayObjects.parentDebugContainer.eventMode = "none"; + debugDisplayObjects.parentDebugContainer.interactiveChildren = false; + spine.addChild(debugDisplayObjects.parentDebugContainer); + spine.state.addListener(debugDisplayObjects.eventCallback); + this.registeredSpines.set(spine, debugDisplayObjects); + } + renderDebug(spine) { + if (!this.registeredSpines.has(spine)) { + this.registerSpine(spine); + } + const debugDisplayObjects = this.registeredSpines.get(spine); + if (!debugDisplayObjects) { + return; + } + spine.addChild(debugDisplayObjects.parentDebugContainer); + debugDisplayObjects.skeletonXY.clear(); + debugDisplayObjects.regionAttachmentsShape.clear(); + debugDisplayObjects.meshTrianglesLine.clear(); + debugDisplayObjects.meshHullLine.clear(); + debugDisplayObjects.clippingPolygon.clear(); + debugDisplayObjects.boundingBoxesRect.clear(); + debugDisplayObjects.boundingBoxesCircle.clear(); + debugDisplayObjects.boundingBoxesPolygon.clear(); + debugDisplayObjects.pathsCurve.clear(); + debugDisplayObjects.pathsLine.clear(); + for (let len = debugDisplayObjects.bones.children.length; len > 0; len--) { + debugDisplayObjects.bones.children[len - 1].destroy({ children: true, texture: true, textureSource: true }); + } + const scale = Math.abs(spine.scale.x || spine.scale.y || 1); + const lineWidth = this.lineWidth / scale; + if (this.drawBones) { + this.drawBonesFunc(spine, debugDisplayObjects, lineWidth, scale); + } + if (this.drawPaths) { + this.drawPathsFunc(spine, debugDisplayObjects, lineWidth); + } + if (this.drawBoundingBoxes) { + this.drawBoundingBoxesFunc(spine, debugDisplayObjects, lineWidth); + } + if (this.drawClipping) { + this.drawClippingFunc(spine, debugDisplayObjects, lineWidth); + } + if (this.drawMeshHull || this.drawMeshTriangles) { + this.drawMeshHullAndMeshTriangles(spine, debugDisplayObjects, lineWidth); + } + if (this.drawRegionAttachments) { + this.drawRegionAttachmentsFunc(spine, debugDisplayObjects, lineWidth); + } + if (this.drawEvents) { + for (const child of debugDisplayObjects.eventText.children) { + child.alpha -= 0.05; + child.y -= 2; + } + } + } + drawBonesFunc(spine, debugDisplayObjects, lineWidth, scale) { + const skeleton = spine.skeleton; + const skeletonX = skeleton.x; + const skeletonY = skeleton.y; + const bones = skeleton.bones; + debugDisplayObjects.skeletonXY.strokeStyle = { width: lineWidth, color: this.skeletonXYColor }; + for (let i = 0, len = bones.length; i < len; i++) { + const bone = bones[i]; + const boneLen = bone.data.length; + const starX = skeletonX + bone.worldX; + const starY = skeletonY + bone.worldY; + const endX = skeletonX + boneLen * bone.a + bone.worldX; + const endY = skeletonY + boneLen * bone.b + bone.worldY; + if (bone.data.name === "root" || bone.data.parent === null) { + continue; + } + const w = Math.abs(starX - endX); + const h = Math.abs(starY - endY); + const a2 = Math.pow(w, 2); + const b = h; + const b2 = Math.pow(h, 2); + const c = Math.sqrt(a2 + b2); + const c2 = Math.pow(c, 2); + const rad = Math.PI / 180; + const B = Math.acos((c2 + b2 - a2) / (2 * b * c)) || 0; + if (c === 0) { + continue; + } + const gp = new import_pixi9.Graphics(); + debugDisplayObjects.bones.addChild(gp); + const refRation = c / 50 / scale; + gp.context.poly([0, 0, 0 - refRation, c - refRation * 3, 0, c - refRation, 0 + refRation, c - refRation * 3]).fill(this.bonesColor); + gp.x = starX; + gp.y = starY; + gp.pivot.y = c; + let rotation = 0; + if (starX < endX && starY < endY) { + rotation = -B + 180 * rad; + } else if (starX > endX && starY < endY) { + rotation = 180 * (rad + B); + } else if (starX > endX && starY > endY) { + rotation = -B; + } else if (starX < endX && starY > endY) { + rotation = B; + } else if (starY === endY && starX < endX) { + rotation = 90 * rad; + } else if (starY === endY && starX > endX) { + rotation = -90 * rad; + } else if (starX === endX && starY < endY) { + rotation = 180 * rad; + } else if (starX === endX && starY > endY) { + rotation = 0; + } + gp.rotation = rotation; + gp.circle(0, c, refRation * 1.2).fill({ color: 0, alpha: 0.6 }).stroke({ width: lineWidth, color: this.skeletonXYColor }); + } + const startDotSize = lineWidth * 3; + debugDisplayObjects.skeletonXY.context.moveTo(skeletonX - startDotSize, skeletonY - startDotSize).lineTo(skeletonX + startDotSize, skeletonY + startDotSize).moveTo(skeletonX + startDotSize, skeletonY - startDotSize).lineTo(skeletonX - startDotSize, skeletonY + startDotSize).stroke(); + } + drawRegionAttachmentsFunc(spine, debugDisplayObjects, lineWidth) { + const skeleton = spine.skeleton; + const slots = skeleton.slots; + for (let i = 0, len = slots.length; i < len; i++) { + const slot = slots[i]; + const attachment = slot.getAttachment(); + if (attachment === null || !(attachment instanceof RegionAttachment)) { + continue; + } + const regionAttachment = attachment; + const vertices = new Float32Array(8); + regionAttachment.computeWorldVertices(slot, vertices, 0, 2); + debugDisplayObjects.regionAttachmentsShape.poly(Array.from(vertices.slice(0, 8))); + } + debugDisplayObjects.regionAttachmentsShape.stroke({ + color: this.regionAttachmentsColor, + width: lineWidth + }); + } + drawMeshHullAndMeshTriangles(spine, debugDisplayObjects, lineWidth) { + const skeleton = spine.skeleton; + const slots = skeleton.slots; + for (let i = 0, len = slots.length; i < len; i++) { + const slot = slots[i]; + if (!slot.bone.active) { + continue; + } + const attachment = slot.getAttachment(); + if (attachment === null || !(attachment instanceof MeshAttachment)) { + continue; + } + const meshAttachment = attachment; + const vertices = new Float32Array(meshAttachment.worldVerticesLength); + const triangles = meshAttachment.triangles; + let hullLength = meshAttachment.hullLength; + meshAttachment.computeWorldVertices(slot, 0, meshAttachment.worldVerticesLength, vertices, 0, 2); + if (this.drawMeshTriangles) { + for (let i2 = 0, len2 = triangles.length; i2 < len2; i2 += 3) { + const v1 = triangles[i2] * 2; + const v2 = triangles[i2 + 1] * 2; + const v3 = triangles[i2 + 2] * 2; + debugDisplayObjects.meshTrianglesLine.context.moveTo(vertices[v1], vertices[v1 + 1]).lineTo(vertices[v2], vertices[v2 + 1]).lineTo(vertices[v3], vertices[v3 + 1]); + } + } + if (this.drawMeshHull && hullLength > 0) { + hullLength = (hullLength >> 1) * 2; + let lastX = vertices[hullLength - 2]; + let lastY = vertices[hullLength - 1]; + for (let i2 = 0, len2 = hullLength; i2 < len2; i2 += 2) { + const x = vertices[i2]; + const y = vertices[i2 + 1]; + debugDisplayObjects.meshHullLine.context.moveTo(x, y).lineTo(lastX, lastY); + lastX = x; + lastY = y; + } + } + } + debugDisplayObjects.meshHullLine.stroke({ width: lineWidth, color: this.meshHullColor }); + debugDisplayObjects.meshTrianglesLine.stroke({ width: lineWidth, color: this.meshTrianglesColor }); + } + drawClippingFunc(spine, debugDisplayObjects, lineWidth) { + const skeleton = spine.skeleton; + const slots = skeleton.slots; + for (let i = 0, len = slots.length; i < len; i++) { + const slot = slots[i]; + if (!slot.bone.active) { + continue; + } + const attachment = slot.getAttachment(); + if (attachment === null || !(attachment instanceof ClippingAttachment)) { + continue; + } + const clippingAttachment = attachment; + const nn = clippingAttachment.worldVerticesLength; + const world = new Float32Array(nn); + clippingAttachment.computeWorldVertices(slot, 0, nn, world, 0, 2); + debugDisplayObjects.clippingPolygon.poly(Array.from(world)); + } + debugDisplayObjects.clippingPolygon.stroke({ + width: lineWidth, + color: this.clippingPolygonColor, + alpha: 1 + }); + } + drawBoundingBoxesFunc(spine, debugDisplayObjects, lineWidth) { + debugDisplayObjects.boundingBoxesRect.lineStyle(lineWidth, this.boundingBoxesRectColor, 5); + const bounds = new SkeletonBounds(); + bounds.update(spine.skeleton, true); + debugDisplayObjects.boundingBoxesRect.rect(bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight()).stroke({ width: lineWidth, color: this.boundingBoxesRectColor }); + const polygons = bounds.polygons; + const drawPolygon = (polygonVertices, _offset, count) => { + if (count < 3) { + throw new Error("Polygon must contain at least 3 vertices"); + } + const paths = []; + const dotSize = lineWidth * 2; + for (let i = 0, len = polygonVertices.length; i < len; i += 2) { + const x1 = polygonVertices[i]; + const y1 = polygonVertices[i + 1]; + debugDisplayObjects.boundingBoxesCircle.beginFill(this.boundingBoxesCircleColor); + debugDisplayObjects.boundingBoxesCircle.drawCircle(x1, y1, dotSize); + debugDisplayObjects.boundingBoxesCircle.fill(0); + paths.push(x1, y1); + } + debugDisplayObjects.boundingBoxesPolygon.poly(paths).fill({ + color: this.boundingBoxesPolygonColor, + alpha: 0.1 + }).stroke({ + width: lineWidth, + color: this.boundingBoxesPolygonColor + }); + }; + for (let i = 0, len = polygons.length; i < len; i++) { + const polygon = polygons[i]; + drawPolygon(polygon, 0, polygon.length); + } + } + drawPathsFunc(spine, debugDisplayObjects, lineWidth) { + const skeleton = spine.skeleton; + const slots = skeleton.slots; + for (let i = 0, len = slots.length; i < len; i++) { + const slot = slots[i]; + if (!slot.bone.active) { + continue; + } + const attachment = slot.getAttachment(); + if (attachment === null || !(attachment instanceof PathAttachment)) { + continue; + } + const pathAttachment = attachment; + let nn = pathAttachment.worldVerticesLength; + const world = new Float32Array(nn); + pathAttachment.computeWorldVertices(slot, 0, nn, world, 0, 2); + let x1 = world[2]; + let y1 = world[3]; + let x2 = 0; + let y2 = 0; + if (pathAttachment.closed) { + const cx1 = world[0]; + const cy1 = world[1]; + const cx2 = world[nn - 2]; + const cy2 = world[nn - 1]; + x2 = world[nn - 4]; + y2 = world[nn - 3]; + debugDisplayObjects.pathsCurve.moveTo(x1, y1); + debugDisplayObjects.pathsCurve.bezierCurveTo(cx1, cy1, cx2, cy2, x2, y2); + debugDisplayObjects.pathsLine.moveTo(x1, y1); + debugDisplayObjects.pathsLine.lineTo(cx1, cy1); + debugDisplayObjects.pathsLine.moveTo(x2, y2); + debugDisplayObjects.pathsLine.lineTo(cx2, cy2); + } + nn -= 4; + for (let ii = 4; ii < nn; ii += 6) { + const cx1 = world[ii]; + const cy1 = world[ii + 1]; + const cx2 = world[ii + 2]; + const cy2 = world[ii + 3]; + x2 = world[ii + 4]; + y2 = world[ii + 5]; + debugDisplayObjects.pathsCurve.moveTo(x1, y1); + debugDisplayObjects.pathsCurve.bezierCurveTo(cx1, cy1, cx2, cy2, x2, y2); + debugDisplayObjects.pathsLine.moveTo(x1, y1); + debugDisplayObjects.pathsLine.lineTo(cx1, cy1); + debugDisplayObjects.pathsLine.moveTo(x2, y2); + debugDisplayObjects.pathsLine.lineTo(cx2, cy2); + x1 = x2; + y1 = y2; + } + } + debugDisplayObjects.pathsCurve.stroke({ width: lineWidth, color: this.pathsCurveColor }); + debugDisplayObjects.pathsLine.stroke({ width: lineWidth, color: this.pathsLineColor }); + } + unregisterSpine(spine) { + if (!this.registeredSpines.has(spine)) { + console.warn("SpineDebugRenderer.unregisterSpine() - spine is not registered, can't unregister!", spine); + } + const debugDisplayObjects = this.registeredSpines.get(spine); + if (!debugDisplayObjects) { + return; + } + spine.state.removeListener(debugDisplayObjects.eventCallback); + debugDisplayObjects.parentDebugContainer.destroy({ textureSource: true, children: true, texture: true }); + this.registeredSpines.delete(spine); + } + }; + return __toCommonJS(src_exports); +})(); +//# sourceMappingURL=spine-pixi.js.map diff --git a/dist/spine-pixi.js.map b/dist/spine-pixi.js.map new file mode 100644 index 0000000..4247d86 --- /dev/null +++ b/dist/spine-pixi.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../src/index.ts", "../src/require-shim.ts", "../src/assets/atlasLoader.ts", "../src/SpineTexture.ts", "../node_modules/@esotericsoftware/spine-core/src/Utils.ts", "../node_modules/@esotericsoftware/spine-core/src/attachments/Attachment.ts", "../node_modules/@esotericsoftware/spine-core/src/attachments/Sequence.ts", "../node_modules/@esotericsoftware/spine-core/src/Animation.ts", "../node_modules/@esotericsoftware/spine-core/src/AnimationState.ts", "../node_modules/@esotericsoftware/spine-core/src/AnimationStateData.ts", "../node_modules/@esotericsoftware/spine-core/src/attachments/BoundingBoxAttachment.ts", "../node_modules/@esotericsoftware/spine-core/src/attachments/ClippingAttachment.ts", "../node_modules/@esotericsoftware/spine-core/src/Texture.ts", "../node_modules/@esotericsoftware/spine-core/src/TextureAtlas.ts", "../node_modules/@esotericsoftware/spine-core/src/attachments/MeshAttachment.ts", "../node_modules/@esotericsoftware/spine-core/src/attachments/PathAttachment.ts", "../node_modules/@esotericsoftware/spine-core/src/attachments/PointAttachment.ts", "../node_modules/@esotericsoftware/spine-core/src/attachments/RegionAttachment.ts", "../node_modules/@esotericsoftware/spine-core/src/AtlasAttachmentLoader.ts", "../node_modules/@esotericsoftware/spine-core/src/BoneData.ts", "../node_modules/@esotericsoftware/spine-core/src/Bone.ts", "../node_modules/@esotericsoftware/spine-core/src/ConstraintData.ts", "../node_modules/@esotericsoftware/spine-core/src/AssetManagerBase.ts", "../node_modules/@esotericsoftware/spine-core/src/Event.ts", "../node_modules/@esotericsoftware/spine-core/src/EventData.ts", "../node_modules/@esotericsoftware/spine-core/src/IkConstraint.ts", "../node_modules/@esotericsoftware/spine-core/src/IkConstraintData.ts", "../node_modules/@esotericsoftware/spine-core/src/PathConstraintData.ts", "../node_modules/@esotericsoftware/spine-core/src/PathConstraint.ts", "../node_modules/@esotericsoftware/spine-core/src/PhysicsConstraint.ts", "../node_modules/@esotericsoftware/spine-core/src/Slot.ts", "../node_modules/@esotericsoftware/spine-core/src/TransformConstraint.ts", "../node_modules/@esotericsoftware/spine-core/src/Skeleton.ts", "../node_modules/@esotericsoftware/spine-core/src/PhysicsConstraintData.ts", "../node_modules/@esotericsoftware/spine-core/src/SkeletonData.ts", "../node_modules/@esotericsoftware/spine-core/src/Skin.ts", "../node_modules/@esotericsoftware/spine-core/src/SlotData.ts", "../node_modules/@esotericsoftware/spine-core/src/TransformConstraintData.ts", "../node_modules/@esotericsoftware/spine-core/src/SkeletonBinary.ts", "../node_modules/@esotericsoftware/spine-core/src/SkeletonBounds.ts", "../node_modules/@esotericsoftware/spine-core/src/Triangulator.ts", "../node_modules/@esotericsoftware/spine-core/src/SkeletonClipping.ts", "../node_modules/@esotericsoftware/spine-core/src/SkeletonJson.ts", "../node_modules/@esotericsoftware/spine-core/src/polyfills.ts", "../src/assets/skeletonLoader.ts", "../src/darktint/DarkTintBatcher.ts", "../src/darktint/DarkTintBatchGeometry.ts", "../src/darktint/DarkTintShader.ts", "../src/darktint/darkTintBit.ts", "../src/SpinePipe.ts", "../src/BatchableSpineSlot.ts", "../src/Spine.ts", "../src/SpineDebugRenderer.ts"], + "sourcesContent": ["/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated September 24, 2021. Replaces all prior versions.\n *\n * Copyright (c) 2013-2021, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software\n * or otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport './require-shim.js'; // Side effects add require pixi.js to global scope\nimport './assets/atlasLoader.js'; // Side effects install the loaders into pixi\nimport './assets/skeletonLoader.js'; // Side effects install the loaders into pixi\nimport './darktint/DarkTintBatcher.js'; // Side effects install the batcher into pixi\nimport './SpinePipe.js';\n\nexport * from './assets/atlasLoader.js';\nexport * from './assets/skeletonLoader.js';\nexport * from './require-shim.js';\nexport * from './Spine.js';\nexport * from './SpineDebugRenderer.js';\nexport * from './SpinePipe.js';\nexport * from './SpineTexture.js';\nexport * from '@esotericsoftware/spine-core';\n", "/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\ndeclare global\n{\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-var\n var require: any;\n // eslint-disable-next-line no-var\n var PIXI: any;\n}\n\nif (typeof window !== 'undefined' && window.PIXI)\n{\n const prevRequire = window.require;\n\n // eslint-disable-next-line consistent-return\n (window as any).require = (x: string) =>\n {\n if (prevRequire) return prevRequire(x);\n else if (x.startsWith('@pixi/') || x.startsWith('pixi.js')) return window.PIXI;\n };\n}\n\nexport { };\n", "/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport {\n checkExtension,\n DOMAdapter,\n extensions,\n ExtensionType,\n LoaderParserPriority,\n path,\n TextureSource\n} from 'pixi.js';\nimport { SpineTexture } from '../SpineTexture';\nimport { TextureAtlas } from '@esotericsoftware/spine-core';\n\nimport type { AssetExtension, Loader, ResolvedAsset, Texture } from 'pixi.js';\n\ntype RawAtlas = string;\n\nconst spineTextureAtlasLoader: AssetExtension = {\n extension: ExtensionType.Asset,\n\n loader: {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.Normal,\n name: 'spineTextureAtlasLoader',\n },\n\n test(url: string): boolean\n {\n return checkExtension(url, '.atlas');\n },\n\n async load(url: string): Promise\n {\n const response = await DOMAdapter.get().fetch(url);\n\n const txt = await response.text();\n\n return txt;\n },\n\n testParse(asset: unknown, options: ResolvedAsset): Promise\n {\n const isExtensionRight = checkExtension(options.src as string, '.atlas');\n const isString = typeof asset === 'string';\n\n return Promise.resolve(isExtensionRight && isString);\n },\n\n unload(atlas: TextureAtlas)\n {\n atlas.dispose();\n },\n\n async parse(asset: RawAtlas, options: ResolvedAsset, loader: Loader): Promise\n {\n const metadata: ISpineAtlasMetadata = options.data || {};\n let basePath = path.dirname(options.src as string);\n\n if (basePath && basePath.lastIndexOf('/') !== basePath.length - 1)\n {\n basePath += '/';\n }\n\n // Retval is going to be a texture atlas. However we need to wait for it's callback to resolve this promise.\n const retval = new TextureAtlas(asset);\n\n // If the user gave me only one texture, that one is assumed to be the \"first\" texture in the atlas\n if (metadata.images instanceof TextureSource || typeof metadata.images === 'string')\n {\n const pixiTexture = metadata.images;\n\n metadata.images = {} as Record;\n metadata.images[retval.pages[0].name] = pixiTexture;\n }\n\n // we will wait for all promises for the textures at the same time at the end.\n const textureLoadingPromises:Promise[] = [];\n\n // fill the pages\n for (const page of retval.pages)\n {\n const pageName = page.name;\n const providedPage = metadata?.images ? metadata.images[pageName] : undefined;\n\n if (providedPage instanceof TextureSource)\n {\n page.setTexture(SpineTexture.from(providedPage));\n }\n else\n {\n // eslint-disable-next-line max-len\n const url: string = providedPage ?? path.normalize([...basePath.split(path.sep), pageName].join(path.sep));\n\n const assetsToLoadIn = {\n src: url,\n data: {\n ...metadata.imageMetadata,\n alphaMode: page.pma ? 'premultiplied-alpha' : 'premultiply-alpha-on-upload'\n }\n };\n\n const pixiPromise = loader.load(assetsToLoadIn).then((texture) =>\n {\n page.setTexture(SpineTexture.from(texture.source));\n });\n\n textureLoadingPromises.push(pixiPromise);\n }\n }\n\n await Promise.all(textureLoadingPromises);\n\n return retval;\n },\n },\n} as AssetExtension;\n\nextensions.add(spineTextureAtlasLoader);\n\nexport interface ISpineAtlasMetadata\n{\n // If you are downloading an .atlas file, this metadata will go to the Texture loader\n imageMetadata?: any;\n // If you already have atlas pages loaded as pixi textures\n // and want to use that to create the atlas, you can pass them here\n images?: TextureSource | string | Record;\n}\n", "/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport { Texture as PixiTexture } from 'pixi.js';\nimport { BlendMode, Texture, TextureFilter, TextureWrap } from '@esotericsoftware/spine-core';\n\nimport type { BLEND_MODES, SCALE_MODE, TextureSource, WRAP_MODE } from 'pixi.js';\n\nexport class SpineTexture extends Texture\n{\n private static readonly textureMap: Map = new Map();\n\n public static from(texture: TextureSource): SpineTexture\n {\n if (SpineTexture.textureMap.has(texture))\n {\n return SpineTexture.textureMap.get(texture) as SpineTexture;\n }\n\n return new SpineTexture(texture);\n }\n\n public readonly texture: PixiTexture;\n\n private constructor(image: TextureSource)\n {\n // Todo: maybe add error handling if you feed a video texture to spine?\n super(image.resource);\n this.texture = PixiTexture.from(image);\n }\n\n public setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void\n {\n const style = this.texture.source.style;\n\n style.minFilter = SpineTexture.toPixiTextureFilter(minFilter);\n style.magFilter = SpineTexture.toPixiTextureFilter(magFilter);\n this.texture.source.autoGenerateMipmaps = SpineTexture.toPixiMipMap(minFilter);\n this.texture.source.updateMipmaps();\n }\n\n public setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void\n {\n const style = this.texture.source.style;\n\n style.addressModeU = SpineTexture.toPixiTextureWrap(uWrap);\n style.addressModeV = SpineTexture.toPixiTextureWrap(vWrap);\n }\n\n public dispose(): void\n {\n // I am not entirely sure about this...\n this.texture.destroy();\n }\n\n private static toPixiMipMap(filter: TextureFilter): boolean\n {\n switch (filter)\n {\n case TextureFilter.Nearest:\n case TextureFilter.Linear:\n return false;\n\n case TextureFilter.MipMapNearestLinear:\n case TextureFilter.MipMapNearestNearest:\n case TextureFilter.MipMapLinearLinear: // TextureFilter.MipMapLinearLinear == TextureFilter.MipMap\n case TextureFilter.MipMapLinearNearest:\n return true;\n\n default:\n throw new Error(`Unknown texture filter: ${String(filter)}`);\n }\n }\n\n private static toPixiTextureFilter(filter: TextureFilter): SCALE_MODE\n {\n switch (filter)\n {\n case TextureFilter.Nearest:\n case TextureFilter.MipMapNearestLinear:\n case TextureFilter.MipMapNearestNearest:\n return 'nearest';\n\n case TextureFilter.Linear:\n case TextureFilter.MipMapLinearLinear: // TextureFilter.MipMapLinearLinear == TextureFilter.MipMap\n case TextureFilter.MipMapLinearNearest:\n return 'linear';\n\n default:\n throw new Error(`Unknown texture filter: ${String(filter)}`);\n }\n }\n\n private static toPixiTextureWrap(wrap: TextureWrap): WRAP_MODE\n {\n switch (wrap)\n {\n case TextureWrap.ClampToEdge:\n return 'clamp-to-edge';\n\n case TextureWrap.MirroredRepeat:\n return 'mirror-repeat';\n\n case TextureWrap.Repeat:\n return 'repeat';\n\n default:\n throw new Error(`Unknown texture wrap: ${String(wrap)}`);\n }\n }\n\n public static toPixiBlending(blend: BlendMode): BLEND_MODES\n {\n switch (blend)\n {\n case BlendMode.Normal:\n return 'normal';\n\n case BlendMode.Additive:\n return 'add';\n\n case BlendMode.Multiply:\n return 'multiply';\n\n case BlendMode.Screen:\n return 'screen';\n\n default:\n throw new Error(`Unknown blendMode: ${String(blend)}`);\n }\n }\n}\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport {\n type AssetExtension,\n checkExtension,\n DOMAdapter,\n extensions,\n ExtensionType,\n LoaderParserPriority,\n ResolvedAsset\n} from 'pixi.js';\n\ntype SkeletonJsonAsset = any;\ntype SkeletonBinaryAsset = Uint8Array;\n\nfunction isJson(resource: any): resource is SkeletonJsonAsset\n{\n return Object.prototype.hasOwnProperty.call(resource, 'bones');\n}\n\nfunction isBuffer(resource: any): resource is SkeletonBinaryAsset\n{\n return resource instanceof Uint8Array;\n}\n\nconst spineLoaderExtension: AssetExtension = {\n extension: ExtensionType.Asset,\n\n loader: {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.Normal,\n name: 'spineSkeletonLoader',\n },\n\n test(url)\n {\n return checkExtension(url, '.skel');\n },\n\n async load(url: string): Promise\n {\n const response = await DOMAdapter.get().fetch(url);\n\n const buffer = new Uint8Array(await response.arrayBuffer());\n\n return buffer;\n },\n testParse(asset: unknown, options: ResolvedAsset): Promise\n {\n const isJsonSpineModel = checkExtension(options.src, '.json') && isJson(asset);\n const isBinarySpineModel = checkExtension(options.src, '.skel') && isBuffer(asset);\n\n return Promise.resolve(isJsonSpineModel || isBinarySpineModel);\n },\n },\n} as AssetExtension;\n\nextensions.add(spineLoaderExtension);\n", "import {\n Batcher,\n DefaultBatchableMeshElement,\n DefaultBatchableQuadElement,\n extensions,\n ExtensionType,\n Shader\n} from 'pixi.js';\nimport { DarkTintBatchGeometry } from './DarkTintBatchGeometry';\nimport { DarkTintShader } from './DarkTintShader';\n\nlet defaultShader: Shader = null;\n\n/** The default batcher is used to batch quads and meshes. */\nexport class DarkTintBatcher extends Batcher\n{\n /** @ignore */\n public static extension = {\n type: [\n ExtensionType.Batcher,\n ],\n name: 'darkTint',\n } as const;\n\n public geometry = new DarkTintBatchGeometry();\n public shader = defaultShader || (defaultShader = new DarkTintShader(this.maxTextures));\n public name = DarkTintBatcher.extension.name;\n\n /** The size of one attribute. 1 = 32 bit. x, y, u, v, color, darkColor, textureIdAndRound -> total = 7 */\n public vertexSize = 7;\n\n public packAttributes(\n element: DefaultBatchableMeshElement & { darkColor: number },\n float32View: Float32Array,\n uint32View: Uint32Array,\n index: number,\n textureId: number\n )\n {\n const textureIdAndRound = (textureId << 16) | (element.roundPixels & 0xFFFF);\n\n const wt = element.transform;\n\n const a = wt.a;\n const b = wt.b;\n const c = wt.c;\n const d = wt.d;\n const tx = wt.tx;\n const ty = wt.ty;\n\n const { positions, uvs } = element;\n\n const argb = element.color;\n const darkColor = element.darkColor;\n\n const offset = element.attributeOffset;\n const end = offset + element.attributeSize;\n\n for (let i = offset; i < end; i++)\n {\n const i2 = i * 2;\n\n const x = positions[i2];\n const y = positions[(i2) + 1];\n\n float32View[index++] = (a * x) + (c * y) + tx;\n float32View[index++] = (d * y) + (b * x) + ty;\n\n float32View[index++] = uvs[i2];\n float32View[index++] = uvs[(i2) + 1];\n\n uint32View[index++] = argb;\n uint32View[index++] = darkColor;\n\n uint32View[index++] = textureIdAndRound;\n }\n }\n\n public packQuadAttributes(\n element: DefaultBatchableQuadElement & { darkColor: number },\n float32View: Float32Array,\n uint32View: Uint32Array,\n index: number,\n textureId: number\n )\n {\n const texture = element.texture;\n\n const wt = element.transform;\n\n const a = wt.a;\n const b = wt.b;\n const c = wt.c;\n const d = wt.d;\n const tx = wt.tx;\n const ty = wt.ty;\n\n const bounds = element.bounds;\n\n const w0 = bounds.maxX;\n const w1 = bounds.minX;\n const h0 = bounds.maxY;\n const h1 = bounds.minY;\n\n const uvs = texture.uvs;\n\n // _ _ _ _\n // a b g r\n const argb = element.color;\n const darkColor = element.darkColor;\n\n const textureIdAndRound = (textureId << 16) | (element.roundPixels & 0xFFFF);\n\n float32View[index + 0] = (a * w1) + (c * h1) + tx;\n float32View[index + 1] = (d * h1) + (b * w1) + ty;\n\n float32View[index + 2] = uvs.x0;\n float32View[index + 3] = uvs.y0;\n\n uint32View[index + 4] = argb;\n uint32View[index + 5] = darkColor;\n uint32View[index + 6] = textureIdAndRound;\n\n // xy\n float32View[index + 7] = (a * w0) + (c * h1) + tx;\n float32View[index + 8] = (d * h1) + (b * w0) + ty;\n\n float32View[index + 9] = uvs.x1;\n float32View[index + 10] = uvs.y1;\n\n uint32View[index + 11] = argb;\n uint32View[index + 12] = darkColor;\n uint32View[index + 13] = textureIdAndRound;\n\n // xy\n float32View[index + 14] = (a * w0) + (c * h0) + tx;\n float32View[index + 15] = (d * h0) + (b * w0) + ty;\n\n float32View[index + 16] = uvs.x2;\n float32View[index + 17] = uvs.y2;\n\n uint32View[index + 18] = argb;\n uint32View[index + 19] = darkColor;\n uint32View[index + 20] = textureIdAndRound;\n\n // xy\n float32View[index + 21] = (a * w1) + (c * h0) + tx;\n float32View[index + 22] = (d * h0) + (b * w1) + ty;\n\n float32View[index + 23] = uvs.x3;\n float32View[index + 24] = uvs.y3;\n\n uint32View[index + 25] = argb;\n uint32View[index + 26] = darkColor;\n uint32View[index + 27] = textureIdAndRound;\n }\n}\n\nextensions.add(DarkTintBatcher);\n", "import { Buffer, BufferUsage, Geometry } from 'pixi.js';\n\nconst placeHolderBufferData = new Float32Array(1);\nconst placeHolderIndexData = new Uint32Array(1);\n\nexport class DarkTintBatchGeometry extends Geometry\n{\n constructor()\n {\n const vertexSize = 7;\n\n const attributeBuffer = new Buffer({\n data: placeHolderBufferData,\n label: 'attribute-batch-buffer',\n usage: BufferUsage.VERTEX | BufferUsage.COPY_DST,\n shrinkToFit: false,\n });\n\n const indexBuffer = new Buffer({\n data: placeHolderIndexData,\n label: 'index-batch-buffer',\n usage: BufferUsage.INDEX | BufferUsage.COPY_DST, // | BufferUsage.STATIC,\n shrinkToFit: false,\n });\n\n const stride = vertexSize * 4;\n\n super({\n attributes: {\n aPosition: {\n buffer: attributeBuffer,\n format: 'float32x2',\n stride,\n offset: 0,\n },\n aUV: {\n buffer: attributeBuffer,\n format: 'float32x2',\n stride,\n offset: 2 * 4,\n },\n aColor: {\n buffer: attributeBuffer,\n format: 'unorm8x4',\n stride,\n offset: 4 * 4,\n },\n aDarkColor: {\n buffer: attributeBuffer,\n format: 'unorm8x4',\n stride,\n offset: 5 * 4,\n },\n aTextureIdAndRound: {\n buffer: attributeBuffer,\n format: 'uint16x2',\n stride,\n offset: 6 * 4,\n },\n },\n indexBuffer\n });\n }\n}\n\n", "import {\n colorBit,\n colorBitGl,\n compileHighShaderGlProgram,\n compileHighShaderGpuProgram,\n generateTextureBatchBit,\n generateTextureBatchBitGl,\n getBatchSamplersUniformGroup,\n roundPixelsBit,\n roundPixelsBitGl,\n Shader\n} from 'pixi.js';\nimport { darkTintBit, darkTintBitGl } from './darkTintBit';\n\nexport class DarkTintShader extends Shader\n{\n constructor(maxTextures: number)\n {\n const glProgram = compileHighShaderGlProgram({\n name: 'dark-tint-batch',\n bits: [\n colorBitGl,\n darkTintBitGl,\n generateTextureBatchBitGl(maxTextures),\n roundPixelsBitGl,\n ]\n });\n\n const gpuProgram = compileHighShaderGpuProgram({\n name: 'dark-tint-batch',\n bits: [\n colorBit,\n darkTintBit,\n generateTextureBatchBit(maxTextures),\n roundPixelsBit,\n ]\n });\n\n super({\n glProgram,\n gpuProgram,\n resources: {\n batchSamplers: getBatchSamplersUniformGroup(maxTextures),\n }\n });\n }\n}\n", "/* eslint-disable max-len */\nexport const darkTintBit = {\n name: 'color-bit',\n vertex: {\n header: /* wgsl */`\n @in aDarkColor: vec4;\n @out vDarkColor: vec4;\n `,\n main: /* wgsl */`\n vDarkColor = aDarkColor;\n `\n },\n fragment: {\n header: /* wgsl */`\n @in vDarkColor: vec4;\n `,\n end: /* wgsl */`\n \n let alpha = outColor.a * vColor.a;\n let rgb = ((outColor.a - 1.0) * vDarkColor.a + 1.0 - outColor.rgb) * vDarkColor.rgb + outColor.rgb * vColor.rgb;\n\n finalColor = vec4(rgb, alpha);\n\n `\n }\n};\n\nexport const darkTintBitGl = {\n name: 'color-bit',\n vertex: {\n header: /* glsl */`\n in vec4 aDarkColor;\n out vec4 vDarkColor;\n `,\n main: /* glsl */`\n vDarkColor = aDarkColor;\n `\n },\n fragment: {\n header: /* glsl */`\n in vec4 vDarkColor;\n `,\n end: /* glsl */`\n \n finalColor.a = outColor.a * vColor.a;\n finalColor.rgb = ((outColor.a - 1.0) * vDarkColor.a + 1.0 - outColor.rgb) * vDarkColor.rgb + outColor.rgb * vColor.rgb;\n `\n }\n};\n", "/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport {\n collectAllRenderables,\n extensions, ExtensionType,\n InstructionSet,\n type Renderer,\n type RenderPipe,\n Texture\n} from 'pixi.js';\nimport { BatchableSpineSlot } from './BatchableSpineSlot';\nimport { Spine } from './Spine';\nimport { MeshAttachment, RegionAttachment, SkeletonClipping } from '@esotericsoftware/spine-core';\n\nconst clipper = new SkeletonClipping();\n\nconst spineBlendModeMap = {\n 0: 'normal',\n 1: 'add',\n 2: 'multiply',\n 3: 'screen'\n};\n\n// eslint-disable-next-line max-len\nexport class SpinePipe implements RenderPipe\n{\n /** @ignore */\n static extension = {\n type: [\n ExtensionType.WebGLPipes,\n ExtensionType.WebGPUPipes,\n ExtensionType.CanvasPipes,\n ],\n name: 'spine',\n } as const;\n\n renderer: Renderer;\n\n private gpuSpineData:Record = {};\n\n constructor(renderer: Renderer)\n {\n this.renderer = renderer;\n }\n\n validateRenderable(spine: Spine): boolean\n {\n spine._applyState();\n // loop through and see if the mesh lengths have changed..\n\n return spine.spineAttachmentsDirty;\n }\n\n addRenderable(spine: Spine, instructionSet:InstructionSet)\n {\n const gpuSpine = this.gpuSpineData[spine.uid] ||= { slotBatches: {} };\n\n const batcher = this.renderer.renderPipes.batch;\n\n const drawOrder = spine.skeleton.drawOrder;\n\n const roundPixels = (this.renderer._roundPixels | spine._roundPixels) as 0 | 1;\n\n spine._applyState();\n\n for (let i = 0, n = drawOrder.length; i < n; i++)\n {\n const slot = drawOrder[i];\n const attachment = slot.getAttachment();\n const blendMode = spineBlendModeMap[slot.data.blendMode];\n\n if (attachment instanceof RegionAttachment || attachment instanceof MeshAttachment)\n {\n const cacheData = spine._getCachedData(slot, attachment);\n const batchableSpineSlot = gpuSpine.slotBatches[cacheData.id] ||= new BatchableSpineSlot();\n\n batchableSpineSlot.setData(\n spine,\n cacheData,\n (attachment.region?.texture.texture) || Texture.EMPTY,\n blendMode,\n roundPixels\n );\n\n if (!cacheData.skipRender)\n {\n batcher.addToBatch(batchableSpineSlot, instructionSet);\n }\n }\n\n const containerAttachment = spine._slotsObject[slot.data.name];\n\n if (containerAttachment)\n {\n const container = containerAttachment.container;\n\n container.includeInBuild = true;\n collectAllRenderables(container, instructionSet, this.renderer);\n container.includeInBuild = false;\n }\n }\n\n clipper.clipEnd();\n }\n\n updateRenderable(spine: Spine)\n {\n // we assume that spine will always change its verts size..\n const gpuSpine = this.gpuSpineData[spine.uid];\n\n spine._applyState();\n\n const drawOrder = spine.skeleton.drawOrder;\n\n for (let i = 0, n = drawOrder.length; i < n; i++)\n {\n const slot = drawOrder[i];\n const attachment = slot.getAttachment();\n\n if (attachment instanceof RegionAttachment || attachment instanceof MeshAttachment)\n {\n const cacheData = spine._getCachedData(slot, attachment);\n\n if (!cacheData.skipRender)\n {\n const batchableSpineSlot = gpuSpine.slotBatches[spine._getCachedData(slot, attachment).id];\n\n batchableSpineSlot._batcher?.updateElement(batchableSpineSlot);\n }\n }\n }\n }\n\n destroyRenderable(spine: Spine)\n {\n // TODO remove the renderable from the batcher\n this.gpuSpineData[spine.uid] = null as any;\n }\n\n destroy()\n {\n this.gpuSpineData = null as any;\n this.renderer = null as any;\n }\n}\n\nextensions.add(SpinePipe);\n", "/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport { AttachmentCacheData, Spine } from './Spine';\n\nimport type { Batch, Batcher, BLEND_MODES, DefaultBatchableMeshElement, Matrix, Texture } from 'pixi.js';\n\nexport class BatchableSpineSlot implements DefaultBatchableMeshElement\n{\n indexOffset = 0;\n attributeOffset = 0;\n\n indexSize: number;\n attributeSize: number;\n\n batcherName = 'darkTint';\n\n readonly packAsQuad = false;\n\n renderable: Spine;\n\n positions: Float32Array;\n indices: number[] | Uint16Array;\n uvs: Float32Array;\n\n roundPixels: 0 | 1;\n data: AttachmentCacheData;\n blendMode: BLEND_MODES;\n\n darkTint: number;\n\n texture: Texture;\n\n transform: Matrix;\n\n // used internally by batcher specific..\n // stored for efficient updating..\n _textureId: number;\n _attributeStart: number;\n _indexStart: number;\n _batcher: Batcher;\n _batch: Batch;\n\n get color()\n {\n const slotColor = this.data.color;\n\n const parentColor:number = this.renderable.groupColor;\n const parentAlpha:number = this.renderable.groupAlpha;\n let abgr:number;\n\n const mixedA = (slotColor.a * parentAlpha) * 255;\n\n if (parentColor !== 0xFFFFFF)\n {\n const parentB = (parentColor >> 16) & 0xFF;\n const parentG = (parentColor >> 8) & 0xFF;\n const parentR = parentColor & 0xFF;\n\n const mixedR = (slotColor.r * parentR);\n const mixedG = (slotColor.g * parentG);\n const mixedB = (slotColor.b * parentB);\n\n abgr = ((mixedA) << 24) | (mixedB << 16) | (mixedG << 8) | mixedR;\n }\n else\n {\n abgr = ((mixedA) << 24) | ((slotColor.b * 255) << 16) | ((slotColor.g * 255) << 8) | (slotColor.r * 255);\n }\n\n return abgr;\n }\n\n get darkColor()\n {\n const darkColor = this.data.darkColor;\n\n return ((darkColor.a) << 24) | ((darkColor.b * 255) << 16) | ((darkColor.g * 255) << 8) | (darkColor.r * 255);\n }\n\n get groupTransform() { return this.renderable.groupTransform; }\n\n setData(\n renderable:Spine,\n data:AttachmentCacheData,\n texture:Texture,\n blendMode:BLEND_MODES,\n roundPixels: 0 | 1)\n {\n this.renderable = renderable;\n this.transform = renderable.groupTransform;\n this.data = data;\n\n if (data.clipped)\n {\n const clippedData = data.clippedData;\n\n this.indexSize = clippedData.indicesCount;\n this.attributeSize = clippedData.vertexCount;\n this.positions = clippedData.vertices;\n this.indices = clippedData.indices;\n this.uvs = clippedData.uvs;\n }\n else\n {\n this.indexSize = data.indices.length;\n this.attributeSize = data.vertices.length / 2;\n this.positions = data.vertices;\n this.indices = data.indices;\n this.uvs = data.uvs;\n }\n\n this.texture = texture;\n this.roundPixels = roundPixels;\n\n this.blendMode = blendMode;\n\n this.batcherName = data.darkTint ? 'darkTint' : 'default';\n }\n}\n", "/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport {\n Assets,\n Bounds,\n Cache,\n Container,\n ContainerOptions,\n DEG_TO_RAD,\n DestroyOptions,\n PointData,\n Ticker,\n ViewContainer,\n} from 'pixi.js';\nimport { ISpineDebugRenderer } from './SpineDebugRenderer';\nimport {\n AnimationState,\n AnimationStateData,\n AtlasAttachmentLoader,\n Attachment,\n Bone,\n ClippingAttachment,\n Color,\n MeshAttachment,\n Physics,\n RegionAttachment,\n Skeleton,\n SkeletonBinary,\n SkeletonBounds,\n SkeletonClipping,\n SkeletonData,\n SkeletonJson,\n Slot,\n type TextureAtlas,\n TrackEntry,\n Vector2,\n} from '@esotericsoftware/spine-core';\n\nexport type SpineFromOptions = {\n skeleton: string;\n atlas: string;\n scale?: number;\n};\n\nconst vectorAux = new Vector2();\nconst lightColor = new Color();\nconst darkColor = new Color();\n\nSkeleton.yDown = true;\n\nconst clipper = new SkeletonClipping();\n\nexport interface SpineOptions extends ContainerOptions\n{\n skeletonData: SkeletonData;\n autoUpdate?: boolean;\n}\n\nexport interface SpineEvents\n{\n complete: [trackEntry: TrackEntry];\n dispose: [trackEntry: TrackEntry];\n end: [trackEntry: TrackEntry];\n event: [trackEntry: TrackEntry, event: Event];\n interrupt: [trackEntry: TrackEntry];\n start: [trackEntry: TrackEntry];\n}\n\nexport interface AttachmentCacheData\n{\n id: string;\n clipped: boolean;\n vertices: Float32Array;\n uvs: Float32Array;\n indices: number[];\n color: Color;\n darkColor: Color | null;\n darkTint: boolean;\n skipRender: boolean;\n clippedData?: {\n vertices: Float32Array;\n uvs: Float32Array;\n indices: Uint16Array;\n vertexCount: number;\n indicesCount: number;\n };\n}\n\nexport class Spine extends ViewContainer\n{\n // Pixi properties\n public batched = true;\n public buildId = 0;\n public override readonly renderPipeId = 'spine';\n public _didSpineUpdate = false;\n\n public beforeUpdateWorldTransforms: (object: Spine) => void = () => { /** */ };\n public afterUpdateWorldTransforms: (object: Spine) => void = () => { /** */ };\n\n // Spine properties\n public skeleton: Skeleton;\n public state: AnimationState;\n public skeletonBounds: SkeletonBounds;\n private _debug?: ISpineDebugRenderer | undefined = undefined;\n\n readonly _slotsObject: Record = Object.create(null);\n\n private getSlotFromRef(slotRef: number | string | Slot): Slot\n {\n let slot: Slot | null;\n\n if (typeof slotRef === 'number') slot = this.skeleton.slots[slotRef];\n else if (typeof slotRef === 'string') slot = this.skeleton.findSlot(slotRef);\n else slot = slotRef;\n\n if (!slot) throw new Error(`No slot found with the given slot reference: ${slotRef}`);\n\n return slot;\n }\n\n public spineAttachmentsDirty: boolean;\n private _lastAttachments: Attachment[];\n\n private _stateChanged: boolean;\n private attachmentCacheData: Record[] = [];\n\n public get debug(): ISpineDebugRenderer | undefined\n {\n return this._debug;\n }\n\n public set debug(value: ISpineDebugRenderer | undefined)\n {\n if (this._debug)\n {\n this._debug.unregisterSpine(this);\n }\n if (value)\n {\n value.registerSpine(this);\n }\n this._debug = value;\n }\n\n private autoUpdateWarned = false;\n private _autoUpdate = true;\n\n public get autoUpdate(): boolean\n {\n return this._autoUpdate;\n }\n\n public set autoUpdate(value: boolean)\n {\n if (value)\n {\n Ticker.shared.add(this.internalUpdate, this);\n this.autoUpdateWarned = false;\n }\n else\n {\n Ticker.shared.remove(this.internalUpdate, this);\n }\n\n this._autoUpdate = value;\n }\n\n constructor(options: SpineOptions | SkeletonData)\n {\n if (options instanceof SkeletonData)\n {\n options = {\n skeletonData: options,\n };\n }\n\n super();\n\n const skeletonData = options instanceof SkeletonData ? options : options.skeletonData;\n\n this.skeleton = new Skeleton(skeletonData);\n this.state = new AnimationState(new AnimationStateData(skeletonData));\n this.autoUpdate = options?.autoUpdate ?? true;\n\n const slots = this.skeleton.slots;\n\n for (let i = 0; i < slots.length; i++)\n {\n this.attachmentCacheData[i] = Object.create(null);\n }\n\n this._updateState(0);\n }\n\n public update(dt: number): void\n {\n if (this.autoUpdate && !this.autoUpdateWarned)\n {\n console.warn(\n // eslint-disable-next-line max-len\n 'You are calling update on a Spine instance that has autoUpdate set to true. This is probably not what you want.',\n );\n this.autoUpdateWarned = true;\n }\n\n this.internalUpdate(0, dt);\n }\n\n protected internalUpdate(_deltaFrame: any, deltaSeconds?: number): void\n {\n // Because reasons, pixi uses deltaFrames at 60fps.\n // We ignore the default deltaFrames and use the deltaSeconds from pixi ticker.\n this._updateState(deltaSeconds ?? Ticker.shared.deltaMS / 1000);\n }\n\n get bounds()\n {\n if (this._boundsDirty)\n {\n this.updateBounds();\n }\n\n return this._bounds;\n }\n\n public setBonePosition(bone: string | Bone, position: PointData): void\n {\n const boneAux = bone;\n\n if (typeof bone === 'string')\n {\n bone = this.skeleton.findBone(bone) as Bone;\n }\n\n if (!bone) throw Error(`Cant set bone position, bone ${String(boneAux)} not found`);\n vectorAux.set(position.x, position.y);\n\n if (bone.parent)\n {\n const aux = bone.parent.worldToLocal(vectorAux);\n\n bone.x = aux.x;\n bone.y = -aux.y;\n }\n else\n {\n bone.x = vectorAux.x;\n bone.y = vectorAux.y;\n }\n }\n\n public getBonePosition(bone: string | Bone, outPos?: PointData): PointData | undefined\n {\n const boneAux = bone;\n\n if (typeof bone === 'string')\n {\n bone = this.skeleton.findBone(bone) as Bone;\n }\n\n if (!bone)\n {\n console.error(`Cant set bone position! Bone ${String(boneAux)} not found`);\n\n return outPos;\n }\n\n if (!outPos)\n {\n outPos = { x: 0, y: 0 };\n }\n\n outPos.x = bone.worldX;\n outPos.y = bone.worldY;\n\n return outPos;\n }\n\n /**\n * Will update the state based on the specified time, this will not apply the state to the skeleton\n * as this is differed until the `applyState` method is called.\n *\n * @param time the time at which to set the state\n * @internal\n */\n _updateState(time: number)\n {\n this.state.update(time);\n this.skeleton.update(time);\n\n this._stateChanged = true;\n\n this._boundsDirty = true;\n\n this.onViewUpdate();\n }\n\n /**\n * Applies the state to this spine instance.\n * - updates the state to the skeleton\n * - updates its world transform (spine world transform)\n * - validates the attachments - to flag if the attachments have changed this state\n * - transforms the attachments - to update the vertices of the attachments based on the new positions\n * - update the slot attachments - to update the position, rotation, scale, and visibility of the attached containers\n * @internal\n */\n _applyState()\n {\n if (!this._stateChanged) return;\n this._stateChanged = false;\n\n const { skeleton } = this;\n\n this.state.apply(skeleton);\n\n this.beforeUpdateWorldTransforms(this);\n skeleton.updateWorldTransform(Physics.update);\n this.afterUpdateWorldTransforms(this);\n\n this.validateAttachments();\n\n this.transformAttachments();\n\n this.updateSlotObjects();\n }\n\n private validateAttachments()\n {\n const currentDrawOrder = this.skeleton.drawOrder;\n\n const lastAttachments = (this._lastAttachments ||= []);\n\n let index = 0;\n\n let spineAttachmentsDirty = false;\n\n for (let i = 0; i < currentDrawOrder.length; i++)\n {\n const slot = currentDrawOrder[i];\n const attachment = slot.getAttachment();\n\n if (attachment)\n {\n if (attachment !== lastAttachments[index])\n {\n spineAttachmentsDirty = true;\n lastAttachments[index] = attachment;\n }\n\n index++;\n }\n }\n\n if (index !== lastAttachments.length)\n {\n spineAttachmentsDirty = true;\n lastAttachments.length = index;\n }\n\n this.spineAttachmentsDirty = spineAttachmentsDirty;\n }\n\n private transformAttachments()\n {\n const currentDrawOrder = this.skeleton.drawOrder;\n\n for (let i = 0; i < currentDrawOrder.length; i++)\n {\n const slot = currentDrawOrder[i];\n\n const attachment = slot.getAttachment();\n\n if (attachment)\n {\n if (attachment instanceof MeshAttachment || attachment instanceof RegionAttachment)\n {\n const cacheData = this._getCachedData(slot, attachment);\n\n if (attachment instanceof RegionAttachment)\n {\n attachment.computeWorldVertices(slot, cacheData.vertices, 0, 2);\n }\n else\n {\n attachment.computeWorldVertices(\n slot,\n 0,\n attachment.worldVerticesLength,\n cacheData.vertices,\n 0,\n 2,\n );\n }\n\n cacheData.uvs = attachment.uvs as Float32Array;\n\n const skeleton = slot.bone.skeleton;\n const skeletonColor = skeleton.color;\n const slotColor = slot.color;\n\n const attachmentColor = attachment.color;\n\n cacheData.color.set(\n skeletonColor.r * slotColor.r * attachmentColor.r,\n skeletonColor.g * slotColor.g * attachmentColor.g,\n skeletonColor.b * slotColor.b * attachmentColor.b,\n skeletonColor.a * slotColor.a * attachmentColor.a,\n );\n\n cacheData.darkTint = !!slot.darkColor;\n\n if (slot.darkColor)\n {\n cacheData.darkColor.setFromColor(slot.darkColor);\n }\n\n cacheData.skipRender = cacheData.clipped = false;\n\n if (clipper.isClipping())\n {\n this.updateClippingData(cacheData);\n }\n }\n else if (attachment instanceof ClippingAttachment)\n {\n clipper.clipStart(slot, attachment);\n continue;\n }\n }\n clipper.clipEndWithSlot(slot);\n }\n clipper.clipEnd();\n }\n\n private updateClippingData(cacheData: AttachmentCacheData)\n {\n cacheData.clipped = true;\n\n clipper.clipTriangles(\n cacheData.vertices,\n cacheData.vertices.length,\n cacheData.indices,\n cacheData.indices.length,\n cacheData.uvs,\n lightColor,\n darkColor,\n false,\n );\n\n const { clippedVertices, clippedTriangles } = clipper;\n\n const verticesCount = clippedVertices.length / 8;\n const indicesCount = clippedTriangles.length;\n\n if (!cacheData.clippedData)\n {\n cacheData.clippedData = {\n vertices: new Float32Array(verticesCount * 2),\n uvs: new Float32Array(verticesCount * 2),\n vertexCount: verticesCount,\n indices: new Uint16Array(indicesCount),\n indicesCount,\n };\n\n this.spineAttachmentsDirty = true;\n }\n\n const clippedData = cacheData.clippedData;\n\n const sizeChange = clippedData.vertexCount !== verticesCount || indicesCount !== clippedData.indicesCount;\n\n cacheData.skipRender = verticesCount === 0;\n\n if (sizeChange)\n {\n this.spineAttachmentsDirty = true;\n\n if (clippedData.vertexCount < verticesCount)\n {\n // buffer reuse!\n clippedData.vertices = new Float32Array(verticesCount * 2);\n clippedData.uvs = new Float32Array(verticesCount * 2);\n }\n\n if (clippedData.indices.length < indicesCount)\n {\n clippedData.indices = new Uint16Array(indicesCount);\n }\n }\n\n const { vertices, uvs, indices } = clippedData;\n\n for (let i = 0; i < verticesCount; i++)\n {\n vertices[i * 2] = clippedVertices[i * 8];\n vertices[(i * 2) + 1] = clippedVertices[(i * 8) + 1];\n\n uvs[i * 2] = clippedVertices[(i * 8) + 6];\n uvs[(i * 2) + 1] = clippedVertices[(i * 8) + 7];\n }\n\n clippedData.vertexCount = verticesCount;\n\n for (let i = 0; i < indices.length; i++)\n {\n indices[i] = clippedTriangles[i];\n }\n\n clippedData.indicesCount = indicesCount;\n }\n\n /**\n * ensure that attached containers map correctly to their slots\n * along with their position, rotation, scale, and visibility.\n */\n private updateSlotObjects()\n {\n for (const i in this._slotsObject)\n {\n const slotAttachment = this._slotsObject[i];\n\n if (!slotAttachment) continue;\n\n this.updateSlotObject(slotAttachment);\n }\n }\n\n private updateSlotObject(slotAttachment: {slot:Slot, container:Container})\n {\n const { slot, container } = slotAttachment;\n\n container.visible = this.skeleton.drawOrder.includes(slot);\n\n if (container.visible)\n {\n const bone = slot.bone;\n\n container.position.set(bone.worldX, bone.worldY);\n\n container.scale.x = bone.getWorldScaleX();\n container.scale.y = bone.getWorldScaleY();\n\n container.rotation = bone.getWorldRotationX() * DEG_TO_RAD;\n }\n }\n\n /** @internal */\n _getCachedData(slot: Slot, attachment: RegionAttachment | MeshAttachment): AttachmentCacheData\n {\n return this.attachmentCacheData[slot.data.index][attachment.name] || this.initCachedData(slot, attachment);\n }\n\n private initCachedData(slot: Slot, attachment: RegionAttachment | MeshAttachment): AttachmentCacheData\n {\n let vertices: Float32Array;\n\n if (attachment instanceof RegionAttachment)\n {\n vertices = new Float32Array(8);\n\n this.attachmentCacheData[slot.data.index][attachment.name] = {\n id: `${slot.data.index}-${attachment.name}`,\n vertices,\n clipped: false,\n indices: [0, 1, 2, 0, 2, 3],\n uvs: attachment.uvs as Float32Array,\n color: new Color(1, 1, 1, 1),\n darkColor: new Color(0, 0, 0, 0),\n darkTint: false,\n skipRender: false,\n };\n }\n else\n {\n vertices = new Float32Array(attachment.worldVerticesLength);\n\n this.attachmentCacheData[slot.data.index][attachment.name] = {\n id: `${slot.data.index}-${attachment.name}`,\n vertices,\n clipped: false,\n indices: attachment.triangles,\n uvs: attachment.uvs as Float32Array,\n color: new Color(1, 1, 1, 1),\n darkColor: new Color(0, 0, 0, 0),\n darkTint: false,\n skipRender: false,\n };\n }\n\n return this.attachmentCacheData[slot.data.index][attachment.name];\n }\n\n protected onViewUpdate()\n {\n // increment from the 12th bit!\n this._didChangeId += 1 << 12;\n\n this._boundsDirty = true;\n\n if (this.didViewUpdate) return;\n this.didViewUpdate = true;\n\n const renderGroup = this.renderGroup || this.parentRenderGroup;\n\n if (renderGroup)\n {\n renderGroup.onChildViewUpdate(this);\n }\n\n this.debug?.renderDebug(this);\n }\n\n /**\n * Attaches a PixiJS container to a specified slot. This will map the world transform of the slots bone\n * to the attached container. A container can only be attached to one slot at a time.\n *\n * @param container - The container to attach to the slot\n * @param slotRef - The slot id or slot to attach to\n */\n public addSlotObject(slot: number | string | Slot, container: Container)\n {\n slot = this.getSlotFromRef(slot);\n\n // need to check in on the container too...\n for (const i in this._slotsObject)\n {\n if (this._slotsObject[i]?.container === container)\n {\n this.removeSlotObject(this._slotsObject[i].slot);\n }\n }\n\n this.removeSlotObject(slot);\n\n container.includeInBuild = false;\n\n // TODO only add once??\n this.addChild(container);\n\n this._slotsObject[slot.data.name] = {\n container,\n slot\n };\n\n this.updateSlotObject(this._slotsObject[slot.data.name]);\n }\n\n /**\n * Removes a PixiJS container from the slot it is attached to.\n *\n * @param container - The container to detach from the slot\n * @param slotOrContainer - The container, slot id or slot to detach from\n */\n public removeSlotObject(slotOrContainer: number | string | Slot | Container)\n {\n let containerToRemove: Container | undefined;\n\n if (slotOrContainer instanceof Container)\n {\n for (const i in this._slotsObject)\n {\n if (this._slotsObject[i]?.container === slotOrContainer)\n {\n this._slotsObject[i] = null;\n\n containerToRemove = slotOrContainer;\n break;\n }\n }\n }\n else\n {\n const slot = this.getSlotFromRef(slotOrContainer);\n\n containerToRemove = this._slotsObject[slot.data.name]?.container;\n this._slotsObject[slot.data.name] = null;\n }\n\n if (containerToRemove)\n {\n this.removeChild(containerToRemove);\n\n containerToRemove.includeInBuild = true;\n }\n }\n\n /**\n * Returns a container attached to a slot, or undefined if no container is attached.\n *\n * @param slotRef - The slot id or slot to get the attachment from\n * @returns - The container attached to the slot\n */\n public getSlotObject(slot: number | string | Slot)\n {\n slot = this.getSlotFromRef(slot);\n\n return this._slotsObject[slot.data.name].container;\n }\n\n private updateBounds()\n {\n this._boundsDirty = false;\n\n this.skeletonBounds ||= new SkeletonBounds();\n\n const skeletonBounds = this.skeletonBounds;\n\n skeletonBounds.update(this.skeleton, true);\n\n if (skeletonBounds.minX === Infinity)\n {\n this._applyState();\n\n const drawOrder = this.skeleton.drawOrder;\n const bounds = this._bounds;\n\n bounds.clear();\n\n for (let i = 0; i < drawOrder.length; i++)\n {\n const slot = drawOrder[i];\n\n const attachment = slot.getAttachment();\n\n if (attachment && (attachment instanceof RegionAttachment || attachment instanceof MeshAttachment))\n {\n const cacheData = this._getCachedData(slot, attachment);\n\n bounds.addVertexData(cacheData.vertices, 0, cacheData.vertices.length);\n }\n }\n }\n else\n {\n this._bounds.minX = skeletonBounds.minX;\n this._bounds.minY = skeletonBounds.minY;\n this._bounds.maxX = skeletonBounds.maxX;\n this._bounds.maxY = skeletonBounds.maxY;\n }\n }\n\n /** @internal */\n addBounds(bounds: Bounds)\n {\n bounds.addBounds(this.bounds);\n }\n\n /**\n * Destroys this sprite renderable and optionally its texture.\n * @param options - Options parameter. A boolean will act as if all options\n * have been set to that value\n * @param {boolean} [options.texture=false] - Should it destroy the current texture of the renderable as well\n * @param {boolean} [options.textureSource=false] - Should it destroy the textureSource of the renderable as well\n */\n public override destroy(options: DestroyOptions = false)\n {\n super.destroy(options);\n\n Ticker.shared.remove(this.internalUpdate, this);\n this.state.clearListeners();\n this.debug = undefined;\n this.skeleton = null as any;\n this.state = null as any;\n (this._slotsObject as any) = null;\n this._lastAttachments = null;\n this.attachmentCacheData = null as any;\n }\n\n /** Converts a point from the skeleton coordinate system to the Pixi world coordinate system. */\n public skeletonToPixiWorldCoordinates(point: { x: number; y: number })\n {\n this.worldTransform.apply(point, point);\n }\n\n /** Converts a point from the Pixi world coordinate system to the skeleton coordinate system. */\n public pixiWorldCoordinatesToSkeleton(point: { x: number; y: number })\n {\n this.worldTransform.applyInverse(point, point);\n }\n\n /** Converts a point from the Pixi world coordinate system to the bone's local coordinate system. */\n public pixiWorldCoordinatesToBone(point: { x: number; y: number }, bone: Bone)\n {\n this.pixiWorldCoordinatesToSkeleton(point);\n if (bone.parent)\n {\n bone.parent.worldToLocal(point as Vector2);\n }\n else\n {\n bone.worldToLocal(point as Vector2);\n }\n }\n\n static from({ skeleton, atlas, scale = 1 }: SpineFromOptions)\n {\n const cacheKey = `${skeleton}-${atlas}-${scale}`;\n\n if (Cache.has(cacheKey))\n {\n return new Spine(Cache.get(cacheKey));\n }\n\n const skeletonAsset = Assets.get(skeleton);\n\n const atlasAsset = Assets.get(atlas);\n const attachmentLoader = new AtlasAttachmentLoader(atlasAsset);\n // eslint-disable-next-line max-len\n const parser\n = skeletonAsset instanceof Uint8Array\n ? new SkeletonBinary(attachmentLoader)\n : new SkeletonJson(attachmentLoader);\n\n // TODO scale?\n parser.scale = scale;\n const skeletonData = parser.readSkeletonData(skeletonAsset);\n\n Cache.set(cacheKey, skeletonData);\n\n return new Spine({\n skeletonData,\n });\n }\n}\n", "/** ****************************************************************************\n * Spine Runtimes License Agreement\n * Last updated July 28, 2023. Replaces all prior versions.\n *\n * Copyright (c) 2013-2023, Esoteric Software LLC\n *\n * Integration of the Spine Runtimes into software or otherwise creating\n * derivative works of the Spine Runtimes is permitted under the terms and\n * conditions of Section 2 of the Spine Editor License Agreement:\n * http://esotericsoftware.com/spine-editor-license\n *\n * Otherwise, it is permitted to integrate the Spine Runtimes into software or\n * otherwise create derivative works of the Spine Runtimes (collectively,\n * \"Products\"), provided that each user of the Products must obtain their own\n * Spine Editor license and redistribution of the Products in any form must\n * include this license and copyright notice.\n *\n * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC \"AS IS\" AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,\n * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE\n * SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *****************************************************************************/\n\nimport { Container, Graphics, Text } from 'pixi.js';\nimport { Spine } from './Spine';\nimport {\n ClippingAttachment,\n MeshAttachment,\n PathAttachment,\n RegionAttachment,\n SkeletonBounds\n} from '@esotericsoftware/spine-core';\n\nimport type { AnimationStateListener } from '@esotericsoftware/spine-core';\n\n/**\n * Make a class that extends from this interface to create your own debug renderer.\n * @public\n */\nexport interface ISpineDebugRenderer\n{\n /**\n * This will be called every frame, after the spine has been updated.\n */\n renderDebug: (spine: Spine) => void;\n\n /**\n * This is called when the `spine.debug` object is set to null or when the spine is destroyed.\n */\n unregisterSpine: (spine: Spine) => void;\n\n /**\n * This is called when the `spine.debug` object is set to a new instance of a debug renderer.\n */\n registerSpine: (spine: Spine) => void;\n}\n\ntype DebugDisplayObjects = {\n bones: Container;\n skeletonXY: Graphics;\n regionAttachmentsShape: Graphics;\n meshTrianglesLine: Graphics;\n meshHullLine: Graphics;\n clippingPolygon: Graphics;\n boundingBoxesRect: Graphics;\n boundingBoxesCircle: Graphics;\n boundingBoxesPolygon: Graphics;\n pathsCurve: Graphics;\n pathsLine: Graphics;\n parentDebugContainer: Container;\n eventText: Container;\n eventCallback: AnimationStateListener;\n};\n\n/**\n * This is a debug renderer that uses PixiJS Graphics under the hood.\n * @public\n */\nexport class SpineDebugRenderer implements ISpineDebugRenderer\n{\n private readonly registeredSpines: Map = new Map();\n\n public drawMeshHull = true;\n public drawMeshTriangles = true;\n public drawBones = true;\n public drawPaths = true;\n public drawBoundingBoxes = true;\n public drawClipping = true;\n public drawRegionAttachments = true;\n public drawEvents = true;\n\n public lineWidth = 1;\n public regionAttachmentsColor = 0x0078ff;\n public meshHullColor = 0x0078ff;\n public meshTrianglesColor = 0xffcc00;\n public clippingPolygonColor = 0xff00ff;\n public boundingBoxesRectColor = 0x00ff00;\n public boundingBoxesPolygonColor = 0x00ff00;\n public boundingBoxesCircleColor = 0x00ff00;\n public pathsCurveColor = 0xff0000;\n public pathsLineColor = 0xff00ff;\n public skeletonXYColor = 0xff0000;\n public bonesColor = 0x00eecc;\n public eventFontSize = 24;\n public eventFontColor = 0x0;\n\n /**\n * The debug is attached by force to each spine object.\n * So we need to create it inside the spine when we get the first update\n */\n public registerSpine(spine: Spine): void\n {\n if (this.registeredSpines.has(spine))\n {\n console.warn('SpineDebugRenderer.registerSpine() - this spine is already registered!', spine);\n\n return;\n }\n const debugDisplayObjects: DebugDisplayObjects = {\n parentDebugContainer: new Container(),\n bones: new Container(),\n skeletonXY: new Graphics(),\n regionAttachmentsShape: new Graphics(),\n meshTrianglesLine: new Graphics(),\n meshHullLine: new Graphics(),\n clippingPolygon: new Graphics(),\n boundingBoxesRect: new Graphics(),\n boundingBoxesCircle: new Graphics(),\n boundingBoxesPolygon: new Graphics(),\n pathsCurve: new Graphics(),\n pathsLine: new Graphics(),\n eventText: new Container(),\n eventCallback: {\n event: (_, event) =>\n {\n if (this.drawEvents)\n {\n const scale = Math.abs(spine.scale.x || spine.scale.y || 1);\n const text = new Text({\n text: event.data.name,\n style: {\n fontSize: this.eventFontSize / scale,\n fill: this.eventFontColor,\n fontFamily: 'monospace'\n }\n });\n\n text.scale.x = Math.sign(spine.scale.x);\n text.anchor.set(0.5);\n debugDisplayObjects.eventText.addChild(text);\n setTimeout(() =>\n {\n if (!text.destroyed)\n {\n text.destroy();\n }\n }, 250);\n }\n },\n },\n };\n\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.bones);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.skeletonXY);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.regionAttachmentsShape);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.meshTrianglesLine);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.meshHullLine);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.clippingPolygon);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.boundingBoxesRect);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.boundingBoxesCircle);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.boundingBoxesPolygon);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.pathsCurve);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.pathsLine);\n debugDisplayObjects.parentDebugContainer.addChild(debugDisplayObjects.eventText);\n\n (debugDisplayObjects.parentDebugContainer as any).zIndex = 9999999;\n\n // Disable screen reader and mouse input on debug objects.\n (debugDisplayObjects.parentDebugContainer as any).accessibleChildren = false;\n (debugDisplayObjects.parentDebugContainer as any).eventMode = 'none';\n (debugDisplayObjects.parentDebugContainer as any).interactiveChildren = false;\n\n spine.addChild(debugDisplayObjects.parentDebugContainer);\n\n spine.state.addListener(debugDisplayObjects.eventCallback);\n\n this.registeredSpines.set(spine, debugDisplayObjects);\n }\n\n public renderDebug(spine: Spine): void\n {\n if (!this.registeredSpines.has(spine))\n {\n // This should never happen. Spines are registered when you assign spine.debug\n this.registerSpine(spine);\n }\n\n const debugDisplayObjects = this.registeredSpines.get(spine);\n\n if (!debugDisplayObjects)\n {\n return;\n }\n spine.addChild(debugDisplayObjects.parentDebugContainer);\n\n debugDisplayObjects.skeletonXY.clear();\n debugDisplayObjects.regionAttachmentsShape.clear();\n debugDisplayObjects.meshTrianglesLine.clear();\n debugDisplayObjects.meshHullLine.clear();\n debugDisplayObjects.clippingPolygon.clear();\n debugDisplayObjects.boundingBoxesRect.clear();\n debugDisplayObjects.boundingBoxesCircle.clear();\n debugDisplayObjects.boundingBoxesPolygon.clear();\n debugDisplayObjects.pathsCurve.clear();\n debugDisplayObjects.pathsLine.clear();\n\n for (let len = debugDisplayObjects.bones.children.length; len > 0; len--)\n {\n debugDisplayObjects.bones.children[len - 1].destroy({ children: true, texture: true, textureSource: true });\n }\n\n const scale = Math.abs(spine.scale.x || spine.scale.y || 1);\n const lineWidth = this.lineWidth / scale;\n\n if (this.drawBones)\n {\n this.drawBonesFunc(spine, debugDisplayObjects, lineWidth, scale);\n }\n\n if (this.drawPaths)\n {\n this.drawPathsFunc(spine, debugDisplayObjects, lineWidth);\n }\n\n if (this.drawBoundingBoxes)\n {\n this.drawBoundingBoxesFunc(spine, debugDisplayObjects, lineWidth);\n }\n\n if (this.drawClipping)\n {\n this.drawClippingFunc(spine, debugDisplayObjects, lineWidth);\n }\n\n if (this.drawMeshHull || this.drawMeshTriangles)\n {\n this.drawMeshHullAndMeshTriangles(spine, debugDisplayObjects, lineWidth);\n }\n\n if (this.drawRegionAttachments)\n {\n this.drawRegionAttachmentsFunc(spine, debugDisplayObjects, lineWidth);\n }\n\n if (this.drawEvents)\n {\n for (const child of debugDisplayObjects.eventText.children)\n {\n child.alpha -= 0.05;\n child.y -= 2;\n }\n }\n }\n\n private drawBonesFunc(spine: Spine, debugDisplayObjects: DebugDisplayObjects, lineWidth: number, scale: number): void\n {\n const skeleton = spine.skeleton;\n const skeletonX = skeleton.x;\n const skeletonY = skeleton.y;\n const bones = skeleton.bones;\n\n debugDisplayObjects.skeletonXY.strokeStyle = { width: lineWidth, color: this.skeletonXYColor };\n\n for (let i = 0, len = bones.length; i < len; i++)\n {\n const bone = bones[i];\n const boneLen = bone.data.length;\n const starX = skeletonX + bone.worldX;\n const starY = skeletonY + bone.worldY;\n const endX = skeletonX + (boneLen * bone.a) + bone.worldX;\n const endY = skeletonY + (boneLen * bone.b) + bone.worldY;\n\n if (bone.data.name === 'root' || bone.data.parent === null)\n {\n continue;\n }\n\n const w = Math.abs(starX - endX);\n const h = Math.abs(starY - endY);\n // a = w, // side length a\n const a2 = Math.pow(w, 2); // square root of side length a\n const b = h; // side length b\n const b2 = Math.pow(h, 2); // square root of side length b\n const c = Math.sqrt(a2 + b2); // side length c\n const c2 = Math.pow(c, 2); // square root of side length c\n const rad = Math.PI / 180;\n // A = Math.acos([a2 + c2 - b2] / [2 * a * c]) || 0, // Angle A\n // C = Math.acos([a2 + b2 - c2] / [2 * a * b]) || 0, // C angle\n const B = Math.acos((c2 + b2 - a2) / (2 * b * c)) || 0; // angle of corner B\n\n if (c === 0)\n {\n continue;\n }\n\n const gp = new Graphics();\n\n debugDisplayObjects.bones.addChild(gp);\n\n // draw bone\n const refRation = c / 50 / scale;\n\n gp.context\n .poly([0, 0, 0 - refRation, c - (refRation * 3), 0, c - refRation, 0 + refRation, c - (refRation * 3)])\n .fill(this.bonesColor);\n gp.x = starX;\n gp.y = starY;\n gp.pivot.y = c;\n\n // Calculate bone rotation angle\n let rotation = 0;\n\n if (starX < endX && starY < endY)\n {\n // bottom right\n rotation = -B + (180 * rad);\n }\n else if (starX > endX && starY < endY)\n {\n // bottom left\n rotation = 180 * (rad + B);\n }\n else if (starX > endX && starY > endY)\n {\n // top left\n rotation = -B;\n }\n else if (starX < endX && starY > endY)\n {\n // bottom left\n rotation = B;\n }\n else if (starY === endY && starX < endX)\n {\n // To the right\n rotation = 90 * rad;\n }\n else if (starY === endY && starX > endX)\n {\n // go left\n rotation = -90 * rad;\n }\n else if (starX === endX && starY < endY)\n {\n // down\n rotation = 180 * rad;\n }\n else if (starX === endX && starY > endY)\n {\n // up\n rotation = 0;\n }\n gp.rotation = rotation;\n\n // Draw the starting rotation point of the bone\n gp.circle(0, c, refRation * 1.2)\n .fill({ color: 0x000000, alpha: 0.6 })\n .stroke({ width: lineWidth, color: this.skeletonXYColor });\n }\n\n // Draw the skeleton starting point \"X\" form\n const startDotSize = lineWidth * 3;\n\n debugDisplayObjects.skeletonXY.context\n .moveTo(skeletonX - startDotSize, skeletonY - startDotSize)\n .lineTo(skeletonX + startDotSize, skeletonY + startDotSize)\n .moveTo(skeletonX + startDotSize, skeletonY - startDotSize)\n .lineTo(skeletonX - startDotSize, skeletonY + startDotSize)\n .stroke();\n }\n\n private drawRegionAttachmentsFunc(spine: Spine, debugDisplayObjects: DebugDisplayObjects, lineWidth: number): void\n {\n const skeleton = spine.skeleton;\n const slots = skeleton.slots;\n\n for (let i = 0, len = slots.length; i < len; i++)\n {\n const slot = slots[i];\n const attachment = slot.getAttachment();\n\n if (attachment === null || !(attachment instanceof RegionAttachment))\n {\n continue;\n }\n\n const regionAttachment = attachment;\n\n const vertices = new Float32Array(8);\n\n regionAttachment.computeWorldVertices(slot, vertices, 0, 2);\n\n debugDisplayObjects.regionAttachmentsShape.poly(Array.from(vertices.slice(0, 8)));\n }\n\n debugDisplayObjects.regionAttachmentsShape.stroke({\n color: this.regionAttachmentsColor,\n width: lineWidth\n });\n }\n\n private drawMeshHullAndMeshTriangles(spine: Spine, debugDisplayObjects: DebugDisplayObjects, lineWidth: number): void\n {\n const skeleton = spine.skeleton;\n const slots = skeleton.slots;\n\n for (let i = 0, len = slots.length; i < len; i++)\n {\n const slot = slots[i];\n\n if (!slot.bone.active)\n {\n continue;\n }\n const attachment = slot.getAttachment();\n\n if (attachment === null || !(attachment instanceof MeshAttachment))\n {\n continue;\n }\n\n const meshAttachment = attachment;\n\n const vertices = new Float32Array(meshAttachment.worldVerticesLength);\n const triangles = meshAttachment.triangles;\n let hullLength = meshAttachment.hullLength;\n\n meshAttachment.computeWorldVertices(slot, 0, meshAttachment.worldVerticesLength, vertices, 0, 2);\n // draw the skinned mesh (triangle)\n if (this.drawMeshTriangles)\n {\n for (let i = 0, len = triangles.length; i < len; i += 3)\n {\n const v1 = triangles[i] * 2;\n const v2 = triangles[i + 1] * 2;\n const v3 = triangles[i + 2] * 2;\n\n debugDisplayObjects.meshTrianglesLine.context\n .moveTo(vertices[v1], vertices[v1 + 1])\n .lineTo(vertices[v2], vertices[v2 + 1])\n .lineTo(vertices[v3], vertices[v3 + 1]);\n }\n }\n\n // draw skin border\n if (this.drawMeshHull && hullLength > 0)\n {\n hullLength = (hullLength >> 1) * 2;\n let lastX = vertices[hullLength - 2];\n let lastY = vertices[hullLength - 1];\n\n for (let i = 0, len = hullLength; i < len; i += 2)\n {\n const x = vertices[i];\n const y = vertices[i + 1];\n\n debugDisplayObjects.meshHullLine.context\n .moveTo(x, y)\n .lineTo(lastX, lastY);\n lastX = x;\n lastY = y;\n }\n }\n }\n\n debugDisplayObjects.meshHullLine.stroke({ width: lineWidth, color: this.meshHullColor });\n debugDisplayObjects.meshTrianglesLine.stroke({ width: lineWidth, color: this.meshTrianglesColor });\n }\n\n drawClippingFunc(spine: Spine, debugDisplayObjects: DebugDisplayObjects, lineWidth: number): void\n {\n const skeleton = spine.skeleton;\n const slots = skeleton.slots;\n\n for (let i = 0, len = slots.length; i < len; i++)\n {\n const slot = slots[i];\n\n if (!slot.bone.active)\n {\n continue;\n }\n const attachment = slot.getAttachment();\n\n if (attachment === null || !(attachment instanceof ClippingAttachment))\n {\n continue;\n }\n\n const clippingAttachment = attachment;\n\n const nn = clippingAttachment.worldVerticesLength;\n const world = new Float32Array(nn);\n\n clippingAttachment.computeWorldVertices(slot, 0, nn, world, 0, 2);\n debugDisplayObjects.clippingPolygon.poly(Array.from(world));\n }\n\n debugDisplayObjects.clippingPolygon.stroke({\n width: lineWidth, color: this.clippingPolygonColor, alpha: 1\n });\n }\n\n drawBoundingBoxesFunc(spine: Spine, debugDisplayObjects: DebugDisplayObjects, lineWidth: number): void\n {\n // draw the total outline of the bounding box\n debugDisplayObjects.boundingBoxesRect.lineStyle(lineWidth, this.boundingBoxesRectColor, 5);\n\n const bounds = new SkeletonBounds();\n\n bounds.update(spine.skeleton, true);\n\n debugDisplayObjects.boundingBoxesRect\n .rect(bounds.minX, bounds.minY, bounds.getWidth(), bounds.getHeight())\n .stroke({ width: lineWidth, color: this.boundingBoxesRectColor });\n\n const polygons = bounds.polygons;\n const drawPolygon = (polygonVertices: ArrayLike, _offset: unknown, count: number): void =>\n {\n if (count < 3)\n {\n throw new Error('Polygon must contain at least 3 vertices');\n }\n const paths:number[] = [];\n const dotSize = lineWidth * 2;\n\n for (let i = 0, len = polygonVertices.length; i < len; i += 2)\n {\n const x1 = polygonVertices[i];\n const y1 = polygonVertices[i + 1];\n\n // draw the bounding box node\n debugDisplayObjects.boundingBoxesCircle.beginFill(this.boundingBoxesCircleColor);\n debugDisplayObjects.boundingBoxesCircle.drawCircle(x1, y1, dotSize);\n debugDisplayObjects.boundingBoxesCircle.fill(0);\n\n paths.push(x1, y1);\n }\n\n // draw the bounding box area\n debugDisplayObjects.boundingBoxesPolygon\n .poly(paths)\n .fill({\n color: this.boundingBoxesPolygonColor,\n alpha: 0.1\n })\n .stroke({\n width: lineWidth,\n color: this.boundingBoxesPolygonColor\n });\n };\n\n for (let i = 0, len = polygons.length; i < len; i++)\n {\n const polygon = polygons[i];\n\n drawPolygon(polygon, 0, polygon.length);\n }\n }\n\n private drawPathsFunc(spine: Spine, debugDisplayObjects: DebugDisplayObjects, lineWidth: number): void\n {\n const skeleton = spine.skeleton;\n const slots = skeleton.slots;\n\n for (let i = 0, len = slots.length; i < len; i++)\n {\n const slot = slots[i];\n\n if (!slot.bone.active)\n {\n continue;\n }\n const attachment = slot.getAttachment();\n\n if (attachment === null || !(attachment instanceof PathAttachment))\n {\n continue;\n }\n\n const pathAttachment = attachment;\n let nn = pathAttachment.worldVerticesLength;\n const world = new Float32Array(nn);\n\n pathAttachment.computeWorldVertices(slot, 0, nn, world, 0, 2);\n let x1 = world[2];\n let y1 = world[3];\n let x2 = 0;\n let y2 = 0;\n\n if (pathAttachment.closed)\n {\n const cx1 = world[0];\n const cy1 = world[1];\n const cx2 = world[nn - 2];\n const cy2 = world[nn - 1];\n\n x2 = world[nn - 4];\n y2 = world[nn - 3];\n\n // curve\n debugDisplayObjects.pathsCurve.moveTo(x1, y1);\n debugDisplayObjects.pathsCurve.bezierCurveTo(cx1, cy1, cx2, cy2, x2, y2);\n\n // handle\n debugDisplayObjects.pathsLine.moveTo(x1, y1);\n debugDisplayObjects.pathsLine.lineTo(cx1, cy1);\n debugDisplayObjects.pathsLine.moveTo(x2, y2);\n debugDisplayObjects.pathsLine.lineTo(cx2, cy2);\n }\n nn -= 4;\n for (let ii = 4; ii < nn; ii += 6)\n {\n const cx1 = world[ii];\n const cy1 = world[ii + 1];\n const cx2 = world[ii + 2];\n const cy2 = world[ii + 3];\n\n x2 = world[ii + 4];\n y2 = world[ii + 5];\n // curve\n debugDisplayObjects.pathsCurve.moveTo(x1, y1);\n debugDisplayObjects.pathsCurve.bezierCurveTo(cx1, cy1, cx2, cy2, x2, y2);\n\n // handle\n debugDisplayObjects.pathsLine.moveTo(x1, y1);\n debugDisplayObjects.pathsLine.lineTo(cx1, cy1);\n debugDisplayObjects.pathsLine.moveTo(x2, y2);\n debugDisplayObjects.pathsLine.lineTo(cx2, cy2);\n x1 = x2;\n y1 = y2;\n }\n }\n\n debugDisplayObjects.pathsCurve.stroke({ width: lineWidth, color: this.pathsCurveColor });\n debugDisplayObjects.pathsLine.stroke({ width: lineWidth, color: this.pathsLineColor });\n }\n\n public unregisterSpine(spine: Spine): void\n {\n if (!this.registeredSpines.has(spine))\n {\n console.warn('SpineDebugRenderer.unregisterSpine() - spine is not registered, can\\'t unregister!', spine);\n }\n const debugDisplayObjects = this.registeredSpines.get(spine);\n\n if (!debugDisplayObjects)\n {\n return;\n }\n\n spine.state.removeListener(debugDisplayObjects.eventCallback);\n\n debugDisplayObjects.parentDebugContainer.destroy({ textureSource: true, children: true, texture: true });\n this.registeredSpines.delete(spine);\n }\n}\n"], + "mappings": "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", + "names": ["import_pixi", "v", "SequenceMode", "MixBlend", "MixDirection", "x", "y", "i", "vertexAttachment", "constraint", "i", "n", "timeline", "EventType", "TextureFilter", "TextureWrap", "page", "path", "path", "path", "Inherit", "s", "path", "PositionMode", "SpacingMode", "RotateMode", "path", "closed", "pathLength", "multiplier", "clipper", "Physics", "BlendMode", "darkColor", "path", "closed", "AttachmentType", "n", "path", "LinkedMesh", "readTimeline1", "readTimeline2", "timeline", "PixiTexture", "import_pixi", "import_pixi", "import_pixi", "import_pixi", "darkColor", "import_pixi", "darkColor", "import_pixi", "clipper", "import_pixi", "i", "len"] +} diff --git a/docs/BatchableSpineSlot.html b/docs/BatchableSpineSlot.html new file mode 100644 index 0000000..ddb61ac --- /dev/null +++ b/docs/BatchableSpineSlot.html @@ -0,0 +1,414 @@ + + + + + PixiJS Spine + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + +
+

Class: BatchableSpineSlot

+ + + +
+ +
+
+

+ BatchableSpineSlot + + +

+ + + +
+
+ +
+
+ + +
+
+

+ + + + new BatchableSpineSlot + + + () + + + + +

+ + +
+
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + +

Implements

+ +
    + + +
  • DefaultBatchableMeshElement
  • + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ +
+
+
+ + + + + + + + diff --git a/docs/DarkTintBatcher.html b/docs/DarkTintBatcher.html new file mode 100644 index 0000000..07d3200 --- /dev/null +++ b/docs/DarkTintBatcher.html @@ -0,0 +1,475 @@ + + + + + PixiJS Spine + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+

Class: DarkTintBatcher

+ + + +
+ +
+
+

+ DarkTintBatcher + + +

+ + +

The default batcher is used to batch quads and meshes.

+ + +
+
+ +
+
+ + +
+
+

+ + + + new DarkTintBatcher + + + () + + + + +

+ + +
+
+
+ +

The default batcher is used to batch quads and meshes.

+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +

Extends

+ +
    + + +
  • Batcher
  • + +
+ + + + + + + + + + + + + + + + + +

Members

+ + + +
+
+

+ + vertexSize + number + + + + +

+
+
+
+ +

The size of one attribute. 1 = 32 bit. x, y, u, v, color, darkColor, textureIdAndRound -> total = 7

+ + + + +
+ + + + + + + + + + + + + + + +
Default Value:
+
  • 7
+ + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ +
+
+
+ + + + + + + + diff --git a/docs/ISpineDebugRenderer.html b/docs/ISpineDebugRenderer.html new file mode 100644 index 0000000..5e12527 --- /dev/null +++ b/docs/ISpineDebugRenderer.html @@ -0,0 +1,601 @@ + + + + + PixiJS Spine + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+

Interface: ISpineDebugRenderer

+ + + +
+ +
+
+

+ ISpineDebugRenderer + + +

+ + + +

Make a class that extends from this interface to create your own debug renderer.

+ +
+
+ +
+
+ + + +
+ + +
Properties:
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
registerSpine + + (spine: Spine) => void + + +

This is called when the spine.debug object is set to a new instance of a debug renderer.

+ + +
renderDebug + + (spine: Spine) => void + + +

This will be called every frame, after the spine has been updated.

+ + +
unregisterSpine + + (spine: Spine) => void + + +

This is called when the spine.debug object is set to null or when the spine is destroyed.

+ + +
+
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + +

Members

+ + + +
+
+

+ + registerSpine + (spine: Spine) => void + + + + +

+
+
+
+ +

This is called when the spine.debug object is set to a new instance of a debug renderer.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

+ + renderDebug + (spine: Spine) => void + + + + +

+
+
+
+ +

This will be called every frame, after the spine has been updated.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

+ + unregisterSpine + (spine: Spine) => void + + + + +

+
+
+
+ +

This is called when the spine.debug object is set to null or when the spine is destroyed.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ +
+
+
+ + + + + + + + diff --git a/docs/Spine.html b/docs/Spine.html new file mode 100644 index 0000000..6ff2267 --- /dev/null +++ b/docs/Spine.html @@ -0,0 +1,1845 @@ + + + + + PixiJS Spine + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+

Class: Spine

+ + + +
+ +
+
+

+ Spine + + +

+ + + +
+
+ +
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + +

Extends

+ +
    + + +
  • ViewContainer
  • + +
+ + + + + + + + + + + + + + + + + + + + + + + +

Methods

+ + + +
+
+

+ + + + _applyState + + + () + + + + +

+ + +
+
+
+ + +
+

Applies the state to this spine instance.

+
    +
  • updates the state to the skeleton
  • +
  • updates its world transform (spine world transform)
  • +
  • validates the attachments - to flag if the attachments have changed this state
  • +
  • transforms the attachments - to update the vertices of the attachments based on the new positions
  • +
  • update the slot attachments - to update the position, rotation, scale, and visibility of the attached containers
  • +
+
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + +
+
+

+ + + + _getCachedData + + + (slot, attachment) AttachmentCacheData + + + + +

+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
slot + + Slot + + + + +
attachment + + RegionAttachment | MeshAttachment + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Returns:
+ + + + + + + + + + + + + + + + + + + + +
TypeDescription
+ + AttachmentCacheData + +
+ + + + + +
+ + + +
+
+

+ + + + _updateState + + + (time) + + + + +

+ + +
+
+
+ + +
+

Will update the state based on the specified time, this will not apply the state to the skeleton +as this is differed until the applyState method is called.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
time + + number + + +

the time at which to set the state

+ +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + +
+
+

+ + + + addBounds + + + (bounds) + + + + +

+ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
bounds + + Bounds + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + +
+
+

+ + + + addSlotObject + + + (container, slotRef) + + + + +

+ + +
+
+
+ + +
+

Attaches a PixiJS container to a specified slot. This will map the world transform of the slots bone +to the attached container. A container can only be attached to one slot at a time.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
container + + number | string | Slot + + +

The container to attach to the slot

+ +
slotRef + + Container + + +

The slot id or slot to attach to

+ +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + +
+
+

+ + + + destroy + + + (options) + + + + +

+ + +
+
+
+ + +
+

Destroys this sprite renderable and optionally its texture.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeAttributesDefaultDescription
options + + DestroyOptions + + + + + + + + + + false + + +

Options parameter. A boolean will act as if all options +have been set to that value

+ +
options.texture + + boolean + + + + <optional>
+ + + + + +
+ + false + + +

Should it destroy the current texture of the renderable as well

+ +
options.textureSource + + boolean + + + + <optional>
+ + + + + +
+ + false + + +

Should it destroy the textureSource of the renderable as well

+ +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + +
+
+

+ + + + getSlotObject + + + (slotRef) + + + + +

+ + +
+
+
+ +

Returns a container attached to a slot, or undefined if no container is attached.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
slotRef + + number | string | Slot + + +

The slot id or slot to get the attachment from

+ +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Returns:
+ + + + +
    +
  • The container attached to the slot
  • +
+ + + + + + +
+ + + +
+
+

+ + + + pixiWorldCoordinatesToBone + + + (point, bone) + + + + +

+ + +
+
+
+ +

Converts a point from the Pixi world coordinate system to the bone's local coordinate system.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
point + + { x : number, y : number } + + + + +
bone + + Bone + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + +
+
+

+ + + + pixiWorldCoordinatesToSkeleton + + + (point) + + + + +

+ + +
+
+
+ +

Converts a point from the Pixi world coordinate system to the skeleton coordinate system.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
point + + { x : number, y : number } + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + +
+
+

+ + + + removeSlotObject + + + (container, slotOrContainer) + + + + +

+ + +
+
+
+ +

Removes a PixiJS container from the slot it is attached to.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
container + + number | string | Slot | Container + + +

The container to detach from the slot

+ +
slotOrContainer + + +

The container, slot id or slot to detach from

+ +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + +
+
+

+ + + + skeletonToPixiWorldCoordinates + + + (point) + + + + +

+ + +
+
+
+ +

Converts a point from the skeleton coordinate system to the Pixi world coordinate system.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
point + + { x : number, y : number } + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + +
+ +
+
+
+ + + + + + + + diff --git a/docs/SpineDebugRenderer.html b/docs/SpineDebugRenderer.html new file mode 100644 index 0000000..162da65 --- /dev/null +++ b/docs/SpineDebugRenderer.html @@ -0,0 +1,542 @@ + + + + + PixiJS Spine + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+

Class: SpineDebugRenderer

+ + + +
+ +
+
+

+ SpineDebugRenderer + + +

+ + + +

This is a debug renderer that uses PixiJS Graphics under the hood.

+ +
+
+ +
+
+ + +
+
+

+ + + + new SpineDebugRenderer + + + () + + + + +

+ + +
+
+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + + +

Implements

+ + + + + + + + + + + + + + + + + + + + + + + +

Methods

+ + + +
+
+

+ + + + registerSpine + + + (spine) void + + + + +

+ + +
+
+
+ + +
+

The debug is attached by force to each spine object. +So we need to create it inside the spine when we get the first update

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
spine + + Spine + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + +
+ +
+
+
+ + + + + + + + diff --git a/docs/fonts/OpenSans-Bold.svg b/docs/fonts/OpenSans-Bold.svg new file mode 100644 index 0000000..464e984 --- /dev/null +++ b/docs/fonts/OpenSans-Bold.svg @@ -0,0 +1,958 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/fonts/OpenSans-Bold.ttf b/docs/fonts/OpenSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cf53e6e46e23fcd6c544a6575989c373f55002ee GIT binary patch literal 109928 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

r zU!+4~pBnwgM6N$qM{t7Jchuj^$2EZL*e``f9uW9ysL}2>+IL}5E?9`qjqBI36oId7 zM*F)W-mbMy4m5fs3Q{D?{71r!k#vN6?bWMIu>vm^*JQ=Af#KZ`nNVPM11F|2SlBQL zdkAwxT^-pb_5y$z?5P@E$Rf&JlD?$9j1d{_Zy0+Adkr;mFlHdv&=DK(3mr7a&Cun@ zD?)n}+VN{jfIf)lFc;+)%tchDiXfjN+d)OZ6@JRc0{0>389#oSD?bIK00EuXBQ}iB`yAKcasT?fb`vTN!5ME3DcgHGTv z)cZlZ=no#dAliw?kS`VKAK|h8yguxi@BiTXWSgH zdxz=_rP6r??~NKFhz-Xx=7nPnp9lpFh}hsHl(tnB#|x6h8lNbPYQU0| z%GnlFPHEd5`MVzSh70cI!F-W%EE4)0u%=O-!zh(R^@pq$?)}#%*N?j9>N!hnO*+*f zYFhKqoO}3}7b}l{oWv#f_)$ugQI9C<+g*q(yGUd~D1idqU6DKt5xi@Z+JkVXQ#jTW zr*KM9Am1*DZ#sojik!z0N+2*BqZa|i7&mhuv0LL54gR0GW@7ll9UjfdJXhc)&?vu7~Ll@lNBhj6hwd zBt%5w*8o~8Xp8iBRL~YR$f$CXfmh=<0>UxzZn6Vn2ud}Mwy1+l5Eqp~rkpuMbtH74 zZJI#g5p>Y)fV!I@hiue_6>*&%0A!<(5wQ_YT^Y1}39hDW-d5KR;3}V}YD6jYohcT1 zDIdjq_qsJ(ZfNuMDglWdVbyc-#kwF z4p$PaQ#!YQYgvKZs!aTvRVntPVc4e!H3x#M1XPPcxZ(_teW4XZ&+}c7!Cn+kb?_qf zJGmMZ{N=;EQJ0j8DMw)3V!R|)Bj7KO5WI8*gi&^{nWCOhI{AiPS9rz*<- z@-ET8))-IBANGe2ul0-~A8PB*Ya%%H1lSj-Glg*)*I&*ji}4f2iCjIj)AcR*?Jn3E znAc_F;iKDK|F7+?Kl;zccnWZR)OW&lkVPY|W7r)5Tp#&zXvb+uwD%X+hbB{&iTR5D zxW4caGRm)e-P|$SA38e$`CM)FqeP84@({MK9~F*^N5OtdMbhHnAf%ve;CCBnzel1@gchdbD4etK5sFe%zy7MfdEtU0%1xm*PxCJL|A>AV z7mb(l0W;V`#xEIBTJZmt4;W5MPalNS$_~j&NIUNhEC$Rz2)`sILgD zZe$ij^9Ly!f^rDEK6v%Mohw&H(g+V8d4Tc=Q&RWrf8fYL@P*;~B46Ycw4U%qB54-w z29`!xXdT*twMH;A(O>8dqknD0Cnov}ybUXNel6XOB)gqmWl*B>Y0EKl*J71c08GJxDNhn?;8a6PG)s+_xuP2bPdi^anYV1>(K{AJM*q8S(?WOWrB&dkxwl&oB_WuhE~*HljalTCcc{ z(VuK->JJ+jze(8EpX7wme{{>gTKgOFOkCfPXV@2;ao;}hBgRoKAK7XMBQo5Fkvg5w zFrrAOjjS1@`YVJNk-0_awkRqBhu;3TpSWRA{m_+)DoTi~yHrnm?l5Q{5P3QH<$yFY zpQvg>YhI4qn?`v#5C(3_Y(WJyBPoX>gK{>A!tW60yUhJMS$OWKN(NT7wybg!3tq%9-(YRyB^M^LhA6(sM&S#(P zS7!}7>)I(VKnawWLnwi=4i!))Yll*x$6>#iKY$JILUvIGMV$x>2Gtcq86@0-UBinLa_(Ny>pu%vDq9S@fyi^QvnlE!9k9SgLgel6$dK^VoiLr_N_vn-7U9g!<1IFXWziA=ZI@1+|`qyfn;oS_;ba&J=?t&oI?PG>TfaOZTSw zE*Lag9Me*Yl4BZU2(vnlK2*@w}-=+{v0XMbgfDfv|BKT&%c=y)@&Mv!=46f{G zpANn_>HbAYkL{S|X*#}PSnY{dA!`J-agJnG1lt&`zlpU_@JD`wov39%SscaqRZ>H; z#060sMROn#r!Wvr>hK4s=s@K6(zHmaQkjD1jPTPe5xNiwM%4nCvWU^dR?kAEOh>Y) zEYK0ZijnR&lkWv###GRWX@yA5M`?ms?#V$r1$7z8NfeGBslG0w`np9%?w%3mE4wKp z+rYE=`NG@h&$%bSf6>D;o6pTw`MuL>6I=swI?qhvwcZzJhiYAUrQJGpDmP_!A2avn zRkKF-zId8f>U*Rr?*HPdL9fe|_D(ls#-%PQ*H6_eQn0W%7(}Lp@ST7*^m{6up$iAF zkJ?vpqu-ZntKwGFu8JG5{BTbr(6fIaY$Oq>R|K>mQST~oM#zmhw>u@5eu}cfARdw% z0Qgg!07WJCp?K{~BXoBl2uVN6BH~`Pid^j8q(B$iy?q>eEOA-+!7C^jNXzVmJ`URK zi4Lu684)%ggf*(d75#BlIIVwA^vDDkVgvoR`f%-I6t-&af$m={(0hGsV)E~;tz2bI2su54Ehsa+i;+XSR*Nhr@ZTsscKx0w%iDbmxQhGAv2_gpp(-F)`ziLWX4kFL6oYLqmIG^r&>;CGR zjc?W5m8n14VYbnrnnecmTw58g9j}5W!(Ik1e z4S1TgUHS0D3C#B_zWa;05c3_zsGbbUW8(KO$y6~}aU5V6pYhv#@UKuPJu15*bt;;= zM}g4dcZEQD)KoOe586aZS1{xMaQEJUQI=Ww=)6VY$r( z!@&h^$tK>dCi*QYZ2*fYQV#e-j!E7}i*n1*Z5ggD=ub7udC)P$9YU-!6_M>`EIIkL zBFOnBR5>RDR2ztB2y133KohFmw7PA9DsOqwTcXO74hU%wnJZUyB(oyJ& zKxfcXUY`_|7)2UitCk|@j5Qf5E(U3PkM`b^EBqvZPIaD6WK(qderAghukYvGM>f6s zl<KUiY?ZM+f zgpq_KyWDId40x1e;syDgz-8(7?2o-|QOWtkhZN>?i@!T|-BppVod?%#$t%vStma>N zRR}-OuG)Y*osK&ljjD<^a;sx1!l+dQi77JAtfpWMg&UT6jC+;k;If5Y0iS*fVjI(qPo` z1G7ok7HIbkSu8ghMopqBK)IAC%!WhRGfQq+vnl4u)S=bw^ZU7uY>SDXH*G`7pgZF# zigNR@ucww_ZpcevUjw#WN{>2kMMSVN(2>*`LX|8B79*{QYINYOGD5qPI<-u7%$r)W z>AVAKu6*@y@4um-cJLEjGrPS}E`OIH@h5AcN9v-}OTiUb_#fpIPEr#UU&EoTTStxD zsy|=9eo!rB^+Cwn0qzNgOBXds)szI47%U7^R(^M5dQ3L_^cRUm)wr&O`k>Vhnv_Ee7}rw8+nbmiWv)gzTo@7 zKA1Rx)xRPYc%BPQzAu;v4^%<~$;fM@r$sZbkl?kr5V5a!$N3|Tof#7#*gn@vTNwKomDtH=Hn!;V;_g2@|NL{$y|mCCb!KmiNQ>PT}QS52YZa# z_l=I#y&8Xr<5j~rB-StEKy(qW@rxYx7#CugSZn08+$#~!ONXsoO7>+Y@g#v4PRUAg zBbHZCL2hmoS%sas@}PYMgNZ=msJafaG*-?RHUs#dfYSk2chFM+Kqbs0Rt}S`7MU$X zl+YL;7!OS+GPDq!`%)|cv1y0Q2ZD#}6~LhNP(D~S%u?Ypl&bN!sf1@hiBPpuCEWh7 z{$h8E{xW5^{^DU(5Z;nda_4sY(u9Yf*?wn<{l^D>UK zpSeZ%c#og!D< z3frLY112Nc>yW(!^_+0wl1tTs3rm~{Q$cMxCW60k$tAUsYn!9;*CQg7lJn&KszAS| z->J}FRiF^)eaAcM6P@?qEsm&$6YK8c*ZOn)qaLQhDjNGGJZWw}a<93O8j(65x@QXy zilH`>>L9d=gEt5id8m!loVUqE#MLEqW-fw~kkuwnDr8kCE``ob99gGR1SgR~Od)AB z+n|P)lo=^a&{vdr*1O^Yq}7z$))tLR(54OYE6EO0q&y$nh|{}g(Fl4zEx7lQ$5qb* zs*k#6>jP?0vc$f{+j;dMBSiL2P^vo1{q8lmmZs9B4gVX0+{#Nkcc9%tEQb0aUHZiUWqtEm(xcz-Qw28!hQ9p*Vz4W1Jt zyiK0pWu7m#o{R3{&oR1d>gjlS|81v_IiDAuwn^T9*#NvB_OyJi^9scM+S{htB;;3@ zQW4C@q45I2iI|@Ob|WLK5GJD%%Yih>@k;C!so!7+EVrQdt$c62J38HH3u&VpVDzs< z%E^)VHi1|J;xz7$55bm5y~Y{D?BoCWw?+4rC#ID)7vV>FPMyoH2N2s`j=v|`a**En)=}il>n%3iqjE%jz|rwpCS14 zH>x!KwMx8q?eov-Q=h(ZeV1E$-f-Q@WrM4x%$+;sFzV|oKlkH|XsD9wpOBG6 zcyH*uf;by=r427kMnGDjASOwcNVh#XuhL&*SG~3*_fK#;yX9y7 z=zaXW4oAkShEw6I^ygQMR@rb*A~hsAh>Dlk&<&hu#b6#*AMPx8?^K;x{cH>=+gs=7 zlB4ZuoeMY}{FUvMGQl*Ak}K~AQ55^|7W$q}i~?O$G43{)Q6LsTABKS^<^fo2bH$~} zH$b2-fu1H>sOFwU!V3inmtWXaR|0!r{L62A^ZmQ?4y?Uq{Eji_4f);gc0GYUK0p1S z-&ftQo;mN@OJ^=wrFQQ8uKPVN-oCkG|AQTCsykKB95~^}jk-~Pd*Z{(mi~6dCF{Ev zJS{qu_Zaw#w(OEo$XRD2IwOdFFEAD<>4nj-2~xNO=ziV=;He8RNQ$5a`@o`BJ0M?$ z0@Ca#fU;F7q-$en=TRg{a*KRnF|?7~A_d+WQ5asJFr=EB)pMf2KxZhqs1}RRLnVv& zi?lo~ti9p(clB2bz8o`Q@$ZITF?Z!{_iwx7P8B!(gRwi%m-|QkxvIMS<~A{92iD%( zsqNt|Ipx*;Yu@QMcxlIyABI1Ib2nbEbR0(xB$pfyY+cRSnNFa*P$>N)zRKtzk=jB` z&T3AuHP<@=>B51GIV9n70Xhix&uYsTsI(O!8kGkf?6#qCVz%8dd*zA8SzI_C{AiVJ zZmZCLcZ}YvPpm9HZ+gG25B*NRb?*7+Pb0YSfZE#NiTQBnqflU<-#KJlRh#&{rPJU^@? z3lApD$N7US#yT&qwo{6#M0vBlN*mKvJ-;68m*qQ3Yi+ix4{`LR!30m7Uk~H}mJ*|3XMjaM&7c zhN{@;L)eDEqrx^iDSH=%`}Q&73Hj_qEqf;*Cp7bB0X-33BBy>bs+1WVQ5}Z#*Z5k-{2c~=dBG5GbYCzjq}f5tj<|kdH*n-8PVl3b}Dhh zJ-9&DtDVK;0>KG;4Y@bOZ#^xVVxse`)dxN=03u(%FV7o;D6?C2``fuu3#O^cF)wb^ z$3R?r*QfWPb7d)-Vy@LsZ^UOr?q(<3?`))#h2)_fA01m!5lrAcHI3m-F`q~w(^Qh( zn`tCRL{K6zB@{%o%UJ7I0F!_{;wh7Yj*hs?0byP*@rQETc7R;2EAR#Lig=+@$jNER zCu12vHj7-UahKA*Hr7}~E@1aMzPHXvaTE@H_Uq+$Zr%38{hcTM zw&|iD`cUn>{>AE;$~P}xUKIb~Usf-?bmU)_EE#lRRc4FJ-u7>_r(g$>BOm8yr0hXD z>@o6Qr`jeNe2#H^&=*J8xr3>Q%R2*B2|&twEW`?>2+M8?jZ~Cli5HEhZa>WhHyF&A zBtLVlXpk_aQaT9nzjPrYWq!nF;Z|Lvl5M9S zIC|s1{&xQ|zqjxwpbk!BJFtRN4(CNHZpLhz%^0$ZYn5aK@6qJ@e7_58fzDF?p z$a%#0+t@}Ru8!j#jH1P9z^v?08|#&>Av6PA<$`Aw%6HU$r}{u(lbB4KQyAYR{DrU= zflO?lWOxCj-Aq$^LQfvuGhFWRDqiL9dSc8IGp@g~eCo zm~g~H9$|9#;5>->V}}JMTaa>LA!Hh}nKtn6aNH&EE8$>5)8#e?Scz4WKy zRi_@+4fUUuS>8^Hbxo<$uG3IBCvqu@pG>}JZ^|ecyIT|%67N@KBSN6Z}ex5!K=4T z7}u?@z4QTT!MQ0iVuQA7!h8adCfoV8f&5Pm=R-dOvRJ zUgsRxYyAv9iflG12=#ceEz(UV=%V5TMgl%IDi|tn$LSOMhQE13QuASg0lr z>>cPJgwXAaR+Aij)GMoA?If9wxpq6+ufrmo=3*$yUTYke5(Z_=epES?GF5_>8MORMEGN&b`qazM}6PU%QQNjv?NNX zPSjEoRI4iknhPqHm3CdRHBpEbATSk7=!E+on~!<`bSv@+8Gk9%Z78Y;CR4Y%EM$q% zxFlE!92oL&&;phot`rJHd==q=h zl#^$_>cA}zzo_5W?;k1c2-{=BBU`IxmbPz`W#4|~4fe;L?}}x_nZ+-c+qDOBytfs9 z^&kdG!GZoJksc-iEC3~Sz)T);nlY0YJ1NAd_{eAL%Tv7_KyW5A2Ip}j*C!1}JNCYM z#==W4?B5~1T~)?8JF7K2k3RInRt%CY&?4%WTVC=_J$R8rg z8%U;LGMn?EZUJ$h#A3`P8}<^C`-n&cV^GFW=aIBuFpYt6D9j`)`cnmakBVKaC}jQ- zimWjm+k{9Bb|Ch#IL}@2r28wa`y4s^%>^+dj~zbJ=g|1+qlT%pVWXyx@7u7kwi)%tY{R;^yWYQgPyKK9qWIRDI1wdVLT99-r(@xaI@Av-sVxLoXK z$?0Qm)H=e7M07^LiX@T@`cV+W>`KryUJko5;{lvE>Hrw@EJOPN7PB@|2-61Htx%T4 zY_nR#Y{>&bTQi09a`8e*;Ag*Gpyyy=M)WpJ-*WVt5V#MkrbsV`Q%#Gw#5qn6QR6@T z>8&@fx@gLI)#d3IT#8oT`eN+Z|9z?8Bl=`vjwq6~dv+AR*L;s3bt@a%aP-MVu7 zdvW$_8dt{eeg5%(&U))wv;x1&e&`c*(XN^<4Mja)+^$2f4A%|q3P>qK`DXP2hu;E# zgqds0yxFhCp;;ely|1I(9WU+{lRP#1tjCI%)kVFXlELXg?2ERL7x5Q znfZz$abi@7tHY|Q<%|j({t0VuTD1{HM~!>zz05pVF0L<|cG+0$wbaDO9S_iRVaHNP z$=0{q>uv=yZq0e>3su7 z=)0Ql?19~lpWE%`vYIoEHFiyu`?}Y)Zo@t9=2?gP{TDuW zthG&$`@Kt#mfUD8cof7#LkLAqajdY+#-gZJrj1RDbX&Ke*o=i+z1f&RCMlVzjEy8s zIX{-@XQ(PYN~1v!yUCv%qDL!~y7C_4S2I??oEs;4G}wsiK!01Q`bEu=S#}@5W^;ovj&9{OPJ-O8@=L5^_#sbP(y)OJ1EzQYkZ0@#2h|AZq$ za1zEo@vOo4eYWmaEVwcX zZRx9cDN@-uTJRW!pzOz#n;ECZgV?ct{Ff$laoj6G0YD4c%iXT#{3GcUK;2i=nkLlH4Hb5>w6PFSka9{*Nl zz47?ogXjzUp?+b{gvPn*if_JHz2u9(u3Y){ORmxjhQG0S?XGlp(#|{H{OWw=>{xMd z(v0I{rVSly;+AqhvDS%<;b6WjRtt$aXmJ97eb;iktP95Cxu657S%m*sAM1flfcjVo zI$6z0TX6;ORQM_b1q$g`XN=pv8H~I~{ZWnMAnbbo;h=N$NidwRRmrC|T4w?Bf^tFR z1>^$wMlddsFBoSGFdV|m3<)l$S3(aUyFvN|rV0c#J9FAlR|jEiAsO)b(wt1m^^a3S z8o#!e>5YxRsP8InRKzCZXIi`1BlO6?%Lheeed>j*RXH}Q+RF{b@)McW# zJ|Qvw40VZTqAn96>N4JZ6;YQC8Y8GrLU@57x)w?kt7^1mlahP@Y)>NMH6z9k+)p3f^TNCTbjQ-! zV^&-+EgvQL2g>b@r+(bC{eo;2Q#kxmj>E#4VB9de@EX5b;V__Q+^HB>EE%wQ?nTMi zM9J8GUCCIQ1z1ZMmsB^Vbs-_?$TPQ6{mt6uZxLm4s&C^&Q8tJhU_6z*K@8VK zRfK)+_!x*32<5tH%8>-h7HD)Fa7)uctua;wT_cI#c*N2O<~2H8N{wnnAk*(}J4aPb zUN~~|VpXl*y#K9B4t(MmXCL3#FzfQX68mkqdXOo5&HeIxF6#k|bYwkX3mM3eil)?! zYdHvOB^W!4fI&{c{Uw+%xqo6td-=w5~K#o%_O+Ac67WGpQj*?#Ag+`dW3!2(%)y=twz(>OKp!0UoBM8Ez2h7QqBM}F z`@ekW(<3lcrj2PtsmaM9v_~*bv7?Cp?r&v4;e?1C6?XWeo7NDK>?SdeW|{(U;=*BY zNcqL!m|K*$GN_hjldAru(Zuz#OeV_p!ImCRr{73k{~+;jY^cF#Y1r?JBHuS$=KAy~ zJN-sP9KG)$7c2NruSAW!04*`b2-F<&6ks-m--tATpAmzgoe3hNz4HvhG9tK;@|M7k zXYd!c)9PF`Mc=8neY5AEkH5G#y76ZF)$W%zPI>VX*VO6y3jLs7ua^#0&f&Xv>+LUg zMFb7&clu~lIxtv%ATSWq=3Oxqj*Rot!xx3khIQ~`;ypZ()KaEUvDtfp8A_9h-V0n8 z=8@>zqY-M5^#F9}(_ogcjQ~nb8S4oUA7eQ)ew#I^T$=;x6jFvX+6epb9%bjN^Hdr- zoYm^5^s6vL!WsGt`{->Ct6`69-tri|8i?`=WSZ~A@5O4k>fN~7e)xx<)i*z!WbW5~ z`bV4*KxtvKrm&)vbBtIbLDGW9`D~mR%x`JZ=0tOJ%mZ))SS5(Hiha!~C9u7bB5opv zbcyiFXm7)4MI46#`U2>Ws>(t-o4x{t0FJ@_#i)(f-GuV+SoMK^^Ci7~`3*O%yYK3o z>?_I-+`9J=#AI3HeuthkU#%I9;XOY+}PK6(rC0e%4|a?L%eL&1&u>FclSl1a_aui^x@M0q$1%|bK}*A{#bqa zSo=e2xw@??qn-XSu`FrCT}wueX*{aG)9pnr9(x##4s~8`^hD zH?3Tg`h(07V7q1e7Bo4|#_%o3+i36g*^w*eE?#rmc1-_pViJVS@xzm*ZUX9d!rixz zTjq~SST$wy~)r&=PJX`qJIV5B~}gc?`QR|_#vQcvHUBx(_p|EP9bG4Tm<7{S%GL#=Vy9Z zH9!e4Od?7hJ&}C{ZhO{*i8p3AQnu)0jb4B|9#or-q+j&m-B4+T4a*yESL^gV`+WQT zyLAXdHujM44Z6usi1olPcLV0|3m;3OtS*32f5peL{|6sS?a@=g-gv8OgFij+^&Y(& zeVadp!#5BOhd;LG$e%A7ciU?k_wo7js;V|T3wgX zvIQZ-@GZQnUv>^+)US5*TNCfTYs02R^PgBZ>)PRaMvPnh(eDm4e7JhyO(!4IUz9bp z>vT@<0sY?T+N-*{ZQi>bi#M+RL${dxrI$^6XtX(lt^zqXmd%Ok#*mv?F8W%4i8T9K zfO|)ZD~+$^lCoq0grT7f1sfAaL06M;lf)JiaI|XFMpc|@cdB{%P*S4?s&C*x{hh;$ z2G1`nKGZ;dr;V^Z3*3F+V|{MLUVu9_<8%Ii@wN7`BIC1sEL`t@?_&Y+qjsnf`dsx7 zy;au$$iiK>c3eIOK7n(!oIUiZ7k(FUtm$L1pRL(xxcD*eiG?lBy@T2xju5(~(h=&V z=o0W&;5UMX1^H!V-G=u{an!#3`ypwIT84#!)E(a#IJ6B0d9Qevm--PV^3j0WS$t7I1(s-lHxA)b+cP3>)$X?g%$ zDsZ&z%&tvaUdpbB&MWE=R2%gt-s;lV4(%;13t+DchQBdr{ffCNgjrwF`<>Z3PMw(h z`hW(M?8w}mJ23ZH)-G1Bjk$jzASSt`WZypN~G~umi^9^MLn5 zZo3%xNgqyF4!J$4Gl{=S#wVs*Ibk~;UUF3 zxYAMIfF37AUow`6$}#v7%u&GrO#xz_^?VK-Ap=7J))M1&0)Jp7xdD<*MT}b+u;qAF zsoJVc*lfL#vHuha?<4wU)&2gPm;c`0W97Z;SAh*t6$MnC9+9g5di*DSFjcovpJu4e z$JPe@_Km(>8rZN~ZhAVvHHg6)qhCDM;9_&fpdY8oIfHM@b0(dj;Y+q~uhDYPh&{`x z#92esU0gaSMRBi5*Z^huizCOQz$5p9D&I_)95=#fJo)S;7|TX{wx0|h4lFZy+8}EdWkAqHRhh-JodA8Uii!# z_7`vyr{B>oSABxx|9sa@&tcvhk$0f1X}WKbb&xafYUxwAntqc{{j2wFF%|%Stl47) zPHln>x>3*byo%4GPi@)I{KTLKMa7Y|Z}O^JjKT7%e{BrE@T!}$8@v*7Gr1qukhbV= zRATeEter8w^fXzE0AuNbf`vwJx{dHtjUQ;)N|61848fODyMnuAj zOX#bjp9+gu8vK|ZfcEtVmHj6jX#850|8?K=8GpvL)g!iS)f*hwG>%)_ue;n=?2#L$ z9nP>Ho=3!o4#0=D1_yr{KC1DdIW{y~gp_KQjVw~LWEOdMfs8iI7X7V#Xerf1m|u(x zWzO)O%J$=r|9WWcz8TY3J4(5o9AB{h9Slwv85&vo78oP>r%-3>YxbY5;lbl;UN@;^ zmnH)6@8Lf~e~Hi*4eD#{KVz}z)600Ue^{#%+W*PB7z-#L%sO!#l%Yd__jn%mSvql* z0?Eax3i&Nn9ggy(`N1`4irU3-cE2ZBDgfu)lAK51aLaLaK+RE&13&p-Z%H^7(GsHjkvN!>BgEOK`U4FVv#cHPIp8V9?q;*I5v7skJ0pzGJ77!>xN1$lGj|#JaqKdI zizf3I@tyGizB8E$B6;z2X8l@u&FM{Ea|Pr096jpHiVMVRCQ5*AGnV|VEaiLe8Ikh{VxE+-ahfAuCSLq`q*QSKKcj%F>;rjIXDl$ z^p&|GKu9$C%GPnEuZ(fG@RiLO{g1wKnfS^q{)5ZmX!4a+$Jz7#`4?nQ_HS#bm^*g+ zfuR?w-5s|t*t83xZ=;^*un#<6Wt@lQw`_o4@1H_0H~1sqG?^vS0xvf7={D%kwzk_1 zo+^|~(l3xp{abcy76L##vA}aAh0?CR508&H=QfM?N*|Cw32^JDf1qF)I zg}8)dcCxnxGYB99CZNa%z*U_Mh@S*F6I26d5@rkDfr;!Y6AWSQv^90MMYlR(^e+jt z8@{$^S3`5>HuGrnt{VMOi$@z<%QnekXSj8Ej(agap)pZn5RD3901!jI}5& z1TGhjm!6w~ii?M{@U$Z;Ho<2m=>y3V?_PqBP#E+K#hpa44Kg}NLHz=N8$mu)*Ce|O za?w{VLFEB`yZ!Q+3lh~M`r?GS)6f6?v|GdaD}BUXqS~w6A&2^1yL8`*rG*{7I!_fu z&Vg{!xXC?O^ocauX$UZlY_>*j|Cn$B)HG-;OwWux`K|A zh(sEskpx_tJP1Hz!_he@j2Hp=DRvc#rbr40z#t5J0tFc*7As1SJ^+5?K=FqZQFW~x z42iTruM~)zfoOz?Ov~LUxb?)hI!E_7CN76FW95sJCoPY79uaLL-pA(@rXtH_{5~U1 z>46Z7fB_prg_gLNIGwsQ}zG{#)3BkrxkBh0M4HiI*9l3|0jI)qEmkm-Z4PK zfu&kxdy?mk&*2-BkBq)CdVg6Q$A+U3KC|hE;#hmi+)LP8&X;i>W7*Y>ks!e`5a&=L?(094qw$>Kv!p}yj zG}3G6ni%qSq4@I#ApV%Ft}Cnv#z2N<;WSl zqRPVN1@38go**1EP!Cer9`^$YyDktQ9T{b{63ocaEgJ;+6x@}qUxB;{K)(us0 zszmS7?_CudKK#k6fYE)%VMF2n;_ej(JLdiKAE)$B=c-%uRp+YcQy>43*YRLkPyIXn z1a97x!9#}*R;VYH8XY(7<1|L?Xve^|Gv$0_<%#(I3abH@B}QPFP=*;r{04hPaDk%P zcGiW!IA$J-BE>i&w5WE&bptpT)=kJ6XUN0@c>#1isjdk)n(BN|v>dBY>C^X>ytpWD z&pFG~m|eZ2reC5e-}tjWwq=KY4bhTiQSR%Pim<~B2$#4 z%Psz826F)-{|NNMx8&%tvsA0j5#fyJL_!oY7&%9A1Cknu-@wH*YSQoJIq_3XdIc!t zrJ96D0a%6EEIORfiNs9O6@sBnUl_jyxMIw06FE~hRi&=ct0aHbxP{rPnFO$ma8CW~ z%{M>$km(rb)Q0=5^p!Oir>huNZF=)ungt=yv=o0Wx?qIU&0HkhY!Wn_3(l;l{9m05 z#UsVNh{yD^&84;L0I*7#ny&8?qnHjvnb^f}AolJ(vahuZfpdlYjAtY;BKfuzmW4?W zrl9bfvolCHg&lcWP)Tgn2TfJyEw7Ks@-Wv_AU84}rw#HQY=yvEMlvm}pNZ~w~{?aRaIwPXL^H3ry@*78ZpK!C|0B30R|PJ#qf66lbuX$^{(i+L<3Ml zN-PhXLEBp8*^Axwj%ta$vwr8mRQ>I={YXZ2yEzc+dj8}9A_4gaDb}&)RyL1|J^%`; znov>>85abB1n;AS7>Zq@>6dz#vGleWgoTo7F^E83F?jUUL8O5W>G$ug)h9;Wb40}# z49?1+FUnQpAN#@)8!ozpYlFOQ6!>nC1xar@0iM{z3Tt%$@POxRcvIq0q9{p8W6Ch| zg`*Bvin7(JhCm#K>{VPo+Gnh12dn|^VaVwcb|jdoEP-&)zM;V72}rX}Kpx85Bddw8 z0r=r$n4G-l{ibF8ZaRA3ey8`@*Qst5<73d91#ruAnitqC^6F#7Tx7A;JcwUoerdML zP1ZPMGxM`lI_4K8yf899TAC6+X2~}jb(<+#^WsiWgT%pMgo(|hgwYz!^KtniabMpV z^QpjeHmWGK?ip}pVShIF*C+aK)gQc~-?Fd$YGP`#G2O6F`*fB3f%#^?|8E26h@o}@ zagKq=ucpI-yVj~CLm2|{4@`lhi9!S^%@if_lZ=F+WRzRP2nRI*?x^AWWUEKyQ-e-6 z2|(8`)bpWbKr~vp*2N>aCmG}n#Jj`JXn%4hOZ?oV1dv=Z_~dF7R0u#0sewGy8x`XM zfXBy?X)n3A`?j0(YFDyezG_>yd-WSjN=BWd-x@T!-IDhkw0gCEccFTB%^F==^x_lf z0<-+Osouuh>{oa%TcVda!}@jA4f6!$wexfA8RvPkscs0`usf1xVZ&5wp5b(}MP{nj zhJ^xB=NBOJqM3L&-Vk;D7juV}L~iqcnsXqvCTU^2r5EcDot66ivDdV}O6v(3T|4U& z)jd-u>2L+9ir1K``@@sA~l1xFi#&BdOfMzG?Pc~PwE+699WT#0If+Gu_5T4UtKL{*| zOD9>g+l4HeISOPhz)=8?0gnQcZB0kPLCS|{G^hu)L*y7>)AP=H4Dtft^z>CAHjTS$ zKSysp+i}o)@99vXw{^4kXaKhmzy+aSITq^GWff?;Wex}Kf#kH^?15y~>gh;CsO4JG zlHyuXab?@MR`kP~mWlMY*5x)U^*3jt+;O~OKg+xvfAz0?|tiv7rlSKwS- zTe1-6Dz&F|uC!j5m8;*GuKpByT7<@c7Uyg5;FzZKrN&*Dtt-qaqrNXex38V0tu0=ZrR)hRHd#vbso8AuTe#bW6~= zmejAkL3k-uO&;QJn_#%WSR^A6&`05$u&okRe%q3xw$podL=d<8U-<0>&n%v};z0ES zwHIC1b4Ztr-j`guZPzou-?b0OnEz}1uYJWOV_dG1Bi?i;I<6^O4)&tJH5Jj5 z=WL-G*$Zp}mV8h}uou4ShX62k1Yfo594@eSWH@&u++EIZWK#w-ZAx8Yd9V^`^^Qgd z*G9G?IVDq?y1RXSV`3cs^sJnkeuIWktfN6pLHjQ3@@)(D8iIvCr(0c3^EOn(*87r+{@Cr_k)x;d7+jHGJ!;7HH_x20d>(?s-_M>jbnJ!a*LL}Bwr_Ohfcoo# z!KF_<(zjo8?mjIqX7;6-CHGGo*3o-!{Ji|NlP+D-hN=8*q2kKQ_S_0zS`-?(AZ7q8 zCpo=8Hene!Bg{g(D#+uhNc>T}_ARLGjUcUhKurZPTJrf9#&1eOM{Kr|C zK#GjHZ(3)gAJI(p8~nbkiS7TKq-VBo{zIU#js2taXC8cL_b-|KPKEcr^ao{stR5i| z%1mOLkjF*5nSDkpEF>f==Og`t!^sITbTX0TWYvtRhe?JBAUvayhyeRQqvFwSjjxHR z1O)yM|9De`x4&oN+-Z~MC+Oblm4rFdCeJtI{kQ0ob*TRS(^?fZ_$vH*XZ{r^b`Ttk zYpaX3jKC));~vnbkEOapR1L8Z0cIkU53ip1OXl!=Yd3X zdq{qZyu2rn#1y?LSn?tqj7T}oaIDX`z9J?ildLyM264q9}o0c$Gbb{=p}L(U2Od<l(>2 zanJy@0mKGuA$WX&w71eF1V~%qh1TQf^HzD3Grq%;ieZ;uIBalfac)Jj{*&H|xWcWQ z&!2al8guKcvNlHp9cmgtPlL0IU#_jJ&#@y;i(1>su3}T413T&f<6!ne^V~@yR`jya zNil1IMI^^_CtAgZ&j!$qBF5?4M~WjrRvAj8Ce1})#qg5wL?eSo*N9A&UGTTC+L*K4 zo}u_+qFn0QvHH2L6Y+>)Tb$cZ>0{22Nd@KFlo!{(+UKReR}@(YfW-lLE|$8oKFCK7 z1Jv>yHB|2e1nGJGwCb~E#}k_$e&VUk&LOJyoy-__Z0>$FNEi3}{^8o;HT`~bO}-yD z;cB%=uR`2tt-et$!Plpc9)T)#eR*toB4r(bMecq;JJlfL8eQ>NDNZs?@w61f}c zs7yeOh@gadHvru%g{Cq7Tv-hjP zvK+(D@77nAqfGf#mljvAZtM2P9^Jb25p{FpnxTt-u^2cX?A5ly-OXKw``C_Awj#_q z>~`8>;0^iEazMU{G$3Z<4A2;o1eaKLg17Q;&_P|A7!aM(1~An6M2l0Z2z|!lU}nOb z;9Ck9bChL(BB%53WTMRlO;B7&;*C`Ew9w}*;xp%BB(n;=1A0{r_NyG^?cdS=D7a!# zmi}1pSAA|>lX7mCj_0PTRQ*lyv}q;!Yn+60)RMM6%RBUMt8c>jc~RfkZoz^=Ac_XO zcD$&4c6R$A2+rL)eCSXlCW!xB=khzln0G0%q@d*qXPQ~VAaYr=HtdxxX3ZR8$EI0( z;?1lx;rQ0a2hy@J!Mb8!C?!T_?ZT`*h3(C(K{G++hZ=t{A@bO_Erwk6T9Y;)5A)bP z{-2)(=FUp~sPWs+q6b%Z8x;NFaaHpWkfo))GcGuP#Cg8ny{ZQU*4xXz0Xf&mk@@=l zufEnFwXN#jqqW6c0IQhjJ&5gJ_k8~*zN z{<@)-=xH6$uCAeu{q=Y@FvdK8*>)j9Du%I$z?4`!1Oj+K;#^hP$u3dv-`wAGj6}Vk z+&FRfkfFOT-LylZ-eY<`Fd`E5zC1K)c%4MO?MwU2o!Nc<;+3@t-tcdym#23sjm@kb zR6DBv#>&1$9g0j;ymx1bil5Nm&7X4FT;=~!V&a{9M`GfGMh>l28(eRcO}?tSZO68+ zRF}k8^cY#yecZ51Zt;vx=$;+$doyI8q5Iu?JR=c5=nM9S&kR138wfK#>x%lNE|I-=XqV7G!aY**<^rvPO zAOJ7>oj`F~MD-H3xxE>3BCy{sWcz|$heGQ18-)Gt<*OSY`;DB137;BfVcAXZXX& zD^+!qo%;36Qn0c&Hmaif|6z`a@dgi?7MVY-@80gZ5o1*K*o&=<)34mUevZB)Ys&8{ z>soeSc}=UEhWyhIwMwrT70ExHan~k|9lK*XenD5b;V-=E+JXpGd)w6(e`{KWq;P`K zNfj03iz%oGXPbovlSO+hbY2k`8f>o7rqB_2DaPoq(8A^#11_R)R7Pe|J1%IFuRaY- zjIy3KR1$=oUc~CU1+&{>0ka_Epg6@!=&hKZ%63>pbS6PXxMTA|FQ7eQtDo!W=rgjW?EW(O13PoYyhWMSYJ*zXcvougK0T7}L0{9( z`j*DiU#jJLnQPdXF*~N=7i?hIlEUSXO1p`+yKtQ+3+G2NGna{i9!dm3uqjjq1z^1= zS!f+hDHF@Bki?W=B^H9XoFu9PXADhcRHFhQiSQq0?j-t2m~4gB!CY=TFi-~8hYTbM z9X|f*vWuS`x96aGsC#`a$|>*DHyI`eCPDPcqdGORjN61)20s$Z5*`cTehm1IZ*(pFWqCh6YFstJX zIEHb35kNyK+Ja(`2yOY|r7QIQ2CeM^!2k)`V~=gvQPdcxJ_wLSALE^I`Xo5PSuJJ@ z)VKmg_><~zd5YvuabU(kl>;#7AeFUq*-n)+L?3xWwHc&82`>-Z3zlqA|Ek_6+VF%yzgv0VV8p&inTMW6HCOQogHm#c2~5dOy~lz zTCuVs57HF+upm!tmGB(3FJ|(b>TbHqUEQT?h4bXX2@ARnF0B}Z;p20DkX|ZDu(6&3 z-vwC>!%FlEpuF{fkfW1|uOjGyCSqG3tato-EVy7349oTN4}4|2xPFdKbv}51fSd+= zKf8#jaHFA0Qp}#N_;xIw*E=0hKj_ZVb(IAn(zFKY5^Bp>#@CRUfVQ-X;n@KLYYSr| z0aU9gjFPCgE*w6nwy0y#fU@hKafODD?Ov6c;qwJ@yT^@oGoPpS;j`?K&x%F^k>=0B zN`laqpA}D>v@JdwpJg+J_syTxWZ0;EG)ZvAqW&-G=MrGjF6Ja+|it} z%8vYAWqXXL3$Q(%>&~wT`^>)_3<4ox#7pBDOgeWc|7A?)x>?9enRiS9yi`hl2`>$~ zCr#r!`gIO>H$S^ycmC{tUGcMf;Y7`)mSaYM4OSp_kQjk&8_qNjN`yy+&6!L;Bh&=Y zYN;zI4=0&-718a7W|*Ya?Uc{ZTDuErZI!?WJy;V$M`ukyMs-r%`-c0qY~q6 zyl$j7I0-*}j(IT08ytprj4KZhH4ny?*A4Xsr{f*da5R$vUmAUpZQR514ZLU)DPvJa&;6 zzxYk*`4sp zWtZ@aQ&Ev`Hor}$zcOQ7hYsz!$a!AoS?YQRwG9c7Pg%Ai)Vo)MU+V@N_{YNC%yCoY zbuI+G>v}aEz#@SD;TvVYSC>*AE;JjNhPQ;#Acm(bzdYC%+nB}_3anS~L}W43g2JVA zsJ9vy9-})v`&0GA<8J=Ct^_VV?GGdsmonN)(SzF$BmnX%sVE@{)Ci%G0+Bm=gkmRa zD%_p|R}H>MMTJQX_*$tP16A;F5CShbygZ@*i;IF+PqshsnD3k=!zTMis>4;jHL<>d zg_8p3Cv82 z&pPNWasvbF1YKZIyutw&p{oFBH=JfJZkh;;G_*~YHVVL3n9{0xR7s&nQnEz2DgBw- zWEDSw6%Ljr62S!9lsxbWKtN^Y&<%vsz^XjPp$x+XviLDRSze+K5>dW|d=?BTLv-P= z@D@g^wcx!#H$lDadBc9OSNS|+7fiV#plYtX2oMP4@Matt+(yS6&NsU{?U&HwJ4dij^)NmwLOTn!U{=Afp*Zsc%(G7YjdsBZT;V*KPRuHIb9RP&kVILU#H2_Le^%3u=Bo%kqBl z!#CR7sDQRRC#bTif`R3U(x_?nMmp*2CKQGHg?E)^)exx<})>qr^5&;E(je z+@R@@(xO<{vhY*joP^?}^JW~3LDpx}3aY}qSo>${|5iKhZG4Ee)%s2QC~cpr_5HeW zhkcasPjG)7F92K6Vk|OG)Rwdu3*3{|W5I;~m$3kQ$#r(Fc9dzG8U_xl{c6+K>cELZ zU+W2AQpJ91n+xO{sCa=i#B0Nt#y(bT*}*nqnI0+jY|(U_-8(>BmMxk3Z0rXaG)bsH zSULG0X@Z2n7%X0@6dr=d$|j036L51NV&x2AY%l zio?7xyNp)zN~U3J%}eOG7!u6O_n;^h8!=?)L#KXs?MHXsdS%CJ%C1_fUv1yXIpM_j zakuD(C+f9cS)n{>*_-cCWp2HeGR6k}8$b3a*_OhpD$WYHP?7m29oT~H3?*j)VLNLE z{L^kBqE#p_Bz_RX{wd^%Li<;tLVMcjiH-9miIq|Y^{a4bga!+L7nm2nWJCj?x|e=; zn;}JW_i0Uwru|};M5xhZ4)Z)?aNaqGsb`x*3pRnX&wQ6BfA}6c|gxn#LC?xs41FcMSW1e&`+$8~@r6DfxMzSg2qM|4YDA&G!79OpuwpI)E@RYXlg8}y4*vH(!V4nzF;LCht~*8n0znZ5`JL;u%Xv z3D=3AW1=46n4%&}W$J}_{jgL3$3rMqTLYc1s64Xr*WW) z1kO&_t*cjGi`FC7+Ueyh^qbByy=s-#U+hrdbMfpmCN%!&2m* zkSnff0vm7;d+1la&Xs^=jL`$oxp1R?0nt(Cj@KW4_;s{^+pb3G%*Ivf)tPz=;8c`l zSo6cyogQdV4TvwA8%?M;z|7=PX5&PJ6`8NbiihIGfQaWXab?hUiyZ+R9tbfEj|5*W zhUKs?S)$goT-1HfI!Wv`rPZ3EonvG?x8V-Q!J5E$$XG?jSJsP}LNO=C!+aWS8gdcJ z(G11LaN}bm_Dj$P)OX0?hA_o=SR`#$3A^mDFUMu=p$Dpu^>g6K`eY-j8(K1TkYB;b zI`=xPON*LvDRVN^Y}U$z9SMd!f(v9I@igdhS76Yyyq@F{cmTUDCe}FI3;`R1zBO$g zO&j?w@K02fz=J}o%Re~FaDBmzYdOb2!*k1wtYiJvuZ)j}kT7&>d|WVVeC95<7#|+| zFXN-M1MP)MMv3lQdb9&g07!mexv9WjoAE)`xp!dw;vtPuT`qba44Z<`bs0?&j3O#G zPJr@)kxw+)G_!(;GlHm>D;R}(>L@W#qgYQ3uI#i%AA^ zP%|QQ=Tl;*lZ!R!bM3{jU*3Qkq9 zoad-Y&b5^RV^K1HrarcW1gs_ zmlhb=K88dS{J}PiO_lq?v4FfY=xKU20SE%*v}s<+4oIvH$~EbHQozxgXUHJM>ThDw z`GOm&s)TpF80fLyUGL~rJHA%$d;=X>`wV~m#pnJ!`HD{chYjd`)f4Mx+@asp4?4zo zZQEhOy=tjimG1v8OFKV1$}kI=iluI~kPPlinUzUH{>n<`+lrDT{!)-XUip4*e@&Nj#&n%GW8Uoa zxb|6FAGtR)y0%UG9(@Oox^vm&o4-NX_~BvGJ9Hd}wxCI>G9~b7`qo|dZgZZ$eE6fm zXCGO#yVB!(Cv|kbsyTT5MSbt-HW)TLa>v3u+m^huwAt1TYVRY7)^kAFuTr38!NZ3JX^ zy`(=KqiRH$<|tOM8sBk5T}DoPTw#6)G>^meTM!UY=iSybJW-uMMRJllD(j5@@$-=j zwwT8a*Dnm$_=H#+3|DX;p%fBz_@aqp-y`arb+(9V#)xu@LG?|zz^2#7Y@bbgUcx!|5&H3LZf}$kAZztHR1vfx)v#zq?)U z&^w$l_TwN!KWua@cM92;v?Mtjgk0b>K(3#}~nI|(Jo%}xMCpxk|?03z2P_I!f5{w`t07X~ov z{jj6i5{LyW;M`)FejJ1XBVxwdNBRxl5LcvyOyJsL$eMjTT!#z-9{he-%T-8RT3SYHrT1&=i%l=11ac|>zjB^Rj zVhC%Pf{}t%ky4ft4!q(nnj8iuWD$LFY=-EI*u#X_(n$D;xFH!{5^f9`N?|5q*)XnV z+OOtOHgSI$0WADq&Of$b0JD4mvVb*yi!+J(5aIfkDp_WALUG3O52v~llr!LP)+ zaG4HB;3|9;kr@yH2$dj6%VnRla_o9igfE}FvR%6fN%-8$>_CLS5?^7M!aJtv=T(_q zViXacwRHA{mpRGO1Co>KN~AFhdnJ@A*G}f-lD=*(I10E?*5Tm>nPL}fgZ|z8aEhAd z$26>qK&eRkp(L>QRwOsgE4iSG!Dnt%U}-Iq1$zI?bC#x8H1V`4+xOlQL)BItIDW|a zoX8HwrND)cxRk|P7wNGQb|;E~&Z95=tx@+D;bdQrIF0)Jrf+VavBg2qS2-O8}#? zrh*lCJrw8-a&11-kg2f7=XMt4g4ZCwZBbrjTiEVZUquBbmK33JToFiaEsvJ74_$tBxgCjr9%A9s|bOu6m)qZqUnbTrxm^HMGA1 z1@}Sp(NZ*z4IqcC5ELPl22kAUCW*0UTyeRtDp8i4|dw!KCFtaJQws&O8}x za%vLztCT?GNX{uIM>1VG3dmyo?SiU?ZG%2?Y>oWSO8d0i{(LKTn{CzV_A`edopBeuB|xNDz_?mD}5qrZ&TifLDZP;x_i~E=O)*_ za5LJU?+@r*_GN01eev`O*V*?>Jh!H*_WiH)Kfk@}#yd(o9xZOCT*vp#zixq959kM; zi9*ynY&Bk7AK?#OC!Y)ElvokKq4ok2qz?uMmJ9g zv3cU=W0hDd5jiYiy>OrxC!>M>QmhYJs>GFWeImyvUye`7e{p<(gTWn#r_NIeEzS}270(fNgnpkKA0Xr)2g3mYkCJ+>`4Ht{rKEdg zi$jF$Rpb!m$svkF2@oP+=!55}q{Vr{Ju>GhTUxfE#tJ@QAQnv~(b6y<>(_j)f~hRx z$3MWyD*DeS3!*H~hZ6pOcea*=^fyl*Nc^`)t52L>rfzF@;#KQ-!H9_rH<_ zRn_a%YBi?uMdur;^Iefl=&is1$G?WogDU8|A0hS;8}z3yw@8NW*_+O0Nze(%g`R*; z$ckhQrCT%-CswR1Li^ABC!$73deT2(RE$Z_6m;&Zce>-rK*CBp=A9%shJX=}$9T%5=Zkc^-Zjih)!Ur0%6H9}1(4X+H=%WA+= z)ZBr`0(dp`;c;zk?!*(Z{BJhh=|EIr{JVLsF!qxtM7g|!wr zRJbbKOXftPq0-TkO9l&*HDseFBJBcxL69v7EJKoARA#YctI~D)@aiV6Z0C^(XPvQK zEyipaqq$48i&7)3vc`#WRRHYGJ~d%SN^|(%SlnnO!s7>63~f3S{x|S^nx(NaY9F0? z>G>lK0eRZ^yVY64Ybz0O^G^@IxN_)CBd@=;@ejBqNClkS64XcU?yS5S$uI9vCoN7Q z+z)bGr`S+^i2Gt?OE6ZH!=oM;JzLCJX?z+kS5UTctf)kU$s}X7R+t1!2B-tV_!y+j zP&URgg0qYn44)R(fmCN!Za|;-V%Va-^RJve&)LL{{p?TrtF&C@?ta%=^^nBCC7~rSj7MLFcE3eWrCUdMT*572wz?##bQv2EfNN;k}M|2au93!E90Zf z^${+IDt%h+^Qn-U1Ek}UAA5F=qPrBvJGf9I)&{LzvY1sJ@^F~l(i3bfg2txt&a zp;Ap4i8_lWr7lQ>Qx$Y0noeh$M-)M0%h>=|iE&<=eOCmV-u>w;t(MROA*@Q-ZVBfS zeyi|Q3+M1Jy;gHBEvE>19?NU3kB{|YaLm{zm{#h7o8aI`ko0d{*NQ4}u$w$rG@$?H zvondS*)!rWxvS+&M&)5m)4*5&rhJK#!TS)H13QbF7^>;UXM8xYYZ6#XgC7i=$og5d z$YHO9eyDe0s8D>r^1(MK;wX)&3!nre>7}3}4kZ}&mmH9~D7;tob|B|iOo0OYU>tez zU36p72L;I+Pvl@LcvuLMnnX5aM@tNDHM-5^sRBP-u3c)Y8s`S3)mBS3f9QydMuGRI zdSi6J1=Q#%Fe_WXL4!}!`W{Gjcc*R)TLCI?5DKamAzx< z0E0VfgUvxIiYE$PX=p^yTx-=iz;9;#%gzBw-ugh2|BTK7cxE~W_yf(I1FSElbAXSX zV%RwV)(HZUJO?Bi3&mMXrdXTiE&_7(n>z_0Ki8s_fCa^EZYbb#L6bMN6tGmoFWL&6 z-Bxq0q^$<;Kx{IbvDMf!XFP2+U@X9`=~!EWH8wG8yq|rI<^8Az8!fh-^w<$jSb4u~ z7CAS~`#r!%fIIfL@*3}RYw5)U;{xAb1i!hTe11FY^AqIfk;h`PeEwkb`NFMhw{5|{ z_rsSVyTwRUa#07TMf_WY55vjI&oB*;bAngR6xaeX+@VYf17|Yd4j%;z51ay%Z%8dh zVLuEZAHr`e`Eh!DaLnMgqIfhH`4N#JTb!lw?>v8(etG^HmAYAtQ!CJBHH;3zn^eE> z%bWMa+D{ICY462@RNMvU>bd$M{9dS5{pqPqJ0CFTlXF@Oe}ZG585ukL(m4912!UB+ z4=0OL8iCs;YDNP zFI?+yp7QMFV_sOIk`Plma@zL2{$AzSubMe!QH=T=?qu8Yqa6y7*#B04ssE&6pPjpO z(L%GgvKKrH_M5qPI19&`_HHrHf_)YD4!y6N&%zqM-}nW#S!zrRzX0!7;uqk#SI&m? z^OX0$X8rt*@_y+-!=Eo$FZ_Ja4^vKe!}`vG985=@yWu_u>@bwb$OqD$62J1G54jb6 zOQz4{1u6+xDU0bm0R|*#oP^VYVZ|D@@{Ew)Fc6=tQrQ1EFSpwzU(a~-kw5QWqGmLH z?s!p;_#X7;&w=Z-v4`?>sG51@v`Y^mo?&}UPmTHDkAFTU<3oN2eK&x7$H`42?4hl1zP3o+-57Gbt_OZ|@-}_!)4O;66y zAKmle)g#PaF}`-#t+B?hbM4h=+xxQi8}YorwFA#T=iaK()>)AE%U;R*aTfmX_TD?L zs$=aRT{CO#y=l?}6c7bz0#f#-+mNcFK}AF?F@m6AR1~qtXo|7N6bl+-h%v?(V>U>P zF}^t|YI<_gOgyId7}GpSPNKNE-)Cm_20fnleeb=$&*%Pg^|P3@X3v^u=9y<^%{=wv z&hlccM0stNDlh!(P8%k1hGE9#k~Lj{qkT*`akKH z2WzlvEO>+(i<4K51@9}z!b{SIh|ed+`Xg07Qj{052gF#zZw`&!c3B=gNmI6D@S$Wn<3&&(>fu_gO<9K7ql@&)_+BL(*2b6PtlHc)=z$MRQ*#x zQdGa-@r(AKR_&MHFu^Am?T4ZvwLcQ&v93Ue)F{Kc;tpDsdnp8zW@McR?G^~5iCcIL z2{f3yS1A1)rFhXKETJgT?LxLB>&L!Dr+8=XTDp=wi%@5(ek}j8{%c5^T_BWjRRljH zQ3nE`NkKF97jx6RM)da|vcHfZmLk6y`H7;x7Zo0mB0t&TYe44{>-SK~*B{UzFGjxM z@Fksjrh`pc@N}!8B>uzS(fKtqQeZAi0=ws`Cz3p ziQTGT`M5#-i~GP!Cq>~ws7|{FcxwJoETRuKCkqqb>=qL?(IS$FmBGQW)RKeHjBeN_ z$5-$@z1k%v-GE5+@8a;bo8+W?mV=iFF=?yg@;0tyq|6x;=c@M5QR&L|fc5v^wkMTE zro+07#G=sCWbhvi?W?ywaD1kuqG!*%&5|4s|8SnY_%%C1GEqnI*N(wTAPPMb?1icX zor&0+GV&#uw1gUXnit+nMf_5!;;KAelVz(qwB!7aV=pOCiP)BDQ4!*x9xkj={J?CV zg7~hzmm?Nv`Q^QAz&-cZj%mA>z4G37+i=_AIcwNEge)cTOwu54&jFu7S34MnI2OcB!h!af`PPSsFS-s^_% z8hGm>v_oHPi(w>5T)7}}MhS~Pt)&mbEaDNTIMomNfukdxuvQSKB)K(9mwk(8o(ovI zKDvBT3A6t4}q_gkjIEnUf!eC>{nHOK1;5RnDH%=&!8y!UNuIWlhi#L=LG@6Y}A;?oBXu!R_sT{NJ&EjFiQV3xh)gWF%b@b-`U#qfXi zar-@Mciy{uO-;jft)q=TNiib4VeEe`6N7&8^&OjPW{B8_(fGF0c!Mvq0OQ?a||bSK1=Z1EdE#4lg3c$7QFrPkt1y3Pmes@b@-Y|(S;qL zk=sWDhuD;m*Cb-x`r->OhYQMi&OY=-A7EPy?fYIfGRJX_Sa&gE-Fvz^LDmao=R#)2 zW-u;9H@fzyuV0H9qL&sO(uS+Xs5g8@bnTC8bV@|<$+vH*7kUUE?09hR?gMv;u#`rh z&d`%Hg?>y?$p{sd5`999d&@Sgy%FG$3je_1Xb6w=(0|gyY2`&wDaC*nCStG|4t9B+ zaS|X*gRjYp4<%lFSQlP=nD60UVWI!V*gzgJHd=c*dGVq0PVwRerp+PgFW^V4);hU%5sZ1^Q5s?UdJ4uosoy{$LxdzC;gJvQ z0Z8YiMfgC5I3eWf@Ree{?VNxr%8X*uC#!|`s~>*47~VCe<>k;~v>hw$$=6>#$u$vR zMy@jyi-7EIgNYZ4z9b0NT?;(tIGOfsde82ppwY!0JGpuW2OPezAuPJa_ml*T-Eg!O z-%vU&3e97w+d!l#I^kM8$)h*1mP1(ji1Fh`FzXLree(mq{Eg(=UwVl?67;D&@y5%~ z!~6mJIMZ*)n|Ki(ooWf0#X8+}2q8H%&)N8N2P%icRMGO|xFIeM5WNx7u0U?9S zTTvT)=NiB@I7f#qp~7*IWD_dKMWmzA6KC`8J!#f;55(D=#B?N*gAXH$L_{&UEkcto zh-_f4;mau8>C4DPN)a+L^x`Mjbzic8uWoGkTkU^+aOT~eha4ODGw?(F4Ak*&;U9m^ z%AUOOVs^aaPdNO0WV?mIZeS_zI+y><`aD=oi8k zIaPSbgCp<_c_O(B@Y2w92pIn@pcHY!%);%Gh$P}0K>?)-S^qCiOd0v)@Q3bWfw$c2 z_=r!reBAMk<7FNTwTzVVbCI!+9CjRQoc`7Ims?mowJ#3mIoj6-Vuvd&w4r*^>L%R1 zxH$S;KXn{o&G$Uj-5mV%#=1u)=a2q+@z{|wDlXJk&aAX1 zJANE}POLS=>x%|$M`^ce!h=XlFK|rVX&`*C7Ypdo*B$*uBt2%27F%&L!3goS`=P(; z6OWkTZGLil<|jV(el&MuKszDet3eMyYw3l}nLV7Gwzg>SB4Q6vz4yVV9`aASJB4wk zlL&f`4W}!B2^8y{T_@*cfzD5*bnvJOfG%&@h?|z-nsvtdzn`MdBs8a5B$UN zEla=gj$R(tw>LHQ@Av+&+Putn3q~wW>i64q57U|1*Wqi%T=9)zugbHuA$8?7oTU%Z zS(*VaIFmQ)tL54I@_y55({U$1o?XwN^MiWIFYh-7g3m7b_ZH*>oyaF%z`GX8Poa9W zMeIdZhWuveY~%@E2^fGPA1q7cj~7x_f;&rtP6d^BlwQ%_=_beWQLySfxqws-(PPFY@s|<&)23*&dXC+gV=UW{ME)q4Ey%N@sa}n{o1*<+q#q zQ2CB`QGQ^T^4q(%$F0~^e^ZzG_nZH8)!$^i(pkS-m8<*?Q<$qg11-L;@;jXEA^eE( zqW;FRG7UU-^zRBhnZwn4F|6!T2mNZiOC#;@{YuBgAW|My=}zO(=LQ+cw+75!fU{}qAYS43(5C3jYK zU0SN)2+-Es&>{_Z{*sCiq$k=P5?ZV(-GnJ_H|!T7#1-oa;_@J{F%)lu8=DJ}3z-V6nuASUw2eD8H{zKVoFg235iC-Gr*359EPR z6|@`TvEJCN!mDyImU@Eh?6nRnd!z^@!k~VR|z{F zlGRcE$08qVjlsp-ljSRoPQG%LndY7>U#aSm<)^vopWN}Ypgr2(RGGb1c{7wmReMnX z?_#cs`Y|VuJIk94G519M$QN_F0~CVx(A<{gw;Rt>`HoLT{WP~_`Rz0tFc+vj_ldbG z%Qtn_ZyXSFRhDm3v@O~%=Bg~eqf7ZJF;`{z9jg3ez?-j_t5hCywc}SgS6z55L%)fC zP48i@{?mzFYz5H14Pefd3jFpLc(2r3MgJjU;e!Nz|EcnKiSh@rHU3kKpDaIJm;JmO z`4qP^hT?nD`03~g>R*hx1epu+Z8G0v7x^^a6e~UkaxB@RKV^CBpS~6Ck>x8*cRR5kCJjUst8o#D4<(=av>KEfD>u>6; z->{4Ell3=stzV3vEWbn6FZS0>V*F(J9me~e_z~krYr}NZ}%bOPZji+Mg0Z7L+}P`hic?Us0a$Da%jRc6OZkQvmajDSbSY2kw=6$d^Y2og)^940{(dI<>u3PpvQ2M5K4dFJJN3IS z|AilzHkj?_<$MpMzJ1AeYzs4gPZzTr$t@Z_w7Q4p1_qr8=N9bAahe*;gW3Lz7yrL} zx0JQ%hxkskxrc1C32mlR3EJG*&{BO0Yy0LK^bzGP|BLdL|7YcSN4vwSmvp>~_E;dx zuv?Pb4C&WWPj1u19XSb8F1siUBmFn@()L4iC2rV=j|<^5Sbv`F#o65g9e5Eapv_`v z?uN_7m>I`#3co5;{c)7SfMob*rouUOa8OP9*}O={clrmDS@-#l-*Is1tj|pK5udpY zn>JCOCE3nT!@0=!6q~Wd;Mf8Qqnz&knGrqAdT?PM7VK@i8SUx!M$k#eH?n;>aK-+b z_7nVcM-$%L`2Vi9oZKkZ(g*t?;YAo=1Foh;7(sGaOZInhaRzTq7DH`!;=KsK|O=rokBdKwhG52 z68CmPM$;v`Nn(zwVW90ROv}Lp=qB1Bha~mNk@*uN)YGTS2z3q=*Dy}{ZZS^Xv^*Lq zayBCe3#KIhFI(Uo&3|1zs?NcM4kwgI_CcpmCyIM%SGsJDt8;>|`J+5=zF@ZYQpgA$bpLw6V> znZ-h<5~oGG(;EU#0##c!tlPGI?fR|!{LY8=?r7S#50gUI7Iu7Xu437!y9Z(nUPtw} z1V*HSD{E-ov2gl?+HC4xg%czYy`}XRMZolzPjH?DrPa3H;;99(@IdjIUBE~Ghx>(- z%EwKfQd%~J51TZB?#55y!<~7X%gQTCM^BzO_No+qd2>2`^3cHB^1$i8Ct98e++>5} z@PqU?-%3tX?U|`9v5@KvwzVb^$2k)06uG`m4tq7v3~wf1^14MOHLb*0~v6O zKSV2sO`g7*u;b_sFZbl@0;8KrEJESmqC11R^|gLr*DRjHCO-OP>%oWH+7oTlrr8q5 z=n22Hzt2uwmCY^&vWiEav>)2r*502A_BS|t<;Rb{`S!<8R<3Bjxct&BrX$b`I7XRY zfBWOdBJ=VqGUKc7R0c>6dz97sJ_IQtJx>qkvz{lOP2xLJs!avG8(62iYYd+wTK5c` zk+JBBk2ve$&Mc*D!CA-mtjAd%8Nyy#?AYtryBKrj-`<6TU~)Su--Wx{OoZSrWkHT} zXW0VBruU(DH)XLSJH#dM%~uxCRFR)%n*yY3x65z zq!SC>5lA}mVI$WKh*a!vXW4cLY<-CDna)ySvl|Ip-PqLhv`iS`d9hp0uUPTZsZ(b6 zbRYitPM&-Djs4rV@84Tq6*3#!Q~I8k@ofGY@Ed}CeQP)R*856x%V5`T1S?;6wHtwd zU-Rj;gYfdzLC+_mi8nF3^XP?^5=R6l4e_PH_f4G}Hy2fqms=J#BuZbAzGo}xK z)iCWw5fch7nGpa95%Sv1qJ^#IUc@ptBlM*mn<%cDEo4Mw=1pd!u<@pK1fCMfu?vZZ zf=Tt=!&mslfv-dko;ujg;O_|W5K!wIO}@Q_581BsUeZM(kIaAKNQh^jiN%e#KXKpg z6CV_04;(Tm`xgCfwrB62^xG#SByYUquKj;omsd6{Cj-Yt!uvqb$Opi?8TOt+l1Mu~ z^o8b~a|4ag7h?Vh{c~XpM;mDt$p-RWj=#0DGQ)9n>*YA!hS@>5Ig5GF15)Tja2gBS+>MqmxAaE*1lP(5491$fDQ_s-1DTq!`dNB0muA z1SGeGDBOs!@ohb1r(tSE*2R88ZGR@;N~{$=4IKIwqDC zd`s0BVxIs-H{z61UuYrmr}YDdtR4tFEd-*>8x*f2G9xISTqb9vh6loEu!!-<9`xr( zwNf6BAS;jDs@GqBfd^my7S170z?-kRRfi3c-O<|WxX8?M{(;*AJ@nUbBH1jt&n=N) zGBd!XCI>xQSzMuNPSp5bVH zm=N8CMN_-ONVzJ+)@l)s<1N&5GEWa91%OCUPaxUA!9A`I8RS3-0Kv>Mp`@5j7txNC zN1LIwBD;vCD8jF_dZeip|GxU**%z-bxvg-_C^plv1J`y_Q89n>&-hv6TNl_Dy!l?~ zH(`_ZTONToVT$KvJ(ES_mq^VyCl5OLsVY4(=6A+p~bw zmSAKDi={P~lyHK5?Vcp7ggY{3j~Dv{a+v6eXdqHw1DZ#)U+V{o3sWXcz)3$^o5LuG z0DKno6WHhn{~Rp|gbhSef+nHX0)q~rT87h1U#u#mbr_i4(j6a{Rv#06R)m@axhFRw zBH@`_Y5ueH94K@WA<&KtQa)_X(xEo7komGuvdc`*+py{8wPk$L{)(N<*YV5n)RJ+P z>mP#N&eva_zeq02YZuO`y?k=^%pZPy+wsPr{K&Ub_dU*rVBa*waopr3c(35af>)EL zoe}h&2OigLrsr`=zDH|~BJ{z>o|5x|fHW3G9t=WUG>_OO7PH6;a(Oif00F@u9Va^| zU$h2`5I?~P%yM{Wa1h9y3&l-NGIb~|k`;O|4&B(G(z4S>`5S|!aYS|tytE2;btSU8AC^m*w{E}^nyp8Jt?>H z8(N#U9eMKptxvr+WLUxA!3D#H80D=`+wO~-al^9-dlQegLtPy^_lg70zqI$@b0_v! z*VI&3PoGYE+K!*}Px0L%*%+d82yGD((GyzuW|x?xlfXb9Y9%THLFD9%A2?2S&! zcy90ni?eZ<=&)400&5~TvKJJu$eX1XWQE=1#FKNYD*a(dJwbAt3a3-FzlPSJ-A$e= z!zC%f?IpVJ+|-gw3?D2(EuLPW2{U$sWC`ddKa4HmKu1e2#Oi?NE7l~WLH;ehp^c!m zL}G=K>KJi;aA*J$Ba2E=jaac5rXxO1(u~p>Oo~=1v8NN7Ci0lEh844m{ypJx`>2C^ z_tX!!?b&(s=UDU{eMn7t&me7fo zQ=Wrk%M>ex^*S6QZ$wb&mS9qc_aJmXsk{3I_3BHLw~v2IcVN0DAq{Bkmqa+$vEh7D zi;7Q3PNNb*en(ih?tK!IZ1e=VtiL!1(H;w^j7{QQKc5t}OITY)_Ko&S4aH#zUYa9y z{O{pcx}YL4IWl_o@Yq!iH_S`R8WbCy7++jhv|(XAJMd@ofuHvq=0ltInGN0Tu8i2o z&=~*pK_zL|H>9ly#UZgz|ESdKhgHva<8M1Sb6ielO-nET%>C*eQ)yj74urRwgocdJxiSl# zD>Ho`$N&YyfUP|Z3QUH<8&n>($zRwNgF=zI1D|X041}Su$8#_g_6(#!@$d{lDh-8w zNG(x1Le)qGhqfj}s*%7OoI_oSKwqBr(tft%P+4o*Fy6>P*x9zpg&V%WMx-Jid(kKc;nTywh>{VaKlYqPkn+ z?z`z;X8I=!OwU_Lyp{nS-#!SEGRXX$+%0nR{k14&*k&V!M3vKP@HL&%a5 zgav1T-?tgzf!^4C!;0y!XP~zm4xUkBBM0?KVk5TnbS{F}l97iboa_x8X@EO?X7DU^ ztq6rZ=vxV6ToGV}!wVFIG{$^*`CCA

+G22TV(H|AA35lS;H* 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 J(H@ZSe*wN^#MA%) literal 0 HcmV?d00001 diff --git a/docs/fonts/OpenSans-Bold.woff b/docs/fonts/OpenSans-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..c668e4537f9e95be9f967a0455038399fd250af9 GIT binary patch literal 63564 zcmY&;b95$8u=X2ooNS!z#&+_?wr$(CZQI`1wryi$+sVeh`Q7{d^Ua)R>eSO!-F>E~ z8q@76D2(j4Kby-C^MgRcpKVQB7kZ=8m z#L!yb4gdg0`sNA0rOy=QuV_OTCwu?^is{>i_CLS_5r|FfOs&5;qwoCczVkCiY@{nO z)pz{%g~t50`SJgNWNPJZ^3CA`05fX<5c8mD6Uq`ZWBqTxmG^I(|MFycU2BFk`z8T^ zRr+t8;2XpU6fjz5)=qBUoYHqWSO5S*C!;x(ww0~nx82TnIZ&+smH)b`I&H1*_N^b6 ze*5A72k>Li5gUDL<8N;CTYvtpV<#~KAD5l2qZ0sd(hC3}q5}YUc8KZ3l6DTp-@Z>P z-*(?=fUq!)f|H%o+(rmXiLp>usy&W(EXhl0I0MVSVGAZ4F|&F8>1f8p2CUQNvh* zkVJ%(mw_oWDI+lkePFyFJ?6n-IRJGw$8o8YW_rp{jyivKYz3@aJ=<=xDkh^ON zT&0Fodcyi#_$TgXOIRG||LXp&8BUR%(JuhgJ`tf~JQ)GNV2UuzB0z9q--P<{LcY`N z;DNA$@>tbLq+umVh}U2Wculx^%~)TFaRu>v_3}gQux}l6 zVYH4yd5wyCjhlK+V0T2KHLOhDd$fP%vQfCPg82L%P+ z0f1if0q`}y8=d^WmS^Bs6#V`^@xMMG@jg)jK|i8F)$jozx&Nhs>p(Pr3w!{W+uGE; zww#LauaVp9oG-9FNpA80Qs)gvu}UUp3Nax*VpPR(uU!z-M*2HurFtic#-vHqDT&N+ z$o~0xz{pmE$-n$!+Ke*Tk>NhBW4leJePy~CcIzEBX>F(V>5I=N-#X6R><^Is-cDp= zl}eL^vQHip5-ILM1O==N}clva%3!O`?2`0dRdMG z&KLga5e-E~E92Caj!WH<>19FZ;^w9b#|PBx5?JSW+GY55aoZ)D*EF7LS#}DUkiNahWd5wlbTI-@7sP)~*4ZBidKhzn(6QePV;7aDOCJI+{&w=3s9iff`y z0~qY58Yj}$3KhFqNew)$E(|UYj!BMf9Sj`= z8@bk3Tx;oC>I!cU?u_Vp#i6wNqpa| 9j^WatWN$(Xxo_J zI#L|+-k1T!)gy>hoBUZWE+qbkZo`1*(kE|Np8(S?hnFzhl$5?z==HHkvG z;=6FGJxOKqyFwL8<7zHa&BCZE1>z!wKHA4yxVO~_5QKlA)}533cm1hu*#(`$XiZ{E zb@Iv;LFM|H8s!#Cd%PgJFCS9?z<2cgZ^VFr0`>rpfKL#H@0$g%2)GBlgHVHzg1`gD zKz@N>fcyZ2f*}8IpDW)Xqsfo736BWoKe&R=zJ}V69tV0I%p!(gP1`@}V#qGA7Oiz) zpw$Z{hc6%aXbEXXu2?7?7zazt<1ZVQl+GNU&&0{u;5eNQlpK#QcQx-iE^|Z|+qDTa z$@C#BTod+#ntzBE5n1aaqG17g9JYJ+#P*pm9m-(yxzA{h3yLhr5Q$j4WrNka<*BvUyO$~%e9V$|8%%2Gb^1Y9SPEzZto+@#s=@^)$L3jd;1pf zUBXA=z-NH<#cf4zea&e&4=QiL;;q^;H`IL(&i{?0Am3vqqT5vl z@vod4OsB#f!#Omzx;cXSPK5Uy;F}Mt4op8@ zyP3YZx@|N1wONEYVre0m?-}s;xld-M;39;g(XQ;>mYASE56BysS??ZBR)YG9AqUa~ z06C#D;b*DSXpyZ~{*MausupRO*R~h) zrvI_^ZnuVBD_K{hvybH`roGAFpA1Fj?XoKV{)!TjPTdCI=Q4}_E-bIaO7G(d*RjMi zrgzV$3D?C_Bbv{yJCYqS!4a@My|JM~2VpJND|?w+2sBr=40AK(2tfv2QqZMih&+uz z34Jz7@u~=<2yqpwRKSW5MS&EQzW`N&&z!Gzn9AM&tjg2$=gk+R9Ri0M*legTC%kxgi54DmU_m4s zJejKLwcJaM>_`-dozW$TACJfp9)i#P<+;O~OZ0$7SIc zqPFMZjyllpgR?u?hvC;gbyle4;lEuta;?e8G(5jlv${XbM}Z6I`@1A(jE%$6F#ub- z=!_l4f+QUiOpWmQ?0EtzB4`!UMQAY#yM||`WQ%>h9=;eNFb;J0O1Cj zDv4%AifL{NQIcK?3QQUneZ@u`zJACPl#nMY=)ZJA`I~xk_KqTX_z>~Kq$648FR0l5 zN+)sX@&SHI2~(nf`e(~H%Vx`};+0e&h_}Q*hX4Tq0^s~;_DC%w+lU@$AoLa(Roymr z=l+{`JgqrK2$$loXz%vK6pE^ozWZ;vi(dp_sWPAYM$B91XRo}AtO$`>+yPwoz1{7v zyqm2yPr9l!Tx=>I9(~nl79&$<>FyJ}9z8x1x(b`tgxeeRT_e#Sl&=UoewH9KWH{tB zGyAkf>jpnJMVgD|jt@DMMc#?Es@g+!!FyW3lw+W8JoDMe%R%C)gYb%L@i?@V^`Q~s zCUSKLmw7&(gGF&Qy}w?T&R-l1NUu9vW#K>W8#EryTpWH3U%(o&oEkd3rm2jJBo4#9 zY1JpP9;voddi?XItJL|r-#=F6x=qtRmb7Sl#d$w(vc_P4osd2FjoHAfOJ^dEJKbl0 zMHz^M1oHveGA9wS`4Kr*`I9g?4g$n^BsAB`ZRY|i|GZy`QPtbZLbKe%0y(@?6eHnh z^A_Y43Iic7cn%k~jDZ}3LP!Co-zjpTWEMmk%s3Ywt(I3%?xY5Ng29SeNX&HXET=Slwk+1zb9;}m zbmwdfJ>d;U{47KJvU@A|HBN~>2m7%bs!B?a?L^u#o7w-d~55|nv8|7Li*-Nwh*O`;)oj}S@`k{OFQY{xi|F+CFbz^Nz4Y91 zG9Rp3YA6=`v$);n>aYY_!5Zqq^L)u&q#qy8cI26E+z1H*04OlDLcAHV_&SrLg7spa zo0;{H>eYr&Tbuo{tmBOKO(u)`VTQfn;aw8x+jUY=*XuBj#b!mL&pS!eC!5k5tl=X# zPv##-T7#RzLooK!gcnMbhiVFz8zwYT5G=-t8k(KKWuyQFhOCOjIj+1R8R9{#T5MBD z+CKAO5~n_ruwX_RtQD7}gFaBJYBLvvPEX?@EO{+j5~BRV@!mqfx}WxdOFyH8I7C

G1q` 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�OR& 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 literal 0 HcmV?d00001 diff --git a/docs/fonts/OpenSans-Bold.woff2 b/docs/fonts/OpenSans-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c80b2d2afb71e4ab1809f7959314416cf66cb82c GIT binary patch literal 46676 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 literal 0 HcmV?d00001 diff --git a/docs/fonts/OpenSans-BoldItalic.svg b/docs/fonts/OpenSans-BoldItalic.svg new file mode 100644 index 0000000..cc73325 --- /dev/null +++ b/docs/fonts/OpenSans-BoldItalic.svg @@ -0,0 +1,958 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/fonts/OpenSans-BoldItalic.ttf b/docs/fonts/OpenSans-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..11d107ba5dbade2960a96a10db6c5cafe67a3586 GIT binary patch literal 127844 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%0Acfs9u$O!+3J;?Kzoy>)wM`-tT1J)G|n4?T*2s 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 N_hMg#Sq;G>{tJvj&3^y@ literal 0 HcmV?d00001 diff --git a/docs/fonts/OpenSans-BoldItalic.woff b/docs/fonts/OpenSans-BoldItalic.woff new file mode 100644 index 0000000000000000000000000000000000000000..ced8f697114faa5e188414c045ad225cdc328de2 GIT binary patch literal 73624 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 F{{YD(#p1%qS< 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 + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/fonts/OpenSans-Italic.ttf b/docs/fonts/OpenSans-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a3093274266fde880fd1175d5803827b8c914258 GIT binary patch literal 131152 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

6v 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

LY(o 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

!IHJM?bo+dTQl>`91vimyevvCKoRlI+D<` zvuA3W7c9JY!OKssdF?N=7B{ZHbM}PkQ|_KSZpx$uw^z;`59636Iyf7Nzw~B8c7oA? zZF8)q8Z89|7qGo*Yo$RKR?6rzTALV^-U6GGWNq5XhHb@mw=)huWSo`sBdfQ6(quGf zRJN}y)Uba@iFm+KwOH_=2Q2I2zrObO*IUeF&0U06@_s%AkFXDo0|^Hi3*JqDJVaB} z6sN_N{SQa}{?0qYh#ACNngm`0 zZd`bUDtoKLLaOX7w7MZFF%{0(@QQz+DW_{T{xc6=L-?a8@Tip15WWoWa!Nz^o|LCL zgl`1ztfkCrg4$|NO3BHKU`kndL9MY^?T*Bxl+^5;ysiZu{zrYXab}uH4tQN~g3r$) z$I76`D<$n?dl$5fZZVWRkEj-Rlk1D7ZW+9IOus2bC9C~2HkGd`A3naDzq(}Vmj2bZ z(W}!pjE4R-}%J3u(D0ybSH#ODO56##UlxA~dpS0~o&0G$i*;DP>6%QI0=!Ha$Pf7O z+JTBuoEE_n(l(o`4LjJ&*l^r54PD$OZWIsK{^a{)6l>vD|evl;S~1M@Dp%8VVjV+vViBSr=`i+GakPwwlukl6Y!f{OH*cU25yi8uW-EwxsF?wKuZqKAYFVy zMs9J>s2Kz_NAXTqLPlmzE|_Qp61q@{J-v*T99)^yzf}_RC%9Z9>B>-mME<(e zuiKDu37;J|e&{TCVQ=>0)VvXW#@?Njfd1mj-?uMkVVC?7eeRl===$3I)!*`-e`IKn zK0OAFaepSJe37;9(ZM~%L-C7O@V5*cF#VS=I!&vSrmUVj_r1D!^XjCT56!K0C8fA8MBgE&D1dK(1(z5(^Syoo~5u7sZ^~^UAy1?Ko@6GGjC!{`0Ty7 z2uzAq{$^xiEcoy0A}I11J_9ROrm8hKVkWi}b(vmlDL&$F)|(hJZnLH+aEC8ATGblJ z^@U6m9s_Tj2mjT#sM$>KvKCO%o4WO!@*w=I9sg`$>C`Ixvv_f9w$Wc+f%WhS$OmX* zbS4`-l8SgEn^=P-9{$w0NIORnl-mMDRTq3j=t6x)$(Gipg5+#XUbD|dei0ucy7`+6 z=pT40BwK>Lak~-tE2E2=%)LuYSh@VoJzS&*w-g0NSb~$W!cQq`zK33$Rurg&X)?|q zEXN0s{`i~sSb}r(dBJ)3?L13x5z1?NXw@T+!Lu!;kGlNfM<0h?EwwZ+qffic7kJPg zTn|2KAJ#!{rUz=HgOe*^SsPSZ8oa06Y75Pny?{heGr`R4T^hK<8YnLfjJ6$2?vm{q zG#I{-3*?IZ$CZLdJJjdCxg?}fV)a|GQHRaC1mw4JR`|~wmmU|LDFvQs@B!Mf;b+AL zmi#Yn9bNICo<)vEd8k;9jVKL?#|+;aZfExw`>k-L85@#Evy>dB+7jrIQta{rZTEi8Ke9JQL(lb1P}Cw0M=|EW`Et zqOLD(4=UG(MXsaK?RO~G`$Daj)P7F;oyzqWASYUCKcRiGa(yu1E=t$Ov@cMuPlg&D z>H66A!SuRV4zg3Ok7xEpJ%6EceH>FGwXf!n5g#3Wo_uy4iR(?q?XRf}mMnaoAp4=| z;eWPokK7A#&)_@%p-=y@9fQzB{ybld*F`g4;laJ2#+$v`2%adlPMa5C6
&5%gr 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 Z;MH@j+=%6+Ai2x1fK{Pvmh?J~{|6?3Z`l9< literal 0 HcmV?d00001 diff --git a/docs/fonts/OpenSans-Italic.woff2 b/docs/fonts/OpenSans-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..440b74c3910237b27f1db7d81f69dfbaef957566 GIT binary patch literal 56676 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 literal 0 HcmV?d00001 diff --git a/docs/fonts/OpenSans-Light.svg b/docs/fonts/OpenSans-Light.svg new file mode 100644 index 0000000..e481f2c --- /dev/null +++ b/docs/fonts/OpenSans-Light.svg @@ -0,0 +1,958 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/fonts/OpenSans-Light.ttf b/docs/fonts/OpenSans-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dddcc62a9c13f7a1ba9c070a0d3c40e5259ee7a1 GIT binary patch literal 107460 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Π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 bHZto#>!YHe#p1%pBd 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

ZBa4eswy<2 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ˆWkXjVk!D3==+skIbhc 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 + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/fonts/OpenSans-LightItalic.ttf b/docs/fonts/OpenSans-LightItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9338bd99e3696e6cb46ca0058c2cbc245970d2df GIT binary patch literal 132796 zcmd44d3Y36+BbYoRrQwcbb3u^Pj{LmKp=rMBnD)WeG?)}2w{;WAp0T^L_h>&7Z4Cd zMMXqJRIKVmL_`fLDmrfCh@*}=iat!{aU3T&jzUuTe)p;F5FOw5`o8}@y;5C$s=Df& z``r5m&6W-Y#HK~i1O{GGdTy<|29oO!lE`2GicZ#R3vvRfvW{O=lk|A8^*>G_LhOglNT;|a$9@)Tp1 z>IKtoS*%=?USa$jyn_W7PFpau!!-l;<9ipZ;qQwVEnSwhqup@E{|9TxUcC6`nTx*| z<)~ni=}ufP#BT^%?A+ExUB%~&p$YW)w)rv42`5hcrO*hI=)0`qsEBXIFB4b>%VK=~ zv}FsKRa{{$E#m(8^|9=H>vb2Ct{*ib$l8w{bv=%Z?zQ1=jvY~$iJ6%NPr(SrX&xMJ z{q>cE`EzcX#(K|RxO@Q{0BFo-!xqtb`C>X&E}b@i8Jn_nX_u~S7LLViA&wEYY#Cj> zRXovnpGBNoag@Y6=v{5sC5h|C8t6!{ki-lVSTa_e#|l{q>&*tSk*tDE5!X2@kA2RH zeV&Yc*2g~o7W@1z_W5J%^Jn9e`@|eLPs6)h%p^Z0KP?}ZpAk?uv0>~>_7%IpzQxr- z=9AaRx5;be+vRogdU=C==VEtq<7-HX$d_GzkgD|)7-R_uHjDcT;|1@ zAMgwS$5Qd8bUf)-_qY5J_e*>vABE2n{8_OF4m>-9<*@ehEttblHcDP0K1awk`1L4x zIgTUbWjGF{x8VrHRc-(WFfnGj-xR@yW*eXK2W*zatdeAx&9X_6B;~J6`e$DjoQU55 zKN;(K-I)G(MzE#XoUQxV9o8LEWsvcQ>6+5VbOIkiyd7_d{Q(v@W70B=&{+mkq)L45 zVYdUnJ?u8Vmha(@aFzeSTcmWUR5~raA)S*xmoCX%mSvlqB!{tscLJjC%72v4E1OK- zES}XTYh%_g+1Cf{L4PnSm=nwkb_qs;J%ZN;2Lx{nE)K2?t_>azJ|283WD0ph$)R8< zCzKZ|3{AYa6a)O1uv`dWRiK1H9b zSL$Q*zRiDa{<8Ut=FgiyYyNZdGtI}pdF7i;-wgVu(}hniaV7KHQ}quuWtBi zY5W)eY;*Bfr^YXT z!(*8pG?ob7p9C)C2F`jxalfV0OmM+$7Gxn%VwkmKx!{TUpqUP=BP#&E=?orK#JaGq zte8buH`X2WTgt9sWvmD5$*yI+z&-o0zU(^IkM(B**g){o!E6Yqbr>7YMzHI_Sx14R z-oQq)F>EXw2R=KVRk8`JicMsb*ko|s8`)Gg4eQy&HnXj4JKM|lvxnHD><~N5j|XBUez`<0m3zy5jF%DrP(a@S6lUO~?5Hz-Sj>Sq<1$0^UQ}Tn3mRE+< zz7smDN+*-A^7Hg}CZyxO%I5TcOh^xhR8v8vI;duXxG-S?o@eTmIH{_$YVM@v z@GW?IaLc4g=_A~~c00#VMDCRaUHaE-(B9#?#w zYFS_2w_iU#{G%oI=bcTzD5xZu#4m=0tyq)ifd(-~lE0%WHQeXk3P;!1(0Bs4_1j1x;j16Qp@ zDm$+!js{h6X(nEv$&Loi#tT@Nt`T?0of~q8&d5WXv!#{In@uM!51Xz051w1z@&j+e zb8X;WH?XLco-5lMqINu&t4?}moypJAlma!eST(uo5)xS!z9baki)P1b9Nq>k37-kf z?a^dwSsBypvfHC3ly&J^+N~r~?Dv_&Iq5vY%ZoepD=z3i_w5yWQ`t4w4e36RZ&i9- zd6jggpP?(cV(TkrVp*ywQU|_j#oLtP*!t?sej1>4X=Zw%q~L{Jy5jM2$QzM=E?>Kc zCyrXXTRtMWntz}_f};eAW~O0yemcwMB`lhZbw>TEX^}`IYQa*YR=We|b&Mxl5({c2 zcSdHrKtyBahFV`BCB0psxXz@AOR_5~n=YAf$!tqV#3il*AJfijsYwlLs!L1e1*)Z3 z^W&SfSoO!CEB1{KqSFqNcfOr8JATpjH+~Gad1yT3f0W zC&{kbgk(ET{I1$WzXP|q#L+E|K04Ap0dWt0l_GwHXQs!WlM#PTCf!q;6~8l^#^t^) zNv4&!+_cn;%&hFf-~6ZcO#_U*rO=Y_XFxh+3CZ*q_R=3+8g1nTEA)@8ymV957QSF} z#b%yq)&E$-i>!M6#;VQw{!Nve7V>$w==bnfNAaEI{B^wt{gvxCkJ5YbSLqMq*e{vw zXxXZS%r3~v_N<7HVQO}fni0_ybA#HUIGU{_6x8<3&a@S%S;cBzk?M`7~{mL)1`I7X)5-ktFa%w_cZRJZBW!Kmzr3wX1Y{o zy$N4xm8?W>!KvQ+8;{|-z1BouO|=gCz+JUTnNC2{N5@mW4>X<@H~HzSsWyW?=o#6+ zenzhGjJ)_WI{fuo1Jb?nVMS`#W0=u%h*P)mkNj`r@ zc5YsW*r0IBA$IzcW2fCNErr+wPR%YY8>gLd+S#Q=aGHnx z?}<-0n24HKrlz=~2`=!GGA+{C?TI=&hH(z4sY&2x30(lj?9LeQxwX6qZVH!R#LY00 z?$*pHWq_x*n+MF!?UTUm^1NVovM)JOT;c)r!Z~J%i_6J=<9aDwi(lG3`>A<Ay4=(Dhw+it7(7TgI>d%Yym4^(N5O$d>O+>85v}hjxU1 zxsXLui4$fL+Xwj6NRei<0*WO9ia~dS8gyx9z^MRorNE_i!6`BPQW`P?2AP19+QnUG zlk@Uj26jc=fiwV*X_2tobAp*2fwcV2xI`c-Db3FV!bOS!2q(Aj-n=wowgkfYP7bIE zsFaj)r^I~$fp>u1$k)H_F!HTOcOM>oQ02phuE|_9>$#JwHmq#i{rDTx4{V(O-U|KT z;VpxC_XTg?w`9VaZG6C?i`D&aU-jUb`__-!Rx?WPI{fW%|9SDJlk=yZKDc7fxY_(4 zqZVzI-nnDngnjcT&W6*9>s%@M{mBewtNqF^6}CDo~VD< zd{RH9zp8)B&0UbEquPVr2cdEDKk{D{ZxlK276o6823 z@A;43f?s;1p?vV&yxl?lvROuJiZmA%2^T zQ7(T(Ka5d==OOM=Iw<=AkI_(+tZjzX((U`G=SIF@)yBLTBysT#F9ZILzSV7dPD9Xxqb zV3PjrY+BD~{*%;MDhCCH=vf-KHqc)i^uVKI=mBYH8SUZcT>Pi1D*A29_wXI5(6Nfz zXjpMoi<2(Zs%6ELEz+!jGFSDd(WEMg!(`W17>}uvoU!4Cde}!A$sQ+3oCz|2Yv4+uDLjqgDq6%iI$`M2JlOkNT7pcm5 zp~O03a(aK`<0Pk@P;gZXB(&^OrTSC7S2eaH$&1lilLE~tisM!B$*|_aLLQaqqtFnG zT#4zYHh?bdEh!~dG@aj5rN1%fD{pDX{(n~LxO91#l0E5MyJBz%4m+JGolS4U=LYQ* z-wU*WVn`%|VWt(S=JT2xtTCM^$rb=5al6AUC@E6Pdqd7b4p{Q9@;-malAp}ay#CY; zcWh7}EU7#H^vmO4`$%6W{nb62@6p~kK6&vS>xS+*wtwN-uV2!SD^qD6rP$k4%%eT5 z`Dh-^L$)+TQ%ERci|gzOc_|Qzb_LtqK};zJ+YI%GH1u?Ab4Qw;oQL(ZGBv@i@f`4P zyGP5)#;3;}_4%PK2+-8eEixUGUp8eEQXFrNQwA{b&gP+%~ zd0gu{_Whe5dG1ej%eUTs@!_dj_n8&7kM2G&_2oxzzIDU!{=*-;>(JL(O3HJaH@!Z+ z18_9}xDGI#1rB)F^DJs3EU-qR5*7q(028)JSdRkbTw|67SUSZ}@w`ICv$`5IUko)K zYJA;54Vz0%0%}-Ys$5^ISY;?^7CNdnXwkMLe09+ARPWmwBSK$G6oXDWMsa=>aa3m+ zizX#Hfi?U&S+OKIj4wjJGVn;U1CE?Xq?GIrp$+GT(s*eYGR-G1sri`O{QA%3Q_Gv* zllqS;FI4*V;Y+8=jZNlCeFtA!$(Qg|k4;3ZfmI5cCHv%NLne!TO{9HwDGhaATWTWU z;3e|S5c`^p&CHA$6l=ckL#tO43!SQ?-lVy#zc^KQJ<}X+Oup6u)t+W;Oj=GgHs9us za(nWxH=Fj@OY1POl!bEgDvup||6j-M+_G%TIrx|5(%z}fO__ht{-IxNk3BtxwNyZtO9htBWzhg(X(q5#sBSi3DHH`#-CVR9U@6Sj zG-w)WF0zm`uYsjnC=Gg;D*$d(rh46)jSM}lT_)&?C3+p8E6wJ@N-Sln;#SSH2`*2& zNHNsda1N6rF;u;(SH$!Qr*!O(eCTJZdU`6xHs~)8wGOCX`bh09U+j7E#p>O+FMeX; zrrU4Wv$zv~il zKEW>VGzsfe%YZso2z88r)Kvf}6{HONlGL$WSA&{sD77ApdR$roMjfDtVti)jx;@X? zJJMbu7yoM_jz^Y zH`=2w9X+@HmSrE`7ya<22X-F)!|E-czIIG{Lga1oxDb^hZo&?|roe^8Lj8(JX zc`znxLo|udKMaJirY9!>VXOq%{36wUUQ5BMQ(RgQs|5hG_V`R8YD_LugYKv`$s{z; za5~V%Z1&GF}wZjHc>;nW%hgyp6N1 z+^nQ4XF&_h+nxJu5dHF=rZ44?ba)v5_$GacerO);`BDCkQY3!@thXR~B{V6hg$gti z8>VIjz6-_2+dbsx_&X|ZZdxgC=I>0O&W~1CV_BfPV|Z7u_`7TzuRA7(@UFewJdaP| zyKd4u45N1)YiX31LRQ+~X$K#QD_l{*Rl|f!@EoL^*8=d=n2Oba>*_Y(i@+@xa4Vm1 z3uGL%Cgc(`3b<7nSmvos^k#$wb%o*Ys!ebOat$-w?z1N&9nJ%0U<$NpE}_$OY%Q{MaNkDtD+ zzkQT{d&AI~4|g8fZ|IWeX7MJ3A8P-(Tfca`R{!#`g%hUD+OzI}zN?#l_Rbpy->~Gw@6R*8yPzlfWC6LpC0QS?=VErTePywLQ8?vg+}BUO-)6O18^1bl)QoPk-K#2J30h{SM}@KfL_JN5ye{e`x^bLsX0 zXZ5$A{rtT<4<9(#r2i-dcmhBD{eY^hoDcNH|N5#iGNmie5i$~cVzOdSY~bNlu^mZ> z?}&%y19DF~FMuCchGYIr6~Olh;3oj;P!RxpxfbTPrxntk1VB2bodg+tS4ucPQrynd z-4zNGFuU?J9{NmQ-}2!HU-KKD*W0~oI-!38nWx|QLDh?V?nT}R*b&|=#T@NyPHcuY zKuq9_0^QXlFkUm!WE~KJF%)^Q@k|^=6fsL1W{J=Rp$L?9lZ{Z_N=HHw#bmV!3?VHR zati8H%mE#;V5ZW?{^q-uOC$Zwb(^K7e$$C5%^y!`-Z4eU3!2|l0mG@r{6KwIr)M<@ zloq;$u*As&LH0M1V(&*A|68xyjEyuf42D}>av&Yrv6>RmlEKaW;1F2?vB*}vztpHdk7 zSYQ3mZ+|M1oK?*gLwUP6+)a}NUK}*w9<^BQ6mcQcfI)7ih>MJ@DT5!%;D;3GG5ltB z2qrtQ0n$jqspKMkT7x%DwHVA7chWM^?tbVO#v6Xt5&v4F#D|V;#*C` zH0g*Z)+W%nTq`SA87J+Vh-$zY5R$QTv$jh=Z>`qfuD-X~y3cf?d4;s~@-XSWX3F>y z_|A2#OGY$a@W@~JErh>NlQB^_HhoMKenTTY&tI`egwydkg)n`ds+EMU3vF8`s?Akd%KkD>LlO4Oz&LoeC!dIu~ztt$p^VM zM%z}{;s*6drU?8ra7n^|b6}4gt=mQ3NinzMmpsPC7z?-Ko?6*~4XCx#F^Xdwi(7`J zBHL-+bTsD8$$+9*B5e_-ZR25X5qtE|M(OCb=7D_aBK_D)u)~@=uav5qA8L9^_TAUK z(U`kD5_2~pQ^JsCfTEZ>1Tk05MJhi}$fa3gvyHPP?owGjP!2u>S!1#xmc$IebqGE5 zFQo+mY}v7?gbxcCGq1pVyzCw0J#aZVy$BMVKv06q zIB|#SsXtYJ{@=9(Jd^4Kl_%9BxcZApc)Xsulw#~S+#Gi32iS5m9AUc}*J9XCIB&Be z&=iNY2D#J%_fQFuzjJS>OJcD{gj z-}R1J`uraK!y$O|tIGb#IiZrX}9OYAA|_*LNXiSXzQU{O19 zd1w>{mro&42saK80(u06B+1;fK!1WqNAo*r3-EeqLT;SKys*N%VaVtl=Jk1moF<>5 zB0Y7A5BTsu+;Uof?Y+x-BN~2xQFlxFxC$X7`qY8x*ondg0Vji;|zi^;_`rT%tMkIgE2Xo$h}>wIFjtb ze)Gfct=h}f4EKKl+iU^iTmDY~zq8>XZr^!v*#8CSf7a*!*jYcsM=1Xd`Zlmnga=?_ zoH`QY)PdF1Ih;a2anO2_#d;C}{Y01M!8#P+OdtmRr!HBq(g|)*{q=DD`H2YV2IzVPiinZMkVvzfrSRkGt(`HL2oQ6XoC>0-acpZx=OVO~_C&SUiJt zRxIS2MivglvkAN%j*J*@7p`fN&X#&4%|L^cadTX#P_QTj?sCQ_zvI=1=wHs_Ayeg) zDVL9$D)CMge1vpsFLK(VNYO{?3$%XfG7*n&lXlh7F0e8XFYH<;EqLSF4W)_p*2uYJ!Fbfq&D$GLh z(tt(0)a&uXGtDCsL&kDm_fp6d9{#?%NRiCr#_{N!US4xnAO7zAC-fH|A34&_t?7fB ze?W}v$}f*qeEpQXtZ9$_(_Iz!D=GTk=63pCC9?DSq7e^VIY#qsSqV6<5pc|laq)O0 z#UubJqNlL<8jWwo=T_LNGB$47WGq1QQWkC757egd{fu0}*2-QaJPJ4<`%^gq~xqr=6qt z-HA(OG^#PH)lgnznk<8fK&BPN?&wqKg94b?JmegmsXiwKmp5;nKL^TJ(|dB)rb*4; zOChm$E##Z0c)SfcwT8}NiAx4BB8s_+5G(jS@R*lr3Z<-36d_z{IO;R;FcG}q0|>oTyi?d6GQnOl z@KFUoj64O6!-)sT6C03_;u5nv>i_cZJ82eiy8~1Z{-B}}h!w;2mU66TxmeFQ7BzwV zu&?AYROMo6`XxnN<7+F$%J8Rp_%J?J zKjG)c^v(L|iROV-znHPMK~kCggXvZHkCE#@_92B(;(jrTq+sKTW@SD|8a@%p6QAe~ z{A62GjohK>V`EQ->7Pp*S|Wf?!0;?1V8}_>kb7A?LI$%v;gRz_`sWoDw2%Cv@`d`QVuODgdAtV$<%~M)J0s|53X&M09Lpj6ntt~G%>i)uIeXnIcN#kv$zlKVB@<2 zbL@gx5?m@Nxc4_kF=!`4)?r8XUKGbREKhZST&y;S0e7z1g`VT`XOY}Ya3j-+X<2@X zp;^pGT_oNl@{$6P(g;Y3ysp94a0qz?%+joTuI&F?k-2C2x1&3o$G*Eszj#yi%n90# zVclkpSpDYheEL~F>($TRx^jklcJAlv_U~H#e$)6-Yla@y2__?2eo!*aKFF^e_EL;1 zc_UFL!6bl~Ai+e-BAN*cSa^ZIFpz}V4|4!Gg?PG_04CBdCQlDFo+q#$}bQ@O7B}EuOT%%7R(>VF>Ol}|f?UfxY_HxAlkWYvz5xtJdv3!UsIMf7hx%>jH-fhvcomp%i5M8-7Ug zzY2^IkwC-y2o2EiKDv^Dm%cI;!CYqX(i#+ljm5T=f}v(8LZm4PA7tLFy_X-`G%sV` zqIK`p?A<(g<=|xx9zVx-oZ&ZU1yx1&>t8(c(35GQNoAkYd<>jEfc+yK8`dr5lBo6= zPW$3B%OG6-m9CAH4b6_Nga?OGbrT@Ip>_*~`1B>av40N2Xxsr8_o?15U79BF8vX%` z!-g$P6vq@gMseO|BU8$tt+F}`QdU!l!2she;!NzP!@zi724TG24P#HWc{Fn>ZD)p$ ze6?os)m}yX5-->aQnG;fuGTOh(0*6bL;urNacr2Op8(=NeFb=bZbI#jA*<#ItUtr2 zzx`Q1Y4R`MagY8fU#EYv=EEyvZ@c%14iPEfCa=Lh23U}^8b9HC>rR69>r(7~ih-vP z=t6DPdct>d@8sY!9a?&w9Z``KtcGbWP_F8wWoZmrn3k1-@4}H6PcBqKVIx*zY_=D; zD)Mw@?fm7Qo44rC>o0}OcW=Mrt~(!o`ju5(CDZt!8@}S(pXDQ7yLHa9FLf$;?CGIX z27bo3b7%kY7fGiG=*VL*XJhx_!^>n?1;X3p8WBO-Y+!)U=@UW9Hezqdh-)B(n+ib@ zENb2Jha2CbJ$I7&n^3Q%A%^6K-@@doHJcK!*)}>-8gz0R*(<4Zlo`Su{xq?{&zX>* z>`zV=-)IC|%`^|`psq4Ck+L)qx)ez64fm1A6cBj;NM(&!!ZMiw`3>ERDko+B^p5kL zaQM+ZLno(>zjo@<^zhHFpPNEES9dAV*SY3yRCe}v9z41~yF7i~n!`6-sd{8DmFqFN z<*4pcMkr&EHCYO8(vK{PQnv!F5X(*?4%W|veAD7+qBzIy_DpS0`5HZGcL#~xjU`YL zHC#jbImNiMz~QcOX?-x}hsNZ0sqJXEE3S7f(%JzD1{*|kxqCgaHvq7^OYK&#g;IY} z!}YZ}p)jZe$E(!AYC}2Qx(lGSo(a0hB49~nTGwmbp1!ukq||hC`@)|6fLB_(KDguo zex(+YWKgo&5$*IuVk>11_k+ssCxWqb%SGH=qzwoFhmv?aZ2&PQ@R)3_#FK&q!$B57 z5xk6?zQnUHP=wQc$28`%+qX!3($aah6y18NHHMt^e_fQyUp3wpT7XHP=7Np0T*cf>)>7LggJg6j|-r z4U3X7DoMxWn&+Ec*A48 z-yxqI*J|Z-l1(OYOrv8I$E#b1Knw!Q>;yb>CZ{`&>b&miH$z|{rvaL(=92JPQT)idb?&sTna0I^IcG%@G50%+NM&_@ZWC4`h?@y*^b%|>XWnhom!!vlZD%wa%YO+3gOadGOm zYNx!iPT|aKrO%Z!ri#*jL(2N)Gf8jIePTX|kd$knYYEN-Ze*qj!DXIYq`7HAkeBc? zczq4E7OxXFni(W##$+)YgztnvYGqFU7ymgjuP{qD(xspak|!N0<7T(vPZw+lx~bqY zyfyfrr#BS!8$CIVCrs6U4DVXrJ0dNQtwrCEeA8{pKd#sw+vT+s#nvQnRQ?V)nuvP5 zn4gq9LA0b;DUOzi>BIFCQ;%9h00$bMZ;OYprtgA5|ngmPrZ>Z$4mCj!gtSar-HKY|aNdSs9yOz|O|#-5(4Qy%WYpErcb`h?a-chzy9T zP6mqxkt4@l02jIobWi9kS`geAN$^lVwFFEs!N{91__anpMK>5i=NK;C+jztv{g6w| zsmJfsY{X)+a{yCu6cCj-a7ji!n-&Za?&skwnVg|;LHgaAGlQ@!4{)xNl>~b%h145~ zQFI_q*ygL0EyYd^8Xt18JY+6^d(qsRW%Kp#*DT*)a__I+ms&C6!GCpGFl%q>{c}&R z4_7OF{7?e7($QP4xqh7fkFT09ONZ9vp4i-YM9&ql6ueXDq~~I= zbR?$4VM#V9VW^RtXsD+t03?#L+5nP#QDB@DA|iH53G8w5Gb|d!?poO<&=(97>Y=?J zkExYY2z>)|jN;e^ae=i6^Em^CxQm~)!kAJ|pc_D8LdlC6F!d6TRN(X!oCY45-(!#$ zN9URkH?3damN_bYKL7sqTiP(je;pBwQ4+a(67+&ZWHZJ6{K#uGG;wJS1H5zH{YM_u(UAlBC|^QvNyq%Wut{HGSM9DC;}(>l zWeV4Y3Pm_(k$SOJaVyNAgt!$JH%{+sJWhyys`u$jV{u}~?X|M7z1-p$5*8TF+iX`z z@R_LWreqKB81ZTF7>YW%V1p5t!LFryYAwzHO7O60nPh`02`-_u%LoF-@t**cA2!Qz z8_Y%6FNJtH)b)uUtlqrmt}CR$CvJHYD*Icvy*d8)z9G8LT%dn{-_GY>dR0I8)@MVS zcgus;+Q?5C)T9WWBZq~rZSqifzoq|?zi=MaQ(Y=@VFW8rAE-lxezj1nBvR7f;Ok6Oj zZpXm2Hwo+J9IrmJY{C05ZqDtU?8dzDTd1&>L z{sT+=Mg686+Y$ud`ooklh0e)Ix3{o;dN$sj3Y)nr_A8HK4Y_1#DWE_%F(pBP$QXqV zkcM4CiZMkOkrOX6MlDD&epYd~1KE_hhjKaO%|fOl!w<0re-6e}4EQiJQ7k8d4O|2p zh;tYghToUPMXUkXm^$pCf!p?E51fAY?6Z#yf4nTb<@RNF=8PY4^NpR~)t)Y$S6IAs zZpXeouPNU!<@QIznU#I#jw|gqxI>>CCiS}ONuVCqvZUoZ>4d2dw3?b2=E1b0U``S# zQN&qH1ZN)6tT3}uilY*~3N^=nUbFv-t!hM|Y6@b<0c40+6=aCmAdGBammFcafH0m3 zpBTce#EOKL@9iTQsqC;LV|h!Y^?R2%PfjZ>*VkIyPI3s z4b2;8T(>=~B4feqp&O+ev5p1s`xGd&j`_wq3};3H79i6ClE7;WVG&E|5P=Jz3IZ1t z*oqbKQQ3maSe4(pRVg;6VL=!@E?_ux z6F7d;z^+k?f-?#!+x>>9@sq}3Nd%b}kI1CPN%@2iEOehweNcKniAUXjzYhHKM zF!1ooNr|$#*95-&`o2zc%1qvOs;B()7RTE2JXH zr5E#eoB!VYF~6Y07eVjHhkxP+yd!{q4N^cnv%P#N6(7yXgxbGTWmx%|`GS=VBgyyXI5vljEV zq1H7PpNMM>NP+*a_=GAOH4ay!6PZb}wfQTzwAa&Yma5!CXuT}u{ZC@El9D3 zqsORBO5(x`<_`zEck9Dp{r2?VwmxM-*8c68?uv@;o?%(5ZW=H=r6_UuOkWFgUE`5l zBd0ImTQ{$)ka8=o*N<;n=}|m02X|ZiRgZ#R*HpaGc~DbT?!$~rLv%@c%A6`<46Swx z00omb7GvNjO_YXI>ykC_p9X=WA0xJ+Vm}JdTP2!I`{Bn%6ckZK6I2K-hxP*|h~vDL zjk0xjwga00aTT{JdcFV8*#`7Q%vQ?>^z)!bymd(=**cA=Z9FqufH5O8FW&%b9I$Oi z1YpysHk|TnnU;e>T_e>N=7$5tyKwgOmI$t;-6^zQN)7}>15gPDhe8avmK+!$$N=FT zrjG6I9+tjx{_ugG5=Xls z(;g`g5L%=^Gw6jV4~lXJIq6k7=Kbz21T+ZN@OndL!w*yXosQ6USX!fyP@*p zI-97YsFOrn3{hs+)}a9|(Z->naHaR#`_KXd+5h@hrT3LrOe0DM47=t!W8Ie#Kgtw& zp&zp-#4_kA(i)3PNpl73i!?9lP8AcKQcTW4N~n4qqdS1FmP=};jQ zOG-N7n7}3zRh7Zgf>Xo+jPjCa8nW8q))JsrP*lQ3k_N_2yxBl&V1iuLsE#P)m)Cx~ zvt3o*vYDCl7OsDH#lB5zx7Iw`esbqK?v^S~@*ed`QB}#WD%!7qp&dSQ?W7)WeVmHO zA8%=bZ||t-4aDgmjPX(=|6p&T4x%+Gi!@u9gX)KpQAP;&v}Q`BT#f7^iq#ALc1Ppz zRtmGhL5(;jIjBWRDMcf!3XcEnpjK>g2Q}p<|F?r0P9yL-KmlP03N3@6yr3cw7U{V8 z@X3LO5cGw+E@V+$lXr*9-f+J@qQf`pv0eEk^H*(pI(sO;&!f*SE8Zsk$2Zpg#D1=f z=2KocIdW`T@xDF!Q=|1CznUOo(h_@*M--2;96rwWY#AzQ32({6fx07Mt$^jHBIgE* z0&;FBynqM|ad<5Qn^)`S0rWX3Q*+$4lG){>Q#;HsxQc~toK0~Rr^}a27tl?@mT26r z!1j>LR*Vui4uI|gr2z~19kD>N&@B0-q(BB@E@455@AX+bXHCtV4ZYTl9J#L7hS@7_ zo3*aj+F`?-2bV8@bm$$!Z+=wi-j}ZRUN?8;=1FUNuN_gouJ_vMYis6xwd|2YONXx? zdDx(tBiQ@T!CRBr%SM!iax@ZX-%0ADpNl^M8!sVWL)4FYlZ%V%6cY_bk@p8D2DKE? zNROVln6lo!*zQE+HeQ`LpPT` zHu4=l;0Z4MY(DSh(O>I1r!NnUeQAVTD)JxBjd*FS{v{7FN$LkVbwtQ13-ZiGUXpws z>D8J9;cgZmu~Mtth&!ChA+!2bS6Bbk>@bC;ADbOU3`>{4N3Vb)^d8&7qJ?qGDuci) zEUR8cYT|jV3oxpS;T(tjq8cJHvO3~L9bKYRL>{c--Wc+B0X@LUmF?D)LU09(=h*~T zPWx^>2&X!_qk#jdiePyHicj>xr(vbPxvo-^6{5w-Xe#3MIx}6u06WK9pVx-P$XI)U^=P4E=v9Iy; zEff6YXsCo_11-rX5`%#fSDneZt!`!hU59oh9dk-~rSWO1=-Q)immYn@k!V6@dt1IU zQ{7tR1N=Up)T>%rV-YctaQkJ&{637z7fb2)xns!-Xw`Afd|2Sj>vLs8B*K zHT_5_KxwJNr(}e4yF>(ID2!mUx|XT!-6yQBlpxFNLc1CEpl^*}`0XM_Sr-Z|+exK9 zk76XQO6@3f)kN!x8`2QhM%Z%in|#V!^!JK>=>7NfL$6NOc$esLUU)L9e^7fufA>k= z;V&<&nBQ*3q@9oK+cWOw*>hfaOZrUwNRkC~#tk6ph4& zRbkQa21Mw-hFONvRR-F&}$&OX;{2bGYBuA<4?rwdGSP z7xmkmL{xH?@&NZ* zVjsOEKCeuF^`pM?BtEx?{`v=fq|7wFpsTLxYxDV`)>GghXKT>^Ly@UNZI^hJC(Inu zNtiFbbt-gFJiZh940S4`8FdOmcj{1F7wRr9gh2q8OML zMirbF3HjjLD zMlR?0gm->JF3tDLi&w8Jzcr|@;ImPca&q#7r-aPqlgvIP+q_)ZK(Pv5YVJbjP}~Nh zQuj&SrJW^a-?V9jSB>bo+Y@_Whoz35B$U9a`4Kd?6=_LCX0XoTD|8@(5+MR|0GUB% z6kYKkJ6W^Ig#DDJjrfyrSrFdu(>F z4Za}_P(G2rMShJ;c^UT+>8BXx<%adc+T3f;6Dt6P>q4 zKB`bY@kdS!3-o)w1kY@_fSAe<_-@iEqC(kyQ6HfX%v9k7*Ca%3@h&wT&be4p0m8QN zqypd!B8wua0N9SC0+FW;_d%?iNALPeb4aM1>b;|JnUEo^sRO^4G=LbGCL>t@HB&eW z*};(^pqT=IH=-#>4s(f`za+N?*9-2ZD&bnUCqOwx$eMwLYNQO2ankB9MPS7uXY$cA z_xq-eU--&~cC%;vePpKj@DJnWC!0N?J`_l49yB#Fx@z5bj~kBD>&oufufGmT`dDvL zP9nyegea`xf1=!ftKjq2M7WvyTG9PU)IOu|CjtGe027<2zPE@b2vl1_T`o+3ia|hL zS4o7V0{u@k|M8~{QdaeanSF2g^B)usSM;C%W4D?0M%=e@vD0_~$kl)MJ zNJR9!Wi)!ep2e999dW2Leew zkV(9F@5xKt&>$4}=}Ci-&9Ne{`x{lU`@#lArf02Lp`(S4U`K7TJ`vlbjJRiI#bmaK zVpO0*9qKD%UkE8kuI5sTXK$Ih9qC*uKQ*?-l$hkQ{aH^?l2Vm z@g+H5x(FUbaZT`RQT`kN>7x|UMevG6HQ{YW^^%BcVp0FMsAeo1g>-Uo>^2EOFOAtZ zb_ggTA_?@8d0`S z>7M52@Hqn71#_9%s%E<09oOg4b+$}8gzI^1)icb6{256R_%#^U*P70W-+w5sFaOlI zPKK$3{=y5SbIKs_h+Om$j%Jg--Oet0aG{)Bbe@2`i#cte_aF^HvpE~;LPlGTd|ooE`O9KMdS8a$p z9~?KWE80wC%vy*x6B}0Scsy_1ld~RvPU?WhVrV5&wejO6y{1mNF>~#n8>rL7+%?q| zUCW+Op1r0&TvX^Vz8l8HhnA(DJoKr-TG4~LD<5r)E4|u`*Raa?xctwn<9uwJ`ztJg z_;b*mxxDrMMvFH-j-DL_t>YhBSbUsMX!$$3R!c40k>f#r)g;(i`(nANEP_r!vEp+8 z8hO4j_?<2X)fgjs;zaZ$5xrckG+>mZ`yf|iUZ8mWr$glGLlKFUq#`06)^@bMUA4*C-S26+PZw@L+KoND)$3K%0HQS8YYf|*g1-)6jq z4g0-u?8(SB;{? z=ge(M;iEw(s45Zt4T#U&8`I03h_wp^F&X7=j5}oV-~`BngAGkgBUcUBj~7+YNY4k) z5gxn;8|#UYA^~1aE+i$=iA_ruwFtCXk^`<6MBB+R<3zJuXEMH~(UJTy2(u>#;u&{F za%r*%nIY}~#tDyIDApb!nl9*|E5R0Ya8bZY)Q$=m7RUDV%ikTZ;nv?9$DV%FW}N6uJO|JJ zsm(a;wekG9>{aXqXP@%{vaVD^M~CHS;{hAD*wFa#^Fb)txPE|M$43m%YxNTY_z)#~ zp#B^m+Fy_Ab^ZBJ{rUb})J)0fJs33|HC=}8nuEyJ9A>CSxgbeWu|=*wMEClMGwg&x6A6pH323>&Snn%<}@&{U2ojs8eIf({=e#7R1 z@&$4c`5A_83YANc7B#Y_9vBZbo;678SGD^fCd$k5(Gl$w?1{cuFaS*`C}oiH(vcnr za)HK#ymXY32IIxOv&uet^Ar7D{rz);D_`R52mJ&JeD$B6f95~U=-Tqs**|bEdLdi{ z&y$dQel7m>0TB<;g20>}@l?-_{>#HhHn@%Vp@;L@Vq`dZant-bqm@R?p!^5eo2ox1Is3j z8$4)I>7erc_g#K?|JDHUA*x$4hk$DXfKz7HAEJeD`M2XW=CPfw$trnn_&8_)*;WI&a#jkVMC8lNs2jEVob)i(G zOlmk?%Q8g!WUUM>v+ArCR|yrZqt}pT6GfaxrH^m}S`72KwFm^kPoV?mBfLh5U@>1w zZ`p8`NV!CjMt#VRANS9_#hK8vUwHe6i*G|0;y3fH+wUH@4!I3OSE-r#*LSc@d1=Wl zt8W@Ns{gJvb+HqYM+mEex$Zz_LSV< zEpy({ciwUO((o3;!dbCLERxf`f;!u}5uyzEwvj28nh?A9S9j4Uw?HR<%_Sij&BmrH=Z+Be;F^31l^1i*op+l2=+Fb#jvA0wUUJW{9n19kXY>d4#UH(P-;rCd?7n{e&{eH4 zQMw9Rzk&9MPmJ*l>SZYjSdBLJ?(YW7e>-0D%kPf!vH!d}?i9}#&*2lTSH~p*bL07Q z|Auk!jH5h3DN^poSt4|gu8b-Y%&@oMH6ynkat2&f4gfc!a$a?cu)QC?25+(OqLDia z4F|i$eTweZGc+J<{%mTONRJLvrxtd{5kBc^{iC_1k+NbrcV20?GU#r2Yv-1eN>>H> zM2IE8W{l60#V3R)EV*>j5gBthcQ9~)mc;-l=4Uy+3_Pf&9@7O;5cD$y@*uUS5!#-#;F80-U&fNcqaU;J=Jb#jS ze$BHOkLNYR$K->ac`nxb1GRLm^`zu~^TGcX%g{wE5*fNe$H6K5Z{(^VZ%;f~_dw$d z#O&i$r3mF36%;gzs!|`RIv#P%p<@*1SNXo01AZ(jC=?G;{Ye5ujWfd^M`ed5H+Gdg za#|Apxd1f-A^;vysIthEh??w1i7A|MMu{n@48ND(jP&N{jGK!oWq0Fm^P4N4-alCP zSy^+#pAYQ)y#(i_e?_JQ>~)bdCtyu5wLl)D4NT0wZ!&KNKNj{quZY`*q#u~Nx60{? zu(3D0p>ujI>8-|-7s^Fuu^yySL9lPJctEA&% zoO<&8B6Qt6G0z&bW{f>w{#xJ!$qh5BX%^2ndiY(vzts++n%X<`rt++p*=8u1MYD)Zm zQ-j%u=fjHxpVCh0BXNJs7WSC&FW<%Fh{*{YPi6T$(XgbDqaRHnXLAN@WRc*}4$2Sw z@iq_aV>=4o9Y|$}+C}qxJAAF+b%Nc%*%V8FCTCr&$~x|O2Imn9^65(zLagoAc z@ri%*#6};r4mwh*f0CE7{XBI1)!lw^Tab=XoVOv7pzu*fE&d>p2dp|rl1H2qxd<}x ziEM0pLQ00HKlHjOfhZ9XA4Cw~??PV~)b1J$t7Fy8$ik$Y2~@^d(4Oh{Yj`hoQ!K;v z`F_5;U`D}%zWepY|6?_8M?PWfn{ST2V*Q&&8267i{9L3T$War~hjIV-S6cA}_bV7T?yuzgd3VAi+`mTPBi(P|mF#B& zzd$$W4bysml>`lj?$_5*?Q!h+L{A}>ZQx^DUlH(eK|^kFjmdL6}k z$Fk4pexnvv+z+E4>m3VqC`KQ+pZI}s|9JMn)%(SIjr+$x(e{3#KjZ#NDZ9=6M1OQY z*2@FN^Yxz8H!*&{yo-lu{I~Ow?<#ABr)iR)KPV@7PTaNzl#~R^F+68@Y`g>CN_rdU z^&)I&FGJMZu%S^U>ZM92>WG1ap#(aojC<-u6rg_wO13s25zY#gytvNiA={eVjL5YR zjT?=qCOVo^HH}EZ!zmhMv?(ct4I;|pV@b*A#}jL1XmoRV7ftk7B6!2 zsEw-CMOkU+b!JbZDrzSkY1}QwL8czMv(^{C-%sPU$?>ZJ8khSzI4!{G_W1nCA_0LY zlKul#8YNQ_g>xU>DpO6rGH;r-Sc(d*^8oW;xXyx zp3PQeP!&(s|4x5ZS58q2MY%Hv+lLC?T9X^1dTP-no}ol9>LOhU{o+*#x*H&lkciP; z36%pBT9r*;Yi6)DqkBdO0zK5)5|W^c?9jMwMd^?zW@_!J@kHY<#NmDm)DZYwh(MJ< z$E%f-4lx*{V-&|W?2M8e9bjeXA4mT*05LTKV(7U@MST)l=xG7!8UiCO*&VgHkZFtG zP&Jd5DBOxjvoA&N2IYBO75cxb=^MdayIgm5nBIXeck9~+q$Ny#ZTY&b$@k2<&p)-| z$(C-_CTZkruZ`5tPF_8C^)0>UqloX+%+edikba-tN(1sB;bZJ1aD8G+UqSQzAYi^1 z`n9lK_(c702JgW5H-g6*_gA!(i2Fe^(jLL%jQcC}Z{qjMT+qC6|M(Vn>-~=inm6tr zuWSDgbAJLIRh6{?!*%YhA*oC?W*$f?10j+?LI@#*If#Iak;xEaga9J5%+O3CAR-D1 zh)9DXB8^&A34=HV98qz2X|-)zZMA8|wo!vK)a85jKDR0r(C+^KwZ64J*5X#xt(&U4 z=j^l39-jSdeXZ6LcP7>zU2hiSrCoSwqgGG#yf}|_(i%6qJ5(6o>A48^u_9yQ9!Y|@kX#e80Clw$@x22M@f zQz6}}x@npG-XU5A)&JuBP_(BYusxLdRlTViq8-T$1 zFT0LHHPQcA60Da2|5iCL>Lg^vDwk4*7XqKD>(jOl*w{-u*|rW??nUZQ9y164#&Z6p z>w|KmcCj497!1?T4-*@BPpcpKE66CbiG-D+Jr#+`3un^Z*LGHoZf;k`d3(etJ!@R)5kUv;-%q<#& zj;WH}5d^})wk13vifmpJO!Vpw22p3AtQAGf5r`#8{s2aaiB`H=%2ddvCCu_e?nZP} zxVs_B!K4dMk-ZKu5L>uxn^h6|7`Cb+geZ~g_nDxJD2oBrjd%g2Eu5CTSDt9tEz%0K zU6Vm&8t6ECtzuoEmIh)D40%^`)hW?PhLY@AasQRDL8A=d|IoX$Few{)>;V%`$~$G&8-{_{ZXj>Gvs?X2B+Kv}j{wFNp&8MrZ!uWY|5G~dX*%!Pcw ze<%6Vb1Bd(#tOD=Mv$Bt<`Yenlt1Dy4PK9q-@Nt>ShGee+gg0Rx+!=)Y>BYXhpqKe zP`<%KLHdlZ7uV@=khS<;wB@wrsugDX-Vvk|F#ZkNcIHk^M&DfyC3ur%$4aKhqbLWs zqkT4F29_!LWI#>yGDpH}2Ge7gk*FryP!xC>iK+xO6UaR=IRPS=L`OfKhi!XF@N&&4 z9b|TCNuC;f!A87+@mj#VGqIXqr2;dV2heF$WjvB7h!Gk`OtKB5>Rb7Z59ZXwTDyaX z!lRknkgL|bc-U^KajkmL_-{$Fiah}N0gOE&07vz)$tv;3QF;K(L|!}9fDy4a7p4ZQ z)L~Zyg92RU6e>)mpa5A5RGJSiJJI^e3EmS zdn6lPUO&d*Wx18tlg}crAEW!wm*pzaT{$mw{bZJNd3_B`c&HNkd`l5u_!GCD)HhSXR4xd3qfOSh zm$bzg6Yl?G-fFBic!2jSr@CL_g!g7j{`Xux&tWa`b%ae^R@~ItPWe+UddpE2B!_?Yi?fU#TzU*P7V6ehJ8NtbxG*+ zmxewcF`P>a`Fi5F&F0?&NFe{7UVJ^(qEF)Mu@TVzu|obH=EH5h9=@m{bbaU0^<+EV zAU_|v4g9(Io$~V+i!wf+1RE5!?l@1MZ!s)3a7<6~?S_5+b(j7x^!e9@eg1WquHnyF zgwF?;Ej|aIOP?cP(O?|PV6&qB9OuXApAP^E&Qsp`A^v>69^)hP*Qi%lmzpV0P1nPo znsNy@EYM9J*E2Q;_%~wvL!yqoXdhZaz-tC7M;KyFkmG0+G5Z8uJSCEl9Y6%4Sf9i= z$p5{&Iuz?#i6txtY}v>d!o@|?kyuW?sbU%3$)>qcXyE(;?NFnZ`h{1Gg2w7tqr_BGEk(v!}rorugTA%p0uf?vA`E4 z*&s}^@330T94NS@)JWWtEh~6SF?35%S{dLV3fow=wA{_Nq(W(BqBuX=#tqv{aAX@5 zIMoOufEvP11m-q6()lbp4-H1F8GJYr|BKrB!EyHII7WBhq zw@9R?o))Cq*p7~e1{`iJ?XUX9@oQ0hWuN}lNz=0GXD4-3MvoK&WR1UeY~<%RU0psT zd9>9r|At}HKOnh~xCX+QbR&5I#^fB!9mV-OvVS?2JVg`(<~#!Xm-6~Ca9=~8Z#fqFJ>v|UTCe9^v%G%XU&F5_J5YXp zjp1VG`g&eB^7D%i270tZMOXU%kUl02cOaPm*+u5^@{N8Y5nz}&qpl(uYCRYSbrz^dl9>4 z{UkAYpF>~X!QVT9zSl7S5&j&>m&<-OUl0FhJ%0{eznuMYx}N+Wur=fNT=x0U2c@Cw zSA;&F^yN}~fzUpM-l_nWBau3B#WRE>j7KmL(QIz^rgL0|$bt5?oTY^lglsrb`Rr&W z$cDp7dpAKgMw-*W z|A+crUnD@Y@lXONzt0TeY4m25|8KG(650u+@xRB0s4yGi`)|aaDhgvmEc)60)5lqx z7VB(?>aYD{KhfC`KOcGF9865zhBGgRPZ*Cp(Ig$=MW!2DY?<^Vlj3y7C@Pl7;bb=~ zHfpIxO=fKhw=!S61^!#cOFAkN(!ASI#Og6-t#f&Vn!ycGyNc1TK7mv{k za%pXBnJ1N;WQqi9WKuIxYS@!(7$O{7hX}TmoqTVhKk}F`cXqg+|?Hn|oFq4C}uaACsBd!`P=sx2irpx?Vj9MMigYe{+oSV)AvR<7Z91 zzE^|$f-BgY?}4Yw=8D-Befw6F_wWA}mmyu<1fKvl5b}b?GRrI2`}<>W&K2YS_9pN2 zL&QGbqc;#fo^612w09fkD-th^zcXj>9=%_l7i;+Q7`w~Y?~vyWXK7ED*cQJ27|z3H zz^u~u=fKBm^-&O$)$x8w@UdEb6r9)dgL`m&tIvV+KgiD+tW|{h960|+`U1fmpBp*u zeLZ5VLD(me4TAe3)Cmib{a}pse_`_cFZ`WXkamW1b>f~^s>j7Au>Z_z1^q_x4C>3C zLw#8s*j)&75?K-|G2^C2#19gI5;H1e@)^lIVZ($a1o$nthx#*G#54UHb9*P;RM2_A z^<{UK89zwt_Eh)YzV2x~wv^BH;CmFs_<_;L--9}~m{y+pE5Ae`@GUi^W~zG9g;dJs zDa2=V9ylJKUfTc34!zQDFdNe|9R4RU7FmcD%bF+rR%&z^Z1JR`s#8{UiPEwX zri3Uf;n;#Wr&J9becj}wfoXRyoO-Kix7*c!K;^Xy=S6YGzNFP!1Yf{6|gNBCXzl)rKmyB2>kapNztDD^*y@PD>QS1?w>SOj3^`n6@g2 zt(fIkMad7<`?S)ut*u)$aByYi*vx|b^1-9D@2i#%>`_!#I?{S|9Hq;|c;kmgGkUEj zBDTi`7F6nr7DLS13qm<6;Y~unSo%6*gae<8Pepkt_r*Y6DfC_fTa|LgB&iNu9p{vh z`F*bI(xIT-F(moMA?*j}W>w~P>>h9Y@RoV0-LoqP%%72)oRD2U5HW*OkmKQ8kLe_K zAFLQ_>xw~RWXPG#Z9o|y6L8olR*Fa&wlID55RXc0fo5h%(~47_R+LPxIM_ot^4FA3 zuKZIa7E$MY)d|B7U6pp#pQ;l^HX@map2&e8#q>+7dG7nr+&9JXPQ%kr!+z!T%Su}r z*e0gsu*t_91R;ZMCckug-Ho^2dSl)6k-d79RaKRBtf@bb_VKRv(&V6qD;L>e;ZvF*UgO@H{eB1cprKP5q;C)?xfpxDz1P&XI zUWzcUgxp{h(QG`LL|2N89Xlj&@J4KwvH0zF8bd)?VFC^NEz!iJ$tyTmDNJNZMC%kd zoVlc?f3Hr(gnL)X58o##}<}L!?+LyXzfI?Sqn1RA) z{(1p5;WDfQvJ&BRnD|Xm{K{t~l4m0OD0soL<&>?x3POMB%ccTdyg) z1HCoY?@KCrwTJt*Kj8r~eDOW)mB5Xc?tmUh{||Zqx5vy9T&j8TJ*fk}kt#qa8=$jK znU~`;(tu?kaQ^<$`^QMru`As#7QGQx*=o0`Jo0?^fI~B8gmnJ zWG?&~RQXZS67}tj0Pr*o10uO2bZQUc<4Xn)wJq6=x&#!u&`O6h#7rC9>N^S^kmUFW zW&lM6i5M*v2|RR3lHI>CR_L-f-B2H(klgB`*265h)dw-4gq9QcWU^CHCQc9@%Be{SW!m~^RU>pcQ@ zXr_C_XH%>feU9-u2fvW}d2)Z)P@l+9UoXTenW_TlIcn)eb(&NV(A znBx#VrthJ?p4-UogO zyE5lm5PzVaf*FPyJ?|XeRj?^7HHvZrX{5^AvFCkRgF!N(sli~QF)Eds!XP6;JqBZ` zJ8WVap1F|@2s+%q-EA-dTmOIRIC$KljCK5%wu3hkD};WJj0Z6j)I zPGycGaMZ2lJ8Nr|ckq90El9pFKDrFxJBw+27_&w_b}fcg^80|uGM(XzSn>}-n0^G=?R2w7$aX2PI#dDvw67P2z$A8xF4Q^?14dm7;M1Qh+&Bu8|CPutn=Ix zfX`?ns2_lRmN-JC#nMp%`*0rJ)9IKLye5sW@z4=<$d*`pVp5uiqNDVWr9BZ#91T9G zp}G|dodz$07I_y(HnH(>xuh`;aI``YG{q-4V-<98rb5Y`kBE{#=TFT0>)HLkq--}o|9tEhC!f|n-EKL1He$)EcRcZmQC+4k z{W@?iLd5^_@Uv#>!&duWp}I>reGx{{_eYYLYu zqSGNk0)0uTlu(hHjlwPF;>(&Ia>NBg4G0ABaT7xe`Xx}`4kB~YBe1<9zyC(+2yP}| zq+W>BKv(Y`eXQr*EoSK9$b< zaa~x>kMiNqL1gfu5Wu~-Gz@+t)2EF8n7ri!Sa z1i(2f_now1lglbi2McO2HBEUGl7`Jas|D{CHX{as=Lv5|P6Gmsi&QZD&o{P1B-kYxlgm z>~nG33GE~8i-0!h54Gi+#nZy^_aCO7(9UjJ`TAos%H{r{Tv2DPuldzne;&+}{Dos1 z6hoPAUJjc9iDTqpCVqnP`Do&wVWuyRHT3$x6#-xrw}_i68paN4rE~m$u|q_M+^~mi#sKac6wg#-kd;7;)y(JucFyw-aqd6B; zNKt6!*GCI6e+SwnLETPXVPZ*>C(A*$jEB53Su&Rhz!~~VfW?%ee~o#u8Q8k0okAyF zg>G)yAlI$z$CGID7B)A=Cl+FbBBo61l#Ylx7q%`>sxnBT;+^;eiE09OO6zl4o*bw@ zWOPJjc{;Gkltp<~G#2wvOB8PhS?jDy51D8OS))=^qfq2U31>PJ9igppi0BBHWQdyL zj}JZY)c8M6UABJiyPK-!*H`uFbMFA}=mW25TT5*fr$1h^pl;omG%)RqJo~nH``o5k z_Kf3qt$S}lYR3}oFWR4#{oVS${a^mF9wgruh8;OXffxV$^8FRZ1x(PXrc9y3~62a5V}Qb$MX$4QT@xgb?tL5UD* zs;XEPr0h95ak4YnSap-An;1ChOV?a)imQyB1GmjSv(2xpzi>`_{x7r!hGK2>g&d>- z{}1+V&PGth9MiU1Nbn0-@Y5mq>C&Oq6D!yHuERja@P$lQo(XD$PFWkLh$~;fs@lzX0 zSD)G3bh=^J#s&Vm5jSezd?#j$SJyo7=*nGlhfbS0wrIrA!DBY;sk`@*;r92Q+Olun zn=9uY9o`>62yk&jkI*`APb_1(lsW(vE3a=N^KXhz$|ZhM5M3}MH!L*0B{EzMAL<5( zo)w9rT*#Y;_iqEyU&q6j1|*-eWymB^{V+up(K$)-HS=Ba5(XV6sIet4ChaA%9=Kxf z=7D41eEgy1c_kZquDR&U08`X8=)5N#4~`;*(4G=0P!kMtd#=9$@W zeO=9(Wj9RioHxN!2)&27#3z+lB&JCu+bjO1_n#bF~GM+~HviJy? zm6Q%kgAa1ZVs<7aXVP@hk2eUj2jx7Vmo~_KfjT&wEgm^9g<_t#RXkO9yY{_P8Si}l zGwr9TJzjd(jsVKSt zW)MeKHacbyrRb1rGZUXv-x@#$Web#W$RMn3S-=g20uXx;D0sk$xVtEz1k{2)igHEZ$(C&=jK~`x<3yeitjA!#Z0x4UXtJyG z@_D@{09%H#Nj73uFxNufBbtX&m2M>Gsa0wQMvi1C!4}+77o}~fzdvDl*^uf!6Q>;? zwM6j-x=gOz;HplX3;O~AS;F+g7XFof|0UQ7>PW=avJ884KaR`%oLE#rb;zr$F)|VC z@Lmh0L|$2q!yHH1{g|VWXPm$?s4E73$5U$-yEd@;}}k(E3XD z1`X~CW#$5MmVuQZ7#Qyh{7km5v3O`j<`t?H-@G?}@yVle$4rN!b!V>DS~fk~IMg+8 zulDomo9|j&Q#fS6!aY5&Ubb*VXEE=|b9u)2b<=KtvnXQJsA-Q(nm4by!MAwwy5fS$ z>nbbPRo=FuQ}2|Hl_Tas<{3k5tj1i95 zuBV`=pmN}7_x)POchz&f93ukBg9|-HF(ac#_v&@Ma{40S$n^U4SYtKpv{b`Zy{ZSm zA!)KDNgJ4YK>!xmB=`fR~B2=*egWd3@CnE3chcem^q zch|M4b(@y&{=pn`F8AUdY|r{Y8nP{ zkK+uo9eA1<_9eY~-D4*xzV5O6k}(I3_V@&DV(qe{v>p*4{8A&eG^JmvV`rEETsIw% z7HhQ}8n#~Cy?RFKj9XT|J+D*4{B;xVSu}Xu;Au~86gyuK10O@*;|H}b_SG&MTi9jF zsFkbxEbLx+O@8l}$wr+58QstJbQ*Da#E=CC>p=eO6s%(^L~PT6fm~$@>yVd1ecdQ& zhtAs|X!NB(o3aL_$V&-?36U3@p{@N1SksgpBH@HM<@naqQTzGZ=JzJ=y??KRw~iR_R-JZA+xO#{XHMRxJw58pq1wlCYzNXlg5R59n5m=dQ54Q4tEff< z#dtBnu!NrHbhYV+gWlpSPTmBdQsaS2HPIq5Q%f9B)f3cCmWRrnA&O#3@PQJ*O^xgX zCV`emW@vek`@@Z+2F4y$`rEX_YZH3+s=VGlv%^idq^^=nW6iYkK7*1+Tii1yk6fzU zK(fL9GJe0)a3JjW$C4vMf!`oqdIVeoOEFa+ao;GsLf_Y3-7Tx6W=P<2vv`{~r`d$5Z?q;vAy5@>Yjnrw;0ewo2G69>8K7jM(2_?SvPQWR zQ}B%b;l_ROgwdm>m0<73yrXFh!;35!3GkCp*FIi{WeMDFJb_zWFiwx^u?mH$XR!U8 zrDDf{UiYnkc*pLHowu&uyjy$sRQ-*Uo__~??7ytKam>huB+>M=sM^(go%WBW11I8? zf8Mv_xqY8$4;_!tI*NB)-#%eIC_27y`=(h7VK?Pt{5-}%h@%{lm`pDiAOR<(I02TY zKbi&<;Vrgf(bP!CTs5!y={q?-D#xKM0f!45 z2p6C;TViPQxe^ITyxe*$hJ&mK%OJ=~pg?k2bx>e0<@=Lzh{H_jV?FO`q16YXl_avm zFil>9Y60yQnS{vcF}->)s?ka>8>8rGqAs9ui4O{TH%>UEmi!({+1l`{>Uf9 zLZ{^$_8I(n7QQIwja6Uu5~-b5bgExCDr5M%eQ}JTeny1-`DPMtgZGx$FWk% z-)(*@W3Cj_l`+?eU&`}54;;G% zK8|wThK+bbF+^jJ?{CgWMy;3OPX^gRG8Rh${VOv{d}Y`+(~29xG>l+lC!DS<^1(n8 z-rhyt_S|#P8)c(bUDRQT@;YRtl|Vz6*nHja)X}}T*p~)dwOuh&%tf`wNDDB+VemVG z7(gwcXJ%Fj@qjgA3Vhv4plp*s4F@7P1WNqK5Yt7VL=ok_$};GWc$%g%1bU!j83e?} zSsCxSe3m#-%t~+<)}bC|;YvrZG#N86N5^&T+HG)2QNhIVYd+o{pAfk4Z4`EcLlj8vO=anjPt4!z%db0zk4%CEg(dI4B!bn2!;KVq@5z!!qi zPmCJA80tO}AMU&nM3!_3j45*7j{o)B!&1&+=|WEnNzZind^w$k)e<3dG_l~>paKCu zGA^V5^hega7_Sm%R|jcX*}4q~*t^q-Io1-SP5-Tc#q-d-1Jr z#Jao6t?F3o)NeK46M=J}QDJ$Ri}m~~+gKgZl#Xi{!L{j2hHM~quaFjnt>rToz-tLw zTZN#bde5gbol*!T0}C376;SW^V9fZ6^aZ`8Ws6jg=~T}MKJW}O!rGzcAuU~QEy9or156_#n38+*+7yz{5H)LT!i96iTbyLZ*PbxU_Oj=a@Vabs7#-HduXzox^b8H8J_0zEvG(-}jw%uu9qM2#mLXa_Y{#J9l5yzE=`J zk9+Lr{^NUV|EK+2d)?H}zALHiEYjt@a4jWjBh6GBDevua49Rch0EwqVe9!skj*;dJ)8KoDDptoBdE2|JPtk5yeh>GlhO2*nrH&r%e+3$;wEc$GK?&rl|&2m zE$!a(#md|$>8i?^=WHxb5m>=yxKXYItYE6P-`4UlyFe+LJ(%n61Q*0Fo{oG)HeKPzU$h!Re!NRY zsT)}>H>zbMsgLL#6A@{3I9=}4?9jWHrpSpborUCme*1Q>fE2s}h0jq*Pj-=24GnASgO6Db@ zn6XbZsrERk7`3I~J&+kAS4e08DUA;7xWP8lcnbI-LoM)BX9S``oM4NM5Xq9B@h1!y zTDO^PUS~5trBQVdLj~{`#yCJNu&Fdk&Ly0&@floW=WFm*3ezYZ0q!QwW_NN+L>gAC ze-vwy#~+2gnwXF?IiZgY8^ei_4GkpVG7TG)z3ZoJ_~O`WJdWD}HTS8>-@ftjmhB*< z3M^382NoQ{=n;R?_@htVMgs?(sAFg14PVOMcLWp+Vt=F}q;_{Er#qww;Zvedba=yZ z7$z`ZfU%)%2u*K-4evr~5xwo=xwjqEV$Y>5c_hNI$b7)wMBgjwnQNj}cP1AU;<29h zwcO8=3g!}P6eN@1bJBZ$yl$0Igi<1jyh9u^nqr*sI;RKkYA%8t!_MKR)KXnK=@e%a zq`E{#!Hlh&?U=SIQVfY{sIN|4ur^#VYJbfirF9oe=JlI9g;b){8Sw5&9|99WwGoDm z!Tm?_c8FK_d_TkMbpFy=?D?gZLAd_^=)Ag-uE!iSXgdj`2fP<*gYgCQ+f@C!nfUBCSxj9Jemw27S;8y7UHNZ9Rh+ESNq9a#WdA zMb{`^D|`9Kb`Ysd@Jhxdl1y8g)k6k|XN2w-kz}$&0;&b9A_fu?I8pmV`B7vxXs>Hy zhfD<3&aVdm+8U(ogqe){XPjsdLn+s+u|MuR8dlvxdFN!t$vqgb$tIKA5Ry8Wc6RRa z613+aTzg24yaw*HU_cWbXhMW=1RhY*ZHl2i)=fwJbO90JiXDAXxhW<~t}_EIgBmI? zsFw(Mx!)Z)zTgXJrLQiwU>V)F^-JojaJuo)kI!TMkmAwz#1IZNxJT0dKzk(ihZ=3C z@f7Yc2GOYJ^!^e+%q!R+5ipJekE5IfV$~>ZkH-An-|{4nO`V?Ecm)bpERGp-&H z==2g59S5&Z{v*@Fib3+5Vkta>$p-m4vKE+bOg8Gsq0JS;-l@aPL{nX(X z%SXJXJSAea{hPI?G3_Vb!mGD`-LLfoC>Sq|ziQV8rUl0>gj+=nW%fINhh->~uJc(-6y{PE7#1aTDhK_We zHLxGYR&9dl6OtkTmNUsD2>HkZhH?o#W5p6nH4RWKW)mKfD?uhJl7cNIpk0kbDivb` z4$u#@vCG7+Et9t^O?L)Lgnx-Pa!13iK$Y^d@?4;|(j4fioCp*IGL%p8|MNf^LpCqW5`<$VoaaZxi}0mfekI=XDRQr+N>@s@1uLnT z$$->*s$#*sdy+*NK~)=$4YL`eW&p3caHZ$MKjHap*7o%<8Gjvw9%v0qe?6niJoW|B z|GY1#8wI#x^|3NztgPrL=Z|2^1um^Ln+0>TMX_Iti~zKBu*(8r6It&6bl%if?yWFB zti&)BNk>1Phutw%pQzlPo{lWjj21AHER%(y%Q4;5F4ei|;`>U;%D}tZU_#_8?*}}A zJmrHx9?L6iU*oU%-7dqMy7snW+hP94PM7>Ap4eaKm`K-`< z6!7>>!xuU|7FlSTcrJK1k+}d3cZI1-;nr9i#rNXqc$qbebF{D#b8d-4sot^`HaZPt*fx=4F{5{%TLx{(?(PJvJk8m1T?>;=Dt^$ub2@qQZ|w%j`; zR$u%fw6_rd4C9>fK63}N&yvgUx4|Gof3SVQ^D$4aHdn1@{ju;nxREiByankR=n8$f zPaOF7QzSdFNCoKYDXO_KG6L~^KaQz1!(CU#)|na>$|9^WpdJM4dG`CBa>CmL)VH@B zptH1wqInJ3c@5#%DgvY)ky1acV#?1ydIopOf?9J+2-eaivxn4ZGOx%$#D~z*wJJb>XIz^ zx7j8RyH}L#w#qUaLh=SF%&%v^gZCPwK>FXs`ZsR4Ro0OtfS1c=rg}tr1VM@(gvbS<=s99> z+$Ek1i&gBG5efv)g0YDUigXUpg9bLO4fkRtHfU6`@jN4xgFP}zcXRxTJDygxie5#* z`$4w0)hHsTT3_H4&(=9m2(JRF5b8U@CcqV@QdF3!1UFhGV$en>9o0sI8pXsnB)C3j z5PL>brQdDH3nI%F!i<k^?L@24w4S~68&Z| ze{F6QZp{@p8ggrX z-q-%EeX9-pkmFw9LOh7yOguWsJJEO}<1gc1#HXW|aLE>`;MKv(iKDn9?kvcwqjS!n zo-1gHQx-OiZHJ;>DB94CO~yk|_Fs+XWkg36HQv1XeF+FkOB$YZJ0}ZJ>x^OXIlznP z%OuQW6k1kDOEa@;u%d&Ac))JvD zyH8p4;X98B^R9Q^d|W%fo5EYKi=w?WGCyd&{w+F)q`KaL&PpX%5?>Nq&V2jxNo_7B zS-C{}>vYIx3`Pu0$Sj{k$6h5Q7~H(_Cl4Q?t2EEaO6^X zSoXGj${Q$LYDE8nJ4IuZ)rocIprhIt5f!4D@>!9Q^9k-lXQy~K;`=U%fABCrNOr!! zhM5^DxP}MV>k`E^bs-YSD$<{?HLTHo3}_;C@4au_@zR-pC|lbTn5XX=SzCTm1GwauWym5jUGB~=I_U4i`FO`}6A8vhg`QPq6_|&A;8*V*#{j%wko}X%t z7XEL=3&L5L-Y;r&ba{S}_Q_X&efjBUw72j3>L1NV@Az@ouI;zp?zx+=&cJc0U>@K~ z?e>PbdesT>jxhi&7e0D=2G^TlRD)Q2H#TNKF@YH&J>D2=p^kDqz(q_y18}}C1)<49 z#wdq1BbR{eOd8`e;EsWl@mZtr2whHFe+5V&7AuvT5V81^1;H?F(vZw_bPV)MHOB zopx;Os>Nd`pNG5%s;y9Kxb9%AUU$$A88Rp3CIJWw-e4Mp1x%?VA+#mY{Y0P$_>eKq znUp2(r=4DV5QRo$vGG}yV{|$|@Jonikc&{U5EP;r8d1^jF4%uo)*1}Gdh?EZXOz@m z-+kY8X^SR~%U^fb{m*Y-RxxAR-o1VI-LiR4%gAMudQ|iuS~7TWUgqcy@z!~_%-mVk zZD?J;F%zyCpIoq><)7-bB9Nm`Ltb!#UMtcLtD8EKL;k^o%vNIm!?Tpr4uTmOPt;pTX<-q^g;c!`CM-d(Lcnt9#*i^~5QLp<;4)-M4NiJP zX}I_MEg$qX8}Hd%x-2KJ%iaA?Jk{{{-T90+c9^Lz2zCT_YtEKJ&*OS(vx-R~xp6Kx&zmFEg_MT&@@esKVO2m=l-=L0p?Nq5T*_I@Lq5g!2*2Y~v6hl(EfLpWlr=92 zqs%Qef!jfB&qJ|255@LS%|longl+P07&=rn|4FZ zf|)~WvkHe7XRo?-_PvQl*Rr~XKaK(C0ep4l&*b_8B#48rO+O>=j@RIE-AEz`A;Sar z9>=_YnsQ zq@RMZ)Ow93j4eP4MFTGxObF^2fLOTQR5!tBs>^Xy;5H{4D1up{^)M6kA4C+f0f;VY za7ZQ_($WXjO&DCg^q~bKuK%L${oL%Dg;TB`J>#~z9A$jOkYgYI^2!+dg_G(z^RQ?C zeCg$Ja-5NoHnsp$;x?R>mJQNpHaC1@?q~+DIFf^|5+vgW&Y)Q7@@>{9@AmDaqG}f6x1B>`V5mG_~JmbAmW->~-<8UD0JrRriJC z>O<{@TzpLdTVK126Xp29F*i=f_;H^Cio^O17Rtl!rP=BQFq;fsfu9S;og?5G*HKSZfLoMo`gIb+0g*`Vg%tRYs@K7 z_S#gGA?iv|mu5-@QzmB6*}93!>?xDJY?u+adnP(%WQtEN99N8ii&&Fw>Lu_RHACEM z0NnvNzV->QuPMfAaHfpnHHe=4&u$;2p=`uK^a6 ztja9IU-Xz28mfZc*qfsBj$2B633!=ROe|5c2-Qdmc7U^x7U#S%NQOcw9Xv&-hS132 z2pc`iZlu)(8xyMwxClz+$n^T}q<9+RDb?PXzzKI;lfr4BEIIQK{ zNG=7Q$@b@L!ZV*FP-JN^V6j7^VIjs7U=jw2HX5Ai)RQu-;*GH)G{Ul=oJY7+Z#X+W ze(S{T@i$yQhrtAnSeT_ z?>LKgt+*j()Xtmc9;OkIP5nJXVV{~VH_lZ?8<8FLd>*TEes-d{JW5k|sSKOhj z9@HSBwG(4g2aOSN=(~0N%-KgiTF7!Z@6xyC4H(M;!;1!gI>}x>4JZJ~a0@_G%qFDY zNDv#W^{aR=k=Ub33nCOV;i*ZsEOlb72W1fA2wqcyHKu_#4;}?!>{7A60v5|--E_W? z29@_$IjE37Uo7I$f{#1^CN8bWhgFng_vV5Mi;9xsfl~IR!Fp$V31Bk>y@0;UA@77_ z5FE!Wcr-YzPccHIVdXFpKPN_Op2@y_;(bZiUAy!9!s!iLl7x${MzsKi4QLvKmGabEB>&KNF1mJ zdJB(bSK&7JyU;Lplsy>ZJ;-KIu{V!qBStfoqugb`Gn}9=@Lf5a`8Z1`(HvUw*%)}h zMT6rCVDayc>#?38J&*%EkPAJKO?tosG1iIaV-X^Ng75<4mey=I6l+gT%hqc>1i#`o z*1^47&Px}}ODDUxb8ucd;&r|qM5(@%Z0Ltfh%L=cQ$~k^PSkPYzfDeCWkKTnU*<_F zkBP(kcUAw_`3h4fBL;U1O&#JXBjHa*V;$JRr1gy+t9DbY6XpWPs)72p7dM$xC{|4_ z6&H}8L=DXe9GDA0%?OK6`8b_arsvw0u_WVOJ1i?3aDPf9(x2(g$D(>SUy>Rnwa}NY zMBrR3wy$4+-~r<#Ucw$uhn;ZD`b{$xr9^?Us?n&D34yoL(y5RSFI&wnKh9D31&It> zy6j>?4FQZcdwQ^`iJl!!q==pwK?u~IkpUKgxC9gmf^~q76Nn01KwIk(;Q@QM{f@93JOo*SXXSY6te552hS{`#%rbf9YS+&dOe zzR4X)%!De{Z<#VNu5s|xGtuaebqso$=#_IAVX86#dv-f0n5KxN80wgq49Yyx-Lj#d z&XUZ9T^MQXeaLuH&Y2tx(lL6+Ke95~LC5GNJ=o*sOC1wRkEMnWesZBN)fj;a$ylES zgKxrW*w(U_{=#Rn;5<-AsRUsQ%|a*$hPP5uldlMZ;T+EbvRJ7S^+$Zw=G0^z0?0Zo z9y-k*K@I;f2TAaHnSn`H>S43M5wOq<5GG|~#)65r$XPi4@Z&elzHQUPE0+)5&^1x{ z;;XtZg=fM8N_J>29-~>9QtysjsIAf)*(o#^h$qOoI2Wv4)MvnJykhkADn<-BborH| zPgWi4oc~|P`Tu*v`@2K?yQ9kb-iq8f(?C;5Tz z9g5MkZbPSux1@|6d|gNXvzr2sbz70tkdpq-&&Fov9NZV*q1xlNo_^_V?eWJG@tYOH zAgss3_|0xGnFX`%?h?t6fGU=tzVln?E)XJYQeCkKp35AAPGSa$fVUau9g!uaXCBBb z#nKFsnCadT{-9BHQ;xw!N8}h>GA0yHWuxeb1=}(fOoIlWD+z;PN2K0cSc zsV_v#>6c#D4m|mnx4KpYE{g4q58p3}eY+moq5YM{=hBClepX+=8c7Fo3*(c9P21;i zQp5m*L!C&eoohBW15a_2J2TA&Z3SD&jT0`okAQMvn)Tv+A{oQhKv*tbC%Sflk%X-m z8-~~3jOXaa>cOyN(NS%*yRw+74Y~p!1Ixx@PD;k+NqHycnx!$Zkf>zR32(M!dg16p z*D_c+L`aSRC4o3Y5eVVREOBOLnRB93dR$XdG@;Lw*>(G;ioIXfPuVnT>X2?FeMa`o zM4vAA$y)8hRre{?#;SQUrzN_UPMo@R4;0FkU5iz^cIb-4}tgp z+UHeTp#>1b0v$Psr*JcgfrPs11dYu5TOKEM4n#nkj=2Ru5Ec-W%u2`B=B`nEGMbMa z=;+6>b(bY-C%`8B9k`>SI85CJ<#XMY7d}$~lshbWD0i>f?n^-&4>NQqBGQ(WE~DqU zh;;zD=p?2zN}Po{z9LwpCqOJH9B$M1jptEC@7H@AoAc_?`_-v!ENK^I{?iXj*Cjsf zxpQHkqV8SCj7vJ|_Rn~EZBBzx8~NgkBY#+tcW(Kj0kbadduTHn!QHZm8o?d7{oe;P z56uAJCX9tk z8Ph~+XW<2D{^gY)T^wD5v0I{ilimyXhsffn-}>vGwbRn3&A9)cos|T4;M<6M)>kbW zxMWMyOJd`TV$?wtHO{5>$*og^k(5>nSKeX;vvdDM0!r4GoLAp=Kgl5Bh%Iqg@+it@7?7fhNIf1AGVybHaG+_va^d2SoS+$JpN=CTeKbap3; zds(RPpePl1_bDh!h$ENV)7q|!^CM{hullWV)Cp2%+WpZE*{y>D-V`EiW2FZ-Kt17R z<_+-ksbNN9l9n-3+0kk#%6MYPNW8y(Ikv!(kg2Gz8}uV}VSSwCbwu(0?^sXZHFW*_ zXe=A7FU}Y69x#^Ab2&NUTpUy6ya8g0ls9;d^ooLbmy6?FiSPqZ89}vG{&?D4gPl`= znW8fDG(;Js;n_Ci)tF>d5xPl3kO2+=O|l)41thEpR6{YZpf$R*C0DLK)RV)bMGMGO zL>7`kaw7Q13&{v0gLwYZs6&d+PF|4{q!kDi(ia3KBDF z+lbZ|dV7@fV|%n4uSc_P?xIJtE*wX1l)!#*yG^?p`yw!)78~#$WfTJ}#b9`gN_;j% zqLUG81yaS^9;NtrnFVq0#-Rcou|Vh{HweSQb_zp`{GJYw?Q&iJY-qWeM!@KG!SQs! z+jm>xc%o(pMM_Qw>cspwwkjV(BTB$P=s^SI#3K)o3;L+h7+G9Owuc){m=d9MG8~P` zx$TQ^%HWGcOtr}X5~pIi!iW||x$H{X9I(=4j?OCFw#?$L#3;+Yeb;2zCZu)@-{mQtp6`6?)~D|syJSJdgu;#s){0@b9QoUw zvo^=)H{N{YW%0f+inGEpaCGlGwSQ@kZ`USo{p0s1$8~+@ewZ?|b{=>#GpV}2R`sk_ zuf1^R#F{Zv(OpC!({C`{%z6lU6%s(eLYOkD5k(U*9F+k$q?I+wjKS3<5dnY1rp^Wn zqM93i{u`?fBvj&q1X9PE@BL{qoi&jvao{w-xByTH^zjq$CUKTql!38})Pz-@ahe^N z6eF!471yMOYaLfykW26-7EI0&sOc4~qMYuV(a zN}vcnM$(bqbp+o{p))FI9wOjUwJE*xB~UQY%q|Ag?!;hWBk)0r6$Q7vH&Pj12pi~k zi}L!qdBt+1-zE*V9PSs_mjSR#kVa_+jJD>$Z#4dAN!0bnX zR16rFI0h^`eE-TS^kpN+k&XQ;3i}t;<^k=c#M5YIV>GjQH0kJzjEZQCq-U)W4=%a@ zew_a(f&S=N9pu=rTMVNCuB?CCQM$_ zF)2+b%dn@gQX!&1U#w&gDl0)Z6PlVfd){S{se!i7yG$$*sSfST_-^y+5uie7Bx521 zRCn)LvEted9H9F0%Mn^_Fh(_XlZ;VqSQLy=0ly19oDV&mV>qE(COIY2p9gz)Thtw} zgTB;sTf1fuA`$>EI~@Q#LY7eik;=OyAx{p3J4ZK5@DvF|1O;^$+3O-R#)CjE==xlE z$V9&YI%Nx+R=pq#TJqBDS_AHcz7Q)^~bOls$!_>zUiW)*iiD*@vQQOXMe~Hpr^$IPKQ^2#)ufDBMS- z*Qd1ewOMo8>9yA)rfzJYGwD={DU5{AkWK6dcn#4ik)CscF8PR{%7_Ap7n@X18o}}4 zN5iKE%Sq6dqmXuX8(WST(Ise2w)kS50Rs3d4LK4=HJb*?Lq`l0gbykaOb3)*P9bhy zUotFbUo;ID+M;2&xMYwN07Vw$o^^$9!hr_1tP;A2^jCk!O^MLH1oS}5_zK+lZGDv& z29*SUgr9K_bY@2r;on_`COJx=V6j9{MqkHuHbq+rI1H6fxqafO^u}OtP+}7SNHh!| zoaiH)DaN)K{ z5{t`+10fa~4)nCSY&ftb2g?S7)D3Nhpah^14kF;LSQ}&jAj=pB-td8Z6>wZaX-RKePqVYXBNYn~ zE=55&fLCCU0)zv51PjOh7RGiQ>#0AHMcTL$7Rj;ZGe3-xI|l{}>~2zcXp2>ySV6Q+ zM8;DKWt?#Y&$#IfL?<2wh>BW`7>BeRNr150e1eLIY~^0XP5`=SkkoR)sW-~*g*_4h z#77bf6%oTG29*_Rj38DNu%ZerRTnN{kvi&Av3$T!kg;vG4?xCl5eKwB+fbO?z>+q$ zjP#STzE#>n5|^_N4v4}SiKCD=ry&W;jH__M#y!mIL~fk&?=%6xgtSfoc568SGLfvO z<#+-x>Qsnu*#tlwgBfLA9ErqAQi^bud~gDSa*6Rz(ARG3@PpYQGNH}zGuHzRe{kd_ zjl=&u^0458V3R9GoWyy^+1i`M08tPo(>ICE+FzzC1wqNy;>35Y(j6w@%B2@zSJy$l zGk_e?vFj+_OGqT?CTbraz?n^^WCCKt$%1+_>3%%mBZ=?%5~Rnj7dwThSeCUE@X}?{ z6}a>e)ML#z{t_nz7pZvIh`^A<26M;2EyOc|fvsU1DC*EH44WhrnTcX2jK6J1WF%gT zEE)GWdn#qbf-2IL1ju0_?lu@ZRU?(kp9b7=?-cE8hx)54@Z#{*i4cz@ya;($Xr*KzuCt-w?h_)?(| zJobWJ*bAtSVJb$;tLwlxn>(Jzio#84L~)PYV*GnS_E#PlG-HXgktrQVRhF6!ou_PuntC)2!<9Xsxz>$pA;!n@SRvY?*(j$Xxh37X zMmejU`wxP9%TM{kx@v|8piLpbP^5SLzW9PlaJnau5|m=(k+9w`LWZ;8=Qs@hR9Jm9 zFD^F_;g}baVxAXtYiLq4Q)ynXospHCjaiXaau&uvtBt`&kYg9rs!N|0NPKJ@Nqj8v z#0SYNL%};8hRk3_I6r91;=}}f{KIM~`fVmC3maP&8Hky51XELtO*+p!LC*Nh)(H}D zVZeq>yBG{dw*ww~JA#SJvJR{cUt~6>1(mWnSS2broqUlFn3iS_o|z&-39Il~;#ESi z4=fg*Bdivfm9t8J*}1nwF_cy-`@Aw^w&N8I%$XJDdku-FfV%s*UZ8N zVQXgmB5l8z*{eDu@JVRlh)V~x8udf-3&>3FGu>W8AV=eB>sjw0o39T} zMWIt5=A@vA6E7K<&%8V_$aAo6@eTWi zbsgI{E4?c(sJW+ZYrI(`mlG!4($W&uaB-6(SPuB*WN#{_JN^IeP`YE z+^~t=Vr`?g%@&!G4xwL{Aw7DTE7oVY2d=3dm=`nDGJa&jAD1#gf_L?sU%R7v_32Wf zM(4~dQmoTRzoSQ)woJ`84Mc`vm%%%@$kz*A-dti9G0x)jtYQdNnK`{-(8A~MwJO%^qOlWsiaY^^S0|%2tLSt7Afan!<#mMJF zDh<9~gCV_DK$N2~XjdA2hp)Ht9Icb1Pf@wH5c978dGHC?jHxIo z?j=B-7aaZBRhu4sdGo3}t6k&o`{Ptbq0hgw-3{$(D~Dj{vpi{;uH5?4y2-1TjGJ`* zktcTFys6v%s%s~9s9E3lfkE@<9IUFTOwF1*^Tu&COQtbQ{hFBGYtr3S>uA`oHIEx% zUp0YH>yCLflkXUvmeRMP)~dJ?>M-tg7p`j&}J24GYfS55N zbV%m=(g+sGl|4*zW&pg@EW6SpO^sSXvtBG{ICw-1`18-gJne{fVRu0LVang$`9$QG zT+Fbz)lZG@o%~394ejy_!uKyKf_qlm`qLV5mB{(=lBg2-eIA_q{rB24bU!*C81-*% z?8{IMj4$jKyW+Mm_AsbBy&cb zaWA7-ZW-N#j!L2K^Gz=WyUy?axP4%N*`+*X-n@R>-^G^a#n7e?o)0#i|K@bJJG&I` z*ms832YUP%OasCH7!Otjj={>71_ptB+)k!XC;}UbwJ!O&Bk6P^#tFq*Wkj`Y*c7c9 z&~_0#k46fNl5qphEot58anKUr%fobv@SL1DFD1h07$fHQxM9xVg0!@PYiA4&d;}l% z;-G)5FKSj3|8Q%Wr8;uTjtg+&>Gw~8{bokI!)=(Q^K8LTDe#ICSyEu5ThQ4nF~U0j zzWIqC{lQys2gAkx`4))dNZx`CU@eBob11i@3^th5d)QEfXUe2ok}c+5=SoLS>fb3b z^{O7V71~ZJg~;>|c~H4(+01h5Q0qSo1tXjWGl7fWu!Qf9v3-hfGTl8%{z` z#G4FYJ8EhNS0DXf3(&)zpK%X&1lU1yLv;Pv)HwiLjK@6K=#5rmf}I7i9lXRwTS6Ld zy#@Bh7(+5M)><4*sx`kO-ND4&p*%bn}w8$>m2%fSwTT!V7( zF>%!k(Pf_8ipVFAKBj$qEUMg-TORq;i7A`zi0+b=+db-mf8C{NsRKsF@A>&YrRW#& z&^Krm)UhaEJ9FkcZRppwyu6MDxx(}7i$CUPWfv6K-x6!y6N|_68WsJvwvxu6{?Y-X zV%!2P)6r0GK*XXcHOkMU>(T}6dmO#6sB-&WBzfJLj`B$hxONnF({W%;B+0ud+r8Y6 z(_tt2fJdWS_dfl|coavoShh1Qvr<4 zDX;9yvuy8#<=v5po{&;=WwDeSk*%P@u;F&^HRax34&SJ8*ynqU#+7}`eO;^Y_!|i~ zMnsjRqeAhrY#UdmWB#!=WM47}3wQiLhYy@ITbx)$Fa+?5yJ8Vkplwoa=ho{sbt>J^ z|E|~XAK#jidr>=cYV(TvrRB%pR?ft)yrEM=&ESy*Zkv7Z{9YY~74;lpooFrSmKq`wUk~WtsM` zo>pKO;-VrF6EfPBbsjXE^s$Ou^w*|3^ZQtB{eT7me^CL+US0`WfdQ$e*R5nq*-I_< zb}#Z4N*d?hMZV6YtjDmJ#lRf_ZTUb*Q#E94U^U6uz@d<_Y8$aL_&f;hjK$+X@DKI2 zqE$*pUO{2!-u-D-tL?s?r@76e zzKe24H&0*p#_CDK%KG&i{?Nitd(O(qyQO&56RWPfZpg@j>Gk6OVeU=9qpGsC;j_=F zA*o6#HKa1nBOyQ_A%vg|G8qvWB1U8gQwRZM5)fq&5dl$=Ntr}cnnpy#s!Bk_p~11$ z$4lF`+Um7!wQU-&+8S)GLUQ=twe~rcN}#*_{_peSB3*=w)8_u6Z{>s?X1 z{=9A8)cMnPJRyF-n3l|#FnoA-zsFrMcf2{Ko%*Cl#pla0o%OP~`B=X(y|(Gk?9$)w zl$@ToLo9q|;mVTgNw=-|t$)+kQRYvMwM3^S8AA!a ze~O3OS`ZH(qWti0BI1ETC4qir!Aem252_^7de9J@5U(6SXa1p)tH$MHDyKSJU1K5~vOh-TW?LAO{`RPt%(q6wTrx%fePG?Dq^9m$jQ?mpsxroI4Zyz36A71(vJaa0m=oY|enhM@k!){2 z*2$n7F*-i~5Yz-TE`ZQdkr7xY2Kf-pAjBQQ1T~wR*YozuRd7v)b#NGqAd##~gO#*B zs36)7Css%5XN!@%4NpjcdhlJ*@Fzqd?_B$u{`QfNUhI{zqQ3r5{|&-thj`&TL>=GN z=l}5Oxv17x#mC@e!ro}S%Y%EHLg|t}O+%$VM$}=LOrhL#8>sL}>qGAI?jIqh#SCT=6 zLl9;MV)O)j?cPIR_sC|G8Z`#8$>Smx_vs^^w{|Yh>2$k3#8#b?Z#mPYthhKQ=SFJ{ z4iZ9awR~q;Y&{Hp`&^-O9kNML!wXeM>CgI*=YbD)OnPXX8;Q55BZ!@rM#y#cB$pu# zXx#!n0GTup5~Lt&2`Ogwl%J3LzIvq#4WJ8&8^A(E;W~L|Jwsof%w`;?%n)OVnYF=L z2e@j}aP_$Nk1v0~?SM;<_k+>}Qy`Mi1lJhGVD(#UK&s%7_6Fz z4H$z{ia!geRieL}P&alj7?oeVWY#q6u`ZSU3XzmunLjXRF2+PXjK8rAf5T0GLn&!; z8h^vXz#JF;hUTI*Sp(@Bl!Sr}0Nl~vC`X^zjF4DT_3)D7_!#S`g6^{{rw8U&#(NxY zcXYqXF4w{n7Nr#FC+#P#o8g~G1y@1^m}{z)$;upYlM?7z66^{-!=7E~@AT{p8>@RM z>A*-F7;p-xDh(xh=&K|YLJ7qWxt0pPIZ6Vv;6ldN)2J>reeJ*#hHO)i=~zlW<%wm% zOnhB~WV=lIx*!c-=UjgieSK9)un+#?Rek7-t9s)v_J!Kbl?z=gTYey13#63>Q}L;& zlt^>P6=ws?5ZH2frs?nzk55Q_hJTu(1-(my6=*!TG*ICV_P~XHrNQpF(6=R`K?@hWZIziwk?`F{r{jk=|*anC~vc-88d)LYFQ@ zB{tW~(C&k?%{S7~mG%|Z_Y^y3oFCZKe4HYBDgBgLN}!^o zsnVgOVNnG8zZH)2Kwog4@fCpsETVIP3{-Lff(Hq%wqU8I6|hLP){!83a$w#G_tpf_3g<#3|fy9r+}P$AJl4CP1)3j~UCCsG+#L<`DL z_121o1;w=NS_MvSiPXFt=R9~{i#}cD8u*)AgSSmpAAZs^XxVVo&lI1Qd+u|3hUQK2 zU6VPbr}sYbf;#A>K|_MKRZjI3j!PJndDpL8SO4~^Pu21%vSsVBxnrlgZ|ZODI`s8v zQ`P&=-_5rjX|tf&f8MpsT{t#*@Z7O2FHKd4ynN-*(pSWv?sL-3%SnzZ^PYnb7yC_) zu$h%OV?6|90m)hA04 z_a$_49^~$sM2E560`_jSjYTdPS>7S1e_Mxal>7ixEeA z&xukIKADh|X{N8K>}bZV{V`E6^~69MsS z?}C4rskgPs0_d8r>`JGcuAaeHzqx)J)^x&GZ?+U$&m*SXRoP`^ZVYYGC9tBQF6QcM(e9IV@C zJ%lArOe&^xkeez?AwGr-uaG?v@B`@jrBG@Xj?BxxL_F=G)gSJAbMdK%(rizBbN5;? zghW&?MRfma6KLIg*!4^s(Bjdr67vAIwhlJLbkBA&fT5>w7!ao+)s{FWWAEXz5};{s za;7R&QUWxGO-M|ow^WiyrXiTsC9EG%)lJ$JD2hyIG!wo0c=PYsszf#c=w@a4hz{9D zfYWg8h(-sMiD-24t5Grn%=UJNvjc7wDj1AH=-nt6NlaS+%!J{Q268pb^H_gwuYYfG zL$Rpx>CX;tNA_shJn8k_X!ffYy? zTQqR1Rtu?)6}Dp_3aZ1gTmXAbuqthuR5}6-0R&b>9gc9|c2{#i+H3%-smv{R30O5s zf>q-HR;4;{D6|K1ZpaA)ahR|``93sK!`&*9KYTDIF)9N_?s-Hm+?} zhw-V%(u%;R0?P#U=u7dbNs^id*~l0Ke=62&lvZ*$-CU!b>sklB3ZLhYB7iXgm=I;Q zA|R{n(|9*zZrJbH-*egKbX0$Qc;6Q>%SRaw-6|@sPAytMZP<#Q-Iky#?7wQV5z(8q5VFkR;<%sQKofB8Q z^+)}usbd=EZh3Rn=HD!G z6t<6bc~gN{f&9EAKNpCPs0dUn&JBTlz~me<(*%U=U^%0TWC&&0Ns{pE<=QnL`E^O0 z$aZy8KA@T{MpbvUjemFfx-I)3m@%eqM9p7&Sn}upcG>K~S4^*&a`U?1-gx+-Dm~s- ztbe!jf#+WOy?%e~yG5rmK51%g)rPLvp7c)9o7H02AyK&aWBnq@ntA>$kJ&zfErhyk z_>3flFgP`6gLl9R(7KH#e;CUj#rCtojKnZ?On30?wcDqqib-&4zh%u#r()nRfyuO< zfUW_5Ns@&8c;jSPKGD^xnqM5py#Z@8s1=C)8RP{@Td(3%76Nt z*t=j7@N)tuX+Eb>Y=VM|sJdZ1=OfL(;iX*SMKAxHK7LNE>PxX>$mFs5ocApK#ZY~w ztm!P}N!X=WtgP>!5P~|NWeLxm8 zNVLKoc(nN~7AEkI+6lrxqTWLc@(^Mu4*|Sbb|>wH4tk~Qv2>m2oNabTY`70}zQGb} zK6$P$(Yvcb{N&T;)CjLv|8~~YS*kipd^=jN8%1n=tkX5RVxcieSGG&WgFp+cnKvIX)cx)nA1)>o`2-=uAE~1P!z(HIy8HX%| zVwsryHA|K}*}Cq1#WC4CF1q@cvcvrx1d((V9Vc>U4SqAxT6k69U(OUxJqeHO4LU(+G@Z z&`JpV8r4TVA$uIHfS^HS#=m%~%mT(Pg^QD>!oh;&lvI}nAJQ?a6-tUkBNRgOkhGz? za`^lwCa?Q?d;RdSQAq8ntP-##&f}lJU$E7Xe4EA=a{T8l60C%Gg1TYX22w)6mI5G?k?shZy z-&W6Ny-}|xf_mL7gyJOhuf<0^FUZuhdud8|=#{R=)AbNu+iV#sa)a;bgo0w?C~f0m z*Ayyf*<<45dqdJ*f@QZAx*_BmK-x$TLxtR66i9lw*+Zavuf2Q` zoE20YD54M!I7`8aM4Y94MYq=Qu6!qL3e-chvAqg@F(<_v6qLRQ+A-Qur6H%C ztO+MPj8qMcqY#7|HQk+t>B?pttwipi17k=`g7A6riWIJwW6rCHI#_M<3aKwhb;t0< z(kr~1k@g(8*n%2%8PTXkIeE8XE6ymS1Ap!544F03QIetc@f zs7aBk&%_EP*BsNqKU2?a=jTWS)ZUl62KV2Oz?<(a|QN<88F7 zW0%#}jUEy~y{Z@LgTx%BU&S7T^R_h=(Hh&Xq}Tw5W`P$7q^e=?(4YA@^j7`iCD@m2@ zCb^=rSPe_c*wL&i^b$#r0L63RHd0R{>65n&fH=*b>nqeqNB8%yDHdI~=s7*a;FX_s zuNhp=6u~=0@!KL^AOD43B`QA?S8gP(;IOX7E3X)ty9&x@B5a0Li;C94BjkwQt6;^=l1#bb*(S?%=_8IHR=IF>khuO+Onbg z!w;+Vn%mWJq;y*RPEt5<_rU)D2L2(x@{w`+R{W5Oi%(l6hI7mi1v^cq3V!xv-tHJ)BWc#RMb)@VqG3Z6nR zlAK4rCpqyS!M&l&++*-#Qyn!< z@x)OBJD)6iBM_4{DyNaH$a8RG^BpV^E{XO?k%~*HoHle1 zpaNdHsi2{tk~fcN-c3d+xE-=sbYwX=st_#@sZ%UVu+DVs2b~^dKX8Pg3UEe0ur-PQrOa{JmFfCF1X??}CajlKWe0vp=XFYn<{Y zX@7*2m^iZSFKdBNCaz)IH)*bDqIyKY+9Zd@(us*~0KzXdN~m%(YdK^AMl{1d;Swvy z`$ZHMhETW&Yg-+r2&07-QY{Wv3Y~*3F<4r08a5VK7hOmCAD5Lfvvyg#4a)@X2qV~l zgFW_^`_!M-8>Pv9y}dPxlev*B$#DcK9gJ}v1|DMK$-Y!RaQ$9lp+)3Nl6;6f`%?K} z=RvVDmJgQYsno&0< z)W){m;@A7bd;#OO=@YY|JQDmLPe{8BwNAM9CHry6f?;Ql7DLV)qox_0;f5o}gwS+U z7H9}rI<)g%QhFMlg_B2?oq<<}3tV9qHCh~`3{HBbz*USac?B~BNyOpJAgl;DC{xjy zuo{T>eEKH+v${4ls6Btc)B&tn;HH*+bdXJ|$oif%+%k;|FpVZH#&P*RV!#n^>p0*T zWwVc$jPn0+A9*mz84y95E<*A8(GMet(?_>}AJH5~U9tDYIA#*d7xcb3l$w@_b-+x% z4`$#*l3q%ML&!1YB9BlUJVMqaa*q%rsTG$s46IBGF*yDxI+=?811vzfYmxM?X4z%w zRm>zVu&~uCiFS!}S3S|FrP9$Pg0qq@-oB?AQtb=mMh2C?%K?)xWSNr$b~&go8&3yq8!qvml`?8B9b0 z40N6uTn9 zE|`W$Pe1(R(%4-p10|prAx~Q`K+&UJL`jUOaRD zA-(zWKb?VP0I-Qor-}wI;=3MIUyaTNQpzP2uyD@$#W1)GBJcrN##Z1^e@S{6#*aY0`Ycn z2PshnHJ^xXD;Q61TsJY4ckv*7m-H!6>OE>t%E-zuv{4WoL7p7I_?2K*5yV*tQB!hh zMrEKJ2`%xdB`j%~IQB2lg&<`PM}WpVbRsmMJO00C1#$G4`j|7zH2F>XvHOHvWl8t`llp2Nk0%@d(>G;+3 zl3*Hs0QORd20#~4RVHs~@Cri=+ne`OPhFVif$k@8Pq-_O_qY7WM=47n2RO-mz#*f5 zwt#yq%=;cl!*zJ{Q|USu-*gh%Z_W}=nG;8|MxP(_V}L>86+n;1+?;%T%%j&3-bWm= z@+w1UOK0`?N@YN7ygxN9J-=&ruP-Op$ZwZxEm0ieOMK;v_#*69gFy|CXg8_?W$%f1 z+2n6>b;dgnc+3OIm@Pf=Zwi~lbJoeZdBjFcKf*Gn&FT9(47hZ?3(q$ zUAZ8q`Tc@h*50{l&9a5*6%+IgGkQSKf11Y zzn+h|fpeb)ejD&6Udj5i02t-3*rwWwb0FDKl-@|1?Sy;Nh>*pdX%x;FtoI6rS;1*K z!Y+KUdAl6ycAO!>bC1x~U`%Wjg)3wKWg=mtYLN~;RQNUC@zD@RLV}+|jyUZ?R150n zcwM%ve&V_M*4_0Jr&H$Ot#=Q)T}!_Z)bj|bED-(U{sA+JYJ+h!mw`H9Vh;;Q&6*Su zN6a27VP%NmEY?l)7=TigSu|=yz!+raGGM!CN}v4r`=hdhh^-J|^jMO-a7s7+*aDiYG-dv*D#C11a2fGVk98f?M(_n5ISs2_rA7S=a zfC7&kMAB|t?Gp~yw{>r-S&LiOJ4Cim|Dt;4Sh2PGO6{SRQ(BLf30-7TF##@Hr;ld^4i z$@`P*OZEO3h#2I3Kl=WA?8KVt>WGm(S*_QLUDVf$w`1L2!DnXV2*l7>D}2fU1}_v7 zMeBBq11=sXpg=e;gRx1FS5el151;JT8-cE{7a;nC2G>0g2Y6U8&!aHUt#DF=goPNB zK`jEmIt>tvdjRG%u}+<=e?RMc@#T`%_kY^TQK!~sRacLJsp6K_9<58*!M?wB9G>|Y z{OiXpSKu6Lpak*zD3Mi>S=JQpF5C2hjN-Vxj zAMokM`nu{df7X|%#j0B`75~xtwO&kqaPgU*P5Ohq(1r*to(~*pE|Mt@&Nxz_2D=0B zl$5>P!EAgi#nA8&q-d*I^z5zzx*2$Y^Hhf5O^ZXIaAvx2j^!dzD7h23s z)T{t4{YYcrU-$&;U?=5om#K5a!Dy;;#1qNViTVk~mV9jfm@a^75dN^O$`P)a6=pDc zCSS{@=DWG?ov_OlqRxhe0w7e*Vg3)z^u;eNe{{r3^^Xc=-%&~m9}`mwJ4MJs1k(wS ztvWI(3Ae2dl7bDa5oM4F;lutm984w76PR6SOXN0X)Ip*u8)M?NIKTefn#4)t=e&G( zo>>m5Zsb+HHT#I)FJ7}QVKuy3qg%I6yJFalcYU)zvK~@Q^|ig{+`4=T3MNf~e!YV^ zOSR^cg-onHpEG|gC ziEGznKsEWT{$&ArD*;vFxw;n>OfuJl$i>dkOegU4jWO}DSknFU8p3OY)nU}Cr)+p+ zVW4V#oEs?9cEjSu8XI(kOC^Dg0mA?Zo2?~0LR4HR0LHFK zVf^n3QTe-3&kzoYIC_U$!GrXd!7ZzgMrYwx_%phwo)=yQc66m!< zeJWfd+YSNICN(xeBC=r0IjA-jO8EH`tftU;6$f1~i=AMRUeq8WC-NJ1N=>Kr8a@u*#-7X!lA@!bl}!sWFD+5|yW9-z1ptpk5_*w^+P|gUiT+qa_IL zOD^qTj@acV!ro>k9>n^?`wB?RVlfeRG#{javf^r^GdTu>k^~rf67=3&sd+xQ;|WLP zr&lYrNTe3@J1O)#m?EBtDFTE#C=6pjG$lufris(#_RAt}bWO$tXmmPEjw@)prJ`AI z7cx6h!~}^QdE=-}Pd-+szdil#osSQyxyrWXaV>j5o%lgdU(|a-t+-8pz&%*~JLvc3 z42;)b7v=ZSUI*p~o-3JRZp7H|w2)(yF2^PvNAGkVk@QrINE${&I@f6N?>I@=(}sb7 zr;X}d#^5awS!Qk`ou|l~`cJ0Lmgf6;a)6QFd4k+-F&KzLXKivIkjTiTIQY!ev9OyJ zC#FV68dz|T_mh>uowz|`Y$}Z$)~$$fYD}QfqHj~^TmH>-`ppjW4ByImMx#jYz(kG_ z#6)vq2ve-KHc~~bcmtfO12JW9O1d@jdc=r^6a!r!Q5lW~HKI5iorui(a5qjGSTkV# z+eK!HxYfriYRd0i+pbDnnf_sxh<;s`iaVOE|3g@1jk7w;yP=qOe&si2mWLAo!LT2- z$?A;>d;g5;q?lh=tk^${fki-oDHCxOh76qw$ZKkb1@|<+LW6R=--l;Eqc<*s)x|Pq z5H#9Yz9Oo~AOzUK?}zYGtOP-Y-|?w42I1nM748{$`yl%;k(zW~8OOx}R2$anM6bHl ze|Tl<`Ak4K)PvX)QiMk`ONNxV zlnB3QQ*;86dCCevsge0D#8--AeGJ4ATiO^G2TzVqlJS5@^rvQgJk+Dgx81_ zL}P%1$4#euaIV3xRjC|J)-18%xI4~ON^*(@Mo(iGV9B~kvg9z8Wj3Mdz>Q$($9bJf zniyUyo0jV}&gOBV>dcHDr6o}#ez)k(d))(2uyEXz{VgS4OaCwac3|Gz<+pUM*Z&}{ zs!1I-R{#1hA@&WQN2Q}BR$v~ zW1Kv(IG8lTh2&}B`h_LILP#Hpd_aT;U2vC@U(ZT#7nO?Z1T~~=1&a$|*f|q3s00tF zgsEziK_yJg%iUlMf;(OwUNHA4x917~*9iw7Z^_P;CLoHOP_7U0E+a$OT9%c^PElob zW?km=>>=V2;eX>@y@&2!75)CHS-)F;$M5H#)qjXe89PmkSS=nCJ9lk7tv{;O4=wA} zXFNDNmLJ^x^_RV`{>S-F-6!|R7u|&ChTdY58hUo|GW`|krK;4SmfbM;uJVuz1bGoR zUyzuX`HWf&4}HEjjpPMN45R{a`mN0Wu_9iFYL3{|OnGswK|@{yql3Iq&WO+P6skn1uhXEdaj zi?k!R+@n9Izm#oz@ZL3>?tk>@mu)1dVLepKO+#0It{xa#R?(;SuOeyb%p)&#>GkWU zuc;mK$*X4IOiu<+B=?G}5OcrA+xOT#*h8@n=FAiDV#TWMVtY!l9lNtOqGr zL1u)4k-M*Fq=Hf5A%my7bA*C*mI5P+Erg3gnVj&JNn0H%H+Ca2LhZ_pxo-G-DE5(k z0u2!I(1ICYCB!rf%Q+8n21jJD8=^v?L??0SwW%dY^-@S_d;D^>q?NA#tRTNkGjDx$ zMpeVLfB4%k)6J56RS$?UaCTg1r=ZYJoC!%k3o)M||4g!`QBg4wS!$Uq|IBpAD8q27 zbc4cn@}`sg!R*<|P*`JvONAx=Bt!n4BIMsm%Ac~3(jou!3>w??6x_8Y@nG8X zTKkV5SMgd4RCA_LHbg`8t-btnAb(2gEJhp&@&}xg+hMLnP=+@~MsyRuY9GAa9 z(^v2AKYj3;ZU0u;ud?V*h$)HhKGRO+;hzK!Pw4EQ?810WBvRP6*@pqI`5OD|Hy}<} z4IJk?7r(JBqxvlZTy4O2ZV*5K!KSO%6~=L9D6h3)$-{t629smy^^o+v2%DxxDHKQn zM}8Ppj{P1!Xto0I7FGadB*C2#MwkD(`7bmAVay9vyW~Qc0F~2*h1Yf)77iN(D(6?; zi`oF?0>NA0$pb1OU;r-z1A3fVk%E?6I!9e{5 z(NKdJ9H#y5KrlD%X!$7Ny;Cj zUo5Bqo&(Z}Gn91=oPb6ul^A`7A){2Pox<}}X(1VD#B%QTo%fxa=WY}{KsI=QJc;lC zp}M`96b$Eaw?H&b%>WSN$PAngPR_^smVG+}zs5D3?KWi1kU8(=V;87Dpm4a@rf`7c zv8_&ZR=r^w2w3Mp(GpxSd`VhIBxry!j1pX4pBZ?{wmZPKo0~JHYvqVJ)1KX>-cFgn z3*UWAWa}e3-F@(uP1AeXCcDSJp;o8~5~*VyyI#Lix4b!#%)+ibk zpyCq>jTBb zn>0V;FyPcO(O8ls(kMF_v8|{(FA{mK|XH z?F_pF>?-Vbf}ny4G>c+@CuBlrC>E_SZaQECi-@^H1!l3ahf<{tlGiZZ#dxiD@``|E z5xXqhQY0?|>s%@?EHCW~rkRLUQ(hgxI{#Dh5=4nWwGo2^-et-Z$cq92u`Dl_JT)*# zi}Xq^$Q1xuQ27mYLBsU#i*G-2Cnfc433i*`x@n#)XLjMiCtsM1jGpJ;S6u}5p}lH1 z>r@~}}y_@C%E!u063t!JPGjX;Qw~hx)_H{A#4@# zr6ISE3_th(E&uoPXXz*o2VXl^x8e3{?-bwD{5tPI|2O>K6bCHxUE=?Kdw*3!?SXlp zyx88gH;%k|`fl;E8aMtv=+9g4ev+@}|IGglw}IKre)~LjI6T!DnZV!&dBD)iL3W&!_0=Goq?F~9DBO`_x zlm&w7MlFpG{?TaYDl7xv30M-yd?T3Mp|jESMIeULK;UV$Q&bJyg|}JXDoHz3Y37+a&1n;P0KgF zV^crfrhmoO(QiijZ7n~R{mB;J=T+;`3plD9Y$$8Qf)VFmunyj(f8SCM8Fd8@N;7NruEWHLv03agZcgn08zzgVX-=@sp)z592#0qz-xkRA6jO zpjQwJMATtK-9F`rhEfp;Mqw8zLl~FwZP$3qAQ=Xu0MBcL%ijf83y4K!DkoVVR=JP* z68wbkFqTo5fMCI>uXQ~=eP?RQHR9XFAN>lZ+Md@uU36{G7F(h?Y3bkc#h#do<(gm8 zr)Yb#hPS+>zL$P~R!be>zdD{FL5FRrp)({rO?*~VmNAz!>Zw^OxCZE8Tt^MifiPWg zwnTfa+3qvjgJY>UqWwu+=l061A7pz36KnxKv)&_dW;mN>T1J6u8mCwJJeGz0_d6MX zf3tZ%?Q{P7Rr2rK$aYedTKEwi@cSewIfN46@}pFEI*!~tgs#le5-7_wi%zZJBLbc) z8HwM}4odtcA`^1-*dX{Oi!&}Elbu}As3#V5(jf|kk7FQvU(dYkGU@EJmy`dKh~RO+ zEMP7W#h069sTHThH>;xFKlS^+-1_0dAB5)vefP(2ygP5##=nZG*RDpz%ITuVH=mbY z_hZXVQ%VZ;clE#jLm%?@gTK196OqAxB#@k=Yg3_y&D$zJveNMp(rrao0f_Q^Oi(@rAk zO)7G;`iiT?pe*}?_pRQtare_NZ~MoVTke^0<285xxkr!ImQzPw%J2K@r-#)J{p7V5 z^~U2%7Y`Zpx8Lv>%P}FHP}kBJLMK-77;^upezUrc#!#7cztjngJp2}DFZ~wEERjg< z4Zj82OTPu~1OElCe-1f)!tGy|_rLftxBm{;t#p5xud2+t*bjdIl`5gTl~`j_!6Y0? z#u`h9E2$waXo%O5Od8@PsiKah9R+$IN73IMbNUOEs2vmM$HA0&6S5h+s$-Pj%RIm6@5b%m|vSPOu|blXHtKDsF9x^*g#Be%!+Hbu0jwS(K6YX|Vv-&mJX zdxN)rmU4>QbIk;<3yusY(yPD8`*V9>TWu=fI{14=Z3TSJ;m_gw(f6#U9qvc%BJSsc z9*yAV{ZHBc;y?KBL%*~_);k^F>6L&*~8D{pTygpfn+aJpb4wgGx*EMegw zm(^I5tR99eBx2p{50C=UY!QN!{*`I8ZWdN$WsmV?9Oy`8v*Ll?-qF`|_nnTLv9XQS zCZxCAc)f>oHc=0-4x|ugd=kki8Jr)`0U+=Q#S<`XiIF^r??y1)M99gc zxJhP%88!n1MB>sS5qL?EQzGOPLvkX1GvGPYihzdlh|?yD?sUM2Zm#f+uIk~-$-3T`xkT@P6{S(<4iR9K`*aNB zPngjpWpYHHF#gdpm#ITvOc-UjFEoh1s4tPw(RRb3i3kkoM-N4e#r*bI(h_qx3_R(@ z+hKbXM%SbCHTV9z;}4 zM!J9sxavRs`^Mjua9aFbLi<*UklySQt}i8|cDl&$>Yp`FB{?Y7;tYXm^~7pC4kK#G zp2v=5nFkp-z%H>=W?O@?EC}v9@`kfkg3(cPN0GA&?jX~1EEy-9Fzo?AF+E%+!Nj`e zo8*$loKEZ{Cd9eLWySIpN3R;Fb|gfWmMO#F$0;@&_OLq}+>BYa2_j4Q|F&_4{+9mQ zZ$F+Ru6b|O3;M-Bi-wQCQa7F-2Ew}^)p<{_T?0E|w=Eud16M;Q(I=d7dZ15fsCNj4 z2LurqX^0~UkRqY16!NrWxe>wy?$GEV3IbC>>VO4R5Ya3j!!4^GrlW_5bQ(RR#R%*n zZ2OzgS);S;;?3iuOxy>g3u zY7xTcHm?BjrW~=ydGn%-T^h(*`j~HimOcRxL?LSGNCG=PxdMZ+FrAfPK^6{I3Ufd4 zu?lWMvz9f##Sw(lp!gg@SX-8Tsz`zC-*fmDjQdmRoLO_T-rP24d+M^&`(BxI|E&}5 z8y9!&3m28o#n>;uQ8%`vcUqBm!;EukOzVF=_RO^LFPwa8<%WSvt`)aG!{dRotj!Jn zgG^v4J~kpQ*d=lhadDT1ayX=%6OZvQ>Wl8p3UbvR8ou2)qC(4V{P+;r|0(F+mPwXj(h7cPqv8h}`2&WQvGKsb`^3WO;TWT6kex$>c$d_2w3t}~4 zD^kK)TCSR%|;~wH@55n+hEMs*1{}6(8b$zBJN#Um|3jR2l+nUU9HH%6oQ73}FO39N2okMe3`&RxI-xEnxG)3Vfo8Fm^8UoU*x~AgM8b{@icpnopiq#%zc8xo z@!1bhv(qpA@z>9x4&gm^`+}Pmu1dan_JZ73w~bv>6{|k}^e5iX>OVBBU4Gz@b=azX z+o;^2XZy;6{{1s=n6Z2*l=Z8}4-8&9tn;!?YgWlZg-du(Q}$v#X@Os$SlKIWnqVBA zU%AFcoDVXDzm{zq04bWXvyyx;{<2AiT}lF}T=JnYKQhp5oc{2rY+JQ!Q=*W2hswjimRD+g4ArN5lLES!o%$T z1iu{x1;Y|6D6i;HlyL9$_t)ID>F(Q)+M4Ds$*!6(tl-I=cWt&!UAWFaZp-5hRBuo_ zUz&HbG!ZxgAX)dKgv^c#7(hPOX zBXvYwM-nV1GgWZ1`zc%>C*7-zz~e%X9aQk{dy?}w4|0I}#bZY=)x4x%t?6~kVM?|U z`3>2d?`cywq3p#uss#F0p!_*Pmaw6)I(EoAAd5Oz%92d!2w9RCfrHE+paa~0(2YgawfRMeLoxr}KqiCgu+n9JyBr;{lI_RHATNJ9zA#ot3)kN8VrPnv!8fR|aVcs7DWh3A znXm)0>9qrD0@n!PoCSEZ(?Q3)^eme_JIC0o=m*X=Q4X&^JtMQ@HykWL=^3bb5|$DT z@Ii8{0cQ|62hue9s-q`s`r=m@!J@!WaM=t<@h zyJgY9d$nC*_yx{E8*%1d2>eACrBT)yWB*_(ISSzv40(ANya^Zv6uo1>B~)Gnx|Reo zutUKLz@|iioc#=glM12b!q9Jwa%XhnZQg*R7)TE6Qtg&p$PD|t0qazD3b zI(q#2#3SKFckPD66@>4ozlQJ~xf0)T{?(g2tqYcw95YwldzW85TODQ_dF&&CdcZ$~ z+Fr@fY0jU)XJGKkBsqNy_V^f%AjTMWZ3GKXgl&uUB9IE5mq{A{^pR~Ff%_o*LUJh~ zr6~Mj1nk2`FD8Q-UhEjVw@?r}88I<~mB&zhj8ugAn~s=%Iw7iYGPfkN9W1H6oJh#P zM{8p${lGIdrct{Pu12glO)zhTDyjZQ6wF;xnzpCj*uk4k-*j}g8wUxsx|O<0Ha2EO+mnY;zXq&TF2W# z2U6qV04F{a^E8#tfs#nrnq>VUdn^^4VK#`Dc@O>Fv z960+>D1mTB%E8}@=^rgT8nttF(N(uCzvrXn zhxR`DQYZarJhtbu^QTUICXT%*N}ulBXH0JYt@^inj=a+NX3Y@&;un9X=RAq$Jb-m2 zS$R_0A3+D!69*$ckR^_DzmZMLiL}Y&+)Sa;EyONCiH;yG3&!D`43=Xv?)!N2A80ua zB;!n$ggr5wPiigMKM~(K2t@i0WE%XL|4!+L@$1I|ea@)0oRiWb=DT z#}EJvMSE!uM;olgoM}th>XsyuK{Cpug=N5LotTqmZM27)A7%lV-pa55%tI*>I{|iL z3S$T$CXNHv;2oy7EDS>cu@FE|<+K|m8lCq?cE01*V`RgwNNieg8=WW%p4zeYfrOQu z0DG)%@Ugpgkv;$1llLyKnxzh-vEPcZZ@}CtR3<8+eCjtyoI=rbLX3ls`jhgbp`(7X z**ozfm5PBz{+JofEh2TzAgcleSpgDOkkk?Ii6zr18rHscW_hn8ARX!jq;}RP%g=|1F^^BkkvJ4p{i=;;b zB%4f84AX;~h}n>U+2AA(F4E^NwF9yBrKYFA4osuh4t5}}ksSz=(B9$|PfF9q0ci0}*V`zJtK(>)x4 zwxu!H1s^ftZ95T56PtNTA;!Q34}?HkKD#NTotKG2kFO+{L}D*031_E2)Vzx)6LGMl zLw+vu@KDCq#^x3Dg*A|hZ&L709Ql*oCzM9y0J3z%vy^z70+JOe2~!qH@I+uPfm;a6 zNiY+U<&ZrJnICO(F`>HcoXru&T|3O~`)hk~m_)_^{t0$B-E=@l;&&0B+}wIjd(Zj; z;*E>}5fhc4I9^)cdd^b8oIr%>u#1TTfn4bL9K`RJ*cYRHce<|JDprUwxDKR-t(N1E zqm1hdxII`L?N?CTQt89j2Z_lXhlKyzdYIe8nU6T+Al#Vl-?9CzV$WsTAmI?Gf!OY%9X; zx3{&oycCrmZoea<{UIAYCqIw2BclEOsF~sRJ0sdZXip5c-)Xjoe9rKAkv&Vld>QV4g^l9c^7(dI-VV11c0b(y z;eXQp;dbq7!tHlQwzpft_un1SepN*OABku`Got^GnC+nlx%O1!{)OU3rR>uFTi-PP zPJy^lrP(pfvR?Kdar8GV3xRnmz=|WkdCHWVwu0vqW(xntUGh5gYa#2GY(K^Fy(us4 zKGrYUeu`yvM0*-H*?zn-Hr)Qt*4J>I+S|nVk9jjS)w(C4DK)(>3w;`$jY$pybjr&tg2cradtpGUTzV%Z;V{~(Vax7W5=Zx6RW%;U%HF@7LA!gETT z3q7Z7zumex++OAJlkK-hw&(Ga?RP}9zm3OFw%^gNJ*_9Q{mzK?lX?7P`<-Tck`Ip` zwWslWM~D9=Jc|pV5B2@>SdO(EO9nBgUK0qrYKW ziTI$|ep*Do&sn|<-+!9r5q_Qk=PLTmkXGk^C*tTkLDxp5@Q& zF)pY_7`{LHYqXzY;rT4vv;1ZIDVCCm_OyP>`;S**sJ{kIjMi^zkM)~2R9t@ocxp8K# z_KG*%;@mj!ZT)}ty932JZ5cmvV#jBWc+!DhtLyDA*(1d{(zb0%Q?!QVqDL|r&YO=_UAP$RhSggiOVGdmOhiM5D#=jm$};r8=fqM3e#8(YoRDD%ON0dTFA=2}R=jKE zu=YYtXb`cpSi1k>??@p7_|x(4Q17!%F@%LHESC{;guK;@>-C@1a+bG8&Mu^`hJ|jT zaWq2X5WYGr=f&1=9YIF*qK z=NV&w2?!%l3!CaNfOOJ<+Tn11z%j1D;bnn0oSZ%yoH8Lbiqo&)T%T_= z0#J^=Ov^_(`dnXAvKZcX@j@{tS>N;KV%?HCKTSNYPfD8~f8iZV8O?)S<2n4w34`|s z&jC^ndJZ>AC^I6+h7V3W6u4pHKM4BpP~cO7deHNkEHM51oI}M4iim*oL_0wQS9E0V z`{Lj8=`w0vM1dcXAcw&?%g?|mN5MM`1|*^@F}UkQyHD(4M*=S&o1;*-lJNSd>4VxK z++&2U;b&zRJe9Ph<<6QatY+_>LW&?aNsK5Pr5|XM#A796#H=L!(aOd1#Nzo$Vu;93 z!jDJvY51XkqCZbR77CnwAfKPq7^2ZyED_#u$FNvp2SuQ)MbK#{}H zA|sHSoAc8hbB2$)d+tN(!Sy>vj$E-1Yt)d7-&sy60e6AoISboJ@rcvB!h5t&@%QY? z=8I>d4qD$t4F@;oR2QXExmvk_s%XZ-m(-XY+u2nd7*ZDO4vg5fU?9Zgm5%9Dki9$N zW68mbq?xANUi3ClT^7tm%YGQU8hX;82NX;og`+fnqewathjhi&uI^wN-WK3(fjig- zZ>#XO${ieuw^yO;%#HZzA>~KvCyKv0-0-+n2Ftoa9bKIfy{Zfpc#wh|99abi;*fsi zsCRUSVrF*jLp9F>@t($lva3eoZ7{bNnt0$QC#q$e0Tm)J3$iZAxlG75jnNn;8MSC5 zt;Y8Z9WuYNUiy{EuB>jJ@zk8Z)g78Q|F*%Fd2=sp7+YO6X4UYj5hL!tUfqlDZlA|r z)>K#B^=Q?Ik!wb)({c4Sx;pQ+n$gtwn(Id1JzA^XBf3ALfAx(1yWQJcd!d-~Fs*Lk zqD>-d^PHRS*Dtgd(Dxhf=kFh0v`Ad{pL1^Bq_=Enf0^3PpSe+Q#ZW^RbZx(Q2X==I z+C`s#()Md^{%mF4t3hr~i?$Ezbb=xRa&1PAF!V3HHUm}cv)8C%cBTIE`~B7Q6fviV z9?(}7lJ4f?_uuB<&j|lMb`9hAB|(XWcA^S_LOgbnFZ#YeKv(sL4vA4>RiR#+sy|52 zReJGz4gPv)t3@0lOGUAKf&1${usDB$^#0IEj1XCMSQsy`yi2<-GQlUgQ-r9_My%8!Rvsg?WScp+OUH8=d z@SqLH2%Cd;SpVH4+jq&)nm_YClD?{xtHad2))ydo5B65x1p`_cSyXo7!*yEWbw_c} zkivBYl_*3dH#qI+wqM~ut9U2Kcf z8%GVOoWJ7a&O6kGi38Wpy6(oz1aV-5{x|oc#TyzicK4~}>Q@-MWFS~(78IjQCGFRkF8yqqh6uDYkdtlXSwj+ zPD7ptjd?eS$zKx0reV@<8PtgsX32xN@{B^@ph7P8W&q(61Hlp7Rz@Bw#z$-Z)VS=z zZjh4_?1luiBeodLn_Y;{80Vh7DhNDh?1FYeGtr_hXDsAY=n|-noM=K5=iIUI%F<1@ zO`~>nj40Vn^%2B!@`xN1FpZic-U2=$7`;scXllq-@E?K`kO}H)}vG1 z)$=zkXt-+lq>)!nPsyzp%e#&4nq4}$d&Pi}yzZ2%Z$LkiAj3&ud7~cZOZ^}%R|u#i z2r`b036cN;O;V-ugRdjNdcy!FvzrpYK(#yym7M104NQs%Jbv>#0y)K<kN5I&wy>Ra!m#ypV zgSNTG)YQ1f+_XLIO07&?zjE-Zb&DOPuLi(9Z)H!vd2#C76fkp8(+jX(?j!O*XsY zMqi^c&{rh01g+WVtJA?3qtj_`!o?UcqY{+NM2q#ix4A)XLtti)JrT?S9w`~Sk;M%j za&QSYM)7MjzsArjRSihVNyb;{{F=e9+4Kr5h9x$c@m`$ogQC>2$*6GC4g$vF2qq8| z1L1PF4Dsbc-;v@`QC30!2zzJX2jVDGf&T}R%x-Z{+LROjlKW(jH{5S@E&5B~;KssU zH!oZJbY`*G<<%QX#2%kMEwRUa>VL7b*2xcPUdbJFYfeID+VJ1g0c~KLX zqv=x@rZo%tXkq~ah7H7k#1QVl>O0d|WOZRhMD2$#8q7>H;k0wY<#`Y+e6aaJ-Y~mh z!z{*znL<&-)Dy=&ylKH9nQM)X(N@CXATIEYTby}qK?=C}UX zx+inh=G2zI>qm-!ecd#yPm@DMR8>pbP5!S&`@QdK?>jns1r$2A=D8ac(|f0Pksq?Eyy@3_W<-nQ@%q?MVBz{z8{Yk!nqED9QMK@htZ~&Ne)yt# z>XPcSUsTpsh(zTgIb$vG|0vc&*5lChWb9^T$mL|z1Z8q{CUOMY1)$ckIP-PS$VUbd z9SxhjiTu_}yBk;!QP2VSEi8Wo7YTO4+fIPl<83xJI*=KHtqI)(ooI@uG0G7SdWyQA{5JxMg1H?WK{;D=vdAQBQ&mhV?r*>`a*)Q z!rC)TCesphiSw4KSr?8a-L!jR^~jW}K{M{#KKh1XwF~YP=c_kQSh8%y<|&JpPk4Cx z?IW)qT3-p@&Rgw1zo^>rk93NT!hF; z5wQP}KuIQ~Q4Pk2EQR=3!tcOliEuefPSdml>0$C$=xQC!9K!i!G zCe;8bYf8yt>faP7jjw>;`bcSHGLjRhKo|m)ft2n((`Ze1V}@CvK9-W86+Zyx1X3lK zfR)h9PTJG_Dld8l0SBrxM4dSPN|$d^CG8iR_;J1zV&E`R zl@dS##;QxD)N@6g&k;dHuuD0t*utU`DjNovTP_;q7kBC2qa2?B zcJ_D&MB8G0S)IC-l$O!&85?}~5Leg@nME-1C8CiqRf!n@3BvHr_msgR^yGRfKntVg zCVGk{P8mO;|D4goGFDBxX?8+(UD1%MD<(}Ip1on|JaJ*gr=P8;vDm&G_NmRHp0Caw z)VsX0IJ>NWpOFoj!=2tMO1t&SE$CHMHgRs0`flr9wYIfHJaDS@SL&2E^#&=w!#E8d zhtAt!@nc6I^~RP>rXu90;S4Wm4l6dy`6w3(zhK!1mJY{Ts|yr7Hu}=4;Y%CW^ROwH z>&QJK|E6&&A^o0z4ISd?AB9N%HIOkF_2Kd)eriP|59bb}Y$zuNXCWl|~ z!s1UNh#3(GHAV3S!lee2fnp3ebJVuA2JMjz@l2^R+srV$ay8m#W^Ul#BO2ptt^7 z-(5a*=BlEHmv0r;v%+67U@`ht2^(!3`H!^g)%C57@O>_O75lk1T#aJC*Yy{_vn5*J zr0=z%{Qcs;%I^`$!|&7gHu?KnIeo8<`dNN|l)on%5L5wt|CRW@5O!l04V|EF?_>bqH&~KphhC1|0@%bk0RdCQlL- z5>bMA1lw0|CM1k+JWK>O6g-{)k>VM-c@=Kh2sTM6wEnI;VWqW?ML*T&Q)uqJ^I_Yd#rezNurgfe%)OzdrwF4)sKDBhwxL5I{ zr*zfo;yGMy%wRlu$i_35XC#&JjACotKml7YCK|>DshTtoJ=vIr*`8CD{`D;zbk*MU z({THkpRmFTrAAjRv_3fD0STWeiF7fFj*h4vinxjrjH06qQdLlC8lBLHQyjOA7MS4K z(E=|u>WY~;q+D8|5>s8uY+N2@1Ew8i;sm0$ppgv|P(JZjlj5udBVzY!2 zr|nWcC2n>=Tc~yY^xC8%ThviIm6uWda(S3j+}$F?fAh+p<}~wNq}Lx_HsFTc^yvdCBA{x86)^J#mG_ zt6w5+=BFHbAMxgZ5raZbyg`EXArwQi+D;*HgsaH%g>{0w2KXtVpCOAC+dcIJCRnm? zXO|}WX(IYPv~?AB?Rm{{k>9;@w=PqrY}_)iLSN+-Syol7ju{to&+ZHA>o57Ro~#sm zEM*p#5|6m-RE4Hg6qaKI2sQk0l+u<>%XBARpTS8k0>ve?Cqu``ZK6;uQ!hD2=}}12 zY?Z-u?7%@kc&d@98cN8f?6p7=G1t@Bv(WLte7-1TDQn@2;Hsxb=c_Ac-!W+6O-rZD zT{w5yk{wsf>Rr0H_suK%-dumj#9p%p+`MA(u71<|^te^*ubr1&Sh-@#{Hs$l`-`cy zb5pzY=`(2Zf~xeizEaNEM=iOQpA;YLX9`V1j|6tp*ir%-IFU7p52Q!fi@+8xH$q=_ zdA2W6!&Kpag}!;BcBdY#W^B4U%|Q>jT~KOXKAuKlrjr=>DbnA;2FVr3x*kNtAwA|WWa*U(no7c#LGRzD|+7^ z`d+a_EYa7ipQ(RoO>50oKWp8k)~j>ybodX?+ZWHPU=_=@^u6#3{ljH(F;S1VhHRP2 z6~d*2Dxvd%;xYi<&jh-cnwlTzRu;Sh6QOHq$csk`WU-}>+^c{a-p)V<>Plh2aGr^V z5djXnJlOtp1`ZYWEN6r0%93DT!y#y}qHtD^<3zBR zE?_7%!fb+Rj^d#3PxNv(CiL>-O&O}+lqKO!CwF6BC%7&e3+a`v_vGtnSxzlAyE4H$o^Aap@}pVtSI)zE5LgQqO>O{QKN`R zj0yq*(xlkC#uAM^#u#IaF~%68fW)|o8!2i`VvMG^*2HY8SvTvtZho#o-tRm2&bt!# zm;L;HfBfKc-Gd&Y61V+>nr0wj@6pG%i)a=WTkELudi4^~!_h=-nM>te0EsJTV=`J1Z>J z<3npwaS*nB=n<1WbFRqSA9Y6K;ONBd}u zk5l|fJnp9ATQ1Qy?5f+XbrJ0pGKW~IQ+#TsK^-zJbyL-}>6YrTLX*<1HAw+C>tg*$ z0$!f#Q&ZqMpsq-9LRnqpQ&Ua{99g({`6@y1Y!Ezu>B=>tV6%Pd=BPB!39X)Mtyu>` z`{H}4N4od!)F1t9&9t#-HWCvsGn3(Q$>KGumn>PmWHtW!QSX*J)O#NFX}L{(zN#uJ9Xv3~R5T@Zq`6my zBW`fd{-IGUDrz}TO-0IIAMyU2#v(pQ$zd&R+wyn1nwm-) z9=yHfg`HbB@7lHb)TxudzExysDJl6^i2{DTz(&T8Hz!~vJi-3>q}&0$MrQR0?$PDf zch%cp5n!k6WC+dZ)eFeOOX*%_iuO(6K$MA zi?GGyi_pReTg*ho_7Ukkrd9fE=OkA;`{iLe&Y9S?^asM9n#`xb8R1IjPYBywHJv`; zoS>x}g>OEYp7t<*9w==6W%@*CU-kKxEWtA^J%j92+FX@>*c{8})5&V(`EOcw=!Rg< ziF7wnu0hP9%taTXT(ySwn1e17ojR;ZvmgB3i6u!FFNA%E$VA)xa)z7u)+<9L`zphHtaFGJ4NNI&Jh9^I2k3#L%b2O66Q$}$ zkf73XNs<<{8Rs@3=Z8*HeBa%^eue%}@1BEv6GnWncDrgn$O3d9^8m=dJL#g>C89@Y zBV-@G0mY|-;lNmogpe~_soJdAA~3Rmo_PV&+@Beu`?%xa4*ZQ#kF0ewHiXoxZo@WI2-{ePlIY~E=3 zw4%qu?df5m$V_*+UGGn$Iw3Q{=sH~nufsUc2W#yq(vlOMBkVxoFvR71*yw+=)=0o) zViX^K#c@={K~TU=aTc{kc;~F;zClXk&9N+ul>x!x2pf)dwF~H=+B@{_5FVkHh^|{z z5nzk%($&(t|G<{~sMXOgM(W;6TOaadTWdf-yP)6@^N@%>JD%-6;Z5ux{*DX@xossY z+)vnsOL@)Ic}V$w|2OhIonur>*aN1!Ogb5s5O1uVDHg@T=Fwj)4~B<@MG?sXTCgXZQ>} z=qmge!OLP0rf*%)sOw30A=up%mmOH`CpAHs9@pyI3){EqE@Iv1-*WYr79vk8|v#@)=bgvYc^~<_(er)Ujy86PCm7oH%Ff931 z_X<_L+4e*I1d1;ig+x~O5(f)~<63cG_mO(y%7ndxGBKA*uFe;Yza_4d|I7)N$GSvW zIuDBSAKfu$bpKKPLSp(39@_p9QnPakd;0eY7!q5Y)1yQC?qTr?z1?+RIdR?#I}bs^ z9#~kK;6u}5evGvom;P{YQ4naeid_(>ff$bWwmp=j?kq7WZNiM8q%Irg=T}_rUlOux z@TM63o^}BVj-ijuDbIPnOK^p?n`KrH!6Sh)MB?oGA8=wy1~F1rKK~s%R#&7XVNTW> zyR|$ZqugS3DA9l{rY*CbcoZU5XH~+CYDNhfSPu7CRj^op2MLRp3xXR`hTA zsH_!WnDq5s=KhD!on!Lni%CW z2U!1mqS*FPk!ZgDZ_=33SCvM$-&B%e=%dp3q9!XS3w4&aWQpD!dSsXDY!FFU0#O{f zuGU|KsTW2>!YD}C^WA7GHI6)ngC` ziH#U^3HPeXBpA!luEWEk-BWDNJAjH|uG7<<#Nl7_XuIMJ6#i2GsyazkX&6RQ|9@#f ze}+l5LPO|dsuN7m@QpZfjDCu&fe_8b_{c~CoV~$&L`fdb%HPywV~*O13@6Ih5Ndp} zEP)1BS$czs7^}><& za<;5oa6Es*^2+*IbjSO2OYR?A`DjS-DlWyboGGE{!{&hzR}89SBwdgw8}ynv1gUs~OjR+aG06d}2PcUB008cs!*#sTfbAo_*zIyU`p-KYDt;y&`Y#OHrwR znDzXd$t%~k%w)^_3uw~xd6kLjdFw_eJ-%&m+Oun?w)|k226~patmfIeT=X~-i0Ee+ zbX=@PgDBt7nhs)d8hgW#=I*Gb?y4^im`;c#WUxW_W$3HABo}@eJp5|92nzyVUwny6 zc!`7)0MY1U;?v6gmPWO7eWr8>eHK?$o%*77cV)Zc3-^{RdacHsdcN%Cw?D6|T)Xs# zm!{Rkew23PmCd`Rop_~e{)$oYqh8&#_s?B*fp4!~bvmnGup)2HV=a65cS@c5kv(Fh zDs6k=2jG9Q?S+d`VcU!0B1UvdW$(UoO08^I^uVj8V%n?!ciUckRRgxY_h6!PY8Z@3?RfE=FQ{8U z%e}GF#yt3hCFDi*)!9@0GWie9KIttRXjwY_iF$4wm!`7TT47}0HalvVwU z?E4wty}$mYerC26j(578t@&%q4}H6dwxbaHb%EFqG?1W1p(Fond7iJ-jlsGwR)x7J z7ZyK-O{_G7=c)y)C-3}#b>JBR&3HkdHm&&nF|Y;sO+twy*g+v&_!p63`gXjSW)=-hJ*fPN?K0HP!79lu^BR|9-3_zrhyP80>$~6o;z@~bw z(OV1&;kyglB}eogzB)xUu|OH@AA(g9cp_0%Q`rOTqs;%M(&9586Z7en=iSzSv-h1j zUv4?{?nf=he<({jy?W93XNv}ISYG-@M$13Cu)X!49(kd8{SQ}KZalbmw>_`gyeGDJ zcIE!M%JXPj9au|*?*@#!1_`e^;!88a;c0Cr*QW*Ai`Bjk)>=QoKbON(?~CFqrbFZRo|TJ(~bM@*f{qK%Ev6({z^-|A{z?d#FwQcl2NjGeGt_#saX;ji zk2-Y2rT*bPw`U$4AjCcG*UwsP?uW2?+fLq70Dlu_X&XdP7XXpQMSme<*#&Y>KY)zW z<&kGFKi{mklF@W4X<^maVXxWv73JfBOybAE*IT3iQk9pv4}LBnyfNEhPVtg9uty3ORE-T^p(E(>zL&z6x3fMazXh=X@`j?|UVA9O{)xrC%(UYjezd=JTGan24pALjwx z9Fjt>imT-&uU5l`KanJnj=ncbx5)XG?kSSRZj&S)MS@r!nT2~rddrq8?gbN%mnY3jcGpdJuKd`VumhO$Ld&Xnl#g(5-WRr9e?` zf%{R2vMaLiJ5Z5PyeG=9Tc`3!(5cAne}F=sg-rb}gshA52$|O{LpcSXuaYj4Pc(xA;+#EObQ3siG&4RUxlJUj*M&=sf(J_+FC8calEz5b+T8sNjASGO}8q ztl<5NGR7Z*w{z-WddLU#`$gz+mjsDBz zWzacFJd3gGGU(}X=pNH0(LD(NOpj5AZZ|X2$&q2KKO=^=JSBC zK>8JSH_aDy>)1NoIyy|qq0n31NHR(P3z@{WqU^WH44nF$WC$fWER@VsWEE|tXdiV6 z&d(J6MA?MQh_VQo5cRK1ac*?Ale+G(auWJE1?fWf0-QGmuZ1q^_mf?sjnuCr7xX{i zbESA+(a~9eNocPihrnB^E63q3r0JG8zvks+4s6Rti~D>nsT9wkyf-mF&copp;SI67K+tG@Tdm;-7%l zW2D^G9_hWvDTN0@N73#px*+rgI$#WPRvB}_kM86Y@aF2%MY)|fmGX%32pK(qW zdFnrN9^lQ+uf?;<^LS5p$62NDQ1VvepTG(JDS5j1w-L`DARimSBO~(G{Y)AR1W@pN zGr@3BgqnT!^+h_=Hp$oVnvh7-QBy~5ecB%RK=Qy+vj>=+rT@I&-D zqU}Q4DEc6!4f~p8i9QB6iclxJkX~uHgE}cEu53(yshGK&W(zkiMkejx2WSJ@&Wp>JQs9NBUQ$uB-?dg z!PnFZud7Y|3hn!LTB&=FZq>cVHsU%29``fuC;jw7#sojWdr^Kx=Fv}c)C+qDeA}nM z4!Vsb4f2>|usIJHvcP}TzfuPW@ZJX~H)MdP0onk|!TT>z=b_-MsO!(jNPRQPT0lk` zFQAMW#G%l9T*0mMA3{b9_kd5dM@!JIogym$JMmvICOPChW>^53jw7kMugS;Y#V#Q~ z(0zO%n`G-2fi54i0zA)lK_TNpPKB)K>Oj*WlB6HxtU{ZxQ|U7xCobAtc^M9(4M``1 z#Ji97b4vR*4e4UM1sOy=P5~UML5WM_O91iU3C_uieu#D%vMXf5RacKfA@@S|gq|q! z^C%SMh0MC@#Q=R#WVV(hp`JSEJiw=FjGx39PRMv3nJo0ju#rrL?OQJR_XD2ai+TDF zd_UQ1fQ;$Cac(pU{n!a!h%x9owCz5qw{-Bi6WJ=-EEmsQ{17@W^vTtKJPKXU{l7uU ze^)*HU!ka5MSt%R6QJLt_3(d+i@s3k=6`}>d@btT1!dpq>O+4IDtaKs!maveS3fPF zAix_yZDuVlLvk_@79e@eoN67smGZ@&mpu zD6S^wF2Il39I{MY+|9X`|BUaK{!Bu65avA>NFv5S#O)KZS()=-F2sUJ8m?Y^8L?2m z7BlMzTq|%ceFe^cufSR86*x=00%vY9?#5Nlu9M@C&tYO551k&0c3RAR#u`RqY)?qJ zaUL0M2uIu0LJo<3R(F@I)$b*dhACt`+Q;$w9e8Iy*(myS{dJ51?vXUSFUGLF^gGeF z-b6ouu|9OF1lL+z2Xy<;55wqAw?dh#7<7J4gJCSL3@21c;bSUznX2%~;k?TJ7Z+sw z8}tVYAAJ_%lLGz@3*hgNDnJh%4lFbp1Q$kC>Mh@qrG-}ecvXd&FMCGy`#N%dY@}MrR^o3!9Gv>-11HLZS-ySEB1TG-_Jk6 ze~15>02W{hC=J*WP!;fLyUFeDwvTRqsY7&!`oKLw!-LiY-RYR!aYv_^PG>uJ?tHWh zcA>i5?V8^8Sl9dAGPAjcs-rdL1XIh^FeSYa{@4Kt->3(VbcJ$lZ?^1tz|CRj@^gq`BO#e#*;s%T!kTD>4 zK-qxB1D*ymyaomi>^aahFnVCpz|?`$1{MzdY2Yt|*dXsg9S8LuWEqq?=<`802HhHT zZ?JB#&*1r?gF}aeIzq>VP6;gtooy;G%{DDJZ7}UL?Kjn$-ZOn@x@b-^r<$jk3(a%Q zE6tnC=PfCgbW66S)UwdB#@gFzvBp?OTGOmq)?({?>niIO>u&2o>rrc?^_=yJ^?U0b z>;16CuybKo!oCl?6V?*$5#Bz$NBH3IA>oejap6?h*S(92)WG5kHN%Gva;{ODasNNLrZGnDk-Nr^&ixujK6H!sPwQ zhmwzu%oc$x-J=T^sddO73F;j}<(2ZFJJ;{bTx%*)-!+TXdVcDqsW+znIQ90lanmxUWlj4uGd=Tk*0`)=(=F3CP5&u-dG@^= zlCvi_Fn4M0o!t8~-plKoXUdDt+m?4be^dVb0#@Kr;8)PGphrRff=dNAW-c!5S@>bm zf#TGXjwOwyolC1`#mpKxE3GWJY+%{avNdI!%666QD^IT&SP@n+ydtF{z2eW6yJpAC zK09asT*ur?^Cr)`G=JNIqy=9ttXMRBvCrajOP*e`Wy#K^Z0VGx?=9=Rtnae0Wy6=H zEIYS6X~n9Q1y7A$)p^z8Ro|}mS)IE2)|#$s#;x7=bkaJvb-UL0T;Kdm#fJVH7H{}; zW7x)RoBTHI-<-N7dP~xl)Ge2`rfzNCcJSG-XU}doZQu4>&*$oP^xm=K`H1Il?A-Li zkQW>;jC-Ma*O^`CU$nn?Z1>>ZYj$6HDRqzAo?|aB-8=e~=vNx|&3@JU)!qB2ycYOc z@M{BKv%hxkK=y&=*Rx-5KDglxk2ls-*{klqx&F|QLve>jAIdnCd#LQt{6otRZ8)^^ zFgcukxb*PC!)p$2JG|#`RkfjdT6JOd-0GFpo2qwJAE>UbK309Q`h4}Z>L07`*1(Xx zCa|Vwjj1NOCaGpm%`dgA*1LA^5&Mz7b)?Qwx4iD#x?6A69W8j<>+Rjg5{~`+hvV<0 zzZ?AS=f_RQSN_rP$K`+g>5q5bt2>c!V(f{@C-P2IoLG8d{fQkX_MNCcas0%Y6Q7^B zapKmAd-b|{pZd=Aee1*Ohu5dnPp&VlpIg7OepCIf`UCZK_4V~<>#x<{s=wEuYw&64 z+|aintYLUVN<(@>c0*~y!iF^s+Zy&Y)HT#MoNc(&@NL8GhUP}M#(>7)#(|CY#)QVP zjguSm8Y>!CHg0R&(^%Dbtnp;y`NnIFKQ`WNB28XRflWP|Oij^ENlmFu)0zsK<~FTt z+SIhG=|EFmQ+?Cfrb|uVHr;M&KIwKc;AD^A{U3gE%E^T%x1X#&dFPK@Ant>GANqYbC+9L9{=?AXKtUFKHK}* zx1XndzUlL$pI`gJ`-{$BG+%VP7;rK8;=qdo|McypF#ONIwCd89OS>-}yma(ZD7Z*f4Y`- z?fA7j*Tb&QzP|MOxi3Aw9QWn1uS{QU`)b!$$G#Skr5gml82oA8RKhAFVC=wW0%FeB zD)(dsb0Jcu!x}mV=Qnbd_bUE}_kw@-%{07OhMZNL!Ju`pLaz(=zhfRmT4PQnd3d)R zG`g?{gPKewWrjk%$X}F7j zFlrW~IOknlSWiLh-~J#cLNFL=P6t^r;3TCREVDcajNhITf+;Y~0EXIOh-SFI1^pdV~w2cX^tfr3z_J}t0F4#9D2XA%$Z!&i^ZoIVmqe6r1Uwoilaa7INgXm_nedigh#J^~I+_JZ6jD-&x|)sp{fW$l z4$LD9V1>Vs93wB|yUUBoQds2Qg4Vo4-KabDpq>=Ru*n0`LcMVq*@wcM0y^tQ{b>ND zIQ!BbKEDEK5ba1i(ata|?n=ASU~-TAi*~0ya6+sn{CM@IeQ00Wk78Gz4y1$VU>ZtI z*NNxOunM4VEMgnG2K}1;nSMjR zrQgx-=@0ZrdJ`M^f1$VNU$FxHH+q}?o!+7Upm*s%=`ZxZ=so%`dY}GEo9P4ELY)jo ztBf(ubWG3S^pd$Tcjm!7;j^#}^JZ(2(Tf$%Xqn1wPEGcyakxP`&vRs=kU*;ynT!lGC-8_HtX zFgBdUvN#sc5?CU0uo2i5ONRfdQ7nZ$#zwO-Y%F`6jbr0kDx1L4*hH4jCb10m1e?sB zWK-BwHjQPnEH<5GvmBg*n!)l|J}Y1|Ss^Q8#jJ#tvRSN*m9q*~$!4=TY%ZI}=CcKC zAzQ>2vn6aPTgH~N6>KGYimhU+*&4Q%Jf4OYe8WQW*cR?TWyEjz;M*jwx< zdz&3&e_-#hciD0FNA?~&!RlE9Yh+FABs;}Uv-jB<_5u5leZ~r=7yU6~;F0sq(3cJd#vFq$hoC3SSzGi=B->`4lckFxi1N)KPWIwULuv_e}>}U2j zcANd3-C_S=ciBJLFYLeAJ@zklpZ&_3VYu7EoSbmV8RuNb_1wUX+>N_)5AMmmcpHur zx7>&OazF0R19&^$o_FAZJcxJXop@*7g?HuMcrfqId+-pmm@AH`Gn zV|+9p!^iT+`8b^FPURDL8lTA1`6T#OuZ6>gC$N`!l)Oz&@+V0hd5fGP%Sj_yP2S*B z$Z0;6Pb2S<6Fd_>ud?`bp3QT3E}y~kcs}+b{)^A#g}jIt^AcXlXYn$!o|p3qUddFXD^&626o#o?kY-vM9GOXRhb;hhdNS z?2?Mi>C~@(VmiKFrs%;9=NnR4YQfX8tBJ zqbw(R#reZN?Je{`!? zyoy^z45QWei&X{}XO@9j;u$=rc!qI|EPRP9{1~f(#;G)vsbIYNR=EN^$3JA9XZgdhS8A&ayee8n z45?~16$;R$iYl!TRXRbf(n_^TC&*G&%2G{GOI4`={e-go;u-o%@!MuX>oT>eY#lRB zkX2u)LeGg0DfFDvDm&N7klojhsl-~); zZ>9KEwA<`3dBh4@)oe1gpfNU4Nit^UDA03Ed0}RGo*FKB81@?9ih*9`ts+YP7IUnG zaVoUh+%t3Y^TTbCmPj=vUP6b}eMVX4>>Ol~<*wjSLJH4Cs7+o;$;`~G67>n?U8~9A zh00AQ!qU7qbQT7W>y*{ z6?|-7K99#WwmjcUN31a2TeWrv_&2?bQD_g$|liF)OIT^1hK z&k%*tGmrV{Z`URHtzg)Fn%1hr^pgL2EP$W55Z zq)4IJWU^RYp>VSnvS^`)cf+)_a4i&}g;c3Ve&Kd4Ez%W=(6B|g@F!^ZT)50(TE1p2 zH?x+TS z;gA{*URX68Rt-m(h9gYF5vJh?({O}oI3DsPOv4eTl_N~U5vJjY(5Q;g-iXlNh|u1M z(B80VRM|9IY#J>#jTW1hvrWs{rsZtYa<*wX+qInST6ygn4!efKuHmq2IP4k@yN1KA z;jn8sA~hV58jeT}N2G=$Qo|9c;fU05MA}r{2-kA6J9(70pPq|vPL)vU>- zIa1=cxuB%OCh4$AI&6{-o20`g>99#UY?2O}q{A-hu*){Zu8!Zs?2=b@$p^dSgI(gc zOT2c8*DmqeC0@J4YnOQK60hCiYO@|nNTkdwQsQ>ildCQwC2kiFTr#G;CuxY3G(<`o zA|(xxl7>i0L!>OboV$d@%Cg5w{IRm^v9j#35`U~Ld#vPrtfV_u;*XX1Vp&wKThJ0llbE#{y2$0PU4S~_~Ru0IEg<_;*XQ~<0Srg zi9cTAkC)|-m-yo){&n`K*4x8ecO(S~l7a+DL4u?pK~j()DM*wQBuWYrB?XC+f<#F{ zqNE^E;z^VgBuWk>${I+N_!A}mM2SC9;!l+L6D59!#P5*!9TLAo;&({=4vF6(@jE1b zhs5uY_#G0zL*jQx{0@oVA@Ms@{NW}Qe>jdYiP?O(NyQ&-Qt^kIRQ%y46@R!%#UE}` z@rRpK{Nb|I4L7Oy!%ZswaFdEZ+@#_UH>vo;O%lIZ;x|kDW{Kad;5R3#^Z_dO&52g! zeL#m{qB6`k%u&HaWvFkMqX74bt}&nc99Kw`&zz`gJfO@^)p*1uK2_rpSIP^hlowDb zFQ8IhK!x9cN_hd5@&YR51ysrlDCt!--khjvJfOs{YCPf+zpC+wOZ=+FBQEi)8jrZd zuWCHv62GePh)evc#v`uq+nlIsJfOs{YCPf+zpC+wOZ=+FBQEi)8jrZduWCHv62GeP zh)evc#v?BAs~T@kR5cz@sc%4uU)6ZTC4N=o5tsNAB>xj6{shT?Rp0TPCRIxT%^tb=Gb+n+vN4BOx^bW~+1peWXXlh*(vBNhg>7b4 zVtOoA_R7k0vPHoxCX2&RlwT~ClgcqMFV1$)nL8cRJ3Ou44_DY@F{y(hKuNGo608n- zkS+;U2R(>Of^806VSZVrp){u)Q%PMm7A$m$m1QLgjS*&x97Z7|hr1DGYq-iJvqfow zEM`n^a>^^Pz*doy?T(emoctMi6?tA2c~}!u!{wg2`LkVNuX2>ISl&=dVNuzNHcQFT z5vM_=S`b$-0xH!4sFc!?s5Zt9huT;JCg_SQ3k&thgEI>&JdzawQG-hBCW38~AFknu zc$;KbJEuOVEO&^Yr(8Kyla;k4HCbIR5@GLTZK+2@4ap+~Xd@N{lqs-?xrvwv_=rGj zTy4ZUjF_>8D{r}C5lU?Oyt4el!u;t9ULR#W3=1r-B~i~-Vc%BaGJ!eA9YU6$Su!_2 z(^GU!VeuxBr3^bP_uc9~T3}{lc8w3SU=37NiSl6XG9DNr`uZ@C`04t}HUn&nYVzTvBcj z2>=yyM9fW*NCb?zC6#3ggj968dV)I4uPeUx>OqmOiqUl zZg65XACOS(7M%DF(P6ij;pjQy#^A(Sw+%94K*X3OBYH#(HW_hOU-NOj=7F2;De|T# zA|CD32pm31Ouk68aLiq{h7 f!xVqK;&)toAOKPSL0YsOq5)l8(Mi<-0|@zVBZazQ literal 0 HcmV?d00001 diff --git a/docs/fonts/OpenSans-LightItalic.woff b/docs/fonts/OpenSans-LightItalic.woff new file mode 100644 index 0000000000000000000000000000000000000000..bc83d1db5f0d0af5c2df5b8800d71c15113494c6 GIT binary patch literal 76408 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 P5rQi;RN?+VO2Bkw literal 0 HcmV?d00001 diff --git a/docs/fonts/OpenSans-LightItalic.woff2 b/docs/fonts/OpenSans-LightItalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..21a92a7e8daf217e8d20e1ac47a121cfaf69a3a5 GIT binary patch literal 56508 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 WyQk>Bu8W{$Y({8bPdnCoRQ(q}PgYX^ literal 0 HcmV?d00001 diff --git a/docs/fonts/OpenSans-Regular.svg b/docs/fonts/OpenSans-Regular.svg new file mode 100644 index 0000000..067c09c --- /dev/null +++ b/docs/fonts/OpenSans-Regular.svg @@ -0,0 +1,958 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Digitized data copyright 20102011 Google Corporation +Foundry : Ascender Corporation +Foundry URL : httpwwwascendercorpcom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/fonts/OpenSans-Regular.ttf b/docs/fonts/OpenSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a135120e09278fe233628c106b90e4a694e7e12e GIT binary patch literal 106252 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 literal 0 HcmV?d00001 diff --git a/docs/fonts/OpenSans-Regular.woff b/docs/fonts/OpenSans-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..bd0f824b207d6007f2164390dc9df31271c42119 GIT binary patch literal 63712 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 Op2f|bD7mmB;r|73w5qNE literal 0 HcmV?d00001 diff --git a/docs/fonts/OpenSans-Regular.woff2 b/docs/fonts/OpenSans-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f778f9c8455f265d05e653f5de4f4979fac4b4f3 GIT binary patch literal 47016 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∋s#G(qa{xP2;SUQbv8J^(f+0~0p5K8t*Ngc-7K6}3R&Ee3_Vq>#d zlneU*35~FcnR|9q)FU3o8s84ANXyMuve#eqzp?GHZvY_9j7|KO9~vCnt*hpXx9rniROyx+zJtg!XY>xP3= zPC;&R<@)i5XOrNU?-gcm6tIFv3Kb-NS{r}mGeqXs7-L$%yw7?PdluTs+too znt0$CGxEeKa!Kvtk8QSko`V!)`3XFBnN&fna0W0V+vKFYeNx_@yW8KZlMN`-d40tl zla2ohBk*8ET=1xW%<>b*z@6^6%ZMyIAMF~9(mNWWFs!p348*hIK!RsGqkQrP+Ing@OSkn34dPtzE%6#|%cvx$EYA-;#M2$EAka-5LW1SMlVB z-$BgrSa>u$FeCi+mV45 z$LMt~6U$pV*{)emqe)9X7v>Wr5Ari!tHzVxh=>&jwWv^n4#c%c^GB1NG_Xw);*U75 z*;UW;Sl#@A;qwRBTQ))cIcYr*Iq|g2Nn>fI>0;c%F@GJd#_7v2aFWHP4<-Y8WT@~=Cdoe`k`s)lbD96>L70PPJZJuJ zXQkpPx75Wte3rWo>ppAal2rZ8%btK)J0PI|Yo_cyAJXm-$p9J5<6iXo9w3o<>teG>0UrtEBHLnG3og!)4?_?8q z0PK8YsDEhJT_@APAWd?ziYf|Q6Y$mG39ti$umdnv?&rA)aLF#5s%!rR?w+~ky^n2A z{qD?q+GBd!bf3EK#N~@y z2ky~vNeklKW+DpwC;6Pgs6 zu7yB^(6*Fm-49o}&_ScMw!DT#*svES91K9lhVQ9Fw?zpmQgeU1zsg!IY?aHsTc&0p z@X3Sq8YbtdcOny9lUYnpQc#k&Qk`-xstdz7cj?H6Gpte3h$L4U(of9Do)8(7@2OaZ zY=fnPk@We-k2jfd?G1y9k(=hs=-6wLtSROlQzzO}7cnvPdQBwL1IIrROF1HqWgoRi zPI7osm+_e77XUO{?2Peg(HK%CiIpzHXB#s$<%pLJ_bB8pF$Nv04rS08TQEiZu5va3 zqaS$8HGle`UL@mgK-qds}Krl08DQIxE%@%4Fv?M znda~~=D^f2D1IZ1Q}^*HqkN53x*AzEOgSBuaIavJ-n?l&7Nxf#ARX7whO``DI3$#_H&^y;p&0zQDNw2 zap$G|6%`6EjTJ}7PMMN3_?yVV$F}-*8o>e*xqOS|&a%4w^Kn-{;OrqXo7-BOPk0)+C2Opz%G8N56AjW&SNm$hZY6~~^ zZfXRE$!VqPD|vA!x019v7n5!SLt>^XDOAHnvnR87q8yU766k&Y)PH*_8=PfK%-Z*?2-y3q1%d59Q|I4l z(QACPCn8@jK+~MsoS1ZuGb-tT1r`9i(TT7HPhYoXfXQ(cX4Z0=rP14b+Mh|*EC-R9BY9=OlEo5BMZXgDlWp#=3py^!wlpc zp2y8nv_eQ%?EuB*3m_)L?zGdmhb|4HhZAdpDfjw;UR$F*YrH0}GY)ws(+!rIaejpY zlyIBgj?SB}Ze)(GptAifjJdH%QaHKgD>kx>vj^L?7F=I=v5yytIIMFwpxya#_y;yI zlxZoV+p)w`kDlW>LzEWDZyKS?EA26Jxl)_RN9mCmeyH*zIN%2YD-yXM@sB}yj{11; zJJzy1n@f!zqMdg8*n-a)2P~bRp~`rA*QVL>s2V%g4?@=zi@!7k_A>N^5|$PW1{F586enOn596>A^igVS@9rQSllBz>UI$ zacw>lGG0Yhu|0NUq*y!wF3Y$T-0?S-A$lZLwb0k*X~Y=u+V5R)E0S}A6I!qDt774f!rZjFzGYBA0;Fa3H<627#ni-^yBADWw z6|eP|@^Y3~Ze(pk`6L3R5^xnbP)SGyAv0!${2r&caC+E*Pnqzr>TN@}qRfJpgvY_b;A9B=e%UtbH5vF&9qfIO$1OGJ$qh zXZ6GM5r@+3AnUW!E^_wS;|e##YmvQ$6-yCai4}4okZ4ESM^jq zpu9vh6W25p&arIxEhS>tuPpbVzA{4m@*$3%8C@xSGG+`N{dfw4ISsHfEPEbf@KUSt zPzDu-eAd=!LuRVAW=K5@%S5RmW+yC?H5zT`gBxNs{D#3TNgX5*?s;IzSzW(eQ&fSZ zvar_a4e2C6Zbz_g=iyFSQ~m6_(=Vd6zVXW~0OMk>wPz&c8QNHn+*DYEP=GZ||7Wmo zH|Y=E{624faaPtW;UyTa2eu4Hc!j=YlFG-MoRuAojV5(zCI<05qaQW!(nq>708vcK zQ9rGOZ5(0!y)cF_k8*rmG;fB6Dj+GFv0?Z=4GN$7L<~e?s(W>kwuE#J4ZFJrqI5|$ zKFP|AM%oO|7b4T`5@ycSif7do7_~th#PI@bq+?)EX(c&CBOa_$(nQLP<4~=EsIL@T zF0-&U_K5im8YI$w*c+ktf4#Yl5pMiI` zn1yB?VsgiwLY3(|rtogGw0%>RGA(km;Typy*xCaL{F+#qBZ^V4HGS(Hqa zh(@U5L+O?UQJ6JL64xe4fd8}PW>d2dF=J|SvKJe~jaY?~y7K6ftY8emcvQ=;MSn>h zA~YAf&KFHQ^?WjRvyvI#(==L%>dD>iXPJv0Me;3kXz0ny-IxWb9B*J%Y~x5|V6?vH zC?46N=0jydTc4qbC#s_;FI4CE>HMm`Dw55rg*#V*Ob?Tu3oiF76@e=D`F(9g`Ec|X zO=tRWY|{zs2{XszlpgQ_GgHU1@{ls<(CzHpDv!*$vD==7yV0`31hcN#p4^>g)m1)9 zKo&PVLj!y`cy?%A;s)Xr!z-Fu?~b>xz<19R4^%`kBs_UN%_2Md#DIb^kRikBgfNgbU1GhL5osihasYmx;Y%e~czi^!4uIWafJHDziqorBW=r_06iyw+KFXr*D zm20IUZI!9elT5J|pOjtYj0dZmz(ot>cL)2^>*Ks$x5ZA(anJ0*4Xi!2RrvbccMN~| z-EV@rAQA>ZMoGN4UNaPS1R4lI%rEU$tGax$tak$AFYQqE4J~VpOg5;qLO~pD zq^g^Ur}hJ9%B1|p%dia^r*lz!+F=?Cd=qr7l0PRs$0j0vI={)4k-;Y~L<*HcFb0sR zsW0(K~Swk60udQ>_vd2`>kmZ_rXjXouykCctixi&u;$NvBp5 zb)iOI98V@0r~JS+^+EO-BF2tab|s*ksW!f$8jIo0m4jIx5ceiB%aj~eB}3Q3Fa#5%v%d#M}`wxp1hdOCXgdQF9+ zfAomrFi^R$+e_|m)Z-yK3ZC)0!n*109EK8NW`(b!B>Dfhe|$B62J{641j`s!L0HVt zYg%VLVVZfKlQ8`+KvDBM^KW1*B8BYuGHx6ufD-Ak{PqKghU7)ZxD{^fS5Gx+op<7FFk^*l5^UaP$(sU2V3=Zbt}8M^=Qd$kpDk{&j8mO+J*LPX!?+=POu=iCc-{ z^I1LB9qZ8JnuLAuiT#B1;B#Cd6T5>*ILw;t}!%5R9<#e75a*9>84n(#GOppn~qqqk9 zBVPpZ-~#GkdPl@^!V+$jr1~99R;c`_d{7nncf=b#O1EAV%g0nc?(Eo5sGU63vLa7< zkkd_ChJKPsM2PHV_s|@^1D50PJi}t#)cc)kNH*N2J%!174b&Hv&|+3%ZR`iD`i&H~ z)+pBRCv2VD@piA;x1^ni`nIwLB8|7jA7IB|xWx$9&u$0)=jDiDm)CI+pQS%y`5F>_ z6|g7UmUe|;GL-+$V>hIrLc$whzdE*_sdAlIO^X4`cPWIT-eE^+O=TRBqj4RoRs zm>Bgv686CZv;D|T#<}_rj~@=dNiQeSAFX;Yru7P`MsRCxoj4dV)`G|bp=&ut;h&r1&Qy^XovKVIHnRtBCouFmhD-MzKcKhVT9 ze-7@-#iJK5@89la?pGY!Yus>n3*cFAeib~&)_#$oD%GC_2ZIMpDDe|5!Ia=9nb51k z6fOxT#n9Mq>*Br@D_d=Pai2H9o#xX|`x951X(}7U*2OgTJ5h%jv-iW4tGEe9lz0&NDAT2t*5fwxXl*X=;-Kwx&t&X_~ zDT@&(7!%TQm|xpNPMlxvt3}xP@{KcY(jqxnGCE{^Y=oecre-QqlvHgl{Ax2I49b=$ zt5GI#`%v2fCqmRlr*J#E5}S9a6nWiV`Dj9!*Urq|s*EXG%+>W*h7}?Gyo+l4x4|ON zCrqy!207ZH@(eRDA!yia5TQp~z|9IPSeg`p7AaQG8zwVeqNws|G%>#i&uUY+xm>E- z1A5xgAMb@ue{~wycK?qr*G`r)44>Wo{qwbxMN4pwOMn*% zsg<|AMn6=?_IC(6_UIvRp84;}@xx?MGmYyF@V@trHO}z~@BxWVv1bgmaBw$1ZfUDA z!ia5r1MtaU9#_}@^Q$D8$R6(me|c>kQE2e(1KuD*UEwJG>qlj{V!u@e^cu_NW7eip z8c3R%y(-{Au-A6^$p#wM4z(F$T(7l%RVO5qBx80A2hT|5$M5e6Olj+D#}328js@@1 z;6Bps{1G1bnXjN9Mxo~c>~6x&9l^)f;8Q9*wdDmG_06~6{|Arc<>Rlv`}a@Rd0A+$ zy#1rEU|#k7e2a<4T=mB6p5}+~?iG;T-3f|!4nU5F9(@)>h#LEPZVXQ0VCxxNm1|F? zU+?;MTWfYR1Rc7QC!S0MfQe}sX{};1+d7lBffI8g3>NW$DOKqD67E<&K7_^^p%|6U z9YGF-pi-6>T`Yp6K8C;2e4ZaNHB5nl_7NSVPGf^inBDyjb^jzv;k=S6KJNzq0$>r1 zqt{}yLj^$uce#|~0is9_D8-HJS&A^l%J$(Fj7C;G3lU2Y35|HMl3;0TOGmIV{h?9^ z^$COa=Ki)+wEOu$5U)YZY712VmW}d!9hMFf+r(D&i(c1Cy|uzwIkQCGs^`1q;a+BN z{r<{~(ffgBoSjth7a84Z|W`uj$j1 zf%1PP#VVa1EZDESdkJgREk-u}exO|4vQPiY2NO<(a4Be>6$as_57#S#e9neLpXwFoYe>wf*00j2a<#wy&;uPMkb zG8xN{6C~3r@&ob|w;w*urNnKnc9@u^;i@$>^E!9si=*alom{2S;Wy_^6790ssKpPj z4>!c^jAAz*qlxf1JP<`Z@F+pUF7T!b^VR6k_tz*rOm_~-TV z&D<^L%a0Mn6q7@ixkJ+5Ax+9;v@Osd&TeRe^{cIVjQy_oSU(isu(Xje630Y$K<}PC z;tTsKdpNZ#eF0gGJ@7CBu~%gXp>M&mB2}!Y*CK#*?eaDNCi{?ag{QK!&Ng#yn{-jc z^=Gt0^tq^J&3$1d%R0Si@=UI2p#dG<-_;>ExMNHHf&ajinh{W}_MPefp85>FEI`ly z@0vR5+1;P0;PcKusSWhglyz;t+Y{YQ zslXZKhj*Nxluob45$c=!uvcX#HpZ;X%yL+zYx;IYSqN}+x3DcU9d%K5_qk)gtd zJ2O=t#G!=5Caqa-l=$H6b7KyLICYEDWt~zAa-FS*Jy_v5aZ{eoY0iS{kWLs24FHa` zP#H8*uS(^oUx<<1uiYOMu7gc5GmG?9#O+Fg;Io{#Of1CAA%_VsALd_33eV}cUN=(m znTpk9{6OoFz7C&B{M*YL1_3RWikui06#7RDX2G5~YToHXT9>-RsXjVT7Z%X`u-8I< zv~U$oly#=){VPK}=#H-+0o4CPr%>f0`C)`@bS@yH;?{cNTqlxR)doLOkJOi{I#|9+ z)7=zmz7jS1`}KXG9s~)X7_dGlUe9@wagmH73Hy(XeF!n3`xc5{k(#eWsZJC13F5|K z{x##l>!50J<~`@Rdk_h<7&`1jhym0ua190rl!```4R@Aa9ja5Peq-xMq|E~i0$2y_ zv^sj%Srl_f1`5+y(OXp6WcJ(6VH?(9iZKm4vNMa{iWvnPUOpaV(drz^rXC{97o&y= zuW-pzxuo`>Qzmm#?@tf0Y$Q#EKzqfWUUCXSscUK6gWThXBOoZbN$(y>9E;Ua&51iQ zQ6Q^)OXds%N1etE0gxk)V;AY3@$?`GJ6n|?Nkm0X$6#2yQZNhP2%rsRi;=Zr+>&F$ zW31Rm z;DoW5X3lEVj}l`%+k_`H&%VyMC`rSwDp&+h3OdXk@;yCXHIlJ;X`*(k>hJRmn!pIc zSGt*+NFko9kNE5P+AxKiFO`op|47L;6JA+ax>;JrnnH)K2lA^FvWwTB^eN_DJXX=tkO!q?hEjV{Sp|({$k? zk2K;_M{qLZBbmiDLn~_1VPR;C@jeB_lP(?e28Pu`XEeZ?IacN5Lh z>Kv>z$c9*1e7&jnM>n#^aBeCzRs)s3ng!)GdQx?@8^kU(kHg~IjLI!!oPa%2mY7i$ z-UgqCB^!H50@d^AjwS8mVEbswx$TU>o0h3t9UFF~*3JUrB`MV8%*o!-NV zl!Q^PdF7{nB@931Xi&$y?sKv_T$kGs2**f6ZD`#c%5w)*($XlsF-*9f%E^OXw4xb@ zwXm$g7IIgvtj#8}D>(u~4rCg>Nq`=pTX{zR=P=twfPXbEfzuE4Pe14yB96BKem)IX z-k-Hhfa?mn(o9gws&@i~+rb{u2)wd-edk^93A0{zj#%WTaWPcteM=sc^5^e71?D0# z7{-)L!irg8E8AjDW|p?D>H2rVXL?d;`*b7Wd&H@*#I9$dzIb^o6MVS^|NC9~%Mte@>o~*YL%c_|)LITA zW`PupByc_P>-I>kH%>9jJ=>oK{2zz(q>N(xukjTZsq0>99?a?k7j5o=E(Q7{kShUW znZw%(tPc;cOg{Z>4NNKWwgD{Br*CUvG{yL8&?Ozdqtm8UVV&=~gN>EosurEQ32f%F zmESfW%ux||3$g{)kh{`NuUsC1GOk&xRXdxGX=~eTT_7&iwrO?9S2t2NXbCiESv@?# zz^0W)yB6E{bTtdR&rj6ZParenv26(4Z2`G_zGNWTX*Y6c3o7we1bibjnO0w}jZ2;a z6$}5O*2xi*g5H0tftv@^wpq=lJT}V1JZ$zaUJ`6B zx$LU{nsCJ&yGhqv_x>n*?mObG|C!?Oy&oO)Oq(s7+I5I{$!+Utu=O6DynMd1-41>M zK`%I|M4}h%1Zn2bey6|Ud#0M!ML>qx;p1P9IpzcZ7c7?2EX^-eu2*Y|OUo;fAAZ(X z8*A$uH=3KDFbk{Q*^aw@nR-ZiyLo7=nlhsUSzJQ~MIRj27}zG$4;Emv!I{U;;m_T}~M{p0iN zdozSq?cev$@1JS;H|uu1HaZppv3MexN@udUe4$t>SE{voqlwaLce=g)U^p62rnC8C zxms@&ZFl>_@pNu<(!V8c_s8?~{(OJ(|AHX}|B+}co=B$BnQSg!D3;2VYOUUAw%VO; zuRj=$#*^u6zF4l-o9%9YIG)az>+Sw{zTThjuU_~AQm8aKgJiPU94?O^Kv9zO1!Y~; ziluS|=~bgvZ)}*&mSsC_>~@IP?ezzKFdU61)7cyVAs9h1oFFNhVL4t9C0S85-7qcN zaXmi>qc};kyeO->X}f+Hr+Hbo)A@3}-5<{v075W=VmLukG{bVdAWE{LYPw-sw&Qw! z5Jqv5W_eLob<=kJFi!KbZu@aw_w#-~5P}gD!wHh28J6P(QIZu^(+$(I9oO@NFp85j z%bWP10IIrayM7p_d0DspIIsJ8KUl>;7pu+gFr6;9$LsSG`&}l)luK=WnwNFkkIVJE z-5<}_+xy3-&tJYu?RJRQ?KKUkjURLyPnrod>3JX+3P+-`xU8*II+M-i3&m2oQmxe+ zO-!{N+gR8-JL=TylB8W4dKcZjzGf}mHTD>dC)3${vGl!KZ??Pr;RrtT+(4ml+Y`)a zI9MN*LBT7R@!a92%-xq)G%E)!UOGGW!mNq;lg9i-dmN@0`K<`u1TeTd7v06g5n05fYO?4U_UR`pb(9 zFOIhvp8aj05?a-_v}}&u=vy3}q%Y zNEtQ&^B-dacjFFg?l<&=**r8G8!8?$8v_5Ybf{0gfjxHx=aF)$rW5|GPEArZo0vK> z(*e-9@zjLLCN)d8HJ#DWt$W3v&1cZEIkVwBv}_Lc17u!Hy%8IJKb>orvJIQhJF{-Q zl$2icl2Z@wr9TYX)aLwhRs^Nj;<{Gla6sMcRb*X0a z2UpXJ_)9rlqUqWdmHB^t6lqx-m&Sw^ophz4$jR?F*nNl)j5$!DghZ51Dx;gafoS_0 zlGEj6Sjc4+*ZdrDJsK9cZQXY{%Euw^>AQFU31HuW@u>NmYUsfNndvn0j~hrA?ss@l zU%p>gxb*F1(A^a=uK$3`h`fn5WJ=o(-V9DA!3J-nrRN2Aj~bas?)tSeD7PX|`j!M$ zEn$gn^L3I5MI4}Ks?L!Zl?Fp~=!1927AQGcAqTT^BgVS{uhxb(J0nPR$!px7N_?YD%q+OfBU7iMGeK}DJ(n2@)i&4;j=PXSzHvNl{U6y;LQ;bCSE~v2O*U<_TXM>Z)~mD zv>+D~kFxa;A(b|^^p;XeDP_wVG+LeBU^EqPrIb=iDW#NBN-3?i)>><=wboi|V~jDz znEiP$2A5XdULPBbrs8g`wbokOwgGLOthLrU=bUrSIp>^nF7BoT0EjU0DC0sZZEOLA zu)|X^$u@UFWIkQZbon#>DZNI!%Rgbd>kuw~y&J-7x*F0t9uqRTLa9<~v^u@PXo@*| zPRQg6rAn>Q>huPqDdrqFA(JbVDz!$d(;JMYm~-TWOs-I>)Ecc$Z!nr-&WRH;xk9N@ zYqUDO!Dxy(XMQc{de!dSqiWeJT%}5_S#ds@3l66le?aCgM3{J#aUr7;;Zyu2w4D}L zaJT2~6z2r~zq6usi)nmtRcU3-fp0Kwt;3b*9vv-6zfpM?7o*n@Z;OH*bJchHE=~jD zQO3mw=jUXBmgs(id>pghd||DT@1_#;Gt@k-pLJ(W`5EX&5X4{951T{oaNruUL6qC= zxFy{z<`Wku^cW`%?rDEHcsDcY-ZU3ya~~5jc~_{{nV!TWbKJpsl+ia{l3MOvrQw4w=g636mM+GLey0#xvqF zTQXeM>xk>4VnSD53{ryc4g6os2Qka|-pe(Tv#*sKJ0vy_u(8QPWVZ?e8-D|2!)Nd; cLTeva_0ByU?EX`n?D0G<=4_SAXtMwS0CZ8%!~g&Q literal 0 HcmV?d00001 diff --git a/docs/fonts/glyphicons-halflings-regular.eot b/docs/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..b93a4953fff68df523aa7656497ee339d6026d64 GIT binary patch literal 20127 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/fonts/glyphicons-halflings-regular.ttf b/docs/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1413fc609ab6f21774de0cb7e01360095584f65b GIT binary patch literal 45404 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 G`u_lkUM?>H literal 0 HcmV?d00001 diff --git a/docs/fonts/glyphicons-halflings-regular.woff2 b/docs/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..64539b54c3751a6d9adb44c8e3a45ba5a73b77f0 GIT binary patch literal 18028 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 literal 0 HcmV?d00001 diff --git a/docs/icons/chevron-down.svg b/docs/icons/chevron-down.svg new file mode 100644 index 0000000..0ba78a5 --- /dev/null +++ b/docs/icons/chevron-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..77bdedc --- /dev/null +++ b/docs/index.html @@ -0,0 +1,270 @@ + + + + + PixiJS Spine + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + +
+

Home

+ + + + + + + +
+

@pixi/spine-pixi

+

This repo is a port of the @esotericsoftware/spine-pixi runtime to PixiJS v8.

+

Once all features are ported we will look to add this into the esotericsoftware repo.

+

🚨 WARNING: Missing Features 🚨

+
    +
  • Ability to set dark tint
  • +
  • Debug renderer has not been fully tested so YMMV
  • +
  • iife bundle not tested
  • +
+
+
+ + + + + + + + + +
+ +
+
+
+ + + + + + + + diff --git a/docs/scripts/Apache-License-2.0.txt b/docs/scripts/Apache-License-2.0.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/docs/scripts/Apache-License-2.0.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/docs/scripts/bootstrap.min.js b/docs/scripts/bootstrap.min.js new file mode 100644 index 0000000..1a6258e --- /dev/null +++ b/docs/scripts/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.0.3 (http://getbootstrap.com) + * Copyright 2013 Twitter, Inc. + * Licensed under http://www.apache.org/licenses/LICENSE-2.0 + */ + +if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]'),b=!0;if(a.length){var c=this.$element.find("input");"radio"===c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?b=!1:a.find(".active").removeClass("active")),b&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}b&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); \ No newline at end of file diff --git a/docs/scripts/jquery.min.js b/docs/scripts/jquery.min.js new file mode 100644 index 0000000..9a85bd3 --- /dev/null +++ b/docs/scripts/jquery.min.js @@ -0,0 +1,6 @@ +/*! jQuery v2.0.3 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery.min.map +*/ +(function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p="2.0.3",f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("DOMContentLoaded",S,!1),e.removeEventListener("load",S,!1),x.ready()};x.fn=x.prototype={jquery:p,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:T.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},a=2),"object"==typeof s||x.isFunction(s)||(s={}),u===a&&(s=this,--a);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&&x.isArray(n)?n:[]):o=n&&x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&&(s[t]=r));return s},x.extend({expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(o,[x]),x.fn.trigger&&x(o).trigger("ready").off("ready")))},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=undefined}return(!t||t.getElementsByTagName("parsererror").length)&&x.error("Invalid XML: "+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,"ms-").replace(N,E)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&&(j(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if("number"==typeof n)for(;n>i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(a[a.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(a[a.length]=r);return f.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,x.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),"complete"===o.readyState?setTimeout(x.ready):(o.addEventListener("DOMContentLoaded",S,!1),e.addEventListener("load",S,!1))),n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,p,f,h,d,g,m,y,v="sizzle"+-new Date,b=e.document,w=0,T=0,C=st(),k=st(),N=st(),E=!1,S=function(e,t){return e===t?(E=!0,0):0},j=typeof undefined,D=1<<31,A={}.hasOwnProperty,L=[],q=L.pop,H=L.push,O=L.push,F=L.slice,P=L.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",W="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",$=W.replace("w","w#"),B="\\["+M+"*("+W+")"+M+"*(?:([*^$|!~]?=)"+M+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+$+")|)|)"+M+"*\\]",I=":("+W+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+B.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=RegExp("^"+M+"*,"+M+"*"),X=RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=RegExp(M+"*[+~]"),Y=RegExp("="+M+"*([^\\]'\"]*)"+M+"*\\]","g"),V=RegExp(I),G=RegExp("^"+$+"$"),J={ID:RegExp("^#("+W+")"),CLASS:RegExp("^\\.("+W+")"),TAG:RegExp("^("+W.replace("w","w*")+")"),ATTR:RegExp("^"+B),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:RegExp("^(?:"+R+")$","i"),needsContext:RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/^(?:input|select|textarea|button)$/i,et=/^h\d$/i,tt=/'|\\/g,nt=RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),rt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{O.apply(L=F.call(b.childNodes),b.childNodes),L[b.childNodes.length].nodeType}catch(it){O={apply:L.length?function(e,t){H.apply(e,F.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function ot(e,t,r,i){var o,s,a,u,l,f,g,m,x,w;if((t?t.ownerDocument||t:b)!==p&&c(t),t=t||p,r=r||[],!e||"string"!=typeof e)return r;if(1!==(u=t.nodeType)&&9!==u)return[];if(h&&!i){if(o=K.exec(e))if(a=o[1]){if(9===u){if(s=t.getElementById(a),!s||!s.parentNode)return r;if(s.id===a)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(a))&&y(t,s)&&s.id===a)return r.push(s),r}else{if(o[2])return O.apply(r,t.getElementsByTagName(e)),r;if((a=o[3])&&n.getElementsByClassName&&t.getElementsByClassName)return O.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&(!d||!d.test(e))){if(m=g=v,x=t,w=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){f=gt(e),(g=t.getAttribute("id"))?m=g.replace(tt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",l=f.length;while(l--)f[l]=m+mt(f[l]);x=U.test(e)&&t.parentNode||t,w=f.join(",")}if(w)try{return O.apply(r,x.querySelectorAll(w)),r}catch(T){}finally{g||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,r,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>i.cacheLength&&delete t[e.shift()],t[n]=r}return t}function at(e){return e[v]=!0,e}function ut(e){var t=p.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function lt(e,t){var n=e.split("|"),r=e.length;while(r--)i.attrHandle[n[r]]=t}function ct(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return at(function(t){return t=+t,at(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}s=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},n=ot.support={},c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:b,r=t.defaultView;return t!==p&&9===t.nodeType&&t.documentElement?(p=t,f=t.documentElement,h=!s(t),r&&r.attachEvent&&r!==r.top&&r.attachEvent("onbeforeunload",function(){c()}),n.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ut(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),n.getById=ut(function(e){return f.appendChild(e).id=v,!t.getElementsByName||!t.getElementsByName(v).length}),n.getById?(i.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){return e.getAttribute("id")===t}}):(delete i.find.ID,i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=n.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.CLASS=n.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==j&&h?t.getElementsByClassName(e):undefined},g=[],d=[],(n.qsa=Q.test(t.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),ut(function(e){var n=t.createElement("input");n.setAttribute("type","hidden"),e.appendChild(n).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(n.matchesSelector=Q.test(m=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&ut(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",I)}),d=d.length&&RegExp(d.join("|")),g=g.length&&RegExp(g.join("|")),y=Q.test(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},S=f.compareDocumentPosition?function(e,r){if(e===r)return E=!0,0;var i=r.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(r);return i?1&i||!n.sortDetached&&r.compareDocumentPosition(e)===i?e===t||y(b,e)?-1:r===t||y(b,r)?1:l?P.call(l,e)-P.call(l,r):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],u=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:l?P.call(l,e)-P.call(l,n):0;if(o===s)return ct(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)u.unshift(r);while(a[i]===u[i])i++;return i?ct(a[i],u[i]):a[i]===b?-1:u[i]===b?1:0},t):p},ot.matches=function(e,t){return ot(e,null,null,t)},ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Y,"='$1']"),!(!n.matchesSelector||!h||g&&g.test(t)||d&&d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return ot(t,p,null,[e]).length>0},ot.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},ot.attr=function(e,t){(e.ownerDocument||e)!==p&&c(e);var r=i.attrHandle[t.toLowerCase()],o=r&&A.call(i.attrHandle,t.toLowerCase())?r(e,t,!h):undefined;return o===undefined?n.attributes||!h?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null:o},ot.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ot.uniqueSort=function(e){var t,r=[],i=0,o=0;if(E=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),E){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return e},o=ot.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=ot.selectors={cacheLength:50,createPseudo:at,match:J,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(nt,rt),e[3]=(e[4]||e[5]||"").replace(nt,rt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ot.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ot.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return J.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&V.test(n)&&(t=gt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(nt,rt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,h,d,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,y=a&&t.nodeName.toLowerCase(),x=!u&&!a;if(m){if(o){while(g){p=t;while(p=p[g])if(a?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&x){c=m[v]||(m[v]={}),l=c[e]||[],h=l[0]===w&&l[1],f=l[0]===w&&l[2],p=h&&m.childNodes[h];while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[w,h,f];break}}else if(x&&(l=(t[v]||(t[v]={}))[e])&&l[0]===w)f=l[1];else while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if((a?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(x&&((p[v]||(p[v]={}))[e]=[w,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);return r[v]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?at(function(e,n){var i,o=r(e,t),s=o.length;while(s--)i=P.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:at(function(e){var t=[],n=[],r=a(e.replace(z,"$1"));return r[v]?at(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:at(function(e){return function(t){return ot(e,t).length>0}}),contains:at(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:at(function(e){return G.test(e||"")||ot.error("unsupported lang: "+e),e=e.replace(nt,rt).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return et.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},i.pseudos.nth=i.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[t]=pt(t);for(t in{submit:!0,reset:!0})i.pseudos[t]=ft(t);function dt(){}dt.prototype=i.filters=i.pseudos,i.setFilters=new dt;function gt(e,t){var n,r,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);a=e,u=[],l=i.preFilter;while(a){(!n||(r=_.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=X.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(z," ")}),a=a.slice(n.length));for(s in i.filter)!(r=J[s].exec(a))||l[s]&&!(r=l[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ot.error(e):k(e,u).slice(0)}function mt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function yt(e,t,n){var i=t.dir,o=n&&"parentNode"===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,a){var u,l,c,p=w+" "+s;if(a){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[v]||(t[v]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,a)||r,l[1]===!0)return!0}}function vt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function bt(e,t,n,r,i,o){return r&&!r[v]&&(r=bt(r)),i&&!i[v]&&(i=bt(i,o)),at(function(o,s,a,u){var l,c,p,f=[],h=[],d=s.length,g=o||Ct(t||"*",a.nodeType?[a]:a,[]),m=!e||!o&&t?g:xt(g,f,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&&n(m,y,a,u),r){l=xt(y,h),r(l,[],a,u),c=l.length;while(c--)(p=l[c])&&(y[h[c]]=!(m[h[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?P.call(o,p):f[c])>-1&&(o[l]=!(s[l]=p))}}else y=xt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):O.apply(s,y)})}function wt(e){var t,n,r,o=e.length,s=i.relative[e[0].type],a=s||i.relative[" "],l=s?1:0,c=yt(function(e){return e===t},a,!0),p=yt(function(e){return P.call(t,e)>-1},a,!0),f=[function(e,n,r){return!s&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>l;l++)if(n=i.relative[e[l].type])f=[yt(vt(f),n)];else{if(n=i.filter[e[l].type].apply(null,e[l].matches),n[v]){for(r=++l;o>r;r++)if(i.relative[e[r].type])break;return bt(l>1&&vt(f),l>1&&mt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&wt(e.slice(l,r)),o>r&&wt(e=e.slice(r)),o>r&&mt(e))}f.push(n)}return vt(f)}function Tt(e,t){var n=0,o=t.length>0,s=e.length>0,a=function(a,l,c,f,h){var d,g,m,y=[],v=0,x="0",b=a&&[],T=null!=h,C=u,k=a||s&&i.find.TAG("*",h&&l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&&(u=l!==p&&l,r=n);null!=(d=k[x]);x++){if(s&&d){g=0;while(m=e[g++])if(m(d,l,c)){f.push(d);break}T&&(w=N,r=++n)}o&&((d=!m&&d)&&v--,a&&b.push(d))}if(v+=x,o&&x!==v){g=0;while(m=t[g++])m(b,y,l,c);if(a){if(v>0)while(x--)b[x]||y[x]||(y[x]=q.call(f));y=xt(y)}O.apply(f,y),T&&!a&&y.length>0&&v+t.length>1&&ot.uniqueSort(f)}return T&&(w=N,u=C),b};return o?at(a):a}a=ot.compile=function(e,t){var n,r=[],i=[],o=N[e+" "];if(!o){t||(t=gt(e)),n=t.length;while(n--)o=wt(t[n]),o[v]?r.push(o):i.push(o);o=N(e,Tt(i,r))}return o};function Ct(e,t,n){var r=0,i=t.length;for(;i>r;r++)ot(e,t[r],n);return n}function kt(e,t,r,o){var s,u,l,c,p,f=gt(e);if(!o&&1===f.length){if(u=f[0]=f[0].slice(0),u.length>2&&"ID"===(l=u[0]).type&&n.getById&&9===t.nodeType&&h&&i.relative[u[1].type]){if(t=(i.find.ID(l.matches[0].replace(nt,rt),t)||[])[0],!t)return r;e=e.slice(u.shift().value.length)}s=J.needsContext.test(e)?0:u.length;while(s--){if(l=u[s],i.relative[c=l.type])break;if((p=i.find[c])&&(o=p(l.matches[0].replace(nt,rt),U.test(u[0].type)&&t.parentNode||t))){if(u.splice(s,1),e=o.length&&mt(u),!e)return O.apply(r,o),r;break}}}return a(e,f)(o,t,!h,r,U.test(e)),r}n.sortStable=v.split("").sort(S).join("")===v,n.detectDuplicates=E,c(),n.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(p.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||lt("type|href|height|width",function(e,t,n){return n?undefined:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||lt("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?undefined:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||lt(R,function(e,t,n){var r;return n?undefined:(r=e.getAttributeNode(t))&&r.specified?r.value:e[t]===!0?t.toLowerCase():null}),x.find=ot,x.expr=ot.selectors,x.expr[":"]=x.expr.pseudos,x.unique=ot.uniqueSort,x.text=ot.getText,x.isXMLDoc=ot.isXML,x.contains=ot.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&&[],l=function(p){for(t=e.memory&&p,n=!0,s=i||0,i=0,o=a.length,r=!0;a&&o>s;s++)if(a[s].apply(p[0],p[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,a&&(u?u.length&&l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==r&&s(n)})})(arguments),r?o=a.length:t&&(i=n,l(t))}return this},remove:function(){return a&&x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))>-1)a.splice(n,1),r&&(o>=n&&o--,s>=n&&s--)}),this},has:function(e){return e?x.inArray(e,a)>-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!a||n&&!u||(t=t||[],t=[e,t.slice?t.slice():t],r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=d.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r>1)for(a=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement("input"),r=o.createDocumentFragment(),i=o.createElement("div"),s=o.createElement("select"),a=s.appendChild(o.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,x(function(){var n,r,s="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",a=o.getElementsByTagName("body")[0];a&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(o.createElement("div")),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,q,H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(x.isEmptyObject(o))x.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){var r;return t===undefined||t&&"string"==typeof t&&n===undefined?(r=this.get(e,t),r!==undefined?r:this.get(e,x.camelCase(t))):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(t===undefined)this.cache[o]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):(i=x.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(w)||[])),n=r.length;while(n--)delete s[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}},L=new F,q=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||q.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return q.access(e,t,n)},_removeData:function(e,t){q.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&&(s=L.get(i),1===i.nodeType&&!q.get(i,"hasDataAttrs"))){for(n=i.attributes;n.length>o;o++)r=n[o].name,0===r.indexOf("data-")&&(r=x.camelCase(r.slice(5)),P(i,r,s[r]));q.set(i,"hasDataAttrs",!0)}return s}return"object"==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&&t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r,t),-1!==e.indexOf("-")&&n!==undefined&&L.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(O,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:H.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=q.get(e,t),n&&(!r||x.isArray(n)?r=q.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t) +};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return q.get(e,n)||q.access(e,n,{empty:x.Callbacks("once memory").add(function(){q.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=undefined),e=e||"fx";while(s--)n=q.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n\f]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,i=0,o=x(this),s=e.match(w)||[];while(t=s[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===r||"boolean"===n)&&(this.className&&q.set(this,"__className__",this.className),this.className=this.className||e===!1?"":q.get(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(W," ").indexOf(t)>=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,x(this).val()):e,null==i?i="":"number"==typeof i?i+="":x.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace($,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,u=0>i?a:o?i:0;for(;a>u;u++)if(n=r[u],!(!n.selected&&u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&&x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.bool.test(t)?M:R)),n===undefined?i&&"get"in i&&null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&&"set"in i&&(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+""),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return o=1!==s||!x.isXMLDoc(e),o&&(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)>=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var s,a,u,l,c,p,f,h,d,g,m,y=q.get(e);if(y){n.handler&&(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&&x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||"").match(w)||[""],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||"").split(".").sort(),d&&(f=x.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=x.event.special[d]||{},p=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:g.join(".")},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,f.setup&&f.setup.call(e,i,g,a)!==!1||e.addEventListener&&e.addEventListener(d,a,!1)),f.add&&(f.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,p):h.push(p),x.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,p,f,h,d,g,m=q.hasData(e)&&q.get(e);if(m&&(u=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){p=x.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=u[h]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;while(o--)c=f[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,p.remove&&p.remove.call(e,c));s&&!f.length&&(p.teardown&&p.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&&(delete m.handle,q.remove(e,"events"))}},trigger:function(t,n,r,i){var s,a,u,l,c,p,f,h=[r||o],d=y.call(t,"type")?t.type:t,g=y.call(t,"namespace")?t.namespace.split("."):[];if(a=u=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!_.test(d+x.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),c=0>d.indexOf(":")&&"on"+d,t=t[x.expando]?t:new x.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!x.isWindow(r)){for(l=f.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&&h.push(u.defaultView||u.parentWindow||e)}s=0;while((a=h[s++])&&!t.isPropagationStopped())t.type=s>1?l:f.bindType||d,p=(q.get(a,"events")||{})[t.type]&&q.get(a,"handle"),p&&p.apply(a,n),p=c&&a[c],p&&x.acceptData(a)&&p.apply&&p.apply(a,n)===!1&&t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||f._default&&f._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&&x.isFunction(r[d])&&!x.isWindow(r)&&(u=r[c],u&&(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&&(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(q.get(this,"events")||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&&!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)o=t[n],i=o.selector+" ",r[i]===undefined&&(r[i]=o.needsContext?x(i,this).index(u)>=0:x.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return t.length>a&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||s===undefined||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,s=e,a=this.fixHooks[i];a||(this.fixHooks[i]=a=z.test(i)?this.mouseHooks:I.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new x.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=o),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,s):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&&this.focus?(this.focus(),!1):undefined},delegateType:"focusin"},blur:{trigger:function(){return this===V()&&this.blur?(this.blur(),!1):undefined},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&x.nodeName(this,"input")?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?U:Y):this.type=e,t&&x.extend(this,t),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=undefined):null==r&&("string"==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)return this;return 1===i&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,x(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=undefined),n===!1&&(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=/^(?:parents|prev(?:Until|All))/,Q=x.expr.match.needsContext,K={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n>e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(et(this,e||[],!0))},filter:function(e){return this.pushStack(et(this,e||[],!1))},is:function(e){return!!et(this,"string"==typeof e&&Q.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],s=Q.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(s?s.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function Z(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return Z(e,"nextSibling")},prev:function(e){return Z(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return e.contentDocument||x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(K[e]||x.unique(i),J.test(e)&&i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function et(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)>=0!==n})}var tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,nt=/<([\w:]+)/,rt=/<|&#?\w+;/,it=/<(?:script|style|link)/i,ot=/^(?:checkbox|radio)$/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^$|\/(?:java|ecma)script/i,ut=/^true\/(.*)/,lt=/^\s*\s*$/g,ct={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ct.optgroup=ct.option,ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(mt(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&dt(mt(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(mt(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!it.test(e)&&!ct[(nt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(tt,"<$1>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(x.cleanData(mt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=f.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,p=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1>=c||"string"!=typeof d||x.support.checkClone)&&st.test(d))return this.each(function(r){var i=p.eq(r);g&&(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=x.map(mt(r,"script"),ft),s=o.length;c>l;l++)a=r,l!==h&&(a=x.clone(a,!0,!0),s&&x.merge(o,mt(a,"script"))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,ht),l=0;s>l;l++)a=o[l],at.test(a.type||"")&&!q.access(a,"globalEval")&&x.contains(u,a)&&(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(lt,"")))}return this}}),x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o>=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(s=mt(a),o=mt(e),r=0,i=o.length;i>r;r++)yt(o[r],s[r]);if(t)if(n)for(o=o||mt(e),s=s||mt(a),r=0,i=o.length;i>r;r++)gt(o[r],s[r]);else gt(e,a);return s=mt(a,"script"),s.length>0&&dt(s,!u&&mt(e,"script")),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,p=e.length,f=t.createDocumentFragment(),h=[];for(;p>c;c++)if(i=e[c],i||0===i)if("object"===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(rt.test(i)){o=o||f.appendChild(t.createElement("div")),s=(nt.exec(i)||["",""])[1].toLowerCase(),a=ct[s]||ct._default,o.innerHTML=a[1]+i.replace(tt,"<$1>")+a[2],l=a[0];while(l--)o=o.lastChild;x.merge(h,o.childNodes),o=f.firstChild,o.textContent=""}else h.push(t.createTextNode(i));f.textContent="",c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&&(u=x.contains(i.ownerDocument,i),o=mt(f.appendChild(i),"script"),u&&dt(o),n)){l=0;while(i=o[l++])at.test(i.type||"")&&n.push(i)}return f},cleanData:function(e){var t,n,r,i,o,s,a=x.event.special,u=0;for(;(n=e[u])!==undefined;u++){if(F.accepts(n)&&(o=n[q.expando],o&&(t=q.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(s=0;(i=r[s])!==undefined;s++)a[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);q.cache[o]&&delete q.cache[o]}delete L.cache[n[L.expando]]}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}});function pt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ht(e){var t=ut.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function dt(e,t){var n=e.length,r=0;for(;n>r;r++)q.set(e[r],"globalEval",!t||q.get(t[r],"globalEval"))}function gt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(q.hasData(e)&&(o=q.access(e),s=q.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)x.event.add(t,i,l[i][n])}L.hasData(e)&&(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function mt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return t===undefined||t&&x.nodeName(e,t)?x.merge([e],n):n}function yt(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ot.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&&(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var vt,xt,bt=/^(none|table(?!-c[ea]).+)/,wt=/^margin/,Tt=RegExp("^("+b+")(.*)$","i"),Ct=RegExp("^("+b+")(?!px)[a-z%]+$","i"),kt=RegExp("^([+-])=("+b+")","i"),Nt={BODY:"block"},Et={position:"absolute",visibility:"hidden",display:"block"},St={letterSpacing:0,fontWeight:400},jt=["Top","Right","Bottom","Left"],Dt=["Webkit","O","Moz","ms"];function At(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Dt.length;while(i--)if(t=Dt[i]+n,t in e)return t;return r}function Lt(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function qt(t){return e.getComputedStyle(t,null)}function Ht(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a>s;s++)r=e[s],r.style&&(o[s]=q.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Lt(r)&&(o[s]=q.access(r,"olddisplay",Rt(r.nodeName)))):o[s]||(i=Lt(r),(n&&"none"!==n||!i)&&q.set(r,"olddisplay",i?n:x.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=qt(e),i=t.length;i>s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length>1)},show:function(){return Ht(this,!0)},hide:function(){return Ht(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Lt(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=vt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProps[a]=At(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&&"get"in s&&(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,"string"===o&&(i=kt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o="number"),null==n||"number"===o&&isNaN(n)||("number"!==o||x.cssNumber[a]||(n+="px"),x.support.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=At(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),i===undefined&&(i=vt(e,t,r)),"normal"===i&&t in St&&(i=St[t]),""===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),vt=function(e,t,n){var r,i,o,s=n||qt(e),a=s?s.getPropertyValue(t)||s[t]:undefined,u=e.style;return s&&(""!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Ct.test(a)&&wt.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ot(e,t,n){var r=Tt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ft(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;for(;4>o;o+=2)"margin"===n&&(s+=x.css(e,n+jt[o],!0,i)),r?("content"===n&&(s-=x.css(e,"padding"+jt[o],!0,i)),"margin"!==n&&(s-=x.css(e,"border"+jt[o]+"Width",!0,i))):(s+=x.css(e,"padding"+jt[o],!0,i),"padding"!==n&&(s+=x.css(e,"border"+jt[o]+"Width",!0,i)));return s}function Pt(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=qt(e),s=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=vt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Ct.test(i))return i;r=s&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ft(e,t,n||(s?"border":"content"),r,o)+"px"}function Rt(e){var t=o,n=Nt[e];return n||(n=Mt(e,t),"none"!==n&&n||(xt=(xt||x("