canvasengine 2.0.0-beta.37 → 2.0.0-beta.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{DebugRenderer-CTWPthRt.js → DebugRenderer-DxJSMb9B.js} +2 -2
- package/dist/{DebugRenderer-CTWPthRt.js.map → DebugRenderer-DxJSMb9B.js.map} +1 -1
- package/dist/components/Canvas.d.ts.map +1 -1
- package/dist/components/Sprite.d.ts +2 -0
- package/dist/components/Sprite.d.ts.map +1 -1
- package/dist/components/types/Spritesheet.d.ts +0 -118
- package/dist/components/types/Spritesheet.d.ts.map +1 -1
- package/dist/directives/GamepadControls.d.ts.map +1 -1
- package/dist/engine/reactive.d.ts.map +1 -1
- package/dist/engine/signal.d.ts.map +1 -1
- package/dist/{index-BqwprEPH.js → index-BgNWflRE.js} +2688 -2466
- package/dist/index-BgNWflRE.js.map +1 -0
- package/dist/index.global.js +6 -6
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/utils/GlobalAssetLoader.d.ts +141 -0
- package/dist/utils/GlobalAssetLoader.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/Canvas.ts +3 -0
- package/src/components/Sprite.ts +82 -16
- package/src/components/types/Spritesheet.ts +0 -118
- package/src/directives/GamepadControls.ts +0 -7
- package/src/engine/reactive.ts +334 -241
- package/src/engine/signal.ts +8 -2
- package/src/utils/GlobalAssetLoader.ts +257 -0
- package/dist/index-BqwprEPH.js.map +0 -1
package/dist/index.global.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
var CanvasEngine=function(
|
|
1
|
+
var CanvasEngine=function(S,m){"use strict";var ql=Object.defineProperty;var zo=S=>{throw TypeError(S)};var Zl=(S,m,j)=>m in S?ql(S,m,{enumerable:!0,configurable:!0,writable:!0,value:j}):S[m]=j;var Bn=(S,m,j)=>Zl(S,typeof m!="symbol"?m+"":m,j),jo=(S,m,j)=>m.has(S)||zo("Cannot "+j);var IA=(S,m,j)=>(jo(S,m,"read from private field"),j?j.call(S):m.get(S)),Ne=(S,m,j)=>m.has(S)?zo("Cannot add the same private member more than once"):m instanceof WeakSet?m.add(S):m.set(S,j),vt=(S,m,j,zt)=>(jo(S,m,"write to private field"),zt?zt.call(S,j):m.set(S,j),j);var pt,yt;var j=typeof document<"u"?document.currentScript:null;function zt(e,A){for(var t=0;t<A.length;t++){const i=A[t];if(typeof i!="string"&&!Array.isArray(i)){for(const n in i)if(n!=="default"&&!(n in e)){const s=Object.getOwnPropertyDescriptor(i,n);s&&Object.defineProperty(e,n,s.get?s:{enumerable:!0,get:()=>i[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var He=function(e,A){return He=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])},He(e,A)};function it(e,A){if(typeof A!="function"&&A!==null)throw new TypeError("Class extends value "+String(A)+" is not a constructor or null");He(e,A);function t(){this.constructor=e}e.prototype=A===null?Object.create(A):(t.prototype=A.prototype,new t)}function $o(e,A,t,i){function n(s){return s instanceof t?s:new t(function(a){a(s)})}return new(t||(t=Promise))(function(s,a){function r(B){try{c(i.next(B))}catch(o){a(o)}}function h(B){try{c(i.throw(B))}catch(o){a(o)}}function c(B){B.done?s(B.value):n(B.value).then(r,h)}c((i=i.apply(e,A||[])).next())})}function un(e,A){var t={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},i,n,s,a=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return a.next=r(0),a.throw=r(1),a.return=r(2),typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function r(c){return function(B){return h([c,B])}}function h(c){if(i)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(t=0)),t;)try{if(i=1,n&&(s=c[0]&2?n.return:c[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,c[1])).done)return s;switch(n=0,s&&(c=[c[0]&2,s.value]),c[0]){case 0:case 1:s=c;break;case 4:return t.label++,{value:c[1],done:!1};case 5:t.label++,n=c[1],c=[0];continue;case 7:c=t.ops.pop(),t.trys.pop();continue;default:if(s=t.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){t=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){t.label=c[1];break}if(c[0]===6&&t.label<s[1]){t.label=s[1],s=c;break}if(s&&t.label<s[2]){t.label=s[2],t.ops.push(c);break}s[2]&&t.ops.pop(),t.trys.pop();continue}c=A.call(e,t)}catch(B){c=[6,B],n=0}finally{i=s=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}function nt(e){var A=typeof Symbol=="function"&&Symbol.iterator,t=A&&e[A],i=0;if(t)return t.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(A?"Object is not iterable.":"Symbol.iterator is not defined.")}function St(e,A){var t=typeof Symbol=="function"&&e[Symbol.iterator];if(!t)return e;var i=t.call(e),n,s=[],a;try{for(;(A===void 0||A-- >0)&&!(n=i.next()).done;)s.push(n.value)}catch(r){a={error:r}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(a)throw a.error}}return s}function bt(e,A,t){if(t||arguments.length===2)for(var i=0,n=A.length,s;i<n;i++)(s||!(i in A))&&(s||(s=Array.prototype.slice.call(A,0,i)),s[i]=A[i]);return e.concat(s||Array.prototype.slice.call(A))}function st(e){return this instanceof st?(this.v=e,this):new st(e)}function Ar(e,A,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=t.apply(e,A||[]),n,s=[];return n=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),r("next"),r("throw"),r("return",a),n[Symbol.asyncIterator]=function(){return this},n;function a(l){return function(E){return Promise.resolve(E).then(l,o)}}function r(l,E){i[l]&&(n[l]=function(C){return new Promise(function(f,Q){s.push([l,C,f,Q])>1||h(l,C)})},E&&(n[l]=E(n[l])))}function h(l,E){try{c(i[l](E))}catch(C){g(s[0][3],C)}}function c(l){l.value instanceof st?Promise.resolve(l.value.v).then(B,o):g(s[0][2],l)}function B(l){h("next",l)}function o(l){h("throw",l)}function g(l,E){l(E),s.shift(),s.length&&h(s[0][0],s[0][1])}}function tr(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var A=e[Symbol.asyncIterator],t;return A?A.call(e):(e=typeof nt=="function"?nt(e):e[Symbol.iterator](),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(s){t[s]=e[s]&&function(a){return new Promise(function(r,h){a=e[s](a),n(r,h,a.done,a.value)})}}function n(s,a,r,h){Promise.resolve(h).then(function(c){s({value:c,done:r})},a)}}typeof SuppressedError=="function"&&SuppressedError;function V(e){return typeof e=="function"}function En(e){var A=function(i){Error.call(i),i.stack=new Error().stack},t=e(A);return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var Le=En(function(e){return function(t){e(this),this.message=t?t.length+` errors occurred during unsubscription:
|
|
2
2
|
`+t.map(function(i,n){return n+1+") "+i.toString()}).join(`
|
|
3
|
-
`):"",this.name="UnsubscriptionError",this.errors=t}});function Ue(e,A){if(e){var t=e.indexOf(A);0<=t&&e.splice(t,1)}}var jt=function(){function e(A){this.initialTeardown=A,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var A,t,i,n,s;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var r=it(a),h=r.next();!h.done;h=r.next()){var l=h.value;l.remove(this)}}catch(C){A={error:C}}finally{try{h&&!h.done&&(t=r.return)&&t.call(r)}finally{if(A)throw A.error}}else a.remove(this);var u=this.initialTeardown;if(V(u))try{u()}catch(C){s=C instanceof Le?C.errors:[C]}var o=this._finalizers;if(o){this._finalizers=null;try{for(var g=it(o),c=g.next();!c.done;c=g.next()){var E=c.value;try{fn(E)}catch(C){s=s??[],C instanceof Le?s=St(St([],vt(s)),vt(C.errors)):s.push(C)}}}catch(C){i={error:C}}finally{try{c&&!c.done&&(n=g.return)&&n.call(g)}finally{if(i)throw i.error}}}if(s)throw new Le(s)}},e.prototype.add=function(A){var t;if(A&&A!==this)if(this.closed)fn(A);else{if(A instanceof e){if(A.closed||A._hasParent(this))return;A._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(A)}},e.prototype._hasParent=function(A){var t=this._parentage;return t===A||Array.isArray(t)&&t.includes(A)},e.prototype._addParent=function(A){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(A),t):t?[t,A]:A},e.prototype._removeParent=function(A){var t=this._parentage;t===A?this._parentage=null:Array.isArray(t)&&Ue(t,A)},e.prototype.remove=function(A){var t=this._finalizers;t&&Ue(t,A),A instanceof e&&A._removeParent(this)},e.EMPTY=function(){var A=new e;return A.closed=!0,A}(),e}(),Cn=jt.EMPTY;function Qn(e){return e instanceof jt||e&&"closed"in e&&V(e.remove)&&V(e.add)&&V(e.unsubscribe)}function fn(e){V(e)?e():e.unsubscribe()}var tr={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},dn={setTimeout:function(e,A){for(var t=[],i=2;i<arguments.length;i++)t[i-2]=arguments[i];return setTimeout.apply(void 0,St([e,A],vt(t)))},clearTimeout:function(e){var A=dn.delegate;return((A==null?void 0:A.clearTimeout)||clearTimeout)(e)},delegate:void 0};function pn(e){dn.setTimeout(function(){throw e})}function yn(){}function $t(e){e()}var Oe=function(e){et(A,e);function A(t){var i=e.call(this)||this;return i.isStopped=!1,t?(i.destination=t,Qn(t)&&t.add(i)):i.destination=nr,i}return A.create=function(t,i,n){return new xt(t,i,n)},A.prototype.next=function(t){this.isStopped||this._next(t)},A.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},A.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},A.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},A.prototype._next=function(t){this.destination.next(t)},A.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},A.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},A}(jt),er=function(){function e(A){this.partialObserver=A}return e.prototype.next=function(A){var t=this.partialObserver;if(t.next)try{t.next(A)}catch(i){Ae(i)}},e.prototype.error=function(A){var t=this.partialObserver;if(t.error)try{t.error(A)}catch(i){Ae(i)}else Ae(A)},e.prototype.complete=function(){var A=this.partialObserver;if(A.complete)try{A.complete()}catch(t){Ae(t)}},e}(),xt=function(e){et(A,e);function A(t,i,n){var s=e.call(this)||this,a;return V(t)||!t?a={next:t??void 0,error:i??void 0,complete:n??void 0}:a=t,s.destination=new er(a),s}return A}(Oe);function Ae(e){pn(e)}function ir(e){throw e}var nr={closed:!0,next:yn,error:ir,complete:yn},Te=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function Pe(e){return e}function sr(e){return e.length===0?Pe:e.length===1?e[0]:function(t){return e.reduce(function(i,n){return n(i)},t)}}var X=function(){function e(A){A&&(this._subscribe=A)}return e.prototype.lift=function(A){var t=new e;return t.source=this,t.operator=A,t},e.prototype.subscribe=function(A,t,i){var n=this,s=rr(A)?A:new xt(A,t,i);return $t(function(){var a=n,r=a.operator,h=a.source;s.add(r?r.call(s,h):h?n._subscribe(s):n._trySubscribe(s))}),s},e.prototype._trySubscribe=function(A){try{return this._subscribe(A)}catch(t){A.error(t)}},e.prototype.forEach=function(A,t){var i=this;return t=wn(t),new t(function(n,s){var a=new xt({next:function(r){try{A(r)}catch(h){s(h),a.unsubscribe()}},error:s,complete:n});i.subscribe(a)})},e.prototype._subscribe=function(A){var t;return(t=this.source)===null||t===void 0?void 0:t.subscribe(A)},e.prototype[Te]=function(){return this},e.prototype.pipe=function(){for(var A=[],t=0;t<arguments.length;t++)A[t]=arguments[t];return sr(A)(this)},e.prototype.toPromise=function(A){var t=this;return A=wn(A),new A(function(i,n){var s;t.subscribe(function(a){return s=a},function(a){return n(a)},function(){return i(s)})})},e.create=function(A){return new e(A)},e}();function wn(e){var A;return(A=e??tr.Promise)!==null&&A!==void 0?A:Promise}function or(e){return e&&V(e.next)&&V(e.error)&&V(e.complete)}function rr(e){return e&&e instanceof Oe||or(e)&&Qn(e)}function ar(e){return V(e==null?void 0:e.lift)}function st(e){return function(A){if(ar(A))return A.lift(function(t){try{return e(t,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function te(e,A,t,i,n){return new gr(e,A,t,i,n)}var gr=function(e){et(A,e);function A(t,i,n,s,a,r){var h=e.call(this,t)||this;return h.onFinalize=a,h.shouldUnsubscribe=r,h._next=i?function(l){try{i(l)}catch(u){t.error(u)}}:e.prototype._next,h._error=s?function(l){try{s(l)}catch(u){t.error(u)}finally{this.unsubscribe()}}:e.prototype._error,h._complete=n?function(){try{n()}catch(l){t.error(l)}finally{this.unsubscribe()}}:e.prototype._complete,h}return A.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var i=this.closed;e.prototype.unsubscribe.call(this),!i&&((t=this.onFinalize)===null||t===void 0||t.call(this))}},A}(Oe),hr=En(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),bt=function(e){et(A,e);function A(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return A.prototype.lift=function(t){var i=new mn(this,this);return i.operator=t,i},A.prototype._throwIfClosed=function(){if(this.closed)throw new hr},A.prototype.next=function(t){var i=this;$t(function(){var n,s;if(i._throwIfClosed(),!i.isStopped){i.currentObservers||(i.currentObservers=Array.from(i.observers));try{for(var a=it(i.currentObservers),r=a.next();!r.done;r=a.next()){var h=r.value;h.next(t)}}catch(l){n={error:l}}finally{try{r&&!r.done&&(s=a.return)&&s.call(a)}finally{if(n)throw n.error}}}})},A.prototype.error=function(t){var i=this;$t(function(){if(i._throwIfClosed(),!i.isStopped){i.hasError=i.isStopped=!0,i.thrownError=t;for(var n=i.observers;n.length;)n.shift().error(t)}})},A.prototype.complete=function(){var t=this;$t(function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var i=t.observers;i.length;)i.shift().complete()}})},A.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(A.prototype,"observed",{get:function(){var t;return((t=this.observers)===null||t===void 0?void 0:t.length)>0},enumerable:!1,configurable:!0}),A.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},A.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},A.prototype._innerSubscribe=function(t){var i=this,n=this,s=n.hasError,a=n.isStopped,r=n.observers;return s||a?Cn:(this.currentObservers=null,r.push(t),new jt(function(){i.currentObservers=null,Ue(r,t)}))},A.prototype._checkFinalizedStatuses=function(t){var i=this,n=i.hasError,s=i.thrownError,a=i.isStopped;n?t.error(s):a&&t.complete()},A.prototype.asObservable=function(){var t=new X;return t.source=this,t},A.create=function(t,i){return new mn(t,i)},A}(X),mn=function(e){et(A,e);function A(t,i){var n=e.call(this)||this;return n.destination=t,n.source=i,n}return A.prototype.next=function(t){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.next)===null||n===void 0||n.call(i,t)},A.prototype.error=function(t){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.error)===null||n===void 0||n.call(i,t)},A.prototype.complete=function(){var t,i;(i=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||i===void 0||i.call(t)},A.prototype._subscribe=function(t){var i,n;return(n=(i=this.source)===null||i===void 0?void 0:i.subscribe(t))!==null&&n!==void 0?n:Cn},A}(bt),ee=function(e){et(A,e);function A(t){var i=e.call(this)||this;return i._value=t,i}return Object.defineProperty(A.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),A.prototype._subscribe=function(t){var i=e.prototype._subscribe.call(this,t);return!i.closed&&t.next(this._value),i},A.prototype.getValue=function(){var t=this,i=t.hasError,n=t.thrownError,s=t._value;if(i)throw n;return this._throwIfClosed(),s},A.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},A}(bt);function lr(e){return e&&V(e.schedule)}function Dn(e){return e[e.length-1]}function cr(e){return V(Dn(e))?e.pop():void 0}function Ir(e){return lr(Dn(e))?e.pop():void 0}var vn=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Sn(e){return V(e==null?void 0:e.then)}function xn(e){return V(e[Te])}function bn(e){return Symbol.asyncIterator&&V(e==null?void 0:e[Symbol.asyncIterator])}function kn(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Br(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Mn=Br();function Rn(e){return V(e==null?void 0:e[Mn])}function Fn(e){return $o(this,arguments,function(){var t,i,n,s;return un(this,function(a){switch(a.label){case 0:t=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,nt(t.read())];case 3:return i=a.sent(),n=i.value,s=i.done,s?[4,nt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,nt(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}})})}function Gn(e){return V(e==null?void 0:e.getReader)}function ot(e){if(e instanceof X)return e;if(e!=null){if(xn(e))return ur(e);if(vn(e))return Er(e);if(Sn(e))return Cr(e);if(bn(e))return _n(e);if(Rn(e))return Qr(e);if(Gn(e))return fr(e)}throw kn(e)}function ur(e){return new X(function(A){var t=e[Te]();if(V(t.subscribe))return t.subscribe(A);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Er(e){return new X(function(A){for(var t=0;t<e.length&&!A.closed;t++)A.next(e[t]);A.complete()})}function Cr(e){return new X(function(A){e.then(function(t){A.closed||(A.next(t),A.complete())},function(t){return A.error(t)}).then(null,pn)})}function Qr(e){return new X(function(A){var t,i;try{for(var n=it(e),s=n.next();!s.done;s=n.next()){var a=s.value;if(A.next(a),A.closed)return}}catch(r){t={error:r}}finally{try{s&&!s.done&&(i=n.return)&&i.call(n)}finally{if(t)throw t.error}}A.complete()})}function _n(e){return new X(function(A){dr(e,A).catch(function(t){return A.error(t)})})}function fr(e){return _n(Fn(e))}function dr(e,A){var t,i,n,s;return jo(this,void 0,void 0,function(){var a,r;return un(this,function(h){switch(h.label){case 0:h.trys.push([0,5,6,11]),t=Ar(e),h.label=1;case 1:return[4,t.next()];case 2:if(i=h.sent(),!!i.done)return[3,4];if(a=i.value,A.next(a),A.closed)return[2];h.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return r=h.sent(),n={error:r},[3,11];case 6:return h.trys.push([6,,9,10]),i&&!i.done&&(s=t.return)?[4,s.call(t)]:[3,8];case 7:h.sent(),h.label=8;case 8:return[3,10];case 9:if(n)throw n.error;return[7];case 10:return[7];case 11:return A.complete(),[2]}})})}function OA(e,A,t,i,n){i===void 0&&(i=0),n===void 0&&(n=!1);var s=A.schedule(function(){t(),n?e.add(this.schedule(null,i)):this.unsubscribe()},i);if(e.add(s),!n)return s}function Nn(e,A){return A===void 0&&(A=0),st(function(t,i){t.subscribe(te(i,function(n){return OA(i,e,function(){return i.next(n)},A)},function(){return OA(i,e,function(){return i.complete()},A)},function(n){return OA(i,e,function(){return i.error(n)},A)}))})}function Hn(e,A){return A===void 0&&(A=0),st(function(t,i){i.add(e.schedule(function(){return t.subscribe(i)},A))})}function pr(e,A){return ot(e).pipe(Hn(A),Nn(A))}function yr(e,A){return ot(e).pipe(Hn(A),Nn(A))}function wr(e,A){return new X(function(t){var i=0;return A.schedule(function(){i===e.length?t.complete():(t.next(e[i++]),t.closed||this.schedule())})})}function mr(e,A){return new X(function(t){var i;return OA(t,A,function(){i=e[Mn](),OA(t,A,function(){var n,s,a;try{n=i.next(),s=n.value,a=n.done}catch(r){t.error(r);return}a?t.complete():t.next(s)},0,!0)}),function(){return V(i==null?void 0:i.return)&&i.return()}})}function Ln(e,A){if(!e)throw new Error("Iterable cannot be null");return new X(function(t){OA(t,A,function(){var i=e[Symbol.asyncIterator]();OA(t,A,function(){i.next().then(function(n){n.done?t.complete():t.next(n.value)})},0,!0)})})}function Dr(e,A){return Ln(Fn(e),A)}function vr(e,A){if(e!=null){if(xn(e))return pr(e,A);if(vn(e))return wr(e,A);if(Sn(e))return yr(e,A);if(bn(e))return Ln(e,A);if(Rn(e))return mr(e,A);if(Gn(e))return Dr(e,A)}throw kn(e)}function ie(e,A){return A?vr(e,A):ot(e)}function Sr(e){return!!e&&(e instanceof X||V(e.lift)&&V(e.subscribe))}function Un(e,A){return st(function(t,i){var n=0;t.subscribe(te(i,function(s){i.next(e.call(A,s,n++))}))})}var xr=Array.isArray;function br(e,A){return xr(A)?e.apply(void 0,St([],vt(A))):e(A)}function kr(e){return Un(function(A){return br(e,A)})}var Mr=Array.isArray,Rr=Object.getPrototypeOf,Fr=Object.prototype,Gr=Object.keys;function _r(e){if(e.length===1){var A=e[0];if(Mr(A))return{args:A,keys:null};if(Nr(A)){var t=Gr(A);return{args:t.map(function(i){return A[i]}),keys:t}}}return{args:e,keys:null}}function Nr(e){return e&&typeof e=="object"&&Rr(e)===Fr}function Hr(e,A){return e.reduce(function(t,i,n){return t[i]=A[n],t},{})}function Lr(){for(var e=[],A=0;A<arguments.length;A++)e[A]=arguments[A];var t=Ir(e),i=cr(e),n=_r(e),s=n.args,a=n.keys;if(s.length===0)return ie([],t);var r=new X(Ur(s,t,a?function(h){return Hr(a,h)}:Pe));return i?r.pipe(kr(i)):r}function Ur(e,A,t){return t===void 0&&(t=Pe),function(i){On(A,function(){for(var n=e.length,s=new Array(n),a=n,r=n,h=function(u){On(A,function(){var o=ie(e[u],A),g=!1;o.subscribe(te(i,function(c){s[u]=c,g||(g=!0,r--),r||i.next(t(s.slice()))},function(){--a||i.complete()}))},i)},l=0;l<n;l++)h(l)},i)}}function On(e,A,t){e?OA(t,e,A):A()}function Or(e){return new X(function(A){ot(e()).subscribe(A)})}function Tn(e,A){return st(function(t,i){var n=0;t.subscribe(te(i,function(s){return e.call(A,s,n++)&&i.next(s)}))})}function Tr(e){return st(function(A,t){try{A.subscribe(t)}finally{t.add(e)}})}function Pr(e){e===void 0&&(e={});var A=e.connector,t=A===void 0?function(){return new bt}:A,i=e.resetOnError,n=i===void 0?!0:i,s=e.resetOnComplete,a=s===void 0?!0:s,r=e.resetOnRefCountZero,h=r===void 0?!0:r;return function(l){var u,o,g,c=0,E=!1,C=!1,d=function(){o==null||o.unsubscribe(),o=void 0},f=function(){d(),u=g=void 0,E=C=!1},w=function(){var S=u;f(),S==null||S.unsubscribe()};return st(function(S,F){c++,!C&&!E&&d();var N=g=g??t();F.add(function(){c--,c===0&&!C&&!E&&(o=Je(w,h))}),N.subscribe(F),!u&&c>0&&(u=new xt({next:function(O){return N.next(O)},error:function(O){C=!0,d(),o=Je(f,n,O),N.error(O)},complete:function(){E=!0,d(),o=Je(f,a),N.complete()}}),ot(S).subscribe(u))})(l)}}function Je(e,A){for(var t=[],i=2;i<arguments.length;i++)t[i-2]=arguments[i];if(A===!0){e();return}if(A!==!1){var n=new xt({next:function(){n.unsubscribe(),e()}});return ot(A.apply(void 0,St([],vt(t)))).subscribe(n)}}function Pn(){return typeof window<"u"}function rt(){return typeof performance<"u"?performance.now():Date.now()}function kt(e){return 1e3/e}function Mt(e){return e&&e instanceof Promise}function ne(e,A){if(e.length!==A.length)return!1;for(let t=0;t<e.length;t++){const i=e[t],n=A[t];if(typeof i=="object"&&i!==null){if(typeof n!="object"||n===null)return!1;if(Array.isArray(i)){if(!Array.isArray(n)||!ne(i,n))return!1}else if(!Jn(i,n))return!1}else if(i!==n)return!1}return!0}function Jn(e,A){const t=Object.keys(e),i=Object.keys(A);if(t.length!==i.length)return!1;for(let n of t)if(!A.hasOwnProperty(n)||!Jr(e[n],A[n]))return!1;return!0}function Jr(e,A){return e===A?!0:typeof e!=typeof A?!1:typeof e=="object"&&e!==null?Array.isArray(e)?Array.isArray(A)&&ne(e,A):Jn(e,A):!1}function Kn(e){return{}.toString.call(e)==="[object Function]"}function Ke(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)&&e.constructor===Object}function Yn(e){return e instanceof X}function Ye(e,A,t,i=!1){if(Object(e)!==e)return e;typeof A=="string"&&(A=A.split("."));let n=A.length;if(!n)return e;let s=e;for(let a=0;a<n-1;a++){let r=A[a],h=A[a+1],l=!isNaN(Number(h))&&isFinite(Number(h));(!s[r]||typeof s[r]!="object")&&(s[r]=l&&!i?[]:{}),s=s[r]}return s[A[n-1]]=t,e}function Kr(e,A){const t=A.split(".");let i=e;for(let n of t){if(i[n]===void 0)return;i=i[n]}return i}function Yr(e){console.log(e)}function We(e){console.error(e)}function at(e,A){typeof A=="number"?e.set(A):Array.isArray(A)?e.set(A[0],A[1]):Ke(A)&&"value"in A?e.set(A.value.x,A.value.y):e.set(A.x,A.y)}function Wn(e,A,t,i){const n=e-t,s=A-i;return Math.sqrt(n*n+s*s)}const Wr=Object.freeze(Object.defineProperty({__proto__:null,arrayEquals:ne,calculateDistance:Wn,error:We,fps2ms:kt,get:Kr,isBrowser:Pn,isFunction:Kn,isObject:Ke,isObservable:Yn,isPromise:Mt,log:Yr,preciseNow:rt,set:Ye,setObservablePoint:at},Symbol.toStringTag,{value:"Module"}));class Xe{constructor(){this.boundKeys={},this.stop=!1,this._controlsOptions={},this.serverFps=60}start(){this.setupListeners(),this.interval=setInterval(()=>{this.preStep()},kt(this.serverFps??60))}destroy(){this.interval&&clearInterval(this.interval),this.cleanup()}bindKey(A,t,i,n){Array.isArray(A)||(A=[A]);const s=Object.assign({repeat:!1},i);A.forEach(a=>{this.boundKeys[a]={actionName:t,options:s,parameters:n}})}applyInput(A){const t=this.boundKeys[A];if(!t)return;const{repeat:i,keyDown:n}=t.options;if(n){let s=t.parameters;typeof s=="function"&&(s=s()),n(t)}}getControl(A){return this.boundKeys[A]}getControls(){return this.boundKeys}stopInputs(){this.stop=!0}listenInputs(){this.stop=!1}setInputs(A){if(A){this.boundKeys={};for(let t in A){const i=A[t],{bind:n}=i;let s=n;Array.isArray(s)||(s=[n]);for(let a of s)this.bindKey(a,t,i)}this._controlsOptions=A}}get options(){return this._controlsOptions}}var Xn=(e=>(e.Break="break",e.Backspace="backspace",e.Tab="tab",e.Clear="clear",e.Enter="enter",e.Shift="shift",e.Ctrl="ctrl",e.Alt="alt",e.Pause="pause/break",e.CapsLock="caps lock",e.Escape="escape",e.Conversion="conversion",e.NonConversion="non-conversion",e.Space="space",e.PageUp="page up",e.PageDown="page down",e.End="end",e.Home="home",e[e.Left=4]="Left",e[e.Up=1]="Up",e[e.Right=2]="Right",e[e.Down=3]="Down",e.Select="select",e.Print="print",e.Execute="execute",e.PrintScreen="Print Screen",e.Insert="insert",e.Delete="delete",e.Zero="0",e.One="1",e.Two="2",e.Three="3",e.Four="4",e.Five="5",e.Six="6",e.Seven="7",e.Height="8",e.Nine="9",e.Equal="=",e.Semicolon="semicolon (firefox), equals",e.LessThan="<",e.Equals="equals (firefox)",e.Beta="ß",e.At="@",e.A="a",e.B="b",e.C="c",e.D="d",e.E="e",e.F="f",e.G="g",e.H="h",e.I="i",e.J="j",e.K="k",e.L="l",e.M="m",e.N="n",e.O="o",e.P="p",e.Q="q",e.R="r",e.S="s",e.T="t",e.U="u",e.V="v",e.W="w",e.X="x",e.Y="y",e.Z="z",e.SearchKey="Windows Key / Left ⌘ / Chromebook Search key",e.NumPad0="numpad 0",e.NumPad1="numpad 1",e.NumPad2="numpad 2",e.NumPad3="numpad 3",e.NumPad4="numpad 4",e.NumPad5="numpad 5",e.NumPad6="numpad 6",e.NumPad7="numpad 7",e.NumPad8="numpad 8",e.NumPad9="numpad 9",e.Multiply="multiply",e.Add="add",e.Subtract="subtract",e.DecimalPoint="decimal point",e.Divide="divide",e.F1="f1",e.F2="f2",e.F3="f3",e.F4="f4",e.F5="f5",e.F6="f6",e.F7="f7",e.F8="f8",e.F9="f9",e.F10="f10",e.F11="f11",e.F12="f12",e.F13="f13",e.F14="f14",e.F15="f15",e.F16="f16",e.F17="f17",e.F18="f18",e.F19="f19",e.F20="f20",e.F21="f21",e.F22="f22",e.F23="f23",e.F24="f24",e.NumLock="num lock",e.ScrollLock="scroll lock",e.CircumflexAccent="^",e.ExclamationMark="!",e.Hash="#",e.Dollar="$",e.AccentU="ù",e.PageBackward="page backward",e.PageForWard="page forward",e.Star="*",e.DecreaseVolume="decrease volume level",e.IncreaseVolume="increase volume level",e.Next="next",e.Previous="previous",e.Stop="stop",e.PlayPause="play/pause",e.Email="e-mail",e.SemiColon="semi-colon / ñ",e.EqualSign="equal sign",e.Comma="comma",e.Dash="dash",e.FowardSlach="forward slash / ç",e.GraveAccent="grave accent / ñ / æ",e.OpenBracket="open bracket",e.BackSlach="back slash",e.CloseBracket="close bracket / å",e.SingleQuote="single quote / ø",e.BackQuote="`",e.Altgr="altgr",e))(Xn||{});const Vn={3:"break",8:"backspace",9:"tab",12:"clear",13:"enter",16:"shift",17:"ctrl",18:"alt",19:"pause/break",20:"caps lock",27:"escape",28:"conversion",29:"non-conversion",32:"space",33:"page up",34:"page down",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",41:"select",42:"print",43:"execute",44:"Print Screen",45:"insert",46:"delete",48:"n0",49:"n1",50:"n2",51:"n3",52:"n4",53:"n5",54:"n6",55:"n7",56:"n8",57:"n9",58:":",59:"semicolon (firefox), equals",60:"<",61:"equals (firefox)",63:"ß",64:"@",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",91:"Windows Key / Left ⌘ / Chromebook Search key",92:"right window key",93:"Windows Menu / Right ⌘",96:"numpad 0",97:"numpad 1",98:"numpad 2",99:"numpad 3",100:"numpad 4",101:"numpad 5",102:"numpad 6",103:"numpad 7",104:"numpad 8",105:"numpad 9",106:"multiply",107:"add",108:"numpad period (firefox)",109:"subtract",110:"decimal point",111:"divide",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",124:"f13",125:"f14",126:"f15",127:"f16",128:"f17",129:"f18",130:"f19",131:"f20",132:"f21",133:"f22",134:"f23",135:"f24",144:"num lock",145:"scroll lock",160:"^",161:"!",163:"#",164:"$",165:"ù",166:"page backward",167:"page forward",169:"closing paren (AZERTY)",170:"*",171:"~ + * key",173:"minus (firefox), mute/unmute",174:"decrease volume level",175:"increase volume level",176:"next",177:"previous",178:"stop",179:"play/pause",180:"e-mail",181:"mute/unmute (firefox)",182:"decrease volume level (firefox)",183:"increase volume level (firefox)",186:"semi-colon / ñ",187:"equal sign",188:"comma",189:"dash",190:"period",191:"forward slash / ç",192:"grave accent / ñ / æ",193:"?, / or °",194:"numpad period (chrome)",219:"open bracket",220:"back slash",221:"close bracket / å",222:"single quote / ø",223:"`",224:"left or right ⌘ key (firefox)",225:"altgr",226:"< /git >",230:"GNOME Compose Key",231:"ç",233:"XF86Forward",234:"XF86Back",240:"alphanumeric",242:"hiragana/katakana",243:"half-width/full-width",244:"kanji",255:"toggle touchpad"},qn=(e=>{const A={};for(let t in e){const i=e[t];A[i]=t}return A})(Vn);class Zn extends Xe{constructor(){super(...arguments),this.keyState={},this.lastKeyPressed=null,this.directionState={up:!1,down:!1,left:!1,right:!1}}setupListeners(){document.addEventListener("keydown",A=>{this.onKeyChange(A,!0)}),document.addEventListener("keyup",A=>{this.onKeyChange(A,!1)})}cleanup(){document.removeEventListener("keydown",A=>{this.onKeyChange(A,!0)}),document.removeEventListener("keyup",A=>{this.onKeyChange(A,!1)})}preStep(){if(this.stop)return;const A=this.getDirection();if(A!=="none"){const t=this.boundKeys[A];if(t){const{keyDown:i}=t.options;i&&this.applyInput(A)}}else{const t=Object.keys(this.boundKeys);for(let i of t)this.applyInput(i)}}applyInput(A){const t=this.keyState[A];if(!t)return;const{isDown:i,count:n}=t;if(i){const s=this.boundKeys[A];if(!s)return;const{repeat:a,keyDown:r}=s.options;if(a||n==0){let h=s.parameters;typeof h=="function"&&(h=h()),r&&r(s),this.keyState[A].count++}}}applyKeyDown(A){const t=qn[A],i=new Event("keydown");i.keyCode=t,this.onKeyChange(i,!0)}applyKeyUp(A){const t=qn[A],i=new Event("keyup");i.keyCode=t,this.onKeyChange(i,!1)}applyKeyPress(A){return new Promise(t=>{this.applyKeyDown(A),setTimeout(()=>{this.applyKeyUp(A),t()},200)})}onKeyChange(A,t){A=A||window.event;const i=Vn[A.keyCode];if(i&&this.boundKeys[i]){if(this.keyState[i]==null&&(this.keyState[i]={count:0,isDown:!0}),this.keyState[i].isDown=t,!t){this.keyState[i].count=0;const{keyUp:n}=this.boundKeys[i].options;n&&n(this.boundKeys[i])}this.lastKeyPressed=t?A.keyCode:null}i&&this.updateDirectionState(i,t)}updateDirectionState(A,t){switch(A){case"up":this.directionState.up=t;break;case"down":this.directionState.down=t;break;case"left":this.directionState.left=t;break;case"right":this.directionState.right=t;break}}getDirection(){const{up:A,down:t,left:i,right:n}=this.directionState;return A&&i?"up_left":A&&n?"up_right":t&&i?"down_left":t&&n?"down_right":A?"up":t?"down":i?"left":n?"right":"none"}async applyControl(A,t){const i=this._controlsOptions[A];if(i){const n=Array.isArray(i.bind)?i.bind[0]:i.bind;t===void 0?await this.applyKeyPress(n):t?this.applyKeyDown(n):this.applyKeyUp(n)}}listenInputs(){super.listenInputs(),this.keyState={}}}var IA={events:{},publish:function(A,t){this.events.hasOwnProperty(A)&&this.events[A].forEach(function(i){return i(t)})},subscribe:function(A,t){return this.events.hasOwnProperty(A)||(this.events[A]=[]),this.events[A].push(t),{unsubscribe:(function(){var i=this.events[A].indexOf(t);i!==-1&&this.events[A].splice(i,1)}).bind(this)}}},K={CONNECT:{NATIVE:"gamepadconnected",ALIAS:"connect"},DISCONNECT:{NATIVE:"gamepaddisconnected",ALIAS:"disconnect"},BUTTON_PRESS:{NATIVE:null,ALIAS:"button_press"},BUTTON_RELEASE:{NATIVE:null,ALIAS:"button_release"},AXIS_MOVEMENT:{NATIVE:null,ALIAS:"axis_move"}},gt={LEFT:{NAME:"left_stick",AXES:{X:0,Y:1}},RIGHT:{NAME:"right_stick",AXES:{X:2,Y:3}}},se={LEFT:"left",RIGHT:"right",TOP:"top",BOTTOM:"bottom"},Xr={button_0:0,button_1:1,button_2:2,button_3:3,button_4:4,button_5:5,button_6:6,button_7:7,button_8:8,button_9:9,button_10:10,button_11:11,button_12:12,button_13:13,button_14:14,button_15:15,button_16:16,button_17:17},Vr=.8,zn=function(e){console.warn&&typeof console.warn=="function"?console.warn(e):console.log(e)},qr=function(e,A){var t=[];return Object.keys(A).forEach(function(i){(A[i]===e||Array.isArray(A[i])&&A[i].indexOf(e)!==-1)&&t.push(i)}),t},Zr=function(e){return!!e&&!!e.type&&!!e.playEffect&&typeof e.playEffect=="function"||!1},zr=function(){return!!window.navigator.getGamepads&&typeof window.navigator.getGamepads=="function"||!1},gA={loopStarted:!1,instances:{},buttonEvents:{joypad:[]},settings:{axisMovementThreshold:Vr},remove:function(A){return delete this.instances[A]},on:function(A,t){switch(A){case K.CONNECT.ALIAS:return IA.subscribe(K.CONNECT.ALIAS,t);case K.DISCONNECT.ALIAS:return IA.subscribe(K.DISCONNECT.ALIAS,t);case K.BUTTON_PRESS.ALIAS:return IA.subscribe(K.BUTTON_PRESS.ALIAS,t);case K.BUTTON_RELEASE.ALIAS:return IA.subscribe(K.BUTTON_RELEASE.ALIAS,t);case K.AXIS_MOVEMENT.ALIAS:return IA.subscribe(K.AXIS_MOVEMENT.ALIAS,t)}},vibrate:function(A,t){var i=A.vibrationActuator,n=t||this.settings.vibration;if(Zr(i)){var s=i.type;return A.vibrationActuator.playEffect(s,n)}zn("No vibration actuator interface found - https://developer.mozilla.org/en-US/docs/Web/API/GamepadHapticActuator")},set:function(A){var t=A.axisMovementThreshold,i=A.vibration,n=A.customButtonMapping,s=parseFloat(t);isNaN(s)||(this.settings.axisMovementThreshold=s),this.settings.vibration=i,this.settings.customButtonMapping=n},trigger:function(A,t){return IA.publish(A,t)}},jr=function(e){e.buttons.forEach(function(A,t){var i=gA.settings.customButtonMapping,n=i||Xr,s=qr(t,n),a=gA.buttonEvents;s.length&&s.forEach(function(r){A.pressed?(a.joypad[e.index][r]||(a.joypad[e.index][r]={pressed:!0,hold:!1,released:!1}),a.joypad[e.index][r].button=A,a.joypad[e.index][r].index=t,a.joypad[e.index][r].gamepad=e):!A.pressed&&a.joypad[e.index][r]&&(a.joypad[e.index][r].released=!0,a.joypad[e.index][r].hold=!1)})})},$r=function(e){var A=function(a){return new CustomEvent(K.AXIS_MOVEMENT.ALIAS,{detail:a})},t=gA.settings.axisMovementThreshold,i=e.axes,n=i.length,s=n/2;i.forEach(function(a,r){if(Math.abs(a)>t){var h=null,l=null,u=a;h=r<s?gt.LEFT.NAME:gt.RIGHT.NAME,(r===gt.LEFT.AXES.X||r===gt.RIGHT.AXES.X)&&(l=a<0?se.LEFT:se.RIGHT),(r===gt.LEFT.AXES.Y||r===gt.RIGHT.AXES.Y)&&(l=a<0?se.TOP:se.BOTTOM);var o={gamepad:e,totalSticks:s,stickMoved:h,directionOfMovement:l,axisMovementValue:u,axis:r};return window.dispatchEvent(A(o))}})},Aa=function(e,A){A[e].pressed?(jn(K.BUTTON_PRESS.ALIAS,A,e),A[e].pressed=!1,A[e].hold=!0,A[e].last_event=K.BUTTON_PRESS.ALIAS):A[e].hold||A[e].released&&A[e].last_event===K.BUTTON_PRESS.ALIAS&&(jn(K.BUTTON_RELEASE.ALIAS,A,e),delete A[e])},Ve={id:null,start:function(){var A=window.requestAnimationFrame||window.webkitRequestAnimationFrame,t=gA.buttonEvents,i=window.navigator.getGamepads();i=Array.prototype.slice.call(i),i.forEach(function(n,s){n&&(t.joypad[s]||(t.joypad[s]={}),gA.instances[s]=n,jr(n),$r(n))}),t.joypad.forEach(function(n){n&&Object.keys(n).forEach(function(s){Aa(s,n)})}),this.id=A(this.start.bind(this))},stop:function(A){var t=window.cancelAnimationFrame||window.webkitCancelAnimationFrame;return t(A)}},ta=function(){window.addEventListener(K.CONNECT.NATIVE,function(e){if(IA.publish(K.CONNECT.ALIAS,e),!gA.loopStarted)return gA.loopStarted=!0,Ve.start()}),window.addEventListener(K.DISCONNECT.NATIVE,function(e){if(IA.publish(K.DISCONNECT.ALIAS,e),gA.remove(e.gamepad.index),gA.buttonEvents.joypad[e.gamepad.index]=null,!Object.keys(gA.instances).length)return gA.loopStarted=!1,Ve.stop(Ve.id)}),window.addEventListener(K.BUTTON_PRESS.ALIAS,function(e){return IA.publish(K.BUTTON_PRESS.ALIAS,e)}),window.addEventListener(K.BUTTON_RELEASE.ALIAS,function(e){return IA.publish(K.BUTTON_RELEASE.ALIAS,e)}),window.addEventListener(K.AXIS_MOVEMENT.ALIAS,function(e){return IA.publish(K.AXIS_MOVEMENT.ALIAS,e)})},jn=function(e,A,t){var i=function(h){return new CustomEvent(e,{detail:h})},n=A[t],s=n.index,a=n.gamepad,r={buttonName:t,button:A[t].button,index:s,gamepad:a};window.dispatchEvent(i(r))};ta(),zr()?window.joypad=gA:(window.joypad={},zn("Your browser does not support the Gamepad API - https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API"));const qe={button_0:"action",button_1:"back",button_9:"back"},Ze={top:"up",bottom:"down",left:"left",right:"right"};class $n extends Xe{constructor(){super(...arguments),this.gamepadEnabled=!0,this.gamepadConfig={enabled:!0,buttonMapping:qe,axisMapping:Ze,axisThreshold:.5,moveInterval:400},this.gamepadMoving=!1,this.gamepadDirections={},this.gamepadAxisDate=0,this.gamepadMoveInterval=null,this.joypad=null,this.connectCallbacks=[],this.disconnectCallbacks=[]}setupListeners(){this.initGamepad()}cleanup(){this.gamepadMoveInterval&&(clearInterval(this.gamepadMoveInterval),this.gamepadMoveInterval=null),this.joypad&&(this.joypad.off("connect"),this.joypad.off("disconnect"),this.joypad.off("button_press"),this.joypad.off("axis_move"))}initGamepad(){if(typeof window>"u")return;const A=window.joypad;if(!A){this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!1);return}this.joypad=A,this.joypad.on("connect",()=>this.handleGamepadConnect()),this.joypad.on("disconnect",()=>this.handleGamepadDisconnect()),this.joypad.on("button_press",t=>this.handleGamepadButtonPress(t)),this.joypad.on("axis_move",t=>this.handleGamepadAxisMove(t))}handleGamepadConnect(){!this.gamepadEnabled||!this.gamepadConfig.enabled||(this.gamepadMoveInterval=setInterval(()=>{this.processGamepadMovement()},this.gamepadConfig.moveInterval||400),this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!0),this.connectCallbacks.forEach(A=>A()))}handleGamepadDisconnect(){this.gamepadMoveInterval&&(clearInterval(this.gamepadMoveInterval),this.gamepadMoveInterval=null),this.gamepadMoving=!1,this.gamepadDirections={},this.gamepadAxisDate=0,this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!1),this.disconnectCallbacks.forEach(A=>A())}handleGamepadButtonPress(A){if(!this.gamepadEnabled||!this.gamepadConfig.enabled||this.stop)return;const{buttonName:t}=A.detail,n=(this.gamepadConfig.buttonMapping||qe)[t];n&&this.applyControl(n).catch(()=>{})}handleGamepadAxisMove(A){if(!this.gamepadEnabled||!this.gamepadConfig.enabled||this.stop)return;this.gamepadMoving=!0,this.gamepadAxisDate=Date.now();let t=A.detail.directionOfMovement;const i=this.gamepadConfig.axisMapping||Ze;t==="top"?t=i.top||"up":t==="bottom"?t=i.bottom||"down":t==="left"?t=i.left||"left":t==="right"&&(t=i.right||"right"),this.gamepadDirections={[t]:!0};const n=["up","down","left","right"];for(const s of n)this.gamepadDirections[s]||this.applyControl(s,!1).catch(()=>{});this.processGamepadMovement()}processGamepadMovement(){if(this.gamepadMoving&&!this.stop)for(const A in this.gamepadDirections)this.gamepadDirections[A]&&this.applyControl(A,!0).catch(()=>{})}preStep(){if(this.stop)return;if(Date.now()-this.gamepadAxisDate>100&&this.gamepadMoving){const t=["up","down","left","right"];for(const i of t)this.gamepadDirections={},this.gamepadMoving=!1,this.applyControl(i,!1).catch(()=>{})}}updateGamepadConfig(A){this.gamepadConfig.onConnect&&this.offConnect(this.gamepadConfig.onConnect),this.gamepadConfig.onDisconnect&&this.offDisconnect(this.gamepadConfig.onDisconnect),this.gamepadConfig={enabled:A.enabled!==void 0?A.enabled:!0,buttonMapping:A.buttonMapping||qe,axisMapping:A.axisMapping||Ze,axisThreshold:A.axisThreshold||.5,moveInterval:A.moveInterval||400,onConnect:A.onConnect,onDisconnect:A.onDisconnect,gamepadConnected:A.gamepadConnected},this.gamepadConfig.onConnect&&this.onConnect(this.gamepadConfig.onConnect),this.gamepadConfig.onDisconnect&&this.onDisconnect(this.gamepadConfig.onDisconnect)}extractGamepadConfig(A){A.gamepad&&this.updateGamepadConfig(A.gamepad)}getGamepadConfig(){return this.gamepadConfig}async applyControl(A,t){if(!this._controlsOptions[A])return;const n=Object.keys(this.boundKeys);for(const s of n){const a=this.boundKeys[s];if(a.actionName===String(A)){if(t===void 0){if(a.options.keyDown){let r=a.parameters;typeof r=="function"&&(r=r()),a.options.keyDown(a)}return new Promise(r=>{setTimeout(()=>{if(a.options.keyUp){let h=a.parameters;typeof h=="function"&&(h=h()),a.options.keyUp(a)}r()},200)})}else if(t){if(a.options.keyDown){let r=a.parameters;typeof r=="function"&&(r=r()),a.options.keyDown(a)}}else if(a.options.keyUp){let r=a.parameters;typeof r=="function"&&(r=r()),a.options.keyUp(a)}break}}}setInputs(A){super.setInputs(A),this.extractGamepadConfig(A)}onConnect(A){this.connectCallbacks.push(A)}onDisconnect(A){this.disconnectCallbacks.push(A)}offConnect(A){const t=this.connectCallbacks.indexOf(A);t>-1&&this.connectCallbacks.splice(t,1)}offDisconnect(A){const t=this.disconnectCallbacks.indexOf(A);t>-1&&this.disconnectCallbacks.splice(t,1)}isConnected(){return this.gamepadMoveInterval!==null}reinit(){this.joypad||this.initGamepad()}}const ze={};class pA{}function yA(e,A){ze[e]=A}function ea(e,A){var i;if(!ze[A])return null;const t=new ze[A];return(i=t.onInit)==null||i.call(t,e),t}class As extends pA{constructor(){super(...arguments),this.keyboardControls=null,this.gamepadControls=null}onInit(A){var n;const t=((n=A.props.controls)==null?void 0:n.value)??A.props.controls;if(!t)return;this.keyboardControls=new Zn,this.keyboardControls.setInputs(t),this.keyboardControls.start();const i=t.gamepad;i!==void 0&&i.enabled!==!1&&(this.gamepadControls=new $n,this.gamepadControls.setInputs(t),this.gamepadControls.start())}onMount(A){}onUpdate(A){var i;const t=((i=A.controls)==null?void 0:i.value)??A.controls;t&&(this.keyboardControls&&this.keyboardControls.setInputs(t),this.gamepadControls&&this.gamepadControls.setInputs(t))}onDestroy(A){this.keyboardControls&&(this.keyboardControls.destroy(),this.keyboardControls=null),this.gamepadControls&&(this.gamepadControls.destroy(),this.gamepadControls=null)}getControl(A){var t;return(t=this.keyboardControls)==null?void 0:t.getControl(A)}getControls(){var A;return((A=this.keyboardControls)==null?void 0:A.getControls())||{}}async applyControl(A,t){this.keyboardControls&&await this.keyboardControls.applyControl(A,t),this.gamepadControls&&await this.gamepadControls.applyControl(A,t)}stopInputs(){this.keyboardControls&&this.keyboardControls.stopInputs(),this.gamepadControls&&this.gamepadControls.stopInputs()}listenInputs(){this.keyboardControls&&this.keyboardControls.listenInputs(),this.gamepadControls&&this.gamepadControls.listenInputs()}get options(){var A;return((A=this.keyboardControls)==null?void 0:A.options)||{}}get keyboard(){return this.keyboardControls}get gamepad(){return this.gamepadControls}}yA("controls",As);class ts extends pA{constructor(){super(...arguments),this.fps=60,this.deltaTime=0,this.frame=0,this.timestamp=0,this.requestedDelay=0,this.lastTimestamp=0,this._stop=!1}onInit(A){var t;this.tick=(t=A.propObservables)==null?void 0:t.tick}onDestroy(){}onMount(A){}onUpdate(A){}nextTick(A){this.lastTimestamp=this.lastTimestamp||this.timestamp,this.deltaTime=rt()-this.timestamp,this.timestamp=A,this.tick.set({timestamp:this.timestamp,deltaTime:this.deltaTime,frame:this.frame,deltaRatio:~~this.deltaTime/~~kt(this.fps)}),this.lastTimestamp=this.timestamp,this.frame++}start(A={}){A.maxFps&&(this.maxFps=A.maxFps),A.fps&&(this.fps=A.fps),A.delay&&(this.requestedDelay=A.delay);const t=i=>{Pn()?window.requestAnimationFrame(i.bind(this)):setTimeout(()=>{this.requestedDelay=0,i(rt())},kt(this.fps)+this.requestedDelay)};if(this.maxFps){const i=kt(this.maxFps);let n=rt(),s=rt();const a=r=>{if(this._stop)return;t(a),n=rt();const h=n-s;h>i&&(s=n-h%i,this.nextTick(r))};t(a)}else{const i=n=>{t(i),this.nextTick(n)};t(i)}return this}stop(){this._stop=!0}}yA("tick",ts);var ia=Object.defineProperty,j=(e,A)=>ia(e,"name",{value:A,configurable:!0}),Rt=(dt=class extends ee{constructor(t=[]){super({type:"init",items:t});Bn(this,"_items",[]);this.createProxy(t)}createProxy(t){this._items=new Proxy(t,{get:j((i,n,s)=>{const a=i[n];return typeof a=="function"?(...r)=>{let h="update",l,u=!1,o=[],g=!0;switch(n){case"push":l=i.length,h="add",u=!0;break;case"pop":l=i.length-1,h="remove",u=!0;break;case"unshift":l=0,h="add",u=!0;break;case"shift":l=0,h="remove",u=!0;break;case"splice":l=r[0];const E=r[1],C=r.slice(2);o=C,E>0&&C.length===0?h="remove":E===0&&C.length>0?h="add":E===0&&C.length===0?g=!1:h="update",u=!0;break}const c=a.apply(i,r);return u&&g&&(n==="splice"?this.next({type:h,index:l,items:o}):this.next({type:h,index:l,items:r})),c}:Reflect.get(i,n,s)},"get"),set:j((i,n,s)=>{const a=isNaN(Number(n))?void 0:Number(n);return i[n]=s,this.next({type:"update",index:a,items:[s]}),!0},"set")})}get items(){return this._items}set items(t){this.createProxy(t),this.next({type:"reset",items:t})}},j(dt,"ArraySubject"),dt),na=j(e=>"_items"in e,"isArraySubject"),Ft=(pt=class extends ee{constructor(t={}){super({type:"init",value:t});Bn(this,"_obj");this.createProxy(t)}createProxy(t){this._obj=new Proxy(t,{get:j((i,n,s)=>Reflect.get(i,n,s),"get"),set:j((i,n,s,a)=>{const r=n,h=r in i?"update":"add";return i[r]=s,this.next({type:h,key:r,value:s}),!0},"set"),deleteProperty:j((i,n)=>{const s=n;if(s in i){const a=i[s];return delete i[s],this.next({type:"remove",key:s,value:a}),!0}return!1},"deleteProperty")})}get obj(){return this._obj}set obj(t){this.createProxy(t),this.next({type:"reset",value:t})}},j(pt,"ObjectSubject"),pt),sa=j(e=>"_obj"in e,"isObjectSubject"),oa=j(()=>{const e="__REACTIVE_STORE__";if(typeof globalThis<"u")return globalThis[e]||(globalThis[e]={currentDependencyTracker:null,currentSubscriptionsTracker:null}),globalThis[e];let A;if(typeof window<"u")A=window;else if(typeof process<"u"&&process.versions&&process.versions.node)A=Function("return this")();else if(typeof self<"u")A=self;else return console.warn("Unable to find global object, using local instance"),{currentDependencyTracker:null,currentSubscriptionsTracker:null};return A[e]||(A[e]={currentDependencyTracker:null,currentSubscriptionsTracker:null}),A[e]},"getGlobalReactiveStore"),TA=oa(),es=j(e=>{TA.currentDependencyTracker&&TA.currentDependencyTracker(e)},"trackDependency");function Y(e){let A;Array.isArray(e)?A=new Rt(e):typeof e=="object"&&e!==null?A=new Ft(e):A=new ee(e);const t=j(()=>A instanceof Rt?A.items:A instanceof Ft?A.obj:A.value,"getValue"),i=j(function(){return es(i),t()},"fn");return i.set=n=>{A instanceof Rt?A.items=n:A instanceof Ft?A.obj=n:A.next(n)},i._isFrozen=!1,i.freeze=()=>{i._isFrozen=!0},i.unfreeze=()=>{i._isFrozen=!1,A instanceof Rt?A.next({type:"init",items:A.items}):A instanceof Ft?A.next({type:"init",value:A.obj}):A.next(A.value)},i.mutate=n=>{const s=t();n(s)},i.update=n=>{const s=n(t());i.set(s)},i.observable=A.asObservable().pipe(Tn(()=>!i._isFrozen)),i._subject=A,i}j(Y,"signal");function W(e){return!!(e&&e.observable)}j(W,"isSignal");function oe(e){return W(e)&&!!e.dependencies}j(oe,"isComputed");function MA(e,A){var h;const t=new Set;let i=!0,n;const s=TA.currentDependencyTracker;TA.currentDependencyTracker=l=>{t.add(l)},n=e(),e.isEffect&&(A=n),TA.currentDependencyTracker=s;const a=Lr([...t].map(l=>l.observable)).pipe(Tn(()=>!i),Un(()=>e()),Tr(()=>A==null?void 0:A())),r=j(function(){return es(r),n},"fn");return r.observable=a,r.subscription=a.subscribe(l=>{n=l}),r.dependencies=t,(h=TA.currentSubscriptionsTracker)==null||h.call(TA,r.subscription),i=!1,r}j(MA,"computed");function $(e){return e.isEffect=!0,MA(e)}j($,"effect");const je={},wA=e=>e&&typeof e=="object"&&"tag"in e&&"props"in e&&"componentInstance"in e,$e=e=>typeof e=="string"||typeof e=="number"||typeof e=="boolean"||e===null||e===void 0;function nA(e,A){je[e]=A}function sA(e){var A,t,i,n,s,a;if(Array.isArray(e)){e.forEach(r=>sA(r));return}if(e){if((A=e.props)!=null&&A.children)for(let r of e.props.children)sA(r);for(let r in e.directives)(i=(t=e.directives[r]).onDestroy)==null||i.call(t,e);e.componentInstance&&e.componentInstance.onDestroy?e.componentInstance.onDestroy(e.parent,()=>{var r,h,l;(r=e.propSubscriptions)==null||r.forEach(u=>u.unsubscribe()),(h=e.effectSubscriptions)==null||h.forEach(u=>u.unsubscribe()),(l=e.effectUnmounts)==null||l.forEach(u=>{Mt(u)?u.then(o=>{o==null||o()}):u==null||u()})}):((n=e.propSubscriptions)==null||n.forEach(r=>r.unsubscribe()),(s=e.effectSubscriptions)==null||s.forEach(r=>r.unsubscribe()),(a=e.effectUnmounts)==null||a.forEach(r=>r==null?void 0:r()))}}function oA(e,A){var h,l,u;if(!je[e])throw new Error(`Component ${e} is not registered`);const t=new je[e],i={tag:e,props:{},componentInstance:t,propSubscriptions:[],propObservables:A,parent:null,directives:{},effectUnmounts:[],effectSubscriptions:[],effectMounts:[],destroy(){sA(this)},allElements:new bt};if(A){const o=(g,c="")=>{const E=(C,d,f)=>{if(C==""){i.props[d]=f;return}Ye(i.props,C+"."+d,f)};Object.entries(g).forEach(([C,d])=>{if(W(d)){const f=d;if("dependencies"in f&&f.dependencies.size==0){E(c,C,f());return}i.propSubscriptions.push(f.observable.subscribe(w=>{var S,F,N;E(c,C,w),i.directives[C]&&((F=(S=i.directives[C]).onUpdate)==null||F.call(S,w,i)),C!="tick"&&((N=t.onUpdate)==null||N.call(t,c==""?{[C]:w}:Ye({},c+"."+C,w)))}))}else Ke(d)&&C!="context"&&!wA(d)?o(d,(c?c+".":"")+C):E(c,C,d)})};o(A)}(h=t.onInit)==null||h.call(t,i.props);const n=new bt;if(A!=null&&A.isRoot&&(i.allElements=n,i.props.context.rootElement=i,(u=(l=i.componentInstance).onMount)==null||u.call(l,i),a(i)),A)for(let o in A){const g=ea(i,o);g&&(i.directives[o]=g)}function s(o,g,c){var E,C,d,f;g.props.context=o.props.context,g.parent=o,(C=(E=g.componentInstance).onMount)==null||C.call(E,g,c);for(let w in g.directives)(f=(d=g.directives[w]).onMount)==null||f.call(d,g);g.effectMounts.forEach(w=>{g.effectUnmounts.push(w(g))})}async function a(o){var g;if(o.props.attach&&(W((g=o.propObservables)==null?void 0:g.attach)?await new Promise(E=>{let C=null;o.propSubscriptions.push(o.propObservables.attach.observable.subscribe(async d=>{const f=(d==null?void 0:d.value)??d;if(!f)throw new Error(`attach in ${o.tag} is undefined or null, add a component`);C&&sA(C),C=f,await r(o,f),E(void 0)}))}):o.props.children.push(o.props.attach)),!!o.props.children)for(let c of o.props.children)c&&await r(o,c)}async function r(o,g){if(Mt(g)&&(g=await g),g instanceof X){const c=g.subscribe(E=>{if(E&&typeof E=="object"&&"elements"in E){const{elements:C,prev:d}=E,f=C.filter(w=>w!==null);if(d){f.forEach(async w=>{const S=o.props.children.indexOf(d.props.key);w instanceof X?await r(o,w):wA(w)&&(s(o,w,S+1),a(w))});return}f.forEach(async w=>{Array.isArray(w)?w.forEach(async S=>{S instanceof X?await r(o,S):wA(S)&&(s(o,S),a(S))}):w instanceof X?await r(o,w):wA(w)&&(s(o,w),a(w))})}else wA(E)?(s(o,E),a(E)):Array.isArray(E)&&E.forEach(async C=>{C instanceof X?await r(o,C):wA(C)&&(s(o,C),a(C))});n.next(void 0)});o.effectSubscriptions.push(c)}else wA(g)&&(s(o,g),await a(g))}return i}function ra(e,A){return oe(e)&&e.dependencies.size==0?e=Y(e()):W(e)||(e=Y(e)),Or(()=>{let t=[],i=new Map,n=!0;const s=a=>Array.isArray(a());return new X(a=>s(e)?e.observable.subscribe(h=>{if(n){n=!1,t.forEach(u=>u.destroy()),t=[],i.clear();const l=e();l&&l.forEach((u,o)=>{const g=A(u,o);g&&(t.push(g),i.set(o,g))}),a.next({elements:[...t]});return}if(h.type==="init"||h.type==="reset"){t.forEach(u=>sA(u)),t=[],i.clear();const l=e();l&&l.forEach((u,o)=>{const g=A(u,o);g&&(t.push(g),i.set(o,g))})}else if(h.type==="add"&&h.index!==void 0){const l=h.items.map((u,o)=>{const g=A(u,h.index+o);return g&&i.set(h.index+o,g),g}).filter(u=>u!==null);t.splice(h.index,0,...l)}else if(h.type==="remove"&&h.index!==void 0)t.splice(h.index,1).forEach(u=>{sA(u),i.delete(h.index)});else if(h.type==="update"&&h.index!==void 0&&h.items.length===1){const l=h.index,u=h.items[0];if(l>=t.length||t[l]===void 0||!i.has(l)){const o=A(u,l);o?(t.splice(l,0,o),i.set(l,o)):console.warn(`Element creation returned null for index ${l} during add-like update.`)}else{const o=t[l];sA(o);const g=A(u,l);g?(t[l]=g,i.set(l,g)):(t.splice(l,1),i.delete(l))}}a.next({elements:[...t]})}):e.observable.subscribe(h=>{const l=h.key;if(n){n=!1,t.forEach(o=>sA(o)),t=[],i.clear();const u=e();u&&Object.entries(u).forEach(([o,g])=>{const c=A(g,o);c&&(t.push(c),i.set(o,c))}),a.next({elements:[...t]});return}if(h.type==="init"||h.type==="reset"){t.forEach(o=>sA(o)),t=[],i.clear();const u=e();u&&Object.entries(u).forEach(([o,g])=>{const c=A(g,o);c&&(t.push(c),i.set(o,c))})}else if(h.type==="add"&&h.key&&h.value!==void 0){const u=A(h.value,l);u&&(t.push(u),i.set(l,u))}else if(h.type==="remove"&&h.key){const u=t.findIndex(o=>i.get(l)===o);if(u!==-1){const[o]=t.splice(u,1);sA(o),i.delete(l)}}else if(h.type==="update"&&h.key&&h.value!==void 0){const u=t.findIndex(o=>i.get(l)===o);if(u!==-1){const o=t[u];sA(o);const g=A(h.value,l);g&&(t[u]=g,i.set(l,g))}}a.next({elements:[...t]})}))})}function aa(e,A,...t){let i=null,n=-1;const s=[];let a=null;const r=l=>W(l)?l:typeof l=="function"?MA(l):Y(l);for(const l of t)if(Array.isArray(l))s.push({condition:r(l[0]),elementFn:l[1]});else if(typeof l=="function"){a=l;break}const h=[{condition:r(e),elementFn:A},...s];return new X(l=>{const u=[],o=()=>{let g=-1;for(let C=0;C<h.length;C++){const d=h[C].condition;if(d()){g=C;break}}const c=g===-1&&a,E=c?-2:g;if(E!==n)if(i&&(sA(i),i=null),n=E,c){let C=a();Mt(C)?ie(C).subscribe(d=>{i=d,l.next({type:"init",elements:[d]})}):(i=C,l.next({type:"init",elements:[i]}))}else if(g>=0){let C=h[g].elementFn();Mt(C)?ie(C).subscribe(d=>{i=d,l.next({type:"init",elements:[d]})}):(i=C,l.next({type:"init",elements:[i]}))}else l.next({elements:[]})};return h.forEach(({condition:g})=>{const c=g;u.push(c.observable.subscribe(()=>{o()}))}),o(),()=>{u.forEach(g=>g.unsubscribe()),i&&sA(i)}}).pipe(Pr())}const rA=(e,A={})=>{if(W(e))return e();const t={};for(let i in e){const n=e[i];t[i]=$e(n)?Y(n):n}for(let i in A)i in t||(t[i]=$e(A[i])?Y(A[i]):A[i]);return t},Ai=e=>A=>{const t=W(e)?e():e,i={};for(const n in A){const s=A[n],a=t[n];let r;if(typeof s=="function")ti(n,a,[s]),r=a;else if(Array.isArray(s))ti(n,a,s),r=a;else if(s&&typeof s=="object"){if(s.required&&a===void 0)throw new Error(`Missing required prop: ${n}`);if(s.type){const h=Array.isArray(s.type)?s.type:[s.type];ti(n,a,h)}if(s.validator&&!s.validator(a,t))throw new Error(`Invalid prop: custom validation failed for prop "${n}"`);a===void 0&&"default"in s?r=typeof s.default=="function"?s.default(t):s.default:r=a}i[n]=W(r)?r:Y(r)}return{...rA(t),...i}};function ti(e,A,t){if(A==null)return;const i=W(A)?A():A;if(!t.some(s=>s===Number?typeof i=="number":s===String?typeof i=="string":s===Boolean?typeof i=="boolean":s===Function?typeof i=="function":s===Object?typeof i=="object":s===Array?Array.isArray(i):s===null?i===null:i instanceof s))throw new Error(`Invalid prop: type check failed for prop "${e}". Expected ${t.map(s=>s.name).join(" or ")}`)}class is extends pA{onInit(A){}onMount(A){this.onUpdate(A.props.viewportFollow,A)}onUpdate(A,t){const{viewport:i}=t.props.context;if(!i)throw We("ViewportFollow directive requires a Viewport component to be mounted in the same context");if(A)if(A===!0)i.follow(t.componentInstance);else{const n=rA(A,{speed:void 0,acceleration:void 0,radius:void 0});i.follow(t.componentInstance,{speed:n.speed(),acceleration:n.acceleration(),radius:n.radius()})}else A===null&&i.plugins.remove("follow")}onDestroy(A){const{viewportFollow:t}=A.props,{viewport:i}=A.props.context;t&&i.plugins.remove("follow")}}yA("viewportFollow",is);var Gt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ga(e){return e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var qA={};/*!
|
|
3
|
+
`):"",this.name="UnsubscriptionError",this.errors=t}});function Ue(e,A){if(e){var t=e.indexOf(A);0<=t&&e.splice(t,1)}}var jt=function(){function e(A){this.initialTeardown=A,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var A,t,i,n,s;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var r=nt(a),h=r.next();!h.done;h=r.next()){var c=h.value;c.remove(this)}}catch(C){A={error:C}}finally{try{h&&!h.done&&(t=r.return)&&t.call(r)}finally{if(A)throw A.error}}else a.remove(this);var B=this.initialTeardown;if(V(B))try{B()}catch(C){s=C instanceof Le?C.errors:[C]}var o=this._finalizers;if(o){this._finalizers=null;try{for(var g=nt(o),l=g.next();!l.done;l=g.next()){var E=l.value;try{fn(E)}catch(C){s=s??[],C instanceof Le?s=bt(bt([],St(s)),St(C.errors)):s.push(C)}}}catch(C){i={error:C}}finally{try{l&&!l.done&&(n=g.return)&&n.call(g)}finally{if(i)throw i.error}}}if(s)throw new Le(s)}},e.prototype.add=function(A){var t;if(A&&A!==this)if(this.closed)fn(A);else{if(A instanceof e){if(A.closed||A._hasParent(this))return;A._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(A)}},e.prototype._hasParent=function(A){var t=this._parentage;return t===A||Array.isArray(t)&&t.includes(A)},e.prototype._addParent=function(A){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(A),t):t?[t,A]:A},e.prototype._removeParent=function(A){var t=this._parentage;t===A?this._parentage=null:Array.isArray(t)&&Ue(t,A)},e.prototype.remove=function(A){var t=this._finalizers;t&&Ue(t,A),A instanceof e&&A._removeParent(this)},e.EMPTY=function(){var A=new e;return A.closed=!0,A}(),e}(),Cn=jt.EMPTY;function Qn(e){return e instanceof jt||e&&"closed"in e&&V(e.remove)&&V(e.add)&&V(e.unsubscribe)}function fn(e){V(e)?e():e.unsubscribe()}var er={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},dn={setTimeout:function(e,A){for(var t=[],i=2;i<arguments.length;i++)t[i-2]=arguments[i];return setTimeout.apply(void 0,bt([e,A],St(t)))},clearTimeout:function(e){var A=dn.delegate;return((A==null?void 0:A.clearTimeout)||clearTimeout)(e)},delegate:void 0};function pn(e){dn.setTimeout(function(){throw e})}function yn(){}function $t(e){e()}var Pe=function(e){it(A,e);function A(t){var i=e.call(this)||this;return i.isStopped=!1,t?(i.destination=t,Qn(t)&&t.add(i)):i.destination=sr,i}return A.create=function(t,i,n){return new xt(t,i,n)},A.prototype.next=function(t){this.isStopped||this._next(t)},A.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},A.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},A.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},A.prototype._next=function(t){this.destination.next(t)},A.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},A.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},A}(jt),ir=function(){function e(A){this.partialObserver=A}return e.prototype.next=function(A){var t=this.partialObserver;if(t.next)try{t.next(A)}catch(i){Ae(i)}},e.prototype.error=function(A){var t=this.partialObserver;if(t.error)try{t.error(A)}catch(i){Ae(i)}else Ae(A)},e.prototype.complete=function(){var A=this.partialObserver;if(A.complete)try{A.complete()}catch(t){Ae(t)}},e}(),xt=function(e){it(A,e);function A(t,i,n){var s=e.call(this)||this,a;return V(t)||!t?a={next:t??void 0,error:i??void 0,complete:n??void 0}:a=t,s.destination=new ir(a),s}return A}(Pe);function Ae(e){pn(e)}function nr(e){throw e}var sr={closed:!0,next:yn,error:nr,complete:yn},Oe=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function Te(e){return e}function or(e){return e.length===0?Te:e.length===1?e[0]:function(t){return e.reduce(function(i,n){return n(i)},t)}}var X=function(){function e(A){A&&(this._subscribe=A)}return e.prototype.lift=function(A){var t=new e;return t.source=this,t.operator=A,t},e.prototype.subscribe=function(A,t,i){var n=this,s=ar(A)?A:new xt(A,t,i);return $t(function(){var a=n,r=a.operator,h=a.source;s.add(r?r.call(s,h):h?n._subscribe(s):n._trySubscribe(s))}),s},e.prototype._trySubscribe=function(A){try{return this._subscribe(A)}catch(t){A.error(t)}},e.prototype.forEach=function(A,t){var i=this;return t=wn(t),new t(function(n,s){var a=new xt({next:function(r){try{A(r)}catch(h){s(h),a.unsubscribe()}},error:s,complete:n});i.subscribe(a)})},e.prototype._subscribe=function(A){var t;return(t=this.source)===null||t===void 0?void 0:t.subscribe(A)},e.prototype[Oe]=function(){return this},e.prototype.pipe=function(){for(var A=[],t=0;t<arguments.length;t++)A[t]=arguments[t];return or(A)(this)},e.prototype.toPromise=function(A){var t=this;return A=wn(A),new A(function(i,n){var s;t.subscribe(function(a){return s=a},function(a){return n(a)},function(){return i(s)})})},e.create=function(A){return new e(A)},e}();function wn(e){var A;return(A=e??er.Promise)!==null&&A!==void 0?A:Promise}function rr(e){return e&&V(e.next)&&V(e.error)&&V(e.complete)}function ar(e){return e&&e instanceof Pe||rr(e)&&Qn(e)}function gr(e){return V(e==null?void 0:e.lift)}function ot(e){return function(A){if(gr(A))return A.lift(function(t){try{return e(t,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function te(e,A,t,i,n){return new hr(e,A,t,i,n)}var hr=function(e){it(A,e);function A(t,i,n,s,a,r){var h=e.call(this,t)||this;return h.onFinalize=a,h.shouldUnsubscribe=r,h._next=i?function(c){try{i(c)}catch(B){t.error(B)}}:e.prototype._next,h._error=s?function(c){try{s(c)}catch(B){t.error(B)}finally{this.unsubscribe()}}:e.prototype._error,h._complete=n?function(){try{n()}catch(c){t.error(c)}finally{this.unsubscribe()}}:e.prototype._complete,h}return A.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var i=this.closed;e.prototype.unsubscribe.call(this),!i&&((t=this.onFinalize)===null||t===void 0||t.call(this))}},A}(Pe),lr=En(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),kt=function(e){it(A,e);function A(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return A.prototype.lift=function(t){var i=new mn(this,this);return i.operator=t,i},A.prototype._throwIfClosed=function(){if(this.closed)throw new lr},A.prototype.next=function(t){var i=this;$t(function(){var n,s;if(i._throwIfClosed(),!i.isStopped){i.currentObservers||(i.currentObservers=Array.from(i.observers));try{for(var a=nt(i.currentObservers),r=a.next();!r.done;r=a.next()){var h=r.value;h.next(t)}}catch(c){n={error:c}}finally{try{r&&!r.done&&(s=a.return)&&s.call(a)}finally{if(n)throw n.error}}}})},A.prototype.error=function(t){var i=this;$t(function(){if(i._throwIfClosed(),!i.isStopped){i.hasError=i.isStopped=!0,i.thrownError=t;for(var n=i.observers;n.length;)n.shift().error(t)}})},A.prototype.complete=function(){var t=this;$t(function(){if(t._throwIfClosed(),!t.isStopped){t.isStopped=!0;for(var i=t.observers;i.length;)i.shift().complete()}})},A.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(A.prototype,"observed",{get:function(){var t;return((t=this.observers)===null||t===void 0?void 0:t.length)>0},enumerable:!1,configurable:!0}),A.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},A.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},A.prototype._innerSubscribe=function(t){var i=this,n=this,s=n.hasError,a=n.isStopped,r=n.observers;return s||a?Cn:(this.currentObservers=null,r.push(t),new jt(function(){i.currentObservers=null,Ue(r,t)}))},A.prototype._checkFinalizedStatuses=function(t){var i=this,n=i.hasError,s=i.thrownError,a=i.isStopped;n?t.error(s):a&&t.complete()},A.prototype.asObservable=function(){var t=new X;return t.source=this,t},A.create=function(t,i){return new mn(t,i)},A}(X),mn=function(e){it(A,e);function A(t,i){var n=e.call(this)||this;return n.destination=t,n.source=i,n}return A.prototype.next=function(t){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.next)===null||n===void 0||n.call(i,t)},A.prototype.error=function(t){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.error)===null||n===void 0||n.call(i,t)},A.prototype.complete=function(){var t,i;(i=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||i===void 0||i.call(t)},A.prototype._subscribe=function(t){var i,n;return(n=(i=this.source)===null||i===void 0?void 0:i.subscribe(t))!==null&&n!==void 0?n:Cn},A}(kt),ee=function(e){it(A,e);function A(t){var i=e.call(this)||this;return i._value=t,i}return Object.defineProperty(A.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),A.prototype._subscribe=function(t){var i=e.prototype._subscribe.call(this,t);return!i.closed&&t.next(this._value),i},A.prototype.getValue=function(){var t=this,i=t.hasError,n=t.thrownError,s=t._value;if(i)throw n;return this._throwIfClosed(),s},A.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},A}(kt);function cr(e){return e&&V(e.schedule)}function Dn(e){return e[e.length-1]}function Ir(e){return V(Dn(e))?e.pop():void 0}function Br(e){return cr(Dn(e))?e.pop():void 0}var vn=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Sn(e){return V(e==null?void 0:e.then)}function bn(e){return V(e[Oe])}function xn(e){return Symbol.asyncIterator&&V(e==null?void 0:e[Symbol.asyncIterator])}function kn(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function ur(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Mn=ur();function Rn(e){return V(e==null?void 0:e[Mn])}function Fn(e){return Ar(this,arguments,function(){var t,i,n,s;return un(this,function(a){switch(a.label){case 0:t=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,st(t.read())];case 3:return i=a.sent(),n=i.value,s=i.done,s?[4,st(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,st(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}})})}function Gn(e){return V(e==null?void 0:e.getReader)}function rt(e){if(e instanceof X)return e;if(e!=null){if(bn(e))return Er(e);if(vn(e))return Cr(e);if(Sn(e))return Qr(e);if(xn(e))return _n(e);if(Rn(e))return fr(e);if(Gn(e))return dr(e)}throw kn(e)}function Er(e){return new X(function(A){var t=e[Oe]();if(V(t.subscribe))return t.subscribe(A);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Cr(e){return new X(function(A){for(var t=0;t<e.length&&!A.closed;t++)A.next(e[t]);A.complete()})}function Qr(e){return new X(function(A){e.then(function(t){A.closed||(A.next(t),A.complete())},function(t){return A.error(t)}).then(null,pn)})}function fr(e){return new X(function(A){var t,i;try{for(var n=nt(e),s=n.next();!s.done;s=n.next()){var a=s.value;if(A.next(a),A.closed)return}}catch(r){t={error:r}}finally{try{s&&!s.done&&(i=n.return)&&i.call(n)}finally{if(t)throw t.error}}A.complete()})}function _n(e){return new X(function(A){pr(e,A).catch(function(t){return A.error(t)})})}function dr(e){return _n(Fn(e))}function pr(e,A){var t,i,n,s;return $o(this,void 0,void 0,function(){var a,r;return un(this,function(h){switch(h.label){case 0:h.trys.push([0,5,6,11]),t=tr(e),h.label=1;case 1:return[4,t.next()];case 2:if(i=h.sent(),!!i.done)return[3,4];if(a=i.value,A.next(a),A.closed)return[2];h.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return r=h.sent(),n={error:r},[3,11];case 6:return h.trys.push([6,,9,10]),i&&!i.done&&(s=t.return)?[4,s.call(t)]:[3,8];case 7:h.sent(),h.label=8;case 8:return[3,10];case 9:if(n)throw n.error;return[7];case 10:return[7];case 11:return A.complete(),[2]}})})}function PA(e,A,t,i,n){i===void 0&&(i=0),n===void 0&&(n=!1);var s=A.schedule(function(){t(),n?e.add(this.schedule(null,i)):this.unsubscribe()},i);if(e.add(s),!n)return s}function Nn(e,A){return A===void 0&&(A=0),ot(function(t,i){t.subscribe(te(i,function(n){return PA(i,e,function(){return i.next(n)},A)},function(){return PA(i,e,function(){return i.complete()},A)},function(n){return PA(i,e,function(){return i.error(n)},A)}))})}function Hn(e,A){return A===void 0&&(A=0),ot(function(t,i){i.add(e.schedule(function(){return t.subscribe(i)},A))})}function yr(e,A){return rt(e).pipe(Hn(A),Nn(A))}function wr(e,A){return rt(e).pipe(Hn(A),Nn(A))}function mr(e,A){return new X(function(t){var i=0;return A.schedule(function(){i===e.length?t.complete():(t.next(e[i++]),t.closed||this.schedule())})})}function Dr(e,A){return new X(function(t){var i;return PA(t,A,function(){i=e[Mn](),PA(t,A,function(){var n,s,a;try{n=i.next(),s=n.value,a=n.done}catch(r){t.error(r);return}a?t.complete():t.next(s)},0,!0)}),function(){return V(i==null?void 0:i.return)&&i.return()}})}function Ln(e,A){if(!e)throw new Error("Iterable cannot be null");return new X(function(t){PA(t,A,function(){var i=e[Symbol.asyncIterator]();PA(t,A,function(){i.next().then(function(n){n.done?t.complete():t.next(n.value)})},0,!0)})})}function vr(e,A){return Ln(Fn(e),A)}function Sr(e,A){if(e!=null){if(bn(e))return yr(e,A);if(vn(e))return mr(e,A);if(Sn(e))return wr(e,A);if(xn(e))return Ln(e,A);if(Rn(e))return Dr(e,A);if(Gn(e))return vr(e,A)}throw kn(e)}function ie(e,A){return A?Sr(e,A):rt(e)}function br(e){return!!e&&(e instanceof X||V(e.lift)&&V(e.subscribe))}function Un(e,A){return ot(function(t,i){var n=0;t.subscribe(te(i,function(s){i.next(e.call(A,s,n++))}))})}var xr=Array.isArray;function kr(e,A){return xr(A)?e.apply(void 0,bt([],St(A))):e(A)}function Mr(e){return Un(function(A){return kr(e,A)})}var Rr=Array.isArray,Fr=Object.getPrototypeOf,Gr=Object.prototype,_r=Object.keys;function Nr(e){if(e.length===1){var A=e[0];if(Rr(A))return{args:A,keys:null};if(Hr(A)){var t=_r(A);return{args:t.map(function(i){return A[i]}),keys:t}}}return{args:e,keys:null}}function Hr(e){return e&&typeof e=="object"&&Fr(e)===Gr}function Lr(e,A){return e.reduce(function(t,i,n){return t[i]=A[n],t},{})}function Pn(){for(var e=[],A=0;A<arguments.length;A++)e[A]=arguments[A];var t=Br(e),i=Ir(e),n=Nr(e),s=n.args,a=n.keys;if(s.length===0)return ie([],t);var r=new X(Ur(s,t,a?function(h){return Lr(a,h)}:Te));return i?r.pipe(Mr(i)):r}function Ur(e,A,t){return t===void 0&&(t=Te),function(i){On(A,function(){for(var n=e.length,s=new Array(n),a=n,r=n,h=function(B){On(A,function(){var o=ie(e[B],A),g=!1;o.subscribe(te(i,function(l){s[B]=l,g||(g=!0,r--),r||i.next(t(s.slice()))},function(){--a||i.complete()}))},i)},c=0;c<n;c++)h(c)},i)}}function On(e,A,t){e?PA(t,e,A):A()}function Pr(e){return new X(function(A){rt(e()).subscribe(A)})}function Tn(e,A){return ot(function(t,i){var n=0;t.subscribe(te(i,function(s){return e.call(A,s,n++)&&i.next(s)}))})}function Or(e){return ot(function(A,t){try{A.subscribe(t)}finally{t.add(e)}})}function Tr(e){e===void 0&&(e={});var A=e.connector,t=A===void 0?function(){return new kt}:A,i=e.resetOnError,n=i===void 0?!0:i,s=e.resetOnComplete,a=s===void 0?!0:s,r=e.resetOnRefCountZero,h=r===void 0?!0:r;return function(c){var B,o,g,l=0,E=!1,C=!1,f=function(){o==null||o.unsubscribe(),o=void 0},Q=function(){f(),B=g=void 0,E=C=!1},w=function(){var v=B;Q(),v==null||v.unsubscribe()};return ot(function(v,M){l++,!C&&!E&&f();var F=g=g??t();M.add(function(){l--,l===0&&!C&&!E&&(o=Je(w,h))}),F.subscribe(M),!B&&l>0&&(B=new xt({next:function(H){return F.next(H)},error:function(H){C=!0,f(),o=Je(Q,n,H),F.error(H)},complete:function(){E=!0,f(),o=Je(Q,a),F.complete()}}),rt(v).subscribe(B))})(c)}}function Je(e,A){for(var t=[],i=2;i<arguments.length;i++)t[i-2]=arguments[i];if(A===!0){e();return}if(A!==!1){var n=new xt({next:function(){n.unsubscribe(),e()}});return rt(A.apply(void 0,bt([],St(t)))).subscribe(n)}}function Jn(){return typeof window<"u"}function at(){return typeof performance<"u"?performance.now():Date.now()}function Mt(e){return 1e3/e}function qA(e){return e&&e instanceof Promise}function ne(e,A){if(e.length!==A.length)return!1;for(let t=0;t<e.length;t++){const i=e[t],n=A[t];if(typeof i=="object"&&i!==null){if(typeof n!="object"||n===null)return!1;if(Array.isArray(i)){if(!Array.isArray(n)||!ne(i,n))return!1}else if(!Kn(i,n))return!1}else if(i!==n)return!1}return!0}function Kn(e,A){const t=Object.keys(e),i=Object.keys(A);if(t.length!==i.length)return!1;for(let n of t)if(!A.hasOwnProperty(n)||!Jr(e[n],A[n]))return!1;return!0}function Jr(e,A){return e===A?!0:typeof e!=typeof A?!1:typeof e=="object"&&e!==null?Array.isArray(e)?Array.isArray(A)&&ne(e,A):Kn(e,A):!1}function Yn(e){return{}.toString.call(e)==="[object Function]"}function Ke(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)&&e.constructor===Object}function Wn(e){return e instanceof X}function Ye(e,A,t,i=!1){if(Object(e)!==e)return e;typeof A=="string"&&(A=A.split("."));let n=A.length;if(!n)return e;let s=e;for(let a=0;a<n-1;a++){let r=A[a],h=A[a+1],c=!isNaN(Number(h))&&isFinite(Number(h));(!s[r]||typeof s[r]!="object")&&(s[r]=c&&!i?[]:{}),s=s[r]}return s[A[n-1]]=t,e}function Kr(e,A){const t=A.split(".");let i=e;for(let n of t){if(i[n]===void 0)return;i=i[n]}return i}function Yr(e){console.log(e)}function We(e){console.error(e)}function gt(e,A){typeof A=="number"?e.set(A):Array.isArray(A)?e.set(A[0],A[1]):Ke(A)&&"value"in A?e.set(A.value.x,A.value.y):e.set(A.x,A.y)}function Xn(e,A,t,i){const n=e-t,s=A-i;return Math.sqrt(n*n+s*s)}const Wr=Object.freeze(Object.defineProperty({__proto__:null,arrayEquals:ne,calculateDistance:Xn,error:We,fps2ms:Mt,get:Kr,isBrowser:Jn,isFunction:Yn,isObject:Ke,isObservable:Wn,isPromise:qA,log:Yr,preciseNow:at,set:Ye,setObservablePoint:gt},Symbol.toStringTag,{value:"Module"}));class Xe{constructor(){this.boundKeys={},this.stop=!1,this._controlsOptions={},this.serverFps=60}start(){this.setupListeners(),this.interval=setInterval(()=>{this.preStep()},Mt(this.serverFps??60))}destroy(){this.interval&&clearInterval(this.interval),this.cleanup()}bindKey(A,t,i,n){Array.isArray(A)||(A=[A]);const s=Object.assign({repeat:!1},i);A.forEach(a=>{this.boundKeys[a]={actionName:t,options:s,parameters:n}})}applyInput(A){const t=this.boundKeys[A];if(!t)return;const{repeat:i,keyDown:n}=t.options;if(n){let s=t.parameters;typeof s=="function"&&(s=s()),n(t)}}getControl(A){return this.boundKeys[A]}getControls(){return this.boundKeys}stopInputs(){this.stop=!0}listenInputs(){this.stop=!1}setInputs(A){if(A){this.boundKeys={};for(let t in A){const i=A[t],{bind:n}=i;let s=n;Array.isArray(s)||(s=[n]);for(let a of s)this.bindKey(a,t,i)}this._controlsOptions=A}}get options(){return this._controlsOptions}}var Vn=(e=>(e.Break="break",e.Backspace="backspace",e.Tab="tab",e.Clear="clear",e.Enter="enter",e.Shift="shift",e.Ctrl="ctrl",e.Alt="alt",e.Pause="pause/break",e.CapsLock="caps lock",e.Escape="escape",e.Conversion="conversion",e.NonConversion="non-conversion",e.Space="space",e.PageUp="page up",e.PageDown="page down",e.End="end",e.Home="home",e[e.Left=4]="Left",e[e.Up=1]="Up",e[e.Right=2]="Right",e[e.Down=3]="Down",e.Select="select",e.Print="print",e.Execute="execute",e.PrintScreen="Print Screen",e.Insert="insert",e.Delete="delete",e.Zero="0",e.One="1",e.Two="2",e.Three="3",e.Four="4",e.Five="5",e.Six="6",e.Seven="7",e.Height="8",e.Nine="9",e.Equal="=",e.Semicolon="semicolon (firefox), equals",e.LessThan="<",e.Equals="equals (firefox)",e.Beta="ß",e.At="@",e.A="a",e.B="b",e.C="c",e.D="d",e.E="e",e.F="f",e.G="g",e.H="h",e.I="i",e.J="j",e.K="k",e.L="l",e.M="m",e.N="n",e.O="o",e.P="p",e.Q="q",e.R="r",e.S="s",e.T="t",e.U="u",e.V="v",e.W="w",e.X="x",e.Y="y",e.Z="z",e.SearchKey="Windows Key / Left ⌘ / Chromebook Search key",e.NumPad0="numpad 0",e.NumPad1="numpad 1",e.NumPad2="numpad 2",e.NumPad3="numpad 3",e.NumPad4="numpad 4",e.NumPad5="numpad 5",e.NumPad6="numpad 6",e.NumPad7="numpad 7",e.NumPad8="numpad 8",e.NumPad9="numpad 9",e.Multiply="multiply",e.Add="add",e.Subtract="subtract",e.DecimalPoint="decimal point",e.Divide="divide",e.F1="f1",e.F2="f2",e.F3="f3",e.F4="f4",e.F5="f5",e.F6="f6",e.F7="f7",e.F8="f8",e.F9="f9",e.F10="f10",e.F11="f11",e.F12="f12",e.F13="f13",e.F14="f14",e.F15="f15",e.F16="f16",e.F17="f17",e.F18="f18",e.F19="f19",e.F20="f20",e.F21="f21",e.F22="f22",e.F23="f23",e.F24="f24",e.NumLock="num lock",e.ScrollLock="scroll lock",e.CircumflexAccent="^",e.ExclamationMark="!",e.Hash="#",e.Dollar="$",e.AccentU="ù",e.PageBackward="page backward",e.PageForWard="page forward",e.Star="*",e.DecreaseVolume="decrease volume level",e.IncreaseVolume="increase volume level",e.Next="next",e.Previous="previous",e.Stop="stop",e.PlayPause="play/pause",e.Email="e-mail",e.SemiColon="semi-colon / ñ",e.EqualSign="equal sign",e.Comma="comma",e.Dash="dash",e.FowardSlach="forward slash / ç",e.GraveAccent="grave accent / ñ / æ",e.OpenBracket="open bracket",e.BackSlach="back slash",e.CloseBracket="close bracket / å",e.SingleQuote="single quote / ø",e.BackQuote="`",e.Altgr="altgr",e))(Vn||{});const qn={3:"break",8:"backspace",9:"tab",12:"clear",13:"enter",16:"shift",17:"ctrl",18:"alt",19:"pause/break",20:"caps lock",27:"escape",28:"conversion",29:"non-conversion",32:"space",33:"page up",34:"page down",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",41:"select",42:"print",43:"execute",44:"Print Screen",45:"insert",46:"delete",48:"n0",49:"n1",50:"n2",51:"n3",52:"n4",53:"n5",54:"n6",55:"n7",56:"n8",57:"n9",58:":",59:"semicolon (firefox), equals",60:"<",61:"equals (firefox)",63:"ß",64:"@",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",91:"Windows Key / Left ⌘ / Chromebook Search key",92:"right window key",93:"Windows Menu / Right ⌘",96:"numpad 0",97:"numpad 1",98:"numpad 2",99:"numpad 3",100:"numpad 4",101:"numpad 5",102:"numpad 6",103:"numpad 7",104:"numpad 8",105:"numpad 9",106:"multiply",107:"add",108:"numpad period (firefox)",109:"subtract",110:"decimal point",111:"divide",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",124:"f13",125:"f14",126:"f15",127:"f16",128:"f17",129:"f18",130:"f19",131:"f20",132:"f21",133:"f22",134:"f23",135:"f24",144:"num lock",145:"scroll lock",160:"^",161:"!",163:"#",164:"$",165:"ù",166:"page backward",167:"page forward",169:"closing paren (AZERTY)",170:"*",171:"~ + * key",173:"minus (firefox), mute/unmute",174:"decrease volume level",175:"increase volume level",176:"next",177:"previous",178:"stop",179:"play/pause",180:"e-mail",181:"mute/unmute (firefox)",182:"decrease volume level (firefox)",183:"increase volume level (firefox)",186:"semi-colon / ñ",187:"equal sign",188:"comma",189:"dash",190:"period",191:"forward slash / ç",192:"grave accent / ñ / æ",193:"?, / or °",194:"numpad period (chrome)",219:"open bracket",220:"back slash",221:"close bracket / å",222:"single quote / ø",223:"`",224:"left or right ⌘ key (firefox)",225:"altgr",226:"< /git >",230:"GNOME Compose Key",231:"ç",233:"XF86Forward",234:"XF86Back",240:"alphanumeric",242:"hiragana/katakana",243:"half-width/full-width",244:"kanji",255:"toggle touchpad"},Zn=(e=>{const A={};for(let t in e){const i=e[t];A[i]=t}return A})(qn);class zn extends Xe{constructor(){super(...arguments),this.keyState={},this.lastKeyPressed=null,this.directionState={up:!1,down:!1,left:!1,right:!1}}setupListeners(){document.addEventListener("keydown",A=>{this.onKeyChange(A,!0)}),document.addEventListener("keyup",A=>{this.onKeyChange(A,!1)})}cleanup(){document.removeEventListener("keydown",A=>{this.onKeyChange(A,!0)}),document.removeEventListener("keyup",A=>{this.onKeyChange(A,!1)})}preStep(){if(this.stop)return;const A=this.getDirection();if(A!=="none"){const t=this.boundKeys[A];if(t){const{keyDown:i}=t.options;i&&this.applyInput(A)}}else{const t=Object.keys(this.boundKeys);for(let i of t)this.applyInput(i)}}applyInput(A){const t=this.keyState[A];if(!t)return;const{isDown:i,count:n}=t;if(i){const s=this.boundKeys[A];if(!s)return;const{repeat:a,keyDown:r}=s.options;if(a||n==0){let h=s.parameters;typeof h=="function"&&(h=h()),r&&r(s),this.keyState[A].count++}}}applyKeyDown(A){const t=Zn[A],i=new Event("keydown");i.keyCode=t,this.onKeyChange(i,!0)}applyKeyUp(A){const t=Zn[A],i=new Event("keyup");i.keyCode=t,this.onKeyChange(i,!1)}applyKeyPress(A){return new Promise(t=>{this.applyKeyDown(A),setTimeout(()=>{this.applyKeyUp(A),t()},200)})}onKeyChange(A,t){A=A||window.event;const i=qn[A.keyCode];if(i&&this.boundKeys[i]){if(this.keyState[i]==null&&(this.keyState[i]={count:0,isDown:!0}),this.keyState[i].isDown=t,!t){this.keyState[i].count=0;const{keyUp:n}=this.boundKeys[i].options;n&&n(this.boundKeys[i])}this.lastKeyPressed=t?A.keyCode:null}i&&this.updateDirectionState(i,t)}updateDirectionState(A,t){switch(A){case"up":this.directionState.up=t;break;case"down":this.directionState.down=t;break;case"left":this.directionState.left=t;break;case"right":this.directionState.right=t;break}}getDirection(){const{up:A,down:t,left:i,right:n}=this.directionState;return A&&i?"up_left":A&&n?"up_right":t&&i?"down_left":t&&n?"down_right":A?"up":t?"down":i?"left":n?"right":"none"}async applyControl(A,t){const i=this._controlsOptions[A];if(i){const n=Array.isArray(i.bind)?i.bind[0]:i.bind;t===void 0?await this.applyKeyPress(n):t?this.applyKeyDown(n):this.applyKeyUp(n)}}listenInputs(){super.listenInputs(),this.keyState={}}}var BA={events:{},publish:function(A,t){this.events.hasOwnProperty(A)&&this.events[A].forEach(function(i){return i(t)})},subscribe:function(A,t){return this.events.hasOwnProperty(A)||(this.events[A]=[]),this.events[A].push(t),{unsubscribe:(function(){var i=this.events[A].indexOf(t);i!==-1&&this.events[A].splice(i,1)}).bind(this)}}},Y={CONNECT:{NATIVE:"gamepadconnected",ALIAS:"connect"},DISCONNECT:{NATIVE:"gamepaddisconnected",ALIAS:"disconnect"},BUTTON_PRESS:{NATIVE:null,ALIAS:"button_press"},BUTTON_RELEASE:{NATIVE:null,ALIAS:"button_release"},AXIS_MOVEMENT:{NATIVE:null,ALIAS:"axis_move"}},ht={LEFT:{NAME:"left_stick",AXES:{X:0,Y:1}},RIGHT:{NAME:"right_stick",AXES:{X:2,Y:3}}},se={LEFT:"left",RIGHT:"right",TOP:"top",BOTTOM:"bottom"},Xr={button_0:0,button_1:1,button_2:2,button_3:3,button_4:4,button_5:5,button_6:6,button_7:7,button_8:8,button_9:9,button_10:10,button_11:11,button_12:12,button_13:13,button_14:14,button_15:15,button_16:16,button_17:17},Vr=.8,jn=function(e){console.warn&&typeof console.warn=="function"?console.warn(e):console.log(e)},qr=function(e,A){var t=[];return Object.keys(A).forEach(function(i){(A[i]===e||Array.isArray(A[i])&&A[i].indexOf(e)!==-1)&&t.push(i)}),t},Zr=function(e){return!!e&&!!e.type&&!!e.playEffect&&typeof e.playEffect=="function"||!1},zr=function(){return!!window.navigator.getGamepads&&typeof window.navigator.getGamepads=="function"||!1},hA={loopStarted:!1,instances:{},buttonEvents:{joypad:[]},settings:{axisMovementThreshold:Vr},remove:function(A){return delete this.instances[A]},on:function(A,t){switch(A){case Y.CONNECT.ALIAS:return BA.subscribe(Y.CONNECT.ALIAS,t);case Y.DISCONNECT.ALIAS:return BA.subscribe(Y.DISCONNECT.ALIAS,t);case Y.BUTTON_PRESS.ALIAS:return BA.subscribe(Y.BUTTON_PRESS.ALIAS,t);case Y.BUTTON_RELEASE.ALIAS:return BA.subscribe(Y.BUTTON_RELEASE.ALIAS,t);case Y.AXIS_MOVEMENT.ALIAS:return BA.subscribe(Y.AXIS_MOVEMENT.ALIAS,t)}},vibrate:function(A,t){var i=A.vibrationActuator,n=t||this.settings.vibration;if(Zr(i)){var s=i.type;return A.vibrationActuator.playEffect(s,n)}jn("No vibration actuator interface found - https://developer.mozilla.org/en-US/docs/Web/API/GamepadHapticActuator")},set:function(A){var t=A.axisMovementThreshold,i=A.vibration,n=A.customButtonMapping,s=parseFloat(t);isNaN(s)||(this.settings.axisMovementThreshold=s),this.settings.vibration=i,this.settings.customButtonMapping=n},trigger:function(A,t){return BA.publish(A,t)}},jr=function(e){e.buttons.forEach(function(A,t){var i=hA.settings.customButtonMapping,n=i||Xr,s=qr(t,n),a=hA.buttonEvents;s.length&&s.forEach(function(r){A.pressed?(a.joypad[e.index][r]||(a.joypad[e.index][r]={pressed:!0,hold:!1,released:!1}),a.joypad[e.index][r].button=A,a.joypad[e.index][r].index=t,a.joypad[e.index][r].gamepad=e):!A.pressed&&a.joypad[e.index][r]&&(a.joypad[e.index][r].released=!0,a.joypad[e.index][r].hold=!1)})})},$r=function(e){var A=function(a){return new CustomEvent(Y.AXIS_MOVEMENT.ALIAS,{detail:a})},t=hA.settings.axisMovementThreshold,i=e.axes,n=i.length,s=n/2;i.forEach(function(a,r){if(Math.abs(a)>t){var h=null,c=null,B=a;h=r<s?ht.LEFT.NAME:ht.RIGHT.NAME,(r===ht.LEFT.AXES.X||r===ht.RIGHT.AXES.X)&&(c=a<0?se.LEFT:se.RIGHT),(r===ht.LEFT.AXES.Y||r===ht.RIGHT.AXES.Y)&&(c=a<0?se.TOP:se.BOTTOM);var o={gamepad:e,totalSticks:s,stickMoved:h,directionOfMovement:c,axisMovementValue:B,axis:r};return window.dispatchEvent(A(o))}})},Aa=function(e,A){A[e].pressed?($n(Y.BUTTON_PRESS.ALIAS,A,e),A[e].pressed=!1,A[e].hold=!0,A[e].last_event=Y.BUTTON_PRESS.ALIAS):A[e].hold||A[e].released&&A[e].last_event===Y.BUTTON_PRESS.ALIAS&&($n(Y.BUTTON_RELEASE.ALIAS,A,e),delete A[e])},Ve={id:null,start:function(){var A=window.requestAnimationFrame||window.webkitRequestAnimationFrame,t=hA.buttonEvents,i=window.navigator.getGamepads();i=Array.prototype.slice.call(i),i.forEach(function(n,s){n&&(t.joypad[s]||(t.joypad[s]={}),hA.instances[s]=n,jr(n),$r(n))}),t.joypad.forEach(function(n){n&&Object.keys(n).forEach(function(s){Aa(s,n)})}),this.id=A(this.start.bind(this))},stop:function(A){var t=window.cancelAnimationFrame||window.webkitCancelAnimationFrame;return t(A)}},ta=function(){window.addEventListener(Y.CONNECT.NATIVE,function(e){if(BA.publish(Y.CONNECT.ALIAS,e),!hA.loopStarted)return hA.loopStarted=!0,Ve.start()}),window.addEventListener(Y.DISCONNECT.NATIVE,function(e){if(BA.publish(Y.DISCONNECT.ALIAS,e),hA.remove(e.gamepad.index),hA.buttonEvents.joypad[e.gamepad.index]=null,!Object.keys(hA.instances).length)return hA.loopStarted=!1,Ve.stop(Ve.id)}),window.addEventListener(Y.BUTTON_PRESS.ALIAS,function(e){return BA.publish(Y.BUTTON_PRESS.ALIAS,e)}),window.addEventListener(Y.BUTTON_RELEASE.ALIAS,function(e){return BA.publish(Y.BUTTON_RELEASE.ALIAS,e)}),window.addEventListener(Y.AXIS_MOVEMENT.ALIAS,function(e){return BA.publish(Y.AXIS_MOVEMENT.ALIAS,e)})},$n=function(e,A,t){var i=function(h){return new CustomEvent(e,{detail:h})},n=A[t],s=n.index,a=n.gamepad,r={buttonName:t,button:A[t].button,index:s,gamepad:a};window.dispatchEvent(i(r))};ta(),zr()?window.joypad=hA:(window.joypad={},jn("Your browser does not support the Gamepad API - https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API"));const qe={button_0:"action",button_1:"back",button_9:"back"},Ze={top:"up",bottom:"down",left:"left",right:"right"};class As extends Xe{constructor(){super(...arguments),this.gamepadEnabled=!0,this.gamepadConfig={enabled:!0,buttonMapping:qe,axisMapping:Ze,axisThreshold:.5,moveInterval:400},this.gamepadMoving=!1,this.gamepadDirections={},this.gamepadAxisDate=0,this.gamepadMoveInterval=null,this.joypad=null,this.connectCallbacks=[],this.disconnectCallbacks=[]}setupListeners(){this.initGamepad()}cleanup(){this.gamepadMoveInterval&&(clearInterval(this.gamepadMoveInterval),this.gamepadMoveInterval=null)}initGamepad(){if(typeof window>"u")return;const A=window.joypad;if(!A){this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!1);return}this.joypad=A,this.joypad.on("connect",()=>this.handleGamepadConnect()),this.joypad.on("disconnect",()=>this.handleGamepadDisconnect()),this.joypad.on("button_press",t=>this.handleGamepadButtonPress(t)),this.joypad.on("axis_move",t=>this.handleGamepadAxisMove(t))}handleGamepadConnect(){!this.gamepadEnabled||!this.gamepadConfig.enabled||(this.gamepadMoveInterval=setInterval(()=>{this.processGamepadMovement()},this.gamepadConfig.moveInterval||400),this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!0),this.connectCallbacks.forEach(A=>A()))}handleGamepadDisconnect(){this.gamepadMoveInterval&&(clearInterval(this.gamepadMoveInterval),this.gamepadMoveInterval=null),this.gamepadMoving=!1,this.gamepadDirections={},this.gamepadAxisDate=0,this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!1),this.disconnectCallbacks.forEach(A=>A())}handleGamepadButtonPress(A){if(!this.gamepadEnabled||!this.gamepadConfig.enabled||this.stop)return;const{buttonName:t}=A.detail,n=(this.gamepadConfig.buttonMapping||qe)[t];n&&this.applyControl(n).catch(()=>{})}handleGamepadAxisMove(A){if(!this.gamepadEnabled||!this.gamepadConfig.enabled||this.stop)return;this.gamepadMoving=!0,this.gamepadAxisDate=Date.now();let t=A.detail.directionOfMovement;const i=this.gamepadConfig.axisMapping||Ze;t==="top"?t=i.top||"up":t==="bottom"?t=i.bottom||"down":t==="left"?t=i.left||"left":t==="right"&&(t=i.right||"right"),this.gamepadDirections={[t]:!0};const n=["up","down","left","right"];for(const s of n)this.gamepadDirections[s]||this.applyControl(s,!1).catch(()=>{});this.processGamepadMovement()}processGamepadMovement(){if(this.gamepadMoving&&!this.stop)for(const A in this.gamepadDirections)this.gamepadDirections[A]&&this.applyControl(A,!0).catch(()=>{})}preStep(){if(this.stop)return;if(Date.now()-this.gamepadAxisDate>100&&this.gamepadMoving){const t=["up","down","left","right"];for(const i of t)this.gamepadDirections={},this.gamepadMoving=!1,this.applyControl(i,!1).catch(()=>{})}}updateGamepadConfig(A){this.gamepadConfig.onConnect&&this.offConnect(this.gamepadConfig.onConnect),this.gamepadConfig.onDisconnect&&this.offDisconnect(this.gamepadConfig.onDisconnect),this.gamepadConfig={enabled:A.enabled!==void 0?A.enabled:!0,buttonMapping:A.buttonMapping||qe,axisMapping:A.axisMapping||Ze,axisThreshold:A.axisThreshold||.5,moveInterval:A.moveInterval||400,onConnect:A.onConnect,onDisconnect:A.onDisconnect,gamepadConnected:A.gamepadConnected},this.gamepadConfig.onConnect&&this.onConnect(this.gamepadConfig.onConnect),this.gamepadConfig.onDisconnect&&this.onDisconnect(this.gamepadConfig.onDisconnect)}extractGamepadConfig(A){A.gamepad&&this.updateGamepadConfig(A.gamepad)}getGamepadConfig(){return this.gamepadConfig}async applyControl(A,t){if(!this._controlsOptions[A])return;const n=Object.keys(this.boundKeys);for(const s of n){const a=this.boundKeys[s];if(a.actionName===String(A)){if(t===void 0){if(a.options.keyDown){let r=a.parameters;typeof r=="function"&&(r=r()),a.options.keyDown(a)}return new Promise(r=>{setTimeout(()=>{if(a.options.keyUp){let h=a.parameters;typeof h=="function"&&(h=h()),a.options.keyUp(a)}r()},200)})}else if(t){if(a.options.keyDown){let r=a.parameters;typeof r=="function"&&(r=r()),a.options.keyDown(a)}}else if(a.options.keyUp){let r=a.parameters;typeof r=="function"&&(r=r()),a.options.keyUp(a)}break}}}setInputs(A){super.setInputs(A),this.extractGamepadConfig(A)}onConnect(A){this.connectCallbacks.push(A)}onDisconnect(A){this.disconnectCallbacks.push(A)}offConnect(A){const t=this.connectCallbacks.indexOf(A);t>-1&&this.connectCallbacks.splice(t,1)}offDisconnect(A){const t=this.disconnectCallbacks.indexOf(A);t>-1&&this.disconnectCallbacks.splice(t,1)}isConnected(){return this.gamepadMoveInterval!==null}reinit(){this.joypad||this.initGamepad()}}const ze={};class pA{}function yA(e,A){ze[e]=A}function ea(e,A){var i;if(!ze[A])return null;const t=new ze[A];return(i=t.onInit)==null||i.call(t,e),t}class ts extends pA{constructor(){super(...arguments),this.keyboardControls=null,this.gamepadControls=null}onInit(A){var n;const t=((n=A.props.controls)==null?void 0:n.value)??A.props.controls;if(!t)return;this.keyboardControls=new zn,this.keyboardControls.setInputs(t),this.keyboardControls.start();const i=t.gamepad;i!==void 0&&i.enabled!==!1&&(this.gamepadControls=new As,this.gamepadControls.setInputs(t),this.gamepadControls.start())}onMount(A){}onUpdate(A){var i;const t=((i=A.controls)==null?void 0:i.value)??A.controls;t&&(this.keyboardControls&&this.keyboardControls.setInputs(t),this.gamepadControls&&this.gamepadControls.setInputs(t))}onDestroy(A){this.keyboardControls&&(this.keyboardControls.destroy(),this.keyboardControls=null),this.gamepadControls&&(this.gamepadControls.destroy(),this.gamepadControls=null)}getControl(A){var t;return(t=this.keyboardControls)==null?void 0:t.getControl(A)}getControls(){var A;return((A=this.keyboardControls)==null?void 0:A.getControls())||{}}async applyControl(A,t){this.keyboardControls&&await this.keyboardControls.applyControl(A,t),this.gamepadControls&&await this.gamepadControls.applyControl(A,t)}stopInputs(){this.keyboardControls&&this.keyboardControls.stopInputs(),this.gamepadControls&&this.gamepadControls.stopInputs()}listenInputs(){this.keyboardControls&&this.keyboardControls.listenInputs(),this.gamepadControls&&this.gamepadControls.listenInputs()}get options(){var A;return((A=this.keyboardControls)==null?void 0:A.options)||{}}get keyboard(){return this.keyboardControls}get gamepad(){return this.gamepadControls}}yA("controls",ts);class es extends pA{constructor(){super(...arguments),this.fps=60,this.deltaTime=0,this.frame=0,this.timestamp=0,this.requestedDelay=0,this.lastTimestamp=0,this._stop=!1}onInit(A){var t;this.tick=(t=A.propObservables)==null?void 0:t.tick}onDestroy(){}onMount(A){}onUpdate(A){}nextTick(A){this.lastTimestamp=this.lastTimestamp||this.timestamp,this.deltaTime=at()-this.timestamp,this.timestamp=A,this.tick.set({timestamp:this.timestamp,deltaTime:this.deltaTime,frame:this.frame,deltaRatio:~~this.deltaTime/~~Mt(this.fps)}),this.lastTimestamp=this.timestamp,this.frame++}start(A={}){A.maxFps&&(this.maxFps=A.maxFps),A.fps&&(this.fps=A.fps),A.delay&&(this.requestedDelay=A.delay);const t=i=>{Jn()?window.requestAnimationFrame(i.bind(this)):setTimeout(()=>{this.requestedDelay=0,i(at())},Mt(this.fps)+this.requestedDelay)};if(this.maxFps){const i=Mt(this.maxFps);let n=at(),s=at();const a=r=>{if(this._stop)return;t(a),n=at();const h=n-s;h>i&&(s=n-h%i,this.nextTick(r))};t(a)}else{const i=n=>{t(i),this.nextTick(n)};t(i)}return this}stop(){this._stop=!0}}yA("tick",es);var ia=Object.defineProperty,$=(e,A)=>ia(e,"name",{value:A,configurable:!0}),Rt=(pt=class extends ee{constructor(t=[]){super({type:"init",items:t});Bn(this,"_items",[]);this.createProxy(t)}createProxy(t){this._items=new Proxy(t,{get:$((i,n,s)=>{const a=i[n];return typeof a=="function"?(...r)=>{let h="update",c,B=!1,o=[],g=!0;switch(n){case"push":c=i.length,h="add",B=!0;break;case"pop":c=i.length-1,h="remove",B=!0;break;case"unshift":c=0,h="add",B=!0;break;case"shift":c=0,h="remove",B=!0;break;case"splice":c=r[0];const E=r[1],C=r.slice(2);o=C,E>0&&C.length===0?h="remove":E===0&&C.length>0?h="add":E===0&&C.length===0?g=!1:h="update",B=!0;break}const l=a.apply(i,r);return B&&g&&(n==="splice"?this.next({type:h,index:c,items:o}):this.next({type:h,index:c,items:r})),l}:Reflect.get(i,n,s)},"get"),set:$((i,n,s)=>{const a=isNaN(Number(n))?void 0:Number(n);return i[n]=s,this.next({type:"update",index:a,items:[s]}),!0},"set")})}get items(){return this._items}set items(t){this.createProxy(t),this.next({type:"reset",items:t})}},$(pt,"ArraySubject"),pt),na=$(e=>"_items"in e,"isArraySubject"),Ft=(yt=class extends ee{constructor(t={}){super({type:"init",value:t});Bn(this,"_obj");this.createProxy(t)}createProxy(t){this._obj=new Proxy(t,{get:$((i,n,s)=>Reflect.get(i,n,s),"get"),set:$((i,n,s,a)=>{const r=n,h=r in i?"update":"add";return i[r]=s,this.next({type:h,key:r,value:s}),!0},"set"),deleteProperty:$((i,n)=>{const s=n;if(s in i){const a=i[s];return delete i[s],this.next({type:"remove",key:s,value:a}),!0}return!1},"deleteProperty")})}get obj(){return this._obj}set obj(t){this.createProxy(t),this.next({type:"reset",value:t})}},$(yt,"ObjectSubject"),yt),sa=$(e=>"_obj"in e,"isObjectSubject"),oa=$(()=>{const e="__REACTIVE_STORE__";if(typeof globalThis<"u")return globalThis[e]||(globalThis[e]={currentDependencyTracker:null,currentSubscriptionsTracker:null}),globalThis[e];let A;if(typeof window<"u")A=window;else if(typeof process<"u"&&process.versions&&process.versions.node)A=Function("return this")();else if(typeof self<"u")A=self;else return console.warn("Unable to find global object, using local instance"),{currentDependencyTracker:null,currentSubscriptionsTracker:null};return A[e]||(A[e]={currentDependencyTracker:null,currentSubscriptionsTracker:null}),A[e]},"getGlobalReactiveStore"),OA=oa(),is=$(e=>{OA.currentDependencyTracker&&OA.currentDependencyTracker(e)},"trackDependency");function W(e){let A;Array.isArray(e)?A=new Rt(e):typeof e=="object"&&e!==null?A=new Ft(e):A=new ee(e);const t=$(()=>A instanceof Rt?A.items:A instanceof Ft?A.obj:A.value,"getValue"),i=$(function(){return is(i),t()},"fn");return i.set=n=>{A instanceof Rt?A.items=n:A instanceof Ft?A.obj=n:A.next(n)},i._isFrozen=!1,i.freeze=()=>{i._isFrozen=!0},i.unfreeze=()=>{i._isFrozen=!1,A instanceof Rt?A.next({type:"init",items:A.items}):A instanceof Ft?A.next({type:"init",value:A.obj}):A.next(A.value)},i.mutate=n=>{const s=t();n(s)},i.update=n=>{const s=n(t());i.set(s)},i.observable=A.asObservable().pipe(Tn(()=>!i._isFrozen)),i._subject=A,i}$(W,"signal");function J(e){return!!(e&&e.observable)}$(J,"isSignal");function oe(e){return J(e)&&!!e.dependencies}$(oe,"isComputed");function MA(e,A){var h;const t=new Set;let i=!0,n;const s=OA.currentDependencyTracker;OA.currentDependencyTracker=c=>{t.add(c)},n=e(),e.isEffect&&(A=n),OA.currentDependencyTracker=s;const a=Pn([...t].map(c=>c.observable)).pipe(Tn(()=>!i),Un(()=>e()),Or(()=>A==null?void 0:A())),r=$(function(){return is(r),n},"fn");return r.observable=a,r.subscription=a.subscribe(c=>{n=c}),r.dependencies=t,(h=OA.currentSubscriptionsTracker)==null||h.call(OA,r.subscription),i=!1,r}$(MA,"computed");function AA(e){return e.isEffect=!0,MA(e)}$(AA,"effect");const je={},wA=e=>e&&typeof e=="object"&&"tag"in e&&"props"in e&&"componentInstance"in e,$e=e=>typeof e=="string"||typeof e=="number"||typeof e=="boolean"||e===null||e===void 0;function sA(e,A){je[e]=A}function oA(e){var A,t,i,n,s,a;if(Array.isArray(e)){e.forEach(r=>oA(r));return}if(e){if((A=e.props)!=null&&A.children)for(let r of e.props.children)oA(r);for(let r in e.directives)(i=(t=e.directives[r]).onDestroy)==null||i.call(t,e);e.componentInstance&&e.componentInstance.onDestroy?e.componentInstance.onDestroy(e.parent,()=>{var r,h,c;(r=e.propSubscriptions)==null||r.forEach(B=>B.unsubscribe()),(h=e.effectSubscriptions)==null||h.forEach(B=>B.unsubscribe()),(c=e.effectUnmounts)==null||c.forEach(B=>{qA(B)?B.then(o=>{o==null||o()}):B==null||B()})}):((n=e.propSubscriptions)==null||n.forEach(r=>r.unsubscribe()),(s=e.effectSubscriptions)==null||s.forEach(r=>r.unsubscribe()),(a=e.effectUnmounts)==null||a.forEach(r=>r==null?void 0:r()))}}function rA(e,A){var o,g,l;if(!je[e])throw new Error(`Component ${e} is not registered`);const t=new je[e],i={tag:e,props:{},componentInstance:t,propSubscriptions:[],propObservables:A,parent:null,directives:{},effectUnmounts:[],effectSubscriptions:[],effectMounts:[],destroy(){oA(this)},allElements:new kt};if(A){const E=(C,f="")=>{const Q=(w,v,M)=>{if(w==""){i.props[v]=M;return}Ye(i.props,w+"."+v,M)};Object.entries(C).forEach(([w,v])=>{if(J(v)){const M=v;if("dependencies"in M&&M.dependencies.size==0){Q(f,w,M());return}i.propSubscriptions.push(M.observable.subscribe(F=>{var H,Z,iA;Q(f,w,F),i.directives[w]&&((Z=(H=i.directives[w]).onUpdate)==null||Z.call(H,F,i)),w!="tick"&&((iA=t.onUpdate)==null||iA.call(t,f==""?{[w]:F}:Ye({},f+"."+w,F)))}))}else Ke(v)&&w!="context"&&!wA(v)?E(v,(f?f+".":"")+w):Q(f,w,v)})};E(A)}(o=t.onInit)==null||o.call(t,i.props);const n=new kt;if(A!=null&&A.isRoot&&(i.allElements=n,i.props.context.rootElement=i,(l=(g=i.componentInstance).onMount)==null||l.call(g,i),c(i)),A)for(let E in A){const C=ea(i,E);C&&(i.directives[E]=C)}async function s(E){return(await Promise.all(E.map(async f=>J(f)?f():qA(f)?await f:f))).every(f=>f!==void 0)}function a(E,C,f,Q){const w=f.filter(F=>J(F));if(f.filter(F=>qA(F)),w.length===0)return;const v=w.map(F=>F.observable),M=Pn(v).subscribe(async()=>{if(await s(f)){M.unsubscribe();const H=C.propSubscriptions.indexOf(M);H>-1&&C.propSubscriptions.splice(H,1),r(E,C,Q),c(C)}});C.propSubscriptions.push(M)}function r(E,C,f){var Q,w,v,M;(w=(Q=C.componentInstance).onMount)==null||w.call(Q,C,f);for(let F in C.directives)(M=(v=C.directives[F]).onMount)==null||M.call(v,C);C.effectMounts.forEach(F=>{C.effectUnmounts.push(F(C))})}async function h(E,C,f){if(C.props.context=E.props.context,C.parent=E,C.props.dependencies&&Array.isArray(C.props.dependencies)){const Q=C.props.dependencies;if(!await s(Q)){a(E,C,Q,f);return}}r(E,C,f)}async function c(E){var C;if(E.props.attach&&(J((C=E.propObservables)==null?void 0:C.attach)?await new Promise(Q=>{let w=null;E.propSubscriptions.push(E.propObservables.attach.observable.subscribe(async v=>{const M=(v==null?void 0:v.value)??v;if(!M)throw new Error(`attach in ${E.tag} is undefined or null, add a component`);w&&oA(w),w=M,await B(E,M),Q(void 0)}))}):E.props.children.push(E.props.attach)),!!E.props.children)for(let f of E.props.children)f&&await B(E,f)}async function B(E,C){if(qA(C)&&(C=await C),C instanceof X){const f=C.subscribe(Q=>{if(Q&&typeof Q=="object"&&"elements"in Q){const{elements:w,prev:v}=Q,M=w.filter(F=>F!==null);if(v){M.forEach(async F=>{const H=E.props.children.indexOf(v.props.key);F instanceof X?await B(E,F):wA(F)&&(h(E,F,H+1),c(F))});return}M.forEach(async F=>{Array.isArray(F)?F.forEach(async H=>{H instanceof X?await B(E,H):wA(H)&&(h(E,H),c(H))}):F instanceof X?await B(E,F):wA(F)&&(h(E,F),c(F))})}else wA(Q)?(h(E,Q),c(Q)):Array.isArray(Q)&&Q.forEach(async w=>{w instanceof X?await B(E,w):wA(w)&&(h(E,w),c(w))});n.next(void 0)});E.effectSubscriptions.push(f)}else wA(C)&&(h(E,C),await c(C))}return i}function ra(e,A){return oe(e)&&e.dependencies.size==0?e=W(e()):J(e)||(e=W(e)),Pr(()=>{let t=[],i=new Map,n=!0;const s=a=>Array.isArray(a());return new X(a=>s(e)?e.observable.subscribe(h=>{if(n){n=!1,t.forEach(o=>o.destroy()),t=[],i.clear();const B=e();B&&B.forEach((o,g)=>{const l=A(o,g);l&&(t.push(l),i.set(g,l))}),a.next({elements:[...t]});return}const c=Array.isArray(h)||h&&typeof h=="object"&&!("type"in h);if(h.type==="init"||h.type==="reset"||c){t.forEach(o=>oA(o)),t=[],i.clear();const B=e();B&&B.forEach((o,g)=>{const l=A(o,g);l&&(t.push(l),i.set(g,l))})}else if(h.type==="add"&&h.index!==void 0){const B=h.items.map((o,g)=>{const l=A(o,h.index+g);return l&&i.set(h.index+g,l),l}).filter(o=>o!==null);t.splice(h.index,0,...B)}else if(h.type==="remove"&&h.index!==void 0)t.splice(h.index,1).forEach(o=>{oA(o),i.delete(h.index)});else if(h.type==="update"&&h.index!==void 0&&h.items.length===1){const B=h.index,o=h.items[0];if(B>=t.length||t[B]===void 0||!i.has(B)){const g=A(o,B);g?(t.splice(B,0,g),i.set(B,g)):console.warn(`Element creation returned null for index ${B} during add-like update.`)}else{const g=t[B];oA(g);const l=A(o,B);l?(t[B]=l,i.set(B,l)):(t.splice(B,1),i.delete(B))}}a.next({elements:[...t]})}):e.observable.subscribe(h=>{const c=h.key;if(n){n=!1,t.forEach(o=>oA(o)),t=[],i.clear();const B=e();B&&Object.entries(B).forEach(([o,g])=>{const l=A(g,o);l&&(t.push(l),i.set(o,l))}),a.next({elements:[...t]});return}if(h.type==="init"||h.type==="reset"){t.forEach(o=>oA(o)),t=[],i.clear();const B=e();B&&Object.entries(B).forEach(([o,g])=>{const l=A(g,o);l&&(t.push(l),i.set(o,l))})}else if(h.type==="add"&&h.key&&h.value!==void 0){const B=A(h.value,c);B&&(t.push(B),i.set(c,B))}else if(h.type==="remove"&&h.key){const B=t.findIndex(o=>i.get(c)===o);if(B!==-1){const[o]=t.splice(B,1);oA(o),i.delete(c)}}else if(h.type==="update"&&h.key&&h.value!==void 0){const B=t.findIndex(o=>i.get(c)===o);if(B!==-1){const o=t[B];oA(o);const g=A(h.value,c);g&&(t[B]=g,i.set(c,g))}}a.next({elements:[...t]})}))})}function aa(e,A,...t){let i=null,n=-1;const s=[];let a=null;const r=c=>J(c)?c:typeof c=="function"?MA(c):W(c);for(const c of t)if(Array.isArray(c))s.push({condition:r(c[0]),elementFn:c[1]});else if(typeof c=="function"){a=c;break}const h=[{condition:r(e),elementFn:A},...s];return new X(c=>{const B=[],o=()=>{let g=-1;for(let C=0;C<h.length;C++){const f=h[C].condition;if(f()){g=C;break}}const l=g===-1&&a,E=l?-2:g;if(E!==n)if(i&&(oA(i),i=null),n=E,l){let C=a();qA(C)?ie(C).subscribe(f=>{i=f,c.next({type:"init",elements:[f]})}):(i=C,c.next({type:"init",elements:[i]}))}else if(g>=0){let C=h[g].elementFn();qA(C)?ie(C).subscribe(f=>{i=f,c.next({type:"init",elements:[f]})}):(i=C,c.next({type:"init",elements:[i]}))}else c.next({elements:[]})};return h.forEach(({condition:g})=>{const l=g;B.push(l.observable.subscribe(()=>{o()}))}),o(),()=>{B.forEach(g=>g.unsubscribe()),i&&oA(i)}}).pipe(Tr())}const aA=(e,A={})=>{if(J(e))return e();const t={};for(let i in e){const n=e[i];t[i]=$e(n)?W(n):n}for(let i in A)i in t||(t[i]=$e(A[i])?W(A[i]):A[i]);return t},Ai=e=>A=>{const t=J(e)?e():e,i={};for(const n in A){const s=A[n],a=t[n];let r;if(typeof s=="function")ti(n,a,[s]),r=a;else if(Array.isArray(s))ti(n,a,s),r=a;else if(s&&typeof s=="object"){if(s.required&&a===void 0)throw new Error(`Missing required prop: ${n}`);if(s.type){const h=Array.isArray(s.type)?s.type:[s.type];ti(n,a,h)}if(s.validator&&!s.validator(a,t))throw new Error(`Invalid prop: custom validation failed for prop "${n}"`);a===void 0&&"default"in s?r=typeof s.default=="function"?s.default(t):s.default:r=a}i[n]=J(r)?r:W(r)}return{...aA(t),...i}};function ti(e,A,t){if(A==null)return;const i=J(A)?A():A;if(!t.some(s=>s===Number?typeof i=="number":s===String?typeof i=="string":s===Boolean?typeof i=="boolean":s===Function?typeof i=="function":s===Object?typeof i=="object":s===Array?Array.isArray(i):s===null?i===null:i instanceof s))throw new Error(`Invalid prop: type check failed for prop "${e}". Expected ${t.map(s=>s.name).join(" or ")}`)}class ns extends pA{onInit(A){}onMount(A){this.onUpdate(A.props.viewportFollow,A)}onUpdate(A,t){const{viewport:i}=t.props.context;if(!i)throw We("ViewportFollow directive requires a Viewport component to be mounted in the same context");if(A)if(A===!0)i.follow(t.componentInstance);else{const n=aA(A,{speed:void 0,acceleration:void 0,radius:void 0});i.follow(t.componentInstance,{speed:n.speed(),acceleration:n.acceleration(),radius:n.radius()})}else A===null&&i.plugins.remove("follow")}onDestroy(A){const{viewportFollow:t}=A.props,{viewport:i}=A.props.context;t&&i.plugins.remove("follow")}}yA("viewportFollow",ns);var Gt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ga(e){return e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ZA={};/*!
|
|
4
4
|
* howler.js v2.2.4
|
|
5
5
|
* howlerjs.com
|
|
6
6
|
*
|
|
@@ -8,7 +8,7 @@ var CanvasEngine=function(v,m){"use strict";var Vl=Object.defineProperty;var Zo=
|
|
|
8
8
|
* goldfirestudios.com
|
|
9
9
|
*
|
|
10
10
|
* MIT License
|
|
11
|
-
*/(function(e){(function(){var A=function(){this.init()};A.prototype={init:function(){var o=this||t;return o._counter=1e3,o._html5AudioPool=[],o.html5PoolSize=10,o._codecs={},o._howls=[],o._muted=!1,o._volume=1,o._canPlayEvent="canplaythrough",o._navigator=typeof window<"u"&&window.navigator?window.navigator:null,o.masterGain=null,o.noAudio=!1,o.usingWebAudio=!0,o.autoSuspend=!0,o.ctx=null,o.autoUnlock=!0,o._setup(),o},volume:function(o){var g=this||t;if(o=parseFloat(o),g.ctx||u(),typeof o<"u"&&o>=0&&o<=1){if(g._volume=o,g._muted)return g;g.usingWebAudio&&g.masterGain.gain.setValueAtTime(o,t.ctx.currentTime);for(var c=0;c<g._howls.length;c++)if(!g._howls[c]._webAudio)for(var E=g._howls[c]._getSoundIds(),C=0;C<E.length;C++){var d=g._howls[c]._soundById(E[C]);d&&d._node&&(d._node.volume=d._volume*o)}return g}return g._volume},mute:function(o){var g=this||t;g.ctx||u(),g._muted=o,g.usingWebAudio&&g.masterGain.gain.setValueAtTime(o?0:g._volume,t.ctx.currentTime);for(var c=0;c<g._howls.length;c++)if(!g._howls[c]._webAudio)for(var E=g._howls[c]._getSoundIds(),C=0;C<E.length;C++){var d=g._howls[c]._soundById(E[C]);d&&d._node&&(d._node.muted=o?!0:d._muted)}return g},stop:function(){for(var o=this||t,g=0;g<o._howls.length;g++)o._howls[g].stop();return o},unload:function(){for(var o=this||t,g=o._howls.length-1;g>=0;g--)o._howls[g].unload();return o.usingWebAudio&&o.ctx&&typeof o.ctx.close<"u"&&(o.ctx.close(),o.ctx=null,u()),o},codecs:function(o){return(this||t)._codecs[o.replace(/^x-/,"")]},_setup:function(){var o=this||t;if(o.state=o.ctx&&o.ctx.state||"suspended",o._autoSuspend(),!o.usingWebAudio)if(typeof Audio<"u")try{var g=new Audio;typeof g.oncanplaythrough>"u"&&(o._canPlayEvent="canplay")}catch{o.noAudio=!0}else o.noAudio=!0;try{var g=new Audio;g.muted&&(o.noAudio=!0)}catch{}return o.noAudio||o._setupCodecs(),o},_setupCodecs:function(){var o=this||t,g=null;try{g=typeof Audio<"u"?new Audio:null}catch{return o}if(!g||typeof g.canPlayType!="function")return o;var c=g.canPlayType("audio/mpeg;").replace(/^no$/,""),E=o._navigator?o._navigator.userAgent:"",C=E.match(/OPR\/(\d+)/g),d=C&&parseInt(C[0].split("/")[1],10)<33,f=E.indexOf("Safari")!==-1&&E.indexOf("Chrome")===-1,w=E.match(/Version\/(.*?) /),S=f&&w&&parseInt(w[1],10)<15;return o._codecs={mp3:!!(!d&&(c||g.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!c,opus:!!g.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!g.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!g.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(g.canPlayType('audio/wav; codecs="1"')||g.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!g.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!g.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(g.canPlayType("audio/x-m4a;")||g.canPlayType("audio/m4a;")||g.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(g.canPlayType("audio/x-m4b;")||g.canPlayType("audio/m4b;")||g.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(g.canPlayType("audio/x-mp4;")||g.canPlayType("audio/mp4;")||g.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!S&&g.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!S&&g.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!g.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(g.canPlayType("audio/x-flac;")||g.canPlayType("audio/flac;")).replace(/^no$/,"")},o},_unlockAudio:function(){var o=this||t;if(!(o._audioUnlocked||!o.ctx)){o._audioUnlocked=!1,o.autoUnlock=!1,!o._mobileUnloaded&&o.ctx.sampleRate!==44100&&(o._mobileUnloaded=!0,o.unload()),o._scratchBuffer=o.ctx.createBuffer(1,1,22050);var g=function(c){for(;o._html5AudioPool.length<o.html5PoolSize;)try{var E=new Audio;E._unlocked=!0,o._releaseHtml5Audio(E)}catch{o.noAudio=!0;break}for(var C=0;C<o._howls.length;C++)if(!o._howls[C]._webAudio)for(var d=o._howls[C]._getSoundIds(),f=0;f<d.length;f++){var w=o._howls[C]._soundById(d[f]);w&&w._node&&!w._node._unlocked&&(w._node._unlocked=!0,w._node.load())}o._autoResume();var S=o.ctx.createBufferSource();S.buffer=o._scratchBuffer,S.connect(o.ctx.destination),typeof S.start>"u"?S.noteOn(0):S.start(0),typeof o.ctx.resume=="function"&&o.ctx.resume(),S.onended=function(){S.disconnect(0),o._audioUnlocked=!0,document.removeEventListener("touchstart",g,!0),document.removeEventListener("touchend",g,!0),document.removeEventListener("click",g,!0),document.removeEventListener("keydown",g,!0);for(var F=0;F<o._howls.length;F++)o._howls[F]._emit("unlock")}};return document.addEventListener("touchstart",g,!0),document.addEventListener("touchend",g,!0),document.addEventListener("click",g,!0),document.addEventListener("keydown",g,!0),o}},_obtainHtml5Audio:function(){var o=this||t;if(o._html5AudioPool.length)return o._html5AudioPool.pop();var g=new Audio().play();return g&&typeof Promise<"u"&&(g instanceof Promise||typeof g.then=="function")&&g.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(o){var g=this||t;return o._unlocked&&g._html5AudioPool.push(o),g},_autoSuspend:function(){var o=this;if(!(!o.autoSuspend||!o.ctx||typeof o.ctx.suspend>"u"||!t.usingWebAudio)){for(var g=0;g<o._howls.length;g++)if(o._howls[g]._webAudio){for(var c=0;c<o._howls[g]._sounds.length;c++)if(!o._howls[g]._sounds[c]._paused)return o}return o._suspendTimer&&clearTimeout(o._suspendTimer),o._suspendTimer=setTimeout(function(){if(o.autoSuspend){o._suspendTimer=null,o.state="suspending";var E=function(){o.state="suspended",o._resumeAfterSuspend&&(delete o._resumeAfterSuspend,o._autoResume())};o.ctx.suspend().then(E,E)}},3e4),o}},_autoResume:function(){var o=this;if(!(!o.ctx||typeof o.ctx.resume>"u"||!t.usingWebAudio))return o.state==="running"&&o.ctx.state!=="interrupted"&&o._suspendTimer?(clearTimeout(o._suspendTimer),o._suspendTimer=null):o.state==="suspended"||o.state==="running"&&o.ctx.state==="interrupted"?(o.ctx.resume().then(function(){o.state="running";for(var g=0;g<o._howls.length;g++)o._howls[g]._emit("resume")}),o._suspendTimer&&(clearTimeout(o._suspendTimer),o._suspendTimer=null)):o.state==="suspending"&&(o._resumeAfterSuspend=!0),o}};var t=new A,i=function(o){var g=this;if(!o.src||o.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}g.init(o)};i.prototype={init:function(o){var g=this;return t.ctx||u(),g._autoplay=o.autoplay||!1,g._format=typeof o.format!="string"?o.format:[o.format],g._html5=o.html5||!1,g._muted=o.mute||!1,g._loop=o.loop||!1,g._pool=o.pool||5,g._preload=typeof o.preload=="boolean"||o.preload==="metadata"?o.preload:!0,g._rate=o.rate||1,g._sprite=o.sprite||{},g._src=typeof o.src!="string"?o.src:[o.src],g._volume=o.volume!==void 0?o.volume:1,g._xhr={method:o.xhr&&o.xhr.method?o.xhr.method:"GET",headers:o.xhr&&o.xhr.headers?o.xhr.headers:null,withCredentials:o.xhr&&o.xhr.withCredentials?o.xhr.withCredentials:!1},g._duration=0,g._state="unloaded",g._sounds=[],g._endTimers={},g._queue=[],g._playLock=!1,g._onend=o.onend?[{fn:o.onend}]:[],g._onfade=o.onfade?[{fn:o.onfade}]:[],g._onload=o.onload?[{fn:o.onload}]:[],g._onloaderror=o.onloaderror?[{fn:o.onloaderror}]:[],g._onplayerror=o.onplayerror?[{fn:o.onplayerror}]:[],g._onpause=o.onpause?[{fn:o.onpause}]:[],g._onplay=o.onplay?[{fn:o.onplay}]:[],g._onstop=o.onstop?[{fn:o.onstop}]:[],g._onmute=o.onmute?[{fn:o.onmute}]:[],g._onvolume=o.onvolume?[{fn:o.onvolume}]:[],g._onrate=o.onrate?[{fn:o.onrate}]:[],g._onseek=o.onseek?[{fn:o.onseek}]:[],g._onunlock=o.onunlock?[{fn:o.onunlock}]:[],g._onresume=[],g._webAudio=t.usingWebAudio&&!g._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(g),g._autoplay&&g._queue.push({event:"play",action:function(){g.play()}}),g._preload&&g._preload!=="none"&&g.load(),g},load:function(){var o=this,g=null;if(t.noAudio){o._emit("loaderror",null,"No audio support.");return}typeof o._src=="string"&&(o._src=[o._src]);for(var c=0;c<o._src.length;c++){var E,C;if(o._format&&o._format[c])E=o._format[c];else{if(C=o._src[c],typeof C!="string"){o._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}E=/^data:audio\/([^;,]+);/i.exec(C),E||(E=/\.([^.]+)$/.exec(C.split("?",1)[0])),E&&(E=E[1].toLowerCase())}if(E||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),E&&t.codecs(E)){g=o._src[c];break}}if(!g){o._emit("loaderror",null,"No codec support for selected audio sources.");return}return o._src=g,o._state="loading",window.location.protocol==="https:"&&g.slice(0,5)==="http:"&&(o._html5=!0,o._webAudio=!1),new n(o),o._webAudio&&a(o),o},play:function(o,g){var c=this,E=null;if(typeof o=="number")E=o,o=null;else{if(typeof o=="string"&&c._state==="loaded"&&!c._sprite[o])return null;if(typeof o>"u"&&(o="__default",!c._playLock)){for(var C=0,d=0;d<c._sounds.length;d++)c._sounds[d]._paused&&!c._sounds[d]._ended&&(C++,E=c._sounds[d]._id);C===1?o=null:E=null}}var f=E?c._soundById(E):c._inactiveSound();if(!f)return null;if(E&&!o&&(o=f._sprite||"__default"),c._state!=="loaded"){f._sprite=o,f._ended=!1;var w=f._id;return c._queue.push({event:"play",action:function(){c.play(w)}}),w}if(E&&!f._paused)return g||c._loadQueue("play"),f._id;c._webAudio&&t._autoResume();var S=Math.max(0,f._seek>0?f._seek:c._sprite[o][0]/1e3),F=Math.max(0,(c._sprite[o][0]+c._sprite[o][1])/1e3-S),N=F*1e3/Math.abs(f._rate),O=c._sprite[o][0]/1e3,AA=(c._sprite[o][0]+c._sprite[o][1])/1e3;f._sprite=o,f._ended=!1;var CA=function(){f._paused=!1,f._seek=S,f._start=O,f._stop=AA,f._loop=!!(f._loop||c._sprite[o][2])};if(S>=AA){c._ended(f);return}var L=f._node;if(c._webAudio){var GA=function(){c._playLock=!1,CA(),c._refreshBuffer(f);var tA=f._muted||c._muted?0:f._volume;L.gain.setValueAtTime(tA,t.ctx.currentTime),f._playStart=t.ctx.currentTime,typeof L.bufferSource.start>"u"?f._loop?L.bufferSource.noteGrainOn(0,S,86400):L.bufferSource.noteGrainOn(0,S,F):f._loop?L.bufferSource.start(0,S,86400):L.bufferSource.start(0,S,F),N!==1/0&&(c._endTimers[f._id]=setTimeout(c._ended.bind(c,f),N)),g||setTimeout(function(){c._emit("play",f._id),c._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?GA():(c._playLock=!0,c.once("resume",GA),c._clearTimer(f._id))}else{var YA=function(){L.currentTime=S,L.muted=f._muted||c._muted||t._muted||L.muted,L.volume=f._volume*t.volume(),L.playbackRate=f._rate;try{var tA=L.play();if(tA&&typeof Promise<"u"&&(tA instanceof Promise||typeof tA.then=="function")?(c._playLock=!0,CA(),tA.then(function(){c._playLock=!1,L._unlocked=!0,g?c._loadQueue():c._emit("play",f._id)}).catch(function(){c._playLock=!1,c._emit("playerror",f._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),f._ended=!0,f._paused=!0})):g||(c._playLock=!1,CA(),c._emit("play",f._id)),L.playbackRate=f._rate,L.paused){c._emit("playerror",f._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}o!=="__default"||f._loop?c._endTimers[f._id]=setTimeout(c._ended.bind(c,f),N):(c._endTimers[f._id]=function(){c._ended(f),L.removeEventListener("ended",c._endTimers[f._id],!1)},L.addEventListener("ended",c._endTimers[f._id],!1))}catch(WA){c._emit("playerror",f._id,WA)}};L.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(L.src=c._src,L.load());var iA=window&&window.ejecta||!L.readyState&&t._navigator.isCocoonJS;if(L.readyState>=3||iA)YA();else{c._playLock=!0,c._state="loading";var bA=function(){c._state="loaded",YA(),L.removeEventListener(t._canPlayEvent,bA,!1)};L.addEventListener(t._canPlayEvent,bA,!1),c._clearTimer(f._id)}}return f._id},pause:function(o){var g=this;if(g._state!=="loaded"||g._playLock)return g._queue.push({event:"pause",action:function(){g.pause(o)}}),g;for(var c=g._getSoundIds(o),E=0;E<c.length;E++){g._clearTimer(c[E]);var C=g._soundById(c[E]);if(C&&!C._paused&&(C._seek=g.seek(c[E]),C._rateSeek=0,C._paused=!0,g._stopFade(c[E]),C._node))if(g._webAudio){if(!C._node.bufferSource)continue;typeof C._node.bufferSource.stop>"u"?C._node.bufferSource.noteOff(0):C._node.bufferSource.stop(0),g._cleanBuffer(C._node)}else(!isNaN(C._node.duration)||C._node.duration===1/0)&&C._node.pause();arguments[1]||g._emit("pause",C?C._id:null)}return g},stop:function(o,g){var c=this;if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"stop",action:function(){c.stop(o)}}),c;for(var E=c._getSoundIds(o),C=0;C<E.length;C++){c._clearTimer(E[C]);var d=c._soundById(E[C]);d&&(d._seek=d._start||0,d._rateSeek=0,d._paused=!0,d._ended=!0,c._stopFade(E[C]),d._node&&(c._webAudio?d._node.bufferSource&&(typeof d._node.bufferSource.stop>"u"?d._node.bufferSource.noteOff(0):d._node.bufferSource.stop(0),c._cleanBuffer(d._node)):(!isNaN(d._node.duration)||d._node.duration===1/0)&&(d._node.currentTime=d._start||0,d._node.pause(),d._node.duration===1/0&&c._clearSound(d._node))),g||c._emit("stop",d._id))}return c},mute:function(o,g){var c=this;if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"mute",action:function(){c.mute(o,g)}}),c;if(typeof g>"u")if(typeof o=="boolean")c._muted=o;else return c._muted;for(var E=c._getSoundIds(g),C=0;C<E.length;C++){var d=c._soundById(E[C]);d&&(d._muted=o,d._interval&&c._stopFade(d._id),c._webAudio&&d._node?d._node.gain.setValueAtTime(o?0:d._volume,t.ctx.currentTime):d._node&&(d._node.muted=t._muted?!0:o),c._emit("mute",d._id))}return c},volume:function(){var o=this,g=arguments,c,E;if(g.length===0)return o._volume;if(g.length===1||g.length===2&&typeof g[1]>"u"){var C=o._getSoundIds(),d=C.indexOf(g[0]);d>=0?E=parseInt(g[0],10):c=parseFloat(g[0])}else g.length>=2&&(c=parseFloat(g[0]),E=parseInt(g[1],10));var f;if(typeof c<"u"&&c>=0&&c<=1){if(o._state!=="loaded"||o._playLock)return o._queue.push({event:"volume",action:function(){o.volume.apply(o,g)}}),o;typeof E>"u"&&(o._volume=c),E=o._getSoundIds(E);for(var w=0;w<E.length;w++)f=o._soundById(E[w]),f&&(f._volume=c,g[2]||o._stopFade(E[w]),o._webAudio&&f._node&&!f._muted?f._node.gain.setValueAtTime(c,t.ctx.currentTime):f._node&&!f._muted&&(f._node.volume=c*t.volume()),o._emit("volume",f._id))}else return f=E?o._soundById(E):o._sounds[0],f?f._volume:0;return o},fade:function(o,g,c,E){var C=this;if(C._state!=="loaded"||C._playLock)return C._queue.push({event:"fade",action:function(){C.fade(o,g,c,E)}}),C;o=Math.min(Math.max(0,parseFloat(o)),1),g=Math.min(Math.max(0,parseFloat(g)),1),c=parseFloat(c),C.volume(o,E);for(var d=C._getSoundIds(E),f=0;f<d.length;f++){var w=C._soundById(d[f]);if(w){if(E||C._stopFade(d[f]),C._webAudio&&!w._muted){var S=t.ctx.currentTime,F=S+c/1e3;w._volume=o,w._node.gain.setValueAtTime(o,S),w._node.gain.linearRampToValueAtTime(g,F)}C._startFadeInterval(w,o,g,c,d[f],typeof E>"u")}}return C},_startFadeInterval:function(o,g,c,E,C,d){var f=this,w=g,S=c-g,F=Math.abs(S/.01),N=Math.max(4,F>0?E/F:E),O=Date.now();o._fadeTo=c,o._interval=setInterval(function(){var AA=(Date.now()-O)/E;O=Date.now(),w+=S*AA,w=Math.round(w*100)/100,S<0?w=Math.max(c,w):w=Math.min(c,w),f._webAudio?o._volume=w:f.volume(w,o._id,!0),d&&(f._volume=w),(c<g&&w<=c||c>g&&w>=c)&&(clearInterval(o._interval),o._interval=null,o._fadeTo=null,f.volume(c,o._id),f._emit("fade",o._id))},N)},_stopFade:function(o){var g=this,c=g._soundById(o);return c&&c._interval&&(g._webAudio&&c._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(c._interval),c._interval=null,g.volume(c._fadeTo,o),c._fadeTo=null,g._emit("fade",o)),g},loop:function(){var o=this,g=arguments,c,E,C;if(g.length===0)return o._loop;if(g.length===1)if(typeof g[0]=="boolean")c=g[0],o._loop=c;else return C=o._soundById(parseInt(g[0],10)),C?C._loop:!1;else g.length===2&&(c=g[0],E=parseInt(g[1],10));for(var d=o._getSoundIds(E),f=0;f<d.length;f++)C=o._soundById(d[f]),C&&(C._loop=c,o._webAudio&&C._node&&C._node.bufferSource&&(C._node.bufferSource.loop=c,c&&(C._node.bufferSource.loopStart=C._start||0,C._node.bufferSource.loopEnd=C._stop,o.playing(d[f])&&(o.pause(d[f],!0),o.play(d[f],!0)))));return o},rate:function(){var o=this,g=arguments,c,E;if(g.length===0)E=o._sounds[0]._id;else if(g.length===1){var C=o._getSoundIds(),d=C.indexOf(g[0]);d>=0?E=parseInt(g[0],10):c=parseFloat(g[0])}else g.length===2&&(c=parseFloat(g[0]),E=parseInt(g[1],10));var f;if(typeof c=="number"){if(o._state!=="loaded"||o._playLock)return o._queue.push({event:"rate",action:function(){o.rate.apply(o,g)}}),o;typeof E>"u"&&(o._rate=c),E=o._getSoundIds(E);for(var w=0;w<E.length;w++)if(f=o._soundById(E[w]),f){o.playing(E[w])&&(f._rateSeek=o.seek(E[w]),f._playStart=o._webAudio?t.ctx.currentTime:f._playStart),f._rate=c,o._webAudio&&f._node&&f._node.bufferSource?f._node.bufferSource.playbackRate.setValueAtTime(c,t.ctx.currentTime):f._node&&(f._node.playbackRate=c);var S=o.seek(E[w]),F=(o._sprite[f._sprite][0]+o._sprite[f._sprite][1])/1e3-S,N=F*1e3/Math.abs(f._rate);(o._endTimers[E[w]]||!f._paused)&&(o._clearTimer(E[w]),o._endTimers[E[w]]=setTimeout(o._ended.bind(o,f),N)),o._emit("rate",f._id)}}else return f=o._soundById(E),f?f._rate:o._rate;return o},seek:function(){var o=this,g=arguments,c,E;if(g.length===0)o._sounds.length&&(E=o._sounds[0]._id);else if(g.length===1){var C=o._getSoundIds(),d=C.indexOf(g[0]);d>=0?E=parseInt(g[0],10):o._sounds.length&&(E=o._sounds[0]._id,c=parseFloat(g[0]))}else g.length===2&&(c=parseFloat(g[0]),E=parseInt(g[1],10));if(typeof E>"u")return 0;if(typeof c=="number"&&(o._state!=="loaded"||o._playLock))return o._queue.push({event:"seek",action:function(){o.seek.apply(o,g)}}),o;var f=o._soundById(E);if(f)if(typeof c=="number"&&c>=0){var w=o.playing(E);w&&o.pause(E,!0),f._seek=c,f._ended=!1,o._clearTimer(E),!o._webAudio&&f._node&&!isNaN(f._node.duration)&&(f._node.currentTime=c);var S=function(){w&&o.play(E,!0),o._emit("seek",E)};if(w&&!o._webAudio){var F=function(){o._playLock?setTimeout(F,0):S()};setTimeout(F,0)}else S()}else if(o._webAudio){var N=o.playing(E)?t.ctx.currentTime-f._playStart:0,O=f._rateSeek?f._rateSeek-f._seek:0;return f._seek+(O+N*Math.abs(f._rate))}else return f._node.currentTime;return o},playing:function(o){var g=this;if(typeof o=="number"){var c=g._soundById(o);return c?!c._paused:!1}for(var E=0;E<g._sounds.length;E++)if(!g._sounds[E]._paused)return!0;return!1},duration:function(o){var g=this,c=g._duration,E=g._soundById(o);return E&&(c=g._sprite[E._sprite][1]/1e3),c},state:function(){return this._state},unload:function(){for(var o=this,g=o._sounds,c=0;c<g.length;c++)g[c]._paused||o.stop(g[c]._id),o._webAudio||(o._clearSound(g[c]._node),g[c]._node.removeEventListener("error",g[c]._errorFn,!1),g[c]._node.removeEventListener(t._canPlayEvent,g[c]._loadFn,!1),g[c]._node.removeEventListener("ended",g[c]._endFn,!1),t._releaseHtml5Audio(g[c]._node)),delete g[c]._node,o._clearTimer(g[c]._id);var E=t._howls.indexOf(o);E>=0&&t._howls.splice(E,1);var C=!0;for(c=0;c<t._howls.length;c++)if(t._howls[c]._src===o._src||o._src.indexOf(t._howls[c]._src)>=0){C=!1;break}return C&&delete s[o._src],t.noAudio=!1,o._state="unloaded",o._sounds=[],o=null,null},on:function(o,g,c,E){var C=this,d=C["_on"+o];return typeof g=="function"&&d.push(E?{id:c,fn:g,once:E}:{id:c,fn:g}),C},off:function(o,g,c){var E=this,C=E["_on"+o],d=0;if(typeof g=="number"&&(c=g,g=null),g||c)for(d=0;d<C.length;d++){var f=c===C[d].id;if(g===C[d].fn&&f||!g&&f){C.splice(d,1);break}}else if(o)E["_on"+o]=[];else{var w=Object.keys(E);for(d=0;d<w.length;d++)w[d].indexOf("_on")===0&&Array.isArray(E[w[d]])&&(E[w[d]]=[])}return E},once:function(o,g,c){var E=this;return E.on(o,g,c,1),E},_emit:function(o,g,c){for(var E=this,C=E["_on"+o],d=C.length-1;d>=0;d--)(!C[d].id||C[d].id===g||o==="load")&&(setTimeout((function(f){f.call(this,g,c)}).bind(E,C[d].fn),0),C[d].once&&E.off(o,C[d].fn,C[d].id));return E._loadQueue(o),E},_loadQueue:function(o){var g=this;if(g._queue.length>0){var c=g._queue[0];c.event===o&&(g._queue.shift(),g._loadQueue()),o||c.action()}return g},_ended:function(o){var g=this,c=o._sprite;if(!g._webAudio&&o._node&&!o._node.paused&&!o._node.ended&&o._node.currentTime<o._stop)return setTimeout(g._ended.bind(g,o),100),g;var E=!!(o._loop||g._sprite[c][2]);if(g._emit("end",o._id),!g._webAudio&&E&&g.stop(o._id,!0).play(o._id),g._webAudio&&E){g._emit("play",o._id),o._seek=o._start||0,o._rateSeek=0,o._playStart=t.ctx.currentTime;var C=(o._stop-o._start)*1e3/Math.abs(o._rate);g._endTimers[o._id]=setTimeout(g._ended.bind(g,o),C)}return g._webAudio&&!E&&(o._paused=!0,o._ended=!0,o._seek=o._start||0,o._rateSeek=0,g._clearTimer(o._id),g._cleanBuffer(o._node),t._autoSuspend()),!g._webAudio&&!E&&g.stop(o._id,!0),g},_clearTimer:function(o){var g=this;if(g._endTimers[o]){if(typeof g._endTimers[o]!="function")clearTimeout(g._endTimers[o]);else{var c=g._soundById(o);c&&c._node&&c._node.removeEventListener("ended",g._endTimers[o],!1)}delete g._endTimers[o]}return g},_soundById:function(o){for(var g=this,c=0;c<g._sounds.length;c++)if(o===g._sounds[c]._id)return g._sounds[c];return null},_inactiveSound:function(){var o=this;o._drain();for(var g=0;g<o._sounds.length;g++)if(o._sounds[g]._ended)return o._sounds[g].reset();return new n(o)},_drain:function(){var o=this,g=o._pool,c=0,E=0;if(!(o._sounds.length<g)){for(E=0;E<o._sounds.length;E++)o._sounds[E]._ended&&c++;for(E=o._sounds.length-1;E>=0;E--){if(c<=g)return;o._sounds[E]._ended&&(o._webAudio&&o._sounds[E]._node&&o._sounds[E]._node.disconnect(0),o._sounds.splice(E,1),c--)}}},_getSoundIds:function(o){var g=this;if(typeof o>"u"){for(var c=[],E=0;E<g._sounds.length;E++)c.push(g._sounds[E]._id);return c}else return[o]},_refreshBuffer:function(o){var g=this;return o._node.bufferSource=t.ctx.createBufferSource(),o._node.bufferSource.buffer=s[g._src],o._panner?o._node.bufferSource.connect(o._panner):o._node.bufferSource.connect(o._node),o._node.bufferSource.loop=o._loop,o._loop&&(o._node.bufferSource.loopStart=o._start||0,o._node.bufferSource.loopEnd=o._stop||0),o._node.bufferSource.playbackRate.setValueAtTime(o._rate,t.ctx.currentTime),g},_cleanBuffer:function(o){var g=this,c=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(!o.bufferSource)return g;if(t._scratchBuffer&&o.bufferSource&&(o.bufferSource.onended=null,o.bufferSource.disconnect(0),c))try{o.bufferSource.buffer=t._scratchBuffer}catch{}return o.bufferSource=null,g},_clearSound:function(o){var g=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);g||(o.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var n=function(o){this._parent=o,this.init()};n.prototype={init:function(){var o=this,g=o._parent;return o._muted=g._muted,o._loop=g._loop,o._volume=g._volume,o._rate=g._rate,o._seek=0,o._paused=!0,o._ended=!0,o._sprite="__default",o._id=++t._counter,g._sounds.push(o),o.create(),o},create:function(){var o=this,g=o._parent,c=t._muted||o._muted||o._parent._muted?0:o._volume;return g._webAudio?(o._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),o._node.gain.setValueAtTime(c,t.ctx.currentTime),o._node.paused=!0,o._node.connect(t.masterGain)):t.noAudio||(o._node=t._obtainHtml5Audio(),o._errorFn=o._errorListener.bind(o),o._node.addEventListener("error",o._errorFn,!1),o._loadFn=o._loadListener.bind(o),o._node.addEventListener(t._canPlayEvent,o._loadFn,!1),o._endFn=o._endListener.bind(o),o._node.addEventListener("ended",o._endFn,!1),o._node.src=g._src,o._node.preload=g._preload===!0?"auto":g._preload,o._node.volume=c*t.volume(),o._node.load()),o},reset:function(){var o=this,g=o._parent;return o._muted=g._muted,o._loop=g._loop,o._volume=g._volume,o._rate=g._rate,o._seek=0,o._rateSeek=0,o._paused=!0,o._ended=!0,o._sprite="__default",o._id=++t._counter,o},_errorListener:function(){var o=this;o._parent._emit("loaderror",o._id,o._node.error?o._node.error.code:0),o._node.removeEventListener("error",o._errorFn,!1)},_loadListener:function(){var o=this,g=o._parent;g._duration=Math.ceil(o._node.duration*10)/10,Object.keys(g._sprite).length===0&&(g._sprite={__default:[0,g._duration*1e3]}),g._state!=="loaded"&&(g._state="loaded",g._emit("load"),g._loadQueue()),o._node.removeEventListener(t._canPlayEvent,o._loadFn,!1)},_endListener:function(){var o=this,g=o._parent;g._duration===1/0&&(g._duration=Math.ceil(o._node.duration*10)/10,g._sprite.__default[1]===1/0&&(g._sprite.__default[1]=g._duration*1e3),g._ended(o)),o._node.removeEventListener("ended",o._endFn,!1)}};var s={},a=function(o){var g=o._src;if(s[g]){o._duration=s[g].duration,l(o);return}if(/^data:[^;]+;base64,/.test(g)){for(var c=atob(g.split(",")[1]),E=new Uint8Array(c.length),C=0;C<c.length;++C)E[C]=c.charCodeAt(C);h(E.buffer,o)}else{var d=new XMLHttpRequest;d.open(o._xhr.method,g,!0),d.withCredentials=o._xhr.withCredentials,d.responseType="arraybuffer",o._xhr.headers&&Object.keys(o._xhr.headers).forEach(function(f){d.setRequestHeader(f,o._xhr.headers[f])}),d.onload=function(){var f=(d.status+"")[0];if(f!=="0"&&f!=="2"&&f!=="3"){o._emit("loaderror",null,"Failed loading audio file with status: "+d.status+".");return}h(d.response,o)},d.onerror=function(){o._webAudio&&(o._html5=!0,o._webAudio=!1,o._sounds=[],delete s[g],o.load())},r(d)}},r=function(o){try{o.send()}catch{o.onerror()}},h=function(o,g){var c=function(){g._emit("loaderror",null,"Decoding audio data failed.")},E=function(C){C&&g._sounds.length>0?(s[g._src]=C,l(g,C)):c()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(o).then(E).catch(c):t.ctx.decodeAudioData(o,E,c)},l=function(o,g){g&&!o._duration&&(o._duration=g.duration),Object.keys(o._sprite).length===0&&(o._sprite={__default:[0,o._duration*1e3]}),o._state!=="loaded"&&(o._state="loaded",o._emit("load"),o._loadQueue())},u=function(){if(t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var o=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),g=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),c=g?parseInt(g[1],10):null;if(o&&c&&c<9){var E=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!E&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};e.Howler=t,e.Howl=i,typeof Gt<"u"?(Gt.HowlerGlobal=A,Gt.Howler=t,Gt.Howl=i,Gt.Sound=n):typeof window<"u"&&(window.HowlerGlobal=A,window.Howler=t,window.Howl=i,window.Sound=n)})();/*!
|
|
11
|
+
*/(function(e){(function(){var A=function(){this.init()};A.prototype={init:function(){var o=this||t;return o._counter=1e3,o._html5AudioPool=[],o.html5PoolSize=10,o._codecs={},o._howls=[],o._muted=!1,o._volume=1,o._canPlayEvent="canplaythrough",o._navigator=typeof window<"u"&&window.navigator?window.navigator:null,o.masterGain=null,o.noAudio=!1,o.usingWebAudio=!0,o.autoSuspend=!0,o.ctx=null,o.autoUnlock=!0,o._setup(),o},volume:function(o){var g=this||t;if(o=parseFloat(o),g.ctx||B(),typeof o<"u"&&o>=0&&o<=1){if(g._volume=o,g._muted)return g;g.usingWebAudio&&g.masterGain.gain.setValueAtTime(o,t.ctx.currentTime);for(var l=0;l<g._howls.length;l++)if(!g._howls[l]._webAudio)for(var E=g._howls[l]._getSoundIds(),C=0;C<E.length;C++){var f=g._howls[l]._soundById(E[C]);f&&f._node&&(f._node.volume=f._volume*o)}return g}return g._volume},mute:function(o){var g=this||t;g.ctx||B(),g._muted=o,g.usingWebAudio&&g.masterGain.gain.setValueAtTime(o?0:g._volume,t.ctx.currentTime);for(var l=0;l<g._howls.length;l++)if(!g._howls[l]._webAudio)for(var E=g._howls[l]._getSoundIds(),C=0;C<E.length;C++){var f=g._howls[l]._soundById(E[C]);f&&f._node&&(f._node.muted=o?!0:f._muted)}return g},stop:function(){for(var o=this||t,g=0;g<o._howls.length;g++)o._howls[g].stop();return o},unload:function(){for(var o=this||t,g=o._howls.length-1;g>=0;g--)o._howls[g].unload();return o.usingWebAudio&&o.ctx&&typeof o.ctx.close<"u"&&(o.ctx.close(),o.ctx=null,B()),o},codecs:function(o){return(this||t)._codecs[o.replace(/^x-/,"")]},_setup:function(){var o=this||t;if(o.state=o.ctx&&o.ctx.state||"suspended",o._autoSuspend(),!o.usingWebAudio)if(typeof Audio<"u")try{var g=new Audio;typeof g.oncanplaythrough>"u"&&(o._canPlayEvent="canplay")}catch{o.noAudio=!0}else o.noAudio=!0;try{var g=new Audio;g.muted&&(o.noAudio=!0)}catch{}return o.noAudio||o._setupCodecs(),o},_setupCodecs:function(){var o=this||t,g=null;try{g=typeof Audio<"u"?new Audio:null}catch{return o}if(!g||typeof g.canPlayType!="function")return o;var l=g.canPlayType("audio/mpeg;").replace(/^no$/,""),E=o._navigator?o._navigator.userAgent:"",C=E.match(/OPR\/(\d+)/g),f=C&&parseInt(C[0].split("/")[1],10)<33,Q=E.indexOf("Safari")!==-1&&E.indexOf("Chrome")===-1,w=E.match(/Version\/(.*?) /),v=Q&&w&&parseInt(w[1],10)<15;return o._codecs={mp3:!!(!f&&(l||g.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!l,opus:!!g.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!g.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!g.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(g.canPlayType('audio/wav; codecs="1"')||g.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!g.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!g.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(g.canPlayType("audio/x-m4a;")||g.canPlayType("audio/m4a;")||g.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(g.canPlayType("audio/x-m4b;")||g.canPlayType("audio/m4b;")||g.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(g.canPlayType("audio/x-mp4;")||g.canPlayType("audio/mp4;")||g.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!v&&g.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!v&&g.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!g.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(g.canPlayType("audio/x-flac;")||g.canPlayType("audio/flac;")).replace(/^no$/,"")},o},_unlockAudio:function(){var o=this||t;if(!(o._audioUnlocked||!o.ctx)){o._audioUnlocked=!1,o.autoUnlock=!1,!o._mobileUnloaded&&o.ctx.sampleRate!==44100&&(o._mobileUnloaded=!0,o.unload()),o._scratchBuffer=o.ctx.createBuffer(1,1,22050);var g=function(l){for(;o._html5AudioPool.length<o.html5PoolSize;)try{var E=new Audio;E._unlocked=!0,o._releaseHtml5Audio(E)}catch{o.noAudio=!0;break}for(var C=0;C<o._howls.length;C++)if(!o._howls[C]._webAudio)for(var f=o._howls[C]._getSoundIds(),Q=0;Q<f.length;Q++){var w=o._howls[C]._soundById(f[Q]);w&&w._node&&!w._node._unlocked&&(w._node._unlocked=!0,w._node.load())}o._autoResume();var v=o.ctx.createBufferSource();v.buffer=o._scratchBuffer,v.connect(o.ctx.destination),typeof v.start>"u"?v.noteOn(0):v.start(0),typeof o.ctx.resume=="function"&&o.ctx.resume(),v.onended=function(){v.disconnect(0),o._audioUnlocked=!0,document.removeEventListener("touchstart",g,!0),document.removeEventListener("touchend",g,!0),document.removeEventListener("click",g,!0),document.removeEventListener("keydown",g,!0);for(var M=0;M<o._howls.length;M++)o._howls[M]._emit("unlock")}};return document.addEventListener("touchstart",g,!0),document.addEventListener("touchend",g,!0),document.addEventListener("click",g,!0),document.addEventListener("keydown",g,!0),o}},_obtainHtml5Audio:function(){var o=this||t;if(o._html5AudioPool.length)return o._html5AudioPool.pop();var g=new Audio().play();return g&&typeof Promise<"u"&&(g instanceof Promise||typeof g.then=="function")&&g.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(o){var g=this||t;return o._unlocked&&g._html5AudioPool.push(o),g},_autoSuspend:function(){var o=this;if(!(!o.autoSuspend||!o.ctx||typeof o.ctx.suspend>"u"||!t.usingWebAudio)){for(var g=0;g<o._howls.length;g++)if(o._howls[g]._webAudio){for(var l=0;l<o._howls[g]._sounds.length;l++)if(!o._howls[g]._sounds[l]._paused)return o}return o._suspendTimer&&clearTimeout(o._suspendTimer),o._suspendTimer=setTimeout(function(){if(o.autoSuspend){o._suspendTimer=null,o.state="suspending";var E=function(){o.state="suspended",o._resumeAfterSuspend&&(delete o._resumeAfterSuspend,o._autoResume())};o.ctx.suspend().then(E,E)}},3e4),o}},_autoResume:function(){var o=this;if(!(!o.ctx||typeof o.ctx.resume>"u"||!t.usingWebAudio))return o.state==="running"&&o.ctx.state!=="interrupted"&&o._suspendTimer?(clearTimeout(o._suspendTimer),o._suspendTimer=null):o.state==="suspended"||o.state==="running"&&o.ctx.state==="interrupted"?(o.ctx.resume().then(function(){o.state="running";for(var g=0;g<o._howls.length;g++)o._howls[g]._emit("resume")}),o._suspendTimer&&(clearTimeout(o._suspendTimer),o._suspendTimer=null)):o.state==="suspending"&&(o._resumeAfterSuspend=!0),o}};var t=new A,i=function(o){var g=this;if(!o.src||o.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}g.init(o)};i.prototype={init:function(o){var g=this;return t.ctx||B(),g._autoplay=o.autoplay||!1,g._format=typeof o.format!="string"?o.format:[o.format],g._html5=o.html5||!1,g._muted=o.mute||!1,g._loop=o.loop||!1,g._pool=o.pool||5,g._preload=typeof o.preload=="boolean"||o.preload==="metadata"?o.preload:!0,g._rate=o.rate||1,g._sprite=o.sprite||{},g._src=typeof o.src!="string"?o.src:[o.src],g._volume=o.volume!==void 0?o.volume:1,g._xhr={method:o.xhr&&o.xhr.method?o.xhr.method:"GET",headers:o.xhr&&o.xhr.headers?o.xhr.headers:null,withCredentials:o.xhr&&o.xhr.withCredentials?o.xhr.withCredentials:!1},g._duration=0,g._state="unloaded",g._sounds=[],g._endTimers={},g._queue=[],g._playLock=!1,g._onend=o.onend?[{fn:o.onend}]:[],g._onfade=o.onfade?[{fn:o.onfade}]:[],g._onload=o.onload?[{fn:o.onload}]:[],g._onloaderror=o.onloaderror?[{fn:o.onloaderror}]:[],g._onplayerror=o.onplayerror?[{fn:o.onplayerror}]:[],g._onpause=o.onpause?[{fn:o.onpause}]:[],g._onplay=o.onplay?[{fn:o.onplay}]:[],g._onstop=o.onstop?[{fn:o.onstop}]:[],g._onmute=o.onmute?[{fn:o.onmute}]:[],g._onvolume=o.onvolume?[{fn:o.onvolume}]:[],g._onrate=o.onrate?[{fn:o.onrate}]:[],g._onseek=o.onseek?[{fn:o.onseek}]:[],g._onunlock=o.onunlock?[{fn:o.onunlock}]:[],g._onresume=[],g._webAudio=t.usingWebAudio&&!g._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(g),g._autoplay&&g._queue.push({event:"play",action:function(){g.play()}}),g._preload&&g._preload!=="none"&&g.load(),g},load:function(){var o=this,g=null;if(t.noAudio){o._emit("loaderror",null,"No audio support.");return}typeof o._src=="string"&&(o._src=[o._src]);for(var l=0;l<o._src.length;l++){var E,C;if(o._format&&o._format[l])E=o._format[l];else{if(C=o._src[l],typeof C!="string"){o._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}E=/^data:audio\/([^;,]+);/i.exec(C),E||(E=/\.([^.]+)$/.exec(C.split("?",1)[0])),E&&(E=E[1].toLowerCase())}if(E||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),E&&t.codecs(E)){g=o._src[l];break}}if(!g){o._emit("loaderror",null,"No codec support for selected audio sources.");return}return o._src=g,o._state="loading",window.location.protocol==="https:"&&g.slice(0,5)==="http:"&&(o._html5=!0,o._webAudio=!1),new n(o),o._webAudio&&a(o),o},play:function(o,g){var l=this,E=null;if(typeof o=="number")E=o,o=null;else{if(typeof o=="string"&&l._state==="loaded"&&!l._sprite[o])return null;if(typeof o>"u"&&(o="__default",!l._playLock)){for(var C=0,f=0;f<l._sounds.length;f++)l._sounds[f]._paused&&!l._sounds[f]._ended&&(C++,E=l._sounds[f]._id);C===1?o=null:E=null}}var Q=E?l._soundById(E):l._inactiveSound();if(!Q)return null;if(E&&!o&&(o=Q._sprite||"__default"),l._state!=="loaded"){Q._sprite=o,Q._ended=!1;var w=Q._id;return l._queue.push({event:"play",action:function(){l.play(w)}}),w}if(E&&!Q._paused)return g||l._loadQueue("play"),Q._id;l._webAudio&&t._autoResume();var v=Math.max(0,Q._seek>0?Q._seek:l._sprite[o][0]/1e3),M=Math.max(0,(l._sprite[o][0]+l._sprite[o][1])/1e3-v),F=M*1e3/Math.abs(Q._rate),H=l._sprite[o][0]/1e3,Z=(l._sprite[o][0]+l._sprite[o][1])/1e3;Q._sprite=o,Q._ended=!1;var iA=function(){Q._paused=!1,Q._seek=v,Q._start=H,Q._stop=Z,Q._loop=!!(Q._loop||l._sprite[o][2])};if(v>=Z){l._ended(Q);return}var U=Q._node;if(l._webAudio){var GA=function(){l._playLock=!1,iA(),l._refreshBuffer(Q);var tA=Q._muted||l._muted?0:Q._volume;U.gain.setValueAtTime(tA,t.ctx.currentTime),Q._playStart=t.ctx.currentTime,typeof U.bufferSource.start>"u"?Q._loop?U.bufferSource.noteGrainOn(0,v,86400):U.bufferSource.noteGrainOn(0,v,M):Q._loop?U.bufferSource.start(0,v,86400):U.bufferSource.start(0,v,M),F!==1/0&&(l._endTimers[Q._id]=setTimeout(l._ended.bind(l,Q),F)),g||setTimeout(function(){l._emit("play",Q._id),l._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?GA():(l._playLock=!0,l.once("resume",GA),l._clearTimer(Q._id))}else{var YA=function(){U.currentTime=v,U.muted=Q._muted||l._muted||t._muted||U.muted,U.volume=Q._volume*t.volume(),U.playbackRate=Q._rate;try{var tA=U.play();if(tA&&typeof Promise<"u"&&(tA instanceof Promise||typeof tA.then=="function")?(l._playLock=!0,iA(),tA.then(function(){l._playLock=!1,U._unlocked=!0,g?l._loadQueue():l._emit("play",Q._id)}).catch(function(){l._playLock=!1,l._emit("playerror",Q._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),Q._ended=!0,Q._paused=!0})):g||(l._playLock=!1,iA(),l._emit("play",Q._id)),U.playbackRate=Q._rate,U.paused){l._emit("playerror",Q._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}o!=="__default"||Q._loop?l._endTimers[Q._id]=setTimeout(l._ended.bind(l,Q),F):(l._endTimers[Q._id]=function(){l._ended(Q),U.removeEventListener("ended",l._endTimers[Q._id],!1)},U.addEventListener("ended",l._endTimers[Q._id],!1))}catch(WA){l._emit("playerror",Q._id,WA)}};U.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(U.src=l._src,U.load());var nA=window&&window.ejecta||!U.readyState&&t._navigator.isCocoonJS;if(U.readyState>=3||nA)YA();else{l._playLock=!0,l._state="loading";var xA=function(){l._state="loaded",YA(),U.removeEventListener(t._canPlayEvent,xA,!1)};U.addEventListener(t._canPlayEvent,xA,!1),l._clearTimer(Q._id)}}return Q._id},pause:function(o){var g=this;if(g._state!=="loaded"||g._playLock)return g._queue.push({event:"pause",action:function(){g.pause(o)}}),g;for(var l=g._getSoundIds(o),E=0;E<l.length;E++){g._clearTimer(l[E]);var C=g._soundById(l[E]);if(C&&!C._paused&&(C._seek=g.seek(l[E]),C._rateSeek=0,C._paused=!0,g._stopFade(l[E]),C._node))if(g._webAudio){if(!C._node.bufferSource)continue;typeof C._node.bufferSource.stop>"u"?C._node.bufferSource.noteOff(0):C._node.bufferSource.stop(0),g._cleanBuffer(C._node)}else(!isNaN(C._node.duration)||C._node.duration===1/0)&&C._node.pause();arguments[1]||g._emit("pause",C?C._id:null)}return g},stop:function(o,g){var l=this;if(l._state!=="loaded"||l._playLock)return l._queue.push({event:"stop",action:function(){l.stop(o)}}),l;for(var E=l._getSoundIds(o),C=0;C<E.length;C++){l._clearTimer(E[C]);var f=l._soundById(E[C]);f&&(f._seek=f._start||0,f._rateSeek=0,f._paused=!0,f._ended=!0,l._stopFade(E[C]),f._node&&(l._webAudio?f._node.bufferSource&&(typeof f._node.bufferSource.stop>"u"?f._node.bufferSource.noteOff(0):f._node.bufferSource.stop(0),l._cleanBuffer(f._node)):(!isNaN(f._node.duration)||f._node.duration===1/0)&&(f._node.currentTime=f._start||0,f._node.pause(),f._node.duration===1/0&&l._clearSound(f._node))),g||l._emit("stop",f._id))}return l},mute:function(o,g){var l=this;if(l._state!=="loaded"||l._playLock)return l._queue.push({event:"mute",action:function(){l.mute(o,g)}}),l;if(typeof g>"u")if(typeof o=="boolean")l._muted=o;else return l._muted;for(var E=l._getSoundIds(g),C=0;C<E.length;C++){var f=l._soundById(E[C]);f&&(f._muted=o,f._interval&&l._stopFade(f._id),l._webAudio&&f._node?f._node.gain.setValueAtTime(o?0:f._volume,t.ctx.currentTime):f._node&&(f._node.muted=t._muted?!0:o),l._emit("mute",f._id))}return l},volume:function(){var o=this,g=arguments,l,E;if(g.length===0)return o._volume;if(g.length===1||g.length===2&&typeof g[1]>"u"){var C=o._getSoundIds(),f=C.indexOf(g[0]);f>=0?E=parseInt(g[0],10):l=parseFloat(g[0])}else g.length>=2&&(l=parseFloat(g[0]),E=parseInt(g[1],10));var Q;if(typeof l<"u"&&l>=0&&l<=1){if(o._state!=="loaded"||o._playLock)return o._queue.push({event:"volume",action:function(){o.volume.apply(o,g)}}),o;typeof E>"u"&&(o._volume=l),E=o._getSoundIds(E);for(var w=0;w<E.length;w++)Q=o._soundById(E[w]),Q&&(Q._volume=l,g[2]||o._stopFade(E[w]),o._webAudio&&Q._node&&!Q._muted?Q._node.gain.setValueAtTime(l,t.ctx.currentTime):Q._node&&!Q._muted&&(Q._node.volume=l*t.volume()),o._emit("volume",Q._id))}else return Q=E?o._soundById(E):o._sounds[0],Q?Q._volume:0;return o},fade:function(o,g,l,E){var C=this;if(C._state!=="loaded"||C._playLock)return C._queue.push({event:"fade",action:function(){C.fade(o,g,l,E)}}),C;o=Math.min(Math.max(0,parseFloat(o)),1),g=Math.min(Math.max(0,parseFloat(g)),1),l=parseFloat(l),C.volume(o,E);for(var f=C._getSoundIds(E),Q=0;Q<f.length;Q++){var w=C._soundById(f[Q]);if(w){if(E||C._stopFade(f[Q]),C._webAudio&&!w._muted){var v=t.ctx.currentTime,M=v+l/1e3;w._volume=o,w._node.gain.setValueAtTime(o,v),w._node.gain.linearRampToValueAtTime(g,M)}C._startFadeInterval(w,o,g,l,f[Q],typeof E>"u")}}return C},_startFadeInterval:function(o,g,l,E,C,f){var Q=this,w=g,v=l-g,M=Math.abs(v/.01),F=Math.max(4,M>0?E/M:E),H=Date.now();o._fadeTo=l,o._interval=setInterval(function(){var Z=(Date.now()-H)/E;H=Date.now(),w+=v*Z,w=Math.round(w*100)/100,v<0?w=Math.max(l,w):w=Math.min(l,w),Q._webAudio?o._volume=w:Q.volume(w,o._id,!0),f&&(Q._volume=w),(l<g&&w<=l||l>g&&w>=l)&&(clearInterval(o._interval),o._interval=null,o._fadeTo=null,Q.volume(l,o._id),Q._emit("fade",o._id))},F)},_stopFade:function(o){var g=this,l=g._soundById(o);return l&&l._interval&&(g._webAudio&&l._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(l._interval),l._interval=null,g.volume(l._fadeTo,o),l._fadeTo=null,g._emit("fade",o)),g},loop:function(){var o=this,g=arguments,l,E,C;if(g.length===0)return o._loop;if(g.length===1)if(typeof g[0]=="boolean")l=g[0],o._loop=l;else return C=o._soundById(parseInt(g[0],10)),C?C._loop:!1;else g.length===2&&(l=g[0],E=parseInt(g[1],10));for(var f=o._getSoundIds(E),Q=0;Q<f.length;Q++)C=o._soundById(f[Q]),C&&(C._loop=l,o._webAudio&&C._node&&C._node.bufferSource&&(C._node.bufferSource.loop=l,l&&(C._node.bufferSource.loopStart=C._start||0,C._node.bufferSource.loopEnd=C._stop,o.playing(f[Q])&&(o.pause(f[Q],!0),o.play(f[Q],!0)))));return o},rate:function(){var o=this,g=arguments,l,E;if(g.length===0)E=o._sounds[0]._id;else if(g.length===1){var C=o._getSoundIds(),f=C.indexOf(g[0]);f>=0?E=parseInt(g[0],10):l=parseFloat(g[0])}else g.length===2&&(l=parseFloat(g[0]),E=parseInt(g[1],10));var Q;if(typeof l=="number"){if(o._state!=="loaded"||o._playLock)return o._queue.push({event:"rate",action:function(){o.rate.apply(o,g)}}),o;typeof E>"u"&&(o._rate=l),E=o._getSoundIds(E);for(var w=0;w<E.length;w++)if(Q=o._soundById(E[w]),Q){o.playing(E[w])&&(Q._rateSeek=o.seek(E[w]),Q._playStart=o._webAudio?t.ctx.currentTime:Q._playStart),Q._rate=l,o._webAudio&&Q._node&&Q._node.bufferSource?Q._node.bufferSource.playbackRate.setValueAtTime(l,t.ctx.currentTime):Q._node&&(Q._node.playbackRate=l);var v=o.seek(E[w]),M=(o._sprite[Q._sprite][0]+o._sprite[Q._sprite][1])/1e3-v,F=M*1e3/Math.abs(Q._rate);(o._endTimers[E[w]]||!Q._paused)&&(o._clearTimer(E[w]),o._endTimers[E[w]]=setTimeout(o._ended.bind(o,Q),F)),o._emit("rate",Q._id)}}else return Q=o._soundById(E),Q?Q._rate:o._rate;return o},seek:function(){var o=this,g=arguments,l,E;if(g.length===0)o._sounds.length&&(E=o._sounds[0]._id);else if(g.length===1){var C=o._getSoundIds(),f=C.indexOf(g[0]);f>=0?E=parseInt(g[0],10):o._sounds.length&&(E=o._sounds[0]._id,l=parseFloat(g[0]))}else g.length===2&&(l=parseFloat(g[0]),E=parseInt(g[1],10));if(typeof E>"u")return 0;if(typeof l=="number"&&(o._state!=="loaded"||o._playLock))return o._queue.push({event:"seek",action:function(){o.seek.apply(o,g)}}),o;var Q=o._soundById(E);if(Q)if(typeof l=="number"&&l>=0){var w=o.playing(E);w&&o.pause(E,!0),Q._seek=l,Q._ended=!1,o._clearTimer(E),!o._webAudio&&Q._node&&!isNaN(Q._node.duration)&&(Q._node.currentTime=l);var v=function(){w&&o.play(E,!0),o._emit("seek",E)};if(w&&!o._webAudio){var M=function(){o._playLock?setTimeout(M,0):v()};setTimeout(M,0)}else v()}else if(o._webAudio){var F=o.playing(E)?t.ctx.currentTime-Q._playStart:0,H=Q._rateSeek?Q._rateSeek-Q._seek:0;return Q._seek+(H+F*Math.abs(Q._rate))}else return Q._node.currentTime;return o},playing:function(o){var g=this;if(typeof o=="number"){var l=g._soundById(o);return l?!l._paused:!1}for(var E=0;E<g._sounds.length;E++)if(!g._sounds[E]._paused)return!0;return!1},duration:function(o){var g=this,l=g._duration,E=g._soundById(o);return E&&(l=g._sprite[E._sprite][1]/1e3),l},state:function(){return this._state},unload:function(){for(var o=this,g=o._sounds,l=0;l<g.length;l++)g[l]._paused||o.stop(g[l]._id),o._webAudio||(o._clearSound(g[l]._node),g[l]._node.removeEventListener("error",g[l]._errorFn,!1),g[l]._node.removeEventListener(t._canPlayEvent,g[l]._loadFn,!1),g[l]._node.removeEventListener("ended",g[l]._endFn,!1),t._releaseHtml5Audio(g[l]._node)),delete g[l]._node,o._clearTimer(g[l]._id);var E=t._howls.indexOf(o);E>=0&&t._howls.splice(E,1);var C=!0;for(l=0;l<t._howls.length;l++)if(t._howls[l]._src===o._src||o._src.indexOf(t._howls[l]._src)>=0){C=!1;break}return C&&delete s[o._src],t.noAudio=!1,o._state="unloaded",o._sounds=[],o=null,null},on:function(o,g,l,E){var C=this,f=C["_on"+o];return typeof g=="function"&&f.push(E?{id:l,fn:g,once:E}:{id:l,fn:g}),C},off:function(o,g,l){var E=this,C=E["_on"+o],f=0;if(typeof g=="number"&&(l=g,g=null),g||l)for(f=0;f<C.length;f++){var Q=l===C[f].id;if(g===C[f].fn&&Q||!g&&Q){C.splice(f,1);break}}else if(o)E["_on"+o]=[];else{var w=Object.keys(E);for(f=0;f<w.length;f++)w[f].indexOf("_on")===0&&Array.isArray(E[w[f]])&&(E[w[f]]=[])}return E},once:function(o,g,l){var E=this;return E.on(o,g,l,1),E},_emit:function(o,g,l){for(var E=this,C=E["_on"+o],f=C.length-1;f>=0;f--)(!C[f].id||C[f].id===g||o==="load")&&(setTimeout((function(Q){Q.call(this,g,l)}).bind(E,C[f].fn),0),C[f].once&&E.off(o,C[f].fn,C[f].id));return E._loadQueue(o),E},_loadQueue:function(o){var g=this;if(g._queue.length>0){var l=g._queue[0];l.event===o&&(g._queue.shift(),g._loadQueue()),o||l.action()}return g},_ended:function(o){var g=this,l=o._sprite;if(!g._webAudio&&o._node&&!o._node.paused&&!o._node.ended&&o._node.currentTime<o._stop)return setTimeout(g._ended.bind(g,o),100),g;var E=!!(o._loop||g._sprite[l][2]);if(g._emit("end",o._id),!g._webAudio&&E&&g.stop(o._id,!0).play(o._id),g._webAudio&&E){g._emit("play",o._id),o._seek=o._start||0,o._rateSeek=0,o._playStart=t.ctx.currentTime;var C=(o._stop-o._start)*1e3/Math.abs(o._rate);g._endTimers[o._id]=setTimeout(g._ended.bind(g,o),C)}return g._webAudio&&!E&&(o._paused=!0,o._ended=!0,o._seek=o._start||0,o._rateSeek=0,g._clearTimer(o._id),g._cleanBuffer(o._node),t._autoSuspend()),!g._webAudio&&!E&&g.stop(o._id,!0),g},_clearTimer:function(o){var g=this;if(g._endTimers[o]){if(typeof g._endTimers[o]!="function")clearTimeout(g._endTimers[o]);else{var l=g._soundById(o);l&&l._node&&l._node.removeEventListener("ended",g._endTimers[o],!1)}delete g._endTimers[o]}return g},_soundById:function(o){for(var g=this,l=0;l<g._sounds.length;l++)if(o===g._sounds[l]._id)return g._sounds[l];return null},_inactiveSound:function(){var o=this;o._drain();for(var g=0;g<o._sounds.length;g++)if(o._sounds[g]._ended)return o._sounds[g].reset();return new n(o)},_drain:function(){var o=this,g=o._pool,l=0,E=0;if(!(o._sounds.length<g)){for(E=0;E<o._sounds.length;E++)o._sounds[E]._ended&&l++;for(E=o._sounds.length-1;E>=0;E--){if(l<=g)return;o._sounds[E]._ended&&(o._webAudio&&o._sounds[E]._node&&o._sounds[E]._node.disconnect(0),o._sounds.splice(E,1),l--)}}},_getSoundIds:function(o){var g=this;if(typeof o>"u"){for(var l=[],E=0;E<g._sounds.length;E++)l.push(g._sounds[E]._id);return l}else return[o]},_refreshBuffer:function(o){var g=this;return o._node.bufferSource=t.ctx.createBufferSource(),o._node.bufferSource.buffer=s[g._src],o._panner?o._node.bufferSource.connect(o._panner):o._node.bufferSource.connect(o._node),o._node.bufferSource.loop=o._loop,o._loop&&(o._node.bufferSource.loopStart=o._start||0,o._node.bufferSource.loopEnd=o._stop||0),o._node.bufferSource.playbackRate.setValueAtTime(o._rate,t.ctx.currentTime),g},_cleanBuffer:function(o){var g=this,l=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(!o.bufferSource)return g;if(t._scratchBuffer&&o.bufferSource&&(o.bufferSource.onended=null,o.bufferSource.disconnect(0),l))try{o.bufferSource.buffer=t._scratchBuffer}catch{}return o.bufferSource=null,g},_clearSound:function(o){var g=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);g||(o.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var n=function(o){this._parent=o,this.init()};n.prototype={init:function(){var o=this,g=o._parent;return o._muted=g._muted,o._loop=g._loop,o._volume=g._volume,o._rate=g._rate,o._seek=0,o._paused=!0,o._ended=!0,o._sprite="__default",o._id=++t._counter,g._sounds.push(o),o.create(),o},create:function(){var o=this,g=o._parent,l=t._muted||o._muted||o._parent._muted?0:o._volume;return g._webAudio?(o._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),o._node.gain.setValueAtTime(l,t.ctx.currentTime),o._node.paused=!0,o._node.connect(t.masterGain)):t.noAudio||(o._node=t._obtainHtml5Audio(),o._errorFn=o._errorListener.bind(o),o._node.addEventListener("error",o._errorFn,!1),o._loadFn=o._loadListener.bind(o),o._node.addEventListener(t._canPlayEvent,o._loadFn,!1),o._endFn=o._endListener.bind(o),o._node.addEventListener("ended",o._endFn,!1),o._node.src=g._src,o._node.preload=g._preload===!0?"auto":g._preload,o._node.volume=l*t.volume(),o._node.load()),o},reset:function(){var o=this,g=o._parent;return o._muted=g._muted,o._loop=g._loop,o._volume=g._volume,o._rate=g._rate,o._seek=0,o._rateSeek=0,o._paused=!0,o._ended=!0,o._sprite="__default",o._id=++t._counter,o},_errorListener:function(){var o=this;o._parent._emit("loaderror",o._id,o._node.error?o._node.error.code:0),o._node.removeEventListener("error",o._errorFn,!1)},_loadListener:function(){var o=this,g=o._parent;g._duration=Math.ceil(o._node.duration*10)/10,Object.keys(g._sprite).length===0&&(g._sprite={__default:[0,g._duration*1e3]}),g._state!=="loaded"&&(g._state="loaded",g._emit("load"),g._loadQueue()),o._node.removeEventListener(t._canPlayEvent,o._loadFn,!1)},_endListener:function(){var o=this,g=o._parent;g._duration===1/0&&(g._duration=Math.ceil(o._node.duration*10)/10,g._sprite.__default[1]===1/0&&(g._sprite.__default[1]=g._duration*1e3),g._ended(o)),o._node.removeEventListener("ended",o._endFn,!1)}};var s={},a=function(o){var g=o._src;if(s[g]){o._duration=s[g].duration,c(o);return}if(/^data:[^;]+;base64,/.test(g)){for(var l=atob(g.split(",")[1]),E=new Uint8Array(l.length),C=0;C<l.length;++C)E[C]=l.charCodeAt(C);h(E.buffer,o)}else{var f=new XMLHttpRequest;f.open(o._xhr.method,g,!0),f.withCredentials=o._xhr.withCredentials,f.responseType="arraybuffer",o._xhr.headers&&Object.keys(o._xhr.headers).forEach(function(Q){f.setRequestHeader(Q,o._xhr.headers[Q])}),f.onload=function(){var Q=(f.status+"")[0];if(Q!=="0"&&Q!=="2"&&Q!=="3"){o._emit("loaderror",null,"Failed loading audio file with status: "+f.status+".");return}h(f.response,o)},f.onerror=function(){o._webAudio&&(o._html5=!0,o._webAudio=!1,o._sounds=[],delete s[g],o.load())},r(f)}},r=function(o){try{o.send()}catch{o.onerror()}},h=function(o,g){var l=function(){g._emit("loaderror",null,"Decoding audio data failed.")},E=function(C){C&&g._sounds.length>0?(s[g._src]=C,c(g,C)):l()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(o).then(E).catch(l):t.ctx.decodeAudioData(o,E,l)},c=function(o,g){g&&!o._duration&&(o._duration=g.duration),Object.keys(o._sprite).length===0&&(o._sprite={__default:[0,o._duration*1e3]}),o._state!=="loaded"&&(o._state="loaded",o._emit("load"),o._loadQueue())},B=function(){if(t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var o=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),g=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),l=g?parseInt(g[1],10):null;if(o&&l&&l<9){var E=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!E&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};e.Howler=t,e.Howl=i,typeof Gt<"u"?(Gt.HowlerGlobal=A,Gt.Howler=t,Gt.Howl=i,Gt.Sound=n):typeof window<"u"&&(window.HowlerGlobal=A,window.Howler=t,window.Howl=i,window.Sound=n)})();/*!
|
|
12
12
|
* Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.
|
|
13
13
|
*
|
|
14
14
|
* howler.js v2.2.4
|
|
@@ -18,12 +18,12 @@ var CanvasEngine=function(v,m){"use strict";var Vl=Object.defineProperty;var Zo=
|
|
|
18
18
|
* goldfirestudios.com
|
|
19
19
|
*
|
|
20
20
|
* MIT License
|
|
21
|
-
*/(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var i=this;if(!i.ctx||!i.ctx.listener)return i;for(var n=i._howls.length-1;n>=0;n--)i._howls[n].stereo(t);return i},HowlerGlobal.prototype.pos=function(t,i,n){var s=this;if(!s.ctx||!s.ctx.listener)return s;if(i=typeof i!="number"?s._pos[1]:i,n=typeof n!="number"?s._pos[2]:n,typeof t=="number")s._pos=[t,i,n],typeof s.ctx.listener.positionX<"u"?(s.ctx.listener.positionX.setTargetAtTime(s._pos[0],Howler.ctx.currentTime,.1),s.ctx.listener.positionY.setTargetAtTime(s._pos[1],Howler.ctx.currentTime,.1),s.ctx.listener.positionZ.setTargetAtTime(s._pos[2],Howler.ctx.currentTime,.1)):s.ctx.listener.setPosition(s._pos[0],s._pos[1],s._pos[2]);else return s._pos;return s},HowlerGlobal.prototype.orientation=function(t,i,n,s,a,r){var h=this;if(!h.ctx||!h.ctx.listener)return h;var l=h._orientation;if(i=typeof i!="number"?l[1]:i,n=typeof n!="number"?l[2]:n,s=typeof s!="number"?l[3]:s,a=typeof a!="number"?l[4]:a,r=typeof r!="number"?l[5]:r,typeof t=="number")h._orientation=[t,i,n,s,a,r],typeof h.ctx.listener.forwardX<"u"?(h.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),h.ctx.listener.forwardY.setTargetAtTime(i,Howler.ctx.currentTime,.1),h.ctx.listener.forwardZ.setTargetAtTime(n,Howler.ctx.currentTime,.1),h.ctx.listener.upX.setTargetAtTime(s,Howler.ctx.currentTime,.1),h.ctx.listener.upY.setTargetAtTime(a,Howler.ctx.currentTime,.1),h.ctx.listener.upZ.setTargetAtTime(r,Howler.ctx.currentTime,.1)):h.ctx.listener.setOrientation(t,i,n,s,a,r);else return l;return h},Howl.prototype.init=function(t){return function(i){var n=this;return n._orientation=i.orientation||[1,0,0],n._stereo=i.stereo||null,n._pos=i.pos||null,n._pannerAttr={coneInnerAngle:typeof i.coneInnerAngle<"u"?i.coneInnerAngle:360,coneOuterAngle:typeof i.coneOuterAngle<"u"?i.coneOuterAngle:360,coneOuterGain:typeof i.coneOuterGain<"u"?i.coneOuterGain:0,distanceModel:typeof i.distanceModel<"u"?i.distanceModel:"inverse",maxDistance:typeof i.maxDistance<"u"?i.maxDistance:1e4,panningModel:typeof i.panningModel<"u"?i.panningModel:"HRTF",refDistance:typeof i.refDistance<"u"?i.refDistance:1,rolloffFactor:typeof i.rolloffFactor<"u"?i.rolloffFactor:1},n._onstereo=i.onstereo?[{fn:i.onstereo}]:[],n._onpos=i.onpos?[{fn:i.onpos}]:[],n._onorientation=i.onorientation?[{fn:i.onorientation}]:[],t.call(this,i)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,i){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"stereo",action:function(){n.stereo(t,i)}}),n;var s=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof i>"u")if(typeof t=="number")n._stereo=t,n._pos=[t,0,0];else return n._stereo;for(var a=n._getSoundIds(i),r=0;r<a.length;r++){var h=n._soundById(a[r]);if(h)if(typeof t=="number")h._stereo=t,h._pos=[t,0,0],h._node&&(h._pannerAttr.panningModel="equalpower",(!h._panner||!h._panner.pan)&&A(h,s),s==="spatial"?typeof h._panner.positionX<"u"?(h._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),h._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),h._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):h._panner.setPosition(t,0,0):h._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),n._emit("stereo",h._id);else return h._stereo}return n},Howl.prototype.pos=function(t,i,n,s){var a=this;if(!a._webAudio)return a;if(a._state!=="loaded")return a._queue.push({event:"pos",action:function(){a.pos(t,i,n,s)}}),a;if(i=typeof i!="number"?0:i,n=typeof n!="number"?-.5:n,typeof s>"u")if(typeof t=="number")a._pos=[t,i,n];else return a._pos;for(var r=a._getSoundIds(s),h=0;h<r.length;h++){var l=a._soundById(r[h]);if(l)if(typeof t=="number")l._pos=[t,i,n],l._node&&((!l._panner||l._panner.pan)&&A(l,"spatial"),typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(i,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(n,Howler.ctx.currentTime)):l._panner.setPosition(t,i,n)),a._emit("pos",l._id);else return l._pos}return a},Howl.prototype.orientation=function(t,i,n,s){var a=this;if(!a._webAudio)return a;if(a._state!=="loaded")return a._queue.push({event:"orientation",action:function(){a.orientation(t,i,n,s)}}),a;if(i=typeof i!="number"?a._orientation[1]:i,n=typeof n!="number"?a._orientation[2]:n,typeof s>"u")if(typeof t=="number")a._orientation=[t,i,n];else return a._orientation;for(var r=a._getSoundIds(s),h=0;h<r.length;h++){var l=a._soundById(r[h]);if(l)if(typeof t=="number")l._orientation=[t,i,n],l._node&&(l._panner||(l._pos||(l._pos=a._pos||[0,0,-.5]),A(l,"spatial")),typeof l._panner.orientationX<"u"?(l._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.orientationY.setValueAtTime(i,Howler.ctx.currentTime),l._panner.orientationZ.setValueAtTime(n,Howler.ctx.currentTime)):l._panner.setOrientation(t,i,n)),a._emit("orientation",l._id);else return l._orientation}return a},Howl.prototype.pannerAttr=function(){var t=this,i=arguments,n,s,a;if(!t._webAudio)return t;if(i.length===0)return t._pannerAttr;if(i.length===1)if(typeof i[0]=="object")n=i[0],typeof s>"u"&&(n.pannerAttr||(n.pannerAttr={coneInnerAngle:n.coneInnerAngle,coneOuterAngle:n.coneOuterAngle,coneOuterGain:n.coneOuterGain,distanceModel:n.distanceModel,maxDistance:n.maxDistance,refDistance:n.refDistance,rolloffFactor:n.rolloffFactor,panningModel:n.panningModel}),t._pannerAttr={coneInnerAngle:typeof n.pannerAttr.coneInnerAngle<"u"?n.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof n.pannerAttr.coneOuterAngle<"u"?n.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof n.pannerAttr.coneOuterGain<"u"?n.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof n.pannerAttr.distanceModel<"u"?n.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof n.pannerAttr.maxDistance<"u"?n.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof n.pannerAttr.refDistance<"u"?n.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof n.pannerAttr.rolloffFactor<"u"?n.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof n.pannerAttr.panningModel<"u"?n.pannerAttr.panningModel:t._panningModel});else return a=t._soundById(parseInt(i[0],10)),a?a._pannerAttr:t._pannerAttr;else i.length===2&&(n=i[0],s=parseInt(i[1],10));for(var r=t._getSoundIds(s),h=0;h<r.length;h++)if(a=t._soundById(r[h]),a){var l=a._pannerAttr;l={coneInnerAngle:typeof n.coneInnerAngle<"u"?n.coneInnerAngle:l.coneInnerAngle,coneOuterAngle:typeof n.coneOuterAngle<"u"?n.coneOuterAngle:l.coneOuterAngle,coneOuterGain:typeof n.coneOuterGain<"u"?n.coneOuterGain:l.coneOuterGain,distanceModel:typeof n.distanceModel<"u"?n.distanceModel:l.distanceModel,maxDistance:typeof n.maxDistance<"u"?n.maxDistance:l.maxDistance,refDistance:typeof n.refDistance<"u"?n.refDistance:l.refDistance,rolloffFactor:typeof n.rolloffFactor<"u"?n.rolloffFactor:l.rolloffFactor,panningModel:typeof n.panningModel<"u"?n.panningModel:l.panningModel};var u=a._panner;u||(a._pos||(a._pos=t._pos||[0,0,-.5]),A(a,"spatial"),u=a._panner),u.coneInnerAngle=l.coneInnerAngle,u.coneOuterAngle=l.coneOuterAngle,u.coneOuterGain=l.coneOuterGain,u.distanceModel=l.distanceModel,u.maxDistance=l.maxDistance,u.refDistance=l.refDistance,u.rolloffFactor=l.rolloffFactor,u.panningModel=l.panningModel}return t},Sound.prototype.init=function(t){return function(){var i=this,n=i._parent;i._orientation=n._orientation,i._stereo=n._stereo,i._pos=n._pos,i._pannerAttr=n._pannerAttr,t.call(this),i._stereo?n.stereo(i._stereo):i._pos&&n.pos(i._pos[0],i._pos[1],i._pos[2],i._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var i=this,n=i._parent;return i._orientation=n._orientation,i._stereo=n._stereo,i._pos=n._pos,i._pannerAttr=n._pannerAttr,i._stereo?n.stereo(i._stereo):i._pos?n.pos(i._pos[0],i._pos[1],i._pos[2],i._id):i._panner&&(i._panner.disconnect(0),i._panner=void 0,n._refreshBuffer(i)),t.call(this)}}(Sound.prototype.reset);var A=function(t,i){i=i||"spatial",i==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()})(qA);const ha=zt({__proto__:null,default:ga(qA)},[qA]),ns=["load","loaderror","playerror","play","end","pause","stop","mute","volume","rate","seek","fade","unlock"];let ss=class extends pA{constructor(){super(...arguments),this.sounds=[],this.eventsFn=[],this.maxVolume=1,this.maxDistance=100}onInit(A){}onMount(A){const{props:t}=A,i=t.context.tick,n=t.sound.value??t.sound;if(!n.src)return;const{src:s,autoplay:a,loop:r,volume:h,spatial:l}=n,u=Array.isArray(s)?s:[s];for(const o of u){if(!o)continue;const g=new qA.Howl({src:o,autoplay:a,loop:r,volume:h});for(let c of ns){if(!n[c])continue;const E=n[c];this.eventsFn.push(E),g.on(c,E)}this.sounds.push(g)}if(l&&this.sounds.length>0){const{soundListenerPosition:o}=t.context;if(!o)throw new We("SoundListenerPosition directive is required for spatial sound in component parent");const{x:g,y:c}=o;this.tickSubscription=$(()=>{i();const{x:E,y:C}=A.componentInstance,d=Wn(E,C,g(),c()),f=Math.max(this.maxVolume-d/this.maxDistance,0);this.sounds.forEach(w=>w.volume(f))}).subscription}this.onUpdate(n)}onUpdate(A){const t=A.value??A,{volume:i,loop:n,mute:s,seek:a,playing:r,rate:h,spatial:l}=t;this.sounds.forEach(u=>{i!==void 0&&u.volume(i),n!==void 0&&u.loop(n),s!==void 0&&u.mute(s),a!==void 0&&u.seek(a),r!==void 0&&(r?u.play():u.pause()),h!==void 0&&u.rate(h)}),l&&(this.maxVolume=l.maxVolume??this.maxVolume,this.maxDistance=l.maxDistance??this.maxDistance)}onDestroy(){var A;this.sounds.forEach(t=>{t.stop();for(let i of ns){const n=this.eventsFn.find(s=>s===this.eventsFn[i]);n&&t.off(i,n)}}),this.sounds=[],this.eventsFn=[],(A=this.tickSubscription)==null||A.unsubscribe()}};class la extends pA{onMount(A){var t;A.props.context.soundListenerPosition=(t=A.propObservables)==null?void 0:t.soundListenerPosition}onInit(A){}onUpdate(A){}onDestroy(){}}yA("sound",ss),yA("soundListenerPosition",la);function os(e,A){var t={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&A.indexOf(i)<0&&(t[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(e);n<i.length;n++)A.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(t[i[n]]=e[i[n]]);return t}var rs=function(){};const ei=(e,A,t)=>Math.min(Math.max(t,e),A),ii=.001,ca=.01,Ia=10,Ba=.05,ua=1;function Ea({duration:e=800,bounce:A=.25,velocity:t=0,mass:i=1}){let n,s,a=1-A;a=ei(Ba,ua,a),e=ei(ca,Ia,e/1e3),a<1?(n=l=>{const u=l*a,o=u*e,g=u-t,c=ni(l,a),E=Math.exp(-o);return ii-g/c*E},s=l=>{const o=l*a*e,g=o*t+t,c=Math.pow(a,2)*Math.pow(l,2)*e,E=Math.exp(-o),C=ni(Math.pow(l,2),a);return(-n(l)+ii>0?-1:1)*((g-c)*E)/C}):(n=l=>{const u=Math.exp(-l*e),o=(l-t)*e+1;return-ii+u*o},s=l=>{const u=Math.exp(-l*e),o=(t-l)*(e*e);return u*o});const r=5/e,h=Qa(n,s,r);if(e=e*1e3,isNaN(h))return{stiffness:100,damping:10,duration:e};{const l=Math.pow(h,2)*i;return{stiffness:l,damping:a*2*Math.sqrt(i*l),duration:e}}}const Ca=12;function Qa(e,A,t){let i=t;for(let n=1;n<Ca;n++)i=i-e(i)/A(i);return i}function ni(e,A){return e*Math.sqrt(1-A*A)}const fa=["duration","bounce"],da=["stiffness","damping","mass"];function as(e,A){return A.some(t=>e[t]!==void 0)}function pa(e){let A=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},e);if(!as(e,da)&&as(e,fa)){const t=Ea(e);A=Object.assign(Object.assign(Object.assign({},A),t),{velocity:0,mass:1}),A.isResolvedFromDuration=!0}return A}function si(e){var{from:A=0,to:t=1,restSpeed:i=2,restDelta:n}=e,s=os(e,["from","to","restSpeed","restDelta"]);const a={done:!1,value:A};let{stiffness:r,damping:h,mass:l,velocity:u,duration:o,isResolvedFromDuration:g}=pa(s),c=gs,E=gs;function C(){const d=u?-(u/1e3):0,f=t-A,w=h/(2*Math.sqrt(r*l)),S=Math.sqrt(r/l)/1e3;if(n===void 0&&(n=Math.min(Math.abs(t-A)/100,.4)),w<1){const F=ni(S,w);c=N=>{const O=Math.exp(-w*S*N);return t-O*((d+w*S*f)/F*Math.sin(F*N)+f*Math.cos(F*N))},E=N=>{const O=Math.exp(-w*S*N);return w*S*O*(Math.sin(F*N)*(d+w*S*f)/F+f*Math.cos(F*N))-O*(Math.cos(F*N)*(d+w*S*f)-F*f*Math.sin(F*N))}}else if(w===1)c=F=>t-Math.exp(-S*F)*(f+(d+S*f)*F);else{const F=S*Math.sqrt(w*w-1);c=N=>{const O=Math.exp(-w*S*N),AA=Math.min(F*N,300);return t-O*((d+w*S*f)*Math.sinh(AA)+F*f*Math.cosh(AA))/F}}}return C(),{next:d=>{const f=c(d);if(g)a.done=d>=o;else{const w=E(d)*1e3,S=Math.abs(w)<=i,F=Math.abs(t-f)<=n;a.done=S&&F}return a.value=a.done?t:f,a},flipTarget:()=>{u=-u,[A,t]=[t,A],C()}}}si.needsInterpolation=(e,A)=>typeof e=="string"||typeof A=="string";const gs=e=>0,hs=(e,A,t)=>{const i=A-e;return i===0?1:(t-e)/i},oi=(e,A,t)=>-t*e+t*A+e,ls=(e,A)=>t=>Math.max(Math.min(t,A),e),_t=e=>e%1?Number(e.toFixed(5)):e,re=/(-)?([\d]*\.?[\d])+/g,ri=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,ya=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function Nt(e){return typeof e=="string"}const ae={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},cs=Object.assign(Object.assign({},ae),{transform:ls(0,1)});Object.assign(Object.assign({},ae),{default:1});const Ht=(e=>({test:A=>Nt(A)&&A.endsWith(e)&&A.split(" ").length===1,parse:parseFloat,transform:A=>`${A}${e}`}))("%");Object.assign(Object.assign({},Ht),{parse:e=>Ht.parse(e)/100,transform:e=>Ht.transform(e*100)});const ai=(e,A)=>t=>!!(Nt(t)&&ya.test(t)&&t.startsWith(e)||A&&Object.prototype.hasOwnProperty.call(t,A)),Is=(e,A,t)=>i=>{if(!Nt(i))return i;const[n,s,a,r]=i.match(re);return{[e]:parseFloat(n),[A]:parseFloat(s),[t]:parseFloat(a),alpha:r!==void 0?parseFloat(r):1}},ZA={test:ai("hsl","hue"),parse:Is("hue","saturation","lightness"),transform:({hue:e,saturation:A,lightness:t,alpha:i=1})=>"hsla("+Math.round(e)+", "+Ht.transform(_t(A))+", "+Ht.transform(_t(t))+", "+_t(cs.transform(i))+")"},wa=ls(0,255),gi=Object.assign(Object.assign({},ae),{transform:e=>Math.round(wa(e))}),PA={test:ai("rgb","red"),parse:Is("red","green","blue"),transform:({red:e,green:A,blue:t,alpha:i=1})=>"rgba("+gi.transform(e)+", "+gi.transform(A)+", "+gi.transform(t)+", "+_t(cs.transform(i))+")"};function ma(e){let A="",t="",i="",n="";return e.length>5?(A=e.substr(1,2),t=e.substr(3,2),i=e.substr(5,2),n=e.substr(7,2)):(A=e.substr(1,1),t=e.substr(2,1),i=e.substr(3,1),n=e.substr(4,1),A+=A,t+=t,i+=i,n+=n),{red:parseInt(A,16),green:parseInt(t,16),blue:parseInt(i,16),alpha:n?parseInt(n,16)/255:1}}const hi={test:ai("#"),parse:ma,transform:PA.transform},ge={test:e=>PA.test(e)||hi.test(e)||ZA.test(e),parse:e=>PA.test(e)?PA.parse(e):ZA.test(e)?ZA.parse(e):hi.parse(e),transform:e=>Nt(e)?e:e.hasOwnProperty("red")?PA.transform(e):ZA.transform(e)},Bs="${c}",us="${n}";function Da(e){var A,t,i,n;return isNaN(e)&&Nt(e)&&((t=(A=e.match(re))===null||A===void 0?void 0:A.length)!==null&&t!==void 0?t:0)+((n=(i=e.match(ri))===null||i===void 0?void 0:i.length)!==null&&n!==void 0?n:0)>0}function Es(e){typeof e=="number"&&(e=`${e}`);const A=[];let t=0;const i=e.match(ri);i&&(t=i.length,e=e.replace(ri,Bs),A.push(...i.map(ge.parse)));const n=e.match(re);return n&&(e=e.replace(re,us),A.push(...n.map(ae.parse))),{values:A,numColors:t,tokenised:e}}function Cs(e){return Es(e).values}function Qs(e){const{values:A,numColors:t,tokenised:i}=Es(e),n=A.length;return s=>{let a=i;for(let r=0;r<n;r++)a=a.replace(r<t?Bs:us,r<t?ge.transform(s[r]):_t(s[r]));return a}}const va=e=>typeof e=="number"?0:e;function Sa(e){const A=Cs(e);return Qs(e)(A.map(va))}const fs={test:Da,parse:Cs,createTransformer:Qs,getAnimatableNone:Sa};function li(e,A,t){return t<0&&(t+=1),t>1&&(t-=1),t<.16666666666666666?e+(A-e)*6*t:t<.5?A:t<.6666666666666666?e+(A-e)*(.6666666666666666-t)*6:e}function ds({hue:e,saturation:A,lightness:t,alpha:i}){e/=360,A/=100,t/=100;let n=0,s=0,a=0;if(!A)n=s=a=t;else{const r=t<.5?t*(1+A):t+A-t*A,h=2*t-r;n=li(h,r,e+.3333333333333333),s=li(h,r,e),a=li(h,r,e-.3333333333333333)}return{red:Math.round(n*255),green:Math.round(s*255),blue:Math.round(a*255),alpha:i}}const xa=(e,A,t)=>{const i=e*e,n=A*A;return Math.sqrt(Math.max(0,t*(n-i)+i))},ba=[hi,PA,ZA],ps=e=>ba.find(A=>A.test(e)),ys=(e,A)=>{let t=ps(e),i=ps(A),n=t.parse(e),s=i.parse(A);t===ZA&&(n=ds(n),t=PA),i===ZA&&(s=ds(s),i=PA);const a=Object.assign({},n);return r=>{for(const h in a)h!=="alpha"&&(a[h]=xa(n[h],s[h],r));return a.alpha=oi(n.alpha,s.alpha,r),t.transform(a)}},ka=e=>typeof e=="number",Ma=(e,A)=>t=>A(e(t)),ws=(...e)=>e.reduce(Ma);function ms(e,A){return ka(e)?t=>oi(e,A,t):ge.test(e)?ys(e,A):Ss(e,A)}const Ds=(e,A)=>{const t=[...e],i=t.length,n=e.map((s,a)=>ms(s,A[a]));return s=>{for(let a=0;a<i;a++)t[a]=n[a](s);return t}},Ra=(e,A)=>{const t=Object.assign(Object.assign({},e),A),i={};for(const n in t)e[n]!==void 0&&A[n]!==void 0&&(i[n]=ms(e[n],A[n]));return n=>{for(const s in i)t[s]=i[s](n);return t}};function vs(e){const A=fs.parse(e),t=A.length;let i=0,n=0,s=0;for(let a=0;a<t;a++)i||typeof A[a]=="number"?i++:A[a].hue!==void 0?s++:n++;return{parsed:A,numNumbers:i,numRGB:n,numHSL:s}}const Ss=(e,A)=>{const t=fs.createTransformer(A),i=vs(e),n=vs(A);return i.numHSL===n.numHSL&&i.numRGB===n.numRGB&&i.numNumbers>=n.numNumbers?ws(Ds(i.parsed,n.parsed),t):a=>`${a>0?A:e}`},Fa=(e,A)=>t=>oi(e,A,t);function Ga(e){if(typeof e=="number")return Fa;if(typeof e=="string")return ge.test(e)?ys:Ss;if(Array.isArray(e))return Ds;if(typeof e=="object")return Ra}function _a(e,A,t){const i=[],n=t||Ga(e[0]),s=e.length-1;for(let a=0;a<s;a++){let r=n(e[a],e[a+1]);if(A){const h=Array.isArray(A)?A[a]:A;r=ws(h,r)}i.push(r)}return i}function Na([e,A],[t]){return i=>t(hs(e,A,i))}function Ha(e,A){const t=e.length,i=t-1;return n=>{let s=0,a=!1;if(n<=e[0]?a=!0:n>=e[i]&&(s=i-1,a=!0),!a){let h=1;for(;h<t&&!(e[h]>n||h===i);h++);s=h-1}const r=hs(e[s],e[s+1],n);return A[s](r)}}function xs(e,A,{clamp:t=!0,ease:i,mixer:n}={}){const s=e.length;rs(s===A.length),rs(!i||!Array.isArray(i)||i.length===s-1),e[0]>e[s-1]&&(e=[].concat(e),A=[].concat(A),e.reverse(),A.reverse());const a=_a(A,i,n),r=s===2?Na(e,a):Ha(e,a);return t?h=>r(ei(e[0],e[s-1],h)):r}const he=e=>A=>1-e(1-A),ci=e=>A=>A<=.5?e(2*A)/2:(2-e(2*(1-A)))/2,La=e=>A=>Math.pow(A,e),bs=e=>A=>A*A*((e+1)*A-e),Ua=e=>{const A=bs(e);return t=>(t*=2)<1?.5*A(t):.5*(2-Math.pow(2,-10*(t-1)))},ks=1.525,Oa=4/11,Ta=8/11,Pa=9/10,Ja=e=>e,Ii=La(2),Ka=he(Ii),Ms=ci(Ii),Rs=e=>1-Math.sin(Math.acos(e)),Fs=he(Rs),Ya=ci(Fs),Bi=bs(ks),Wa=he(Bi),Xa=ci(Bi),Va=Ua(ks),qa=4356/361,Za=35442/1805,za=16061/1805,le=e=>{if(e===1||e===0)return e;const A=e*e;return e<Oa?7.5625*A:e<Ta?9.075*A-9.9*e+3.4:e<Pa?qa*A-Za*e+za:10.8*e*e-20.52*e+10.72},ja=he(le),$a=e=>e<.5?.5*(1-le(1-e*2)):.5*le(e*2-1)+.5;function Ag(e,A){return e.map(()=>A||Ms).splice(0,e.length-1)}function tg(e){const A=e.length;return e.map((t,i)=>i!==0?i/(A-1):0)}function eg(e,A){return e.map(t=>t*A)}function ce({from:e=0,to:A=1,ease:t,offset:i,duration:n=300}){const s={done:!1,value:e},a=Array.isArray(A)?A:[e,A],r=eg(i&&i.length===a.length?i:tg(a),n);function h(){return xs(r,a,{ease:Array.isArray(t)?t:Ag(a,t)})}let l=h();return{next:u=>(s.value=l(u),s.done=u>=n,s),flipTarget:()=>{a.reverse(),l=h()}}}function ig({velocity:e=0,from:A=0,power:t=.8,timeConstant:i=350,restDelta:n=.5,modifyTarget:s}){const a={done:!1,value:A};let r=t*e;const h=A+r,l=s===void 0?h:s(h);return l!==h&&(r=l-A),{next:u=>{const o=-r*Math.exp(-u/i);return a.done=!(o>n||o<-n),a.value=a.done?l:l+o,a},flipTarget:()=>{}}}const Gs={keyframes:ce,spring:si,decay:ig};function ng(e){if(Array.isArray(e.to))return ce;if(Gs[e.type])return Gs[e.type];const A=new Set(Object.keys(e));return A.has("ease")||A.has("duration")&&!A.has("dampingRatio")?ce:A.has("dampingRatio")||A.has("stiffness")||A.has("mass")||A.has("damping")||A.has("restSpeed")||A.has("restDelta")?si:ce}const _s=1/60*1e3,sg=typeof performance<"u"?()=>performance.now():()=>Date.now(),Ns=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(sg()),_s);function og(e){let A=[],t=[],i=0,n=!1,s=!1;const a=new WeakSet,r={schedule:(h,l=!1,u=!1)=>{const o=u&&n,g=o?A:t;return l&&a.add(h),g.indexOf(h)===-1&&(g.push(h),o&&n&&(i=A.length)),h},cancel:h=>{const l=t.indexOf(h);l!==-1&&t.splice(l,1),a.delete(h)},process:h=>{if(n){s=!0;return}if(n=!0,[A,t]=[t,A],t.length=0,i=A.length,i)for(let l=0;l<i;l++){const u=A[l];u(h),a.has(u)&&(r.schedule(u),e())}n=!1,s&&(s=!1,r.process(h))}};return r}const rg=40;let ui=!0,Lt=!1,Ei=!1;const Ut={delta:0,timestamp:0},Ot=["read","update","preRender","render","postRender"],Ie=Ot.reduce((e,A)=>(e[A]=og(()=>Lt=!0),e),{}),ag=Ot.reduce((e,A)=>{const t=Ie[A];return e[A]=(i,n=!1,s=!1)=>(Lt||lg(),t.schedule(i,n,s)),e},{}),gg=Ot.reduce((e,A)=>(e[A]=Ie[A].cancel,e),{});Ot.reduce((e,A)=>(e[A]=()=>Ie[A].process(Ut),e),{});const hg=e=>Ie[e].process(Ut),Hs=e=>{Lt=!1,Ut.delta=ui?_s:Math.max(Math.min(e-Ut.timestamp,rg),1),Ut.timestamp=e,Ei=!0,Ot.forEach(hg),Ei=!1,Lt&&(ui=!1,Ns(Hs))},lg=()=>{Lt=!0,ui=!0,Ei||Ns(Hs)};function Ls(e,A,t=0){return e-A-t}function cg(e,A,t=0,i=!0){return i?Ls(A+-e,A,t):A-(e-A)+t}function Ig(e,A,t,i){return i?e>=A+t:e<=-t}const Bg=e=>{const A=({delta:t})=>e(t);return{start:()=>ag.update(A,!0),stop:()=>gg.update(A)}};function Us(e){var A,t,{from:i,autoplay:n=!0,driver:s=Bg,elapsed:a=0,repeat:r=0,repeatType:h="loop",repeatDelay:l=0,onPlay:u,onStop:o,onComplete:g,onRepeat:c,onUpdate:E}=e,C=os(e,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]);let{to:d}=C,f,w=0,S=C.duration,F,N=!1,O=!0,AA;const CA=ng(C);!((t=(A=CA).needsInterpolation)===null||t===void 0)&&t.call(A,i,d)&&(AA=xs([0,100],[i,d],{clamp:!1}),i=0,d=100);const L=CA(Object.assign(Object.assign({},C),{from:i,to:d}));function GA(){w++,h==="reverse"?(O=w%2===0,a=cg(a,S,l,O)):(a=Ls(a,S,l),h==="mirror"&&L.flipTarget()),N=!1,c&&c()}function YA(){f.stop(),g&&g()}function iA(tA){if(O||(tA=-tA),a+=tA,!N){const WA=L.next(Math.max(0,a));F=WA.value,AA&&(F=AA(F)),N=O?WA.done:a<=0}E==null||E(F),N&&(w===0&&(S??(S=a)),w<r?Ig(a,S,l,O)&&GA():YA())}function bA(){u==null||u(),f=s(iA),f.start()}return n&&bA(),{stop:()=>{o==null||o(),f.stop()}}}const ug=e=>{if(typeof e=="number")return A=>Math.round(A/e)*e;{let A=0;const t=e.length;return i=>{let n=Math.abs(e[0]-i);for(A=1;A<t;A++){const s=e[A],a=Math.abs(s-i);if(a===0)return s;if(a>n)return e[A-1];if(A===t-1)return s;n=a}}}},Eg=(e,A,t)=>{e.props.context={...e.props.context??{},[A]:t}};class Os extends pA{constructor(){super(...arguments),this.elementRef=null}onInit(A){this.elementRef=A}onMount(A){Eg(A,"drop",A)}onUpdate(){}onDestroy(){this.elementRef=null}}class Ts extends pA{constructor(){super(...arguments),this.elementRef=null,this.stageRef=null,this.offsetInParent=new m.Point,this.isDragging=!1,this.viewport=null,this.animationFrameId=null,this.lastPointerPosition=new m.Point,this.pressedKeys=new Set,this.pointerIsDown=!1,this.onDragMoveHandler=()=>{},this.onDragEndHandler=()=>{},this.onDragStartHandler=()=>{},this.onKeyDownHandler=()=>{},this.onKeyUpHandler=()=>{},this.subscriptions=[]}onInit(A){this.elementRef=A,this.onDragMoveHandler=this.onDragMove.bind(this),this.onDragEndHandler=this.onDragEnd.bind(this),this.onDragStartHandler=this.onPointerDown.bind(this),this.onKeyDownHandler=this.onKeyDown.bind(this),this.onKeyUpHandler=this.onKeyUp.bind(this)}onMount(A){const{rootElement:t,canvasSize:i,viewport:n,tick:s}=A.props.context,a=A.componentInstance,r=this.dragProps;if(Object.keys(r).length===0){this.onDestroy();return}if(!a||(this.stageRef=t.componentInstance,!this.stageRef))return;this.viewport=n,a.eventMode="static",this.stageRef.eventMode="static";const l=$(()=>{this.stageRef&&(this.stageRef.hitArea=new m.Rectangle(0,0,i().width,i().height))});a.on("pointerdown",this.onDragStartHandler),this.stageRef.on("pointerup",this.onDragEndHandler),this.stageRef.on("pointerupoutside",this.onDragEndHandler),r.keyToPress&&r.keyToPress,window.addEventListener("keydown",this.onKeyDownHandler),window.addEventListener("keyup",this.onKeyUpHandler),this.subscriptions=[s.observable.subscribe(()=>{this.isDragging&&this.viewport&&this.updateViewportPosition(this.lastPointerPosition)}),l.subscription]}get dragProps(){var i;const A=(i=this.elementRef)==null?void 0:i.props.drag,t=rA((A==null?void 0:A.value)??A,{snap:0,viewport:{},direction:"all",keyToPress:[]});return t.viewport=rA(t.viewport,{edgeThreshold:300,maxSpeed:40}),t}get axis(){const A=this.dragProps.direction(),t={x:!0,y:!0};return A==="x"&&(t.y=!1),A==="y"&&(t.x=!1),t}onDragMove(A){var c,E;if(!this.isDragging||!((c=this.elementRef)!=null&&c.componentInstance)||!this.elementRef.componentInstance.parent)return;const t=this.elementRef.componentInstance,i=t.parent,n=this.dragProps,s=this.elementRef.propObservables,a=ug((n==null?void 0:n.snap())??0);(E=n==null?void 0:n.move)==null||E.call(n,A);const r=i.toLocal(A.global),h=r.x-this.offsetInParent.x,l=r.y-this.offsetInParent.y;n!=null&&n.snap()?(t.position.x=a(h),t.position.y=a(l)):(this.axis.x&&(t.position.x=h),this.axis.y&&(t.position.y=l)),this.lastPointerPosition.copyFrom(A.global);const{x:u,y:o}=s,g=(C,d)=>{oe(C)?C.dependencies.forEach(f=>{f.set(d)}):W(C)&&C.set(d)};u!==void 0&&g(u,t.position.x),o!==void 0&&g(o,t.position.y)}updateViewportPosition(A){var d,f;if(!this.viewport||!this.elementRef)return;const t=this.dragProps,i=(d=t==null?void 0:t.viewport)==null?void 0:d.edgeThreshold(),n=(f=t==null?void 0:t.viewport)==null?void 0:f.maxSpeed(),s=0,a=this.viewport.screenWidth,r=0,h=this.viewport.screenHeight,l=this.elementRef.componentInstance,u=A.x-s,o=a-A.x,g=A.y-r,c=h-A.y;let E=0,C=0;if(u<i?E=-(n*(1-u/i)):o<i&&(E=n*(1-o/i)),g<i?C=-(n*(1-g/i)):c<i&&(C=n*(1-c/i)),E!==0||C!==0){const w=this.viewport.center;this.viewport.moveCenter(this.viewport.center.x+E,this.viewport.center.y+C),this.axis.x&&w.x!==this.viewport.center.x&&(l.position.x+=E),this.axis.y&&w.y!==this.viewport.center.y&&(l.position.y+=C)}}onDragEnd(){var t;if(this.pointerIsDown=!1,!this.isDragging)return;const A=this.dragProps;this.isDragging=!1,(t=A==null?void 0:A.end)==null||t.call(A),this.stageRef&&this.stageRef.off("pointermove",this.onDragMoveHandler)}onKeyDown(A){this.pressedKeys.add(A.code),this.pressedKeys.add(A.key.toLowerCase()),this.pointerIsDown&&!this.isDragging&&this.areRequiredKeysPressed()&&this.startDrag()}onKeyUp(A){this.pressedKeys.delete(A.code),this.pressedKeys.delete(A.key.toLowerCase()),this.isDragging&&!this.areRequiredKeysPressed()&&this.onDragEnd()}areRequiredKeysPressed(){const A=this.dragProps.keyToPress?this.dragProps.keyToPress:[];return!A||A.length===0?!0:A.some(t=>this.pressedKeys.has(t)?!0:t.toLowerCase()==="space"?this.pressedKeys.has("Space")||this.pressedKeys.has(" "):t.toLowerCase()==="shift"?this.pressedKeys.has("ShiftLeft")||this.pressedKeys.has("ShiftRight"):t.toLowerCase()==="control"||t.toLowerCase()==="ctrl"?this.pressedKeys.has("ControlLeft")||this.pressedKeys.has("ControlRight"):t.toLowerCase()==="alt"?this.pressedKeys.has("AltLeft")||this.pressedKeys.has("AltRight"):!1)}onPointerDown(A){var s;if(!((s=this.elementRef)!=null&&s.componentInstance)||!this.stageRef||!this.elementRef.componentInstance.parent)return;this.pointerIsDown=!0;const t=this.elementRef.componentInstance,n=t.parent.toLocal(A.global);this.offsetInParent.x=n.x-t.position.x,this.offsetInParent.y=n.y-t.position.y,this.lastPointerPosition.copyFrom(A.global),this.areRequiredKeysPressed()&&this.startDrag()}startDrag(){var t;if(this.isDragging||!this.stageRef)return;this.isDragging=!0;const A=this.dragProps;(t=A==null?void 0:A.start)==null||t.call(A),this.stageRef.on("pointermove",this.onDragMoveHandler)}onUpdate(A){A.type&&A.type==="reset"&&(this.onDestroy(),this.onMount(this.elementRef))}onDestroy(){var t;this.subscriptions.forEach(i=>i.unsubscribe());const A=(t=this.elementRef)==null?void 0:t.componentInstance;A&&A.off("pointerdown",this.onDragStartHandler),this.stageRef&&(this.stageRef.off("pointermove",this.onDragMoveHandler),this.stageRef.off("pointerup",this.onDragEndHandler),this.stageRef.off("pointerupoutside",this.onDragEndHandler)),window.removeEventListener("keydown",this.onKeyDownHandler),window.removeEventListener("keyup",this.onKeyUpHandler),this.stageRef=null,this.viewport=null,this.pressedKeys.clear(),this.pointerIsDown=!1}}yA("drag",Ts),yA("drop",Os);class Ps extends pA{onInit(A){}onMount(A){const{image:t}=A.props.transition,i=new m.Sprite(m.Texture.from(t));i.texture.baseTexture.wrapMode=m.WRAP_MODES.REPEAT;const n=new m.DisplacementFilter(i),s=A.componentInstance;s.filters=[n],s.addChild(i),setTimeout(()=>{Us({from:0,to:1,duration:500,onUpdate:a=>{n.scale.x=a,n.scale.y=a}})},5e3)}onUpdate(A){}onDestroy(){}}yA("transition",Ps);function Tt(e){return(e==null?void 0:e.start)&&(e==null?void 0:e.listen)}function Cg(e){const A=Y({config:e,value:0,resolve:t=>{}});return{start:t=>new Promise(i=>{A.set({config:{...e,...t},resolve:i,value:Math.random()})}),listen:()=>({config:e,seed:A()})}}function Be(e,A){if(!Tt(e))throw new Error("In 'on(arg)' must have a trigger signal type");$(()=>{const t=e.listen();if(t!=null&&t.seed.value){const i=A(t==null?void 0:t.seed.config);i&&typeof i.then=="function"&&i.then(t==null?void 0:t.seed.resolve)}})}function Ci(e){return e.animatedState!==void 0}function Qi(e,A={}){const t={current:e,start:e,end:e};let i;const n=Y(e),s=Y(t);$(()=>{const h=s();n.set(h.current)});function a(h,l={}){if(h===void 0)return s();const u=s(),o={current:u.current,start:u.current,end:h};s.set(o),i&&i.stop(),i=Us({duration:20,...A,...l,from:u.current,to:h,onUpdate:g=>{s.update(c=>({...c,current:g})),A.onUpdate&&A.onUpdate(g)}})}const r=function(){return s().current};for(const h in n)r[h]=n[h];return r.animatedState=s,r.update=h=>{a(h(s().current))},r.set=async(h,l={})=>new Promise(u=>{a(h,{...l,onComplete:u})}),r}async function Qg(e){for(const A of e)Array.isArray(A)?await Promise.all(A.map(t=>t())):await A()}class Js extends pA{constructor(){super(...arguments),this.elementRef=null,this.originalPosition=new m.Point,this.progressSignal=null,this.shakeSubscription=null,this.positionEffect=null,this.currentShakeConfig=null}onInit(A){this.elementRef=A}onMount(A){const t=A.componentInstance;if(!t)return;const i=this.shakeProps;!i.trigger||!Tt(i.trigger)||(this.originalPosition.set(t.position.x,t.position.y),this.shakeSubscription=Be(i.trigger,async n=>{await this.performShake(n)}))}get shakeProps(){var t;const A=(t=this.elementRef)==null?void 0:t.props.shake;return rA((A==null?void 0:A.value)??A,{intensity:10,duration:500,frequency:10,direction:"both"})}async performShake(A){var u,o,g;if(!((u=this.elementRef)!=null&&u.componentInstance))return;const t=this.elementRef.componentInstance,i=this.shakeProps,n=(A==null?void 0:A.intensity)??i.intensity(),s=(A==null?void 0:A.duration)??i.duration(),a=(A==null?void 0:A.frequency)??i.frequency(),r=(A==null?void 0:A.direction)??i.direction();this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.originalPosition.set(t.position.x,t.position.y),t.position.x=this.originalPosition.x,t.position.y=this.originalPosition.y,(o=i.onStart)==null||o.call(i),this.currentShakeConfig={intensity:n,frequency:a,direction:r,randomSeed:Math.random()*1e3},this.progressSignal?(this.progressSignal.set(0,{duration:0}),await new Promise(c=>setTimeout(c,0))):this.progressSignal=Qi(0,{duration:s,ease:c=>c});const h=r!=="y",l=r!=="x";this.positionEffect=$(()=>{if(!t||!this.progressSignal||!this.currentShakeConfig)return;const c=this.progressSignal(),E=this.currentShakeConfig,C=1-c,d=c*E.frequency,f=Math.sin(d*Math.PI*2),w=Math.sin(E.randomSeed+c*10)*.25+1,S=h?f*E.intensity*C*w:0,F=l?f*E.intensity*C*w:0;t.position.x=this.originalPosition.x+S,t.position.y=this.originalPosition.y+F}).subscription,await this.progressSignal.set(1,{duration:s}),t&&(t.position.x=this.originalPosition.x,t.position.y=this.originalPosition.y),this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.currentShakeConfig=null,(g=i.onComplete)==null||g.call(i)}onUpdate(A){A.type&&A.type==="reset"&&(this.onDestroy(),this.elementRef&&this.onMount(this.elementRef))}onDestroy(){var A;if(this.progressSignal&&(this.progressSignal.set(0,{duration:0}),this.progressSignal=null),this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.currentShakeConfig=null,(A=this.elementRef)!=null&&A.componentInstance){const t=this.elementRef.componentInstance;t.position.x=this.originalPosition.x,t.position.y=this.originalPosition.y}this.shakeSubscription&&(this.shakeSubscription=null),this.elementRef=null}}yA("shake",Js);class Ks extends pA{constructor(){super(...arguments),this.elementRef=null,this.progressSignal=null,this.flashSubscription=null,this.alphaEffect=null,this.tintEffect=null,this.originalAlpha=1,this.originalTint=16777215,this.currentFlashConfig=null}onInit(A){this.elementRef=A}onMount(A){const t=A.componentInstance;if(!t)return;const i=this.flashProps;if(!i.trigger||!Tt(i.trigger))return;this.originalAlpha===1&&!i.originalAlpha?this.originalAlpha=t.alpha??1:i.originalAlpha!==void 0&&(this.originalAlpha=i.originalAlpha);const n=t.tint;this.originalTint===16777215&&!i.originalTint?this.originalTint=(W(n)?n():n)??16777215:i.originalTint!==void 0&&(this.originalTint=i.originalTint),this.flashSubscription=Be(i.trigger,async s=>{await this.performFlash(s)})}get flashProps(){var t;const A=(t=this.elementRef)==null?void 0:t.props.flash;return rA((A==null?void 0:A.value)??A,{type:"alpha",duration:300,cycles:1,alpha:.3,tint:16777215})}async performFlash(A){var u,o,g;if(!((u=this.elementRef)!=null&&u.componentInstance))return;const t=this.elementRef.componentInstance,i=this.flashProps,n=(A==null?void 0:A.type)??(typeof i.type=="function"?i.type():i.type),s=(A==null?void 0:A.duration)??(typeof i.duration=="function"?i.duration():i.duration),a=(A==null?void 0:A.cycles)??(typeof i.cycles=="function"?i.cycles():i.cycles),r=(A==null?void 0:A.alpha)??(typeof i.alpha=="function"?i.alpha():i.alpha),h=(A==null?void 0:A.tint)??(typeof i.tint=="function"?i.tint():i.tint);this.progressSignal&&this.progressSignal.set(0,{duration:0}),this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),t.alpha=this.originalAlpha;const l=t.tint;if(l!==void 0){const c=typeof this.originalTint=="number"?this.originalTint:16777215;W(l)?l.set(c):t.tint=c}if((o=i.onStart)==null||o.call(i),this.currentFlashConfig={type:n,duration:s,cycles:a,flashAlpha:r,flashTint:h},this.progressSignal||(this.progressSignal=Qi(0,{duration:s,ease:c=>c})),this.progressSignal.set(0,{duration:0}),await new Promise(c=>setTimeout(c,0)),(n==="alpha"||n==="both")&&(this.alphaEffect=$(()=>{if(!t||!this.progressSignal||!this.currentFlashConfig)return;const c=this.progressSignal(),E=this.currentFlashConfig,C=c*E.cycles%1,d=C<.5?C*2:1-(C-.5)*2,f=this.originalAlpha+(E.flashAlpha-this.originalAlpha)*d;t.alpha=f}).subscription),(n==="tint"||n==="both")&&(this.tintEffect=$(()=>{if(!t||!this.progressSignal||!this.currentFlashConfig)return;const c=t.tint;if(c===void 0)return;const E=W(c),C=this.progressSignal(),d=this.currentFlashConfig,f=C*d.cycles%1,w=f<.5?f*2:1-(f-.5)*2,S=this.originalTint>>16&255,F=this.originalTint>>8&255,N=this.originalTint&255,O=d.flashTint>>16&255,AA=d.flashTint>>8&255,CA=d.flashTint&255,L=Math.round(S+(O-S)*w),GA=Math.round(F+(AA-F)*w),YA=Math.round(N+(CA-N)*w),iA=L<<16|GA<<8|YA;E?c.set(iA):t.tint=iA}).subscription),await this.progressSignal.set(1,{duration:s}),t){t.alpha=this.originalAlpha;const c=t.tint;if(c!==void 0){const E=typeof this.originalTint=="number"?this.originalTint:16777215;W(c)?c.set(E):t.tint=E}}this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),this.currentFlashConfig=null,(g=i.onComplete)==null||g.call(i)}onUpdate(A){A.type&&A.type==="reset"&&(this.onDestroy(),this.elementRef&&this.onMount(this.elementRef))}onDestroy(){var A;if(this.progressSignal&&(this.progressSignal.set(0,{duration:0}),this.progressSignal=null),this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),this.currentFlashConfig=null,(A=this.elementRef)!=null&&A.componentInstance){const t=this.elementRef.componentInstance;t.alpha=this.originalAlpha;const i=t.tint;if(i!==void 0){const n=typeof this.originalTint=="number"?this.originalTint:16777215;W(i)?i.set(n):t.tint=n}}this.flashSubscription&&(this.flashSubscription=null),this.elementRef=null}}yA("flash",Ks);function JA(e){return e&&typeof e=="string"?e.endsWith("%"):!1}const Ys=["added","childAdded","childRemoved","click","clickcapture","destroyed","globalmousemove","globalpointermove","globaltouchmove","mousedown","mousedowncapture","mouseenter","mouseentercapture","mouseleave","mouseleavecapture","mousemove","mousemovecapture","mouseout","mouseoutcapture","mouseover","mouseovercapture","mouseup","mouseupcapture","mouseupoutside","mouseupoutsidecapture","pointercancel","pointercancelcapture","pointerdown","pointerdowncapture","pointerenter","pointerentercapture","pointerleave","pointerleavecapture","pointermove","pointermovecapture","pointerout","pointeroutcapture","pointerover","pointerovercapture","pointertap","pointertapcapture","pointerup","pointerupcapture","pointerupoutside","pointerupoutsidecapture","removed","rightclick","rightclickcapture","rightdown","rightdowncapture","rightup","rightupcapture","rightupoutside","rightupoutsidecapture","tap","tapcapture","touchcancel","touchcancelcapture","touchend","touchendcapture","touchendoutside","touchendoutsidecapture","touchmove","touchmovecapture","touchstart","touchstartcapture","wheel","wheelcapture"];function BA(e){var A,t,i,n;return n=class extends e{constructor(){super(...arguments);Ne(this,A);Ne(this,t);Ne(this,i);Dt(this,A,null),this.isFlex=!1,this.fullProps={},this.isMounted=!1,this._anchorPoints=new m.ObservablePoint({_onUpdate:()=>{}},0,0),this.isCustomAnchor=!1,this.displayWidth=Y(0),this.displayHeight=Y(0),this.overrideProps=[],this.layout=null,this.onBeforeDestroy=null,this.onAfterMount=null,this.subjectInit=new ee(null),this.disableLayout=!1,Dt(this,t,new Map),Dt(this,i,null)}get deltaRatio(){var r,h;return(h=(r=cA(this,A))==null?void 0:r.scheduler)==null?void 0:h.tick.value.deltaRatio}get parentIsFlex(){var r;return this.disableLayout?!1:(r=this.parent)==null?void 0:r.isFlex}onInit(r){this._id=r.id;for(let h of Ys)if(r[h]&&!this.overrideProps.includes(h)){this.eventMode="static";const l=r[h];h==="click"?(this.on("pointertap",l),cA(this,t).set("pointertap",l)):(this.on(h,l),cA(this,t).set(h,l))}(r.onBeforeDestroy||r["on-before-destroy"])&&(this.onBeforeDestroy=r.onBeforeDestroy||r["on-before-destroy"]),(r.onAfterMount||r["on-after-mount"])&&(this.onAfterMount=r.onAfterMount||r["on-after-mount"]),(r.justifyContent||r.alignItems||r.flexDirection||r.flexWrap||r.alignContent||r.display=="flex"||JA(r.width)||JA(r.height)||r.isRoot)&&(this.layout={},this.isFlex=!0),this.subjectInit.next(this)}async onMount({parent:r,props:h},l){if(!this.destroyed&&(Dt(this,A,h.context),r)){const u=r.componentInstance;if(u.isFlex&&!this.layout&&!this.disableLayout)try{this.layout={}}catch(g){console.warn("Failed to set layout:",g)}l===void 0?u.addChild(this):u.addChildAt(this,l),this.isMounted=!0,this.onUpdate(h);const o=g=>{g.computedLayout&&Dt(this,i,{width:g.computedLayout.width,height:g.computedLayout.height})};this.on("layout",o),cA(this,t).set("layout",o),this.onAfterMount&&await this.onAfterMount()}}onUpdate(r){if(this.fullProps={...this.fullProps,...r},this.destroyed||!cA(this,A)||!this.parent)return;r.x!==void 0&&this.setX(r.x),r.y!==void 0&&this.setY(r.y),r.scale!==void 0&&at(this.scale,r.scale),r.anchor!==void 0&&!this.isCustomAnchor&&at(this.anchor,r.anchor),r.width!==void 0&&this.setWidth(r.width),r.height!==void 0&&this.setHeight(r.height),r.minWidth!==void 0&&this.setMinWidth(r.minWidth),r.minHeight!==void 0&&this.setMinHeight(r.minHeight),r.maxWidth!==void 0&&this.setMaxWidth(r.maxWidth),r.maxHeight!==void 0&&this.setMaxHeight(r.maxHeight),r.aspectRatio!==void 0&&this.setAspectRatio(r.aspectRatio),r.flexGrow!==void 0&&this.setFlexGrow(r.flexGrow),r.flexShrink!==void 0&&this.setFlexShrink(r.flexShrink),r.flexBasis!==void 0&&this.setFlexBasis(r.flexBasis),r.rowGap!==void 0&&this.setRowGap(r.rowGap),r.columnGap!==void 0&&this.setColumnGap(r.columnGap),r.top!==void 0&&this.setTop(r.top),r.left!==void 0&&this.setLeft(r.left),r.right!==void 0&&this.setRight(r.right),r.bottom!==void 0&&this.setBottom(r.bottom),r.objectFit!==void 0&&this.setObjectFit(r.objectFit),r.objectPosition!==void 0&&this.setObjectPosition(r.objectPosition),r.transformOrigin!==void 0&&this.setTransformOrigin(r.transformOrigin),r.skew!==void 0&&at(this.skew,r.skew),r.tint&&(this.tint=r.tint),r.rotation!==void 0&&(this.rotation=r.rotation),r.angle!==void 0&&(this.angle=r.angle),r.zIndex!==void 0&&(this.zIndex=r.zIndex),r.roundPixels!==void 0&&(this.roundPixels=r.roundPixels),r.cursor&&(this.cursor=r.cursor),r.visible!==void 0&&(this.visible=r.visible),r.alpha!==void 0&&(this.alpha=r.alpha),r.pivot&&at(this.pivot,r.pivot),r.flexDirection&&this.setFlexDirection(r.flexDirection),r.flexWrap&&this.setFlexWrap(r.flexWrap),r.justifyContent&&this.setJustifyContent(r.justifyContent),r.alignItems&&this.setAlignItems(r.alignItems),r.alignContent&&this.setAlignContent(r.alignContent),r.alignSelf&&this.setAlignSelf(r.alignSelf),r.margin&&this.setMargin(r.margin),r.padding&&this.setPadding(r.padding),r.gap&&this.setGap(r.gap),r.border&&this.setBorder(r.border),r.positionType&&this.setPositionType(r.positionType),r.filters&&(this.filters=r.filters),r.maskOf&&wA(r.maskOf)&&(r.maskOf.componentInstance.mask=this),r.blendMode&&(this.blendMode=r.blendMode),r.filterArea&&(this.filterArea=r.filterArea);const h=this.filters||[];if(r.blur){let l=h.find(u=>u instanceof m.BlurFilter);if(!l){const u=typeof r.blur=="number"?{strength:r.blur}:r.blur;l=new m.BlurFilter(u),h.push(l)}Object.assign(l,r.blur)}this.filters=h}async onDestroy(r,h){for(const[l,u]of cA(this,t))this.off(l,u);cA(this,t).clear(),this.onBeforeDestroy&&await this.onBeforeDestroy(),h&&h(),super.destroy()}setFlexDirection(r){this.layout={flexDirection:r}}setFlexWrap(r){this.layout={flexWrap:r}}setAlignContent(r){this.layout={alignContent:r}}setAlignSelf(r){this.layout={alignSelf:r}}setAlignItems(r){this.layout={alignItems:r}}setJustifyContent(r){this.layout={justifyContent:r}}setPosition(r){r instanceof Array?r.length===2?this.layout={positionY:r[0],positionX:r[1]}:r.length===4&&(this.layout={positionTop:r[0],positionRight:r[1],positionBottom:r[2],positionLeft:r[3]}):this.layout={position:r}}setX(r){r=r+this.getWidth()*this._anchorPoints.x,this.parentIsFlex?(this.x=r,this.layout={x:r}):this.x=r}setY(r){r=r+this.getHeight()*this._anchorPoints.y,this.parentIsFlex?(this.y=r,this.layout={y:r}):this.y=r}setPadding(r){r instanceof Array?r.length===2?this.layout={paddingVertical:r[0],paddingHorizontal:r[1]}:r.length===4&&(this.layout={paddingTop:r[0],paddingRight:r[1],paddingBottom:r[2],paddingLeft:r[3]}):this.layout={padding:r}}setMargin(r){r instanceof Array?r.length===2?this.layout={marginVertical:r[0],marginHorizontal:r[1]}:r.length===4&&(this.layout={marginTop:r[0],marginRight:r[1],marginBottom:r[2],marginLeft:r[3]}):this.layout={margin:r}}setGap(r){this.layout={gap:r}}setBorder(r){r instanceof Array?r.length===2?this.layout={borderVertical:r[0],borderHorizontal:r[1]}:r.length===4&&(this.layout={borderTop:r[0],borderRight:r[1],borderBottom:r[2],borderLeft:r[3]}):this.layout={border:r}}setPositionType(r){this.layout={position:r}}setWidth(r){this.displayWidth.set(r),this.parentIsFlex?this.layout={width:r}:this.width=r}setHeight(r){this.displayHeight.set(r),this.parentIsFlex?this.layout={height:r}:this.height=r}getWidth(){var h;return JA(this.fullProps.width)?((h=cA(this,i))==null?void 0:h.width)!==void 0?cA(this,i).width:typeof this.width=="number"?this.width:0:typeof this.width=="number"&&this.width>0?this.width:typeof this.displayWidth()=="number"?this.displayWidth():0}getHeight(){var h;return JA(this.fullProps.height)?((h=cA(this,i))==null?void 0:h.height)!==void 0?cA(this,i).height:typeof this.height=="number"?this.height:0:typeof this.height=="number"&&this.height>0?this.height:typeof this.displayHeight()=="number"?this.displayHeight():0}setMinWidth(r){this.layout={minWidth:r}}setMinHeight(r){this.layout={minHeight:r}}setMaxWidth(r){this.layout={maxWidth:r}}setMaxHeight(r){this.layout={maxHeight:r}}setAspectRatio(r){this.layout={aspectRatio:r}}setFlexGrow(r){this.layout={flexGrow:r}}setFlexShrink(r){this.layout={flexShrink:r}}setFlexBasis(r){this.layout={flexBasis:r}}setRowGap(r){this.layout={rowGap:r}}setColumnGap(r){this.layout={columnGap:r}}setTop(r){this.layout={top:r}}setLeft(r){this.layout={left:r}}setRight(r){this.layout={right:r}}setBottom(r){this.layout={bottom:r}}setObjectFit(r){this.layout={objectFit:r}}setObjectPosition(r){this.layout={objectPosition:r}}setTransformOrigin(r){this.layout={transformOrigin:r}}},A=new WeakMap,t=new WeakMap,i=new WeakMap,n}nA("Canvas",class extends BA(m.Container){});const fg=async(e={})=>{let{cursorStyles:A,width:t,height:i,class:n}=rA(e);e.width||(t=Y(800)),e.height||(i=Y(600));const s=Y({width:0,height:0});e.isRoot=!0;const a={...e,context:{canvasSize:s,app:Y(null)},width:t==null?void 0:t(),height:i==null?void 0:i()};e.tick||(a.context.tick=a.tick=Y({timestamp:0,deltaTime:0,frame:0,deltaRatio:1}));const r=oA("Canvas",a);return r.render=(h,l)=>{if(!l)return;const u=l.renderer,o=u.view.canvas;globalThis.__PIXI_STAGE__=r.componentInstance,globalThis.__PIXI_RENDERER__=u,e.tickStart!==!1&&r.directives.tick.start(),$(()=>{r.propObservables.tick(),u.render(r.componentInstance)}),l.stage=r.componentInstance,l.stage.layout={width:l.screen.width,height:l.screen.height,justifyContent:e.justifyContent,alignItems:e.alignItems},s.set({width:l.screen.width,height:l.screen.height}),l.renderer.on("resize",(c,E)=>{s.set({width:c,height:E}),l.stage.layout&&(l.stage.layout={width:c,height:E})}),e.tickStart!==!1&&r.directives.tick.start(),l.ticker.add(()=>{r.propObservables.tick()}),A&&$(()=>{u.events.cursorStyles=A()}),n&&$(()=>{o.classList.add(n())});const g=h.querySelector("canvas");g?h.replaceChild(o,g):h.appendChild(o),a.context.app.set(l)},r};class Ws extends BA(m.Container){constructor(){super(...arguments),this.isCustomAnchor=!0}onUpdate(A){A.anchor&&(at(this._anchorPoints,A.anchor),A.pivot=[this.getWidth()*this._anchorPoints.x,this.getHeight()*this._anchorPoints.y]),super.onUpdate(A),A.sortableChildren!=null&&(this.sortableChildren=A.sortableChildren)}async onMount(A){await super.onMount(A);const{componentInstance:t,props:i}=A,{pixiChildren:n}=i;n&&n.forEach(r=>{t.addChild(r)});const s=JA(i.width),a=JA(i.height);(s||a)&&this.on("layout",r=>{const h=r.computedLayout;s&&h.width!==void 0&&this.displayWidth.set(h.width),a&&h.height!==void 0&&this.displayHeight.set(h.height)})}}nA("Container",Ws);const ue=e=>oA("Container",e);class dg extends BA(m.Graphics){async onInit(A){await super.onInit(A)}async onMount(A,t){await super.onMount(A,t);const{props:i,propObservables:n}=A,s=W(n==null?void 0:n.width)?n.width:Y(i.width||0),a=W(n==null?void 0:n.height)?n.height:Y(i.height||0);this._width=s,this._height=a;const r=JA(s()),h=JA(a());i.draw&&(this.clearEffect=$(()=>{var o;const l=s(),u=a();typeof l=="string"||typeof u=="string"||(this.clear(),(o=i.draw)==null||o.call(i,this,l,u),this.subjectInit.next(this))})),this.on("layout",l=>{const u=l.computedLayout;r&&W(s)&&s()!==u.width&&s.set(u.width),h&&W(a)&&a()!==u.height&&a.set(u.height)})}onUpdate(A){super.onUpdate(A),A.width!==void 0&&this._width&&this._width()!==A.width&&this._width.set(A.width),A.height!==void 0&&this._height&&this._height()!==A.height&&this._height.set(A.height)}async onDestroy(A,t){const i=async()=>{var n;(n=this.clearEffect)==null||n.subscription.unsubscribe(),t()};await super.onDestroy(A,i)}}nA("Graphics",dg);function ht(e){return oA("Graphics",e)}function Xs(e){const{color:A,borderRadius:t,border:i}=rA(e,{borderRadius:null,border:null});return ht({draw:(n,s,a)=>{t()?n.roundRect(0,0,s,a,t()):n.rect(0,0,s,a),i&&n.stroke(i),n.fill(A())},...e})}function pg(e,A,t){const{color:i,border:n}=t;"radius"in t?e.circle(0,0,t.radius()):e.ellipse(0,0,t.width()/2,t.height()/2),n()&&e.stroke(n()),e.fill(i())}function yg(e){const{radius:A,color:t,border:i}=rA(e,{border:null});return ht({draw:n=>pg(n,"circle",{radius:A,color:t,border:i}),...e})}function wg(e){const{width:A,height:t,color:i,border:n}=rA(e,{border:null});return ht({draw:(s,a,r)=>{s.ellipse(0,0,a/2,r/2),n()&&s.stroke(n()),s.fill(i())},...e})}function mg(e){const{width:A,height:t,color:i,border:n}=rA(e,{border:null,color:"#000"});return ht({draw:(s,a,r)=>{s.moveTo(0,r),s.lineTo(a/2,0),s.lineTo(a,r),s.lineTo(0,r),s.fill(i()),n&&s.stroke(n)},...e})}function Dg(e){return ht({draw:async A=>{if(e.src){const t=await m.Assets.load({src:e.src,data:{parseAsGraphicsContext:!0}}),i=new m.Graphics(t);A.context=i.context}else e.content?A.svg(e.content):e.svg&&A.svg(e.svg)},...e})}class vg extends BA(m.Mesh){constructor(){super({geometry:new m.Geometry})}onInit(A){if(super.onInit(A),A.geometry)try{this.geometry=A.geometry}catch(t){console.warn("Failed to set geometry:",t)}A.shader&&(this.shader=A.shader)}async onUpdate(A){if(super.onUpdate(A),A.geometry)try{this.geometry=A.geometry}catch(t){console.warn("Failed to update geometry:",t)}A.shader&&(this.shader=A.shader),A.texture?typeof A.texture=="string"?this.texture=await m.Assets.load(A.texture):this.texture=A.texture:A.image&&(this.texture=await m.Assets.load(A.image)),A.tint!==void 0&&(this.tint=A.tint),A.blendMode!==void 0&&(this.blendMode=A.blendMode),A.roundPixels!==void 0&&(this.roundPixels=A.roundPixels)}async onDestroy(A,t){const i=async()=>{t()};await super.onDestroy(A,i)}}nA("Mesh",vg);const Sg=e=>oA("Mesh",e);v.currentSubscriptionsTracker=null,v.mountTracker=null;function fi(e){var A;(A=v.mountTracker)==null||A.call(v,e)}function xg(e){fi(A=>{const{context:t}=A.props;let i;return t.tick&&(i=t.tick.observable.subscribe(({value:n})=>{e(n,A)})),()=>{i==null||i.unsubscribe()}})}function RA(e,A={},...t){const i=new Set,n=new Set;v.currentSubscriptionsTracker=a=>{i.add(a)},v.mountTracker=a=>{n.add(a)},t[0]instanceof Array&&(t=t[0]);let s;return Array.isArray(e)?e.length===1?s=e[0]:s=RA(ue,{},...e):"tag"in e||e instanceof X?s=e:s=e({...A,children:t}),s||(s={}),s.effectSubscriptions=Array.from(i),s.effectMounts=[...Array.from(n),...s.effectMounts??[]],s instanceof Promise&&s.then(a=>{a.props.isRoot&&n.forEach(r=>r(a))}),v.currentSubscriptionsTracker=null,v.mountTracker=null,s}function bg(e){return RA(ue)}/*!
|
|
21
|
+
*/(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var i=this;if(!i.ctx||!i.ctx.listener)return i;for(var n=i._howls.length-1;n>=0;n--)i._howls[n].stereo(t);return i},HowlerGlobal.prototype.pos=function(t,i,n){var s=this;if(!s.ctx||!s.ctx.listener)return s;if(i=typeof i!="number"?s._pos[1]:i,n=typeof n!="number"?s._pos[2]:n,typeof t=="number")s._pos=[t,i,n],typeof s.ctx.listener.positionX<"u"?(s.ctx.listener.positionX.setTargetAtTime(s._pos[0],Howler.ctx.currentTime,.1),s.ctx.listener.positionY.setTargetAtTime(s._pos[1],Howler.ctx.currentTime,.1),s.ctx.listener.positionZ.setTargetAtTime(s._pos[2],Howler.ctx.currentTime,.1)):s.ctx.listener.setPosition(s._pos[0],s._pos[1],s._pos[2]);else return s._pos;return s},HowlerGlobal.prototype.orientation=function(t,i,n,s,a,r){var h=this;if(!h.ctx||!h.ctx.listener)return h;var c=h._orientation;if(i=typeof i!="number"?c[1]:i,n=typeof n!="number"?c[2]:n,s=typeof s!="number"?c[3]:s,a=typeof a!="number"?c[4]:a,r=typeof r!="number"?c[5]:r,typeof t=="number")h._orientation=[t,i,n,s,a,r],typeof h.ctx.listener.forwardX<"u"?(h.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),h.ctx.listener.forwardY.setTargetAtTime(i,Howler.ctx.currentTime,.1),h.ctx.listener.forwardZ.setTargetAtTime(n,Howler.ctx.currentTime,.1),h.ctx.listener.upX.setTargetAtTime(s,Howler.ctx.currentTime,.1),h.ctx.listener.upY.setTargetAtTime(a,Howler.ctx.currentTime,.1),h.ctx.listener.upZ.setTargetAtTime(r,Howler.ctx.currentTime,.1)):h.ctx.listener.setOrientation(t,i,n,s,a,r);else return c;return h},Howl.prototype.init=function(t){return function(i){var n=this;return n._orientation=i.orientation||[1,0,0],n._stereo=i.stereo||null,n._pos=i.pos||null,n._pannerAttr={coneInnerAngle:typeof i.coneInnerAngle<"u"?i.coneInnerAngle:360,coneOuterAngle:typeof i.coneOuterAngle<"u"?i.coneOuterAngle:360,coneOuterGain:typeof i.coneOuterGain<"u"?i.coneOuterGain:0,distanceModel:typeof i.distanceModel<"u"?i.distanceModel:"inverse",maxDistance:typeof i.maxDistance<"u"?i.maxDistance:1e4,panningModel:typeof i.panningModel<"u"?i.panningModel:"HRTF",refDistance:typeof i.refDistance<"u"?i.refDistance:1,rolloffFactor:typeof i.rolloffFactor<"u"?i.rolloffFactor:1},n._onstereo=i.onstereo?[{fn:i.onstereo}]:[],n._onpos=i.onpos?[{fn:i.onpos}]:[],n._onorientation=i.onorientation?[{fn:i.onorientation}]:[],t.call(this,i)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,i){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"stereo",action:function(){n.stereo(t,i)}}),n;var s=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof i>"u")if(typeof t=="number")n._stereo=t,n._pos=[t,0,0];else return n._stereo;for(var a=n._getSoundIds(i),r=0;r<a.length;r++){var h=n._soundById(a[r]);if(h)if(typeof t=="number")h._stereo=t,h._pos=[t,0,0],h._node&&(h._pannerAttr.panningModel="equalpower",(!h._panner||!h._panner.pan)&&A(h,s),s==="spatial"?typeof h._panner.positionX<"u"?(h._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),h._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),h._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):h._panner.setPosition(t,0,0):h._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),n._emit("stereo",h._id);else return h._stereo}return n},Howl.prototype.pos=function(t,i,n,s){var a=this;if(!a._webAudio)return a;if(a._state!=="loaded")return a._queue.push({event:"pos",action:function(){a.pos(t,i,n,s)}}),a;if(i=typeof i!="number"?0:i,n=typeof n!="number"?-.5:n,typeof s>"u")if(typeof t=="number")a._pos=[t,i,n];else return a._pos;for(var r=a._getSoundIds(s),h=0;h<r.length;h++){var c=a._soundById(r[h]);if(c)if(typeof t=="number")c._pos=[t,i,n],c._node&&((!c._panner||c._panner.pan)&&A(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(i,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(n,Howler.ctx.currentTime)):c._panner.setPosition(t,i,n)),a._emit("pos",c._id);else return c._pos}return a},Howl.prototype.orientation=function(t,i,n,s){var a=this;if(!a._webAudio)return a;if(a._state!=="loaded")return a._queue.push({event:"orientation",action:function(){a.orientation(t,i,n,s)}}),a;if(i=typeof i!="number"?a._orientation[1]:i,n=typeof n!="number"?a._orientation[2]:n,typeof s>"u")if(typeof t=="number")a._orientation=[t,i,n];else return a._orientation;for(var r=a._getSoundIds(s),h=0;h<r.length;h++){var c=a._soundById(r[h]);if(c)if(typeof t=="number")c._orientation=[t,i,n],c._node&&(c._panner||(c._pos||(c._pos=a._pos||[0,0,-.5]),A(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(i,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(n,Howler.ctx.currentTime)):c._panner.setOrientation(t,i,n)),a._emit("orientation",c._id);else return c._orientation}return a},Howl.prototype.pannerAttr=function(){var t=this,i=arguments,n,s,a;if(!t._webAudio)return t;if(i.length===0)return t._pannerAttr;if(i.length===1)if(typeof i[0]=="object")n=i[0],typeof s>"u"&&(n.pannerAttr||(n.pannerAttr={coneInnerAngle:n.coneInnerAngle,coneOuterAngle:n.coneOuterAngle,coneOuterGain:n.coneOuterGain,distanceModel:n.distanceModel,maxDistance:n.maxDistance,refDistance:n.refDistance,rolloffFactor:n.rolloffFactor,panningModel:n.panningModel}),t._pannerAttr={coneInnerAngle:typeof n.pannerAttr.coneInnerAngle<"u"?n.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof n.pannerAttr.coneOuterAngle<"u"?n.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof n.pannerAttr.coneOuterGain<"u"?n.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof n.pannerAttr.distanceModel<"u"?n.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof n.pannerAttr.maxDistance<"u"?n.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof n.pannerAttr.refDistance<"u"?n.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof n.pannerAttr.rolloffFactor<"u"?n.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof n.pannerAttr.panningModel<"u"?n.pannerAttr.panningModel:t._panningModel});else return a=t._soundById(parseInt(i[0],10)),a?a._pannerAttr:t._pannerAttr;else i.length===2&&(n=i[0],s=parseInt(i[1],10));for(var r=t._getSoundIds(s),h=0;h<r.length;h++)if(a=t._soundById(r[h]),a){var c=a._pannerAttr;c={coneInnerAngle:typeof n.coneInnerAngle<"u"?n.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof n.coneOuterAngle<"u"?n.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof n.coneOuterGain<"u"?n.coneOuterGain:c.coneOuterGain,distanceModel:typeof n.distanceModel<"u"?n.distanceModel:c.distanceModel,maxDistance:typeof n.maxDistance<"u"?n.maxDistance:c.maxDistance,refDistance:typeof n.refDistance<"u"?n.refDistance:c.refDistance,rolloffFactor:typeof n.rolloffFactor<"u"?n.rolloffFactor:c.rolloffFactor,panningModel:typeof n.panningModel<"u"?n.panningModel:c.panningModel};var B=a._panner;B||(a._pos||(a._pos=t._pos||[0,0,-.5]),A(a,"spatial"),B=a._panner),B.coneInnerAngle=c.coneInnerAngle,B.coneOuterAngle=c.coneOuterAngle,B.coneOuterGain=c.coneOuterGain,B.distanceModel=c.distanceModel,B.maxDistance=c.maxDistance,B.refDistance=c.refDistance,B.rolloffFactor=c.rolloffFactor,B.panningModel=c.panningModel}return t},Sound.prototype.init=function(t){return function(){var i=this,n=i._parent;i._orientation=n._orientation,i._stereo=n._stereo,i._pos=n._pos,i._pannerAttr=n._pannerAttr,t.call(this),i._stereo?n.stereo(i._stereo):i._pos&&n.pos(i._pos[0],i._pos[1],i._pos[2],i._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var i=this,n=i._parent;return i._orientation=n._orientation,i._stereo=n._stereo,i._pos=n._pos,i._pannerAttr=n._pannerAttr,i._stereo?n.stereo(i._stereo):i._pos?n.pos(i._pos[0],i._pos[1],i._pos[2],i._id):i._panner&&(i._panner.disconnect(0),i._panner=void 0,n._refreshBuffer(i)),t.call(this)}}(Sound.prototype.reset);var A=function(t,i){i=i||"spatial",i==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()})(ZA);const ha=zt({__proto__:null,default:ga(ZA)},[ZA]),ss=["load","loaderror","playerror","play","end","pause","stop","mute","volume","rate","seek","fade","unlock"];let os=class extends pA{constructor(){super(...arguments),this.sounds=[],this.eventsFn=[],this.maxVolume=1,this.maxDistance=100}onInit(A){}onMount(A){const{props:t}=A,i=t.context.tick,n=t.sound.value??t.sound;if(!n.src)return;const{src:s,autoplay:a,loop:r,volume:h,spatial:c}=n,B=Array.isArray(s)?s:[s];for(const o of B){if(!o)continue;const g=new ZA.Howl({src:o,autoplay:a,loop:r,volume:h});for(let l of ss){if(!n[l])continue;const E=n[l];this.eventsFn.push(E),g.on(l,E)}this.sounds.push(g)}if(c&&this.sounds.length>0){const{soundListenerPosition:o}=t.context;if(!o)throw new We("SoundListenerPosition directive is required for spatial sound in component parent");const{x:g,y:l}=o;this.tickSubscription=AA(()=>{i();const{x:E,y:C}=A.componentInstance,f=Xn(E,C,g(),l()),Q=Math.max(this.maxVolume-f/this.maxDistance,0);this.sounds.forEach(w=>w.volume(Q))}).subscription}this.onUpdate(n)}onUpdate(A){const t=A.value??A,{volume:i,loop:n,mute:s,seek:a,playing:r,rate:h,spatial:c}=t;this.sounds.forEach(B=>{i!==void 0&&B.volume(i),n!==void 0&&B.loop(n),s!==void 0&&B.mute(s),a!==void 0&&B.seek(a),r!==void 0&&(r?B.play():B.pause()),h!==void 0&&B.rate(h)}),c&&(this.maxVolume=c.maxVolume??this.maxVolume,this.maxDistance=c.maxDistance??this.maxDistance)}onDestroy(){var A;this.sounds.forEach(t=>{t.stop();for(let i of ss){const n=this.eventsFn.find(s=>s===this.eventsFn[i]);n&&t.off(i,n)}}),this.sounds=[],this.eventsFn=[],(A=this.tickSubscription)==null||A.unsubscribe()}};class la extends pA{onMount(A){var t;A.props.context.soundListenerPosition=(t=A.propObservables)==null?void 0:t.soundListenerPosition}onInit(A){}onUpdate(A){}onDestroy(){}}yA("sound",os),yA("soundListenerPosition",la);function rs(e,A){var t={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&A.indexOf(i)<0&&(t[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(e);n<i.length;n++)A.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(e,i[n])&&(t[i[n]]=e[i[n]]);return t}var as=function(){};const ei=(e,A,t)=>Math.min(Math.max(t,e),A),ii=.001,ca=.01,Ia=10,Ba=.05,ua=1;function Ea({duration:e=800,bounce:A=.25,velocity:t=0,mass:i=1}){let n,s,a=1-A;a=ei(Ba,ua,a),e=ei(ca,Ia,e/1e3),a<1?(n=c=>{const B=c*a,o=B*e,g=B-t,l=ni(c,a),E=Math.exp(-o);return ii-g/l*E},s=c=>{const o=c*a*e,g=o*t+t,l=Math.pow(a,2)*Math.pow(c,2)*e,E=Math.exp(-o),C=ni(Math.pow(c,2),a);return(-n(c)+ii>0?-1:1)*((g-l)*E)/C}):(n=c=>{const B=Math.exp(-c*e),o=(c-t)*e+1;return-ii+B*o},s=c=>{const B=Math.exp(-c*e),o=(t-c)*(e*e);return B*o});const r=5/e,h=Qa(n,s,r);if(e=e*1e3,isNaN(h))return{stiffness:100,damping:10,duration:e};{const c=Math.pow(h,2)*i;return{stiffness:c,damping:a*2*Math.sqrt(i*c),duration:e}}}const Ca=12;function Qa(e,A,t){let i=t;for(let n=1;n<Ca;n++)i=i-e(i)/A(i);return i}function ni(e,A){return e*Math.sqrt(1-A*A)}const fa=["duration","bounce"],da=["stiffness","damping","mass"];function gs(e,A){return A.some(t=>e[t]!==void 0)}function pa(e){let A=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},e);if(!gs(e,da)&&gs(e,fa)){const t=Ea(e);A=Object.assign(Object.assign(Object.assign({},A),t),{velocity:0,mass:1}),A.isResolvedFromDuration=!0}return A}function si(e){var{from:A=0,to:t=1,restSpeed:i=2,restDelta:n}=e,s=rs(e,["from","to","restSpeed","restDelta"]);const a={done:!1,value:A};let{stiffness:r,damping:h,mass:c,velocity:B,duration:o,isResolvedFromDuration:g}=pa(s),l=hs,E=hs;function C(){const f=B?-(B/1e3):0,Q=t-A,w=h/(2*Math.sqrt(r*c)),v=Math.sqrt(r/c)/1e3;if(n===void 0&&(n=Math.min(Math.abs(t-A)/100,.4)),w<1){const M=ni(v,w);l=F=>{const H=Math.exp(-w*v*F);return t-H*((f+w*v*Q)/M*Math.sin(M*F)+Q*Math.cos(M*F))},E=F=>{const H=Math.exp(-w*v*F);return w*v*H*(Math.sin(M*F)*(f+w*v*Q)/M+Q*Math.cos(M*F))-H*(Math.cos(M*F)*(f+w*v*Q)-M*Q*Math.sin(M*F))}}else if(w===1)l=M=>t-Math.exp(-v*M)*(Q+(f+v*Q)*M);else{const M=v*Math.sqrt(w*w-1);l=F=>{const H=Math.exp(-w*v*F),Z=Math.min(M*F,300);return t-H*((f+w*v*Q)*Math.sinh(Z)+M*Q*Math.cosh(Z))/M}}}return C(),{next:f=>{const Q=l(f);if(g)a.done=f>=o;else{const w=E(f)*1e3,v=Math.abs(w)<=i,M=Math.abs(t-Q)<=n;a.done=v&&M}return a.value=a.done?t:Q,a},flipTarget:()=>{B=-B,[A,t]=[t,A],C()}}}si.needsInterpolation=(e,A)=>typeof e=="string"||typeof A=="string";const hs=e=>0,ls=(e,A,t)=>{const i=A-e;return i===0?1:(t-e)/i},oi=(e,A,t)=>-t*e+t*A+e,cs=(e,A)=>t=>Math.max(Math.min(t,A),e),_t=e=>e%1?Number(e.toFixed(5)):e,re=/(-)?([\d]*\.?[\d])+/g,ri=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))/gi,ya=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function Nt(e){return typeof e=="string"}const ae={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Is=Object.assign(Object.assign({},ae),{transform:cs(0,1)});Object.assign(Object.assign({},ae),{default:1});const Ht=(e=>({test:A=>Nt(A)&&A.endsWith(e)&&A.split(" ").length===1,parse:parseFloat,transform:A=>`${A}${e}`}))("%");Object.assign(Object.assign({},Ht),{parse:e=>Ht.parse(e)/100,transform:e=>Ht.transform(e*100)});const ai=(e,A)=>t=>!!(Nt(t)&&ya.test(t)&&t.startsWith(e)||A&&Object.prototype.hasOwnProperty.call(t,A)),Bs=(e,A,t)=>i=>{if(!Nt(i))return i;const[n,s,a,r]=i.match(re);return{[e]:parseFloat(n),[A]:parseFloat(s),[t]:parseFloat(a),alpha:r!==void 0?parseFloat(r):1}},zA={test:ai("hsl","hue"),parse:Bs("hue","saturation","lightness"),transform:({hue:e,saturation:A,lightness:t,alpha:i=1})=>"hsla("+Math.round(e)+", "+Ht.transform(_t(A))+", "+Ht.transform(_t(t))+", "+_t(Is.transform(i))+")"},wa=cs(0,255),gi=Object.assign(Object.assign({},ae),{transform:e=>Math.round(wa(e))}),TA={test:ai("rgb","red"),parse:Bs("red","green","blue"),transform:({red:e,green:A,blue:t,alpha:i=1})=>"rgba("+gi.transform(e)+", "+gi.transform(A)+", "+gi.transform(t)+", "+_t(Is.transform(i))+")"};function ma(e){let A="",t="",i="",n="";return e.length>5?(A=e.substr(1,2),t=e.substr(3,2),i=e.substr(5,2),n=e.substr(7,2)):(A=e.substr(1,1),t=e.substr(2,1),i=e.substr(3,1),n=e.substr(4,1),A+=A,t+=t,i+=i,n+=n),{red:parseInt(A,16),green:parseInt(t,16),blue:parseInt(i,16),alpha:n?parseInt(n,16)/255:1}}const hi={test:ai("#"),parse:ma,transform:TA.transform},ge={test:e=>TA.test(e)||hi.test(e)||zA.test(e),parse:e=>TA.test(e)?TA.parse(e):zA.test(e)?zA.parse(e):hi.parse(e),transform:e=>Nt(e)?e:e.hasOwnProperty("red")?TA.transform(e):zA.transform(e)},us="${c}",Es="${n}";function Da(e){var A,t,i,n;return isNaN(e)&&Nt(e)&&((t=(A=e.match(re))===null||A===void 0?void 0:A.length)!==null&&t!==void 0?t:0)+((n=(i=e.match(ri))===null||i===void 0?void 0:i.length)!==null&&n!==void 0?n:0)>0}function Cs(e){typeof e=="number"&&(e=`${e}`);const A=[];let t=0;const i=e.match(ri);i&&(t=i.length,e=e.replace(ri,us),A.push(...i.map(ge.parse)));const n=e.match(re);return n&&(e=e.replace(re,Es),A.push(...n.map(ae.parse))),{values:A,numColors:t,tokenised:e}}function Qs(e){return Cs(e).values}function fs(e){const{values:A,numColors:t,tokenised:i}=Cs(e),n=A.length;return s=>{let a=i;for(let r=0;r<n;r++)a=a.replace(r<t?us:Es,r<t?ge.transform(s[r]):_t(s[r]));return a}}const va=e=>typeof e=="number"?0:e;function Sa(e){const A=Qs(e);return fs(e)(A.map(va))}const ds={test:Da,parse:Qs,createTransformer:fs,getAnimatableNone:Sa};function li(e,A,t){return t<0&&(t+=1),t>1&&(t-=1),t<.16666666666666666?e+(A-e)*6*t:t<.5?A:t<.6666666666666666?e+(A-e)*(.6666666666666666-t)*6:e}function ps({hue:e,saturation:A,lightness:t,alpha:i}){e/=360,A/=100,t/=100;let n=0,s=0,a=0;if(!A)n=s=a=t;else{const r=t<.5?t*(1+A):t+A-t*A,h=2*t-r;n=li(h,r,e+.3333333333333333),s=li(h,r,e),a=li(h,r,e-.3333333333333333)}return{red:Math.round(n*255),green:Math.round(s*255),blue:Math.round(a*255),alpha:i}}const ba=(e,A,t)=>{const i=e*e,n=A*A;return Math.sqrt(Math.max(0,t*(n-i)+i))},xa=[hi,TA,zA],ys=e=>xa.find(A=>A.test(e)),ws=(e,A)=>{let t=ys(e),i=ys(A),n=t.parse(e),s=i.parse(A);t===zA&&(n=ps(n),t=TA),i===zA&&(s=ps(s),i=TA);const a=Object.assign({},n);return r=>{for(const h in a)h!=="alpha"&&(a[h]=ba(n[h],s[h],r));return a.alpha=oi(n.alpha,s.alpha,r),t.transform(a)}},ka=e=>typeof e=="number",Ma=(e,A)=>t=>A(e(t)),ms=(...e)=>e.reduce(Ma);function Ds(e,A){return ka(e)?t=>oi(e,A,t):ge.test(e)?ws(e,A):bs(e,A)}const vs=(e,A)=>{const t=[...e],i=t.length,n=e.map((s,a)=>Ds(s,A[a]));return s=>{for(let a=0;a<i;a++)t[a]=n[a](s);return t}},Ra=(e,A)=>{const t=Object.assign(Object.assign({},e),A),i={};for(const n in t)e[n]!==void 0&&A[n]!==void 0&&(i[n]=Ds(e[n],A[n]));return n=>{for(const s in i)t[s]=i[s](n);return t}};function Ss(e){const A=ds.parse(e),t=A.length;let i=0,n=0,s=0;for(let a=0;a<t;a++)i||typeof A[a]=="number"?i++:A[a].hue!==void 0?s++:n++;return{parsed:A,numNumbers:i,numRGB:n,numHSL:s}}const bs=(e,A)=>{const t=ds.createTransformer(A),i=Ss(e),n=Ss(A);return i.numHSL===n.numHSL&&i.numRGB===n.numRGB&&i.numNumbers>=n.numNumbers?ms(vs(i.parsed,n.parsed),t):a=>`${a>0?A:e}`},Fa=(e,A)=>t=>oi(e,A,t);function Ga(e){if(typeof e=="number")return Fa;if(typeof e=="string")return ge.test(e)?ws:bs;if(Array.isArray(e))return vs;if(typeof e=="object")return Ra}function _a(e,A,t){const i=[],n=t||Ga(e[0]),s=e.length-1;for(let a=0;a<s;a++){let r=n(e[a],e[a+1]);if(A){const h=Array.isArray(A)?A[a]:A;r=ms(h,r)}i.push(r)}return i}function Na([e,A],[t]){return i=>t(ls(e,A,i))}function Ha(e,A){const t=e.length,i=t-1;return n=>{let s=0,a=!1;if(n<=e[0]?a=!0:n>=e[i]&&(s=i-1,a=!0),!a){let h=1;for(;h<t&&!(e[h]>n||h===i);h++);s=h-1}const r=ls(e[s],e[s+1],n);return A[s](r)}}function xs(e,A,{clamp:t=!0,ease:i,mixer:n}={}){const s=e.length;as(s===A.length),as(!i||!Array.isArray(i)||i.length===s-1),e[0]>e[s-1]&&(e=[].concat(e),A=[].concat(A),e.reverse(),A.reverse());const a=_a(A,i,n),r=s===2?Na(e,a):Ha(e,a);return t?h=>r(ei(e[0],e[s-1],h)):r}const he=e=>A=>1-e(1-A),ci=e=>A=>A<=.5?e(2*A)/2:(2-e(2*(1-A)))/2,La=e=>A=>Math.pow(A,e),ks=e=>A=>A*A*((e+1)*A-e),Ua=e=>{const A=ks(e);return t=>(t*=2)<1?.5*A(t):.5*(2-Math.pow(2,-10*(t-1)))},Ms=1.525,Pa=4/11,Oa=8/11,Ta=9/10,Ja=e=>e,Ii=La(2),Ka=he(Ii),Rs=ci(Ii),Fs=e=>1-Math.sin(Math.acos(e)),Gs=he(Fs),Ya=ci(Gs),Bi=ks(Ms),Wa=he(Bi),Xa=ci(Bi),Va=Ua(Ms),qa=4356/361,Za=35442/1805,za=16061/1805,le=e=>{if(e===1||e===0)return e;const A=e*e;return e<Pa?7.5625*A:e<Oa?9.075*A-9.9*e+3.4:e<Ta?qa*A-Za*e+za:10.8*e*e-20.52*e+10.72},ja=he(le),$a=e=>e<.5?.5*(1-le(1-e*2)):.5*le(e*2-1)+.5;function Ag(e,A){return e.map(()=>A||Rs).splice(0,e.length-1)}function tg(e){const A=e.length;return e.map((t,i)=>i!==0?i/(A-1):0)}function eg(e,A){return e.map(t=>t*A)}function ce({from:e=0,to:A=1,ease:t,offset:i,duration:n=300}){const s={done:!1,value:e},a=Array.isArray(A)?A:[e,A],r=eg(i&&i.length===a.length?i:tg(a),n);function h(){return xs(r,a,{ease:Array.isArray(t)?t:Ag(a,t)})}let c=h();return{next:B=>(s.value=c(B),s.done=B>=n,s),flipTarget:()=>{a.reverse(),c=h()}}}function ig({velocity:e=0,from:A=0,power:t=.8,timeConstant:i=350,restDelta:n=.5,modifyTarget:s}){const a={done:!1,value:A};let r=t*e;const h=A+r,c=s===void 0?h:s(h);return c!==h&&(r=c-A),{next:B=>{const o=-r*Math.exp(-B/i);return a.done=!(o>n||o<-n),a.value=a.done?c:c+o,a},flipTarget:()=>{}}}const _s={keyframes:ce,spring:si,decay:ig};function ng(e){if(Array.isArray(e.to))return ce;if(_s[e.type])return _s[e.type];const A=new Set(Object.keys(e));return A.has("ease")||A.has("duration")&&!A.has("dampingRatio")?ce:A.has("dampingRatio")||A.has("stiffness")||A.has("mass")||A.has("damping")||A.has("restSpeed")||A.has("restDelta")?si:ce}const Ns=1/60*1e3,sg=typeof performance<"u"?()=>performance.now():()=>Date.now(),Hs=typeof window<"u"?e=>window.requestAnimationFrame(e):e=>setTimeout(()=>e(sg()),Ns);function og(e){let A=[],t=[],i=0,n=!1,s=!1;const a=new WeakSet,r={schedule:(h,c=!1,B=!1)=>{const o=B&&n,g=o?A:t;return c&&a.add(h),g.indexOf(h)===-1&&(g.push(h),o&&n&&(i=A.length)),h},cancel:h=>{const c=t.indexOf(h);c!==-1&&t.splice(c,1),a.delete(h)},process:h=>{if(n){s=!0;return}if(n=!0,[A,t]=[t,A],t.length=0,i=A.length,i)for(let c=0;c<i;c++){const B=A[c];B(h),a.has(B)&&(r.schedule(B),e())}n=!1,s&&(s=!1,r.process(h))}};return r}const rg=40;let ui=!0,Lt=!1,Ei=!1;const Ut={delta:0,timestamp:0},Pt=["read","update","preRender","render","postRender"],Ie=Pt.reduce((e,A)=>(e[A]=og(()=>Lt=!0),e),{}),ag=Pt.reduce((e,A)=>{const t=Ie[A];return e[A]=(i,n=!1,s=!1)=>(Lt||lg(),t.schedule(i,n,s)),e},{}),gg=Pt.reduce((e,A)=>(e[A]=Ie[A].cancel,e),{});Pt.reduce((e,A)=>(e[A]=()=>Ie[A].process(Ut),e),{});const hg=e=>Ie[e].process(Ut),Ls=e=>{Lt=!1,Ut.delta=ui?Ns:Math.max(Math.min(e-Ut.timestamp,rg),1),Ut.timestamp=e,Ei=!0,Pt.forEach(hg),Ei=!1,Lt&&(ui=!1,Hs(Ls))},lg=()=>{Lt=!0,ui=!0,Ei||Hs(Ls)};function Us(e,A,t=0){return e-A-t}function cg(e,A,t=0,i=!0){return i?Us(A+-e,A,t):A-(e-A)+t}function Ig(e,A,t,i){return i?e>=A+t:e<=-t}const Bg=e=>{const A=({delta:t})=>e(t);return{start:()=>ag.update(A,!0),stop:()=>gg.update(A)}};function Ps(e){var A,t,{from:i,autoplay:n=!0,driver:s=Bg,elapsed:a=0,repeat:r=0,repeatType:h="loop",repeatDelay:c=0,onPlay:B,onStop:o,onComplete:g,onRepeat:l,onUpdate:E}=e,C=rs(e,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]);let{to:f}=C,Q,w=0,v=C.duration,M,F=!1,H=!0,Z;const iA=ng(C);!((t=(A=iA).needsInterpolation)===null||t===void 0)&&t.call(A,i,f)&&(Z=xs([0,100],[i,f],{clamp:!1}),i=0,f=100);const U=iA(Object.assign(Object.assign({},C),{from:i,to:f}));function GA(){w++,h==="reverse"?(H=w%2===0,a=cg(a,v,c,H)):(a=Us(a,v,c),h==="mirror"&&U.flipTarget()),F=!1,l&&l()}function YA(){Q.stop(),g&&g()}function nA(tA){if(H||(tA=-tA),a+=tA,!F){const WA=U.next(Math.max(0,a));M=WA.value,Z&&(M=Z(M)),F=H?WA.done:a<=0}E==null||E(M),F&&(w===0&&(v??(v=a)),w<r?Ig(a,v,c,H)&&GA():YA())}function xA(){B==null||B(),Q=s(nA),Q.start()}return n&&xA(),{stop:()=>{o==null||o(),Q.stop()}}}const ug=e=>{if(typeof e=="number")return A=>Math.round(A/e)*e;{let A=0;const t=e.length;return i=>{let n=Math.abs(e[0]-i);for(A=1;A<t;A++){const s=e[A],a=Math.abs(s-i);if(a===0)return s;if(a>n)return e[A-1];if(A===t-1)return s;n=a}}}},Eg=(e,A,t)=>{e.props.context={...e.props.context??{},[A]:t}};class Os extends pA{constructor(){super(...arguments),this.elementRef=null}onInit(A){this.elementRef=A}onMount(A){Eg(A,"drop",A)}onUpdate(){}onDestroy(){this.elementRef=null}}class Ts extends pA{constructor(){super(...arguments),this.elementRef=null,this.stageRef=null,this.offsetInParent=new m.Point,this.isDragging=!1,this.viewport=null,this.animationFrameId=null,this.lastPointerPosition=new m.Point,this.pressedKeys=new Set,this.pointerIsDown=!1,this.onDragMoveHandler=()=>{},this.onDragEndHandler=()=>{},this.onDragStartHandler=()=>{},this.onKeyDownHandler=()=>{},this.onKeyUpHandler=()=>{},this.subscriptions=[]}onInit(A){this.elementRef=A,this.onDragMoveHandler=this.onDragMove.bind(this),this.onDragEndHandler=this.onDragEnd.bind(this),this.onDragStartHandler=this.onPointerDown.bind(this),this.onKeyDownHandler=this.onKeyDown.bind(this),this.onKeyUpHandler=this.onKeyUp.bind(this)}onMount(A){const{rootElement:t,canvasSize:i,viewport:n,tick:s}=A.props.context,a=A.componentInstance,r=this.dragProps;if(Object.keys(r).length===0){this.onDestroy();return}if(!a||(this.stageRef=t.componentInstance,!this.stageRef))return;this.viewport=n,a.eventMode="static",this.stageRef.eventMode="static";const c=AA(()=>{this.stageRef&&(this.stageRef.hitArea=new m.Rectangle(0,0,i().width,i().height))});a.on("pointerdown",this.onDragStartHandler),this.stageRef.on("pointerup",this.onDragEndHandler),this.stageRef.on("pointerupoutside",this.onDragEndHandler),r.keyToPress&&r.keyToPress,window.addEventListener("keydown",this.onKeyDownHandler),window.addEventListener("keyup",this.onKeyUpHandler),this.subscriptions=[s.observable.subscribe(()=>{this.isDragging&&this.viewport&&this.updateViewportPosition(this.lastPointerPosition)}),c.subscription]}get dragProps(){var i;const A=(i=this.elementRef)==null?void 0:i.props.drag,t=aA((A==null?void 0:A.value)??A,{snap:0,viewport:{},direction:"all",keyToPress:[]});return t.viewport=aA(t.viewport,{edgeThreshold:300,maxSpeed:40}),t}get axis(){const A=this.dragProps.direction(),t={x:!0,y:!0};return A==="x"&&(t.y=!1),A==="y"&&(t.x=!1),t}onDragMove(A){var l,E;if(!this.isDragging||!((l=this.elementRef)!=null&&l.componentInstance)||!this.elementRef.componentInstance.parent)return;const t=this.elementRef.componentInstance,i=t.parent,n=this.dragProps,s=this.elementRef.propObservables,a=ug((n==null?void 0:n.snap())??0);(E=n==null?void 0:n.move)==null||E.call(n,A);const r=i.toLocal(A.global),h=r.x-this.offsetInParent.x,c=r.y-this.offsetInParent.y;n!=null&&n.snap()?(t.position.x=a(h),t.position.y=a(c)):(this.axis.x&&(t.position.x=h),this.axis.y&&(t.position.y=c)),this.lastPointerPosition.copyFrom(A.global);const{x:B,y:o}=s,g=(C,f)=>{oe(C)?C.dependencies.forEach(Q=>{Q.set(f)}):J(C)&&C.set(f)};B!==void 0&&g(B,t.position.x),o!==void 0&&g(o,t.position.y)}updateViewportPosition(A){var f,Q;if(!this.viewport||!this.elementRef)return;const t=this.dragProps,i=(f=t==null?void 0:t.viewport)==null?void 0:f.edgeThreshold(),n=(Q=t==null?void 0:t.viewport)==null?void 0:Q.maxSpeed(),s=0,a=this.viewport.screenWidth,r=0,h=this.viewport.screenHeight,c=this.elementRef.componentInstance,B=A.x-s,o=a-A.x,g=A.y-r,l=h-A.y;let E=0,C=0;if(B<i?E=-(n*(1-B/i)):o<i&&(E=n*(1-o/i)),g<i?C=-(n*(1-g/i)):l<i&&(C=n*(1-l/i)),E!==0||C!==0){const w=this.viewport.center;this.viewport.moveCenter(this.viewport.center.x+E,this.viewport.center.y+C),this.axis.x&&w.x!==this.viewport.center.x&&(c.position.x+=E),this.axis.y&&w.y!==this.viewport.center.y&&(c.position.y+=C)}}onDragEnd(){var t;if(this.pointerIsDown=!1,!this.isDragging)return;const A=this.dragProps;this.isDragging=!1,(t=A==null?void 0:A.end)==null||t.call(A),this.stageRef&&this.stageRef.off("pointermove",this.onDragMoveHandler)}onKeyDown(A){this.pressedKeys.add(A.code),this.pressedKeys.add(A.key.toLowerCase()),this.pointerIsDown&&!this.isDragging&&this.areRequiredKeysPressed()&&this.startDrag()}onKeyUp(A){this.pressedKeys.delete(A.code),this.pressedKeys.delete(A.key.toLowerCase()),this.isDragging&&!this.areRequiredKeysPressed()&&this.onDragEnd()}areRequiredKeysPressed(){const A=this.dragProps.keyToPress?this.dragProps.keyToPress:[];return!A||A.length===0?!0:A.some(t=>this.pressedKeys.has(t)?!0:t.toLowerCase()==="space"?this.pressedKeys.has("Space")||this.pressedKeys.has(" "):t.toLowerCase()==="shift"?this.pressedKeys.has("ShiftLeft")||this.pressedKeys.has("ShiftRight"):t.toLowerCase()==="control"||t.toLowerCase()==="ctrl"?this.pressedKeys.has("ControlLeft")||this.pressedKeys.has("ControlRight"):t.toLowerCase()==="alt"?this.pressedKeys.has("AltLeft")||this.pressedKeys.has("AltRight"):!1)}onPointerDown(A){var s;if(!((s=this.elementRef)!=null&&s.componentInstance)||!this.stageRef||!this.elementRef.componentInstance.parent)return;this.pointerIsDown=!0;const t=this.elementRef.componentInstance,n=t.parent.toLocal(A.global);this.offsetInParent.x=n.x-t.position.x,this.offsetInParent.y=n.y-t.position.y,this.lastPointerPosition.copyFrom(A.global),this.areRequiredKeysPressed()&&this.startDrag()}startDrag(){var t;if(this.isDragging||!this.stageRef)return;this.isDragging=!0;const A=this.dragProps;(t=A==null?void 0:A.start)==null||t.call(A),this.stageRef.on("pointermove",this.onDragMoveHandler)}onUpdate(A){A.type&&A.type==="reset"&&(this.onDestroy(),this.onMount(this.elementRef))}onDestroy(){var t;this.subscriptions.forEach(i=>i.unsubscribe());const A=(t=this.elementRef)==null?void 0:t.componentInstance;A&&A.off("pointerdown",this.onDragStartHandler),this.stageRef&&(this.stageRef.off("pointermove",this.onDragMoveHandler),this.stageRef.off("pointerup",this.onDragEndHandler),this.stageRef.off("pointerupoutside",this.onDragEndHandler)),window.removeEventListener("keydown",this.onKeyDownHandler),window.removeEventListener("keyup",this.onKeyUpHandler),this.stageRef=null,this.viewport=null,this.pressedKeys.clear(),this.pointerIsDown=!1}}yA("drag",Ts),yA("drop",Os);class Js extends pA{onInit(A){}onMount(A){const{image:t}=A.props.transition,i=new m.Sprite(m.Texture.from(t));i.texture.baseTexture.wrapMode=m.WRAP_MODES.REPEAT;const n=new m.DisplacementFilter(i),s=A.componentInstance;s.filters=[n],s.addChild(i),setTimeout(()=>{Ps({from:0,to:1,duration:500,onUpdate:a=>{n.scale.x=a,n.scale.y=a}})},5e3)}onUpdate(A){}onDestroy(){}}yA("transition",Js);function Ot(e){return(e==null?void 0:e.start)&&(e==null?void 0:e.listen)}function Cg(e){const A=W({config:e,value:0,resolve:t=>{}});return{start:t=>new Promise(i=>{A.set({config:{...e,...t},resolve:i,value:Math.random()})}),listen:()=>({config:e,seed:A()})}}function Be(e,A){if(!Ot(e))throw new Error("In 'on(arg)' must have a trigger signal type");AA(()=>{const t=e.listen();if(t!=null&&t.seed.value){const i=A(t==null?void 0:t.seed.config);i&&typeof i.then=="function"&&i.then(t==null?void 0:t.seed.resolve)}})}function Ci(e){return e.animatedState!==void 0}function Qi(e,A={}){const t={current:e,start:e,end:e};let i;const n=W(e),s=W(t);AA(()=>{const h=s();n.set(h.current)});function a(h,c={}){if(h===void 0)return s();const B=s(),o={current:B.current,start:B.current,end:h};s.set(o),i&&i.stop(),i=Ps({duration:20,...A,...c,from:B.current,to:h,onUpdate:g=>{s.update(l=>({...l,current:g})),A.onUpdate&&A.onUpdate(g)}})}const r=function(){return s().current};for(const h in n)r[h]=n[h];return r.animatedState=s,r.update=h=>{a(h(s().current))},r.set=async(h,c={})=>new Promise(B=>{a(h,{...c,onComplete:B})}),r}async function Qg(e){for(const A of e)Array.isArray(A)?await Promise.all(A.map(t=>t())):await A()}class Ks extends pA{constructor(){super(...arguments),this.elementRef=null,this.originalPosition=new m.Point,this.progressSignal=null,this.shakeSubscription=null,this.positionEffect=null,this.currentShakeConfig=null}onInit(A){this.elementRef=A}onMount(A){const t=A.componentInstance;if(!t)return;const i=this.shakeProps;!i.trigger||!Ot(i.trigger)||(this.originalPosition.set(t.position.x,t.position.y),this.shakeSubscription=Be(i.trigger,async n=>{await this.performShake(n)}))}get shakeProps(){var t;const A=(t=this.elementRef)==null?void 0:t.props.shake;return aA((A==null?void 0:A.value)??A,{intensity:10,duration:500,frequency:10,direction:"both"})}async performShake(A){var B,o,g;if(!((B=this.elementRef)!=null&&B.componentInstance))return;const t=this.elementRef.componentInstance,i=this.shakeProps,n=(A==null?void 0:A.intensity)??i.intensity(),s=(A==null?void 0:A.duration)??i.duration(),a=(A==null?void 0:A.frequency)??i.frequency(),r=(A==null?void 0:A.direction)??i.direction();this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.originalPosition.set(t.position.x,t.position.y),t.position.x=this.originalPosition.x,t.position.y=this.originalPosition.y,(o=i.onStart)==null||o.call(i),this.currentShakeConfig={intensity:n,frequency:a,direction:r,randomSeed:Math.random()*1e3},this.progressSignal?(this.progressSignal.set(0,{duration:0}),await new Promise(l=>setTimeout(l,0))):this.progressSignal=Qi(0,{duration:s,ease:l=>l});const h=r!=="y",c=r!=="x";this.positionEffect=AA(()=>{if(!t||!this.progressSignal||!this.currentShakeConfig)return;const l=this.progressSignal(),E=this.currentShakeConfig,C=1-l,f=l*E.frequency,Q=Math.sin(f*Math.PI*2),w=Math.sin(E.randomSeed+l*10)*.25+1,v=h?Q*E.intensity*C*w:0,M=c?Q*E.intensity*C*w:0;t.position.x=this.originalPosition.x+v,t.position.y=this.originalPosition.y+M}).subscription,await this.progressSignal.set(1,{duration:s}),t&&(t.position.x=this.originalPosition.x,t.position.y=this.originalPosition.y),this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.currentShakeConfig=null,(g=i.onComplete)==null||g.call(i)}onUpdate(A){A.type&&A.type==="reset"&&(this.onDestroy(),this.elementRef&&this.onMount(this.elementRef))}onDestroy(){var A;if(this.progressSignal&&(this.progressSignal.set(0,{duration:0}),this.progressSignal=null),this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.currentShakeConfig=null,(A=this.elementRef)!=null&&A.componentInstance){const t=this.elementRef.componentInstance;t.position.x=this.originalPosition.x,t.position.y=this.originalPosition.y}this.shakeSubscription&&(this.shakeSubscription=null),this.elementRef=null}}yA("shake",Ks);class Ys extends pA{constructor(){super(...arguments),this.elementRef=null,this.progressSignal=null,this.flashSubscription=null,this.alphaEffect=null,this.tintEffect=null,this.originalAlpha=1,this.originalTint=16777215,this.currentFlashConfig=null}onInit(A){this.elementRef=A}onMount(A){const t=A.componentInstance;if(!t)return;const i=this.flashProps;if(!i.trigger||!Ot(i.trigger))return;this.originalAlpha===1&&!i.originalAlpha?this.originalAlpha=t.alpha??1:i.originalAlpha!==void 0&&(this.originalAlpha=i.originalAlpha);const n=t.tint;this.originalTint===16777215&&!i.originalTint?this.originalTint=(J(n)?n():n)??16777215:i.originalTint!==void 0&&(this.originalTint=i.originalTint),this.flashSubscription=Be(i.trigger,async s=>{await this.performFlash(s)})}get flashProps(){var t;const A=(t=this.elementRef)==null?void 0:t.props.flash;return aA((A==null?void 0:A.value)??A,{type:"alpha",duration:300,cycles:1,alpha:.3,tint:16777215})}async performFlash(A){var B,o,g;if(!((B=this.elementRef)!=null&&B.componentInstance))return;const t=this.elementRef.componentInstance,i=this.flashProps,n=(A==null?void 0:A.type)??(typeof i.type=="function"?i.type():i.type),s=(A==null?void 0:A.duration)??(typeof i.duration=="function"?i.duration():i.duration),a=(A==null?void 0:A.cycles)??(typeof i.cycles=="function"?i.cycles():i.cycles),r=(A==null?void 0:A.alpha)??(typeof i.alpha=="function"?i.alpha():i.alpha),h=(A==null?void 0:A.tint)??(typeof i.tint=="function"?i.tint():i.tint);this.progressSignal&&this.progressSignal.set(0,{duration:0}),this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),t.alpha=this.originalAlpha;const c=t.tint;if(c!==void 0){const l=typeof this.originalTint=="number"?this.originalTint:16777215;J(c)?c.set(l):t.tint=l}if((o=i.onStart)==null||o.call(i),this.currentFlashConfig={type:n,duration:s,cycles:a,flashAlpha:r,flashTint:h},this.progressSignal||(this.progressSignal=Qi(0,{duration:s,ease:l=>l})),this.progressSignal.set(0,{duration:0}),await new Promise(l=>setTimeout(l,0)),(n==="alpha"||n==="both")&&(this.alphaEffect=AA(()=>{if(!t||!this.progressSignal||!this.currentFlashConfig)return;const l=this.progressSignal(),E=this.currentFlashConfig,C=l*E.cycles%1,f=C<.5?C*2:1-(C-.5)*2,Q=this.originalAlpha+(E.flashAlpha-this.originalAlpha)*f;t.alpha=Q}).subscription),(n==="tint"||n==="both")&&(this.tintEffect=AA(()=>{if(!t||!this.progressSignal||!this.currentFlashConfig)return;const l=t.tint;if(l===void 0)return;const E=J(l),C=this.progressSignal(),f=this.currentFlashConfig,Q=C*f.cycles%1,w=Q<.5?Q*2:1-(Q-.5)*2,v=this.originalTint>>16&255,M=this.originalTint>>8&255,F=this.originalTint&255,H=f.flashTint>>16&255,Z=f.flashTint>>8&255,iA=f.flashTint&255,U=Math.round(v+(H-v)*w),GA=Math.round(M+(Z-M)*w),YA=Math.round(F+(iA-F)*w),nA=U<<16|GA<<8|YA;E?l.set(nA):t.tint=nA}).subscription),await this.progressSignal.set(1,{duration:s}),t){t.alpha=this.originalAlpha;const l=t.tint;if(l!==void 0){const E=typeof this.originalTint=="number"?this.originalTint:16777215;J(l)?l.set(E):t.tint=E}}this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),this.currentFlashConfig=null,(g=i.onComplete)==null||g.call(i)}onUpdate(A){A.type&&A.type==="reset"&&(this.onDestroy(),this.elementRef&&this.onMount(this.elementRef))}onDestroy(){var A;if(this.progressSignal&&(this.progressSignal.set(0,{duration:0}),this.progressSignal=null),this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),this.currentFlashConfig=null,(A=this.elementRef)!=null&&A.componentInstance){const t=this.elementRef.componentInstance;t.alpha=this.originalAlpha;const i=t.tint;if(i!==void 0){const n=typeof this.originalTint=="number"?this.originalTint:16777215;J(i)?i.set(n):t.tint=n}}this.flashSubscription&&(this.flashSubscription=null),this.elementRef=null}}yA("flash",Ys);function JA(e){return e&&typeof e=="string"?e.endsWith("%"):!1}const Ws=["added","childAdded","childRemoved","click","clickcapture","destroyed","globalmousemove","globalpointermove","globaltouchmove","mousedown","mousedowncapture","mouseenter","mouseentercapture","mouseleave","mouseleavecapture","mousemove","mousemovecapture","mouseout","mouseoutcapture","mouseover","mouseovercapture","mouseup","mouseupcapture","mouseupoutside","mouseupoutsidecapture","pointercancel","pointercancelcapture","pointerdown","pointerdowncapture","pointerenter","pointerentercapture","pointerleave","pointerleavecapture","pointermove","pointermovecapture","pointerout","pointeroutcapture","pointerover","pointerovercapture","pointertap","pointertapcapture","pointerup","pointerupcapture","pointerupoutside","pointerupoutsidecapture","removed","rightclick","rightclickcapture","rightdown","rightdowncapture","rightup","rightupcapture","rightupoutside","rightupoutsidecapture","tap","tapcapture","touchcancel","touchcancelcapture","touchend","touchendcapture","touchendoutside","touchendoutsidecapture","touchmove","touchmovecapture","touchstart","touchstartcapture","wheel","wheelcapture"];function uA(e){var A,t,i,n;return n=class extends e{constructor(){super(...arguments);Ne(this,A);Ne(this,t);Ne(this,i);vt(this,A,null),this.isFlex=!1,this.fullProps={},this.isMounted=!1,this._anchorPoints=new m.ObservablePoint({_onUpdate:()=>{}},0,0),this.isCustomAnchor=!1,this.displayWidth=W(0),this.displayHeight=W(0),this.overrideProps=[],this.layout=null,this.onBeforeDestroy=null,this.onAfterMount=null,this.subjectInit=new ee(null),this.disableLayout=!1,vt(this,t,new Map),vt(this,i,null)}get deltaRatio(){var r,h;return(h=(r=IA(this,A))==null?void 0:r.scheduler)==null?void 0:h.tick.value.deltaRatio}get parentIsFlex(){var r;return this.disableLayout?!1:(r=this.parent)==null?void 0:r.isFlex}onInit(r){this._id=r.id;for(let h of Ws)if(r[h]&&!this.overrideProps.includes(h)){this.eventMode="static";const c=r[h];h==="click"?(this.on("pointertap",c),IA(this,t).set("pointertap",c)):(this.on(h,c),IA(this,t).set(h,c))}(r.onBeforeDestroy||r["on-before-destroy"])&&(this.onBeforeDestroy=r.onBeforeDestroy||r["on-before-destroy"]),(r.onAfterMount||r["on-after-mount"])&&(this.onAfterMount=r.onAfterMount||r["on-after-mount"]),(r.justifyContent||r.alignItems||r.flexDirection||r.flexWrap||r.alignContent||r.display=="flex"||JA(r.width)||JA(r.height)||r.isRoot)&&(this.layout={},this.isFlex=!0),this.subjectInit.next(this)}async onMount({parent:r,props:h},c){if(!this.destroyed&&(vt(this,A,h.context),r)){const B=r.componentInstance;if(B.isFlex&&!this.layout&&!this.disableLayout)try{this.layout={}}catch(g){console.warn("Failed to set layout:",g)}c===void 0?B.addChild(this):B.addChildAt(this,c),this.isMounted=!0,this.onUpdate(h);const o=g=>{g.computedLayout&&vt(this,i,{width:g.computedLayout.width,height:g.computedLayout.height})};this.on("layout",o),IA(this,t).set("layout",o),this.onAfterMount&&await this.onAfterMount()}}onUpdate(r){if(this.fullProps={...this.fullProps,...r},this.destroyed||!IA(this,A)||!this.parent)return;r.x!==void 0&&this.setX(r.x),r.y!==void 0&&this.setY(r.y),r.scale!==void 0&>(this.scale,r.scale),r.anchor!==void 0&&!this.isCustomAnchor&>(this.anchor,r.anchor),r.width!==void 0&&this.setWidth(r.width),r.height!==void 0&&this.setHeight(r.height),r.minWidth!==void 0&&this.setMinWidth(r.minWidth),r.minHeight!==void 0&&this.setMinHeight(r.minHeight),r.maxWidth!==void 0&&this.setMaxWidth(r.maxWidth),r.maxHeight!==void 0&&this.setMaxHeight(r.maxHeight),r.aspectRatio!==void 0&&this.setAspectRatio(r.aspectRatio),r.flexGrow!==void 0&&this.setFlexGrow(r.flexGrow),r.flexShrink!==void 0&&this.setFlexShrink(r.flexShrink),r.flexBasis!==void 0&&this.setFlexBasis(r.flexBasis),r.rowGap!==void 0&&this.setRowGap(r.rowGap),r.columnGap!==void 0&&this.setColumnGap(r.columnGap),r.top!==void 0&&this.setTop(r.top),r.left!==void 0&&this.setLeft(r.left),r.right!==void 0&&this.setRight(r.right),r.bottom!==void 0&&this.setBottom(r.bottom),r.objectFit!==void 0&&this.setObjectFit(r.objectFit),r.objectPosition!==void 0&&this.setObjectPosition(r.objectPosition),r.transformOrigin!==void 0&&this.setTransformOrigin(r.transformOrigin),r.skew!==void 0&>(this.skew,r.skew),r.tint&&(this.tint=r.tint),r.rotation!==void 0&&(this.rotation=r.rotation),r.angle!==void 0&&(this.angle=r.angle),r.zIndex!==void 0&&(this.zIndex=r.zIndex),r.roundPixels!==void 0&&(this.roundPixels=r.roundPixels),r.cursor&&(this.cursor=r.cursor),r.visible!==void 0&&(this.visible=r.visible),r.alpha!==void 0&&(this.alpha=r.alpha),r.pivot&>(this.pivot,r.pivot),r.flexDirection&&this.setFlexDirection(r.flexDirection),r.flexWrap&&this.setFlexWrap(r.flexWrap),r.justifyContent&&this.setJustifyContent(r.justifyContent),r.alignItems&&this.setAlignItems(r.alignItems),r.alignContent&&this.setAlignContent(r.alignContent),r.alignSelf&&this.setAlignSelf(r.alignSelf),r.margin&&this.setMargin(r.margin),r.padding&&this.setPadding(r.padding),r.gap&&this.setGap(r.gap),r.border&&this.setBorder(r.border),r.positionType&&this.setPositionType(r.positionType),r.filters&&(this.filters=r.filters),r.maskOf&&wA(r.maskOf)&&(r.maskOf.componentInstance.mask=this),r.blendMode&&(this.blendMode=r.blendMode),r.filterArea&&(this.filterArea=r.filterArea);const h=this.filters||[];if(r.blur){let c=h.find(B=>B instanceof m.BlurFilter);if(!c){const B=typeof r.blur=="number"?{strength:r.blur}:r.blur;c=new m.BlurFilter(B),h.push(c)}Object.assign(c,r.blur)}this.filters=h}async onDestroy(r,h){for(const[c,B]of IA(this,t))this.off(c,B);IA(this,t).clear(),this.onBeforeDestroy&&await this.onBeforeDestroy(),h&&h(),super.destroy()}setFlexDirection(r){this.layout={flexDirection:r}}setFlexWrap(r){this.layout={flexWrap:r}}setAlignContent(r){this.layout={alignContent:r}}setAlignSelf(r){this.layout={alignSelf:r}}setAlignItems(r){this.layout={alignItems:r}}setJustifyContent(r){this.layout={justifyContent:r}}setPosition(r){r instanceof Array?r.length===2?this.layout={positionY:r[0],positionX:r[1]}:r.length===4&&(this.layout={positionTop:r[0],positionRight:r[1],positionBottom:r[2],positionLeft:r[3]}):this.layout={position:r}}setX(r){r=r+this.getWidth()*this._anchorPoints.x,this.parentIsFlex?(this.x=r,this.layout={x:r}):this.x=r}setY(r){r=r+this.getHeight()*this._anchorPoints.y,this.parentIsFlex?(this.y=r,this.layout={y:r}):this.y=r}setPadding(r){r instanceof Array?r.length===2?this.layout={paddingVertical:r[0],paddingHorizontal:r[1]}:r.length===4&&(this.layout={paddingTop:r[0],paddingRight:r[1],paddingBottom:r[2],paddingLeft:r[3]}):this.layout={padding:r}}setMargin(r){r instanceof Array?r.length===2?this.layout={marginVertical:r[0],marginHorizontal:r[1]}:r.length===4&&(this.layout={marginTop:r[0],marginRight:r[1],marginBottom:r[2],marginLeft:r[3]}):this.layout={margin:r}}setGap(r){this.layout={gap:r}}setBorder(r){r instanceof Array?r.length===2?this.layout={borderVertical:r[0],borderHorizontal:r[1]}:r.length===4&&(this.layout={borderTop:r[0],borderRight:r[1],borderBottom:r[2],borderLeft:r[3]}):this.layout={border:r}}setPositionType(r){this.layout={position:r}}setWidth(r){this.displayWidth.set(r),this.parentIsFlex?this.layout={width:r}:this.width=r}setHeight(r){this.displayHeight.set(r),this.parentIsFlex?this.layout={height:r}:this.height=r}getWidth(){var h;return JA(this.fullProps.width)?((h=IA(this,i))==null?void 0:h.width)!==void 0?IA(this,i).width:typeof this.width=="number"?this.width:0:typeof this.width=="number"&&this.width>0?this.width:typeof this.displayWidth()=="number"?this.displayWidth():0}getHeight(){var h;return JA(this.fullProps.height)?((h=IA(this,i))==null?void 0:h.height)!==void 0?IA(this,i).height:typeof this.height=="number"?this.height:0:typeof this.height=="number"&&this.height>0?this.height:typeof this.displayHeight()=="number"?this.displayHeight():0}setMinWidth(r){this.layout={minWidth:r}}setMinHeight(r){this.layout={minHeight:r}}setMaxWidth(r){this.layout={maxWidth:r}}setMaxHeight(r){this.layout={maxHeight:r}}setAspectRatio(r){this.layout={aspectRatio:r}}setFlexGrow(r){this.layout={flexGrow:r}}setFlexShrink(r){this.layout={flexShrink:r}}setFlexBasis(r){this.layout={flexBasis:r}}setRowGap(r){this.layout={rowGap:r}}setColumnGap(r){this.layout={columnGap:r}}setTop(r){this.layout={top:r}}setLeft(r){this.layout={left:r}}setRight(r){this.layout={right:r}}setBottom(r){this.layout={bottom:r}}setObjectFit(r){this.layout={objectFit:r}}setObjectPosition(r){this.layout={objectPosition:r}}setTransformOrigin(r){this.layout={transformOrigin:r}}},A=new WeakMap,t=new WeakMap,i=new WeakMap,n}class fg{constructor(){this.assets=new Map,this.onProgressCallbacks=new Set,this.onCompleteCallbacks=new Set,this.assetCounter=0,this.isComplete=!1}registerAsset(A){const t=`asset_${this.assetCounter++}_${A}`;return this.assets.set(t,{progress:0,completed:!1}),this.isComplete=!1,this.updateGlobalProgress(),t}updateProgress(A,t){const i=this.assets.get(A);if(!i){console.warn(`Asset ${A} not found in tracker`);return}i.progress=Math.max(0,Math.min(1,t)),this.updateGlobalProgress()}completeAsset(A){const t=this.assets.get(A);if(!t){console.warn(`Asset ${A} not found in tracker`);return}t.progress=1,t.completed=!0,this.updateGlobalProgress(),this.checkCompletion()}removeAsset(A){this.assets.delete(A),this.updateGlobalProgress()}onProgress(A){this.onProgressCallbacks.add(A);try{A(this.getGlobalProgress())}catch(t){console.error("Error in onProgress callback:",t)}return()=>{this.onProgressCallbacks.delete(A)}}onComplete(A){return this.onCompleteCallbacks.add(A),this.isComplete&&A(),()=>{this.onCompleteCallbacks.delete(A)}}getGlobalProgress(){if(this.assets.size===0)return 1;let A=0;for(const t of this.assets.values())A+=t.progress;return A/this.assets.size}getAssetCount(){return this.assets.size}getCompletedCount(){let A=0;for(const t of this.assets.values())t.completed&&A++;return A}checkCompletion(){if(this.isComplete)return;Array.from(this.assets.values()).every(t=>t.completed)&&this.assets.size>0&&(this.isComplete=!0,this.onCompleteCallbacks.forEach(t=>{try{t()}catch(i){console.error("Error in onComplete callback:",i)}}))}updateGlobalProgress(){const A=this.getGlobalProgress();Array.from(this.onProgressCallbacks).forEach(i=>{try{i(A)}catch(n){console.error("Error in onProgress callback:",n)}})}reset(){this.assets.clear(),this.onProgressCallbacks.clear(),this.onCompleteCallbacks.clear(),this.assetCounter=0,this.isComplete=!1}}sA("Canvas",class extends uA(m.Container){});const dg=async(e={})=>{let{cursorStyles:A,width:t,height:i,class:n}=aA(e);e.width||(t=W(800)),e.height||(i=W(600));const s=W({width:0,height:0});e.isRoot=!0;const a=new fg,r={...e,context:{canvasSize:s,app:W(null),globalLoader:a},width:t==null?void 0:t(),height:i==null?void 0:i()};e.tick||(r.context.tick=r.tick=W({timestamp:0,deltaTime:0,frame:0,deltaRatio:1}));const h=rA("Canvas",r);return h.render=(c,B)=>{if(!B)return;const o=B.renderer,g=o.view.canvas;globalThis.__PIXI_STAGE__=h.componentInstance,globalThis.__PIXI_RENDERER__=o,e.tickStart!==!1&&h.directives.tick.start(),AA(()=>{h.propObservables.tick(),o.render(h.componentInstance)}),B.stage=h.componentInstance,B.stage.layout={width:B.screen.width,height:B.screen.height,justifyContent:e.justifyContent,alignItems:e.alignItems},s.set({width:B.screen.width,height:B.screen.height}),B.renderer.on("resize",(E,C)=>{s.set({width:E,height:C}),B.stage.layout&&(B.stage.layout={width:E,height:C})}),e.tickStart!==!1&&h.directives.tick.start(),B.ticker.add(()=>{h.propObservables.tick()}),A&&AA(()=>{o.events.cursorStyles=A()}),n&&AA(()=>{g.classList.add(n())});const l=c.querySelector("canvas");l?c.replaceChild(g,l):c.appendChild(g),r.context.app.set(B)},h};class Xs extends uA(m.Container){constructor(){super(...arguments),this.isCustomAnchor=!0}onUpdate(A){A.anchor&&(gt(this._anchorPoints,A.anchor),A.pivot=[this.getWidth()*this._anchorPoints.x,this.getHeight()*this._anchorPoints.y]),super.onUpdate(A),A.sortableChildren!=null&&(this.sortableChildren=A.sortableChildren)}async onMount(A){await super.onMount(A);const{componentInstance:t,props:i}=A,{pixiChildren:n}=i;n&&n.forEach(r=>{t.addChild(r)});const s=JA(i.width),a=JA(i.height);(s||a)&&this.on("layout",r=>{const h=r.computedLayout;s&&h.width!==void 0&&this.displayWidth.set(h.width),a&&h.height!==void 0&&this.displayHeight.set(h.height)})}}sA("Container",Xs);const ue=e=>rA("Container",e);class pg extends uA(m.Graphics){async onInit(A){await super.onInit(A)}async onMount(A,t){await super.onMount(A,t);const{props:i,propObservables:n}=A,s=J(n==null?void 0:n.width)?n.width:W(i.width||0),a=J(n==null?void 0:n.height)?n.height:W(i.height||0);this._width=s,this._height=a;const r=JA(s()),h=JA(a());i.draw&&(this.clearEffect=AA(()=>{var o;const c=s(),B=a();typeof c=="string"||typeof B=="string"||(this.clear(),(o=i.draw)==null||o.call(i,this,c,B),this.subjectInit.next(this))})),this.on("layout",c=>{const B=c.computedLayout;r&&J(s)&&s()!==B.width&&s.set(B.width),h&&J(a)&&a()!==B.height&&a.set(B.height)})}onUpdate(A){super.onUpdate(A),A.width!==void 0&&this._width&&this._width()!==A.width&&this._width.set(A.width),A.height!==void 0&&this._height&&this._height()!==A.height&&this._height.set(A.height)}async onDestroy(A,t){const i=async()=>{var n;(n=this.clearEffect)==null||n.subscription.unsubscribe(),t()};await super.onDestroy(A,i)}}sA("Graphics",pg);function lt(e){return rA("Graphics",e)}function Vs(e){const{color:A,borderRadius:t,border:i}=aA(e,{borderRadius:null,border:null});return lt({draw:(n,s,a)=>{t()?n.roundRect(0,0,s,a,t()):n.rect(0,0,s,a),i&&n.stroke(i),n.fill(A())},...e})}function yg(e,A,t){const{color:i,border:n}=t;"radius"in t?e.circle(0,0,t.radius()):e.ellipse(0,0,t.width()/2,t.height()/2),n()&&e.stroke(n()),e.fill(i())}function wg(e){const{radius:A,color:t,border:i}=aA(e,{border:null});return lt({draw:n=>yg(n,"circle",{radius:A,color:t,border:i}),...e})}function mg(e){const{width:A,height:t,color:i,border:n}=aA(e,{border:null});return lt({draw:(s,a,r)=>{s.ellipse(0,0,a/2,r/2),n()&&s.stroke(n()),s.fill(i())},...e})}function Dg(e){const{width:A,height:t,color:i,border:n}=aA(e,{border:null,color:"#000"});return lt({draw:(s,a,r)=>{s.moveTo(0,r),s.lineTo(a/2,0),s.lineTo(a,r),s.lineTo(0,r),s.fill(i()),n&&s.stroke(n)},...e})}function vg(e){return lt({draw:async A=>{if(e.src){const t=await m.Assets.load({src:e.src,data:{parseAsGraphicsContext:!0}}),i=new m.Graphics(t);A.context=i.context}else e.content?A.svg(e.content):e.svg&&A.svg(e.svg)},...e})}class Sg extends uA(m.Mesh){constructor(){super({geometry:new m.Geometry})}onInit(A){if(super.onInit(A),A.geometry)try{this.geometry=A.geometry}catch(t){console.warn("Failed to set geometry:",t)}A.shader&&(this.shader=A.shader)}async onUpdate(A){if(super.onUpdate(A),A.geometry)try{this.geometry=A.geometry}catch(t){console.warn("Failed to update geometry:",t)}A.shader&&(this.shader=A.shader),A.texture?typeof A.texture=="string"?this.texture=await m.Assets.load(A.texture):this.texture=A.texture:A.image&&(this.texture=await m.Assets.load(A.image)),A.tint!==void 0&&(this.tint=A.tint),A.blendMode!==void 0&&(this.blendMode=A.blendMode),A.roundPixels!==void 0&&(this.roundPixels=A.roundPixels)}async onDestroy(A,t){const i=async()=>{t()};await super.onDestroy(A,i)}}sA("Mesh",Sg);const bg=e=>rA("Mesh",e);S.currentSubscriptionsTracker=null,S.mountTracker=null;function fi(e){var A;(A=S.mountTracker)==null||A.call(S,e)}function xg(e){fi(A=>{const{context:t}=A.props;let i;return t.tick&&(i=t.tick.observable.subscribe(({value:n})=>{e(n,A)})),()=>{i==null||i.unsubscribe()}})}function RA(e,A={},...t){const i=new Set,n=new Set;S.currentSubscriptionsTracker=a=>{i.add(a)},S.mountTracker=a=>{n.add(a)},t[0]instanceof Array&&(t=t[0]);let s;return Array.isArray(e)?e.length===1?s=e[0]:s=RA(ue,{},...e):"tag"in e||e instanceof X?s=e:s=e({...A,children:t}),s||(s={}),s.effectSubscriptions=Array.from(i),s.effectMounts=[...Array.from(n),...s.effectMounts??[]],A!=null&&A.dependencies&&(s.props=s.props||{},s.props.dependencies=A.dependencies),s instanceof Promise&&s.then(a=>{a.props.isRoot&&n.forEach(r=>r(a))}),S.currentSubscriptionsTracker=null,S.mountTracker=null,s}function kg(e){return RA(ue)}/*!
|
|
22
22
|
* @barvynkoa/particle-emitter - v6.0.0
|
|
23
23
|
* Compiled Mon, 27 May 2024 12:15:21 UTC
|
|
24
24
|
*
|
|
25
25
|
* @barvynkoa/particle-emitter is licensed under the MIT License.
|
|
26
26
|
* http://www.opensource.org/licenses/mit-license
|
|
27
|
-
*/class di{constructor(A){this.segments=[],this.countingLengths=[],this.totalLength=0,this.init(A)}init(A){if(!A||!A.length)this.segments.push({p1:{x:0,y:0},p2:{x:0,y:0},l:0});else if(Array.isArray(A[0]))for(let t=0;t<A.length;++t){const i=A[t];let n=i[0];for(let s=1;s<i.length;++s){const a=i[s];this.segments.push({p1:n,p2:a,l:0}),n=a}}else{let t=A[0];for(let i=1;i<A.length;++i){const n=A[i];this.segments.push({p1:t,p2:n,l:0}),t=n}}for(let t=0;t<this.segments.length;++t){const{p1:i,p2:n}=this.segments[t],s=Math.sqrt((n.x-i.x)*(n.x-i.x)+(n.y-i.y)*(n.y-i.y));this.segments[t].l=s,this.totalLength+=s,this.countingLengths.push(this.totalLength)}}getRandPos(A){const t=Math.random()*this.totalLength;let i,n;if(this.segments.length===1)i=this.segments[0],n=t;else for(let r=0;r<this.countingLengths.length;++r)if(t<this.countingLengths[r]){i=this.segments[r],n=r===0?t:t-this.countingLengths[r-1];break}n/=i.l||1;const{p1:s,p2:a}=i;A.x=s.x+n*(a.x-s.x),A.y=s.y+n*(a.y-s.y)}}di.type="polygonalChain",di.editorConfig=null;class pi{constructor(A){this.x=A.x,this.y=A.y,this.w=A.w,this.h=A.h}getRandPos(A){A.x=Math.random()*this.w+this.x,A.y=Math.random()*this.h+this.y}}pi.type="rect",pi.editorConfig=null;class mA{constructor(A,t,i){this.value=A,this.time=t,this.next=null,this.isStepped=!1,i?this.ease=typeof i=="function"?i:Zs(i):this.ease=null}static createList(A){if("list"in A){const i=A.list;let n;const{value:s,time:a}=i[0],r=n=new mA(typeof s=="string"?Ce(s):s,a,A.ease);if(i.length>2||i.length===2&&i[1].value!==s)for(let h=1;h<i.length;++h){const{value:l,time:u}=i[h];n.next=new mA(typeof l=="string"?Ce(l):l,u),n=n.next}return r.isStepped=!!A.isStepped,r}const t=new mA(typeof A.start=="string"?Ce(A.start):A.start,0);return A.end!==A.start&&(t.next=new mA(typeof A.end=="string"?Ce(A.end):A.end,1)),t}}let Pt=m.Texture.from;const DA=Math.PI/180;function FA(e,A){if(!e)return;const t=Math.sin(e),i=Math.cos(e),n=A.x*i-A.y*t,s=A.x*t+A.y*i;A.x=n,A.y=s}function Ee(e,A,t){return e<<16|A<<8|t}function Vs(e){return Math.sqrt(e.x*e.x+e.y*e.y)}function kg(e){const A=1/Vs(e);e.x*=A,e.y*=A}function qs(e,A){e.x*=A,e.y*=A}function Ce(e,A){A||(A={}),e.charAt(0)==="#"?e=e.substr(1):e.indexOf("0x")===0&&(e=e.substr(2));let t;return e.length===8&&(t=e.substr(0,2),e=e.substr(2)),A.r=parseInt(e.substr(0,2),16),A.g=parseInt(e.substr(2,2),16),A.b=parseInt(e.substr(4,2),16),t&&(A.a=parseInt(t,16)),A}function Zs(e){const A=e.length,t=1/A;return function(i){const n=A*i|0,s=(i-n*t)*A,a=e[n]||e[A-1];return a.s+s*(2*(1-s)*(a.cp-a.s)+s*(a.e-a.s))}}function Mg(e){return e||"normal"}class Qe{constructor(A){this.x=A.x||0,this.y=A.y||0,this.radius=A.radius,this.innerRadius=A.innerRadius||0,this.rotation=!!A.affectRotation}getRandPos(A){this.innerRadius!==this.radius?A.x=Math.random()*(this.radius-this.innerRadius)+this.innerRadius:A.x=this.radius,A.y=0;const t=Math.random()*Math.PI*2;this.rotation&&(A.rotation+=t),FA(t,A.position),A.position.x+=this.x,A.position.y+=this.y}}Qe.type="torus",Qe.editorConfig=null;var J;(function(e){e[e.Spawn=0]="Spawn",e[e.Normal=2]="Normal",e[e.Late=5]="Late"})(J||(J={}));class yi{constructor(A){this.order=J.Late,this.minStart=A.minStart,this.maxStart=A.maxStart,this.accel=A.accel,this.rotate=!!A.rotate,this.maxSpeed=A.maxSpeed??0}initParticles(A){let t=A;for(;t;){const i=Math.random()*(this.maxStart-this.minStart)+this.minStart;t.config.velocity?t.config.velocity.set(i,0):t.config.velocity=new m.Point(i,0),FA(t.rotation,t.config.velocity),t=t.next}}updateParticle(A,t){const i=A.config.velocity,n=i.x,s=i.y;if(i.x+=this.accel.x*t,i.y+=this.accel.y*t,this.maxSpeed){const a=Vs(i);a>this.maxSpeed&&qs(i,this.maxSpeed/a)}A.x+=(n+i.x)/2*t,A.y+=(s+i.y)/2*t,this.rotate&&(A.rotation=Math.atan2(i.y,i.x))}}yi.type="moveAcceleration",yi.editorConfig=null;function Rg(e){return this.ease&&(e=this.ease(e)),(this.first.next.value-this.first.value)*e+this.first.value}function Fg(e){this.ease&&(e=this.ease(e));const A=this.first.value,t=this.first.next.value,i=(t.r-A.r)*e+A.r,n=(t.g-A.g)*e+A.g,s=(t.b-A.b)*e+A.b;return Ee(i,n,s)}function Gg(e){this.ease&&(e=this.ease(e));let A=this.first,t=A.next;for(;e>t.time;)A=t,t=t.next;return e=(e-A.time)/(t.time-A.time),(t.value-A.value)*e+A.value}function _g(e){this.ease&&(e=this.ease(e));let A=this.first,t=A.next;for(;e>t.time;)A=t,t=t.next;e=(e-A.time)/(t.time-A.time);const i=A.value,n=t.value,s=(n.r-i.r)*e+i.r,a=(n.g-i.g)*e+i.g,r=(n.b-i.b)*e+i.b;return Ee(s,a,r)}function Ng(e){this.ease&&(e=this.ease(e));let A=this.first;for(;A.next&&e>A.next.time;)A=A.next;return A.value}function Hg(e){this.ease&&(e=this.ease(e));let A=this.first;for(;A.next&&e>A.next.time;)A=A.next;const t=A.value;return Ee(t.r,t.g,t.b)}class Jt{constructor(A=!1){this.first=null,this.isColor=!!A,this.interpolate=null,this.ease=null}reset(A){this.first=A,A.next&&A.next.time>=1?this.interpolate=this.isColor?Fg:Rg:A.isStepped?this.interpolate=this.isColor?Hg:Ng:this.interpolate=this.isColor?_g:Gg,this.ease=this.first.ease}}class wi{constructor(A){this.order=J.Normal,this.list=new Jt(!1),this.list.reset(mA.createList(A.alpha))}initParticles(A){let t=A;for(;t;)t.alpha=this.list.first.value,t=t.next}updateParticle(A){A.alpha=this.list.interpolate(A.agePercent)}}wi.type="alpha",wi.editorConfig=null;class mi{constructor(A){this.order=J.Normal,this.value=A.alpha}initParticles(A){let t=A;for(;t;)t.alpha=this.value,t=t.next}}mi.type="alphaStatic",mi.editorConfig=null;function zs(e){const A=[];for(let t=0;t<e.length;++t){let i=e[t];if(typeof i=="string")A.push(Pt(i));else if(i instanceof m.Texture)A.push(i);else{let n=i.count||1;for(typeof i.texture=="string"?i=Pt(i.texture):i=i.texture;n>0;--n)A.push(i)}}return A}class Di{constructor(A){this.order=J.Normal,this.anims=[];for(let t=0;t<A.anims.length;++t){const i=A.anims[t],n=zs(i.textures),s=i.framerate<0?-1:i.framerate>0?i.framerate:60,a={textures:n,duration:s>0?n.length/s:0,framerate:s,loop:s>0?!!i.loop:!1};this.anims.push(a)}}initParticles(A){let t=A;for(;t;){const i=Math.floor(Math.random()*this.anims.length),n=t.config.anim=this.anims[i];t.texture=n.textures[0],t.config.animElapsed=0,n.framerate===-1?(t.config.animDuration=t.maxLife,t.config.animFramerate=n.textures.length/t.maxLife):(t.config.animDuration=n.duration,t.config.animFramerate=n.framerate),t=t.next}}updateParticle(A,t){const i=A.config,n=i.anim;i.animElapsed+=t,i.animElapsed>=i.animDuration&&(i.anim.loop?i.animElapsed=i.animElapsed%i.animDuration:i.animElapsed=i.animDuration-1e-6);const s=i.animElapsed*i.animFramerate+1e-7|0;A.texture=n.textures[s]||n.textures[n.textures.length-1]||m.Texture.EMPTY}}Di.type="animatedRandom",Di.editorConfig=null;class vi{constructor(A){this.order=J.Normal;const t=A.anim,i=zs(t.textures),n=t.framerate<0?-1:t.framerate>0?t.framerate:60;this.anim={textures:i,duration:n>0?i.length/n:0,framerate:n,loop:n>0?!!t.loop:!1}}initParticles(A){let t=A;const i=this.anim;for(;t;)t.texture=i.textures[0],t.config.animElapsed=0,i.framerate===-1?(t.config.animDuration=t.maxLife,t.config.animFramerate=i.textures.length/t.maxLife):(t.config.animDuration=i.duration,t.config.animFramerate=i.framerate),t=t.next}updateParticle(A,t){const i=this.anim,n=A.config;n.animElapsed+=t,n.animElapsed>=n.animDuration&&(i.loop?n.animElapsed=n.animElapsed%n.animDuration:n.animElapsed=n.animDuration-1e-6);const s=n.animElapsed*n.animFramerate+1e-7|0;A.texture=i.textures[s]||i.textures[i.textures.length-1]||m.Texture.EMPTY}}vi.type="animatedSingle",vi.editorConfig=null;class Si{constructor(A){this.order=J.Normal,this.value=A.blendMode}initParticles(A){let t=A;for(;t;)t.blendMode=Mg(this.value),t=t.next}}Si.type="blendMode",Si.editorConfig=null;class xi{constructor(A){this.order=J.Spawn,this.spacing=A.spacing*DA,this.start=A.start*DA,this.distance=A.distance}initParticles(A){let t=0,i=A;for(;i;){let n;this.spacing?n=this.start+this.spacing*t:n=Math.random()*Math.PI*2,i.rotation=n,this.distance&&(i.position.x=this.distance,FA(n,i.position)),i=i.next,++t}}}xi.type="spawnBurst",xi.editorConfig=null;class bi{constructor(A){this.order=J.Normal,this.list=new Jt(!0),this.list.reset(mA.createList(A.color))}initParticles(A){let t=A;const i=this.list.first.value,n=Ee(i.r,i.g,i.b);for(;t;)t.tint=n,t=t.next}updateParticle(A){A.tint=this.list.interpolate(A.agePercent)}}bi.type="color",bi.editorConfig=null;class ki{constructor(A){this.order=J.Normal;let t=A.color;t.charAt(0)==="#"?t=t.substr(1):t.indexOf("0x")===0&&(t=t.substr(2)),this.value=parseInt(t,16)}initParticles(A){let t=A;for(;t;)t.tint=this.value,t=t.next}}ki.type="colorStatic",ki.editorConfig=null;class Mi{constructor(A){this.order=J.Normal,this.index=0,this.textures=A.textures.map(t=>typeof t=="string"?Pt(t):t)}initParticles(A){let t=A;for(;t;)t.texture=this.textures[this.index],++this.index>=this.textures.length&&(this.index=0),t=t.next}}Mi.type="textureOrdered",Mi.editorConfig=null;const lt=new m.Point,js=["E","LN2","LN10","LOG2E","LOG10E","PI","SQRT1_2","SQRT2","abs","acos","acosh","asin","asinh","atan","atanh","atan2","cbrt","ceil","cos","cosh","exp","expm1","floor","fround","hypot","log","log1p","log10","log2","max","min","pow","random","round","sign","sin","sinh","sqrt","tan","tanh"],Lg=new RegExp(["[01234567890\\.\\*\\-\\+\\/\\(\\)x ,]"].concat(js).join("|"),"g");function Ug(e){const A=e.match(Lg);for(let t=A.length-1;t>=0;--t)js.indexOf(A[t])>=0&&(A[t]=`Math.${A[t]}`);return e=A.join(""),new Function("x",`return ${e};`)}class Ri{constructor(A){if(this.order=J.Late,A.path)if(typeof A.path=="function")this.path=A.path;else try{this.path=Ug(A.path)}catch{this.path=null}else this.path=t=>t;this.list=new Jt(!1),this.list.reset(mA.createList(A.speed)),this.minMult=A.minMult??1}initParticles(A){let t=A;for(;t;){t.config.initRotation=t.rotation,t.config.initPosition?t.config.initPosition.copyFrom(t.position):t.config.initPosition=new m.Point(t.x,t.y),t.config.movement=0;const i=Math.random()*(1-this.minMult)+this.minMult;t.config.speedMult=i,t=t.next}}updateParticle(A,t){const i=this.list.interpolate(A.agePercent)*A.config.speedMult;A.config.movement+=i*t,lt.x=A.config.movement,lt.y=this.path(lt.x),FA(A.config.initRotation,lt),A.position.x=A.config.initPosition.x+lt.x,A.position.y=A.config.initPosition.y+lt.y}}Ri.type="movePath",Ri.editorConfig=null;class Fi{constructor(){this.order=J.Spawn}initParticles(A){}}Fi.type="spawnPoint",Fi.editorConfig=null;class Gi{constructor(A){this.order=J.Normal,this.textures=A.textures.map(t=>typeof t=="string"?Pt(t):t)}initParticles(A){let t=A;for(;t;){const i=Math.floor(Math.random()*this.textures.length);t.texture=this.textures[i],t=t.next}}}Gi.type="textureRandom",Gi.editorConfig=null;class _i{constructor(A){this.order=J.Normal,this.minStart=A.minStart*DA,this.maxStart=A.maxStart*DA,this.minSpeed=A.minSpeed*DA,this.maxSpeed=A.maxSpeed*DA,this.accel=A.accel*DA}initParticles(A){let t=A;for(;t;)this.minStart===this.maxStart?t.rotation+=this.maxStart:t.rotation+=Math.random()*(this.maxStart-this.minStart)+this.minStart,t.config.rotSpeed=Math.random()*(this.maxSpeed-this.minSpeed)+this.minSpeed,t=t.next}updateParticle(A,t){if(this.accel){const i=A.config.rotSpeed;A.config.rotSpeed+=this.accel*t,A.rotation+=(A.config.rotSpeed+i)/2*t}else A.rotation+=A.config.rotSpeed*t}}_i.type="rotation",_i.editorConfig=null;class Ni{constructor(A){this.order=J.Normal,this.min=A.min*DA,this.max=A.max*DA}initParticles(A){let t=A;for(;t;)this.min===this.max?t.rotation+=this.max:t.rotation+=Math.random()*(this.max-this.min)+this.min,t=t.next}}Ni.type="rotationStatic",Ni.editorConfig=null;class Hi{constructor(A){this.order=J.Late+1,this.rotation=(A.rotation||0)*DA}initParticles(A){let t=A;for(;t;)t.rotation=this.rotation,t=t.next}}Hi.type="noRotation",Hi.editorConfig=null;class Li{constructor(A){this.order=J.Normal,this.list=new Jt(!1),this.list.reset(mA.createList(A.scale)),this.minMult=A.minMult??1}initParticles(A){let t=A;for(;t;){const i=Math.random()*(1-this.minMult)+this.minMult;t.config.scaleMult=i,t.scale.x=t.scale.y=this.list.first.value*i,t=t.next}}updateParticle(A){A.scale.x=A.scale.y=this.list.interpolate(A.agePercent)*A.config.scaleMult}}Li.type="scale",Li.editorConfig=null;class Ui{constructor(A){this.order=J.Normal,this.min=A.min,this.max=A.max}initParticles(A){let t=A;for(;t;){const i=Math.random()*(this.max-this.min)+this.min;t.scale.x=t.scale.y=i,t=t.next}}}Ui.type="scaleStatic",Ui.editorConfig=null;class uA{static registerShape(A,t){uA.shapes[t||A.type]=A}constructor(A){this.order=J.Spawn;const t=uA.shapes[A.type];if(!t)throw new Error(`No shape found with type '${A.type}'`);this.shape=new t(A.data)}initParticles(A){let t=A;for(;t;)this.shape.getRandPos(t),t=t.next}}uA.type="spawnShape",uA.editorConfig=null,uA.shapes={},uA.registerShape(di),uA.registerShape(pi),uA.registerShape(Qe),uA.registerShape(Qe,"circle");class Oi{constructor(A){this.order=J.Normal,this.texture=typeof A.texture=="string"?Pt(A.texture):A.texture}initParticles(A){let t=A;for(;t;)t.texture=this.texture,t=t.next}}Oi.type="textureSingle",Oi.editorConfig=null;class Ti{constructor(A){this.order=J.Late,this.list=new Jt(!1),this.list.reset(mA.createList(A.speed)),this.minMult=A.minMult??1}initParticles(A){let t=A;for(;t;){const i=Math.random()*(1-this.minMult)+this.minMult;t.config.speedMult=i,t.config.velocity?t.config.velocity.set(this.list.first.value*i,0):t.config.velocity=new m.Point(this.list.first.value*i,0),FA(t.rotation,t.config.velocity),t=t.next}}updateParticle(A,t){const i=this.list.interpolate(A.agePercent)*A.config.speedMult,n=A.config.velocity;kg(n),qs(n,i),A.x+=n.x*t,A.y+=n.y*t}}Ti.type="moveSpeed",Ti.editorConfig=null;class Pi{constructor(A){this.order=J.Late,this.min=A.min,this.max=A.max}initParticles(A){let t=A;for(;t;){const i=Math.random()*(this.max-this.min)+this.min;t.config.velocity?t.config.velocity.set(i,0):t.config.velocity=new m.Point(i,0),FA(t.rotation,t.config.velocity),t=t.next}}updateParticle(A,t){const i=A.config.velocity;A.x+=i.x*t,A.y+=i.y*t}}Pi.type="moveSpeedStatic",Pi.editorConfig=null;class Ji extends m.Sprite{constructor(A){super(),this.prevChild=this.nextChild=null,this.emitter=A,this.config={},this.anchor.x=this.anchor.y=.5,this.maxLife=0,this.age=0,this.agePercent=0,this.oneOverLife=0,this.next=null,this.prev=null,this.init=this.init,this.kill=this.kill}init(A){this.maxLife=A,this.age=this.agePercent=0,this.rotation=0,this.position.x=this.position.y=0,this.scale.x=this.scale.y=1,this.tint=16777215,this.alpha=1,this.oneOverLife=1/this.maxLife,this.visible=!0}kill(){this.emitter.recycle(this)}destroy(){this.parent&&this.parent.removeChild(this),this.emitter=this.next=this.prev=null,super.destroy()}}const Ki=m.Ticker.shared,zA=Symbol("Position particle per emitter position");class T{static registerBehavior(A){T.knownBehaviors[A.type]=A}constructor(A,t){this.initBehaviors=[],this.updateBehaviors=[],this.recycleBehaviors=[],this.minLifetime=0,this.maxLifetime=0,this.customEase=null,this._frequency=1,this.spawnChance=1,this.maxParticles=1e3,this.emitterLifetime=-1,this.spawnPos=new m.Point,this.particlesPerWave=1,this.rotation=0,this.ownerPos=new m.Point,this._prevEmitterPos=new m.Point,this._prevPosIsValid=!1,this._posChanged=!1,this._parent=null,this.addAtBack=!1,this.particleCount=0,this._emit=!1,this._spawnTimer=0,this._emitterLife=-1,this._activeParticlesFirst=null,this._activeParticlesLast=null,this._poolFirst=null,this._origConfig=null,this._autoUpdate=!1,this._destroyWhenComplete=!1,this._completeCallback=null,this.parent=A,t&&this.init(t),this.recycle=this.recycle,this.update=this.update,this.rotate=this.rotate,this.updateSpawnPos=this.updateSpawnPos,this.updateOwnerPos=this.updateOwnerPos}get frequency(){return this._frequency}set frequency(A){typeof A=="number"&&A>0?this._frequency=A:this._frequency=1}get parent(){return this._parent}set parent(A){this.cleanup(),this._parent=A}init(A){if(!A)return;this.cleanup(),this._origConfig=A,this.minLifetime=A.lifetime.min,this.maxLifetime=A.lifetime.max,A.ease?this.customEase=typeof A.ease=="function"?A.ease:Zs(A.ease):this.customEase=null,this.particlesPerWave=1,A.particlesPerWave&&A.particlesPerWave>1&&(this.particlesPerWave=A.particlesPerWave),this.frequency=A.frequency,this.spawnChance=typeof A.spawnChance=="number"&&A.spawnChance>0?A.spawnChance:1,this.emitterLifetime=A.emitterLifetime||-1,this.maxParticles=A.maxParticles>0?A.maxParticles:1e3,this.addAtBack=!!A.addAtBack,this.rotation=0,this.ownerPos.set(0),A.pos?this.spawnPos.copyFrom(A.pos):this.spawnPos.set(0),this._prevEmitterPos.copyFrom(this.spawnPos),this._prevPosIsValid=!1,this._spawnTimer=0,this.emit=A.emit===void 0?!0:!!A.emit,this.autoUpdate=!!A.autoUpdate;const t=A.behaviors.map(i=>{const n=T.knownBehaviors[i.type];return n?new n(i.config):(console.error(`Unknown behavior: ${i.type}`),null)}).filter(i=>!!i);t.push(zA),t.sort((i,n)=>i===zA?n.order===J.Spawn?1:-1:n===zA?i.order===J.Spawn?-1:1:i.order-n.order),this.initBehaviors=t.slice(),this.updateBehaviors=t.filter(i=>i!==zA&&i.updateParticle),this.recycleBehaviors=t.filter(i=>i!==zA&&i.recycleParticle)}getBehavior(A){return T.knownBehaviors[A]&&this.initBehaviors.find(t=>t instanceof T.knownBehaviors[A])||null}fillPool(A){for(;A>0;--A){const t=new Ji(this);t.next=this._poolFirst,this._poolFirst=t}}recycle(A,t=!1){for(let i=0;i<this.recycleBehaviors.length;++i)this.recycleBehaviors[i].recycleParticle(A,!t);A.next&&(A.next.prev=A.prev),A.prev&&(A.prev.next=A.next),A===this._activeParticlesLast&&(this._activeParticlesLast=A.prev),A===this._activeParticlesFirst&&(this._activeParticlesFirst=A.next),A.prev=null,A.next=this._poolFirst,this._poolFirst=A,A.parent&&A.parent.removeChild(A),--this.particleCount}rotate(A){if(this.rotation===A)return;const t=A-this.rotation;this.rotation=A,FA(t,this.spawnPos),this._posChanged=!0}updateSpawnPos(A,t){this._posChanged=!0,this.spawnPos.x=A,this.spawnPos.y=t}updateOwnerPos(A,t){this._posChanged=!0,this.ownerPos.x=A,this.ownerPos.y=t}resetPositionTracking(){this._prevPosIsValid=!1}get emit(){return this._emit}set emit(A){this._emit=!!A,this._emitterLife=this.emitterLifetime}get autoUpdate(){return this._autoUpdate}set autoUpdate(A){this._autoUpdate&&!A?Ki.remove(this.update,this):!this._autoUpdate&&A&&Ki.add(this.update,this),this._autoUpdate=!!A}playOnceAndDestroy(A){this.autoUpdate=!0,this.emit=!0,this._destroyWhenComplete=!0,this._completeCallback=A}playOnce(A){this.emit=!0,this._completeCallback=A}update(A){if(typeof A!="number"&&(A=A.deltaTime),this._autoUpdate&&(A=Ki.elapsedMS*.001),!this._parent)return;for(let a=this._activeParticlesFirst,r;a;a=r)if(r=a.next,a.age+=A,a.age>a.maxLife||a.age<0)this.recycle(a);else{let h=a.age*a.oneOverLife;this.customEase&&(this.customEase.length===4?h=this.customEase(h,0,1,1):h=this.customEase(h)),a.agePercent=h;for(let l=0;l<this.updateBehaviors.length;++l)if(this.updateBehaviors[l].updateParticle(a,A)){this.recycle(a);break}}let t,i;this._prevPosIsValid&&(t=this._prevEmitterPos.x,i=this._prevEmitterPos.y);const n=this.ownerPos.x+this.spawnPos.x,s=this.ownerPos.y+this.spawnPos.y;if(this._emit)for(this._spawnTimer-=A<0?0:A;this._spawnTimer<=0;){if(this._emitterLife>=0&&(this._emitterLife-=this._frequency,this._emitterLife<=0)){this._spawnTimer=0,this._emitterLife=0,this.emit=!1;break}if(this.particleCount>=this.maxParticles){this._spawnTimer+=this._frequency;continue}let a,r;if(this._prevPosIsValid&&this._posChanged){const u=1+this._spawnTimer/A;a=(n-t)*u+t,r=(s-i)*u+i}else a=n,r=s;let h=null,l=null;for(let u=Math.min(this.particlesPerWave,this.maxParticles-this.particleCount),o=0;o<u;++o){if(this.spawnChance<1&&Math.random()>=this.spawnChance)continue;let g;if(this.minLifetime===this.maxLifetime?g=this.minLifetime:g=Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,-this._spawnTimer>=g)continue;let c;this._poolFirst?(c=this._poolFirst,this._poolFirst=this._poolFirst.next,c.next=null):c=new Ji(this),c.init(g),this.addAtBack?this._parent.addChildAt(c,0):this._parent.addChild(c),h?(l.next=c,c.prev=l,l=c):l=h=c,++this.particleCount}if(h){this._activeParticlesLast?(this._activeParticlesLast.next=h,h.prev=this._activeParticlesLast,this._activeParticlesLast=l):(this._activeParticlesFirst=h,this._activeParticlesLast=l);for(let u=0;u<this.initBehaviors.length;++u){const o=this.initBehaviors[u];if(o===zA)for(let g=h,c;g;g=c){c=g.next,this.rotation!==0&&(FA(this.rotation,g.position),g.rotation+=this.rotation),g.position.x+=a,g.position.y+=r,g.age+=-this._spawnTimer;let E=g.age*g.oneOverLife;this.customEase&&(this.customEase.length===4?E=this.customEase(E,0,1,1):E=this.customEase(E)),g.agePercent=E}else o.initParticles(h)}for(let u=h,o;u;u=o){o=u.next;for(let g=0;g<this.updateBehaviors.length;++g)if(this.updateBehaviors[g].updateParticle(u,-this._spawnTimer)){this.recycle(u);break}}}this._spawnTimer+=this._frequency}if(this._posChanged&&(this._prevEmitterPos.x=n,this._prevEmitterPos.y=s,this._prevPosIsValid=!0,this._posChanged=!1),!this._emit&&!this._activeParticlesFirst){if(this._completeCallback){const a=this._completeCallback;this._completeCallback=null,a()}this._destroyWhenComplete&&this.destroy()}}emitNow(){const A=this.ownerPos.x+this.spawnPos.x,t=this.ownerPos.y+this.spawnPos.y;let i=null,n=null;for(let s=Math.min(this.particlesPerWave,this.maxParticles-this.particleCount),a=0;a<s;++a){if(this.spawnChance<1&&Math.random()>=this.spawnChance)continue;let r;this._poolFirst?(r=this._poolFirst,this._poolFirst=this._poolFirst.next,r.next=null):r=new Ji(this);let h;this.minLifetime===this.maxLifetime?h=this.minLifetime:h=Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,r.init(h),this.addAtBack?this._parent.addChildAt(r,0):this._parent.addChild(r),i?(n.next=r,r.prev=n,n=r):n=i=r,++this.particleCount}if(i){this._activeParticlesLast?(this._activeParticlesLast.next=i,i.prev=this._activeParticlesLast,this._activeParticlesLast=n):(this._activeParticlesFirst=i,this._activeParticlesLast=n);for(let s=0;s<this.initBehaviors.length;++s){const a=this.initBehaviors[s];if(a===zA)for(let r=i,h;r;r=h)h=r.next,this.rotation!==0&&(FA(this.rotation,r.position),r.rotation+=this.rotation),r.position.x+=A,r.position.y+=t;else a.initParticles(i)}}}cleanup(){let A,t;for(A=this._activeParticlesFirst;A;A=t)t=A.next,this.recycle(A,!0);this._activeParticlesFirst=this._activeParticlesLast=null,this.particleCount=0}get destroyed(){return!(this._parent&&this.initBehaviors.length)}destroy(){this.autoUpdate=!1,this.cleanup();let A;for(let t=this._poolFirst;t;t=A)A=t.next,t.destroy();this._poolFirst=this._parent=this.spawnPos=this.ownerPos=this.customEase=this._completeCallback=null,this.initBehaviors.length=this.updateBehaviors.length=this.recycleBehaviors.length=0}}T.knownBehaviors={},T.registerBehavior(yi),T.registerBehavior(wi),T.registerBehavior(mi),T.registerBehavior(Di),T.registerBehavior(vi),T.registerBehavior(Si),T.registerBehavior(xi),T.registerBehavior(bi),T.registerBehavior(ki),T.registerBehavior(Mi),T.registerBehavior(Ri),T.registerBehavior(Fi),T.registerBehavior(Gi),T.registerBehavior(_i),T.registerBehavior(Ni),T.registerBehavior(Hi),T.registerBehavior(Li),T.registerBehavior(Ui),T.registerBehavior(uA),T.registerBehavior(Oi),T.registerBehavior(Ti),T.registerBehavior(Pi);class Og extends Ws{constructor(){super(...arguments),this.elapsed=Date.now()}async onMount(A){await super.onMount(A);const{props:t}=A,i=t.context.tick;this.emitter=new T(this,t.config),this.subscriptionTick=i.observable.subscribe(n=>{if(!this.emitter)return;const s=Date.now();this.emitter.update((s-this.elapsed)*.001),this.elapsed=s})}onUpdate(A){}async onDestroy(A,t){const i=async()=>{var n;(n=this.emitter)==null||n.destroy(),this.emitter=null,this.subscriptionTick.unsubscribe(),t()};await super.onDestroy(A,i)}}nA("ParticlesEmitter",Og);function Tg(e){return oA("ParticlesEmitter",e)}const $s=console.log;class Pg extends BA(m.Sprite){constructor(){super(...arguments),this.currentAnimation=null,this.time=0,this.frameIndex=0,this.animations=new Map,this.subscriptionSheet=[],this.sheetParams={},this.sheetCurrentAnimation="stand",this.app=null,this.currentAnimationContainer=null}get renderer(){var A;return(A=this.app)==null?void 0:A.renderer}async detectImageDimensions(A){if(!A||typeof A!="string"||A.trim()==="")throw new Error(`Invalid image path provided to detectImageDimensions: ${A}`);const t=await m.Assets.load(A);return{width:t.width,height:t.height}}async createTextures(A){let{width:t,height:i,framesHeight:n,framesWidth:s,image:a,offset:r}=A;if(!a||typeof a!="string"||a.trim()==="")return console.warn("Invalid image path provided to createTextures:",a),[];const h=await m.Assets.load(a);(!t||t<=0)&&(t=h.width,A.width=t),(!i||i<=0)&&(i=h.height,A.height=i);const l=A.spriteWidth,u=A.spriteHeight,o=[],g=r&&r.x||0,c=r&&r.y||0;for(let E=0;E<n;E++){o[E]=[];for(let C=0;C<s;C++){const d=C*l+g,f=E*u+c;if(f>i)throw $s(`Warning, there is a problem with the height of the "${this.id}" spritesheet. When cutting into frames, the frame exceeds the height of the image.`);if(d>t)throw $s(`Warning, there is a problem with the width of the "${this.id}" spritesheet. When cutting into frames, the frame exceeds the width of the image.`);o[E].push(new m.Texture({source:h.source,frame:new m.Rectangle(d,f,l,u)}))}}return o}async createAnimations(){const{textures:A}=this.spritesheet;if(A)for(let t in A){const s={...["width","height","framesHeight","framesWidth","rectWidth","rectHeight","offset","image","sound"].reduce((C,d)=>({...C,[d]:this.spritesheet[d]}),{}),...A[t]},{rectWidth:a,width:r=0,framesWidth:h=1,rectHeight:l,height:u=0,framesHeight:o=1,image:g}=s;let c=r,E=u;if(g&&(!c||c<=0||!E||E<=0)){const C=await this.detectImageDimensions(g);(!c||c<=0)&&(c=C.width,s.width=c),(!E||E<=0)&&(E=C.height,s.height=E)}s.spriteWidth=a||c/h,s.spriteHeight=l||E/o,this.animations.set(t,{frames:await this.createTextures(s),name:t,animations:A[t].animations,params:[],data:s,sprites:[]})}}async onMount(A){var h;const{props:t,propObservables:i}=A,n=t.context.tick,s=t.sheet??{},a=((h=t.sheet)==null?void 0:h.definition)??{};if(this.app=t.context.app(),s!=null&&s.onFinish&&(this.onFinish=s.onFinish),this.subscriptionTick=n.observable.subscribe(l=>{this.destroyed||this.update(l)}),a&&(this.spritesheet=a.value??a,await this.createAnimations()),s.params)for(let l in i==null?void 0:i.sheet.params){const u=i==null?void 0:i.sheet.params[l];W(u)?this.subscriptionSheet.push(u.observable.subscribe(o=>{this.animations.size!=0&&this.play(this.sheetCurrentAnimation,[{[l]:o}])})):this.play(this.sheetCurrentAnimation,[{[l]:u}])}const r=MA(()=>{const{x:l,y:u}=i??{};if(!l||!u)return!1;const o=l,g=u,c=Ci(o)&&o.animatedState().current!==o.animatedState().end,E=Ci(g)&&g.animatedState().current!==g.animatedState().end;return c||E});$(()=>{const l=r();this.isMounted&&(l?this.sheetCurrentAnimation="walk":this.sheetCurrentAnimation="stand",this.spritesheet&&this.play(this.sheetCurrentAnimation,[this.sheetParams]))}),super.onMount(A)}async onUpdate(A){var s,a,r;if(this.destroyed)return;super.onUpdate(A);const t=async h=>{var o;if(!h||typeof h!="string"||h.trim()==="")return console.warn("Invalid image path provided to setTexture:",h),null;const l=(o=this.fullProps.loader)==null?void 0:o.onProgress,u=await m.Assets.load(h,g=>{var c;if(l&&l(g),g==1){const E=(c=this.fullProps.loader)==null?void 0:c.onComplete;E&&setTimeout(()=>{E(u)})}});return u},i=A.sheet,n=((s=A.sheet)==null?void 0:s.definition)??{};if((n==null?void 0:n.type)==="reset"&&(this.spritesheet=n.value??n,await this.resetAnimations()),i!=null&&i.params&&(this.sheetParams=i==null?void 0:i.params),i!=null&&i.playing&&this.isMounted&&(this.sheetCurrentAnimation=i==null?void 0:i.playing,this.play(this.sheetCurrentAnimation,[this.sheetParams])),A.hitbox&&(this.hitbox=A.hitbox.value??A.hitbox),A.scaleMode)this.baseTexture.scaleMode=A.scaleMode;else if(A.image&&this.fullProps.rectangle===void 0){const h=await t(this.fullProps.image);h&&(this.texture=h)}else A.texture&&(wA(A.texture)?(A.texture.componentInstance.subjectInit.subscribe(),this.texture=(a=this.renderer)==null?void 0:a.generateTexture(A.texture.componentInstance)):this.texture=A.texture);if(A.rectangle!==void 0){const{x:h,y:l,width:u,height:o}=((r=A.rectangle)==null?void 0:r.value)??A.rectangle,g=await t(this.fullProps.image);g&&(this.texture=new m.Texture({source:g.source,frame:new m.Rectangle(h,l,u,o)}))}}async onDestroy(A,t){const i=async()=>{this.subscriptionSheet.forEach(n=>n.unsubscribe()),this.subscriptionTick.unsubscribe(),this.currentAnimationContainer&&this.parent instanceof m.Container&&this.parent.removeChild(this.currentAnimationContainer),t&&t()};await super.onDestroy(A,i)}has(A){return this.animations.has(A)}get(A){return this.animations.get(A)}isPlaying(A){return A?this.currentAnimation==null?!1:this.currentAnimation.name==A:!!this.currentAnimation}stop(){this.currentAnimation=null}play(A,t=[]){var h;const i=(h=this.currentAnimation)==null?void 0:h.params;if(this.isPlaying(A)&&ne(t,i||[]))return;const n=this.get(A);if(!n)throw new Error(`Impossible to play the ${A} animation because it doesn't exist on the "${this.id}" spritesheet`);const s=structuredClone(t);this.removeChildren(),n.sprites=[],this.currentAnimation=n,this.currentAnimation.params=s,this.time=0,this.frameIndex=0;let a=n.animations;a=Kn(a)?a(...s):a,this.currentAnimationContainer=new m.Container;for(let l of a){const u=new m.Sprite;for(let o of l)this.currentAnimation.sprites.push(o);this.currentAnimationContainer.addChild(u)}const r=this.currentAnimation.data.sound;r&&new qA.Howl({src:r,autoplay:!0,loop:!1,volume:1}),this.update({deltaRatio:1})}async resetAnimations(){this.stop(),this.animations.clear(),this.currentAnimation=null,this.currentAnimationContainer=null,this.time=0,this.frameIndex=0,this.removeChildren(),this.spritesheet&&(await this.createAnimations(),this.play(this.sheetCurrentAnimation,[this.sheetParams]))}update({deltaRatio:A}){if(!this.isPlaying()||!this.currentAnimation||!this.currentAnimationContainer)return;const t=this,{frames:i,sprites:n,data:s}=this.currentAnimation;let a=n[this.frameIndex];const r=n[this.frameIndex+1];for(let h of this.currentAnimationContainer.children){let l=function(C,d){const w=u(d||C);w!==void 0&&(t[C]=w)};if(!a||a.frameY==null||a.frameX==null)continue;this.texture=i[a.frameY][a.frameX];const u=C=>a[C]??s[C]??this.spritesheet[C],o=C=>{const d=u(C);d&&this[C].set(...d)};this.applyTransform&&(a={...a,...this.applyTransform(a,s,this.spritesheet)});const g=u("spriteRealSize"),c=typeof g=="number"?g:g==null?void 0:g.height;typeof g=="number"||g==null||g.width;const E=()=>{if(c&&this.hitbox){const{spriteWidth:C,spriteHeight:d}=s,f=(C-this.hitbox.w)/2/C,w=(d-c)/2,S=(d-this.hitbox.h-w)/d;this.anchor.set(f,S)}};a.sound,E(),o("anchor"),o("scale"),o("skew"),o("pivot"),l("alpha","opacity"),l("x"),l("y"),l("angle"),l("rotation"),l("visible")}if(!r){this.time=0,this.frameIndex=0,this.onFinish&&n.length>1&&this.onFinish();return}this.time+=A??1,this.time>=r.time&&this.frameIndex++}}nA("Sprite",Pg);const Ao=e=>oA("Sprite",e);function Jg(e){const A={audioprocess:null,canplay:null,canplaythrough:null,complete:null,durationchange:null,emptied:null,ended:null,loadeddata:null,loadedmetadata:null,pause:null,play:null,playing:null,progress:null,ratechange:null,seeked:null,seeking:null,stalled:null,suspend:null,timeupdate:null,volumechange:null,waiting:null},t=Y(null),i=Ai(e),{play:n,loop:s,muted:a}=i({play:{type:Boolean,default:!0},loop:{type:Boolean,default:!1},muted:{type:Boolean,default:!1}});return $(()=>{const r=t(),h=n();r&&h!==void 0&&(h?r.play():r.pause()),r&&s()&&(r.loop=s()),r&&a()&&(r.muted=a())}),fi(()=>()=>{for(let r in A)A[r]&&t().removeEventListener(r,A[r])}),RA(Ao,{...e,image:e.src,loader:{onComplete:r=>{var l;const h=r.source.resource;t.set(h),(l=e==null?void 0:e.loader)!=null&&l.onComplete&&e.loader.onComplete(r);for(let u in A)if(e[u]){const o=g=>{e[u](g)};A[u]=o,h.addEventListener(u,o)}}}})}class Kg extends BA(m.Text){constructor(){super(...arguments),this.fullText="",this.currentIndex=0,this.typewriterSpeed=1,this._wordWrapWidth=0,this.typewriterOptions={},this.lastSoundTime=0,this.soundDuration=0}async onMount(A,t){const{props:i}=A;await super.onMount(A,t);const n=i.context.tick;i.text&&i.typewriter&&(this.fullText=i.text,this.text="",this.currentIndex=0,i.typewriter&&(this.typewriterOptions=i.typewriter,this.typewriterOptions.skip&&Tt(this.typewriterOptions.skip)&&Be(this.typewriterOptions.skip,()=>{this.skipTypewriter()}),this.typewriterOptions.sound&&this.initializeTypewriterSound()),this.updateLayout()),this.subscriptionTick=n.observable.subscribe(()=>{i.typewriter&&this.typewriterEffect()})}onUpdate(A){if(super.onUpdate(A),A.typewriter&&A.typewriter&&(this.typewriterOptions=A.typewriter,A.typewriter.sound&&this.initializeTypewriterSound()),A.text!==void 0&&(this.text=""+A.text),A.text!==void 0&&A.text!==this.fullText&&this.fullProps.typewriter&&(this.text="",this.currentIndex=0,this.fullText=A.text,this.updateLayout()),A.style){for(const t in A.style)this.style[t]=A.style[t];A.style.wordWrapWidth&&(this._wordWrapWidth=A.style.wordWrapWidth)}A.color&&(this.style.fill=A.color),A.size&&(this.style.fontSize=A.size),A.fontFamily&&(this.style.fontFamily=A.fontFamily),this.updateLayout()}get onCompleteCallback(){return this.typewriterOptions.onComplete}initializeTypewriterSound(){var A;(A=this.typewriterOptions.sound)!=null&&A.src&&(this.typewriterSound=new qA.Howl({src:[this.typewriterOptions.sound.src],volume:this.typewriterOptions.sound.volume??.5,rate:this.typewriterOptions.sound.rate??1,preload:!0,onload:()=>{var t;if(this.typewriterSound){const i=this.typewriterSound.duration(),n=((t=this.typewriterOptions.sound)==null?void 0:t.rate)??1;this.soundDuration=i/n*1e3}}}))}playTypewriterSound(A){!this.typewriterSound||!this.typewriterOptions.sound||this.soundDuration>0&&A-this.lastSoundTime<this.soundDuration||(this.typewriterSound.play(),this.lastSoundTime=A)}updateLayout(){this._wordWrapWidth?this.setWidth(this._wordWrapWidth):this.setWidth(this.width),this.setHeight(this.height)}typewriterEffect(){if(this.currentIndex<this.fullText.length){const A=Math.min(this.currentIndex+(this.typewriterOptions.speed??1),this.fullText.length);this.text=this.fullText.slice(0,A),this.currentIndex=A,this.typewriterOptions.sound&&this.playTypewriterSound(Date.now()),this.updateLayout(),this.currentIndex===this.fullText.length&&this.onCompleteCallback&&this.onCompleteCallback()}}skipTypewriter(){this.skipSignal&&this.skipSignal(),this.text=this.fullText,this.currentIndex=this.fullText.length,this.updateLayout()}async onDestroy(A,t){const i=async()=>{this.subscriptionTick&&this.subscriptionTick.unsubscribe(),this.typewriterSound&&(this.typewriterSound.stop(),this.typewriterSound.unload(),this.typewriterSound=void 0),t&&t()};await super.onDestroy(A,i)}}nA("Text",Kg);function to(e){return oA("Text",e)}class Yg extends BA(m.TilingSprite){onUpdate(A){super.onUpdate(A),A.image&&(this.texture=m.Texture.from(A.image)),A.tileScale&&this.tileScale.set(A.tileScale.x,A.tileScale.y),A.tilePosition&&this.tilePosition.set(A.tilePosition.x,A.tilePosition.y),A.width!==void 0&&(this.width=A.width),A.height!==void 0&&(this.height=A.height)}}nA("TilingSprite",Yg);function Wg(e){return oA("TilingSprite",e)}var Xg=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Vg(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var eo={exports:{}};(function(e,A){(function(){var t,i;i=function(n){return e.exports=n},t={linear:function(n,s,a,r){return a*n/r+s},easeInQuad:function(n,s,a,r){return a*(n/=r)*n+s},easeOutQuad:function(n,s,a,r){return-a*(n/=r)*(n-2)+s},easeInOutQuad:function(n,s,a,r){return(n/=r/2)<1?a/2*n*n+s:-a/2*(--n*(n-2)-1)+s},easeInCubic:function(n,s,a,r){return a*(n/=r)*n*n+s},easeOutCubic:function(n,s,a,r){return a*((n=n/r-1)*n*n+1)+s},easeInOutCubic:function(n,s,a,r){return(n/=r/2)<1?a/2*n*n*n+s:a/2*((n-=2)*n*n+2)+s},easeInQuart:function(n,s,a,r){return a*(n/=r)*n*n*n+s},easeOutQuart:function(n,s,a,r){return-a*((n=n/r-1)*n*n*n-1)+s},easeInOutQuart:function(n,s,a,r){return(n/=r/2)<1?a/2*n*n*n*n+s:-a/2*((n-=2)*n*n*n-2)+s},easeInQuint:function(n,s,a,r){return a*(n/=r)*n*n*n*n+s},easeOutQuint:function(n,s,a,r){return a*((n=n/r-1)*n*n*n*n+1)+s},easeInOutQuint:function(n,s,a,r){return(n/=r/2)<1?a/2*n*n*n*n*n+s:a/2*((n-=2)*n*n*n*n+2)+s},easeInSine:function(n,s,a,r){return-a*Math.cos(n/r*(Math.PI/2))+a+s},easeOutSine:function(n,s,a,r){return a*Math.sin(n/r*(Math.PI/2))+s},easeInOutSine:function(n,s,a,r){return-a/2*(Math.cos(Math.PI*n/r)-1)+s},easeInExpo:function(n,s,a,r){return n===0?s:a*Math.pow(2,10*(n/r-1))+s},easeOutExpo:function(n,s,a,r){return n===r?s+a:a*(-Math.pow(2,-10*n/r)+1)+s},easeInOutExpo:function(n,s,a,r){return(n/=r/2)<1?a/2*Math.pow(2,10*(n-1))+s:a/2*(-Math.pow(2,-10*--n)+2)+s},easeInCirc:function(n,s,a,r){return-a*(Math.sqrt(1-(n/=r)*n)-1)+s},easeOutCirc:function(n,s,a,r){return a*Math.sqrt(1-(n=n/r-1)*n)+s},easeInOutCirc:function(n,s,a,r){return(n/=r/2)<1?-a/2*(Math.sqrt(1-n*n)-1)+s:a/2*(Math.sqrt(1-(n-=2)*n)+1)+s},easeInElastic:function(n,s,a,r){var h,l,u;return u=1.70158,l=0,h=a,n===0||(n/=r),l||(l=r*.3),h<Math.abs(a)?(h=a,u=l/4):u=l/(2*Math.PI)*Math.asin(a/h),-(h*Math.pow(2,10*(n-=1))*Math.sin((n*r-u)*(2*Math.PI)/l))+s},easeOutElastic:function(n,s,a,r){var h,l,u;return u=1.70158,l=0,h=a,n===0||(n/=r),l||(l=r*.3),h<Math.abs(a)?(h=a,u=l/4):u=l/(2*Math.PI)*Math.asin(a/h),h*Math.pow(2,-10*n)*Math.sin((n*r-u)*(2*Math.PI)/l)+a+s},easeInOutElastic:function(n,s,a,r){var h,l,u;return u=1.70158,l=0,h=a,n===0||(n/=r/2),l||(l=r*.44999999999999996),h<Math.abs(a)?(h=a,u=l/4):u=l/(2*Math.PI)*Math.asin(a/h),n<1?-.5*(h*Math.pow(2,10*(n-=1))*Math.sin((n*r-u)*(2*Math.PI)/l))+s:h*Math.pow(2,-10*(n-=1))*Math.sin((n*r-u)*(2*Math.PI)/l)*.5+a+s},easeInBack:function(n,s,a,r,h){return h===void 0&&(h=1.70158),a*(n/=r)*n*((h+1)*n-h)+s},easeOutBack:function(n,s,a,r,h){return h===void 0&&(h=1.70158),a*((n=n/r-1)*n*((h+1)*n+h)+1)+s},easeInOutBack:function(n,s,a,r,h){return h===void 0&&(h=1.70158),(n/=r/2)<1?a/2*(n*n*(((h*=1.525)+1)*n-h))+s:a/2*((n-=2)*n*(((h*=1.525)+1)*n+h)+2)+s},easeInBounce:function(n,s,a,r){var h;return h=t.easeOutBounce(r-n,0,a,r),a-h+s},easeOutBounce:function(n,s,a,r){return(n/=r)<.36363636363636365?a*(7.5625*n*n)+s:n<.7272727272727273?a*(7.5625*(n-=.5454545454545454)*n+.75)+s:n<.9090909090909091?a*(7.5625*(n-=.8181818181818182)*n+.9375)+s:a*(7.5625*(n-=.9545454545454546)*n+.984375)+s},easeInOutBounce:function(n,s,a,r){var h;return n<r/2?(h=t.easeInBounce(n*2,0,a,r),h*.5+s):(h=t.easeOutBounce(n*2-r,0,a,r),h*.5+a*.5+s)}},i(t)}).call(Xg)})(eo);var qg=eo.exports;const io=Vg(qg);function fe(e,A){if(e){if(typeof e=="function")return e;if(typeof e=="string")return io[e]}else return io[A]}class Zg{constructor(A){this.viewport=A,this.touches=[],this.addListeners()}addListeners(){this.viewport.eventMode="static",this.viewport.forceHitArea||(this.viewport.hitArea=new m.Rectangle(0,0,this.viewport.worldWidth,this.viewport.worldHeight)),this.viewport.on("pointerdown",this.down,this),this.viewport.options.allowPreserveDragOutside?this.viewport.on("globalpointermove",this.move,this):this.viewport.on("pointermove",this.move,this),this.viewport.on("pointerup",this.up,this),this.viewport.on("pointerupoutside",this.up,this),this.viewport.on("pointercancel",this.up,this),this.viewport.options.allowPreserveDragOutside||this.viewport.on("pointerleave",this.up,this),this.wheelFunction=A=>this.handleWheel(A),this.viewport.options.events.domElement.addEventListener("wheel",this.wheelFunction,{passive:this.viewport.options.passiveWheel}),this.isMouseDown=!1}destroy(){var A;(A=this.viewport.options.events.domElement)==null||A.removeEventListener("wheel",this.wheelFunction)}down(A){if(!(this.viewport.pause||!this.viewport.visible)){if(A.pointerType==="mouse"?this.isMouseDown=!0:this.get(A.pointerId)||this.touches.push({id:A.pointerId,last:null}),this.count()===1){this.last=A.global.clone();const t=this.viewport.plugins.get("decelerate",!0),i=this.viewport.plugins.get("bounce",!0);(!t||!t.isActive())&&(!i||!i.isActive())?this.clickedAvailable=!0:this.clickedAvailable=!1}else this.clickedAvailable=!1;this.viewport.plugins.down(A)&&this.viewport.options.stopPropagation&&A.stopPropagation()}}clear(){this.isMouseDown=!1,this.touches=[],this.last=null}checkThreshold(A){return Math.abs(A)>=this.viewport.threshold}move(A){if(this.viewport.pause||!this.viewport.visible)return;const t=this.viewport.plugins.move(A);if(this.clickedAvailable&&this.last){const i=A.global.x-this.last.x,n=A.global.y-this.last.y;(this.checkThreshold(i)||this.checkThreshold(n))&&(this.clickedAvailable=!1)}t&&this.viewport.options.stopPropagation&&A.stopPropagation()}up(A){if(this.viewport.pause||!this.viewport.visible)return;A.pointerType==="mouse"&&(this.isMouseDown=!1),A.pointerType!=="mouse"&&this.remove(A.pointerId);const t=this.viewport.plugins.up(A);this.clickedAvailable&&this.count()===0&&this.last&&(this.viewport.emit("clicked",{event:A,screen:this.last,world:this.viewport.toWorld(this.last),viewport:this.viewport}),this.clickedAvailable=!1),t&&this.viewport.options.stopPropagation&&A.stopPropagation()}getPointerPosition(A){const t=new m.Point;return this.viewport.options.events.mapPositionToPoint(t,A.clientX,A.clientY),t}handleWheel(A){if(this.viewport.pause||!this.viewport.visible)return;const t=this.viewport.toLocal(this.getPointerPosition(A));this.viewport.left<=t.x&&t.x<=this.viewport.right&&this.viewport.top<=t.y&&t.y<=this.viewport.bottom&&this.viewport.plugins.wheel(A)&&!this.viewport.options.passiveWheel&&A.preventDefault()}pause(){this.touches=[],this.isMouseDown=!1}get(A){for(const t of this.touches)if(t.id===A)return t;return null}remove(A){for(let t=0;t<this.touches.length;t++)if(this.touches[t].id===A){this.touches.splice(t,1);return}}count(){return(this.isMouseDown?1:0)+this.touches.length}}const Kt=["drag","pinch","wheel","follow","mouse-edges","decelerate","animate","bounce","snap-zoom","clamp-zoom","snap","clamp"];class zg{constructor(A){this.viewport=A,this.list=[],this.plugins={}}add(A,t,i=Kt.length){const n=this.plugins[A];n&&n.destroy(),this.plugins[A]=t;const s=Kt.indexOf(A);s!==-1&&Kt.splice(s,1),Kt.splice(i,0,A),this.sort()}get(A,t){var i;return t&&(i=this.plugins[A])!=null&&i.paused?null:this.plugins[A]}update(A){for(const t of this.list)t.update(A)}resize(){for(const A of this.list)A.resize()}reset(){for(const A of this.list)A.reset()}removeAll(){this.list.forEach(A=>{A.destroy()}),this.plugins={},this.sort()}remove(A){var t;this.plugins[A]&&((t=this.plugins[A])==null||t.destroy(),delete this.plugins[A],this.viewport.emit("plugin-remove",A),this.sort())}pause(A){var t;(t=this.plugins[A])==null||t.pause()}resume(A){var t;(t=this.plugins[A])==null||t.resume()}sort(){this.list=[];for(const A of Kt)this.plugins[A]&&this.list.push(this.plugins[A])}down(A){let t=!1;for(const i of this.list)i.down(A)&&(t=!0);return t}move(A){let t=!1;for(const i of this.viewport.plugins.list)i.move(A)&&(t=!0);return t}up(A){let t=!1;for(const i of this.list)i.up(A)&&(t=!0);return t}wheel(A){let t=!1;for(const i of this.list)i.wheel(A)&&(t=!0);return t}}class hA{constructor(A){this.parent=A,this.paused=!1}destroy(){}down(A){return!1}move(A){return!1}up(A){return!1}wheel(A){return!1}update(A){}resize(){}reset(){}pause(){this.paused=!0}resume(){this.paused=!1}}const jg={removeOnInterrupt:!1,ease:"linear",time:1e3};class $g extends hA{constructor(A,t={}){super(A),this.startWidth=null,this.startHeight=null,this.deltaWidth=null,this.deltaHeight=null,this.width=null,this.height=null,this.time=0,this.options=Object.assign({},jg,t),this.options.ease=fe(this.options.ease),this.setupPosition(),this.setupZoom(),this.time=0}setupPosition(){typeof this.options.position<"u"?(this.startX=this.parent.center.x,this.startY=this.parent.center.y,this.deltaX=this.options.position.x-this.parent.center.x,this.deltaY=this.options.position.y-this.parent.center.y,this.keepCenter=!1):this.keepCenter=!0}setupZoom(){this.width=null,this.height=null,typeof this.options.scale<"u"?this.width=this.parent.screenWidth/this.options.scale:typeof this.options.scaleX<"u"||typeof this.options.scaleY<"u"?(typeof this.options.scaleX<"u"&&(this.width=this.parent.screenWidth/this.options.scaleX),typeof this.options.scaleY<"u"&&(this.height=this.parent.screenHeight/this.options.scaleY)):(typeof this.options.width<"u"&&(this.width=this.options.width),typeof this.options.height<"u"&&(this.height=this.options.height)),this.width!==null&&(this.startWidth=this.parent.screenWidthInWorldPixels,this.deltaWidth=this.width-this.startWidth),this.height!==null&&(this.startHeight=this.parent.screenHeightInWorldPixels,this.deltaHeight=this.height-this.startHeight)}down(){return this.options.removeOnInterrupt&&this.parent.plugins.remove("animate"),!1}complete(){this.parent.plugins.remove("animate"),this.width!==null&&this.parent.fitWidth(this.width,this.keepCenter,this.height===null),this.height!==null&&this.parent.fitHeight(this.height,this.keepCenter,this.width===null),!this.keepCenter&&this.options.position&&this.parent.moveCenter(this.options.position),this.parent.emit("animate-end",this.parent),this.options.callbackOnComplete&&this.options.callbackOnComplete(this.parent)}update(A){if(this.paused)return;this.time+=A;const t=new m.Point(this.parent.scale.x,this.parent.scale.y);if(this.time>=this.options.time){const i=this.parent.width,n=this.parent.height;this.complete(),(i!==this.parent.width||n!==this.parent.height)&&this.parent.emit("zoomed",{viewport:this.parent,original:t,type:"animate"})}else{const i=this.options.ease(this.time,0,1,this.options.time);if(this.width!==null){const n=this.startWidth,s=this.deltaWidth;this.parent.fitWidth(n+s*i,this.keepCenter,this.height===null)}if(this.height!==null){const n=this.startHeight,s=this.deltaHeight;this.parent.fitHeight(n+s*i,this.keepCenter,this.width===null)}if(this.width===null?this.parent.scale.x=this.parent.scale.y:this.height===null&&(this.parent.scale.y=this.parent.scale.x),!this.keepCenter){const n=this.startX,s=this.startY,a=this.deltaX,r=this.deltaY,h=new m.Point(this.parent.x,this.parent.y);this.parent.moveCenter(n+a*i,s+r*i),this.parent.emit("moved",{viewport:this.parent,original:h,type:"animate"})}(this.width||this.height)&&this.parent.emit("zoomed",{viewport:this.parent,original:t,type:"animate"})}}}const Ah={sides:"all",friction:.5,time:150,ease:"easeInOutSine",underflow:"center",bounceBox:null};class th extends hA{constructor(A,t={}){super(A),this.options=Object.assign({},Ah,t),this.ease=fe(this.options.ease,"easeInOutSine"),this.options.sides?this.options.sides==="all"?this.top=this.bottom=this.left=this.right=!0:this.options.sides==="horizontal"?(this.right=this.left=!0,this.top=this.bottom=!1):this.options.sides==="vertical"?(this.left=this.right=!1,this.top=this.bottom=!0):(this.top=this.options.sides.indexOf("top")!==-1,this.bottom=this.options.sides.indexOf("bottom")!==-1,this.left=this.options.sides.indexOf("left")!==-1,this.right=this.options.sides.indexOf("right")!==-1):this.left=this.top=this.right=this.bottom=!1;const i=this.options.underflow.toLowerCase();i==="center"?(this.underflowX=0,this.underflowY=0):(this.underflowX=i.indexOf("left")!==-1?-1:i.indexOf("right")!==-1?1:0,this.underflowY=i.indexOf("top")!==-1?-1:i.indexOf("bottom")!==-1?1:0),this.reset()}isActive(){return this.toX!==null||this.toY!==null}down(){return this.toX=this.toY=null,!1}up(){return this.bounce(),!1}update(A){if(!this.paused){if(this.bounce(),this.toX){const t=this.toX;t.time+=A,this.parent.emit("moved",{viewport:this.parent,type:"bounce-x"}),t.time>=this.options.time?(this.parent.x=t.end,this.toX=null,this.parent.emit("bounce-x-end",this.parent)):this.parent.x=this.ease(t.time,t.start,t.delta,this.options.time)}if(this.toY){const t=this.toY;t.time+=A,this.parent.emit("moved",{viewport:this.parent,type:"bounce-y"}),t.time>=this.options.time?(this.parent.y=t.end,this.toY=null,this.parent.emit("bounce-y-end",this.parent)):this.parent.y=this.ease(t.time,t.start,t.delta,this.options.time)}}}calcUnderflowX(){let A;switch(this.underflowX){case-1:A=0;break;case 1:A=this.parent.screenWidth-this.parent.screenWorldWidth;break;default:A=(this.parent.screenWidth-this.parent.screenWorldWidth)/2}return A}calcUnderflowY(){let A;switch(this.underflowY){case-1:A=0;break;case 1:A=this.parent.screenHeight-this.parent.screenWorldHeight;break;default:A=(this.parent.screenHeight-this.parent.screenWorldHeight)/2}return A}oob(){const A=this.options.bounceBox;if(A){const t=typeof A.x>"u"?0:A.x,i=typeof A.y>"u"?0:A.y,n=typeof A.width>"u"?this.parent.worldWidth:A.width,s=typeof A.height>"u"?this.parent.worldHeight:A.height;return{left:this.parent.left<t,right:this.parent.right>n,top:this.parent.top<i,bottom:this.parent.bottom>s,topLeft:new m.Point(t*this.parent.scale.x,i*this.parent.scale.y),bottomRight:new m.Point(n*this.parent.scale.x-this.parent.screenWidth,s*this.parent.scale.y-this.parent.screenHeight)}}return{left:this.parent.left<0,right:this.parent.right>this.parent.worldWidth,top:this.parent.top<0,bottom:this.parent.bottom>this.parent.worldHeight,topLeft:new m.Point(0,0),bottomRight:new m.Point(this.parent.worldWidth*this.parent.scale.x-this.parent.screenWidth,this.parent.worldHeight*this.parent.scale.y-this.parent.screenHeight)}}bounce(){var A,t;if(this.paused)return;let i,n=this.parent.plugins.get("decelerate",!0);n&&(n.x||n.y)&&(n.x&&n.percentChangeX===((A=n.options)==null?void 0:A.friction)||n.y&&n.percentChangeY===((t=n.options)==null?void 0:t.friction))&&(i=this.oob(),(i.left&&this.left||i.right&&this.right)&&(n.percentChangeX=this.options.friction),(i.top&&this.top||i.bottom&&this.bottom)&&(n.percentChangeY=this.options.friction));const s=this.parent.plugins.get("drag",!0)||{},a=this.parent.plugins.get("pinch",!0)||{};if(n=n||{},!(s!=null&&s.active)&&!(a!=null&&a.active)&&(!this.toX||!this.toY)&&(!n.x||!n.y)){i=i||this.oob();const r=i.topLeft,h=i.bottomRight;if(!this.toX&&!n.x){let l=null;i.left&&this.left?l=this.parent.screenWorldWidth<this.parent.screenWidth?this.calcUnderflowX():-r.x:i.right&&this.right&&(l=this.parent.screenWorldWidth<this.parent.screenWidth?this.calcUnderflowX():-h.x),l!==null&&this.parent.x!==l&&(this.toX={time:0,start:this.parent.x,delta:l-this.parent.x,end:l},this.parent.emit("bounce-x-start",this.parent))}if(!this.toY&&!n.y){let l=null;i.top&&this.top?l=this.parent.screenWorldHeight<this.parent.screenHeight?this.calcUnderflowY():-r.y:i.bottom&&this.bottom&&(l=this.parent.screenWorldHeight<this.parent.screenHeight?this.calcUnderflowY():-h.y),l!==null&&this.parent.y!==l&&(this.toY={time:0,start:this.parent.y,delta:l-this.parent.y,end:l},this.parent.emit("bounce-y-start",this.parent))}}}reset(){this.toX=this.toY=null,this.bounce()}}const eh={left:!1,right:!1,top:!1,bottom:!1,direction:null,underflow:"center"};class ih extends hA{constructor(A,t={}){super(A),this.options=Object.assign({},eh,t),this.options.direction&&(this.options.left=this.options.direction==="x"||this.options.direction==="all"?!0:null,this.options.right=this.options.direction==="x"||this.options.direction==="all"?!0:null,this.options.top=this.options.direction==="y"||this.options.direction==="all"?!0:null,this.options.bottom=this.options.direction==="y"||this.options.direction==="all"?!0:null),this.parseUnderflow(),this.last={x:null,y:null,scaleX:null,scaleY:null},this.update()}parseUnderflow(){const A=this.options.underflow.toLowerCase();A==="none"?this.noUnderflow=!0:A==="center"?(this.underflowX=this.underflowY=0,this.noUnderflow=!1):(this.underflowX=A.indexOf("left")!==-1?-1:A.indexOf("right")!==-1?1:0,this.underflowY=A.indexOf("top")!==-1?-1:A.indexOf("bottom")!==-1?1:0,this.noUnderflow=!1)}move(){return this.update(),!1}update(){if(this.paused||this.parent.x===this.last.x&&this.parent.y===this.last.y&&this.parent.scale.x===this.last.scaleX&&this.parent.scale.y===this.last.scaleY)return;const A=new m.Point(this.parent.x,this.parent.y),t=this.parent.plugins.decelerate||{};if(this.options.left!==null||this.options.right!==null){let i=!1;if(!this.noUnderflow&&this.parent.screenWorldWidth<this.parent.screenWidth)switch(this.underflowX){case-1:this.parent.x!==0&&(this.parent.x=0,i=!0);break;case 1:this.parent.x!==this.parent.screenWidth-this.parent.screenWorldWidth&&(this.parent.x=this.parent.screenWidth-this.parent.screenWorldWidth,i=!0);break;default:this.parent.x!==(this.parent.screenWidth-this.parent.screenWorldWidth)/2&&(this.parent.x=(this.parent.screenWidth-this.parent.screenWorldWidth)/2,i=!0)}else this.options.left!==null&&this.parent.left<(this.options.left===!0?0:this.options.left)&&(this.parent.x=-(this.options.left===!0?0:this.options.left)*this.parent.scale.x,t.x=0,i=!0),this.options.right!==null&&this.parent.right>(this.options.right===!0?this.parent.worldWidth:this.options.right)&&(this.parent.x=-(this.options.right===!0?this.parent.worldWidth:this.options.right)*this.parent.scale.x+this.parent.screenWidth,t.x=0,i=!0);i&&this.parent.emit("moved",{viewport:this.parent,original:A,type:"clamp-x"})}if(this.options.top!==null||this.options.bottom!==null){let i=!1;if(!this.noUnderflow&&this.parent.screenWorldHeight<this.parent.screenHeight)switch(this.underflowY){case-1:this.parent.y!==0&&(this.parent.y=0,i=!0);break;case 1:this.parent.y!==this.parent.screenHeight-this.parent.screenWorldHeight&&(this.parent.y=this.parent.screenHeight-this.parent.screenWorldHeight,i=!0);break;default:this.parent.y!==(this.parent.screenHeight-this.parent.screenWorldHeight)/2&&(this.parent.y=(this.parent.screenHeight-this.parent.screenWorldHeight)/2,i=!0)}else this.options.top!==null&&this.parent.top<(this.options.top===!0?0:this.options.top)&&(this.parent.y=-(this.options.top===!0?0:this.options.top)*this.parent.scale.y,t.y=0,i=!0),this.options.bottom!==null&&this.parent.bottom>(this.options.bottom===!0?this.parent.worldHeight:this.options.bottom)&&(this.parent.y=-(this.options.bottom===!0?this.parent.worldHeight:this.options.bottom)*this.parent.scale.y+this.parent.screenHeight,t.y=0,i=!0);i&&this.parent.emit("moved",{viewport:this.parent,original:A,type:"clamp-y"})}this.last.x=this.parent.x,this.last.y=this.parent.y,this.last.scaleX=this.parent.scale.x,this.last.scaleY=this.parent.scale.y}reset(){this.update()}}const nh={minWidth:null,minHeight:null,maxWidth:null,maxHeight:null,minScale:null,maxScale:null};class sh extends hA{constructor(A,t={}){super(A),this.options=Object.assign({},nh,t),this.clamp()}resize(){this.clamp()}clamp(){if(!this.paused){if(this.options.minWidth||this.options.minHeight||this.options.maxWidth||this.options.maxHeight){let A=this.parent.worldScreenWidth,t=this.parent.worldScreenHeight;if(this.options.minWidth!==null&&A<this.options.minWidth){const i=this.parent.scale.x;this.parent.fitWidth(this.options.minWidth,!1,!1,!0),this.parent.scale.y*=this.parent.scale.x/i,A=this.parent.worldScreenWidth,t=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.maxWidth!==null&&A>this.options.maxWidth){const i=this.parent.scale.x;this.parent.fitWidth(this.options.maxWidth,!1,!1,!0),this.parent.scale.y*=this.parent.scale.x/i,A=this.parent.worldScreenWidth,t=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.minHeight!==null&&t<this.options.minHeight){const i=this.parent.scale.y;this.parent.fitHeight(this.options.minHeight,!1,!1,!0),this.parent.scale.x*=this.parent.scale.y/i,A=this.parent.worldScreenWidth,t=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.maxHeight!==null&&t>this.options.maxHeight){const i=this.parent.scale.y;this.parent.fitHeight(this.options.maxHeight,!1,!1,!0),this.parent.scale.x*=this.parent.scale.y/i,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}}else if(this.options.minScale||this.options.maxScale){const A={x:null,y:null},t={x:null,y:null};if(typeof this.options.minScale=="number")A.x=this.options.minScale,A.y=this.options.minScale;else if(this.options.minScale!==null){const s=this.options.minScale;A.x=typeof s.x>"u"?null:s.x,A.y=typeof s.y>"u"?null:s.y}if(typeof this.options.maxScale=="number")t.x=this.options.maxScale,t.y=this.options.maxScale;else if(this.options.maxScale!==null){const s=this.options.maxScale;t.x=typeof s.x>"u"?null:s.x,t.y=typeof s.y>"u"?null:s.y}let i=this.parent.scale.x,n=this.parent.scale.y;A.x!==null&&i<A.x&&(i=A.x),t.x!==null&&i>t.x&&(i=t.x),A.y!==null&&n<A.y&&(n=A.y),t.y!==null&&n>t.y&&(n=t.y),(i!==this.parent.scale.x||n!==this.parent.scale.y)&&(this.parent.scale.set(i,n),this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"}))}}}reset(){this.clamp()}}const oh={friction:.98,bounce:.8,minSpeed:.01},KA=16;class rh extends hA{constructor(A,t={}){super(A),this.options=Object.assign({},oh,t),this.saved=[],this.timeSinceRelease=0,this.reset(),this.parent.on("moved",i=>this.handleMoved(i))}down(){return this.saved=[],this.x=this.y=null,!1}isActive(){return!!(this.x||this.y)}move(){if(this.paused)return!1;const A=this.parent.input.count();return(A===1||A>1&&!this.parent.plugins.get("pinch",!0))&&(this.saved.push({x:this.parent.x,y:this.parent.y,time:performance.now()}),this.saved.length>60&&this.saved.splice(0,30)),!1}handleMoved(A){if(this.saved.length){const t=this.saved[this.saved.length-1];A.type==="clamp-x"&&A.original?t.x===A.original.x&&(t.x=this.parent.x):A.type==="clamp-y"&&A.original&&t.y===A.original.y&&(t.y=this.parent.y)}}up(){if(this.parent.input.count()===0&&this.saved.length){const A=performance.now();for(const t of this.saved)if(t.time>=A-100){const i=A-t.time;this.x=(this.parent.x-t.x)/i,this.y=(this.parent.y-t.y)/i,this.percentChangeX=this.percentChangeY=this.options.friction,this.timeSinceRelease=0;break}}return!1}activate(A){A=A||{},typeof A.x<"u"&&(this.x=A.x,this.percentChangeX=this.options.friction),typeof A.y<"u"&&(this.y=A.y,this.percentChangeY=this.options.friction)}update(A){if(this.paused)return;const t=this.x||this.y,i=this.timeSinceRelease,n=this.timeSinceRelease+A;if(this.x){const s=this.percentChangeX,a=Math.log(s);this.parent.x+=this.x*KA/a*(Math.pow(s,n/KA)-Math.pow(s,i/KA)),this.x*=Math.pow(this.percentChangeX,A/KA)}if(this.y){const s=this.percentChangeY,a=Math.log(s);this.parent.y+=this.y*KA/a*(Math.pow(s,n/KA)-Math.pow(s,i/KA)),this.y*=Math.pow(this.percentChangeY,A/KA)}this.timeSinceRelease+=A,this.x&&this.y?Math.abs(this.x)<this.options.minSpeed&&Math.abs(this.y)<this.options.minSpeed&&(this.x=0,this.y=0):(Math.abs(this.x||0)<this.options.minSpeed&&(this.x=0),Math.abs(this.y||0)<this.options.minSpeed&&(this.y=0)),t&&this.parent.emit("moved",{viewport:this.parent,type:"decelerate"})}reset(){this.x=this.y=null}}const ah={direction:"all",pressDrag:!0,wheel:!0,wheelScroll:1,reverse:!1,clampWheel:!1,underflow:"center",factor:1,mouseButtons:"all",keyToPress:null,ignoreKeyToPressOnTouch:!1,lineHeight:20,wheelSwapAxes:!1};class gh extends hA{constructor(A,t={}){super(A),this.windowEventHandlers=[],this.options=Object.assign({},ah,t),this.moved=!1,this.reverse=this.options.reverse?1:-1,this.xDirection=!this.options.direction||this.options.direction==="all"||this.options.direction==="x",this.yDirection=!this.options.direction||this.options.direction==="all"||this.options.direction==="y",this.keyIsPressed=!1,this.parseUnderflow(),this.mouseButtons(this.options.mouseButtons),this.options.keyToPress&&this.handleKeyPresses(this.options.keyToPress)}handleKeyPresses(A){const t=n=>{A.includes(n.code)&&(this.keyIsPressed=!0)},i=n=>{A.includes(n.code)&&(this.keyIsPressed=!1)};this.addWindowEventHandler("keyup",i),this.addWindowEventHandler("keydown",t)}addWindowEventHandler(A,t){typeof window>"u"||(window.addEventListener(A,t),this.windowEventHandlers.push({event:A,handler:t}))}destroy(){typeof window>"u"||this.windowEventHandlers.forEach(({event:A,handler:t})=>{window.removeEventListener(A,t)})}mouseButtons(A){!A||A==="all"?this.mouse=[!0,!0,!0]:this.mouse=[A.indexOf("left")!==-1,A.indexOf("middle")!==-1,A.indexOf("right")!==-1]}parseUnderflow(){const A=this.options.underflow.toLowerCase();A==="center"?(this.underflowX=0,this.underflowY=0):(A.includes("left")?this.underflowX=-1:A.includes("right")?this.underflowX=1:this.underflowX=0,A.includes("top")?this.underflowY=-1:A.includes("bottom")?this.underflowY=1:this.underflowY=0)}checkButtons(A){const t=A.pointerType==="mouse",i=this.parent.input.count();return!!((i===1||i>1&&!this.parent.plugins.get("pinch",!0))&&(!t||this.mouse[A.button]))}checkKeyPress(A){return!this.options.keyToPress||this.keyIsPressed||this.options.ignoreKeyToPressOnTouch&&A.data.pointerType==="touch"}down(A){return this.paused||!this.options.pressDrag?!1:this.checkButtons(A)&&this.checkKeyPress(A)?(this.last={x:A.global.x,y:A.global.y},(this.parent.parent||this.parent).toLocal(this.last,void 0,this.last),this.current=A.pointerId,!0):(this.last=null,!1)}get active(){return this.moved}move(A){if(this.paused||!this.options.pressDrag)return!1;if(this.last&&this.current===A.data.pointerId){const t=A.global.x,i=A.global.y,n=this.parent.input.count();if(n===1||n>1&&!this.parent.plugins.get("pinch",!0)){const s={x:t,y:i};(this.parent.parent||this.parent).toLocal(s,void 0,s);const a=s.x-this.last.x,r=s.y-this.last.y;if(this.moved||this.xDirection&&this.parent.input.checkThreshold(a)||this.yDirection&&this.parent.input.checkThreshold(r))return this.xDirection&&(this.parent.x+=(s.x-this.last.x)*this.options.factor),this.yDirection&&(this.parent.y+=(s.y-this.last.y)*this.options.factor),this.last=s,this.moved||this.parent.emit("drag-start",{event:A,screen:new m.Point(this.last.x,this.last.y),world:this.parent.toWorld(new m.Point(this.last.x,this.last.y)),viewport:this.parent}),this.moved=!0,this.parent.emit("moved",{viewport:this.parent,type:"drag"}),!0}else this.moved=!1}return!1}up(A){if(this.paused)return!1;const t=this.parent.input.touches;if(t.length===1){const i=t[0];return i.last&&(this.last={x:i.last.x,y:i.last.y},this.current=i.id),this.moved=!1,!0}else if(this.last&&this.moved){const i=new m.Point(this.last.x,this.last.y);return(this.parent.parent||this.parent).toGlobal(i,i,!0),this.parent.emit("drag-end",{event:A,screen:i,world:this.parent.toWorld(i),viewport:this.parent}),this.last=null,this.moved=!1,!0}return!1}wheel(A){if(this.paused)return!1;if(this.options.wheel){const t=this.parent.plugins.get("wheel",!0);if(!t||!t.options.wheelZoom&&!A.ctrlKey){const i=A.deltaMode?this.options.lineHeight:1,n=[A.deltaX,A.deltaY],[s,a]=this.options.wheelSwapAxes?n.reverse():n;return this.xDirection&&(this.parent.x+=s*i*this.options.wheelScroll*this.reverse),this.yDirection&&(this.parent.y+=a*i*this.options.wheelScroll*this.reverse),this.options.clampWheel&&this.clamp(),this.parent.emit("wheel-scroll",this.parent),this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.options.passiveWheel||A.preventDefault(),this.parent.options.stopPropagation&&A.stopPropagation(),!0}}return!1}resume(){this.last=null,this.paused=!1}clamp(){const A=this.parent.plugins.get("decelerate",!0)||{};if(this.options.clampWheel!=="y")if(this.parent.screenWorldWidth<this.parent.screenWidth)switch(this.underflowX){case-1:this.parent.x=0;break;case 1:this.parent.x=this.parent.screenWidth-this.parent.screenWorldWidth;break;default:this.parent.x=(this.parent.screenWidth-this.parent.screenWorldWidth)/2}else this.parent.left<0?(this.parent.x=0,A.x=0):this.parent.right>this.parent.worldWidth&&(this.parent.x=-this.parent.worldWidth*this.parent.scale.x+this.parent.screenWidth,A.x=0);if(this.options.clampWheel!=="x")if(this.parent.screenWorldHeight<this.parent.screenHeight)switch(this.underflowY){case-1:this.parent.y=0;break;case 1:this.parent.y=this.parent.screenHeight-this.parent.screenWorldHeight;break;default:this.parent.y=(this.parent.screenHeight-this.parent.screenWorldHeight)/2}else this.parent.top<0&&(this.parent.y=0,A.y=0),this.parent.bottom>this.parent.worldHeight&&(this.parent.y=-this.parent.worldHeight*this.parent.scale.y+this.parent.screenHeight,A.y=0)}}const hh={speed:0,acceleration:null,radius:null};class lh extends hA{constructor(A,t,i={}){super(A),this.target=t,this.options=Object.assign({},hh,i),this.velocity={x:0,y:0}}update(A){if(this.paused)return;const t=this.parent.center;let i=this.target.x,n=this.target.y;if(this.options.radius)if(Math.sqrt(Math.pow(this.target.y-t.y,2)+Math.pow(this.target.x-t.x,2))>this.options.radius){const r=Math.atan2(this.target.y-t.y,this.target.x-t.x);i=this.target.x-Math.cos(r)*this.options.radius,n=this.target.y-Math.sin(r)*this.options.radius}else return;const s=i-t.x,a=n-t.y;if(s||a)if(this.options.speed)if(this.options.acceleration){const r=Math.atan2(n-t.y,i-t.x),h=Math.sqrt(Math.pow(s,2)+Math.pow(a,2));if(h){const l=(Math.pow(this.velocity.x,2)+Math.pow(this.velocity.y,2))/(2*this.options.acceleration);h>l?this.velocity={x:Math.min(this.velocity.x+(this.options.acceleration*A,this.options.speed)),y:Math.min(this.velocity.y+(this.options.acceleration*A,this.options.speed))}:this.velocity={x:Math.max(this.velocity.x-this.options.acceleration*this.options.speed,0),y:Math.max(this.velocity.y-this.options.acceleration*this.options.speed,0)};const u=Math.cos(r)*this.velocity.x,o=Math.sin(r)*this.velocity.y,g=Math.abs(u)>Math.abs(s)?i:t.x+u,c=Math.abs(o)>Math.abs(a)?n:t.y+o;this.parent.moveCenter(g,c),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}}else{const r=Math.atan2(n-t.y,i-t.x),h=Math.cos(r)*this.options.speed,l=Math.sin(r)*this.options.speed,u=Math.abs(h)>Math.abs(s)?i:t.x+h,o=Math.abs(l)>Math.abs(a)?n:t.y+l;this.parent.moveCenter(u,o),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}else this.parent.moveCenter(i,n),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}}const ch={radius:null,distance:null,top:null,bottom:null,left:null,right:null,speed:8,reverse:!1,noDecelerate:!1,linear:!1,allowButtons:!1};class Ih extends hA{constructor(A,t={}){super(A),this.options=Object.assign({},ch,t),this.reverse=this.options.reverse?1:-1,this.radiusSquared=typeof this.options.radius=="number"?Math.pow(this.options.radius,2):null,this.resize()}resize(){const A=this.options.distance;A!==null?(this.left=A,this.top=A,this.right=this.parent.screenWidth-A,this.bottom=this.parent.screenHeight-A):this.options.radius||(this.left=this.options.left,this.top=this.options.top,this.right=this.options.right===null?null:this.parent.screenWidth-this.options.right,this.bottom=this.options.bottom===null?null:this.parent.screenHeight-this.options.bottom)}down(){return this.paused||this.options.allowButtons||(this.horizontal=this.vertical=null),!1}move(A){if(this.paused||A.pointerType!=="mouse"&&A.pointerId!==1||!this.options.allowButtons&&A.buttons!==0)return!1;const t=A.global.x,i=A.global.y;if(this.radiusSquared){const n=this.parent.toScreen(this.parent.center);if(Math.pow(n.x-t,2)+Math.pow(n.y-i,2)>=this.radiusSquared){const s=Math.atan2(n.y-i,n.x-t);this.options.linear?(this.horizontal=Math.round(Math.cos(s))*this.options.speed*this.reverse*.06,this.vertical=Math.round(Math.sin(s))*this.options.speed*this.reverse*.06):(this.horizontal=Math.cos(s)*this.options.speed*this.reverse*.06,this.vertical=Math.sin(s)*this.options.speed*this.reverse*.06)}else this.horizontal&&this.decelerateHorizontal(),this.vertical&&this.decelerateVertical(),this.horizontal=this.vertical=0}else this.left!==null&&t<this.left?this.horizontal=Number(this.reverse)*this.options.speed*.06:this.right!==null&&t>this.right?this.horizontal=-1*this.reverse*this.options.speed*.06:(this.decelerateHorizontal(),this.horizontal=0),this.top!==null&&i<this.top?this.vertical=Number(this.reverse)*this.options.speed*.06:this.bottom!==null&&i>this.bottom?this.vertical=-1*this.reverse*this.options.speed*.06:(this.decelerateVertical(),this.vertical=0);return!1}decelerateHorizontal(){const A=this.parent.plugins.get("decelerate",!0);this.horizontal&&A&&!this.options.noDecelerate&&A.activate({x:this.horizontal*this.options.speed*this.reverse/16.666666666666668})}decelerateVertical(){const A=this.parent.plugins.get("decelerate",!0);this.vertical&&A&&!this.options.noDecelerate&&A.activate({y:this.vertical*this.options.speed*this.reverse/16.666666666666668})}up(){return this.paused||(this.horizontal&&this.decelerateHorizontal(),this.vertical&&this.decelerateVertical(),this.horizontal=this.vertical=null),!1}update(){if(!this.paused&&(this.horizontal||this.vertical)){const A=this.parent.center;this.horizontal&&(A.x+=this.horizontal*this.options.speed),this.vertical&&(A.y+=this.vertical*this.options.speed),this.parent.moveCenter(A),this.parent.emit("moved",{viewport:this.parent,type:"mouse-edges"})}}}const Bh={noDrag:!1,percent:1,center:null,factor:1,axis:"all"},uh=new m.Point;class Eh extends hA{constructor(A,t={}){super(A),this.active=!1,this.pinching=!1,this.moved=!1,this.options=Object.assign({},Bh,t)}down(){return this.parent.input.count()>=2?(this.active=!0,!0):!1}isAxisX(){return["all","x"].includes(this.options.axis)}isAxisY(){return["all","y"].includes(this.options.axis)}move(A){if(this.paused||!this.active)return!1;const{x:t,y:i}=(this.parent.parent||this.parent).toLocal(A.global,void 0,uh),n=this.parent.input.touches;if(n.length>=2){const s=n[0],a=n[1],r=s.last&&a.last?Math.sqrt(Math.pow(a.last.x-s.last.x,2)+Math.pow(a.last.y-s.last.y,2)):null;if(s.id===A.pointerId?s.last={x:t,y:i,data:A}:a.id===A.pointerId&&(a.last={x:t,y:i,data:A}),r){let h;const l=new m.Point(s.last.x+(a.last.x-s.last.x)/2,s.last.y+(a.last.y-s.last.y)/2);this.options.center||(h=this.parent.toLocal(l,this.parent.parent||this.parent));let u=Math.sqrt(Math.pow(a.last.x-s.last.x,2)+Math.pow(a.last.y-s.last.y,2));u=u===0?u=1e-10:u;const o=(1-r/u)*this.options.percent*(this.isAxisX()?this.parent.scale.x:this.parent.scale.y);this.isAxisX()&&(this.parent.scale.x+=o),this.isAxisY()&&(this.parent.scale.y+=o),this.parent.emit("zoomed",{viewport:this.parent,type:"pinch",center:l});const g=this.parent.plugins.get("clamp-zoom",!0);if(g&&g.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const c=(this.parent.parent||this.parent).toLocal(h,this.parent);this.parent.x+=(l.x-c.x)*this.options.factor,this.parent.y+=(l.y-c.y)*this.options.factor,this.parent.emit("moved",{viewport:this.parent,type:"pinch"})}!this.options.noDrag&&this.lastCenter&&(this.parent.x+=(l.x-this.lastCenter.x)*this.options.factor,this.parent.y+=(l.y-this.lastCenter.y)*this.options.factor,this.parent.emit("moved",{viewport:this.parent,type:"pinch"})),this.lastCenter=l,this.moved=!0}else this.pinching||(this.parent.emit("pinch-start",this.parent),this.pinching=!0);return!0}return!1}up(){return this.pinching&&this.parent.input.touches.length<=1?(this.active=!1,this.lastCenter=null,this.pinching=!1,this.moved=!1,this.parent.emit("pinch-end",this.parent),!0):!1}}const Ch={topLeft:!1,friction:.8,time:1e3,ease:"easeInOutSine",interrupt:!0,removeOnComplete:!1,removeOnInterrupt:!1,forceStart:!1};class Qh extends hA{constructor(A,t,i,n={}){super(A),this.options=Object.assign({},Ch,n),this.ease=fe(n.ease,"easeInOutSine"),this.x=t,this.y=i,this.options.forceStart&&this.snapStart()}snapStart(){this.percent=0,this.snapping={time:0};const A=this.options.topLeft?this.parent.corner:this.parent.center;this.deltaX=this.x-A.x,this.deltaY=this.y-A.y,this.startX=A.x,this.startY=A.y,this.parent.emit("snap-start",this.parent)}wheel(){return this.options.removeOnInterrupt&&this.parent.plugins.remove("snap"),!1}down(){return this.options.removeOnInterrupt?this.parent.plugins.remove("snap"):this.options.interrupt&&(this.snapping=null),!1}up(){if(this.parent.input.count()===0){const A=this.parent.plugins.get("decelerate",!0);A&&(A.x||A.y)&&(A.percentChangeX=A.percentChangeY=this.options.friction)}return!1}update(A){if(!this.paused&&!(this.options.interrupt&&this.parent.input.count()!==0))if(this.snapping){const t=this.snapping;t.time+=A;let i,n,s;const a=this.startX,r=this.startY,h=this.deltaX,l=this.deltaY;if(t.time>this.options.time)i=!0,n=a+h,s=r+l;else{const u=this.ease(t.time,0,1,this.options.time);n=a+h*u,s=r+l*u}this.options.topLeft?this.parent.moveCorner(n,s):this.parent.moveCenter(n,s),this.parent.emit("moved",{viewport:this.parent,type:"snap"}),i&&(this.options.removeOnComplete&&this.parent.plugins.remove("snap"),this.parent.emit("snap-end",this.parent),this.snapping=null)}else{const t=this.options.topLeft?this.parent.corner:this.parent.center;(t.x!==this.x||t.y!==this.y)&&this.snapStart()}}}const fh={width:0,height:0,time:1e3,ease:"easeInOutSine",center:null,interrupt:!0,removeOnComplete:!1,removeOnInterrupt:!1,forceStart:!1,noMove:!1};class dh extends hA{constructor(A,t={}){super(A),this.options=Object.assign({},fh,t),this.ease=fe(this.options.ease),this.xIndependent=!1,this.yIndependent=!1,this.xScale=0,this.yScale=0,this.options.width>0&&(this.xScale=A.screenWidth/this.options.width,this.xIndependent=!0),this.options.height>0&&(this.yScale=A.screenHeight/this.options.height,this.yIndependent=!0),this.xScale=this.xIndependent?this.xScale:this.yScale,this.yScale=this.yIndependent?this.yScale:this.xScale,this.options.time===0?(A.container.scale.x=this.xScale,A.container.scale.y=this.yScale,this.options.removeOnComplete&&this.parent.plugins.remove("snap-zoom")):t.forceStart&&this.createSnapping()}createSnapping(){const A=this.parent.worldScreenWidth,t=this.parent.worldScreenHeight,i=this.parent.screenWidth/this.xScale,n=this.parent.screenHeight/this.yScale;this.snapping={time:0,startX:A,startY:t,deltaX:i-A,deltaY:n-t},this.parent.emit("snap-zoom-start",this.parent)}resize(){this.snapping=null,this.options.width>0&&(this.xScale=this.parent.screenWidth/this.options.width),this.options.height>0&&(this.yScale=this.parent.screenHeight/this.options.height),this.xScale=this.xIndependent?this.xScale:this.yScale,this.yScale=this.yIndependent?this.yScale:this.xScale}wheel(){return this.options.removeOnInterrupt&&this.parent.plugins.remove("snap-zoom"),!1}down(){return this.options.removeOnInterrupt?this.parent.plugins.remove("snap-zoom"):this.options.interrupt&&(this.snapping=null),!1}update(A){if(this.paused||this.options.interrupt&&this.parent.input.count()!==0)return;let t;if(!this.options.center&&!this.options.noMove&&(t=this.parent.center),!this.snapping)(this.parent.scale.x!==this.xScale||this.parent.scale.y!==this.yScale)&&this.createSnapping();else if(this.snapping){const i=this.snapping;if(i.time+=A,i.time>=this.options.time)this.parent.scale.set(this.xScale,this.yScale),this.options.removeOnComplete&&this.parent.plugins.remove("snap-zoom"),this.parent.emit("snap-zoom-end",this.parent),this.snapping=null;else{const s=this.snapping,a=this.ease(s.time,s.startX,s.deltaX,this.options.time),r=this.ease(s.time,s.startY,s.deltaY,this.options.time);this.parent.scale.x=this.parent.screenWidth/a,this.parent.scale.y=this.parent.screenHeight/r}const n=this.parent.plugins.get("clamp-zoom",!0);n&&n.clamp(),this.options.noMove||(this.options.center?this.parent.moveCenter(this.options.center):this.parent.moveCenter(t))}}resume(){this.snapping=null,super.resume()}}const ph={percent:.1,smooth:!1,interrupt:!0,reverse:!1,center:null,lineHeight:20,axis:"all",keyToPress:null,trackpadPinch:!1,wheelZoom:!0};class yh extends hA{constructor(A,t={}){super(A),this.options=Object.assign({},ph,t),this.keyIsPressed=!1,this.options.keyToPress&&this.handleKeyPresses(this.options.keyToPress)}handleKeyPresses(A){typeof window>"u"||(window.addEventListener("keydown",t=>{A.includes(t.code)&&(this.keyIsPressed=!0)}),window.addEventListener("keyup",t=>{A.includes(t.code)&&(this.keyIsPressed=!1)}))}checkKeyPress(){return!this.options.keyToPress||this.keyIsPressed}down(){return this.options.interrupt&&(this.smoothing=null),!1}isAxisX(){return["all","x"].includes(this.options.axis)}isAxisY(){return["all","y"].includes(this.options.axis)}update(){if(this.smoothing){const A=this.smoothingCenter,t=this.smoothing;let i;this.options.center||(i=this.parent.toLocal(A)),this.isAxisX()&&(this.parent.scale.x+=t.x),this.isAxisY()&&(this.parent.scale.y+=t.y),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const n=this.parent.plugins.get("clamp-zoom",!0);if(n&&n.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const s=this.parent.parent||this.parent;s.toLocal(i,this.parent,i);const a=s.toLocal(A);this.parent.x+=a.x-i.x,this.parent.y+=a.y-i.y}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.smoothingCount++,typeof this.options.smooth=="number"&&this.smoothingCount>=this.options.smooth&&(this.smoothing=null)}}pinch(A){if(this.paused)return;const t=this.parent.input.getPointerPosition(A),i=-A.deltaY*(A.deltaMode?this.options.lineHeight:1)/200,n=Math.pow(2,(1+this.options.percent)*i);let s;this.options.center||(s=this.parent.toLocal(t)),this.isAxisX()&&(this.parent.scale.x*=n),this.isAxisY()&&(this.parent.scale.y*=n),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const a=this.parent.plugins.get("clamp-zoom",!0);if(a&&a.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const r=this.parent.parent||this.parent;r.toLocal(s,this.parent,s);const h=r.toLocal(t);this.parent.x+=h.x-s.x,this.parent.y+=h.y-s.y}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.emit("wheel-start",{event:A,viewport:this.parent})}wheel(A){if(this.paused||!this.checkKeyPress())return!1;if(A.ctrlKey&&this.options.trackpadPinch)this.pinch(A);else if(this.options.wheelZoom){const t=this.parent.input.getPointerPosition(A),i=(this.options.reverse?-1:1)*-A.deltaY*(A.deltaMode?this.options.lineHeight:1)/500,n=Math.pow(2,(1+this.options.percent)*i);if(this.options.smooth){const s={x:this.smoothing?this.smoothing.x*(this.options.smooth-this.smoothingCount):0,y:this.smoothing?this.smoothing.y*(this.options.smooth-this.smoothingCount):0};this.smoothing={x:((this.parent.scale.x+s.x)*n-this.parent.scale.x)/this.options.smooth,y:((this.parent.scale.y+s.y)*n-this.parent.scale.y)/this.options.smooth},this.smoothingCount=0,this.smoothingCenter=t}else{let s;this.options.center||(s=this.parent.toLocal(t)),this.isAxisX()&&(this.parent.scale.x*=n),this.isAxisY()&&(this.parent.scale.y*=n),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const a=this.parent.plugins.get("clamp-zoom",!0);if(a&&a.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const r=this.parent.parent||this.parent;r.toLocal(s,this.parent,s);const h=r.toLocal(t);this.parent.x+=h.x-s.x,this.parent.y+=h.y-s.y}}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.emit("wheel-start",{event:A,viewport:this.parent})}return!this.parent.options.passiveWheel}}const wh={screenWidth:typeof window>"u"?0:window.innerWidth,screenHeight:typeof window>"u"?0:window.innerHeight,worldWidth:null,worldHeight:null,threshold:5,passiveWheel:!0,stopPropagation:!1,forceHitArea:null,noTicker:!1,disableOnContextMenu:!1,ticker:m.Ticker.shared,allowPreserveDragOutside:!1};class mh extends m.Container{constructor(A){super(),this._disableOnContextMenu=t=>t.preventDefault(),this.options={...wh,...A},this.screenWidth=this.options.screenWidth,this.screenHeight=this.options.screenHeight,this._worldWidth=this.options.worldWidth,this._worldHeight=this.options.worldHeight,this.forceHitArea=this.options.forceHitArea,this.threshold=this.options.threshold,this.options.disableOnContextMenu&&this.options.events.domElement.addEventListener("contextmenu",this._disableOnContextMenu),this.options.noTicker||(this.tickerFunction=()=>this.update(this.options.ticker.elapsedMS),this.options.ticker.add(this.tickerFunction)),this.input=new Zg(this),this.plugins=new zg(this)}destroy(A){var t;!this.options.noTicker&&this.tickerFunction&&this.options.ticker.remove(this.tickerFunction),this.options.disableOnContextMenu&&((t=this.options.events.domElement)==null||t.removeEventListener("contextmenu",this._disableOnContextMenu)),this.input.destroy(),super.destroy(A)}update(A){this.pause||(this.plugins.update(A),this.lastViewport&&(this.lastViewport.x!==this.x||this.lastViewport.y!==this.y?this.moving=!0:this.moving&&(this.emit("moved-end",this),this.moving=!1),this.lastViewport.scaleX!==this.scale.x||this.lastViewport.scaleY!==this.scale.y?this.zooming=!0:this.zooming&&(this.emit("zoomed-end",this),this.zooming=!1)),this.forceHitArea||(this._hitAreaDefault=new m.Rectangle(this.left,this.top,this.worldScreenWidth,this.worldScreenHeight),this.hitArea=this._hitAreaDefault),this._dirty=this._dirty||!this.lastViewport||this.lastViewport.x!==this.x||this.lastViewport.y!==this.y||this.lastViewport.scaleX!==this.scale.x||this.lastViewport.scaleY!==this.scale.y,this.lastViewport={x:this.x,y:this.y,scaleX:this.scale.x,scaleY:this.scale.y},this.emit("frame-end",this))}resize(A=typeof window>"u"?0:window.innerWidth,t=typeof window>"u"?0:window.innerHeight,i,n){this.screenWidth=A,this.screenHeight=t,typeof i<"u"&&(this._worldWidth=i),typeof n<"u"&&(this._worldHeight=n),this.plugins.resize(),this.dirty=!0}get worldWidth(){return this._worldWidth?this._worldWidth:this.width/this.scale.x}set worldWidth(A){this._worldWidth=A,this.plugins.resize()}get worldHeight(){return this._worldHeight?this._worldHeight:this.height/this.scale.y}set worldHeight(A){this._worldHeight=A,this.plugins.resize()}getVisibleBounds(){return new m.Rectangle(this.left,this.top,this.worldScreenWidth,this.worldScreenHeight)}toWorld(A,t){return arguments.length===2?this.toLocal(new m.Point(A,t)):this.toLocal(A)}toScreen(A,t){return arguments.length===2?this.toGlobal(new m.Point(A,t)):this.toGlobal(A)}get worldScreenWidth(){return this.screenWidth/this.scale.x}get worldScreenHeight(){return this.screenHeight/this.scale.y}get screenWorldWidth(){return this.worldWidth*this.scale.x}get screenWorldHeight(){return this.worldHeight*this.scale.y}get center(){return new m.Point(this.worldScreenWidth/2-this.x/this.scale.x,this.worldScreenHeight/2-this.y/this.scale.y)}set center(A){this.moveCenter(A)}moveCenter(...A){let t,i;typeof A[0]=="number"?(t=A[0],i=A[1]):(t=A[0].x,i=A[0].y);const n=(this.worldScreenWidth/2-t)*this.scale.x,s=(this.worldScreenHeight/2-i)*this.scale.y;return(this.x!==n||this.y!==s)&&(this.position.set(n,s),this.plugins.reset(),this.dirty=!0),this}get corner(){return new m.Point(-this.x/this.scale.x,-this.y/this.scale.y)}set corner(A){this.moveCorner(A)}moveCorner(...A){let t,i;return A.length===1?(t=-A[0].x*this.scale.x,i=-A[0].y*this.scale.y):(t=-A[0]*this.scale.x,i=-A[1]*this.scale.y),(t!==this.x||i!==this.y)&&(this.position.set(t,i),this.plugins.reset(),this.dirty=!0),this}get screenWidthInWorldPixels(){return this.screenWidth/this.scale.x}get screenHeightInWorldPixels(){return this.screenHeight/this.scale.y}findFitWidth(A){return this.screenWidth/A}findFitHeight(A){return this.screenHeight/A}findFit(A,t){const i=this.screenWidth/A,n=this.screenHeight/t;return Math.min(i,n)}findCover(A,t){const i=this.screenWidth/A,n=this.screenHeight/t;return Math.max(i,n)}fitWidth(A=this.worldWidth,t,i=!0,n){let s;t&&(s=this.center),this.scale.x=this.screenWidth/A,i&&(this.scale.y=this.scale.x);const a=this.plugins.get("clamp-zoom",!0);return!n&&a&&a.clamp(),t&&s&&this.moveCenter(s),this}fitHeight(A=this.worldHeight,t,i=!0,n){let s;t&&(s=this.center),this.scale.y=this.screenHeight/A,i&&(this.scale.x=this.scale.y);const a=this.plugins.get("clamp-zoom",!0);return!n&&a&&a.clamp(),t&&s&&this.moveCenter(s),this}fitWorld(A){let t;A&&(t=this.center),this.scale.x=this.screenWidth/this.worldWidth,this.scale.y=this.screenHeight/this.worldHeight,this.scale.x<this.scale.y?this.scale.y=this.scale.x:this.scale.x=this.scale.y;const i=this.plugins.get("clamp-zoom",!0);return i&&i.clamp(),A&&t&&this.moveCenter(t),this}fit(A,t=this.worldWidth,i=this.worldHeight){let n;A&&(n=this.center),this.scale.x=this.screenWidth/t,this.scale.y=this.screenHeight/i,this.scale.x<this.scale.y?this.scale.y=this.scale.x:this.scale.x=this.scale.y;const s=this.plugins.get("clamp-zoom",!0);return s&&s.clamp(),A&&n&&this.moveCenter(n),this}setZoom(A,t){let i;t&&(i=this.center),this.scale.set(A);const n=this.plugins.get("clamp-zoom",!0);return n&&n.clamp(),t&&i&&this.moveCenter(i),this}zoomPercent(A,t){return this.setZoom(this.scale.x+this.scale.x*A,t)}zoom(A,t){return this.fitWidth(A+this.worldScreenWidth,t),this}get scaled(){return this.scale.x}set scaled(A){this.setZoom(A,!0)}snapZoom(A){return this.plugins.add("snap-zoom",new dh(this,A)),this}OOB(){return{left:this.left<0,right:this.right>this.worldWidth,top:this.top<0,bottom:this.bottom>this.worldHeight,cornerPoint:new m.Point(this.worldWidth*this.scale.x-this.screenWidth,this.worldHeight*this.scale.y-this.screenHeight)}}get right(){return-this.x/this.scale.x+this.worldScreenWidth}set right(A){this.x=-A*this.scale.x+this.screenWidth,this.plugins.reset()}get left(){return-this.x/this.scale.x}set left(A){this.x=-A*this.scale.x,this.plugins.reset()}get top(){return-this.y/this.scale.y}set top(A){this.y=-A*this.scale.y,this.plugins.reset()}get bottom(){return-this.y/this.scale.y+this.worldScreenHeight}set bottom(A){this.y=-A*this.scale.y+this.screenHeight,this.plugins.reset()}get dirty(){return!!this._dirty}set dirty(A){this._dirty=A}get forceHitArea(){return this._forceHitArea}set forceHitArea(A){A?(this._forceHitArea=A,this.hitArea=A):(this._forceHitArea=null,this.hitArea=new m.Rectangle(0,0,this.worldWidth,this.worldHeight))}drag(A){return this.plugins.add("drag",new gh(this,A)),this}clamp(A){return this.plugins.add("clamp",new ih(this,A)),this}decelerate(A){return this.plugins.add("decelerate",new rh(this,A)),this}bounce(A){return this.plugins.add("bounce",new th(this,A)),this}pinch(A){return this.plugins.add("pinch",new Eh(this,A)),this}snap(A,t,i){return this.plugins.add("snap",new Qh(this,A,t,i)),this}follow(A,t){return this.plugins.add("follow",new lh(this,A,t)),this}wheel(A){return this.plugins.add("wheel",new yh(this,A)),this}animate(A){return this.plugins.add("animate",new $g(this,A)),this}clampZoom(A){return this.plugins.add("clamp-zoom",new sh(this,A)),this}mouseEdges(A){return this.plugins.add("mouse-edges",new Ih(this,A)),this}get pause(){return!!this._pause}set pause(A){this._pause=A,this.lastViewport=null,this.moving=!1,this.zooming=!1,A&&this.input.pause()}ensureVisible(A,t,i,n,s){s&&(i>this.worldScreenWidth||n>this.worldScreenHeight)&&(this.fit(!0,i,n),this.emit("zoomed",{viewport:this,type:"ensureVisible"}));let a=!1;A<this.left?(this.left=A,a=!0):A+i>this.right&&(this.right=A+i,a=!0),t<this.top?(this.top=t,a=!0):t+n>this.bottom&&(this.bottom=t+n,a=!0),a&&this.emit("moved",{viewport:this,type:"ensureVisible"})}}const Dh=["bounce-x-end","bounce-x-start","bounce-y-end","bounce-y-start","clicked","drag-end","drag-start","frame-end","mouse-edge-end","mouse-edge-start","moved","moved-end","pinch-end","pinch-start","snap-end","snap-start","snap-zoom-end","snap-zoom-start","wheel-scroll","zoomed","zoomed-end"];class vh extends BA(mh){constructor(){const A={noTicker:!0,events:{domElement:{addEventListener:()=>{}}}};super(A),this.overrideProps=["wheel"]}onInit(A){super.onInit(A);for(let t of Dh)A[t]&&this.on(t,A[t])}async onMount(A,t){await super.onMount(A,t);const{props:i}=A,{tick:n,app:s,canvasSize:a}=i.context;$(()=>{this.screenWidth=a().width,this.screenHeight=a().height}),$(()=>{const r=s();if(!r)return;const h=r.renderer;h.events.domElement.addEventListener("wheel",this.input.wheelFunction),this.options.events=h.events}),this.tickSubscription=n.observable.subscribe(({value:r})=>{this.update(r.timestamp)}),A.props.context.viewport=this,this.updateViewportSettings(i)}onUpdate(A){super.onUpdate(A),this.updateViewportSettings(A)}updateViewportSettings(A){A.screenWidth!==void 0&&(this.screenWidth=A.screenWidth),A.screenHeight!==void 0&&(this.screenHeight=A.screenHeight),A.worldWidth!==void 0&&(this.worldWidth=A.worldWidth),A.worldHeight!==void 0&&(this.worldHeight=A.worldHeight),A.drag&&this.drag(A.drag),A.clamp&&this.clamp(A.clamp.value??A.clamp),A.wheel&&(A.wheel===!0?this.wheel():this.wheel(A.wheel)),A.decelerate&&(A.decelerate===!0?this.decelerate():this.decelerate(A.decelerate)),A.pinch&&(A.pinch===!0?this.pinch():this.pinch(A.pinch))}async onDestroy(A,t){const i=async()=>{this.tickSubscription.unsubscribe(),t()};await super.onDestroy(A,i)}}nA("Viewport",vh);function Sh(e){return oA("Viewport",e)}class xh extends BA(m.NineSliceSprite){constructor(){super({width:0,height:0})}async onUpdate(A){for(const[t,i]of Object.entries(A))i!==void 0&&(t==="image"?this.texture=await m.Assets.load(i):t in this&&(this[t]=i))}}nA("NineSliceSprite",xh);function bh(e){return oA("NineSliceSprite",e)}const no=["click","mouseover","mouseout","mouseenter","mouseleave","mousemove","mouseup","mousedown","touchstart","touchend","touchmove","touchcancel","wheel","scroll","resize","focus","blur","change","input","submit","reset","keydown","keyup","keypress","contextmenu","drag","dragend","dragenter","dragleave","dragover","drop","dragstart","select","selectstart","selectend","selectall","selectnone"];class kh{constructor(){this.eventListeners=new Map,this.onBeforeDestroy=null,this.valueSignal=null,this.isFormElementType=!1}isFormElement(A){return["input","textarea","select"].includes(A.toLowerCase())}onInit(A){var t;typeof A.element=="string"?(this.element=document.createElement(A.element),this.isFormElementType=this.isFormElement(A.element)):(this.element=A.element.value,this.isFormElementType=this.isFormElement(this.element.tagName)),(A.onBeforeDestroy||A["on-before-destroy"])&&(this.onBeforeDestroy=A.onBeforeDestroy||A["on-before-destroy"]);for(const i of no)if((t=A.attrs)!=null&&t[i]){const n=s=>{var a,r,h,l;if(i==="submit"&&this.element.tagName.toLowerCase()==="form"){s.preventDefault();const u=new FormData(this.element),o={};u.forEach((g,c)=>{o[c]?Array.isArray(o[c])?o[c].push(g):o[c]=[o[c],g]:o[c]=g}),(r=(a=A.attrs)[i])==null||r.call(a,s,o)}else(l=(h=A.attrs)[i])==null||l.call(h,s)};this.eventListeners.set(i,n),this.element.addEventListener(i,n,!1)}if(A.children)for(const i of A.children)Yn(i)?i.subscribe(({elements:n})=>{for(const s of n)this.element.appendChild(s.componentInstance.element)}):this.element.appendChild(i.componentInstance.element);this.onUpdate(A)}onMount(A){const i=A.propObservables.attrs;if(this.isFormElementType&&(i!=null&&i.value)&&W(i.value)){this.valueSignal=i.value,this.element.value=this.valueSignal();const n=s=>{const a=s.target;this.valueSignal.set(a.value)};this.eventListeners.set("input",n),this.element.addEventListener("input",n,!1)}}onUpdate(A){if(this.element){for(const[t,i]of Object.entries(A.attrs||{}))if(t==="class"){const n=i.items||i.value||i;if(this.element.className="",typeof n=="string")this.element.className=n;else if(Array.isArray(n))this.element.classList.add(...n);else if(typeof n=="object"&&n!==null)for(const[s,a]of Object.entries(n))a&&this.element.classList.add(s)}else if(t==="style"){const n=i.items||i.value||i;if(typeof n=="string")this.element.setAttribute("style",n);else if(typeof n=="object"&&n!==null)for(const[s,a]of Object.entries(n))a!=null&&(this.element.style[s]=a)}else if(t==="value"&&this.isFormElementType)if(W(i)){const n=this.element.value,s=i();n!==s&&(this.element.value=s)}else this.element.value=i;else no.includes(t)||this.element.setAttribute(t,i);A.textContent&&(this.element.textContent=A.textContent)}}async onDestroy(A,t){if(this.element){this.onBeforeDestroy&&await this.onBeforeDestroy();for(const[i,n]of this.eventListeners)this.element.removeEventListener(i,n,!1);this.eventListeners.clear(),this.element.remove(),t&&t()}}}nA("DOMElement",kh);const so=e=>oA("DOMElement",e);class Mh extends BA(m.DOMContainer){constructor(){super(...arguments),this.disableLayout=!0}onInit(A){const t=RA(so,{element:"div"},A.children);this.element=t.componentInstance.element}}nA("DOMContainer",Mh);const Rh=e=>oA("DOMContainer",e);var oo=(e=>(e.Normal="normal",e.Hover="hover",e.Pressed="pressed",e.Disabled="disabled",e))(oo||{});function Fh(e){const A=Y("normal"),t=Y(!1),i=Y(!1),n=Ai(e),{text:s,disabled:a,width:r,height:h,style:l}=n({text:{type:String,default:""},disabled:{type:Boolean,default:!1},width:{type:Number,default:120},height:{type:Number,default:40},style:{type:Object,default:()=>({})}});$(()=>{const o=a(),g=t(),c=i();o?A.set("disabled"):g?A.set("pressed"):c?A.set("hover"):A.set("normal")});const u={pointerenter:o=>{var g;a()||(i.set(!0),(g=e.hoverEnter)==null||g.call(e,o))},pointerleave:o=>{var g;i.set(!1),t.set(!1),(g=e.hoverLeave)==null||g.call(e,o)},pointerdown:o=>{var g;a()||(t.set(!0),(g=e.pressDown)==null||g.call(e,o))},pointerup:o=>{var g;!a()&&t()&&(t.set(!1),(g=e.pressUp)==null||g.call(e,o))},pointertap:o=>{var g;a()||(g=e.click)==null||g.call(e,o)}};return RA(ue,{x:e.x,y:e.y,width:e.width,height:e.height,alpha:e.alpha,visible:e.visible,cursor:e.cursor||"pointer",...u},[RA(Xs,{width:r,height:h,color:MA(()=>{const g=l().backgroundColor||{normal:"#007bff",hover:"#0056b3",pressed:"#004085",disabled:"#6c757d"},c=A();return g[c]||g.normal})}),RA(to,{text:s,x:MA(()=>r()/2),y:MA(()=>h()/2),anchor:{x:.5,y:.5},style:MA(()=>{const g=l().text||{};return{fontSize:g.fontSize||16,fontFamily:g.fontFamily||"Arial",fill:g.color||"#ffffff"}})()})])}var Gh=(()=>{var e=z&&z.tagName.toUpperCase()==="SCRIPT"&&z.src||new URL("index.global.js",document.baseURI).href;return function(A){A=A||{};var t;t||(t=typeof A<"u"?A:{});var i,n;t.ready=new Promise(function(I,B){i=I,n=B});var s=Object.assign({},t),a="";typeof document<"u"&&document.currentScript&&(a=document.currentScript.src),e&&(a=e),a.indexOf("blob:")!==0?a=a.substr(0,a.replace(/[?#].*/,"").lastIndexOf("/")+1):a="";var r=t.print||console.log.bind(console),h=t.printErr||console.warn.bind(console);Object.assign(t,s),s=null;var l;t.wasmBinary&&(l=t.wasmBinary),t.noExitRuntime,typeof WebAssembly!="object"&&tA("no native wasm support detected");var u,o=!1;function g(I,B,Q){Q=B+Q;for(var p="";!(B>=Q);){var y=I[B++];if(!y)break;if(y&128){var D=I[B++]&63;if((y&224)==192)p+=String.fromCharCode((y&31)<<6|D);else{var x=I[B++]&63;y=(y&240)==224?(y&15)<<12|D<<6|x:(y&7)<<18|D<<12|x<<6|I[B++]&63,65536>y?p+=String.fromCharCode(y):(y-=65536,p+=String.fromCharCode(55296|y>>10,56320|y&1023))}}else p+=String.fromCharCode(y)}return p}var c,E,C,d,f,w,S,F,N;function O(){var I=u.buffer;c=I,t.HEAP8=E=new Int8Array(I),t.HEAP16=d=new Int16Array(I),t.HEAP32=w=new Int32Array(I),t.HEAPU8=C=new Uint8Array(I),t.HEAPU16=f=new Uint16Array(I),t.HEAPU32=S=new Uint32Array(I),t.HEAPF32=F=new Float32Array(I),t.HEAPF64=N=new Float64Array(I)}var AA,CA=[],L=[],GA=[];function YA(){var I=t.preRun.shift();CA.unshift(I)}var iA=0,bA=null;function tA(I){throw t.onAbort&&t.onAbort(I),I="Aborted("+I+")",h(I),o=!0,I=new WebAssembly.RuntimeError(I+". Build with -sASSERTIONS for more info."),n(I),I}function WA(I){return I.startsWith("data:application/octet-stream;base64,")}var kA;if(kA="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMkAEEBIQQgA0EIaiAAQfwAaiIFIAAgAUEBdGpB8gBqIgEvAQAQHwJAAkAgAyoCCCIHIAIqAgAiBlwEQCAHIAdbBEAgAi0ABCECDAILIAYgBlwhBAsgAi0ABCECIARFDQAgAy0ADCACQf8BcUYNAQsgBSABIAYgAhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgA0EQaiQACwoAIABBMGtBCkkLBQAQAgALBAAgAAsUACAABEAgACAAKAIAKAIEEQAACwsrAQF/IAAoAgwiAQRAIAEQIwsgACgCACIBBEAgACABNgIEIAEQIwsgABAjC4EEAQN/IwBBEGsiAyQAIABCADcCBCAAQcEgOwAVIABCADcCDCAAQoCAgICAgIACNwIYIAAgAC0AF0HgAXE6ABcgACAALQAAQeABcUEFcjoAACAAIAAtABRBgAFxOgAUIABBIGpBAEHOABAqGiAAQgA3AXIgAEGEgBA2AW4gAEEANgF6IABCADcCgAEgAEIANwKIASAAQgA3ApABIABCADcCoAEgAEKAgICAgICA4P8ANwKYASAAQQA6AKgBIABBrAFqQQBBxAEQKhogAEHwAmohBCAAQbABaiECA0AgAkKAgID8i4CAwL9/NwIQIAJCgYCAgBA3AgggAkKAgID8i4CAwL9/NwIAIAJBGGoiAiAERw0ACyAAQoCAgPyLgIDAv383AvACIABCgICA/IuAgMC/fzcCgAMgAEKBgICAEDcC+AIgAEKAgID+h4CA4P8ANwKUAyAAQoCAgP6HgIDg/wA3AowDIABBiANqIgIgAi0AAEH4AXE6AAAgAEGcA2pBAEHYABAqGiAAQQA6AIQEIABBgICA/gc2AoAEIABBADoA/AMgAEGAgID+BzYC+AMgACABNgL0AyABBEAgAS0ACEEBcQRAIAAgAC0AFEHzAXFBCHI6ABQgACAALwAVQfD/A3FBBHI7ABULIANBEGokACAADwsgA0GiGjYCACADEHIQJAALMwAgACABQQJ0QfwlaigCAEECdGoqApQDIABBFGoiACABQQEgAhAiIAAgAUEBIAIQIZKSC44DAQp/IwBB0AJrIgEkACAAKALoAyIDIAAoAuwDIgVHBEAgAUGMAmohBiABQeABaiEHIAFBIGohCCABQRxqIQkgAUEQaiEEA0AgAygCACICLQAXQRB0QYCAMHFBgIAgRgRAIAFBCGpBAEHEAhAqGiABQYCAgP4HNgIMIARBADoACCAEQgA3AgAgCUEAQcQBECoaIAghAANAIABCgICA/IuAgMC/fzcCECAAQoGAgIAQNwIIIABCgICA/IuAgMC/fzcCACAAQRhqIgAgB0cNAAsgAUKAgID8i4CAwL9/NwPwASABQoGAgIAQNwPoASABQoCAgPyLgIDAv383A+ABIAFCgICA/oeAgOD/ADcChAIgAUKAgID+h4CA4P8ANwL8ASABIAEtAPgBQfgBcToA+AEgBkEAQcAAECoaIAJBmAFqIAFBCGpBxAIQKxogAkIANwKMAyACIAItAAAiAEEBciIKQfsBcSAKIABBBHEbOgAAIAIQTyACEF4LIANBBGoiAyAFRw0ACwsgAUHQAmokAAtMAQF/QQEhAQJAIAAtAB5BB3ENACAALQAiQQdxDQAgAC0ALkEHcQ0AIAAtACpBB3ENACAALQAmQQdxDQAgAC0AKEEHcUEARyEBCyABC3YCAX8BfSMAQRBrIgQkACAEQQhqIAAgAUECdEHcJWooAgAgAhBQQwAAwH8hBQJAAkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAACXQwAAAAAgBSAFWxsLogQCBn8CfgJ/QQghBAJAAkAgAEFHSw0AA0BBCCAEIARBCE0bIQRB6DopAwAiBwJ/QQggAEEDakF8cSAAQQhNGyIAQf8ATQRAIABBA3ZBAWsMAQsgAEEdIABnIgFrdkEEcyABQQJ0a0HuAGogAEH/H00NABpBPyAAQR4gAWt2QQJzIAFBAXRrQccAaiIBIAFBP08bCyIDrYgiCFBFBEADQCAIIAh6IgiIIQcCfiADIAinaiIDQQR0IgJB6DJqKAIAIgEgAkHgMmoiBkcEQCABIAQgABBjIgUNBSABKAIEIgUgASgCCDYCCCABKAIIIAU2AgQgASAGNgIIIAEgAkHkMmoiAigCADYCBCACIAE2AgAgASgCBCABNgIIIANBAWohAyAHQgGIDAELQeg6Qeg6KQMAQn4gA62JgzcDACAHQgGFCyIIQgBSDQALQeg6KQMAIQcLAkAgB1BFBEBBPyAHeadrIgZBBHQiAkHoMmooAgAhAQJAIAdCgICAgARUDQBB4wAhAyABIAJB4DJqIgJGDQADQCADRQ0BIAEgBCAAEGMiBQ0FIANBAWshAyABKAIIIgEgAkcNAAsgAiEBCyAAQTBqEGQNASABRQ0EIAEgBkEEdEHgMmoiAkYNBANAIAEgBCAAEGMiBQ0EIAEoAggiASACRw0ACwwECyAAQTBqEGRFDQMLQQAhBSAEIARBAWtxDQEgAEFHTQ0ACwsgBQwBC0EACwtwAgF/AX0jAEEQayIEJAAgBEEIaiAAIAFBAnRB7CVqKAIAIAIQKEMAAMB/IQUCQAJAAkAgBC0ADEEBaw4CAAECCyAEKgIIIQUMAQsgBCoCCCADlEMK1yM8lCEFCyAEQRBqJAAgBUMAAAAAIAUgBVsbC6ADAQN/IAEgAEEEaiIEakEBa0EAIAFrcSIFIAJqIAAgACgCACIBakEEa00EfyAAKAIEIgMgACgCCDYCCCAAKAIIIAM2AgQgBCAFRwRAIAAgAEEEaygCAEF+cWsiAyAFIARrIgQgAygCAGoiBTYCACAFQXxxIANqQQRrIAU2AgAgACAEaiIAIAEgBGsiATYCAAsCQCABIAJBGGpPBEAgACACakEIaiIDIAEgAmtBCGsiATYCACABQXxxIANqQQRrIAFBAXI2AgAgAwJ/IAMoAgBBCGsiAUH/AE0EQCABQQN2QQFrDAELIAFnIQQgAUEdIARrdkEEcyAEQQJ0a0HuAGogAUH/H00NABpBPyABQR4gBGt2QQJzIARBAXRrQccAaiIBIAFBP08bCyIBQQR0IgRB4DJqNgIEIAMgBEHoMmoiBCgCADYCCCAEIAM2AgAgAygCCCADNgIEQeg6Qeg6KQMAQgEgAa2GhDcDACAAIAJBCGoiATYCACABQXxxIABqQQRrIAE2AgAMAQsgACABakEEayABNgIACyAAQQRqBSADCwvmAwEFfwJ/QbAwKAIAIgEgAEEHakF4cSIDaiECAkAgA0EAIAEgAk8bDQAgAj8AQRB0SwRAIAIQFkUNAQtBsDAgAjYCACABDAELQfw7QTA2AgBBfwsiAkF/RwRAIAAgAmoiA0EQayIBQRA2AgwgAUEQNgIAAkACf0HgOigCACIABH8gACgCCAVBAAsgAkYEQCACIAJBBGsoAgBBfnFrIgRBBGsoAgAhBSAAIAM2AghBcCAEIAVBfnFrIgAgACgCAGpBBGstAABBAXFFDQEaIAAoAgQiAyAAKAIINgIIIAAoAgggAzYCBCAAIAEgAGsiATYCAAwCCyACQRA2AgwgAkEQNgIAIAIgAzYCCCACIAA2AgRB4DogAjYCAEEQCyACaiIAIAEgAGsiATYCAAsgAUF8cSAAakEEayABQQFyNgIAIAACfyAAKAIAQQhrIgFB/wBNBEAgAUEDdkEBawwBCyABQR0gAWciA2t2QQRzIANBAnRrQe4AaiABQf8fTQ0AGkE/IAFBHiADa3ZBAnMgA0EBdGtBxwBqIgEgAUE/TxsLIgFBBHQiA0HgMmo2AgQgACADQegyaiIDKAIANgIIIAMgADYCACAAKAIIIAA2AgRB6DpB6DopAwBCASABrYaENwMACyACQX9HC80BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQSBqIgEvAQAQHwJAAkAgAyoCCCIHIAIqAgAiBlwEQCAHIAdbBEAgAi0ABCECDAILIAYgBlwhBAsgAi0ABCECIARFDQAgAy0ADCACQf8BcUYNAQsgBSABIAYgAhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgA0EQaiQAC0ABAX8CQEGsOy0AAEEBcQRAQag7KAIAIQIMAQtBAUGAJxAMIQJBrDtBAToAAEGoOyACNgIACyACIAAgAUEAEBMLzQECA38CfSMAQRBrIgMkAEEBIQQgA0EIaiAAQfwAaiIFIAAgAUEBdGpBMmoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALDwAgASAAKAIAaiACOQMACw0AIAEgACgCAGorAwALCwAgAARAIAAQIwsLxwECBH8CfSMAQRBrIgIkACACQQhqIABB/ABqIgQgAEEeaiIFLwEAEB9BASEDAkACQCACKgIIIgcgASoCACIGXARAIAcgB1sEQCABLQAEIQEMAgsgBiAGXCEDCyABLQAEIQEgA0UNACACLQAMIAFB/wFxRg0BCyAEIAUgBiABEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyACQRBqJAALlgMCA34CfyAAvSICQjSIp0H/D3EiBEH/D0YEQCAARAAAAAAAAPA/oiIAIACjDwsgAkIBhiIBQoCAgICAgIDw/wBYBEAgAEQAAAAAAAAAAKIgACABQoCAgICAgIDw/wBRGw8LAn4gBEUEQEEAIQQgAkIMhiIBQgBZBEADQCAEQQFrIQQgAUIBhiIBQgBZDQALCyACQQEgBGuthgwBCyACQv////////8Hg0KAgICAgICACIQLIQEgBEH/B0oEQANAAkAgAUKAgICAgICACH0iA0IAUw0AIAMiAUIAUg0AIABEAAAAAAAAAACiDwsgAUIBhiEBIARBAWsiBEH/B0oNAAtB/wchBAsCQCABQoCAgICAgIAIfSIDQgBTDQAgAyIBQgBSDQAgAEQAAAAAAAAAAKIPCyABQv////////8HWARAA0AgBEEBayEEIAFCgICAgICAgARUIQUgAUIBhiEBIAUNAAsLIAJCgICAgICAgICAf4MgAUKAgICAgICACH0gBK1CNIaEIAFBASAEa62IIARBAEobhL8LiwEBA38DQCAAQQR0IgFB5DJqIAFB4DJqIgI2AgAgAUHoMmogAjYCACAAQQFqIgBBwABHDQALQTAQZBpBmDtBBjYCAEGcO0EANgIAEJwBQZw7Qcg7KAIANgIAQcg7QZg7NgIAQcw7QcMBNgIAQdA7QQA2AgAQjwFB0DtByDsoAgA2AgBByDtBzDs2AgALjwEBAn8jAEEQayIEJAACfUMAAAAAIAAvABVBgOAAcUUNABogBEEIaiAAQRRqIgBBASACQQJGQQF0IAFB/gFxQQJHGyIFIAIQNgJAIAQtAAxFDQAgBEEIaiAAIAUgAhA2IAQtAAxBA0YNACAAIAEgAiADEIEBDAELIAAgASACIAMQgAGMCyEDIARBEGokACADC4QBAQJ/AkACQCAAKALoAyICIAAoAuwDIgNGDQADQCACKAIAIAFGDQEgAkEEaiICIANHDQALDAELIAIgA0YNACABLQAXQRB0QYCAMHFBgIAgRgRAIAAgACgC4ANBAWs2AuADCyACIAJBBGoiASADIAFrEDMaIAAgA0EEazYC7ANBAQ8LQQALCwBByDEgACABEEkLPAAgAEUEQCACQQVHQQAgAhtFBEBBuDAgAyAEEEkaDwsgAyAEEHAaDwsgACABIAIgAyAEIAAoAgQRDQAaCyYBAX8jAEEQayIBJAAgASAANgIMQbgwQdglIAAQSRogAUEQaiQAC4cDAwN/BXwCfSAAKgKgA7siBiACoCECIAAqApwDuyIHIAGgIQggACgC9AMqAhgiC0MAAAAAXARAIAAqApADuyEJIAAqAowDIQwgACAHIAu7IgFBACAALQAAQRBxIgNBBHYiBBA0OAKcAyAAIAYgAUEAIAQQNDgCoAMgASAMuyIHohBsIgYgBmIiBEUgBplELUMc6+I2Gj9jcUUEQCAEIAZEAAAAAAAA8L+gmUQtQxzr4jYaP2NFciEFCyACIAmgIQogCCAHoCEHAn8gASAJohBsIgYgBmIiBEUEQEEAIAaZRC1DHOviNho/Yw0BGgsgBCAGRAAAAAAAAPC/oJlELUMc6+I2Gj9jRXILIQQgACAHIAEgA0EARyIDIAVxIAMgBUEBc3EQNCAIIAFBACADEDSTOAKMAyAAIAogASADIARxIAMgBEEBc3EQNCACIAFBACADEDSTOAKQAwsgACgC6AMiAyAAKALsAyIARwRAA0AgAygCACAIIAIQcyADQQRqIgMgAEcNAAsLC1UBAX0gAEEUaiIAIAEgAkECSSICIAQgBRA1IQYgACABIAIgBCAFEC0iBUMAAAAAYCADIAVecQR9IAUFIAZDAAAAAGBFBEAgAw8LIAYgAyADIAZdGwsLeAEBfwJAIAAoAgAiAgRAA0AgAUUNAiACIAEoAgQ2AgQgAiABKAIINgIIIAEoAgAhASAAKAIAIQAgAigCACICDQALCyAAIAEQPA8LAkAgAEUNACAAKAIAIgFFDQAgAEEANgIAA0AgASgCACEAIAEQIyAAIgENAAsLC5kCAgZ/AX0gAEEUaiEHQQMhBCAALQAUQQJ2QQNxIQUCQAJ/AkAgAUEBIAAoAuQDGyIIQQJGBEACQCAFQQJrDgIEAAILQQIhBAwDC0ECIQRBACAFQQFLDQEaCyAECyEGIAUhBAsgACAEIAggAyACIARBAkkiBRsQbiEKIAAgBiAIIAIgAyAFGxBuIQMgAEGcA2oiAEEBIAFBAkZBAXQiCCAFG0ECdGogCiAHIAQgASACECKSOAIAIABBAyABQQJHQQF0IgkgBRtBAnRqIAogByAEIAEgAhAhkjgCACAAIAhBASAGQQF2IgQbQQJ0aiADIAcgBiABIAIQIpI4AgAgACAJQQMgBBtBAnRqIAMgByAGIAEgAhAhkjgCAAvUAgEDfyMAQdACayIBJAAgAUEIakEAQcQCECoaIAFBADoAGCABQgA3AxAgAUGAgID+BzYCDCABQRxqQQBBxAEQKhogAUHgAWohAyABQSBqIQIDQCACQoCAgPyLgIDAv383AhAgAkKBgICAEDcCCCACQoCAgPyLgIDAv383AgAgAkEYaiICIANHDQALIAFCgICA/IuAgMC/fzcD8AEgAUKBgICAEDcD6AEgAUKAgID8i4CAwL9/NwPgASABQoCAgP6HgIDg/wA3AoQCIAFCgICA/oeAgOD/ADcC/AEgASABLQD4AUH4AXE6APgBIAFBjAJqQQBBwAAQKhogAEGYAWogAUEIakHEAhArGiAAQgA3AowDIAAgAC0AAEEBcjoAACAAEE8gACgC6AMiAiAAKALsAyIARwRAA0AgAigCABB3IAJBBGoiAiAARw0ACwsgAUHQAmokAAuuAgIKfwJ9IwBBIGsiASQAIAFBgAI7AB4gAEHuAGohByAAQfgDaiEFIABB8gBqIQggAEH2AGohCSAAQfwAaiEDQQAhAANAIAFBEGogAyAJIAFBHmogBGotAAAiAkEBdCIEaiIGLwEAEB8CQAJAIAEtABRFDQAgAUEIaiADIAYvAQAQHyABIAMgBCAIai8BABAfIAEtAAwgAS0ABEcNAAJAIAEqAggiDCAMXCIKIAEqAgAiCyALXHJFBEAgDCALk4tDF7fROF0NAQwCCyAKRSALIAtbcg0BCyABQRBqIAMgBi8BABAfDAELIAFBEGogAyAEIAdqLwEAEB8LIAUgAkEDdGoiAiABLQAUOgAEIAIgASgCEDYCAEEBIQQgACECQQEhACACRQ0ACyABQSBqJAALMgACf0EAIAAvABVBgOAAcUGAwABGDQAaQQEgABA7QwAAAABcDQAaIAAQQEMAAAAAXAsLewEBfSADIASTIgMgA1sEfUMAAAAAIABBFGoiACABIAIgBSAGEDUiByAEkyAHIAdcGyIHQ///f38gACABIAIgBSAGEC0iBSAEkyAFIAVcGyIEIAMgAyAEXhsiAyADIAddGyAHIAMgAyADXBsgAyADWyAHIAdbcRsFIAMLC98FAwR/BX0BfCAJQwAAAABdIAhDAAAAAF1yBH8gDQUgBSESIAEhEyADIRQgByERIAwqAhgiFUMAAAAAXARAIAG7IBW7IhZBAEEAEDQhEyADuyAWQQBBABA0IRQgBbsgFkEAQQAQNCESIAe7IBZBAEEAEDQhEQsCf0EAIAAgBEcNABogEiATk4tDF7fROF0gEyATXCINIBIgElxyRQ0AGkEAIBIgElsNABogDQshDAJAIAIgBkcNACAUIBRcIg0gESARXHJFBEAgESAUk4tDF7fROF0hDwwBCyARIBFbDQAgDSEPC0EBIQ5BASENAkAgDA0AIAEgCpMhAQJAIABFBEAgASABXCIAIAggCFxyRQRAQQAhDCABIAiTi0MXt9E4XUUNAgwDC0EAIQwgCCAIWw0BIAANAgwBCyAAQQJGIQwgAEECRw0AIARBAUcNACABIAhgDQECQCAIIAhcIgAgASABXHJFBEAgASAIk4tDF7fROF1FDQEMAwtBACENIAEgAVsNAkEBIQ0gAA0CC0EAIQ0MAQtBACENIAggCFwiACABIAVdRXINACAMRSABIAFcIhAgBSAFXHIgBEECR3JyDQBBASENIAEgCGANAEEAIQ0gACAQcg0AIAEgCJOLQxe30ThdIQ0LAkAgDw0AIAMgC5MhAQJAAkAgAkUEQCABIAFcIgIgCSAJXHJFBEBBACEAIAEgCZOLQxe30ThdRQ0CDAQLQQAhACAJIAlbDQEgAg0DDAELIAJBAkYhACACQQJHIAZBAUdyDQAgASAJYARADAMLIAkgCVwiACABIAFcckUEQCABIAmTi0MXt9E4XUUNAgwDC0EAIQ4gASABWw0CQQEhDiAADQIMAQsgCSAJXCICIAEgB11Fcg0AIABFIAEgAVwiBCAHIAdcciAGQQJHcnINACABIAlgDQFBACEOIAIgBHINASABIAmTi0MXt9E4XSEODAELQQAhDgsgDSAOcQsL4wEBA38jAEEQayIBJAACQAJAIAAtABRBCHFFDQBBASEDIAAvABVB8AFxQdAARg0AIAEgABAyIAEoAgQhAAJAIAEoAgAiAkUEQEEAIQMgAEUNAQsDQCACKALsAyACKALoAyICa0ECdSAATQ0DIAIgAEECdGooAgAiAC8AFSAALQAXQRB0ciIAQYDgAHFBgMAARyAAQYAecUGACkZxIgMNASABEC4gASgCBCIAIAEoAgAiAnINAAsLIAEoAggiAEUNAANAIAAoAgAhAiAAECMgAiIADQALCyABQRBqJAAgAw8LEAIAC7IBAQR/AkACQCAAKAIEIgMgACgCACIEKALsAyAEKALoAyIBa0ECdUkEQCABIANBAnRqIQIDQCACKAIAIgEtABdBEHRBgIAwcUGAgCBHDQMgASgC7AMgASgC6ANGDQJBDBAeIgIgBDYCBCACIAM2AgggAiAAKAIINgIAQQAhAyAAQQA2AgQgACABNgIAIAAgAjYCCCABIQQgASgC6AMiAiABKALsA0cNAAsLEAIACyAAEC4LC4wQAgx/B30jAEEgayINJAAgDUEIaiABEDIgDSgCCCIOIA0oAgwiDHIEQCADQQEgAxshFSAAQRRqIRQgBUEBaiEWA0ACQAJAAn8CQAJAAkACQAJAIAwgDigC7AMgDigC6AMiDmtBAnVJBEAgDiAMQQJ0aigCACILLwAVIAstABdBEHRyIgxBgIAwcUGAgBBGDQgCQAJAIAxBDHZBA3EOAwEKAAoLIAkhFyAKIRogASgC9AMtABRBBHFFBEAgACoClAMgFEECQQEQMCAUQQJBARAvkpMhFyAAKgKYAyAUQQBBARAwIBRBAEEBEC+SkyEaCyALQRRqIQ8gAS0AFEECdkEDcSEQAkACfwJAIANBAkciE0UEQEEAIQ5BAyEMAkAgEEECaw4CBAACC0ECIQwMAwtBAiEMQQAgEEEBSw0BGgsgDAshDiAQIQwLIA9BAkEBIBcQIiAPQQJBASAXECGSIR0gD0EAQQEgFxAiIRwgD0EAQQEgFxAhIRsgCyoC+AMhGAJAAkACQAJAIAstAPwDQQFrDgIBAAILIBggF5RDCtcjPJQhGAsgGEMAAAAAYEUNACAdIAsgA0EAIBcgFxAxkiEYDAELIA1BGGogDyALQTJqIhAgAxBFQwAAwH8hGCANLQAcRQ0AIA1BGGogDyAQIAMQRCANLQAcRQ0AIA1BGGogDyAQIAMQRSANLQAcQQNGDQAgDUEYaiAPIBAgAxBEIA0tABxBA0YNACALQQIgAyAAKgKUAyAUQQIgAxBLIBRBAiADEFKSkyAPQQIgAyAXEFEgD0ECIAMgFxCDAZKTIBcgFxAlIRgLIBwgG5IhHCALKgKABCEZAkACQAJAIAstAIQEQQFrDgIBAAILIBkgGpRDCtcjPJQhGQsgGUMAAAAAYEUNACAcIAsgA0EBIBogFxAxkiEZDAMLIA1BGGogDyALQTJqIhAQQwJAIA0tABxFDQAgDUEYaiAPIBAQQiANLQAcRQ0AIA1BGGogDyAQEEMgDS0AHEEDRg0AIA1BGGogDyAQEEIgDS0AHEEDRg0AIAtBACADIAAqApgDIBRBACADEEsgFEEAIAMQUpKTIA9BACADIBoQUSAPQQAgAyAaEIMBkpMgGiAXECUhGQwDC0MAAMB/IRkgGCAYXA0GIAtB/ABqIhAgC0H6AGoiEi8BABAgIhsgG1sNAwwFCyALLQAAQQhxDQggCxBPIAAgCyACIAstABRBA3EiDCAVIAwbIAQgFiAGIAsqApwDIAeSIAsqAqADIAiSIAkgChB+IBFyIQxBACERIAxBAXFFDQhBASERIAsgCy0AAEEBcjoAAAwICxACAAsgGCAYXCAZIBlcRg0BIAtB/ABqIhAgC0H6AGoiEi8BABAgIhsgG1wNASAYIBhcBEAgGSAckyAQIAsvAXoQIJQgHZIhGAwCCyAZIBlbDQELIBwgGCAdkyAQIBIvAQAQIJWSIRkLIBggGFwNASAZIBlbDQMLQQAMAQtBAQshEiALIBcgGCACQQFHIAxBAklxIBdDAAAAAF5xIBJxIhAbIBkgA0ECIBIgEBsgGSAZXCAXIBpBAEEGIAQgBSAGED0aIAsqApQDIA9BAkEBIBcQIiAPQQJBASAXECGSkiEYIAsqApgDIA9BAEEBIBcQIiAPQQBBASAXECGSkiEZC0EBIRAgCyAYIBkgA0EAQQAgFyAaQQFBASAEIAUgBhA9GiAAIAEgCyADIAxBASAXIBoQggEgACABIAsgAyAOQQAgFyAaEIIBIBFBAXFFBEAgCy0AAEEBcSEQCyABLQAUIhJBAnZBA3EhDAJAAn8CQAJAAkACQAJAAkACQAJAAkACfwJAIBNFBEBBACERQQMhDiAMQQJrDgIDDQELQQIhDkEAIAxBAUsNARoLIA4LIREgEkEEcUUNBCASQQhxRQ0BIAwhDgsgASEMIA8QXw0BDAILAkAgCy0ANEEHcQ0AIAstADhBB3ENACALLQBCQQdxDQAgDCEOIAEhDCALQUBrLwEAQQdxRQ0CDAELIAwhDgsgACEMCwJ/AkACQAJAIA5BAWsOAwABAgULIAtBmANqIQ4gC0GoA2ohE0EBIRIgDEGYA2oMAgsgC0GUA2ohDiALQZwDaiETQQIhEiAMQZQDagwBCyALQZQDaiEOIAtBpANqIRNBACESIAxBlANqCyEMIAsgEkECdGogDCoCACAOKgIAkyATKgIAkzgCnAMLIBFBAXFFDQUCQAJAIBFBAnEEQCABIQwgDxBfDQEMAgsgCy0ANEEHcQ0AIAstADhBB3ENACALLQBCQQdxDQAgASEMIAtBQGsvAQBBB3FFDQELIAAhDAsgEUEBaw4DAQIDAAsQJAALIAtBmANqIREgC0GoA2ohDkEBIRMgDEGYA2oMAgsgC0GUA2ohESALQZwDaiEOQQIhEyAMQZQDagwBCyALQZQDaiERIAtBpANqIQ5BACETIAxBlANqCyEMIAsgE0ECdGogDCoCACARKgIAkyAOKgIAkzgCnAMLIAsqAqADIRsgCyoCnAMgB0MAAAAAIA8QXxuTIRcCfQJAIAstADRBB3ENACALLQA4QQdxDQAgCy0AQkEHcQ0AIAtBQGsvAQBBB3ENAEMAAAAADAELIAgLIRogCyAXOAKcAyALIBsgGpM4AqADIBAhEQsgDUEIahAuIA0oAgwiDCANKAIIIg5yDQALCyANKAIQIgwEQANAIAwoAgAhACAMECMgACIMDQALCyANQSBqJAAgEUEBcQt2AgF/AX0jAEEQayIEJAAgBEEIaiAAIAFBAnRB7CVqKAIAIAIQUEMAAMB/IQUCQAJAAkAgBC0ADEEBaw4CAAECCyAEKgIIIQUMAQsgBCoCCCADlEMK1yM8lCEFCyAEQRBqJAAgBUMAAAAAl0MAAAAAIAUgBVsbC3gCAX8BfSMAQRBrIgQkACAEQQhqIABBAyACQQJHQQF0IAFB/gFxQQJHGyACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt4AgF/AX0jAEEQayIEJAAgBEEIaiAAQQEgAkECRkEBdCABQf4BcUECRxsgAhA2QwAAwH8hBQJAAkACQCAELQAMQQFrDgIAAQILIAQqAgghBQwBCyAEKgIIIAOUQwrXIzyUIQULIARBEGokACAFQwAAAAAgBSAFWxsLoA0BBH8jAEEQayIJJAAgCUEIaiACQRRqIgggA0ECRkEBdEEBIARB/gFxQQJGIgobIgsgAxA2IAYgByAKGyEHAkACQAJAAkACQAJAIAktAAxFDQAgCUEIaiAIIAsgAxA2IAktAAxBA0YNACAIIAQgAyAHEIEBIABBFGogBCADEDCSIAggBCADIAcQIpIhBkEBIQMCQAJ/AkACQAJAAkAgBA4EAgMBAAcLQQIhAwwBC0EAIQMLIAMgC0YNAgJAAkAgBA4EAgIAAQYLIABBlANqIQNBAAwCCyAAQZQDaiEDQQAMAQsgAEGYA2ohA0EBCyEAIAMqAgAgAiAAQQJ0aioClAOTIAaTIQYLIAIgBEECdEHcJWooAgBBAnRqIAY4ApwDDAULIAlBCGogCCADQQJHQQF0QQMgChsiCiADEDYCQCAJLQAMRQ0AIAlBCGogCCAKIAMQNiAJLQAMQQNGDQACfwJAAkACQCAEDgQCAgABBQsgAEGUA2ohBUEADAILIABBlANqIQVBAAwBCyAAQZgDaiEFQQELIQEgBSoCACACQZQDaiIFIAFBAnRqKgIAkyAAQRRqIAQgAxAvkyAIIAQgAyAHECGTIAggBCADIAcQgAGTIQZBASEDAkACfwJAAkACQAJAIAQOBAIDAQAHC0ECIQMMAQtBACEDCyADIAtGDQICQAJAIAQOBAICAAEGCyAAQZQDaiEDQQAMAgsgAEGUA2ohA0EADAELIABBmANqIQNBAQshACADKgIAIAUgAEECdGoqAgCTIAaTIQYLIAIgBEECdEHcJWooAgBBAnRqIAY4ApwDDAULAkACQAJAIAUEQCABLQAUQQR2QQdxIgBBBUsNCEEBIAB0IgBBMnENASAAQQlxBEAgBEECdEHcJWooAgAhACAIIAQgAyAGEEEgASAAQQJ0IgBqIgEqArwDkiEGIAAgAmogAigC9AMtABRBAnEEfSAGBSAGIAEqAswDkgs4ApwDDAkLIAEgBEECdEHsJWooAgBBAnRqIgAqArwDIAggBCADIAYQYpIhBiACKAL0Ay0AFEECcUUEQCAGIAAqAswDkiEGCwJAAkACQAJAIAQOBAEBAgAICyABKgKUAyACKgKUA5MhB0ECIQMMAgsgASoCmAMgAioCmAOTIQdBASEDAkAgBA4CAgAHC0EDIQMMAQsgASoClAMgAioClAOTIQdBACEDCyACIANBAnRqIAcgBpM4ApwDDAgLIAIvABZBD3EiBUUEQCABLQAVQQR2IQULIAVBBUYEQCABLQAUQQhxRQ0CCyABLwAVQYCAA3FBgIACRgRAIAVBAmsOAgEHAwsgBUEISw0HQQEgBXRB8wNxDQYgBUECRw0CC0EAIQACfQJ/AkACQAJAAkACfwJAAkACQCAEDgQCAgABBAsgASoClAMhB0ECIQAgAUG8A2oMAgsgASoClAMhByABQcQDagwBCyABKgKYAyEHAkACQCAEDgIAAQMLQQMhACABQcADagwBC0EBIQAgAUHIA2oLIQUgByAFKgIAkyABQbwDaiIIIABBAnRqKgIAkyIHIAIoAvQDLQAUQQJxDQUaAkAgBA4EAAIDBAELQQMhACABQdADagwECxAkAAtBASEAIAFB2ANqDAILQQIhACABQcwDagwBC0EAIQAgAUHUA2oLIQUgByAFKgIAkyABIABBAnRqKgLMA5MLIAIgBEECdCIFQfwlaigCAEECdGoqApQDIAJBFGoiACAEQQEgBhAiIAAgBEEBIAYQIZKSk0MAAAA/lCAIIAVB3CVqKAIAIgVBAnRqKgIAkiAAIAQgAyAGEEGSIQYgAiAFQQJ0aiACKAL0Ay0AFEECcQR9IAYFIAYgASAFQQJ0aioCzAOSCzgCnAMMBgsgAS8AFUGAgANxQYCAAkcNBAsgASAEQQJ0QewlaigCAEECdGoiACoCvAMgCCAEIAMgBhBikiEGIAIoAvQDLQAUQQJxRQRAIAYgACoCzAOSIQYLAkACQCAEDgQBAQMAAgsgASoClAMgAioClAOTIQdBAiEDDAMLIAEqApgDIAIqApgDkyEHQQEhAwJAIAQOAgMAAQtBAyEDDAILECQACyABKgKUAyACKgKUA5MhB0EAIQMLIAIgA0ECdGogByAGkzgCnAMMAQsgBEECdEHcJWooAgAhACAIIAQgAyAGEEEgASAAQQJ0IgBqIgEqArwDkiEGIAAgAmogAigC9AMtABRBAnEEfSAGBSAGIAEqAswDkgs4ApwDCyAJQRBqJAALcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QewlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIAIAELBQBBpDsLaQECfyMAQRBrIgYkACABIAAoAgQiB0EBdWohASAAKAIAIQAgBiABIAIgAyAEIAUgB0EBcQR/IAEoAgAgAGooAgAFIAALERAAQRAQHiIAIAYpAwg3AwggACAGKQMANwMAIAZBEGokACAACwUAQaA7Cx0AIAAoAgAiACAALQAAQfcBcUEIQQAgARtyOgAAC6oBAgJ/AX0jAEEQayICJAAgACgCACEAIAFB/wFxIgNBBkkEQAJ/AkACQAJAIANBBGsOAgABAgsgAEHUA2ogAC0AiANBA3FBAkYNAhogAEHMA2oMAgsgAEHMA2ogAC0AiANBA3FBAkYNARogAEHUA2oMAQsgACABQf8BcUECdGpBzANqCyoCACEEIAJBEGokACAEuw8LIAJB7hA2AgAgAEEFQdglIAIQLBAkAAuqAQICfwF9IwBBEGsiAiQAIAAoAgAhACABQf8BcSIDQQZJBEACfwJAAkACQCADQQRrDgIAAQILIABBxANqIAAtAIgDQQNxQQJGDQIaIABBvANqDAILIABBvANqIAAtAIgDQQNxQQJGDQEaIABBxANqDAELIAAgAUH/AXFBAnRqQbwDagsqAgAhBCACQRBqJAAgBLsPCyACQe4QNgIAIABBBUHYJSACECwQJAALqgECAn8BfSMAQRBrIgIkACAAKAIAIQAgAUH/AXEiA0EGSQRAAn8CQAJAAkAgA0EEaw4CAAECCyAAQbQDaiAALQCIA0EDcUECRg0CGiAAQawDagwCCyAAQawDaiAALQCIA0EDcUECRg0BGiAAQbQDagwBCyAAIAFB/wFxQQJ0akGsA2oLKgIAIQQgAkEQaiQAIAS7DwsgAkHuEDYCACAAQQVB2CUgAhAsECQAC08AIAAgASgCACIBKgKcA7s5AwAgACABKgKkA7s5AwggACABKgKgA7s5AxAgACABKgKoA7s5AxggACABKgKMA7s5AyAgACABKgKQA7s5AygLDAAgACgCACoCkAO7CwwAIAAoAgAqAowDuwsMACAAKAIAKgKoA7sLDAAgACgCACoCoAO7CwwAIAAoAgAqAqQDuwsMACAAKAIAKgKcA7sL6AMCBH0FfyMAQUBqIgokACAAKAIAIQAgCkEIakEAQTgQKhpB8DpB8DooAgBBAWo2AgAgABB4IAAtABRBA3EiCCADQQEgA0H/AXEbIAgbIQkgAEEUaiEIIAG2IQQgACoC+AMhBQJ9AkACQAJAIAAtAPwDQQFrDgIBAAILIAUgBJRDCtcjPJQhBQsgBUMAAAAAYEUNACAAIAlB/wFxQQAgBCAEEDEgCEECQQEgBBAiIAhBAkEBIAQQIZKSDAELIAggCUH/AXFBACAEIAQQLSIFIAVbBEBBAiELIAggCUH/AXFBACAEIAQQLQwBCyAEIARcIQsgBAshByACtiEFIAAqAoAEIQYgACAHAn0CQAJAAkAgAC0AhARBAWsOAgEAAgsgBiAFlEMK1yM8lCEGCyAGQwAAAABgRQ0AIAAgCUH/AXFBASAFIAQQMSAIQQBBASAEECIgCEEAQQEgBBAhkpIMAQsgCCAJQf8BcSIJQQEgBSAEEC0iBiAGWwRAQQIhDCAIIAlBASAFIAQQLQwBCyAFIAVcIQwgBQsgA0H/AXEgCyAMIAQgBUEBQQAgCkEIakEAQfA6KAIAED0EQCAAIAAtAIgDQQNxIAQgBRB2IABEAAAAAAAAAABEAAAAAAAAAAAQcwsgCkFAayQACw0AIAAoAgAtAABBAXELFQAgACgCACIAIAAtAABB/gFxOgAACxAAIAAoAgAtAABBBHFBAnYLegECfyMAQRBrIgEkACAAKAIAIgAoAggEQANAIAAtAAAiAkEEcUUEQCAAIAJBBHI6AAAgACgCECICBEAgACACEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQELCyABQRBqJAAPCyABQYAINgIAIABBBUHYJSABECwQJAALLgEBfyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgBBADYCEAsXACAAKAIEKAIIIgAgACgCACgCCBEAAAsuAQF/IAAoAgghAiAAIAE2AgggAgRAIAIgAigCACgCBBEAAAsgACgCAEEFNgIQCz4BAX8gACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIAIgBBADYCCCAAIAAtAABB7wFxOgAAC0kBAX8jAEEQayIGJAAgBiABKAIEKAIEIgEgAiADIAQgBSABKAIAKAIIERAAIAAgBisDALY4AgAgACAGKwMItjgCBCAGQRBqJAALcwECfyMAQRBrIgIkACAAKAIEIQMgACABNgIEIAMEQCADIAMoAgAoAgQRAAALIAAoAgAiACgC6AMgACgC7ANHBEAgAkH5IzYCACAAQQVB2CUgAhAsECQACyAAQQQ2AgggACAALQAAQRByOgAAIAJBEGokAAs8AQF/AkAgACgCACIAKALsAyAAKALoAyIAa0ECdSABTQ0AIAAgAUECdGooAgAiAEUNACAAKAIEIQILIAILGQAgACgCACgC5AMiAEUEQEEADwsgACgCBAsXACAAKAIAIgAoAuwDIAAoAugDa0ECdQuOAwEDfyMAQdACayICJAACQCAAKAIAIgAoAuwDIAAoAugDRg0AIAEoAgAiAygC5AMhASAAIAMQb0UNACAAIAFGBEAgAkEIakEAQcQCECoaIAJBADoAGCACQgA3AxAgAkGAgID+BzYCDCACQRxqQQBBxAEQKhogAkHgAWohBCACQSBqIQEDQCABQoCAgPyLgIDAv383AhAgAUKBgICAEDcCCCABQoCAgPyLgIDAv383AgAgAUEYaiIBIARHDQALIAJCgICA/IuAgMC/fzcD8AEgAkKBgICAEDcD6AEgAkKAgID8i4CAwL9/NwPgASACQoCAgP6HgIDg/wA3AoQCIAJCgICA/oeAgOD/ADcC/AEgAiACLQD4AUH4AXE6APgBIAJBjAJqQQBBwAAQKhogA0GYAWogAkEIakHEAhArGiADQQA2AuQDCwNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIAJB0AJqJAAL4AcBCH8jAEHQAGsiByQAIAAoAgAhAAJAAkAgASgCACIIKALkA0UEQCAAKAIIDQEgCC0AF0EQdEGAgDBxQYCAIEYEQCAAIAAoAuADQQFqNgLgAwsgACgC6AMiASACQQJ0aiEGAkAgACgC7AMiBCAAQfADaiIDKAIAIgVJBEAgBCAGRgRAIAYgCDYCACAAIAZBBGo2AuwDDAILIAQgBCICQQRrIgFLBEADQCACIAEoAgA2AgAgAkEEaiECIAFBBGoiASAESQ0ACwsgACACNgLsAyAGQQRqIgEgBEcEQCAEIAQgAWsiAUF8cWsgBiABEDMaCyAGIAg2AgAMAQsgBCABa0ECdUEBaiIEQYCAgIAETw0DAkAgB0EgakH/////AyAFIAFrIgFBAXUiBSAEIAQgBUkbIAFB/P///wdPGyACIAMQSiIDKAIIIgIgAygCDEcNACADKAIEIgEgAygCACIESwRAIAMgASABIARrQQJ1QQFqQX5tQQJ0IgRqIAEgAiABayIBEDMgAWoiAjYCCCADIAMoAgQgBGo2AgQMAQsgB0E4akEBIAIgBGtBAXUgAiAERhsiASABQQJ2IAMoAhAQSiIFKAIIIQQCfyADKAIIIgIgAygCBCIBRgRAIAQhAiABDAELIAQgAiABa2ohAgNAIAQgASgCADYCACABQQRqIQEgBEEEaiIEIAJHDQALIAMoAgghASADKAIECyEEIAMoAgAhCSADIAUoAgA2AgAgBSAJNgIAIAMgBSgCBDYCBCAFIAQ2AgQgAyACNgIIIAUgATYCCCADKAIMIQogAyAFKAIMNgIMIAUgCjYCDCABIARHBEAgBSABIAQgAWtBA2pBfHFqNgIICyAJRQ0AIAkQIyADKAIIIQILIAIgCDYCACADIAMoAghBBGo2AgggAyADKAIEIAYgACgC6AMiAWsiAmsgASACEDM2AgQgAygCCCAGIAAoAuwDIAZrIgQQMyEGIAAoAugDIQEgACADKAIENgLoAyADIAE2AgQgACgC7AMhAiAAIAQgBmo2AuwDIAMgAjYCCCAAKALwAyEEIAAgAygCDDYC8AMgAyABNgIAIAMgBDYCDCABIAJHBEAgAyACIAEgAmtBA2pBfHFqNgIICyABRQ0AIAEQIwsgCCAANgLkAwNAIAAtAAAiAUEEcUUEQCAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQELCyAHQdAAaiQADwsgB0HEIzYCECAAQQVB2CUgB0EQahAsECQACyAHQckkNgIAIABBBUHYJSAHECwQJAALEAIACxAAIAAoAgAtAABBAnFBAXYLWQIBfwF9IwBBEGsiAiQAIAJBCGogACgCACIAQfwAaiAAIAFB/wFxQQF0ai8BaBAfQwAAwH8hAwJAAkAgAi0ADA4EAQAAAQALIAIqAgghAwsgAkEQaiQAIAMLTgEBfyMAQRBrIgMkACADQQhqIAEoAgAiAUH8AGogASACQf8BcUEBdGovAUQQHyADLQAMIQEgACADKgIIuzkDCCAAIAE2AgAgA0EQaiQAC14CAX8BfCMAQRBrIgIkACACQQhqIAAoAgAiAEH8AGogACABQf8BcUEBdGovAVYQH0QAAAAAAAD4fyEDAkACQCACLQAMDgQBAAABAAsgAioCCLshAwsgAkEQaiQAIAMLJAEBfUMAAMB/IAAoAgAiAEH8AGogAC8BehAgIgEgASABXBu7C0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXgQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXYQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXQQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXIQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAXAQHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0QBAX8jAEEQayICJAAgAkEIaiABKAIAIgFB/ABqIAEvAW4QHyACLQAMIQEgACACKgIIuzkDCCAAIAE2AgAgAkEQaiQAC0gCAX8BfQJ9IAAoAgAiAEH8AGoiASAALwEcECAiAiACXARAQwAAgD9DAAAAACAAKAL0Ay0ACEEBcRsMAQsgASAALwEcECALuws2AgF/AX0gACgCACIAQfwAaiIBIAAvARoQICICIAJcBEBEAAAAAAAAAAAPCyABIAAvARoQILsLRAEBfyMAQRBrIgIkACACQQhqIAEoAgAiAUH8AGogAS8BHhAfIAItAAwhASAAIAIqAgi7OQMIIAAgATYCACACQRBqJAALEAAgACgCAC0AF0ECdkEDcQsNACAAKAIALQAXQQNxC04BAX8jAEEQayIDJAAgA0EIaiABKAIAIgFB/ABqIAEgAkH/AXFBAXRqLwEgEB8gAy0ADCEBIAAgAyoCCLs5AwggACABNgIAIANBEGokAAsQACAAKAIALQAUQQR2QQdxCw0AIAAoAgAvABVBDnYLDQAgACgCAC0AFEEDcQsQACAAKAIALQAUQQJ2QQNxCw0AIAAoAgAvABZBD3ELEAAgACgCAC8AFUEEdkEPcQsNACAAKAIALwAVQQ9xC04BAX8jAEEQayIDJAAgA0EIaiABKAIAIgFB/ABqIAEgAkH/AXFBAXRqLwEyEB8gAy0ADCEBIAAgAyoCCLs5AwggACABNgIAIANBEGokAAsQACAAKAIALwAVQQx2QQNxCxAAIAAoAgAtABdBBHZBAXELgQECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEIgBIANBEGokAAt5AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQiAEgBEEQaiQAC3EBAX8CQCAAKAIAIgAtAAAiAkECcUEBdiABRg0AIAAgAkH9AXFBAkEAIAEbcjoAAANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC4EBAgN/AX0jAEEQayIDJAAgACgCACEEAn0gArYiBiAGXARAQQAhAEMAAMB/DAELQQBBAiAGQwAAgH9bIAZDAACA/1tyIgUbIQBDAADAfyAGIAUbCyEGIAMgADoADCADIAY4AgggAyADKQMINwMAIAQgAUH/AXEgAxCOASADQRBqJAALeQIBfQJ/IwBBEGsiBCQAIAAoAgAhBSAEAn8gArYiAyADXARAQwAAwH8hA0EADAELQwAAwH8gAyADQwAAgH9bIANDAACA/1tyIgAbIQMgAEULOgAMIAQgAzgCCCAEIAQpAwg3AwAgBSABQf8BcSAEEI4BIARBEGokAAv5AQICfQR/IwBBEGsiBSQAIAAoAgAhAAJ/IAK2IgMgA1wEQEMAAMB/IQNBAAwBC0MAAMB/IAMgA0MAAIB/WyADQwAAgP9bciIGGyEDIAZFCyEGQQEhByAFQQhqIABB/ABqIgggACABQf8BcUEBdGpB1gBqIgEvAQAQHwJAAkAgAyAFKgIIIgRcBH8gBCAEWw0BIAMgA1wFIAcLRQ0AIAUtAAwgBkYNAQsgCCABIAMgBhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgBUEQaiQAC7UBAgN/An0CQCAAKAIAIgBB/ABqIgMgAEH6AGoiAi8BABAgIgYgAbYiBVsNACAFIAVbIgRFIAYgBlxxDQACQCAEIAVDAAAAAFsgBYtDAACAf1tyRXFFBEAgAiACLwEAQfj/A3E7AQAMAQsgAyACIAVBAxBMCwNAIAAtAAAiAkEEcQ0BIAAgAkEEcjoAACAAKAIQIgIEQCAAIAIRAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EBIAIQVSACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEBIAMQVSADQRBqJAALfAIDfwF9IwBBEGsiAiQAIAAoAgAhAwJ9IAG2IgUgBVwEQEEAIQBDAADAfwwBC0EAQQIgBUMAAIB/WyAFQwAAgP9bciIEGyEAQwAAwH8gBSAEGwshBSACIAA6AAwgAiAFOAIIIAIgAikDCDcDACADQQAgAhBVIAJBEGokAAt0AgF9An8jAEEQayIDJAAgACgCACEEIAMCfyABtiICIAJcBEBDAADAfyECQQAMAQtDAADAfyACIAJDAACAf1sgAkMAAID/W3IiABshAiAARQs6AAwgAyACOAIIIAMgAykDCDcDACAEQQAgAxBVIANBEGokAAt8AgN/AX0jAEEQayICJAAgACgCACEDAn0gAbYiBSAFXARAQQAhAEMAAMB/DAELQQBBAiAFQwAAgH9bIAVDAACA/1tyIgQbIQBDAADAfyAFIAQbCyEFIAIgADoADCACIAU4AgggAiACKQMINwMAIANBASACEFYgAkEQaiQAC3QCAX0CfyMAQRBrIgMkACAAKAIAIQQgAwJ/IAG2IgIgAlwEQEMAAMB/IQJBAAwBC0MAAMB/IAIgAkMAAIB/WyACQwAAgP9bciIAGyECIABFCzoADCADIAI4AgggAyADKQMINwMAIARBASADEFYgA0EQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EAIAIQViACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEAIAMQViADQRBqJAALPwEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIABBASABEEYgAUEQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EBIAIQRiACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEBIAMQRiADQRBqJAALPwEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIABBACABEEYgAUEQaiQAC3wCA38BfSMAQRBrIgIkACAAKAIAIQMCfSABtiIFIAVcBEBBACEAQwAAwH8MAQtBAEECIAVDAACAf1sgBUMAAID/W3IiBBshAEMAAMB/IAUgBBsLIQUgAiAAOgAMIAIgBTgCCCACIAIpAwg3AwAgA0EAIAIQRiACQRBqJAALdAIBfQJ/IwBBEGsiAyQAIAAoAgAhBCADAn8gAbYiAiACXARAQwAAwH8hAkEADAELQwAAwH8gAiACQwAAgH9bIAJDAACA/1tyIgAbIQIgAEULOgAMIAMgAjgCCCADIAMpAwg3AwAgBEEAIAMQRiADQRBqJAALoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRxqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRpqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLPQEBfyMAQRBrIgEkACAAKAIAIQAgAUEDOgAMIAFBgICA/gc2AgggASABKQMINwMAIAAgARBrIAFBEGokAAt6AgN/AX0jAEEQayICJAAgACgCACEDAn0gAbYiBSAFXARAQQAhAEMAAMB/DAELQQBBAiAFQwAAgH9bIAVDAACA/1tyIgQbIQBDAADAfyAFIAQbCyEFIAIgADoADCACIAU4AgggAiACKQMINwMAIAMgAhBrIAJBEGokAAtyAgF9An8jAEEQayIDJAAgACgCACEEIAMCfyABtiICIAJcBEBDAADAfyECQQAMAQtDAADAfyACIAJDAACAf1sgAkMAAID/W3IiABshAiAARQs6AAwgAyACOAIIIAMgAykDCDcDACAEIAMQayADQRBqJAALoAECA38CfQJAIAAoAgAiAEH8AGoiAyAAQRhqIgIvAQAQICIGIAG2IgVbDQAgBSAFWyIERSAGIAZccQ0AAkAgBEUEQCACIAIvAQBB+P8DcTsBAAwBCyADIAIgBUEDEEwLA0AgAC0AACICQQRxDQEgACACQQRyOgAAIAAoAhAiAgRAIAAgAhEAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLkAEBAX8CQCAAKAIAIgBBF2otAAAiAkECdkEDcSABQf8BcUYNACAAIAAvABUgAkEQdHIiAjsAFSAAIAJB///PB3EgAUEDcUESdHJBEHY6ABcDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuNAQEBfwJAIAAoAgAiAEEXai0AACICQQNxIAFB/wFxRg0AIAAgAC8AFSACQRB0ciICOwAVIAAgAkH///MHcSABQQNxQRB0ckEQdjoAFwNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC0MBAX8jAEEQayICJAAgACgCACEAIAJBAzoADCACQYCAgP4HNgIIIAIgAikDCDcDACAAIAFB/wFxIAIQZSACQRBqJAALgAECA38BfSMAQRBrIgMkACAAKAIAIQQCfSACtiIGIAZcBEBBACEAQwAAwH8MAQtBAEECIAZDAACAf1sgBkMAAID/W3IiBRshAEMAAMB/IAYgBRsLIQYgAyAAOgAMIAMgBjgCCCADIAMpAwg3AwAgBCABQf8BcSADEGUgA0EQaiQAC3gCAX0CfyMAQRBrIgQkACAAKAIAIQUgBAJ/IAK2IgMgA1wEQEMAAMB/IQNBAAwBC0MAAMB/IAMgA0MAAIB/WyADQwAAgP9bciIAGyEDIABFCzoADCAEIAM4AgggBCAEKQMINwMAIAUgAUH/AXEgBBBlIARBEGokAAt3AQF/AkAgACgCACIALQAUIgJBBHZBB3EgAUH/AXFGDQAgACACQY8BcSABQQR0QfAAcXI6ABQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuJAQEBfwJAIAFB/wFxIAAoAgAiAC8AFSICQQ52Rg0AIABBF2ogAiAALQAXQRB0ciICQRB2OgAAIAAgAkH//wBxIAFBDnRyOwAVA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLcAEBfwJAIAAoAgAiAC0AFCICQQNxIAFB/wFxRg0AIAAgAkH8AXEgAUEDcXI6ABQDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwt2AQF/AkAgACgCACIALQAUIgJBAnZBA3EgAUH/AXFGDQAgACACQfMBcSABQQJ0QQxxcjoAFANAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC48BAQF/AkAgACgCACIALwAVIgJBCHZBD3EgAUH/AXFGDQAgAEEXaiACIAAtABdBEHRyIgJBEHY6AAAgACACQf/hA3EgAUEPcUEIdHI7ABUDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwuPAQEBfwJAIAFB/wFxIAAoAgAiAC8AFSAAQRdqLQAAQRB0ciICQfABcUEEdkYNACAAIAJBEHY6ABcgACACQY/+A3EgAUEEdEHwAXFyOwAVA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsLhwEBAX8CQCAAKAIAIgAvABUgAEEXai0AAEEQdHIiAkEPcSABQf8BcUYNACAAIAJBEHY6ABcgACACQfD/A3EgAUEPcXI7ABUDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCwtDAQF/IwBBEGsiAiQAIAAoAgAhACACQQM6AAwgAkGAgID+BzYCCCACIAIpAwg3AwAgACABQf8BcSACEGcgAkEQaiQAC4ABAgN/AX0jAEEQayIDJAAgACgCACEEAn0gArYiBiAGXARAQQAhAEMAAMB/DAELQQBBAiAGQwAAgH9bIAZDAACA/1tyIgUbIQBDAADAfyAGIAUbCyEGIAMgADoADCADIAY4AgggAyADKQMINwMAIAQgAUH/AXEgAxBnIANBEGokAAt4AgF9An8jAEEQayIEJAAgACgCACEFIAQCfyACtiIDIANcBEBDAADAfyEDQQAMAQtDAADAfyADIANDAACAf1sgA0MAAID/W3IiABshAyAARQs6AAwgBCADOAIIIAQgBCkDCDcDACAFIAFB/wFxIAQQZyAEQRBqJAALjwEBAX8CQCAAKAIAIgAvABUiAkEMdkEDcSABQf8BcUYNACAAQRdqIAIgAC0AF0EQdHIiAkEQdjoAACAAIAJB/58DcSABQQNxQQx0cjsAFQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLC5ABAQF/AkAgACgCACIAQRdqLQAAIgJBBHZBAXEgAUH/AXFGDQAgACAALwAVIAJBEHRyIgI7ABUgACACQf//vwdxIAFBAXFBFHRyQRB2OgAXA0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsL9g0CCH8CfSMAQRBrIgIkAAJAAkAgASgCACIFLQAUIAAoAgAiAS0AFHNB/wBxDQAgBS8AFSAFLQAXQRB0ciABLwAVIAEtABdBEHRyc0H//z9xDQAgBUH8AGohByABQfwAaiEIAkAgAS8AGCIAQQdxRQRAIAUtABhBB3FFDQELIAggABAgIgogByAFLwAYECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AGiIAQQdxRQRAIAUtABpBB3FFDQELIAggABAgIgogByAFLwAaECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AHCIAQQdxRQRAIAUtABxBB3FFDQELIAggABAgIgogByAFLwAcECAiC1sNACAKIApbIAsgC1tyDQELAkAgAS8AHiIAQQdxRQRAIAUtAB5BB3FFDQELIAJBCGogCCAAEB8gAiAHIAUvAB4QH0EBIQAgAioCCCIKIAIqAgAiC1wEfyAKIApbDQIgCyALXAUgAAtFDQEgAi0ADCACLQAERw0BCyAFQSBqIQAgAUEgaiEGA0ACQCAGIANBAXRqLwAAIgRBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAQQHyACIAcgAC8AABAfQQEhBCACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSAEC0UNAiACLQAMIAItAARHDQILIABBAmohACADQQFqIgNBCUcNAAsgBUEyaiEAIAFBMmohBkEAIQMDQAJAIAYgA0EBdGovAAAiBEEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBBAfIAIgByAALwAAEB9BASEEIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAQLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAIANBAWoiA0EJRw0ACyAFQcQAaiEAIAFBxABqIQZBACEDA0ACQCAGIANBAXRqLwAAIgRBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAQQHyACIAcgAC8AABAfQQEhBCACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSAEC0UNAiACLQAMIAItAARHDQILIABBAmohACADQQFqIgNBCUcNAAsgBUHWAGohACABQdYAaiEGQQAhAwNAAkAgBiADQQF0ai8AACIEQQdxRQRAIAAtAABBB3FFDQELIAJBCGogCCAEEB8gAiAHIAAvAAAQH0EBIQQgAioCCCIKIAIqAgAiC1wEfyAKIApbDQMgCyALXAUgBAtFDQIgAi0ADCACLQAERw0CCyAAQQJqIQAgA0EBaiIDQQlHDQALIAVB6ABqIQAgAUHoAGohBkEAIQMDQAJAIAYgA0EBdGovAAAiBEEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBBAfIAIgByAALwAAEB9BASEEIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAQLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAIANBAWoiA0EDRw0ACyAFQe4AaiEAIAFB7gBqIQlBACEEQQAhAwNAAkAgCSADQQF0ai8AACIGQQdxRQRAIAAtAABBB3FFDQELIAJBCGogCCAGEB8gAiAHIAAvAAAQH0EBIQMgAioCCCIKIAIqAgAiC1wEfyAKIApbDQMgCyALXAUgAwtFDQIgAi0ADCACLQAERw0CCyAAQQJqIQBBASEDIAQhBkEBIQQgBkUNAAsgBUHyAGohACABQfIAaiEJQQAhBEEAIQMDQAJAIAkgA0EBdGovAAAiBkEHcUUEQCAALQAAQQdxRQ0BCyACQQhqIAggBhAfIAIgByAALwAAEB9BASEDIAIqAggiCiACKgIAIgtcBH8gCiAKWw0DIAsgC1wFIAMLRQ0CIAItAAwgAi0ABEcNAgsgAEECaiEAQQEhAyAEIQZBASEEIAZFDQALIAVB9gBqIQAgAUH2AGohCUEAIQRBACEDA0ACQCAJIANBAXRqLwAAIgZBB3FFBEAgAC0AAEEHcUUNAQsgAkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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",!WA(kA)){var Mo=kA;kA=t.locateFile?t.locateFile(Mo,a):a+Mo}function Ro(){var I=kA;try{if(I==kA&&l)return new Uint8Array(l);if(WA(I))try{var B=Wl(I.slice(37)),Q=new Uint8Array(B.length);for(I=0;I<B.length;++I)Q[I]=B.charCodeAt(I);var p=Q}catch{throw Error("Converting base64 string to bytes failed.")}else p=void 0;var y=p;if(y)return y;throw"both async and sync fetching of the wasm failed"}catch(D){tA(D)}}function Dl(){return l||typeof fetch!="function"?Promise.resolve().then(function(){return Ro()}):fetch(kA,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at '"+kA+"'";return I.arrayBuffer()}).catch(function(){return Ro()})}function zi(I){for(;0<I.length;)I.shift()(t)}function Fo(I){if(I===void 0)return"_unknown";I=I.replace(/[^a-zA-Z0-9_]/g,"$");var B=I.charCodeAt(0);return 48<=B&&57>=B?"_"+I:I}function ji(I,B){return I=Fo(I),function(){return B.apply(this,arguments)}}var QA=[{},{value:void 0},{value:null},{value:!0},{value:!1}],$i=[];function De(I){var B=Error,Q=ji(I,function(p){this.name=I,this.message=p,p=Error(p).stack,p!==void 0&&(this.stack=this.toString()+`
|
|
28
|
-
`+p.replace(/^Error(:[^\n]*)?\n/,""))});return Q.prototype=Object.create(B.prototype),Q.prototype.constructor=Q,Q.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Q}var yt=void 0;function H(I){throw new yt(I)}var Wt=I=>(I||H("Cannot use deleted val. handle = "+I),QA[I].value),ve=I=>{switch(I){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var B=$i.length?$i.pop():QA.length;return QA[B]={ga:1,value:I},B}},Go=void 0,_o=void 0;function eA(I){for(var B="";C[I];)B+=_o[C[I++]];return B}var Xt=[];function An(){for(;Xt.length;){var I=Xt.pop();I.M.$=!1,I.delete()}}var Vt=void 0,_A={};function tn(I,B){for(B===void 0&&H("ptr should not be undefined");I.R;)B=I.ba(B),I=I.R;return B}var tt={};function No(I){I=Wo(I);var B=eA(I);return LA(I),B}function Ho(I,B){var Q=tt[I];return Q===void 0&&H(B+" has unknown type "+No(I)),Q}function Se(){}var en=!1;function Lo(I){--I.count.value,I.count.value===0&&(I.T?I.U.W(I.T):I.P.N.W(I.O))}function Uo(I,B,Q){return B===Q?I:Q.R===void 0?null:(I=Uo(I,B,Q.R),I===null?null:Q.na(I))}var Oo={};function vl(I,B){return B=tn(I,B),_A[B]}var To=void 0;function xe(I){throw new To(I)}function be(I,B){return B.P&&B.O||xe("makeClassHandle requires ptr and ptrType"),!!B.U!=!!B.T&&xe("Both smartPtrType and smartPtr must be specified"),B.count={value:1},wt(Object.create(I,{M:{value:B}}))}function wt(I){return typeof FinalizationRegistry>"u"?(wt=B=>B,I):(en=new FinalizationRegistry(B=>{Lo(B.M)}),wt=B=>{var Q=B.M;return Q.T&&en.register(B,{M:Q},B),B},Se=B=>{en.unregister(B)},wt(I))}var ke={};function nn(I){for(;I.length;){var B=I.pop();I.pop()(B)}}function qt(I){return this.fromWireType(w[I>>2])}var mt={},Me={};function XA(I,B,Q){function p(b){b=Q(b),b.length!==I.length&&xe("Mismatched type converter count");for(var M=0;M<I.length;++M)NA(I[M],b[M])}I.forEach(function(b){Me[b]=B});var y=Array(B.length),D=[],x=0;B.forEach((b,M)=>{tt.hasOwnProperty(b)?y[M]=tt[b]:(D.push(b),mt.hasOwnProperty(b)||(mt[b]=[]),mt[b].push(()=>{y[M]=tt[b],++x,x===D.length&&p(y)}))}),D.length===0&&p(y)}function sn(I){switch(I){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+I)}}function NA(I,B,Q={}){if(!("argPackAdvance"in B))throw new TypeError("registerType registeredInstance requires argPackAdvance");var p=B.name;if(I||H('type "'+p+'" must have a positive integer typeid pointer'),tt.hasOwnProperty(I)){if(Q.ua)return;H("Cannot register type '"+p+"' twice")}tt[I]=B,delete Me[I],mt.hasOwnProperty(I)&&(B=mt[I],delete mt[I],B.forEach(y=>y()))}function on(I){H(I.M.P.N.name+" instance already deleted")}function VA(){}function rn(I,B,Q){if(I[B].S===void 0){var p=I[B];I[B]=function(){return I[B].S.hasOwnProperty(arguments.length)||H("Function '"+Q+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+I[B].S+")!"),I[B].S[arguments.length].apply(this,arguments)},I[B].S=[],I[B].S[p.Z]=p}}function Sl(I,B){t.hasOwnProperty(I)?(H("Cannot register public name '"+I+"' twice"),rn(t,I,I),t.hasOwnProperty(void 0)&&H("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),t[I].S[void 0]=B):t[I]=B}function xl(I,B,Q,p,y,D,x,b){this.name=I,this.constructor=B,this.X=Q,this.W=p,this.R=y,this.pa=D,this.ba=x,this.na=b,this.ja=[]}function an(I,B,Q){for(;B!==Q;)B.ba||H("Expected null or instance of "+Q.name+", got an instance of "+B.name),I=B.ba(I),B=B.R;return I}function bl(I,B){return B===null?(this.ea&&H("null is not a valid "+this.name),0):(B.M||H('Cannot pass "'+cn(B)+'" as a '+this.name),B.M.O||H("Cannot pass deleted object as a pointer of type "+this.name),an(B.M.O,B.M.P.N,this.N))}function kl(I,B){if(B===null){if(this.ea&&H("null is not a valid "+this.name),this.da){var Q=this.fa();return I!==null&&I.push(this.W,Q),Q}return 0}if(B.M||H('Cannot pass "'+cn(B)+'" as a '+this.name),B.M.O||H("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&B.M.P.ca&&H("Cannot convert argument of type "+(B.M.U?B.M.U.name:B.M.P.name)+" to parameter type "+this.name),Q=an(B.M.O,B.M.P.N,this.N),this.da)switch(B.M.T===void 0&&H("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:B.M.U===this?Q=B.M.T:H("Cannot convert argument of type "+(B.M.U?B.M.U.name:B.M.P.name)+" to parameter type "+this.name);break;case 1:Q=B.M.T;break;case 2:if(B.M.U===this)Q=B.M.T;else{var p=B.clone();Q=this.xa(Q,ve(function(){p.delete()})),I!==null&&I.push(this.W,Q)}break;default:H("Unsupporting sharing policy")}return Q}function Ml(I,B){return B===null?(this.ea&&H("null is not a valid "+this.name),0):(B.M||H('Cannot pass "'+cn(B)+'" as a '+this.name),B.M.O||H("Cannot pass deleted object as a pointer of type "+this.name),B.M.P.ca&&H("Cannot convert argument of type "+B.M.P.name+" to parameter type "+this.name),an(B.M.O,B.M.P.N,this.N))}function HA(I,B,Q,p){this.name=I,this.N=B,this.ea=Q,this.ca=p,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,B.R!==void 0?this.toWireType=kl:(this.toWireType=p?bl:Ml,this.V=null)}function Rl(I,B){t.hasOwnProperty(I)||xe("Replacing nonexistant public symbol"),t[I]=B,t[I].Z=void 0}function Fl(I,B){var Q=[];return function(){if(Q.length=0,Object.assign(Q,arguments),I.includes("j")){var p=t["dynCall_"+I];p=Q.length?p.apply(null,[B].concat(Q)):p.call(null,B)}else p=AA.get(B).apply(null,Q);return p}}function fA(I,B){I=eA(I);var Q=I.includes("j")?Fl(I,B):AA.get(B);return typeof Q!="function"&&H("unknown function pointer with signature "+I+": "+B),Q}var Po=void 0;function Re(I,B){function Q(D){y[D]||tt[D]||(Me[D]?Me[D].forEach(Q):(p.push(D),y[D]=!0))}var p=[],y={};throw B.forEach(Q),new Po(I+": "+p.map(No).join([", "]))}function gn(I,B,Q,p,y){var D=B.length;2>D&&H("argTypes array size mismatch! Must at least get return value and 'this' types!");var x=B[1]!==null&&Q!==null,b=!1;for(Q=1;Q<B.length;++Q)if(B[Q]!==null&&B[Q].V===void 0){b=!0;break}var M=B[0].name!=="void",k=D-2,R=Array(k),G=[],U=[];return function(){if(arguments.length!==k&&H("function "+I+" called with "+arguments.length+" arguments, expected "+k+" args!"),U.length=0,G.length=x?2:1,G[0]=y,x){var Z=B[1].toWireType(U,this);G[1]=Z}for(var P=0;P<k;++P)R[P]=B[P+2].toWireType(U,arguments[P]),G.push(R[P]);if(P=p.apply(null,G),b)nn(U);else for(var aA=x?1:2;aA<B.length;aA++){var dA=aA===1?Z:R[aA-2];B[aA].V!==null&&B[aA].V(dA)}return Z=M?B[0].fromWireType(P):void 0,Z}}function hn(I,B){for(var Q=[],p=0;p<I;p++)Q.push(S[B+4*p>>2]);return Q}function ln(I){4<I&&--QA[I].ga===0&&(QA[I]=void 0,$i.push(I))}function cn(I){if(I===null)return"null";var B=typeof I;return B==="object"||B==="array"||B==="function"?I.toString():""+I}function Gl(I,B){switch(B){case 2:return function(Q){return this.fromWireType(F[Q>>2])};case 3:return function(Q){return this.fromWireType(N[Q>>3])};default:throw new TypeError("Unknown float type: "+I)}}function _l(I,B,Q){switch(B){case 0:return Q?function(p){return E[p]}:function(p){return C[p]};case 1:return Q?function(p){return d[p>>1]}:function(p){return f[p>>1]};case 2:return Q?function(p){return w[p>>2]}:function(p){return S[p>>2]};default:throw new TypeError("Unknown integer type: "+I)}}function Nl(I,B){for(var Q="",p=0;!(p>=B/2);++p){var y=d[I+2*p>>1];if(y==0)break;Q+=String.fromCharCode(y)}return Q}function Hl(I,B,Q){if(Q===void 0&&(Q=2147483647),2>Q)return 0;Q-=2;var p=B;Q=Q<2*I.length?Q/2:I.length;for(var y=0;y<Q;++y)d[B>>1]=I.charCodeAt(y),B+=2;return d[B>>1]=0,B-p}function Ll(I){return 2*I.length}function Ul(I,B){for(var Q=0,p="";!(Q>=B/4);){var y=w[I+4*Q>>2];if(y==0)break;++Q,65536<=y?(y-=65536,p+=String.fromCharCode(55296|y>>10,56320|y&1023)):p+=String.fromCharCode(y)}return p}function Ol(I,B,Q){if(Q===void 0&&(Q=2147483647),4>Q)return 0;var p=B;Q=p+Q-4;for(var y=0;y<I.length;++y){var D=I.charCodeAt(y);if(55296<=D&&57343>=D){var x=I.charCodeAt(++y);D=65536+((D&1023)<<10)|x&1023}if(w[B>>2]=D,B+=4,B+4>Q)break}return w[B>>2]=0,B-p}function Tl(I){for(var B=0,Q=0;Q<I.length;++Q){var p=I.charCodeAt(Q);55296<=p&&57343>=p&&++Q,B+=4}return B}var Pl={};function Jo(I){var B=Pl[I];return B===void 0?eA(I):B}var Fe=[];function Jl(I){var B=Fe.length;return Fe.push(I),B}function Kl(I,B){for(var Q=Array(I),p=0;p<I;++p)Q[p]=Ho(S[B+4*p>>2],"parameter "+p);return Q}var Ko=[],Yl=[null,[],[]];yt=t.BindingError=De("BindingError"),t.count_emval_handles=function(){for(var I=0,B=5;B<QA.length;++B)QA[B]!==void 0&&++I;return I},t.get_first_emval=function(){for(var I=5;I<QA.length;++I)if(QA[I]!==void 0)return QA[I];return null},Go=t.PureVirtualError=De("PureVirtualError");for(var Yo=Array(256),Ge=0;256>Ge;++Ge)Yo[Ge]=String.fromCharCode(Ge);_o=Yo,t.getInheritedInstanceCount=function(){return Object.keys(_A).length},t.getLiveInheritedInstances=function(){var I=[],B;for(B in _A)_A.hasOwnProperty(B)&&I.push(_A[B]);return I},t.flushPendingDeletes=An,t.setDelayFunction=function(I){Vt=I,Xt.length&&Vt&&Vt(An)},To=t.InternalError=De("InternalError"),VA.prototype.isAliasOf=function(I){if(!(this instanceof VA&&I instanceof VA))return!1;var B=this.M.P.N,Q=this.M.O,p=I.M.P.N;for(I=I.M.O;B.R;)Q=B.ba(Q),B=B.R;for(;p.R;)I=p.ba(I),p=p.R;return B===p&&Q===I},VA.prototype.clone=function(){if(this.M.O||on(this),this.M.aa)return this.M.count.value+=1,this;var I=wt,B=Object,Q=B.create,p=Object.getPrototypeOf(this),y=this.M;return I=I(Q.call(B,p,{M:{value:{count:y.count,$:y.$,aa:y.aa,O:y.O,P:y.P,T:y.T,U:y.U}}})),I.M.count.value+=1,I.M.$=!1,I},VA.prototype.delete=function(){this.M.O||on(this),this.M.$&&!this.M.aa&&H("Object already scheduled for deletion"),Se(this),Lo(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},VA.prototype.isDeleted=function(){return!this.M.O},VA.prototype.deleteLater=function(){return this.M.O||on(this),this.M.$&&!this.M.aa&&H("Object already scheduled for deletion"),Xt.push(this),Xt.length===1&&Vt&&Vt(An),this.M.$=!0,this},HA.prototype.qa=function(I){return this.ka&&(I=this.ka(I)),I},HA.prototype.ha=function(I){this.W&&this.W(I)},HA.prototype.argPackAdvance=8,HA.prototype.readValueFromPointer=qt,HA.prototype.deleteObject=function(I){I!==null&&I.delete()},HA.prototype.fromWireType=function(I){function B(){return this.da?be(this.N.X,{P:this.wa,O:Q,U:this,T:I}):be(this.N.X,{P:this,O:I})}var Q=this.qa(I);if(!Q)return this.ha(I),null;var p=vl(this.N,Q);if(p!==void 0)return p.M.count.value===0?(p.M.O=Q,p.M.T=I,p.clone()):(p=p.clone(),this.ha(I),p);if(p=this.N.pa(Q),p=Oo[p],!p)return B.call(this);p=this.ca?p.la:p.pointerType;var y=Uo(Q,this.N,p.N);return y===null?B.call(this):this.da?be(p.N.X,{P:p,O:y,U:this,T:I}):be(p.N.X,{P:p,O:y})},Po=t.UnboundTypeError=De("UnboundTypeError");var Wl=typeof atob=="function"?atob:function(I){var B="",Q=0;I=I.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(Q++)),y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(Q++)),D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(Q++)),x="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(Q++));p=p<<2|y>>4,y=(y&15)<<4|D>>2;var b=(D&3)<<6|x;B+=String.fromCharCode(p),D!==64&&(B+=String.fromCharCode(y)),x!==64&&(B+=String.fromCharCode(b))}while(Q<I.length);return B},Xl={l:function(I,B,Q,p){tA("Assertion failed: "+(I?g(C,I):"")+", at: "+[B?B?g(C,B):"":"unknown filename",Q,p?p?g(C,p):"":"unknown function"])},q:function(I,B,Q){I=eA(I),B=Ho(B,"wrapper"),Q=Wt(Q);var p=[].slice,y=B.N,D=y.X,x=y.R.X,b=y.R.constructor;I=ji(I,function(){y.R.ja.forEach((function(k){if(this[k]===x[k])throw new Go("Pure virtual function "+k+" must be implemented in JavaScript")}).bind(this)),Object.defineProperty(this,"__parent",{value:D}),this.__construct.apply(this,p.call(arguments))}),D.__construct=function(){this===D&&H("Pass correct 'this' to __construct");var k=b.implement.apply(void 0,[this].concat(p.call(arguments)));Se(k);var R=k.M;k.notifyOnDestruction(),R.aa=!0,Object.defineProperties(this,{M:{value:R}}),wt(this),k=R.O,k=tn(y,k),_A.hasOwnProperty(k)?H("Tried to register registered instance: "+k):_A[k]=this},D.__destruct=function(){this===D&&H("Pass correct 'this' to __destruct"),Se(this);var k=this.M.O;k=tn(y,k),_A.hasOwnProperty(k)?delete _A[k]:H("Tried to unregister unregistered instance: "+k)},I.prototype=Object.create(D);for(var M in Q)I.prototype[M]=Q[M];return ve(I)},j:function(I){var B=ke[I];delete ke[I];var Q=B.fa,p=B.W,y=B.ia,D=y.map(x=>x.ta).concat(y.map(x=>x.za));XA([I],D,x=>{var b={};return y.forEach((M,k)=>{var R=x[k],G=M.ra,U=M.sa,Z=x[k+y.length],P=M.ya,aA=M.Aa;b[M.oa]={read:dA=>R.fromWireType(G(U,dA)),write:(dA,Zt)=>{var UA=[];P(aA,dA,Z.toWireType(UA,Zt)),nn(UA)}}}),[{name:B.name,fromWireType:function(M){var k={},R;for(R in b)k[R]=b[R].read(M);return p(M),k},toWireType:function(M,k){for(var R in b)if(!(R in k))throw new TypeError('Missing field: "'+R+'"');var G=Q();for(R in b)b[R].write(G,k[R]);return M!==null&&M.push(p,G),G},argPackAdvance:8,readValueFromPointer:qt,V:p}]})},v:function(){},B:function(I,B,Q,p,y){var D=sn(Q);B=eA(B),NA(I,{name:B,fromWireType:function(x){return!!x},toWireType:function(x,b){return b?p:y},argPackAdvance:8,readValueFromPointer:function(x){if(Q===1)var b=E;else if(Q===2)b=d;else if(Q===4)b=w;else throw new TypeError("Unknown boolean type size: "+B);return this.fromWireType(b[x>>D])},V:null})},f:function(I,B,Q,p,y,D,x,b,M,k,R,G,U){R=eA(R),D=fA(y,D),b&&(b=fA(x,b)),k&&(k=fA(M,k)),U=fA(G,U);var Z=Fo(R);Sl(Z,function(){Re("Cannot construct "+R+" due to unbound types",[p])}),XA([I,B,Q],p?[p]:[],function(P){if(P=P[0],p)var aA=P.N,dA=aA.X;else dA=VA.prototype;P=ji(Z,function(){if(Object.getPrototypeOf(this)!==Zt)throw new yt("Use 'new' to construct "+R);if(UA.Y===void 0)throw new yt(R+" has no accessible constructor");var qo=UA.Y[arguments.length];if(qo===void 0)throw new yt("Tried to invoke ctor of "+R+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(UA.Y).toString()+") parameters instead!");return qo.apply(this,arguments)});var Zt=Object.create(dA,{constructor:{value:P}});P.prototype=Zt;var UA=new xl(R,P,Zt,U,aA,D,b,k);aA=new HA(R,UA,!0,!1),dA=new HA(R+"*",UA,!1,!1);var Vo=new HA(R+" const*",UA,!1,!0);return Oo[I]={pointerType:dA,la:Vo},Rl(Z,P),[aA,dA,Vo]})},d:function(I,B,Q,p,y,D,x){var b=hn(Q,p);B=eA(B),D=fA(y,D),XA([],[I],function(M){function k(){Re("Cannot call "+R+" due to unbound types",b)}M=M[0];var R=M.name+"."+B;B.startsWith("@@")&&(B=Symbol[B.substring(2)]);var G=M.N.constructor;return G[B]===void 0?(k.Z=Q-1,G[B]=k):(rn(G,B,R),G[B].S[Q-1]=k),XA([],b,function(U){return U=gn(R,[U[0],null].concat(U.slice(1)),null,D,x),G[B].S===void 0?(U.Z=Q-1,G[B]=U):G[B].S[Q-1]=U,[]}),[]})},p:function(I,B,Q,p,y,D){0<B||tA();var x=hn(B,Q);y=fA(p,y),XA([],[I],function(b){b=b[0];var M="constructor "+b.name;if(b.N.Y===void 0&&(b.N.Y=[]),b.N.Y[B-1]!==void 0)throw new yt("Cannot register multiple constructors with identical number of parameters ("+(B-1)+") for class '"+b.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return b.N.Y[B-1]=()=>{Re("Cannot construct "+b.name+" due to unbound types",x)},XA([],x,function(k){return k.splice(1,0,null),b.N.Y[B-1]=gn(M,k,null,y,D),[]}),[]})},a:function(I,B,Q,p,y,D,x,b){var M=hn(Q,p);B=eA(B),D=fA(y,D),XA([],[I],function(k){function R(){Re("Cannot call "+G+" due to unbound types",M)}k=k[0];var G=k.name+"."+B;B.startsWith("@@")&&(B=Symbol[B.substring(2)]),b&&k.N.ja.push(B);var U=k.N.X,Z=U[B];return Z===void 0||Z.S===void 0&&Z.className!==k.name&&Z.Z===Q-2?(R.Z=Q-2,R.className=k.name,U[B]=R):(rn(U,B,G),U[B].S[Q-2]=R),XA([],M,function(P){return P=gn(G,P,k,D,x),U[B].S===void 0?(P.Z=Q-2,U[B]=P):U[B].S[Q-2]=P,[]}),[]})},A:function(I,B){B=eA(B),NA(I,{name:B,fromWireType:function(Q){var p=Wt(Q);return ln(Q),p},toWireType:function(Q,p){return ve(p)},argPackAdvance:8,readValueFromPointer:qt,V:null})},n:function(I,B,Q){Q=sn(Q),B=eA(B),NA(I,{name:B,fromWireType:function(p){return p},toWireType:function(p,y){return y},argPackAdvance:8,readValueFromPointer:Gl(B,Q),V:null})},e:function(I,B,Q,p,y){B=eA(B),y===-1&&(y=4294967295),y=sn(Q);var D=b=>b;if(p===0){var x=32-8*Q;D=b=>b<<x>>>x}Q=B.includes("unsigned")?function(b,M){return M>>>0}:function(b,M){return M},NA(I,{name:B,fromWireType:D,toWireType:Q,argPackAdvance:8,readValueFromPointer:_l(B,y,p!==0),V:null})},b:function(I,B,Q){function p(D){D>>=2;var x=S;return new y(c,x[D+1],x[D])}var y=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][B];Q=eA(Q),NA(I,{name:Q,fromWireType:p,argPackAdvance:8,readValueFromPointer:p},{ua:!0})},o:function(I,B){B=eA(B);var Q=B==="std::string";NA(I,{name:B,fromWireType:function(p){var y=S[p>>2],D=p+4;if(Q)for(var x=D,b=0;b<=y;++b){var M=D+b;if(b==y||C[M]==0){if(x=x?g(C,x,M-x):"",k===void 0)var k=x;else k+="\0",k+=x;x=M+1}}else{for(k=Array(y),b=0;b<y;++b)k[b]=String.fromCharCode(C[D+b]);k=k.join("")}return LA(p),k},toWireType:function(p,y){y instanceof ArrayBuffer&&(y=new Uint8Array(y));var D,x=typeof y=="string";if(x||y instanceof Uint8Array||y instanceof Uint8ClampedArray||y instanceof Int8Array||H("Cannot pass non-string to std::string"),Q&&x){var b=0;for(D=0;D<y.length;++D){var M=y.charCodeAt(D);127>=M?b++:2047>=M?b+=2:55296<=M&&57343>=M?(b+=4,++D):b+=3}D=b}else D=y.length;if(b=In(4+D+1),M=b+4,S[b>>2]=D,Q&&x){if(x=M,M=D+1,D=C,0<M){M=x+M-1;for(var k=0;k<y.length;++k){var R=y.charCodeAt(k);if(55296<=R&&57343>=R){var G=y.charCodeAt(++k);R=65536+((R&1023)<<10)|G&1023}if(127>=R){if(x>=M)break;D[x++]=R}else{if(2047>=R){if(x+1>=M)break;D[x++]=192|R>>6}else{if(65535>=R){if(x+2>=M)break;D[x++]=224|R>>12}else{if(x+3>=M)break;D[x++]=240|R>>18,D[x++]=128|R>>12&63}D[x++]=128|R>>6&63}D[x++]=128|R&63}}D[x]=0}}else if(x)for(x=0;x<D;++x)k=y.charCodeAt(x),255<k&&(LA(M),H("String has UTF-16 code units that do not fit in 8 bits")),C[M+x]=k;else for(x=0;x<D;++x)C[M+x]=y[x];return p!==null&&p.push(LA,b),b},argPackAdvance:8,readValueFromPointer:qt,V:function(p){LA(p)}})},i:function(I,B,Q){if(Q=eA(Q),B===2)var p=Nl,y=Hl,D=Ll,x=()=>f,b=1;else B===4&&(p=Ul,y=Ol,D=Tl,x=()=>S,b=2);NA(I,{name:Q,fromWireType:function(M){for(var k=S[M>>2],R=x(),G,U=M+4,Z=0;Z<=k;++Z){var P=M+4+Z*B;(Z==k||R[P>>b]==0)&&(U=p(U,P-U),G===void 0?G=U:(G+="\0",G+=U),U=P+B)}return LA(M),G},toWireType:function(M,k){typeof k!="string"&&H("Cannot pass non-string to C++ string type "+Q);var R=D(k),G=In(4+R+B);return S[G>>2]=R>>b,y(k,G+4,R+B),M!==null&&M.push(LA,G),G},argPackAdvance:8,readValueFromPointer:qt,V:function(M){LA(M)}})},k:function(I,B,Q,p,y,D){ke[I]={name:eA(B),fa:fA(Q,p),W:fA(y,D),ia:[]}},h:function(I,B,Q,p,y,D,x,b,M,k){ke[I].ia.push({oa:eA(B),ta:Q,ra:fA(p,y),sa:D,za:x,ya:fA(b,M),Aa:k})},C:function(I,B){B=eA(B),NA(I,{va:!0,name:B,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(I,B,Q,p,y){I=Fe[I],B=Wt(B),Q=Jo(Q);var D=[];return S[p>>2]=ve(D),I(B,Q,D,y)},t:function(I,B,Q,p){I=Fe[I],B=Wt(B),Q=Jo(Q),I(B,Q,null,p)},g:ln,m:function(I,B){var Q=Kl(I,B),p=Q[0];B=p.name+"_$"+Q.slice(1).map(function(x){return x.name}).join("_")+"$";var y=Ko[B];if(y!==void 0)return y;var D=Array(I-1);return y=Jl((x,b,M,k)=>{for(var R=0,G=0;G<I-1;++G)D[G]=Q[G+1].readValueFromPointer(k+R),R+=Q[G+1].argPackAdvance;for(x=x[b].apply(x,D),G=0;G<I-1;++G)Q[G+1].ma&&Q[G+1].ma(D[G]);if(!p.va)return p.toWireType(M,x)}),Ko[B]=y},D:function(I){4<I&&(QA[I].ga+=1)},r:function(I){var B=Wt(I);nn(B),ln(I)},c:function(){tA("")},x:function(I,B,Q){C.copyWithin(I,B,B+Q)},w:function(I){var B=C.length;if(I>>>=0,2147483648<I)return!1;for(var Q=1;4>=Q;Q*=2){var p=B*(1+.2/Q);p=Math.min(p,I+100663296);var y=Math;p=Math.max(I,p),y=y.min.call(y,2147483648,p+(65536-p%65536)%65536);A:{try{u.grow(y-c.byteLength+65535>>>16),O();var D=1;break A}catch{}D=void 0}if(D)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(I,B,Q,p){for(var y=0,D=0;D<Q;D++){var x=S[B>>2],b=S[B+4>>2];B+=8;for(var M=0;M<b;M++){var k=C[x+M],R=Yl[I];k===0||k===10?((I===1?r:h)(g(R,0)),R.length=0):R.push(k)}y+=b}return S[p>>2]=y,0}};(function(){function I(y){t.asm=y.exports,u=t.asm.E,O(),AA=t.asm.J,L.unshift(t.asm.F),iA--,t.monitorRunDependencies&&t.monitorRunDependencies(iA),iA==0&&bA&&(y=bA,bA=null,y())}function B(y){I(y.instance)}function Q(y){return Dl().then(function(D){return WebAssembly.instantiate(D,p)}).then(function(D){return D}).then(y,function(D){h("failed to asynchronously prepare wasm: "+D),tA(D)})}var p={a:Xl};if(iA++,t.monitorRunDependencies&&t.monitorRunDependencies(iA),t.instantiateWasm)try{return t.instantiateWasm(p,I)}catch(y){h("Module.instantiateWasm callback failed with error: "+y),n(y)}return function(){return l||typeof WebAssembly.instantiateStreaming!="function"||WA(kA)||typeof fetch!="function"?Q(B):fetch(kA,{credentials:"same-origin"}).then(function(y){return WebAssembly.instantiateStreaming(y,p).then(B,function(D){return h("wasm streaming compile failed: "+D),h("falling back to ArrayBuffer instantiation"),Q(B)})})}().catch(n),{}})(),t.___wasm_call_ctors=function(){return(t.___wasm_call_ctors=t.asm.F).apply(null,arguments)};var Wo=t.___getTypeName=function(){return(Wo=t.___getTypeName=t.asm.G).apply(null,arguments)};t.__embind_initialize_bindings=function(){return(t.__embind_initialize_bindings=t.asm.H).apply(null,arguments)};var In=t._malloc=function(){return(In=t._malloc=t.asm.I).apply(null,arguments)},LA=t._free=function(){return(LA=t._free=t.asm.K).apply(null,arguments)};t.dynCall_jiji=function(){return(t.dynCall_jiji=t.asm.L).apply(null,arguments)};var _e;bA=function I(){_e||Xo(),_e||(bA=I)};function Xo(){function I(){if(!_e&&(_e=!0,t.calledRun=!0,!o)){if(zi(L),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;){var B=t.postRun.shift();GA.unshift(B)}zi(GA)}}if(!(0<iA)){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)YA();zi(CA),0<iA||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),I()},1)):I())}}if(t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();return Xo(),A.ready}})();let q=function(e){return e[e.Auto=0]="Auto",e[e.FlexStart=1]="FlexStart",e[e.Center=2]="Center",e[e.FlexEnd=3]="FlexEnd",e[e.Stretch=4]="Stretch",e[e.Baseline=5]="Baseline",e[e.SpaceBetween=6]="SpaceBetween",e[e.SpaceAround=7]="SpaceAround",e[e.SpaceEvenly=8]="SpaceEvenly",e}({}),de=function(e){return e[e.BorderBox=0]="BorderBox",e[e.ContentBox=1]="ContentBox",e}({}),ro=function(e){return e[e.Width=0]="Width",e[e.Height=1]="Height",e}({}),jA=function(e){return e[e.Inherit=0]="Inherit",e[e.LTR=1]="LTR",e[e.RTL=2]="RTL",e}({}),ct=function(e){return e[e.Flex=0]="Flex",e[e.None=1]="None",e[e.Contents=2]="Contents",e}({}),_=function(e){return e[e.Left=0]="Left",e[e.Top=1]="Top",e[e.Right=2]="Right",e[e.Bottom=3]="Bottom",e[e.Start=4]="Start",e[e.End=5]="End",e[e.Horizontal=6]="Horizontal",e[e.Vertical=7]="Vertical",e[e.All=8]="All",e}({}),It=function(e){return e[e.None=0]="None",e[e.StretchFlexBasis=1]="StretchFlexBasis",e[e.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",e[e.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",e[e.All=2147483647]="All",e[e.Classic=2147483646]="Classic",e}({}),_h=function(e){return e[e.WebFlexBasis=0]="WebFlexBasis",e}({}),vA=function(e){return e[e.Column=0]="Column",e[e.ColumnReverse=1]="ColumnReverse",e[e.Row=2]="Row",e[e.RowReverse=3]="RowReverse",e}({}),Bt=function(e){return e[e.Column=0]="Column",e[e.Row=1]="Row",e[e.All=2]="All",e}({}),lA=function(e){return e[e.FlexStart=0]="FlexStart",e[e.Center=1]="Center",e[e.FlexEnd=2]="FlexEnd",e[e.SpaceBetween=3]="SpaceBetween",e[e.SpaceAround=4]="SpaceAround",e[e.SpaceEvenly=5]="SpaceEvenly",e}({}),ut=function(e){return e[e.Error=0]="Error",e[e.Warn=1]="Warn",e[e.Info=2]="Info",e[e.Debug=3]="Debug",e[e.Verbose=4]="Verbose",e[e.Fatal=5]="Fatal",e}({}),Yi=function(e){return e[e.Undefined=0]="Undefined",e[e.Exactly=1]="Exactly",e[e.AtMost=2]="AtMost",e}({}),ao=function(e){return e[e.Default=0]="Default",e[e.Text=1]="Text",e}({}),Et=function(e){return e[e.Visible=0]="Visible",e[e.Hidden=1]="Hidden",e[e.Scroll=2]="Scroll",e}({}),Ct=function(e){return e[e.Static=0]="Static",e[e.Relative=1]="Relative",e[e.Absolute=2]="Absolute",e}({}),SA=function(e){return e[e.Undefined=0]="Undefined",e[e.Point=1]="Point",e[e.Percent=2]="Percent",e[e.Auto=3]="Auto",e}({}),Qt=function(e){return e[e.NoWrap=0]="NoWrap",e[e.Wrap=1]="Wrap",e[e.WrapReverse=2]="WrapReverse",e}({});const Nh={ALIGN_AUTO:q.Auto,ALIGN_FLEX_START:q.FlexStart,ALIGN_CENTER:q.Center,ALIGN_FLEX_END:q.FlexEnd,ALIGN_STRETCH:q.Stretch,ALIGN_BASELINE:q.Baseline,ALIGN_SPACE_BETWEEN:q.SpaceBetween,ALIGN_SPACE_AROUND:q.SpaceAround,ALIGN_SPACE_EVENLY:q.SpaceEvenly,BOX_SIZING_BORDER_BOX:de.BorderBox,BOX_SIZING_CONTENT_BOX:de.ContentBox,DIMENSION_WIDTH:ro.Width,DIMENSION_HEIGHT:ro.Height,DIRECTION_INHERIT:jA.Inherit,DIRECTION_LTR:jA.LTR,DIRECTION_RTL:jA.RTL,DISPLAY_FLEX:ct.Flex,DISPLAY_NONE:ct.None,DISPLAY_CONTENTS:ct.Contents,EDGE_LEFT:_.Left,EDGE_TOP:_.Top,EDGE_RIGHT:_.Right,EDGE_BOTTOM:_.Bottom,EDGE_START:_.Start,EDGE_END:_.End,EDGE_HORIZONTAL:_.Horizontal,EDGE_VERTICAL:_.Vertical,EDGE_ALL:_.All,ERRATA_NONE:It.None,ERRATA_STRETCH_FLEX_BASIS:It.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:It.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:It.AbsolutePercentAgainstInnerSize,ERRATA_ALL:It.All,ERRATA_CLASSIC:It.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:_h.WebFlexBasis,FLEX_DIRECTION_COLUMN:vA.Column,FLEX_DIRECTION_COLUMN_REVERSE:vA.ColumnReverse,FLEX_DIRECTION_ROW:vA.Row,FLEX_DIRECTION_ROW_REVERSE:vA.RowReverse,GUTTER_COLUMN:Bt.Column,GUTTER_ROW:Bt.Row,GUTTER_ALL:Bt.All,JUSTIFY_FLEX_START:lA.FlexStart,JUSTIFY_CENTER:lA.Center,JUSTIFY_FLEX_END:lA.FlexEnd,JUSTIFY_SPACE_BETWEEN:lA.SpaceBetween,JUSTIFY_SPACE_AROUND:lA.SpaceAround,JUSTIFY_SPACE_EVENLY:lA.SpaceEvenly,LOG_LEVEL_ERROR:ut.Error,LOG_LEVEL_WARN:ut.Warn,LOG_LEVEL_INFO:ut.Info,LOG_LEVEL_DEBUG:ut.Debug,LOG_LEVEL_VERBOSE:ut.Verbose,LOG_LEVEL_FATAL:ut.Fatal,MEASURE_MODE_UNDEFINED:Yi.Undefined,MEASURE_MODE_EXACTLY:Yi.Exactly,MEASURE_MODE_AT_MOST:Yi.AtMost,NODE_TYPE_DEFAULT:ao.Default,NODE_TYPE_TEXT:ao.Text,OVERFLOW_VISIBLE:Et.Visible,OVERFLOW_HIDDEN:Et.Hidden,OVERFLOW_SCROLL:Et.Scroll,POSITION_TYPE_STATIC:Ct.Static,POSITION_TYPE_RELATIVE:Ct.Relative,POSITION_TYPE_ABSOLUTE:Ct.Absolute,UNIT_UNDEFINED:SA.Undefined,UNIT_POINT:SA.Point,UNIT_PERCENT:SA.Percent,UNIT_AUTO:SA.Auto,WRAP_NO_WRAP:Qt.NoWrap,WRAP_WRAP:Qt.Wrap,WRAP_WRAP_REVERSE:Qt.WrapReverse};function Hh(e){function A(n,s,a){const r=n[s];n[s]=function(){for(var h=arguments.length,l=new Array(h),u=0;u<h;u++)l[u]=arguments[u];return a.call(this,r,...l)}}for(const n of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){const s={[SA.Point]:e.Node.prototype[n],[SA.Percent]:e.Node.prototype[`${n}Percent`],[SA.Auto]:e.Node.prototype[`${n}Auto`]};A(e.Node.prototype,n,function(a){for(var r=arguments.length,h=new Array(r>1?r-1:0),l=1;l<r;l++)h[l-1]=arguments[l];const u=h.pop();let o,g;if(u==="auto")o=SA.Auto,g=void 0;else if(typeof u=="object")o=u.unit,g=u.valueOf();else if(o=typeof u=="string"&&u.endsWith("%")?SA.Percent:SA.Point,g=parseFloat(u),u!==void 0&&!Number.isNaN(u)&&Number.isNaN(g))throw new Error(`Invalid value ${u} for ${n}`);if(!s[o])throw new Error(`Failed to execute "${n}": Unsupported unit '${u}'`);return g!==void 0?s[o].call(this,...h,g):s[o].call(this,...h)})}function t(n){return e.MeasureCallback.implement({measure:function(){const{width:s,height:a}=n(...arguments);return{width:s??NaN,height:a??NaN}}})}A(e.Node.prototype,"setMeasureFunc",function(n,s){return s?n.call(this,t(s)):this.unsetMeasureFunc()});function i(n){return e.DirtiedCallback.implement({dirtied:n})}return A(e.Node.prototype,"setDirtiedFunc",function(n,s){n.call(this,i(s))}),A(e.Config.prototype,"free",function(){e.Config.destroy(this)}),A(e.Node,"create",(n,s)=>s?e.Node.createWithConfig(s):e.Node.createDefault()),A(e.Node.prototype,"free",function(){e.Node.destroy(this)}),A(e.Node.prototype,"freeRecursive",function(){for(let n=0,s=this.getChildCount();n<s;++n)this.getChild(0).freeRecursive();this.free()}),A(e.Node.prototype,"calculateLayout",function(n){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:jA.LTR;return n.call(this,s,a,r)}),{Config:e.Config,Node:e.Node,...Nh}}async function Lh(){return Hh(await Gh())}let go;function Uh(){return go}function Oh(e){go=e}function pe(e,A){return e?typeof e=="number"?e:typeof e=="string"&&e.endsWith("%")?(A??(A=1),A*(parseFloat(e)/100)):Number.isNaN(parseFloat(e))?0:parseFloat(e):0}function $A(e){return typeof e=="number"?"number":e.endsWith("%")?"percentage":Number.isNaN(parseInt(e,10))?"keyword":"number"}function ye(e,A,t){return(A[e]-t[e])/2}function ho(e,A,t,i,n){const s=A==="percentage"?i[t]-n[t]:1;return pe(e)*s}function lo(e,A,t){const[i,n]=e,s=$A(i),a=$A(n),r={x:void 0,y:void 0};switch(i){case"top":r.y=0;break;case"bottom":r.y=A.height-t.height;break;case"center":n==="left"||n==="right"?r.y=ye("height",A,t):r.x=ye("width",A,t);break;case"left":r.x=0;break;case"right":r.x=A.width-t.width;break;default:{const h=n==="top"||n==="bottom"||a!=="keyword"?"width":"height",l=h==="width"?"x":"y";r[l]=ho(i,s,h,A,t)}}switch(n){case"top":r.y=0;break;case"bottom":r.y=A.height-t.height;break;case"center":r.y===void 0?r.y=ye("height",A,t):r.x=ye("width",A,t);break;case"left":r.x=0;break;case"right":r.x=A.width-t.width;break;default:{const h=r.y===void 0?"y":"x",l=h==="y"?"height":"width";r[h]=ho(n,a,l,A,t)}}return r}function we(e,A,t,i){const n=e==="right"||e==="bottom",s=t==="percentage"?A*i:A;return n?-s:s}function Th(e,A,t){const[i,n,s,a]=e,r=$A(i),h=$A(n),l=$A(s),u=$A(a);if(h==="keyword"||u==="keyword")throw new Error("Invalid objectPosition value: second and fourth values must be numbers or percentages");if(r!=="keyword"||l!=="keyword")throw new Error("Invalid objectPosition value: first and third values must be keywords");const o=lo([i,s],A,t),g={...o},c=pe(n),E=pe(a);return i==="left"||i==="right"?g.x=o.x+we(i,c,h,t.width):(i==="top"||i==="bottom")&&(g.y=o.y+we(i,c,h,t.height)),s==="left"||s==="right"?g.x=o.x+we(s,E,u,t.width):(s==="top"||s==="bottom")&&(g.y=o.y+we(s,E,u,t.height)),g}function Ph(e,A,t){const i=e[0],n={x:void 0,y:void 0};switch(i){case"top":n.y=0,n.x=(A.width-t.width)/2;break;case"bottom":n.y=A.height-t.height,n.x=(A.width-t.width)/2;break;case"left":n.x=0,n.y=(A.height-t.height)/2;break;case"right":n.x=A.width-t.width,n.y=(A.height-t.height)/2;break;case"center":n.x=(A.width-t.width)/2,n.y=(A.height-t.height)/2;break;default:{const a=$A(i)==="percentage"?A.width-t.width:1;n.x=pe(i)*a,n.y=(A.height-t.height)/2}}return n}function Wi(e,A,t){if(!e)return{x:0,y:0};const i=typeof e=="string"?e.split(" "):[e];switch(i.length){case 1:return Ph(i,A,t);case 2:return lo(i,A,t);case 4:return Th(i,A,t);default:throw new Error("Invalid objectPosition value: must have 1, 2, or 4 values")}}const Jh=new m.Bounds,Xi={width:0,height:0};function co(e){const A=e.target.getLocalBounds(Jh),t=e.target.scale;return Xi.width=Math.abs(A.width*t.x),Xi.height=Math.abs(A.height*t.y),Xi}function Io(e,A,t=.49){return Math.abs(e-A)<t}const Yt=new Map;function Kh(e,A=100,t){if(!Yt.has(e)){let i=null;const n=(...s)=>{if(Yt.get(e).args=s,i)return;const a=()=>{i=null;const r=Yt.get(e).args;e(...r)};A===0?a():i=setTimeout(a,A)};Yt.set(e,{throttledFunction:n,args:null})}return Yt.get(e).throttledFunction}var Yh=Object.defineProperty,Wh=(e,A,t)=>A in e?Yh(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t,At=(e,A,t)=>Wh(e,typeof A!="symbol"?A+"":A,t);class Bo{constructor(){At(this,"autoUpdate",!0),At(this,"_debugEnabled",!1),At(this,"_debugRenderer",null),At(this,"_throttledUpdateSize"),At(this,"_throttle",100),At(this,"_modificationCount",50)}async init(A){Oh(await Lh());const{layout:t}=A??{},{autoUpdate:i,enableDebug:n,throttle:s,debugModificationCount:a}=t??{};n&&this.enableDebug(!0),i!==void 0&&(this.autoUpdate=i),this._throttle=s??this._throttle,this._throttledUpdateSize=Kh(r=>this._updateSize(r),this._throttle),this._modificationCount=a??this._modificationCount}async enableDebug(A=!this._debugEnabled){if(this._debugEnabled=A,!this._debugRenderer){const t=await Promise.resolve().then(()=>pl);this._debugRenderer=new t.DebugRenderer}this._debugEnabled||this._debugRenderer.reset()}update(A){this._debugEnabled&&this._debugRenderer&&(this._debugRenderer.reset(),A.addChild(this._debugRenderer.holder)),this._throttledUpdateSize(A),this.updateLayout(A)}prerender({container:A}){this.autoUpdate&&this.update(A)}_updateSize(A){const t=A._layout;if(t){const i=t.style;if(i.width==="intrinsic"||i.height==="intrinsic"){const n=co(t);if(i.width==="intrinsic"){const s=t.yoga.getWidth().value;Io(s,n.width)||(t.yoga.setWidth(n.width),t.invalidateRoot())}if(i.height==="intrinsic"){const s=t.yoga.getHeight().value;Io(s,n.height)||(t.yoga.setHeight(n.height),t.invalidateRoot())}}if(!A.visible){t._onChildRemoved();return}}for(let i=0;i<A.children.length;i++)this._updateSize(A.children[i])}updateLayout(A){var t,i,n,s;const a=A._layout;if(A.visible){if(a){const r=a.yoga,h=a.style,l=(t=A.parent)==null?void 0:t.isOverflowContainer;if(!((i=A.parent)==null?void 0:i._layout)&&!l&&a._isDirty&&(a._isDirty=!1,r.calculateLayout(h.width,h.height,r.getDirection()??jA.LTR)),r.hasNewLayout()||a._forceUpdate){r.markLayoutSeen(),a._forceUpdate=!1,a._computedLayout=r.getComputedLayout();const o=Wi(h.transformOrigin,a._computedLayout,{width:0,height:0});a._computedPixiLayout={...A.computeLayoutData(a._computedLayout),originX:o.x,originY:o.y},A.emit("layout",a),(n=A.onLayout)==null||n.call(A,a),A._onUpdate()}this._debugEnabled&&(a._styles.custom.debug||a._modificationCount>this._modificationCount&&a._styles.custom.debugHeat!==!1)&&((s=this._debugRenderer)==null||s.render(a))}for(let r=0;r<A.children.length;r++)this.updateLayout(A.children[r])}}destroy(){!this._debugEnabled&&this._debugRenderer&&this._debugRenderer.destroy()}}At(Bo,"extension",{type:[m.ExtensionType.WebGLSystem,m.ExtensionType.WebGPUSystem],name:"layout"});const uo={"flex-start":q.FlexStart,"flex-end":q.FlexEnd,center:q.Center,stretch:q.Stretch,"space-between":q.SpaceBetween,"space-around":q.SpaceAround,"space-evenly":q.SpaceEvenly},Eo={"flex-start":q.FlexStart,"flex-end":q.FlexEnd,center:q.Center,stretch:q.Stretch,baseline:q.Baseline},Co={"border-box":de.BorderBox,"content-box":de.ContentBox},Qo={ltr:jA.LTR,rtl:jA.RTL},fo={none:ct.None,flex:ct.Flex,contents:ct.Contents},po={row:vA.Row,column:vA.Column,"row-reverse":vA.RowReverse,"column-reverse":vA.ColumnReverse},yo={wrap:Qt.Wrap,nowrap:Qt.NoWrap,"wrap-reverse":Qt.WrapReverse},wo={"flex-start":lA.FlexStart,"flex-end":lA.FlexEnd,center:lA.Center,"space-between":lA.SpaceBetween,"space-around":lA.SpaceAround,"space-evenly":lA.SpaceEvenly},mo={visible:Et.Visible,hidden:Et.Hidden,scroll:Et.Scroll},Do={absolute:Ct.Absolute,relative:Ct.Relative,static:Ct.Static},Xh={alignContent:(e,A)=>e.setAlignContent(Vh(A)),alignItems:(e,A)=>e.setAlignItems(vo(A)),alignSelf:(e,A)=>e.setAlignSelf(vo(A)),aspectRatio:(e,A)=>e.setAspectRatio(A),borderBottomWidth:(e,A)=>e.setBorder(_.Bottom,A),borderEndWidth:(e,A)=>e.setBorder(_.End,A),borderLeftWidth:(e,A)=>e.setBorder(_.Left,A),borderRightWidth:(e,A)=>e.setBorder(_.Right,A),borderStartWidth:(e,A)=>e.setBorder(_.Start,A),borderTopWidth:(e,A)=>e.setBorder(_.Top,A),borderWidth:(e,A)=>e.setBorder(_.All,A),borderInlineWidth:(e,A)=>e.setBorder(_.Horizontal,A),borderBlockWidth:(e,A)=>e.setBorder(_.Vertical,A),bottom:(e,A)=>e.setPosition(_.Bottom,A),boxSizing:(e,A)=>e.setBoxSizing(qh(A)),direction:(e,A)=>e.setDirection(Zh(A)),display:(e,A)=>e.setDisplay(zh(A)),end:(e,A)=>e.setPosition(_.End,A),flex:(e,A)=>e.setFlex(A),flexBasis:(e,A)=>e.setFlexBasis(A),flexDirection:(e,A)=>e.setFlexDirection(jh(A)),rowGap:(e,A)=>e.setGap(Bt.Row,A),gap:(e,A)=>e.setGap(Bt.All,A),columnGap:(e,A)=>e.setGap(Bt.Column,A),flexGrow:(e,A)=>e.setFlexGrow(A),flexShrink:(e,A)=>e.setFlexShrink(A),flexWrap:(e,A)=>e.setFlexWrap($h(A)),height:(e,A)=>e.setHeight(A),justifyContent:(e,A)=>e.setJustifyContent(Al(A)),left:(e,A)=>e.setPosition(_.Left,A),margin:(e,A)=>e.setMargin(_.All,A),marginBottom:(e,A)=>e.setMargin(_.Bottom,A),marginEnd:(e,A)=>e.setMargin(_.End,A),marginLeft:(e,A)=>e.setMargin(_.Left,A),marginRight:(e,A)=>e.setMargin(_.Right,A),marginStart:(e,A)=>e.setMargin(_.Start,A),marginTop:(e,A)=>e.setMargin(_.Top,A),marginInline:(e,A)=>e.setMargin(_.Horizontal,A),marginBlock:(e,A)=>e.setMargin(_.Vertical,A),maxHeight:(e,A)=>e.setMaxHeight(A),maxWidth:(e,A)=>e.setMaxWidth(A),minHeight:(e,A)=>e.setMinHeight(A),minWidth:(e,A)=>e.setMinWidth(A),overflow:(e,A)=>e.setOverflow(tl(A)),padding:(e,A)=>e.setPadding(_.All,A),paddingBottom:(e,A)=>e.setPadding(_.Bottom,A),paddingEnd:(e,A)=>e.setPadding(_.End,A),paddingLeft:(e,A)=>e.setPadding(_.Left,A),paddingRight:(e,A)=>e.setPadding(_.Right,A),paddingStart:(e,A)=>e.setPadding(_.Start,A),paddingTop:(e,A)=>e.setPadding(_.Top,A),paddingInline:(e,A)=>e.setPadding(_.Horizontal,A),paddingBlock:(e,A)=>e.setPadding(_.Vertical,A),position:(e,A)=>e.setPositionType(el(A)),right:(e,A)=>e.setPosition(_.Right,A),start:(e,A)=>e.setPosition(_.Start,A),top:(e,A)=>e.setPosition(_.Top,A),insetInline:(e,A)=>e.setPosition(_.Horizontal,A),insetBlock:(e,A)=>e.setPosition(_.Vertical,A),inset:(e,A)=>e.setPosition(_.All,A),width:(e,A)=>e.setWidth(A)};function Vh(e){if(e in uo)return uo[e];throw new Error(`"${e}" is not a valid value for alignContent`)}function vo(e){if(e in Eo)return Eo[e];throw new Error(`"${e}" is not a valid value for alignItems`)}function qh(e){if(e in Co)return Co[e];throw new Error(`"${e}" is not a valid value for boxSizing`)}function Zh(e){if(e in Qo)return Qo[e];throw new Error(`"${e}" is not a valid value for direction`)}function zh(e){if(e in fo)return fo[e];throw new Error(`"${e}" is not a valid value for display`)}function jh(e){if(e in po)return po[e];throw new Error(`"${e}" is not a valid value for flexDirection`)}function $h(e){if(e in yo)return yo[e];throw new Error(`"${e}" is not a valid value for flexWrap`)}function Al(e){if(e in wo)return wo[e];throw new Error(`"${e}" is not a valid value for justifyContent`)}function tl(e){if(e in mo)return mo[e];throw new Error(`"${e}" is not a valid value for overflow`)}function el(e){if(e in Do)return Do[e];throw new Error(`"${e}" is not a valid value for position`)}function il(e,A={}){for(const[t,i]of Object.entries(A))try{const n=Xh[t];n&&n(e,i)}catch{}if(A.width!==void 0){const t=A.left!==void 0&&A.right!==void 0?"auto":A.width;e.setWidth(t)}if(A.height!==void 0){const t=A.top!==void 0&&A.bottom!==void 0?"auto":A.height;e.setHeight(t)}}function nl(e,A){let i={...e._styles.custom,...A};i={...{...ft.defaultStyle.shared,...e.target instanceof m.ViewContainer||i.isLeaf||ft.defaultStyle.shared.isLeaf?ft.defaultStyle.leaf:ft.defaultStyle.container},...i};const s={...i},a=i.width==="intrinsic",r=i.height==="intrinsic";if(a||r){const{width:h,height:l}=co(e);a&&(s.width=h),r&&(s.height=l)}return{custom:i,yoga:s}}function sl(e,A){var t;let i=A.layout,n=-1;if(!i&&A.isOverflowContainer&&(i=(t=A.parent)==null?void 0:t.layout,n=A.children.indexOf(e.target),A=A.parent),i){const s=e.yoga.getParent();if(s&&s.removeChild(e.yoga),A.children.indexOf(e.target)===A.children.length-1&&n===-1){i.yoga.insertChild(e.yoga,i.yoga.getChildCount());return}for(let a=0;a<A.children.length;a++){const r=A.children[a];if(r.layout&&r.visible&&n++,r===e.target)break}i.yoga.insertChild(e.yoga,n)}}function ol(e){const A=e.yoga.getParent();A&&A.removeChild(e.yoga)}var rl=Object.defineProperty,al=(e,A,t)=>A in e?rl(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t,EA=(e,A,t)=>al(e,typeof A!="symbol"?A+"":A,t);class ft{constructor({target:A}){EA(this,"yoga"),EA(this,"target"),EA(this,"_isDirty",!1),EA(this,"_computedPixiLayout",{x:0,y:0,offsetX:0,offsetY:0,scaleX:1,scaleY:1,originX:0,originY:0}),EA(this,"_computedLayout",{left:0,right:0,top:0,bottom:0,width:0,height:0}),EA(this,"_styles",{custom:{},yoga:{}}),EA(this,"_modificationCount",0),EA(this,"_forceUpdate",!1),EA(this,"hasParent",!1),EA(this,"_trackedStyleKeys",["borderRadius","borderColor","backgroundColor","objectFit","objectPosition","transformOrigin","isLeaf"]),this.target=A,this.yoga=Uh().Node.create(),A.on("added",this._onChildAdded,this),A.on("removed",this._onChildRemoved,this),A.on("destroyed",this.destroy,this)}get style(){return this._styles.custom}get computedLayout(){return this._computedLayout}get computedPixiLayout(){return this._computedPixiLayout}get realX(){return this.target.localTransform.tx}get realY(){return this.target.localTransform.ty}get realScaleX(){return this.target.localTransform.a}get realScaleY(){return this.target.localTransform.d}setStyle(A){const t=nl(this,A),i=JSON.stringify(this._styles.custom)!==JSON.stringify(t.custom),n=JSON.stringify(this._styles.yoga)!==JSON.stringify(t.yoga),s=i||n,a=this._trackedStyleKeys.some(r=>t.custom[r]!==this._styles.custom[r]);this._styles=t,a&&(this._forceUpdate=!0),s&&(il(this.yoga,this._styles.yoga),this.target._onUpdate(),this.invalidateRoot())}invalidateRoot(){const A=this.getRoot();A._layout._isDirty=!0,A._onUpdate(),this._modificationCount++}forceUpdate(){this._forceUpdate=!0}getRoot(){var A,t;let i=this.target;for(;(A=i.parent)!=null&&A._layout||(t=i.parent)!=null&&t.isOverflowContainer;)i=i.parent,i.isOverflowContainer&&(i=i.parent);return i}_onChildAdded(A){this.hasParent||(this.hasParent=!0,this.invalidateRoot(),sl(this,A))}_onChildRemoved(){this.hasParent&&(this.hasParent=!1,this.invalidateRoot(),ol(this))}destroy(){this.invalidateRoot(),this.yoga.free(),this.target.off("added",this._onChildAdded,this),this.target.off("removed",this._onChildRemoved,this),this._styles=null,this._computedPixiLayout=null,this._computedLayout=null,this.target=null,this.hasParent=!1}}EA(ft,"defaultStyle",{leaf:{width:"intrinsic",height:"intrinsic"},container:{width:"auto",height:"auto"},shared:{transformOrigin:"50%",objectPosition:"center",flexShrink:1,flexDirection:"row",alignContent:"stretch",flexWrap:"nowrap",overflow:"visible"}});function So(e,A,t){let i=1,n=1;switch(e){case"fill":i=A.width/t.width,n=A.height/t.height;break;case"contain":{const s=Math.min(A.width/t.width,A.height/t.height);i=s,n=s;break}case"cover":{const s=Math.max(A.width/t.width,A.height/t.height);i=s,n=s;break}case"none":i=1,n=1;break;case"scale-down":{const s=Math.min(1,A.width/t.width,A.height/t.height);i=s,n=s;break}}return{offsetScaleX:i,offsetScaleY:n}}function xo(e,A,t,i){const n=e.getLocalBounds(),s=e.layout.style.objectFit||t;let{offsetScaleX:a,offsetScaleY:r}=So(s,A,n);const h={width:n.width*a,height:n.height*r};let{x:l,y:u}=Wi(e.layout.style.objectPosition,A,h);i?(l+=n.width*a*i._x,u+=n.height*r*i._y):(l-=n.minX*a,u-=n.minY*r);const o=e.layout.style.applySizeDirectly;return(o===!0||o==null&&(e instanceof m.TilingSprite||e instanceof m.NineSliceSprite))&&(e.width=n.width*a,e.height=n.height*r,a=1,r=1),{x:A.left,y:A.top,offsetX:l,offsetY:u,scaleX:a,scaleY:r}}const Vi=Object.getOwnPropertyDescriptor(m.Container.prototype,"visible"),gl={_layout:null,get layout(){return this._layout??null},set layout(e){if(e=e===!0?{}:e,!e){this._layout&&(this._layout.destroy(),this._layout=null,this.updateLocalTransform=m.Container.prototype.updateLocalTransform,Object.defineProperty(m.Container.prototype,"visible",Vi));return}this._layout||(this._layout=new ft({target:this}),Object.defineProperty(m.Container.prototype,"visible",{...Vi,set(A){Vi.set.call(this,A),this.layout&&(A&&this.parent?this.layout._onChildAdded(this.parent):this.layout._onChildRemoved())}}),this.parent&&this.visible&&this._layout._onChildAdded(this.parent)),this._layout.setStyle(e),this.updateLocalTransform=this.updateLocalTransformWithLayout,this._onUpdate()},updateLocalTransformWithLayout(){const e=this._didContainerChangeTick;if(this._didLocalTransformChangeId===e)return;this._didLocalTransformChangeId=e;const A=this._layout,{x:t,y:i,offsetX:n,offsetY:s,scaleX:a,scaleY:r,originX:h,originY:l}=A._computedPixiLayout,u=this.localTransform,{rotation:o,skew:g,scale:c,position:E}=this,C=o+g._y,d=o-g._x,f=Math.cos(C)*c._x,w=Math.sin(C)*c._x,S=-Math.sin(d)*c._y,F=Math.cos(d)*c._y,N=E._x+t-h*f-l*S,O=E._y+i-h*w-l*F;u.a=f*a,u.b=w*a,u.c=S*r,u.d=F*r,u.tx=N+(n*f+s*S)+h,u.ty=O+(n*w+s*F)+l},computeLayoutData(e){const A=this._layout,{isLeaf:t}=A._styles.custom;return t?xo(this,e,"fill"):{x:e.left,y:e.top,offsetX:0,offsetY:0,scaleX:1,scaleY:1}}};m.extensions.mixin(m.Container,gl);const bo=new m.Point(0,0),hl={computeLayoutData(e){const A=this._style;bo.copyFrom(this.scale),this.scale=1,A.wordWrap&&(A.wordWrapWidth=e.width);let t=this.getLocalBounds();const i=this.layout.style.objectFit||"scale-down",{offsetScaleX:n,offsetScaleY:s}=So(i,e,t);A.wordWrap&&(A.wordWrapWidth=e.width/Math.min(1,Math.max(n,s))),t=this.getLocalBounds();const a={width:t.width*n,height:t.height*s};let{x:r,y:h}=Wi(this.layout.style.objectPosition,e,a);return r+=t.width*n*this.anchor._x,h+=t.height*s*this.anchor._y,this.layout.style.applySizeDirectly===!0&&(this.width=t.width*n,this.height=t.height*s),this.scale.copyFrom(bo),{x:e.left,y:e.top,offsetX:r,offsetY:h,scaleX:n,scaleY:s}}};m.extensions.mixin(m.AbstractText,hl);const qi=Object.getOwnPropertyDescriptor(m.AbstractText.prototype,"text");Object.defineProperty(m.AbstractText.prototype,"text",{...qi,set(e){var A;const t=qi.get.call(this);qi.set.call(this,e),t!==e&&((A=this.layout)==null||A.forceUpdate())}});const ll={computeLayoutData(e){return xo(this,e,"fill",this._anchor)}};m.extensions.mixin(m.ViewContainer,ll);var xA=(e=>(e.Margin="margin",e.Padding="padding",e.Border="border",e.Flex="flex",e.Content="content",e))(xA||{});function Zi(e,A){const t=`getComputed${A.charAt(0).toUpperCase()+A.slice(1)}`;return{top:e.yoga[t](_.Top),right:e.yoga[t](_.Right),bottom:e.yoga[t](_.Bottom),left:e.yoga[t](_.Left)}}function cl(e,A){const{width:t,height:i}=e.computedLayout,n=Zi(e,"margin"),s=Zi(e,"border"),a=Zi(e,"padding"),r=A.get("margin");r.outer.x=-n.left,r.outer.y=-n.top,r.outer.width=t+n.left+n.right,r.outer.height=i+n.top+n.bottom,r.inner.x=0,r.inner.y=0,r.inner.width=t,r.inner.height=i;const h=A.get("border");h.outer.x=0,h.outer.y=0,h.outer.width=t,h.outer.height=i,h.inner.x=s.left,h.inner.y=s.top,h.inner.width=t-s.left-s.right,h.inner.height=i-s.top-s.bottom;const l=A.get("padding");l.outer.copyFrom(h.inner),l.inner.x=a.left+s.left,l.inner.y=a.top+s.top,l.inner.width=t-a.left-a.right-s.left-s.right,l.inner.height=i-a.top-a.bottom-s.top-s.bottom,Il(e,A)}function Il(e,A){var t;const i=A.get("flex"),n=A.get("padding");i.outer.copyFrom(n.inner);const s=new m.Bounds,a=e.yoga.getChildCount();for(let h=0;h<a;h++){const u=e.yoga.getChild(h).getComputedLayout();s.addRect(new m.Rectangle(u.left,u.top,u.width,u.height))}const r=e.yoga.getFlexDirection();r===vA.Column||r===vA.ColumnReverse?(s.width=i.outer.width,s.x=i.outer.x):(s.height=i.outer.height,s.y=i.outer.y),(t=i.inner)==null||t.copyFrom(s.rectangle),A.get("content").outer.copyFrom(s.rectangle)}var Bl=Object.defineProperty,ul=(e,A,t)=>A in e?Bl(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t,ko=(e,A,t)=>ul(e,typeof A!="symbol"?A+"":A,t);function El(e,A,t){const i=Math.round(e[0]+(A[0]-e[0])*t),n=Math.round(e[1]+(A[1]-e[1])*t),s=Math.round(e[2]+(A[2]-e[2])*t);return`rgb(${i},${n},${s})`}class Cl extends m.Container{constructor(){super(),ko(this,"graphics"),ko(this,"heatGraphics"),this.graphics=new Map,Object.values(xA).forEach(A=>{const t=new m.Graphics;this.graphics.set(A,t),this.addChild(t)}),this.heatGraphics=new m.Graphics,this.addChild(this.heatGraphics)}init(A){const{target:t,alpha:i,heat:n}=A;A.heatOnly||Object.entries(A).forEach(([r,h])=>{if(r==="target"||r==="alpha"||r==="heat"||r==="heatOnly")return;h=h;const l=this.graphics.get(r);if(!(!l||!h.draw))if(h.inner)this.drawCutBox(l,h.outer,h.inner,h.color,i);else{const{x:u,y:o,width:g,height:c}=h.outer;l.rect(u,o,g,Math.max(c,1)),l.fill({color:h.color,alpha:i})}});const{invalidationCount:s,draw:a}=n;if(s>0&&a){const h=Math.min(s/20,1),l=A[xA.Margin],g=El([255,255,0],[255,0,0],h);this.heatGraphics.rect(l.outer.x,l.outer.y,l.outer.width,l.outer.height),this.heatGraphics.fill({color:g,alpha:Math.min(.3,h)}),this.heatGraphics.stroke({color:g,alpha:Math.max(.3,h),pixelLine:!0})}this.position.set(t.x,t.y)}reset(){this.graphics.forEach(A=>A.clear()),this.heatGraphics.clear(),this.removeFromParent()}drawCutBox(A,t,i,n,s){const{x:a,y:r,width:h,height:l}=t,{x:u,y:o,width:g,height:c}=i;A.rect(a,r,h,l),A.fill({color:n,alpha:s}),A.rect(u,o,g,c),A.cut()}}var Ql=Object.defineProperty,fl=(e,A,t)=>A in e?Ql(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t,me=(e,A,t)=>fl(e,typeof A!="symbol"?A+"":A,t);class dl{constructor(){me(this,"holder",new m.Container),me(this,"regions",new Map),me(this,"colors",{[xA.Margin]:"#B68655",[xA.Padding]:"#BAC57F",[xA.Border]:"#E7C583",[xA.Content]:"#89B1BE",[xA.Flex]:"#6E28D9"}),me(this,"alpha",.75),Object.values(xA).forEach(A=>{this.regions.set(A,{outer:new m.Rectangle,inner:new m.Rectangle})}),this.holder.__devtoolIgnore=!0,this.holder.__devtoolIgnoreChildren=!0,this.holder.eventMode="none",this.holder.interactiveChildren=!1}reset(){for(let A=this.holder.children.length-1;A>=0;A--){const t=this.holder.children[A];m.BigPool.return(t)}}render(A){cl(A,this.regions);const t=Object.values(xA).reduce((r,h)=>{const l=this.regions.get(h);if(!l)return r;const u=`debugDraw${h.charAt(0).toUpperCase()}${h.slice(1)}`;return r[h]={...l,color:this.colors[h],draw:A._styles.custom[u]??!0},r},{}),{left:i,top:n}=A.computedLayout,s=A.target.getGlobalPosition(),a=m.BigPool.get(Cl,{...t,target:{x:s.x+i,y:s.y+n},alpha:this.alpha,heat:{invalidationCount:A._modificationCount,draw:A._styles.custom.debugHeat!==!1},heatOnly:!A._styles.custom.debug});this.holder.addChildAt(a,0)}destroy(){this.reset(),this.holder.destroy(),this.regions.clear()}}const pl=Object.freeze(Object.defineProperty({__proto__:null,DebugRenderer:dl},Symbol.toStringTag,{value:"Module"}));m.extensions.add(Bo);const yl=async(e,A,t)=>{const i=new m.Application;await i.init({resizeTo:e,autoStart:!1,antialias:!0,...t??{}});const n=await RA(A);if(n.tag!="Canvas")throw new Error("Canvas is required");n.render(e,i);const{backgroundColor:s}=rA(n.props,{backgroundColor:"black"});return i.renderer.background.color=s(),{canvasElement:n,app:i}},wl={linear:Ja,easeIn:Ii,easeInOut:Ms,easeOut:Ka,circIn:Rs,circInOut:Ya,circOut:Fs,backIn:Bi,backInOut:Xa,backOut:Wa,anticipate:Va,bounceIn:ja,bounceInOut:$a,bounceOut:le};class ml{constructor(A,t,i,n,s,a,r=0){this.x0=A,this.y0=t,this.x1=i,this.y1=n,this.x2=s,this.y2=a,this.focalPoint=r,this.gradient=null,this.texture=null,this.size=600,this.size=A;const h=this.size*.5;this.canvas=m.DOMAdapter.get().createCanvas(),this.canvas.width=this.size,this.canvas.height=this.size,this.ctx=this.canvas.getContext("2d"),this.ctx&&(this.gradient=this.ctx.createRadialGradient(h*(1-r),h,0,h,h,h-.5))}addColorStop(A,t){this.gradient&&this.gradient.addColorStop(A,t)}render({translate:A}={}){const{x0:t,y0:i,x1:n,y1:s,x2:a,y2:r,focalPoint:h}=this,l=this.size;if(this.ctx&&this.gradient){this.ctx.fillStyle=this.gradient,this.ctx.fillRect(0,0,l,l),this.texture=new m.Texture({source:new m.ImageSource({resource:this.canvas,addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})});const u=new m.Matrix,o=Math.sqrt((n-t)*(n-t)+(s-i)*(s-i)),g=Math.sqrt((a-t)*(a-t)+(r-i)*(r-i)),c=Math.atan2(s-i,n-t),E=o/l,C=g/l;u.rotate(-c),u.scale(E,C),A&&u.translate(A.x,A.y),this.transform=u}return{texture:this.texture,matrix:this.transform}}}return v.ArraySubject=Rt,v.Button=Fh,v.ButtonState=oo,v.Canvas=fg,v.Circle=yg,v.Container=ue,v.ControlsBase=Xe,v.ControlsDirective=As,v.DOMContainer=Rh,v.DOMElement=so,v.DisplayObject=BA,v.Drag=Ts,v.Drop=Os,v.EVENTS=Ys,v.Easing=wl,v.Ellipse=wg,v.Flash=Ks,v.GamepadControls=$n,v.Graphics=ht,v.Howl=ha,v.Howler=qA.Howler,v.Input=Xn,v.KeyboardControls=Zn,v.Mesh=Sg,v.NineSliceSprite=bh,v.ObjectSubject=Ft,v.ParticlesEmitter=Tg,v.RadialGradient=ml,v.Rect=Xs,v.Scene=bg,v.Scheduler=ts,v.Shake=Js,v.Sound=ss,v.Sprite=Ao,v.Svg=Dg,v.Text=to,v.TilingSprite=Wg,v.Transition=Ps,v.Triangle=mg,v.Utils=Wr,v.Video=Jg,v.Viewport=Sh,v.ViewportFollow=is,v.animatedSequence=Qg,v.animatedSignal=Qi,v.bootstrapCanvas=yl,v.computed=MA,v.cond=aa,v.createComponent=oA,v.effect=$,v.h=RA,v.isAnimatedSignal=Ci,v.isArraySubject=na,v.isComputed=oe,v.isElement=wA,v.isObjectSubject=sa,v.isObservable=Sr,v.isPrimitive=$e,v.isSignal=W,v.isTrigger=Tt,v.loop=ra,v.mount=fi,v.on=Be,v.registerComponent=nA,v.signal=Y,v.tick=xg,v.trigger=Cg,v.useDefineProps=Ai,v.useProps=rA,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),v}({},PIXI);
|
|
27
|
+
*/class di{constructor(A){this.segments=[],this.countingLengths=[],this.totalLength=0,this.init(A)}init(A){if(!A||!A.length)this.segments.push({p1:{x:0,y:0},p2:{x:0,y:0},l:0});else if(Array.isArray(A[0]))for(let t=0;t<A.length;++t){const i=A[t];let n=i[0];for(let s=1;s<i.length;++s){const a=i[s];this.segments.push({p1:n,p2:a,l:0}),n=a}}else{let t=A[0];for(let i=1;i<A.length;++i){const n=A[i];this.segments.push({p1:t,p2:n,l:0}),t=n}}for(let t=0;t<this.segments.length;++t){const{p1:i,p2:n}=this.segments[t],s=Math.sqrt((n.x-i.x)*(n.x-i.x)+(n.y-i.y)*(n.y-i.y));this.segments[t].l=s,this.totalLength+=s,this.countingLengths.push(this.totalLength)}}getRandPos(A){const t=Math.random()*this.totalLength;let i,n;if(this.segments.length===1)i=this.segments[0],n=t;else for(let r=0;r<this.countingLengths.length;++r)if(t<this.countingLengths[r]){i=this.segments[r],n=r===0?t:t-this.countingLengths[r-1];break}n/=i.l||1;const{p1:s,p2:a}=i;A.x=s.x+n*(a.x-s.x),A.y=s.y+n*(a.y-s.y)}}di.type="polygonalChain",di.editorConfig=null;class pi{constructor(A){this.x=A.x,this.y=A.y,this.w=A.w,this.h=A.h}getRandPos(A){A.x=Math.random()*this.w+this.x,A.y=Math.random()*this.h+this.y}}pi.type="rect",pi.editorConfig=null;class mA{constructor(A,t,i){this.value=A,this.time=t,this.next=null,this.isStepped=!1,i?this.ease=typeof i=="function"?i:zs(i):this.ease=null}static createList(A){if("list"in A){const i=A.list;let n;const{value:s,time:a}=i[0],r=n=new mA(typeof s=="string"?Ce(s):s,a,A.ease);if(i.length>2||i.length===2&&i[1].value!==s)for(let h=1;h<i.length;++h){const{value:c,time:B}=i[h];n.next=new mA(typeof c=="string"?Ce(c):c,B),n=n.next}return r.isStepped=!!A.isStepped,r}const t=new mA(typeof A.start=="string"?Ce(A.start):A.start,0);return A.end!==A.start&&(t.next=new mA(typeof A.end=="string"?Ce(A.end):A.end,1)),t}}let Tt=m.Texture.from;const DA=Math.PI/180;function FA(e,A){if(!e)return;const t=Math.sin(e),i=Math.cos(e),n=A.x*i-A.y*t,s=A.x*t+A.y*i;A.x=n,A.y=s}function Ee(e,A,t){return e<<16|A<<8|t}function qs(e){return Math.sqrt(e.x*e.x+e.y*e.y)}function Mg(e){const A=1/qs(e);e.x*=A,e.y*=A}function Zs(e,A){e.x*=A,e.y*=A}function Ce(e,A){A||(A={}),e.charAt(0)==="#"?e=e.substr(1):e.indexOf("0x")===0&&(e=e.substr(2));let t;return e.length===8&&(t=e.substr(0,2),e=e.substr(2)),A.r=parseInt(e.substr(0,2),16),A.g=parseInt(e.substr(2,2),16),A.b=parseInt(e.substr(4,2),16),t&&(A.a=parseInt(t,16)),A}function zs(e){const A=e.length,t=1/A;return function(i){const n=A*i|0,s=(i-n*t)*A,a=e[n]||e[A-1];return a.s+s*(2*(1-s)*(a.cp-a.s)+s*(a.e-a.s))}}function Rg(e){return e||"normal"}class Qe{constructor(A){this.x=A.x||0,this.y=A.y||0,this.radius=A.radius,this.innerRadius=A.innerRadius||0,this.rotation=!!A.affectRotation}getRandPos(A){this.innerRadius!==this.radius?A.x=Math.random()*(this.radius-this.innerRadius)+this.innerRadius:A.x=this.radius,A.y=0;const t=Math.random()*Math.PI*2;this.rotation&&(A.rotation+=t),FA(t,A.position),A.position.x+=this.x,A.position.y+=this.y}}Qe.type="torus",Qe.editorConfig=null;var K;(function(e){e[e.Spawn=0]="Spawn",e[e.Normal=2]="Normal",e[e.Late=5]="Late"})(K||(K={}));class yi{constructor(A){this.order=K.Late,this.minStart=A.minStart,this.maxStart=A.maxStart,this.accel=A.accel,this.rotate=!!A.rotate,this.maxSpeed=A.maxSpeed??0}initParticles(A){let t=A;for(;t;){const i=Math.random()*(this.maxStart-this.minStart)+this.minStart;t.config.velocity?t.config.velocity.set(i,0):t.config.velocity=new m.Point(i,0),FA(t.rotation,t.config.velocity),t=t.next}}updateParticle(A,t){const i=A.config.velocity,n=i.x,s=i.y;if(i.x+=this.accel.x*t,i.y+=this.accel.y*t,this.maxSpeed){const a=qs(i);a>this.maxSpeed&&Zs(i,this.maxSpeed/a)}A.x+=(n+i.x)/2*t,A.y+=(s+i.y)/2*t,this.rotate&&(A.rotation=Math.atan2(i.y,i.x))}}yi.type="moveAcceleration",yi.editorConfig=null;function Fg(e){return this.ease&&(e=this.ease(e)),(this.first.next.value-this.first.value)*e+this.first.value}function Gg(e){this.ease&&(e=this.ease(e));const A=this.first.value,t=this.first.next.value,i=(t.r-A.r)*e+A.r,n=(t.g-A.g)*e+A.g,s=(t.b-A.b)*e+A.b;return Ee(i,n,s)}function _g(e){this.ease&&(e=this.ease(e));let A=this.first,t=A.next;for(;e>t.time;)A=t,t=t.next;return e=(e-A.time)/(t.time-A.time),(t.value-A.value)*e+A.value}function Ng(e){this.ease&&(e=this.ease(e));let A=this.first,t=A.next;for(;e>t.time;)A=t,t=t.next;e=(e-A.time)/(t.time-A.time);const i=A.value,n=t.value,s=(n.r-i.r)*e+i.r,a=(n.g-i.g)*e+i.g,r=(n.b-i.b)*e+i.b;return Ee(s,a,r)}function Hg(e){this.ease&&(e=this.ease(e));let A=this.first;for(;A.next&&e>A.next.time;)A=A.next;return A.value}function Lg(e){this.ease&&(e=this.ease(e));let A=this.first;for(;A.next&&e>A.next.time;)A=A.next;const t=A.value;return Ee(t.r,t.g,t.b)}class Jt{constructor(A=!1){this.first=null,this.isColor=!!A,this.interpolate=null,this.ease=null}reset(A){this.first=A,A.next&&A.next.time>=1?this.interpolate=this.isColor?Gg:Fg:A.isStepped?this.interpolate=this.isColor?Lg:Hg:this.interpolate=this.isColor?Ng:_g,this.ease=this.first.ease}}class wi{constructor(A){this.order=K.Normal,this.list=new Jt(!1),this.list.reset(mA.createList(A.alpha))}initParticles(A){let t=A;for(;t;)t.alpha=this.list.first.value,t=t.next}updateParticle(A){A.alpha=this.list.interpolate(A.agePercent)}}wi.type="alpha",wi.editorConfig=null;class mi{constructor(A){this.order=K.Normal,this.value=A.alpha}initParticles(A){let t=A;for(;t;)t.alpha=this.value,t=t.next}}mi.type="alphaStatic",mi.editorConfig=null;function js(e){const A=[];for(let t=0;t<e.length;++t){let i=e[t];if(typeof i=="string")A.push(Tt(i));else if(i instanceof m.Texture)A.push(i);else{let n=i.count||1;for(typeof i.texture=="string"?i=Tt(i.texture):i=i.texture;n>0;--n)A.push(i)}}return A}class Di{constructor(A){this.order=K.Normal,this.anims=[];for(let t=0;t<A.anims.length;++t){const i=A.anims[t],n=js(i.textures),s=i.framerate<0?-1:i.framerate>0?i.framerate:60,a={textures:n,duration:s>0?n.length/s:0,framerate:s,loop:s>0?!!i.loop:!1};this.anims.push(a)}}initParticles(A){let t=A;for(;t;){const i=Math.floor(Math.random()*this.anims.length),n=t.config.anim=this.anims[i];t.texture=n.textures[0],t.config.animElapsed=0,n.framerate===-1?(t.config.animDuration=t.maxLife,t.config.animFramerate=n.textures.length/t.maxLife):(t.config.animDuration=n.duration,t.config.animFramerate=n.framerate),t=t.next}}updateParticle(A,t){const i=A.config,n=i.anim;i.animElapsed+=t,i.animElapsed>=i.animDuration&&(i.anim.loop?i.animElapsed=i.animElapsed%i.animDuration:i.animElapsed=i.animDuration-1e-6);const s=i.animElapsed*i.animFramerate+1e-7|0;A.texture=n.textures[s]||n.textures[n.textures.length-1]||m.Texture.EMPTY}}Di.type="animatedRandom",Di.editorConfig=null;class vi{constructor(A){this.order=K.Normal;const t=A.anim,i=js(t.textures),n=t.framerate<0?-1:t.framerate>0?t.framerate:60;this.anim={textures:i,duration:n>0?i.length/n:0,framerate:n,loop:n>0?!!t.loop:!1}}initParticles(A){let t=A;const i=this.anim;for(;t;)t.texture=i.textures[0],t.config.animElapsed=0,i.framerate===-1?(t.config.animDuration=t.maxLife,t.config.animFramerate=i.textures.length/t.maxLife):(t.config.animDuration=i.duration,t.config.animFramerate=i.framerate),t=t.next}updateParticle(A,t){const i=this.anim,n=A.config;n.animElapsed+=t,n.animElapsed>=n.animDuration&&(i.loop?n.animElapsed=n.animElapsed%n.animDuration:n.animElapsed=n.animDuration-1e-6);const s=n.animElapsed*n.animFramerate+1e-7|0;A.texture=i.textures[s]||i.textures[i.textures.length-1]||m.Texture.EMPTY}}vi.type="animatedSingle",vi.editorConfig=null;class Si{constructor(A){this.order=K.Normal,this.value=A.blendMode}initParticles(A){let t=A;for(;t;)t.blendMode=Rg(this.value),t=t.next}}Si.type="blendMode",Si.editorConfig=null;class bi{constructor(A){this.order=K.Spawn,this.spacing=A.spacing*DA,this.start=A.start*DA,this.distance=A.distance}initParticles(A){let t=0,i=A;for(;i;){let n;this.spacing?n=this.start+this.spacing*t:n=Math.random()*Math.PI*2,i.rotation=n,this.distance&&(i.position.x=this.distance,FA(n,i.position)),i=i.next,++t}}}bi.type="spawnBurst",bi.editorConfig=null;class xi{constructor(A){this.order=K.Normal,this.list=new Jt(!0),this.list.reset(mA.createList(A.color))}initParticles(A){let t=A;const i=this.list.first.value,n=Ee(i.r,i.g,i.b);for(;t;)t.tint=n,t=t.next}updateParticle(A){A.tint=this.list.interpolate(A.agePercent)}}xi.type="color",xi.editorConfig=null;class ki{constructor(A){this.order=K.Normal;let t=A.color;t.charAt(0)==="#"?t=t.substr(1):t.indexOf("0x")===0&&(t=t.substr(2)),this.value=parseInt(t,16)}initParticles(A){let t=A;for(;t;)t.tint=this.value,t=t.next}}ki.type="colorStatic",ki.editorConfig=null;class Mi{constructor(A){this.order=K.Normal,this.index=0,this.textures=A.textures.map(t=>typeof t=="string"?Tt(t):t)}initParticles(A){let t=A;for(;t;)t.texture=this.textures[this.index],++this.index>=this.textures.length&&(this.index=0),t=t.next}}Mi.type="textureOrdered",Mi.editorConfig=null;const ct=new m.Point,$s=["E","LN2","LN10","LOG2E","LOG10E","PI","SQRT1_2","SQRT2","abs","acos","acosh","asin","asinh","atan","atanh","atan2","cbrt","ceil","cos","cosh","exp","expm1","floor","fround","hypot","log","log1p","log10","log2","max","min","pow","random","round","sign","sin","sinh","sqrt","tan","tanh"],Ug=new RegExp(["[01234567890\\.\\*\\-\\+\\/\\(\\)x ,]"].concat($s).join("|"),"g");function Pg(e){const A=e.match(Ug);for(let t=A.length-1;t>=0;--t)$s.indexOf(A[t])>=0&&(A[t]=`Math.${A[t]}`);return e=A.join(""),new Function("x",`return ${e};`)}class Ri{constructor(A){if(this.order=K.Late,A.path)if(typeof A.path=="function")this.path=A.path;else try{this.path=Pg(A.path)}catch{this.path=null}else this.path=t=>t;this.list=new Jt(!1),this.list.reset(mA.createList(A.speed)),this.minMult=A.minMult??1}initParticles(A){let t=A;for(;t;){t.config.initRotation=t.rotation,t.config.initPosition?t.config.initPosition.copyFrom(t.position):t.config.initPosition=new m.Point(t.x,t.y),t.config.movement=0;const i=Math.random()*(1-this.minMult)+this.minMult;t.config.speedMult=i,t=t.next}}updateParticle(A,t){const i=this.list.interpolate(A.agePercent)*A.config.speedMult;A.config.movement+=i*t,ct.x=A.config.movement,ct.y=this.path(ct.x),FA(A.config.initRotation,ct),A.position.x=A.config.initPosition.x+ct.x,A.position.y=A.config.initPosition.y+ct.y}}Ri.type="movePath",Ri.editorConfig=null;class Fi{constructor(){this.order=K.Spawn}initParticles(A){}}Fi.type="spawnPoint",Fi.editorConfig=null;class Gi{constructor(A){this.order=K.Normal,this.textures=A.textures.map(t=>typeof t=="string"?Tt(t):t)}initParticles(A){let t=A;for(;t;){const i=Math.floor(Math.random()*this.textures.length);t.texture=this.textures[i],t=t.next}}}Gi.type="textureRandom",Gi.editorConfig=null;class _i{constructor(A){this.order=K.Normal,this.minStart=A.minStart*DA,this.maxStart=A.maxStart*DA,this.minSpeed=A.minSpeed*DA,this.maxSpeed=A.maxSpeed*DA,this.accel=A.accel*DA}initParticles(A){let t=A;for(;t;)this.minStart===this.maxStart?t.rotation+=this.maxStart:t.rotation+=Math.random()*(this.maxStart-this.minStart)+this.minStart,t.config.rotSpeed=Math.random()*(this.maxSpeed-this.minSpeed)+this.minSpeed,t=t.next}updateParticle(A,t){if(this.accel){const i=A.config.rotSpeed;A.config.rotSpeed+=this.accel*t,A.rotation+=(A.config.rotSpeed+i)/2*t}else A.rotation+=A.config.rotSpeed*t}}_i.type="rotation",_i.editorConfig=null;class Ni{constructor(A){this.order=K.Normal,this.min=A.min*DA,this.max=A.max*DA}initParticles(A){let t=A;for(;t;)this.min===this.max?t.rotation+=this.max:t.rotation+=Math.random()*(this.max-this.min)+this.min,t=t.next}}Ni.type="rotationStatic",Ni.editorConfig=null;class Hi{constructor(A){this.order=K.Late+1,this.rotation=(A.rotation||0)*DA}initParticles(A){let t=A;for(;t;)t.rotation=this.rotation,t=t.next}}Hi.type="noRotation",Hi.editorConfig=null;class Li{constructor(A){this.order=K.Normal,this.list=new Jt(!1),this.list.reset(mA.createList(A.scale)),this.minMult=A.minMult??1}initParticles(A){let t=A;for(;t;){const i=Math.random()*(1-this.minMult)+this.minMult;t.config.scaleMult=i,t.scale.x=t.scale.y=this.list.first.value*i,t=t.next}}updateParticle(A){A.scale.x=A.scale.y=this.list.interpolate(A.agePercent)*A.config.scaleMult}}Li.type="scale",Li.editorConfig=null;class Ui{constructor(A){this.order=K.Normal,this.min=A.min,this.max=A.max}initParticles(A){let t=A;for(;t;){const i=Math.random()*(this.max-this.min)+this.min;t.scale.x=t.scale.y=i,t=t.next}}}Ui.type="scaleStatic",Ui.editorConfig=null;class EA{static registerShape(A,t){EA.shapes[t||A.type]=A}constructor(A){this.order=K.Spawn;const t=EA.shapes[A.type];if(!t)throw new Error(`No shape found with type '${A.type}'`);this.shape=new t(A.data)}initParticles(A){let t=A;for(;t;)this.shape.getRandPos(t),t=t.next}}EA.type="spawnShape",EA.editorConfig=null,EA.shapes={},EA.registerShape(di),EA.registerShape(pi),EA.registerShape(Qe),EA.registerShape(Qe,"circle");class Pi{constructor(A){this.order=K.Normal,this.texture=typeof A.texture=="string"?Tt(A.texture):A.texture}initParticles(A){let t=A;for(;t;)t.texture=this.texture,t=t.next}}Pi.type="textureSingle",Pi.editorConfig=null;class Oi{constructor(A){this.order=K.Late,this.list=new Jt(!1),this.list.reset(mA.createList(A.speed)),this.minMult=A.minMult??1}initParticles(A){let t=A;for(;t;){const i=Math.random()*(1-this.minMult)+this.minMult;t.config.speedMult=i,t.config.velocity?t.config.velocity.set(this.list.first.value*i,0):t.config.velocity=new m.Point(this.list.first.value*i,0),FA(t.rotation,t.config.velocity),t=t.next}}updateParticle(A,t){const i=this.list.interpolate(A.agePercent)*A.config.speedMult,n=A.config.velocity;Mg(n),Zs(n,i),A.x+=n.x*t,A.y+=n.y*t}}Oi.type="moveSpeed",Oi.editorConfig=null;class Ti{constructor(A){this.order=K.Late,this.min=A.min,this.max=A.max}initParticles(A){let t=A;for(;t;){const i=Math.random()*(this.max-this.min)+this.min;t.config.velocity?t.config.velocity.set(i,0):t.config.velocity=new m.Point(i,0),FA(t.rotation,t.config.velocity),t=t.next}}updateParticle(A,t){const i=A.config.velocity;A.x+=i.x*t,A.y+=i.y*t}}Ti.type="moveSpeedStatic",Ti.editorConfig=null;class Ji extends m.Sprite{constructor(A){super(),this.prevChild=this.nextChild=null,this.emitter=A,this.config={},this.anchor.x=this.anchor.y=.5,this.maxLife=0,this.age=0,this.agePercent=0,this.oneOverLife=0,this.next=null,this.prev=null,this.init=this.init,this.kill=this.kill}init(A){this.maxLife=A,this.age=this.agePercent=0,this.rotation=0,this.position.x=this.position.y=0,this.scale.x=this.scale.y=1,this.tint=16777215,this.alpha=1,this.oneOverLife=1/this.maxLife,this.visible=!0}kill(){this.emitter.recycle(this)}destroy(){this.parent&&this.parent.removeChild(this),this.emitter=this.next=this.prev=null,super.destroy()}}const Ki=m.Ticker.shared,jA=Symbol("Position particle per emitter position");class O{static registerBehavior(A){O.knownBehaviors[A.type]=A}constructor(A,t){this.initBehaviors=[],this.updateBehaviors=[],this.recycleBehaviors=[],this.minLifetime=0,this.maxLifetime=0,this.customEase=null,this._frequency=1,this.spawnChance=1,this.maxParticles=1e3,this.emitterLifetime=-1,this.spawnPos=new m.Point,this.particlesPerWave=1,this.rotation=0,this.ownerPos=new m.Point,this._prevEmitterPos=new m.Point,this._prevPosIsValid=!1,this._posChanged=!1,this._parent=null,this.addAtBack=!1,this.particleCount=0,this._emit=!1,this._spawnTimer=0,this._emitterLife=-1,this._activeParticlesFirst=null,this._activeParticlesLast=null,this._poolFirst=null,this._origConfig=null,this._autoUpdate=!1,this._destroyWhenComplete=!1,this._completeCallback=null,this.parent=A,t&&this.init(t),this.recycle=this.recycle,this.update=this.update,this.rotate=this.rotate,this.updateSpawnPos=this.updateSpawnPos,this.updateOwnerPos=this.updateOwnerPos}get frequency(){return this._frequency}set frequency(A){typeof A=="number"&&A>0?this._frequency=A:this._frequency=1}get parent(){return this._parent}set parent(A){this.cleanup(),this._parent=A}init(A){if(!A)return;this.cleanup(),this._origConfig=A,this.minLifetime=A.lifetime.min,this.maxLifetime=A.lifetime.max,A.ease?this.customEase=typeof A.ease=="function"?A.ease:zs(A.ease):this.customEase=null,this.particlesPerWave=1,A.particlesPerWave&&A.particlesPerWave>1&&(this.particlesPerWave=A.particlesPerWave),this.frequency=A.frequency,this.spawnChance=typeof A.spawnChance=="number"&&A.spawnChance>0?A.spawnChance:1,this.emitterLifetime=A.emitterLifetime||-1,this.maxParticles=A.maxParticles>0?A.maxParticles:1e3,this.addAtBack=!!A.addAtBack,this.rotation=0,this.ownerPos.set(0),A.pos?this.spawnPos.copyFrom(A.pos):this.spawnPos.set(0),this._prevEmitterPos.copyFrom(this.spawnPos),this._prevPosIsValid=!1,this._spawnTimer=0,this.emit=A.emit===void 0?!0:!!A.emit,this.autoUpdate=!!A.autoUpdate;const t=A.behaviors.map(i=>{const n=O.knownBehaviors[i.type];return n?new n(i.config):(console.error(`Unknown behavior: ${i.type}`),null)}).filter(i=>!!i);t.push(jA),t.sort((i,n)=>i===jA?n.order===K.Spawn?1:-1:n===jA?i.order===K.Spawn?-1:1:i.order-n.order),this.initBehaviors=t.slice(),this.updateBehaviors=t.filter(i=>i!==jA&&i.updateParticle),this.recycleBehaviors=t.filter(i=>i!==jA&&i.recycleParticle)}getBehavior(A){return O.knownBehaviors[A]&&this.initBehaviors.find(t=>t instanceof O.knownBehaviors[A])||null}fillPool(A){for(;A>0;--A){const t=new Ji(this);t.next=this._poolFirst,this._poolFirst=t}}recycle(A,t=!1){for(let i=0;i<this.recycleBehaviors.length;++i)this.recycleBehaviors[i].recycleParticle(A,!t);A.next&&(A.next.prev=A.prev),A.prev&&(A.prev.next=A.next),A===this._activeParticlesLast&&(this._activeParticlesLast=A.prev),A===this._activeParticlesFirst&&(this._activeParticlesFirst=A.next),A.prev=null,A.next=this._poolFirst,this._poolFirst=A,A.parent&&A.parent.removeChild(A),--this.particleCount}rotate(A){if(this.rotation===A)return;const t=A-this.rotation;this.rotation=A,FA(t,this.spawnPos),this._posChanged=!0}updateSpawnPos(A,t){this._posChanged=!0,this.spawnPos.x=A,this.spawnPos.y=t}updateOwnerPos(A,t){this._posChanged=!0,this.ownerPos.x=A,this.ownerPos.y=t}resetPositionTracking(){this._prevPosIsValid=!1}get emit(){return this._emit}set emit(A){this._emit=!!A,this._emitterLife=this.emitterLifetime}get autoUpdate(){return this._autoUpdate}set autoUpdate(A){this._autoUpdate&&!A?Ki.remove(this.update,this):!this._autoUpdate&&A&&Ki.add(this.update,this),this._autoUpdate=!!A}playOnceAndDestroy(A){this.autoUpdate=!0,this.emit=!0,this._destroyWhenComplete=!0,this._completeCallback=A}playOnce(A){this.emit=!0,this._completeCallback=A}update(A){if(typeof A!="number"&&(A=A.deltaTime),this._autoUpdate&&(A=Ki.elapsedMS*.001),!this._parent)return;for(let a=this._activeParticlesFirst,r;a;a=r)if(r=a.next,a.age+=A,a.age>a.maxLife||a.age<0)this.recycle(a);else{let h=a.age*a.oneOverLife;this.customEase&&(this.customEase.length===4?h=this.customEase(h,0,1,1):h=this.customEase(h)),a.agePercent=h;for(let c=0;c<this.updateBehaviors.length;++c)if(this.updateBehaviors[c].updateParticle(a,A)){this.recycle(a);break}}let t,i;this._prevPosIsValid&&(t=this._prevEmitterPos.x,i=this._prevEmitterPos.y);const n=this.ownerPos.x+this.spawnPos.x,s=this.ownerPos.y+this.spawnPos.y;if(this._emit)for(this._spawnTimer-=A<0?0:A;this._spawnTimer<=0;){if(this._emitterLife>=0&&(this._emitterLife-=this._frequency,this._emitterLife<=0)){this._spawnTimer=0,this._emitterLife=0,this.emit=!1;break}if(this.particleCount>=this.maxParticles){this._spawnTimer+=this._frequency;continue}let a,r;if(this._prevPosIsValid&&this._posChanged){const B=1+this._spawnTimer/A;a=(n-t)*B+t,r=(s-i)*B+i}else a=n,r=s;let h=null,c=null;for(let B=Math.min(this.particlesPerWave,this.maxParticles-this.particleCount),o=0;o<B;++o){if(this.spawnChance<1&&Math.random()>=this.spawnChance)continue;let g;if(this.minLifetime===this.maxLifetime?g=this.minLifetime:g=Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,-this._spawnTimer>=g)continue;let l;this._poolFirst?(l=this._poolFirst,this._poolFirst=this._poolFirst.next,l.next=null):l=new Ji(this),l.init(g),this.addAtBack?this._parent.addChildAt(l,0):this._parent.addChild(l),h?(c.next=l,l.prev=c,c=l):c=h=l,++this.particleCount}if(h){this._activeParticlesLast?(this._activeParticlesLast.next=h,h.prev=this._activeParticlesLast,this._activeParticlesLast=c):(this._activeParticlesFirst=h,this._activeParticlesLast=c);for(let B=0;B<this.initBehaviors.length;++B){const o=this.initBehaviors[B];if(o===jA)for(let g=h,l;g;g=l){l=g.next,this.rotation!==0&&(FA(this.rotation,g.position),g.rotation+=this.rotation),g.position.x+=a,g.position.y+=r,g.age+=-this._spawnTimer;let E=g.age*g.oneOverLife;this.customEase&&(this.customEase.length===4?E=this.customEase(E,0,1,1):E=this.customEase(E)),g.agePercent=E}else o.initParticles(h)}for(let B=h,o;B;B=o){o=B.next;for(let g=0;g<this.updateBehaviors.length;++g)if(this.updateBehaviors[g].updateParticle(B,-this._spawnTimer)){this.recycle(B);break}}}this._spawnTimer+=this._frequency}if(this._posChanged&&(this._prevEmitterPos.x=n,this._prevEmitterPos.y=s,this._prevPosIsValid=!0,this._posChanged=!1),!this._emit&&!this._activeParticlesFirst){if(this._completeCallback){const a=this._completeCallback;this._completeCallback=null,a()}this._destroyWhenComplete&&this.destroy()}}emitNow(){const A=this.ownerPos.x+this.spawnPos.x,t=this.ownerPos.y+this.spawnPos.y;let i=null,n=null;for(let s=Math.min(this.particlesPerWave,this.maxParticles-this.particleCount),a=0;a<s;++a){if(this.spawnChance<1&&Math.random()>=this.spawnChance)continue;let r;this._poolFirst?(r=this._poolFirst,this._poolFirst=this._poolFirst.next,r.next=null):r=new Ji(this);let h;this.minLifetime===this.maxLifetime?h=this.minLifetime:h=Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,r.init(h),this.addAtBack?this._parent.addChildAt(r,0):this._parent.addChild(r),i?(n.next=r,r.prev=n,n=r):n=i=r,++this.particleCount}if(i){this._activeParticlesLast?(this._activeParticlesLast.next=i,i.prev=this._activeParticlesLast,this._activeParticlesLast=n):(this._activeParticlesFirst=i,this._activeParticlesLast=n);for(let s=0;s<this.initBehaviors.length;++s){const a=this.initBehaviors[s];if(a===jA)for(let r=i,h;r;r=h)h=r.next,this.rotation!==0&&(FA(this.rotation,r.position),r.rotation+=this.rotation),r.position.x+=A,r.position.y+=t;else a.initParticles(i)}}}cleanup(){let A,t;for(A=this._activeParticlesFirst;A;A=t)t=A.next,this.recycle(A,!0);this._activeParticlesFirst=this._activeParticlesLast=null,this.particleCount=0}get destroyed(){return!(this._parent&&this.initBehaviors.length)}destroy(){this.autoUpdate=!1,this.cleanup();let A;for(let t=this._poolFirst;t;t=A)A=t.next,t.destroy();this._poolFirst=this._parent=this.spawnPos=this.ownerPos=this.customEase=this._completeCallback=null,this.initBehaviors.length=this.updateBehaviors.length=this.recycleBehaviors.length=0}}O.knownBehaviors={},O.registerBehavior(yi),O.registerBehavior(wi),O.registerBehavior(mi),O.registerBehavior(Di),O.registerBehavior(vi),O.registerBehavior(Si),O.registerBehavior(bi),O.registerBehavior(xi),O.registerBehavior(ki),O.registerBehavior(Mi),O.registerBehavior(Ri),O.registerBehavior(Fi),O.registerBehavior(Gi),O.registerBehavior(_i),O.registerBehavior(Ni),O.registerBehavior(Hi),O.registerBehavior(Li),O.registerBehavior(Ui),O.registerBehavior(EA),O.registerBehavior(Pi),O.registerBehavior(Oi),O.registerBehavior(Ti);class Og extends Xs{constructor(){super(...arguments),this.elapsed=Date.now()}async onMount(A){await super.onMount(A);const{props:t}=A,i=t.context.tick;this.emitter=new O(this,t.config),this.subscriptionTick=i.observable.subscribe(n=>{if(!this.emitter)return;const s=Date.now();this.emitter.update((s-this.elapsed)*.001),this.elapsed=s})}onUpdate(A){}async onDestroy(A,t){const i=async()=>{var n;(n=this.emitter)==null||n.destroy(),this.emitter=null,this.subscriptionTick.unsubscribe(),t()};await super.onDestroy(A,i)}}sA("ParticlesEmitter",Og);function Tg(e){return rA("ParticlesEmitter",e)}const Ao=console.log;class Jg extends uA(m.Sprite){constructor(){super(...arguments),this.currentAnimation=null,this.time=0,this.frameIndex=0,this.animations=new Map,this.subscriptionSheet=[],this.sheetParams={},this.sheetCurrentAnimation="stand",this.app=null,this.globalLoader=null,this.trackedAssetIds=new Set,this.currentAnimationContainer=null}get renderer(){var A;return(A=this.app)==null?void 0:A.renderer}async detectImageDimensions(A){if(!A||typeof A!="string"||A.trim()==="")throw new Error(`Invalid image path provided to detectImageDimensions: ${A}`);let t=null;this.globalLoader&&(t=this.globalLoader.registerAsset(A),this.trackedAssetIds.add(t));const i=await m.Assets.load(A,n=>{this.globalLoader&&t&&this.globalLoader.updateProgress(t,n)});return this.globalLoader&&t&&this.globalLoader.completeAsset(t),{width:i.width,height:i.height}}async createTextures(A){let{width:t,height:i,framesHeight:n,framesWidth:s,image:a,offset:r}=A;if(!a||typeof a!="string"||a.trim()==="")return console.warn("Invalid image path provided to createTextures:",a),[];let h=null;this.globalLoader&&(h=this.globalLoader.registerAsset(a),this.trackedAssetIds.add(h));const c=await m.Assets.load(a,C=>{this.globalLoader&&h&&this.globalLoader.updateProgress(h,C)});this.globalLoader&&h&&this.globalLoader.completeAsset(h),(!t||t<=0)&&(t=c.width,A.width=t),(!i||i<=0)&&(i=c.height,A.height=i);const B=A.spriteWidth,o=A.spriteHeight,g=[],l=r&&r.x||0,E=r&&r.y||0;for(let C=0;C<n;C++){g[C]=[];for(let f=0;f<s;f++){const Q=f*B+l,w=C*o+E;if(w>i)throw Ao(`Warning, there is a problem with the height of the "${this.id}" spritesheet. When cutting into frames, the frame exceeds the height of the image.`);if(Q>t)throw Ao(`Warning, there is a problem with the width of the "${this.id}" spritesheet. When cutting into frames, the frame exceeds the width of the image.`);g[C].push(new m.Texture({source:c.source,frame:new m.Rectangle(Q,w,B,o)}))}}return g}async createAnimations(){const{textures:A}=this.spritesheet;if(A)for(let t in A){const s={...["width","height","framesHeight","framesWidth","rectWidth","rectHeight","offset","image","sound"].reduce((C,f)=>({...C,[f]:this.spritesheet[f]}),{}),...A[t]},{rectWidth:a,width:r=0,framesWidth:h=1,rectHeight:c,height:B=0,framesHeight:o=1,image:g}=s;let l=r,E=B;if(g&&(!l||l<=0||!E||E<=0)){const C=await this.detectImageDimensions(g);(!l||l<=0)&&(l=C.width,s.width=l),(!E||E<=0)&&(E=C.height,s.height=E)}s.spriteWidth=a||l/h,s.spriteHeight=c||E/o,this.animations.set(t,{frames:await this.createTextures(s),name:t,animations:A[t].animations,params:[],data:s,sprites:[]})}}async onMount(A){var h,c;const{props:t,propObservables:i}=A,n=t.context.tick,s=t.sheet??{},a=((h=t.sheet)==null?void 0:h.definition)??{};if(this.app=t.context.app(),this.globalLoader=((c=t.context)==null?void 0:c.globalLoader)||null,s!=null&&s.onFinish&&(this.onFinish=s.onFinish),this.subscriptionTick=n.observable.subscribe(B=>{this.destroyed||this.update(B)}),a&&(this.spritesheet=a.value??a,await this.createAnimations()),s.params)for(let B in i==null?void 0:i.sheet.params){const o=i==null?void 0:i.sheet.params[B];J(o)?this.subscriptionSheet.push(o.observable.subscribe(g=>{this.animations.size!=0&&this.play(this.sheetCurrentAnimation,[{[B]:g}])})):this.play(this.sheetCurrentAnimation,[{[B]:o}])}const r=MA(()=>{const{x:B,y:o}=i??{};if(!B||!o)return!1;const g=B,l=o,E=Ci(g)&&g.animatedState().current!==g.animatedState().end,C=Ci(l)&&l.animatedState().current!==l.animatedState().end;return E||C});AA(()=>{const B=r();this.isMounted&&(B?this.sheetCurrentAnimation="walk":this.sheetCurrentAnimation="stand",this.spritesheet&&this.has(this.sheetCurrentAnimation)&&this.play(this.sheetCurrentAnimation,[this.sheetParams]))}),super.onMount(A)}async onUpdate(A){var s,a,r,h;if(this.destroyed)return;super.onUpdate(A),!this.globalLoader&&((s=A.context)!=null&&s.globalLoader)&&(this.globalLoader=A.context.globalLoader);const t=async c=>{var l;if(!c||typeof c!="string"||c.trim()==="")return console.warn("Invalid image path provided to setTexture:",c),null;let B=null;this.globalLoader&&(B=this.globalLoader.registerAsset(c),this.trackedAssetIds.add(B));const o=(l=this.fullProps.loader)==null?void 0:l.onProgress,g=await m.Assets.load(c,E=>{var C;if(this.globalLoader&&B&&this.globalLoader.updateProgress(B,E),o&&o(E),E==1){this.globalLoader&&B&&this.globalLoader.completeAsset(B);const f=(C=this.fullProps.loader)==null?void 0:C.onComplete;f&&setTimeout(()=>{f(g)})}});return g},i=A.sheet,n=((a=A.sheet)==null?void 0:a.definition)??{};if((n==null?void 0:n.type)==="reset"&&(this.spritesheet=n.value??n,await this.resetAnimations()),i!=null&&i.params&&(this.sheetParams=i==null?void 0:i.params),i!=null&&i.playing&&this.isMounted&&(this.sheetCurrentAnimation=i==null?void 0:i.playing,this.play(this.sheetCurrentAnimation,[this.sheetParams])),A.hitbox&&(this.hitbox=A.hitbox.value??A.hitbox),A.scaleMode)this.baseTexture.scaleMode=A.scaleMode;else if(A.image&&this.fullProps.rectangle===void 0){const c=await t(this.fullProps.image);c&&(this.texture=c)}else A.texture&&(wA(A.texture)?(A.texture.componentInstance.subjectInit.subscribe(),this.texture=(r=this.renderer)==null?void 0:r.generateTexture(A.texture.componentInstance)):this.texture=A.texture);if(A.rectangle!==void 0){const{x:c,y:B,width:o,height:g}=((h=A.rectangle)==null?void 0:h.value)??A.rectangle,l=await t(this.fullProps.image);l&&(this.texture=new m.Texture({source:l.source,frame:new m.Rectangle(c,B,o,g)}))}}async onDestroy(A,t){const i=async()=>{this.globalLoader&&(this.trackedAssetIds.forEach(n=>{this.globalLoader.removeAsset(n)}),this.trackedAssetIds.clear()),this.subscriptionSheet.forEach(n=>n.unsubscribe()),this.subscriptionTick.unsubscribe(),this.currentAnimationContainer&&this.parent instanceof m.Container&&this.parent.removeChild(this.currentAnimationContainer),t&&t()};await super.onDestroy(A,i)}has(A){return this.animations.has(A)}get(A){return this.animations.get(A)}isPlaying(A){return A?this.currentAnimation==null?!1:this.currentAnimation.name==A:!!this.currentAnimation}stop(){this.currentAnimation=null}play(A,t=[]){var h;const i=(h=this.currentAnimation)==null?void 0:h.params;if(this.isPlaying(A)&&ne(t,i||[]))return;const n=this.get(A);if(!n)throw new Error(`Impossible to play the ${A} animation because it doesn't exist on the "${this.id}" spritesheet`);const s=structuredClone(t);this.removeChildren(),n.sprites=[],this.currentAnimation=n,this.currentAnimation.params=s,this.time=0,this.frameIndex=0;let a=n.animations;a=Yn(a)?a(...s):a,this.currentAnimationContainer=new m.Container;for(let c of a){const B=new m.Sprite;for(let o of c)this.currentAnimation.sprites.push(o);this.currentAnimationContainer.addChild(B)}const r=this.currentAnimation.data.sound;r&&new ZA.Howl({src:r,autoplay:!0,loop:!1,volume:1}),this.update({deltaRatio:1})}async resetAnimations(){this.stop(),this.animations.clear(),this.currentAnimation=null,this.currentAnimationContainer=null,this.time=0,this.frameIndex=0,this.removeChildren(),this.spritesheet&&(await this.createAnimations(),this.play(this.sheetCurrentAnimation,[this.sheetParams]))}update({deltaRatio:A}){if(!this.isPlaying()||!this.currentAnimation||!this.currentAnimationContainer)return;const t=this,{frames:i,sprites:n,data:s}=this.currentAnimation;let a=n[this.frameIndex];const r=n[this.frameIndex+1];for(let h of this.currentAnimationContainer.children){let c=function(C,f){const w=B(f||C);w!==void 0&&(t[C]=w)};if(!a||a.frameY==null||a.frameX==null)continue;this.texture=i[a.frameY][a.frameX];const B=C=>a[C]??s[C]??this.spritesheet[C],o=C=>{const f=B(C);f&&this[C].set(...f)};this.applyTransform&&(a={...a,...this.applyTransform(a,s,this.spritesheet)});const g=B("spriteRealSize"),l=typeof g=="number"?g:g==null?void 0:g.height;typeof g=="number"||g==null||g.width;const E=()=>{if(l&&this.hitbox){const{spriteWidth:C,spriteHeight:f}=s,Q=(C-this.hitbox.w)/2/C,w=(f-l)/2,v=(f-this.hitbox.h-w)/f;this.anchor.set(Q,v)}};a.sound,E(),o("anchor"),o("scale"),o("skew"),o("pivot"),c("alpha","opacity"),c("x"),c("y"),c("angle"),c("rotation"),c("visible")}if(!r){this.time=0,this.frameIndex=0,this.onFinish&&n.length>1&&this.onFinish();return}this.time+=A??1,this.time>=r.time&&this.frameIndex++}}sA("Sprite",Jg);const to=e=>rA("Sprite",e);function Kg(e){const A={audioprocess:null,canplay:null,canplaythrough:null,complete:null,durationchange:null,emptied:null,ended:null,loadeddata:null,loadedmetadata:null,pause:null,play:null,playing:null,progress:null,ratechange:null,seeked:null,seeking:null,stalled:null,suspend:null,timeupdate:null,volumechange:null,waiting:null},t=W(null),i=Ai(e),{play:n,loop:s,muted:a}=i({play:{type:Boolean,default:!0},loop:{type:Boolean,default:!1},muted:{type:Boolean,default:!1}});return AA(()=>{const r=t(),h=n();r&&h!==void 0&&(h?r.play():r.pause()),r&&s()&&(r.loop=s()),r&&a()&&(r.muted=a())}),fi(()=>()=>{for(let r in A)A[r]&&t().removeEventListener(r,A[r])}),RA(to,{...e,image:e.src,loader:{onComplete:r=>{var c;const h=r.source.resource;t.set(h),(c=e==null?void 0:e.loader)!=null&&c.onComplete&&e.loader.onComplete(r);for(let B in A)if(e[B]){const o=g=>{e[B](g)};A[B]=o,h.addEventListener(B,o)}}}})}class Yg extends uA(m.Text){constructor(){super(...arguments),this.fullText="",this.currentIndex=0,this.typewriterSpeed=1,this._wordWrapWidth=0,this.typewriterOptions={},this.lastSoundTime=0,this.soundDuration=0}async onMount(A,t){const{props:i}=A;await super.onMount(A,t);const n=i.context.tick;i.text&&i.typewriter&&(this.fullText=i.text,this.text="",this.currentIndex=0,i.typewriter&&(this.typewriterOptions=i.typewriter,this.typewriterOptions.skip&&Ot(this.typewriterOptions.skip)&&Be(this.typewriterOptions.skip,()=>{this.skipTypewriter()}),this.typewriterOptions.sound&&this.initializeTypewriterSound()),this.updateLayout()),this.subscriptionTick=n.observable.subscribe(()=>{i.typewriter&&this.typewriterEffect()})}onUpdate(A){if(super.onUpdate(A),A.typewriter&&A.typewriter&&(this.typewriterOptions=A.typewriter,A.typewriter.sound&&this.initializeTypewriterSound()),A.text!==void 0&&(this.text=""+A.text),A.text!==void 0&&A.text!==this.fullText&&this.fullProps.typewriter&&(this.text="",this.currentIndex=0,this.fullText=A.text,this.updateLayout()),A.style){for(const t in A.style)this.style[t]=A.style[t];A.style.wordWrapWidth&&(this._wordWrapWidth=A.style.wordWrapWidth)}A.color&&(this.style.fill=A.color),A.size&&(this.style.fontSize=A.size),A.fontFamily&&(this.style.fontFamily=A.fontFamily),this.updateLayout()}get onCompleteCallback(){return this.typewriterOptions.onComplete}initializeTypewriterSound(){var A;(A=this.typewriterOptions.sound)!=null&&A.src&&(this.typewriterSound=new ZA.Howl({src:[this.typewriterOptions.sound.src],volume:this.typewriterOptions.sound.volume??.5,rate:this.typewriterOptions.sound.rate??1,preload:!0,onload:()=>{var t;if(this.typewriterSound){const i=this.typewriterSound.duration(),n=((t=this.typewriterOptions.sound)==null?void 0:t.rate)??1;this.soundDuration=i/n*1e3}}}))}playTypewriterSound(A){!this.typewriterSound||!this.typewriterOptions.sound||this.soundDuration>0&&A-this.lastSoundTime<this.soundDuration||(this.typewriterSound.play(),this.lastSoundTime=A)}updateLayout(){this._wordWrapWidth?this.setWidth(this._wordWrapWidth):this.setWidth(this.width),this.setHeight(this.height)}typewriterEffect(){if(this.currentIndex<this.fullText.length){const A=Math.min(this.currentIndex+(this.typewriterOptions.speed??1),this.fullText.length);this.text=this.fullText.slice(0,A),this.currentIndex=A,this.typewriterOptions.sound&&this.playTypewriterSound(Date.now()),this.updateLayout(),this.currentIndex===this.fullText.length&&this.onCompleteCallback&&this.onCompleteCallback()}}skipTypewriter(){this.skipSignal&&this.skipSignal(),this.text=this.fullText,this.currentIndex=this.fullText.length,this.updateLayout()}async onDestroy(A,t){const i=async()=>{this.subscriptionTick&&this.subscriptionTick.unsubscribe(),this.typewriterSound&&(this.typewriterSound.stop(),this.typewriterSound.unload(),this.typewriterSound=void 0),t&&t()};await super.onDestroy(A,i)}}sA("Text",Yg);function eo(e){return rA("Text",e)}class Wg extends uA(m.TilingSprite){onUpdate(A){super.onUpdate(A),A.image&&(this.texture=m.Texture.from(A.image)),A.tileScale&&this.tileScale.set(A.tileScale.x,A.tileScale.y),A.tilePosition&&this.tilePosition.set(A.tilePosition.x,A.tilePosition.y),A.width!==void 0&&(this.width=A.width),A.height!==void 0&&(this.height=A.height)}}sA("TilingSprite",Wg);function Xg(e){return rA("TilingSprite",e)}var Vg=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function qg(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var io={exports:{}};(function(e,A){(function(){var t,i;i=function(n){return e.exports=n},t={linear:function(n,s,a,r){return a*n/r+s},easeInQuad:function(n,s,a,r){return a*(n/=r)*n+s},easeOutQuad:function(n,s,a,r){return-a*(n/=r)*(n-2)+s},easeInOutQuad:function(n,s,a,r){return(n/=r/2)<1?a/2*n*n+s:-a/2*(--n*(n-2)-1)+s},easeInCubic:function(n,s,a,r){return a*(n/=r)*n*n+s},easeOutCubic:function(n,s,a,r){return a*((n=n/r-1)*n*n+1)+s},easeInOutCubic:function(n,s,a,r){return(n/=r/2)<1?a/2*n*n*n+s:a/2*((n-=2)*n*n+2)+s},easeInQuart:function(n,s,a,r){return a*(n/=r)*n*n*n+s},easeOutQuart:function(n,s,a,r){return-a*((n=n/r-1)*n*n*n-1)+s},easeInOutQuart:function(n,s,a,r){return(n/=r/2)<1?a/2*n*n*n*n+s:-a/2*((n-=2)*n*n*n-2)+s},easeInQuint:function(n,s,a,r){return a*(n/=r)*n*n*n*n+s},easeOutQuint:function(n,s,a,r){return a*((n=n/r-1)*n*n*n*n+1)+s},easeInOutQuint:function(n,s,a,r){return(n/=r/2)<1?a/2*n*n*n*n*n+s:a/2*((n-=2)*n*n*n*n+2)+s},easeInSine:function(n,s,a,r){return-a*Math.cos(n/r*(Math.PI/2))+a+s},easeOutSine:function(n,s,a,r){return a*Math.sin(n/r*(Math.PI/2))+s},easeInOutSine:function(n,s,a,r){return-a/2*(Math.cos(Math.PI*n/r)-1)+s},easeInExpo:function(n,s,a,r){return n===0?s:a*Math.pow(2,10*(n/r-1))+s},easeOutExpo:function(n,s,a,r){return n===r?s+a:a*(-Math.pow(2,-10*n/r)+1)+s},easeInOutExpo:function(n,s,a,r){return(n/=r/2)<1?a/2*Math.pow(2,10*(n-1))+s:a/2*(-Math.pow(2,-10*--n)+2)+s},easeInCirc:function(n,s,a,r){return-a*(Math.sqrt(1-(n/=r)*n)-1)+s},easeOutCirc:function(n,s,a,r){return a*Math.sqrt(1-(n=n/r-1)*n)+s},easeInOutCirc:function(n,s,a,r){return(n/=r/2)<1?-a/2*(Math.sqrt(1-n*n)-1)+s:a/2*(Math.sqrt(1-(n-=2)*n)+1)+s},easeInElastic:function(n,s,a,r){var h,c,B;return B=1.70158,c=0,h=a,n===0||(n/=r),c||(c=r*.3),h<Math.abs(a)?(h=a,B=c/4):B=c/(2*Math.PI)*Math.asin(a/h),-(h*Math.pow(2,10*(n-=1))*Math.sin((n*r-B)*(2*Math.PI)/c))+s},easeOutElastic:function(n,s,a,r){var h,c,B;return B=1.70158,c=0,h=a,n===0||(n/=r),c||(c=r*.3),h<Math.abs(a)?(h=a,B=c/4):B=c/(2*Math.PI)*Math.asin(a/h),h*Math.pow(2,-10*n)*Math.sin((n*r-B)*(2*Math.PI)/c)+a+s},easeInOutElastic:function(n,s,a,r){var h,c,B;return B=1.70158,c=0,h=a,n===0||(n/=r/2),c||(c=r*.44999999999999996),h<Math.abs(a)?(h=a,B=c/4):B=c/(2*Math.PI)*Math.asin(a/h),n<1?-.5*(h*Math.pow(2,10*(n-=1))*Math.sin((n*r-B)*(2*Math.PI)/c))+s:h*Math.pow(2,-10*(n-=1))*Math.sin((n*r-B)*(2*Math.PI)/c)*.5+a+s},easeInBack:function(n,s,a,r,h){return h===void 0&&(h=1.70158),a*(n/=r)*n*((h+1)*n-h)+s},easeOutBack:function(n,s,a,r,h){return h===void 0&&(h=1.70158),a*((n=n/r-1)*n*((h+1)*n+h)+1)+s},easeInOutBack:function(n,s,a,r,h){return h===void 0&&(h=1.70158),(n/=r/2)<1?a/2*(n*n*(((h*=1.525)+1)*n-h))+s:a/2*((n-=2)*n*(((h*=1.525)+1)*n+h)+2)+s},easeInBounce:function(n,s,a,r){var h;return h=t.easeOutBounce(r-n,0,a,r),a-h+s},easeOutBounce:function(n,s,a,r){return(n/=r)<.36363636363636365?a*(7.5625*n*n)+s:n<.7272727272727273?a*(7.5625*(n-=.5454545454545454)*n+.75)+s:n<.9090909090909091?a*(7.5625*(n-=.8181818181818182)*n+.9375)+s:a*(7.5625*(n-=.9545454545454546)*n+.984375)+s},easeInOutBounce:function(n,s,a,r){var h;return n<r/2?(h=t.easeInBounce(n*2,0,a,r),h*.5+s):(h=t.easeOutBounce(n*2-r,0,a,r),h*.5+a*.5+s)}},i(t)}).call(Vg)})(io);var Zg=io.exports;const no=qg(Zg);function fe(e,A){if(e){if(typeof e=="function")return e;if(typeof e=="string")return no[e]}else return no[A]}class zg{constructor(A){this.viewport=A,this.touches=[],this.addListeners()}addListeners(){this.viewport.eventMode="static",this.viewport.forceHitArea||(this.viewport.hitArea=new m.Rectangle(0,0,this.viewport.worldWidth,this.viewport.worldHeight)),this.viewport.on("pointerdown",this.down,this),this.viewport.options.allowPreserveDragOutside?this.viewport.on("globalpointermove",this.move,this):this.viewport.on("pointermove",this.move,this),this.viewport.on("pointerup",this.up,this),this.viewport.on("pointerupoutside",this.up,this),this.viewport.on("pointercancel",this.up,this),this.viewport.options.allowPreserveDragOutside||this.viewport.on("pointerleave",this.up,this),this.wheelFunction=A=>this.handleWheel(A),this.viewport.options.events.domElement.addEventListener("wheel",this.wheelFunction,{passive:this.viewport.options.passiveWheel}),this.isMouseDown=!1}destroy(){var A;(A=this.viewport.options.events.domElement)==null||A.removeEventListener("wheel",this.wheelFunction)}down(A){if(!(this.viewport.pause||!this.viewport.visible)){if(A.pointerType==="mouse"?this.isMouseDown=!0:this.get(A.pointerId)||this.touches.push({id:A.pointerId,last:null}),this.count()===1){this.last=A.global.clone();const t=this.viewport.plugins.get("decelerate",!0),i=this.viewport.plugins.get("bounce",!0);(!t||!t.isActive())&&(!i||!i.isActive())?this.clickedAvailable=!0:this.clickedAvailable=!1}else this.clickedAvailable=!1;this.viewport.plugins.down(A)&&this.viewport.options.stopPropagation&&A.stopPropagation()}}clear(){this.isMouseDown=!1,this.touches=[],this.last=null}checkThreshold(A){return Math.abs(A)>=this.viewport.threshold}move(A){if(this.viewport.pause||!this.viewport.visible)return;const t=this.viewport.plugins.move(A);if(this.clickedAvailable&&this.last){const i=A.global.x-this.last.x,n=A.global.y-this.last.y;(this.checkThreshold(i)||this.checkThreshold(n))&&(this.clickedAvailable=!1)}t&&this.viewport.options.stopPropagation&&A.stopPropagation()}up(A){if(this.viewport.pause||!this.viewport.visible)return;A.pointerType==="mouse"&&(this.isMouseDown=!1),A.pointerType!=="mouse"&&this.remove(A.pointerId);const t=this.viewport.plugins.up(A);this.clickedAvailable&&this.count()===0&&this.last&&(this.viewport.emit("clicked",{event:A,screen:this.last,world:this.viewport.toWorld(this.last),viewport:this.viewport}),this.clickedAvailable=!1),t&&this.viewport.options.stopPropagation&&A.stopPropagation()}getPointerPosition(A){const t=new m.Point;return this.viewport.options.events.mapPositionToPoint(t,A.clientX,A.clientY),t}handleWheel(A){if(this.viewport.pause||!this.viewport.visible)return;const t=this.viewport.toLocal(this.getPointerPosition(A));this.viewport.left<=t.x&&t.x<=this.viewport.right&&this.viewport.top<=t.y&&t.y<=this.viewport.bottom&&this.viewport.plugins.wheel(A)&&!this.viewport.options.passiveWheel&&A.preventDefault()}pause(){this.touches=[],this.isMouseDown=!1}get(A){for(const t of this.touches)if(t.id===A)return t;return null}remove(A){for(let t=0;t<this.touches.length;t++)if(this.touches[t].id===A){this.touches.splice(t,1);return}}count(){return(this.isMouseDown?1:0)+this.touches.length}}const Kt=["drag","pinch","wheel","follow","mouse-edges","decelerate","animate","bounce","snap-zoom","clamp-zoom","snap","clamp"];class jg{constructor(A){this.viewport=A,this.list=[],this.plugins={}}add(A,t,i=Kt.length){const n=this.plugins[A];n&&n.destroy(),this.plugins[A]=t;const s=Kt.indexOf(A);s!==-1&&Kt.splice(s,1),Kt.splice(i,0,A),this.sort()}get(A,t){var i;return t&&(i=this.plugins[A])!=null&&i.paused?null:this.plugins[A]}update(A){for(const t of this.list)t.update(A)}resize(){for(const A of this.list)A.resize()}reset(){for(const A of this.list)A.reset()}removeAll(){this.list.forEach(A=>{A.destroy()}),this.plugins={},this.sort()}remove(A){var t;this.plugins[A]&&((t=this.plugins[A])==null||t.destroy(),delete this.plugins[A],this.viewport.emit("plugin-remove",A),this.sort())}pause(A){var t;(t=this.plugins[A])==null||t.pause()}resume(A){var t;(t=this.plugins[A])==null||t.resume()}sort(){this.list=[];for(const A of Kt)this.plugins[A]&&this.list.push(this.plugins[A])}down(A){let t=!1;for(const i of this.list)i.down(A)&&(t=!0);return t}move(A){let t=!1;for(const i of this.viewport.plugins.list)i.move(A)&&(t=!0);return t}up(A){let t=!1;for(const i of this.list)i.up(A)&&(t=!0);return t}wheel(A){let t=!1;for(const i of this.list)i.wheel(A)&&(t=!0);return t}}class lA{constructor(A){this.parent=A,this.paused=!1}destroy(){}down(A){return!1}move(A){return!1}up(A){return!1}wheel(A){return!1}update(A){}resize(){}reset(){}pause(){this.paused=!0}resume(){this.paused=!1}}const $g={removeOnInterrupt:!1,ease:"linear",time:1e3};class Ah extends lA{constructor(A,t={}){super(A),this.startWidth=null,this.startHeight=null,this.deltaWidth=null,this.deltaHeight=null,this.width=null,this.height=null,this.time=0,this.options=Object.assign({},$g,t),this.options.ease=fe(this.options.ease),this.setupPosition(),this.setupZoom(),this.time=0}setupPosition(){typeof this.options.position<"u"?(this.startX=this.parent.center.x,this.startY=this.parent.center.y,this.deltaX=this.options.position.x-this.parent.center.x,this.deltaY=this.options.position.y-this.parent.center.y,this.keepCenter=!1):this.keepCenter=!0}setupZoom(){this.width=null,this.height=null,typeof this.options.scale<"u"?this.width=this.parent.screenWidth/this.options.scale:typeof this.options.scaleX<"u"||typeof this.options.scaleY<"u"?(typeof this.options.scaleX<"u"&&(this.width=this.parent.screenWidth/this.options.scaleX),typeof this.options.scaleY<"u"&&(this.height=this.parent.screenHeight/this.options.scaleY)):(typeof this.options.width<"u"&&(this.width=this.options.width),typeof this.options.height<"u"&&(this.height=this.options.height)),this.width!==null&&(this.startWidth=this.parent.screenWidthInWorldPixels,this.deltaWidth=this.width-this.startWidth),this.height!==null&&(this.startHeight=this.parent.screenHeightInWorldPixels,this.deltaHeight=this.height-this.startHeight)}down(){return this.options.removeOnInterrupt&&this.parent.plugins.remove("animate"),!1}complete(){this.parent.plugins.remove("animate"),this.width!==null&&this.parent.fitWidth(this.width,this.keepCenter,this.height===null),this.height!==null&&this.parent.fitHeight(this.height,this.keepCenter,this.width===null),!this.keepCenter&&this.options.position&&this.parent.moveCenter(this.options.position),this.parent.emit("animate-end",this.parent),this.options.callbackOnComplete&&this.options.callbackOnComplete(this.parent)}update(A){if(this.paused)return;this.time+=A;const t=new m.Point(this.parent.scale.x,this.parent.scale.y);if(this.time>=this.options.time){const i=this.parent.width,n=this.parent.height;this.complete(),(i!==this.parent.width||n!==this.parent.height)&&this.parent.emit("zoomed",{viewport:this.parent,original:t,type:"animate"})}else{const i=this.options.ease(this.time,0,1,this.options.time);if(this.width!==null){const n=this.startWidth,s=this.deltaWidth;this.parent.fitWidth(n+s*i,this.keepCenter,this.height===null)}if(this.height!==null){const n=this.startHeight,s=this.deltaHeight;this.parent.fitHeight(n+s*i,this.keepCenter,this.width===null)}if(this.width===null?this.parent.scale.x=this.parent.scale.y:this.height===null&&(this.parent.scale.y=this.parent.scale.x),!this.keepCenter){const n=this.startX,s=this.startY,a=this.deltaX,r=this.deltaY,h=new m.Point(this.parent.x,this.parent.y);this.parent.moveCenter(n+a*i,s+r*i),this.parent.emit("moved",{viewport:this.parent,original:h,type:"animate"})}(this.width||this.height)&&this.parent.emit("zoomed",{viewport:this.parent,original:t,type:"animate"})}}}const th={sides:"all",friction:.5,time:150,ease:"easeInOutSine",underflow:"center",bounceBox:null};class eh extends lA{constructor(A,t={}){super(A),this.options=Object.assign({},th,t),this.ease=fe(this.options.ease,"easeInOutSine"),this.options.sides?this.options.sides==="all"?this.top=this.bottom=this.left=this.right=!0:this.options.sides==="horizontal"?(this.right=this.left=!0,this.top=this.bottom=!1):this.options.sides==="vertical"?(this.left=this.right=!1,this.top=this.bottom=!0):(this.top=this.options.sides.indexOf("top")!==-1,this.bottom=this.options.sides.indexOf("bottom")!==-1,this.left=this.options.sides.indexOf("left")!==-1,this.right=this.options.sides.indexOf("right")!==-1):this.left=this.top=this.right=this.bottom=!1;const i=this.options.underflow.toLowerCase();i==="center"?(this.underflowX=0,this.underflowY=0):(this.underflowX=i.indexOf("left")!==-1?-1:i.indexOf("right")!==-1?1:0,this.underflowY=i.indexOf("top")!==-1?-1:i.indexOf("bottom")!==-1?1:0),this.reset()}isActive(){return this.toX!==null||this.toY!==null}down(){return this.toX=this.toY=null,!1}up(){return this.bounce(),!1}update(A){if(!this.paused){if(this.bounce(),this.toX){const t=this.toX;t.time+=A,this.parent.emit("moved",{viewport:this.parent,type:"bounce-x"}),t.time>=this.options.time?(this.parent.x=t.end,this.toX=null,this.parent.emit("bounce-x-end",this.parent)):this.parent.x=this.ease(t.time,t.start,t.delta,this.options.time)}if(this.toY){const t=this.toY;t.time+=A,this.parent.emit("moved",{viewport:this.parent,type:"bounce-y"}),t.time>=this.options.time?(this.parent.y=t.end,this.toY=null,this.parent.emit("bounce-y-end",this.parent)):this.parent.y=this.ease(t.time,t.start,t.delta,this.options.time)}}}calcUnderflowX(){let A;switch(this.underflowX){case-1:A=0;break;case 1:A=this.parent.screenWidth-this.parent.screenWorldWidth;break;default:A=(this.parent.screenWidth-this.parent.screenWorldWidth)/2}return A}calcUnderflowY(){let A;switch(this.underflowY){case-1:A=0;break;case 1:A=this.parent.screenHeight-this.parent.screenWorldHeight;break;default:A=(this.parent.screenHeight-this.parent.screenWorldHeight)/2}return A}oob(){const A=this.options.bounceBox;if(A){const t=typeof A.x>"u"?0:A.x,i=typeof A.y>"u"?0:A.y,n=typeof A.width>"u"?this.parent.worldWidth:A.width,s=typeof A.height>"u"?this.parent.worldHeight:A.height;return{left:this.parent.left<t,right:this.parent.right>n,top:this.parent.top<i,bottom:this.parent.bottom>s,topLeft:new m.Point(t*this.parent.scale.x,i*this.parent.scale.y),bottomRight:new m.Point(n*this.parent.scale.x-this.parent.screenWidth,s*this.parent.scale.y-this.parent.screenHeight)}}return{left:this.parent.left<0,right:this.parent.right>this.parent.worldWidth,top:this.parent.top<0,bottom:this.parent.bottom>this.parent.worldHeight,topLeft:new m.Point(0,0),bottomRight:new m.Point(this.parent.worldWidth*this.parent.scale.x-this.parent.screenWidth,this.parent.worldHeight*this.parent.scale.y-this.parent.screenHeight)}}bounce(){var A,t;if(this.paused)return;let i,n=this.parent.plugins.get("decelerate",!0);n&&(n.x||n.y)&&(n.x&&n.percentChangeX===((A=n.options)==null?void 0:A.friction)||n.y&&n.percentChangeY===((t=n.options)==null?void 0:t.friction))&&(i=this.oob(),(i.left&&this.left||i.right&&this.right)&&(n.percentChangeX=this.options.friction),(i.top&&this.top||i.bottom&&this.bottom)&&(n.percentChangeY=this.options.friction));const s=this.parent.plugins.get("drag",!0)||{},a=this.parent.plugins.get("pinch",!0)||{};if(n=n||{},!(s!=null&&s.active)&&!(a!=null&&a.active)&&(!this.toX||!this.toY)&&(!n.x||!n.y)){i=i||this.oob();const r=i.topLeft,h=i.bottomRight;if(!this.toX&&!n.x){let c=null;i.left&&this.left?c=this.parent.screenWorldWidth<this.parent.screenWidth?this.calcUnderflowX():-r.x:i.right&&this.right&&(c=this.parent.screenWorldWidth<this.parent.screenWidth?this.calcUnderflowX():-h.x),c!==null&&this.parent.x!==c&&(this.toX={time:0,start:this.parent.x,delta:c-this.parent.x,end:c},this.parent.emit("bounce-x-start",this.parent))}if(!this.toY&&!n.y){let c=null;i.top&&this.top?c=this.parent.screenWorldHeight<this.parent.screenHeight?this.calcUnderflowY():-r.y:i.bottom&&this.bottom&&(c=this.parent.screenWorldHeight<this.parent.screenHeight?this.calcUnderflowY():-h.y),c!==null&&this.parent.y!==c&&(this.toY={time:0,start:this.parent.y,delta:c-this.parent.y,end:c},this.parent.emit("bounce-y-start",this.parent))}}}reset(){this.toX=this.toY=null,this.bounce()}}const ih={left:!1,right:!1,top:!1,bottom:!1,direction:null,underflow:"center"};class nh extends lA{constructor(A,t={}){super(A),this.options=Object.assign({},ih,t),this.options.direction&&(this.options.left=this.options.direction==="x"||this.options.direction==="all"?!0:null,this.options.right=this.options.direction==="x"||this.options.direction==="all"?!0:null,this.options.top=this.options.direction==="y"||this.options.direction==="all"?!0:null,this.options.bottom=this.options.direction==="y"||this.options.direction==="all"?!0:null),this.parseUnderflow(),this.last={x:null,y:null,scaleX:null,scaleY:null},this.update()}parseUnderflow(){const A=this.options.underflow.toLowerCase();A==="none"?this.noUnderflow=!0:A==="center"?(this.underflowX=this.underflowY=0,this.noUnderflow=!1):(this.underflowX=A.indexOf("left")!==-1?-1:A.indexOf("right")!==-1?1:0,this.underflowY=A.indexOf("top")!==-1?-1:A.indexOf("bottom")!==-1?1:0,this.noUnderflow=!1)}move(){return this.update(),!1}update(){if(this.paused||this.parent.x===this.last.x&&this.parent.y===this.last.y&&this.parent.scale.x===this.last.scaleX&&this.parent.scale.y===this.last.scaleY)return;const A=new m.Point(this.parent.x,this.parent.y),t=this.parent.plugins.decelerate||{};if(this.options.left!==null||this.options.right!==null){let i=!1;if(!this.noUnderflow&&this.parent.screenWorldWidth<this.parent.screenWidth)switch(this.underflowX){case-1:this.parent.x!==0&&(this.parent.x=0,i=!0);break;case 1:this.parent.x!==this.parent.screenWidth-this.parent.screenWorldWidth&&(this.parent.x=this.parent.screenWidth-this.parent.screenWorldWidth,i=!0);break;default:this.parent.x!==(this.parent.screenWidth-this.parent.screenWorldWidth)/2&&(this.parent.x=(this.parent.screenWidth-this.parent.screenWorldWidth)/2,i=!0)}else this.options.left!==null&&this.parent.left<(this.options.left===!0?0:this.options.left)&&(this.parent.x=-(this.options.left===!0?0:this.options.left)*this.parent.scale.x,t.x=0,i=!0),this.options.right!==null&&this.parent.right>(this.options.right===!0?this.parent.worldWidth:this.options.right)&&(this.parent.x=-(this.options.right===!0?this.parent.worldWidth:this.options.right)*this.parent.scale.x+this.parent.screenWidth,t.x=0,i=!0);i&&this.parent.emit("moved",{viewport:this.parent,original:A,type:"clamp-x"})}if(this.options.top!==null||this.options.bottom!==null){let i=!1;if(!this.noUnderflow&&this.parent.screenWorldHeight<this.parent.screenHeight)switch(this.underflowY){case-1:this.parent.y!==0&&(this.parent.y=0,i=!0);break;case 1:this.parent.y!==this.parent.screenHeight-this.parent.screenWorldHeight&&(this.parent.y=this.parent.screenHeight-this.parent.screenWorldHeight,i=!0);break;default:this.parent.y!==(this.parent.screenHeight-this.parent.screenWorldHeight)/2&&(this.parent.y=(this.parent.screenHeight-this.parent.screenWorldHeight)/2,i=!0)}else this.options.top!==null&&this.parent.top<(this.options.top===!0?0:this.options.top)&&(this.parent.y=-(this.options.top===!0?0:this.options.top)*this.parent.scale.y,t.y=0,i=!0),this.options.bottom!==null&&this.parent.bottom>(this.options.bottom===!0?this.parent.worldHeight:this.options.bottom)&&(this.parent.y=-(this.options.bottom===!0?this.parent.worldHeight:this.options.bottom)*this.parent.scale.y+this.parent.screenHeight,t.y=0,i=!0);i&&this.parent.emit("moved",{viewport:this.parent,original:A,type:"clamp-y"})}this.last.x=this.parent.x,this.last.y=this.parent.y,this.last.scaleX=this.parent.scale.x,this.last.scaleY=this.parent.scale.y}reset(){this.update()}}const sh={minWidth:null,minHeight:null,maxWidth:null,maxHeight:null,minScale:null,maxScale:null};class oh extends lA{constructor(A,t={}){super(A),this.options=Object.assign({},sh,t),this.clamp()}resize(){this.clamp()}clamp(){if(!this.paused){if(this.options.minWidth||this.options.minHeight||this.options.maxWidth||this.options.maxHeight){let A=this.parent.worldScreenWidth,t=this.parent.worldScreenHeight;if(this.options.minWidth!==null&&A<this.options.minWidth){const i=this.parent.scale.x;this.parent.fitWidth(this.options.minWidth,!1,!1,!0),this.parent.scale.y*=this.parent.scale.x/i,A=this.parent.worldScreenWidth,t=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.maxWidth!==null&&A>this.options.maxWidth){const i=this.parent.scale.x;this.parent.fitWidth(this.options.maxWidth,!1,!1,!0),this.parent.scale.y*=this.parent.scale.x/i,A=this.parent.worldScreenWidth,t=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.minHeight!==null&&t<this.options.minHeight){const i=this.parent.scale.y;this.parent.fitHeight(this.options.minHeight,!1,!1,!0),this.parent.scale.x*=this.parent.scale.y/i,A=this.parent.worldScreenWidth,t=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.maxHeight!==null&&t>this.options.maxHeight){const i=this.parent.scale.y;this.parent.fitHeight(this.options.maxHeight,!1,!1,!0),this.parent.scale.x*=this.parent.scale.y/i,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}}else if(this.options.minScale||this.options.maxScale){const A={x:null,y:null},t={x:null,y:null};if(typeof this.options.minScale=="number")A.x=this.options.minScale,A.y=this.options.minScale;else if(this.options.minScale!==null){const s=this.options.minScale;A.x=typeof s.x>"u"?null:s.x,A.y=typeof s.y>"u"?null:s.y}if(typeof this.options.maxScale=="number")t.x=this.options.maxScale,t.y=this.options.maxScale;else if(this.options.maxScale!==null){const s=this.options.maxScale;t.x=typeof s.x>"u"?null:s.x,t.y=typeof s.y>"u"?null:s.y}let i=this.parent.scale.x,n=this.parent.scale.y;A.x!==null&&i<A.x&&(i=A.x),t.x!==null&&i>t.x&&(i=t.x),A.y!==null&&n<A.y&&(n=A.y),t.y!==null&&n>t.y&&(n=t.y),(i!==this.parent.scale.x||n!==this.parent.scale.y)&&(this.parent.scale.set(i,n),this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"}))}}}reset(){this.clamp()}}const rh={friction:.98,bounce:.8,minSpeed:.01},KA=16;class ah extends lA{constructor(A,t={}){super(A),this.options=Object.assign({},rh,t),this.saved=[],this.timeSinceRelease=0,this.reset(),this.parent.on("moved",i=>this.handleMoved(i))}down(){return this.saved=[],this.x=this.y=null,!1}isActive(){return!!(this.x||this.y)}move(){if(this.paused)return!1;const A=this.parent.input.count();return(A===1||A>1&&!this.parent.plugins.get("pinch",!0))&&(this.saved.push({x:this.parent.x,y:this.parent.y,time:performance.now()}),this.saved.length>60&&this.saved.splice(0,30)),!1}handleMoved(A){if(this.saved.length){const t=this.saved[this.saved.length-1];A.type==="clamp-x"&&A.original?t.x===A.original.x&&(t.x=this.parent.x):A.type==="clamp-y"&&A.original&&t.y===A.original.y&&(t.y=this.parent.y)}}up(){if(this.parent.input.count()===0&&this.saved.length){const A=performance.now();for(const t of this.saved)if(t.time>=A-100){const i=A-t.time;this.x=(this.parent.x-t.x)/i,this.y=(this.parent.y-t.y)/i,this.percentChangeX=this.percentChangeY=this.options.friction,this.timeSinceRelease=0;break}}return!1}activate(A){A=A||{},typeof A.x<"u"&&(this.x=A.x,this.percentChangeX=this.options.friction),typeof A.y<"u"&&(this.y=A.y,this.percentChangeY=this.options.friction)}update(A){if(this.paused)return;const t=this.x||this.y,i=this.timeSinceRelease,n=this.timeSinceRelease+A;if(this.x){const s=this.percentChangeX,a=Math.log(s);this.parent.x+=this.x*KA/a*(Math.pow(s,n/KA)-Math.pow(s,i/KA)),this.x*=Math.pow(this.percentChangeX,A/KA)}if(this.y){const s=this.percentChangeY,a=Math.log(s);this.parent.y+=this.y*KA/a*(Math.pow(s,n/KA)-Math.pow(s,i/KA)),this.y*=Math.pow(this.percentChangeY,A/KA)}this.timeSinceRelease+=A,this.x&&this.y?Math.abs(this.x)<this.options.minSpeed&&Math.abs(this.y)<this.options.minSpeed&&(this.x=0,this.y=0):(Math.abs(this.x||0)<this.options.minSpeed&&(this.x=0),Math.abs(this.y||0)<this.options.minSpeed&&(this.y=0)),t&&this.parent.emit("moved",{viewport:this.parent,type:"decelerate"})}reset(){this.x=this.y=null}}const gh={direction:"all",pressDrag:!0,wheel:!0,wheelScroll:1,reverse:!1,clampWheel:!1,underflow:"center",factor:1,mouseButtons:"all",keyToPress:null,ignoreKeyToPressOnTouch:!1,lineHeight:20,wheelSwapAxes:!1};class hh extends lA{constructor(A,t={}){super(A),this.windowEventHandlers=[],this.options=Object.assign({},gh,t),this.moved=!1,this.reverse=this.options.reverse?1:-1,this.xDirection=!this.options.direction||this.options.direction==="all"||this.options.direction==="x",this.yDirection=!this.options.direction||this.options.direction==="all"||this.options.direction==="y",this.keyIsPressed=!1,this.parseUnderflow(),this.mouseButtons(this.options.mouseButtons),this.options.keyToPress&&this.handleKeyPresses(this.options.keyToPress)}handleKeyPresses(A){const t=n=>{A.includes(n.code)&&(this.keyIsPressed=!0)},i=n=>{A.includes(n.code)&&(this.keyIsPressed=!1)};this.addWindowEventHandler("keyup",i),this.addWindowEventHandler("keydown",t)}addWindowEventHandler(A,t){typeof window>"u"||(window.addEventListener(A,t),this.windowEventHandlers.push({event:A,handler:t}))}destroy(){typeof window>"u"||this.windowEventHandlers.forEach(({event:A,handler:t})=>{window.removeEventListener(A,t)})}mouseButtons(A){!A||A==="all"?this.mouse=[!0,!0,!0]:this.mouse=[A.indexOf("left")!==-1,A.indexOf("middle")!==-1,A.indexOf("right")!==-1]}parseUnderflow(){const A=this.options.underflow.toLowerCase();A==="center"?(this.underflowX=0,this.underflowY=0):(A.includes("left")?this.underflowX=-1:A.includes("right")?this.underflowX=1:this.underflowX=0,A.includes("top")?this.underflowY=-1:A.includes("bottom")?this.underflowY=1:this.underflowY=0)}checkButtons(A){const t=A.pointerType==="mouse",i=this.parent.input.count();return!!((i===1||i>1&&!this.parent.plugins.get("pinch",!0))&&(!t||this.mouse[A.button]))}checkKeyPress(A){return!this.options.keyToPress||this.keyIsPressed||this.options.ignoreKeyToPressOnTouch&&A.data.pointerType==="touch"}down(A){return this.paused||!this.options.pressDrag?!1:this.checkButtons(A)&&this.checkKeyPress(A)?(this.last={x:A.global.x,y:A.global.y},(this.parent.parent||this.parent).toLocal(this.last,void 0,this.last),this.current=A.pointerId,!0):(this.last=null,!1)}get active(){return this.moved}move(A){if(this.paused||!this.options.pressDrag)return!1;if(this.last&&this.current===A.data.pointerId){const t=A.global.x,i=A.global.y,n=this.parent.input.count();if(n===1||n>1&&!this.parent.plugins.get("pinch",!0)){const s={x:t,y:i};(this.parent.parent||this.parent).toLocal(s,void 0,s);const a=s.x-this.last.x,r=s.y-this.last.y;if(this.moved||this.xDirection&&this.parent.input.checkThreshold(a)||this.yDirection&&this.parent.input.checkThreshold(r))return this.xDirection&&(this.parent.x+=(s.x-this.last.x)*this.options.factor),this.yDirection&&(this.parent.y+=(s.y-this.last.y)*this.options.factor),this.last=s,this.moved||this.parent.emit("drag-start",{event:A,screen:new m.Point(this.last.x,this.last.y),world:this.parent.toWorld(new m.Point(this.last.x,this.last.y)),viewport:this.parent}),this.moved=!0,this.parent.emit("moved",{viewport:this.parent,type:"drag"}),!0}else this.moved=!1}return!1}up(A){if(this.paused)return!1;const t=this.parent.input.touches;if(t.length===1){const i=t[0];return i.last&&(this.last={x:i.last.x,y:i.last.y},this.current=i.id),this.moved=!1,!0}else if(this.last&&this.moved){const i=new m.Point(this.last.x,this.last.y);return(this.parent.parent||this.parent).toGlobal(i,i,!0),this.parent.emit("drag-end",{event:A,screen:i,world:this.parent.toWorld(i),viewport:this.parent}),this.last=null,this.moved=!1,!0}return!1}wheel(A){if(this.paused)return!1;if(this.options.wheel){const t=this.parent.plugins.get("wheel",!0);if(!t||!t.options.wheelZoom&&!A.ctrlKey){const i=A.deltaMode?this.options.lineHeight:1,n=[A.deltaX,A.deltaY],[s,a]=this.options.wheelSwapAxes?n.reverse():n;return this.xDirection&&(this.parent.x+=s*i*this.options.wheelScroll*this.reverse),this.yDirection&&(this.parent.y+=a*i*this.options.wheelScroll*this.reverse),this.options.clampWheel&&this.clamp(),this.parent.emit("wheel-scroll",this.parent),this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.options.passiveWheel||A.preventDefault(),this.parent.options.stopPropagation&&A.stopPropagation(),!0}}return!1}resume(){this.last=null,this.paused=!1}clamp(){const A=this.parent.plugins.get("decelerate",!0)||{};if(this.options.clampWheel!=="y")if(this.parent.screenWorldWidth<this.parent.screenWidth)switch(this.underflowX){case-1:this.parent.x=0;break;case 1:this.parent.x=this.parent.screenWidth-this.parent.screenWorldWidth;break;default:this.parent.x=(this.parent.screenWidth-this.parent.screenWorldWidth)/2}else this.parent.left<0?(this.parent.x=0,A.x=0):this.parent.right>this.parent.worldWidth&&(this.parent.x=-this.parent.worldWidth*this.parent.scale.x+this.parent.screenWidth,A.x=0);if(this.options.clampWheel!=="x")if(this.parent.screenWorldHeight<this.parent.screenHeight)switch(this.underflowY){case-1:this.parent.y=0;break;case 1:this.parent.y=this.parent.screenHeight-this.parent.screenWorldHeight;break;default:this.parent.y=(this.parent.screenHeight-this.parent.screenWorldHeight)/2}else this.parent.top<0&&(this.parent.y=0,A.y=0),this.parent.bottom>this.parent.worldHeight&&(this.parent.y=-this.parent.worldHeight*this.parent.scale.y+this.parent.screenHeight,A.y=0)}}const lh={speed:0,acceleration:null,radius:null};class ch extends lA{constructor(A,t,i={}){super(A),this.target=t,this.options=Object.assign({},lh,i),this.velocity={x:0,y:0}}update(A){if(this.paused)return;const t=this.parent.center;let i=this.target.x,n=this.target.y;if(this.options.radius)if(Math.sqrt(Math.pow(this.target.y-t.y,2)+Math.pow(this.target.x-t.x,2))>this.options.radius){const r=Math.atan2(this.target.y-t.y,this.target.x-t.x);i=this.target.x-Math.cos(r)*this.options.radius,n=this.target.y-Math.sin(r)*this.options.radius}else return;const s=i-t.x,a=n-t.y;if(s||a)if(this.options.speed)if(this.options.acceleration){const r=Math.atan2(n-t.y,i-t.x),h=Math.sqrt(Math.pow(s,2)+Math.pow(a,2));if(h){const c=(Math.pow(this.velocity.x,2)+Math.pow(this.velocity.y,2))/(2*this.options.acceleration);h>c?this.velocity={x:Math.min(this.velocity.x+(this.options.acceleration*A,this.options.speed)),y:Math.min(this.velocity.y+(this.options.acceleration*A,this.options.speed))}:this.velocity={x:Math.max(this.velocity.x-this.options.acceleration*this.options.speed,0),y:Math.max(this.velocity.y-this.options.acceleration*this.options.speed,0)};const B=Math.cos(r)*this.velocity.x,o=Math.sin(r)*this.velocity.y,g=Math.abs(B)>Math.abs(s)?i:t.x+B,l=Math.abs(o)>Math.abs(a)?n:t.y+o;this.parent.moveCenter(g,l),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}}else{const r=Math.atan2(n-t.y,i-t.x),h=Math.cos(r)*this.options.speed,c=Math.sin(r)*this.options.speed,B=Math.abs(h)>Math.abs(s)?i:t.x+h,o=Math.abs(c)>Math.abs(a)?n:t.y+c;this.parent.moveCenter(B,o),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}else this.parent.moveCenter(i,n),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}}const Ih={radius:null,distance:null,top:null,bottom:null,left:null,right:null,speed:8,reverse:!1,noDecelerate:!1,linear:!1,allowButtons:!1};class Bh extends lA{constructor(A,t={}){super(A),this.options=Object.assign({},Ih,t),this.reverse=this.options.reverse?1:-1,this.radiusSquared=typeof this.options.radius=="number"?Math.pow(this.options.radius,2):null,this.resize()}resize(){const A=this.options.distance;A!==null?(this.left=A,this.top=A,this.right=this.parent.screenWidth-A,this.bottom=this.parent.screenHeight-A):this.options.radius||(this.left=this.options.left,this.top=this.options.top,this.right=this.options.right===null?null:this.parent.screenWidth-this.options.right,this.bottom=this.options.bottom===null?null:this.parent.screenHeight-this.options.bottom)}down(){return this.paused||this.options.allowButtons||(this.horizontal=this.vertical=null),!1}move(A){if(this.paused||A.pointerType!=="mouse"&&A.pointerId!==1||!this.options.allowButtons&&A.buttons!==0)return!1;const t=A.global.x,i=A.global.y;if(this.radiusSquared){const n=this.parent.toScreen(this.parent.center);if(Math.pow(n.x-t,2)+Math.pow(n.y-i,2)>=this.radiusSquared){const s=Math.atan2(n.y-i,n.x-t);this.options.linear?(this.horizontal=Math.round(Math.cos(s))*this.options.speed*this.reverse*.06,this.vertical=Math.round(Math.sin(s))*this.options.speed*this.reverse*.06):(this.horizontal=Math.cos(s)*this.options.speed*this.reverse*.06,this.vertical=Math.sin(s)*this.options.speed*this.reverse*.06)}else this.horizontal&&this.decelerateHorizontal(),this.vertical&&this.decelerateVertical(),this.horizontal=this.vertical=0}else this.left!==null&&t<this.left?this.horizontal=Number(this.reverse)*this.options.speed*.06:this.right!==null&&t>this.right?this.horizontal=-1*this.reverse*this.options.speed*.06:(this.decelerateHorizontal(),this.horizontal=0),this.top!==null&&i<this.top?this.vertical=Number(this.reverse)*this.options.speed*.06:this.bottom!==null&&i>this.bottom?this.vertical=-1*this.reverse*this.options.speed*.06:(this.decelerateVertical(),this.vertical=0);return!1}decelerateHorizontal(){const A=this.parent.plugins.get("decelerate",!0);this.horizontal&&A&&!this.options.noDecelerate&&A.activate({x:this.horizontal*this.options.speed*this.reverse/16.666666666666668})}decelerateVertical(){const A=this.parent.plugins.get("decelerate",!0);this.vertical&&A&&!this.options.noDecelerate&&A.activate({y:this.vertical*this.options.speed*this.reverse/16.666666666666668})}up(){return this.paused||(this.horizontal&&this.decelerateHorizontal(),this.vertical&&this.decelerateVertical(),this.horizontal=this.vertical=null),!1}update(){if(!this.paused&&(this.horizontal||this.vertical)){const A=this.parent.center;this.horizontal&&(A.x+=this.horizontal*this.options.speed),this.vertical&&(A.y+=this.vertical*this.options.speed),this.parent.moveCenter(A),this.parent.emit("moved",{viewport:this.parent,type:"mouse-edges"})}}}const uh={noDrag:!1,percent:1,center:null,factor:1,axis:"all"},Eh=new m.Point;class Ch extends lA{constructor(A,t={}){super(A),this.active=!1,this.pinching=!1,this.moved=!1,this.options=Object.assign({},uh,t)}down(){return this.parent.input.count()>=2?(this.active=!0,!0):!1}isAxisX(){return["all","x"].includes(this.options.axis)}isAxisY(){return["all","y"].includes(this.options.axis)}move(A){if(this.paused||!this.active)return!1;const{x:t,y:i}=(this.parent.parent||this.parent).toLocal(A.global,void 0,Eh),n=this.parent.input.touches;if(n.length>=2){const s=n[0],a=n[1],r=s.last&&a.last?Math.sqrt(Math.pow(a.last.x-s.last.x,2)+Math.pow(a.last.y-s.last.y,2)):null;if(s.id===A.pointerId?s.last={x:t,y:i,data:A}:a.id===A.pointerId&&(a.last={x:t,y:i,data:A}),r){let h;const c=new m.Point(s.last.x+(a.last.x-s.last.x)/2,s.last.y+(a.last.y-s.last.y)/2);this.options.center||(h=this.parent.toLocal(c,this.parent.parent||this.parent));let B=Math.sqrt(Math.pow(a.last.x-s.last.x,2)+Math.pow(a.last.y-s.last.y,2));B=B===0?B=1e-10:B;const o=(1-r/B)*this.options.percent*(this.isAxisX()?this.parent.scale.x:this.parent.scale.y);this.isAxisX()&&(this.parent.scale.x+=o),this.isAxisY()&&(this.parent.scale.y+=o),this.parent.emit("zoomed",{viewport:this.parent,type:"pinch",center:c});const g=this.parent.plugins.get("clamp-zoom",!0);if(g&&g.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const l=(this.parent.parent||this.parent).toLocal(h,this.parent);this.parent.x+=(c.x-l.x)*this.options.factor,this.parent.y+=(c.y-l.y)*this.options.factor,this.parent.emit("moved",{viewport:this.parent,type:"pinch"})}!this.options.noDrag&&this.lastCenter&&(this.parent.x+=(c.x-this.lastCenter.x)*this.options.factor,this.parent.y+=(c.y-this.lastCenter.y)*this.options.factor,this.parent.emit("moved",{viewport:this.parent,type:"pinch"})),this.lastCenter=c,this.moved=!0}else this.pinching||(this.parent.emit("pinch-start",this.parent),this.pinching=!0);return!0}return!1}up(){return this.pinching&&this.parent.input.touches.length<=1?(this.active=!1,this.lastCenter=null,this.pinching=!1,this.moved=!1,this.parent.emit("pinch-end",this.parent),!0):!1}}const Qh={topLeft:!1,friction:.8,time:1e3,ease:"easeInOutSine",interrupt:!0,removeOnComplete:!1,removeOnInterrupt:!1,forceStart:!1};class fh extends lA{constructor(A,t,i,n={}){super(A),this.options=Object.assign({},Qh,n),this.ease=fe(n.ease,"easeInOutSine"),this.x=t,this.y=i,this.options.forceStart&&this.snapStart()}snapStart(){this.percent=0,this.snapping={time:0};const A=this.options.topLeft?this.parent.corner:this.parent.center;this.deltaX=this.x-A.x,this.deltaY=this.y-A.y,this.startX=A.x,this.startY=A.y,this.parent.emit("snap-start",this.parent)}wheel(){return this.options.removeOnInterrupt&&this.parent.plugins.remove("snap"),!1}down(){return this.options.removeOnInterrupt?this.parent.plugins.remove("snap"):this.options.interrupt&&(this.snapping=null),!1}up(){if(this.parent.input.count()===0){const A=this.parent.plugins.get("decelerate",!0);A&&(A.x||A.y)&&(A.percentChangeX=A.percentChangeY=this.options.friction)}return!1}update(A){if(!this.paused&&!(this.options.interrupt&&this.parent.input.count()!==0))if(this.snapping){const t=this.snapping;t.time+=A;let i,n,s;const a=this.startX,r=this.startY,h=this.deltaX,c=this.deltaY;if(t.time>this.options.time)i=!0,n=a+h,s=r+c;else{const B=this.ease(t.time,0,1,this.options.time);n=a+h*B,s=r+c*B}this.options.topLeft?this.parent.moveCorner(n,s):this.parent.moveCenter(n,s),this.parent.emit("moved",{viewport:this.parent,type:"snap"}),i&&(this.options.removeOnComplete&&this.parent.plugins.remove("snap"),this.parent.emit("snap-end",this.parent),this.snapping=null)}else{const t=this.options.topLeft?this.parent.corner:this.parent.center;(t.x!==this.x||t.y!==this.y)&&this.snapStart()}}}const dh={width:0,height:0,time:1e3,ease:"easeInOutSine",center:null,interrupt:!0,removeOnComplete:!1,removeOnInterrupt:!1,forceStart:!1,noMove:!1};class ph extends lA{constructor(A,t={}){super(A),this.options=Object.assign({},dh,t),this.ease=fe(this.options.ease),this.xIndependent=!1,this.yIndependent=!1,this.xScale=0,this.yScale=0,this.options.width>0&&(this.xScale=A.screenWidth/this.options.width,this.xIndependent=!0),this.options.height>0&&(this.yScale=A.screenHeight/this.options.height,this.yIndependent=!0),this.xScale=this.xIndependent?this.xScale:this.yScale,this.yScale=this.yIndependent?this.yScale:this.xScale,this.options.time===0?(A.container.scale.x=this.xScale,A.container.scale.y=this.yScale,this.options.removeOnComplete&&this.parent.plugins.remove("snap-zoom")):t.forceStart&&this.createSnapping()}createSnapping(){const A=this.parent.worldScreenWidth,t=this.parent.worldScreenHeight,i=this.parent.screenWidth/this.xScale,n=this.parent.screenHeight/this.yScale;this.snapping={time:0,startX:A,startY:t,deltaX:i-A,deltaY:n-t},this.parent.emit("snap-zoom-start",this.parent)}resize(){this.snapping=null,this.options.width>0&&(this.xScale=this.parent.screenWidth/this.options.width),this.options.height>0&&(this.yScale=this.parent.screenHeight/this.options.height),this.xScale=this.xIndependent?this.xScale:this.yScale,this.yScale=this.yIndependent?this.yScale:this.xScale}wheel(){return this.options.removeOnInterrupt&&this.parent.plugins.remove("snap-zoom"),!1}down(){return this.options.removeOnInterrupt?this.parent.plugins.remove("snap-zoom"):this.options.interrupt&&(this.snapping=null),!1}update(A){if(this.paused||this.options.interrupt&&this.parent.input.count()!==0)return;let t;if(!this.options.center&&!this.options.noMove&&(t=this.parent.center),!this.snapping)(this.parent.scale.x!==this.xScale||this.parent.scale.y!==this.yScale)&&this.createSnapping();else if(this.snapping){const i=this.snapping;if(i.time+=A,i.time>=this.options.time)this.parent.scale.set(this.xScale,this.yScale),this.options.removeOnComplete&&this.parent.plugins.remove("snap-zoom"),this.parent.emit("snap-zoom-end",this.parent),this.snapping=null;else{const s=this.snapping,a=this.ease(s.time,s.startX,s.deltaX,this.options.time),r=this.ease(s.time,s.startY,s.deltaY,this.options.time);this.parent.scale.x=this.parent.screenWidth/a,this.parent.scale.y=this.parent.screenHeight/r}const n=this.parent.plugins.get("clamp-zoom",!0);n&&n.clamp(),this.options.noMove||(this.options.center?this.parent.moveCenter(this.options.center):this.parent.moveCenter(t))}}resume(){this.snapping=null,super.resume()}}const yh={percent:.1,smooth:!1,interrupt:!0,reverse:!1,center:null,lineHeight:20,axis:"all",keyToPress:null,trackpadPinch:!1,wheelZoom:!0};class wh extends lA{constructor(A,t={}){super(A),this.options=Object.assign({},yh,t),this.keyIsPressed=!1,this.options.keyToPress&&this.handleKeyPresses(this.options.keyToPress)}handleKeyPresses(A){typeof window>"u"||(window.addEventListener("keydown",t=>{A.includes(t.code)&&(this.keyIsPressed=!0)}),window.addEventListener("keyup",t=>{A.includes(t.code)&&(this.keyIsPressed=!1)}))}checkKeyPress(){return!this.options.keyToPress||this.keyIsPressed}down(){return this.options.interrupt&&(this.smoothing=null),!1}isAxisX(){return["all","x"].includes(this.options.axis)}isAxisY(){return["all","y"].includes(this.options.axis)}update(){if(this.smoothing){const A=this.smoothingCenter,t=this.smoothing;let i;this.options.center||(i=this.parent.toLocal(A)),this.isAxisX()&&(this.parent.scale.x+=t.x),this.isAxisY()&&(this.parent.scale.y+=t.y),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const n=this.parent.plugins.get("clamp-zoom",!0);if(n&&n.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const s=this.parent.parent||this.parent;s.toLocal(i,this.parent,i);const a=s.toLocal(A);this.parent.x+=a.x-i.x,this.parent.y+=a.y-i.y}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.smoothingCount++,typeof this.options.smooth=="number"&&this.smoothingCount>=this.options.smooth&&(this.smoothing=null)}}pinch(A){if(this.paused)return;const t=this.parent.input.getPointerPosition(A),i=-A.deltaY*(A.deltaMode?this.options.lineHeight:1)/200,n=Math.pow(2,(1+this.options.percent)*i);let s;this.options.center||(s=this.parent.toLocal(t)),this.isAxisX()&&(this.parent.scale.x*=n),this.isAxisY()&&(this.parent.scale.y*=n),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const a=this.parent.plugins.get("clamp-zoom",!0);if(a&&a.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const r=this.parent.parent||this.parent;r.toLocal(s,this.parent,s);const h=r.toLocal(t);this.parent.x+=h.x-s.x,this.parent.y+=h.y-s.y}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.emit("wheel-start",{event:A,viewport:this.parent})}wheel(A){if(this.paused||!this.checkKeyPress())return!1;if(A.ctrlKey&&this.options.trackpadPinch)this.pinch(A);else if(this.options.wheelZoom){const t=this.parent.input.getPointerPosition(A),i=(this.options.reverse?-1:1)*-A.deltaY*(A.deltaMode?this.options.lineHeight:1)/500,n=Math.pow(2,(1+this.options.percent)*i);if(this.options.smooth){const s={x:this.smoothing?this.smoothing.x*(this.options.smooth-this.smoothingCount):0,y:this.smoothing?this.smoothing.y*(this.options.smooth-this.smoothingCount):0};this.smoothing={x:((this.parent.scale.x+s.x)*n-this.parent.scale.x)/this.options.smooth,y:((this.parent.scale.y+s.y)*n-this.parent.scale.y)/this.options.smooth},this.smoothingCount=0,this.smoothingCenter=t}else{let s;this.options.center||(s=this.parent.toLocal(t)),this.isAxisX()&&(this.parent.scale.x*=n),this.isAxisY()&&(this.parent.scale.y*=n),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const a=this.parent.plugins.get("clamp-zoom",!0);if(a&&a.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const r=this.parent.parent||this.parent;r.toLocal(s,this.parent,s);const h=r.toLocal(t);this.parent.x+=h.x-s.x,this.parent.y+=h.y-s.y}}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.emit("wheel-start",{event:A,viewport:this.parent})}return!this.parent.options.passiveWheel}}const mh={screenWidth:typeof window>"u"?0:window.innerWidth,screenHeight:typeof window>"u"?0:window.innerHeight,worldWidth:null,worldHeight:null,threshold:5,passiveWheel:!0,stopPropagation:!1,forceHitArea:null,noTicker:!1,disableOnContextMenu:!1,ticker:m.Ticker.shared,allowPreserveDragOutside:!1};class Dh extends m.Container{constructor(A){super(),this._disableOnContextMenu=t=>t.preventDefault(),this.options={...mh,...A},this.screenWidth=this.options.screenWidth,this.screenHeight=this.options.screenHeight,this._worldWidth=this.options.worldWidth,this._worldHeight=this.options.worldHeight,this.forceHitArea=this.options.forceHitArea,this.threshold=this.options.threshold,this.options.disableOnContextMenu&&this.options.events.domElement.addEventListener("contextmenu",this._disableOnContextMenu),this.options.noTicker||(this.tickerFunction=()=>this.update(this.options.ticker.elapsedMS),this.options.ticker.add(this.tickerFunction)),this.input=new zg(this),this.plugins=new jg(this)}destroy(A){var t;!this.options.noTicker&&this.tickerFunction&&this.options.ticker.remove(this.tickerFunction),this.options.disableOnContextMenu&&((t=this.options.events.domElement)==null||t.removeEventListener("contextmenu",this._disableOnContextMenu)),this.input.destroy(),super.destroy(A)}update(A){this.pause||(this.plugins.update(A),this.lastViewport&&(this.lastViewport.x!==this.x||this.lastViewport.y!==this.y?this.moving=!0:this.moving&&(this.emit("moved-end",this),this.moving=!1),this.lastViewport.scaleX!==this.scale.x||this.lastViewport.scaleY!==this.scale.y?this.zooming=!0:this.zooming&&(this.emit("zoomed-end",this),this.zooming=!1)),this.forceHitArea||(this._hitAreaDefault=new m.Rectangle(this.left,this.top,this.worldScreenWidth,this.worldScreenHeight),this.hitArea=this._hitAreaDefault),this._dirty=this._dirty||!this.lastViewport||this.lastViewport.x!==this.x||this.lastViewport.y!==this.y||this.lastViewport.scaleX!==this.scale.x||this.lastViewport.scaleY!==this.scale.y,this.lastViewport={x:this.x,y:this.y,scaleX:this.scale.x,scaleY:this.scale.y},this.emit("frame-end",this))}resize(A=typeof window>"u"?0:window.innerWidth,t=typeof window>"u"?0:window.innerHeight,i,n){this.screenWidth=A,this.screenHeight=t,typeof i<"u"&&(this._worldWidth=i),typeof n<"u"&&(this._worldHeight=n),this.plugins.resize(),this.dirty=!0}get worldWidth(){return this._worldWidth?this._worldWidth:this.width/this.scale.x}set worldWidth(A){this._worldWidth=A,this.plugins.resize()}get worldHeight(){return this._worldHeight?this._worldHeight:this.height/this.scale.y}set worldHeight(A){this._worldHeight=A,this.plugins.resize()}getVisibleBounds(){return new m.Rectangle(this.left,this.top,this.worldScreenWidth,this.worldScreenHeight)}toWorld(A,t){return arguments.length===2?this.toLocal(new m.Point(A,t)):this.toLocal(A)}toScreen(A,t){return arguments.length===2?this.toGlobal(new m.Point(A,t)):this.toGlobal(A)}get worldScreenWidth(){return this.screenWidth/this.scale.x}get worldScreenHeight(){return this.screenHeight/this.scale.y}get screenWorldWidth(){return this.worldWidth*this.scale.x}get screenWorldHeight(){return this.worldHeight*this.scale.y}get center(){return new m.Point(this.worldScreenWidth/2-this.x/this.scale.x,this.worldScreenHeight/2-this.y/this.scale.y)}set center(A){this.moveCenter(A)}moveCenter(...A){let t,i;typeof A[0]=="number"?(t=A[0],i=A[1]):(t=A[0].x,i=A[0].y);const n=(this.worldScreenWidth/2-t)*this.scale.x,s=(this.worldScreenHeight/2-i)*this.scale.y;return(this.x!==n||this.y!==s)&&(this.position.set(n,s),this.plugins.reset(),this.dirty=!0),this}get corner(){return new m.Point(-this.x/this.scale.x,-this.y/this.scale.y)}set corner(A){this.moveCorner(A)}moveCorner(...A){let t,i;return A.length===1?(t=-A[0].x*this.scale.x,i=-A[0].y*this.scale.y):(t=-A[0]*this.scale.x,i=-A[1]*this.scale.y),(t!==this.x||i!==this.y)&&(this.position.set(t,i),this.plugins.reset(),this.dirty=!0),this}get screenWidthInWorldPixels(){return this.screenWidth/this.scale.x}get screenHeightInWorldPixels(){return this.screenHeight/this.scale.y}findFitWidth(A){return this.screenWidth/A}findFitHeight(A){return this.screenHeight/A}findFit(A,t){const i=this.screenWidth/A,n=this.screenHeight/t;return Math.min(i,n)}findCover(A,t){const i=this.screenWidth/A,n=this.screenHeight/t;return Math.max(i,n)}fitWidth(A=this.worldWidth,t,i=!0,n){let s;t&&(s=this.center),this.scale.x=this.screenWidth/A,i&&(this.scale.y=this.scale.x);const a=this.plugins.get("clamp-zoom",!0);return!n&&a&&a.clamp(),t&&s&&this.moveCenter(s),this}fitHeight(A=this.worldHeight,t,i=!0,n){let s;t&&(s=this.center),this.scale.y=this.screenHeight/A,i&&(this.scale.x=this.scale.y);const a=this.plugins.get("clamp-zoom",!0);return!n&&a&&a.clamp(),t&&s&&this.moveCenter(s),this}fitWorld(A){let t;A&&(t=this.center),this.scale.x=this.screenWidth/this.worldWidth,this.scale.y=this.screenHeight/this.worldHeight,this.scale.x<this.scale.y?this.scale.y=this.scale.x:this.scale.x=this.scale.y;const i=this.plugins.get("clamp-zoom",!0);return i&&i.clamp(),A&&t&&this.moveCenter(t),this}fit(A,t=this.worldWidth,i=this.worldHeight){let n;A&&(n=this.center),this.scale.x=this.screenWidth/t,this.scale.y=this.screenHeight/i,this.scale.x<this.scale.y?this.scale.y=this.scale.x:this.scale.x=this.scale.y;const s=this.plugins.get("clamp-zoom",!0);return s&&s.clamp(),A&&n&&this.moveCenter(n),this}setZoom(A,t){let i;t&&(i=this.center),this.scale.set(A);const n=this.plugins.get("clamp-zoom",!0);return n&&n.clamp(),t&&i&&this.moveCenter(i),this}zoomPercent(A,t){return this.setZoom(this.scale.x+this.scale.x*A,t)}zoom(A,t){return this.fitWidth(A+this.worldScreenWidth,t),this}get scaled(){return this.scale.x}set scaled(A){this.setZoom(A,!0)}snapZoom(A){return this.plugins.add("snap-zoom",new ph(this,A)),this}OOB(){return{left:this.left<0,right:this.right>this.worldWidth,top:this.top<0,bottom:this.bottom>this.worldHeight,cornerPoint:new m.Point(this.worldWidth*this.scale.x-this.screenWidth,this.worldHeight*this.scale.y-this.screenHeight)}}get right(){return-this.x/this.scale.x+this.worldScreenWidth}set right(A){this.x=-A*this.scale.x+this.screenWidth,this.plugins.reset()}get left(){return-this.x/this.scale.x}set left(A){this.x=-A*this.scale.x,this.plugins.reset()}get top(){return-this.y/this.scale.y}set top(A){this.y=-A*this.scale.y,this.plugins.reset()}get bottom(){return-this.y/this.scale.y+this.worldScreenHeight}set bottom(A){this.y=-A*this.scale.y+this.screenHeight,this.plugins.reset()}get dirty(){return!!this._dirty}set dirty(A){this._dirty=A}get forceHitArea(){return this._forceHitArea}set forceHitArea(A){A?(this._forceHitArea=A,this.hitArea=A):(this._forceHitArea=null,this.hitArea=new m.Rectangle(0,0,this.worldWidth,this.worldHeight))}drag(A){return this.plugins.add("drag",new hh(this,A)),this}clamp(A){return this.plugins.add("clamp",new nh(this,A)),this}decelerate(A){return this.plugins.add("decelerate",new ah(this,A)),this}bounce(A){return this.plugins.add("bounce",new eh(this,A)),this}pinch(A){return this.plugins.add("pinch",new Ch(this,A)),this}snap(A,t,i){return this.plugins.add("snap",new fh(this,A,t,i)),this}follow(A,t){return this.plugins.add("follow",new ch(this,A,t)),this}wheel(A){return this.plugins.add("wheel",new wh(this,A)),this}animate(A){return this.plugins.add("animate",new Ah(this,A)),this}clampZoom(A){return this.plugins.add("clamp-zoom",new oh(this,A)),this}mouseEdges(A){return this.plugins.add("mouse-edges",new Bh(this,A)),this}get pause(){return!!this._pause}set pause(A){this._pause=A,this.lastViewport=null,this.moving=!1,this.zooming=!1,A&&this.input.pause()}ensureVisible(A,t,i,n,s){s&&(i>this.worldScreenWidth||n>this.worldScreenHeight)&&(this.fit(!0,i,n),this.emit("zoomed",{viewport:this,type:"ensureVisible"}));let a=!1;A<this.left?(this.left=A,a=!0):A+i>this.right&&(this.right=A+i,a=!0),t<this.top?(this.top=t,a=!0):t+n>this.bottom&&(this.bottom=t+n,a=!0),a&&this.emit("moved",{viewport:this,type:"ensureVisible"})}}const vh=["bounce-x-end","bounce-x-start","bounce-y-end","bounce-y-start","clicked","drag-end","drag-start","frame-end","mouse-edge-end","mouse-edge-start","moved","moved-end","pinch-end","pinch-start","snap-end","snap-start","snap-zoom-end","snap-zoom-start","wheel-scroll","zoomed","zoomed-end"];class Sh extends uA(Dh){constructor(){const A={noTicker:!0,events:{domElement:{addEventListener:()=>{}}}};super(A),this.overrideProps=["wheel"]}onInit(A){super.onInit(A);for(let t of vh)A[t]&&this.on(t,A[t])}async onMount(A,t){await super.onMount(A,t);const{props:i}=A,{tick:n,app:s,canvasSize:a}=i.context;AA(()=>{this.screenWidth=a().width,this.screenHeight=a().height}),AA(()=>{const r=s();if(!r)return;const h=r.renderer;h.events.domElement.addEventListener("wheel",this.input.wheelFunction),this.options.events=h.events}),this.tickSubscription=n.observable.subscribe(({value:r})=>{this.update(r.timestamp)}),A.props.context.viewport=this,this.updateViewportSettings(i)}onUpdate(A){super.onUpdate(A),this.updateViewportSettings(A)}updateViewportSettings(A){A.screenWidth!==void 0&&(this.screenWidth=A.screenWidth),A.screenHeight!==void 0&&(this.screenHeight=A.screenHeight),A.worldWidth!==void 0&&(this.worldWidth=A.worldWidth),A.worldHeight!==void 0&&(this.worldHeight=A.worldHeight),A.drag&&this.drag(A.drag),A.clamp&&this.clamp(A.clamp.value??A.clamp),A.wheel&&(A.wheel===!0?this.wheel():this.wheel(A.wheel)),A.decelerate&&(A.decelerate===!0?this.decelerate():this.decelerate(A.decelerate)),A.pinch&&(A.pinch===!0?this.pinch():this.pinch(A.pinch))}async onDestroy(A,t){const i=async()=>{this.tickSubscription.unsubscribe(),t()};await super.onDestroy(A,i)}}sA("Viewport",Sh);function bh(e){return rA("Viewport",e)}class xh extends uA(m.NineSliceSprite){constructor(){super({width:0,height:0})}async onUpdate(A){for(const[t,i]of Object.entries(A))i!==void 0&&(t==="image"?this.texture=await m.Assets.load(i):t in this&&(this[t]=i))}}sA("NineSliceSprite",xh);function kh(e){return rA("NineSliceSprite",e)}const so=["click","mouseover","mouseout","mouseenter","mouseleave","mousemove","mouseup","mousedown","touchstart","touchend","touchmove","touchcancel","wheel","scroll","resize","focus","blur","change","input","submit","reset","keydown","keyup","keypress","contextmenu","drag","dragend","dragenter","dragleave","dragover","drop","dragstart","select","selectstart","selectend","selectall","selectnone"];class Mh{constructor(){this.eventListeners=new Map,this.onBeforeDestroy=null,this.valueSignal=null,this.isFormElementType=!1}isFormElement(A){return["input","textarea","select"].includes(A.toLowerCase())}onInit(A){var t;typeof A.element=="string"?(this.element=document.createElement(A.element),this.isFormElementType=this.isFormElement(A.element)):(this.element=A.element.value,this.isFormElementType=this.isFormElement(this.element.tagName)),(A.onBeforeDestroy||A["on-before-destroy"])&&(this.onBeforeDestroy=A.onBeforeDestroy||A["on-before-destroy"]);for(const i of so)if((t=A.attrs)!=null&&t[i]){const n=s=>{var a,r,h,c;if(i==="submit"&&this.element.tagName.toLowerCase()==="form"){s.preventDefault();const B=new FormData(this.element),o={};B.forEach((g,l)=>{o[l]?Array.isArray(o[l])?o[l].push(g):o[l]=[o[l],g]:o[l]=g}),(r=(a=A.attrs)[i])==null||r.call(a,s,o)}else(c=(h=A.attrs)[i])==null||c.call(h,s)};this.eventListeners.set(i,n),this.element.addEventListener(i,n,!1)}if(A.children)for(const i of A.children)Wn(i)?i.subscribe(({elements:n})=>{for(const s of n)this.element.appendChild(s.componentInstance.element)}):this.element.appendChild(i.componentInstance.element);this.onUpdate(A)}onMount(A){const i=A.propObservables.attrs;if(this.isFormElementType&&(i!=null&&i.value)&&J(i.value)){this.valueSignal=i.value,this.element.value=this.valueSignal();const n=s=>{const a=s.target;this.valueSignal.set(a.value)};this.eventListeners.set("input",n),this.element.addEventListener("input",n,!1)}}onUpdate(A){if(this.element){for(const[t,i]of Object.entries(A.attrs||{}))if(t==="class"){const n=i.items||i.value||i;if(this.element.className="",typeof n=="string")this.element.className=n;else if(Array.isArray(n))this.element.classList.add(...n);else if(typeof n=="object"&&n!==null)for(const[s,a]of Object.entries(n))a&&this.element.classList.add(s)}else if(t==="style"){const n=i.items||i.value||i;if(typeof n=="string")this.element.setAttribute("style",n);else if(typeof n=="object"&&n!==null)for(const[s,a]of Object.entries(n))a!=null&&(this.element.style[s]=a)}else if(t==="value"&&this.isFormElementType)if(J(i)){const n=this.element.value,s=i();n!==s&&(this.element.value=s)}else this.element.value=i;else so.includes(t)||this.element.setAttribute(t,i);A.textContent&&(this.element.textContent=A.textContent)}}async onDestroy(A,t){if(this.element){this.onBeforeDestroy&&await this.onBeforeDestroy();for(const[i,n]of this.eventListeners)this.element.removeEventListener(i,n,!1);this.eventListeners.clear(),this.element.remove(),t&&t()}}}sA("DOMElement",Mh);const oo=e=>rA("DOMElement",e);class Rh extends uA(m.DOMContainer){constructor(){super(...arguments),this.disableLayout=!0}onInit(A){const t=RA(oo,{element:"div"},A.children);this.element=t.componentInstance.element}}sA("DOMContainer",Rh);const Fh=e=>rA("DOMContainer",e);var ro=(e=>(e.Normal="normal",e.Hover="hover",e.Pressed="pressed",e.Disabled="disabled",e))(ro||{});function Gh(e){const A=W("normal"),t=W(!1),i=W(!1),n=Ai(e),{text:s,disabled:a,width:r,height:h,style:c}=n({text:{type:String,default:""},disabled:{type:Boolean,default:!1},width:{type:Number,default:120},height:{type:Number,default:40},style:{type:Object,default:()=>({})}});AA(()=>{const o=a(),g=t(),l=i();o?A.set("disabled"):g?A.set("pressed"):l?A.set("hover"):A.set("normal")});const B={pointerenter:o=>{var g;a()||(i.set(!0),(g=e.hoverEnter)==null||g.call(e,o))},pointerleave:o=>{var g;i.set(!1),t.set(!1),(g=e.hoverLeave)==null||g.call(e,o)},pointerdown:o=>{var g;a()||(t.set(!0),(g=e.pressDown)==null||g.call(e,o))},pointerup:o=>{var g;!a()&&t()&&(t.set(!1),(g=e.pressUp)==null||g.call(e,o))},pointertap:o=>{var g;a()||(g=e.click)==null||g.call(e,o)}};return RA(ue,{x:e.x,y:e.y,width:e.width,height:e.height,alpha:e.alpha,visible:e.visible,cursor:e.cursor||"pointer",...B},[RA(Vs,{width:r,height:h,color:MA(()=>{const g=c().backgroundColor||{normal:"#007bff",hover:"#0056b3",pressed:"#004085",disabled:"#6c757d"},l=A();return g[l]||g.normal})}),RA(eo,{text:s,x:MA(()=>r()/2),y:MA(()=>h()/2),anchor:{x:.5,y:.5},style:MA(()=>{const g=c().text||{};return{fontSize:g.fontSize||16,fontFamily:g.fontFamily||"Arial",fill:g.color||"#ffffff"}})()})])}var _h=(()=>{var e=j&&j.tagName.toUpperCase()==="SCRIPT"&&j.src||new URL("index.global.js",document.baseURI).href;return function(A){A=A||{};var t;t||(t=typeof A<"u"?A:{});var i,n;t.ready=new Promise(function(I,u){i=I,n=u});var s=Object.assign({},t),a="";typeof document<"u"&&document.currentScript&&(a=document.currentScript.src),e&&(a=e),a.indexOf("blob:")!==0?a=a.substr(0,a.replace(/[?#].*/,"").lastIndexOf("/")+1):a="";var r=t.print||console.log.bind(console),h=t.printErr||console.warn.bind(console);Object.assign(t,s),s=null;var c;t.wasmBinary&&(c=t.wasmBinary),t.noExitRuntime,typeof WebAssembly!="object"&&tA("no native wasm support detected");var B,o=!1;function g(I,u,d){d=u+d;for(var p="";!(u>=d);){var y=I[u++];if(!y)break;if(y&128){var D=I[u++]&63;if((y&224)==192)p+=String.fromCharCode((y&31)<<6|D);else{var b=I[u++]&63;y=(y&240)==224?(y&15)<<12|D<<6|b:(y&7)<<18|D<<12|b<<6|I[u++]&63,65536>y?p+=String.fromCharCode(y):(y-=65536,p+=String.fromCharCode(55296|y>>10,56320|y&1023))}}else p+=String.fromCharCode(y)}return p}var l,E,C,f,Q,w,v,M,F;function H(){var I=B.buffer;l=I,t.HEAP8=E=new Int8Array(I),t.HEAP16=f=new Int16Array(I),t.HEAP32=w=new Int32Array(I),t.HEAPU8=C=new Uint8Array(I),t.HEAPU16=Q=new Uint16Array(I),t.HEAPU32=v=new Uint32Array(I),t.HEAPF32=M=new Float32Array(I),t.HEAPF64=F=new Float64Array(I)}var Z,iA=[],U=[],GA=[];function YA(){var I=t.preRun.shift();iA.unshift(I)}var nA=0,xA=null;function tA(I){throw t.onAbort&&t.onAbort(I),I="Aborted("+I+")",h(I),o=!0,I=new WebAssembly.RuntimeError(I+". Build with -sASSERTIONS for more info."),n(I),I}function WA(I){return I.startsWith("data:application/octet-stream;base64,")}var kA;if(kA="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAH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IQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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",!WA(kA)){var Ro=kA;kA=t.locateFile?t.locateFile(Ro,a):a+Ro}function Fo(){var I=kA;try{if(I==kA&&c)return new Uint8Array(c);if(WA(I))try{var u=Xl(I.slice(37)),d=new Uint8Array(u.length);for(I=0;I<u.length;++I)d[I]=u.charCodeAt(I);var p=d}catch{throw Error("Converting base64 string to bytes failed.")}else p=void 0;var y=p;if(y)return y;throw"both async and sync fetching of the wasm failed"}catch(D){tA(D)}}function vl(){return c||typeof fetch!="function"?Promise.resolve().then(function(){return Fo()}):fetch(kA,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at '"+kA+"'";return I.arrayBuffer()}).catch(function(){return Fo()})}function zi(I){for(;0<I.length;)I.shift()(t)}function Go(I){if(I===void 0)return"_unknown";I=I.replace(/[^a-zA-Z0-9_]/g,"$");var u=I.charCodeAt(0);return 48<=u&&57>=u?"_"+I:I}function ji(I,u){return I=Go(I),function(){return u.apply(this,arguments)}}var QA=[{},{value:void 0},{value:null},{value:!0},{value:!1}],$i=[];function De(I){var u=Error,d=ji(I,function(p){this.name=I,this.message=p,p=Error(p).stack,p!==void 0&&(this.stack=this.toString()+`
|
|
28
|
+
`+p.replace(/^Error(:[^\n]*)?\n/,""))});return d.prototype=Object.create(u.prototype),d.prototype.constructor=d,d.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},d}var wt=void 0;function L(I){throw new wt(I)}var Wt=I=>(I||L("Cannot use deleted val. handle = "+I),QA[I].value),ve=I=>{switch(I){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var u=$i.length?$i.pop():QA.length;return QA[u]={ga:1,value:I},u}},_o=void 0,No=void 0;function eA(I){for(var u="";C[I];)u+=No[C[I++]];return u}var Xt=[];function An(){for(;Xt.length;){var I=Xt.pop();I.M.$=!1,I.delete()}}var Vt=void 0,_A={};function tn(I,u){for(u===void 0&&L("ptr should not be undefined");I.R;)u=I.ba(u),I=I.R;return u}var et={};function Ho(I){I=Xo(I);var u=eA(I);return LA(I),u}function Lo(I,u){var d=et[I];return d===void 0&&L(u+" has unknown type "+Ho(I)),d}function Se(){}var en=!1;function Uo(I){--I.count.value,I.count.value===0&&(I.T?I.U.W(I.T):I.P.N.W(I.O))}function Po(I,u,d){return u===d?I:d.R===void 0?null:(I=Po(I,u,d.R),I===null?null:d.na(I))}var Oo={};function Sl(I,u){return u=tn(I,u),_A[u]}var To=void 0;function be(I){throw new To(I)}function xe(I,u){return u.P&&u.O||be("makeClassHandle requires ptr and ptrType"),!!u.U!=!!u.T&&be("Both smartPtrType and smartPtr must be specified"),u.count={value:1},mt(Object.create(I,{M:{value:u}}))}function mt(I){return typeof FinalizationRegistry>"u"?(mt=u=>u,I):(en=new FinalizationRegistry(u=>{Uo(u.M)}),mt=u=>{var d=u.M;return d.T&&en.register(u,{M:d},u),u},Se=u=>{en.unregister(u)},mt(I))}var ke={};function nn(I){for(;I.length;){var u=I.pop();I.pop()(u)}}function qt(I){return this.fromWireType(w[I>>2])}var Dt={},Me={};function XA(I,u,d){function p(x){x=d(x),x.length!==I.length&&be("Mismatched type converter count");for(var R=0;R<I.length;++R)NA(I[R],x[R])}I.forEach(function(x){Me[x]=u});var y=Array(u.length),D=[],b=0;u.forEach((x,R)=>{et.hasOwnProperty(x)?y[R]=et[x]:(D.push(x),Dt.hasOwnProperty(x)||(Dt[x]=[]),Dt[x].push(()=>{y[R]=et[x],++b,b===D.length&&p(y)}))}),D.length===0&&p(y)}function sn(I){switch(I){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+I)}}function NA(I,u,d={}){if(!("argPackAdvance"in u))throw new TypeError("registerType registeredInstance requires argPackAdvance");var p=u.name;if(I||L('type "'+p+'" must have a positive integer typeid pointer'),et.hasOwnProperty(I)){if(d.ua)return;L("Cannot register type '"+p+"' twice")}et[I]=u,delete Me[I],Dt.hasOwnProperty(I)&&(u=Dt[I],delete Dt[I],u.forEach(y=>y()))}function on(I){L(I.M.P.N.name+" instance already deleted")}function VA(){}function rn(I,u,d){if(I[u].S===void 0){var p=I[u];I[u]=function(){return I[u].S.hasOwnProperty(arguments.length)||L("Function '"+d+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+I[u].S+")!"),I[u].S[arguments.length].apply(this,arguments)},I[u].S=[],I[u].S[p.Z]=p}}function bl(I,u){t.hasOwnProperty(I)?(L("Cannot register public name '"+I+"' twice"),rn(t,I,I),t.hasOwnProperty(void 0)&&L("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),t[I].S[void 0]=u):t[I]=u}function xl(I,u,d,p,y,D,b,x){this.name=I,this.constructor=u,this.X=d,this.W=p,this.R=y,this.pa=D,this.ba=b,this.na=x,this.ja=[]}function an(I,u,d){for(;u!==d;)u.ba||L("Expected null or instance of "+d.name+", got an instance of "+u.name),I=u.ba(I),u=u.R;return I}function kl(I,u){return u===null?(this.ea&&L("null is not a valid "+this.name),0):(u.M||L('Cannot pass "'+cn(u)+'" as a '+this.name),u.M.O||L("Cannot pass deleted object as a pointer of type "+this.name),an(u.M.O,u.M.P.N,this.N))}function Ml(I,u){if(u===null){if(this.ea&&L("null is not a valid "+this.name),this.da){var d=this.fa();return I!==null&&I.push(this.W,d),d}return 0}if(u.M||L('Cannot pass "'+cn(u)+'" as a '+this.name),u.M.O||L("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&u.M.P.ca&&L("Cannot convert argument of type "+(u.M.U?u.M.U.name:u.M.P.name)+" to parameter type "+this.name),d=an(u.M.O,u.M.P.N,this.N),this.da)switch(u.M.T===void 0&&L("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:u.M.U===this?d=u.M.T:L("Cannot convert argument of type "+(u.M.U?u.M.U.name:u.M.P.name)+" to parameter type "+this.name);break;case 1:d=u.M.T;break;case 2:if(u.M.U===this)d=u.M.T;else{var p=u.clone();d=this.xa(d,ve(function(){p.delete()})),I!==null&&I.push(this.W,d)}break;default:L("Unsupporting sharing policy")}return d}function Rl(I,u){return u===null?(this.ea&&L("null is not a valid "+this.name),0):(u.M||L('Cannot pass "'+cn(u)+'" as a '+this.name),u.M.O||L("Cannot pass deleted object as a pointer of type "+this.name),u.M.P.ca&&L("Cannot convert argument of type "+u.M.P.name+" to parameter type "+this.name),an(u.M.O,u.M.P.N,this.N))}function HA(I,u,d,p){this.name=I,this.N=u,this.ea=d,this.ca=p,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,u.R!==void 0?this.toWireType=Ml:(this.toWireType=p?kl:Rl,this.V=null)}function Fl(I,u){t.hasOwnProperty(I)||be("Replacing nonexistant public symbol"),t[I]=u,t[I].Z=void 0}function Gl(I,u){var d=[];return function(){if(d.length=0,Object.assign(d,arguments),I.includes("j")){var p=t["dynCall_"+I];p=d.length?p.apply(null,[u].concat(d)):p.call(null,u)}else p=Z.get(u).apply(null,d);return p}}function fA(I,u){I=eA(I);var d=I.includes("j")?Gl(I,u):Z.get(u);return typeof d!="function"&&L("unknown function pointer with signature "+I+": "+u),d}var Jo=void 0;function Re(I,u){function d(D){y[D]||et[D]||(Me[D]?Me[D].forEach(d):(p.push(D),y[D]=!0))}var p=[],y={};throw u.forEach(d),new Jo(I+": "+p.map(Ho).join([", "]))}function gn(I,u,d,p,y){var D=u.length;2>D&&L("argTypes array size mismatch! Must at least get return value and 'this' types!");var b=u[1]!==null&&d!==null,x=!1;for(d=1;d<u.length;++d)if(u[d]!==null&&u[d].V===void 0){x=!0;break}var R=u[0].name!=="void",k=D-2,G=Array(k),_=[],P=[];return function(){if(arguments.length!==k&&L("function "+I+" called with "+arguments.length+" arguments, expected "+k+" args!"),P.length=0,_.length=b?2:1,_[0]=y,b){var z=u[1].toWireType(P,this);_[1]=z}for(var T=0;T<k;++T)G[T]=u[T+2].toWireType(P,arguments[T]),_.push(G[T]);if(T=p.apply(null,_),x)nn(P);else for(var gA=b?1:2;gA<u.length;gA++){var dA=gA===1?z:G[gA-2];u[gA].V!==null&&u[gA].V(dA)}return z=R?u[0].fromWireType(T):void 0,z}}function hn(I,u){for(var d=[],p=0;p<I;p++)d.push(v[u+4*p>>2]);return d}function ln(I){4<I&&--QA[I].ga===0&&(QA[I]=void 0,$i.push(I))}function cn(I){if(I===null)return"null";var u=typeof I;return u==="object"||u==="array"||u==="function"?I.toString():""+I}function _l(I,u){switch(u){case 2:return function(d){return this.fromWireType(M[d>>2])};case 3:return function(d){return this.fromWireType(F[d>>3])};default:throw new TypeError("Unknown float type: "+I)}}function Nl(I,u,d){switch(u){case 0:return d?function(p){return E[p]}:function(p){return C[p]};case 1:return d?function(p){return f[p>>1]}:function(p){return Q[p>>1]};case 2:return d?function(p){return w[p>>2]}:function(p){return v[p>>2]};default:throw new TypeError("Unknown integer type: "+I)}}function Hl(I,u){for(var d="",p=0;!(p>=u/2);++p){var y=f[I+2*p>>1];if(y==0)break;d+=String.fromCharCode(y)}return d}function Ll(I,u,d){if(d===void 0&&(d=2147483647),2>d)return 0;d-=2;var p=u;d=d<2*I.length?d/2:I.length;for(var y=0;y<d;++y)f[u>>1]=I.charCodeAt(y),u+=2;return f[u>>1]=0,u-p}function Ul(I){return 2*I.length}function Pl(I,u){for(var d=0,p="";!(d>=u/4);){var y=w[I+4*d>>2];if(y==0)break;++d,65536<=y?(y-=65536,p+=String.fromCharCode(55296|y>>10,56320|y&1023)):p+=String.fromCharCode(y)}return p}function Ol(I,u,d){if(d===void 0&&(d=2147483647),4>d)return 0;var p=u;d=p+d-4;for(var y=0;y<I.length;++y){var D=I.charCodeAt(y);if(55296<=D&&57343>=D){var b=I.charCodeAt(++y);D=65536+((D&1023)<<10)|b&1023}if(w[u>>2]=D,u+=4,u+4>d)break}return w[u>>2]=0,u-p}function Tl(I){for(var u=0,d=0;d<I.length;++d){var p=I.charCodeAt(d);55296<=p&&57343>=p&&++d,u+=4}return u}var Jl={};function Ko(I){var u=Jl[I];return u===void 0?eA(I):u}var Fe=[];function Kl(I){var u=Fe.length;return Fe.push(I),u}function Yl(I,u){for(var d=Array(I),p=0;p<I;++p)d[p]=Lo(v[u+4*p>>2],"parameter "+p);return d}var Yo=[],Wl=[null,[],[]];wt=t.BindingError=De("BindingError"),t.count_emval_handles=function(){for(var I=0,u=5;u<QA.length;++u)QA[u]!==void 0&&++I;return I},t.get_first_emval=function(){for(var I=5;I<QA.length;++I)if(QA[I]!==void 0)return QA[I];return null},_o=t.PureVirtualError=De("PureVirtualError");for(var Wo=Array(256),Ge=0;256>Ge;++Ge)Wo[Ge]=String.fromCharCode(Ge);No=Wo,t.getInheritedInstanceCount=function(){return Object.keys(_A).length},t.getLiveInheritedInstances=function(){var I=[],u;for(u in _A)_A.hasOwnProperty(u)&&I.push(_A[u]);return I},t.flushPendingDeletes=An,t.setDelayFunction=function(I){Vt=I,Xt.length&&Vt&&Vt(An)},To=t.InternalError=De("InternalError"),VA.prototype.isAliasOf=function(I){if(!(this instanceof VA&&I instanceof VA))return!1;var u=this.M.P.N,d=this.M.O,p=I.M.P.N;for(I=I.M.O;u.R;)d=u.ba(d),u=u.R;for(;p.R;)I=p.ba(I),p=p.R;return u===p&&d===I},VA.prototype.clone=function(){if(this.M.O||on(this),this.M.aa)return this.M.count.value+=1,this;var I=mt,u=Object,d=u.create,p=Object.getPrototypeOf(this),y=this.M;return I=I(d.call(u,p,{M:{value:{count:y.count,$:y.$,aa:y.aa,O:y.O,P:y.P,T:y.T,U:y.U}}})),I.M.count.value+=1,I.M.$=!1,I},VA.prototype.delete=function(){this.M.O||on(this),this.M.$&&!this.M.aa&&L("Object already scheduled for deletion"),Se(this),Uo(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},VA.prototype.isDeleted=function(){return!this.M.O},VA.prototype.deleteLater=function(){return this.M.O||on(this),this.M.$&&!this.M.aa&&L("Object already scheduled for deletion"),Xt.push(this),Xt.length===1&&Vt&&Vt(An),this.M.$=!0,this},HA.prototype.qa=function(I){return this.ka&&(I=this.ka(I)),I},HA.prototype.ha=function(I){this.W&&this.W(I)},HA.prototype.argPackAdvance=8,HA.prototype.readValueFromPointer=qt,HA.prototype.deleteObject=function(I){I!==null&&I.delete()},HA.prototype.fromWireType=function(I){function u(){return this.da?xe(this.N.X,{P:this.wa,O:d,U:this,T:I}):xe(this.N.X,{P:this,O:I})}var d=this.qa(I);if(!d)return this.ha(I),null;var p=Sl(this.N,d);if(p!==void 0)return p.M.count.value===0?(p.M.O=d,p.M.T=I,p.clone()):(p=p.clone(),this.ha(I),p);if(p=this.N.pa(d),p=Oo[p],!p)return u.call(this);p=this.ca?p.la:p.pointerType;var y=Po(d,this.N,p.N);return y===null?u.call(this):this.da?xe(p.N.X,{P:p,O:y,U:this,T:I}):xe(p.N.X,{P:p,O:y})},Jo=t.UnboundTypeError=De("UnboundTypeError");var Xl=typeof atob=="function"?atob:function(I){var u="",d=0;I=I.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(d++)),y="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(d++)),D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(d++)),b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(d++));p=p<<2|y>>4,y=(y&15)<<4|D>>2;var x=(D&3)<<6|b;u+=String.fromCharCode(p),D!==64&&(u+=String.fromCharCode(y)),b!==64&&(u+=String.fromCharCode(x))}while(d<I.length);return u},Vl={l:function(I,u,d,p){tA("Assertion failed: "+(I?g(C,I):"")+", at: "+[u?u?g(C,u):"":"unknown filename",d,p?p?g(C,p):"":"unknown function"])},q:function(I,u,d){I=eA(I),u=Lo(u,"wrapper"),d=Wt(d);var p=[].slice,y=u.N,D=y.X,b=y.R.X,x=y.R.constructor;I=ji(I,function(){y.R.ja.forEach((function(k){if(this[k]===b[k])throw new _o("Pure virtual function "+k+" must be implemented in JavaScript")}).bind(this)),Object.defineProperty(this,"__parent",{value:D}),this.__construct.apply(this,p.call(arguments))}),D.__construct=function(){this===D&&L("Pass correct 'this' to __construct");var k=x.implement.apply(void 0,[this].concat(p.call(arguments)));Se(k);var G=k.M;k.notifyOnDestruction(),G.aa=!0,Object.defineProperties(this,{M:{value:G}}),mt(this),k=G.O,k=tn(y,k),_A.hasOwnProperty(k)?L("Tried to register registered instance: "+k):_A[k]=this},D.__destruct=function(){this===D&&L("Pass correct 'this' to __destruct"),Se(this);var k=this.M.O;k=tn(y,k),_A.hasOwnProperty(k)?delete _A[k]:L("Tried to unregister unregistered instance: "+k)},I.prototype=Object.create(D);for(var R in d)I.prototype[R]=d[R];return ve(I)},j:function(I){var u=ke[I];delete ke[I];var d=u.fa,p=u.W,y=u.ia,D=y.map(b=>b.ta).concat(y.map(b=>b.za));XA([I],D,b=>{var x={};return y.forEach((R,k)=>{var G=b[k],_=R.ra,P=R.sa,z=b[k+y.length],T=R.ya,gA=R.Aa;x[R.oa]={read:dA=>G.fromWireType(_(P,dA)),write:(dA,Zt)=>{var UA=[];T(gA,dA,z.toWireType(UA,Zt)),nn(UA)}}}),[{name:u.name,fromWireType:function(R){var k={},G;for(G in x)k[G]=x[G].read(R);return p(R),k},toWireType:function(R,k){for(var G in x)if(!(G in k))throw new TypeError('Missing field: "'+G+'"');var _=d();for(G in x)x[G].write(_,k[G]);return R!==null&&R.push(p,_),_},argPackAdvance:8,readValueFromPointer:qt,V:p}]})},v:function(){},B:function(I,u,d,p,y){var D=sn(d);u=eA(u),NA(I,{name:u,fromWireType:function(b){return!!b},toWireType:function(b,x){return x?p:y},argPackAdvance:8,readValueFromPointer:function(b){if(d===1)var x=E;else if(d===2)x=f;else if(d===4)x=w;else throw new TypeError("Unknown boolean type size: "+u);return this.fromWireType(x[b>>D])},V:null})},f:function(I,u,d,p,y,D,b,x,R,k,G,_,P){G=eA(G),D=fA(y,D),x&&(x=fA(b,x)),k&&(k=fA(R,k)),P=fA(_,P);var z=Go(G);bl(z,function(){Re("Cannot construct "+G+" due to unbound types",[p])}),XA([I,u,d],p?[p]:[],function(T){if(T=T[0],p)var gA=T.N,dA=gA.X;else dA=VA.prototype;T=ji(z,function(){if(Object.getPrototypeOf(this)!==Zt)throw new wt("Use 'new' to construct "+G);if(UA.Y===void 0)throw new wt(G+" has no accessible constructor");var Zo=UA.Y[arguments.length];if(Zo===void 0)throw new wt("Tried to invoke ctor of "+G+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(UA.Y).toString()+") parameters instead!");return Zo.apply(this,arguments)});var Zt=Object.create(dA,{constructor:{value:T}});T.prototype=Zt;var UA=new xl(G,T,Zt,P,gA,D,x,k);gA=new HA(G,UA,!0,!1),dA=new HA(G+"*",UA,!1,!1);var qo=new HA(G+" const*",UA,!1,!0);return Oo[I]={pointerType:dA,la:qo},Fl(z,T),[gA,dA,qo]})},d:function(I,u,d,p,y,D,b){var x=hn(d,p);u=eA(u),D=fA(y,D),XA([],[I],function(R){function k(){Re("Cannot call "+G+" due to unbound types",x)}R=R[0];var G=R.name+"."+u;u.startsWith("@@")&&(u=Symbol[u.substring(2)]);var _=R.N.constructor;return _[u]===void 0?(k.Z=d-1,_[u]=k):(rn(_,u,G),_[u].S[d-1]=k),XA([],x,function(P){return P=gn(G,[P[0],null].concat(P.slice(1)),null,D,b),_[u].S===void 0?(P.Z=d-1,_[u]=P):_[u].S[d-1]=P,[]}),[]})},p:function(I,u,d,p,y,D){0<u||tA();var b=hn(u,d);y=fA(p,y),XA([],[I],function(x){x=x[0];var R="constructor "+x.name;if(x.N.Y===void 0&&(x.N.Y=[]),x.N.Y[u-1]!==void 0)throw new wt("Cannot register multiple constructors with identical number of parameters ("+(u-1)+") for class '"+x.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return x.N.Y[u-1]=()=>{Re("Cannot construct "+x.name+" due to unbound types",b)},XA([],b,function(k){return k.splice(1,0,null),x.N.Y[u-1]=gn(R,k,null,y,D),[]}),[]})},a:function(I,u,d,p,y,D,b,x){var R=hn(d,p);u=eA(u),D=fA(y,D),XA([],[I],function(k){function G(){Re("Cannot call "+_+" due to unbound types",R)}k=k[0];var _=k.name+"."+u;u.startsWith("@@")&&(u=Symbol[u.substring(2)]),x&&k.N.ja.push(u);var P=k.N.X,z=P[u];return z===void 0||z.S===void 0&&z.className!==k.name&&z.Z===d-2?(G.Z=d-2,G.className=k.name,P[u]=G):(rn(P,u,_),P[u].S[d-2]=G),XA([],R,function(T){return T=gn(_,T,k,D,b),P[u].S===void 0?(T.Z=d-2,P[u]=T):P[u].S[d-2]=T,[]}),[]})},A:function(I,u){u=eA(u),NA(I,{name:u,fromWireType:function(d){var p=Wt(d);return ln(d),p},toWireType:function(d,p){return ve(p)},argPackAdvance:8,readValueFromPointer:qt,V:null})},n:function(I,u,d){d=sn(d),u=eA(u),NA(I,{name:u,fromWireType:function(p){return p},toWireType:function(p,y){return y},argPackAdvance:8,readValueFromPointer:_l(u,d),V:null})},e:function(I,u,d,p,y){u=eA(u),y===-1&&(y=4294967295),y=sn(d);var D=x=>x;if(p===0){var b=32-8*d;D=x=>x<<b>>>b}d=u.includes("unsigned")?function(x,R){return R>>>0}:function(x,R){return R},NA(I,{name:u,fromWireType:D,toWireType:d,argPackAdvance:8,readValueFromPointer:Nl(u,y,p!==0),V:null})},b:function(I,u,d){function p(D){D>>=2;var b=v;return new y(l,b[D+1],b[D])}var y=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][u];d=eA(d),NA(I,{name:d,fromWireType:p,argPackAdvance:8,readValueFromPointer:p},{ua:!0})},o:function(I,u){u=eA(u);var d=u==="std::string";NA(I,{name:u,fromWireType:function(p){var y=v[p>>2],D=p+4;if(d)for(var b=D,x=0;x<=y;++x){var R=D+x;if(x==y||C[R]==0){if(b=b?g(C,b,R-b):"",k===void 0)var k=b;else k+="\0",k+=b;b=R+1}}else{for(k=Array(y),x=0;x<y;++x)k[x]=String.fromCharCode(C[D+x]);k=k.join("")}return LA(p),k},toWireType:function(p,y){y instanceof ArrayBuffer&&(y=new Uint8Array(y));var D,b=typeof y=="string";if(b||y instanceof Uint8Array||y instanceof Uint8ClampedArray||y instanceof Int8Array||L("Cannot pass non-string to std::string"),d&&b){var x=0;for(D=0;D<y.length;++D){var R=y.charCodeAt(D);127>=R?x++:2047>=R?x+=2:55296<=R&&57343>=R?(x+=4,++D):x+=3}D=x}else D=y.length;if(x=In(4+D+1),R=x+4,v[x>>2]=D,d&&b){if(b=R,R=D+1,D=C,0<R){R=b+R-1;for(var k=0;k<y.length;++k){var G=y.charCodeAt(k);if(55296<=G&&57343>=G){var _=y.charCodeAt(++k);G=65536+((G&1023)<<10)|_&1023}if(127>=G){if(b>=R)break;D[b++]=G}else{if(2047>=G){if(b+1>=R)break;D[b++]=192|G>>6}else{if(65535>=G){if(b+2>=R)break;D[b++]=224|G>>12}else{if(b+3>=R)break;D[b++]=240|G>>18,D[b++]=128|G>>12&63}D[b++]=128|G>>6&63}D[b++]=128|G&63}}D[b]=0}}else if(b)for(b=0;b<D;++b)k=y.charCodeAt(b),255<k&&(LA(R),L("String has UTF-16 code units that do not fit in 8 bits")),C[R+b]=k;else for(b=0;b<D;++b)C[R+b]=y[b];return p!==null&&p.push(LA,x),x},argPackAdvance:8,readValueFromPointer:qt,V:function(p){LA(p)}})},i:function(I,u,d){if(d=eA(d),u===2)var p=Hl,y=Ll,D=Ul,b=()=>Q,x=1;else u===4&&(p=Pl,y=Ol,D=Tl,b=()=>v,x=2);NA(I,{name:d,fromWireType:function(R){for(var k=v[R>>2],G=b(),_,P=R+4,z=0;z<=k;++z){var T=R+4+z*u;(z==k||G[T>>x]==0)&&(P=p(P,T-P),_===void 0?_=P:(_+="\0",_+=P),P=T+u)}return LA(R),_},toWireType:function(R,k){typeof k!="string"&&L("Cannot pass non-string to C++ string type "+d);var G=D(k),_=In(4+G+u);return v[_>>2]=G>>x,y(k,_+4,G+u),R!==null&&R.push(LA,_),_},argPackAdvance:8,readValueFromPointer:qt,V:function(R){LA(R)}})},k:function(I,u,d,p,y,D){ke[I]={name:eA(u),fa:fA(d,p),W:fA(y,D),ia:[]}},h:function(I,u,d,p,y,D,b,x,R,k){ke[I].ia.push({oa:eA(u),ta:d,ra:fA(p,y),sa:D,za:b,ya:fA(x,R),Aa:k})},C:function(I,u){u=eA(u),NA(I,{va:!0,name:u,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(I,u,d,p,y){I=Fe[I],u=Wt(u),d=Ko(d);var D=[];return v[p>>2]=ve(D),I(u,d,D,y)},t:function(I,u,d,p){I=Fe[I],u=Wt(u),d=Ko(d),I(u,d,null,p)},g:ln,m:function(I,u){var d=Yl(I,u),p=d[0];u=p.name+"_$"+d.slice(1).map(function(b){return b.name}).join("_")+"$";var y=Yo[u];if(y!==void 0)return y;var D=Array(I-1);return y=Kl((b,x,R,k)=>{for(var G=0,_=0;_<I-1;++_)D[_]=d[_+1].readValueFromPointer(k+G),G+=d[_+1].argPackAdvance;for(b=b[x].apply(b,D),_=0;_<I-1;++_)d[_+1].ma&&d[_+1].ma(D[_]);if(!p.va)return p.toWireType(R,b)}),Yo[u]=y},D:function(I){4<I&&(QA[I].ga+=1)},r:function(I){var u=Wt(I);nn(u),ln(I)},c:function(){tA("")},x:function(I,u,d){C.copyWithin(I,u,u+d)},w:function(I){var u=C.length;if(I>>>=0,2147483648<I)return!1;for(var d=1;4>=d;d*=2){var p=u*(1+.2/d);p=Math.min(p,I+100663296);var y=Math;p=Math.max(I,p),y=y.min.call(y,2147483648,p+(65536-p%65536)%65536);A:{try{B.grow(y-l.byteLength+65535>>>16),H();var D=1;break A}catch{}D=void 0}if(D)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(I,u,d,p){for(var y=0,D=0;D<d;D++){var b=v[u>>2],x=v[u+4>>2];u+=8;for(var R=0;R<x;R++){var k=C[b+R],G=Wl[I];k===0||k===10?((I===1?r:h)(g(G,0)),G.length=0):G.push(k)}y+=x}return v[p>>2]=y,0}};(function(){function I(y){t.asm=y.exports,B=t.asm.E,H(),Z=t.asm.J,U.unshift(t.asm.F),nA--,t.monitorRunDependencies&&t.monitorRunDependencies(nA),nA==0&&xA&&(y=xA,xA=null,y())}function u(y){I(y.instance)}function d(y){return vl().then(function(D){return WebAssembly.instantiate(D,p)}).then(function(D){return D}).then(y,function(D){h("failed to asynchronously prepare wasm: "+D),tA(D)})}var p={a:Vl};if(nA++,t.monitorRunDependencies&&t.monitorRunDependencies(nA),t.instantiateWasm)try{return t.instantiateWasm(p,I)}catch(y){h("Module.instantiateWasm callback failed with error: "+y),n(y)}return function(){return c||typeof WebAssembly.instantiateStreaming!="function"||WA(kA)||typeof fetch!="function"?d(u):fetch(kA,{credentials:"same-origin"}).then(function(y){return WebAssembly.instantiateStreaming(y,p).then(u,function(D){return h("wasm streaming compile failed: "+D),h("falling back to ArrayBuffer instantiation"),d(u)})})}().catch(n),{}})(),t.___wasm_call_ctors=function(){return(t.___wasm_call_ctors=t.asm.F).apply(null,arguments)};var Xo=t.___getTypeName=function(){return(Xo=t.___getTypeName=t.asm.G).apply(null,arguments)};t.__embind_initialize_bindings=function(){return(t.__embind_initialize_bindings=t.asm.H).apply(null,arguments)};var In=t._malloc=function(){return(In=t._malloc=t.asm.I).apply(null,arguments)},LA=t._free=function(){return(LA=t._free=t.asm.K).apply(null,arguments)};t.dynCall_jiji=function(){return(t.dynCall_jiji=t.asm.L).apply(null,arguments)};var _e;xA=function I(){_e||Vo(),_e||(xA=I)};function Vo(){function I(){if(!_e&&(_e=!0,t.calledRun=!0,!o)){if(zi(U),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;){var u=t.postRun.shift();GA.unshift(u)}zi(GA)}}if(!(0<nA)){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)YA();zi(iA),0<nA||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),I()},1)):I())}}if(t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();return Vo(),A.ready}})();let q=function(e){return e[e.Auto=0]="Auto",e[e.FlexStart=1]="FlexStart",e[e.Center=2]="Center",e[e.FlexEnd=3]="FlexEnd",e[e.Stretch=4]="Stretch",e[e.Baseline=5]="Baseline",e[e.SpaceBetween=6]="SpaceBetween",e[e.SpaceAround=7]="SpaceAround",e[e.SpaceEvenly=8]="SpaceEvenly",e}({}),de=function(e){return e[e.BorderBox=0]="BorderBox",e[e.ContentBox=1]="ContentBox",e}({}),ao=function(e){return e[e.Width=0]="Width",e[e.Height=1]="Height",e}({}),$A=function(e){return e[e.Inherit=0]="Inherit",e[e.LTR=1]="LTR",e[e.RTL=2]="RTL",e}({}),It=function(e){return e[e.Flex=0]="Flex",e[e.None=1]="None",e[e.Contents=2]="Contents",e}({}),N=function(e){return e[e.Left=0]="Left",e[e.Top=1]="Top",e[e.Right=2]="Right",e[e.Bottom=3]="Bottom",e[e.Start=4]="Start",e[e.End=5]="End",e[e.Horizontal=6]="Horizontal",e[e.Vertical=7]="Vertical",e[e.All=8]="All",e}({}),Bt=function(e){return e[e.None=0]="None",e[e.StretchFlexBasis=1]="StretchFlexBasis",e[e.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",e[e.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",e[e.All=2147483647]="All",e[e.Classic=2147483646]="Classic",e}({}),Nh=function(e){return e[e.WebFlexBasis=0]="WebFlexBasis",e}({}),vA=function(e){return e[e.Column=0]="Column",e[e.ColumnReverse=1]="ColumnReverse",e[e.Row=2]="Row",e[e.RowReverse=3]="RowReverse",e}({}),ut=function(e){return e[e.Column=0]="Column",e[e.Row=1]="Row",e[e.All=2]="All",e}({}),cA=function(e){return e[e.FlexStart=0]="FlexStart",e[e.Center=1]="Center",e[e.FlexEnd=2]="FlexEnd",e[e.SpaceBetween=3]="SpaceBetween",e[e.SpaceAround=4]="SpaceAround",e[e.SpaceEvenly=5]="SpaceEvenly",e}({}),Et=function(e){return e[e.Error=0]="Error",e[e.Warn=1]="Warn",e[e.Info=2]="Info",e[e.Debug=3]="Debug",e[e.Verbose=4]="Verbose",e[e.Fatal=5]="Fatal",e}({}),Yi=function(e){return e[e.Undefined=0]="Undefined",e[e.Exactly=1]="Exactly",e[e.AtMost=2]="AtMost",e}({}),go=function(e){return e[e.Default=0]="Default",e[e.Text=1]="Text",e}({}),Ct=function(e){return e[e.Visible=0]="Visible",e[e.Hidden=1]="Hidden",e[e.Scroll=2]="Scroll",e}({}),Qt=function(e){return e[e.Static=0]="Static",e[e.Relative=1]="Relative",e[e.Absolute=2]="Absolute",e}({}),SA=function(e){return e[e.Undefined=0]="Undefined",e[e.Point=1]="Point",e[e.Percent=2]="Percent",e[e.Auto=3]="Auto",e}({}),ft=function(e){return e[e.NoWrap=0]="NoWrap",e[e.Wrap=1]="Wrap",e[e.WrapReverse=2]="WrapReverse",e}({});const Hh={ALIGN_AUTO:q.Auto,ALIGN_FLEX_START:q.FlexStart,ALIGN_CENTER:q.Center,ALIGN_FLEX_END:q.FlexEnd,ALIGN_STRETCH:q.Stretch,ALIGN_BASELINE:q.Baseline,ALIGN_SPACE_BETWEEN:q.SpaceBetween,ALIGN_SPACE_AROUND:q.SpaceAround,ALIGN_SPACE_EVENLY:q.SpaceEvenly,BOX_SIZING_BORDER_BOX:de.BorderBox,BOX_SIZING_CONTENT_BOX:de.ContentBox,DIMENSION_WIDTH:ao.Width,DIMENSION_HEIGHT:ao.Height,DIRECTION_INHERIT:$A.Inherit,DIRECTION_LTR:$A.LTR,DIRECTION_RTL:$A.RTL,DISPLAY_FLEX:It.Flex,DISPLAY_NONE:It.None,DISPLAY_CONTENTS:It.Contents,EDGE_LEFT:N.Left,EDGE_TOP:N.Top,EDGE_RIGHT:N.Right,EDGE_BOTTOM:N.Bottom,EDGE_START:N.Start,EDGE_END:N.End,EDGE_HORIZONTAL:N.Horizontal,EDGE_VERTICAL:N.Vertical,EDGE_ALL:N.All,ERRATA_NONE:Bt.None,ERRATA_STRETCH_FLEX_BASIS:Bt.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:Bt.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:Bt.AbsolutePercentAgainstInnerSize,ERRATA_ALL:Bt.All,ERRATA_CLASSIC:Bt.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:Nh.WebFlexBasis,FLEX_DIRECTION_COLUMN:vA.Column,FLEX_DIRECTION_COLUMN_REVERSE:vA.ColumnReverse,FLEX_DIRECTION_ROW:vA.Row,FLEX_DIRECTION_ROW_REVERSE:vA.RowReverse,GUTTER_COLUMN:ut.Column,GUTTER_ROW:ut.Row,GUTTER_ALL:ut.All,JUSTIFY_FLEX_START:cA.FlexStart,JUSTIFY_CENTER:cA.Center,JUSTIFY_FLEX_END:cA.FlexEnd,JUSTIFY_SPACE_BETWEEN:cA.SpaceBetween,JUSTIFY_SPACE_AROUND:cA.SpaceAround,JUSTIFY_SPACE_EVENLY:cA.SpaceEvenly,LOG_LEVEL_ERROR:Et.Error,LOG_LEVEL_WARN:Et.Warn,LOG_LEVEL_INFO:Et.Info,LOG_LEVEL_DEBUG:Et.Debug,LOG_LEVEL_VERBOSE:Et.Verbose,LOG_LEVEL_FATAL:Et.Fatal,MEASURE_MODE_UNDEFINED:Yi.Undefined,MEASURE_MODE_EXACTLY:Yi.Exactly,MEASURE_MODE_AT_MOST:Yi.AtMost,NODE_TYPE_DEFAULT:go.Default,NODE_TYPE_TEXT:go.Text,OVERFLOW_VISIBLE:Ct.Visible,OVERFLOW_HIDDEN:Ct.Hidden,OVERFLOW_SCROLL:Ct.Scroll,POSITION_TYPE_STATIC:Qt.Static,POSITION_TYPE_RELATIVE:Qt.Relative,POSITION_TYPE_ABSOLUTE:Qt.Absolute,UNIT_UNDEFINED:SA.Undefined,UNIT_POINT:SA.Point,UNIT_PERCENT:SA.Percent,UNIT_AUTO:SA.Auto,WRAP_NO_WRAP:ft.NoWrap,WRAP_WRAP:ft.Wrap,WRAP_WRAP_REVERSE:ft.WrapReverse};function Lh(e){function A(n,s,a){const r=n[s];n[s]=function(){for(var h=arguments.length,c=new Array(h),B=0;B<h;B++)c[B]=arguments[B];return a.call(this,r,...c)}}for(const n of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){const s={[SA.Point]:e.Node.prototype[n],[SA.Percent]:e.Node.prototype[`${n}Percent`],[SA.Auto]:e.Node.prototype[`${n}Auto`]};A(e.Node.prototype,n,function(a){for(var r=arguments.length,h=new Array(r>1?r-1:0),c=1;c<r;c++)h[c-1]=arguments[c];const B=h.pop();let o,g;if(B==="auto")o=SA.Auto,g=void 0;else if(typeof B=="object")o=B.unit,g=B.valueOf();else if(o=typeof B=="string"&&B.endsWith("%")?SA.Percent:SA.Point,g=parseFloat(B),B!==void 0&&!Number.isNaN(B)&&Number.isNaN(g))throw new Error(`Invalid value ${B} for ${n}`);if(!s[o])throw new Error(`Failed to execute "${n}": Unsupported unit '${B}'`);return g!==void 0?s[o].call(this,...h,g):s[o].call(this,...h)})}function t(n){return e.MeasureCallback.implement({measure:function(){const{width:s,height:a}=n(...arguments);return{width:s??NaN,height:a??NaN}}})}A(e.Node.prototype,"setMeasureFunc",function(n,s){return s?n.call(this,t(s)):this.unsetMeasureFunc()});function i(n){return e.DirtiedCallback.implement({dirtied:n})}return A(e.Node.prototype,"setDirtiedFunc",function(n,s){n.call(this,i(s))}),A(e.Config.prototype,"free",function(){e.Config.destroy(this)}),A(e.Node,"create",(n,s)=>s?e.Node.createWithConfig(s):e.Node.createDefault()),A(e.Node.prototype,"free",function(){e.Node.destroy(this)}),A(e.Node.prototype,"freeRecursive",function(){for(let n=0,s=this.getChildCount();n<s;++n)this.getChild(0).freeRecursive();this.free()}),A(e.Node.prototype,"calculateLayout",function(n){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:$A.LTR;return n.call(this,s,a,r)}),{Config:e.Config,Node:e.Node,...Hh}}async function Uh(){return Lh(await _h())}let ho;function Ph(){return ho}function Oh(e){ho=e}function pe(e,A){return e?typeof e=="number"?e:typeof e=="string"&&e.endsWith("%")?(A??(A=1),A*(parseFloat(e)/100)):Number.isNaN(parseFloat(e))?0:parseFloat(e):0}function At(e){return typeof e=="number"?"number":e.endsWith("%")?"percentage":Number.isNaN(parseInt(e,10))?"keyword":"number"}function ye(e,A,t){return(A[e]-t[e])/2}function lo(e,A,t,i,n){const s=A==="percentage"?i[t]-n[t]:1;return pe(e)*s}function co(e,A,t){const[i,n]=e,s=At(i),a=At(n),r={x:void 0,y:void 0};switch(i){case"top":r.y=0;break;case"bottom":r.y=A.height-t.height;break;case"center":n==="left"||n==="right"?r.y=ye("height",A,t):r.x=ye("width",A,t);break;case"left":r.x=0;break;case"right":r.x=A.width-t.width;break;default:{const h=n==="top"||n==="bottom"||a!=="keyword"?"width":"height",c=h==="width"?"x":"y";r[c]=lo(i,s,h,A,t)}}switch(n){case"top":r.y=0;break;case"bottom":r.y=A.height-t.height;break;case"center":r.y===void 0?r.y=ye("height",A,t):r.x=ye("width",A,t);break;case"left":r.x=0;break;case"right":r.x=A.width-t.width;break;default:{const h=r.y===void 0?"y":"x",c=h==="y"?"height":"width";r[h]=lo(n,a,c,A,t)}}return r}function we(e,A,t,i){const n=e==="right"||e==="bottom",s=t==="percentage"?A*i:A;return n?-s:s}function Th(e,A,t){const[i,n,s,a]=e,r=At(i),h=At(n),c=At(s),B=At(a);if(h==="keyword"||B==="keyword")throw new Error("Invalid objectPosition value: second and fourth values must be numbers or percentages");if(r!=="keyword"||c!=="keyword")throw new Error("Invalid objectPosition value: first and third values must be keywords");const o=co([i,s],A,t),g={...o},l=pe(n),E=pe(a);return i==="left"||i==="right"?g.x=o.x+we(i,l,h,t.width):(i==="top"||i==="bottom")&&(g.y=o.y+we(i,l,h,t.height)),s==="left"||s==="right"?g.x=o.x+we(s,E,B,t.width):(s==="top"||s==="bottom")&&(g.y=o.y+we(s,E,B,t.height)),g}function Jh(e,A,t){const i=e[0],n={x:void 0,y:void 0};switch(i){case"top":n.y=0,n.x=(A.width-t.width)/2;break;case"bottom":n.y=A.height-t.height,n.x=(A.width-t.width)/2;break;case"left":n.x=0,n.y=(A.height-t.height)/2;break;case"right":n.x=A.width-t.width,n.y=(A.height-t.height)/2;break;case"center":n.x=(A.width-t.width)/2,n.y=(A.height-t.height)/2;break;default:{const a=At(i)==="percentage"?A.width-t.width:1;n.x=pe(i)*a,n.y=(A.height-t.height)/2}}return n}function Wi(e,A,t){if(!e)return{x:0,y:0};const i=typeof e=="string"?e.split(" "):[e];switch(i.length){case 1:return Jh(i,A,t);case 2:return co(i,A,t);case 4:return Th(i,A,t);default:throw new Error("Invalid objectPosition value: must have 1, 2, or 4 values")}}const Kh=new m.Bounds,Xi={width:0,height:0};function Io(e){const A=e.target.getLocalBounds(Kh),t=e.target.scale;return Xi.width=Math.abs(A.width*t.x),Xi.height=Math.abs(A.height*t.y),Xi}function Bo(e,A,t=.49){return Math.abs(e-A)<t}const Yt=new Map;function Yh(e,A=100,t){if(!Yt.has(e)){let i=null;const n=(...s)=>{if(Yt.get(e).args=s,i)return;const a=()=>{i=null;const r=Yt.get(e).args;e(...r)};A===0?a():i=setTimeout(a,A)};Yt.set(e,{throttledFunction:n,args:null})}return Yt.get(e).throttledFunction}var Wh=Object.defineProperty,Xh=(e,A,t)=>A in e?Wh(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t,tt=(e,A,t)=>Xh(e,typeof A!="symbol"?A+"":A,t);class uo{constructor(){tt(this,"autoUpdate",!0),tt(this,"_debugEnabled",!1),tt(this,"_debugRenderer",null),tt(this,"_throttledUpdateSize"),tt(this,"_throttle",100),tt(this,"_modificationCount",50)}async init(A){Oh(await Uh());const{layout:t}=A??{},{autoUpdate:i,enableDebug:n,throttle:s,debugModificationCount:a}=t??{};n&&this.enableDebug(!0),i!==void 0&&(this.autoUpdate=i),this._throttle=s??this._throttle,this._throttledUpdateSize=Yh(r=>this._updateSize(r),this._throttle),this._modificationCount=a??this._modificationCount}async enableDebug(A=!this._debugEnabled){if(this._debugEnabled=A,!this._debugRenderer){const t=await Promise.resolve().then(()=>yl);this._debugRenderer=new t.DebugRenderer}this._debugEnabled||this._debugRenderer.reset()}update(A){this._debugEnabled&&this._debugRenderer&&(this._debugRenderer.reset(),A.addChild(this._debugRenderer.holder)),this._throttledUpdateSize(A),this.updateLayout(A)}prerender({container:A}){this.autoUpdate&&this.update(A)}_updateSize(A){const t=A._layout;if(t){const i=t.style;if(i.width==="intrinsic"||i.height==="intrinsic"){const n=Io(t);if(i.width==="intrinsic"){const s=t.yoga.getWidth().value;Bo(s,n.width)||(t.yoga.setWidth(n.width),t.invalidateRoot())}if(i.height==="intrinsic"){const s=t.yoga.getHeight().value;Bo(s,n.height)||(t.yoga.setHeight(n.height),t.invalidateRoot())}}if(!A.visible){t._onChildRemoved();return}}for(let i=0;i<A.children.length;i++)this._updateSize(A.children[i])}updateLayout(A){var t,i,n,s;const a=A._layout;if(A.visible){if(a){const r=a.yoga,h=a.style,c=(t=A.parent)==null?void 0:t.isOverflowContainer;if(!((i=A.parent)==null?void 0:i._layout)&&!c&&a._isDirty&&(a._isDirty=!1,r.calculateLayout(h.width,h.height,r.getDirection()??$A.LTR)),r.hasNewLayout()||a._forceUpdate){r.markLayoutSeen(),a._forceUpdate=!1,a._computedLayout=r.getComputedLayout();const o=Wi(h.transformOrigin,a._computedLayout,{width:0,height:0});a._computedPixiLayout={...A.computeLayoutData(a._computedLayout),originX:o.x,originY:o.y},A.emit("layout",a),(n=A.onLayout)==null||n.call(A,a),A._onUpdate()}this._debugEnabled&&(a._styles.custom.debug||a._modificationCount>this._modificationCount&&a._styles.custom.debugHeat!==!1)&&((s=this._debugRenderer)==null||s.render(a))}for(let r=0;r<A.children.length;r++)this.updateLayout(A.children[r])}}destroy(){!this._debugEnabled&&this._debugRenderer&&this._debugRenderer.destroy()}}tt(uo,"extension",{type:[m.ExtensionType.WebGLSystem,m.ExtensionType.WebGPUSystem],name:"layout"});const Eo={"flex-start":q.FlexStart,"flex-end":q.FlexEnd,center:q.Center,stretch:q.Stretch,"space-between":q.SpaceBetween,"space-around":q.SpaceAround,"space-evenly":q.SpaceEvenly},Co={"flex-start":q.FlexStart,"flex-end":q.FlexEnd,center:q.Center,stretch:q.Stretch,baseline:q.Baseline},Qo={"border-box":de.BorderBox,"content-box":de.ContentBox},fo={ltr:$A.LTR,rtl:$A.RTL},po={none:It.None,flex:It.Flex,contents:It.Contents},yo={row:vA.Row,column:vA.Column,"row-reverse":vA.RowReverse,"column-reverse":vA.ColumnReverse},wo={wrap:ft.Wrap,nowrap:ft.NoWrap,"wrap-reverse":ft.WrapReverse},mo={"flex-start":cA.FlexStart,"flex-end":cA.FlexEnd,center:cA.Center,"space-between":cA.SpaceBetween,"space-around":cA.SpaceAround,"space-evenly":cA.SpaceEvenly},Do={visible:Ct.Visible,hidden:Ct.Hidden,scroll:Ct.Scroll},vo={absolute:Qt.Absolute,relative:Qt.Relative,static:Qt.Static},Vh={alignContent:(e,A)=>e.setAlignContent(qh(A)),alignItems:(e,A)=>e.setAlignItems(So(A)),alignSelf:(e,A)=>e.setAlignSelf(So(A)),aspectRatio:(e,A)=>e.setAspectRatio(A),borderBottomWidth:(e,A)=>e.setBorder(N.Bottom,A),borderEndWidth:(e,A)=>e.setBorder(N.End,A),borderLeftWidth:(e,A)=>e.setBorder(N.Left,A),borderRightWidth:(e,A)=>e.setBorder(N.Right,A),borderStartWidth:(e,A)=>e.setBorder(N.Start,A),borderTopWidth:(e,A)=>e.setBorder(N.Top,A),borderWidth:(e,A)=>e.setBorder(N.All,A),borderInlineWidth:(e,A)=>e.setBorder(N.Horizontal,A),borderBlockWidth:(e,A)=>e.setBorder(N.Vertical,A),bottom:(e,A)=>e.setPosition(N.Bottom,A),boxSizing:(e,A)=>e.setBoxSizing(Zh(A)),direction:(e,A)=>e.setDirection(zh(A)),display:(e,A)=>e.setDisplay(jh(A)),end:(e,A)=>e.setPosition(N.End,A),flex:(e,A)=>e.setFlex(A),flexBasis:(e,A)=>e.setFlexBasis(A),flexDirection:(e,A)=>e.setFlexDirection($h(A)),rowGap:(e,A)=>e.setGap(ut.Row,A),gap:(e,A)=>e.setGap(ut.All,A),columnGap:(e,A)=>e.setGap(ut.Column,A),flexGrow:(e,A)=>e.setFlexGrow(A),flexShrink:(e,A)=>e.setFlexShrink(A),flexWrap:(e,A)=>e.setFlexWrap(Al(A)),height:(e,A)=>e.setHeight(A),justifyContent:(e,A)=>e.setJustifyContent(tl(A)),left:(e,A)=>e.setPosition(N.Left,A),margin:(e,A)=>e.setMargin(N.All,A),marginBottom:(e,A)=>e.setMargin(N.Bottom,A),marginEnd:(e,A)=>e.setMargin(N.End,A),marginLeft:(e,A)=>e.setMargin(N.Left,A),marginRight:(e,A)=>e.setMargin(N.Right,A),marginStart:(e,A)=>e.setMargin(N.Start,A),marginTop:(e,A)=>e.setMargin(N.Top,A),marginInline:(e,A)=>e.setMargin(N.Horizontal,A),marginBlock:(e,A)=>e.setMargin(N.Vertical,A),maxHeight:(e,A)=>e.setMaxHeight(A),maxWidth:(e,A)=>e.setMaxWidth(A),minHeight:(e,A)=>e.setMinHeight(A),minWidth:(e,A)=>e.setMinWidth(A),overflow:(e,A)=>e.setOverflow(el(A)),padding:(e,A)=>e.setPadding(N.All,A),paddingBottom:(e,A)=>e.setPadding(N.Bottom,A),paddingEnd:(e,A)=>e.setPadding(N.End,A),paddingLeft:(e,A)=>e.setPadding(N.Left,A),paddingRight:(e,A)=>e.setPadding(N.Right,A),paddingStart:(e,A)=>e.setPadding(N.Start,A),paddingTop:(e,A)=>e.setPadding(N.Top,A),paddingInline:(e,A)=>e.setPadding(N.Horizontal,A),paddingBlock:(e,A)=>e.setPadding(N.Vertical,A),position:(e,A)=>e.setPositionType(il(A)),right:(e,A)=>e.setPosition(N.Right,A),start:(e,A)=>e.setPosition(N.Start,A),top:(e,A)=>e.setPosition(N.Top,A),insetInline:(e,A)=>e.setPosition(N.Horizontal,A),insetBlock:(e,A)=>e.setPosition(N.Vertical,A),inset:(e,A)=>e.setPosition(N.All,A),width:(e,A)=>e.setWidth(A)};function qh(e){if(e in Eo)return Eo[e];throw new Error(`"${e}" is not a valid value for alignContent`)}function So(e){if(e in Co)return Co[e];throw new Error(`"${e}" is not a valid value for alignItems`)}function Zh(e){if(e in Qo)return Qo[e];throw new Error(`"${e}" is not a valid value for boxSizing`)}function zh(e){if(e in fo)return fo[e];throw new Error(`"${e}" is not a valid value for direction`)}function jh(e){if(e in po)return po[e];throw new Error(`"${e}" is not a valid value for display`)}function $h(e){if(e in yo)return yo[e];throw new Error(`"${e}" is not a valid value for flexDirection`)}function Al(e){if(e in wo)return wo[e];throw new Error(`"${e}" is not a valid value for flexWrap`)}function tl(e){if(e in mo)return mo[e];throw new Error(`"${e}" is not a valid value for justifyContent`)}function el(e){if(e in Do)return Do[e];throw new Error(`"${e}" is not a valid value for overflow`)}function il(e){if(e in vo)return vo[e];throw new Error(`"${e}" is not a valid value for position`)}function nl(e,A={}){for(const[t,i]of Object.entries(A))try{const n=Vh[t];n&&n(e,i)}catch{}if(A.width!==void 0){const t=A.left!==void 0&&A.right!==void 0?"auto":A.width;e.setWidth(t)}if(A.height!==void 0){const t=A.top!==void 0&&A.bottom!==void 0?"auto":A.height;e.setHeight(t)}}function sl(e,A){let i={...e._styles.custom,...A};i={...{...dt.defaultStyle.shared,...e.target instanceof m.ViewContainer||i.isLeaf||dt.defaultStyle.shared.isLeaf?dt.defaultStyle.leaf:dt.defaultStyle.container},...i};const s={...i},a=i.width==="intrinsic",r=i.height==="intrinsic";if(a||r){const{width:h,height:c}=Io(e);a&&(s.width=h),r&&(s.height=c)}return{custom:i,yoga:s}}function ol(e,A){var t;let i=A.layout,n=-1;if(!i&&A.isOverflowContainer&&(i=(t=A.parent)==null?void 0:t.layout,n=A.children.indexOf(e.target),A=A.parent),i){const s=e.yoga.getParent();if(s&&s.removeChild(e.yoga),A.children.indexOf(e.target)===A.children.length-1&&n===-1){i.yoga.insertChild(e.yoga,i.yoga.getChildCount());return}for(let a=0;a<A.children.length;a++){const r=A.children[a];if(r.layout&&r.visible&&n++,r===e.target)break}i.yoga.insertChild(e.yoga,n)}}function rl(e){const A=e.yoga.getParent();A&&A.removeChild(e.yoga)}var al=Object.defineProperty,gl=(e,A,t)=>A in e?al(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t,CA=(e,A,t)=>gl(e,typeof A!="symbol"?A+"":A,t);class dt{constructor({target:A}){CA(this,"yoga"),CA(this,"target"),CA(this,"_isDirty",!1),CA(this,"_computedPixiLayout",{x:0,y:0,offsetX:0,offsetY:0,scaleX:1,scaleY:1,originX:0,originY:0}),CA(this,"_computedLayout",{left:0,right:0,top:0,bottom:0,width:0,height:0}),CA(this,"_styles",{custom:{},yoga:{}}),CA(this,"_modificationCount",0),CA(this,"_forceUpdate",!1),CA(this,"hasParent",!1),CA(this,"_trackedStyleKeys",["borderRadius","borderColor","backgroundColor","objectFit","objectPosition","transformOrigin","isLeaf"]),this.target=A,this.yoga=Ph().Node.create(),A.on("added",this._onChildAdded,this),A.on("removed",this._onChildRemoved,this),A.on("destroyed",this.destroy,this)}get style(){return this._styles.custom}get computedLayout(){return this._computedLayout}get computedPixiLayout(){return this._computedPixiLayout}get realX(){return this.target.localTransform.tx}get realY(){return this.target.localTransform.ty}get realScaleX(){return this.target.localTransform.a}get realScaleY(){return this.target.localTransform.d}setStyle(A){const t=sl(this,A),i=JSON.stringify(this._styles.custom)!==JSON.stringify(t.custom),n=JSON.stringify(this._styles.yoga)!==JSON.stringify(t.yoga),s=i||n,a=this._trackedStyleKeys.some(r=>t.custom[r]!==this._styles.custom[r]);this._styles=t,a&&(this._forceUpdate=!0),s&&(nl(this.yoga,this._styles.yoga),this.target._onUpdate(),this.invalidateRoot())}invalidateRoot(){const A=this.getRoot();A._layout._isDirty=!0,A._onUpdate(),this._modificationCount++}forceUpdate(){this._forceUpdate=!0}getRoot(){var A,t;let i=this.target;for(;(A=i.parent)!=null&&A._layout||(t=i.parent)!=null&&t.isOverflowContainer;)i=i.parent,i.isOverflowContainer&&(i=i.parent);return i}_onChildAdded(A){this.hasParent||(this.hasParent=!0,this.invalidateRoot(),ol(this,A))}_onChildRemoved(){this.hasParent&&(this.hasParent=!1,this.invalidateRoot(),rl(this))}destroy(){this.invalidateRoot(),this.yoga.free(),this.target.off("added",this._onChildAdded,this),this.target.off("removed",this._onChildRemoved,this),this._styles=null,this._computedPixiLayout=null,this._computedLayout=null,this.target=null,this.hasParent=!1}}CA(dt,"defaultStyle",{leaf:{width:"intrinsic",height:"intrinsic"},container:{width:"auto",height:"auto"},shared:{transformOrigin:"50%",objectPosition:"center",flexShrink:1,flexDirection:"row",alignContent:"stretch",flexWrap:"nowrap",overflow:"visible"}});function bo(e,A,t){let i=1,n=1;switch(e){case"fill":i=A.width/t.width,n=A.height/t.height;break;case"contain":{const s=Math.min(A.width/t.width,A.height/t.height);i=s,n=s;break}case"cover":{const s=Math.max(A.width/t.width,A.height/t.height);i=s,n=s;break}case"none":i=1,n=1;break;case"scale-down":{const s=Math.min(1,A.width/t.width,A.height/t.height);i=s,n=s;break}}return{offsetScaleX:i,offsetScaleY:n}}function xo(e,A,t,i){const n=e.getLocalBounds(),s=e.layout.style.objectFit||t;let{offsetScaleX:a,offsetScaleY:r}=bo(s,A,n);const h={width:n.width*a,height:n.height*r};let{x:c,y:B}=Wi(e.layout.style.objectPosition,A,h);i?(c+=n.width*a*i._x,B+=n.height*r*i._y):(c-=n.minX*a,B-=n.minY*r);const o=e.layout.style.applySizeDirectly;return(o===!0||o==null&&(e instanceof m.TilingSprite||e instanceof m.NineSliceSprite))&&(e.width=n.width*a,e.height=n.height*r,a=1,r=1),{x:A.left,y:A.top,offsetX:c,offsetY:B,scaleX:a,scaleY:r}}const Vi=Object.getOwnPropertyDescriptor(m.Container.prototype,"visible"),hl={_layout:null,get layout(){return this._layout??null},set layout(e){if(e=e===!0?{}:e,!e){this._layout&&(this._layout.destroy(),this._layout=null,this.updateLocalTransform=m.Container.prototype.updateLocalTransform,Object.defineProperty(m.Container.prototype,"visible",Vi));return}this._layout||(this._layout=new dt({target:this}),Object.defineProperty(m.Container.prototype,"visible",{...Vi,set(A){Vi.set.call(this,A),this.layout&&(A&&this.parent?this.layout._onChildAdded(this.parent):this.layout._onChildRemoved())}}),this.parent&&this.visible&&this._layout._onChildAdded(this.parent)),this._layout.setStyle(e),this.updateLocalTransform=this.updateLocalTransformWithLayout,this._onUpdate()},updateLocalTransformWithLayout(){const e=this._didContainerChangeTick;if(this._didLocalTransformChangeId===e)return;this._didLocalTransformChangeId=e;const A=this._layout,{x:t,y:i,offsetX:n,offsetY:s,scaleX:a,scaleY:r,originX:h,originY:c}=A._computedPixiLayout,B=this.localTransform,{rotation:o,skew:g,scale:l,position:E}=this,C=o+g._y,f=o-g._x,Q=Math.cos(C)*l._x,w=Math.sin(C)*l._x,v=-Math.sin(f)*l._y,M=Math.cos(f)*l._y,F=E._x+t-h*Q-c*v,H=E._y+i-h*w-c*M;B.a=Q*a,B.b=w*a,B.c=v*r,B.d=M*r,B.tx=F+(n*Q+s*v)+h,B.ty=H+(n*w+s*M)+c},computeLayoutData(e){const A=this._layout,{isLeaf:t}=A._styles.custom;return t?xo(this,e,"fill"):{x:e.left,y:e.top,offsetX:0,offsetY:0,scaleX:1,scaleY:1}}};m.extensions.mixin(m.Container,hl);const ko=new m.Point(0,0),ll={computeLayoutData(e){const A=this._style;ko.copyFrom(this.scale),this.scale=1,A.wordWrap&&(A.wordWrapWidth=e.width);let t=this.getLocalBounds();const i=this.layout.style.objectFit||"scale-down",{offsetScaleX:n,offsetScaleY:s}=bo(i,e,t);A.wordWrap&&(A.wordWrapWidth=e.width/Math.min(1,Math.max(n,s))),t=this.getLocalBounds();const a={width:t.width*n,height:t.height*s};let{x:r,y:h}=Wi(this.layout.style.objectPosition,e,a);return r+=t.width*n*this.anchor._x,h+=t.height*s*this.anchor._y,this.layout.style.applySizeDirectly===!0&&(this.width=t.width*n,this.height=t.height*s),this.scale.copyFrom(ko),{x:e.left,y:e.top,offsetX:r,offsetY:h,scaleX:n,scaleY:s}}};m.extensions.mixin(m.AbstractText,ll);const qi=Object.getOwnPropertyDescriptor(m.AbstractText.prototype,"text");Object.defineProperty(m.AbstractText.prototype,"text",{...qi,set(e){var A;const t=qi.get.call(this);qi.set.call(this,e),t!==e&&((A=this.layout)==null||A.forceUpdate())}});const cl={computeLayoutData(e){return xo(this,e,"fill",this._anchor)}};m.extensions.mixin(m.ViewContainer,cl);var bA=(e=>(e.Margin="margin",e.Padding="padding",e.Border="border",e.Flex="flex",e.Content="content",e))(bA||{});function Zi(e,A){const t=`getComputed${A.charAt(0).toUpperCase()+A.slice(1)}`;return{top:e.yoga[t](N.Top),right:e.yoga[t](N.Right),bottom:e.yoga[t](N.Bottom),left:e.yoga[t](N.Left)}}function Il(e,A){const{width:t,height:i}=e.computedLayout,n=Zi(e,"margin"),s=Zi(e,"border"),a=Zi(e,"padding"),r=A.get("margin");r.outer.x=-n.left,r.outer.y=-n.top,r.outer.width=t+n.left+n.right,r.outer.height=i+n.top+n.bottom,r.inner.x=0,r.inner.y=0,r.inner.width=t,r.inner.height=i;const h=A.get("border");h.outer.x=0,h.outer.y=0,h.outer.width=t,h.outer.height=i,h.inner.x=s.left,h.inner.y=s.top,h.inner.width=t-s.left-s.right,h.inner.height=i-s.top-s.bottom;const c=A.get("padding");c.outer.copyFrom(h.inner),c.inner.x=a.left+s.left,c.inner.y=a.top+s.top,c.inner.width=t-a.left-a.right-s.left-s.right,c.inner.height=i-a.top-a.bottom-s.top-s.bottom,Bl(e,A)}function Bl(e,A){var t;const i=A.get("flex"),n=A.get("padding");i.outer.copyFrom(n.inner);const s=new m.Bounds,a=e.yoga.getChildCount();for(let h=0;h<a;h++){const B=e.yoga.getChild(h).getComputedLayout();s.addRect(new m.Rectangle(B.left,B.top,B.width,B.height))}const r=e.yoga.getFlexDirection();r===vA.Column||r===vA.ColumnReverse?(s.width=i.outer.width,s.x=i.outer.x):(s.height=i.outer.height,s.y=i.outer.y),(t=i.inner)==null||t.copyFrom(s.rectangle),A.get("content").outer.copyFrom(s.rectangle)}var ul=Object.defineProperty,El=(e,A,t)=>A in e?ul(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t,Mo=(e,A,t)=>El(e,typeof A!="symbol"?A+"":A,t);function Cl(e,A,t){const i=Math.round(e[0]+(A[0]-e[0])*t),n=Math.round(e[1]+(A[1]-e[1])*t),s=Math.round(e[2]+(A[2]-e[2])*t);return`rgb(${i},${n},${s})`}class Ql extends m.Container{constructor(){super(),Mo(this,"graphics"),Mo(this,"heatGraphics"),this.graphics=new Map,Object.values(bA).forEach(A=>{const t=new m.Graphics;this.graphics.set(A,t),this.addChild(t)}),this.heatGraphics=new m.Graphics,this.addChild(this.heatGraphics)}init(A){const{target:t,alpha:i,heat:n}=A;A.heatOnly||Object.entries(A).forEach(([r,h])=>{if(r==="target"||r==="alpha"||r==="heat"||r==="heatOnly")return;h=h;const c=this.graphics.get(r);if(!(!c||!h.draw))if(h.inner)this.drawCutBox(c,h.outer,h.inner,h.color,i);else{const{x:B,y:o,width:g,height:l}=h.outer;c.rect(B,o,g,Math.max(l,1)),c.fill({color:h.color,alpha:i})}});const{invalidationCount:s,draw:a}=n;if(s>0&&a){const h=Math.min(s/20,1),c=A[bA.Margin],g=Cl([255,255,0],[255,0,0],h);this.heatGraphics.rect(c.outer.x,c.outer.y,c.outer.width,c.outer.height),this.heatGraphics.fill({color:g,alpha:Math.min(.3,h)}),this.heatGraphics.stroke({color:g,alpha:Math.max(.3,h),pixelLine:!0})}this.position.set(t.x,t.y)}reset(){this.graphics.forEach(A=>A.clear()),this.heatGraphics.clear(),this.removeFromParent()}drawCutBox(A,t,i,n,s){const{x:a,y:r,width:h,height:c}=t,{x:B,y:o,width:g,height:l}=i;A.rect(a,r,h,c),A.fill({color:n,alpha:s}),A.rect(B,o,g,l),A.cut()}}var fl=Object.defineProperty,dl=(e,A,t)=>A in e?fl(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t,me=(e,A,t)=>dl(e,typeof A!="symbol"?A+"":A,t);class pl{constructor(){me(this,"holder",new m.Container),me(this,"regions",new Map),me(this,"colors",{[bA.Margin]:"#B68655",[bA.Padding]:"#BAC57F",[bA.Border]:"#E7C583",[bA.Content]:"#89B1BE",[bA.Flex]:"#6E28D9"}),me(this,"alpha",.75),Object.values(bA).forEach(A=>{this.regions.set(A,{outer:new m.Rectangle,inner:new m.Rectangle})}),this.holder.__devtoolIgnore=!0,this.holder.__devtoolIgnoreChildren=!0,this.holder.eventMode="none",this.holder.interactiveChildren=!1}reset(){for(let A=this.holder.children.length-1;A>=0;A--){const t=this.holder.children[A];m.BigPool.return(t)}}render(A){Il(A,this.regions);const t=Object.values(bA).reduce((r,h)=>{const c=this.regions.get(h);if(!c)return r;const B=`debugDraw${h.charAt(0).toUpperCase()}${h.slice(1)}`;return r[h]={...c,color:this.colors[h],draw:A._styles.custom[B]??!0},r},{}),{left:i,top:n}=A.computedLayout,s=A.target.getGlobalPosition(),a=m.BigPool.get(Ql,{...t,target:{x:s.x+i,y:s.y+n},alpha:this.alpha,heat:{invalidationCount:A._modificationCount,draw:A._styles.custom.debugHeat!==!1},heatOnly:!A._styles.custom.debug});this.holder.addChildAt(a,0)}destroy(){this.reset(),this.holder.destroy(),this.regions.clear()}}const yl=Object.freeze(Object.defineProperty({__proto__:null,DebugRenderer:pl},Symbol.toStringTag,{value:"Module"}));m.extensions.add(uo);const wl=async(e,A,t)=>{const i=new m.Application;await i.init({resizeTo:e,autoStart:!1,antialias:!0,...t??{}});const n=await RA(A);if(n.tag!="Canvas")throw new Error("Canvas is required");n.render(e,i);const{backgroundColor:s}=aA(n.props,{backgroundColor:"black"});return i.renderer.background.color=s(),{canvasElement:n,app:i}},ml={linear:Ja,easeIn:Ii,easeInOut:Rs,easeOut:Ka,circIn:Fs,circInOut:Ya,circOut:Gs,backIn:Bi,backInOut:Xa,backOut:Wa,anticipate:Va,bounceIn:ja,bounceInOut:$a,bounceOut:le};class Dl{constructor(A,t,i,n,s,a,r=0){this.x0=A,this.y0=t,this.x1=i,this.y1=n,this.x2=s,this.y2=a,this.focalPoint=r,this.gradient=null,this.texture=null,this.size=600,this.size=A;const h=this.size*.5;this.canvas=m.DOMAdapter.get().createCanvas(),this.canvas.width=this.size,this.canvas.height=this.size,this.ctx=this.canvas.getContext("2d"),this.ctx&&(this.gradient=this.ctx.createRadialGradient(h*(1-r),h,0,h,h,h-.5))}addColorStop(A,t){this.gradient&&this.gradient.addColorStop(A,t)}render({translate:A}={}){const{x0:t,y0:i,x1:n,y1:s,x2:a,y2:r,focalPoint:h}=this,c=this.size;if(this.ctx&&this.gradient){this.ctx.fillStyle=this.gradient,this.ctx.fillRect(0,0,c,c),this.texture=new m.Texture({source:new m.ImageSource({resource:this.canvas,addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})});const B=new m.Matrix,o=Math.sqrt((n-t)*(n-t)+(s-i)*(s-i)),g=Math.sqrt((a-t)*(a-t)+(r-i)*(r-i)),l=Math.atan2(s-i,n-t),E=o/c,C=g/c;B.rotate(-l),B.scale(E,C),A&&B.translate(A.x,A.y),this.transform=B}return{texture:this.texture,matrix:this.transform}}}return S.ArraySubject=Rt,S.Button=Gh,S.ButtonState=ro,S.Canvas=dg,S.Circle=wg,S.Container=ue,S.ControlsBase=Xe,S.ControlsDirective=ts,S.DOMContainer=Fh,S.DOMElement=oo,S.DisplayObject=uA,S.Drag=Ts,S.Drop=Os,S.EVENTS=Ws,S.Easing=ml,S.Ellipse=mg,S.Flash=Ys,S.GamepadControls=As,S.Graphics=lt,S.Howl=ha,S.Howler=ZA.Howler,S.Input=Vn,S.KeyboardControls=zn,S.Mesh=bg,S.NineSliceSprite=kh,S.ObjectSubject=Ft,S.ParticlesEmitter=Tg,S.RadialGradient=Dl,S.Rect=Vs,S.Scene=kg,S.Scheduler=es,S.Shake=Ks,S.Sound=os,S.Sprite=to,S.Svg=vg,S.Text=eo,S.TilingSprite=Xg,S.Transition=Js,S.Triangle=Dg,S.Utils=Wr,S.Video=Kg,S.Viewport=bh,S.ViewportFollow=ns,S.animatedSequence=Qg,S.animatedSignal=Qi,S.bootstrapCanvas=wl,S.computed=MA,S.cond=aa,S.createComponent=rA,S.effect=AA,S.h=RA,S.isAnimatedSignal=Ci,S.isArraySubject=na,S.isComputed=oe,S.isElement=wA,S.isObjectSubject=sa,S.isObservable=br,S.isPrimitive=$e,S.isSignal=J,S.isTrigger=Ot,S.loop=ra,S.mount=fi,S.on=Be,S.registerComponent=sA,S.signal=W,S.tick=xg,S.trigger=Cg,S.useDefineProps=Ai,S.useProps=aA,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"}),S}({},PIXI);
|
|
29
29
|
//# sourceMappingURL=index.global.js.map
|