canvasengine 2.0.0-beta.44 → 2.0.0-beta.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- var CanvasEngine=(function(k,v){"use strict";var xe,ke;var PA=typeof document<"u"?document.currentScript:null;function ur(A){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(A){for(const e in A)if(e!=="default"){const i=Object.getOwnPropertyDescriptor(A,e);Object.defineProperty(t,e,i.get?i:{enumerable:!0,get:()=>A[e]})}}return t.default=A,Object.freeze(t)}function Ir(A,t){for(var e=0;e<t.length;e++){const i=t[e];if(typeof i!="string"&&!Array.isArray(i)){for(const n in i)if(n!=="default"&&!(n in A)){const s=Object.getOwnPropertyDescriptor(i,n);s&&Object.defineProperty(A,n,s.get?s:{enumerable:!0,get:()=>i[n]})}}}return Object.freeze(Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}))}const fr=ur(v);var JA=function(A,t){return JA=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,i){e.__proto__=i}||function(e,i){for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])},JA(A,t)};function zt(A,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");JA(A,t);function e(){this.constructor=A}A.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}function Br(A,t,e,i){function n(s){return s instanceof e?s:new e(function(r){r(s)})}return new(e||(e=Promise))(function(s,r){function a(B){try{c(i.next(B))}catch(o){r(o)}}function g(B){try{c(i.throw(B))}catch(o){r(o)}}function c(B){B.done?s(B.value):n(B.value).then(a,g)}c((i=i.apply(A,t||[])).next())})}function kn(A,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},i,n,s,r=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return r.next=a(0),r.throw=a(1),r.return=a(2),typeof Symbol=="function"&&(r[Symbol.iterator]=function(){return this}),r;function a(c){return function(B){return g([c,B])}}function g(c){if(i)throw new TypeError("Generator is already executing.");for(;r&&(r=0,c[0]&&(e=0)),e;)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 e.label++,{value:c[1],done:!1};case 5:e.label++,n=c[1],c=[0];continue;case 7:c=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){e=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){e.label=c[1];break}if(c[0]===6&&e.label<s[1]){e.label=s[1],s=c;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(c);break}s[2]&&e.ops.pop(),e.trys.pop();continue}c=t.call(A,e)}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 ce(A){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&A[t],i=0;if(e)return e.call(A);if(A&&typeof A.length=="number")return{next:function(){return A&&i>=A.length&&(A=void 0),{value:A&&A[i++],done:!A}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Fe(A,t){var e=typeof Symbol=="function"&&A[Symbol.iterator];if(!e)return A;var i=e.call(A),n,s=[],r;try{for(;(t===void 0||t-- >0)&&!(n=i.next()).done;)s.push(n.value)}catch(a){r={error:a}}finally{try{n&&!n.done&&(e=i.return)&&e.call(i)}finally{if(r)throw r.error}}return s}function Ge(A,t,e){if(e||arguments.length===2)for(var i=0,n=t.length,s;i<n;i++)(s||!(i in t))&&(s||(s=Array.prototype.slice.call(t,0,i)),s[i]=t[i]);return A.concat(s||Array.prototype.slice.call(t))}function he(A){return this instanceof he?(this.v=A,this):new he(A)}function Er(A,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=e.apply(A,t||[]),n,s=[];return n=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",r),n[Symbol.asyncIterator]=function(){return this},n;function r(h){return function(f){return Promise.resolve(f).then(h,o)}}function a(h,f){i[h]&&(n[h]=function(E){return new Promise(function(d,C){s.push([h,E,d,C])>1||g(h,E)})},f&&(n[h]=f(n[h])))}function g(h,f){try{c(i[h](f))}catch(E){l(s[0][3],E)}}function c(h){h.value instanceof he?Promise.resolve(h.value.v).then(B,o):l(s[0][2],h)}function B(h){g("next",h)}function o(h){g("throw",h)}function l(h,f){h(f),s.shift(),s.length&&g(s[0][0],s[0][1])}}function Cr(A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=A[Symbol.asyncIterator],e;return t?t.call(A):(A=typeof ce=="function"?ce(A):A[Symbol.iterator](),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(s){e[s]=A[s]&&function(r){return new Promise(function(a,g){r=A[s](r),n(a,g,r.done,r.value)})}}function n(s,r,a,g){Promise.resolve(g).then(function(c){s({value:c,done:a})},r)}}typeof SuppressedError=="function"&&SuppressedError;function et(A){return typeof A=="function"}function Mn(A){var t=function(i){Error.call(i),i.stack=new Error().stack},e=A(t);return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}var KA=Mn(function(A){return function(e){A(this),this.message=e?e.length+` errors occurred during unsubscription:
1
+ var CanvasEngine=(function(k,v){"use strict";var xe,ke;var YA=typeof document<"u"?document.currentScript:null;function Br(A){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(A){for(const e in A)if(e!=="default"){const i=Object.getOwnPropertyDescriptor(A,e);Object.defineProperty(t,e,i.get?i:{enumerable:!0,get:()=>A[e]})}}return t.default=A,Object.freeze(t)}function Er(A,t){for(var e=0;e<t.length;e++){const i=t[e];if(typeof i!="string"&&!Array.isArray(i)){for(const n in i)if(n!=="default"&&!(n in A)){const s=Object.getOwnPropertyDescriptor(i,n);s&&Object.defineProperty(A,n,s.get?s:{enumerable:!0,get:()=>i[n]})}}}return Object.freeze(Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}))}const Cr=Br(v);var WA=function(A,t){return WA=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,i){e.__proto__=i}||function(e,i){for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])},WA(A,t)};function $t(A,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");WA(A,t);function e(){this.constructor=A}A.prototype=t===null?Object.create(t):(e.prototype=t.prototype,new e)}function dr(A,t,e,i){function n(s){return s instanceof e?s:new e(function(r){r(s)})}return new(e||(e=Promise))(function(s,r){function a(u){try{c(i.next(u))}catch(o){r(o)}}function g(u){try{c(i.throw(u))}catch(o){r(o)}}function c(u){u.done?s(u.value):n(u.value).then(a,g)}c((i=i.apply(A,t||[])).next())})}function Rn(A,t){var e={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},i,n,s,r=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return r.next=a(0),r.throw=a(1),r.return=a(2),typeof Symbol=="function"&&(r[Symbol.iterator]=function(){return this}),r;function a(c){return function(u){return g([c,u])}}function g(c){if(i)throw new TypeError("Generator is already executing.");for(;r&&(r=0,c[0]&&(e=0)),e;)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 e.label++,{value:c[1],done:!1};case 5:e.label++,n=c[1],c=[0];continue;case 7:c=e.ops.pop(),e.trys.pop();continue;default:if(s=e.trys,!(s=s.length>0&&s[s.length-1])&&(c[0]===6||c[0]===2)){e=0;continue}if(c[0]===3&&(!s||c[1]>s[0]&&c[1]<s[3])){e.label=c[1];break}if(c[0]===6&&e.label<s[1]){e.label=s[1],s=c;break}if(s&&e.label<s[2]){e.label=s[2],e.ops.push(c);break}s[2]&&e.ops.pop(),e.trys.pop();continue}c=t.call(A,e)}catch(u){c=[6,u],n=0}finally{i=s=0}if(c[0]&5)throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}function ce(A){var t=typeof Symbol=="function"&&Symbol.iterator,e=t&&A[t],i=0;if(e)return e.call(A);if(A&&typeof A.length=="number")return{next:function(){return A&&i>=A.length&&(A=void 0),{value:A&&A[i++],done:!A}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Fe(A,t){var e=typeof Symbol=="function"&&A[Symbol.iterator];if(!e)return A;var i=e.call(A),n,s=[],r;try{for(;(t===void 0||t-- >0)&&!(n=i.next()).done;)s.push(n.value)}catch(a){r={error:a}}finally{try{n&&!n.done&&(e=i.return)&&e.call(i)}finally{if(r)throw r.error}}return s}function Ge(A,t,e){if(e||arguments.length===2)for(var i=0,n=t.length,s;i<n;i++)(s||!(i in t))&&(s||(s=Array.prototype.slice.call(t,0,i)),s[i]=t[i]);return A.concat(s||Array.prototype.slice.call(t))}function he(A){return this instanceof he?(this.v=A,this):new he(A)}function Qr(A,t,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=e.apply(A,t||[]),n,s=[];return n=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",r),n[Symbol.asyncIterator]=function(){return this},n;function r(h){return function(B){return Promise.resolve(B).then(h,o)}}function a(h,B){i[h]&&(n[h]=function(E){return new Promise(function(d,C){s.push([h,E,d,C])>1||g(h,E)})},B&&(n[h]=B(n[h])))}function g(h,B){try{c(i[h](B))}catch(E){l(s[0][3],E)}}function c(h){h.value instanceof he?Promise.resolve(h.value.v).then(u,o):l(s[0][2],h)}function u(h){g("next",h)}function o(h){g("throw",h)}function l(h,B){h(B),s.shift(),s.length&&g(s[0][0],s[0][1])}}function pr(A){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=A[Symbol.asyncIterator],e;return t?t.call(A):(A=typeof ce=="function"?ce(A):A[Symbol.iterator](),e={},i("next"),i("throw"),i("return"),e[Symbol.asyncIterator]=function(){return this},e);function i(s){e[s]=A[s]&&function(r){return new Promise(function(a,g){r=A[s](r),n(a,g,r.done,r.value)})}}function n(s,r,a,g){Promise.resolve(g).then(function(c){s({value:c,done:a})},r)}}typeof SuppressedError=="function"&&SuppressedError;function et(A){return typeof A=="function"}function _n(A){var t=function(i){Error.call(i),i.stack=new Error().stack},e=A(t);return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}var jA=_n(function(A){return function(e){A(this),this.message=e?e.length+` errors occurred during unsubscription:
2
2
  `+e.map(function(i,n){return n+1+") "+i.toString()}).join(`
3
- `):"",this.name="UnsubscriptionError",this.errors=e}});function YA(A,t){if(A){var e=A.indexOf(t);0<=e&&A.splice(e,1)}}var nA=(function(){function A(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return A.prototype.unsubscribe=function(){var t,e,i,n,s;if(!this.closed){this.closed=!0;var r=this._parentage;if(r)if(this._parentage=null,Array.isArray(r))try{for(var a=ce(r),g=a.next();!g.done;g=a.next()){var c=g.value;c.remove(this)}}catch(E){t={error:E}}finally{try{g&&!g.done&&(e=a.return)&&e.call(a)}finally{if(t)throw t.error}}else r.remove(this);var B=this.initialTeardown;if(et(B))try{B()}catch(E){s=E instanceof KA?E.errors:[E]}var o=this._finalizers;if(o){this._finalizers=null;try{for(var l=ce(o),h=l.next();!h.done;h=l.next()){var f=h.value;try{Fn(f)}catch(E){s=s??[],E instanceof KA?s=Ge(Ge([],Fe(s)),Fe(E.errors)):s.push(E)}}}catch(E){i={error:E}}finally{try{h&&!h.done&&(n=l.return)&&n.call(l)}finally{if(i)throw i.error}}}if(s)throw new KA(s)}},A.prototype.add=function(t){var e;if(t&&t!==this)if(this.closed)Fn(t);else{if(t instanceof A){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(e=this._finalizers)!==null&&e!==void 0?e:[]).push(t)}},A.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},A.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},A.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&YA(e,t)},A.prototype.remove=function(t){var e=this._finalizers;e&&YA(e,t),t instanceof A&&t._removeParent(this)},A.EMPTY=(function(){var t=new A;return t.closed=!0,t})(),A})(),Rn=nA.EMPTY;function _n(A){return A instanceof nA||A&&"closed"in A&&et(A.remove)&&et(A.add)&&et(A.unsubscribe)}function Fn(A){et(A)?A():A.unsubscribe()}var dr={Promise:void 0},Qr={setTimeout:function(A,t){for(var e=[],i=2;i<arguments.length;i++)e[i-2]=arguments[i];return setTimeout.apply(void 0,Ge([A,t],Fe(e)))},clearTimeout:function(A){return clearTimeout(A)},delegate:void 0};function Gn(A){Qr.setTimeout(function(){throw A})}function Nn(){}function sA(A){A()}var WA=(function(A){zt(t,A);function t(e){var i=A.call(this)||this;return i.isStopped=!1,e?(i.destination=e,_n(e)&&e.add(i)):i.destination=wr,i}return t.create=function(e,i,n){return new Ne(e,i,n)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,A.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t})(nA),pr=(function(){function A(t){this.partialObserver=t}return A.prototype.next=function(t){var e=this.partialObserver;if(e.next)try{e.next(t)}catch(i){oA(i)}},A.prototype.error=function(t){var e=this.partialObserver;if(e.error)try{e.error(t)}catch(i){oA(i)}else oA(t)},A.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(e){oA(e)}},A})(),Ne=(function(A){zt(t,A);function t(e,i,n){var s=A.call(this)||this,r;return et(e)||!e?r={next:e??void 0,error:i??void 0,complete:n??void 0}:r=e,s.destination=new pr(r),s}return t})(WA);function oA(A){Gn(A)}function yr(A){throw A}var wr={closed:!0,next:Nn,error:yr,complete:Nn},jA=(function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"})();function VA(A){return A}function mr(A){return A.length===0?VA:A.length===1?A[0]:function(e){return A.reduce(function(i,n){return n(i)},e)}}var z=(function(){function A(t){t&&(this._subscribe=t)}return A.prototype.lift=function(t){var e=new A;return e.source=this,e.operator=t,e},A.prototype.subscribe=function(t,e,i){var n=this,s=vr(t)?t:new Ne(t,e,i);return sA(function(){var r=n,a=r.operator,g=r.source;s.add(a?a.call(s,g):g?n._subscribe(s):n._trySubscribe(s))}),s},A.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},A.prototype.forEach=function(t,e){var i=this;return e=Hn(e),new e(function(n,s){var r=new Ne({next:function(a){try{t(a)}catch(g){s(g),r.unsubscribe()}},error:s,complete:n});i.subscribe(r)})},A.prototype._subscribe=function(t){var e;return(e=this.source)===null||e===void 0?void 0:e.subscribe(t)},A.prototype[jA]=function(){return this},A.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return mr(t)(this)},A.prototype.toPromise=function(t){var e=this;return t=Hn(t),new t(function(i,n){var s;e.subscribe(function(r){return s=r},function(r){return n(r)},function(){return i(s)})})},A.create=function(t){return new A(t)},A})();function Hn(A){var t;return(t=A??dr.Promise)!==null&&t!==void 0?t:Promise}function Dr(A){return A&&et(A.next)&&et(A.error)&&et(A.complete)}function vr(A){return A&&A instanceof WA||Dr(A)&&_n(A)}function br(A){return et(A?.lift)}function ue(A){return function(t){if(br(t))return t.lift(function(e){try{return A(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function rA(A,t,e,i,n){return new Sr(A,t,e,i,n)}var Sr=(function(A){zt(t,A);function t(e,i,n,s,r,a){var g=A.call(this,e)||this;return g.onFinalize=r,g.shouldUnsubscribe=a,g._next=i?function(c){try{i(c)}catch(B){e.error(B)}}:A.prototype._next,g._error=s?function(c){try{s(c)}catch(B){e.error(B)}finally{this.unsubscribe()}}:A.prototype._error,g._complete=n?function(){try{n()}catch(c){e.error(c)}finally{this.unsubscribe()}}:A.prototype._complete,g}return t.prototype.unsubscribe=function(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var i=this.closed;A.prototype.unsubscribe.call(this),!i&&((e=this.onFinalize)===null||e===void 0||e.call(this))}},t})(WA),xr=Mn(function(A){return function(){A(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),$t=(function(A){zt(t,A);function t(){var e=A.call(this)||this;return e.closed=!1,e.currentObservers=null,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return t.prototype.lift=function(e){var i=new Ln(this,this);return i.operator=e,i},t.prototype._throwIfClosed=function(){if(this.closed)throw new xr},t.prototype.next=function(e){var i=this;sA(function(){var n,s;if(i._throwIfClosed(),!i.isStopped){i.currentObservers||(i.currentObservers=Array.from(i.observers));try{for(var r=ce(i.currentObservers),a=r.next();!a.done;a=r.next()){var g=a.value;g.next(e)}}catch(c){n={error:c}}finally{try{a&&!a.done&&(s=r.return)&&s.call(r)}finally{if(n)throw n.error}}}})},t.prototype.error=function(e){var i=this;sA(function(){if(i._throwIfClosed(),!i.isStopped){i.hasError=i.isStopped=!0,i.thrownError=e;for(var n=i.observers;n.length;)n.shift().error(e)}})},t.prototype.complete=function(){var e=this;sA(function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var i=e.observers;i.length;)i.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return((e=this.observers)===null||e===void 0?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(e){return this._throwIfClosed(),A.prototype._trySubscribe.call(this,e)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var i=this,n=this,s=n.hasError,r=n.isStopped,a=n.observers;return s||r?Rn:(this.currentObservers=null,a.push(e),new nA(function(){i.currentObservers=null,YA(a,e)}))},t.prototype._checkFinalizedStatuses=function(e){var i=this,n=i.hasError,s=i.thrownError,r=i.isStopped;n?e.error(s):r&&e.complete()},t.prototype.asObservable=function(){var e=new z;return e.source=this,e},t.create=function(e,i){return new Ln(e,i)},t})(z),Ln=(function(A){zt(t,A);function t(e,i){var n=A.call(this)||this;return n.destination=e,n.source=i,n}return t.prototype.next=function(e){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.next)===null||n===void 0||n.call(i,e)},t.prototype.error=function(e){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.error)===null||n===void 0||n.call(i,e)},t.prototype.complete=function(){var e,i;(i=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||i===void 0||i.call(e)},t.prototype._subscribe=function(e){var i,n;return(n=(i=this.source)===null||i===void 0?void 0:i.subscribe(e))!==null&&n!==void 0?n:Rn},t})($t),te=(function(A){zt(t,A);function t(e){var i=A.call(this)||this;return i._value=e,i}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(e){var i=A.prototype._subscribe.call(this,e);return!i.closed&&e.next(this._value),i},t.prototype.getValue=function(){var e=this,i=e.hasError,n=e.thrownError,s=e._value;if(i)throw n;return this._throwIfClosed(),s},t.prototype.next=function(e){A.prototype.next.call(this,this._value=e)},t})($t),Un={now:function(){return(Un.delegate||Date).now()},delegate:void 0},kr=(function(A){zt(t,A);function t(e,i,n){e===void 0&&(e=1/0),i===void 0&&(i=1/0),n===void 0&&(n=Un);var s=A.call(this)||this;return s._bufferSize=e,s._windowTime=i,s._timestampProvider=n,s._buffer=[],s._infiniteTimeWindow=!0,s._infiniteTimeWindow=i===1/0,s._bufferSize=Math.max(1,e),s._windowTime=Math.max(1,i),s}return t.prototype.next=function(e){var i=this,n=i.isStopped,s=i._buffer,r=i._infiniteTimeWindow,a=i._timestampProvider,g=i._windowTime;n||(s.push(e),!r&&s.push(a.now()+g)),this._trimBuffer(),A.prototype.next.call(this,e)},t.prototype._subscribe=function(e){this._throwIfClosed(),this._trimBuffer();for(var i=this._innerSubscribe(e),n=this,s=n._infiniteTimeWindow,r=n._buffer,a=r.slice(),g=0;g<a.length&&!e.closed;g+=s?1:2)e.next(a[g]);return this._checkFinalizedStatuses(e),i},t.prototype._trimBuffer=function(){var e=this,i=e._bufferSize,n=e._timestampProvider,s=e._buffer,r=e._infiniteTimeWindow,a=(r?1:2)*i;if(i<1/0&&a<s.length&&s.splice(0,s.length-a),!r){for(var g=n.now(),c=0,B=1;B<s.length&&s[B]<=g;B+=2)c=B;c&&s.splice(0,c+1)}},t})($t);function Mr(A){return A&&et(A.schedule)}function Tn(A){return A[A.length-1]}function Rr(A){return et(Tn(A))?A.pop():void 0}function _r(A){return Mr(Tn(A))?A.pop():void 0}var On=(function(A){return A&&typeof A.length=="number"&&typeof A!="function"});function Pn(A){return et(A?.then)}function Jn(A){return et(A[jA])}function Kn(A){return Symbol.asyncIterator&&et(A?.[Symbol.asyncIterator])}function Yn(A){return new TypeError("You provided "+(A!==null&&typeof A=="object"?"an invalid object":"'"+A+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Fr(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Wn=Fr();function jn(A){return et(A?.[Wn])}function Vn(A){return Er(this,arguments,function(){var e,i,n,s;return kn(this,function(r){switch(r.label){case 0:e=A.getReader(),r.label=1;case 1:r.trys.push([1,,9,10]),r.label=2;case 2:return[4,he(e.read())];case 3:return i=r.sent(),n=i.value,s=i.done,s?[4,he(void 0)]:[3,5];case 4:return[2,r.sent()];case 5:return[4,he(n)];case 6:return[4,r.sent()];case 7:return r.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}})})}function qn(A){return et(A?.getReader)}function Ie(A){if(A instanceof z)return A;if(A!=null){if(Jn(A))return Gr(A);if(On(A))return Nr(A);if(Pn(A))return Hr(A);if(Kn(A))return Xn(A);if(jn(A))return Lr(A);if(qn(A))return Ur(A)}throw Yn(A)}function Gr(A){return new z(function(t){var e=A[jA]();if(et(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Nr(A){return new z(function(t){for(var e=0;e<A.length&&!t.closed;e++)t.next(A[e]);t.complete()})}function Hr(A){return new z(function(t){A.then(function(e){t.closed||(t.next(e),t.complete())},function(e){return t.error(e)}).then(null,Gn)})}function Lr(A){return new z(function(t){var e,i;try{for(var n=ce(A),s=n.next();!s.done;s=n.next()){var r=s.value;if(t.next(r),t.closed)return}}catch(a){e={error:a}}finally{try{s&&!s.done&&(i=n.return)&&i.call(n)}finally{if(e)throw e.error}}t.complete()})}function Xn(A){return new z(function(t){Tr(A,t).catch(function(e){return t.error(e)})})}function Ur(A){return Xn(Vn(A))}function Tr(A,t){var e,i,n,s;return Br(this,void 0,void 0,function(){var r,a;return kn(this,function(g){switch(g.label){case 0:g.trys.push([0,5,6,11]),e=Cr(A),g.label=1;case 1:return[4,e.next()];case 2:if(i=g.sent(),!!i.done)return[3,4];if(r=i.value,t.next(r),t.closed)return[2];g.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=g.sent(),n={error:a},[3,11];case 6:return g.trys.push([6,,9,10]),i&&!i.done&&(s=e.return)?[4,s.call(e)]:[3,8];case 7:g.sent(),g.label=8;case 8:return[3,10];case 9:if(n)throw n.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function Wt(A,t,e,i,n){i===void 0&&(i=0),n===void 0&&(n=!1);var s=t.schedule(function(){e(),n?A.add(this.schedule(null,i)):this.unsubscribe()},i);if(A.add(s),!n)return s}function Zn(A,t){return t===void 0&&(t=0),ue(function(e,i){e.subscribe(rA(i,function(n){return Wt(i,A,function(){return i.next(n)},t)},function(){return Wt(i,A,function(){return i.complete()},t)},function(n){return Wt(i,A,function(){return i.error(n)},t)}))})}function zn(A,t){return t===void 0&&(t=0),ue(function(e,i){i.add(A.schedule(function(){return e.subscribe(i)},t))})}function Or(A,t){return Ie(A).pipe(zn(t),Zn(t))}function Pr(A,t){return Ie(A).pipe(zn(t),Zn(t))}function Jr(A,t){return new z(function(e){var i=0;return t.schedule(function(){i===A.length?e.complete():(e.next(A[i++]),e.closed||this.schedule())})})}function Kr(A,t){return new z(function(e){var i;return Wt(e,t,function(){i=A[Wn](),Wt(e,t,function(){var n,s,r;try{n=i.next(),s=n.value,r=n.done}catch(a){e.error(a);return}r?e.complete():e.next(s)},0,!0)}),function(){return et(i?.return)&&i.return()}})}function $n(A,t){if(!A)throw new Error("Iterable cannot be null");return new z(function(e){Wt(e,t,function(){var i=A[Symbol.asyncIterator]();Wt(e,t,function(){i.next().then(function(n){n.done?e.complete():e.next(n.value)})},0,!0)})})}function Yr(A,t){return $n(Vn(A),t)}function Wr(A,t){if(A!=null){if(Jn(A))return Or(A,t);if(On(A))return Jr(A,t);if(Pn(A))return Pr(A,t);if(Kn(A))return $n(A,t);if(jn(A))return Kr(A,t);if(qn(A))return Yr(A,t)}throw Yn(A)}function aA(A,t){return t?Wr(A,t):Ie(A)}function jr(A){return!!A&&(A instanceof z||et(A.lift)&&et(A.subscribe))}function qA(A,t){return ue(function(e,i){var n=0;e.subscribe(rA(i,function(s){i.next(A.call(t,s,n++))}))})}var Vr=Array.isArray;function qr(A,t){return Vr(t)?A.apply(void 0,Ge([],Fe(t))):A(t)}function Xr(A){return qA(function(t){return qr(A,t)})}var Zr=Array.isArray,zr=Object.getPrototypeOf,$r=Object.prototype,ta=Object.keys;function ea(A){if(A.length===1){var t=A[0];if(Zr(t))return{args:t,keys:null};if(Aa(t)){var e=ta(t);return{args:e.map(function(i){return t[i]}),keys:e}}}return{args:A,keys:null}}function Aa(A){return A&&typeof A=="object"&&zr(A)===$r}function ia(A,t){return A.reduce(function(e,i,n){return e[i]=t[n],e},{})}function XA(){for(var A=[],t=0;t<arguments.length;t++)A[t]=arguments[t];var e=_r(A),i=Rr(A),n=ea(A),s=n.args,r=n.keys;if(s.length===0)return aA([],e);var a=new z(na(s,e,r?function(g){return ia(r,g)}:VA));return i?a.pipe(Xr(i)):a}function na(A,t,e){return e===void 0&&(e=VA),function(i){ts(t,function(){for(var n=A.length,s=new Array(n),r=n,a=n,g=function(B){ts(t,function(){var o=aA(A[B],t),l=!1;o.subscribe(rA(i,function(h){s[B]=h,l||(l=!0,a--),a||i.next(e(s.slice()))},function(){--r||i.complete()}))},i)},c=0;c<n;c++)g(c)},i)}}function ts(A,t,e){A?Wt(e,A,t):t()}function sa(A){return new z(function(t){Ie(A()).subscribe(t)})}function He(A,t){return ue(function(e,i){var n=0;e.subscribe(rA(i,function(s){return A.call(t,s,n++)&&i.next(s)}))})}function oa(A){return ue(function(t,e){try{t.subscribe(e)}finally{e.add(A)}})}function es(A){A===void 0&&(A={});var t=A.connector,e=t===void 0?function(){return new $t}:t,i=A.resetOnError,n=i===void 0?!0:i,s=A.resetOnComplete,r=s===void 0?!0:s,a=A.resetOnRefCountZero,g=a===void 0?!0:a;return function(c){var B,o,l,h=0,f=!1,E=!1,d=function(){o?.unsubscribe(),o=void 0},C=function(){d(),B=l=void 0,f=E=!1},y=function(){var m=B;C(),m?.unsubscribe()};return ue(function(m,b){h++,!E&&!f&&d();var M=l=l??e();b.add(function(){h--,h===0&&!E&&!f&&(o=ZA(y,g))}),M.subscribe(b),!B&&h>0&&(B=new Ne({next:function(G){return M.next(G)},error:function(G){E=!0,d(),o=ZA(C,n,G),M.error(G)},complete:function(){f=!0,d(),o=ZA(C,r),M.complete()}}),Ie(m).subscribe(B))})(c)}}function ZA(A,t){for(var e=[],i=2;i<arguments.length;i++)e[i-2]=arguments[i];if(t===!0){A();return}if(t!==!1){var n=new Ne({next:function(){n.unsubscribe(),A()}});return Ie(t.apply(void 0,Ge([],Fe(e)))).subscribe(n)}}function ra(A,t,e){var i,n,s,r,a=!1;return A&&typeof A=="object"?(i=A.bufferSize,r=i===void 0?1/0:i,n=A.windowTime,t=n===void 0?1/0:n,s=A.refCount,a=s===void 0?!1:s,e=A.scheduler):r=A??1/0,es({connector:function(){return new kr(r,t,e)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:a})}function As(){return typeof window<"u"}function fe(){return typeof performance<"u"?performance.now():Date.now()}function Le(A){return 1e3/A}function ee(A){return A&&A instanceof Promise}function lA(A,t){if(A.length!==t.length)return!1;for(let e=0;e<A.length;e++){const i=A[e],n=t[e];if(typeof i=="object"&&i!==null){if(typeof n!="object"||n===null)return!1;if(Array.isArray(i)){if(!Array.isArray(n)||!lA(i,n))return!1}else if(!is(i,n))return!1}else if(i!==n)return!1}return!0}function is(A,t){const e=Object.keys(A),i=Object.keys(t);if(e.length!==i.length)return!1;for(let n of e)if(!t.hasOwnProperty(n)||!aa(A[n],t[n]))return!1;return!0}function aa(A,t){return A===t?!0:typeof A!=typeof t?!1:typeof A=="object"&&A!==null?Array.isArray(A)?Array.isArray(t)&&lA(A,t):is(A,t):!1}function ns(A){return{}.toString.call(A)==="[object Function]"}function gA(A){return typeof A=="object"&&A!=null&&!Array.isArray(A)&&A.constructor===Object}function ss(A){return A instanceof z}function zA(A,t,e,i=!1){if(Object(A)!==A)return A;typeof t=="string"&&(t=t.split("."));let n=t.length;if(!n)return A;let s=A;for(let r=0;r<n-1;r++){let a=t[r],g=t[r+1],c=!isNaN(Number(g))&&isFinite(Number(g));(!s[a]||typeof s[a]!="object")&&(s[a]=c&&!i?[]:{}),s=s[a]}return s[t[n-1]]=e,A}function la(A,t){const e=t.split(".");let i=A;for(let n of e){if(i[n]===void 0)return;i=i[n]}return i}function ga(A){console.log(A)}function $A(A){console.error(A)}function Ae(A,t){typeof t=="number"?A.set(t):Array.isArray(t)?A.set(t[0],t[1]):gA(t)&&"value"in t?A.set(t.value.x,t.value.y):A.set(t.x,t.y)}function os(A,t,e,i){const n=A-e,s=t-i;return Math.sqrt(n*n+s*s)}const ca=Object.freeze(Object.defineProperty({__proto__:null,arrayEquals:lA,calculateDistance:os,error:$A,fps2ms:Le,get:la,isBrowser:As,isFunction:ns,isObject:gA,isObservable:ss,isPromise:ee,log:ga,preciseNow:fe,set:zA,setObservablePoint:Ae},Symbol.toStringTag,{value:"Module"}));class cA{constructor(){this.boundKeys={},this.stop=!1,this._controlsOptions={},this.serverFps=60}start(){this.setupListeners(),this.interval=setInterval(()=>{this.preStep()},Le(this.serverFps??60))}destroy(){this.interval&&clearInterval(this.interval),this.cleanup()}bindKey(t,e,i,n){Array.isArray(t)||(t=[t]);const s=Object.assign({repeat:!1},i);t.forEach(r=>{this.boundKeys[r]={actionName:e,options:s,parameters:n}})}applyInput(t){const e=this.boundKeys[t];if(!e)return;const{repeat:i,keyDown:n}=e.options;if(n){let s=e.parameters;typeof s=="function"&&(s=s()),n(e)}}getControl(t){return this.boundKeys[t]}getControls(){return this.boundKeys}stopInputs(){this.stop=!0}listenInputs(){this.stop=!1}setInputs(t){if(t){this.boundKeys={};for(let e in t){const i=t[e],{bind:n}=i;let s=n;Array.isArray(s)||(s=[n]);for(let r of s)this.bindKey(r,e,i)}this._controlsOptions=t}}get options(){return this._controlsOptions}}var rs=(A=>(A.Break="break",A.Backspace="backspace",A.Tab="tab",A.Clear="clear",A.Enter="enter",A.Shift="shift",A.Ctrl="ctrl",A.Alt="alt",A.Pause="pause/break",A.CapsLock="caps lock",A.Escape="escape",A.Conversion="conversion",A.NonConversion="non-conversion",A.Space="space",A.PageUp="page up",A.PageDown="page down",A.End="end",A.Home="home",A[A.Left=4]="Left",A[A.Up=1]="Up",A[A.Right=2]="Right",A[A.Down=3]="Down",A.Select="select",A.Print="print",A.Execute="execute",A.PrintScreen="Print Screen",A.Insert="insert",A.Delete="delete",A.Zero="0",A.One="1",A.Two="2",A.Three="3",A.Four="4",A.Five="5",A.Six="6",A.Seven="7",A.Height="8",A.Nine="9",A.Equal="=",A.Semicolon="semicolon (firefox), equals",A.LessThan="<",A.Equals="equals (firefox)",A.Beta="ß",A.At="@",A.A="a",A.B="b",A.C="c",A.D="d",A.E="e",A.F="f",A.G="g",A.H="h",A.I="i",A.J="j",A.K="k",A.L="l",A.M="m",A.N="n",A.O="o",A.P="p",A.Q="q",A.R="r",A.S="s",A.T="t",A.U="u",A.V="v",A.W="w",A.X="x",A.Y="y",A.Z="z",A.SearchKey="Windows Key / Left ⌘ / Chromebook Search key",A.NumPad0="numpad 0",A.NumPad1="numpad 1",A.NumPad2="numpad 2",A.NumPad3="numpad 3",A.NumPad4="numpad 4",A.NumPad5="numpad 5",A.NumPad6="numpad 6",A.NumPad7="numpad 7",A.NumPad8="numpad 8",A.NumPad9="numpad 9",A.Multiply="multiply",A.Add="add",A.Subtract="subtract",A.DecimalPoint="decimal point",A.Divide="divide",A.F1="f1",A.F2="f2",A.F3="f3",A.F4="f4",A.F5="f5",A.F6="f6",A.F7="f7",A.F8="f8",A.F9="f9",A.F10="f10",A.F11="f11",A.F12="f12",A.F13="f13",A.F14="f14",A.F15="f15",A.F16="f16",A.F17="f17",A.F18="f18",A.F19="f19",A.F20="f20",A.F21="f21",A.F22="f22",A.F23="f23",A.F24="f24",A.NumLock="num lock",A.ScrollLock="scroll lock",A.CircumflexAccent="^",A.ExclamationMark="!",A.Hash="#",A.Dollar="$",A.AccentU="ù",A.PageBackward="page backward",A.PageForWard="page forward",A.Star="*",A.DecreaseVolume="decrease volume level",A.IncreaseVolume="increase volume level",A.Next="next",A.Previous="previous",A.Stop="stop",A.PlayPause="play/pause",A.Email="e-mail",A.SemiColon="semi-colon / ñ",A.EqualSign="equal sign",A.Comma="comma",A.Dash="dash",A.FowardSlach="forward slash / ç",A.GraveAccent="grave accent / ñ / æ",A.OpenBracket="open bracket",A.BackSlach="back slash",A.CloseBracket="close bracket / å",A.SingleQuote="single quote / ø",A.BackQuote="`",A.Altgr="altgr",A))(rs||{});const as={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"},ls=(A=>{const t={};for(let e in A){const i=A[e];t[i]=e}return t})(as);class gs extends cA{constructor(){super(...arguments),this.keyState={},this.lastKeyPressed=null,this.directionState={up:!1,down:!1,left:!1,right:!1}}setupListeners(){document.addEventListener("keydown",t=>{this.onKeyChange(t,!0)}),document.addEventListener("keyup",t=>{this.onKeyChange(t,!1)})}cleanup(){document.removeEventListener("keydown",t=>{this.onKeyChange(t,!0)}),document.removeEventListener("keyup",t=>{this.onKeyChange(t,!1)})}preStep(){if(this.stop)return;const t=this.getDirection();if(t!=="none"){const e=this.boundKeys[t];if(e){const{keyDown:i}=e.options;i&&this.applyInput(t)}}else{const e=Object.keys(this.boundKeys);for(let i of e)this.applyInput(i)}}applyInput(t){const e=this.keyState[t];if(!e)return;const{isDown:i,count:n}=e;if(i){const s=this.boundKeys[t];if(!s)return;const{repeat:r,keyDown:a}=s.options;if(r||n==0){let g=s.parameters;typeof g=="function"&&(g=g()),a&&a(s),this.keyState[t].count++}}}applyKeyDown(t){const e=ls[t],i=new Event("keydown");i.keyCode=e,this.onKeyChange(i,!0)}applyKeyUp(t){const e=ls[t],i=new Event("keyup");i.keyCode=e,this.onKeyChange(i,!1)}applyKeyPress(t){return new Promise(e=>{this.applyKeyDown(t),setTimeout(()=>{this.applyKeyUp(t),e()},200)})}onKeyChange(t,e){t=t||window.event;const i=as[t.keyCode];if(i&&this.boundKeys[i]){if(this.keyState[i]==null&&(this.keyState[i]={count:0,isDown:!0}),this.keyState[i].isDown=e,!e){this.keyState[i].count=0;const{keyUp:n}=this.boundKeys[i].options;n&&n(this.boundKeys[i])}this.lastKeyPressed=e?t.keyCode:null}i&&this.updateDirectionState(i,e)}updateDirectionState(t,e){switch(t){case"up":this.directionState.up=e;break;case"down":this.directionState.down=e;break;case"left":this.directionState.left=e;break;case"right":this.directionState.right=e;break}}getDirection(){const{up:t,down:e,left:i,right:n}=this.directionState;return t&&i?"up_left":t&&n?"up_right":e&&i?"down_left":e&&n?"down_right":t?"up":e?"down":i?"left":n?"right":"none"}async applyControl(t,e){const i=this._controlsOptions[t];if(i){const n=Array.isArray(i.bind)?i.bind[0]:i.bind;e===void 0?await this.applyKeyPress(n):e?this.applyKeyDown(n):this.applyKeyUp(n)}}listenInputs(){super.listenInputs(),this.keyState={}}}var Dt={events:{},publish:function(t,e){this.events.hasOwnProperty(t)&&this.events[t].forEach(function(i){return i(e)})},subscribe:function(t,e){return this.events.hasOwnProperty(t)||(this.events[t]=[]),this.events[t].push(e),{unsubscribe:(function(){var i=this.events[t].indexOf(e);i!==-1&&this.events[t].splice(i,1)}).bind(this)}}},Z={CONNECT:{NATIVE:"gamepadconnected",ALIAS:"connect"},DISCONNECT:{NATIVE:"gamepaddisconnected",ALIAS:"disconnect"},BUTTON_PRESS:{ALIAS:"button_press"},BUTTON_RELEASE:{ALIAS:"button_release"},AXIS_MOVEMENT:{ALIAS:"axis_move"}},Be={LEFT:{NAME:"left_stick",AXES:{X:0,Y:1}},RIGHT:{NAME:"right_stick",AXES:{X:2,Y:3}}},hA={LEFT:"left",RIGHT:"right",TOP:"top",BOTTOM:"bottom"},ha={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},ua=.8,cs=function(A){console.warn&&typeof console.warn=="function"?console.warn(A):console.log(A)},Ia=function(A,t){var e=[];return Object.keys(t).forEach(function(i){(t[i]===A||Array.isArray(t[i])&&t[i].indexOf(A)!==-1)&&e.push(i)}),e},fa=function(A){return!!A&&!!A.type&&!!A.playEffect&&typeof A.playEffect=="function"||!1},Ba=function(){return!!window.navigator.getGamepads&&typeof window.navigator.getGamepads=="function"||!1},Et={loopStarted:!1,instances:{},buttonEvents:{joypad:[]},settings:{axisMovementThreshold:ua},remove:function(t){return delete this.instances[t]},on:function(t,e){switch(t){case Z.CONNECT.ALIAS:return Dt.subscribe(Z.CONNECT.ALIAS,e);case Z.DISCONNECT.ALIAS:return Dt.subscribe(Z.DISCONNECT.ALIAS,e);case Z.BUTTON_PRESS.ALIAS:return Dt.subscribe(Z.BUTTON_PRESS.ALIAS,e);case Z.BUTTON_RELEASE.ALIAS:return Dt.subscribe(Z.BUTTON_RELEASE.ALIAS,e);case Z.AXIS_MOVEMENT.ALIAS:return Dt.subscribe(Z.AXIS_MOVEMENT.ALIAS,e)}},vibrate:function(t,e){var i=t.vibrationActuator,n=e||this.settings.vibration;if(fa(i)){var s=i.type;return t.vibrationActuator.playEffect(s,n)}cs("No vibration actuator interface found - https://developer.mozilla.org/en-US/docs/Web/API/GamepadHapticActuator")},set:function(t){var e=t.axisMovementThreshold,i=t.vibration,n=t.customButtonMapping,s=parseFloat(e);isNaN(s)||(this.settings.axisMovementThreshold=s),this.settings.vibration=i,this.settings.customButtonMapping=n},trigger:function(t,e){return Dt.publish(t,e)}},Ea=function(A){A.buttons.forEach(function(t,e){var i=Et.settings.customButtonMapping,n=i||ha,s=Ia(e,n),r=Et.buttonEvents;s&&s.length&&s.forEach(function(a){t.pressed?(r.joypad[A.index][a]||(r.joypad[A.index][a]={pressed:!0,hold:!1,released:!1}),r.joypad[A.index][a].button=t,r.joypad[A.index][a].index=e,r.joypad[A.index][a].gamepad=A):!t.pressed&&r.joypad[A.index][a]&&(r.joypad[A.index][a].released=!0,r.joypad[A.index][a].hold=!1)})})},Ca=function(A){var t=function(r){return new CustomEvent(Z.AXIS_MOVEMENT.ALIAS,{detail:r})},e=Et.settings.axisMovementThreshold,i=A.axes,n=i.length,s=n/2;i.forEach(function(r,a){if(Math.abs(r)>e){var g=null,c=null,B=r;g=a<s?Be.LEFT.NAME:Be.RIGHT.NAME,(a===Be.LEFT.AXES.X||a===Be.RIGHT.AXES.X)&&(c=r<0?hA.LEFT:hA.RIGHT),(a===Be.LEFT.AXES.Y||a===Be.RIGHT.AXES.Y)&&(c=r<0?hA.TOP:hA.BOTTOM);var o={gamepad:A,totalSticks:s,stickMoved:g,directionOfMovement:c,axisMovementValue:B,axis:a};return window.dispatchEvent(t(o))}})},da=function(A,t){t[A].pressed?(hs(Z.BUTTON_PRESS.ALIAS,t,A),t[A].pressed=!1,t[A].hold=!0,t[A].last_event=Z.BUTTON_PRESS.ALIAS):t[A].hold||t[A].released&&t[A].last_event===Z.BUTTON_PRESS.ALIAS&&(hs(Z.BUTTON_RELEASE.ALIAS,t,A),delete t[A])},ti={id:null,start:function(){var t=window.requestAnimationFrame||window.webkitRequestAnimationFrame,e=Et.buttonEvents,i=window.navigator.getGamepads();i=Array.prototype.slice.call(i),i.forEach(function(n,s){n&&(e.joypad[s]||(e.joypad[s]={}),Et.instances[s]=n,Ea(n),Ca(n))}),e.joypad.forEach(function(n){n&&Object.keys(n).forEach(function(s){da(s,n)})}),this.id=t(this.start.bind(this))},stop:function(t){var e=window.cancelAnimationFrame||window.webkitCancelAnimationFrame;return e(t)}},Qa=function(){window.addEventListener(Z.CONNECT.NATIVE,function(A){if(Dt.publish(Z.CONNECT.ALIAS,A),!Et.loopStarted)return Et.loopStarted=!0,ti.start()}),window.addEventListener(Z.DISCONNECT.NATIVE,function(A){if(Dt.publish(Z.DISCONNECT.ALIAS,A),Et.remove(A.gamepad.index),Et.buttonEvents.joypad[A.gamepad.index]=null,!Object.keys(Et.instances).length)return Et.loopStarted=!1,ti.stop(ti.id)}),window.addEventListener(Z.BUTTON_PRESS.ALIAS,function(A){return Dt.publish(Z.BUTTON_PRESS.ALIAS,A)}),window.addEventListener(Z.BUTTON_RELEASE.ALIAS,function(A){return Dt.publish(Z.BUTTON_RELEASE.ALIAS,A)}),window.addEventListener(Z.AXIS_MOVEMENT.ALIAS,function(A){return Dt.publish(Z.AXIS_MOVEMENT.ALIAS,A)})},hs=function(A,t,e){var i=function(g){return new CustomEvent(A,{detail:g})},n=t[e],s=n.index,r=n.gamepad,a={buttonName:e,button:t[e].button,index:s,gamepad:r};window.dispatchEvent(i(a))};Qa(),Ba()?window.joypad=Et:(window.joypad={},cs("Your browser does not support the Gamepad API - https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API"));const ei={button_0:"action",button_1:"back",button_9:"back"},Ai={top:"up",bottom:"down",left:"left",right:"right"};class us extends cA{constructor(){super(...arguments),this.gamepadEnabled=!0,this.gamepadConfig={enabled:!0,buttonMapping:ei,axisMapping:Ai,axisThreshold:.5,moveInterval:400},this.gamepadMoving=!1,this.gamepadDirections={},this.gamepadAxisDate=0,this.gamepadMoveInterval=null,this.joypad=null,this.connectCallbacks=[],this.disconnectCallbacks=[],this.currentPower=0}setupListeners(){this.initGamepad()}cleanup(){this.gamepadMoveInterval&&(clearInterval(this.gamepadMoveInterval),this.gamepadMoveInterval=null)}initGamepad(){if(typeof window>"u")return;const t=window.joypad;if(!t){this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!1);return}this.joypad=t,this.joypad.on("connect",()=>this.handleGamepadConnect()),this.joypad.on("disconnect",()=>this.handleGamepadDisconnect()),this.joypad.on("button_press",e=>this.handleGamepadButtonPress(e)),this.joypad.on("axis_move",e=>this.handleGamepadAxisMove(e))}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(t=>t()))}handleGamepadDisconnect(){this.gamepadMoveInterval&&(clearInterval(this.gamepadMoveInterval),this.gamepadMoveInterval=null),this.gamepadMoving=!1,this.gamepadDirections={},this.gamepadAxisDate=0,this.currentPower=0,this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!1),this.disconnectCallbacks.forEach(t=>t())}handleGamepadButtonPress(t){if(!this.gamepadEnabled||!this.gamepadConfig.enabled||this.stop)return;const{buttonName:e}=t.detail,n=(this.gamepadConfig.buttonMapping||ei)[e];n&&this.applyControl(n).catch(()=>{})}handleGamepadAxisMove(t){if(!this.gamepadEnabled||!this.gamepadConfig.enabled||this.stop)return;this.gamepadMoving=!0,this.gamepadAxisDate=Date.now();let e=t.detail.directionOfMovement;const i=this.gamepadConfig.axisMapping||Ai;if(e==="top"?e=i.top||"up":e==="bottom"?e=i.bottom||"down":e==="left"?e=i.left||"left":e==="right"&&(e=i.right||"right"),this.joypad&&this.joypad.instances){const s=Object.values(this.joypad.instances);if(s.length>0){const r=s[0],a=r.axes?.[0]||0,g=r.axes?.[1]||0;this.currentPower=Math.min(1,Math.sqrt(a*a+g*g))}}this.gamepadDirections={[e]:!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){if(this.joypad&&this.joypad.instances){const t=Object.values(this.joypad.instances);if(t.length>0){const e=t[0],i=e.axes?.[0]||0,n=e.axes?.[1]||0;this.currentPower=Math.min(1,Math.sqrt(i*i+n*n))}}for(const t in this.gamepadDirections)this.gamepadDirections[t]&&this.applyControl(t,!0,{power:this.currentPower}).catch(()=>{})}}preStep(){if(this.stop)return;if(Date.now()-this.gamepadAxisDate>100&&this.gamepadMoving){const e=["up","down","left","right"];for(const i of e)this.gamepadDirections={},this.gamepadMoving=!1,this.applyControl(i,!1).catch(()=>{})}}updateGamepadConfig(t){this.gamepadConfig.onConnect&&this.offConnect(this.gamepadConfig.onConnect),this.gamepadConfig.onDisconnect&&this.offDisconnect(this.gamepadConfig.onDisconnect),this.gamepadConfig={enabled:t.enabled!==void 0?t.enabled:!0,buttonMapping:t.buttonMapping||ei,axisMapping:t.axisMapping||Ai,axisThreshold:t.axisThreshold||.5,moveInterval:t.moveInterval||400,onConnect:t.onConnect,onDisconnect:t.onDisconnect,gamepadConnected:t.gamepadConnected},this.gamepadConfig.onConnect&&this.onConnect(this.gamepadConfig.onConnect),this.gamepadConfig.onDisconnect&&this.onDisconnect(this.gamepadConfig.onDisconnect)}extractGamepadConfig(t){t.gamepad&&this.updateGamepadConfig(t.gamepad)}getGamepadConfig(){return this.gamepadConfig}async applyControl(t,e,i){if(!this._controlsOptions[t])return;const s=Object.keys(this.boundKeys);for(const r of s){const a=this.boundKeys[r];if(a.actionName===String(t)){if(e===void 0){if(a.options.keyDown){let g=i??a.parameters;typeof g=="function"&&(g=g()),a.options.keyDown(a,g)}return new Promise(g=>{setTimeout(()=>{if(a.options.keyUp){let c=i??a.parameters;typeof c=="function"&&(c=c()),a.options.keyUp(a,c)}g()},200)})}else if(e){if(a.options.keyDown){let g=i??a.parameters;typeof g=="function"&&(g=g()),a.options.keyDown(a,g)}}else if(a.options.keyUp){let g=i??a.parameters;typeof g=="function"&&(g=g()),a.options.keyUp(a,g)}break}}}setInputs(t){super.setInputs(t),this.extractGamepadConfig(t)}onConnect(t){this.connectCallbacks.push(t)}onDisconnect(t){this.disconnectCallbacks.push(t)}offConnect(t){const e=this.connectCallbacks.indexOf(t);e>-1&&this.connectCallbacks.splice(e,1)}offDisconnect(t){const e=this.disconnectCallbacks.indexOf(t);e>-1&&this.disconnectCallbacks.splice(e,1)}isConnected(){return this.gamepadMoveInterval!==null}reinit(){this.joypad||this.initGamepad()}}const ii={top:"up",bottom:"down",left:"left",right:"right",top_left:["up","left"],top_right:["up","right"],bottom_left:["down","left"],bottom_right:["down","right"]};class Is extends cA{constructor(){super(...arguments),this.joystickEnabled=!0,this.joystickConfig={enabled:!0,directionMapping:ii,moveInterval:50,threshold:.1},this.joystickMoving=!1,this.joystickDirections={},this.joystickLastUpdate=0,this.joystickMoveInterval=null,this.currentPower=0}setupListeners(){}cleanup(){this.joystickMoveInterval&&(clearInterval(this.joystickMoveInterval),this.joystickMoveInterval=null)}preStep(){this.stop}handleJoystickChange(t){if(!this.joystickEnabled||!this.joystickConfig.enabled||this.stop)return;if(this.joystickLastUpdate=Date.now(),this.currentPower=t.power,t.power<(this.joystickConfig.threshold||.1)){this.stopAllMovements();return}const e=this.joystickConfig.directionMapping||ii,i=t.direction,n=e[i];if(!n){this.stopAllMovements();return}const s=Array.isArray(n)?n:[n],r=this.joystickDirections,a={};s.forEach(B=>{a[B]=!0});const g=new Set([...Object.keys(this.joystickDirections),...Object.keys(a)]);for(const B of g){const o=this.joystickDirections[B],l=a[B]||!1;o&&!l&&this.applyControl(B,!1).catch(()=>{})}this.joystickDirections={...a},this.joystickMoving=!0;const c=s.filter(B=>!r[B]);for(const B of c)this.applyControl(B,!0,{power:t.power}).catch(()=>{});this.joystickMoveInterval||(this.joystickMoveInterval=setInterval(()=>{this.processJoystickMovement()},this.joystickConfig.moveInterval||50))}handleJoystickStart(){!this.joystickEnabled||!this.joystickConfig.enabled||this.stop}handleJoystickEnd(){!this.joystickEnabled||!this.joystickConfig.enabled||this.stopAllMovements()}stopAllMovements(){this.joystickMoveInterval&&(clearInterval(this.joystickMoveInterval),this.joystickMoveInterval=null);const t=Object.keys(this.joystickDirections);for(const e of t)this.applyControl(e,!1).catch(()=>{});this.joystickDirections={},this.joystickMoving=!1,this.currentPower=0}processJoystickMovement(){if(this.joystickMoving&&!this.stop)for(const t in this.joystickDirections)this.joystickDirections[t]&&this.applyControl(t,!0,{power:this.currentPower}).catch(()=>{})}updateJoystickConfig(t){this.joystickConfig={enabled:t.enabled!==void 0?t.enabled:!0,directionMapping:t.directionMapping||ii,moveInterval:t.moveInterval||50,threshold:t.threshold||.1}}extractJoystickConfig(t){t.joystick&&this.updateJoystickConfig(t.joystick)}getJoystickConfig(){return this.joystickConfig}async applyControl(t,e,i){if(!this._controlsOptions[t])return;const s=Object.keys(this.boundKeys);for(const r of s){const a=this.boundKeys[r];if(a.actionName===String(t)){if(e===void 0){if(a.options.keyDown){let g=i??a.parameters;typeof g=="function"&&(g=g()),a.options.keyDown(a,g)}return new Promise(g=>{setTimeout(()=>{if(a.options.keyUp){let c=i??a.parameters;typeof c=="function"&&(c=c()),a.options.keyUp(a,c)}g()},200)})}else if(e){if(a.options.keyDown){let g=i??a.parameters;typeof g=="function"&&(g=g()),a.options.keyDown(a,g)}}else if(a.options.keyUp){let g=i??a.parameters;typeof g=="function"&&(g=g()),a.options.keyUp(a,g)}break}}}setInputs(t){super.setInputs(t),this.extractJoystickConfig(t)}isActive(){return this.joystickMoving}}const ni={};class vt{}function bt(A,t){ni[A]=t}function si(A,t){if(!ni[t])return null;const e=new ni[t];return e.onInit?.(A),e}var pa=Object.defineProperty,$=(A,t)=>pa(A,"name",{value:t,configurable:!0}),Ue=(xe=class extends te{_items=[];constructor(t=[]){super({type:"init",items:t}),this.createProxy(t)}createProxy(t){this._items=new Proxy(t,{get:$((e,i,n)=>{const s=e[i];return typeof s=="function"?(...r)=>{let a="update",g,c=!1,B=[],o=!0;switch(i){case"push":g=e.length,a="add",c=!0;break;case"pop":g=e.length-1,a="remove",c=!0;break;case"unshift":g=0,a="add",c=!0;break;case"shift":g=0,a="remove",c=!0;break;case"splice":g=r[0];const h=r[1],f=r.slice(2);B=f,h>0&&f.length===0?a="remove":h===0&&f.length>0?a="add":h===0&&f.length===0?o=!1:a="update",c=!0;break}const l=s.apply(e,r);return c&&o&&(i==="splice"?this.next({type:a,index:g,items:B}):this.next({type:a,index:g,items:r})),l}:Reflect.get(e,i,n)},"get"),set:$((e,i,n)=>{const s=isNaN(Number(i))?void 0:Number(i);return e[i]=n,this.next({type:"update",index:s,items:[n]}),!0},"set")})}get items(){return this._items}set items(t){this.createProxy(t),this.next({type:"reset",items:t})}},$(xe,"ArraySubject"),xe),ya=$(A=>"_items"in A,"isArraySubject"),Te=(ke=class extends te{_obj;constructor(t={}){super({type:"init",value:t}),this.createProxy(t)}createProxy(t){this._obj=new Proxy(t,{get:$((e,i,n)=>Reflect.get(e,i,n),"get"),set:$((e,i,n,s)=>{const r=i,a=r in e?"update":"add";return e[r]=n,this.next({type:a,key:r,value:n}),!0},"set"),deleteProperty:$((e,i)=>{const n=i;if(n in e){const s=e[n];return delete e[n],this.next({type:"remove",key:n,value:s}),!0}return!1},"deleteProperty")})}get obj(){return this._obj}set obj(t){this.createProxy(t),this.next({type:"reset",value:t})}},$(ke,"ObjectSubject"),ke),wa=$(A=>"_obj"in A,"isObjectSubject"),ma=$(()=>{const A="__REACTIVE_STORE__";if(typeof globalThis<"u")return globalThis[A]||(globalThis[A]={currentDependencyTracker:null,currentSubscriptionsTracker:null}),globalThis[A];let t;if(typeof window<"u")t=window;else if(typeof process<"u"&&process.versions&&process.versions.node)t=Function("return this")();else if(typeof self<"u")t=self;else return console.warn("Unable to find global object, using local instance"),{currentDependencyTracker:null,currentSubscriptionsTracker:null};return t[A]||(t[A]={currentDependencyTracker:null,currentSubscriptionsTracker:null}),t[A]},"getGlobalReactiveStore"),at=ma(),oi=$(A=>{at.currentDependencyTracker&&at.currentDependencyTracker(A)},"trackDependency");function Y(A,t){let e;Array.isArray(A)?e=new Ue(A):typeof A=="object"&&A!==null?e=new Te(A):e=new te(A);const i=$(()=>e instanceof Ue?e.items:e instanceof Te?e.obj:e.value,"getValue"),n=$(function(){return oi(n),i()},"fn");return n.set=s=>{const r=i();let a=!0;t?.equal?a=!t.equal(r,s):a=r!==s,a&&(e instanceof Ue?e.items=s:e instanceof Te?e.obj=s:e.next(s))},n._isFrozen=!1,n.freeze=()=>{n._isFrozen=!0},n.unfreeze=()=>{n._isFrozen=!1,e instanceof Ue?e.next({type:"init",items:e.items}):e instanceof Te?e.next({type:"init",value:e.obj}):e.next(e.value)},n.mutate=s=>{const r=i();s(r)},n.update=s=>{const r=s(i());n.set(r)},n.observable=e.asObservable().pipe(He(()=>!n._isFrozen)),n._subject=e,n}$(Y,"signal");function N(A){return!!(A&&A.observable)}$(N,"isSignal");function Ee(A){return N(A)&&!!A.dependencies}$(Ee,"isComputed");function Ct(A,t){const e=new Set;let i=!0,n;const s=at.currentDependencyTracker;at.currentDependencyTracker=c=>{e.add(c)},n=A(),A.isEffect&&(t=n),at.currentDependencyTracker=s;const r=[...e].map(c=>{if(Ee(c)&&"dependencies"in c){const B=c;if(B.dependencies.size===0)return new te(B()).asObservable()}return c.observable}),a=XA(r).pipe(He(()=>!i),qA(()=>A()),oa(()=>t?.())),g=$(function(){return oi(g),n},"fn");return g.observable=a,g.subscription=a.subscribe(c=>{n=c}),g.dependencies=e,at.currentSubscriptionsTracker?.(g.subscription),i=!1,g}$(Ct,"computed");function fs(A,t){const e=new Set;let i=!0,n,s,r,a,g,c,B=!1,o,l=0,h=null;if(typeof A=="function")s=A,g=t?.equal;else{const m=A;if(r=m.source,a=m.computation,g=m.equal,typeof r=="function"&&!N(r)){const b=r;s=$(()=>{const M=b();if(a.length>1){const G=a(M,c);return c={source:M,value:G},G}else{const G=a(M);return c={source:M,value:G},G}},"computeFunction")}else{const b=r;s=$(()=>{const M=b();if(a.length>1){const G=a(M,c);return c={source:M,value:G},G}else{const G=a(M);return c={source:M,value:G},G}},"computeFunction")}}const f=at.currentDependencyTracker;at.currentDependencyTracker=m=>{e.add(m)},r&&typeof r=="function"&&!N(r)||r&&N(r)&&e.add(r),n=s(),at.currentDependencyTracker=f;const E=new te(n),d=[...e].map(m=>{if(Ee(m)&&"dependencies"in m){const b=m;if(b.dependencies.size===0)return new te(b()).asObservable()}return m.observable});let C;d.length>0?C=XA(d).pipe(He(()=>!i),qA(()=>{const m=s();return g?g(n,m)||(n=m,B=!1):n!==m&&(n=m,B=!1),n})):C=E.asObservable().pipe(He(()=>!i));const y=$(function(){if(oi(y),B&&e.size>0){if(h!==l){const m=s();return B=!1,o=void 0,n=m,h=null,m}return o}return B?o:(e.size===0&&(n=s()),n)},"fn");return y.observable=new z(m=>{const b=C.subscribe(G=>{e.size>0&&(l++,B=!1,h=null),n=G,m.next(G)});let M;return e.size===0&&(M=E.pipe(He(()=>!i)).subscribe(G=>{m.next(G)})),m.next(n),()=>{b.unsubscribe(),M&&M.unsubscribe()}}),y.subscription=y.observable.subscribe(()=>{}),y.dependencies=e,y._subject=E,y.set=m=>{B||(h=l,a&&r&&(c={source:ri(()=>{if(typeof r=="function"){const M=r;return N(M)?M():r()}return r()}),value:m})),B=!0,o=m,n=m,E.next(m)},at.currentSubscriptionsTracker?.(y.subscription),i=!1,y}$(fs,"linkedSignal");function ri(A){const t=at.currentDependencyTracker,e=at.currentSubscriptionsTracker;at.currentDependencyTracker=null,at.currentSubscriptionsTracker=null;try{return A()}finally{at.currentDependencyTracker=t,at.currentSubscriptionsTracker=e}}$(ri,"untracked");function nt(A){return A.isEffect=!0,Ct(A)}$(nt,"effect");function Bs(A,t){var e={};for(var i in A)Object.prototype.hasOwnProperty.call(A,i)&&t.indexOf(i)<0&&(e[i]=A[i]);if(A!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(A);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(A,i[n])&&(e[i[n]]=A[i[n]]);return e}var Es=function(){};const ai=(A,t,e)=>Math.min(Math.max(e,A),t),li=.001,Da=.01,va=10,ba=.05,Sa=1;function xa({duration:A=800,bounce:t=.25,velocity:e=0,mass:i=1}){let n,s,r=1-t;r=ai(ba,Sa,r),A=ai(Da,va,A/1e3),r<1?(n=c=>{const B=c*r,o=B*A,l=B-e,h=gi(c,r),f=Math.exp(-o);return li-l/h*f},s=c=>{const o=c*r*A,l=o*e+e,h=Math.pow(r,2)*Math.pow(c,2)*A,f=Math.exp(-o),E=gi(Math.pow(c,2),r);return(-n(c)+li>0?-1:1)*((l-h)*f)/E}):(n=c=>{const B=Math.exp(-c*A),o=(c-e)*A+1;return-li+B*o},s=c=>{const B=Math.exp(-c*A),o=(e-c)*(A*A);return B*o});const a=5/A,g=Ma(n,s,a);if(A=A*1e3,isNaN(g))return{stiffness:100,damping:10,duration:A};{const c=Math.pow(g,2)*i;return{stiffness:c,damping:r*2*Math.sqrt(i*c),duration:A}}}const ka=12;function Ma(A,t,e){let i=e;for(let n=1;n<ka;n++)i=i-A(i)/t(i);return i}function gi(A,t){return A*Math.sqrt(1-t*t)}const Ra=["duration","bounce"],_a=["stiffness","damping","mass"];function Cs(A,t){return t.some(e=>A[e]!==void 0)}function Fa(A){let t=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},A);if(!Cs(A,_a)&&Cs(A,Ra)){const e=xa(A);t=Object.assign(Object.assign(Object.assign({},t),e),{velocity:0,mass:1}),t.isResolvedFromDuration=!0}return t}function ci(A){var{from:t=0,to:e=1,restSpeed:i=2,restDelta:n}=A,s=Bs(A,["from","to","restSpeed","restDelta"]);const r={done:!1,value:t};let{stiffness:a,damping:g,mass:c,velocity:B,duration:o,isResolvedFromDuration:l}=Fa(s),h=ds,f=ds;function E(){const d=B?-(B/1e3):0,C=e-t,y=g/(2*Math.sqrt(a*c)),m=Math.sqrt(a/c)/1e3;if(n===void 0&&(n=Math.min(Math.abs(e-t)/100,.4)),y<1){const b=gi(m,y);h=M=>{const G=Math.exp(-y*m*M);return e-G*((d+y*m*C)/b*Math.sin(b*M)+C*Math.cos(b*M))},f=M=>{const G=Math.exp(-y*m*M);return y*m*G*(Math.sin(b*M)*(d+y*m*C)/b+C*Math.cos(b*M))-G*(Math.cos(b*M)*(d+y*m*C)-b*C*Math.sin(b*M))}}else if(y===1)h=b=>e-Math.exp(-m*b)*(C+(d+m*C)*b);else{const b=m*Math.sqrt(y*y-1);h=M=>{const G=Math.exp(-y*m*M),O=Math.min(b*M,300);return e-G*((d+y*m*C)*Math.sinh(O)+b*C*Math.cosh(O))/b}}}return E(),{next:d=>{const C=h(d);if(l)r.done=d>=o;else{const y=f(d)*1e3,m=Math.abs(y)<=i,b=Math.abs(e-C)<=n;r.done=m&&b}return r.value=r.done?e:C,r},flipTarget:()=>{B=-B,[t,e]=[e,t],E()}}}ci.needsInterpolation=(A,t)=>typeof A=="string"||typeof t=="string";const ds=A=>0,Qs=(A,t,e)=>{const i=t-A;return i===0?1:(e-A)/i},hi=(A,t,e)=>-e*A+e*t+A,ps=(A,t)=>e=>Math.max(Math.min(e,t),A),Oe=A=>A%1?Number(A.toFixed(5)):A,uA=/(-)?([\d]*\.?[\d])+/g,ui=/(#[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,Ga=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function Pe(A){return typeof A=="string"}const IA={test:A=>typeof A=="number",parse:parseFloat,transform:A=>A},ys=Object.assign(Object.assign({},IA),{transform:ps(0,1)});Object.assign(Object.assign({},IA),{default:1});const Je=(A=>({test:t=>Pe(t)&&t.endsWith(A)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${A}`}))("%");Object.assign(Object.assign({},Je),{parse:A=>Je.parse(A)/100,transform:A=>Je.transform(A*100)});const Ii=(A,t)=>e=>!!(Pe(e)&&Ga.test(e)&&e.startsWith(A)||t&&Object.prototype.hasOwnProperty.call(e,t)),ws=(A,t,e)=>i=>{if(!Pe(i))return i;const[n,s,r,a]=i.match(uA);return{[A]:parseFloat(n),[t]:parseFloat(s),[e]:parseFloat(r),alpha:a!==void 0?parseFloat(a):1}},ie={test:Ii("hsl","hue"),parse:ws("hue","saturation","lightness"),transform:({hue:A,saturation:t,lightness:e,alpha:i=1})=>"hsla("+Math.round(A)+", "+Je.transform(Oe(t))+", "+Je.transform(Oe(e))+", "+Oe(ys.transform(i))+")"},Na=ps(0,255),fi=Object.assign(Object.assign({},IA),{transform:A=>Math.round(Na(A))}),jt={test:Ii("rgb","red"),parse:ws("red","green","blue"),transform:({red:A,green:t,blue:e,alpha:i=1})=>"rgba("+fi.transform(A)+", "+fi.transform(t)+", "+fi.transform(e)+", "+Oe(ys.transform(i))+")"};function Ha(A){let t="",e="",i="",n="";return A.length>5?(t=A.substr(1,2),e=A.substr(3,2),i=A.substr(5,2),n=A.substr(7,2)):(t=A.substr(1,1),e=A.substr(2,1),i=A.substr(3,1),n=A.substr(4,1),t+=t,e+=e,i+=i,n+=n),{red:parseInt(t,16),green:parseInt(e,16),blue:parseInt(i,16),alpha:n?parseInt(n,16)/255:1}}const Bi={test:Ii("#"),parse:Ha,transform:jt.transform},fA={test:A=>jt.test(A)||Bi.test(A)||ie.test(A),parse:A=>jt.test(A)?jt.parse(A):ie.test(A)?ie.parse(A):Bi.parse(A),transform:A=>Pe(A)?A:A.hasOwnProperty("red")?jt.transform(A):ie.transform(A)},ms="${c}",Ds="${n}";function La(A){var t,e,i,n;return isNaN(A)&&Pe(A)&&((e=(t=A.match(uA))===null||t===void 0?void 0:t.length)!==null&&e!==void 0?e:0)+((n=(i=A.match(ui))===null||i===void 0?void 0:i.length)!==null&&n!==void 0?n:0)>0}function vs(A){typeof A=="number"&&(A=`${A}`);const t=[];let e=0;const i=A.match(ui);i&&(e=i.length,A=A.replace(ui,ms),t.push(...i.map(fA.parse)));const n=A.match(uA);return n&&(A=A.replace(uA,Ds),t.push(...n.map(IA.parse))),{values:t,numColors:e,tokenised:A}}function bs(A){return vs(A).values}function Ss(A){const{values:t,numColors:e,tokenised:i}=vs(A),n=t.length;return s=>{let r=i;for(let a=0;a<n;a++)r=r.replace(a<e?ms:Ds,a<e?fA.transform(s[a]):Oe(s[a]));return r}}const Ua=A=>typeof A=="number"?0:A;function Ta(A){const t=bs(A);return Ss(A)(t.map(Ua))}const xs={test:La,parse:bs,createTransformer:Ss,getAnimatableNone:Ta};function Ei(A,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<.16666666666666666?A+(t-A)*6*e:e<.5?t:e<.6666666666666666?A+(t-A)*(.6666666666666666-e)*6:A}function ks({hue:A,saturation:t,lightness:e,alpha:i}){A/=360,t/=100,e/=100;let n=0,s=0,r=0;if(!t)n=s=r=e;else{const a=e<.5?e*(1+t):e+t-e*t,g=2*e-a;n=Ei(g,a,A+.3333333333333333),s=Ei(g,a,A),r=Ei(g,a,A-.3333333333333333)}return{red:Math.round(n*255),green:Math.round(s*255),blue:Math.round(r*255),alpha:i}}const Oa=(A,t,e)=>{const i=A*A,n=t*t;return Math.sqrt(Math.max(0,e*(n-i)+i))},Pa=[Bi,jt,ie],Ms=A=>Pa.find(t=>t.test(A)),Rs=(A,t)=>{let e=Ms(A),i=Ms(t),n=e.parse(A),s=i.parse(t);e===ie&&(n=ks(n),e=jt),i===ie&&(s=ks(s),i=jt);const r=Object.assign({},n);return a=>{for(const g in r)g!=="alpha"&&(r[g]=Oa(n[g],s[g],a));return r.alpha=hi(n.alpha,s.alpha,a),e.transform(r)}},Ja=A=>typeof A=="number",Ka=(A,t)=>e=>t(A(e)),_s=(...A)=>A.reduce(Ka);function Fs(A,t){return Ja(A)?e=>hi(A,t,e):fA.test(A)?Rs(A,t):Hs(A,t)}const Gs=(A,t)=>{const e=[...A],i=e.length,n=A.map((s,r)=>Fs(s,t[r]));return s=>{for(let r=0;r<i;r++)e[r]=n[r](s);return e}},Ya=(A,t)=>{const e=Object.assign(Object.assign({},A),t),i={};for(const n in e)A[n]!==void 0&&t[n]!==void 0&&(i[n]=Fs(A[n],t[n]));return n=>{for(const s in i)e[s]=i[s](n);return e}};function Ns(A){const t=xs.parse(A),e=t.length;let i=0,n=0,s=0;for(let r=0;r<e;r++)i||typeof t[r]=="number"?i++:t[r].hue!==void 0?s++:n++;return{parsed:t,numNumbers:i,numRGB:n,numHSL:s}}const Hs=(A,t)=>{const e=xs.createTransformer(t),i=Ns(A),n=Ns(t);return i.numHSL===n.numHSL&&i.numRGB===n.numRGB&&i.numNumbers>=n.numNumbers?_s(Gs(i.parsed,n.parsed),e):r=>`${r>0?t:A}`},Wa=(A,t)=>e=>hi(A,t,e);function ja(A){if(typeof A=="number")return Wa;if(typeof A=="string")return fA.test(A)?Rs:Hs;if(Array.isArray(A))return Gs;if(typeof A=="object")return Ya}function Va(A,t,e){const i=[],n=e||ja(A[0]),s=A.length-1;for(let r=0;r<s;r++){let a=n(A[r],A[r+1]);if(t){const g=Array.isArray(t)?t[r]:t;a=_s(g,a)}i.push(a)}return i}function qa([A,t],[e]){return i=>e(Qs(A,t,i))}function Xa(A,t){const e=A.length,i=e-1;return n=>{let s=0,r=!1;if(n<=A[0]?r=!0:n>=A[i]&&(s=i-1,r=!0),!r){let g=1;for(;g<e&&!(A[g]>n||g===i);g++);s=g-1}const a=Qs(A[s],A[s+1],n);return t[s](a)}}function Ls(A,t,{clamp:e=!0,ease:i,mixer:n}={}){const s=A.length;Es(s===t.length),Es(!i||!Array.isArray(i)||i.length===s-1),A[0]>A[s-1]&&(A=[].concat(A),t=[].concat(t),A.reverse(),t.reverse());const r=Va(t,i,n),a=s===2?qa(A,r):Xa(A,r);return e?g=>a(ai(A[0],A[s-1],g)):a}const BA=A=>t=>1-A(1-t),Ci=A=>t=>t<=.5?A(2*t)/2:(2-A(2*(1-t)))/2,Za=A=>t=>Math.pow(t,A),Us=A=>t=>t*t*((A+1)*t-A),za=A=>{const t=Us(A);return e=>(e*=2)<1?.5*t(e):.5*(2-Math.pow(2,-10*(e-1)))},Ts=1.525,$a=4/11,tl=8/11,el=9/10,Al=A=>A,di=Za(2),il=BA(di),Os=Ci(di),Ps=A=>1-Math.sin(Math.acos(A)),Js=BA(Ps),nl=Ci(Js),Qi=Us(Ts),sl=BA(Qi),ol=Ci(Qi),rl=za(Ts),al=4356/361,ll=35442/1805,gl=16061/1805,EA=A=>{if(A===1||A===0)return A;const t=A*A;return A<$a?7.5625*t:A<tl?9.075*t-9.9*A+3.4:A<el?al*t-ll*A+gl:10.8*A*A-20.52*A+10.72},cl=BA(EA),hl=A=>A<.5?.5*(1-EA(1-A*2)):.5*EA(A*2-1)+.5;function ul(A,t){return A.map(()=>t||Os).splice(0,A.length-1)}function Il(A){const t=A.length;return A.map((e,i)=>i!==0?i/(t-1):0)}function fl(A,t){return A.map(e=>e*t)}function CA({from:A=0,to:t=1,ease:e,offset:i,duration:n=300}){const s={done:!1,value:A},r=Array.isArray(t)?t:[A,t],a=fl(i&&i.length===r.length?i:Il(r),n);function g(){return Ls(a,r,{ease:Array.isArray(e)?e:ul(r,e)})}let c=g();return{next:B=>(s.value=c(B),s.done=B>=n,s),flipTarget:()=>{r.reverse(),c=g()}}}function Bl({velocity:A=0,from:t=0,power:e=.8,timeConstant:i=350,restDelta:n=.5,modifyTarget:s}){const r={done:!1,value:t};let a=e*A;const g=t+a,c=s===void 0?g:s(g);return c!==g&&(a=c-t),{next:B=>{const o=-a*Math.exp(-B/i);return r.done=!(o>n||o<-n),r.value=r.done?c:c+o,r},flipTarget:()=>{}}}const Ks={keyframes:CA,spring:ci,decay:Bl};function El(A){if(Array.isArray(A.to))return CA;if(Ks[A.type])return Ks[A.type];const t=new Set(Object.keys(A));return t.has("ease")||t.has("duration")&&!t.has("dampingRatio")?CA:t.has("dampingRatio")||t.has("stiffness")||t.has("mass")||t.has("damping")||t.has("restSpeed")||t.has("restDelta")?ci:CA}const Ys=1/60*1e3,Cl=typeof performance<"u"?()=>performance.now():()=>Date.now(),Ws=typeof window<"u"?A=>window.requestAnimationFrame(A):A=>setTimeout(()=>A(Cl()),Ys);function dl(A){let t=[],e=[],i=0,n=!1,s=!1;const r=new WeakSet,a={schedule:(g,c=!1,B=!1)=>{const o=B&&n,l=o?t:e;return c&&r.add(g),l.indexOf(g)===-1&&(l.push(g),o&&n&&(i=t.length)),g},cancel:g=>{const c=e.indexOf(g);c!==-1&&e.splice(c,1),r.delete(g)},process:g=>{if(n){s=!0;return}if(n=!0,[t,e]=[e,t],e.length=0,i=t.length,i)for(let c=0;c<i;c++){const B=t[c];B(g),r.has(B)&&(a.schedule(B),A())}n=!1,s&&(s=!1,a.process(g))}};return a}const Ql=40;let pi=!0,Ke=!1,yi=!1;const Ye={delta:0,timestamp:0},We=["read","update","preRender","render","postRender"],dA=We.reduce((A,t)=>(A[t]=dl(()=>Ke=!0),A),{}),pl=We.reduce((A,t)=>{const e=dA[t];return A[t]=(i,n=!1,s=!1)=>(Ke||ml(),e.schedule(i,n,s)),A},{}),yl=We.reduce((A,t)=>(A[t]=dA[t].cancel,A),{});We.reduce((A,t)=>(A[t]=()=>dA[t].process(Ye),A),{});const wl=A=>dA[A].process(Ye),js=A=>{Ke=!1,Ye.delta=pi?Ys:Math.max(Math.min(A-Ye.timestamp,Ql),1),Ye.timestamp=A,yi=!0,We.forEach(wl),yi=!1,Ke&&(pi=!1,Ws(js))},ml=()=>{Ke=!0,pi=!0,yi||Ws(js)};function Vs(A,t,e=0){return A-t-e}function Dl(A,t,e=0,i=!0){return i?Vs(t+-A,t,e):t-(A-t)+e}function vl(A,t,e,i){return i?A>=t+e:A<=-e}const bl=A=>{const t=({delta:e})=>A(e);return{start:()=>pl.update(t,!0),stop:()=>yl.update(t)}};function qs(A){var t,e,{from:i,autoplay:n=!0,driver:s=bl,elapsed:r=0,repeat:a=0,repeatType:g="loop",repeatDelay:c=0,onPlay:B,onStop:o,onComplete:l,onRepeat:h,onUpdate:f}=A,E=Bs(A,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]);let{to:d}=E,C,y=0,m=E.duration,b,M=!1,G=!0,O;const K=El(E);!((e=(t=K).needsInterpolation)===null||e===void 0)&&e.call(t,i,d)&&(O=Ls([0,100],[i,d],{clamp:!1}),i=0,d=100);const H=K(Object.assign(Object.assign({},E),{from:i,to:d}));function T(){y++,g==="reverse"?(G=y%2===0,r=Dl(r,m,c,G)):(r=Vs(r,m,c),g==="mirror"&&H.flipTarget()),M=!1,h&&h()}function W(){C.stop(),l&&l()}function At(tt){if(G||(tt=-tt),r+=tt,!M){const It=H.next(Math.max(0,r));b=It.value,O&&(b=O(b)),M=G?It.done:r<=0}f?.(b),M&&(y===0&&(m??(m=r)),y<a?vl(r,m,c,G)&&T():W())}function ot(){B?.(),C=s(At),C.start()}return n&&ot(),{stop:()=>{o?.(),C.stop()}}}const Sl=A=>{if(typeof A=="number")return t=>Math.round(t/A)*A;{let t=0;const e=A.length;return i=>{let n=Math.abs(A[0]-i);for(t=1;t<e;t++){const s=A[t],r=Math.abs(s-i);if(r===0)return s;if(r>n)return A[t-1];if(t===e-1)return s;n=r}}}};function xl(){return globalThis.__CANVAS_ENGINE_TICK__}function Ce(A){return A.animatedState!==void 0}function wi(A,t={}){const e={current:A,start:A,end:A},i=20;let n=null,s=!1;const r=Y(A),a=Y(e);nt(()=>{const B=a();r.set(B.current)});function g(B,o={}){if(B===void 0)return a();const l=a(),h={current:l.current,start:l.current,end:B};a.set(h),n&&(n.stop(),n=null),s=!1;const f={...t,...o},E=f.duration??i,d=f.ease??(b=>b);f.tick||xl();const C=l.current,y=B,m=o.onComplete??t.onComplete;n=qs({from:C,to:y,duration:E,ease:d,onUpdate:b=>{if(s)return;const M=b;a.update(G=>({...G,current:M})),f.onUpdate?.(M),o.onUpdate?.(M)},onComplete:()=>{a.update(b=>({...b,current:y})),m?.()}})}const c=function(){return a().current};for(const B in r)c[B]=r[B];return c.animatedState=a,c.update=B=>{g(B(a().current))},c.set=async(B,o={})=>new Promise(l=>{const h=o.onComplete;g(B,{...o,onComplete:()=>{h?h():t.onComplete&&t.onComplete(),l()}})}),c.pause=()=>{s||(s=!0,n&&(n.stop(),n=null))},c.resume=()=>{if(!s)return;s=!1;const B=a();B.current!==B.end&&g(B.end,t)},c}async function kl(A){for(const t of A)Array.isArray(t)?await Promise.all(t.map(e=>e())):await t()}const mi={},dt=A=>A&&typeof A=="object"&&"tag"in A&&"props"in A&&"componentInstance"in A,Di=A=>typeof A=="string"||typeof A=="number"||typeof A=="boolean"||A===null||A===void 0;function st(A,t){mi[A]=t}let Xs=!1;function vi(){Xs||(Xs=!0)}function St(A){if(!A)return!1;const t=A.propObservables?.freeze??A.props?.freeze;if(t!=null){if(N(t)){if(t()===!0)return!0}else if(t===!0)return!0}return A.parent?St(A.parent):!1}function bi(A,t){if(!A.propObservables)return;const e=i=>{if(N(i)&&Ce(i)){const n=i;t?n.pause():n.resume()}else gA(i)&&!dt(i)&&Object.values(i).forEach(e)};Object.values(A.propObservables).forEach(e)}function lt(A){if(Array.isArray(A)){A.forEach(t=>lt(t));return}if(A){if(A.props?.children)for(let t of A.props.children)lt(t);for(let t in A.directives)A.directives[t].onDestroy?.(A);A.componentInstance&&A.componentInstance.onDestroy?A.componentInstance.onDestroy(A.parent,()=>{A.propSubscriptions?.forEach(t=>t.unsubscribe()),A.effectSubscriptions?.forEach(t=>t.unsubscribe()),A.effectUnmounts?.forEach(t=>{ee(t)?t.then(e=>{e?.()}):t?.()})}):(A.propSubscriptions?.forEach(t=>t.unsubscribe()),A.effectSubscriptions?.forEach(t=>t.unsubscribe()),A.effectUnmounts?.forEach(t=>t?.()))}}function ht(A,t){if(!mi[A])throw new Error(`Component ${A} is not registered`);const e=new mi[A],i={tag:A,props:{},componentInstance:e,propSubscriptions:[],propObservables:t,parent:null,directives:{},effectUnmounts:[],effectSubscriptions:[],effectMounts:[],destroy(){lt(this)},allElements:new $t,isFrozen:!1};if(t){const o=(l,h="")=>{const f=(E,d,C)=>{if(E==""){i.props[d]=C;return}zA(i.props,E+"."+d,C)};Object.entries(l).forEach(([E,d])=>{if(N(d)){const C=d;if("dependencies"in C&&C.dependencies.size==0){f(h,E,C()),E==="freeze"&&(i.isFrozen=C()===!0);return}if(E==="freeze"){i.isFrozen=C()===!0,bi(i,i.isFrozen),i.propSubscriptions.push(C.observable.subscribe(y=>{const m=i.isFrozen;i.isFrozen=y===!0,m!==i.isFrozen&&bi(i,i.isFrozen)}));return}i.propSubscriptions.push(C.observable.subscribe(y=>{if(St(i)){Ce(C)&&C.pause();return}if(Ce(C)&&C.resume(),f(h,E,y),i.directives[E]&&i.directives[E].onUpdate?.(y,i),E=="tick")return St(i),void 0;e.onUpdate?.(h==""?{[E]:y}:zA({},h+"."+E,y))}))}else E==="freeze"&&(i.isFrozen=d===!0,bi(i,i.isFrozen)),gA(d)&&E!="context"&&!dt(d)?o(d,(h?h+".":"")+E):f(h,E,d)})};o(t)}e.onInit?.(i.props);const n=new $t;if(t?.isRoot&&(i.allElements=n,i.props.context.rootElement=i,i.componentInstance.onMount?.(i),c(i)),t)for(let o in t){const l=si(i,o);l&&(i.directives[o]=l)}async function s(o){return(await Promise.all(o.map(async h=>N(h)?h():ee(h)?await h:h))).every(h=>h!==void 0)}function r(o,l,h,f){const E=h.filter(y=>N(y));if(h.filter(y=>ee(y)),E.length===0)return;const d=E.map(y=>y.observable),C=XA(d).subscribe(async()=>{if(await s(h)){C.unsubscribe();const m=l.propSubscriptions.indexOf(C);m>-1&&l.propSubscriptions.splice(m,1),a(o,l,f),c(l)}});l.propSubscriptions.push(C)}function a(o,l,h){l.componentInstance.onMount?.(l,h);for(let f in l.directives)l.directives[f].onMount?.(l);l.effectMounts.forEach(f=>{l.effectUnmounts.push(f(l))})}async function g(o,l,h){let f=o;for(;f?.tag==="fragment";)f=f.parent;if(l.props.context=f.props.context,l.parent=f,!l.propObservables?.freeze&&!l.props?.freeze&&St(f)&&(l.isFrozen=!0),l.props.dependencies&&Array.isArray(l.props.dependencies)){const E=l.props.dependencies;if(!await s(E)){r(f,l,E,h);return}}a(f,l,h)}async function c(o){if(o.props.attach&&(N(o.propObservables?.attach)?await new Promise(h=>{let f=null;o.propSubscriptions.push(o.propObservables.attach.observable.subscribe(async E=>{const d=E?.value??E;if(!d)throw new Error(`attach in ${o.tag} is undefined or null, add a component`);f&&lt(f),f=d,await B(o,d),h(void 0)}))}):o.props.children.push(o.props.attach)),!!o.props.children)for(let l of o.props.children)l&&await B(o,l)}async function B(o,l){if(ee(l)&&(l=await l),l instanceof z){const h=l.subscribe(f=>{if(f&&typeof f=="object"&&"elements"in f){const{elements:E,prev:d}=f,C=E.filter(y=>y!==null);if(d){C.forEach(async y=>{const m=o.props.children.indexOf(d.props.key);y instanceof z?await B(o,y):dt(y)&&(g(o,y,m+1),c(y))});return}C.forEach(async y=>{Array.isArray(y)?y.forEach(async m=>{m instanceof z?await B(o,m):dt(m)&&(g(o,m),c(m))}):y instanceof z?await B(o,y):dt(y)&&(g(o,y),c(y))})}else dt(f)?(g(o,f),c(f)):Array.isArray(f)&&f.forEach(async E=>{E instanceof z?await B(o,E):dt(E)&&(g(o,E),c(E))});n.next(void 0)});o.effectSubscriptions.push(h)}else dt(l)&&(g(o,l),await c(l))}return i}function Ml(A,t){return Ee(A)&&A.dependencies.size==0?A=Y(A()):N(A)||(A=Y(A)),sa(()=>{let e=[],i=new Map,n=!0;const s=a=>a?dt(a)?a:{tag:"fragment",props:{children:Array.isArray(a)?a:[a]},componentInstance:{},propSubscriptions:[],effectSubscriptions:[],effectMounts:[],effectUnmounts:[],propObservables:{},parent:null,directives:{},destroy(){lt(this)},allElements:new $t,isFrozen:!1}:null,r=a=>Array.isArray(a());return new z(a=>{const g=r(A)?A.observable.subscribe(c=>{if(n){n=!1,e.forEach(l=>l.destroy()),e=[],i.clear();const o=A();o&&o.forEach((l,h)=>{const f=s(t(l,h));f&&(e.push(f),i.set(h,f))}),a.next({elements:[...e]});return}const B=Array.isArray(c)||c&&typeof c=="object"&&!("type"in c);if(c.type==="init"||c.type==="reset"||B){e.forEach(l=>lt(l)),e=[],i.clear();const o=A();o&&o.forEach((l,h)=>{const f=s(t(l,h));f&&(e.push(f),i.set(h,f))})}else if(c.type==="add"&&c.index!==void 0){const o=c.items.map((l,h)=>{const f=s(t(l,c.index+h));return f&&i.set(c.index+h,f),f}).filter(l=>l!==null);e.splice(c.index,0,...o)}else if(c.type==="remove"&&c.index!==void 0)e.splice(c.index,1).forEach(l=>{lt(l),i.delete(c.index)});else if(c.type==="update"&&c.index!==void 0&&c.items.length===1){const o=c.index,l=c.items[0];if(o>=e.length||e[o]===void 0||!i.has(o)){const h=s(t(l,o));h?(e.splice(o,0,h),i.set(o,h)):console.warn(`Element creation returned null for index ${o} during add-like update.`)}else{const h=e[o];lt(h);const f=s(t(l,o));f?(e[o]=f,i.set(o,f)):(e.splice(o,1),i.delete(o))}}a.next({elements:[...e]})}):A.observable.subscribe(c=>{const B=c.key;if(n){n=!1,e.forEach(l=>lt(l)),e=[],i.clear();const o=A();o&&Object.entries(o).forEach(([l,h])=>{const f=s(t(h,l));f&&(e.push(f),i.set(l,f))}),a.next({elements:[...e]});return}if(c.type==="init"||c.type==="reset"){e.forEach(l=>lt(l)),e=[],i.clear();const o=A();o&&Object.entries(o).forEach(([l,h])=>{const f=s(t(h,l));f&&(e.push(f),i.set(l,f))})}else if(c.type==="add"&&c.key&&c.value!==void 0){const o=s(t(c.value,B));o&&(e.push(o),i.set(B,o))}else if(c.type==="remove"&&c.key){const o=e.findIndex(l=>i.get(B)===l);if(o!==-1){const[l]=e.splice(o,1);lt(l),i.delete(B)}}else if(c.type==="update"&&c.key&&c.value!==void 0){const o=e.findIndex(l=>i.get(B)===l);if(o!==-1){const l=e[o];lt(l);const h=s(t(c.value,B));h&&(e[o]=h,i.set(B,h))}}a.next({elements:[...e]})});return()=>{g.unsubscribe(),e.forEach(c=>lt(c))}})}).pipe(ra({bufferSize:1,refCount:!0}))}function Rl(A,t,...e){let i=null,n=-1;const s=[];let r=null;const a=c=>N(c)?c:typeof c=="function"?Ct(c):Y(c);for(const c of e)if(Array.isArray(c))s.push({condition:a(c[0]),elementFn:c[1]});else if(typeof c=="function"){r=c;break}const g=[{condition:a(A),elementFn:t},...s];return new z(c=>{const B=[],o=()=>{let l=-1;for(let E=0;E<g.length;E++){const d=g[E].condition;if(d()){l=E;break}}const h=l===-1&&r,f=h?-2:l;if(f!==n)if(i&&(lt(i),i=null),n=f,h){let E=r();ee(E)?aA(E).subscribe(d=>{i=d,c.next({type:"init",elements:[d]})}):(i=E,c.next({type:"init",elements:[i]}))}else if(l>=0){let E=g[l].elementFn();ee(E)?aA(E).subscribe(d=>{i=d,c.next({type:"init",elements:[d]})}):(i=E,c.next({type:"init",elements:[i]}))}else c.next({elements:[]})};return g.forEach(({condition:l})=>{const h=l;B.push(h.observable.subscribe(()=>{o()}))}),o(),()=>{B.forEach(l=>l.unsubscribe()),i&&lt(i)}}).pipe(es())}class Zs extends vt{constructor(){super(...arguments),this.keyboardControls=null,this.gamepadControls=null,this.joystickControls=null,this.freezeSubscription=null,this.element=null}onInit(t){this.element=t;const e=t.props.controls?.value??t.props.controls;if(!e)return;this.keyboardControls=new gs,this.keyboardControls.setInputs(e),this.keyboardControls.start();const i=e.gamepad;i!==void 0&&i.enabled!==!1&&(this.gamepadControls=new us,this.gamepadControls.setInputs(e),this.gamepadControls.start());const n=e.joystick;n!==void 0&&n.enabled!==!1&&(this.joystickControls=new Is,this.joystickControls.setInputs(e),this.joystickControls.start()),St(t)&&this.stopInputs();const s=t.propObservables?.freeze??t.props?.freeze;N(s)&&(this.freezeSubscription=s.observable.subscribe(r=>{r?this.stopInputs():this.listenInputs()}))}onMount(t){}onUpdate(t,e){const i=t.controls?.value??t.controls;i&&(this.keyboardControls&&this.keyboardControls.setInputs(i),this.gamepadControls&&this.gamepadControls.setInputs(i)),t.freeze!==void 0&&this.element&&(St(this.element)?this.stopInputs():this.listenInputs())}onDestroy(t){this.freezeSubscription&&(this.freezeSubscription.unsubscribe(),this.freezeSubscription=null),this.keyboardControls&&(this.keyboardControls.destroy(),this.keyboardControls=null),this.gamepadControls&&(this.gamepadControls.destroy(),this.gamepadControls=null),this.joystickControls&&(this.joystickControls.destroy(),this.joystickControls=null),this.element=null}getControl(t){return this.keyboardControls?.getControl(t)}getControls(){return this.keyboardControls?.getControls()||{}}async applyControl(t,e,i){this.keyboardControls&&await this.keyboardControls.applyControl(t,e),this.gamepadControls&&await this.gamepadControls.applyControl(t,e,i),this.joystickControls&&await this.joystickControls.applyControl(t,e,i)}stopInputs(){this.keyboardControls&&this.keyboardControls.stopInputs(),this.gamepadControls&&this.gamepadControls.stopInputs(),this.joystickControls&&this.joystickControls.stopInputs()}listenInputs(){this.keyboardControls&&this.keyboardControls.listenInputs(),this.gamepadControls&&this.gamepadControls.listenInputs(),this.joystickControls&&this.joystickControls.listenInputs()}get options(){return this.keyboardControls?.options||{}}get keyboard(){return this.keyboardControls}get gamepad(){return this.gamepadControls}get joystick(){return this.joystickControls}}bt("controls",Zs);class zs extends vt{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(t){this.tick=t.propObservables?.tick}onDestroy(){}onMount(t){}onUpdate(t){}nextTick(t){this.lastTimestamp=this.lastTimestamp||this.timestamp,this.deltaTime=fe()-this.timestamp,this.timestamp=t,this.tick.set({timestamp:this.timestamp,deltaTime:this.deltaTime,frame:this.frame,deltaRatio:~~this.deltaTime/~~Le(this.fps)}),this.lastTimestamp=this.timestamp,this.frame++}start(t={}){t.maxFps&&(this.maxFps=t.maxFps),t.fps&&(this.fps=t.fps),t.delay&&(this.requestedDelay=t.delay);const e=i=>{As()?window.requestAnimationFrame(i.bind(this)):setTimeout(()=>{this.requestedDelay=0,i(fe())},Le(this.fps)+this.requestedDelay)};if(this.maxFps){const i=Le(this.maxFps);let n=fe(),s=fe();const r=a=>{if(this._stop)return;e(r),n=fe();const g=n-s;g>i&&(s=n-g%i,this.nextTick(a))};e(r)}else{const i=n=>{e(i),this.nextTick(n)};e(i)}return this}stop(){this._stop=!0}}bt("tick",zs);const Qt=(A,t={})=>{if(N(A))return A();const e={};for(let i in A){const n=A[i];e[i]=Di(n)?Y(n):n}for(let i in t)i in e||(e[i]=Di(t[i])?Y(t[i]):t[i]);return e},Si=A=>t=>{const e=N(A)?A():A,i={};for(const n in t){const s=t[n],r=e[n];let a;if(typeof s=="function")xi(n,r,[s]),a=r;else if(Array.isArray(s))xi(n,r,s),a=r;else if(s&&typeof s=="object"){if(s.required&&r===void 0)throw new Error(`Missing required prop: ${n}`);if(s.type){const g=Array.isArray(s.type)?s.type:[s.type];xi(n,r,g)}if(s.validator&&!s.validator(r,e))throw new Error(`Invalid prop: custom validation failed for prop "${n}"`);r===void 0&&"default"in s?a=typeof s.default=="function"?s.default(e):s.default:a=r}i[n]=N(a)?a:Y(a)}return{...Qt(e),...i}};function xi(A,t,e){if(t==null)return;const i=N(t)?t():t;if(!e.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 "${A}". Expected ${e.map(s=>s.name).join(" or ")}`)}class $s extends vt{onInit(t){}onMount(t){this.onUpdate(t.props.viewportFollow,t)}onUpdate(t,e){const i=e.props.context?.viewport;if(!i){if(t)throw $A("ViewportFollow directive requires a Viewport component to be mounted in the same context");return}if(t)if(t===!0)i.follow(e.componentInstance);else{const n=Qt(t,{speed:void 0,acceleration:void 0,radius:void 0});i.follow(e.componentInstance,{speed:n.speed(),acceleration:n.acceleration(),radius:n.radius()})}else t===null&&i.plugins.remove("follow")}onDestroy(t){const{viewportFollow:e}=t.props,i=t.props.context?.viewport;e&&i&&i.plugins.remove("follow")}}bt("viewportFollow",$s);var je=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function _l(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var ki={};var to;function Fl(){return to||(to=1,(function(A){(function(){var t=function(){this.init()};t.prototype={init:function(){var o=this||e;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 l=this||e;if(o=parseFloat(o),l.ctx||B(),typeof o<"u"&&o>=0&&o<=1){if(l._volume=o,l._muted)return l;l.usingWebAudio&&l.masterGain.gain.setValueAtTime(o,e.ctx.currentTime);for(var h=0;h<l._howls.length;h++)if(!l._howls[h]._webAudio)for(var f=l._howls[h]._getSoundIds(),E=0;E<f.length;E++){var d=l._howls[h]._soundById(f[E]);d&&d._node&&(d._node.volume=d._volume*o)}return l}return l._volume},mute:function(o){var l=this||e;l.ctx||B(),l._muted=o,l.usingWebAudio&&l.masterGain.gain.setValueAtTime(o?0:l._volume,e.ctx.currentTime);for(var h=0;h<l._howls.length;h++)if(!l._howls[h]._webAudio)for(var f=l._howls[h]._getSoundIds(),E=0;E<f.length;E++){var d=l._howls[h]._soundById(f[E]);d&&d._node&&(d._node.muted=o?!0:d._muted)}return l},stop:function(){for(var o=this||e,l=0;l<o._howls.length;l++)o._howls[l].stop();return o},unload:function(){for(var o=this||e,l=o._howls.length-1;l>=0;l--)o._howls[l].unload();return o.usingWebAudio&&o.ctx&&typeof o.ctx.close<"u"&&(o.ctx.close(),o.ctx=null,B()),o},codecs:function(o){return(this||e)._codecs[o.replace(/^x-/,"")]},_setup:function(){var o=this||e;if(o.state=o.ctx&&o.ctx.state||"suspended",o._autoSuspend(),!o.usingWebAudio)if(typeof Audio<"u")try{var l=new Audio;typeof l.oncanplaythrough>"u"&&(o._canPlayEvent="canplay")}catch{o.noAudio=!0}else o.noAudio=!0;try{var l=new Audio;l.muted&&(o.noAudio=!0)}catch{}return o.noAudio||o._setupCodecs(),o},_setupCodecs:function(){var o=this||e,l=null;try{l=typeof Audio<"u"?new Audio:null}catch{return o}if(!l||typeof l.canPlayType!="function")return o;var h=l.canPlayType("audio/mpeg;").replace(/^no$/,""),f=o._navigator?o._navigator.userAgent:"",E=f.match(/OPR\/(\d+)/g),d=E&&parseInt(E[0].split("/")[1],10)<33,C=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,y=f.match(/Version\/(.*?) /),m=C&&y&&parseInt(y[1],10)<15;return o._codecs={mp3:!!(!d&&(h||l.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!h,opus:!!l.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!l.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!l.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(l.canPlayType('audio/wav; codecs="1"')||l.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!l.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!l.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(l.canPlayType("audio/x-m4a;")||l.canPlayType("audio/m4a;")||l.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(l.canPlayType("audio/x-m4b;")||l.canPlayType("audio/m4b;")||l.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(l.canPlayType("audio/x-mp4;")||l.canPlayType("audio/mp4;")||l.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!m&&l.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!m&&l.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!l.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(l.canPlayType("audio/x-flac;")||l.canPlayType("audio/flac;")).replace(/^no$/,"")},o},_unlockAudio:function(){var o=this||e;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 l=function(h){for(;o._html5AudioPool.length<o.html5PoolSize;)try{var f=new Audio;f._unlocked=!0,o._releaseHtml5Audio(f)}catch{o.noAudio=!0;break}for(var E=0;E<o._howls.length;E++)if(!o._howls[E]._webAudio)for(var d=o._howls[E]._getSoundIds(),C=0;C<d.length;C++){var y=o._howls[E]._soundById(d[C]);y&&y._node&&!y._node._unlocked&&(y._node._unlocked=!0,y._node.load())}o._autoResume();var m=o.ctx.createBufferSource();m.buffer=o._scratchBuffer,m.connect(o.ctx.destination),typeof m.start>"u"?m.noteOn(0):m.start(0),typeof o.ctx.resume=="function"&&o.ctx.resume(),m.onended=function(){m.disconnect(0),o._audioUnlocked=!0,document.removeEventListener("touchstart",l,!0),document.removeEventListener("touchend",l,!0),document.removeEventListener("click",l,!0),document.removeEventListener("keydown",l,!0);for(var b=0;b<o._howls.length;b++)o._howls[b]._emit("unlock")}};return document.addEventListener("touchstart",l,!0),document.addEventListener("touchend",l,!0),document.addEventListener("click",l,!0),document.addEventListener("keydown",l,!0),o}},_obtainHtml5Audio:function(){var o=this||e;if(o._html5AudioPool.length)return o._html5AudioPool.pop();var l=new Audio().play();return l&&typeof Promise<"u"&&(l instanceof Promise||typeof l.then=="function")&&l.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(o){var l=this||e;return o._unlocked&&l._html5AudioPool.push(o),l},_autoSuspend:function(){var o=this;if(!(!o.autoSuspend||!o.ctx||typeof o.ctx.suspend>"u"||!e.usingWebAudio)){for(var l=0;l<o._howls.length;l++)if(o._howls[l]._webAudio){for(var h=0;h<o._howls[l]._sounds.length;h++)if(!o._howls[l]._sounds[h]._paused)return o}return o._suspendTimer&&clearTimeout(o._suspendTimer),o._suspendTimer=setTimeout(function(){if(o.autoSuspend){o._suspendTimer=null,o.state="suspending";var f=function(){o.state="suspended",o._resumeAfterSuspend&&(delete o._resumeAfterSuspend,o._autoResume())};o.ctx.suspend().then(f,f)}},3e4),o}},_autoResume:function(){var o=this;if(!(!o.ctx||typeof o.ctx.resume>"u"||!e.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 l=0;l<o._howls.length;l++)o._howls[l]._emit("resume")}),o._suspendTimer&&(clearTimeout(o._suspendTimer),o._suspendTimer=null)):o.state==="suspending"&&(o._resumeAfterSuspend=!0),o}};var e=new t,i=function(o){var l=this;if(!o.src||o.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}l.init(o)};i.prototype={init:function(o){var l=this;return e.ctx||B(),l._autoplay=o.autoplay||!1,l._format=typeof o.format!="string"?o.format:[o.format],l._html5=o.html5||!1,l._muted=o.mute||!1,l._loop=o.loop||!1,l._pool=o.pool||5,l._preload=typeof o.preload=="boolean"||o.preload==="metadata"?o.preload:!0,l._rate=o.rate||1,l._sprite=o.sprite||{},l._src=typeof o.src!="string"?o.src:[o.src],l._volume=o.volume!==void 0?o.volume:1,l._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},l._duration=0,l._state="unloaded",l._sounds=[],l._endTimers={},l._queue=[],l._playLock=!1,l._onend=o.onend?[{fn:o.onend}]:[],l._onfade=o.onfade?[{fn:o.onfade}]:[],l._onload=o.onload?[{fn:o.onload}]:[],l._onloaderror=o.onloaderror?[{fn:o.onloaderror}]:[],l._onplayerror=o.onplayerror?[{fn:o.onplayerror}]:[],l._onpause=o.onpause?[{fn:o.onpause}]:[],l._onplay=o.onplay?[{fn:o.onplay}]:[],l._onstop=o.onstop?[{fn:o.onstop}]:[],l._onmute=o.onmute?[{fn:o.onmute}]:[],l._onvolume=o.onvolume?[{fn:o.onvolume}]:[],l._onrate=o.onrate?[{fn:o.onrate}]:[],l._onseek=o.onseek?[{fn:o.onseek}]:[],l._onunlock=o.onunlock?[{fn:o.onunlock}]:[],l._onresume=[],l._webAudio=e.usingWebAudio&&!l._html5,typeof e.ctx<"u"&&e.ctx&&e.autoUnlock&&e._unlockAudio(),e._howls.push(l),l._autoplay&&l._queue.push({event:"play",action:function(){l.play()}}),l._preload&&l._preload!=="none"&&l.load(),l},load:function(){var o=this,l=null;if(e.noAudio){o._emit("loaderror",null,"No audio support.");return}typeof o._src=="string"&&(o._src=[o._src]);for(var h=0;h<o._src.length;h++){var f,E;if(o._format&&o._format[h])f=o._format[h];else{if(E=o._src[h],typeof E!="string"){o._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}f=/^data:audio\/([^;,]+);/i.exec(E),f||(f=/\.([^.]+)$/.exec(E.split("?",1)[0])),f&&(f=f[1].toLowerCase())}if(f||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),f&&e.codecs(f)){l=o._src[h];break}}if(!l){o._emit("loaderror",null,"No codec support for selected audio sources.");return}return o._src=l,o._state="loading",window.location.protocol==="https:"&&l.slice(0,5)==="http:"&&(o._html5=!0,o._webAudio=!1),new n(o),o._webAudio&&r(o),o},play:function(o,l){var h=this,f=null;if(typeof o=="number")f=o,o=null;else{if(typeof o=="string"&&h._state==="loaded"&&!h._sprite[o])return null;if(typeof o>"u"&&(o="__default",!h._playLock)){for(var E=0,d=0;d<h._sounds.length;d++)h._sounds[d]._paused&&!h._sounds[d]._ended&&(E++,f=h._sounds[d]._id);E===1?o=null:f=null}}var C=f?h._soundById(f):h._inactiveSound();if(!C)return null;if(f&&!o&&(o=C._sprite||"__default"),h._state!=="loaded"){C._sprite=o,C._ended=!1;var y=C._id;return h._queue.push({event:"play",action:function(){h.play(y)}}),y}if(f&&!C._paused)return l||h._loadQueue("play"),C._id;h._webAudio&&e._autoResume();var m=Math.max(0,C._seek>0?C._seek:h._sprite[o][0]/1e3),b=Math.max(0,(h._sprite[o][0]+h._sprite[o][1])/1e3-m),M=b*1e3/Math.abs(C._rate),G=h._sprite[o][0]/1e3,O=(h._sprite[o][0]+h._sprite[o][1])/1e3;C._sprite=o,C._ended=!1;var K=function(){C._paused=!1,C._seek=m,C._start=G,C._stop=O,C._loop=!!(C._loop||h._sprite[o][2])};if(m>=O){h._ended(C);return}var H=C._node;if(h._webAudio){var T=function(){h._playLock=!1,K(),h._refreshBuffer(C);var tt=C._muted||h._muted?0:C._volume;H.gain.setValueAtTime(tt,e.ctx.currentTime),C._playStart=e.ctx.currentTime,typeof H.bufferSource.start>"u"?C._loop?H.bufferSource.noteGrainOn(0,m,86400):H.bufferSource.noteGrainOn(0,m,b):C._loop?H.bufferSource.start(0,m,86400):H.bufferSource.start(0,m,b),M!==1/0&&(h._endTimers[C._id]=setTimeout(h._ended.bind(h,C),M)),l||setTimeout(function(){h._emit("play",C._id),h._loadQueue()},0)};e.state==="running"&&e.ctx.state!=="interrupted"?T():(h._playLock=!0,h.once("resume",T),h._clearTimer(C._id))}else{var W=function(){H.currentTime=m,H.muted=C._muted||h._muted||e._muted||H.muted,H.volume=C._volume*e.volume(),H.playbackRate=C._rate;try{var tt=H.play();if(tt&&typeof Promise<"u"&&(tt instanceof Promise||typeof tt.then=="function")?(h._playLock=!0,K(),tt.then(function(){h._playLock=!1,H._unlocked=!0,l?h._loadQueue():h._emit("play",C._id)}).catch(function(){h._playLock=!1,h._emit("playerror",C._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."),C._ended=!0,C._paused=!0})):l||(h._playLock=!1,K(),h._emit("play",C._id)),H.playbackRate=C._rate,H.paused){h._emit("playerror",C._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"||C._loop?h._endTimers[C._id]=setTimeout(h._ended.bind(h,C),M):(h._endTimers[C._id]=function(){h._ended(C),H.removeEventListener("ended",h._endTimers[C._id],!1)},H.addEventListener("ended",h._endTimers[C._id],!1))}catch(It){h._emit("playerror",C._id,It)}};H.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(H.src=h._src,H.load());var At=window&&window.ejecta||!H.readyState&&e._navigator.isCocoonJS;if(H.readyState>=3||At)W();else{h._playLock=!0,h._state="loading";var ot=function(){h._state="loaded",W(),H.removeEventListener(e._canPlayEvent,ot,!1)};H.addEventListener(e._canPlayEvent,ot,!1),h._clearTimer(C._id)}}return C._id},pause:function(o){var l=this;if(l._state!=="loaded"||l._playLock)return l._queue.push({event:"pause",action:function(){l.pause(o)}}),l;for(var h=l._getSoundIds(o),f=0;f<h.length;f++){l._clearTimer(h[f]);var E=l._soundById(h[f]);if(E&&!E._paused&&(E._seek=l.seek(h[f]),E._rateSeek=0,E._paused=!0,l._stopFade(h[f]),E._node))if(l._webAudio){if(!E._node.bufferSource)continue;typeof E._node.bufferSource.stop>"u"?E._node.bufferSource.noteOff(0):E._node.bufferSource.stop(0),l._cleanBuffer(E._node)}else(!isNaN(E._node.duration)||E._node.duration===1/0)&&E._node.pause();arguments[1]||l._emit("pause",E?E._id:null)}return l},stop:function(o,l){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"stop",action:function(){h.stop(o)}}),h;for(var f=h._getSoundIds(o),E=0;E<f.length;E++){h._clearTimer(f[E]);var d=h._soundById(f[E]);d&&(d._seek=d._start||0,d._rateSeek=0,d._paused=!0,d._ended=!0,h._stopFade(f[E]),d._node&&(h._webAudio?d._node.bufferSource&&(typeof d._node.bufferSource.stop>"u"?d._node.bufferSource.noteOff(0):d._node.bufferSource.stop(0),h._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&&h._clearSound(d._node))),l||h._emit("stop",d._id))}return h},mute:function(o,l){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"mute",action:function(){h.mute(o,l)}}),h;if(typeof l>"u")if(typeof o=="boolean")h._muted=o;else return h._muted;for(var f=h._getSoundIds(l),E=0;E<f.length;E++){var d=h._soundById(f[E]);d&&(d._muted=o,d._interval&&h._stopFade(d._id),h._webAudio&&d._node?d._node.gain.setValueAtTime(o?0:d._volume,e.ctx.currentTime):d._node&&(d._node.muted=e._muted?!0:o),h._emit("mute",d._id))}return h},volume:function(){var o=this,l=arguments,h,f;if(l.length===0)return o._volume;if(l.length===1||l.length===2&&typeof l[1]>"u"){var E=o._getSoundIds(),d=E.indexOf(l[0]);d>=0?f=parseInt(l[0],10):h=parseFloat(l[0])}else l.length>=2&&(h=parseFloat(l[0]),f=parseInt(l[1],10));var C;if(typeof h<"u"&&h>=0&&h<=1){if(o._state!=="loaded"||o._playLock)return o._queue.push({event:"volume",action:function(){o.volume.apply(o,l)}}),o;typeof f>"u"&&(o._volume=h),f=o._getSoundIds(f);for(var y=0;y<f.length;y++)C=o._soundById(f[y]),C&&(C._volume=h,l[2]||o._stopFade(f[y]),o._webAudio&&C._node&&!C._muted?C._node.gain.setValueAtTime(h,e.ctx.currentTime):C._node&&!C._muted&&(C._node.volume=h*e.volume()),o._emit("volume",C._id))}else return C=f?o._soundById(f):o._sounds[0],C?C._volume:0;return o},fade:function(o,l,h,f){var E=this;if(E._state!=="loaded"||E._playLock)return E._queue.push({event:"fade",action:function(){E.fade(o,l,h,f)}}),E;o=Math.min(Math.max(0,parseFloat(o)),1),l=Math.min(Math.max(0,parseFloat(l)),1),h=parseFloat(h),E.volume(o,f);for(var d=E._getSoundIds(f),C=0;C<d.length;C++){var y=E._soundById(d[C]);if(y){if(f||E._stopFade(d[C]),E._webAudio&&!y._muted){var m=e.ctx.currentTime,b=m+h/1e3;y._volume=o,y._node.gain.setValueAtTime(o,m),y._node.gain.linearRampToValueAtTime(l,b)}E._startFadeInterval(y,o,l,h,d[C],typeof f>"u")}}return E},_startFadeInterval:function(o,l,h,f,E,d){var C=this,y=l,m=h-l,b=Math.abs(m/.01),M=Math.max(4,b>0?f/b:f),G=Date.now();o._fadeTo=h,o._interval=setInterval(function(){var O=(Date.now()-G)/f;G=Date.now(),y+=m*O,y=Math.round(y*100)/100,m<0?y=Math.max(h,y):y=Math.min(h,y),C._webAudio?o._volume=y:C.volume(y,o._id,!0),d&&(C._volume=y),(h<l&&y<=h||h>l&&y>=h)&&(clearInterval(o._interval),o._interval=null,o._fadeTo=null,C.volume(h,o._id),C._emit("fade",o._id))},M)},_stopFade:function(o){var l=this,h=l._soundById(o);return h&&h._interval&&(l._webAudio&&h._node.gain.cancelScheduledValues(e.ctx.currentTime),clearInterval(h._interval),h._interval=null,l.volume(h._fadeTo,o),h._fadeTo=null,l._emit("fade",o)),l},loop:function(){var o=this,l=arguments,h,f,E;if(l.length===0)return o._loop;if(l.length===1)if(typeof l[0]=="boolean")h=l[0],o._loop=h;else return E=o._soundById(parseInt(l[0],10)),E?E._loop:!1;else l.length===2&&(h=l[0],f=parseInt(l[1],10));for(var d=o._getSoundIds(f),C=0;C<d.length;C++)E=o._soundById(d[C]),E&&(E._loop=h,o._webAudio&&E._node&&E._node.bufferSource&&(E._node.bufferSource.loop=h,h&&(E._node.bufferSource.loopStart=E._start||0,E._node.bufferSource.loopEnd=E._stop,o.playing(d[C])&&(o.pause(d[C],!0),o.play(d[C],!0)))));return o},rate:function(){var o=this,l=arguments,h,f;if(l.length===0)f=o._sounds[0]._id;else if(l.length===1){var E=o._getSoundIds(),d=E.indexOf(l[0]);d>=0?f=parseInt(l[0],10):h=parseFloat(l[0])}else l.length===2&&(h=parseFloat(l[0]),f=parseInt(l[1],10));var C;if(typeof h=="number"){if(o._state!=="loaded"||o._playLock)return o._queue.push({event:"rate",action:function(){o.rate.apply(o,l)}}),o;typeof f>"u"&&(o._rate=h),f=o._getSoundIds(f);for(var y=0;y<f.length;y++)if(C=o._soundById(f[y]),C){o.playing(f[y])&&(C._rateSeek=o.seek(f[y]),C._playStart=o._webAudio?e.ctx.currentTime:C._playStart),C._rate=h,o._webAudio&&C._node&&C._node.bufferSource?C._node.bufferSource.playbackRate.setValueAtTime(h,e.ctx.currentTime):C._node&&(C._node.playbackRate=h);var m=o.seek(f[y]),b=(o._sprite[C._sprite][0]+o._sprite[C._sprite][1])/1e3-m,M=b*1e3/Math.abs(C._rate);(o._endTimers[f[y]]||!C._paused)&&(o._clearTimer(f[y]),o._endTimers[f[y]]=setTimeout(o._ended.bind(o,C),M)),o._emit("rate",C._id)}}else return C=o._soundById(f),C?C._rate:o._rate;return o},seek:function(){var o=this,l=arguments,h,f;if(l.length===0)o._sounds.length&&(f=o._sounds[0]._id);else if(l.length===1){var E=o._getSoundIds(),d=E.indexOf(l[0]);d>=0?f=parseInt(l[0],10):o._sounds.length&&(f=o._sounds[0]._id,h=parseFloat(l[0]))}else l.length===2&&(h=parseFloat(l[0]),f=parseInt(l[1],10));if(typeof f>"u")return 0;if(typeof h=="number"&&(o._state!=="loaded"||o._playLock))return o._queue.push({event:"seek",action:function(){o.seek.apply(o,l)}}),o;var C=o._soundById(f);if(C)if(typeof h=="number"&&h>=0){var y=o.playing(f);y&&o.pause(f,!0),C._seek=h,C._ended=!1,o._clearTimer(f),!o._webAudio&&C._node&&!isNaN(C._node.duration)&&(C._node.currentTime=h);var m=function(){y&&o.play(f,!0),o._emit("seek",f)};if(y&&!o._webAudio){var b=function(){o._playLock?setTimeout(b,0):m()};setTimeout(b,0)}else m()}else if(o._webAudio){var M=o.playing(f)?e.ctx.currentTime-C._playStart:0,G=C._rateSeek?C._rateSeek-C._seek:0;return C._seek+(G+M*Math.abs(C._rate))}else return C._node.currentTime;return o},playing:function(o){var l=this;if(typeof o=="number"){var h=l._soundById(o);return h?!h._paused:!1}for(var f=0;f<l._sounds.length;f++)if(!l._sounds[f]._paused)return!0;return!1},duration:function(o){var l=this,h=l._duration,f=l._soundById(o);return f&&(h=l._sprite[f._sprite][1]/1e3),h},state:function(){return this._state},unload:function(){for(var o=this,l=o._sounds,h=0;h<l.length;h++)l[h]._paused||o.stop(l[h]._id),o._webAudio||(o._clearSound(l[h]._node),l[h]._node.removeEventListener("error",l[h]._errorFn,!1),l[h]._node.removeEventListener(e._canPlayEvent,l[h]._loadFn,!1),l[h]._node.removeEventListener("ended",l[h]._endFn,!1),e._releaseHtml5Audio(l[h]._node)),delete l[h]._node,o._clearTimer(l[h]._id);var f=e._howls.indexOf(o);f>=0&&e._howls.splice(f,1);var E=!0;for(h=0;h<e._howls.length;h++)if(e._howls[h]._src===o._src||o._src.indexOf(e._howls[h]._src)>=0){E=!1;break}return s&&E&&delete s[o._src],e.noAudio=!1,o._state="unloaded",o._sounds=[],o=null,null},on:function(o,l,h,f){var E=this,d=E["_on"+o];return typeof l=="function"&&d.push(f?{id:h,fn:l,once:f}:{id:h,fn:l}),E},off:function(o,l,h){var f=this,E=f["_on"+o],d=0;if(typeof l=="number"&&(h=l,l=null),l||h)for(d=0;d<E.length;d++){var C=h===E[d].id;if(l===E[d].fn&&C||!l&&C){E.splice(d,1);break}}else if(o)f["_on"+o]=[];else{var y=Object.keys(f);for(d=0;d<y.length;d++)y[d].indexOf("_on")===0&&Array.isArray(f[y[d]])&&(f[y[d]]=[])}return f},once:function(o,l,h){var f=this;return f.on(o,l,h,1),f},_emit:function(o,l,h){for(var f=this,E=f["_on"+o],d=E.length-1;d>=0;d--)(!E[d].id||E[d].id===l||o==="load")&&(setTimeout((function(C){C.call(this,l,h)}).bind(f,E[d].fn),0),E[d].once&&f.off(o,E[d].fn,E[d].id));return f._loadQueue(o),f},_loadQueue:function(o){var l=this;if(l._queue.length>0){var h=l._queue[0];h.event===o&&(l._queue.shift(),l._loadQueue()),o||h.action()}return l},_ended:function(o){var l=this,h=o._sprite;if(!l._webAudio&&o._node&&!o._node.paused&&!o._node.ended&&o._node.currentTime<o._stop)return setTimeout(l._ended.bind(l,o),100),l;var f=!!(o._loop||l._sprite[h][2]);if(l._emit("end",o._id),!l._webAudio&&f&&l.stop(o._id,!0).play(o._id),l._webAudio&&f){l._emit("play",o._id),o._seek=o._start||0,o._rateSeek=0,o._playStart=e.ctx.currentTime;var E=(o._stop-o._start)*1e3/Math.abs(o._rate);l._endTimers[o._id]=setTimeout(l._ended.bind(l,o),E)}return l._webAudio&&!f&&(o._paused=!0,o._ended=!0,o._seek=o._start||0,o._rateSeek=0,l._clearTimer(o._id),l._cleanBuffer(o._node),e._autoSuspend()),!l._webAudio&&!f&&l.stop(o._id,!0),l},_clearTimer:function(o){var l=this;if(l._endTimers[o]){if(typeof l._endTimers[o]!="function")clearTimeout(l._endTimers[o]);else{var h=l._soundById(o);h&&h._node&&h._node.removeEventListener("ended",l._endTimers[o],!1)}delete l._endTimers[o]}return l},_soundById:function(o){for(var l=this,h=0;h<l._sounds.length;h++)if(o===l._sounds[h]._id)return l._sounds[h];return null},_inactiveSound:function(){var o=this;o._drain();for(var l=0;l<o._sounds.length;l++)if(o._sounds[l]._ended)return o._sounds[l].reset();return new n(o)},_drain:function(){var o=this,l=o._pool,h=0,f=0;if(!(o._sounds.length<l)){for(f=0;f<o._sounds.length;f++)o._sounds[f]._ended&&h++;for(f=o._sounds.length-1;f>=0;f--){if(h<=l)return;o._sounds[f]._ended&&(o._webAudio&&o._sounds[f]._node&&o._sounds[f]._node.disconnect(0),o._sounds.splice(f,1),h--)}}},_getSoundIds:function(o){var l=this;if(typeof o>"u"){for(var h=[],f=0;f<l._sounds.length;f++)h.push(l._sounds[f]._id);return h}else return[o]},_refreshBuffer:function(o){var l=this;return o._node.bufferSource=e.ctx.createBufferSource(),o._node.bufferSource.buffer=s[l._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,e.ctx.currentTime),l},_cleanBuffer:function(o){var l=this,h=e._navigator&&e._navigator.vendor.indexOf("Apple")>=0;if(!o.bufferSource)return l;if(e._scratchBuffer&&o.bufferSource&&(o.bufferSource.onended=null,o.bufferSource.disconnect(0),h))try{o.bufferSource.buffer=e._scratchBuffer}catch{}return o.bufferSource=null,l},_clearSound:function(o){var l=/MSIE |Trident\//.test(e._navigator&&e._navigator.userAgent);l||(o.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var n=function(o){this._parent=o,this.init()};n.prototype={init:function(){var o=this,l=o._parent;return o._muted=l._muted,o._loop=l._loop,o._volume=l._volume,o._rate=l._rate,o._seek=0,o._paused=!0,o._ended=!0,o._sprite="__default",o._id=++e._counter,l._sounds.push(o),o.create(),o},create:function(){var o=this,l=o._parent,h=e._muted||o._muted||o._parent._muted?0:o._volume;return l._webAudio?(o._node=typeof e.ctx.createGain>"u"?e.ctx.createGainNode():e.ctx.createGain(),o._node.gain.setValueAtTime(h,e.ctx.currentTime),o._node.paused=!0,o._node.connect(e.masterGain)):e.noAudio||(o._node=e._obtainHtml5Audio(),o._errorFn=o._errorListener.bind(o),o._node.addEventListener("error",o._errorFn,!1),o._loadFn=o._loadListener.bind(o),o._node.addEventListener(e._canPlayEvent,o._loadFn,!1),o._endFn=o._endListener.bind(o),o._node.addEventListener("ended",o._endFn,!1),o._node.src=l._src,o._node.preload=l._preload===!0?"auto":l._preload,o._node.volume=h*e.volume(),o._node.load()),o},reset:function(){var o=this,l=o._parent;return o._muted=l._muted,o._loop=l._loop,o._volume=l._volume,o._rate=l._rate,o._seek=0,o._rateSeek=0,o._paused=!0,o._ended=!0,o._sprite="__default",o._id=++e._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,l=o._parent;l._duration=Math.ceil(o._node.duration*10)/10,Object.keys(l._sprite).length===0&&(l._sprite={__default:[0,l._duration*1e3]}),l._state!=="loaded"&&(l._state="loaded",l._emit("load"),l._loadQueue()),o._node.removeEventListener(e._canPlayEvent,o._loadFn,!1)},_endListener:function(){var o=this,l=o._parent;l._duration===1/0&&(l._duration=Math.ceil(o._node.duration*10)/10,l._sprite.__default[1]===1/0&&(l._sprite.__default[1]=l._duration*1e3),l._ended(o)),o._node.removeEventListener("ended",o._endFn,!1)}};var s={},r=function(o){var l=o._src;if(s[l]){o._duration=s[l].duration,c(o);return}if(/^data:[^;]+;base64,/.test(l)){for(var h=atob(l.split(",")[1]),f=new Uint8Array(h.length),E=0;E<h.length;++E)f[E]=h.charCodeAt(E);g(f.buffer,o)}else{var d=new XMLHttpRequest;d.open(o._xhr.method,l,!0),d.withCredentials=o._xhr.withCredentials,d.responseType="arraybuffer",o._xhr.headers&&Object.keys(o._xhr.headers).forEach(function(C){d.setRequestHeader(C,o._xhr.headers[C])}),d.onload=function(){var C=(d.status+"")[0];if(C!=="0"&&C!=="2"&&C!=="3"){o._emit("loaderror",null,"Failed loading audio file with status: "+d.status+".");return}g(d.response,o)},d.onerror=function(){o._webAudio&&(o._html5=!0,o._webAudio=!1,o._sounds=[],delete s[l],o.load())},a(d)}},a=function(o){try{o.send()}catch{o.onerror()}},g=function(o,l){var h=function(){l._emit("loaderror",null,"Decoding audio data failed.")},f=function(E){E&&l._sounds.length>0?(s[l._src]=E,c(l,E)):h()};typeof Promise<"u"&&e.ctx.decodeAudioData.length===1?e.ctx.decodeAudioData(o).then(f).catch(h):e.ctx.decodeAudioData(o,f,h)},c=function(o,l){l&&!o._duration&&(o._duration=l.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(e.usingWebAudio){try{typeof AudioContext<"u"?e.ctx=new AudioContext:typeof webkitAudioContext<"u"?e.ctx=new webkitAudioContext:e.usingWebAudio=!1}catch{e.usingWebAudio=!1}e.ctx||(e.usingWebAudio=!1);var o=/iP(hone|od|ad)/.test(e._navigator&&e._navigator.platform),l=e._navigator&&e._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),h=l?parseInt(l[1],10):null;if(o&&h&&h<9){var f=/safari/.test(e._navigator&&e._navigator.userAgent.toLowerCase());e._navigator&&!f&&(e.usingWebAudio=!1)}e.usingWebAudio&&(e.masterGain=typeof e.ctx.createGain>"u"?e.ctx.createGainNode():e.ctx.createGain(),e.masterGain.gain.setValueAtTime(e._muted?0:e._volume,e.ctx.currentTime),e.masterGain.connect(e.ctx.destination)),e._setup()}};A.Howler=e,A.Howl=i,typeof je<"u"?(je.HowlerGlobal=t,je.Howler=e,je.Howl=i,je.Sound=n):typeof window<"u"&&(window.HowlerGlobal=t,window.Howler=e,window.Howl=i,window.Sound=n)})();(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){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(e);return i},HowlerGlobal.prototype.pos=function(e,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 e=="number")s._pos=[e,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(e,i,n,s,r,a){var g=this;if(!g.ctx||!g.ctx.listener)return g;var c=g._orientation;if(i=typeof i!="number"?c[1]:i,n=typeof n!="number"?c[2]:n,s=typeof s!="number"?c[3]:s,r=typeof r!="number"?c[4]:r,a=typeof a!="number"?c[5]:a,typeof e=="number")g._orientation=[e,i,n,s,r,a],typeof g.ctx.listener.forwardX<"u"?(g.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),g.ctx.listener.forwardY.setTargetAtTime(i,Howler.ctx.currentTime,.1),g.ctx.listener.forwardZ.setTargetAtTime(n,Howler.ctx.currentTime,.1),g.ctx.listener.upX.setTargetAtTime(s,Howler.ctx.currentTime,.1),g.ctx.listener.upY.setTargetAtTime(r,Howler.ctx.currentTime,.1),g.ctx.listener.upZ.setTargetAtTime(a,Howler.ctx.currentTime,.1)):g.ctx.listener.setOrientation(e,i,n,s,r,a);else return c;return g},Howl.prototype.init=(function(e){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}]:[],e.call(this,i)}})(Howl.prototype.init),Howl.prototype.stereo=function(e,i){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"stereo",action:function(){n.stereo(e,i)}}),n;var s=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof i>"u")if(typeof e=="number")n._stereo=e,n._pos=[e,0,0];else return n._stereo;for(var r=n._getSoundIds(i),a=0;a<r.length;a++){var g=n._soundById(r[a]);if(g)if(typeof e=="number")g._stereo=e,g._pos=[e,0,0],g._node&&(g._pannerAttr.panningModel="equalpower",(!g._panner||!g._panner.pan)&&t(g,s),s==="spatial"?typeof g._panner.positionX<"u"?(g._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),g._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),g._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):g._panner.setPosition(e,0,0):g._panner.pan.setValueAtTime(e,Howler.ctx.currentTime)),n._emit("stereo",g._id);else return g._stereo}return n},Howl.prototype.pos=function(e,i,n,s){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"pos",action:function(){r.pos(e,i,n,s)}}),r;if(i=typeof i!="number"?0:i,n=typeof n!="number"?-.5:n,typeof s>"u")if(typeof e=="number")r._pos=[e,i,n];else return r._pos;for(var a=r._getSoundIds(s),g=0;g<a.length;g++){var c=r._soundById(a[g]);if(c)if(typeof e=="number")c._pos=[e,i,n],c._node&&((!c._panner||c._panner.pan)&&t(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(i,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(n,Howler.ctx.currentTime)):c._panner.setPosition(e,i,n)),r._emit("pos",c._id);else return c._pos}return r},Howl.prototype.orientation=function(e,i,n,s){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"orientation",action:function(){r.orientation(e,i,n,s)}}),r;if(i=typeof i!="number"?r._orientation[1]:i,n=typeof n!="number"?r._orientation[2]:n,typeof s>"u")if(typeof e=="number")r._orientation=[e,i,n];else return r._orientation;for(var a=r._getSoundIds(s),g=0;g<a.length;g++){var c=r._soundById(a[g]);if(c)if(typeof e=="number")c._orientation=[e,i,n],c._node&&(c._panner||(c._pos||(c._pos=r._pos||[0,0,-.5]),t(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(i,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(n,Howler.ctx.currentTime)):c._panner.setOrientation(e,i,n)),r._emit("orientation",c._id);else return c._orientation}return r},Howl.prototype.pannerAttr=function(){var e=this,i=arguments,n,s,r;if(!e._webAudio)return e;if(i.length===0)return e._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}),e._pannerAttr={coneInnerAngle:typeof n.pannerAttr.coneInnerAngle<"u"?n.pannerAttr.coneInnerAngle:e._coneInnerAngle,coneOuterAngle:typeof n.pannerAttr.coneOuterAngle<"u"?n.pannerAttr.coneOuterAngle:e._coneOuterAngle,coneOuterGain:typeof n.pannerAttr.coneOuterGain<"u"?n.pannerAttr.coneOuterGain:e._coneOuterGain,distanceModel:typeof n.pannerAttr.distanceModel<"u"?n.pannerAttr.distanceModel:e._distanceModel,maxDistance:typeof n.pannerAttr.maxDistance<"u"?n.pannerAttr.maxDistance:e._maxDistance,refDistance:typeof n.pannerAttr.refDistance<"u"?n.pannerAttr.refDistance:e._refDistance,rolloffFactor:typeof n.pannerAttr.rolloffFactor<"u"?n.pannerAttr.rolloffFactor:e._rolloffFactor,panningModel:typeof n.pannerAttr.panningModel<"u"?n.pannerAttr.panningModel:e._panningModel});else return r=e._soundById(parseInt(i[0],10)),r?r._pannerAttr:e._pannerAttr;else i.length===2&&(n=i[0],s=parseInt(i[1],10));for(var a=e._getSoundIds(s),g=0;g<a.length;g++)if(r=e._soundById(a[g]),r){var c=r._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=r._panner;B||(r._pos||(r._pos=e._pos||[0,0,-.5]),t(r,"spatial"),B=r._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 e},Sound.prototype.init=(function(e){return function(){var i=this,n=i._parent;i._orientation=n._orientation,i._stereo=n._stereo,i._pos=n._pos,i._pannerAttr=n._pannerAttr,e.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(e){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)),e.call(this)}})(Sound.prototype.reset);var t=function(e,i){i=i||"spatial",i==="spatial"?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,typeof e._panner.positionX<"u"?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),typeof e._panner.orientationX<"u"?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0)}})()})(ki)),ki}var de=Fl();const Gl=Ir({__proto__:null,default:_l(de)},[de]),eo=["load","loaderror","playerror","play","end","pause","stop","mute","volume","rate","seek","fade","unlock"];let Ao=class extends vt{constructor(){super(...arguments),this.sounds=[],this.eventsFn=[],this.maxVolume=1,this.maxDistance=100}onInit(t){}onMount(t){const{props:e}=t,i=e.context.tick,n=e.sound.value??e.sound;if(!n.src)return;const{src:s,autoplay:r,loop:a,volume:g,spatial:c}=n,B=Array.isArray(s)?s:[s];for(const o of B){if(!o)continue;const l=new de.Howl({src:o,autoplay:r,loop:a,volume:g});for(let h of eo){if(!n[h])continue;const f=n[h];this.eventsFn.push(f),l.on(h,f)}this.sounds.push(l)}if(c&&this.sounds.length>0){const{soundListenerPosition:o}=e.context;if(!o)throw new $A("SoundListenerPosition directive is required for spatial sound in component parent");const{x:l,y:h}=o;this.tickSubscription=nt(()=>{i();const{x:f,y:E}=t.componentInstance,d=os(f,E,l(),h()),C=Math.max(this.maxVolume-d/this.maxDistance,0);this.sounds.forEach(y=>y.volume(C))}).subscription}this.onUpdate(n)}onUpdate(t){const e=t.value??t,{volume:i,loop:n,mute:s,seek:r,playing:a,rate:g,spatial:c}=e;this.sounds.forEach(B=>{i!==void 0&&B.volume(i),n!==void 0&&B.loop(n),s!==void 0&&B.mute(s),r!==void 0&&B.seek(r),a!==void 0&&(a?B.play():B.pause()),g!==void 0&&B.rate(g)}),c&&(this.maxVolume=c.maxVolume??this.maxVolume,this.maxDistance=c.maxDistance??this.maxDistance)}onDestroy(){this.sounds.forEach(t=>{t.stop();for(let e of eo){const i=this.eventsFn.find(n=>n===this.eventsFn[e]);i&&t.off(e,i)}}),this.sounds=[],this.eventsFn=[],this.tickSubscription?.unsubscribe()}};class Nl extends vt{onMount(t){t.props.context.soundListenerPosition=t.propObservables?.soundListenerPosition}onInit(t){}onUpdate(t){}onDestroy(){}}bt("sound",Ao),bt("soundListenerPosition",Nl);const Hl=(A,t,e)=>{A.props.context={...A.props.context??{},[t]:e}};class io extends vt{constructor(){super(...arguments),this.elementRef=null}onInit(t){this.elementRef=t}onMount(t){Hl(t,"drop",t)}onUpdate(){}onDestroy(){this.elementRef=null}}class no extends vt{constructor(){super(...arguments),this.elementRef=null,this.stageRef=null,this.offsetInParent=new v.Point,this.isDragging=!1,this.viewport=null,this.animationFrameId=null,this.lastPointerPosition=new v.Point,this.pressedKeys=new Set,this.pointerIsDown=!1,this.onDragMoveHandler=()=>{},this.onDragEndHandler=()=>{},this.onDragStartHandler=()=>{},this.onKeyDownHandler=()=>{},this.onKeyUpHandler=()=>{},this.subscriptions=[]}onInit(t){this.elementRef=t,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(t){const{rootElement:e,canvasSize:i,viewport:n,tick:s}=t.props.context,r=t.componentInstance,a=this.dragProps;if(Object.keys(a).length===0){this.onDestroy();return}if(!r||(this.stageRef=e.componentInstance,!this.stageRef))return;this.viewport=n,r.eventMode="static",this.stageRef.eventMode="static";const c=nt(()=>{this.stageRef&&(this.stageRef.hitArea=new v.Rectangle(0,0,i().width,i().height))});r.on("pointerdown",this.onDragStartHandler),this.stageRef.on("pointerup",this.onDragEndHandler),this.stageRef.on("pointerupoutside",this.onDragEndHandler),a.keyToPress&&a.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(){const t=this.elementRef?.props.drag,e=Qt(t?.value??t,{snap:0,viewport:{},direction:"all",keyToPress:[]});return e.viewport=Qt(e.viewport,{edgeThreshold:300,maxSpeed:40}),e}get axis(){const t=this.dragProps.direction(),e={x:!0,y:!0};return t==="x"&&(e.y=!1),t==="y"&&(e.x=!1),e}onDragMove(t){if(!this.isDragging||!this.elementRef?.componentInstance||!this.elementRef.componentInstance.parent)return;const e=this.elementRef.componentInstance,i=e.parent,n=this.dragProps,s=this.elementRef.propObservables,r=Sl(n?.snap()??0);n?.move?.(t);const a=i.toLocal(t.global),g=a.x-this.offsetInParent.x,c=a.y-this.offsetInParent.y;n?.snap()?(e.position.x=r(g),e.position.y=r(c)):(this.axis.x&&(e.position.x=g),this.axis.y&&(e.position.y=c)),this.lastPointerPosition.copyFrom(t.global);const{x:B,y:o}=s,l=(h,f)=>{Ee(h)?h.dependencies.forEach(E=>{E.set(f)}):N(h)&&h.set(f)};B!==void 0&&l(B,e.position.x),o!==void 0&&l(o,e.position.y)}updateViewportPosition(t){if(!this.viewport||!this.elementRef)return;const e=this.dragProps,i=e?.viewport?.edgeThreshold(),n=e?.viewport?.maxSpeed(),s=0,r=this.viewport.screenWidth,a=0,g=this.viewport.screenHeight,c=this.elementRef.componentInstance,B=t.x-s,o=r-t.x,l=t.y-a,h=g-t.y;let f=0,E=0;if(B<i?f=-(n*(1-B/i)):o<i&&(f=n*(1-o/i)),l<i?E=-(n*(1-l/i)):h<i&&(E=n*(1-h/i)),f!==0||E!==0){const d=this.viewport.center;this.viewport.moveCenter(this.viewport.center.x+f,this.viewport.center.y+E),this.axis.x&&d.x!==this.viewport.center.x&&(c.position.x+=f),this.axis.y&&d.y!==this.viewport.center.y&&(c.position.y+=E)}}onDragEnd(){if(this.pointerIsDown=!1,!this.isDragging)return;const t=this.dragProps;this.isDragging=!1,t?.end?.(),this.stageRef&&this.stageRef.off("pointermove",this.onDragMoveHandler)}onKeyDown(t){this.pressedKeys.add(t.code),this.pressedKeys.add(t.key.toLowerCase()),this.pointerIsDown&&!this.isDragging&&this.areRequiredKeysPressed()&&this.startDrag()}onKeyUp(t){this.pressedKeys.delete(t.code),this.pressedKeys.delete(t.key.toLowerCase()),this.isDragging&&!this.areRequiredKeysPressed()&&this.onDragEnd()}areRequiredKeysPressed(){const t=this.dragProps.keyToPress?this.dragProps.keyToPress:[];return!t||t.length===0?!0:t.some(e=>this.pressedKeys.has(e)?!0:e.toLowerCase()==="space"?this.pressedKeys.has("Space")||this.pressedKeys.has(" "):e.toLowerCase()==="shift"?this.pressedKeys.has("ShiftLeft")||this.pressedKeys.has("ShiftRight"):e.toLowerCase()==="control"||e.toLowerCase()==="ctrl"?this.pressedKeys.has("ControlLeft")||this.pressedKeys.has("ControlRight"):e.toLowerCase()==="alt"?this.pressedKeys.has("AltLeft")||this.pressedKeys.has("AltRight"):!1)}onPointerDown(t){if(!this.elementRef?.componentInstance||!this.stageRef||!this.elementRef.componentInstance.parent)return;this.pointerIsDown=!0;const e=this.elementRef.componentInstance,n=e.parent.toLocal(t.global);this.offsetInParent.x=n.x-e.position.x,this.offsetInParent.y=n.y-e.position.y,this.lastPointerPosition.copyFrom(t.global),this.areRequiredKeysPressed()&&this.startDrag()}startDrag(){if(this.isDragging||!this.stageRef)return;this.isDragging=!0,this.dragProps?.start?.(),this.stageRef.on("pointermove",this.onDragMoveHandler)}onUpdate(t){t.type&&t.type==="reset"&&(this.onDestroy(),this.onMount(this.elementRef))}onDestroy(){this.subscriptions.forEach(e=>e.unsubscribe());const t=this.elementRef?.componentInstance;t&&t.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}}bt("drag",no),bt("drop",io);class so extends vt{onInit(t){}onMount(t){const{image:e}=t.props.transition,i=new v.Sprite(v.Texture.from(e));i.texture.baseTexture.wrapMode=v.WRAP_MODES.REPEAT;const n=new v.DisplacementFilter(i),s=t.componentInstance;s.filters=[n],s.addChild(i),setTimeout(()=>{qs({from:0,to:1,duration:500,onUpdate:r=>{n.scale.x=r,n.scale.y=r}})},5e3)}onUpdate(t){}onDestroy(){}}bt("transition",so);function Ve(A){return A?.start&&A?.listen}function Ll(A){const t=Y({config:A,value:0,resolve:e=>{}});return{start:e=>new Promise(i=>{const n=Math.random();t.set({config:{...A,...e},resolve:i,value:n})}),listen:()=>({config:A,seed:t()})}}function QA(A,t){if(!Ve(A))throw new Error("In 'on(arg)' must have a trigger signal type");let e;return nt(()=>{const n=A.listen(),s=n?.seed;if(s){if(e===void 0){e=s.value;return}if(s.value!==e){e=s.value;try{const r=t(n?.seed.config);r&&typeof r.then=="function"?r.then(a=>s.resolve(a)).catch(()=>s.resolve(void 0)):s.resolve(r)}catch{s.resolve(void 0)}}}}).subscription}class oo extends vt{constructor(){super(...arguments),this.elementRef=null,this.originalPosition=new v.Point,this.progressSignal=null,this.shakeSubscription=null,this.positionEffect=null,this.currentShakeConfig=null}onInit(t){this.elementRef=t}onMount(t){const e=t.componentInstance;if(!e)return;const i=this.shakeProps;!i.trigger||!Ve(i.trigger)||(this.originalPosition.set(e.position.x,e.position.y),this.shakeSubscription&&(this.shakeSubscription.unsubscribe(),this.shakeSubscription=null),this.shakeSubscription=QA(i.trigger,async n=>{await this.performShake(n)}))}get shakeProps(){const t=this.elementRef?.props.shake;return Qt(t?.value??t,{intensity:10,duration:500,frequency:10,direction:"both"})}async performShake(t){if(!this.elementRef?.componentInstance)return;const e=this.elementRef.componentInstance,i=this.shakeProps,n=t?.intensity??i.intensity(),s=t?.duration??i.duration(),r=t?.frequency??i.frequency(),a=t?.direction??i.direction();this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null);const g=this.originalPosition.x===0&&this.originalPosition.y===0&&e.parent,c=e.position.x!==this.originalPosition.x||e.position.y!==this.originalPosition.y;(g||c)&&this.originalPosition.set(e.position.x,e.position.y),e.position.x=this.originalPosition.x,e.position.y=this.originalPosition.y,i.onStart?.(),this.currentShakeConfig={intensity:n,frequency:r,direction:a,randomSeed:Math.random()*1e3},this.progressSignal?await this.progressSignal.set(0,{duration:0}):this.progressSignal=wi(0,{duration:s,ease:l=>l});const B=a!=="y",o=a!=="x";this.positionEffect=nt(()=>{if(!e||!this.progressSignal||!this.currentShakeConfig)return;const l=this.progressSignal(),h=this.currentShakeConfig,f=1-l,E=l*h.frequency,d=Math.sin(E*Math.PI*2),C=Math.sin(h.randomSeed+l*10)*.25+1,y=B?d*h.intensity*f*C:0,m=o?d*h.intensity*f*C:0;e.position.x=this.originalPosition.x+y,e.position.y=this.originalPosition.y+m}).subscription,await this.progressSignal.set(1,{duration:s}),e&&(e.position.x=this.originalPosition.x,e.position.y=this.originalPosition.y),this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.currentShakeConfig=null,i.onComplete?.()}onUpdate(t){t.type&&t.type==="reset"&&(this.onDestroy(),this.elementRef&&this.onMount(this.elementRef))}onDestroy(){if(this.progressSignal&&(this.progressSignal.set(0,{duration:0}),this.progressSignal=null),this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.currentShakeConfig=null,this.elementRef?.componentInstance){const t=this.elementRef.componentInstance;t.position.x=this.originalPosition.x,t.position.y=this.originalPosition.y}this.shakeSubscription&&(this.shakeSubscription.unsubscribe(),this.shakeSubscription=null),this.elementRef=null}}bt("shake",oo);class ro extends vt{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(t){this.elementRef=t}onMount(t){const e=t.componentInstance;if(!e)return;const i=this.flashProps;if(!i.trigger||!Ve(i.trigger))return;this.originalAlpha===1&&!i.originalAlpha?this.originalAlpha=e.alpha??1:i.originalAlpha!==void 0&&(this.originalAlpha=i.originalAlpha);const n=e.tint;this.originalTint===16777215&&!i.originalTint?this.originalTint=(N(n)?n():n)??16777215:i.originalTint!==void 0&&(this.originalTint=i.originalTint),this.flashSubscription=QA(i.trigger,async s=>{await this.performFlash(s)})}get flashProps(){const t=this.elementRef?.props.flash;return Qt(t?.value??t,{type:"alpha",duration:300,cycles:1,alpha:.3,tint:16777215})}async performFlash(t){if(!this.elementRef?.componentInstance)return;const e=this.elementRef.componentInstance,i=this.flashProps,n=t?.type??(typeof i.type=="function"?i.type():i.type),s=t?.duration??(typeof i.duration=="function"?i.duration():i.duration),r=t?.cycles??(typeof i.cycles=="function"?i.cycles():i.cycles),a=t?.alpha??(typeof i.alpha=="function"?i.alpha():i.alpha),g=t?.tint??(typeof i.tint=="function"?i.tint():i.tint);this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),e.alpha=this.originalAlpha;const c=e.tint;if(c!==void 0){const l=typeof this.originalTint=="number"?this.originalTint:16777215;N(c)?c.set(l):e.tint=l}i.onStart?.(),this.progressSignal&&await this.progressSignal.set(0,{duration:0});const B={type:n,duration:s,cycles:r,flashAlpha:a,flashTint:g};if(this.currentFlashConfig=B,this.progressSignal||(this.progressSignal=wi(0,{duration:s,ease:l=>l})),(n==="alpha"||n==="both")&&(this.alphaEffect=nt(()=>{if(!e||!this.progressSignal||!this.currentFlashConfig)return;const l=this.progressSignal(),h=this.currentFlashConfig,f=l*h.cycles%1,E=f<.5?f*2:1-(f-.5)*2,d=this.originalAlpha+(h.flashAlpha-this.originalAlpha)*E;e.alpha=d}).subscription),(n==="tint"||n==="both")&&(this.tintEffect=nt(()=>{if(!e||!this.progressSignal||!this.currentFlashConfig)return;const l=e.tint;if(l===void 0)return;const h=N(l),f=this.progressSignal(),E=this.currentFlashConfig,d=f*E.cycles%1,C=d<.5?d*2:1-(d-.5)*2,y=this.originalTint>>16&255,m=this.originalTint>>8&255,b=this.originalTint&255,M=E.flashTint>>16&255,G=E.flashTint>>8&255,O=E.flashTint&255,K=Math.round(y+(M-y)*C),H=Math.round(m+(G-m)*C),T=Math.round(b+(O-b)*C),W=K<<16|H<<8|T;h?l.set(W):e.tint=W}).subscription),await this.progressSignal.set(1,{duration:s}),this.currentFlashConfig===B&&e){e.alpha=this.originalAlpha;const l=e.tint;if(l!==void 0){const h=typeof this.originalTint=="number"?this.originalTint:16777215;N(l)?l.set(h):e.tint=h}this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),this.currentFlashConfig=null}i.onComplete?.()}onUpdate(t){t.type&&t.type==="reset"&&(this.onDestroy(),this.elementRef&&this.onMount(this.elementRef))}onDestroy(){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,this.elementRef?.componentInstance){const t=this.elementRef.componentInstance;t.alpha=this.originalAlpha;const e=t.tint;if(e!==void 0){const i=typeof this.originalTint=="number"?this.originalTint:16777215;N(e)?e.set(i):t.tint=i}}this.flashSubscription&&(this.flashSubscription=null),this.elementRef=null}}bt("flash",ro);function Vt(A){return A&&typeof A=="string"?A.endsWith("%"):!1}const ao=["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 pt(A){return class extends A{constructor(){super(...arguments),this.#t=null,this.isFlex=!1,this.fullProps={},this.isMounted=!1,this._anchorPoints=new v.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 te(null),this.disableLayout=!1,this.#e=new Map,this.#A=null,this.#i=null}#t;#e;#A;#i;getElement(){return this.#i}get deltaRatio(){return this.#t?.scheduler?.tick.value.deltaRatio}get parentIsFlex(){return this.disableLayout?!1:this.parent?.isFlex}onInit(e){this._id=e.id;for(let i of ao)if(e[i]&&!this.overrideProps.includes(i)){this.eventMode="static";const n=e[i],s=(...r)=>{if(!(this.#i&&St(this.#i)))return n(...r)};i==="click"?(this.on("pointertap",s),this.#e.set("pointertap",s)):(this.on(i,s),this.#e.set(i,s))}(e.onBeforeDestroy||e["on-before-destroy"])&&(this.onBeforeDestroy=e.onBeforeDestroy||e["on-before-destroy"]),(e.onAfterMount||e["on-after-mount"])&&(this.onAfterMount=e.onAfterMount||e["on-after-mount"]),(e.justifyContent||e.alignItems||e.flexDirection||e.flexWrap||e.alignContent||e.display=="flex"||Vt(e.width)||Vt(e.height)||e.isRoot)&&(this.layout={},this.isFlex=!0),this.subjectInit.next(this)}async onMount(e,i){if(!this.destroyed&&(this.#i=e,this.#t=e.props.context,e.parent)){const n=e.parent.componentInstance;if(n.isFlex&&!this.layout&&!this.disableLayout)try{this.layout={}}catch(r){console.warn("Failed to set layout:",r)}i===void 0?n.addChild(this):n.addChildAt(this,i),this.isMounted=!0,this.onUpdate(e.props);const s=r=>{r.computedLayout&&(this.#A={width:r.computedLayout.width,height:r.computedLayout.height})};this.on("layout",s),this.#e.set("layout",s),this.onAfterMount&&await this.onAfterMount()}}onUpdate(e){if(this.fullProps={...this.fullProps,...e},this.destroyed||!this.#t||!this.parent)return;e.x!==void 0&&this.setX(e.x),e.y!==void 0&&this.setY(e.y),e.scale!==void 0&&Ae(this.scale,e.scale),e.anchor!==void 0&&!this.isCustomAnchor&&Ae(this.anchor,e.anchor),e.width!==void 0&&this.setWidth(e.width),e.height!==void 0&&this.setHeight(e.height),e.minWidth!==void 0&&this.setMinWidth(e.minWidth),e.minHeight!==void 0&&this.setMinHeight(e.minHeight),e.maxWidth!==void 0&&this.setMaxWidth(e.maxWidth),e.maxHeight!==void 0&&this.setMaxHeight(e.maxHeight),e.aspectRatio!==void 0&&this.setAspectRatio(e.aspectRatio),e.flexGrow!==void 0&&this.setFlexGrow(e.flexGrow),e.flexShrink!==void 0&&this.setFlexShrink(e.flexShrink),e.flexBasis!==void 0&&this.setFlexBasis(e.flexBasis),e.rowGap!==void 0&&this.setRowGap(e.rowGap),e.columnGap!==void 0&&this.setColumnGap(e.columnGap),e.top!==void 0&&this.setTop(e.top),e.left!==void 0&&this.setLeft(e.left),e.right!==void 0&&this.setRight(e.right),e.bottom!==void 0&&this.setBottom(e.bottom),e.objectFit!==void 0&&this.setObjectFit(e.objectFit),e.objectPosition!==void 0&&this.setObjectPosition(e.objectPosition),e.transformOrigin!==void 0&&this.setTransformOrigin(e.transformOrigin),e.skew!==void 0&&Ae(this.skew,e.skew),e.tint&&(this.tint=e.tint),e.rotation!==void 0&&(this.rotation=e.rotation),e.angle!==void 0&&(this.angle=e.angle),e.zIndex!==void 0&&(this.zIndex=e.zIndex),e.roundPixels!==void 0&&(this.roundPixels=e.roundPixels),e.cursor&&(this.cursor=e.cursor),e.visible!==void 0&&(this.visible=e.visible),e.alpha!==void 0&&(this.alpha=e.alpha),e.pivot&&Ae(this.pivot,e.pivot),e.flexDirection&&this.setFlexDirection(e.flexDirection),e.flexWrap&&this.setFlexWrap(e.flexWrap),e.justifyContent&&this.setJustifyContent(e.justifyContent),e.alignItems&&this.setAlignItems(e.alignItems),e.alignContent&&this.setAlignContent(e.alignContent),e.alignSelf&&this.setAlignSelf(e.alignSelf),e.margin&&this.setMargin(e.margin),e.padding&&this.setPadding(e.padding),e.gap&&this.setGap(e.gap),e.border&&this.setBorder(e.border),e.positionType&&this.setPositionType(e.positionType),e.filters&&(this.filters=e.filters),e.maskOf&&dt(e.maskOf)&&(e.maskOf.componentInstance.mask=this),e.blendMode&&(this.blendMode=e.blendMode),e.filterArea&&(this.filterArea=e.filterArea);const i=this.filters||[];if(e.blur){let n=i.find(s=>s instanceof v.BlurFilter);if(!n){const s=typeof e.blur=="number"?{strength:e.blur}:e.blur;n=new v.BlurFilter(s),i.push(n)}Object.assign(n,e.blur)}this.filters=i}async onDestroy(e,i){for(const[n,s]of this.#e)this.off(n,s);this.#e.clear(),this.#i=null,this.onBeforeDestroy&&await this.onBeforeDestroy(),i&&i(),super.destroy()}setFlexDirection(e){this.layout={flexDirection:e}}setFlexWrap(e){this.layout={flexWrap:e}}setAlignContent(e){this.layout={alignContent:e}}setAlignSelf(e){this.layout={alignSelf:e}}setAlignItems(e){this.layout={alignItems:e}}setJustifyContent(e){this.layout={justifyContent:e}}setPosition(e){e instanceof Array?e.length===2?this.layout={positionY:e[0],positionX:e[1]}:e.length===4&&(this.layout={positionTop:e[0],positionRight:e[1],positionBottom:e[2],positionLeft:e[3]}):this.layout={position:e}}setX(e){e=e+this.getWidth()*this._anchorPoints.x,this.parentIsFlex?(this.x=e,this.layout={x:e}):this.x=e}setY(e){e=e+this.getHeight()*this._anchorPoints.y,this.parentIsFlex?(this.y=e,this.layout={y:e}):this.y=e}setPadding(e){e instanceof Array?e.length===2?this.layout={paddingVertical:e[0],paddingHorizontal:e[1]}:e.length===4&&(this.layout={paddingTop:e[0],paddingRight:e[1],paddingBottom:e[2],paddingLeft:e[3]}):this.layout={padding:e}}setMargin(e){e instanceof Array?e.length===2?this.layout={marginVertical:e[0],marginHorizontal:e[1]}:e.length===4&&(this.layout={marginTop:e[0],marginRight:e[1],marginBottom:e[2],marginLeft:e[3]}):this.layout={margin:e}}setGap(e){this.layout={gap:e}}setBorder(e){e instanceof Array?e.length===2?this.layout={borderVertical:e[0],borderHorizontal:e[1]}:e.length===4&&(this.layout={borderTop:e[0],borderRight:e[1],borderBottom:e[2],borderLeft:e[3]}):this.layout={border:e}}setPositionType(e){this.layout={position:e}}setWidth(e){this.displayWidth.set(e),this.parentIsFlex?this.layout={width:e}:this.width=e}setHeight(e){this.displayHeight.set(e),this.parentIsFlex?this.layout={height:e}:this.height=e}getWidth(){return Vt(this.fullProps.width)?this.#A?.width!==void 0?this.#A.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(){return Vt(this.fullProps.height)?this.#A?.height!==void 0?this.#A.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(e){this.layout={minWidth:e}}setMinHeight(e){this.layout={minHeight:e}}setMaxWidth(e){this.layout={maxWidth:e}}setMaxHeight(e){this.layout={maxHeight:e}}setAspectRatio(e){this.layout={aspectRatio:e}}setFlexGrow(e){this.layout={flexGrow:e}}setFlexShrink(e){this.layout={flexShrink:e}}setFlexBasis(e){this.layout={flexBasis:e}}setRowGap(e){this.layout={rowGap:e}}setColumnGap(e){this.layout={columnGap:e}}setTop(e){this.layout={top:e}}setLeft(e){this.layout={left:e}}setRight(e){this.layout={right:e}}setBottom(e){this.layout={bottom:e}}setObjectFit(e){try{this.layout={objectFit:e}}catch{}}setObjectPosition(e){try{this.layout={objectPosition:e}}catch{}}setTransformOrigin(e){try{this.layout={transformOrigin:e}}catch{}}}}class Ul{constructor(){this.assets=new Map,this.onProgressCallbacks=new Set,this.onCompleteCallbacks=new Set,this.assetCounter=0,this.isComplete=!1}registerAsset(t){const e=`asset_${this.assetCounter++}_${t}`;return this.assets.set(e,{progress:0,completed:!1}),this.isComplete=!1,this.updateGlobalProgress(),e}updateProgress(t,e){const i=this.assets.get(t);if(!i){console.warn(`Asset ${t} not found in tracker`);return}i.progress=Math.max(0,Math.min(1,e)),this.updateGlobalProgress()}completeAsset(t){const e=this.assets.get(t);if(!e){console.warn(`Asset ${t} not found in tracker`);return}e.progress=1,e.completed=!0,this.updateGlobalProgress(),this.checkCompletion()}removeAsset(t){this.assets.delete(t),this.updateGlobalProgress()}onProgress(t){this.onProgressCallbacks.add(t);try{t(this.getGlobalProgress())}catch(e){console.error("Error in onProgress callback:",e)}return()=>{this.onProgressCallbacks.delete(t)}}onComplete(t){return this.onCompleteCallbacks.add(t),this.isComplete&&t(),()=>{this.onCompleteCallbacks.delete(t)}}getGlobalProgress(){if(this.assets.size===0)return 1;let t=0;for(const e of this.assets.values())t+=e.progress;return t/this.assets.size}getAssetCount(){return this.assets.size}getCompletedCount(){let t=0;for(const e of this.assets.values())e.completed&&t++;return t}checkCompletion(){if(this.isComplete)return;Array.from(this.assets.values()).every(e=>e.completed)&&this.assets.size>0&&(this.isComplete=!0,this.onCompleteCallbacks.forEach(e=>{try{e()}catch(i){console.error("Error in onComplete callback:",i)}}))}updateGlobalProgress(){const t=this.getGlobalProgress();Array.from(this.onProgressCallbacks).forEach(i=>{try{i(t)}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}}st("Canvas",class extends pt(v.Container){});const Tl=async(A={})=>{let{cursorStyles:t,width:e,height:i,class:n}=Qt(A);A.width||(e=Y(800)),A.height||(i=Y(600));const s=Y({width:0,height:0});A.isRoot=!0;const r=new Ul,a={...A,context:{canvasSize:s,app:Y(null),globalLoader:r},width:e?.(),height:i?.()};A.tick?a.context.tick=A.tick:a.context.tick=a.tick=Y({timestamp:0,deltaTime:0,frame:0,deltaRatio:1}),globalThis.__CANVAS_ENGINE_TICK__=a.context.tick;const g=ht("Canvas",a);return g.render=(c,B)=>{if(!B)return;const o=B.renderer,l=o.view.canvas;globalThis.__PIXI_STAGE__=g.componentInstance,globalThis.__PIXI_RENDERER__=o,A.tickStart!==!1&&g.directives.tick.start(),nt(()=>{g.propObservables.tick(),o.render(g.componentInstance)}),B.stage=g.componentInstance,B.stage.layout={width:B.screen.width,height:B.screen.height,justifyContent:A.justifyContent,alignItems:A.alignItems},s.set({width:B.screen.width,height:B.screen.height}),B.renderer.on("resize",(f,E)=>{s.set({width:f,height:E}),B.stage.layout&&(B.stage.layout={width:f,height:E})}),A.tickStart!==!1&&g.directives.tick.start(),B.ticker.add(()=>{g.propObservables.tick()}),t&&nt(()=>{o.events.cursorStyles=t()}),n&&nt(()=>{l.classList.add(n())});const h=c.querySelector("canvas");h?c.replaceChild(l,h):c.appendChild(l),a.context.app.set(B)},g};class Mi extends pt(v.Container){constructor(){super(...arguments),this.isCustomAnchor=!0}onUpdate(t){t.anchor&&(Ae(this._anchorPoints,t.anchor),t.pivot=[this.getWidth()*this._anchorPoints.x,this.getHeight()*this._anchorPoints.y]),super.onUpdate(t),t.sortableChildren!=null&&(this.sortableChildren=t.sortableChildren)}async onMount(t){await super.onMount(t);const{componentInstance:e,props:i}=t,{pixiChildren:n}=i;n&&n.forEach(a=>{e.addChild(a)});const s=Vt(i.width),r=Vt(i.height);(s||r)&&this.on("layout",a=>{const g=a.computedLayout;s&&g.width!==void 0&&this.displayWidth.set(g.width),r&&g.height!==void 0&&this.displayHeight.set(g.height)})}}st("Container",Mi);const qe=A=>(st("Container",Mi),ht("Container",A));class Ol extends pt(v.Graphics){constructor(){super(...arguments),this.isCustomAnchor=!0}async onInit(t){await super.onInit(t),this.setObjectFit("none")}async onMount(t,e){await super.onMount(t,e);const{props:i,propObservables:n}=t,s=N(n?.width)?n.width:Y(i.width||0),r=N(n?.height)?n.height:Y(i.height||0),a=N(n?.anchor)?n.anchor:Y(i.anchor||[0,0]);this._width=s,this._height=r;const g=Vt(s()),c=Vt(r());i.draw&&(this.clearEffect=nt(()=>{const B=s(),o=r(),l=a();typeof B=="string"||typeof o=="string"||(this.clear(),i.draw?.(this,B,o,l),this.subjectInit.next(this))})),this.on("layout",B=>{const o=B.computedLayout;g&&N(s)&&s()!==o.width&&s.set(o.width),c&&N(r)&&r()!==o.height&&r.set(o.height)})}onUpdate(t){super.onUpdate(t),t.width!==void 0&&this._width&&this._width()!==t.width&&this._width.set(t.width),t.height!==void 0&&this._height&&this._height()!==t.height&&this._height.set(t.height)}async onDestroy(t,e){const i=async()=>{this.clearEffect?.subscription.unsubscribe(),e()};await super.onDestroy(t,i)}}st("Graphics",Ol);function ne(A){return ht("Graphics",A)}const Ri=(A,t,e)=>{const i=new v.ObservablePoint({_onUpdate:()=>{}},0,0);Ae(i,A);const n=i.x,s=i.y;return{x:-n*t,y:-s*e}};function lo(A){const{color:t,borderRadius:e,border:i}=Qt(A,{borderRadius:null,border:null});return ne({draw:(n,s,r,a)=>{const{x:g,y:c}=Ri(a,s,r);e()?n.roundRect(g,c,s,r,e()):n.rect(g,c,s,r),i&&n.stroke(i),n.fill(t())},...A})}function _i(A){const{color:t,border:e,radius:i}=Qt(A,{border:null,radius:null});return ne({draw:(n,s,r,a)=>{const{x:g,y:c}=Ri(a,s,r);s==r||r==0?n.circle(g,c,i()||s):n.ellipse(g,c,s,r),e()&&n.stroke(e()),n.fill(t())},...A})}function go(A){return _i(A)}function Pl(A){const{color:t,border:e}=Qt(A,{border:null,color:"#000"});return ne({draw:(i,n,s,r)=>{const{x:a,y:g}=Ri(r,n,s);i.moveTo(a,g+s),i.lineTo(a+n/2,g),i.lineTo(a+n,g+s),i.lineTo(a,g+s),i.fill(t()),e&&i.stroke(e)},...A})}function Jl(A){return ne({draw:async t=>{if(A.src){const e=await v.Assets.load({src:A.src,data:{parseAsGraphicsContext:!0}}),i=new v.Graphics(e);t.context=i.context}else A.content?t.svg(A.content):A.svg&&t.svg(A.svg)},...A})}class Kl extends pt(v.Mesh){constructor(){super({geometry:new v.Geometry})}onInit(t){if(super.onInit(t),t.geometry)try{this.geometry=t.geometry}catch(e){console.warn("Failed to set geometry:",e)}t.shader&&(this.shader=t.shader)}async onUpdate(t){if(super.onUpdate(t),t.geometry)try{this.geometry=t.geometry}catch(e){console.warn("Failed to update geometry:",e)}t.shader&&(this.shader=t.shader),t.texture?typeof t.texture=="string"?this.texture=await v.Assets.load(t.texture):this.texture=t.texture:t.image&&(this.texture=await v.Assets.load(t.image)),t.tint!==void 0&&(this.tint=t.tint),t.blendMode!==void 0&&(this.blendMode=t.blendMode),t.roundPixels!==void 0&&(this.roundPixels=t.roundPixels)}async onDestroy(t,e){const i=async()=>{e()};await super.onDestroy(t,i)}}st("Mesh",Kl);const Yl=A=>ht("Mesh",A);k.currentSubscriptionsTracker=null,k.mountTracker=null;function Fi(A){k.mountTracker?.(A)}function Wl(A){Fi(t=>{const{context:e}=t.props;let i;return e.tick&&(i=e.tick.observable.subscribe(({value:n})=>{St(t)||A(n,t)})),()=>{i?.unsubscribe()}})}function gt(A,t={},...e){const i=new Set,n=new Set;k.currentSubscriptionsTracker=r=>{i.add(r)},k.mountTracker=r=>{n.add(r)},e[0]instanceof Array&&(e=e[0]);let s;return Array.isArray(A)?A.length===1?s=A[0]:s=gt(qe,{},...A):"tag"in A||A instanceof z?s=A:s=A({...t,children:e}),s||(s={}),s.effectSubscriptions=Array.from(i),s.effectMounts=[...Array.from(n),...s.effectMounts??[]],t?.dependencies&&(s.props=s.props||{},s.props.dependencies=t.dependencies),s instanceof Promise&&s.then(r=>{r.props.isRoot&&n.forEach(a=>a(r))}),k.currentSubscriptionsTracker=null,k.mountTracker=null,s}function jl(A){return gt(qe)}class Gi{constructor(t){this.segments=[],this.countingLengths=[],this.totalLength=0,this.init(t)}init(t){if(!t||!t.length)this.segments.push({p1:{x:0,y:0},p2:{x:0,y:0},l:0});else if(Array.isArray(t[0]))for(let e=0;e<t.length;++e){const i=t[e];let n=i[0];for(let s=1;s<i.length;++s){const r=i[s];this.segments.push({p1:n,p2:r,l:0}),n=r}}else{let e=t[0];for(let i=1;i<t.length;++i){const n=t[i];this.segments.push({p1:e,p2:n,l:0}),e=n}}for(let e=0;e<this.segments.length;++e){const{p1:i,p2:n}=this.segments[e],s=Math.sqrt((n.x-i.x)*(n.x-i.x)+(n.y-i.y)*(n.y-i.y));this.segments[e].l=s,this.totalLength+=s,this.countingLengths.push(this.totalLength)}}getRandPos(t){const e=Math.random()*this.totalLength;let i,n;if(this.segments.length===1)i=this.segments[0],n=e;else for(let a=0;a<this.countingLengths.length;++a)if(e<this.countingLengths[a]){i=this.segments[a],n=a===0?e:e-this.countingLengths[a-1];break}n/=i.l||1;const{p1:s,p2:r}=i;t.x=s.x+n*(r.x-s.x),t.y=s.y+n*(r.y-s.y)}}Gi.type="polygonalChain",Gi.editorConfig=null;class Ni{constructor(t){this.x=t.x,this.y=t.y,this.w=t.w,this.h=t.h}getRandPos(t){t.x=Math.random()*this.w+this.x,t.y=Math.random()*this.h+this.y}}Ni.type="rect",Ni.editorConfig=null;class _t{constructor(t,e,i){this.value=t,this.time=e,this.next=null,this.isStepped=!1,i?this.ease=typeof i=="function"?i:uo(i):this.ease=null}static createList(t){if("list"in t){const i=t.list;let n;const{value:s,time:r}=i[0],a=n=new _t(typeof s=="string"?yA(s):s,r,t.ease);if(i.length>2||i.length===2&&i[1].value!==s)for(let g=1;g<i.length;++g){const{value:c,time:B}=i[g];n.next=new _t(typeof c=="string"?yA(c):c,B),n=n.next}return a.isStepped=!!t.isStepped,a}const e=new _t(typeof t.start=="string"?yA(t.start):t.start,0);return t.end!==t.start&&(e.next=new _t(typeof t.end=="string"?yA(t.end):t.end,1)),e}}let Xe=v.Texture.from;const Ft=Math.PI/180;function Ut(A,t){if(!A)return;const e=Math.sin(A),i=Math.cos(A),n=t.x*i-t.y*e,s=t.x*e+t.y*i;t.x=n,t.y=s}function pA(A,t,e){return A<<16|t<<8|e}function co(A){return Math.sqrt(A.x*A.x+A.y*A.y)}function Vl(A){const t=1/co(A);A.x*=t,A.y*=t}function ho(A,t){A.x*=t,A.y*=t}function yA(A,t){t||(t={}),A.charAt(0)==="#"?A=A.substr(1):A.indexOf("0x")===0&&(A=A.substr(2));let e;return A.length===8&&(e=A.substr(0,2),A=A.substr(2)),t.r=parseInt(A.substr(0,2),16),t.g=parseInt(A.substr(2,2),16),t.b=parseInt(A.substr(4,2),16),e&&(t.a=parseInt(e,16)),t}function uo(A){const t=A.length,e=1/t;return function(i){const n=t*i|0,s=(i-n*e)*t,r=A[n]||A[t-1];return r.s+s*(2*(1-s)*(r.cp-r.s)+s*(r.e-r.s))}}function ql(A){return A||"normal"}class wA{constructor(t){this.x=t.x||0,this.y=t.y||0,this.radius=t.radius,this.innerRadius=t.innerRadius||0,this.rotation=!!t.affectRotation}getRandPos(t){this.innerRadius!==this.radius?t.x=Math.random()*(this.radius-this.innerRadius)+this.innerRadius:t.x=this.radius,t.y=0;const e=Math.random()*Math.PI*2;this.rotation&&(t.rotation+=e),Ut(e,t.position),t.position.x+=this.x,t.position.y+=this.y}}wA.type="torus",wA.editorConfig=null;var X;(function(A){A[A.Spawn=0]="Spawn",A[A.Normal=2]="Normal",A[A.Late=5]="Late"})(X||(X={}));class Hi{constructor(t){this.order=X.Late,this.minStart=t.minStart,this.maxStart=t.maxStart,this.accel=t.accel,this.rotate=!!t.rotate,this.maxSpeed=t.maxSpeed??0}initParticles(t){let e=t;for(;e;){const i=Math.random()*(this.maxStart-this.minStart)+this.minStart;e.config.velocity?e.config.velocity.set(i,0):e.config.velocity=new v.Point(i,0),Ut(e.rotation,e.config.velocity),e=e.next}}updateParticle(t,e){const i=t.config.velocity,n=i.x,s=i.y;if(i.x+=this.accel.x*e,i.y+=this.accel.y*e,this.maxSpeed){const r=co(i);r>this.maxSpeed&&ho(i,this.maxSpeed/r)}t.x+=(n+i.x)/2*e,t.y+=(s+i.y)/2*e,this.rotate&&(t.rotation=Math.atan2(i.y,i.x))}}Hi.type="moveAcceleration",Hi.editorConfig=null;function Xl(A){return this.ease&&(A=this.ease(A)),(this.first.next.value-this.first.value)*A+this.first.value}function Zl(A){this.ease&&(A=this.ease(A));const t=this.first.value,e=this.first.next.value,i=(e.r-t.r)*A+t.r,n=(e.g-t.g)*A+t.g,s=(e.b-t.b)*A+t.b;return pA(i,n,s)}function zl(A){this.ease&&(A=this.ease(A));let t=this.first,e=t.next;for(;A>e.time;)t=e,e=e.next;return A=(A-t.time)/(e.time-t.time),(e.value-t.value)*A+t.value}function $l(A){this.ease&&(A=this.ease(A));let t=this.first,e=t.next;for(;A>e.time;)t=e,e=e.next;A=(A-t.time)/(e.time-t.time);const i=t.value,n=e.value,s=(n.r-i.r)*A+i.r,r=(n.g-i.g)*A+i.g,a=(n.b-i.b)*A+i.b;return pA(s,r,a)}function tg(A){this.ease&&(A=this.ease(A));let t=this.first;for(;t.next&&A>t.next.time;)t=t.next;return t.value}function eg(A){this.ease&&(A=this.ease(A));let t=this.first;for(;t.next&&A>t.next.time;)t=t.next;const e=t.value;return pA(e.r,e.g,e.b)}class Ze{constructor(t=!1){this.first=null,this.isColor=!!t,this.interpolate=null,this.ease=null}reset(t){this.first=t,t.next&&t.next.time>=1?this.interpolate=this.isColor?Zl:Xl:t.isStepped?this.interpolate=this.isColor?eg:tg:this.interpolate=this.isColor?$l:zl,this.ease=this.first.ease}}class Li{constructor(t){this.order=X.Normal,this.list=new Ze(!1),this.list.reset(_t.createList(t.alpha))}initParticles(t){let e=t;for(;e;)e.alpha=this.list.first.value,e=e.next}updateParticle(t){t.alpha=this.list.interpolate(t.agePercent)}}Li.type="alpha",Li.editorConfig=null;class Ui{constructor(t){this.order=X.Normal,this.value=t.alpha}initParticles(t){let e=t;for(;e;)e.alpha=this.value,e=e.next}}Ui.type="alphaStatic",Ui.editorConfig=null;function Io(A){const t=[];for(let e=0;e<A.length;++e){let i=A[e];if(typeof i=="string")t.push(Xe(i));else if(i instanceof v.Texture)t.push(i);else{let n=i.count||1;for(typeof i.texture=="string"?i=Xe(i.texture):i=i.texture;n>0;--n)t.push(i)}}return t}class Ti{constructor(t){this.order=X.Normal,this.anims=[];for(let e=0;e<t.anims.length;++e){const i=t.anims[e],n=Io(i.textures),s=i.framerate<0?-1:i.framerate>0?i.framerate:60,r={textures:n,duration:s>0?n.length/s:0,framerate:s,loop:s>0?!!i.loop:!1};this.anims.push(r)}}initParticles(t){let e=t;for(;e;){const i=Math.floor(Math.random()*this.anims.length),n=e.config.anim=this.anims[i];e.texture=n.textures[0],e.config.animElapsed=0,n.framerate===-1?(e.config.animDuration=e.maxLife,e.config.animFramerate=n.textures.length/e.maxLife):(e.config.animDuration=n.duration,e.config.animFramerate=n.framerate),e=e.next}}updateParticle(t,e){const i=t.config,n=i.anim;i.animElapsed+=e,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;t.texture=n.textures[s]||n.textures[n.textures.length-1]||v.Texture.EMPTY}}Ti.type="animatedRandom",Ti.editorConfig=null;class Oi{constructor(t){this.order=X.Normal;const e=t.anim,i=Io(e.textures),n=e.framerate<0?-1:e.framerate>0?e.framerate:60;this.anim={textures:i,duration:n>0?i.length/n:0,framerate:n,loop:n>0?!!e.loop:!1}}initParticles(t){let e=t;const i=this.anim;for(;e;)e.texture=i.textures[0],e.config.animElapsed=0,i.framerate===-1?(e.config.animDuration=e.maxLife,e.config.animFramerate=i.textures.length/e.maxLife):(e.config.animDuration=i.duration,e.config.animFramerate=i.framerate),e=e.next}updateParticle(t,e){const i=this.anim,n=t.config;n.animElapsed+=e,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;t.texture=i.textures[s]||i.textures[i.textures.length-1]||v.Texture.EMPTY}}Oi.type="animatedSingle",Oi.editorConfig=null;class Pi{constructor(t){this.order=X.Normal,this.value=t.blendMode}initParticles(t){let e=t;for(;e;)e.blendMode=ql(this.value),e=e.next}}Pi.type="blendMode",Pi.editorConfig=null;class Ji{constructor(t){this.order=X.Spawn,this.spacing=t.spacing*Ft,this.start=t.start*Ft,this.distance=t.distance}initParticles(t){let e=0,i=t;for(;i;){let n;this.spacing?n=this.start+this.spacing*e:n=Math.random()*Math.PI*2,i.rotation=n,this.distance&&(i.position.x=this.distance,Ut(n,i.position)),i=i.next,++e}}}Ji.type="spawnBurst",Ji.editorConfig=null;class Ki{constructor(t){this.order=X.Normal,this.list=new Ze(!0),this.list.reset(_t.createList(t.color))}initParticles(t){let e=t;const i=this.list.first.value,n=pA(i.r,i.g,i.b);for(;e;)e.tint=n,e=e.next}updateParticle(t){t.tint=this.list.interpolate(t.agePercent)}}Ki.type="color",Ki.editorConfig=null;class Yi{constructor(t){this.order=X.Normal;let e=t.color;e.charAt(0)==="#"?e=e.substr(1):e.indexOf("0x")===0&&(e=e.substr(2)),this.value=parseInt(e,16)}initParticles(t){let e=t;for(;e;)e.tint=this.value,e=e.next}}Yi.type="colorStatic",Yi.editorConfig=null;class Wi{constructor(t){this.order=X.Normal,this.index=0,this.textures=t.textures.map(e=>typeof e=="string"?Xe(e):e)}initParticles(t){let e=t;for(;e;)e.texture=this.textures[this.index],++this.index>=this.textures.length&&(this.index=0),e=e.next}}Wi.type="textureOrdered",Wi.editorConfig=null;const Qe=new v.Point,fo=["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"],Ag=new RegExp(["[01234567890\\.\\*\\-\\+\\/\\(\\)x ,]"].concat(fo).join("|"),"g");function ig(A){const t=A.match(Ag);for(let e=t.length-1;e>=0;--e)fo.indexOf(t[e])>=0&&(t[e]=`Math.${t[e]}`);return A=t.join(""),new Function("x",`return ${A};`)}class ji{constructor(t){if(this.order=X.Late,t.path)if(typeof t.path=="function")this.path=t.path;else try{this.path=ig(t.path)}catch{this.path=null}else this.path=e=>e;this.list=new Ze(!1),this.list.reset(_t.createList(t.speed)),this.minMult=t.minMult??1}initParticles(t){let e=t;for(;e;){e.config.initRotation=e.rotation,e.config.initPosition?e.config.initPosition.copyFrom(e.position):e.config.initPosition=new v.Point(e.x,e.y),e.config.movement=0;const i=Math.random()*(1-this.minMult)+this.minMult;e.config.speedMult=i,e=e.next}}updateParticle(t,e){const i=this.list.interpolate(t.agePercent)*t.config.speedMult;t.config.movement+=i*e,Qe.x=t.config.movement,Qe.y=this.path(Qe.x),Ut(t.config.initRotation,Qe),t.position.x=t.config.initPosition.x+Qe.x,t.position.y=t.config.initPosition.y+Qe.y}}ji.type="movePath",ji.editorConfig=null;class Vi{constructor(){this.order=X.Spawn}initParticles(t){}}Vi.type="spawnPoint",Vi.editorConfig=null;class qi{constructor(t){this.order=X.Normal,this.textures=t.textures.map(e=>typeof e=="string"?Xe(e):e)}initParticles(t){let e=t;for(;e;){const i=Math.floor(Math.random()*this.textures.length);e.texture=this.textures[i],e=e.next}}}qi.type="textureRandom",qi.editorConfig=null;class Xi{constructor(t){this.order=X.Normal,this.minStart=t.minStart*Ft,this.maxStart=t.maxStart*Ft,this.minSpeed=t.minSpeed*Ft,this.maxSpeed=t.maxSpeed*Ft,this.accel=t.accel*Ft}initParticles(t){let e=t;for(;e;)this.minStart===this.maxStart?e.rotation+=this.maxStart:e.rotation+=Math.random()*(this.maxStart-this.minStart)+this.minStart,e.config.rotSpeed=Math.random()*(this.maxSpeed-this.minSpeed)+this.minSpeed,e=e.next}updateParticle(t,e){if(this.accel){const i=t.config.rotSpeed;t.config.rotSpeed+=this.accel*e,t.rotation+=(t.config.rotSpeed+i)/2*e}else t.rotation+=t.config.rotSpeed*e}}Xi.type="rotation",Xi.editorConfig=null;class Zi{constructor(t){this.order=X.Normal,this.min=t.min*Ft,this.max=t.max*Ft}initParticles(t){let e=t;for(;e;)this.min===this.max?e.rotation+=this.max:e.rotation+=Math.random()*(this.max-this.min)+this.min,e=e.next}}Zi.type="rotationStatic",Zi.editorConfig=null;class zi{constructor(t){this.order=X.Late+1,this.rotation=(t.rotation||0)*Ft}initParticles(t){let e=t;for(;e;)e.rotation=this.rotation,e=e.next}}zi.type="noRotation",zi.editorConfig=null;class $i{constructor(t){this.order=X.Normal,this.list=new Ze(!1),this.list.reset(_t.createList(t.scale)),this.minMult=t.minMult??1}initParticles(t){let e=t;for(;e;){const i=Math.random()*(1-this.minMult)+this.minMult;e.config.scaleMult=i,e.scale.x=e.scale.y=this.list.first.value*i,e=e.next}}updateParticle(t){t.scale.x=t.scale.y=this.list.interpolate(t.agePercent)*t.config.scaleMult}}$i.type="scale",$i.editorConfig=null;class tn{constructor(t){this.order=X.Normal,this.min=t.min,this.max=t.max}initParticles(t){let e=t;for(;e;){const i=Math.random()*(this.max-this.min)+this.min;e.scale.x=e.scale.y=i,e=e.next}}}tn.type="scaleStatic",tn.editorConfig=null;class xt{static registerShape(t,e){xt.shapes[e||t.type]=t}constructor(t){this.order=X.Spawn;const e=xt.shapes[t.type];if(!e)throw new Error(`No shape found with type '${t.type}'`);this.shape=new e(t.data)}initParticles(t){let e=t;for(;e;)this.shape.getRandPos(e),e=e.next}}xt.type="spawnShape",xt.editorConfig=null,xt.shapes={},xt.registerShape(Gi),xt.registerShape(Ni),xt.registerShape(wA),xt.registerShape(wA,"circle");class en{constructor(t){this.order=X.Normal,this.texture=typeof t.texture=="string"?Xe(t.texture):t.texture}initParticles(t){let e=t;for(;e;)e.texture=this.texture,e=e.next}}en.type="textureSingle",en.editorConfig=null;class An{constructor(t){this.order=X.Late,this.list=new Ze(!1),this.list.reset(_t.createList(t.speed)),this.minMult=t.minMult??1}initParticles(t){let e=t;for(;e;){const i=Math.random()*(1-this.minMult)+this.minMult;e.config.speedMult=i,e.config.velocity?e.config.velocity.set(this.list.first.value*i,0):e.config.velocity=new v.Point(this.list.first.value*i,0),Ut(e.rotation,e.config.velocity),e=e.next}}updateParticle(t,e){const i=this.list.interpolate(t.agePercent)*t.config.speedMult,n=t.config.velocity;Vl(n),ho(n,i),t.x+=n.x*e,t.y+=n.y*e}}An.type="moveSpeed",An.editorConfig=null;class nn{constructor(t){this.order=X.Late,this.min=t.min,this.max=t.max}initParticles(t){let e=t;for(;e;){const i=Math.random()*(this.max-this.min)+this.min;e.config.velocity?e.config.velocity.set(i,0):e.config.velocity=new v.Point(i,0),Ut(e.rotation,e.config.velocity),e=e.next}}updateParticle(t,e){const i=t.config.velocity;t.x+=i.x*e,t.y+=i.y*e}}nn.type="moveSpeedStatic",nn.editorConfig=null;class sn extends v.Sprite{constructor(t){super(),this.prevChild=this.nextChild=null,this.emitter=t,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(t){this.maxLife=t,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 on=v.Ticker.shared,se=Symbol("Position particle per emitter position");class j{static registerBehavior(t){j.knownBehaviors[t.type]=t}constructor(t,e){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 v.Point,this.particlesPerWave=1,this.rotation=0,this.ownerPos=new v.Point,this._prevEmitterPos=new v.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=t,e&&this.init(e),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(t){typeof t=="number"&&t>0?this._frequency=t:this._frequency=1}get parent(){return this._parent}set parent(t){this.cleanup(),this._parent=t}init(t){if(!t)return;this.cleanup(),this._origConfig=t,this.minLifetime=t.lifetime.min,this.maxLifetime=t.lifetime.max,t.ease?this.customEase=typeof t.ease=="function"?t.ease:uo(t.ease):this.customEase=null,this.particlesPerWave=1,t.particlesPerWave&&t.particlesPerWave>1&&(this.particlesPerWave=t.particlesPerWave),this.frequency=t.frequency,this.spawnChance=typeof t.spawnChance=="number"&&t.spawnChance>0?t.spawnChance:1,this.emitterLifetime=t.emitterLifetime||-1,this.maxParticles=t.maxParticles>0?t.maxParticles:1e3,this.addAtBack=!!t.addAtBack,this.rotation=0,this.ownerPos.set(0),t.pos?this.spawnPos.copyFrom(t.pos):this.spawnPos.set(0),this._prevEmitterPos.copyFrom(this.spawnPos),this._prevPosIsValid=!1,this._spawnTimer=0,this.emit=t.emit===void 0?!0:!!t.emit,this.autoUpdate=!!t.autoUpdate;const e=t.behaviors.map(i=>{const n=j.knownBehaviors[i.type];return n?new n(i.config):(console.error(`Unknown behavior: ${i.type}`),null)}).filter(i=>!!i);e.push(se),e.sort((i,n)=>i===se?n.order===X.Spawn?1:-1:n===se?i.order===X.Spawn?-1:1:i.order-n.order),this.initBehaviors=e.slice(),this.updateBehaviors=e.filter(i=>i!==se&&i.updateParticle),this.recycleBehaviors=e.filter(i=>i!==se&&i.recycleParticle)}getBehavior(t){return j.knownBehaviors[t]&&this.initBehaviors.find(e=>e instanceof j.knownBehaviors[t])||null}fillPool(t){for(;t>0;--t){const e=new sn(this);e.next=this._poolFirst,this._poolFirst=e}}recycle(t,e=!1){for(let i=0;i<this.recycleBehaviors.length;++i)this.recycleBehaviors[i].recycleParticle(t,!e);t.next&&(t.next.prev=t.prev),t.prev&&(t.prev.next=t.next),t===this._activeParticlesLast&&(this._activeParticlesLast=t.prev),t===this._activeParticlesFirst&&(this._activeParticlesFirst=t.next),t.prev=null,t.next=this._poolFirst,this._poolFirst=t,t.parent&&t.parent.removeChild(t),--this.particleCount}rotate(t){if(this.rotation===t)return;const e=t-this.rotation;this.rotation=t,Ut(e,this.spawnPos),this._posChanged=!0}updateSpawnPos(t,e){this._posChanged=!0,this.spawnPos.x=t,this.spawnPos.y=e}updateOwnerPos(t,e){this._posChanged=!0,this.ownerPos.x=t,this.ownerPos.y=e}resetPositionTracking(){this._prevPosIsValid=!1}get emit(){return this._emit}set emit(t){this._emit=!!t,this._emitterLife=this.emitterLifetime}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){this._autoUpdate&&!t?on.remove(this.update,this):!this._autoUpdate&&t&&on.add(this.update,this),this._autoUpdate=!!t}playOnceAndDestroy(t){this.autoUpdate=!0,this.emit=!0,this._destroyWhenComplete=!0,this._completeCallback=t}playOnce(t){this.emit=!0,this._completeCallback=t}update(t){if(typeof t!="number"&&(t=t.deltaTime),this._autoUpdate&&(t=on.elapsedMS*.001),!this._parent)return;for(let r=this._activeParticlesFirst,a;r;r=a)if(a=r.next,r.age+=t,r.age>r.maxLife||r.age<0)this.recycle(r);else{let g=r.age*r.oneOverLife;this.customEase&&(this.customEase.length===4?g=this.customEase(g,0,1,1):g=this.customEase(g)),r.agePercent=g;for(let c=0;c<this.updateBehaviors.length;++c)if(this.updateBehaviors[c].updateParticle(r,t)){this.recycle(r);break}}let e,i;this._prevPosIsValid&&(e=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-=t<0?0:t;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 r,a;if(this._prevPosIsValid&&this._posChanged){const B=1+this._spawnTimer/t;r=(n-e)*B+e,a=(s-i)*B+i}else r=n,a=s;let g=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 l;if(this.minLifetime===this.maxLifetime?l=this.minLifetime:l=Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,-this._spawnTimer>=l)continue;let h;this._poolFirst?(h=this._poolFirst,this._poolFirst=this._poolFirst.next,h.next=null):h=new sn(this),h.init(l),this.addAtBack?this._parent.addChildAt(h,0):this._parent.addChild(h),g?(c.next=h,h.prev=c,c=h):c=g=h,++this.particleCount}if(g){this._activeParticlesLast?(this._activeParticlesLast.next=g,g.prev=this._activeParticlesLast,this._activeParticlesLast=c):(this._activeParticlesFirst=g,this._activeParticlesLast=c);for(let B=0;B<this.initBehaviors.length;++B){const o=this.initBehaviors[B];if(o===se)for(let l=g,h;l;l=h){h=l.next,this.rotation!==0&&(Ut(this.rotation,l.position),l.rotation+=this.rotation),l.position.x+=r,l.position.y+=a,l.age+=-this._spawnTimer;let f=l.age*l.oneOverLife;this.customEase&&(this.customEase.length===4?f=this.customEase(f,0,1,1):f=this.customEase(f)),l.agePercent=f}else o.initParticles(g)}for(let B=g,o;B;B=o){o=B.next;for(let l=0;l<this.updateBehaviors.length;++l)if(this.updateBehaviors[l].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 r=this._completeCallback;this._completeCallback=null,r()}this._destroyWhenComplete&&this.destroy()}}emitNow(){const t=this.ownerPos.x+this.spawnPos.x,e=this.ownerPos.y+this.spawnPos.y;let i=null,n=null;for(let s=Math.min(this.particlesPerWave,this.maxParticles-this.particleCount),r=0;r<s;++r){if(this.spawnChance<1&&Math.random()>=this.spawnChance)continue;let a;this._poolFirst?(a=this._poolFirst,this._poolFirst=this._poolFirst.next,a.next=null):a=new sn(this);let g;this.minLifetime===this.maxLifetime?g=this.minLifetime:g=Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,a.init(g),this.addAtBack?this._parent.addChildAt(a,0):this._parent.addChild(a),i?(n.next=a,a.prev=n,n=a):n=i=a,++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 r=this.initBehaviors[s];if(r===se)for(let a=i,g;a;a=g)g=a.next,this.rotation!==0&&(Ut(this.rotation,a.position),a.rotation+=this.rotation),a.position.x+=t,a.position.y+=e;else r.initParticles(i)}}}cleanup(){let t,e;for(t=this._activeParticlesFirst;t;t=e)e=t.next,this.recycle(t,!0);this._activeParticlesFirst=this._activeParticlesLast=null,this.particleCount=0}get destroyed(){return!(this._parent&&this.initBehaviors.length)}destroy(){this.autoUpdate=!1,this.cleanup();let t;for(let e=this._poolFirst;e;e=t)t=e.next,e.destroy();this._poolFirst=this._parent=this.spawnPos=this.ownerPos=this.customEase=this._completeCallback=null,this.initBehaviors.length=this.updateBehaviors.length=this.recycleBehaviors.length=0}}j.knownBehaviors={},j.registerBehavior(Hi),j.registerBehavior(Li),j.registerBehavior(Ui),j.registerBehavior(Ti),j.registerBehavior(Oi),j.registerBehavior(Pi),j.registerBehavior(Ji),j.registerBehavior(Ki),j.registerBehavior(Yi),j.registerBehavior(Wi),j.registerBehavior(ji),j.registerBehavior(Vi),j.registerBehavior(qi),j.registerBehavior(Xi),j.registerBehavior(Zi),j.registerBehavior(zi),j.registerBehavior($i),j.registerBehavior(tn),j.registerBehavior(xt),j.registerBehavior(en),j.registerBehavior(An),j.registerBehavior(nn);class ng extends Mi{constructor(){super(...arguments),this.elapsed=Date.now()}async onMount(t){await super.onMount(t);const{props:e}=t,i=e.context.tick;this.emitter=new j(this,e.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(t){}async onDestroy(t,e){const i=async()=>{this.emitter?.destroy(),this.emitter=null,this.subscriptionTick.unsubscribe(),e()};await super.onDestroy(t,i)}}st("ParticlesEmitter",ng);function sg(A){return ht("ParticlesEmitter",A)}const Bo=console.log;class Eo extends pt(v.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(){return this.app?.renderer}async detectImageDimensions(t){if(!t||typeof t!="string"||t.trim()==="")throw new Error(`Invalid image path provided to detectImageDimensions: ${t}`);let e=null;this.globalLoader&&(e=this.globalLoader.registerAsset(t),this.trackedAssetIds.add(e));const i=await v.Assets.load(t,n=>{this.globalLoader&&e&&this.globalLoader.updateProgress(e,n)});return this.globalLoader&&e&&this.globalLoader.completeAsset(e),{width:i.width,height:i.height}}async createTextures(t){let{width:e,height:i,framesHeight:n,framesWidth:s,image:r,offset:a}=t;if(!r||typeof r!="string"||r.trim()==="")return console.warn("Invalid image path provided to createTextures:",r),[];let g=null;this.globalLoader&&(g=this.globalLoader.registerAsset(r),this.trackedAssetIds.add(g));const c=await v.Assets.load(r,E=>{this.globalLoader&&g&&this.globalLoader.updateProgress(g,E)});this.globalLoader&&g&&this.globalLoader.completeAsset(g),(!e||e<=0)&&(e=c.width,t.width=e),(!i||i<=0)&&(i=c.height,t.height=i);const B=t.spriteWidth,o=t.spriteHeight,l=[],h=a&&a.x||0,f=a&&a.y||0;for(let E=0;E<n;E++){l[E]=[];for(let d=0;d<s;d++){const C=d*B+h,y=E*o+f;if(y>i)throw Bo(`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(C>e)throw Bo(`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.`);l[E].push(new v.Texture({source:c.source,frame:new v.Rectangle(C,y,B,o)}))}}return l}async createAnimations(){const{textures:t}=this.spritesheet;if(t)for(let e in t){const s={...["width","height","framesHeight","framesWidth","rectWidth","rectHeight","offset","image","sound"].reduce((E,d)=>({...E,[d]:this.spritesheet[d]}),{}),...t[e]},{rectWidth:r,width:a=0,framesWidth:g=1,rectHeight:c,height:B=0,framesHeight:o=1,image:l}=s;let h=a,f=B;if(l&&(!h||h<=0||!f||f<=0)){const E=await this.detectImageDimensions(l);(!h||h<=0)&&(h=E.width,s.width=h),(!f||f<=0)&&(f=E.height,s.height=f)}s.spriteWidth=r||h/g,s.spriteHeight=c||f/o,this.animations.set(e,{frames:await this.createTextures(s),name:e,animations:t[e].animations,params:[],data:s,sprites:[]})}}async onMount(t){this["#element"]=t;const{props:e,propObservables:i}=t,n=e.context.tick,s=e.sheet??{},r=e.sheet?.definition??{};if(this.app=e.context.app(),this.globalLoader=e.context?.globalLoader||null,s?.onFinish&&(this.onFinish=s.onFinish),this.subscriptionTick=n.observable.subscribe(g=>{this.destroyed||this.update(g)}),r){const g=r instanceof Promise?await r:r;this.spritesheet=g.value??g,await this.createAnimations()}if(s.params)for(let g in i?.sheet.params){const c=i?.sheet.params[g];N(c)?this.subscriptionSheet.push(c.observable.subscribe(B=>{this.animations.size!=0&&this.play(this.sheetCurrentAnimation,[{[g]:B}])})):this.play(this.sheetCurrentAnimation,[{[g]:c}])}const a=Ct(()=>{const{x:g,y:c}=i??{};if(!g||!c)return!1;const B=g,o=c,l=Ce(B)&&B.animatedState().current!==B.animatedState().end,h=Ce(o)&&o.animatedState().current!==o.animatedState().end;return l||h});nt(()=>{const g=a();this.isMounted&&(g?this.sheetCurrentAnimation="walk":this.sheetCurrentAnimation="stand",this.spritesheet&&this.has(this.sheetCurrentAnimation)&&this.play(this.sheetCurrentAnimation,[this.sheetParams]))}),super.onMount(t)}async onUpdate(t){if(this.destroyed)return;super.onUpdate(t),!this.globalLoader&&t.context?.globalLoader&&(this.globalLoader=t.context.globalLoader);const e=async s=>{if(!s||typeof s!="string"||s.trim()==="")return console.warn("Invalid image path provided to setTexture:",s),null;let r=null;this.globalLoader&&(r=this.globalLoader.registerAsset(s),this.trackedAssetIds.add(r));const a=this.fullProps.loader?.onProgress,g=await v.Assets.load(s,c=>{if(this.globalLoader&&r&&this.globalLoader.updateProgress(r,c),a&&a(c),c==1){this.globalLoader&&r&&this.globalLoader.completeAsset(r);const B=this.fullProps.loader?.onComplete;B&&setTimeout(()=>{B(g)})}});return g},i=t.sheet,n=t.sheet?.definition??{};if(n?.type==="reset"){const s=n.value instanceof Promise?await n.value:n.value;this.spritesheet=s??n,await this.resetAnimations()}if(i?.params&&(this.sheetParams=i?.params),i?.playing&&this.isMounted&&this.spritesheet&&this.animations.size>0&&(this.sheetCurrentAnimation=i?.playing,this.play(this.sheetCurrentAnimation,[this.sheetParams])),t.hitbox&&(this.hitbox=t.hitbox.value??t.hitbox),t.scaleMode)this.baseTexture.scaleMode=t.scaleMode;else if(t.image&&this.fullProps.rectangle===void 0){const s=await e(this.fullProps.image);s&&(this.texture=s)}else t.texture&&(dt(t.texture)?(t.texture.componentInstance.subjectInit.subscribe(),this.texture=this.renderer?.generateTexture(t.texture.componentInstance)):this.texture=t.texture);if(t.rectangle!==void 0){const{x:s,y:r,width:a,height:g}=t.rectangle?.value??t.rectangle,c=await e(this.fullProps.image);c&&(this.texture=new v.Texture({source:c.source,frame:new v.Rectangle(s,r,a,g)}))}}async onDestroy(t,e){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 v.Container&&this.parent.removeChild(this.currentAnimationContainer),e&&e()};await super.onDestroy(t,i)}has(t){return this.animations.has(t)}get(t){return this.animations.get(t)}isPlaying(t){return t?this.currentAnimation==null?!1:this.currentAnimation.name==t:!!this.currentAnimation}stop(){this.currentAnimation=null}play(t,e=[]){const i=this.currentAnimation?.params;if(this.isPlaying(t)&&lA(e,i||[]))return;const n=this.get(t);if(!n)throw new Error(`Impossible to play the ${t} animation because it doesn't exist on the "${this.id}" spritesheet`);const s=structuredClone(e);this.removeChildren(),n.sprites=[],this.currentAnimation=n,this.currentAnimation.params=s,this.time=0,this.frameIndex=0;let r=n.animations;r=ns(r)?r(...s):r,this.currentAnimationContainer=new v.Container;for(let g of r){const c=new v.Sprite;for(let B of g)this.currentAnimation.sprites.push(B);this.currentAnimationContainer.addChild(c)}const a=this.currentAnimation.data.sound;a&&new de.Howl({src:a,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:t}){const e=this.getElement();if(e&&St(e)||!this.isPlaying()||!this.currentAnimation||!this.currentAnimationContainer)return;const i=this,{frames:n,sprites:s,data:r}=this.currentAnimation;let a=s[this.frameIndex];const g=s[this.frameIndex+1];for(let c of this.currentAnimationContainer.children){let B=function(d,C){const m=o(C||d);m!==void 0&&(i[d]=m)};if(!a||a.frameY==null||a.frameX==null)continue;this.texture=n[a.frameY][a.frameX];const o=d=>a[d]??r[d]??this.spritesheet[d],l=d=>{const C=o(d);C&&this[d].set(...C)};this.applyTransform&&(a={...a,...this.applyTransform(a,r,this.spritesheet)});const h=o("spriteRealSize"),f=typeof h=="number"?h:h?.height;typeof h=="number"||h?.width;const E=()=>{if(f&&this.hitbox){const{spriteWidth:d,spriteHeight:C}=r,y=(d-this.hitbox.w)/2/d,m=(C-f)/2,b=(C-this.hitbox.h-m)/C;this.anchor.set(y,b)}};a.sound,E(),l("anchor"),l("scale"),l("skew"),l("pivot"),B("alpha","opacity"),B("x"),B("y"),B("angle"),B("rotation"),B("visible")}if(!g){this.time=0,this.frameIndex=0,this.onFinish&&s.length>1&&this.onFinish();return}this.time+=t??1,this.time>=g.time&&this.frameIndex++}}st("Sprite",Eo);const rn=A=>(st("Sprite",Eo),ht("Sprite",A));function og(A){const t={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},e=Y(null),i=Si(A),{play:n,loop:s,muted:r}=i({play:{type:Boolean,default:!0},loop:{type:Boolean,default:!1},muted:{type:Boolean,default:!1}});return nt(()=>{const a=e(),g=n();a&&g!==void 0&&(g?a.play():a.pause()),a&&s()&&(a.loop=s()),a&&r()&&(a.muted=r())}),Fi(()=>()=>{for(let a in t)t[a]&&e().removeEventListener(a,t[a])}),gt(rn,{...A,image:A.src,loader:{onComplete:a=>{const g=a.source.resource;e.set(g),A?.loader?.onComplete&&A.loader.onComplete(a);for(let c in t)if(A[c]){const B=o=>{A[c](o)};t[c]=B,g.addEventListener(c,B)}}}})}class rg extends pt(v.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(t,e){const{props:i}=t;await super.onMount(t,e);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&&Ve(this.typewriterOptions.skip)&&QA(this.typewriterOptions.skip,()=>{this.skipTypewriter()}),this.typewriterOptions.sound&&this.initializeTypewriterSound()),this.updateLayout()),this.subscriptionTick=n.observable.subscribe(()=>{i.typewriter&&this.typewriterEffect()})}onUpdate(t){if(super.onUpdate(t),t.typewriter&&t.typewriter&&(this.typewriterOptions=t.typewriter,t.typewriter.sound&&this.initializeTypewriterSound()),t.text!==void 0&&(this.text=""+t.text),t.text!==void 0&&t.text!==this.fullText&&this.fullProps.typewriter&&(this.text="",this.currentIndex=0,this.fullText=t.text,this.updateLayout()),t.style){for(const e in t.style)this.style[e]=t.style[e];t.style.wordWrapWidth&&(this._wordWrapWidth=t.style.wordWrapWidth)}t.color&&(this.style.fill=t.color),t.size&&(this.style.fontSize=t.size),t.fontFamily&&(this.style.fontFamily=t.fontFamily),this.updateLayout()}get onCompleteCallback(){return this.typewriterOptions.onComplete}initializeTypewriterSound(){this.typewriterOptions.sound?.src&&(this.typewriterSound=new de.Howl({src:[this.typewriterOptions.sound.src],volume:this.typewriterOptions.sound.volume??.5,rate:this.typewriterOptions.sound.rate??1,preload:!0,onload:()=>{if(this.typewriterSound){const t=this.typewriterSound.duration(),e=this.typewriterOptions.sound?.rate??1;this.soundDuration=t/e*1e3}}}))}playTypewriterSound(t){!this.typewriterSound||!this.typewriterOptions.sound||this.soundDuration>0&&t-this.lastSoundTime<this.soundDuration||(this.typewriterSound.play(),this.lastSoundTime=t)}updateLayout(){this._wordWrapWidth?this.setWidth(this._wordWrapWidth):this.setWidth(this.width),this.setHeight(this.height)}typewriterEffect(){if(this.currentIndex<this.fullText.length){const t=Math.min(this.currentIndex+(this.typewriterOptions.speed??1),this.fullText.length);this.text=this.fullText.slice(0,t),this.currentIndex=t,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(t,e){const i=async()=>{this.subscriptionTick&&this.subscriptionTick.unsubscribe(),this.typewriterSound&&(this.typewriterSound.stop(),this.typewriterSound.unload(),this.typewriterSound=void 0),e&&e()};await super.onDestroy(t,i)}}st("Text",rg);function Co(A){return ht("Text",A)}class ag extends pt(v.TilingSprite){onUpdate(t){super.onUpdate(t),t.image&&(this.texture=v.Texture.from(t.image)),t.tileScale&&this.tileScale.set(t.tileScale.x,t.tileScale.y),t.tilePosition&&this.tilePosition.set(t.tilePosition.x,t.tilePosition.y),t.width!==void 0&&(this.width=t.width),t.height!==void 0&&(this.height=t.height)}}st("TilingSprite",ag);function lg(A){return ht("TilingSprite",A)}var gg=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function cg(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var Qo={exports:{}};(function(A,t){(function(){var e,i;i=function(n){return A.exports=n},e={linear:function(n,s,r,a){return r*n/a+s},easeInQuad:function(n,s,r,a){return r*(n/=a)*n+s},easeOutQuad:function(n,s,r,a){return-r*(n/=a)*(n-2)+s},easeInOutQuad:function(n,s,r,a){return(n/=a/2)<1?r/2*n*n+s:-r/2*(--n*(n-2)-1)+s},easeInCubic:function(n,s,r,a){return r*(n/=a)*n*n+s},easeOutCubic:function(n,s,r,a){return r*((n=n/a-1)*n*n+1)+s},easeInOutCubic:function(n,s,r,a){return(n/=a/2)<1?r/2*n*n*n+s:r/2*((n-=2)*n*n+2)+s},easeInQuart:function(n,s,r,a){return r*(n/=a)*n*n*n+s},easeOutQuart:function(n,s,r,a){return-r*((n=n/a-1)*n*n*n-1)+s},easeInOutQuart:function(n,s,r,a){return(n/=a/2)<1?r/2*n*n*n*n+s:-r/2*((n-=2)*n*n*n-2)+s},easeInQuint:function(n,s,r,a){return r*(n/=a)*n*n*n*n+s},easeOutQuint:function(n,s,r,a){return r*((n=n/a-1)*n*n*n*n+1)+s},easeInOutQuint:function(n,s,r,a){return(n/=a/2)<1?r/2*n*n*n*n*n+s:r/2*((n-=2)*n*n*n*n+2)+s},easeInSine:function(n,s,r,a){return-r*Math.cos(n/a*(Math.PI/2))+r+s},easeOutSine:function(n,s,r,a){return r*Math.sin(n/a*(Math.PI/2))+s},easeInOutSine:function(n,s,r,a){return-r/2*(Math.cos(Math.PI*n/a)-1)+s},easeInExpo:function(n,s,r,a){return n===0?s:r*Math.pow(2,10*(n/a-1))+s},easeOutExpo:function(n,s,r,a){return n===a?s+r:r*(-Math.pow(2,-10*n/a)+1)+s},easeInOutExpo:function(n,s,r,a){return(n/=a/2)<1?r/2*Math.pow(2,10*(n-1))+s:r/2*(-Math.pow(2,-10*--n)+2)+s},easeInCirc:function(n,s,r,a){return-r*(Math.sqrt(1-(n/=a)*n)-1)+s},easeOutCirc:function(n,s,r,a){return r*Math.sqrt(1-(n=n/a-1)*n)+s},easeInOutCirc:function(n,s,r,a){return(n/=a/2)<1?-r/2*(Math.sqrt(1-n*n)-1)+s:r/2*(Math.sqrt(1-(n-=2)*n)+1)+s},easeInElastic:function(n,s,r,a){var g,c,B;return B=1.70158,c=0,g=r,n===0||(n/=a),c||(c=a*.3),g<Math.abs(r)?(g=r,B=c/4):B=c/(2*Math.PI)*Math.asin(r/g),-(g*Math.pow(2,10*(n-=1))*Math.sin((n*a-B)*(2*Math.PI)/c))+s},easeOutElastic:function(n,s,r,a){var g,c,B;return B=1.70158,c=0,g=r,n===0||(n/=a),c||(c=a*.3),g<Math.abs(r)?(g=r,B=c/4):B=c/(2*Math.PI)*Math.asin(r/g),g*Math.pow(2,-10*n)*Math.sin((n*a-B)*(2*Math.PI)/c)+r+s},easeInOutElastic:function(n,s,r,a){var g,c,B;return B=1.70158,c=0,g=r,n===0||(n/=a/2),c||(c=a*.44999999999999996),g<Math.abs(r)?(g=r,B=c/4):B=c/(2*Math.PI)*Math.asin(r/g),n<1?-.5*(g*Math.pow(2,10*(n-=1))*Math.sin((n*a-B)*(2*Math.PI)/c))+s:g*Math.pow(2,-10*(n-=1))*Math.sin((n*a-B)*(2*Math.PI)/c)*.5+r+s},easeInBack:function(n,s,r,a,g){return g===void 0&&(g=1.70158),r*(n/=a)*n*((g+1)*n-g)+s},easeOutBack:function(n,s,r,a,g){return g===void 0&&(g=1.70158),r*((n=n/a-1)*n*((g+1)*n+g)+1)+s},easeInOutBack:function(n,s,r,a,g){return g===void 0&&(g=1.70158),(n/=a/2)<1?r/2*(n*n*(((g*=1.525)+1)*n-g))+s:r/2*((n-=2)*n*(((g*=1.525)+1)*n+g)+2)+s},easeInBounce:function(n,s,r,a){var g;return g=e.easeOutBounce(a-n,0,r,a),r-g+s},easeOutBounce:function(n,s,r,a){return(n/=a)<.36363636363636365?r*(7.5625*n*n)+s:n<.7272727272727273?r*(7.5625*(n-=.5454545454545454)*n+.75)+s:n<.9090909090909091?r*(7.5625*(n-=.8181818181818182)*n+.9375)+s:r*(7.5625*(n-=.9545454545454546)*n+.984375)+s},easeInOutBounce:function(n,s,r,a){var g;return n<a/2?(g=e.easeInBounce(n*2,0,r,a),g*.5+s):(g=e.easeOutBounce(n*2-a,0,r,a),g*.5+r*.5+s)}},i(e)}).call(gg)})(Qo);var hg=Qo.exports;const po=cg(hg);function mA(A,t){if(A){if(typeof A=="function")return A;if(typeof A=="string")return po[A]}else return po[t]}class ug{constructor(t){this.viewport=t,this.touches=[],this.addListeners()}addListeners(){this.viewport.eventMode="static",this.viewport.forceHitArea||(this.viewport.hitArea=new v.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=t=>this.handleWheel(t),this.viewport.options.events.domElement.addEventListener("wheel",this.wheelFunction,{passive:this.viewport.options.passiveWheel}),this.isMouseDown=!1}destroy(){var t;(t=this.viewport.options.events.domElement)==null||t.removeEventListener("wheel",this.wheelFunction)}down(t){if(!(this.viewport.pause||!this.viewport.visible)){if(t.pointerType==="mouse"?this.isMouseDown=!0:this.get(t.pointerId)||this.touches.push({id:t.pointerId,last:null}),this.count()===1){this.last=t.global.clone();const e=this.viewport.plugins.get("decelerate",!0),i=this.viewport.plugins.get("bounce",!0);(!e||!e.isActive())&&(!i||!i.isActive())?this.clickedAvailable=!0:this.clickedAvailable=!1}else this.clickedAvailable=!1;this.viewport.plugins.down(t)&&this.viewport.options.stopPropagation&&t.stopPropagation()}}clear(){this.isMouseDown=!1,this.touches=[],this.last=null}checkThreshold(t){return Math.abs(t)>=this.viewport.threshold}move(t){if(this.viewport.pause||!this.viewport.visible)return;const e=this.viewport.plugins.move(t);if(this.clickedAvailable&&this.last){const i=t.global.x-this.last.x,n=t.global.y-this.last.y;(this.checkThreshold(i)||this.checkThreshold(n))&&(this.clickedAvailable=!1)}e&&this.viewport.options.stopPropagation&&t.stopPropagation()}up(t){if(this.viewport.pause||!this.viewport.visible)return;t.pointerType==="mouse"&&(this.isMouseDown=!1),t.pointerType!=="mouse"&&this.remove(t.pointerId);const e=this.viewport.plugins.up(t);this.clickedAvailable&&this.count()===0&&this.last&&(this.viewport.emit("clicked",{event:t,screen:this.last,world:this.viewport.toWorld(this.last),viewport:this.viewport}),this.clickedAvailable=!1),e&&this.viewport.options.stopPropagation&&t.stopPropagation()}getPointerPosition(t){const e=new v.Point;return this.viewport.options.events.mapPositionToPoint(e,t.clientX,t.clientY),e}handleWheel(t){if(this.viewport.pause||!this.viewport.visible)return;const e=this.viewport.toLocal(this.getPointerPosition(t));this.viewport.left<=e.x&&e.x<=this.viewport.right&&this.viewport.top<=e.y&&e.y<=this.viewport.bottom&&this.viewport.plugins.wheel(t)&&!this.viewport.options.passiveWheel&&t.preventDefault()}pause(){this.touches=[],this.isMouseDown=!1}get(t){for(const e of this.touches)if(e.id===t)return e;return null}remove(t){for(let e=0;e<this.touches.length;e++)if(this.touches[e].id===t){this.touches.splice(e,1);return}}count(){return(this.isMouseDown?1:0)+this.touches.length}}const ze=["drag","pinch","wheel","follow","mouse-edges","decelerate","animate","bounce","snap-zoom","clamp-zoom","snap","clamp"];class Ig{constructor(t){this.viewport=t,this.list=[],this.plugins={}}add(t,e,i=ze.length){const n=this.plugins[t];n&&n.destroy(),this.plugins[t]=e;const s=ze.indexOf(t);s!==-1&&ze.splice(s,1),ze.splice(i,0,t),this.sort()}get(t,e){var i;return e&&(i=this.plugins[t])!=null&&i.paused?null:this.plugins[t]}update(t){for(const e of this.list)e.update(t)}resize(){for(const t of this.list)t.resize()}reset(){for(const t of this.list)t.reset()}removeAll(){this.list.forEach(t=>{t.destroy()}),this.plugins={},this.sort()}remove(t){var e;this.plugins[t]&&((e=this.plugins[t])==null||e.destroy(),delete this.plugins[t],this.viewport.emit("plugin-remove",t),this.sort())}pause(t){var e;(e=this.plugins[t])==null||e.pause()}resume(t){var e;(e=this.plugins[t])==null||e.resume()}sort(){this.list=[];for(const t of ze)this.plugins[t]&&this.list.push(this.plugins[t])}down(t){let e=!1;for(const i of this.list)i.down(t)&&(e=!0);return e}move(t){let e=!1;for(const i of this.viewport.plugins.list)i.move(t)&&(e=!0);return e}up(t){let e=!1;for(const i of this.list)i.up(t)&&(e=!0);return e}wheel(t){let e=!1;for(const i of this.list)i.wheel(t)&&(e=!0);return e}}class yt{constructor(t){this.parent=t,this.paused=!1}destroy(){}down(t){return!1}move(t){return!1}up(t){return!1}wheel(t){return!1}update(t){}resize(){}reset(){}pause(){this.paused=!0}resume(){this.paused=!1}}const fg={removeOnInterrupt:!1,ease:"linear",time:1e3};class Bg extends yt{constructor(t,e={}){super(t),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({},fg,e),this.options.ease=mA(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(t){if(this.paused)return;this.time+=t;const e=new v.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:e,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,r=this.deltaX,a=this.deltaY,g=new v.Point(this.parent.x,this.parent.y);this.parent.moveCenter(n+r*i,s+a*i),this.parent.emit("moved",{viewport:this.parent,original:g,type:"animate"})}(this.width||this.height)&&this.parent.emit("zoomed",{viewport:this.parent,original:e,type:"animate"})}}}const Eg={sides:"all",friction:.5,time:150,ease:"easeInOutSine",underflow:"center",bounceBox:null};class Cg extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},Eg,e),this.ease=mA(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(t){if(!this.paused){if(this.bounce(),this.toX){const e=this.toX;e.time+=t,this.parent.emit("moved",{viewport:this.parent,type:"bounce-x"}),e.time>=this.options.time?(this.parent.x=e.end,this.toX=null,this.parent.emit("bounce-x-end",this.parent)):this.parent.x=this.ease(e.time,e.start,e.delta,this.options.time)}if(this.toY){const e=this.toY;e.time+=t,this.parent.emit("moved",{viewport:this.parent,type:"bounce-y"}),e.time>=this.options.time?(this.parent.y=e.end,this.toY=null,this.parent.emit("bounce-y-end",this.parent)):this.parent.y=this.ease(e.time,e.start,e.delta,this.options.time)}}}calcUnderflowX(){let t;switch(this.underflowX){case-1:t=0;break;case 1:t=this.parent.screenWidth-this.parent.screenWorldWidth;break;default:t=(this.parent.screenWidth-this.parent.screenWorldWidth)/2}return t}calcUnderflowY(){let t;switch(this.underflowY){case-1:t=0;break;case 1:t=this.parent.screenHeight-this.parent.screenWorldHeight;break;default:t=(this.parent.screenHeight-this.parent.screenWorldHeight)/2}return t}oob(){const t=this.options.bounceBox;if(t){const e=typeof t.x>"u"?0:t.x,i=typeof t.y>"u"?0:t.y,n=typeof t.width>"u"?this.parent.worldWidth:t.width,s=typeof t.height>"u"?this.parent.worldHeight:t.height;return{left:this.parent.left<e,right:this.parent.right>n,top:this.parent.top<i,bottom:this.parent.bottom>s,topLeft:new v.Point(e*this.parent.scale.x,i*this.parent.scale.y),bottomRight:new v.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 v.Point(0,0),bottomRight:new v.Point(this.parent.worldWidth*this.parent.scale.x-this.parent.screenWidth,this.parent.worldHeight*this.parent.scale.y-this.parent.screenHeight)}}bounce(){var t,e;if(this.paused)return;let i,n=this.parent.plugins.get("decelerate",!0);n&&(n.x||n.y)&&(n.x&&n.percentChangeX===((t=n.options)==null?void 0:t.friction)||n.y&&n.percentChangeY===((e=n.options)==null?void 0:e.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)||{},r=this.parent.plugins.get("pinch",!0)||{};if(n=n||{},!(s!=null&&s.active)&&!(r!=null&&r.active)&&(!this.toX||!this.toY)&&(!n.x||!n.y)){i=i||this.oob();const a=i.topLeft,g=i.bottomRight;if(!this.toX&&!n.x){let c=null;i.left&&this.left?c=this.parent.screenWorldWidth<this.parent.screenWidth?this.calcUnderflowX():-a.x:i.right&&this.right&&(c=this.parent.screenWorldWidth<this.parent.screenWidth?this.calcUnderflowX():-g.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():-a.y:i.bottom&&this.bottom&&(c=this.parent.screenWorldHeight<this.parent.screenHeight?this.calcUnderflowY():-g.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 dg={left:!1,right:!1,top:!1,bottom:!1,direction:null,underflow:"center"};class Qg extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},dg,e),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 t=this.options.underflow.toLowerCase();t==="none"?this.noUnderflow=!0:t==="center"?(this.underflowX=this.underflowY=0,this.noUnderflow=!1):(this.underflowX=t.indexOf("left")!==-1?-1:t.indexOf("right")!==-1?1:0,this.underflowY=t.indexOf("top")!==-1?-1:t.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 t=new v.Point(this.parent.x,this.parent.y),e=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,e.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,e.x=0,i=!0);i&&this.parent.emit("moved",{viewport:this.parent,original:t,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,e.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,e.y=0,i=!0);i&&this.parent.emit("moved",{viewport:this.parent,original:t,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 pg={minWidth:null,minHeight:null,maxWidth:null,maxHeight:null,minScale:null,maxScale:null};class yg extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},pg,e),this.clamp()}resize(){this.clamp()}clamp(){if(!this.paused){if(this.options.minWidth||this.options.minHeight||this.options.maxWidth||this.options.maxHeight){let t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight;if(this.options.minWidth!==null&&t<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,t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.maxWidth!==null&&t>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,t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.minHeight!==null&&e<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,t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.maxHeight!==null&&e>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 t={x:null,y:null},e={x:null,y:null};if(typeof this.options.minScale=="number")t.x=this.options.minScale,t.y=this.options.minScale;else if(this.options.minScale!==null){const s=this.options.minScale;t.x=typeof s.x>"u"?null:s.x,t.y=typeof s.y>"u"?null:s.y}if(typeof this.options.maxScale=="number")e.x=this.options.maxScale,e.y=this.options.maxScale;else if(this.options.maxScale!==null){const s=this.options.maxScale;e.x=typeof s.x>"u"?null:s.x,e.y=typeof s.y>"u"?null:s.y}let i=this.parent.scale.x,n=this.parent.scale.y;t.x!==null&&i<t.x&&(i=t.x),e.x!==null&&i>e.x&&(i=e.x),t.y!==null&&n<t.y&&(n=t.y),e.y!==null&&n>e.y&&(n=e.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 wg={friction:.98,bounce:.8,minSpeed:.01},qt=16;class mg extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},wg,e),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 t=this.parent.input.count();return(t===1||t>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(t){if(this.saved.length){const e=this.saved[this.saved.length-1];t.type==="clamp-x"&&t.original?e.x===t.original.x&&(e.x=this.parent.x):t.type==="clamp-y"&&t.original&&e.y===t.original.y&&(e.y=this.parent.y)}}up(){if(this.parent.input.count()===0&&this.saved.length){const t=performance.now();for(const e of this.saved)if(e.time>=t-100){const i=t-e.time;this.x=(this.parent.x-e.x)/i,this.y=(this.parent.y-e.y)/i,this.percentChangeX=this.percentChangeY=this.options.friction,this.timeSinceRelease=0;break}}return!1}activate(t){t=t||{},typeof t.x<"u"&&(this.x=t.x,this.percentChangeX=this.options.friction),typeof t.y<"u"&&(this.y=t.y,this.percentChangeY=this.options.friction)}update(t){if(this.paused)return;const e=this.x||this.y,i=this.timeSinceRelease,n=this.timeSinceRelease+t;if(this.x){const s=this.percentChangeX,r=Math.log(s);this.parent.x+=this.x*qt/r*(Math.pow(s,n/qt)-Math.pow(s,i/qt)),this.x*=Math.pow(this.percentChangeX,t/qt)}if(this.y){const s=this.percentChangeY,r=Math.log(s);this.parent.y+=this.y*qt/r*(Math.pow(s,n/qt)-Math.pow(s,i/qt)),this.y*=Math.pow(this.percentChangeY,t/qt)}this.timeSinceRelease+=t,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)),e&&this.parent.emit("moved",{viewport:this.parent,type:"decelerate"})}reset(){this.x=this.y=null}}const Dg={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 vg extends yt{constructor(t,e={}){super(t),this.windowEventHandlers=[],this.options=Object.assign({},Dg,e),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(t){const e=n=>{t.includes(n.code)&&(this.keyIsPressed=!0)},i=n=>{t.includes(n.code)&&(this.keyIsPressed=!1)};this.addWindowEventHandler("keyup",i),this.addWindowEventHandler("keydown",e)}addWindowEventHandler(t,e){typeof window>"u"||(window.addEventListener(t,e),this.windowEventHandlers.push({event:t,handler:e}))}destroy(){typeof window>"u"||this.windowEventHandlers.forEach(({event:t,handler:e})=>{window.removeEventListener(t,e)})}mouseButtons(t){!t||t==="all"?this.mouse=[!0,!0,!0]:this.mouse=[t.indexOf("left")!==-1,t.indexOf("middle")!==-1,t.indexOf("right")!==-1]}parseUnderflow(){const t=this.options.underflow.toLowerCase();t==="center"?(this.underflowX=0,this.underflowY=0):(t.includes("left")?this.underflowX=-1:t.includes("right")?this.underflowX=1:this.underflowX=0,t.includes("top")?this.underflowY=-1:t.includes("bottom")?this.underflowY=1:this.underflowY=0)}checkButtons(t){const e=t.pointerType==="mouse",i=this.parent.input.count();return!!((i===1||i>1&&!this.parent.plugins.get("pinch",!0))&&(!e||this.mouse[t.button]))}checkKeyPress(t){return!this.options.keyToPress||this.keyIsPressed||this.options.ignoreKeyToPressOnTouch&&t.data.pointerType==="touch"}down(t){return this.paused||!this.options.pressDrag?!1:this.checkButtons(t)&&this.checkKeyPress(t)?(this.last={x:t.global.x,y:t.global.y},(this.parent.parent||this.parent).toLocal(this.last,void 0,this.last),this.current=t.pointerId,!0):(this.last=null,!1)}get active(){return this.moved}move(t){if(this.paused||!this.options.pressDrag)return!1;if(this.last&&this.current===t.data.pointerId){const e=t.global.x,i=t.global.y,n=this.parent.input.count();if(n===1||n>1&&!this.parent.plugins.get("pinch",!0)){const s={x:e,y:i};(this.parent.parent||this.parent).toLocal(s,void 0,s);const r=s.x-this.last.x,a=s.y-this.last.y;if(this.moved||this.xDirection&&this.parent.input.checkThreshold(r)||this.yDirection&&this.parent.input.checkThreshold(a))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:t,screen:new v.Point(this.last.x,this.last.y),world:this.parent.toWorld(new v.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(t){if(this.paused)return!1;const e=this.parent.input.touches;if(e.length===1){const i=e[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 v.Point(this.last.x,this.last.y);return(this.parent.parent||this.parent).toGlobal(i,i,!0),this.parent.emit("drag-end",{event:t,screen:i,world:this.parent.toWorld(i),viewport:this.parent}),this.last=null,this.moved=!1,!0}return!1}wheel(t){if(this.paused)return!1;if(this.options.wheel){const e=this.parent.plugins.get("wheel",!0);if(!e||!e.options.wheelZoom&&!t.ctrlKey){const i=t.deltaMode?this.options.lineHeight:1,n=[t.deltaX,t.deltaY],[s,r]=this.options.wheelSwapAxes?n.reverse():n;return this.xDirection&&(this.parent.x+=s*i*this.options.wheelScroll*this.reverse),this.yDirection&&(this.parent.y+=r*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||t.preventDefault(),this.parent.options.stopPropagation&&t.stopPropagation(),!0}}return!1}resume(){this.last=null,this.paused=!1}clamp(){const t=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,t.x=0):this.parent.right>this.parent.worldWidth&&(this.parent.x=-this.parent.worldWidth*this.parent.scale.x+this.parent.screenWidth,t.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,t.y=0),this.parent.bottom>this.parent.worldHeight&&(this.parent.y=-this.parent.worldHeight*this.parent.scale.y+this.parent.screenHeight,t.y=0)}}const bg={speed:0,acceleration:null,radius:null};class Sg extends yt{constructor(t,e,i={}){super(t),this.target=e,this.options=Object.assign({},bg,i),this.velocity={x:0,y:0}}update(t){if(this.paused)return;const e=this.parent.center;let i=this.target.x,n=this.target.y;if(this.options.radius)if(Math.sqrt(Math.pow(this.target.y-e.y,2)+Math.pow(this.target.x-e.x,2))>this.options.radius){const a=Math.atan2(this.target.y-e.y,this.target.x-e.x);i=this.target.x-Math.cos(a)*this.options.radius,n=this.target.y-Math.sin(a)*this.options.radius}else return;const s=i-e.x,r=n-e.y;if(s||r)if(this.options.speed)if(this.options.acceleration){const a=Math.atan2(n-e.y,i-e.x),g=Math.sqrt(Math.pow(s,2)+Math.pow(r,2));if(g){const c=(Math.pow(this.velocity.x,2)+Math.pow(this.velocity.y,2))/(2*this.options.acceleration);g>c?this.velocity={x:Math.min(this.velocity.x+(this.options.acceleration*t,this.options.speed)),y:Math.min(this.velocity.y+(this.options.acceleration*t,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(a)*this.velocity.x,o=Math.sin(a)*this.velocity.y,l=Math.abs(B)>Math.abs(s)?i:e.x+B,h=Math.abs(o)>Math.abs(r)?n:e.y+o;this.parent.moveCenter(l,h),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}}else{const a=Math.atan2(n-e.y,i-e.x),g=Math.cos(a)*this.options.speed,c=Math.sin(a)*this.options.speed,B=Math.abs(g)>Math.abs(s)?i:e.x+g,o=Math.abs(c)>Math.abs(r)?n:e.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 xg={radius:null,distance:null,top:null,bottom:null,left:null,right:null,speed:8,reverse:!1,noDecelerate:!1,linear:!1,allowButtons:!1};class kg extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},xg,e),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 t=this.options.distance;t!==null?(this.left=t,this.top=t,this.right=this.parent.screenWidth-t,this.bottom=this.parent.screenHeight-t):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(t){if(this.paused||t.pointerType!=="mouse"&&t.pointerId!==1||!this.options.allowButtons&&t.buttons!==0)return!1;const e=t.global.x,i=t.global.y;if(this.radiusSquared){const n=this.parent.toScreen(this.parent.center);if(Math.pow(n.x-e,2)+Math.pow(n.y-i,2)>=this.radiusSquared){const s=Math.atan2(n.y-i,n.x-e);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&&e<this.left?this.horizontal=Number(this.reverse)*this.options.speed*.06:this.right!==null&&e>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 t=this.parent.plugins.get("decelerate",!0);this.horizontal&&t&&!this.options.noDecelerate&&t.activate({x:this.horizontal*this.options.speed*this.reverse/16.666666666666668})}decelerateVertical(){const t=this.parent.plugins.get("decelerate",!0);this.vertical&&t&&!this.options.noDecelerate&&t.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 t=this.parent.center;this.horizontal&&(t.x+=this.horizontal*this.options.speed),this.vertical&&(t.y+=this.vertical*this.options.speed),this.parent.moveCenter(t),this.parent.emit("moved",{viewport:this.parent,type:"mouse-edges"})}}}const Mg={noDrag:!1,percent:1,center:null,factor:1,axis:"all"},Rg=new v.Point;class _g extends yt{constructor(t,e={}){super(t),this.active=!1,this.pinching=!1,this.moved=!1,this.options=Object.assign({},Mg,e)}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(t){if(this.paused||!this.active)return!1;const{x:e,y:i}=(this.parent.parent||this.parent).toLocal(t.global,void 0,Rg),n=this.parent.input.touches;if(n.length>=2){const s=n[0],r=n[1],a=s.last&&r.last?Math.sqrt(Math.pow(r.last.x-s.last.x,2)+Math.pow(r.last.y-s.last.y,2)):null;if(s.id===t.pointerId?s.last={x:e,y:i,data:t}:r.id===t.pointerId&&(r.last={x:e,y:i,data:t}),a){let g;const c=new v.Point(s.last.x+(r.last.x-s.last.x)/2,s.last.y+(r.last.y-s.last.y)/2);this.options.center||(g=this.parent.toLocal(c,this.parent.parent||this.parent));let B=Math.sqrt(Math.pow(r.last.x-s.last.x,2)+Math.pow(r.last.y-s.last.y,2));B=B===0?B=1e-10:B;const o=(1-a/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 l=this.parent.plugins.get("clamp-zoom",!0);if(l&&l.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const h=(this.parent.parent||this.parent).toLocal(g,this.parent);this.parent.x+=(c.x-h.x)*this.options.factor,this.parent.y+=(c.y-h.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 Fg={topLeft:!1,friction:.8,time:1e3,ease:"easeInOutSine",interrupt:!0,removeOnComplete:!1,removeOnInterrupt:!1,forceStart:!1};class Gg extends yt{constructor(t,e,i,n={}){super(t),this.options=Object.assign({},Fg,n),this.ease=mA(n.ease,"easeInOutSine"),this.x=e,this.y=i,this.options.forceStart&&this.snapStart()}snapStart(){this.percent=0,this.snapping={time:0};const t=this.options.topLeft?this.parent.corner:this.parent.center;this.deltaX=this.x-t.x,this.deltaY=this.y-t.y,this.startX=t.x,this.startY=t.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 t=this.parent.plugins.get("decelerate",!0);t&&(t.x||t.y)&&(t.percentChangeX=t.percentChangeY=this.options.friction)}return!1}update(t){if(!this.paused&&!(this.options.interrupt&&this.parent.input.count()!==0))if(this.snapping){const e=this.snapping;e.time+=t;let i,n,s;const r=this.startX,a=this.startY,g=this.deltaX,c=this.deltaY;if(e.time>this.options.time)i=!0,n=r+g,s=a+c;else{const B=this.ease(e.time,0,1,this.options.time);n=r+g*B,s=a+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 e=this.options.topLeft?this.parent.corner:this.parent.center;(e.x!==this.x||e.y!==this.y)&&this.snapStart()}}}const Ng={width:0,height:0,time:1e3,ease:"easeInOutSine",center:null,interrupt:!0,removeOnComplete:!1,removeOnInterrupt:!1,forceStart:!1,noMove:!1};class Hg extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},Ng,e),this.ease=mA(this.options.ease),this.xIndependent=!1,this.yIndependent=!1,this.xScale=0,this.yScale=0,this.options.width>0&&(this.xScale=t.screenWidth/this.options.width,this.xIndependent=!0),this.options.height>0&&(this.yScale=t.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?(t.container.scale.x=this.xScale,t.container.scale.y=this.yScale,this.options.removeOnComplete&&this.parent.plugins.remove("snap-zoom")):e.forceStart&&this.createSnapping()}createSnapping(){const t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight,i=this.parent.screenWidth/this.xScale,n=this.parent.screenHeight/this.yScale;this.snapping={time:0,startX:t,startY:e,deltaX:i-t,deltaY:n-e},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(t){if(this.paused||this.options.interrupt&&this.parent.input.count()!==0)return;let e;if(!this.options.center&&!this.options.noMove&&(e=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+=t,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,r=this.ease(s.time,s.startX,s.deltaX,this.options.time),a=this.ease(s.time,s.startY,s.deltaY,this.options.time);this.parent.scale.x=this.parent.screenWidth/r,this.parent.scale.y=this.parent.screenHeight/a}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(e))}}resume(){this.snapping=null,super.resume()}}const Lg={percent:.1,smooth:!1,interrupt:!0,reverse:!1,center:null,lineHeight:20,axis:"all",keyToPress:null,trackpadPinch:!1,wheelZoom:!0};class Ug extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},Lg,e),this.keyIsPressed=!1,this.options.keyToPress&&this.handleKeyPresses(this.options.keyToPress)}handleKeyPresses(t){typeof window>"u"||(window.addEventListener("keydown",e=>{t.includes(e.code)&&(this.keyIsPressed=!0)}),window.addEventListener("keyup",e=>{t.includes(e.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 t=this.smoothingCenter,e=this.smoothing;let i;this.options.center||(i=this.parent.toLocal(t)),this.isAxisX()&&(this.parent.scale.x+=e.x),this.isAxisY()&&(this.parent.scale.y+=e.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 r=s.toLocal(t);this.parent.x+=r.x-i.x,this.parent.y+=r.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(t){if(this.paused)return;const e=this.parent.input.getPointerPosition(t),i=-t.deltaY*(t.deltaMode?this.options.lineHeight:1)/200,n=Math.pow(2,(1+this.options.percent)*i);let s;this.options.center||(s=this.parent.toLocal(e)),this.isAxisX()&&(this.parent.scale.x*=n),this.isAxisY()&&(this.parent.scale.y*=n),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const r=this.parent.plugins.get("clamp-zoom",!0);if(r&&r.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const a=this.parent.parent||this.parent;a.toLocal(s,this.parent,s);const g=a.toLocal(e);this.parent.x+=g.x-s.x,this.parent.y+=g.y-s.y}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.emit("wheel-start",{event:t,viewport:this.parent})}wheel(t){if(this.paused||!this.checkKeyPress())return!1;if(t.ctrlKey&&this.options.trackpadPinch)this.pinch(t);else if(this.options.wheelZoom){const e=this.parent.input.getPointerPosition(t),i=(this.options.reverse?-1:1)*-t.deltaY*(t.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=e}else{let s;this.options.center||(s=this.parent.toLocal(e)),this.isAxisX()&&(this.parent.scale.x*=n),this.isAxisY()&&(this.parent.scale.y*=n),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const r=this.parent.plugins.get("clamp-zoom",!0);if(r&&r.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const a=this.parent.parent||this.parent;a.toLocal(s,this.parent,s);const g=a.toLocal(e);this.parent.x+=g.x-s.x,this.parent.y+=g.y-s.y}}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.emit("wheel-start",{event:t,viewport:this.parent})}return!this.parent.options.passiveWheel}}const Tg={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:v.Ticker.shared,allowPreserveDragOutside:!1};class Og extends v.Container{constructor(t){super(),this._disableOnContextMenu=e=>e.preventDefault(),this.options={...Tg,...t},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 ug(this),this.plugins=new Ig(this)}destroy(t){var e;!this.options.noTicker&&this.tickerFunction&&this.options.ticker.remove(this.tickerFunction),this.options.disableOnContextMenu&&((e=this.options.events.domElement)==null||e.removeEventListener("contextmenu",this._disableOnContextMenu)),this.input.destroy(),super.destroy(t)}update(t){this.pause||(this.plugins.update(t),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 v.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(t=typeof window>"u"?0:window.innerWidth,e=typeof window>"u"?0:window.innerHeight,i,n){this.screenWidth=t,this.screenHeight=e,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(t){this._worldWidth=t,this.plugins.resize()}get worldHeight(){return this._worldHeight?this._worldHeight:this.height/this.scale.y}set worldHeight(t){this._worldHeight=t,this.plugins.resize()}getVisibleBounds(){return new v.Rectangle(this.left,this.top,this.worldScreenWidth,this.worldScreenHeight)}toWorld(t,e){return arguments.length===2?this.toLocal(new v.Point(t,e)):this.toLocal(t)}toScreen(t,e){return arguments.length===2?this.toGlobal(new v.Point(t,e)):this.toGlobal(t)}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 v.Point(this.worldScreenWidth/2-this.x/this.scale.x,this.worldScreenHeight/2-this.y/this.scale.y)}set center(t){this.moveCenter(t)}moveCenter(...t){let e,i;typeof t[0]=="number"?(e=t[0],i=t[1]):(e=t[0].x,i=t[0].y);const n=(this.worldScreenWidth/2-e)*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 v.Point(-this.x/this.scale.x,-this.y/this.scale.y)}set corner(t){this.moveCorner(t)}moveCorner(...t){let e,i;return t.length===1?(e=-t[0].x*this.scale.x,i=-t[0].y*this.scale.y):(e=-t[0]*this.scale.x,i=-t[1]*this.scale.y),(e!==this.x||i!==this.y)&&(this.position.set(e,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(t){return this.screenWidth/t}findFitHeight(t){return this.screenHeight/t}findFit(t,e){const i=this.screenWidth/t,n=this.screenHeight/e;return Math.min(i,n)}findCover(t,e){const i=this.screenWidth/t,n=this.screenHeight/e;return Math.max(i,n)}fitWidth(t=this.worldWidth,e,i=!0,n){let s;e&&(s=this.center),this.scale.x=this.screenWidth/t,i&&(this.scale.y=this.scale.x);const r=this.plugins.get("clamp-zoom",!0);return!n&&r&&r.clamp(),e&&s&&this.moveCenter(s),this}fitHeight(t=this.worldHeight,e,i=!0,n){let s;e&&(s=this.center),this.scale.y=this.screenHeight/t,i&&(this.scale.x=this.scale.y);const r=this.plugins.get("clamp-zoom",!0);return!n&&r&&r.clamp(),e&&s&&this.moveCenter(s),this}fitWorld(t){let e;t&&(e=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(),t&&e&&this.moveCenter(e),this}fit(t,e=this.worldWidth,i=this.worldHeight){let n;t&&(n=this.center),this.scale.x=this.screenWidth/e,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(),t&&n&&this.moveCenter(n),this}setZoom(t,e){let i;e&&(i=this.center),this.scale.set(t);const n=this.plugins.get("clamp-zoom",!0);return n&&n.clamp(),e&&i&&this.moveCenter(i),this}zoomPercent(t,e){return this.setZoom(this.scale.x+this.scale.x*t,e)}zoom(t,e){return this.fitWidth(t+this.worldScreenWidth,e),this}get scaled(){return this.scale.x}set scaled(t){this.setZoom(t,!0)}snapZoom(t){return this.plugins.add("snap-zoom",new Hg(this,t)),this}OOB(){return{left:this.left<0,right:this.right>this.worldWidth,top:this.top<0,bottom:this.bottom>this.worldHeight,cornerPoint:new v.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(t){this.x=-t*this.scale.x+this.screenWidth,this.plugins.reset()}get left(){return-this.x/this.scale.x}set left(t){this.x=-t*this.scale.x,this.plugins.reset()}get top(){return-this.y/this.scale.y}set top(t){this.y=-t*this.scale.y,this.plugins.reset()}get bottom(){return-this.y/this.scale.y+this.worldScreenHeight}set bottom(t){this.y=-t*this.scale.y+this.screenHeight,this.plugins.reset()}get dirty(){return!!this._dirty}set dirty(t){this._dirty=t}get forceHitArea(){return this._forceHitArea}set forceHitArea(t){t?(this._forceHitArea=t,this.hitArea=t):(this._forceHitArea=null,this.hitArea=new v.Rectangle(0,0,this.worldWidth,this.worldHeight))}drag(t){return this.plugins.add("drag",new vg(this,t)),this}clamp(t){return this.plugins.add("clamp",new Qg(this,t)),this}decelerate(t){return this.plugins.add("decelerate",new mg(this,t)),this}bounce(t){return this.plugins.add("bounce",new Cg(this,t)),this}pinch(t){return this.plugins.add("pinch",new _g(this,t)),this}snap(t,e,i){return this.plugins.add("snap",new Gg(this,t,e,i)),this}follow(t,e){return this.plugins.add("follow",new Sg(this,t,e)),this}wheel(t){return this.plugins.add("wheel",new Ug(this,t)),this}animate(t){return this.plugins.add("animate",new Bg(this,t)),this}clampZoom(t){return this.plugins.add("clamp-zoom",new yg(this,t)),this}mouseEdges(t){return this.plugins.add("mouse-edges",new kg(this,t)),this}get pause(){return!!this._pause}set pause(t){this._pause=t,this.lastViewport=null,this.moving=!1,this.zooming=!1,t&&this.input.pause()}ensureVisible(t,e,i,n,s){s&&(i>this.worldScreenWidth||n>this.worldScreenHeight)&&(this.fit(!0,i,n),this.emit("zoomed",{viewport:this,type:"ensureVisible"}));let r=!1;t<this.left?(this.left=t,r=!0):t+i>this.right&&(this.right=t+i,r=!0),e<this.top?(this.top=e,r=!0):e+n>this.bottom&&(this.bottom=e+n,r=!0),r&&this.emit("moved",{viewport:this,type:"ensureVisible"})}}const Pg=["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 Jg extends pt(v.Container){constructor(){super(),this.overrideProps=["wheel"];const t={noTicker:!0,events:{domElement:{addEventListener:()=>{}}}};this.viewport=new Og(t),super.addChild(this.viewport),this.#t=new v.Graphics,super.addChild(this.#t),this.mask=this.#t}#t;addChild(...t){return this.viewport.addChild(...t)}addChildAt(t,e){return this.viewport.addChildAt(t,e)}onInit(t){super.onInit(t);for(let e of Pg)t[e]&&this.viewport.on(e,t[e])}async onMount(t,e){t.props.context.viewport=this.viewport,await super.onMount(t,e);const{props:i}=t,{tick:n,app:s,canvasSize:r}=i.context;nt(()=>{i.screenWidth===void 0&&(this.viewport.screenWidth=r().width),i.screenHeight===void 0&&(this.viewport.screenHeight=r().height),this.updateMask()}),nt(()=>{const a=s();if(!a)return;const g=a.renderer;g.events.domElement.addEventListener("wheel",this.viewport.input.wheelFunction),this.viewport.options.events=g.events}),this.tickSubscription=n.observable.subscribe(({value:a})=>{this.viewport.update(a.deltaTime)}),this.updateViewportSettings(i)}onUpdate(t){super.onUpdate(t),this.updateViewportSettings(t)}updateViewportSettings(t){t.screenWidth!==void 0&&(this.viewport.screenWidth=t.screenWidth),t.screenHeight!==void 0&&(this.viewport.screenHeight=t.screenHeight),this.updateMask(),t.worldWidth!==void 0&&(this.viewport.worldWidth=t.worldWidth),t.worldHeight!==void 0&&(this.viewport.worldHeight=t.worldHeight),t.drag&&this.viewport.drag(t.drag),t.clamp&&this.viewport.clamp(t.clamp.value??t.clamp),t.wheel&&(t.wheel===!0?this.viewport.wheel():this.viewport.wheel(t.wheel)),t.decelerate&&(t.decelerate===!0?this.viewport.decelerate():this.viewport.decelerate(t.decelerate)),t.pinch&&(t.pinch===!0?this.viewport.pinch():this.viewport.pinch(t.pinch))}updateMask(){this.#t&&(this.#t.clear(),this.#t.beginFill(16777215),this.#t.drawRect(0,0,this.viewport.screenWidth,this.viewport.screenHeight),this.#t.endFill())}async onDestroy(t,e){const i=async()=>{this.tickSubscription.unsubscribe(),e()};await super.onDestroy(t,i)}follow(...t){return this.viewport.follow(...t)}get plugins(){return this.viewport.plugins}}st("Viewport",Jg);function Kg(A){return ht("Viewport",A)}class Yg extends pt(v.NineSliceSprite){constructor(){super({width:0,height:0})}async onUpdate(t){for(const[e,i]of Object.entries(t))i!==void 0&&(e==="image"?this.texture=await v.Assets.load(i):e in this&&(this[e]=i))}}st("NineSliceSprite",Yg);function Wg(A){return ht("NineSliceSprite",A)}const yo=["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 jg{constructor(){this.eventListeners=new Map,this.onBeforeDestroy=null,this.valueSignal=null,this.isFormElementType=!1}isFormElement(t){return["input","textarea","select"].includes(t.toLowerCase())}onInit(t){typeof t.element=="string"?(this.element=document.createElement(t.element),this.isFormElementType=this.isFormElement(t.element)):(this.element=t.element.value,this.isFormElementType=this.isFormElement(this.element.tagName)),(t.onBeforeDestroy||t["on-before-destroy"])&&(this.onBeforeDestroy=t.onBeforeDestroy||t["on-before-destroy"]);for(const e of yo)if(t.attrs?.[e]){const i=n=>{if(e==="submit"&&this.element.tagName.toLowerCase()==="form"){n.preventDefault();const s=new FormData(this.element),r={};s.forEach((a,g)=>{r[g]?Array.isArray(r[g])?r[g].push(a):r[g]=[r[g],a]:r[g]=a}),t.attrs[e]?.(n,r)}else t.attrs[e]?.(n)};this.eventListeners.set(e,i),this.element.addEventListener(e,i,!1)}if(t.children)for(const e of t.children)ss(e)?e.subscribe(({elements:i})=>{for(const n of i)this.element.appendChild(n.componentInstance.element)}):this.element.appendChild(e.componentInstance.element);this.onUpdate(t)}onMount(t){const i=t.propObservables.attrs;if(this.isFormElementType&&i?.value&&N(i.value)){this.valueSignal=i.value,this.element.value=this.valueSignal();const n=s=>{const r=s.target;this.valueSignal.set(r.value)};this.eventListeners.set("input",n),this.element.addEventListener("input",n,!1)}}onUpdate(t){if(this.element){for(const[e,i]of Object.entries(t.attrs||{}))if(e==="tabindex"){const n=N(i)?i():i;n!=null?this.element.setAttribute("tabindex",String(n)):this.element.removeAttribute("tabindex")}else if(e==="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,r]of Object.entries(n))r&&this.element.classList.add(s)}else if(e==="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,r]of Object.entries(n))r!=null&&(this.element.style[s]=r)}else if(e==="value"&&this.isFormElementType)if(N(i)){const n=this.element.value,s=i();n!==s&&(this.element.value=s)}else this.element.value=i;else yo.includes(e)||this.element.setAttribute(e,i);t.textContent&&(this.element.textContent=t.textContent)}}async onDestroy(t,e){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(),e&&e()}}}st("DOMElement",jg);const wo=A=>ht("DOMElement",A);class Vg extends pt(v.DOMContainer){constructor(){super(...arguments),this.disableLayout=!0}onInit(t){const e=t._scopeClass;let i={element:"div"};e?(i.attrs={...t.attrs},i.attrs.class?typeof i.attrs.class=="string"?i.attrs.class=`${e} ${i.attrs.class}`:Array.isArray(i.attrs.class)?i.attrs.class=[e,...i.attrs.class]:typeof i.attrs.class=="object"&&(i.attrs.class={[e]:!0,...i.attrs.class}):i.attrs.class=e):t.attrs&&(i.attrs=t.attrs);const n=gt(wo,i,t.children);this.element=n.componentInstance.element}}st("DOMContainer",Vg);const qg=A=>ht("DOMContainer",A);var mo=(A=>(A.Normal="normal",A.Hover="hover",A.Pressed="pressed",A.Disabled="disabled",A))(mo||{});function Xg(A){const t=Y("normal"),e=Y(!1),i=Y(!1),n=Si(A),{text:s,disabled:r,width:a,height:g,style:c,shape:B,controlName:o}=n({text:{type:String,default:""},disabled:{type:Boolean,default:!1},width:{type:Number,default:120},height:{type:Number,default:40},style:{type:Object,default:()=>({})},shape:{type:String,default:"rect"},controlName:{type:String,default:void 0}}),l=()=>A.controls?N(A.controls)?A.controls():A.controls:null;nt(()=>{const d=r(),C=e(),y=i();d?t.set("disabled"):C?t.set("pressed"):y?t.set("hover"):t.set("normal")});const h={pointerenter:d=>{r()||(i.set(!0),A.hoverEnter?.(d))},pointerleave:d=>{i.set(!1),e.set(!1),A.hoverLeave?.(d)},pointerdown:async d=>{if(!r()){e.set(!0),A.pressDown?.(d);const C=l(),y=o();C&&y&&C.applyControl&&await C.applyControl(y,!0)}},pointerup:async d=>{if(!r()&&e()){e.set(!1),A.pressUp?.(d);const C=l(),y=o();C&&y&&C.applyControl&&await C.applyControl(y,!1)}},pointertap:async d=>{if(!r()){A.click?.(d);const C=l(),y=o();C&&y&&C.applyControl&&await C.applyControl(y)}}},f=()=>{if(A.background)return A.background;const d=B(),C=Ct(()=>{const m=c().backgroundColor||{normal:"#007bff",hover:"#0056b3",pressed:"#004085",disabled:"#6c757d"},b=t();return m[b]||m.normal});if(d==="circle"){const y=Ct(()=>Math.min(a(),g())/2);return gt(_i,{radius:y,x:Ct(()=>a()/2),y:Ct(()=>g()/2),color:C})}else return d==="ellipse"?gt(go,{width:a,height:g,color:C}):gt(lo,{width:a,height:g,color:C})},E=()=>A.children&&A.children.length>0?A.children:[gt(Co,{text:s,x:Ct(()=>a()/2),y:Ct(()=>g()/2),anchor:{x:.5,y:.5},style:Ct(()=>{const C=c().text||{};return{fontSize:C.fontSize||16,fontFamily:C.fontFamily||"Arial",fill:C.color||"#ffffff"}})()})];return gt(qe,{x:A.x,y:A.y,width:A.width,height:A.height,alpha:A.alpha,visible:A.visible,cursor:A.cursor||"pointer",tabindex:A.tabindex,...h},[f(),...E()])}function Zg(A={}){const t=Object.assign({outerScale:{x:1,y:1},innerScale:{x:1,y:1},innerColor:"black",outerColor:"black"},A),e=()=>N(t.controls)?t.controls():t.controls;let i=70,n=10;const s=.5;let r=!1,a=null,g=0;const c=Y(0),B=Y(0),o=Y(s);function l(b){const M=b.x-0,G=b.y-0;return Math.min(1,Math.sqrt(M*M+G*G)/i)}function h(b){let M=Math.atan2(b.y,b.x);return M>=-Math.PI/8&&M<0||M>=0&&M<Math.PI/8?"right":M>=Math.PI/8&&M<3*Math.PI/8?"bottom_right":M>=3*Math.PI/8&&M<5*Math.PI/8?"bottom":M>=5*Math.PI/8&&M<7*Math.PI/8?"bottom_left":M>=7*Math.PI/8&&M<Math.PI||M>=-Math.PI&&M<-7*Math.PI/8?"left":M>=-7*Math.PI/8&&M<-5*Math.PI/8?"top_left":M>=-5*Math.PI/8&&M<-3*Math.PI/8?"top":"top_right"}function f(b){const M=b.currentTarget||b.target;a=b.getLocalPosition(M),r=!0,o.set(1),t.onStart?.();const G=e();G&&(G.handleJoystickStart?G.handleJoystickStart():G.joystick&&G.joystick.handleJoystickStart&&G.joystick.handleJoystickStart())}function E(){if(!r)return;c.set(0),B.set(0),r=!1,o.set(s),t.onEnd?.();const b=e();b&&(b.handleJoystickEnd?b.handleJoystickEnd():b.joystick&&b.joystick.handleJoystickEnd&&b.joystick.handleJoystickEnd())}function d(b){if(r==!1)return;const M=b.currentTarget||b.target;let G=b.getLocalPosition(M),O=G.x-(a?.x??0),K=G.y-(a?.y??0),H=new fr.Point(0,0),T=0;if(O==0&&K==0)return;let W="left";if(O==0){K>0?(H.set(0,K>i?i:K),T=270,W="bottom"):(H.set(0,-(Math.abs(K)>i?i:Math.abs(K))),T=90,W="top"),c.set(H.x),B.set(H.y),g=l(H);const Lt={angle:T,direction:W,power:g};t.onChange?.(Lt);const ct=e();ct&&(ct.handleJoystickChange?ct.handleJoystickChange(Lt):ct.joystick&&ct.joystick.handleJoystickChange&&ct.joystick.handleJoystickChange(Lt));return}if(K==0){O>0?(H.set(Math.abs(O)>i?i:Math.abs(O),0),T=0,W="right"):(H.set(-(Math.abs(O)>i?i:Math.abs(O)),0),T=180,W="left"),c.set(H.x),B.set(H.y),g=l(H);const Lt={angle:T,direction:W,power:g};t.onChange?.(Lt);const ct=e();ct&&(ct.handleJoystickChange?ct.handleJoystickChange(Lt):ct.joystick&&ct.joystick.handleJoystickChange&&ct.joystick.handleJoystickChange(Lt));return}let At=Math.abs(K/O),ot=Math.atan(At);T=ot*180/Math.PI;let tt=0,It=0;O*O+K*K>=i*i?(tt=i*Math.cos(ot),It=i*Math.sin(ot)):(tt=Math.abs(O)>i?i:Math.abs(O),It=Math.abs(K)>i?i:Math.abs(K)),K<0&&(It=-Math.abs(It)),O<0&&(tt=-Math.abs(tt)),O>0&&K<0||(O<0&&K<0?T=180-T:O<0&&K>0?T=T+180:O>0&&K>0&&(T=360-T)),H.set(tt,It),g=l(H),W=h(H),c.set(H.x),B.set(H.y);const ft={angle:T,direction:W,power:g};t.onChange?.(ft);const Tt=e();Tt&&(Tt.handleJoystickChange?Tt.handleJoystickChange(ft):Tt.joystick&&Tt.joystick.handleJoystickChange&&Tt.joystick.handleJoystickChange(ft))}let C,y;t.outer?y=gt(rn,{image:t.outer,anchor:{x:.5,y:.5},scale:t.outerScale}):y=gt(ne,{draw:b=>{b.circle(0,0,i).fill(t.outerColor)},alpha:.5});const m={scale:t.innerScale,x:c,y:B,alpha:o};return t.inner?C=t.inner:C=gt(ne,{draw:b=>{b.circle(0,0,n*2.5).fill(t.innerColor)},...m}),gt(qe,{...A,pointerdown:f,pointerup:E,pointerupoutside:E,pointermove:d},y,C)}const le=class le{constructor(){this.containers=new Map,this.scrollAnimations=new Map}static getInstance(){return le.instance||(le.instance=new le),le.instance}registerContainer(t,e){this.containers.set(t,{...e,id:t})}updateContainer(t,e){const i=this.containers.get(t);i&&this.containers.set(t,{...i,...e})}setTabindex(t,e){const i=this.containers.get(t);i&&(i.tabindexSubscription&&i.tabindexSubscription.unsubscribe(),i.tabindex=e,N(e)&&(i.tabindexSubscription=e.observable.subscribe(n=>{n!==null&&n!==i.currentIndex()&&this.setIndex(t,n)})))}unregisterContainer(t){this.containers.delete(t),this.scrollAnimations.delete(t)}registerFocusable(t,e,i){const n=this.containers.get(t);if(!n){console.warn(`FocusContainer with id "${t}" not found`);return}n.focusables.set(i,e),(N(n.tabindex)?n.tabindex():n.tabindex)===i&&n.currentIndex()===null&&this.setIndex(t,i)}unregisterFocusable(t,e){const i=this.containers.get(t);i&&i.focusables.delete(e)}navigate(t,e){const i=this.containers.get(t);if(!i||i.element&&St(i.element))return;if(i.throttle){const a=Date.now(),g=i.lastNavigateTime||0;if(a-g<i.throttle)return;i.lastNavigateTime=a}const n=i.currentIndex(),s=Array.from(i.focusables.keys()).sort((a,g)=>a-g);if(s.length===0)return;let r=null;if(n===null)r=e==="next"?s[0]:s[s.length-1];else{const a=s.indexOf(n);e==="next"?a<s.length-1?r=s[a+1]:r=s[0]:a>0?r=s[a-1]:r=s[s.length-1]}if(r!==null){const a=i.tabindex;N(a)?a.set(r):this.setIndex(t,r)}}setIndex(t,e){const i=this.containers.get(t);if(!i)return;const n=i.focusables.get(e);if(!n){console.warn(`No focusable element at index ${e} in container "${t}"`);return}i.currentIndex.set(e),i.focusedElement.set(n);const s=i.tabindex;N(s)&&s()!==e&&s.set(e),i.onFocusChange&&i.onFocusChange(e,n);const r=n.componentInstance;if(r&&r.element&&typeof r.element.focus=="function"){const a=r.element;a.focus(),typeof a.scrollIntoView=="function"&&a.scrollIntoView({block:"center",behavior:"smooth"})}if(i.autoScroll){const a=i.viewport;if(a){const g=typeof i.autoScroll=="boolean"?{center:!0}:i.autoScroll;this.scrollToElement(t,e,a,g)}}}getElement(t,e){const i=this.containers.get(t);return i&&i.focusables.get(e)||null}getCurrentIndexSignal(t){const e=this.containers.get(t);return e?e.currentIndex:null}getFocusedElementSignal(t){const e=this.containers.get(t);return e?e.focusedElement:null}isElementVisible(t,e){if(!e)return!0;const i=this.getElementBounds(t),n=e.getVisibleBounds();return i.x<n.right&&i.x+i.width>n.left&&i.y<n.bottom&&i.y+i.height>n.top}getElementBounds(t){const e=t.componentInstance;if(!e)return{x:0,y:0,width:0,height:0};const i=e.getLocalBounds(),n=e.getGlobalPosition();return{x:n.x,y:n.y,width:i.width,height:i.height}}scrollToElement(t,e,i,n={}){const s=this.containers.get(t);if(!s)return;const r=s.focusables.get(e);if(!r)return;const a=i||s.viewport;if(!a)return;const g=this.getElementBounds(r);a.getVisibleBounds();const c=n.padding||0,B=n.center!==!1,o=n.smooth||!1,l=n.duration||300;if(this.isElementVisible(r,a)){if(B){const h=g.x+g.width/2,f=g.y+g.height/2;o?this.animateScroll(t,a,h,f,l):a.moveCenter(h,f)}return}if(B){const h=g.x+g.width/2,f=g.y+g.height/2;o?this.animateScroll(t,a,h,f,l):a.moveCenter(h,f)}else{const h=g.x-c,f=g.y-c,E=g.width+c*2,d=g.height+c*2;if(o){const C=g.x+g.width/2,y=g.y+g.height/2;this.animateScroll(t,a,C,y,l)}else a.fit(h,f,E,d,c)}}animateScroll(t,e,i,n,s){const r=e.center,a=r.x,g=r.y,c={startTime:Date.now(),startX:a,startY:g,targetX:i,targetY:n,duration:s};this.scrollAnimations.set(t,c);const B=()=>{const o=this.scrollAnimations.get(t);if(!o)return;const l=Date.now()-o.startTime,h=Math.min(l/o.duration,1),f=1-Math.pow(1-h,3),E=o.startX+(o.targetX-o.startX)*f,d=o.startY+(o.targetY-o.startY)*f;e.moveCenter(E,d),h<1?requestAnimationFrame(B):this.scrollAnimations.delete(t)};requestAnimationFrame(B)}};le.instance=null;let DA=le;const ut=DA.getInstance();class zg extends vt{constructor(){super(...arguments),this.element=null,this.controlsDirective=null,this.containerId="",this.controlsSubscription=null,this.originalControls=null}onInit(t){this.element=t;const e=t.componentInstance;e&&typeof e.getContainerId=="function"&&(this.containerId=e.getContainerId());const i=t.props.controls;if(!i)return;const n=N(i)?i():i;n&&(this.originalControls=n)}setupNavigationControls(t){if(!this.controlsDirective){console.warn("FocusNavigation: Controls directive not found, cannot set up navigation");return}t=t.value??t;const e={...t,up:{...t.up,repeat:t.up?.repeat??!0,bind:t.up?.bind??["up","top_left","top_right"],keyDown:i=>{this.navigate("previous"),t.up?.keyDown?.(i)}},down:{...t.down,repeat:t.down?.repeat??!0,bind:t.down?.bind??["down","bottom_left","bottom_right"],keyDown:i=>{this.navigate("next"),t.down?.keyDown?.(i)}},left:{...t.left,repeat:t.left?.repeat??!0,bind:t.left?.bind??"left",keyDown:i=>{this.navigate("previous"),t.left?.keyDown?.(i)}},right:{...t.right,repeat:t.right?.repeat??!0,bind:t.right?.bind??"right",keyDown:i=>{this.navigate("next"),t.right?.keyDown?.(i)}},action:{...t.action,bind:t.action?.bind??["space","enter"],keyDown:i=>{this.triggerAction(),t.action?.keyDown?.(i)}}};this.controlsDirective.onUpdate({controls:e},this.element)}navigate(t){this.containerId&&ut.navigate(this.containerId,t)}triggerAction(){if(!this.containerId)return;const t=ut.getFocusedElementSignal(this.containerId);if(!t)return;const e=t();if(!e)return;const i=e.componentInstance;i&&typeof i.emit=="function"&&i.emit("pointertap",{target:i})}onMount(t){const e=t.componentInstance;if(e&&typeof e.getContainerId=="function"&&(this.containerId=e.getContainerId()),this.controlsDirective=t.directives?.controls,!this.controlsDirective){const n=si(t,"controls");n&&(t.directives||(t.directives={}),t.directives.controls=n,this.controlsDirective=n)}const i=t.props.controls;if(i){const n=N(i)?i():i;n&&(this.originalControls=n,this.setupNavigationControls(n))}N(i)&&(this.controlsSubscription=i.observable.subscribe(n=>{n&&(this.originalControls=n,this.setupNavigationControls(n))}))}onUpdate(t,e){if(t.controls!==void 0){const i=N(t.controls)?t.controls():t.controls;i&&(this.originalControls=i,this.setupNavigationControls(i))}}onDestroy(t){this.controlsSubscription&&(this.controlsSubscription.unsubscribe(),this.controlsSubscription=null),this.element=null,this.controlsDirective=null,this.originalControls=null}}bt("focusNavigation",zg);class $g extends pt(v.Container){constructor(){super(...arguments),this.containerId="",this.currentIndexSignal=null,this.focusedElementSignal=null,this.registeredFocusables=new Set}onInit(t){super.onInit(t),this.containerId=`focus-container-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;const e=Y(null),i=Y(null);this.currentIndexSignal=e,this.focusedElementSignal=i;const n=t.viewport||t.context?.viewport;ut.registerContainer(this.containerId,{focusables:new Map,currentIndex:e,focusedElement:i,onFocusChange:t.onFocusChange,autoScroll:t.autoScroll,viewport:n,throttle:t.throttle??150})}async onMount(t){if(await super.onMount(t,void 0),ut.updateContainer(this.containerId,{element:t}),t.props.controls){const e=si(t,"focusNavigation");e&&!t.directives&&(t.directives={}),e&&(t.directives.focusNavigation=e,e.onInit(t),e.onMount(t))}if(t.allElements){const e=t.allElements.subscribe(()=>{this.registerChildren(t)});t.effectSubscriptions||(t.effectSubscriptions=[]),t.effectSubscriptions.push(e)}ut.setTabindex(this.containerId,t.propObservables.tabindex),setTimeout(()=>{this.registerChildren(t)},0)}onUpdate(t){super.onUpdate(t);const e=t.viewport||t.context?.viewport;ut.updateContainer(this.containerId,{viewport:e,autoScroll:t.autoScroll,onFocusChange:t.onFocusChange,throttle:t.throttle??150})}async onDestroy(t,e){for(const i of this.registeredFocusables)ut.unregisterFocusable(this.containerId,i);this.registeredFocusables.clear(),ut.unregisterContainer(this.containerId),await super.onDestroy(t,e)}registerChildren(t){if(!t.props.children)return;const e=n=>{for(const s of n)if(s){if(N(s)||s&&typeof s.subscribe=="function"){(N(s)?s.observable:s).subscribe(r=>{if(r&&typeof r=="object"&&"elements"in r){const a=r.elements||[];Array.isArray(a)&&e(a)}else Array.isArray(r)?e(r):r&&i(r)});continue}if(Array.isArray(s)){e(s);continue}i(s)}},i=n=>{if(!n||!n.componentInstance)return;let s;if(n.props?.attrs?.tabindex!==void 0){const r=n.props.attrs.tabindex;s=N(r)?r():r}else if(n.props?.tabindex!==void 0){const r=n.props.tabindex;s=N(r)?r():r}if(s!==void 0&&s>=0&&(this.registeredFocusables.has(s)||(ut.registerFocusable(this.containerId,n,s),this.registeredFocusables.add(s))),n.props&&n.props.children)if(Array.isArray(n.props.children))e(n.props.children);else if(N(n.props.children)||n.props.children&&typeof n.props.children.subscribe=="function"){const r=(N(n.props.children)?n.props.children.observable:n.props.children).subscribe(a=>{if(a&&typeof a=="object"&&"elements"in a){const g=a.elements||[];Array.isArray(g)&&e(g)}else Array.isArray(a)?e(a):a&&i(a)});n.effectSubscriptions&&n.effectSubscriptions.push(r)}else i(n.props.children)};if(Array.isArray(t.props.children))e(t.props.children);else if(t.props.children)if(N(t.props.children)||t.props.children&&typeof t.props.children.subscribe=="function"){const n=(N(t.props.children)?t.props.children.observable:t.props.children).subscribe(s=>{if(s&&typeof s=="object"&&"elements"in s){const r=s.elements||[];Array.isArray(r)&&e(r)}else Array.isArray(s)?e(s):s&&i(s)});t.effectSubscriptions||(t.effectSubscriptions=[]),t.effectSubscriptions.push(n)}else i(t.props.children)}getContainerId(){return this.containerId}getCurrentIndexSignal(){return this.currentIndexSignal}getFocusedElementSignal(){return this.focusedElementSignal}}st("FocusContainer",$g);const tc=A=>ht("FocusContainer",A);var ec=(()=>{var A=PA&&PA.tagName.toUpperCase()==="SCRIPT"&&PA.src||new URL("index.global.js",document.baseURI).href;return(function(t){t=t||{};var e;e||(e=typeof t<"u"?t:{});var i,n;e.ready=new Promise(function(u,I){i=u,n=I});var s=Object.assign({},e),r="";typeof document<"u"&&document.currentScript&&(r=document.currentScript.src),A&&(r=A),r.indexOf("blob:")!==0?r=r.substr(0,r.replace(/[?#].*/,"").lastIndexOf("/")+1):r="";var a=e.print||console.log.bind(console),g=e.printErr||console.warn.bind(console);Object.assign(e,s),s=null;var c;e.wasmBinary&&(c=e.wasmBinary),e.noExitRuntime,typeof WebAssembly!="object"&&tt("no native wasm support detected");var B,o=!1;function l(u,I,Q){Q=I+Q;for(var p="";!(I>=Q);){var w=u[I++];if(!w)break;if(w&128){var D=u[I++]&63;if((w&224)==192)p+=String.fromCharCode((w&31)<<6|D);else{var S=u[I++]&63;w=(w&240)==224?(w&15)<<12|D<<6|S:(w&7)<<18|D<<12|S<<6|u[I++]&63,65536>w?p+=String.fromCharCode(w):(w-=65536,p+=String.fromCharCode(55296|w>>10,56320|w&1023))}}else p+=String.fromCharCode(w)}return p}var h,f,E,d,C,y,m,b,M;function G(){var u=B.buffer;h=u,e.HEAP8=f=new Int8Array(u),e.HEAP16=d=new Int16Array(u),e.HEAP32=y=new Int32Array(u),e.HEAPU8=E=new Uint8Array(u),e.HEAPU16=C=new Uint16Array(u),e.HEAPU32=m=new Uint32Array(u),e.HEAPF32=b=new Float32Array(u),e.HEAPF64=M=new Float64Array(u)}var O,K=[],H=[],T=[];function W(){var u=e.preRun.shift();K.unshift(u)}var At=0,ot=null;function tt(u){throw e.onAbort&&e.onAbort(u),u="Aborted("+u+")",g(u),o=!0,u=new WebAssembly.RuntimeError(u+". Build with -sASSERTIONS for more info."),n(u),u}function It(u){return u.startsWith("data:application/octet-stream;base64,")}var ft;if(ft="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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",!It(ft)){var Tt=ft;ft=e.locateFile?e.locateFile(Tt,r):r+Tt}function Lt(){var u=ft;try{if(u==ft&&c)return new Uint8Array(c);if(It(u))try{var I=dh(u.slice(37)),Q=new Uint8Array(I.length);for(u=0;u<I.length;++u)Q[u]=I.charCodeAt(u);var p=Q}catch{throw Error("Converting base64 string to bytes failed.")}else p=void 0;var w=p;if(w)return w;throw"both async and sync fetching of the wasm failed"}catch(D){tt(D)}}function ct(){return c||typeof fetch!="function"?Promise.resolve().then(function(){return Lt()}):fetch(ft,{credentials:"same-origin"}).then(function(u){if(!u.ok)throw"failed to load wasm binary file at '"+ft+"'";return u.arrayBuffer()}).catch(function(){return Lt()})}function In(u){for(;0<u.length;)u.shift()(e)}function Xo(u){if(u===void 0)return"_unknown";u=u.replace(/[^a-zA-Z0-9_]/g,"$");var I=u.charCodeAt(0);return 48<=I&&57>=I?"_"+u:u}function fn(u,I){return u=Xo(u),function(){return I.apply(this,arguments)}}var kt=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Bn=[];function MA(u){var I=Error,Q=fn(u,function(p){this.name=u,this.message=p,p=Error(p).stack,p!==void 0&&(this.stack=this.toString()+`
4
- `+p.replace(/^Error(:[^\n]*)?\n/,""))});return Q.prototype=Object.create(I.prototype),Q.prototype.constructor=Q,Q.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Q}var Me=void 0;function P(u){throw new Me(u)}var $e=u=>(u||P("Cannot use deleted val. handle = "+u),kt[u].value),RA=u=>{switch(u){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var I=Bn.length?Bn.pop():kt.length;return kt[I]={ga:1,value:u},I}},Zo=void 0,zo=void 0;function rt(u){for(var I="";E[u];)I+=zo[E[u++]];return I}var tA=[];function En(){for(;tA.length;){var u=tA.pop();u.M.$=!1,u.delete()}}var eA=void 0,Ot={};function Cn(u,I){for(I===void 0&&P("ptr should not be undefined");u.R;)I=u.ba(I),u=u.R;return I}var ge={};function $o(u){u=lr(u);var I=rt(u);return Kt(u),I}function tr(u,I){var Q=ge[u];return Q===void 0&&P(I+" has unknown type "+$o(u)),Q}function _A(){}var dn=!1;function er(u){--u.count.value,u.count.value===0&&(u.T?u.U.W(u.T):u.P.N.W(u.O))}function Ar(u,I,Q){return I===Q?u:Q.R===void 0?null:(u=Ar(u,I,Q.R),u===null?null:Q.na(u))}var ir={};function $c(u,I){return I=Cn(u,I),Ot[I]}var nr=void 0;function FA(u){throw new nr(u)}function GA(u,I){return I.P&&I.O||FA("makeClassHandle requires ptr and ptrType"),!!I.U!=!!I.T&&FA("Both smartPtrType and smartPtr must be specified"),I.count={value:1},Re(Object.create(u,{M:{value:I}}))}function Re(u){return typeof FinalizationRegistry>"u"?(Re=I=>I,u):(dn=new FinalizationRegistry(I=>{er(I.M)}),Re=I=>{var Q=I.M;return Q.T&&dn.register(I,{M:Q},I),I},_A=I=>{dn.unregister(I)},Re(u))}var NA={};function Qn(u){for(;u.length;){var I=u.pop();u.pop()(I)}}function AA(u){return this.fromWireType(y[u>>2])}var _e={},HA={};function Xt(u,I,Q){function p(x){x=Q(x),x.length!==u.length&&FA("Mismatched type converter count");for(var _=0;_<u.length;++_)Pt(u[_],x[_])}u.forEach(function(x){HA[x]=I});var w=Array(I.length),D=[],S=0;I.forEach((x,_)=>{ge.hasOwnProperty(x)?w[_]=ge[x]:(D.push(x),_e.hasOwnProperty(x)||(_e[x]=[]),_e[x].push(()=>{w[_]=ge[x],++S,S===D.length&&p(w)}))}),D.length===0&&p(w)}function pn(u){switch(u){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+u)}}function Pt(u,I,Q={}){if(!("argPackAdvance"in I))throw new TypeError("registerType registeredInstance requires argPackAdvance");var p=I.name;if(u||P('type "'+p+'" must have a positive integer typeid pointer'),ge.hasOwnProperty(u)){if(Q.ua)return;P("Cannot register type '"+p+"' twice")}ge[u]=I,delete HA[u],_e.hasOwnProperty(u)&&(I=_e[u],delete _e[u],I.forEach(w=>w()))}function yn(u){P(u.M.P.N.name+" instance already deleted")}function Zt(){}function wn(u,I,Q){if(u[I].S===void 0){var p=u[I];u[I]=function(){return u[I].S.hasOwnProperty(arguments.length)||P("Function '"+Q+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+u[I].S+")!"),u[I].S[arguments.length].apply(this,arguments)},u[I].S=[],u[I].S[p.Z]=p}}function th(u,I){e.hasOwnProperty(u)?(P("Cannot register public name '"+u+"' twice"),wn(e,u,u),e.hasOwnProperty(void 0)&&P("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),e[u].S[void 0]=I):e[u]=I}function eh(u,I,Q,p,w,D,S,x){this.name=u,this.constructor=I,this.X=Q,this.W=p,this.R=w,this.pa=D,this.ba=S,this.na=x,this.ja=[]}function mn(u,I,Q){for(;I!==Q;)I.ba||P("Expected null or instance of "+Q.name+", got an instance of "+I.name),u=I.ba(u),I=I.R;return u}function Ah(u,I){return I===null?(this.ea&&P("null is not a valid "+this.name),0):(I.M||P('Cannot pass "'+Sn(I)+'" as a '+this.name),I.M.O||P("Cannot pass deleted object as a pointer of type "+this.name),mn(I.M.O,I.M.P.N,this.N))}function ih(u,I){if(I===null){if(this.ea&&P("null is not a valid "+this.name),this.da){var Q=this.fa();return u!==null&&u.push(this.W,Q),Q}return 0}if(I.M||P('Cannot pass "'+Sn(I)+'" as a '+this.name),I.M.O||P("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&I.M.P.ca&&P("Cannot convert argument of type "+(I.M.U?I.M.U.name:I.M.P.name)+" to parameter type "+this.name),Q=mn(I.M.O,I.M.P.N,this.N),this.da)switch(I.M.T===void 0&&P("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:I.M.U===this?Q=I.M.T:P("Cannot convert argument of type "+(I.M.U?I.M.U.name:I.M.P.name)+" to parameter type "+this.name);break;case 1:Q=I.M.T;break;case 2:if(I.M.U===this)Q=I.M.T;else{var p=I.clone();Q=this.xa(Q,RA(function(){p.delete()})),u!==null&&u.push(this.W,Q)}break;default:P("Unsupporting sharing policy")}return Q}function nh(u,I){return I===null?(this.ea&&P("null is not a valid "+this.name),0):(I.M||P('Cannot pass "'+Sn(I)+'" as a '+this.name),I.M.O||P("Cannot pass deleted object as a pointer of type "+this.name),I.M.P.ca&&P("Cannot convert argument of type "+I.M.P.name+" to parameter type "+this.name),mn(I.M.O,I.M.P.N,this.N))}function Jt(u,I,Q,p){this.name=u,this.N=I,this.ea=Q,this.ca=p,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,I.R!==void 0?this.toWireType=ih:(this.toWireType=p?Ah:nh,this.V=null)}function sh(u,I){e.hasOwnProperty(u)||FA("Replacing nonexistant public symbol"),e[u]=I,e[u].Z=void 0}function oh(u,I){var Q=[];return function(){if(Q.length=0,Object.assign(Q,arguments),u.includes("j")){var p=e["dynCall_"+u];p=Q&&Q.length?p.apply(null,[I].concat(Q)):p.call(null,I)}else p=O.get(I).apply(null,Q);return p}}function Mt(u,I){u=rt(u);var Q=u.includes("j")?oh(u,I):O.get(I);return typeof Q!="function"&&P("unknown function pointer with signature "+u+": "+I),Q}var sr=void 0;function LA(u,I){function Q(D){w[D]||ge[D]||(HA[D]?HA[D].forEach(Q):(p.push(D),w[D]=!0))}var p=[],w={};throw I.forEach(Q),new sr(u+": "+p.map($o).join([", "]))}function Dn(u,I,Q,p,w){var D=I.length;2>D&&P("argTypes array size mismatch! Must at least get return value and 'this' types!");var S=I[1]!==null&&Q!==null,x=!1;for(Q=1;Q<I.length;++Q)if(I[Q]!==null&&I[Q].V===void 0){x=!0;break}var _=I[0].name!=="void",R=D-2,F=Array(R),L=[],J=[];return function(){if(arguments.length!==R&&P("function "+u+" called with "+arguments.length+" arguments, expected "+R+" args!"),J.length=0,L.length=S?2:1,L[0]=w,S){var it=I[1].toWireType(J,this);L[1]=it}for(var V=0;V<R;++V)F[V]=I[V+2].toWireType(J,arguments[V]),L.push(F[V]);if(V=p.apply(null,L),x)Qn(J);else for(var Bt=S?1:2;Bt<I.length;Bt++){var Rt=Bt===1?it:F[Bt-2];I[Bt].V!==null&&I[Bt].V(Rt)}return it=_?I[0].fromWireType(V):void 0,it}}function vn(u,I){for(var Q=[],p=0;p<u;p++)Q.push(m[I+4*p>>2]);return Q}function bn(u){4<u&&--kt[u].ga===0&&(kt[u]=void 0,Bn.push(u))}function Sn(u){if(u===null)return"null";var I=typeof u;return I==="object"||I==="array"||I==="function"?u.toString():""+u}function rh(u,I){switch(I){case 2:return function(Q){return this.fromWireType(b[Q>>2])};case 3:return function(Q){return this.fromWireType(M[Q>>3])};default:throw new TypeError("Unknown float type: "+u)}}function ah(u,I,Q){switch(I){case 0:return Q?function(p){return f[p]}:function(p){return E[p]};case 1:return Q?function(p){return d[p>>1]}:function(p){return C[p>>1]};case 2:return Q?function(p){return y[p>>2]}:function(p){return m[p>>2]};default:throw new TypeError("Unknown integer type: "+u)}}function lh(u,I){for(var Q="",p=0;!(p>=I/2);++p){var w=d[u+2*p>>1];if(w==0)break;Q+=String.fromCharCode(w)}return Q}function gh(u,I,Q){if(Q===void 0&&(Q=2147483647),2>Q)return 0;Q-=2;var p=I;Q=Q<2*u.length?Q/2:u.length;for(var w=0;w<Q;++w)d[I>>1]=u.charCodeAt(w),I+=2;return d[I>>1]=0,I-p}function ch(u){return 2*u.length}function hh(u,I){for(var Q=0,p="";!(Q>=I/4);){var w=y[u+4*Q>>2];if(w==0)break;++Q,65536<=w?(w-=65536,p+=String.fromCharCode(55296|w>>10,56320|w&1023)):p+=String.fromCharCode(w)}return p}function uh(u,I,Q){if(Q===void 0&&(Q=2147483647),4>Q)return 0;var p=I;Q=p+Q-4;for(var w=0;w<u.length;++w){var D=u.charCodeAt(w);if(55296<=D&&57343>=D){var S=u.charCodeAt(++w);D=65536+((D&1023)<<10)|S&1023}if(y[I>>2]=D,I+=4,I+4>Q)break}return y[I>>2]=0,I-p}function Ih(u){for(var I=0,Q=0;Q<u.length;++Q){var p=u.charCodeAt(Q);55296<=p&&57343>=p&&++Q,I+=4}return I}var fh={};function or(u){var I=fh[u];return I===void 0?rt(u):I}var UA=[];function Bh(u){var I=UA.length;return UA.push(u),I}function Eh(u,I){for(var Q=Array(u),p=0;p<u;++p)Q[p]=tr(m[I+4*p>>2],"parameter "+p);return Q}var rr=[],Ch=[null,[],[]];Me=e.BindingError=MA("BindingError"),e.count_emval_handles=function(){for(var u=0,I=5;I<kt.length;++I)kt[I]!==void 0&&++u;return u},e.get_first_emval=function(){for(var u=5;u<kt.length;++u)if(kt[u]!==void 0)return kt[u];return null},Zo=e.PureVirtualError=MA("PureVirtualError");for(var ar=Array(256),TA=0;256>TA;++TA)ar[TA]=String.fromCharCode(TA);zo=ar,e.getInheritedInstanceCount=function(){return Object.keys(Ot).length},e.getLiveInheritedInstances=function(){var u=[],I;for(I in Ot)Ot.hasOwnProperty(I)&&u.push(Ot[I]);return u},e.flushPendingDeletes=En,e.setDelayFunction=function(u){eA=u,tA.length&&eA&&eA(En)},nr=e.InternalError=MA("InternalError"),Zt.prototype.isAliasOf=function(u){if(!(this instanceof Zt&&u instanceof Zt))return!1;var I=this.M.P.N,Q=this.M.O,p=u.M.P.N;for(u=u.M.O;I.R;)Q=I.ba(Q),I=I.R;for(;p.R;)u=p.ba(u),p=p.R;return I===p&&Q===u},Zt.prototype.clone=function(){if(this.M.O||yn(this),this.M.aa)return this.M.count.value+=1,this;var u=Re,I=Object,Q=I.create,p=Object.getPrototypeOf(this),w=this.M;return u=u(Q.call(I,p,{M:{value:{count:w.count,$:w.$,aa:w.aa,O:w.O,P:w.P,T:w.T,U:w.U}}})),u.M.count.value+=1,u.M.$=!1,u},Zt.prototype.delete=function(){this.M.O||yn(this),this.M.$&&!this.M.aa&&P("Object already scheduled for deletion"),_A(this),er(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},Zt.prototype.isDeleted=function(){return!this.M.O},Zt.prototype.deleteLater=function(){return this.M.O||yn(this),this.M.$&&!this.M.aa&&P("Object already scheduled for deletion"),tA.push(this),tA.length===1&&eA&&eA(En),this.M.$=!0,this},Jt.prototype.qa=function(u){return this.ka&&(u=this.ka(u)),u},Jt.prototype.ha=function(u){this.W&&this.W(u)},Jt.prototype.argPackAdvance=8,Jt.prototype.readValueFromPointer=AA,Jt.prototype.deleteObject=function(u){u!==null&&u.delete()},Jt.prototype.fromWireType=function(u){function I(){return this.da?GA(this.N.X,{P:this.wa,O:Q,U:this,T:u}):GA(this.N.X,{P:this,O:u})}var Q=this.qa(u);if(!Q)return this.ha(u),null;var p=$c(this.N,Q);if(p!==void 0)return p.M.count.value===0?(p.M.O=Q,p.M.T=u,p.clone()):(p=p.clone(),this.ha(u),p);if(p=this.N.pa(Q),p=ir[p],!p)return I.call(this);p=this.ca?p.la:p.pointerType;var w=Ar(Q,this.N,p.N);return w===null?I.call(this):this.da?GA(p.N.X,{P:p,O:w,U:this,T:u}):GA(p.N.X,{P:p,O:w})},sr=e.UnboundTypeError=MA("UnboundTypeError");var dh=typeof atob=="function"?atob:function(u){var I="",Q=0;u=u.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(u.charAt(Q++)),w="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(u.charAt(Q++)),D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(u.charAt(Q++)),S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(u.charAt(Q++));p=p<<2|w>>4,w=(w&15)<<4|D>>2;var x=(D&3)<<6|S;I+=String.fromCharCode(p),D!==64&&(I+=String.fromCharCode(w)),S!==64&&(I+=String.fromCharCode(x))}while(Q<u.length);return I},Qh={l:function(u,I,Q,p){tt("Assertion failed: "+(u?l(E,u):"")+", at: "+[I?I?l(E,I):"":"unknown filename",Q,p?p?l(E,p):"":"unknown function"])},q:function(u,I,Q){u=rt(u),I=tr(I,"wrapper"),Q=$e(Q);var p=[].slice,w=I.N,D=w.X,S=w.R.X,x=w.R.constructor;u=fn(u,function(){w.R.ja.forEach((function(R){if(this[R]===S[R])throw new Zo("Pure virtual function "+R+" 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&&P("Pass correct 'this' to __construct");var R=x.implement.apply(void 0,[this].concat(p.call(arguments)));_A(R);var F=R.M;R.notifyOnDestruction(),F.aa=!0,Object.defineProperties(this,{M:{value:F}}),Re(this),R=F.O,R=Cn(w,R),Ot.hasOwnProperty(R)?P("Tried to register registered instance: "+R):Ot[R]=this},D.__destruct=function(){this===D&&P("Pass correct 'this' to __destruct"),_A(this);var R=this.M.O;R=Cn(w,R),Ot.hasOwnProperty(R)?delete Ot[R]:P("Tried to unregister unregistered instance: "+R)},u.prototype=Object.create(D);for(var _ in Q)u.prototype[_]=Q[_];return RA(u)},j:function(u){var I=NA[u];delete NA[u];var Q=I.fa,p=I.W,w=I.ia,D=w.map(S=>S.ta).concat(w.map(S=>S.za));Xt([u],D,S=>{var x={};return w.forEach((_,R)=>{var F=S[R],L=_.ra,J=_.sa,it=S[R+w.length],V=_.ya,Bt=_.Aa;x[_.oa]={read:Rt=>F.fromWireType(L(J,Rt)),write:(Rt,iA)=>{var Yt=[];V(Bt,Rt,it.toWireType(Yt,iA)),Qn(Yt)}}}),[{name:I.name,fromWireType:function(_){var R={},F;for(F in x)R[F]=x[F].read(_);return p(_),R},toWireType:function(_,R){for(var F in x)if(!(F in R))throw new TypeError('Missing field: "'+F+'"');var L=Q();for(F in x)x[F].write(L,R[F]);return _!==null&&_.push(p,L),L},argPackAdvance:8,readValueFromPointer:AA,V:p}]})},v:function(){},B:function(u,I,Q,p,w){var D=pn(Q);I=rt(I),Pt(u,{name:I,fromWireType:function(S){return!!S},toWireType:function(S,x){return x?p:w},argPackAdvance:8,readValueFromPointer:function(S){if(Q===1)var x=f;else if(Q===2)x=d;else if(Q===4)x=y;else throw new TypeError("Unknown boolean type size: "+I);return this.fromWireType(x[S>>D])},V:null})},f:function(u,I,Q,p,w,D,S,x,_,R,F,L,J){F=rt(F),D=Mt(w,D),x&&(x=Mt(S,x)),R&&(R=Mt(_,R)),J=Mt(L,J);var it=Xo(F);th(it,function(){LA("Cannot construct "+F+" due to unbound types",[p])}),Xt([u,I,Q],p?[p]:[],function(V){if(V=V[0],p)var Bt=V.N,Rt=Bt.X;else Rt=Zt.prototype;V=fn(it,function(){if(Object.getPrototypeOf(this)!==iA)throw new Me("Use 'new' to construct "+F);if(Yt.Y===void 0)throw new Me(F+" has no accessible constructor");var hr=Yt.Y[arguments.length];if(hr===void 0)throw new Me("Tried to invoke ctor of "+F+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(Yt.Y).toString()+") parameters instead!");return hr.apply(this,arguments)});var iA=Object.create(Rt,{constructor:{value:V}});V.prototype=iA;var Yt=new eh(F,V,iA,J,Bt,D,x,R);Bt=new Jt(F,Yt,!0,!1),Rt=new Jt(F+"*",Yt,!1,!1);var cr=new Jt(F+" const*",Yt,!1,!0);return ir[u]={pointerType:Rt,la:cr},sh(it,V),[Bt,Rt,cr]})},d:function(u,I,Q,p,w,D,S){var x=vn(Q,p);I=rt(I),D=Mt(w,D),Xt([],[u],function(_){function R(){LA("Cannot call "+F+" due to unbound types",x)}_=_[0];var F=_.name+"."+I;I.startsWith("@@")&&(I=Symbol[I.substring(2)]);var L=_.N.constructor;return L[I]===void 0?(R.Z=Q-1,L[I]=R):(wn(L,I,F),L[I].S[Q-1]=R),Xt([],x,function(J){return J=Dn(F,[J[0],null].concat(J.slice(1)),null,D,S),L[I].S===void 0?(J.Z=Q-1,L[I]=J):L[I].S[Q-1]=J,[]}),[]})},p:function(u,I,Q,p,w,D){0<I||tt();var S=vn(I,Q);w=Mt(p,w),Xt([],[u],function(x){x=x[0];var _="constructor "+x.name;if(x.N.Y===void 0&&(x.N.Y=[]),x.N.Y[I-1]!==void 0)throw new Me("Cannot register multiple constructors with identical number of parameters ("+(I-1)+") for class '"+x.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return x.N.Y[I-1]=()=>{LA("Cannot construct "+x.name+" due to unbound types",S)},Xt([],S,function(R){return R.splice(1,0,null),x.N.Y[I-1]=Dn(_,R,null,w,D),[]}),[]})},a:function(u,I,Q,p,w,D,S,x){var _=vn(Q,p);I=rt(I),D=Mt(w,D),Xt([],[u],function(R){function F(){LA("Cannot call "+L+" due to unbound types",_)}R=R[0];var L=R.name+"."+I;I.startsWith("@@")&&(I=Symbol[I.substring(2)]),x&&R.N.ja.push(I);var J=R.N.X,it=J[I];return it===void 0||it.S===void 0&&it.className!==R.name&&it.Z===Q-2?(F.Z=Q-2,F.className=R.name,J[I]=F):(wn(J,I,L),J[I].S[Q-2]=F),Xt([],_,function(V){return V=Dn(L,V,R,D,S),J[I].S===void 0?(V.Z=Q-2,J[I]=V):J[I].S[Q-2]=V,[]}),[]})},A:function(u,I){I=rt(I),Pt(u,{name:I,fromWireType:function(Q){var p=$e(Q);return bn(Q),p},toWireType:function(Q,p){return RA(p)},argPackAdvance:8,readValueFromPointer:AA,V:null})},n:function(u,I,Q){Q=pn(Q),I=rt(I),Pt(u,{name:I,fromWireType:function(p){return p},toWireType:function(p,w){return w},argPackAdvance:8,readValueFromPointer:rh(I,Q),V:null})},e:function(u,I,Q,p,w){I=rt(I),w===-1&&(w=4294967295),w=pn(Q);var D=x=>x;if(p===0){var S=32-8*Q;D=x=>x<<S>>>S}Q=I.includes("unsigned")?function(x,_){return _>>>0}:function(x,_){return _},Pt(u,{name:I,fromWireType:D,toWireType:Q,argPackAdvance:8,readValueFromPointer:ah(I,w,p!==0),V:null})},b:function(u,I,Q){function p(D){D>>=2;var S=m;return new w(h,S[D+1],S[D])}var w=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][I];Q=rt(Q),Pt(u,{name:Q,fromWireType:p,argPackAdvance:8,readValueFromPointer:p},{ua:!0})},o:function(u,I){I=rt(I);var Q=I==="std::string";Pt(u,{name:I,fromWireType:function(p){var w=m[p>>2],D=p+4;if(Q)for(var S=D,x=0;x<=w;++x){var _=D+x;if(x==w||E[_]==0){if(S=S?l(E,S,_-S):"",R===void 0)var R=S;else R+="\0",R+=S;S=_+1}}else{for(R=Array(w),x=0;x<w;++x)R[x]=String.fromCharCode(E[D+x]);R=R.join("")}return Kt(p),R},toWireType:function(p,w){w instanceof ArrayBuffer&&(w=new Uint8Array(w));var D,S=typeof w=="string";if(S||w instanceof Uint8Array||w instanceof Uint8ClampedArray||w instanceof Int8Array||P("Cannot pass non-string to std::string"),Q&&S){var x=0;for(D=0;D<w.length;++D){var _=w.charCodeAt(D);127>=_?x++:2047>=_?x+=2:55296<=_&&57343>=_?(x+=4,++D):x+=3}D=x}else D=w.length;if(x=xn(4+D+1),_=x+4,m[x>>2]=D,Q&&S){if(S=_,_=D+1,D=E,0<_){_=S+_-1;for(var R=0;R<w.length;++R){var F=w.charCodeAt(R);if(55296<=F&&57343>=F){var L=w.charCodeAt(++R);F=65536+((F&1023)<<10)|L&1023}if(127>=F){if(S>=_)break;D[S++]=F}else{if(2047>=F){if(S+1>=_)break;D[S++]=192|F>>6}else{if(65535>=F){if(S+2>=_)break;D[S++]=224|F>>12}else{if(S+3>=_)break;D[S++]=240|F>>18,D[S++]=128|F>>12&63}D[S++]=128|F>>6&63}D[S++]=128|F&63}}D[S]=0}}else if(S)for(S=0;S<D;++S)R=w.charCodeAt(S),255<R&&(Kt(_),P("String has UTF-16 code units that do not fit in 8 bits")),E[_+S]=R;else for(S=0;S<D;++S)E[_+S]=w[S];return p!==null&&p.push(Kt,x),x},argPackAdvance:8,readValueFromPointer:AA,V:function(p){Kt(p)}})},i:function(u,I,Q){if(Q=rt(Q),I===2)var p=lh,w=gh,D=ch,S=()=>C,x=1;else I===4&&(p=hh,w=uh,D=Ih,S=()=>m,x=2);Pt(u,{name:Q,fromWireType:function(_){for(var R=m[_>>2],F=S(),L,J=_+4,it=0;it<=R;++it){var V=_+4+it*I;(it==R||F[V>>x]==0)&&(J=p(J,V-J),L===void 0?L=J:(L+="\0",L+=J),J=V+I)}return Kt(_),L},toWireType:function(_,R){typeof R!="string"&&P("Cannot pass non-string to C++ string type "+Q);var F=D(R),L=xn(4+F+I);return m[L>>2]=F>>x,w(R,L+4,F+I),_!==null&&_.push(Kt,L),L},argPackAdvance:8,readValueFromPointer:AA,V:function(_){Kt(_)}})},k:function(u,I,Q,p,w,D){NA[u]={name:rt(I),fa:Mt(Q,p),W:Mt(w,D),ia:[]}},h:function(u,I,Q,p,w,D,S,x,_,R){NA[u].ia.push({oa:rt(I),ta:Q,ra:Mt(p,w),sa:D,za:S,ya:Mt(x,_),Aa:R})},C:function(u,I){I=rt(I),Pt(u,{va:!0,name:I,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(u,I,Q,p,w){u=UA[u],I=$e(I),Q=or(Q);var D=[];return m[p>>2]=RA(D),u(I,Q,D,w)},t:function(u,I,Q,p){u=UA[u],I=$e(I),Q=or(Q),u(I,Q,null,p)},g:bn,m:function(u,I){var Q=Eh(u,I),p=Q[0];I=p.name+"_$"+Q.slice(1).map(function(S){return S.name}).join("_")+"$";var w=rr[I];if(w!==void 0)return w;var D=Array(u-1);return w=Bh((S,x,_,R)=>{for(var F=0,L=0;L<u-1;++L)D[L]=Q[L+1].readValueFromPointer(R+F),F+=Q[L+1].argPackAdvance;for(S=S[x].apply(S,D),L=0;L<u-1;++L)Q[L+1].ma&&Q[L+1].ma(D[L]);if(!p.va)return p.toWireType(_,S)}),rr[I]=w},D:function(u){4<u&&(kt[u].ga+=1)},r:function(u){var I=$e(u);Qn(I),bn(u)},c:function(){tt("")},x:function(u,I,Q){E.copyWithin(u,I,I+Q)},w:function(u){var I=E.length;if(u>>>=0,2147483648<u)return!1;for(var Q=1;4>=Q;Q*=2){var p=I*(1+.2/Q);p=Math.min(p,u+100663296);var w=Math;p=Math.max(u,p),w=w.min.call(w,2147483648,p+(65536-p%65536)%65536);t:{try{B.grow(w-h.byteLength+65535>>>16),G();var D=1;break t}catch{}D=void 0}if(D)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(u,I,Q,p){for(var w=0,D=0;D<Q;D++){var S=m[I>>2],x=m[I+4>>2];I+=8;for(var _=0;_<x;_++){var R=E[S+_],F=Ch[u];R===0||R===10?((u===1?a:g)(l(F,0)),F.length=0):F.push(R)}w+=x}return m[p>>2]=w,0}};(function(){function u(w){e.asm=w.exports,B=e.asm.E,G(),O=e.asm.J,H.unshift(e.asm.F),At--,e.monitorRunDependencies&&e.monitorRunDependencies(At),At==0&&ot&&(w=ot,ot=null,w())}function I(w){u(w.instance)}function Q(w){return ct().then(function(D){return WebAssembly.instantiate(D,p)}).then(function(D){return D}).then(w,function(D){g("failed to asynchronously prepare wasm: "+D),tt(D)})}var p={a:Qh};if(At++,e.monitorRunDependencies&&e.monitorRunDependencies(At),e.instantiateWasm)try{return e.instantiateWasm(p,u)}catch(w){g("Module.instantiateWasm callback failed with error: "+w),n(w)}return(function(){return c||typeof WebAssembly.instantiateStreaming!="function"||It(ft)||typeof fetch!="function"?Q(I):fetch(ft,{credentials:"same-origin"}).then(function(w){return WebAssembly.instantiateStreaming(w,p).then(I,function(D){return g("wasm streaming compile failed: "+D),g("falling back to ArrayBuffer instantiation"),Q(I)})})})().catch(n),{}})(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.F).apply(null,arguments)};var lr=e.___getTypeName=function(){return(lr=e.___getTypeName=e.asm.G).apply(null,arguments)};e.__embind_initialize_bindings=function(){return(e.__embind_initialize_bindings=e.asm.H).apply(null,arguments)};var xn=e._malloc=function(){return(xn=e._malloc=e.asm.I).apply(null,arguments)},Kt=e._free=function(){return(Kt=e._free=e.asm.K).apply(null,arguments)};e.dynCall_jiji=function(){return(e.dynCall_jiji=e.asm.L).apply(null,arguments)};var OA;ot=function u(){OA||gr(),OA||(ot=u)};function gr(){function u(){if(!OA&&(OA=!0,e.calledRun=!0,!o)){if(In(H),i(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;){var I=e.postRun.shift();T.unshift(I)}In(T)}}if(!(0<At)){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)W();In(K),0<At||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),u()},1)):u())}}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return gr(),t.ready})})();let q=(function(A){return A[A.Auto=0]="Auto",A[A.FlexStart=1]="FlexStart",A[A.Center=2]="Center",A[A.FlexEnd=3]="FlexEnd",A[A.Stretch=4]="Stretch",A[A.Baseline=5]="Baseline",A[A.SpaceBetween=6]="SpaceBetween",A[A.SpaceAround=7]="SpaceAround",A[A.SpaceEvenly=8]="SpaceEvenly",A})({}),vA=(function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A})({}),Do=(function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A})({}),oe=(function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A})({}),pe=(function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A})({}),U=(function(A){return A[A.Left=0]="Left",A[A.Top=1]="Top",A[A.Right=2]="Right",A[A.Bottom=3]="Bottom",A[A.Start=4]="Start",A[A.End=5]="End",A[A.Horizontal=6]="Horizontal",A[A.Vertical=7]="Vertical",A[A.All=8]="All",A})({}),ye=(function(A){return A[A.None=0]="None",A[A.StretchFlexBasis=1]="StretchFlexBasis",A[A.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",A[A.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",A[A.All=2147483647]="All",A[A.Classic=2147483646]="Classic",A})({}),Ac=(function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A})({}),Gt=(function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A})({}),we=(function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A})({}),wt=(function(A){return A[A.FlexStart=0]="FlexStart",A[A.Center=1]="Center",A[A.FlexEnd=2]="FlexEnd",A[A.SpaceBetween=3]="SpaceBetween",A[A.SpaceAround=4]="SpaceAround",A[A.SpaceEvenly=5]="SpaceEvenly",A})({}),me=(function(A){return A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug",A[A.Verbose=4]="Verbose",A[A.Fatal=5]="Fatal",A})({}),an=(function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A})({}),vo=(function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A})({}),De=(function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A})({}),ve=(function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A})({}),Nt=(function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A})({}),be=(function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A})({});const ic={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:vA.BorderBox,BOX_SIZING_CONTENT_BOX:vA.ContentBox,DIMENSION_WIDTH:Do.Width,DIMENSION_HEIGHT:Do.Height,DIRECTION_INHERIT:oe.Inherit,DIRECTION_LTR:oe.LTR,DIRECTION_RTL:oe.RTL,DISPLAY_FLEX:pe.Flex,DISPLAY_NONE:pe.None,DISPLAY_CONTENTS:pe.Contents,EDGE_LEFT:U.Left,EDGE_TOP:U.Top,EDGE_RIGHT:U.Right,EDGE_BOTTOM:U.Bottom,EDGE_START:U.Start,EDGE_END:U.End,EDGE_HORIZONTAL:U.Horizontal,EDGE_VERTICAL:U.Vertical,EDGE_ALL:U.All,ERRATA_NONE:ye.None,ERRATA_STRETCH_FLEX_BASIS:ye.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:ye.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:ye.AbsolutePercentAgainstInnerSize,ERRATA_ALL:ye.All,ERRATA_CLASSIC:ye.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:Ac.WebFlexBasis,FLEX_DIRECTION_COLUMN:Gt.Column,FLEX_DIRECTION_COLUMN_REVERSE:Gt.ColumnReverse,FLEX_DIRECTION_ROW:Gt.Row,FLEX_DIRECTION_ROW_REVERSE:Gt.RowReverse,GUTTER_COLUMN:we.Column,GUTTER_ROW:we.Row,GUTTER_ALL:we.All,JUSTIFY_FLEX_START:wt.FlexStart,JUSTIFY_CENTER:wt.Center,JUSTIFY_FLEX_END:wt.FlexEnd,JUSTIFY_SPACE_BETWEEN:wt.SpaceBetween,JUSTIFY_SPACE_AROUND:wt.SpaceAround,JUSTIFY_SPACE_EVENLY:wt.SpaceEvenly,LOG_LEVEL_ERROR:me.Error,LOG_LEVEL_WARN:me.Warn,LOG_LEVEL_INFO:me.Info,LOG_LEVEL_DEBUG:me.Debug,LOG_LEVEL_VERBOSE:me.Verbose,LOG_LEVEL_FATAL:me.Fatal,MEASURE_MODE_UNDEFINED:an.Undefined,MEASURE_MODE_EXACTLY:an.Exactly,MEASURE_MODE_AT_MOST:an.AtMost,NODE_TYPE_DEFAULT:vo.Default,NODE_TYPE_TEXT:vo.Text,OVERFLOW_VISIBLE:De.Visible,OVERFLOW_HIDDEN:De.Hidden,OVERFLOW_SCROLL:De.Scroll,POSITION_TYPE_STATIC:ve.Static,POSITION_TYPE_RELATIVE:ve.Relative,POSITION_TYPE_ABSOLUTE:ve.Absolute,UNIT_UNDEFINED:Nt.Undefined,UNIT_POINT:Nt.Point,UNIT_PERCENT:Nt.Percent,UNIT_AUTO:Nt.Auto,WRAP_NO_WRAP:be.NoWrap,WRAP_WRAP:be.Wrap,WRAP_WRAP_REVERSE:be.WrapReverse};function nc(A){function t(n,s,r){const a=n[s];n[s]=function(){for(var g=arguments.length,c=new Array(g),B=0;B<g;B++)c[B]=arguments[B];return r.call(this,a,...c)}}for(const n of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){const s={[Nt.Point]:A.Node.prototype[n],[Nt.Percent]:A.Node.prototype[`${n}Percent`],[Nt.Auto]:A.Node.prototype[`${n}Auto`]};t(A.Node.prototype,n,function(r){for(var a=arguments.length,g=new Array(a>1?a-1:0),c=1;c<a;c++)g[c-1]=arguments[c];const B=g.pop();let o,l;if(B==="auto")o=Nt.Auto,l=void 0;else if(typeof B=="object")o=B.unit,l=B.valueOf();else if(o=typeof B=="string"&&B.endsWith("%")?Nt.Percent:Nt.Point,l=parseFloat(B),B!==void 0&&!Number.isNaN(B)&&Number.isNaN(l))throw new Error(`Invalid value ${B} for ${n}`);if(!s[o])throw new Error(`Failed to execute "${n}": Unsupported unit '${B}'`);return l!==void 0?s[o].call(this,...g,l):s[o].call(this,...g)})}function e(n){return A.MeasureCallback.implement({measure:function(){const{width:s,height:r}=n(...arguments);return{width:s??NaN,height:r??NaN}}})}t(A.Node.prototype,"setMeasureFunc",function(n,s){return s?n.call(this,e(s)):this.unsetMeasureFunc()});function i(n){return A.DirtiedCallback.implement({dirtied:n})}return t(A.Node.prototype,"setDirtiedFunc",function(n,s){n.call(this,i(s))}),t(A.Config.prototype,"free",function(){A.Config.destroy(this)}),t(A.Node,"create",(n,s)=>s?A.Node.createWithConfig(s):A.Node.createDefault()),t(A.Node.prototype,"free",function(){A.Node.destroy(this)}),t(A.Node.prototype,"freeRecursive",function(){for(let n=0,s=this.getChildCount();n<s;++n)this.getChild(0).freeRecursive();this.free()}),t(A.Node.prototype,"calculateLayout",function(n){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:oe.LTR;return n.call(this,s,r,a)}),{Config:A.Config,Node:A.Node,...ic}}async function sc(){return nc(await ec())}let bo;function So(){return bo}function oc(A){bo=A}let xo;function rc(A){xo=A}function ac(){return xo}function bA(A,t){return A?typeof A=="number"?A:typeof A=="string"&&A.endsWith("%")?(t??(t=1),t*(parseFloat(A)/100)):Number.isNaN(parseFloat(A))?0:parseFloat(A):0}function re(A){return typeof A=="number"?"number":A.endsWith("%")?"percentage":Number.isNaN(parseInt(A,10))?"keyword":"number"}function SA(A,t,e){return(t[A]-e[A])/2}function ko(A,t,e,i,n){const s=t==="percentage"?i[e]-n[e]:1;return bA(A)*s}function Mo(A,t,e){const[i,n]=A,s=re(i),r=re(n),a={x:void 0,y:void 0};switch(i){case"top":a.y=0;break;case"bottom":a.y=t.height-e.height;break;case"center":n==="left"||n==="right"?a.y=SA("height",t,e):a.x=SA("width",t,e);break;case"left":a.x=0;break;case"right":a.x=t.width-e.width;break;default:{const g=n==="top"||n==="bottom"||r!=="keyword"?"width":"height",c=g==="width"?"x":"y";a[c]=ko(i,s,g,t,e)}}switch(n){case"top":a.y=0;break;case"bottom":a.y=t.height-e.height;break;case"center":a.y===void 0?a.y=SA("height",t,e):a.x=SA("width",t,e);break;case"left":a.x=0;break;case"right":a.x=t.width-e.width;break;default:{const g=a.y===void 0?"y":"x",c=g==="y"?"height":"width";a[g]=ko(n,r,c,t,e)}}return a}function xA(A,t,e,i){const n=A==="right"||A==="bottom",s=e==="percentage"?t*i:t;return n?-s:s}function lc(A,t,e){const[i,n,s,r]=A,a=re(i),g=re(n),c=re(s),B=re(r);if(g==="keyword"||B==="keyword")throw new Error("Invalid objectPosition value: second and fourth values must be numbers or percentages");if(a!=="keyword"||c!=="keyword")throw new Error("Invalid objectPosition value: first and third values must be keywords");const o=Mo([i,s],t,e),l={...o},h=bA(n),f=bA(r);return i==="left"||i==="right"?l.x=o.x+xA(i,h,g,e.width):(i==="top"||i==="bottom")&&(l.y=o.y+xA(i,h,g,e.height)),s==="left"||s==="right"?l.x=o.x+xA(s,f,B,e.width):(s==="top"||s==="bottom")&&(l.y=o.y+xA(s,f,B,e.height)),l}function gc(A,t,e){const i=A[0],n={x:void 0,y:void 0};switch(i){case"top":n.y=0,n.x=(t.width-e.width)/2;break;case"bottom":n.y=t.height-e.height,n.x=(t.width-e.width)/2;break;case"left":n.x=0,n.y=(t.height-e.height)/2;break;case"right":n.x=t.width-e.width,n.y=(t.height-e.height)/2;break;case"center":n.x=(t.width-e.width)/2,n.y=(t.height-e.height)/2;break;default:{const r=re(i)==="percentage"?t.width-e.width:1;n.x=bA(i)*r,n.y=(t.height-e.height)/2}}return n}function ln(A,t,e){if(!A)return{x:0,y:0};const i=typeof A=="string"?A.split(" "):[A];switch(i.length){case 1:return gc(i,t,e);case 2:return Mo(i,t,e);case 4:return lc(i,t,e);default:throw new Error("Invalid objectPosition value: must have 1, 2, or 4 values")}}const gn={width:0,height:0};function Ro(A){const t=A.target.getLocalBounds(),e=A.target.scale;return gn.width=Math.abs(t.width*e.x),gn.height=Math.abs(t.height*e.y),gn}function _o(A,t,e=.49){return Math.abs(A-t)<e}function cc(A,t=0,e={}){let i,n;const s=e.maxWait?e.maxWait:t;let r,a,g,c=0;const B=!!e.leading,o="maxWait"in e,l=e.trailing??!0,h=t!==0&&typeof globalThis.requestAnimationFrame=="function";if(typeof A!="function")throw new TypeError("Expected a function");function f(T){const W=i,At=n;return i=n=void 0,c=T,r=A.apply(At,W),r}function E(T,W){return h?(typeof a=="number"&&globalThis.cancelAnimationFrame(a),globalThis.requestAnimationFrame(T)):setTimeout(T,W)}function d(T){if(h){globalThis.cancelAnimationFrame(T);return}clearTimeout(T)}function C(T){return c=T,a=E(b,t),B?f(T):r}function y(T){const W=T-(g||0),At=T-c,ot=t-W;return o?Math.min(ot,s-At):ot}function m(T){const W=T-(g||0),At=T-c;return g===void 0||W>=t||W<0||o&&At>=s}function b(){const T=Date.now();if(m(T))return M(T);a=E(b,y(T))}function M(T){return a=void 0,l&&i?f(T):(i=n=void 0,r)}function G(){a!==void 0&&d(a),c=0,i=g=n=a=void 0}function O(){return a===void 0?r:M(Date.now())}function K(){return a!==void 0}function H(...T){const W=Date.now(),At=m(W);if(i=T,n=this,g=W,At){if(a===void 0)return C(g);if(o)return a=E(b,t),f(g)}return a===void 0&&(a=E(b,t)),r}return H.cancel=G,H.flush=O,H.pending=K,H}function hc(A,t,e={}){const i=e.leading??!0,n=e.trailing??!0;if(typeof A!="function")throw new TypeError("Expected a function");return cc(A,t,{leading:i,trailing:n,maxWait:t})}var uc=Object.defineProperty,Ic=(A,t,e)=>t in A?uc(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,ae=(A,t,e)=>Ic(A,typeof t!="symbol"?t+"":t,e);class Fo{constructor(){ae(this,"autoUpdate",!0),ae(this,"_debugEnabled",!1),ae(this,"_debugRenderer",null),ae(this,"_throttledUpdateSize"),ae(this,"_throttle",100),ae(this,"_modificationCount",50)}async init(t){oc(await sc()),rc(So().Config.create());const{layout:e}=t??{},{autoUpdate:i,enableDebug:n,throttle:s,debugModificationCount:r}=e??{};n&&this.enableDebug(!0),i!==void 0&&(this.autoUpdate=i),this._throttle=s??this._throttle,this._throttledUpdateSize=hc(a=>this._updateSize(a),this._throttle,{leading:!0,trailing:!0}),this._modificationCount=r??this._modificationCount}async enableDebug(t=!this._debugEnabled){if(this._debugEnabled=t,!this._debugRenderer){const e=await Promise.resolve().then(()=>Wc);this._debugRenderer=new e.DebugRenderer}this._debugEnabled||this._debugRenderer.reset()}update(t){this._debugEnabled&&this._debugRenderer&&(this._debugRenderer.reset(),t.addChild(this._debugRenderer.holder)),this._throttle===0?this._updateSize(t):this._throttledUpdateSize(t),this.updateLayout(t)}prerender({container:t}){this.autoUpdate&&this.update(t)}_updateSize(t){if(t.destroyed)return;const e=t._layout;if(e){const i=e.style;if(i.width==="intrinsic"||i.height==="intrinsic"){const n=Ro(e);if(i.width==="intrinsic"){const s=e.yoga.getWidth().value;_o(s,n.width)||(e.yoga.setWidth(n.width),e.invalidateRoot())}if(i.height==="intrinsic"){const s=e.yoga.getHeight().value;_o(s,n.height)||(e.yoga.setHeight(n.height),e.invalidateRoot())}}if(!t.visible){e._onChildRemoved();return}}for(let i=0;i<t.children.length;i++)this._updateSize(t.children[i])}updateLayout(t){var e,i,n,s;const r=t._layout;if(t.visible){if(r){const a=r.yoga,g=r.style,c=(e=t.parent)==null?void 0:e.isOverflowContainer;if(!((i=t.parent)!=null&&i._layout)&&!c&&r._isDirty&&(r._isDirty=!1,a.calculateLayout(g.width,g.height,a.getDirection()??oe.LTR)),a.hasNewLayout()||r._forceUpdate){a.markLayoutSeen(),r._forceUpdate=!1,r._computedLayout=a.getComputedLayout();const o=ln(g.transformOrigin,r._computedLayout,{width:0,height:0});r._computedPixiLayout={...t.computeLayoutData(r._computedLayout),originX:o.x,originY:o.y},t.emit("layout",r),(n=t.onLayout)==null||n.call(t,r),t._onUpdate()}this._debugEnabled&&(r._styles.custom.debug||r._modificationCount>this._modificationCount&&r._styles.custom.debugHeat!==!1)&&((s=this._debugRenderer)==null||s.render(r))}for(let a=0;a<t.children.length;a++)this.updateLayout(t.children[a])}}destroy(){!this._debugEnabled&&this._debugRenderer&&this._debugRenderer.destroy()}}ae(Fo,"extension",{type:[v.ExtensionType.WebGLSystem,v.ExtensionType.WebGPUSystem],name:"layout"});const Go={"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},No={"flex-start":q.FlexStart,"flex-end":q.FlexEnd,center:q.Center,stretch:q.Stretch,baseline:q.Baseline},Ho={auto:q.Auto,"flex-start":q.FlexStart,"flex-end":q.FlexEnd,center:q.Center,stretch:q.Stretch,baseline:q.Baseline},Lo={"border-box":vA.BorderBox,"content-box":vA.ContentBox},Uo={ltr:oe.LTR,rtl:oe.RTL},To={none:pe.None,flex:pe.Flex,contents:pe.Contents},Oo={row:Gt.Row,column:Gt.Column,"row-reverse":Gt.RowReverse,"column-reverse":Gt.ColumnReverse},Po={wrap:be.Wrap,nowrap:be.NoWrap,"wrap-reverse":be.WrapReverse},Jo={"flex-start":wt.FlexStart,"flex-end":wt.FlexEnd,center:wt.Center,"space-between":wt.SpaceBetween,"space-around":wt.SpaceAround,"space-evenly":wt.SpaceEvenly},Ko={visible:De.Visible,hidden:De.Hidden,scroll:De.Scroll},Yo={absolute:ve.Absolute,relative:ve.Relative,static:ve.Static},fc={alignContent:(A,t)=>A.setAlignContent(Bc(t)),alignItems:(A,t)=>A.setAlignItems(Ec(t)),alignSelf:(A,t)=>A.setAlignSelf(Cc(t)),aspectRatio:(A,t)=>A.setAspectRatio(t),borderBottomWidth:(A,t)=>A.setBorder(U.Bottom,t),borderEndWidth:(A,t)=>A.setBorder(U.End,t),borderLeftWidth:(A,t)=>A.setBorder(U.Left,t),borderRightWidth:(A,t)=>A.setBorder(U.Right,t),borderStartWidth:(A,t)=>A.setBorder(U.Start,t),borderTopWidth:(A,t)=>A.setBorder(U.Top,t),borderWidth:(A,t)=>A.setBorder(U.All,t),borderInlineWidth:(A,t)=>A.setBorder(U.Horizontal,t),borderBlockWidth:(A,t)=>A.setBorder(U.Vertical,t),bottom:(A,t)=>A.setPosition(U.Bottom,t),boxSizing:(A,t)=>A.setBoxSizing(dc(t)),direction:(A,t)=>A.setDirection(Qc(t)),display:(A,t)=>A.setDisplay(pc(t)),end:(A,t)=>A.setPosition(U.End,t),flex:(A,t)=>A.setFlex(t),flexBasis:(A,t)=>A.setFlexBasis(t),flexDirection:(A,t)=>A.setFlexDirection(yc(t)),rowGap:(A,t)=>A.setGap(we.Row,t),gap:(A,t)=>A.setGap(we.All,t),columnGap:(A,t)=>A.setGap(we.Column,t),flexGrow:(A,t)=>A.setFlexGrow(t),flexShrink:(A,t)=>A.setFlexShrink(t),flexWrap:(A,t)=>A.setFlexWrap(wc(t)),height:(A,t)=>A.setHeight(t),justifyContent:(A,t)=>A.setJustifyContent(mc(t)),left:(A,t)=>A.setPosition(U.Left,t),margin:(A,t)=>A.setMargin(U.All,t),marginBottom:(A,t)=>A.setMargin(U.Bottom,t),marginEnd:(A,t)=>A.setMargin(U.End,t),marginLeft:(A,t)=>A.setMargin(U.Left,t),marginRight:(A,t)=>A.setMargin(U.Right,t),marginStart:(A,t)=>A.setMargin(U.Start,t),marginTop:(A,t)=>A.setMargin(U.Top,t),marginInline:(A,t)=>A.setMargin(U.Horizontal,t),marginBlock:(A,t)=>A.setMargin(U.Vertical,t),maxHeight:(A,t)=>A.setMaxHeight(t),maxWidth:(A,t)=>A.setMaxWidth(t),minHeight:(A,t)=>A.setMinHeight(t),minWidth:(A,t)=>A.setMinWidth(t),overflow:(A,t)=>A.setOverflow(Dc(t)),padding:(A,t)=>A.setPadding(U.All,t),paddingBottom:(A,t)=>A.setPadding(U.Bottom,t),paddingEnd:(A,t)=>A.setPadding(U.End,t),paddingLeft:(A,t)=>A.setPadding(U.Left,t),paddingRight:(A,t)=>A.setPadding(U.Right,t),paddingStart:(A,t)=>A.setPadding(U.Start,t),paddingTop:(A,t)=>A.setPadding(U.Top,t),paddingInline:(A,t)=>A.setPadding(U.Horizontal,t),paddingBlock:(A,t)=>A.setPadding(U.Vertical,t),position:(A,t)=>A.setPositionType(vc(t)),right:(A,t)=>A.setPosition(U.Right,t),start:(A,t)=>A.setPosition(U.Start,t),top:(A,t)=>A.setPosition(U.Top,t),insetInline:(A,t)=>A.setPosition(U.Horizontal,t),insetBlock:(A,t)=>A.setPosition(U.Vertical,t),inset:(A,t)=>A.setPosition(U.All,t),width:(A,t)=>A.setWidth(t)};function Bc(A){if(A in Go)return Go[A];throw new Error(`"${A}" is not a valid value for alignContent`)}function Ec(A){if(A in No)return No[A];throw new Error(`"${A}" is not a valid value for alignItems`)}function Cc(A){if(A in Ho)return Ho[A];throw new Error(`"${A}" is not a valid value for alignSelf`)}function dc(A){if(A in Lo)return Lo[A];throw new Error(`"${A}" is not a valid value for boxSizing`)}function Qc(A){if(A in Uo)return Uo[A];throw new Error(`"${A}" is not a valid value for direction`)}function pc(A){if(A in To)return To[A];throw new Error(`"${A}" is not a valid value for display`)}function yc(A){if(A in Oo)return Oo[A];throw new Error(`"${A}" is not a valid value for flexDirection`)}function wc(A){if(A in Po)return Po[A];throw new Error(`"${A}" is not a valid value for flexWrap`)}function mc(A){if(A in Jo)return Jo[A];throw new Error(`"${A}" is not a valid value for justifyContent`)}function Dc(A){if(A in Ko)return Ko[A];throw new Error(`"${A}" is not a valid value for overflow`)}function vc(A){if(A in Yo)return Yo[A];throw new Error(`"${A}" is not a valid value for position`)}function bc(A,t={}){for(const[e,i]of Object.entries(t))try{const n=fc[e];n&&n(A,i)}catch{}if(t.width!==void 0){const e=t.left!==void 0&&t.right!==void 0?"auto":t.width;A.setWidth(e)}if(t.height!==void 0){const e=t.top!==void 0&&t.bottom!==void 0?"auto":t.height;A.setHeight(e)}}function Sc(A,t){let i={...A._styles.custom,...t};i={...{...Se.defaultStyle.shared,...A.target instanceof v.ViewContainer||i.isLeaf||Se.defaultStyle.shared.isLeaf?Se.defaultStyle.leaf:Se.defaultStyle.container},...i};const s={...i},r=i.width==="intrinsic",a=i.height==="intrinsic";if(r||a){const{width:g,height:c}=Ro(A);r&&(s.width=g),a&&(s.height=c)}return{custom:i,yoga:s}}function xc(A,t){var e;let i=t.layout,n;if(!i&&t.isOverflowContainer&&(n=t,i=(e=n.parent)==null?void 0:e.layout,t=n.parent),!i)return!1;const s=A.yoga.getParent();s&&s.removeChild(A.yoga);const r=kc(A,t,n);return r===-1?!1:(r===i.yoga.getChildCount(),i.yoga.insertChild(A.yoga,r),!0)}function kc(A,t,e){const i=A.target;let n=0;if(e){for(const s of t.children){if(s===e){for(const r of e.children)if(!(!r.layout||!r.visible)){if(r===i)return n;n++}return-1}s.layout&&s.visible&&n++}return-1}for(const s of t.children)if(!(!s.layout||!s.visible)){if(s===i)return n;n++}return-1}function Mc(A){const t=A.yoga.getParent();t&&t.removeChild(A.yoga)}var Rc=Object.defineProperty,_c=(A,t,e)=>t in A?Rc(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,mt=(A,t,e)=>_c(A,typeof t!="symbol"?t+"":t,e);class Se{constructor({target:t}){mt(this,"yoga"),mt(this,"target"),mt(this,"destroyed",!1),mt(this,"_isDirty",!1),mt(this,"_computedPixiLayout",{x:0,y:0,offsetX:0,offsetY:0,scaleX:1,scaleY:1,originX:0,originY:0}),mt(this,"_computedLayout",{left:0,right:0,top:0,bottom:0,width:0,height:0}),mt(this,"_styles",{custom:{},yoga:{}}),mt(this,"_modificationCount",0),mt(this,"_forceUpdate",!1),mt(this,"hasParent",!1),mt(this,"_trackedStyleKeys",["borderRadius","borderColor","backgroundColor","objectFit","objectPosition","transformOrigin","isLeaf"]),this.target=t,this.yoga=So().Node.create(ac()),t.on("added",this._onChildAdded,this),t.on("removed",this._onChildRemoved,this),t.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(t){const e=Sc(this,t),i=JSON.stringify(this._styles.custom)!==JSON.stringify(e.custom),n=JSON.stringify(this._styles.yoga)!==JSON.stringify(e.yoga),s=i||n,r=this._trackedStyleKeys.some(a=>e.custom[a]!==this._styles.custom[a]);this._styles=e,r&&(this._forceUpdate=!0),s&&(bc(this.yoga,this._styles.yoga),this.target._onUpdate(),this.invalidateRoot())}invalidateRoot(t){const e=this.getRoot(t);e.destroyed||(e._layout._isDirty=!0,e._onUpdate(),this._modificationCount++)}forceUpdate(){this._forceUpdate=!0}getRoot(t){var e,i;let n=t||this.target;for(;(e=n.parent)!=null&&e._layout||(i=n.parent)!=null&&i.isOverflowContainer;)n=n.parent,n.isOverflowContainer&&(n=n.parent);return n}_onChildAdded(t){this.hasParent||xc(this,t)!==!1&&(this.hasParent=!0,this.invalidateRoot())}_onChildRemoved(t){this.hasParent&&(this.hasParent=!1,this.invalidateRoot(t),Mc(this))}destroy(){this.destroyed||(this.destroyed=!0,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)}}mt(Se,"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 Wo(A,t,e){let i=1,n=1;switch(A){case"fill":i=t.width/e.width,n=t.height/e.height;break;case"contain":{const s=Math.min(t.width/e.width,t.height/e.height);i=s,n=s;break}case"cover":{const s=Math.max(t.width/e.width,t.height/e.height);i=s,n=s;break}case"none":i=1,n=1;break;case"scale-down":{const s=Math.min(1,t.width/e.width,t.height/e.height);i=s,n=s;break}}return{offsetScaleX:i,offsetScaleY:n}}function jo(A,t,e,i){const n=A.getLocalBounds(),s=A.layout.style.objectFit||e;let{offsetScaleX:r,offsetScaleY:a}=Wo(s,t,n);const g={width:n.width*r,height:n.height*a};let{x:c,y:B}=ln(A.layout.style.objectPosition,t,g);i?(c+=n.width*r*i._x,B+=n.height*a*i._y):(c-=n.minX*r,B-=n.minY*a);const o=A.layout.style.applySizeDirectly;return(o===!0||o==null&&(A instanceof v.TilingSprite||A instanceof v.NineSliceSprite))&&(A.width=n.width*r,A.height=n.height*a,r=1,a=1),{x:t.left,y:t.top,offsetX:c,offsetY:B,scaleX:r,scaleY:a}}const cn=Object.getOwnPropertyDescriptor(v.Container.prototype,"visible"),Fc={_layout:null,get layout(){return this._layout??null},set layout(A){if(A=A===!0?{}:A,!A){this._layout&&(this._layout.destroy(),this._layout=null,this.updateLocalTransform=v.Container.prototype.updateLocalTransform,Object.defineProperty(v.Container.prototype,"visible",cn));return}if(!this._layout){this._layout=new Se({target:this}),Object.defineProperty(v.Container.prototype,"visible",{...cn,set(t){cn.set.call(this,t),this.layout&&(t&&this.parent?this.layout._onChildAdded(this.parent):this.layout._onChildRemoved())}});for(const t of this.children)t.layout&&t.visible&&(t.layout._onChildRemoved(),t.layout._onChildAdded(this));this.parent&&this.visible&&this._layout._onChildAdded(this.parent)}this._layout.setStyle(A),this.updateLocalTransform=this.updateLocalTransformWithLayout,this._onUpdate()},updateLocalTransformWithLayout(){const A=this._didContainerChangeTick;if(this._didLocalTransformChangeId===A)return;this._didLocalTransformChangeId=A;const t=this._layout,{x:e,y:i,offsetX:n,offsetY:s,scaleX:r,scaleY:a,originX:g,originY:c}=t._computedPixiLayout,B=this.localTransform,{rotation:o,skew:l,scale:h,position:f}=this,E=o+l._y,d=o-l._x,C=Math.cos(E)*h._x,y=Math.sin(E)*h._x,m=-Math.sin(d)*h._y,b=Math.cos(d)*h._y,M=f._x+e-g*C-c*m,G=f._y+i-g*y-c*b;B.a=C*r,B.b=y*r,B.c=m*a,B.d=b*a,B.tx=M+(n*C+s*m)+g,B.ty=G+(n*y+s*b)+c},computeLayoutData(A){const t=this._layout,{isLeaf:e}=t._styles.custom;return e?jo(this,A,"fill"):{x:A.left,y:A.top,offsetX:0,offsetY:0,scaleX:1,scaleY:1}}};v.extensions.mixin(v.Container,Fc);const Vo=new v.Point(0,0),Gc={computeLayoutData(A){const t=this._style;Vo.copyFrom(this.scale),this.scale=1,t.wordWrap&&(t.wordWrapWidth=A.width);let e=this.getLocalBounds();const i=this.layout.style.objectFit||"scale-down",{offsetScaleX:n,offsetScaleY:s}=Wo(i,A,e);t.wordWrap&&(t.wordWrapWidth=A.width/Math.min(1,Math.max(n,s))),e=this.getLocalBounds();const r={width:e.width*n,height:e.height*s};let{x:a,y:g}=ln(this.layout.style.objectPosition,A,r);return a+=e.width*n*this.anchor._x,g+=e.height*s*this.anchor._y,this.layout.style.applySizeDirectly===!0&&(this.width=e.width*n,this.height=e.height*s),this.scale.copyFrom(Vo),{x:A.left,y:A.top,offsetX:a,offsetY:g,scaleX:n,scaleY:s}}};v.extensions.mixin(v.AbstractText,Gc);const hn=Object.getOwnPropertyDescriptor(v.AbstractText.prototype,"text");Object.defineProperty(v.AbstractText.prototype,"text",{...hn,set(A){var t;const e=hn.get.call(this);hn.set.call(this,A),e!==A&&((t=this.layout)==null||t.forceUpdate())}});const Nc={computeLayoutData(A){return jo(this,A,"fill",this._anchor)}};v.extensions.mixin(v.ViewContainer,Nc);var Ht=(A=>(A.Margin="margin",A.Padding="padding",A.Border="border",A.Flex="flex",A.Content="content",A))(Ht||{});function un(A,t){const e=`getComputed${t.charAt(0).toUpperCase()+t.slice(1)}`;return{top:A.yoga[e](U.Top),right:A.yoga[e](U.Right),bottom:A.yoga[e](U.Bottom),left:A.yoga[e](U.Left)}}function Hc(A,t){const{width:e,height:i}=A.computedLayout,n=un(A,"margin"),s=un(A,"border"),r=un(A,"padding"),a=t.get("margin");a.outer.x=-n.left,a.outer.y=-n.top,a.outer.width=e+n.left+n.right,a.outer.height=i+n.top+n.bottom,a.inner.x=0,a.inner.y=0,a.inner.width=e,a.inner.height=i;const g=t.get("border");g.outer.x=0,g.outer.y=0,g.outer.width=e,g.outer.height=i,g.inner.x=s.left,g.inner.y=s.top,g.inner.width=e-s.left-s.right,g.inner.height=i-s.top-s.bottom;const c=t.get("padding");c.outer.copyFrom(g.inner),c.inner.x=r.left+s.left,c.inner.y=r.top+s.top,c.inner.width=e-r.left-r.right-s.left-s.right,c.inner.height=i-r.top-r.bottom-s.top-s.bottom,Lc(A,t)}function Lc(A,t){var e;const i=t.get("flex"),n=t.get("padding");i.outer.copyFrom(n.inner);const s=new v.Bounds,r=A.yoga.getChildCount();for(let g=0;g<r;g++){const B=A.yoga.getChild(g).getComputedLayout();s.addRect(new v.Rectangle(B.left,B.top,B.width,B.height))}const a=A.yoga.getFlexDirection();a===Gt.Column||a===Gt.ColumnReverse?(s.width=i.outer.width,s.x=i.outer.x):(s.height=i.outer.height,s.y=i.outer.y),(e=i.inner)==null||e.copyFrom(s.rectangle),t.get("content").outer.copyFrom(s.rectangle)}var Uc=Object.defineProperty,Tc=(A,t,e)=>t in A?Uc(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,qo=(A,t,e)=>Tc(A,typeof t!="symbol"?t+"":t,e);function Oc(A,t,e){const i=Math.round(A[0]+(t[0]-A[0])*e),n=Math.round(A[1]+(t[1]-A[1])*e),s=Math.round(A[2]+(t[2]-A[2])*e);return`rgb(${i},${n},${s})`}class Pc extends v.Container{constructor(){super(),qo(this,"graphics"),qo(this,"heatGraphics"),this.graphics=new Map,Object.values(Ht).forEach(t=>{const e=new v.Graphics;this.graphics.set(t,e),this.addChild(e)}),this.heatGraphics=new v.Graphics,this.addChild(this.heatGraphics)}init(t){const{target:e,alpha:i,heat:n}=t;t.heatOnly||Object.entries(t).forEach(([a,g])=>{if(a==="target"||a==="alpha"||a==="heat"||a==="heatOnly")return;g=g;const c=this.graphics.get(a);if(!(!c||!g.draw))if(g.inner)this.drawCutBox(c,g.outer,g.inner,g.color,i);else{const{x:B,y:o,width:l,height:h}=g.outer;c.rect(B,o,l,Math.max(h,1)),c.fill({color:g.color,alpha:i})}});const{invalidationCount:s,draw:r}=n;if(s>0&&r){const g=Math.min(s/20,1),c=t[Ht.Margin],l=Oc([255,255,0],[255,0,0],g);this.heatGraphics.rect(c.outer.x,c.outer.y,c.outer.width,c.outer.height),this.heatGraphics.fill({color:l,alpha:Math.min(.3,g)}),this.heatGraphics.stroke({color:l,alpha:Math.max(.3,g),pixelLine:!0})}this.position.set(e.x,e.y)}reset(){this.graphics.forEach(t=>t.clear()),this.heatGraphics.clear(),this.removeFromParent()}drawCutBox(t,e,i,n,s){const{x:r,y:a,width:g,height:c}=e,{x:B,y:o,width:l,height:h}=i;t.rect(r,a,g,c),t.fill({color:n,alpha:s}),t.rect(B,o,l,h),t.cut()}}var Jc=Object.defineProperty,Kc=(A,t,e)=>t in A?Jc(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,kA=(A,t,e)=>Kc(A,typeof t!="symbol"?t+"":t,e);class Yc{constructor(){kA(this,"holder",new v.Container),kA(this,"regions",new Map),kA(this,"colors",{[Ht.Margin]:"#B68655",[Ht.Padding]:"#BAC57F",[Ht.Border]:"#E7C583",[Ht.Content]:"#89B1BE",[Ht.Flex]:"#6E28D9"}),kA(this,"alpha",.75),Object.values(Ht).forEach(t=>{this.regions.set(t,{outer:new v.Rectangle,inner:new v.Rectangle})}),this.holder.__devtoolIgnore=!0,this.holder.__devtoolIgnoreChildren=!0,this.holder.eventMode="none",this.holder.interactiveChildren=!1}reset(){for(let t=this.holder.children.length-1;t>=0;t--){const e=this.holder.children[t];v.BigPool.return(e)}}render(t){Hc(t,this.regions);const e=Object.values(Ht).reduce((a,g)=>{const c=this.regions.get(g);if(!c)return a;const B=`debugDraw${g.charAt(0).toUpperCase()}${g.slice(1)}`;return a[g]={...c,color:this.colors[g],draw:t._styles.custom[B]??!0},a},{}),{left:i,top:n}=t.computedLayout,s=t.target.getGlobalPosition(),r=v.BigPool.get(Pc,{...e,target:{x:s.x+i,y:s.y+n},alpha:this.alpha,heat:{invalidationCount:t._modificationCount,draw:t._styles.custom.debugHeat!==!1},heatOnly:!t._styles.custom.debug});this.holder.addChildAt(r,0)}destroy(){this.reset(),this.holder.destroy(),this.regions.clear()}}const Wc=Object.freeze(Object.defineProperty({__proto__:null,DebugRenderer:Yc},Symbol.toStringTag,{value:"Module"}));v.extensions.add(Fo);const jc=async(A,t,e)=>{const{components:i,autoRegister:n,...s}=e??{};i?(n!==!1&&vi(),Object.entries(i).forEach(([c,B])=>{st(c,B)})):vi();const r=new v.Application;await r.init({resizeTo:A,autoStart:!1,antialias:!0,...s});const a=await gt(t);if(a.tag!="Canvas")throw new Error("Canvas is required");a.render(A,r);const{backgroundColor:g}=Qt(a.props,{backgroundColor:"black"});return r.renderer.background.color=g(),{canvasElement:a,app:r}};function Vc(A){return ut.getCurrentIndexSignal(A)}function qc(A){return ut.getFocusedElementSignal(A)}function Xc(A,t){const e=ut.getCurrentIndexSignal(A),i=ut.getFocusedElementSignal(A);if(!e||!i)return console.warn(`FocusContainer with id "${A}" not found`),()=>{};const n=nt(()=>{const s=e(),r=i();t(s,r)});return()=>{n&&typeof n.unsubscribe=="function"&&n.unsubscribe()}}const Zc={linear:Al,easeIn:di,easeInOut:Os,easeOut:il,circIn:Ps,circInOut:nl,circOut:Js,backIn:Qi,backInOut:ol,backOut:sl,anticipate:rl,bounceIn:cl,bounceInOut:hl,bounceOut:EA};class zc{constructor(t,e,i,n,s,r,a=0){this.x0=t,this.y0=e,this.x1=i,this.y1=n,this.x2=s,this.y2=r,this.focalPoint=a,this.gradient=null,this.texture=null,this.size=600,this.size=t;const g=this.size*.5;this.canvas=v.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(g*(1-a),g,0,g,g,g-.5))}addColorStop(t,e){this.gradient&&this.gradient.addColorStop(t,e)}render({translate:t}={}){const{x0:e,y0:i,x1:n,y1:s,x2:r,y2:a,focalPoint:g}=this,c=this.size;if(this.ctx&&this.gradient){this.ctx.fillStyle=this.gradient,this.ctx.fillRect(0,0,c,c),this.texture=new v.Texture({source:new v.ImageSource({resource:this.canvas,addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})});const B=new v.Matrix,o=Math.sqrt((n-e)*(n-e)+(s-i)*(s-i)),l=Math.sqrt((r-e)*(r-e)+(a-i)*(a-i)),h=Math.atan2(s-i,n-e),f=o/c,E=l/c;B.rotate(-h),B.scale(f,E),t&&B.translate(t.x,t.y),this.transform=B}return{texture:this.texture,matrix:this.transform}}}return k.ArraySubject=Ue,k.Button=Xg,k.ButtonState=mo,k.Canvas=Tl,k.Circle=_i,k.Container=qe,k.ControlsBase=cA,k.ControlsDirective=Zs,k.DOMContainer=qg,k.DOMElement=wo,k.DisplayObject=pt,k.Drag=no,k.Drop=io,k.EVENTS=ao,k.Easing=Zc,k.Ellipse=go,k.Flash=ro,k.FocusContainer=tc,k.FocusManager=DA,k.GamepadControls=us,k.Graphics=ne,k.Howl=Gl,k.Howler=de.Howler,k.Input=rs,k.Joystick=Zg,k.JoystickControls=Is,k.KeyboardControls=gs,k.Mesh=Yl,k.NineSliceSprite=Wg,k.ObjectSubject=Te,k.ParticlesEmitter=sg,k.RadialGradient=zc,k.Rect=lo,k.Scene=jl,k.Scheduler=zs,k.Shake=oo,k.Sound=Ao,k.Sprite=rn,k.Svg=Jl,k.Text=Co,k.TilingSprite=lg,k.Transition=so,k.Triangle=Pl,k.Utils=ca,k.Video=og,k.Viewport=Kg,k.ViewportFollow=$s,k.animatedSequence=kl,k.animatedSignal=wi,k.bootstrapCanvas=jc,k.computed=Ct,k.cond=Rl,k.createComponent=ht,k.effect=nt,k.focusManager=ut,k.h=gt,k.isAnimatedSignal=Ce,k.isArraySubject=ya,k.isComputed=Ee,k.isElement=dt,k.isElementFrozen=St,k.isObjectSubject=wa,k.isObservable=jr,k.isPrimitive=Di,k.isSignal=N,k.isTrigger=Ve,k.linkedSignal=fs,k.loop=Ml,k.mount=Fi,k.on=QA,k.registerAllComponents=vi,k.registerComponent=st,k.signal=Y,k.tick=Wl,k.trigger=Ll,k.untracked=ri,k.useDefineProps=Si,k.useFocusChange=Xc,k.useFocusIndex=Vc,k.useFocusedElement=qc,k.useProps=Qt,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"}),k})({},PIXI);
3
+ `):"",this.name="UnsubscriptionError",this.errors=e}});function VA(A,t){if(A){var e=A.indexOf(t);0<=e&&A.splice(e,1)}}var sA=(function(){function A(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return A.prototype.unsubscribe=function(){var t,e,i,n,s;if(!this.closed){this.closed=!0;var r=this._parentage;if(r)if(this._parentage=null,Array.isArray(r))try{for(var a=ce(r),g=a.next();!g.done;g=a.next()){var c=g.value;c.remove(this)}}catch(E){t={error:E}}finally{try{g&&!g.done&&(e=a.return)&&e.call(a)}finally{if(t)throw t.error}}else r.remove(this);var u=this.initialTeardown;if(et(u))try{u()}catch(E){s=E instanceof jA?E.errors:[E]}var o=this._finalizers;if(o){this._finalizers=null;try{for(var l=ce(o),h=l.next();!h.done;h=l.next()){var B=h.value;try{Nn(B)}catch(E){s=s??[],E instanceof jA?s=Ge(Ge([],Fe(s)),Fe(E.errors)):s.push(E)}}}catch(E){i={error:E}}finally{try{h&&!h.done&&(n=l.return)&&n.call(l)}finally{if(i)throw i.error}}}if(s)throw new jA(s)}},A.prototype.add=function(t){var e;if(t&&t!==this)if(this.closed)Nn(t);else{if(t instanceof A){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(e=this._finalizers)!==null&&e!==void 0?e:[]).push(t)}},A.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},A.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},A.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&VA(e,t)},A.prototype.remove=function(t){var e=this._finalizers;e&&VA(e,t),t instanceof A&&t._removeParent(this)},A.EMPTY=(function(){var t=new A;return t.closed=!0,t})(),A})(),Fn=sA.EMPTY;function Gn(A){return A instanceof sA||A&&"closed"in A&&et(A.remove)&&et(A.add)&&et(A.unsubscribe)}function Nn(A){et(A)?A():A.unsubscribe()}var yr={Promise:void 0},wr={setTimeout:function(A,t){for(var e=[],i=2;i<arguments.length;i++)e[i-2]=arguments[i];return setTimeout.apply(void 0,Ge([A,t],Fe(e)))},clearTimeout:function(A){return clearTimeout(A)},delegate:void 0};function Hn(A){wr.setTimeout(function(){throw A})}function Ln(){}function oA(A){A()}var qA=(function(A){$t(t,A);function t(e){var i=A.call(this)||this;return i.isStopped=!1,e?(i.destination=e,Gn(e)&&e.add(i)):i.destination=vr,i}return t.create=function(e,i,n){return new Ne(e,i,n)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,A.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t})(sA),mr=(function(){function A(t){this.partialObserver=t}return A.prototype.next=function(t){var e=this.partialObserver;if(e.next)try{e.next(t)}catch(i){rA(i)}},A.prototype.error=function(t){var e=this.partialObserver;if(e.error)try{e.error(t)}catch(i){rA(i)}else rA(t)},A.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(e){rA(e)}},A})(),Ne=(function(A){$t(t,A);function t(e,i,n){var s=A.call(this)||this,r;return et(e)||!e?r={next:e??void 0,error:i??void 0,complete:n??void 0}:r=e,s.destination=new mr(r),s}return t})(qA);function rA(A){Hn(A)}function Dr(A){throw A}var vr={closed:!0,next:Ln,error:Dr,complete:Ln},XA=(function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"})();function ZA(A){return A}function br(A){return A.length===0?ZA:A.length===1?A[0]:function(e){return A.reduce(function(i,n){return n(i)},e)}}var Z=(function(){function A(t){t&&(this._subscribe=t)}return A.prototype.lift=function(t){var e=new A;return e.source=this,e.operator=t,e},A.prototype.subscribe=function(t,e,i){var n=this,s=xr(t)?t:new Ne(t,e,i);return oA(function(){var r=n,a=r.operator,g=r.source;s.add(a?a.call(s,g):g?n._subscribe(s):n._trySubscribe(s))}),s},A.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){t.error(e)}},A.prototype.forEach=function(t,e){var i=this;return e=Un(e),new e(function(n,s){var r=new Ne({next:function(a){try{t(a)}catch(g){s(g),r.unsubscribe()}},error:s,complete:n});i.subscribe(r)})},A.prototype._subscribe=function(t){var e;return(e=this.source)===null||e===void 0?void 0:e.subscribe(t)},A.prototype[XA]=function(){return this},A.prototype.pipe=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return br(t)(this)},A.prototype.toPromise=function(t){var e=this;return t=Un(t),new t(function(i,n){var s;e.subscribe(function(r){return s=r},function(r){return n(r)},function(){return i(s)})})},A.create=function(t){return new A(t)},A})();function Un(A){var t;return(t=A??yr.Promise)!==null&&t!==void 0?t:Promise}function Sr(A){return A&&et(A.next)&&et(A.error)&&et(A.complete)}function xr(A){return A&&A instanceof qA||Sr(A)&&Gn(A)}function kr(A){return et(A?.lift)}function ue(A){return function(t){if(kr(t))return t.lift(function(e){try{return A(e,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function aA(A,t,e,i,n){return new Mr(A,t,e,i,n)}var Mr=(function(A){$t(t,A);function t(e,i,n,s,r,a){var g=A.call(this,e)||this;return g.onFinalize=r,g.shouldUnsubscribe=a,g._next=i?function(c){try{i(c)}catch(u){e.error(u)}}:A.prototype._next,g._error=s?function(c){try{s(c)}catch(u){e.error(u)}finally{this.unsubscribe()}}:A.prototype._error,g._complete=n?function(){try{n()}catch(c){e.error(c)}finally{this.unsubscribe()}}:A.prototype._complete,g}return t.prototype.unsubscribe=function(){var e;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var i=this.closed;A.prototype.unsubscribe.call(this),!i&&((e=this.onFinalize)===null||e===void 0||e.call(this))}},t})(qA),Rr=_n(function(A){return function(){A(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),te=(function(A){$t(t,A);function t(){var e=A.call(this)||this;return e.closed=!1,e.currentObservers=null,e.observers=[],e.isStopped=!1,e.hasError=!1,e.thrownError=null,e}return t.prototype.lift=function(e){var i=new Tn(this,this);return i.operator=e,i},t.prototype._throwIfClosed=function(){if(this.closed)throw new Rr},t.prototype.next=function(e){var i=this;oA(function(){var n,s;if(i._throwIfClosed(),!i.isStopped){i.currentObservers||(i.currentObservers=Array.from(i.observers));try{for(var r=ce(i.currentObservers),a=r.next();!a.done;a=r.next()){var g=a.value;g.next(e)}}catch(c){n={error:c}}finally{try{a&&!a.done&&(s=r.return)&&s.call(r)}finally{if(n)throw n.error}}}})},t.prototype.error=function(e){var i=this;oA(function(){if(i._throwIfClosed(),!i.isStopped){i.hasError=i.isStopped=!0,i.thrownError=e;for(var n=i.observers;n.length;)n.shift().error(e)}})},t.prototype.complete=function(){var e=this;oA(function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var i=e.observers;i.length;)i.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return((e=this.observers)===null||e===void 0?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(e){return this._throwIfClosed(),A.prototype._trySubscribe.call(this,e)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var i=this,n=this,s=n.hasError,r=n.isStopped,a=n.observers;return s||r?Fn:(this.currentObservers=null,a.push(e),new sA(function(){i.currentObservers=null,VA(a,e)}))},t.prototype._checkFinalizedStatuses=function(e){var i=this,n=i.hasError,s=i.thrownError,r=i.isStopped;n?e.error(s):r&&e.complete()},t.prototype.asObservable=function(){var e=new Z;return e.source=this,e},t.create=function(e,i){return new Tn(e,i)},t})(Z),Tn=(function(A){$t(t,A);function t(e,i){var n=A.call(this)||this;return n.destination=e,n.source=i,n}return t.prototype.next=function(e){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.next)===null||n===void 0||n.call(i,e)},t.prototype.error=function(e){var i,n;(n=(i=this.destination)===null||i===void 0?void 0:i.error)===null||n===void 0||n.call(i,e)},t.prototype.complete=function(){var e,i;(i=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||i===void 0||i.call(e)},t.prototype._subscribe=function(e){var i,n;return(n=(i=this.source)===null||i===void 0?void 0:i.subscribe(e))!==null&&n!==void 0?n:Fn},t})(te),ee=(function(A){$t(t,A);function t(e){var i=A.call(this)||this;return i._value=e,i}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(e){var i=A.prototype._subscribe.call(this,e);return!i.closed&&e.next(this._value),i},t.prototype.getValue=function(){var e=this,i=e.hasError,n=e.thrownError,s=e._value;if(i)throw n;return this._throwIfClosed(),s},t.prototype.next=function(e){A.prototype.next.call(this,this._value=e)},t})(te),On={now:function(){return(On.delegate||Date).now()},delegate:void 0},_r=(function(A){$t(t,A);function t(e,i,n){e===void 0&&(e=1/0),i===void 0&&(i=1/0),n===void 0&&(n=On);var s=A.call(this)||this;return s._bufferSize=e,s._windowTime=i,s._timestampProvider=n,s._buffer=[],s._infiniteTimeWindow=!0,s._infiniteTimeWindow=i===1/0,s._bufferSize=Math.max(1,e),s._windowTime=Math.max(1,i),s}return t.prototype.next=function(e){var i=this,n=i.isStopped,s=i._buffer,r=i._infiniteTimeWindow,a=i._timestampProvider,g=i._windowTime;n||(s.push(e),!r&&s.push(a.now()+g)),this._trimBuffer(),A.prototype.next.call(this,e)},t.prototype._subscribe=function(e){this._throwIfClosed(),this._trimBuffer();for(var i=this._innerSubscribe(e),n=this,s=n._infiniteTimeWindow,r=n._buffer,a=r.slice(),g=0;g<a.length&&!e.closed;g+=s?1:2)e.next(a[g]);return this._checkFinalizedStatuses(e),i},t.prototype._trimBuffer=function(){var e=this,i=e._bufferSize,n=e._timestampProvider,s=e._buffer,r=e._infiniteTimeWindow,a=(r?1:2)*i;if(i<1/0&&a<s.length&&s.splice(0,s.length-a),!r){for(var g=n.now(),c=0,u=1;u<s.length&&s[u]<=g;u+=2)c=u;c&&s.splice(0,c+1)}},t})(te);function Fr(A){return A&&et(A.schedule)}function Pn(A){return A[A.length-1]}function Gr(A){return et(Pn(A))?A.pop():void 0}function Nr(A){return Fr(Pn(A))?A.pop():void 0}var Jn=(function(A){return A&&typeof A.length=="number"&&typeof A!="function"});function Kn(A){return et(A?.then)}function Yn(A){return et(A[XA])}function Wn(A){return Symbol.asyncIterator&&et(A?.[Symbol.asyncIterator])}function jn(A){return new TypeError("You provided "+(A!==null&&typeof A=="object"?"an invalid object":"'"+A+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Hr(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Vn=Hr();function qn(A){return et(A?.[Vn])}function Xn(A){return Qr(this,arguments,function(){var e,i,n,s;return Rn(this,function(r){switch(r.label){case 0:e=A.getReader(),r.label=1;case 1:r.trys.push([1,,9,10]),r.label=2;case 2:return[4,he(e.read())];case 3:return i=r.sent(),n=i.value,s=i.done,s?[4,he(void 0)]:[3,5];case 4:return[2,r.sent()];case 5:return[4,he(n)];case 6:return[4,r.sent()];case 7:return r.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}})})}function Zn(A){return et(A?.getReader)}function Ie(A){if(A instanceof Z)return A;if(A!=null){if(Yn(A))return Lr(A);if(Jn(A))return Ur(A);if(Kn(A))return Tr(A);if(Wn(A))return zn(A);if(qn(A))return Or(A);if(Zn(A))return Pr(A)}throw jn(A)}function Lr(A){return new Z(function(t){var e=A[XA]();if(et(e.subscribe))return e.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Ur(A){return new Z(function(t){for(var e=0;e<A.length&&!t.closed;e++)t.next(A[e]);t.complete()})}function Tr(A){return new Z(function(t){A.then(function(e){t.closed||(t.next(e),t.complete())},function(e){return t.error(e)}).then(null,Hn)})}function Or(A){return new Z(function(t){var e,i;try{for(var n=ce(A),s=n.next();!s.done;s=n.next()){var r=s.value;if(t.next(r),t.closed)return}}catch(a){e={error:a}}finally{try{s&&!s.done&&(i=n.return)&&i.call(n)}finally{if(e)throw e.error}}t.complete()})}function zn(A){return new Z(function(t){Jr(A,t).catch(function(e){return t.error(e)})})}function Pr(A){return zn(Xn(A))}function Jr(A,t){var e,i,n,s;return dr(this,void 0,void 0,function(){var r,a;return Rn(this,function(g){switch(g.label){case 0:g.trys.push([0,5,6,11]),e=pr(A),g.label=1;case 1:return[4,e.next()];case 2:if(i=g.sent(),!!i.done)return[3,4];if(r=i.value,t.next(r),t.closed)return[2];g.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return a=g.sent(),n={error:a},[3,11];case 6:return g.trys.push([6,,9,10]),i&&!i.done&&(s=e.return)?[4,s.call(e)]:[3,8];case 7:g.sent(),g.label=8;case 8:return[3,10];case 9:if(n)throw n.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}})})}function Wt(A,t,e,i,n){i===void 0&&(i=0),n===void 0&&(n=!1);var s=t.schedule(function(){e(),n?A.add(this.schedule(null,i)):this.unsubscribe()},i);if(A.add(s),!n)return s}function $n(A,t){return t===void 0&&(t=0),ue(function(e,i){e.subscribe(aA(i,function(n){return Wt(i,A,function(){return i.next(n)},t)},function(){return Wt(i,A,function(){return i.complete()},t)},function(n){return Wt(i,A,function(){return i.error(n)},t)}))})}function ts(A,t){return t===void 0&&(t=0),ue(function(e,i){i.add(A.schedule(function(){return e.subscribe(i)},t))})}function Kr(A,t){return Ie(A).pipe(ts(t),$n(t))}function Yr(A,t){return Ie(A).pipe(ts(t),$n(t))}function Wr(A,t){return new Z(function(e){var i=0;return t.schedule(function(){i===A.length?e.complete():(e.next(A[i++]),e.closed||this.schedule())})})}function jr(A,t){return new Z(function(e){var i;return Wt(e,t,function(){i=A[Vn](),Wt(e,t,function(){var n,s,r;try{n=i.next(),s=n.value,r=n.done}catch(a){e.error(a);return}r?e.complete():e.next(s)},0,!0)}),function(){return et(i?.return)&&i.return()}})}function es(A,t){if(!A)throw new Error("Iterable cannot be null");return new Z(function(e){Wt(e,t,function(){var i=A[Symbol.asyncIterator]();Wt(e,t,function(){i.next().then(function(n){n.done?e.complete():e.next(n.value)})},0,!0)})})}function Vr(A,t){return es(Xn(A),t)}function qr(A,t){if(A!=null){if(Yn(A))return Kr(A,t);if(Jn(A))return Wr(A,t);if(Kn(A))return Yr(A,t);if(Wn(A))return es(A,t);if(qn(A))return jr(A,t);if(Zn(A))return Vr(A,t)}throw jn(A)}function lA(A,t){return t?qr(A,t):Ie(A)}function Xr(A){return!!A&&(A instanceof Z||et(A.lift)&&et(A.subscribe))}function zA(A,t){return ue(function(e,i){var n=0;e.subscribe(aA(i,function(s){i.next(A.call(t,s,n++))}))})}var Zr=Array.isArray;function zr(A,t){return Zr(t)?A.apply(void 0,Ge([],Fe(t))):A(t)}function $r(A){return zA(function(t){return zr(A,t)})}var ta=Array.isArray,ea=Object.getPrototypeOf,Aa=Object.prototype,ia=Object.keys;function na(A){if(A.length===1){var t=A[0];if(ta(t))return{args:t,keys:null};if(sa(t)){var e=ia(t);return{args:e.map(function(i){return t[i]}),keys:e}}}return{args:A,keys:null}}function sa(A){return A&&typeof A=="object"&&ea(A)===Aa}function oa(A,t){return A.reduce(function(e,i,n){return e[i]=t[n],e},{})}function gA(){for(var A=[],t=0;t<arguments.length;t++)A[t]=arguments[t];var e=Nr(A),i=Gr(A),n=na(A),s=n.args,r=n.keys;if(s.length===0)return lA([],e);var a=new Z(ra(s,e,r?function(g){return oa(r,g)}:ZA));return i?a.pipe($r(i)):a}function ra(A,t,e){return e===void 0&&(e=ZA),function(i){As(t,function(){for(var n=A.length,s=new Array(n),r=n,a=n,g=function(u){As(t,function(){var o=lA(A[u],t),l=!1;o.subscribe(aA(i,function(h){s[u]=h,l||(l=!0,a--),a||i.next(e(s.slice()))},function(){--r||i.complete()}))},i)},c=0;c<n;c++)g(c)},i)}}function As(A,t,e){A?Wt(e,A,t):t()}function aa(A){return new Z(function(t){Ie(A()).subscribe(t)})}function He(A,t){return ue(function(e,i){var n=0;e.subscribe(aA(i,function(s){return A.call(t,s,n++)&&i.next(s)}))})}function la(A){return ue(function(t,e){try{t.subscribe(e)}finally{e.add(A)}})}function is(A){A===void 0&&(A={});var t=A.connector,e=t===void 0?function(){return new te}:t,i=A.resetOnError,n=i===void 0?!0:i,s=A.resetOnComplete,r=s===void 0?!0:s,a=A.resetOnRefCountZero,g=a===void 0?!0:a;return function(c){var u,o,l,h=0,B=!1,E=!1,d=function(){o?.unsubscribe(),o=void 0},C=function(){d(),u=l=void 0,B=E=!1},w=function(){var m=u;C(),m?.unsubscribe()};return ue(function(m,b){h++,!E&&!B&&d();var M=l=l??e();b.add(function(){h--,h===0&&!E&&!B&&(o=$A(w,g))}),M.subscribe(b),!u&&h>0&&(u=new Ne({next:function(G){return M.next(G)},error:function(G){E=!0,d(),o=$A(C,n,G),M.error(G)},complete:function(){B=!0,d(),o=$A(C,r),M.complete()}}),Ie(m).subscribe(u))})(c)}}function $A(A,t){for(var e=[],i=2;i<arguments.length;i++)e[i-2]=arguments[i];if(t===!0){A();return}if(t!==!1){var n=new Ne({next:function(){n.unsubscribe(),A()}});return Ie(t.apply(void 0,Ge([],Fe(e)))).subscribe(n)}}function ga(A,t,e){var i,n,s,r,a=!1;return A&&typeof A=="object"?(i=A.bufferSize,r=i===void 0?1/0:i,n=A.windowTime,t=n===void 0?1/0:n,s=A.refCount,a=s===void 0?!1:s,e=A.scheduler):r=A??1/0,is({connector:function(){return new _r(r,t,e)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:a})}function ns(){return typeof window<"u"}function fe(){return typeof performance<"u"?performance.now():Date.now()}function Le(A){return 1e3/A}function jt(A){return A&&A instanceof Promise}function cA(A,t){if(A.length!==t.length)return!1;for(let e=0;e<A.length;e++){const i=A[e],n=t[e];if(typeof i=="object"&&i!==null){if(typeof n!="object"||n===null)return!1;if(Array.isArray(i)){if(!Array.isArray(n)||!cA(i,n))return!1}else if(!ss(i,n))return!1}else if(i!==n)return!1}return!0}function ss(A,t){const e=Object.keys(A),i=Object.keys(t);if(e.length!==i.length)return!1;for(let n of e)if(!t.hasOwnProperty(n)||!ca(A[n],t[n]))return!1;return!0}function ca(A,t){return A===t?!0:typeof A!=typeof t?!1:typeof A=="object"&&A!==null?Array.isArray(A)?Array.isArray(t)&&cA(A,t):ss(A,t):!1}function os(A){return{}.toString.call(A)==="[object Function]"}function hA(A){return typeof A=="object"&&A!=null&&!Array.isArray(A)&&A.constructor===Object}function rs(A){return A instanceof Z}function ti(A,t,e,i=!1){if(Object(A)!==A)return A;typeof t=="string"&&(t=t.split("."));let n=t.length;if(!n)return A;let s=A;for(let r=0;r<n-1;r++){let a=t[r],g=t[r+1],c=!isNaN(Number(g))&&isFinite(Number(g));(!s[a]||typeof s[a]!="object")&&(s[a]=c&&!i?[]:{}),s=s[a]}return s[t[n-1]]=e,A}function ha(A,t){const e=t.split(".");let i=A;for(let n of e){if(i[n]===void 0)return;i=i[n]}return i}function ua(A){console.log(A)}function ei(A){console.error(A)}function Ae(A,t){typeof t=="number"?A.set(t):Array.isArray(t)?A.set(t[0],t[1]):hA(t)&&"value"in t?A.set(t.value.x,t.value.y):A.set(t.x,t.y)}function as(A,t,e,i){const n=A-e,s=t-i;return Math.sqrt(n*n+s*s)}const Ia=Object.freeze(Object.defineProperty({__proto__:null,arrayEquals:cA,calculateDistance:as,error:ei,fps2ms:Le,get:ha,isBrowser:ns,isFunction:os,isObject:hA,isObservable:rs,isPromise:jt,log:ua,preciseNow:fe,set:ti,setObservablePoint:Ae},Symbol.toStringTag,{value:"Module"}));class uA{constructor(){this.boundKeys={},this.stop=!1,this._controlsOptions={},this.serverFps=60}start(){this.setupListeners(),this.interval=setInterval(()=>{this.preStep()},Le(this.serverFps??60))}destroy(){this.interval&&clearInterval(this.interval),this.cleanup()}bindKey(t,e,i,n){Array.isArray(t)||(t=[t]);const s=Object.assign({repeat:!1},i);t.forEach(r=>{this.boundKeys[r]={actionName:e,options:s,parameters:n}})}applyInput(t){const e=this.boundKeys[t];if(!e)return;const{repeat:i,keyDown:n}=e.options;if(n){let s=e.parameters;typeof s=="function"&&(s=s()),n(e)}}getControl(t){return this.boundKeys[t]}getControls(){return this.boundKeys}stopInputs(){this.stop=!0}listenInputs(){this.stop=!1}setInputs(t){if(t){this.boundKeys={};for(let e in t){const i=t[e],{bind:n}=i;let s=n;Array.isArray(s)||(s=[n]);for(let r of s)this.bindKey(r,e,i)}this._controlsOptions=t}}get options(){return this._controlsOptions}}var ls=(A=>(A.Break="break",A.Backspace="backspace",A.Tab="tab",A.Clear="clear",A.Enter="enter",A.Shift="shift",A.Ctrl="ctrl",A.Alt="alt",A.Pause="pause/break",A.CapsLock="caps lock",A.Escape="escape",A.Conversion="conversion",A.NonConversion="non-conversion",A.Space="space",A.PageUp="page up",A.PageDown="page down",A.End="end",A.Home="home",A[A.Left=4]="Left",A[A.Up=1]="Up",A[A.Right=2]="Right",A[A.Down=3]="Down",A.Select="select",A.Print="print",A.Execute="execute",A.PrintScreen="Print Screen",A.Insert="insert",A.Delete="delete",A.Zero="0",A.One="1",A.Two="2",A.Three="3",A.Four="4",A.Five="5",A.Six="6",A.Seven="7",A.Height="8",A.Nine="9",A.Equal="=",A.Semicolon="semicolon (firefox), equals",A.LessThan="<",A.Equals="equals (firefox)",A.Beta="ß",A.At="@",A.A="a",A.B="b",A.C="c",A.D="d",A.E="e",A.F="f",A.G="g",A.H="h",A.I="i",A.J="j",A.K="k",A.L="l",A.M="m",A.N="n",A.O="o",A.P="p",A.Q="q",A.R="r",A.S="s",A.T="t",A.U="u",A.V="v",A.W="w",A.X="x",A.Y="y",A.Z="z",A.SearchKey="Windows Key / Left ⌘ / Chromebook Search key",A.NumPad0="numpad 0",A.NumPad1="numpad 1",A.NumPad2="numpad 2",A.NumPad3="numpad 3",A.NumPad4="numpad 4",A.NumPad5="numpad 5",A.NumPad6="numpad 6",A.NumPad7="numpad 7",A.NumPad8="numpad 8",A.NumPad9="numpad 9",A.Multiply="multiply",A.Add="add",A.Subtract="subtract",A.DecimalPoint="decimal point",A.Divide="divide",A.F1="f1",A.F2="f2",A.F3="f3",A.F4="f4",A.F5="f5",A.F6="f6",A.F7="f7",A.F8="f8",A.F9="f9",A.F10="f10",A.F11="f11",A.F12="f12",A.F13="f13",A.F14="f14",A.F15="f15",A.F16="f16",A.F17="f17",A.F18="f18",A.F19="f19",A.F20="f20",A.F21="f21",A.F22="f22",A.F23="f23",A.F24="f24",A.NumLock="num lock",A.ScrollLock="scroll lock",A.CircumflexAccent="^",A.ExclamationMark="!",A.Hash="#",A.Dollar="$",A.AccentU="ù",A.PageBackward="page backward",A.PageForWard="page forward",A.Star="*",A.DecreaseVolume="decrease volume level",A.IncreaseVolume="increase volume level",A.Next="next",A.Previous="previous",A.Stop="stop",A.PlayPause="play/pause",A.Email="e-mail",A.SemiColon="semi-colon / ñ",A.EqualSign="equal sign",A.Comma="comma",A.Dash="dash",A.FowardSlach="forward slash / ç",A.GraveAccent="grave accent / ñ / æ",A.OpenBracket="open bracket",A.BackSlach="back slash",A.CloseBracket="close bracket / å",A.SingleQuote="single quote / ø",A.BackQuote="`",A.Altgr="altgr",A))(ls||{});const gs={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"},cs=(A=>{const t={};for(let e in A){const i=A[e];t[i]=e}return t})(gs);class hs extends uA{constructor(){super(...arguments),this.keyState={},this.lastKeyPressed=null,this.directionState={up:!1,down:!1,left:!1,right:!1}}setupListeners(){document.addEventListener("keydown",t=>{this.onKeyChange(t,!0)}),document.addEventListener("keyup",t=>{this.onKeyChange(t,!1)})}cleanup(){document.removeEventListener("keydown",t=>{this.onKeyChange(t,!0)}),document.removeEventListener("keyup",t=>{this.onKeyChange(t,!1)})}preStep(){if(this.stop)return;const t=this.getDirection();if(t!=="none"){const e=this.boundKeys[t];if(e){const{keyDown:i}=e.options;i&&this.applyInput(t)}}else{const e=Object.keys(this.boundKeys);for(let i of e)this.applyInput(i)}}applyInput(t){const e=this.keyState[t];if(!e)return;const{isDown:i,count:n}=e;if(i){const s=this.boundKeys[t];if(!s)return;const{repeat:r,keyDown:a}=s.options;if(r||n==0){let g=s.parameters;typeof g=="function"&&(g=g()),a&&a(s),this.keyState[t].count++}}}applyKeyDown(t){const e=cs[t],i=new Event("keydown");i.keyCode=e,this.onKeyChange(i,!0)}applyKeyUp(t){const e=cs[t],i=new Event("keyup");i.keyCode=e,this.onKeyChange(i,!1)}applyKeyPress(t){return new Promise(e=>{this.applyKeyDown(t),setTimeout(()=>{this.applyKeyUp(t),e()},200)})}onKeyChange(t,e){t=t||window.event;const i=gs[t.keyCode];if(i&&this.boundKeys[i]){if(this.keyState[i]==null&&(this.keyState[i]={count:0,isDown:!0}),this.keyState[i].isDown=e,!e){this.keyState[i].count=0;const{keyUp:n}=this.boundKeys[i].options;n&&n(this.boundKeys[i])}this.lastKeyPressed=e?t.keyCode:null}i&&this.updateDirectionState(i,e)}updateDirectionState(t,e){switch(t){case"up":this.directionState.up=e;break;case"down":this.directionState.down=e;break;case"left":this.directionState.left=e;break;case"right":this.directionState.right=e;break}}getDirection(){const{up:t,down:e,left:i,right:n}=this.directionState;return t&&i?"up_left":t&&n?"up_right":e&&i?"down_left":e&&n?"down_right":t?"up":e?"down":i?"left":n?"right":"none"}async applyControl(t,e){const i=this._controlsOptions[t];if(i){const n=Array.isArray(i.bind)?i.bind[0]:i.bind;e===void 0?await this.applyKeyPress(n):e?this.applyKeyDown(n):this.applyKeyUp(n)}}listenInputs(){super.listenInputs(),this.keyState={}}}var Dt={events:{},publish:function(t,e){this.events.hasOwnProperty(t)&&this.events[t].forEach(function(i){return i(e)})},subscribe:function(t,e){return this.events.hasOwnProperty(t)||(this.events[t]=[]),this.events[t].push(e),{unsubscribe:(function(){var i=this.events[t].indexOf(e);i!==-1&&this.events[t].splice(i,1)}).bind(this)}}},z={CONNECT:{NATIVE:"gamepadconnected",ALIAS:"connect"},DISCONNECT:{NATIVE:"gamepaddisconnected",ALIAS:"disconnect"},BUTTON_PRESS:{ALIAS:"button_press"},BUTTON_RELEASE:{ALIAS:"button_release"},AXIS_MOVEMENT:{ALIAS:"axis_move"}},Be={LEFT:{NAME:"left_stick",AXES:{X:0,Y:1}},RIGHT:{NAME:"right_stick",AXES:{X:2,Y:3}}},IA={LEFT:"left",RIGHT:"right",TOP:"top",BOTTOM:"bottom"},fa={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},Ba=.8,us=function(A){console.warn&&typeof console.warn=="function"?console.warn(A):console.log(A)},Ea=function(A,t){var e=[];return Object.keys(t).forEach(function(i){(t[i]===A||Array.isArray(t[i])&&t[i].indexOf(A)!==-1)&&e.push(i)}),e},Ca=function(A){return!!A&&!!A.type&&!!A.playEffect&&typeof A.playEffect=="function"||!1},da=function(){return!!window.navigator.getGamepads&&typeof window.navigator.getGamepads=="function"||!1},Et={loopStarted:!1,instances:{},buttonEvents:{joypad:[]},settings:{axisMovementThreshold:Ba},remove:function(t){return delete this.instances[t]},on:function(t,e){switch(t){case z.CONNECT.ALIAS:return Dt.subscribe(z.CONNECT.ALIAS,e);case z.DISCONNECT.ALIAS:return Dt.subscribe(z.DISCONNECT.ALIAS,e);case z.BUTTON_PRESS.ALIAS:return Dt.subscribe(z.BUTTON_PRESS.ALIAS,e);case z.BUTTON_RELEASE.ALIAS:return Dt.subscribe(z.BUTTON_RELEASE.ALIAS,e);case z.AXIS_MOVEMENT.ALIAS:return Dt.subscribe(z.AXIS_MOVEMENT.ALIAS,e)}},vibrate:function(t,e){var i=t.vibrationActuator,n=e||this.settings.vibration;if(Ca(i)){var s=i.type;return t.vibrationActuator.playEffect(s,n)}us("No vibration actuator interface found - https://developer.mozilla.org/en-US/docs/Web/API/GamepadHapticActuator")},set:function(t){var e=t.axisMovementThreshold,i=t.vibration,n=t.customButtonMapping,s=parseFloat(e);isNaN(s)||(this.settings.axisMovementThreshold=s),this.settings.vibration=i,this.settings.customButtonMapping=n},trigger:function(t,e){return Dt.publish(t,e)}},Qa=function(A){A.buttons.forEach(function(t,e){var i=Et.settings.customButtonMapping,n=i||fa,s=Ea(e,n),r=Et.buttonEvents;s&&s.length&&s.forEach(function(a){t.pressed?(r.joypad[A.index][a]||(r.joypad[A.index][a]={pressed:!0,hold:!1,released:!1}),r.joypad[A.index][a].button=t,r.joypad[A.index][a].index=e,r.joypad[A.index][a].gamepad=A):!t.pressed&&r.joypad[A.index][a]&&(r.joypad[A.index][a].released=!0,r.joypad[A.index][a].hold=!1)})})},pa=function(A){var t=function(r){return new CustomEvent(z.AXIS_MOVEMENT.ALIAS,{detail:r})},e=Et.settings.axisMovementThreshold,i=A.axes,n=i.length,s=n/2;i.forEach(function(r,a){if(Math.abs(r)>e){var g=null,c=null,u=r;g=a<s?Be.LEFT.NAME:Be.RIGHT.NAME,(a===Be.LEFT.AXES.X||a===Be.RIGHT.AXES.X)&&(c=r<0?IA.LEFT:IA.RIGHT),(a===Be.LEFT.AXES.Y||a===Be.RIGHT.AXES.Y)&&(c=r<0?IA.TOP:IA.BOTTOM);var o={gamepad:A,totalSticks:s,stickMoved:g,directionOfMovement:c,axisMovementValue:u,axis:a};return window.dispatchEvent(t(o))}})},ya=function(A,t){t[A].pressed?(Is(z.BUTTON_PRESS.ALIAS,t,A),t[A].pressed=!1,t[A].hold=!0,t[A].last_event=z.BUTTON_PRESS.ALIAS):t[A].hold||t[A].released&&t[A].last_event===z.BUTTON_PRESS.ALIAS&&(Is(z.BUTTON_RELEASE.ALIAS,t,A),delete t[A])},Ai={id:null,start:function(){var t=window.requestAnimationFrame||window.webkitRequestAnimationFrame,e=Et.buttonEvents,i=window.navigator.getGamepads();i=Array.prototype.slice.call(i),i.forEach(function(n,s){n&&(e.joypad[s]||(e.joypad[s]={}),Et.instances[s]=n,Qa(n),pa(n))}),e.joypad.forEach(function(n){n&&Object.keys(n).forEach(function(s){ya(s,n)})}),this.id=t(this.start.bind(this))},stop:function(t){var e=window.cancelAnimationFrame||window.webkitCancelAnimationFrame;return e(t)}},wa=function(){window.addEventListener(z.CONNECT.NATIVE,function(A){if(Dt.publish(z.CONNECT.ALIAS,A),!Et.loopStarted)return Et.loopStarted=!0,Ai.start()}),window.addEventListener(z.DISCONNECT.NATIVE,function(A){if(Dt.publish(z.DISCONNECT.ALIAS,A),Et.remove(A.gamepad.index),Et.buttonEvents.joypad[A.gamepad.index]=null,!Object.keys(Et.instances).length)return Et.loopStarted=!1,Ai.stop(Ai.id)}),window.addEventListener(z.BUTTON_PRESS.ALIAS,function(A){return Dt.publish(z.BUTTON_PRESS.ALIAS,A)}),window.addEventListener(z.BUTTON_RELEASE.ALIAS,function(A){return Dt.publish(z.BUTTON_RELEASE.ALIAS,A)}),window.addEventListener(z.AXIS_MOVEMENT.ALIAS,function(A){return Dt.publish(z.AXIS_MOVEMENT.ALIAS,A)})},Is=function(A,t,e){var i=function(g){return new CustomEvent(A,{detail:g})},n=t[e],s=n.index,r=n.gamepad,a={buttonName:e,button:t[e].button,index:s,gamepad:r};window.dispatchEvent(i(a))};wa(),da()?window.joypad=Et:(window.joypad={},us("Your browser does not support the Gamepad API - https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API"));const ii={button_0:"action",button_1:"back",button_9:"back"},ni={top:"up",bottom:"down",left:"left",right:"right"};class fs extends uA{constructor(){super(...arguments),this.gamepadEnabled=!0,this.gamepadConfig={enabled:!0,buttonMapping:ii,axisMapping:ni,axisThreshold:.5,moveInterval:400},this.gamepadMoving=!1,this.gamepadDirections={},this.gamepadAxisDate=0,this.gamepadMoveInterval=null,this.joypad=null,this.connectCallbacks=[],this.disconnectCallbacks=[],this.currentPower=0}setupListeners(){this.initGamepad()}cleanup(){this.gamepadMoveInterval&&(clearInterval(this.gamepadMoveInterval),this.gamepadMoveInterval=null)}initGamepad(){if(typeof window>"u")return;const t=window.joypad;if(!t){this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!1);return}this.joypad=t,this.joypad.on("connect",()=>this.handleGamepadConnect()),this.joypad.on("disconnect",()=>this.handleGamepadDisconnect()),this.joypad.on("button_press",e=>this.handleGamepadButtonPress(e)),this.joypad.on("axis_move",e=>this.handleGamepadAxisMove(e))}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(t=>t()))}handleGamepadDisconnect(){this.gamepadMoveInterval&&(clearInterval(this.gamepadMoveInterval),this.gamepadMoveInterval=null),this.gamepadMoving=!1,this.gamepadDirections={},this.gamepadAxisDate=0,this.currentPower=0,this.gamepadConfig.gamepadConnected&&this.gamepadConfig.gamepadConnected.set(!1),this.disconnectCallbacks.forEach(t=>t())}handleGamepadButtonPress(t){if(!this.gamepadEnabled||!this.gamepadConfig.enabled||this.stop)return;const{buttonName:e}=t.detail,n=(this.gamepadConfig.buttonMapping||ii)[e];n&&this.applyControl(n).catch(()=>{})}handleGamepadAxisMove(t){if(!this.gamepadEnabled||!this.gamepadConfig.enabled||this.stop)return;this.gamepadMoving=!0,this.gamepadAxisDate=Date.now();let e=t.detail.directionOfMovement;const i=this.gamepadConfig.axisMapping||ni;if(e==="top"?e=i.top||"up":e==="bottom"?e=i.bottom||"down":e==="left"?e=i.left||"left":e==="right"&&(e=i.right||"right"),this.joypad&&this.joypad.instances){const s=Object.values(this.joypad.instances);if(s.length>0){const r=s[0],a=r.axes?.[0]||0,g=r.axes?.[1]||0;this.currentPower=Math.min(1,Math.sqrt(a*a+g*g))}}this.gamepadDirections={[e]:!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){if(this.joypad&&this.joypad.instances){const t=Object.values(this.joypad.instances);if(t.length>0){const e=t[0],i=e.axes?.[0]||0,n=e.axes?.[1]||0;this.currentPower=Math.min(1,Math.sqrt(i*i+n*n))}}for(const t in this.gamepadDirections)this.gamepadDirections[t]&&this.applyControl(t,!0,{power:this.currentPower}).catch(()=>{})}}preStep(){if(this.stop)return;if(Date.now()-this.gamepadAxisDate>100&&this.gamepadMoving){const e=["up","down","left","right"];for(const i of e)this.gamepadDirections={},this.gamepadMoving=!1,this.applyControl(i,!1).catch(()=>{})}}updateGamepadConfig(t){this.gamepadConfig.onConnect&&this.offConnect(this.gamepadConfig.onConnect),this.gamepadConfig.onDisconnect&&this.offDisconnect(this.gamepadConfig.onDisconnect),this.gamepadConfig={enabled:t.enabled!==void 0?t.enabled:!0,buttonMapping:t.buttonMapping||ii,axisMapping:t.axisMapping||ni,axisThreshold:t.axisThreshold||.5,moveInterval:t.moveInterval||400,onConnect:t.onConnect,onDisconnect:t.onDisconnect,gamepadConnected:t.gamepadConnected},this.gamepadConfig.onConnect&&this.onConnect(this.gamepadConfig.onConnect),this.gamepadConfig.onDisconnect&&this.onDisconnect(this.gamepadConfig.onDisconnect)}extractGamepadConfig(t){t.gamepad&&this.updateGamepadConfig(t.gamepad)}getGamepadConfig(){return this.gamepadConfig}async applyControl(t,e,i){if(!this._controlsOptions[t])return;const s=Object.keys(this.boundKeys);for(const r of s){const a=this.boundKeys[r];if(a.actionName===String(t)){if(e===void 0){if(a.options.keyDown){let g=i??a.parameters;typeof g=="function"&&(g=g()),a.options.keyDown(a,g)}return new Promise(g=>{setTimeout(()=>{if(a.options.keyUp){let c=i??a.parameters;typeof c=="function"&&(c=c()),a.options.keyUp(a,c)}g()},200)})}else if(e){if(a.options.keyDown){let g=i??a.parameters;typeof g=="function"&&(g=g()),a.options.keyDown(a,g)}}else if(a.options.keyUp){let g=i??a.parameters;typeof g=="function"&&(g=g()),a.options.keyUp(a,g)}break}}}setInputs(t){super.setInputs(t),this.extractGamepadConfig(t)}onConnect(t){this.connectCallbacks.push(t)}onDisconnect(t){this.disconnectCallbacks.push(t)}offConnect(t){const e=this.connectCallbacks.indexOf(t);e>-1&&this.connectCallbacks.splice(e,1)}offDisconnect(t){const e=this.disconnectCallbacks.indexOf(t);e>-1&&this.disconnectCallbacks.splice(e,1)}isConnected(){return this.gamepadMoveInterval!==null}reinit(){this.joypad||this.initGamepad()}}const si={top:"up",bottom:"down",left:"left",right:"right",top_left:["up","left"],top_right:["up","right"],bottom_left:["down","left"],bottom_right:["down","right"]};class Bs extends uA{constructor(){super(...arguments),this.joystickEnabled=!0,this.joystickConfig={enabled:!0,directionMapping:si,moveInterval:50,threshold:.1},this.joystickMoving=!1,this.joystickDirections={},this.joystickLastUpdate=0,this.joystickMoveInterval=null,this.currentPower=0}setupListeners(){}cleanup(){this.joystickMoveInterval&&(clearInterval(this.joystickMoveInterval),this.joystickMoveInterval=null)}preStep(){this.stop}handleJoystickChange(t){if(!this.joystickEnabled||!this.joystickConfig.enabled||this.stop)return;if(this.joystickLastUpdate=Date.now(),this.currentPower=t.power,t.power<(this.joystickConfig.threshold||.1)){this.stopAllMovements();return}const e=this.joystickConfig.directionMapping||si,i=t.direction,n=e[i];if(!n){this.stopAllMovements();return}const s=Array.isArray(n)?n:[n],r=this.joystickDirections,a={};s.forEach(u=>{a[u]=!0});const g=new Set([...Object.keys(this.joystickDirections),...Object.keys(a)]);for(const u of g){const o=this.joystickDirections[u],l=a[u]||!1;o&&!l&&this.applyControl(u,!1).catch(()=>{})}this.joystickDirections={...a},this.joystickMoving=!0;const c=s.filter(u=>!r[u]);for(const u of c)this.applyControl(u,!0,{power:t.power}).catch(()=>{});this.joystickMoveInterval||(this.joystickMoveInterval=setInterval(()=>{this.processJoystickMovement()},this.joystickConfig.moveInterval||50))}handleJoystickStart(){!this.joystickEnabled||!this.joystickConfig.enabled||this.stop}handleJoystickEnd(){!this.joystickEnabled||!this.joystickConfig.enabled||this.stopAllMovements()}stopAllMovements(){this.joystickMoveInterval&&(clearInterval(this.joystickMoveInterval),this.joystickMoveInterval=null);const t=Object.keys(this.joystickDirections);for(const e of t)this.applyControl(e,!1).catch(()=>{});this.joystickDirections={},this.joystickMoving=!1,this.currentPower=0}processJoystickMovement(){if(this.joystickMoving&&!this.stop)for(const t in this.joystickDirections)this.joystickDirections[t]&&this.applyControl(t,!0,{power:this.currentPower}).catch(()=>{})}updateJoystickConfig(t){this.joystickConfig={enabled:t.enabled!==void 0?t.enabled:!0,directionMapping:t.directionMapping||si,moveInterval:t.moveInterval||50,threshold:t.threshold||.1}}extractJoystickConfig(t){t.joystick&&this.updateJoystickConfig(t.joystick)}getJoystickConfig(){return this.joystickConfig}async applyControl(t,e,i){if(!this._controlsOptions[t])return;const s=Object.keys(this.boundKeys);for(const r of s){const a=this.boundKeys[r];if(a.actionName===String(t)){if(e===void 0){if(a.options.keyDown){let g=i??a.parameters;typeof g=="function"&&(g=g()),a.options.keyDown(a,g)}return new Promise(g=>{setTimeout(()=>{if(a.options.keyUp){let c=i??a.parameters;typeof c=="function"&&(c=c()),a.options.keyUp(a,c)}g()},200)})}else if(e){if(a.options.keyDown){let g=i??a.parameters;typeof g=="function"&&(g=g()),a.options.keyDown(a,g)}}else if(a.options.keyUp){let g=i??a.parameters;typeof g=="function"&&(g=g()),a.options.keyUp(a,g)}break}}}setInputs(t){super.setInputs(t),this.extractJoystickConfig(t)}isActive(){return this.joystickMoving}}const oi={};class vt{}function bt(A,t){oi[A]=t}function ri(A,t){if(!oi[t])return null;const e=new oi[t];return e.onInit?.(A),e}var ma=Object.defineProperty,$=(A,t)=>ma(A,"name",{value:t,configurable:!0}),Ue=(xe=class extends ee{_items=[];constructor(t=[]){super({type:"init",items:t}),this.createProxy(t)}createProxy(t){this._items=new Proxy(t,{get:$((e,i,n)=>{const s=e[i];return typeof s=="function"?(...r)=>{let a="update",g,c=!1,u=[],o=!0;switch(i){case"push":g=e.length,a="add",c=!0;break;case"pop":g=e.length-1,a="remove",c=!0;break;case"unshift":g=0,a="add",c=!0;break;case"shift":g=0,a="remove",c=!0;break;case"splice":g=r[0];const h=r[1],B=r.slice(2);u=B,h>0&&B.length===0?a="remove":h===0&&B.length>0?a="add":h===0&&B.length===0?o=!1:a="update",c=!0;break}const l=s.apply(e,r);return c&&o&&(i==="splice"?this.next({type:a,index:g,items:u}):this.next({type:a,index:g,items:r})),l}:Reflect.get(e,i,n)},"get"),set:$((e,i,n)=>{const s=isNaN(Number(i))?void 0:Number(i);return e[i]=n,this.next({type:"update",index:s,items:[n]}),!0},"set")})}get items(){return this._items}set items(t){this.createProxy(t),this.next({type:"reset",items:t})}},$(xe,"ArraySubject"),xe),Da=$(A=>"_items"in A,"isArraySubject"),Te=(ke=class extends ee{_obj;constructor(t={}){super({type:"init",value:t}),this.createProxy(t)}createProxy(t){this._obj=new Proxy(t,{get:$((e,i,n)=>Reflect.get(e,i,n),"get"),set:$((e,i,n,s)=>{const r=i,a=r in e?"update":"add";return e[r]=n,this.next({type:a,key:r,value:n}),!0},"set"),deleteProperty:$((e,i)=>{const n=i;if(n in e){const s=e[n];return delete e[n],this.next({type:"remove",key:n,value:s}),!0}return!1},"deleteProperty")})}get obj(){return this._obj}set obj(t){this.createProxy(t),this.next({type:"reset",value:t})}},$(ke,"ObjectSubject"),ke),va=$(A=>"_obj"in A,"isObjectSubject"),ba=$(()=>{const A="__REACTIVE_STORE__";if(typeof globalThis<"u")return globalThis[A]||(globalThis[A]={currentDependencyTracker:null,currentSubscriptionsTracker:null}),globalThis[A];let t;if(typeof window<"u")t=window;else if(typeof process<"u"&&process.versions&&process.versions.node)t=Function("return this")();else if(typeof self<"u")t=self;else return console.warn("Unable to find global object, using local instance"),{currentDependencyTracker:null,currentSubscriptionsTracker:null};return t[A]||(t[A]={currentDependencyTracker:null,currentSubscriptionsTracker:null}),t[A]},"getGlobalReactiveStore"),at=ba(),ai=$(A=>{at.currentDependencyTracker&&at.currentDependencyTracker(A)},"trackDependency");function Y(A,t){let e;Array.isArray(A)?e=new Ue(A):typeof A=="object"&&A!==null?e=new Te(A):e=new ee(A);const i=$(()=>e instanceof Ue?e.items:e instanceof Te?e.obj:e.value,"getValue"),n=$(function(){return ai(n),i()},"fn");return n.set=s=>{const r=i();let a=!0;t?.equal?a=!t.equal(r,s):a=r!==s,a&&(e instanceof Ue?e.items=s:e instanceof Te?e.obj=s:e.next(s))},n._isFrozen=!1,n.freeze=()=>{n._isFrozen=!0},n.unfreeze=()=>{n._isFrozen=!1,e instanceof Ue?e.next({type:"init",items:e.items}):e instanceof Te?e.next({type:"init",value:e.obj}):e.next(e.value)},n.mutate=s=>{const r=i();s(r)},n.update=s=>{const r=s(i());n.set(r)},n.observable=e.asObservable().pipe(He(()=>!n._isFrozen)),n._subject=e,n}$(Y,"signal");function N(A){return!!(A&&A.observable)}$(N,"isSignal");function Ee(A){return N(A)&&!!A.dependencies}$(Ee,"isComputed");function Ct(A,t){const e=new Set;let i=!0,n;const s=at.currentDependencyTracker;at.currentDependencyTracker=c=>{e.add(c)},n=A(),A.isEffect&&(t=n),at.currentDependencyTracker=s;const r=[...e].map(c=>{if(Ee(c)&&"dependencies"in c){const u=c;if(u.dependencies.size===0)return new ee(u()).asObservable()}return c.observable}),a=gA(r).pipe(He(()=>!i),zA(()=>A()),la(()=>t?.())),g=$(function(){return ai(g),n},"fn");return g.observable=a,g.subscription=a.subscribe(c=>{n=c}),g.dependencies=e,at.currentSubscriptionsTracker?.(g.subscription),i=!1,g}$(Ct,"computed");function Es(A,t){const e=new Set;let i=!0,n,s,r,a,g,c,u=!1,o,l=0,h=null;if(typeof A=="function")s=A,g=t?.equal;else{const m=A;if(r=m.source,a=m.computation,g=m.equal,typeof r=="function"&&!N(r)){const b=r;s=$(()=>{const M=b();if(a.length>1){const G=a(M,c);return c={source:M,value:G},G}else{const G=a(M);return c={source:M,value:G},G}},"computeFunction")}else{const b=r;s=$(()=>{const M=b();if(a.length>1){const G=a(M,c);return c={source:M,value:G},G}else{const G=a(M);return c={source:M,value:G},G}},"computeFunction")}}const B=at.currentDependencyTracker;at.currentDependencyTracker=m=>{e.add(m)},r&&typeof r=="function"&&!N(r)||r&&N(r)&&e.add(r),n=s(),at.currentDependencyTracker=B;const E=new ee(n),d=[...e].map(m=>{if(Ee(m)&&"dependencies"in m){const b=m;if(b.dependencies.size===0)return new ee(b()).asObservable()}return m.observable});let C;d.length>0?C=gA(d).pipe(He(()=>!i),zA(()=>{const m=s();return g?g(n,m)||(n=m,u=!1):n!==m&&(n=m,u=!1),n})):C=E.asObservable().pipe(He(()=>!i));const w=$(function(){if(ai(w),u&&e.size>0){if(h!==l){const m=s();return u=!1,o=void 0,n=m,h=null,m}return o}return u?o:(e.size===0&&(n=s()),n)},"fn");return w.observable=new Z(m=>{const b=C.subscribe(G=>{e.size>0&&(l++,u=!1,h=null),n=G,m.next(G)});let M;return e.size===0&&(M=E.pipe(He(()=>!i)).subscribe(G=>{m.next(G)})),m.next(n),()=>{b.unsubscribe(),M&&M.unsubscribe()}}),w.subscription=w.observable.subscribe(()=>{}),w.dependencies=e,w._subject=E,w.set=m=>{u||(h=l,a&&r&&(c={source:li(()=>{if(typeof r=="function"){const M=r;return N(M)?M():r()}return r()}),value:m})),u=!0,o=m,n=m,E.next(m)},at.currentSubscriptionsTracker?.(w.subscription),i=!1,w}$(Es,"linkedSignal");function li(A){const t=at.currentDependencyTracker,e=at.currentSubscriptionsTracker;at.currentDependencyTracker=null,at.currentSubscriptionsTracker=null;try{return A()}finally{at.currentDependencyTracker=t,at.currentSubscriptionsTracker=e}}$(li,"untracked");function nt(A){return A.isEffect=!0,Ct(A)}$(nt,"effect");function Cs(A,t){var e={};for(var i in A)Object.prototype.hasOwnProperty.call(A,i)&&t.indexOf(i)<0&&(e[i]=A[i]);if(A!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(A);n<i.length;n++)t.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(A,i[n])&&(e[i[n]]=A[i[n]]);return e}var ds=function(){};const gi=(A,t,e)=>Math.min(Math.max(e,A),t),ci=.001,Sa=.01,xa=10,ka=.05,Ma=1;function Ra({duration:A=800,bounce:t=.25,velocity:e=0,mass:i=1}){let n,s,r=1-t;r=gi(ka,Ma,r),A=gi(Sa,xa,A/1e3),r<1?(n=c=>{const u=c*r,o=u*A,l=u-e,h=hi(c,r),B=Math.exp(-o);return ci-l/h*B},s=c=>{const o=c*r*A,l=o*e+e,h=Math.pow(r,2)*Math.pow(c,2)*A,B=Math.exp(-o),E=hi(Math.pow(c,2),r);return(-n(c)+ci>0?-1:1)*((l-h)*B)/E}):(n=c=>{const u=Math.exp(-c*A),o=(c-e)*A+1;return-ci+u*o},s=c=>{const u=Math.exp(-c*A),o=(e-c)*(A*A);return u*o});const a=5/A,g=Fa(n,s,a);if(A=A*1e3,isNaN(g))return{stiffness:100,damping:10,duration:A};{const c=Math.pow(g,2)*i;return{stiffness:c,damping:r*2*Math.sqrt(i*c),duration:A}}}const _a=12;function Fa(A,t,e){let i=e;for(let n=1;n<_a;n++)i=i-A(i)/t(i);return i}function hi(A,t){return A*Math.sqrt(1-t*t)}const Ga=["duration","bounce"],Na=["stiffness","damping","mass"];function Qs(A,t){return t.some(e=>A[e]!==void 0)}function Ha(A){let t=Object.assign({velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1},A);if(!Qs(A,Na)&&Qs(A,Ga)){const e=Ra(A);t=Object.assign(Object.assign(Object.assign({},t),e),{velocity:0,mass:1}),t.isResolvedFromDuration=!0}return t}function ui(A){var{from:t=0,to:e=1,restSpeed:i=2,restDelta:n}=A,s=Cs(A,["from","to","restSpeed","restDelta"]);const r={done:!1,value:t};let{stiffness:a,damping:g,mass:c,velocity:u,duration:o,isResolvedFromDuration:l}=Ha(s),h=ps,B=ps;function E(){const d=u?-(u/1e3):0,C=e-t,w=g/(2*Math.sqrt(a*c)),m=Math.sqrt(a/c)/1e3;if(n===void 0&&(n=Math.min(Math.abs(e-t)/100,.4)),w<1){const b=hi(m,w);h=M=>{const G=Math.exp(-w*m*M);return e-G*((d+w*m*C)/b*Math.sin(b*M)+C*Math.cos(b*M))},B=M=>{const G=Math.exp(-w*m*M);return w*m*G*(Math.sin(b*M)*(d+w*m*C)/b+C*Math.cos(b*M))-G*(Math.cos(b*M)*(d+w*m*C)-b*C*Math.sin(b*M))}}else if(w===1)h=b=>e-Math.exp(-m*b)*(C+(d+m*C)*b);else{const b=m*Math.sqrt(w*w-1);h=M=>{const G=Math.exp(-w*m*M),O=Math.min(b*M,300);return e-G*((d+w*m*C)*Math.sinh(O)+b*C*Math.cosh(O))/b}}}return E(),{next:d=>{const C=h(d);if(l)r.done=d>=o;else{const w=B(d)*1e3,m=Math.abs(w)<=i,b=Math.abs(e-C)<=n;r.done=m&&b}return r.value=r.done?e:C,r},flipTarget:()=>{u=-u,[t,e]=[e,t],E()}}}ui.needsInterpolation=(A,t)=>typeof A=="string"||typeof t=="string";const ps=A=>0,ys=(A,t,e)=>{const i=t-A;return i===0?1:(e-A)/i},Ii=(A,t,e)=>-e*A+e*t+A,ws=(A,t)=>e=>Math.max(Math.min(e,t),A),Oe=A=>A%1?Number(A.toFixed(5)):A,fA=/(-)?([\d]*\.?[\d])+/g,fi=/(#[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,La=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2}(-?[\d\.]+%?)\s*[\,\/]?\s*[\d\.]*%?\))$/i;function Pe(A){return typeof A=="string"}const BA={test:A=>typeof A=="number",parse:parseFloat,transform:A=>A},ms=Object.assign(Object.assign({},BA),{transform:ws(0,1)});Object.assign(Object.assign({},BA),{default:1});const Je=(A=>({test:t=>Pe(t)&&t.endsWith(A)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${A}`}))("%");Object.assign(Object.assign({},Je),{parse:A=>Je.parse(A)/100,transform:A=>Je.transform(A*100)});const Bi=(A,t)=>e=>!!(Pe(e)&&La.test(e)&&e.startsWith(A)||t&&Object.prototype.hasOwnProperty.call(e,t)),Ds=(A,t,e)=>i=>{if(!Pe(i))return i;const[n,s,r,a]=i.match(fA);return{[A]:parseFloat(n),[t]:parseFloat(s),[e]:parseFloat(r),alpha:a!==void 0?parseFloat(a):1}},ie={test:Bi("hsl","hue"),parse:Ds("hue","saturation","lightness"),transform:({hue:A,saturation:t,lightness:e,alpha:i=1})=>"hsla("+Math.round(A)+", "+Je.transform(Oe(t))+", "+Je.transform(Oe(e))+", "+Oe(ms.transform(i))+")"},Ua=ws(0,255),Ei=Object.assign(Object.assign({},BA),{transform:A=>Math.round(Ua(A))}),Vt={test:Bi("rgb","red"),parse:Ds("red","green","blue"),transform:({red:A,green:t,blue:e,alpha:i=1})=>"rgba("+Ei.transform(A)+", "+Ei.transform(t)+", "+Ei.transform(e)+", "+Oe(ms.transform(i))+")"};function Ta(A){let t="",e="",i="",n="";return A.length>5?(t=A.substr(1,2),e=A.substr(3,2),i=A.substr(5,2),n=A.substr(7,2)):(t=A.substr(1,1),e=A.substr(2,1),i=A.substr(3,1),n=A.substr(4,1),t+=t,e+=e,i+=i,n+=n),{red:parseInt(t,16),green:parseInt(e,16),blue:parseInt(i,16),alpha:n?parseInt(n,16)/255:1}}const Ci={test:Bi("#"),parse:Ta,transform:Vt.transform},EA={test:A=>Vt.test(A)||Ci.test(A)||ie.test(A),parse:A=>Vt.test(A)?Vt.parse(A):ie.test(A)?ie.parse(A):Ci.parse(A),transform:A=>Pe(A)?A:A.hasOwnProperty("red")?Vt.transform(A):ie.transform(A)},vs="${c}",bs="${n}";function Oa(A){var t,e,i,n;return isNaN(A)&&Pe(A)&&((e=(t=A.match(fA))===null||t===void 0?void 0:t.length)!==null&&e!==void 0?e:0)+((n=(i=A.match(fi))===null||i===void 0?void 0:i.length)!==null&&n!==void 0?n:0)>0}function Ss(A){typeof A=="number"&&(A=`${A}`);const t=[];let e=0;const i=A.match(fi);i&&(e=i.length,A=A.replace(fi,vs),t.push(...i.map(EA.parse)));const n=A.match(fA);return n&&(A=A.replace(fA,bs),t.push(...n.map(BA.parse))),{values:t,numColors:e,tokenised:A}}function xs(A){return Ss(A).values}function ks(A){const{values:t,numColors:e,tokenised:i}=Ss(A),n=t.length;return s=>{let r=i;for(let a=0;a<n;a++)r=r.replace(a<e?vs:bs,a<e?EA.transform(s[a]):Oe(s[a]));return r}}const Pa=A=>typeof A=="number"?0:A;function Ja(A){const t=xs(A);return ks(A)(t.map(Pa))}const Ms={test:Oa,parse:xs,createTransformer:ks,getAnimatableNone:Ja};function di(A,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<.16666666666666666?A+(t-A)*6*e:e<.5?t:e<.6666666666666666?A+(t-A)*(.6666666666666666-e)*6:A}function Rs({hue:A,saturation:t,lightness:e,alpha:i}){A/=360,t/=100,e/=100;let n=0,s=0,r=0;if(!t)n=s=r=e;else{const a=e<.5?e*(1+t):e+t-e*t,g=2*e-a;n=di(g,a,A+.3333333333333333),s=di(g,a,A),r=di(g,a,A-.3333333333333333)}return{red:Math.round(n*255),green:Math.round(s*255),blue:Math.round(r*255),alpha:i}}const Ka=(A,t,e)=>{const i=A*A,n=t*t;return Math.sqrt(Math.max(0,e*(n-i)+i))},Ya=[Ci,Vt,ie],_s=A=>Ya.find(t=>t.test(A)),Fs=(A,t)=>{let e=_s(A),i=_s(t),n=e.parse(A),s=i.parse(t);e===ie&&(n=Rs(n),e=Vt),i===ie&&(s=Rs(s),i=Vt);const r=Object.assign({},n);return a=>{for(const g in r)g!=="alpha"&&(r[g]=Ka(n[g],s[g],a));return r.alpha=Ii(n.alpha,s.alpha,a),e.transform(r)}},Wa=A=>typeof A=="number",ja=(A,t)=>e=>t(A(e)),Gs=(...A)=>A.reduce(ja);function Ns(A,t){return Wa(A)?e=>Ii(A,t,e):EA.test(A)?Fs(A,t):Us(A,t)}const Hs=(A,t)=>{const e=[...A],i=e.length,n=A.map((s,r)=>Ns(s,t[r]));return s=>{for(let r=0;r<i;r++)e[r]=n[r](s);return e}},Va=(A,t)=>{const e=Object.assign(Object.assign({},A),t),i={};for(const n in e)A[n]!==void 0&&t[n]!==void 0&&(i[n]=Ns(A[n],t[n]));return n=>{for(const s in i)e[s]=i[s](n);return e}};function Ls(A){const t=Ms.parse(A),e=t.length;let i=0,n=0,s=0;for(let r=0;r<e;r++)i||typeof t[r]=="number"?i++:t[r].hue!==void 0?s++:n++;return{parsed:t,numNumbers:i,numRGB:n,numHSL:s}}const Us=(A,t)=>{const e=Ms.createTransformer(t),i=Ls(A),n=Ls(t);return i.numHSL===n.numHSL&&i.numRGB===n.numRGB&&i.numNumbers>=n.numNumbers?Gs(Hs(i.parsed,n.parsed),e):r=>`${r>0?t:A}`},qa=(A,t)=>e=>Ii(A,t,e);function Xa(A){if(typeof A=="number")return qa;if(typeof A=="string")return EA.test(A)?Fs:Us;if(Array.isArray(A))return Hs;if(typeof A=="object")return Va}function Za(A,t,e){const i=[],n=e||Xa(A[0]),s=A.length-1;for(let r=0;r<s;r++){let a=n(A[r],A[r+1]);if(t){const g=Array.isArray(t)?t[r]:t;a=Gs(g,a)}i.push(a)}return i}function za([A,t],[e]){return i=>e(ys(A,t,i))}function $a(A,t){const e=A.length,i=e-1;return n=>{let s=0,r=!1;if(n<=A[0]?r=!0:n>=A[i]&&(s=i-1,r=!0),!r){let g=1;for(;g<e&&!(A[g]>n||g===i);g++);s=g-1}const a=ys(A[s],A[s+1],n);return t[s](a)}}function Ts(A,t,{clamp:e=!0,ease:i,mixer:n}={}){const s=A.length;ds(s===t.length),ds(!i||!Array.isArray(i)||i.length===s-1),A[0]>A[s-1]&&(A=[].concat(A),t=[].concat(t),A.reverse(),t.reverse());const r=Za(t,i,n),a=s===2?za(A,r):$a(A,r);return e?g=>a(gi(A[0],A[s-1],g)):a}const CA=A=>t=>1-A(1-t),Qi=A=>t=>t<=.5?A(2*t)/2:(2-A(2*(1-t)))/2,tl=A=>t=>Math.pow(t,A),Os=A=>t=>t*t*((A+1)*t-A),el=A=>{const t=Os(A);return e=>(e*=2)<1?.5*t(e):.5*(2-Math.pow(2,-10*(e-1)))},Ps=1.525,Al=4/11,il=8/11,nl=9/10,sl=A=>A,pi=tl(2),ol=CA(pi),Js=Qi(pi),Ks=A=>1-Math.sin(Math.acos(A)),Ys=CA(Ks),rl=Qi(Ys),yi=Os(Ps),al=CA(yi),ll=Qi(yi),gl=el(Ps),cl=4356/361,hl=35442/1805,ul=16061/1805,dA=A=>{if(A===1||A===0)return A;const t=A*A;return A<Al?7.5625*t:A<il?9.075*t-9.9*A+3.4:A<nl?cl*t-hl*A+ul:10.8*A*A-20.52*A+10.72},Il=CA(dA),fl=A=>A<.5?.5*(1-dA(1-A*2)):.5*dA(A*2-1)+.5;function Bl(A,t){return A.map(()=>t||Js).splice(0,A.length-1)}function El(A){const t=A.length;return A.map((e,i)=>i!==0?i/(t-1):0)}function Cl(A,t){return A.map(e=>e*t)}function QA({from:A=0,to:t=1,ease:e,offset:i,duration:n=300}){const s={done:!1,value:A},r=Array.isArray(t)?t:[A,t],a=Cl(i&&i.length===r.length?i:El(r),n);function g(){return Ts(a,r,{ease:Array.isArray(e)?e:Bl(r,e)})}let c=g();return{next:u=>(s.value=c(u),s.done=u>=n,s),flipTarget:()=>{r.reverse(),c=g()}}}function dl({velocity:A=0,from:t=0,power:e=.8,timeConstant:i=350,restDelta:n=.5,modifyTarget:s}){const r={done:!1,value:t};let a=e*A;const g=t+a,c=s===void 0?g:s(g);return c!==g&&(a=c-t),{next:u=>{const o=-a*Math.exp(-u/i);return r.done=!(o>n||o<-n),r.value=r.done?c:c+o,r},flipTarget:()=>{}}}const Ws={keyframes:QA,spring:ui,decay:dl};function Ql(A){if(Array.isArray(A.to))return QA;if(Ws[A.type])return Ws[A.type];const t=new Set(Object.keys(A));return t.has("ease")||t.has("duration")&&!t.has("dampingRatio")?QA:t.has("dampingRatio")||t.has("stiffness")||t.has("mass")||t.has("damping")||t.has("restSpeed")||t.has("restDelta")?ui:QA}const js=1/60*1e3,pl=typeof performance<"u"?()=>performance.now():()=>Date.now(),Vs=typeof window<"u"?A=>window.requestAnimationFrame(A):A=>setTimeout(()=>A(pl()),js);function yl(A){let t=[],e=[],i=0,n=!1,s=!1;const r=new WeakSet,a={schedule:(g,c=!1,u=!1)=>{const o=u&&n,l=o?t:e;return c&&r.add(g),l.indexOf(g)===-1&&(l.push(g),o&&n&&(i=t.length)),g},cancel:g=>{const c=e.indexOf(g);c!==-1&&e.splice(c,1),r.delete(g)},process:g=>{if(n){s=!0;return}if(n=!0,[t,e]=[e,t],e.length=0,i=t.length,i)for(let c=0;c<i;c++){const u=t[c];u(g),r.has(u)&&(a.schedule(u),A())}n=!1,s&&(s=!1,a.process(g))}};return a}const wl=40;let wi=!0,Ke=!1,mi=!1;const Ye={delta:0,timestamp:0},We=["read","update","preRender","render","postRender"],pA=We.reduce((A,t)=>(A[t]=yl(()=>Ke=!0),A),{}),ml=We.reduce((A,t)=>{const e=pA[t];return A[t]=(i,n=!1,s=!1)=>(Ke||bl(),e.schedule(i,n,s)),A},{}),Dl=We.reduce((A,t)=>(A[t]=pA[t].cancel,A),{});We.reduce((A,t)=>(A[t]=()=>pA[t].process(Ye),A),{});const vl=A=>pA[A].process(Ye),qs=A=>{Ke=!1,Ye.delta=wi?js:Math.max(Math.min(A-Ye.timestamp,wl),1),Ye.timestamp=A,mi=!0,We.forEach(vl),mi=!1,Ke&&(wi=!1,Vs(qs))},bl=()=>{Ke=!0,wi=!0,mi||Vs(qs)};function Xs(A,t,e=0){return A-t-e}function Sl(A,t,e=0,i=!0){return i?Xs(t+-A,t,e):t-(A-t)+e}function xl(A,t,e,i){return i?A>=t+e:A<=-e}const kl=A=>{const t=({delta:e})=>A(e);return{start:()=>ml.update(t,!0),stop:()=>Dl.update(t)}};function Zs(A){var t,e,{from:i,autoplay:n=!0,driver:s=kl,elapsed:r=0,repeat:a=0,repeatType:g="loop",repeatDelay:c=0,onPlay:u,onStop:o,onComplete:l,onRepeat:h,onUpdate:B}=A,E=Cs(A,["from","autoplay","driver","elapsed","repeat","repeatType","repeatDelay","onPlay","onStop","onComplete","onRepeat","onUpdate"]);let{to:d}=E,C,w=0,m=E.duration,b,M=!1,G=!0,O;const K=Ql(E);!((e=(t=K).needsInterpolation)===null||e===void 0)&&e.call(t,i,d)&&(O=Ts([0,100],[i,d],{clamp:!1}),i=0,d=100);const H=K(Object.assign(Object.assign({},E),{from:i,to:d}));function T(){w++,g==="reverse"?(G=w%2===0,r=Sl(r,m,c,G)):(r=Xs(r,m,c),g==="mirror"&&H.flipTarget()),M=!1,h&&h()}function W(){C.stop(),l&&l()}function At(tt){if(G||(tt=-tt),r+=tt,!M){const It=H.next(Math.max(0,r));b=It.value,O&&(b=O(b)),M=G?It.done:r<=0}B?.(b),M&&(w===0&&(m??(m=r)),w<a?xl(r,m,c,G)&&T():W())}function ot(){u?.(),C=s(At),C.start()}return n&&ot(),{stop:()=>{o?.(),C.stop()}}}const Ml=A=>{if(typeof A=="number")return t=>Math.round(t/A)*A;{let t=0;const e=A.length;return i=>{let n=Math.abs(A[0]-i);for(t=1;t<e;t++){const s=A[t],r=Math.abs(s-i);if(r===0)return s;if(r>n)return A[t-1];if(t===e-1)return s;n=r}}}};function Rl(){return globalThis.__CANVAS_ENGINE_TICK__}function Ce(A){return A.animatedState!==void 0}function Di(A,t={}){const e={current:A,start:A,end:A},i=20;let n=null,s=!1;const r=Y(A),a=Y(e);nt(()=>{const u=a();r.set(u.current)});function g(u,o={}){if(u===void 0)return a();const l=a(),h={current:l.current,start:l.current,end:u};a.set(h),n&&(n.stop(),n=null),s=!1;const B={...t,...o},E=B.duration??i,d=B.ease??(b=>b);B.tick||Rl();const C=l.current,w=u,m=o.onComplete??t.onComplete;n=Zs({from:C,to:w,duration:E,ease:d,onUpdate:b=>{if(s)return;const M=b;a.update(G=>({...G,current:M})),B.onUpdate?.(M),o.onUpdate?.(M)},onComplete:()=>{a.update(b=>({...b,current:w})),m?.()}})}const c=function(){return a().current};for(const u in r)c[u]=r[u];return c.animatedState=a,c.update=u=>{g(u(a().current))},c.set=async(u,o={})=>new Promise(l=>{const h=o.onComplete;g(u,{...o,onComplete:()=>{h?h():t.onComplete&&t.onComplete(),l()}})}),c.pause=()=>{s||(s=!0,n&&(n.stop(),n=null))},c.resume=()=>{if(!s)return;s=!1;const u=a();u.current!==u.end&&g(u.end,t)},c}async function _l(A){for(const t of A)Array.isArray(t)?await Promise.all(t.map(e=>e())):await t()}const vi={},dt=A=>A&&typeof A=="object"&&"tag"in A&&"props"in A&&"componentInstance"in A,bi=A=>typeof A=="string"||typeof A=="number"||typeof A=="boolean"||A===null||A===void 0;function st(A,t){vi[A]=t}let zs=!1;function Si(){zs||(zs=!0)}async function je(A){return(await Promise.all(A.map(async e=>N(e)?e():jt(e)?await e:e))).every(e=>e!==void 0)}function $s(A){return new Promise(async t=>{if(await je(A)){t();return}const i=A.filter(r=>N(r));if(i.length===0)return;const n=i.map(r=>r.observable),s=gA(n).subscribe(async()=>{await je(A)&&(s.unsubscribe(),t())})})}function St(A){if(!A)return!1;const t=A.propObservables?.freeze??A.props?.freeze;if(t!=null){if(N(t)){if(t()===!0)return!0}else if(t===!0)return!0}return A.parent?St(A.parent):!1}function xi(A,t){if(!A.propObservables)return;const e=i=>{if(N(i)&&Ce(i)){const n=i;t?n.pause():n.resume()}else hA(i)&&!dt(i)&&Object.values(i).forEach(e)};Object.values(A.propObservables).forEach(e)}function lt(A){if(Array.isArray(A)){A.forEach(t=>lt(t));return}if(A){if(A.props?.children)for(let t of A.props.children)lt(t);for(let t in A.directives)A.directives[t].onDestroy?.(A);A.componentInstance&&A.componentInstance.onDestroy?A.componentInstance.onDestroy(A.parent,()=>{A.propSubscriptions?.forEach(t=>t.unsubscribe()),A.effectSubscriptions?.forEach(t=>t.unsubscribe()),A.effectUnmounts?.forEach(t=>{jt(t)?t.then(e=>{e?.()}):t?.()})}):(A.propSubscriptions?.forEach(t=>t.unsubscribe()),A.effectSubscriptions?.forEach(t=>t.unsubscribe()),A.effectUnmounts?.forEach(t=>t?.()))}}function ct(A,t){if(!vi[A])throw new Error(`Component ${A} is not registered`);const e=new vi[A],i={tag:A,props:{},componentInstance:e,propSubscriptions:[],propObservables:t,parent:null,directives:{},effectUnmounts:[],effectSubscriptions:[],effectMounts:[],destroy(){lt(this)},allElements:new te,isFrozen:!1};if(t){const u=(o,l="")=>{const h=(B,E,d)=>{if(B==""){i.props[E]=d;return}ti(i.props,B+"."+E,d)};Object.entries(o).forEach(([B,E])=>{if(N(E)){const d=E;if("dependencies"in d&&d.dependencies.size==0){h(l,B,d()),B==="freeze"&&(i.isFrozen=d()===!0);return}if(B==="freeze"){i.isFrozen=d()===!0,xi(i,i.isFrozen),i.propSubscriptions.push(d.observable.subscribe(C=>{const w=i.isFrozen;i.isFrozen=C===!0,w!==i.isFrozen&&xi(i,i.isFrozen)}));return}i.propSubscriptions.push(d.observable.subscribe(C=>{if(St(i)){Ce(d)&&d.pause();return}if(Ce(d)&&d.resume(),h(l,B,C),i.directives[B]&&i.directives[B].onUpdate?.(C,i),B=="tick")return St(i),void 0;e.onUpdate?.(l==""?{[B]:C}:ti({},l+"."+B,C))}))}else B==="freeze"&&(i.isFrozen=E===!0,xi(i,i.isFrozen)),hA(E)&&B!="context"&&!dt(E)?u(E,(l?l+".":"")+B):h(l,B,E)})};u(t)}e.onInit?.(i.props);const n=new te;if(t?.isRoot&&(i.allElements=n,i.props.context.rootElement=i,i.componentInstance.onMount?.(i),g(i)),t)for(let u in t){const o=ri(i,u);o&&(i.directives[u]=o)}function s(u,o,l,h){const B=l.filter(C=>N(C));if(l.filter(C=>jt(C)),B.length===0)return;const E=B.map(C=>C.observable),d=gA(E).subscribe(async()=>{if(await je(l)){d.unsubscribe();const w=o.propSubscriptions.indexOf(d);w>-1&&o.propSubscriptions.splice(w,1),r(u,o,h),g(o)}});o.propSubscriptions.push(d)}function r(u,o,l){o.componentInstance.onMount?.(o,l);for(let h in o.directives)o.directives[h].onMount?.(o);o.effectMounts.forEach(h=>{o.effectUnmounts.push(h(o))})}async function a(u,o,l){let h=u;for(;h?.tag==="fragment";)h=h.parent;if(o.props.context=h.props.context,o.parent=h,!o.propObservables?.freeze&&!o.props?.freeze&&St(h)&&(o.isFrozen=!0),o.props.dependencies&&Array.isArray(o.props.dependencies)){const B=o.props.dependencies;if(!await je(B)){s(h,o,B,l);return}}r(h,o,l)}async function g(u){if(u.props.attach&&(N(u.propObservables?.attach)?await new Promise(l=>{let h=null;u.propSubscriptions.push(u.propObservables.attach.observable.subscribe(async B=>{const E=B?.value??B;if(!E)throw new Error(`attach in ${u.tag} is undefined or null, add a component`);h&&lt(h),h=E,await c(u,E),l(void 0)}))}):u.props.children.push(u.props.attach)),!!u.props.children)for(let o of u.props.children)o&&await c(u,o)}async function c(u,o){if(jt(o)&&(o=await o),o instanceof Z){const l=o.subscribe(h=>{if(h&&typeof h=="object"&&"elements"in h){const{elements:B,prev:E}=h,d=B.filter(C=>C!==null);if(E){d.forEach(async C=>{const w=u.props.children.indexOf(E.props.key);C instanceof Z?await c(u,C):dt(C)&&(a(u,C,w+1),g(C))});return}d.forEach(async C=>{Array.isArray(C)?C.forEach(async w=>{w instanceof Z?await c(u,w):dt(w)&&(a(u,w),g(w))}):C instanceof Z?await c(u,C):dt(C)&&(a(u,C),g(C))})}else dt(h)?(a(u,h),g(h)):Array.isArray(h)&&h.forEach(async B=>{B instanceof Z?await c(u,B):dt(B)&&(a(u,B),g(B))});n.next(void 0)});u.effectSubscriptions.push(l)}else dt(o)&&(a(u,o),await g(o))}return i}function Fl(A,t){return Ee(A)&&A.dependencies.size==0?A=Y(A()):N(A)||(A=Y(A)),aa(()=>{let e=[],i=new Map,n=!0;const s=a=>a?dt(a)?a:{tag:"fragment",props:{children:Array.isArray(a)?a:[a]},componentInstance:{},propSubscriptions:[],effectSubscriptions:[],effectMounts:[],effectUnmounts:[],propObservables:{},parent:null,directives:{},destroy(){lt(this)},allElements:new te,isFrozen:!1}:null,r=a=>Array.isArray(a());return new Z(a=>{const g=r(A)?A.observable.subscribe(c=>{if(n){n=!1,e.forEach(l=>l.destroy()),e=[],i.clear();const o=A();o&&o.forEach((l,h)=>{const B=s(t(l,h));B&&(e.push(B),i.set(h,B))}),a.next({elements:[...e]});return}const u=Array.isArray(c)||c&&typeof c=="object"&&!("type"in c);if(c.type==="init"||c.type==="reset"||u){e.forEach(l=>lt(l)),e=[],i.clear();const o=A();o&&o.forEach((l,h)=>{const B=s(t(l,h));B&&(e.push(B),i.set(h,B))})}else if(c.type==="add"&&c.index!==void 0){const o=c.items.map((l,h)=>{const B=s(t(l,c.index+h));return B&&i.set(c.index+h,B),B}).filter(l=>l!==null);e.splice(c.index,0,...o)}else if(c.type==="remove"&&c.index!==void 0)e.splice(c.index,1).forEach(l=>{lt(l),i.delete(c.index)});else if(c.type==="update"&&c.index!==void 0&&c.items.length===1){const o=c.index,l=c.items[0];if(o>=e.length||e[o]===void 0||!i.has(o)){const h=s(t(l,o));h?(e.splice(o,0,h),i.set(o,h)):console.warn(`Element creation returned null for index ${o} during add-like update.`)}else{const h=e[o];lt(h);const B=s(t(l,o));B?(e[o]=B,i.set(o,B)):(e.splice(o,1),i.delete(o))}}a.next({elements:[...e]})}):A.observable.subscribe(c=>{const u=c.key;if(n){n=!1,e.forEach(l=>lt(l)),e=[],i.clear();const o=A();o&&Object.entries(o).forEach(([l,h])=>{const B=s(t(h,l));B&&(e.push(B),i.set(l,B))}),a.next({elements:[...e]});return}if(c.type==="init"||c.type==="reset"){e.forEach(l=>lt(l)),e=[],i.clear();const o=A();o&&Object.entries(o).forEach(([l,h])=>{const B=s(t(h,l));B&&(e.push(B),i.set(l,B))})}else if(c.type==="add"&&c.key&&c.value!==void 0){const o=s(t(c.value,u));o&&(e.push(o),i.set(u,o))}else if(c.type==="remove"&&c.key){const o=e.findIndex(l=>i.get(u)===l);if(o!==-1){const[l]=e.splice(o,1);lt(l),i.delete(u)}}else if(c.type==="update"&&c.key&&c.value!==void 0){const o=e.findIndex(l=>i.get(u)===l);if(o!==-1){const l=e[o];lt(l);const h=s(t(c.value,u));h&&(e[o]=h,i.set(u,h))}}a.next({elements:[...e]})});return()=>{g.unsubscribe(),e.forEach(c=>lt(c))}})}).pipe(ga({bufferSize:1,refCount:!0}))}function Gl(A,t,...e){let i=null,n=-1;const s=[];let r=null;const a=c=>N(c)?c:typeof c=="function"?Ct(c):Y(c);for(const c of e)if(Array.isArray(c))s.push({condition:a(c[0]),elementFn:c[1]});else if(typeof c=="function"){r=c;break}const g=[{condition:a(A),elementFn:t},...s];return new Z(c=>{const u=[],o=()=>{let l=-1;for(let E=0;E<g.length;E++){const d=g[E].condition;if(d()){l=E;break}}const h=l===-1&&r,B=h?-2:l;if(B!==n)if(i&&(lt(i),i=null),n=B,h){let E=r();jt(E)?lA(E).subscribe(d=>{i=d,c.next({type:"init",elements:[d]})}):(i=E,c.next({type:"init",elements:[i]}))}else if(l>=0){let E=g[l].elementFn();jt(E)?lA(E).subscribe(d=>{i=d,c.next({type:"init",elements:[d]})}):(i=E,c.next({type:"init",elements:[i]}))}else c.next({elements:[]})};return g.forEach(({condition:l})=>{const h=l;u.push(h.observable.subscribe(()=>{o()}))}),o(),()=>{u.forEach(l=>l.unsubscribe()),i&&lt(i)}}).pipe(is())}class to extends vt{constructor(){super(...arguments),this.keyboardControls=null,this.gamepadControls=null,this.joystickControls=null,this.freezeSubscription=null,this.element=null}onInit(t){this.element=t;const e=t.props.controls?.value??t.props.controls;if(!e)return;this.keyboardControls=new hs,this.keyboardControls.setInputs(e),this.keyboardControls.start();const i=e.gamepad;i!==void 0&&i.enabled!==!1&&(this.gamepadControls=new fs,this.gamepadControls.setInputs(e),this.gamepadControls.start());const n=e.joystick;n!==void 0&&n.enabled!==!1&&(this.joystickControls=new Bs,this.joystickControls.setInputs(e),this.joystickControls.start()),St(t)&&this.stopInputs();const s=t.propObservables?.freeze??t.props?.freeze;N(s)&&(this.freezeSubscription=s.observable.subscribe(r=>{r?this.stopInputs():this.listenInputs()}))}onMount(t){}onUpdate(t,e){const i=t.controls?.value??t.controls;i&&(this.keyboardControls&&this.keyboardControls.setInputs(i),this.gamepadControls&&this.gamepadControls.setInputs(i)),t.freeze!==void 0&&this.element&&(St(this.element)?this.stopInputs():this.listenInputs())}onDestroy(t){this.freezeSubscription&&(this.freezeSubscription.unsubscribe(),this.freezeSubscription=null),this.keyboardControls&&(this.keyboardControls.destroy(),this.keyboardControls=null),this.gamepadControls&&(this.gamepadControls.destroy(),this.gamepadControls=null),this.joystickControls&&(this.joystickControls.destroy(),this.joystickControls=null),this.element=null}getControl(t){return this.keyboardControls?.getControl(t)}getControls(){return this.keyboardControls?.getControls()||{}}async applyControl(t,e,i){this.keyboardControls&&await this.keyboardControls.applyControl(t,e),this.gamepadControls&&await this.gamepadControls.applyControl(t,e,i),this.joystickControls&&await this.joystickControls.applyControl(t,e,i)}stopInputs(){this.keyboardControls&&this.keyboardControls.stopInputs(),this.gamepadControls&&this.gamepadControls.stopInputs(),this.joystickControls&&this.joystickControls.stopInputs()}listenInputs(){this.keyboardControls&&this.keyboardControls.listenInputs(),this.gamepadControls&&this.gamepadControls.listenInputs(),this.joystickControls&&this.joystickControls.listenInputs()}get options(){return this.keyboardControls?.options||{}}get keyboard(){return this.keyboardControls}get gamepad(){return this.gamepadControls}get joystick(){return this.joystickControls}}bt("controls",to);class eo extends vt{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(t){this.tick=t.propObservables?.tick}onDestroy(){}onMount(t){}onUpdate(t){}nextTick(t){this.lastTimestamp=this.lastTimestamp||this.timestamp,this.deltaTime=fe()-this.timestamp,this.timestamp=t,this.tick.set({timestamp:this.timestamp,deltaTime:this.deltaTime,frame:this.frame,deltaRatio:~~this.deltaTime/~~Le(this.fps)}),this.lastTimestamp=this.timestamp,this.frame++}start(t={}){t.maxFps&&(this.maxFps=t.maxFps),t.fps&&(this.fps=t.fps),t.delay&&(this.requestedDelay=t.delay);const e=i=>{ns()?window.requestAnimationFrame(i.bind(this)):setTimeout(()=>{this.requestedDelay=0,i(fe())},Le(this.fps)+this.requestedDelay)};if(this.maxFps){const i=Le(this.maxFps);let n=fe(),s=fe();const r=a=>{if(this._stop)return;e(r),n=fe();const g=n-s;g>i&&(s=n-g%i,this.nextTick(a))};e(r)}else{const i=n=>{e(i),this.nextTick(n)};e(i)}return this}stop(){this._stop=!0}}bt("tick",eo);const Qt=(A,t={})=>{if(N(A))return A();const e={};for(let i in A){const n=A[i];e[i]=bi(n)?Y(n):n}for(let i in t)i in e||(e[i]=bi(t[i])?Y(t[i]):t[i]);return e},ki=A=>t=>{const e=N(A)?A():A,i={};for(const n in t){const s=t[n],r=e[n];let a;if(typeof s=="function")Mi(n,r,[s]),a=r;else if(Array.isArray(s))Mi(n,r,s),a=r;else if(s&&typeof s=="object"){if(s.required&&r===void 0)throw new Error(`Missing required prop: ${n}`);if(s.type){const g=Array.isArray(s.type)?s.type:[s.type];Mi(n,r,g)}if(s.validator&&!s.validator(r,e))throw new Error(`Invalid prop: custom validation failed for prop "${n}"`);r===void 0&&"default"in s?a=typeof s.default=="function"?s.default(e):s.default:a=r}i[n]=N(a)?a:Y(a)}return{...Qt(e),...i}};function Mi(A,t,e){if(t==null)return;const i=N(t)?t():t;if(!e.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 "${A}". Expected ${e.map(s=>s.name).join(" or ")}`)}class Ao extends vt{onInit(t){}onMount(t){this.onUpdate(t.props.viewportFollow,t)}onUpdate(t,e){const i=e.props.context?.viewport;if(!i){if(t)throw ei("ViewportFollow directive requires a Viewport component to be mounted in the same context");return}if(t)if(t===!0)i.follow(e.componentInstance);else{const n=Qt(t,{speed:void 0,acceleration:void 0,radius:void 0});i.follow(e.componentInstance,{speed:n.speed(),acceleration:n.acceleration(),radius:n.radius()})}else t===null&&i.plugins.remove("follow")}onDestroy(t){const{viewportFollow:e}=t.props,i=t.props.context?.viewport;e&&i&&i.plugins.remove("follow")}}bt("viewportFollow",Ao);var Ve=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Nl(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var Ri={};var io;function Hl(){return io||(io=1,(function(A){(function(){var t=function(){this.init()};t.prototype={init:function(){var o=this||e;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 l=this||e;if(o=parseFloat(o),l.ctx||u(),typeof o<"u"&&o>=0&&o<=1){if(l._volume=o,l._muted)return l;l.usingWebAudio&&l.masterGain.gain.setValueAtTime(o,e.ctx.currentTime);for(var h=0;h<l._howls.length;h++)if(!l._howls[h]._webAudio)for(var B=l._howls[h]._getSoundIds(),E=0;E<B.length;E++){var d=l._howls[h]._soundById(B[E]);d&&d._node&&(d._node.volume=d._volume*o)}return l}return l._volume},mute:function(o){var l=this||e;l.ctx||u(),l._muted=o,l.usingWebAudio&&l.masterGain.gain.setValueAtTime(o?0:l._volume,e.ctx.currentTime);for(var h=0;h<l._howls.length;h++)if(!l._howls[h]._webAudio)for(var B=l._howls[h]._getSoundIds(),E=0;E<B.length;E++){var d=l._howls[h]._soundById(B[E]);d&&d._node&&(d._node.muted=o?!0:d._muted)}return l},stop:function(){for(var o=this||e,l=0;l<o._howls.length;l++)o._howls[l].stop();return o},unload:function(){for(var o=this||e,l=o._howls.length-1;l>=0;l--)o._howls[l].unload();return o.usingWebAudio&&o.ctx&&typeof o.ctx.close<"u"&&(o.ctx.close(),o.ctx=null,u()),o},codecs:function(o){return(this||e)._codecs[o.replace(/^x-/,"")]},_setup:function(){var o=this||e;if(o.state=o.ctx&&o.ctx.state||"suspended",o._autoSuspend(),!o.usingWebAudio)if(typeof Audio<"u")try{var l=new Audio;typeof l.oncanplaythrough>"u"&&(o._canPlayEvent="canplay")}catch{o.noAudio=!0}else o.noAudio=!0;try{var l=new Audio;l.muted&&(o.noAudio=!0)}catch{}return o.noAudio||o._setupCodecs(),o},_setupCodecs:function(){var o=this||e,l=null;try{l=typeof Audio<"u"?new Audio:null}catch{return o}if(!l||typeof l.canPlayType!="function")return o;var h=l.canPlayType("audio/mpeg;").replace(/^no$/,""),B=o._navigator?o._navigator.userAgent:"",E=B.match(/OPR\/(\d+)/g),d=E&&parseInt(E[0].split("/")[1],10)<33,C=B.indexOf("Safari")!==-1&&B.indexOf("Chrome")===-1,w=B.match(/Version\/(.*?) /),m=C&&w&&parseInt(w[1],10)<15;return o._codecs={mp3:!!(!d&&(h||l.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!h,opus:!!l.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!l.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!l.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(l.canPlayType('audio/wav; codecs="1"')||l.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!l.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!l.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(l.canPlayType("audio/x-m4a;")||l.canPlayType("audio/m4a;")||l.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(l.canPlayType("audio/x-m4b;")||l.canPlayType("audio/m4b;")||l.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(l.canPlayType("audio/x-mp4;")||l.canPlayType("audio/mp4;")||l.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!m&&l.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!m&&l.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!l.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(l.canPlayType("audio/x-flac;")||l.canPlayType("audio/flac;")).replace(/^no$/,"")},o},_unlockAudio:function(){var o=this||e;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 l=function(h){for(;o._html5AudioPool.length<o.html5PoolSize;)try{var B=new Audio;B._unlocked=!0,o._releaseHtml5Audio(B)}catch{o.noAudio=!0;break}for(var E=0;E<o._howls.length;E++)if(!o._howls[E]._webAudio)for(var d=o._howls[E]._getSoundIds(),C=0;C<d.length;C++){var w=o._howls[E]._soundById(d[C]);w&&w._node&&!w._node._unlocked&&(w._node._unlocked=!0,w._node.load())}o._autoResume();var m=o.ctx.createBufferSource();m.buffer=o._scratchBuffer,m.connect(o.ctx.destination),typeof m.start>"u"?m.noteOn(0):m.start(0),typeof o.ctx.resume=="function"&&o.ctx.resume(),m.onended=function(){m.disconnect(0),o._audioUnlocked=!0,document.removeEventListener("touchstart",l,!0),document.removeEventListener("touchend",l,!0),document.removeEventListener("click",l,!0),document.removeEventListener("keydown",l,!0);for(var b=0;b<o._howls.length;b++)o._howls[b]._emit("unlock")}};return document.addEventListener("touchstart",l,!0),document.addEventListener("touchend",l,!0),document.addEventListener("click",l,!0),document.addEventListener("keydown",l,!0),o}},_obtainHtml5Audio:function(){var o=this||e;if(o._html5AudioPool.length)return o._html5AudioPool.pop();var l=new Audio().play();return l&&typeof Promise<"u"&&(l instanceof Promise||typeof l.then=="function")&&l.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(o){var l=this||e;return o._unlocked&&l._html5AudioPool.push(o),l},_autoSuspend:function(){var o=this;if(!(!o.autoSuspend||!o.ctx||typeof o.ctx.suspend>"u"||!e.usingWebAudio)){for(var l=0;l<o._howls.length;l++)if(o._howls[l]._webAudio){for(var h=0;h<o._howls[l]._sounds.length;h++)if(!o._howls[l]._sounds[h]._paused)return o}return o._suspendTimer&&clearTimeout(o._suspendTimer),o._suspendTimer=setTimeout(function(){if(o.autoSuspend){o._suspendTimer=null,o.state="suspending";var B=function(){o.state="suspended",o._resumeAfterSuspend&&(delete o._resumeAfterSuspend,o._autoResume())};o.ctx.suspend().then(B,B)}},3e4),o}},_autoResume:function(){var o=this;if(!(!o.ctx||typeof o.ctx.resume>"u"||!e.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 l=0;l<o._howls.length;l++)o._howls[l]._emit("resume")}),o._suspendTimer&&(clearTimeout(o._suspendTimer),o._suspendTimer=null)):o.state==="suspending"&&(o._resumeAfterSuspend=!0),o}};var e=new t,i=function(o){var l=this;if(!o.src||o.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}l.init(o)};i.prototype={init:function(o){var l=this;return e.ctx||u(),l._autoplay=o.autoplay||!1,l._format=typeof o.format!="string"?o.format:[o.format],l._html5=o.html5||!1,l._muted=o.mute||!1,l._loop=o.loop||!1,l._pool=o.pool||5,l._preload=typeof o.preload=="boolean"||o.preload==="metadata"?o.preload:!0,l._rate=o.rate||1,l._sprite=o.sprite||{},l._src=typeof o.src!="string"?o.src:[o.src],l._volume=o.volume!==void 0?o.volume:1,l._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},l._duration=0,l._state="unloaded",l._sounds=[],l._endTimers={},l._queue=[],l._playLock=!1,l._onend=o.onend?[{fn:o.onend}]:[],l._onfade=o.onfade?[{fn:o.onfade}]:[],l._onload=o.onload?[{fn:o.onload}]:[],l._onloaderror=o.onloaderror?[{fn:o.onloaderror}]:[],l._onplayerror=o.onplayerror?[{fn:o.onplayerror}]:[],l._onpause=o.onpause?[{fn:o.onpause}]:[],l._onplay=o.onplay?[{fn:o.onplay}]:[],l._onstop=o.onstop?[{fn:o.onstop}]:[],l._onmute=o.onmute?[{fn:o.onmute}]:[],l._onvolume=o.onvolume?[{fn:o.onvolume}]:[],l._onrate=o.onrate?[{fn:o.onrate}]:[],l._onseek=o.onseek?[{fn:o.onseek}]:[],l._onunlock=o.onunlock?[{fn:o.onunlock}]:[],l._onresume=[],l._webAudio=e.usingWebAudio&&!l._html5,typeof e.ctx<"u"&&e.ctx&&e.autoUnlock&&e._unlockAudio(),e._howls.push(l),l._autoplay&&l._queue.push({event:"play",action:function(){l.play()}}),l._preload&&l._preload!=="none"&&l.load(),l},load:function(){var o=this,l=null;if(e.noAudio){o._emit("loaderror",null,"No audio support.");return}typeof o._src=="string"&&(o._src=[o._src]);for(var h=0;h<o._src.length;h++){var B,E;if(o._format&&o._format[h])B=o._format[h];else{if(E=o._src[h],typeof E!="string"){o._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}B=/^data:audio\/([^;,]+);/i.exec(E),B||(B=/\.([^.]+)$/.exec(E.split("?",1)[0])),B&&(B=B[1].toLowerCase())}if(B||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),B&&e.codecs(B)){l=o._src[h];break}}if(!l){o._emit("loaderror",null,"No codec support for selected audio sources.");return}return o._src=l,o._state="loading",window.location.protocol==="https:"&&l.slice(0,5)==="http:"&&(o._html5=!0,o._webAudio=!1),new n(o),o._webAudio&&r(o),o},play:function(o,l){var h=this,B=null;if(typeof o=="number")B=o,o=null;else{if(typeof o=="string"&&h._state==="loaded"&&!h._sprite[o])return null;if(typeof o>"u"&&(o="__default",!h._playLock)){for(var E=0,d=0;d<h._sounds.length;d++)h._sounds[d]._paused&&!h._sounds[d]._ended&&(E++,B=h._sounds[d]._id);E===1?o=null:B=null}}var C=B?h._soundById(B):h._inactiveSound();if(!C)return null;if(B&&!o&&(o=C._sprite||"__default"),h._state!=="loaded"){C._sprite=o,C._ended=!1;var w=C._id;return h._queue.push({event:"play",action:function(){h.play(w)}}),w}if(B&&!C._paused)return l||h._loadQueue("play"),C._id;h._webAudio&&e._autoResume();var m=Math.max(0,C._seek>0?C._seek:h._sprite[o][0]/1e3),b=Math.max(0,(h._sprite[o][0]+h._sprite[o][1])/1e3-m),M=b*1e3/Math.abs(C._rate),G=h._sprite[o][0]/1e3,O=(h._sprite[o][0]+h._sprite[o][1])/1e3;C._sprite=o,C._ended=!1;var K=function(){C._paused=!1,C._seek=m,C._start=G,C._stop=O,C._loop=!!(C._loop||h._sprite[o][2])};if(m>=O){h._ended(C);return}var H=C._node;if(h._webAudio){var T=function(){h._playLock=!1,K(),h._refreshBuffer(C);var tt=C._muted||h._muted?0:C._volume;H.gain.setValueAtTime(tt,e.ctx.currentTime),C._playStart=e.ctx.currentTime,typeof H.bufferSource.start>"u"?C._loop?H.bufferSource.noteGrainOn(0,m,86400):H.bufferSource.noteGrainOn(0,m,b):C._loop?H.bufferSource.start(0,m,86400):H.bufferSource.start(0,m,b),M!==1/0&&(h._endTimers[C._id]=setTimeout(h._ended.bind(h,C),M)),l||setTimeout(function(){h._emit("play",C._id),h._loadQueue()},0)};e.state==="running"&&e.ctx.state!=="interrupted"?T():(h._playLock=!0,h.once("resume",T),h._clearTimer(C._id))}else{var W=function(){H.currentTime=m,H.muted=C._muted||h._muted||e._muted||H.muted,H.volume=C._volume*e.volume(),H.playbackRate=C._rate;try{var tt=H.play();if(tt&&typeof Promise<"u"&&(tt instanceof Promise||typeof tt.then=="function")?(h._playLock=!0,K(),tt.then(function(){h._playLock=!1,H._unlocked=!0,l?h._loadQueue():h._emit("play",C._id)}).catch(function(){h._playLock=!1,h._emit("playerror",C._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."),C._ended=!0,C._paused=!0})):l||(h._playLock=!1,K(),h._emit("play",C._id)),H.playbackRate=C._rate,H.paused){h._emit("playerror",C._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"||C._loop?h._endTimers[C._id]=setTimeout(h._ended.bind(h,C),M):(h._endTimers[C._id]=function(){h._ended(C),H.removeEventListener("ended",h._endTimers[C._id],!1)},H.addEventListener("ended",h._endTimers[C._id],!1))}catch(It){h._emit("playerror",C._id,It)}};H.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(H.src=h._src,H.load());var At=window&&window.ejecta||!H.readyState&&e._navigator.isCocoonJS;if(H.readyState>=3||At)W();else{h._playLock=!0,h._state="loading";var ot=function(){h._state="loaded",W(),H.removeEventListener(e._canPlayEvent,ot,!1)};H.addEventListener(e._canPlayEvent,ot,!1),h._clearTimer(C._id)}}return C._id},pause:function(o){var l=this;if(l._state!=="loaded"||l._playLock)return l._queue.push({event:"pause",action:function(){l.pause(o)}}),l;for(var h=l._getSoundIds(o),B=0;B<h.length;B++){l._clearTimer(h[B]);var E=l._soundById(h[B]);if(E&&!E._paused&&(E._seek=l.seek(h[B]),E._rateSeek=0,E._paused=!0,l._stopFade(h[B]),E._node))if(l._webAudio){if(!E._node.bufferSource)continue;typeof E._node.bufferSource.stop>"u"?E._node.bufferSource.noteOff(0):E._node.bufferSource.stop(0),l._cleanBuffer(E._node)}else(!isNaN(E._node.duration)||E._node.duration===1/0)&&E._node.pause();arguments[1]||l._emit("pause",E?E._id:null)}return l},stop:function(o,l){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"stop",action:function(){h.stop(o)}}),h;for(var B=h._getSoundIds(o),E=0;E<B.length;E++){h._clearTimer(B[E]);var d=h._soundById(B[E]);d&&(d._seek=d._start||0,d._rateSeek=0,d._paused=!0,d._ended=!0,h._stopFade(B[E]),d._node&&(h._webAudio?d._node.bufferSource&&(typeof d._node.bufferSource.stop>"u"?d._node.bufferSource.noteOff(0):d._node.bufferSource.stop(0),h._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&&h._clearSound(d._node))),l||h._emit("stop",d._id))}return h},mute:function(o,l){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"mute",action:function(){h.mute(o,l)}}),h;if(typeof l>"u")if(typeof o=="boolean")h._muted=o;else return h._muted;for(var B=h._getSoundIds(l),E=0;E<B.length;E++){var d=h._soundById(B[E]);d&&(d._muted=o,d._interval&&h._stopFade(d._id),h._webAudio&&d._node?d._node.gain.setValueAtTime(o?0:d._volume,e.ctx.currentTime):d._node&&(d._node.muted=e._muted?!0:o),h._emit("mute",d._id))}return h},volume:function(){var o=this,l=arguments,h,B;if(l.length===0)return o._volume;if(l.length===1||l.length===2&&typeof l[1]>"u"){var E=o._getSoundIds(),d=E.indexOf(l[0]);d>=0?B=parseInt(l[0],10):h=parseFloat(l[0])}else l.length>=2&&(h=parseFloat(l[0]),B=parseInt(l[1],10));var C;if(typeof h<"u"&&h>=0&&h<=1){if(o._state!=="loaded"||o._playLock)return o._queue.push({event:"volume",action:function(){o.volume.apply(o,l)}}),o;typeof B>"u"&&(o._volume=h),B=o._getSoundIds(B);for(var w=0;w<B.length;w++)C=o._soundById(B[w]),C&&(C._volume=h,l[2]||o._stopFade(B[w]),o._webAudio&&C._node&&!C._muted?C._node.gain.setValueAtTime(h,e.ctx.currentTime):C._node&&!C._muted&&(C._node.volume=h*e.volume()),o._emit("volume",C._id))}else return C=B?o._soundById(B):o._sounds[0],C?C._volume:0;return o},fade:function(o,l,h,B){var E=this;if(E._state!=="loaded"||E._playLock)return E._queue.push({event:"fade",action:function(){E.fade(o,l,h,B)}}),E;o=Math.min(Math.max(0,parseFloat(o)),1),l=Math.min(Math.max(0,parseFloat(l)),1),h=parseFloat(h),E.volume(o,B);for(var d=E._getSoundIds(B),C=0;C<d.length;C++){var w=E._soundById(d[C]);if(w){if(B||E._stopFade(d[C]),E._webAudio&&!w._muted){var m=e.ctx.currentTime,b=m+h/1e3;w._volume=o,w._node.gain.setValueAtTime(o,m),w._node.gain.linearRampToValueAtTime(l,b)}E._startFadeInterval(w,o,l,h,d[C],typeof B>"u")}}return E},_startFadeInterval:function(o,l,h,B,E,d){var C=this,w=l,m=h-l,b=Math.abs(m/.01),M=Math.max(4,b>0?B/b:B),G=Date.now();o._fadeTo=h,o._interval=setInterval(function(){var O=(Date.now()-G)/B;G=Date.now(),w+=m*O,w=Math.round(w*100)/100,m<0?w=Math.max(h,w):w=Math.min(h,w),C._webAudio?o._volume=w:C.volume(w,o._id,!0),d&&(C._volume=w),(h<l&&w<=h||h>l&&w>=h)&&(clearInterval(o._interval),o._interval=null,o._fadeTo=null,C.volume(h,o._id),C._emit("fade",o._id))},M)},_stopFade:function(o){var l=this,h=l._soundById(o);return h&&h._interval&&(l._webAudio&&h._node.gain.cancelScheduledValues(e.ctx.currentTime),clearInterval(h._interval),h._interval=null,l.volume(h._fadeTo,o),h._fadeTo=null,l._emit("fade",o)),l},loop:function(){var o=this,l=arguments,h,B,E;if(l.length===0)return o._loop;if(l.length===1)if(typeof l[0]=="boolean")h=l[0],o._loop=h;else return E=o._soundById(parseInt(l[0],10)),E?E._loop:!1;else l.length===2&&(h=l[0],B=parseInt(l[1],10));for(var d=o._getSoundIds(B),C=0;C<d.length;C++)E=o._soundById(d[C]),E&&(E._loop=h,o._webAudio&&E._node&&E._node.bufferSource&&(E._node.bufferSource.loop=h,h&&(E._node.bufferSource.loopStart=E._start||0,E._node.bufferSource.loopEnd=E._stop,o.playing(d[C])&&(o.pause(d[C],!0),o.play(d[C],!0)))));return o},rate:function(){var o=this,l=arguments,h,B;if(l.length===0)B=o._sounds[0]._id;else if(l.length===1){var E=o._getSoundIds(),d=E.indexOf(l[0]);d>=0?B=parseInt(l[0],10):h=parseFloat(l[0])}else l.length===2&&(h=parseFloat(l[0]),B=parseInt(l[1],10));var C;if(typeof h=="number"){if(o._state!=="loaded"||o._playLock)return o._queue.push({event:"rate",action:function(){o.rate.apply(o,l)}}),o;typeof B>"u"&&(o._rate=h),B=o._getSoundIds(B);for(var w=0;w<B.length;w++)if(C=o._soundById(B[w]),C){o.playing(B[w])&&(C._rateSeek=o.seek(B[w]),C._playStart=o._webAudio?e.ctx.currentTime:C._playStart),C._rate=h,o._webAudio&&C._node&&C._node.bufferSource?C._node.bufferSource.playbackRate.setValueAtTime(h,e.ctx.currentTime):C._node&&(C._node.playbackRate=h);var m=o.seek(B[w]),b=(o._sprite[C._sprite][0]+o._sprite[C._sprite][1])/1e3-m,M=b*1e3/Math.abs(C._rate);(o._endTimers[B[w]]||!C._paused)&&(o._clearTimer(B[w]),o._endTimers[B[w]]=setTimeout(o._ended.bind(o,C),M)),o._emit("rate",C._id)}}else return C=o._soundById(B),C?C._rate:o._rate;return o},seek:function(){var o=this,l=arguments,h,B;if(l.length===0)o._sounds.length&&(B=o._sounds[0]._id);else if(l.length===1){var E=o._getSoundIds(),d=E.indexOf(l[0]);d>=0?B=parseInt(l[0],10):o._sounds.length&&(B=o._sounds[0]._id,h=parseFloat(l[0]))}else l.length===2&&(h=parseFloat(l[0]),B=parseInt(l[1],10));if(typeof B>"u")return 0;if(typeof h=="number"&&(o._state!=="loaded"||o._playLock))return o._queue.push({event:"seek",action:function(){o.seek.apply(o,l)}}),o;var C=o._soundById(B);if(C)if(typeof h=="number"&&h>=0){var w=o.playing(B);w&&o.pause(B,!0),C._seek=h,C._ended=!1,o._clearTimer(B),!o._webAudio&&C._node&&!isNaN(C._node.duration)&&(C._node.currentTime=h);var m=function(){w&&o.play(B,!0),o._emit("seek",B)};if(w&&!o._webAudio){var b=function(){o._playLock?setTimeout(b,0):m()};setTimeout(b,0)}else m()}else if(o._webAudio){var M=o.playing(B)?e.ctx.currentTime-C._playStart:0,G=C._rateSeek?C._rateSeek-C._seek:0;return C._seek+(G+M*Math.abs(C._rate))}else return C._node.currentTime;return o},playing:function(o){var l=this;if(typeof o=="number"){var h=l._soundById(o);return h?!h._paused:!1}for(var B=0;B<l._sounds.length;B++)if(!l._sounds[B]._paused)return!0;return!1},duration:function(o){var l=this,h=l._duration,B=l._soundById(o);return B&&(h=l._sprite[B._sprite][1]/1e3),h},state:function(){return this._state},unload:function(){for(var o=this,l=o._sounds,h=0;h<l.length;h++)l[h]._paused||o.stop(l[h]._id),o._webAudio||(o._clearSound(l[h]._node),l[h]._node.removeEventListener("error",l[h]._errorFn,!1),l[h]._node.removeEventListener(e._canPlayEvent,l[h]._loadFn,!1),l[h]._node.removeEventListener("ended",l[h]._endFn,!1),e._releaseHtml5Audio(l[h]._node)),delete l[h]._node,o._clearTimer(l[h]._id);var B=e._howls.indexOf(o);B>=0&&e._howls.splice(B,1);var E=!0;for(h=0;h<e._howls.length;h++)if(e._howls[h]._src===o._src||o._src.indexOf(e._howls[h]._src)>=0){E=!1;break}return s&&E&&delete s[o._src],e.noAudio=!1,o._state="unloaded",o._sounds=[],o=null,null},on:function(o,l,h,B){var E=this,d=E["_on"+o];return typeof l=="function"&&d.push(B?{id:h,fn:l,once:B}:{id:h,fn:l}),E},off:function(o,l,h){var B=this,E=B["_on"+o],d=0;if(typeof l=="number"&&(h=l,l=null),l||h)for(d=0;d<E.length;d++){var C=h===E[d].id;if(l===E[d].fn&&C||!l&&C){E.splice(d,1);break}}else if(o)B["_on"+o]=[];else{var w=Object.keys(B);for(d=0;d<w.length;d++)w[d].indexOf("_on")===0&&Array.isArray(B[w[d]])&&(B[w[d]]=[])}return B},once:function(o,l,h){var B=this;return B.on(o,l,h,1),B},_emit:function(o,l,h){for(var B=this,E=B["_on"+o],d=E.length-1;d>=0;d--)(!E[d].id||E[d].id===l||o==="load")&&(setTimeout((function(C){C.call(this,l,h)}).bind(B,E[d].fn),0),E[d].once&&B.off(o,E[d].fn,E[d].id));return B._loadQueue(o),B},_loadQueue:function(o){var l=this;if(l._queue.length>0){var h=l._queue[0];h.event===o&&(l._queue.shift(),l._loadQueue()),o||h.action()}return l},_ended:function(o){var l=this,h=o._sprite;if(!l._webAudio&&o._node&&!o._node.paused&&!o._node.ended&&o._node.currentTime<o._stop)return setTimeout(l._ended.bind(l,o),100),l;var B=!!(o._loop||l._sprite[h][2]);if(l._emit("end",o._id),!l._webAudio&&B&&l.stop(o._id,!0).play(o._id),l._webAudio&&B){l._emit("play",o._id),o._seek=o._start||0,o._rateSeek=0,o._playStart=e.ctx.currentTime;var E=(o._stop-o._start)*1e3/Math.abs(o._rate);l._endTimers[o._id]=setTimeout(l._ended.bind(l,o),E)}return l._webAudio&&!B&&(o._paused=!0,o._ended=!0,o._seek=o._start||0,o._rateSeek=0,l._clearTimer(o._id),l._cleanBuffer(o._node),e._autoSuspend()),!l._webAudio&&!B&&l.stop(o._id,!0),l},_clearTimer:function(o){var l=this;if(l._endTimers[o]){if(typeof l._endTimers[o]!="function")clearTimeout(l._endTimers[o]);else{var h=l._soundById(o);h&&h._node&&h._node.removeEventListener("ended",l._endTimers[o],!1)}delete l._endTimers[o]}return l},_soundById:function(o){for(var l=this,h=0;h<l._sounds.length;h++)if(o===l._sounds[h]._id)return l._sounds[h];return null},_inactiveSound:function(){var o=this;o._drain();for(var l=0;l<o._sounds.length;l++)if(o._sounds[l]._ended)return o._sounds[l].reset();return new n(o)},_drain:function(){var o=this,l=o._pool,h=0,B=0;if(!(o._sounds.length<l)){for(B=0;B<o._sounds.length;B++)o._sounds[B]._ended&&h++;for(B=o._sounds.length-1;B>=0;B--){if(h<=l)return;o._sounds[B]._ended&&(o._webAudio&&o._sounds[B]._node&&o._sounds[B]._node.disconnect(0),o._sounds.splice(B,1),h--)}}},_getSoundIds:function(o){var l=this;if(typeof o>"u"){for(var h=[],B=0;B<l._sounds.length;B++)h.push(l._sounds[B]._id);return h}else return[o]},_refreshBuffer:function(o){var l=this;return o._node.bufferSource=e.ctx.createBufferSource(),o._node.bufferSource.buffer=s[l._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,e.ctx.currentTime),l},_cleanBuffer:function(o){var l=this,h=e._navigator&&e._navigator.vendor.indexOf("Apple")>=0;if(!o.bufferSource)return l;if(e._scratchBuffer&&o.bufferSource&&(o.bufferSource.onended=null,o.bufferSource.disconnect(0),h))try{o.bufferSource.buffer=e._scratchBuffer}catch{}return o.bufferSource=null,l},_clearSound:function(o){var l=/MSIE |Trident\//.test(e._navigator&&e._navigator.userAgent);l||(o.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var n=function(o){this._parent=o,this.init()};n.prototype={init:function(){var o=this,l=o._parent;return o._muted=l._muted,o._loop=l._loop,o._volume=l._volume,o._rate=l._rate,o._seek=0,o._paused=!0,o._ended=!0,o._sprite="__default",o._id=++e._counter,l._sounds.push(o),o.create(),o},create:function(){var o=this,l=o._parent,h=e._muted||o._muted||o._parent._muted?0:o._volume;return l._webAudio?(o._node=typeof e.ctx.createGain>"u"?e.ctx.createGainNode():e.ctx.createGain(),o._node.gain.setValueAtTime(h,e.ctx.currentTime),o._node.paused=!0,o._node.connect(e.masterGain)):e.noAudio||(o._node=e._obtainHtml5Audio(),o._errorFn=o._errorListener.bind(o),o._node.addEventListener("error",o._errorFn,!1),o._loadFn=o._loadListener.bind(o),o._node.addEventListener(e._canPlayEvent,o._loadFn,!1),o._endFn=o._endListener.bind(o),o._node.addEventListener("ended",o._endFn,!1),o._node.src=l._src,o._node.preload=l._preload===!0?"auto":l._preload,o._node.volume=h*e.volume(),o._node.load()),o},reset:function(){var o=this,l=o._parent;return o._muted=l._muted,o._loop=l._loop,o._volume=l._volume,o._rate=l._rate,o._seek=0,o._rateSeek=0,o._paused=!0,o._ended=!0,o._sprite="__default",o._id=++e._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,l=o._parent;l._duration=Math.ceil(o._node.duration*10)/10,Object.keys(l._sprite).length===0&&(l._sprite={__default:[0,l._duration*1e3]}),l._state!=="loaded"&&(l._state="loaded",l._emit("load"),l._loadQueue()),o._node.removeEventListener(e._canPlayEvent,o._loadFn,!1)},_endListener:function(){var o=this,l=o._parent;l._duration===1/0&&(l._duration=Math.ceil(o._node.duration*10)/10,l._sprite.__default[1]===1/0&&(l._sprite.__default[1]=l._duration*1e3),l._ended(o)),o._node.removeEventListener("ended",o._endFn,!1)}};var s={},r=function(o){var l=o._src;if(s[l]){o._duration=s[l].duration,c(o);return}if(/^data:[^;]+;base64,/.test(l)){for(var h=atob(l.split(",")[1]),B=new Uint8Array(h.length),E=0;E<h.length;++E)B[E]=h.charCodeAt(E);g(B.buffer,o)}else{var d=new XMLHttpRequest;d.open(o._xhr.method,l,!0),d.withCredentials=o._xhr.withCredentials,d.responseType="arraybuffer",o._xhr.headers&&Object.keys(o._xhr.headers).forEach(function(C){d.setRequestHeader(C,o._xhr.headers[C])}),d.onload=function(){var C=(d.status+"")[0];if(C!=="0"&&C!=="2"&&C!=="3"){o._emit("loaderror",null,"Failed loading audio file with status: "+d.status+".");return}g(d.response,o)},d.onerror=function(){o._webAudio&&(o._html5=!0,o._webAudio=!1,o._sounds=[],delete s[l],o.load())},a(d)}},a=function(o){try{o.send()}catch{o.onerror()}},g=function(o,l){var h=function(){l._emit("loaderror",null,"Decoding audio data failed.")},B=function(E){E&&l._sounds.length>0?(s[l._src]=E,c(l,E)):h()};typeof Promise<"u"&&e.ctx.decodeAudioData.length===1?e.ctx.decodeAudioData(o).then(B).catch(h):e.ctx.decodeAudioData(o,B,h)},c=function(o,l){l&&!o._duration&&(o._duration=l.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(e.usingWebAudio){try{typeof AudioContext<"u"?e.ctx=new AudioContext:typeof webkitAudioContext<"u"?e.ctx=new webkitAudioContext:e.usingWebAudio=!1}catch{e.usingWebAudio=!1}e.ctx||(e.usingWebAudio=!1);var o=/iP(hone|od|ad)/.test(e._navigator&&e._navigator.platform),l=e._navigator&&e._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),h=l?parseInt(l[1],10):null;if(o&&h&&h<9){var B=/safari/.test(e._navigator&&e._navigator.userAgent.toLowerCase());e._navigator&&!B&&(e.usingWebAudio=!1)}e.usingWebAudio&&(e.masterGain=typeof e.ctx.createGain>"u"?e.ctx.createGainNode():e.ctx.createGain(),e.masterGain.gain.setValueAtTime(e._muted?0:e._volume,e.ctx.currentTime),e.masterGain.connect(e.ctx.destination)),e._setup()}};A.Howler=e,A.Howl=i,typeof Ve<"u"?(Ve.HowlerGlobal=t,Ve.Howler=e,Ve.Howl=i,Ve.Sound=n):typeof window<"u"&&(window.HowlerGlobal=t,window.Howler=e,window.Howl=i,window.Sound=n)})();(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){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(e);return i},HowlerGlobal.prototype.pos=function(e,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 e=="number")s._pos=[e,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(e,i,n,s,r,a){var g=this;if(!g.ctx||!g.ctx.listener)return g;var c=g._orientation;if(i=typeof i!="number"?c[1]:i,n=typeof n!="number"?c[2]:n,s=typeof s!="number"?c[3]:s,r=typeof r!="number"?c[4]:r,a=typeof a!="number"?c[5]:a,typeof e=="number")g._orientation=[e,i,n,s,r,a],typeof g.ctx.listener.forwardX<"u"?(g.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),g.ctx.listener.forwardY.setTargetAtTime(i,Howler.ctx.currentTime,.1),g.ctx.listener.forwardZ.setTargetAtTime(n,Howler.ctx.currentTime,.1),g.ctx.listener.upX.setTargetAtTime(s,Howler.ctx.currentTime,.1),g.ctx.listener.upY.setTargetAtTime(r,Howler.ctx.currentTime,.1),g.ctx.listener.upZ.setTargetAtTime(a,Howler.ctx.currentTime,.1)):g.ctx.listener.setOrientation(e,i,n,s,r,a);else return c;return g},Howl.prototype.init=(function(e){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}]:[],e.call(this,i)}})(Howl.prototype.init),Howl.prototype.stereo=function(e,i){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"stereo",action:function(){n.stereo(e,i)}}),n;var s=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof i>"u")if(typeof e=="number")n._stereo=e,n._pos=[e,0,0];else return n._stereo;for(var r=n._getSoundIds(i),a=0;a<r.length;a++){var g=n._soundById(r[a]);if(g)if(typeof e=="number")g._stereo=e,g._pos=[e,0,0],g._node&&(g._pannerAttr.panningModel="equalpower",(!g._panner||!g._panner.pan)&&t(g,s),s==="spatial"?typeof g._panner.positionX<"u"?(g._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),g._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),g._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):g._panner.setPosition(e,0,0):g._panner.pan.setValueAtTime(e,Howler.ctx.currentTime)),n._emit("stereo",g._id);else return g._stereo}return n},Howl.prototype.pos=function(e,i,n,s){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"pos",action:function(){r.pos(e,i,n,s)}}),r;if(i=typeof i!="number"?0:i,n=typeof n!="number"?-.5:n,typeof s>"u")if(typeof e=="number")r._pos=[e,i,n];else return r._pos;for(var a=r._getSoundIds(s),g=0;g<a.length;g++){var c=r._soundById(a[g]);if(c)if(typeof e=="number")c._pos=[e,i,n],c._node&&((!c._panner||c._panner.pan)&&t(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(i,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(n,Howler.ctx.currentTime)):c._panner.setPosition(e,i,n)),r._emit("pos",c._id);else return c._pos}return r},Howl.prototype.orientation=function(e,i,n,s){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"orientation",action:function(){r.orientation(e,i,n,s)}}),r;if(i=typeof i!="number"?r._orientation[1]:i,n=typeof n!="number"?r._orientation[2]:n,typeof s>"u")if(typeof e=="number")r._orientation=[e,i,n];else return r._orientation;for(var a=r._getSoundIds(s),g=0;g<a.length;g++){var c=r._soundById(a[g]);if(c)if(typeof e=="number")c._orientation=[e,i,n],c._node&&(c._panner||(c._pos||(c._pos=r._pos||[0,0,-.5]),t(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(i,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(n,Howler.ctx.currentTime)):c._panner.setOrientation(e,i,n)),r._emit("orientation",c._id);else return c._orientation}return r},Howl.prototype.pannerAttr=function(){var e=this,i=arguments,n,s,r;if(!e._webAudio)return e;if(i.length===0)return e._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}),e._pannerAttr={coneInnerAngle:typeof n.pannerAttr.coneInnerAngle<"u"?n.pannerAttr.coneInnerAngle:e._coneInnerAngle,coneOuterAngle:typeof n.pannerAttr.coneOuterAngle<"u"?n.pannerAttr.coneOuterAngle:e._coneOuterAngle,coneOuterGain:typeof n.pannerAttr.coneOuterGain<"u"?n.pannerAttr.coneOuterGain:e._coneOuterGain,distanceModel:typeof n.pannerAttr.distanceModel<"u"?n.pannerAttr.distanceModel:e._distanceModel,maxDistance:typeof n.pannerAttr.maxDistance<"u"?n.pannerAttr.maxDistance:e._maxDistance,refDistance:typeof n.pannerAttr.refDistance<"u"?n.pannerAttr.refDistance:e._refDistance,rolloffFactor:typeof n.pannerAttr.rolloffFactor<"u"?n.pannerAttr.rolloffFactor:e._rolloffFactor,panningModel:typeof n.pannerAttr.panningModel<"u"?n.pannerAttr.panningModel:e._panningModel});else return r=e._soundById(parseInt(i[0],10)),r?r._pannerAttr:e._pannerAttr;else i.length===2&&(n=i[0],s=parseInt(i[1],10));for(var a=e._getSoundIds(s),g=0;g<a.length;g++)if(r=e._soundById(a[g]),r){var c=r._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 u=r._panner;u||(r._pos||(r._pos=e._pos||[0,0,-.5]),t(r,"spatial"),u=r._panner),u.coneInnerAngle=c.coneInnerAngle,u.coneOuterAngle=c.coneOuterAngle,u.coneOuterGain=c.coneOuterGain,u.distanceModel=c.distanceModel,u.maxDistance=c.maxDistance,u.refDistance=c.refDistance,u.rolloffFactor=c.rolloffFactor,u.panningModel=c.panningModel}return e},Sound.prototype.init=(function(e){return function(){var i=this,n=i._parent;i._orientation=n._orientation,i._stereo=n._stereo,i._pos=n._pos,i._pannerAttr=n._pannerAttr,e.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(e){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)),e.call(this)}})(Sound.prototype.reset);var t=function(e,i){i=i||"spatial",i==="spatial"?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,typeof e._panner.positionX<"u"?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),typeof e._panner.orientationX<"u"?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0)}})()})(Ri)),Ri}var de=Hl();const Ll=Er({__proto__:null,default:Nl(de)},[de]),no=["load","loaderror","playerror","play","end","pause","stop","mute","volume","rate","seek","fade","unlock"];let so=class extends vt{constructor(){super(...arguments),this.sounds=[],this.eventsFn=[],this.maxVolume=1,this.maxDistance=100}onInit(t){}onMount(t){const{props:e}=t,i=e.context.tick,n=e.sound.value??e.sound;if(!n.src)return;const{src:s,autoplay:r,loop:a,volume:g,spatial:c}=n,u=Array.isArray(s)?s:[s];for(const o of u){if(!o)continue;const l=new de.Howl({src:o,autoplay:r,loop:a,volume:g});for(let h of no){if(!n[h])continue;const B=n[h];this.eventsFn.push(B),l.on(h,B)}this.sounds.push(l)}if(c&&this.sounds.length>0){const{soundListenerPosition:o}=e.context;if(!o)throw new ei("SoundListenerPosition directive is required for spatial sound in component parent");const{x:l,y:h}=o;this.tickSubscription=nt(()=>{i();const{x:B,y:E}=t.componentInstance,d=as(B,E,l(),h()),C=Math.max(this.maxVolume-d/this.maxDistance,0);this.sounds.forEach(w=>w.volume(C))}).subscription}this.onUpdate(n)}onUpdate(t){const e=t.value??t,{volume:i,loop:n,mute:s,seek:r,playing:a,rate:g,spatial:c}=e;this.sounds.forEach(u=>{i!==void 0&&u.volume(i),n!==void 0&&u.loop(n),s!==void 0&&u.mute(s),r!==void 0&&u.seek(r),a!==void 0&&(a?u.play():u.pause()),g!==void 0&&u.rate(g)}),c&&(this.maxVolume=c.maxVolume??this.maxVolume,this.maxDistance=c.maxDistance??this.maxDistance)}onDestroy(){this.sounds.forEach(t=>{t.stop();for(let e of no){const i=this.eventsFn.find(n=>n===this.eventsFn[e]);i&&t.off(e,i)}}),this.sounds=[],this.eventsFn=[],this.tickSubscription?.unsubscribe()}};class Ul extends vt{onMount(t){t.props.context.soundListenerPosition=t.propObservables?.soundListenerPosition}onInit(t){}onUpdate(t){}onDestroy(){}}bt("sound",so),bt("soundListenerPosition",Ul);const Tl=(A,t,e)=>{A.props.context={...A.props.context??{},[t]:e}};class oo extends vt{constructor(){super(...arguments),this.elementRef=null}onInit(t){this.elementRef=t}onMount(t){Tl(t,"drop",t)}onUpdate(){}onDestroy(){this.elementRef=null}}class ro extends vt{constructor(){super(...arguments),this.elementRef=null,this.stageRef=null,this.offsetInParent=new v.Point,this.isDragging=!1,this.viewport=null,this.animationFrameId=null,this.lastPointerPosition=new v.Point,this.pressedKeys=new Set,this.pointerIsDown=!1,this.onDragMoveHandler=()=>{},this.onDragEndHandler=()=>{},this.onDragStartHandler=()=>{},this.onKeyDownHandler=()=>{},this.onKeyUpHandler=()=>{},this.subscriptions=[]}onInit(t){this.elementRef=t,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(t){const{rootElement:e,canvasSize:i,viewport:n,tick:s}=t.props.context,r=t.componentInstance,a=this.dragProps;if(Object.keys(a).length===0){this.onDestroy();return}if(!r||(this.stageRef=e.componentInstance,!this.stageRef))return;this.viewport=n,r.eventMode="static",this.stageRef.eventMode="static";const c=nt(()=>{this.stageRef&&(this.stageRef.hitArea=new v.Rectangle(0,0,i().width,i().height))});r.on("pointerdown",this.onDragStartHandler),this.stageRef.on("pointerup",this.onDragEndHandler),this.stageRef.on("pointerupoutside",this.onDragEndHandler),a.keyToPress&&a.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(){const t=this.elementRef?.props.drag,e=Qt(t?.value??t,{snap:0,viewport:{},direction:"all",keyToPress:[]});return e.viewport=Qt(e.viewport,{edgeThreshold:300,maxSpeed:40}),e}get axis(){const t=this.dragProps.direction(),e={x:!0,y:!0};return t==="x"&&(e.y=!1),t==="y"&&(e.x=!1),e}onDragMove(t){if(!this.isDragging||!this.elementRef?.componentInstance||!this.elementRef.componentInstance.parent)return;const e=this.elementRef.componentInstance,i=e.parent,n=this.dragProps,s=this.elementRef.propObservables,r=Ml(n?.snap()??0);n?.move?.(t);const a=i.toLocal(t.global),g=a.x-this.offsetInParent.x,c=a.y-this.offsetInParent.y;n?.snap()?(e.position.x=r(g),e.position.y=r(c)):(this.axis.x&&(e.position.x=g),this.axis.y&&(e.position.y=c)),this.lastPointerPosition.copyFrom(t.global);const{x:u,y:o}=s,l=(h,B)=>{Ee(h)?h.dependencies.forEach(E=>{E.set(B)}):N(h)&&h.set(B)};u!==void 0&&l(u,e.position.x),o!==void 0&&l(o,e.position.y)}updateViewportPosition(t){if(!this.viewport||!this.elementRef)return;const e=this.dragProps,i=e?.viewport?.edgeThreshold(),n=e?.viewport?.maxSpeed(),s=0,r=this.viewport.screenWidth,a=0,g=this.viewport.screenHeight,c=this.elementRef.componentInstance,u=t.x-s,o=r-t.x,l=t.y-a,h=g-t.y;let B=0,E=0;if(u<i?B=-(n*(1-u/i)):o<i&&(B=n*(1-o/i)),l<i?E=-(n*(1-l/i)):h<i&&(E=n*(1-h/i)),B!==0||E!==0){const d=this.viewport.center;this.viewport.moveCenter(this.viewport.center.x+B,this.viewport.center.y+E),this.axis.x&&d.x!==this.viewport.center.x&&(c.position.x+=B),this.axis.y&&d.y!==this.viewport.center.y&&(c.position.y+=E)}}onDragEnd(){if(this.pointerIsDown=!1,!this.isDragging)return;const t=this.dragProps;this.isDragging=!1,t?.end?.(),this.stageRef&&this.stageRef.off("pointermove",this.onDragMoveHandler)}onKeyDown(t){this.pressedKeys.add(t.code),this.pressedKeys.add(t.key.toLowerCase()),this.pointerIsDown&&!this.isDragging&&this.areRequiredKeysPressed()&&this.startDrag()}onKeyUp(t){this.pressedKeys.delete(t.code),this.pressedKeys.delete(t.key.toLowerCase()),this.isDragging&&!this.areRequiredKeysPressed()&&this.onDragEnd()}areRequiredKeysPressed(){const t=this.dragProps.keyToPress?this.dragProps.keyToPress:[];return!t||t.length===0?!0:t.some(e=>this.pressedKeys.has(e)?!0:e.toLowerCase()==="space"?this.pressedKeys.has("Space")||this.pressedKeys.has(" "):e.toLowerCase()==="shift"?this.pressedKeys.has("ShiftLeft")||this.pressedKeys.has("ShiftRight"):e.toLowerCase()==="control"||e.toLowerCase()==="ctrl"?this.pressedKeys.has("ControlLeft")||this.pressedKeys.has("ControlRight"):e.toLowerCase()==="alt"?this.pressedKeys.has("AltLeft")||this.pressedKeys.has("AltRight"):!1)}onPointerDown(t){if(!this.elementRef?.componentInstance||!this.stageRef||!this.elementRef.componentInstance.parent)return;this.pointerIsDown=!0;const e=this.elementRef.componentInstance,n=e.parent.toLocal(t.global);this.offsetInParent.x=n.x-e.position.x,this.offsetInParent.y=n.y-e.position.y,this.lastPointerPosition.copyFrom(t.global),this.areRequiredKeysPressed()&&this.startDrag()}startDrag(){if(this.isDragging||!this.stageRef)return;this.isDragging=!0,this.dragProps?.start?.(),this.stageRef.on("pointermove",this.onDragMoveHandler)}onUpdate(t){t.type&&t.type==="reset"&&(this.onDestroy(),this.onMount(this.elementRef))}onDestroy(){this.subscriptions.forEach(e=>e.unsubscribe());const t=this.elementRef?.componentInstance;t&&t.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}}bt("drag",ro),bt("drop",oo);class ao extends vt{onInit(t){}onMount(t){const{image:e}=t.props.transition,i=new v.Sprite(v.Texture.from(e));i.texture.baseTexture.wrapMode=v.WRAP_MODES.REPEAT;const n=new v.DisplacementFilter(i),s=t.componentInstance;s.filters=[n],s.addChild(i),setTimeout(()=>{Zs({from:0,to:1,duration:500,onUpdate:r=>{n.scale.x=r,n.scale.y=r}})},5e3)}onUpdate(t){}onDestroy(){}}bt("transition",ao);function qe(A){return A?.start&&A?.listen}function Ol(A){const t=Y({config:A,value:0,resolve:e=>{}});return{start:e=>new Promise(i=>{const n=Math.random();t.set({config:{...A,...e},resolve:i,value:n})}),listen:()=>({config:A,seed:t()})}}function yA(A,t){if(!qe(A))throw new Error("In 'on(arg)' must have a trigger signal type");let e;return nt(()=>{const n=A.listen(),s=n?.seed;if(s){if(e===void 0){e=s.value;return}if(s.value!==e){e=s.value;try{const r=t(n?.seed.config);r&&typeof r.then=="function"?r.then(a=>s.resolve(a)).catch(()=>s.resolve(void 0)):s.resolve(r)}catch{s.resolve(void 0)}}}}).subscription}class lo extends vt{constructor(){super(...arguments),this.elementRef=null,this.originalPosition=new v.Point,this.progressSignal=null,this.shakeSubscription=null,this.positionEffect=null,this.currentShakeConfig=null}onInit(t){this.elementRef=t}onMount(t){const e=t.componentInstance;if(!e)return;const i=this.shakeProps;!i.trigger||!qe(i.trigger)||(this.originalPosition.set(e.position.x,e.position.y),this.shakeSubscription&&(this.shakeSubscription.unsubscribe(),this.shakeSubscription=null),this.shakeSubscription=yA(i.trigger,async n=>{await this.performShake(n)}))}get shakeProps(){const t=this.elementRef?.props.shake;return Qt(t?.value??t,{intensity:10,duration:500,frequency:10,direction:"both"})}async performShake(t){if(!this.elementRef?.componentInstance)return;const e=this.elementRef.componentInstance,i=this.shakeProps,n=t?.intensity??i.intensity(),s=t?.duration??i.duration(),r=t?.frequency??i.frequency(),a=t?.direction??i.direction();this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null);const g=this.originalPosition.x===0&&this.originalPosition.y===0&&e.parent,c=e.position.x!==this.originalPosition.x||e.position.y!==this.originalPosition.y;(g||c)&&this.originalPosition.set(e.position.x,e.position.y),e.position.x=this.originalPosition.x,e.position.y=this.originalPosition.y,i.onStart?.(),this.currentShakeConfig={intensity:n,frequency:r,direction:a,randomSeed:Math.random()*1e3},this.progressSignal?await this.progressSignal.set(0,{duration:0}):this.progressSignal=Di(0,{duration:s,ease:l=>l});const u=a!=="y",o=a!=="x";this.positionEffect=nt(()=>{if(!e||!this.progressSignal||!this.currentShakeConfig)return;const l=this.progressSignal(),h=this.currentShakeConfig,B=1-l,E=l*h.frequency,d=Math.sin(E*Math.PI*2),C=Math.sin(h.randomSeed+l*10)*.25+1,w=u?d*h.intensity*B*C:0,m=o?d*h.intensity*B*C:0;e.position.x=this.originalPosition.x+w,e.position.y=this.originalPosition.y+m}).subscription,await this.progressSignal.set(1,{duration:s}),e&&(e.position.x=this.originalPosition.x,e.position.y=this.originalPosition.y),this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.currentShakeConfig=null,i.onComplete?.()}onUpdate(t){t.type&&t.type==="reset"&&(this.onDestroy(),this.elementRef&&this.onMount(this.elementRef))}onDestroy(){if(this.progressSignal&&(this.progressSignal.set(0,{duration:0}),this.progressSignal=null),this.positionEffect&&(this.positionEffect.unsubscribe(),this.positionEffect=null),this.currentShakeConfig=null,this.elementRef?.componentInstance){const t=this.elementRef.componentInstance;t.position.x=this.originalPosition.x,t.position.y=this.originalPosition.y}this.shakeSubscription&&(this.shakeSubscription.unsubscribe(),this.shakeSubscription=null),this.elementRef=null}}bt("shake",lo);class go extends vt{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(t){this.elementRef=t}onMount(t){const e=t.componentInstance;if(!e)return;const i=this.flashProps;if(!i.trigger||!qe(i.trigger))return;this.originalAlpha===1&&!i.originalAlpha?this.originalAlpha=e.alpha??1:i.originalAlpha!==void 0&&(this.originalAlpha=i.originalAlpha);const n=e.tint;this.originalTint===16777215&&!i.originalTint?this.originalTint=(N(n)?n():n)??16777215:i.originalTint!==void 0&&(this.originalTint=i.originalTint),this.flashSubscription=yA(i.trigger,async s=>{await this.performFlash(s)})}get flashProps(){const t=this.elementRef?.props.flash;return Qt(t?.value??t,{type:"alpha",duration:300,cycles:1,alpha:.3,tint:16777215})}async performFlash(t){if(!this.elementRef?.componentInstance)return;const e=this.elementRef.componentInstance,i=this.flashProps,n=t?.type??(typeof i.type=="function"?i.type():i.type),s=t?.duration??(typeof i.duration=="function"?i.duration():i.duration),r=t?.cycles??(typeof i.cycles=="function"?i.cycles():i.cycles),a=t?.alpha??(typeof i.alpha=="function"?i.alpha():i.alpha),g=t?.tint??(typeof i.tint=="function"?i.tint():i.tint);this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),e.alpha=this.originalAlpha;const c=e.tint;if(c!==void 0){const l=typeof this.originalTint=="number"?this.originalTint:16777215;N(c)?c.set(l):e.tint=l}i.onStart?.(),this.progressSignal&&await this.progressSignal.set(0,{duration:0});const u={type:n,duration:s,cycles:r,flashAlpha:a,flashTint:g};if(this.currentFlashConfig=u,this.progressSignal||(this.progressSignal=Di(0,{duration:s,ease:l=>l})),(n==="alpha"||n==="both")&&(this.alphaEffect=nt(()=>{if(!e||!this.progressSignal||!this.currentFlashConfig)return;const l=this.progressSignal(),h=this.currentFlashConfig,B=l*h.cycles%1,E=B<.5?B*2:1-(B-.5)*2,d=this.originalAlpha+(h.flashAlpha-this.originalAlpha)*E;e.alpha=d}).subscription),(n==="tint"||n==="both")&&(this.tintEffect=nt(()=>{if(!e||!this.progressSignal||!this.currentFlashConfig)return;const l=e.tint;if(l===void 0)return;const h=N(l),B=this.progressSignal(),E=this.currentFlashConfig,d=B*E.cycles%1,C=d<.5?d*2:1-(d-.5)*2,w=this.originalTint>>16&255,m=this.originalTint>>8&255,b=this.originalTint&255,M=E.flashTint>>16&255,G=E.flashTint>>8&255,O=E.flashTint&255,K=Math.round(w+(M-w)*C),H=Math.round(m+(G-m)*C),T=Math.round(b+(O-b)*C),W=K<<16|H<<8|T;h?l.set(W):e.tint=W}).subscription),await this.progressSignal.set(1,{duration:s}),this.currentFlashConfig===u&&e){e.alpha=this.originalAlpha;const l=e.tint;if(l!==void 0){const h=typeof this.originalTint=="number"?this.originalTint:16777215;N(l)?l.set(h):e.tint=h}this.alphaEffect&&(this.alphaEffect.unsubscribe(),this.alphaEffect=null),this.tintEffect&&(this.tintEffect.unsubscribe(),this.tintEffect=null),this.currentFlashConfig=null}i.onComplete?.()}onUpdate(t){t.type&&t.type==="reset"&&(this.onDestroy(),this.elementRef&&this.onMount(this.elementRef))}onDestroy(){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,this.elementRef?.componentInstance){const t=this.elementRef.componentInstance;t.alpha=this.originalAlpha;const e=t.tint;if(e!==void 0){const i=typeof this.originalTint=="number"?this.originalTint:16777215;N(e)?e.set(i):t.tint=i}}this.flashSubscription&&(this.flashSubscription=null),this.elementRef=null}}bt("flash",go);function qt(A){return A&&typeof A=="string"?A.endsWith("%"):!1}const co=["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 pt(A){return class extends A{constructor(){super(...arguments),this.#t=null,this.isFlex=!1,this.fullProps={},this.isMounted=!1,this._anchorPoints=new v.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,this.#e=new Map,this.#A=null,this.#i=null}#t;#e;#A;#i;getElement(){return this.#i}get deltaRatio(){return this.#t?.scheduler?.tick.value.deltaRatio}get parentIsFlex(){return this.disableLayout?!1:this.parent?.isFlex}onInit(e){this._id=e.id;for(let i of co)if(e[i]&&!this.overrideProps.includes(i)){this.eventMode="static";const n=e[i],s=(...r)=>{if(!(this.#i&&St(this.#i)))return n(...r)};i==="click"?(this.on("pointertap",s),this.#e.set("pointertap",s)):(this.on(i,s),this.#e.set(i,s))}(e.onBeforeDestroy||e["on-before-destroy"])&&(this.onBeforeDestroy=e.onBeforeDestroy||e["on-before-destroy"]),(e.onAfterMount||e["on-after-mount"])&&(this.onAfterMount=e.onAfterMount||e["on-after-mount"]),(e.justifyContent||e.alignItems||e.flexDirection||e.flexWrap||e.alignContent||e.display=="flex"||qt(e.width)||qt(e.height)||e.isRoot)&&(this.layout={},this.isFlex=!0),this.subjectInit.next(this)}async onMount(e,i){if(!this.destroyed&&(this.#i=e,this.#t=e.props.context,e.parent)){const n=e.parent.componentInstance;if(n.isFlex&&!this.layout&&!this.disableLayout)try{this.layout={}}catch(r){console.warn("Failed to set layout:",r)}i===void 0?n.addChild(this):n.addChildAt(this,i),this.isMounted=!0,this.onUpdate(e.props);const s=r=>{r.computedLayout&&(this.#A={width:r.computedLayout.width,height:r.computedLayout.height})};this.on("layout",s),this.#e.set("layout",s),this.onAfterMount&&await this.onAfterMount()}}onUpdate(e){if(this.fullProps={...this.fullProps,...e},this.destroyed||!this.#t||!this.parent)return;e.x!==void 0&&this.setX(e.x),e.y!==void 0&&this.setY(e.y),e.scale!==void 0&&Ae(this.scale,e.scale),e.anchor!==void 0&&!this.isCustomAnchor&&Ae(this.anchor,e.anchor),e.width!==void 0&&this.setWidth(e.width),e.height!==void 0&&this.setHeight(e.height),e.minWidth!==void 0&&this.setMinWidth(e.minWidth),e.minHeight!==void 0&&this.setMinHeight(e.minHeight),e.maxWidth!==void 0&&this.setMaxWidth(e.maxWidth),e.maxHeight!==void 0&&this.setMaxHeight(e.maxHeight),e.aspectRatio!==void 0&&this.setAspectRatio(e.aspectRatio),e.flexGrow!==void 0&&this.setFlexGrow(e.flexGrow),e.flexShrink!==void 0&&this.setFlexShrink(e.flexShrink),e.flexBasis!==void 0&&this.setFlexBasis(e.flexBasis),e.rowGap!==void 0&&this.setRowGap(e.rowGap),e.columnGap!==void 0&&this.setColumnGap(e.columnGap),e.top!==void 0&&this.setTop(e.top),e.left!==void 0&&this.setLeft(e.left),e.right!==void 0&&this.setRight(e.right),e.bottom!==void 0&&this.setBottom(e.bottom),e.objectFit!==void 0&&this.setObjectFit(e.objectFit),e.objectPosition!==void 0&&this.setObjectPosition(e.objectPosition),e.transformOrigin!==void 0&&this.setTransformOrigin(e.transformOrigin),e.skew!==void 0&&Ae(this.skew,e.skew),e.tint&&(this.tint=e.tint),e.rotation!==void 0&&(this.rotation=e.rotation),e.angle!==void 0&&(this.angle=e.angle),e.zIndex!==void 0&&(this.zIndex=e.zIndex),e.roundPixels!==void 0&&(this.roundPixels=e.roundPixels),e.cursor&&(this.cursor=e.cursor),e.visible!==void 0&&(this.visible=e.visible),e.alpha!==void 0&&(this.alpha=e.alpha),e.pivot&&Ae(this.pivot,e.pivot),e.flexDirection&&this.setFlexDirection(e.flexDirection),e.flexWrap&&this.setFlexWrap(e.flexWrap),e.justifyContent&&this.setJustifyContent(e.justifyContent),e.alignItems&&this.setAlignItems(e.alignItems),e.alignContent&&this.setAlignContent(e.alignContent),e.alignSelf&&this.setAlignSelf(e.alignSelf),e.margin&&this.setMargin(e.margin),e.padding&&this.setPadding(e.padding),e.gap&&this.setGap(e.gap),e.border&&this.setBorder(e.border),e.positionType&&this.setPositionType(e.positionType),e.filters&&(this.filters=e.filters),e.maskOf&&dt(e.maskOf)&&(e.maskOf.componentInstance.mask=this),e.blendMode&&(this.blendMode=e.blendMode),e.filterArea&&(this.filterArea=e.filterArea);const i=this.filters||[];if(e.blur){let n=i.find(s=>s instanceof v.BlurFilter);if(!n){const s=typeof e.blur=="number"?{strength:e.blur}:e.blur;n=new v.BlurFilter(s),i.push(n)}Object.assign(n,e.blur)}this.filters=i}async onDestroy(e,i){for(const[n,s]of this.#e)this.off(n,s);this.#e.clear(),this.#i=null,this.onBeforeDestroy&&await this.onBeforeDestroy(),i&&i(),super.destroy()}setFlexDirection(e){this.layout={flexDirection:e}}setFlexWrap(e){this.layout={flexWrap:e}}setAlignContent(e){this.layout={alignContent:e}}setAlignSelf(e){this.layout={alignSelf:e}}setAlignItems(e){this.layout={alignItems:e}}setJustifyContent(e){this.layout={justifyContent:e}}setPosition(e){e instanceof Array?e.length===2?this.layout={positionY:e[0],positionX:e[1]}:e.length===4&&(this.layout={positionTop:e[0],positionRight:e[1],positionBottom:e[2],positionLeft:e[3]}):this.layout={position:e}}setX(e){e=e+this.getWidth()*this._anchorPoints.x,this.parentIsFlex?(this.x=e,this.layout={x:e}):this.x=e}setY(e){e=e+this.getHeight()*this._anchorPoints.y,this.parentIsFlex?(this.y=e,this.layout={y:e}):this.y=e}setPadding(e){e instanceof Array?e.length===2?this.layout={paddingVertical:e[0],paddingHorizontal:e[1]}:e.length===4&&(this.layout={paddingTop:e[0],paddingRight:e[1],paddingBottom:e[2],paddingLeft:e[3]}):this.layout={padding:e}}setMargin(e){e instanceof Array?e.length===2?this.layout={marginVertical:e[0],marginHorizontal:e[1]}:e.length===4&&(this.layout={marginTop:e[0],marginRight:e[1],marginBottom:e[2],marginLeft:e[3]}):this.layout={margin:e}}setGap(e){this.layout={gap:e}}setBorder(e){e instanceof Array?e.length===2?this.layout={borderVertical:e[0],borderHorizontal:e[1]}:e.length===4&&(this.layout={borderTop:e[0],borderRight:e[1],borderBottom:e[2],borderLeft:e[3]}):this.layout={border:e}}setPositionType(e){this.layout={position:e}}setWidth(e){this.displayWidth.set(e),this.parentIsFlex?this.layout={width:e}:this.width=e}setHeight(e){this.displayHeight.set(e),this.parentIsFlex?this.layout={height:e}:this.height=e}getWidth(){return qt(this.fullProps.width)?this.#A?.width!==void 0?this.#A.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(){return qt(this.fullProps.height)?this.#A?.height!==void 0?this.#A.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(e){this.layout={minWidth:e}}setMinHeight(e){this.layout={minHeight:e}}setMaxWidth(e){this.layout={maxWidth:e}}setMaxHeight(e){this.layout={maxHeight:e}}setAspectRatio(e){this.layout={aspectRatio:e}}setFlexGrow(e){this.layout={flexGrow:e}}setFlexShrink(e){this.layout={flexShrink:e}}setFlexBasis(e){this.layout={flexBasis:e}}setRowGap(e){this.layout={rowGap:e}}setColumnGap(e){this.layout={columnGap:e}}setTop(e){this.layout={top:e}}setLeft(e){this.layout={left:e}}setRight(e){this.layout={right:e}}setBottom(e){this.layout={bottom:e}}setObjectFit(e){try{this.layout={objectFit:e}}catch{}}setObjectPosition(e){try{this.layout={objectPosition:e}}catch{}}setTransformOrigin(e){try{this.layout={transformOrigin:e}}catch{}}}}class Pl{constructor(){this.assets=new Map,this.onProgressCallbacks=new Set,this.onCompleteCallbacks=new Set,this.assetCounter=0,this.isComplete=!1}registerAsset(t){const e=`asset_${this.assetCounter++}_${t}`;return this.assets.set(e,{progress:0,completed:!1}),this.isComplete=!1,this.updateGlobalProgress(),e}updateProgress(t,e){const i=this.assets.get(t);if(!i){console.warn(`Asset ${t} not found in tracker`);return}i.progress=Math.max(0,Math.min(1,e)),this.updateGlobalProgress()}completeAsset(t){const e=this.assets.get(t);if(!e){console.warn(`Asset ${t} not found in tracker`);return}e.progress=1,e.completed=!0,this.updateGlobalProgress(),this.checkCompletion()}removeAsset(t){this.assets.delete(t),this.updateGlobalProgress()}onProgress(t){this.onProgressCallbacks.add(t);try{t(this.getGlobalProgress())}catch(e){console.error("Error in onProgress callback:",e)}return()=>{this.onProgressCallbacks.delete(t)}}onComplete(t){return this.onCompleteCallbacks.add(t),this.isComplete&&t(),()=>{this.onCompleteCallbacks.delete(t)}}getGlobalProgress(){if(this.assets.size===0)return 1;let t=0;for(const e of this.assets.values())t+=e.progress;return t/this.assets.size}getAssetCount(){return this.assets.size}getCompletedCount(){let t=0;for(const e of this.assets.values())e.completed&&t++;return t}checkCompletion(){if(this.isComplete)return;Array.from(this.assets.values()).every(e=>e.completed)&&this.assets.size>0&&(this.isComplete=!0,this.onCompleteCallbacks.forEach(e=>{try{e()}catch(i){console.error("Error in onComplete callback:",i)}}))}updateGlobalProgress(){const t=this.getGlobalProgress();Array.from(this.onProgressCallbacks).forEach(i=>{try{i(t)}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}}st("Canvas",class extends pt(v.Container){});const Jl=async(A={})=>{let{cursorStyles:t,width:e,height:i,class:n}=Qt(A);A.width||(e=Y(800)),A.height||(i=Y(600));const s=Y({width:0,height:0});A.isRoot=!0;const r=new Pl,a={...A,context:{canvasSize:s,app:Y(null),globalLoader:r},width:e?.(),height:i?.()};A.tick?a.context.tick=A.tick:a.context.tick=a.tick=Y({timestamp:0,deltaTime:0,frame:0,deltaRatio:1}),globalThis.__CANVAS_ENGINE_TICK__=a.context.tick;const g=ct("Canvas",a);return g.render=(c,u)=>{if(!u)return;const o=u.renderer,l=o.view.canvas;globalThis.__PIXI_STAGE__=g.componentInstance,globalThis.__PIXI_RENDERER__=o,A.tickStart!==!1&&g.directives.tick.start(),nt(()=>{g.propObservables.tick(),o.render(g.componentInstance)}),u.stage=g.componentInstance,u.stage.layout={width:u.screen.width,height:u.screen.height,justifyContent:A.justifyContent,alignItems:A.alignItems},s.set({width:u.screen.width,height:u.screen.height}),u.renderer.on("resize",(B,E)=>{s.set({width:B,height:E}),u.stage.layout&&(u.stage.layout={width:B,height:E})}),A.tickStart!==!1&&g.directives.tick.start(),u.ticker.add(()=>{g.propObservables.tick()}),t&&nt(()=>{o.events.cursorStyles=t()}),n&&nt(()=>{l.classList.add(n())});const h=c.querySelector("canvas");h?c.replaceChild(l,h):c.appendChild(l),a.context.app.set(u)},g};class _i extends pt(v.Container){constructor(){super(...arguments),this.isCustomAnchor=!0}onUpdate(t){t.anchor&&(Ae(this._anchorPoints,t.anchor),t.pivot=[this.getWidth()*this._anchorPoints.x,this.getHeight()*this._anchorPoints.y]),super.onUpdate(t),t.sortableChildren!=null&&(this.sortableChildren=t.sortableChildren)}async onMount(t){await super.onMount(t);const{componentInstance:e,props:i}=t,{pixiChildren:n}=i;n&&n.forEach(a=>{e.addChild(a)});const s=qt(i.width),r=qt(i.height);(s||r)&&this.on("layout",a=>{const g=a.computedLayout;s&&g.width!==void 0&&this.displayWidth.set(g.width),r&&g.height!==void 0&&this.displayHeight.set(g.height)})}}st("Container",_i);const Xe=A=>(st("Container",_i),ct("Container",A));class Kl extends pt(v.Graphics){constructor(){super(...arguments),this.isCustomAnchor=!0}async onInit(t){await super.onInit(t),this.setObjectFit("none")}async onMount(t,e){await super.onMount(t,e);const{props:i,propObservables:n}=t,s=N(n?.width)?n.width:Y(i.width||0),r=N(n?.height)?n.height:Y(i.height||0),a=N(n?.anchor)?n.anchor:Y(i.anchor||[0,0]);this._width=s,this._height=r;const g=qt(s()),c=qt(r());i.draw&&(this.clearEffect=nt(()=>{const u=s(),o=r(),l=a();typeof u=="string"||typeof o=="string"||(this.clear(),i.draw?.(this,u,o,l),this.subjectInit.next(this))})),this.on("layout",u=>{const o=u.computedLayout;g&&N(s)&&s()!==o.width&&s.set(o.width),c&&N(r)&&r()!==o.height&&r.set(o.height)})}onUpdate(t){super.onUpdate(t),t.width!==void 0&&this._width&&this._width()!==t.width&&this._width.set(t.width),t.height!==void 0&&this._height&&this._height()!==t.height&&this._height.set(t.height)}async onDestroy(t,e){const i=async()=>{this.clearEffect?.subscription.unsubscribe(),e()};await super.onDestroy(t,i)}}st("Graphics",Kl);function ne(A){return ct("Graphics",A)}const Fi=(A,t,e)=>{const i=new v.ObservablePoint({_onUpdate:()=>{}},0,0);Ae(i,A);const n=i.x,s=i.y;return{x:-n*t,y:-s*e}};function ho(A){const{color:t,borderRadius:e,border:i}=Qt(A,{borderRadius:null,border:null});return ne({draw:(n,s,r,a)=>{const{x:g,y:c}=Fi(a,s,r);e()?n.roundRect(g,c,s,r,e()):n.rect(g,c,s,r),i&&n.stroke(i),n.fill(t())},...A})}function Gi(A){const{color:t,border:e,radius:i}=Qt(A,{border:null,radius:null});return ne({draw:(n,s,r,a)=>{const{x:g,y:c}=Fi(a,s,r);s==r||r==0?n.circle(g,c,i()||s):n.ellipse(g,c,s,r),e()&&n.stroke(e()),n.fill(t())},...A})}function uo(A){return Gi(A)}function Yl(A){const{color:t,border:e}=Qt(A,{border:null,color:"#000"});return ne({draw:(i,n,s,r)=>{const{x:a,y:g}=Fi(r,n,s);i.moveTo(a,g+s),i.lineTo(a+n/2,g),i.lineTo(a+n,g+s),i.lineTo(a,g+s),i.fill(t()),e&&i.stroke(e)},...A})}function Wl(A){return ne({draw:async t=>{if(A.src){const e=await v.Assets.load({src:A.src,data:{parseAsGraphicsContext:!0}}),i=new v.Graphics(e);t.context=i.context}else A.content?t.svg(A.content):A.svg&&t.svg(A.svg)},...A})}class jl extends pt(v.Mesh){constructor(){super({geometry:new v.Geometry})}onInit(t){if(super.onInit(t),t.geometry)try{this.geometry=t.geometry}catch(e){console.warn("Failed to set geometry:",e)}t.shader&&(this.shader=t.shader)}async onUpdate(t){if(super.onUpdate(t),t.geometry)try{this.geometry=t.geometry}catch(e){console.warn("Failed to update geometry:",e)}t.shader&&(this.shader=t.shader),t.texture?typeof t.texture=="string"?this.texture=await v.Assets.load(t.texture):this.texture=t.texture:t.image&&(this.texture=await v.Assets.load(t.image)),t.tint!==void 0&&(this.tint=t.tint),t.blendMode!==void 0&&(this.blendMode=t.blendMode),t.roundPixels!==void 0&&(this.roundPixels=t.roundPixels)}async onDestroy(t,e){const i=async()=>{e()};await super.onDestroy(t,i)}}st("Mesh",jl);const Vl=A=>ct("Mesh",A);k.currentSubscriptionsTracker=null,k.mountTracker=null;function Ni(A){k.mountTracker?.(A)}function ql(A){Ni(t=>{const{context:e}=t.props;let i;return e.tick&&(i=e.tick.observable.subscribe(({value:n})=>{St(t)||A(n,t)})),()=>{i?.unsubscribe()}})}function wA(A,t={},e){const i=new Set,n=new Set;k.currentSubscriptionsTracker=r=>{i.add(r)},k.mountTracker=r=>{n.add(r)},e[0]instanceof Array&&(e=e[0]);let s;return Array.isArray(A)?A.length===1?s=A[0]:s=wA(Xe,{},A):"tag"in A||A instanceof Z?s=A:s=A({...t,children:e}),s||(s={}),s.effectSubscriptions=Array.from(i),s.effectMounts=[...Array.from(n),...s.effectMounts??[]],t?.dependencies&&(s.props=s.props||{},s.props.dependencies=t.dependencies),s instanceof Promise&&s.then(r=>{r.props.isRoot&&n.forEach(a=>a(r))}),k.currentSubscriptionsTracker=null,k.mountTracker=null,s}function ht(A,t={},...e){return t?.dependencies?!t.dependencies.some(jt)&&t.dependencies.every(s=>N(s)?s()!==void 0:s!==void 0)?wA(A,t,e):new Z(n=>{$s(t.dependencies).then(()=>{const s=wA(A,t,e);n.next(s)})}):wA(A,t,e)}function Xl(A){return ht(Xe)}class Hi{constructor(t){this.segments=[],this.countingLengths=[],this.totalLength=0,this.init(t)}init(t){if(!t||!t.length)this.segments.push({p1:{x:0,y:0},p2:{x:0,y:0},l:0});else if(Array.isArray(t[0]))for(let e=0;e<t.length;++e){const i=t[e];let n=i[0];for(let s=1;s<i.length;++s){const r=i[s];this.segments.push({p1:n,p2:r,l:0}),n=r}}else{let e=t[0];for(let i=1;i<t.length;++i){const n=t[i];this.segments.push({p1:e,p2:n,l:0}),e=n}}for(let e=0;e<this.segments.length;++e){const{p1:i,p2:n}=this.segments[e],s=Math.sqrt((n.x-i.x)*(n.x-i.x)+(n.y-i.y)*(n.y-i.y));this.segments[e].l=s,this.totalLength+=s,this.countingLengths.push(this.totalLength)}}getRandPos(t){const e=Math.random()*this.totalLength;let i,n;if(this.segments.length===1)i=this.segments[0],n=e;else for(let a=0;a<this.countingLengths.length;++a)if(e<this.countingLengths[a]){i=this.segments[a],n=a===0?e:e-this.countingLengths[a-1];break}n/=i.l||1;const{p1:s,p2:r}=i;t.x=s.x+n*(r.x-s.x),t.y=s.y+n*(r.y-s.y)}}Hi.type="polygonalChain",Hi.editorConfig=null;class Li{constructor(t){this.x=t.x,this.y=t.y,this.w=t.w,this.h=t.h}getRandPos(t){t.x=Math.random()*this.w+this.x,t.y=Math.random()*this.h+this.y}}Li.type="rect",Li.editorConfig=null;class _t{constructor(t,e,i){this.value=t,this.time=e,this.next=null,this.isStepped=!1,i?this.ease=typeof i=="function"?i:Bo(i):this.ease=null}static createList(t){if("list"in t){const i=t.list;let n;const{value:s,time:r}=i[0],a=n=new _t(typeof s=="string"?DA(s):s,r,t.ease);if(i.length>2||i.length===2&&i[1].value!==s)for(let g=1;g<i.length;++g){const{value:c,time:u}=i[g];n.next=new _t(typeof c=="string"?DA(c):c,u),n=n.next}return a.isStepped=!!t.isStepped,a}const e=new _t(typeof t.start=="string"?DA(t.start):t.start,0);return t.end!==t.start&&(e.next=new _t(typeof t.end=="string"?DA(t.end):t.end,1)),e}}let Ze=v.Texture.from;const Ft=Math.PI/180;function Ut(A,t){if(!A)return;const e=Math.sin(A),i=Math.cos(A),n=t.x*i-t.y*e,s=t.x*e+t.y*i;t.x=n,t.y=s}function mA(A,t,e){return A<<16|t<<8|e}function Io(A){return Math.sqrt(A.x*A.x+A.y*A.y)}function Zl(A){const t=1/Io(A);A.x*=t,A.y*=t}function fo(A,t){A.x*=t,A.y*=t}function DA(A,t){t||(t={}),A.charAt(0)==="#"?A=A.substr(1):A.indexOf("0x")===0&&(A=A.substr(2));let e;return A.length===8&&(e=A.substr(0,2),A=A.substr(2)),t.r=parseInt(A.substr(0,2),16),t.g=parseInt(A.substr(2,2),16),t.b=parseInt(A.substr(4,2),16),e&&(t.a=parseInt(e,16)),t}function Bo(A){const t=A.length,e=1/t;return function(i){const n=t*i|0,s=(i-n*e)*t,r=A[n]||A[t-1];return r.s+s*(2*(1-s)*(r.cp-r.s)+s*(r.e-r.s))}}function zl(A){return A||"normal"}class vA{constructor(t){this.x=t.x||0,this.y=t.y||0,this.radius=t.radius,this.innerRadius=t.innerRadius||0,this.rotation=!!t.affectRotation}getRandPos(t){this.innerRadius!==this.radius?t.x=Math.random()*(this.radius-this.innerRadius)+this.innerRadius:t.x=this.radius,t.y=0;const e=Math.random()*Math.PI*2;this.rotation&&(t.rotation+=e),Ut(e,t.position),t.position.x+=this.x,t.position.y+=this.y}}vA.type="torus",vA.editorConfig=null;var X;(function(A){A[A.Spawn=0]="Spawn",A[A.Normal=2]="Normal",A[A.Late=5]="Late"})(X||(X={}));class Ui{constructor(t){this.order=X.Late,this.minStart=t.minStart,this.maxStart=t.maxStart,this.accel=t.accel,this.rotate=!!t.rotate,this.maxSpeed=t.maxSpeed??0}initParticles(t){let e=t;for(;e;){const i=Math.random()*(this.maxStart-this.minStart)+this.minStart;e.config.velocity?e.config.velocity.set(i,0):e.config.velocity=new v.Point(i,0),Ut(e.rotation,e.config.velocity),e=e.next}}updateParticle(t,e){const i=t.config.velocity,n=i.x,s=i.y;if(i.x+=this.accel.x*e,i.y+=this.accel.y*e,this.maxSpeed){const r=Io(i);r>this.maxSpeed&&fo(i,this.maxSpeed/r)}t.x+=(n+i.x)/2*e,t.y+=(s+i.y)/2*e,this.rotate&&(t.rotation=Math.atan2(i.y,i.x))}}Ui.type="moveAcceleration",Ui.editorConfig=null;function $l(A){return this.ease&&(A=this.ease(A)),(this.first.next.value-this.first.value)*A+this.first.value}function tg(A){this.ease&&(A=this.ease(A));const t=this.first.value,e=this.first.next.value,i=(e.r-t.r)*A+t.r,n=(e.g-t.g)*A+t.g,s=(e.b-t.b)*A+t.b;return mA(i,n,s)}function eg(A){this.ease&&(A=this.ease(A));let t=this.first,e=t.next;for(;A>e.time;)t=e,e=e.next;return A=(A-t.time)/(e.time-t.time),(e.value-t.value)*A+t.value}function Ag(A){this.ease&&(A=this.ease(A));let t=this.first,e=t.next;for(;A>e.time;)t=e,e=e.next;A=(A-t.time)/(e.time-t.time);const i=t.value,n=e.value,s=(n.r-i.r)*A+i.r,r=(n.g-i.g)*A+i.g,a=(n.b-i.b)*A+i.b;return mA(s,r,a)}function ig(A){this.ease&&(A=this.ease(A));let t=this.first;for(;t.next&&A>t.next.time;)t=t.next;return t.value}function ng(A){this.ease&&(A=this.ease(A));let t=this.first;for(;t.next&&A>t.next.time;)t=t.next;const e=t.value;return mA(e.r,e.g,e.b)}class ze{constructor(t=!1){this.first=null,this.isColor=!!t,this.interpolate=null,this.ease=null}reset(t){this.first=t,t.next&&t.next.time>=1?this.interpolate=this.isColor?tg:$l:t.isStepped?this.interpolate=this.isColor?ng:ig:this.interpolate=this.isColor?Ag:eg,this.ease=this.first.ease}}class Ti{constructor(t){this.order=X.Normal,this.list=new ze(!1),this.list.reset(_t.createList(t.alpha))}initParticles(t){let e=t;for(;e;)e.alpha=this.list.first.value,e=e.next}updateParticle(t){t.alpha=this.list.interpolate(t.agePercent)}}Ti.type="alpha",Ti.editorConfig=null;class Oi{constructor(t){this.order=X.Normal,this.value=t.alpha}initParticles(t){let e=t;for(;e;)e.alpha=this.value,e=e.next}}Oi.type="alphaStatic",Oi.editorConfig=null;function Eo(A){const t=[];for(let e=0;e<A.length;++e){let i=A[e];if(typeof i=="string")t.push(Ze(i));else if(i instanceof v.Texture)t.push(i);else{let n=i.count||1;for(typeof i.texture=="string"?i=Ze(i.texture):i=i.texture;n>0;--n)t.push(i)}}return t}class Pi{constructor(t){this.order=X.Normal,this.anims=[];for(let e=0;e<t.anims.length;++e){const i=t.anims[e],n=Eo(i.textures),s=i.framerate<0?-1:i.framerate>0?i.framerate:60,r={textures:n,duration:s>0?n.length/s:0,framerate:s,loop:s>0?!!i.loop:!1};this.anims.push(r)}}initParticles(t){let e=t;for(;e;){const i=Math.floor(Math.random()*this.anims.length),n=e.config.anim=this.anims[i];e.texture=n.textures[0],e.config.animElapsed=0,n.framerate===-1?(e.config.animDuration=e.maxLife,e.config.animFramerate=n.textures.length/e.maxLife):(e.config.animDuration=n.duration,e.config.animFramerate=n.framerate),e=e.next}}updateParticle(t,e){const i=t.config,n=i.anim;i.animElapsed+=e,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;t.texture=n.textures[s]||n.textures[n.textures.length-1]||v.Texture.EMPTY}}Pi.type="animatedRandom",Pi.editorConfig=null;class Ji{constructor(t){this.order=X.Normal;const e=t.anim,i=Eo(e.textures),n=e.framerate<0?-1:e.framerate>0?e.framerate:60;this.anim={textures:i,duration:n>0?i.length/n:0,framerate:n,loop:n>0?!!e.loop:!1}}initParticles(t){let e=t;const i=this.anim;for(;e;)e.texture=i.textures[0],e.config.animElapsed=0,i.framerate===-1?(e.config.animDuration=e.maxLife,e.config.animFramerate=i.textures.length/e.maxLife):(e.config.animDuration=i.duration,e.config.animFramerate=i.framerate),e=e.next}updateParticle(t,e){const i=this.anim,n=t.config;n.animElapsed+=e,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;t.texture=i.textures[s]||i.textures[i.textures.length-1]||v.Texture.EMPTY}}Ji.type="animatedSingle",Ji.editorConfig=null;class Ki{constructor(t){this.order=X.Normal,this.value=t.blendMode}initParticles(t){let e=t;for(;e;)e.blendMode=zl(this.value),e=e.next}}Ki.type="blendMode",Ki.editorConfig=null;class Yi{constructor(t){this.order=X.Spawn,this.spacing=t.spacing*Ft,this.start=t.start*Ft,this.distance=t.distance}initParticles(t){let e=0,i=t;for(;i;){let n;this.spacing?n=this.start+this.spacing*e:n=Math.random()*Math.PI*2,i.rotation=n,this.distance&&(i.position.x=this.distance,Ut(n,i.position)),i=i.next,++e}}}Yi.type="spawnBurst",Yi.editorConfig=null;class Wi{constructor(t){this.order=X.Normal,this.list=new ze(!0),this.list.reset(_t.createList(t.color))}initParticles(t){let e=t;const i=this.list.first.value,n=mA(i.r,i.g,i.b);for(;e;)e.tint=n,e=e.next}updateParticle(t){t.tint=this.list.interpolate(t.agePercent)}}Wi.type="color",Wi.editorConfig=null;class ji{constructor(t){this.order=X.Normal;let e=t.color;e.charAt(0)==="#"?e=e.substr(1):e.indexOf("0x")===0&&(e=e.substr(2)),this.value=parseInt(e,16)}initParticles(t){let e=t;for(;e;)e.tint=this.value,e=e.next}}ji.type="colorStatic",ji.editorConfig=null;class Vi{constructor(t){this.order=X.Normal,this.index=0,this.textures=t.textures.map(e=>typeof e=="string"?Ze(e):e)}initParticles(t){let e=t;for(;e;)e.texture=this.textures[this.index],++this.index>=this.textures.length&&(this.index=0),e=e.next}}Vi.type="textureOrdered",Vi.editorConfig=null;const Qe=new v.Point,Co=["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"],sg=new RegExp(["[01234567890\\.\\*\\-\\+\\/\\(\\)x ,]"].concat(Co).join("|"),"g");function og(A){const t=A.match(sg);for(let e=t.length-1;e>=0;--e)Co.indexOf(t[e])>=0&&(t[e]=`Math.${t[e]}`);return A=t.join(""),new Function("x",`return ${A};`)}class qi{constructor(t){if(this.order=X.Late,t.path)if(typeof t.path=="function")this.path=t.path;else try{this.path=og(t.path)}catch{this.path=null}else this.path=e=>e;this.list=new ze(!1),this.list.reset(_t.createList(t.speed)),this.minMult=t.minMult??1}initParticles(t){let e=t;for(;e;){e.config.initRotation=e.rotation,e.config.initPosition?e.config.initPosition.copyFrom(e.position):e.config.initPosition=new v.Point(e.x,e.y),e.config.movement=0;const i=Math.random()*(1-this.minMult)+this.minMult;e.config.speedMult=i,e=e.next}}updateParticle(t,e){const i=this.list.interpolate(t.agePercent)*t.config.speedMult;t.config.movement+=i*e,Qe.x=t.config.movement,Qe.y=this.path(Qe.x),Ut(t.config.initRotation,Qe),t.position.x=t.config.initPosition.x+Qe.x,t.position.y=t.config.initPosition.y+Qe.y}}qi.type="movePath",qi.editorConfig=null;class Xi{constructor(){this.order=X.Spawn}initParticles(t){}}Xi.type="spawnPoint",Xi.editorConfig=null;class Zi{constructor(t){this.order=X.Normal,this.textures=t.textures.map(e=>typeof e=="string"?Ze(e):e)}initParticles(t){let e=t;for(;e;){const i=Math.floor(Math.random()*this.textures.length);e.texture=this.textures[i],e=e.next}}}Zi.type="textureRandom",Zi.editorConfig=null;class zi{constructor(t){this.order=X.Normal,this.minStart=t.minStart*Ft,this.maxStart=t.maxStart*Ft,this.minSpeed=t.minSpeed*Ft,this.maxSpeed=t.maxSpeed*Ft,this.accel=t.accel*Ft}initParticles(t){let e=t;for(;e;)this.minStart===this.maxStart?e.rotation+=this.maxStart:e.rotation+=Math.random()*(this.maxStart-this.minStart)+this.minStart,e.config.rotSpeed=Math.random()*(this.maxSpeed-this.minSpeed)+this.minSpeed,e=e.next}updateParticle(t,e){if(this.accel){const i=t.config.rotSpeed;t.config.rotSpeed+=this.accel*e,t.rotation+=(t.config.rotSpeed+i)/2*e}else t.rotation+=t.config.rotSpeed*e}}zi.type="rotation",zi.editorConfig=null;class $i{constructor(t){this.order=X.Normal,this.min=t.min*Ft,this.max=t.max*Ft}initParticles(t){let e=t;for(;e;)this.min===this.max?e.rotation+=this.max:e.rotation+=Math.random()*(this.max-this.min)+this.min,e=e.next}}$i.type="rotationStatic",$i.editorConfig=null;class tn{constructor(t){this.order=X.Late+1,this.rotation=(t.rotation||0)*Ft}initParticles(t){let e=t;for(;e;)e.rotation=this.rotation,e=e.next}}tn.type="noRotation",tn.editorConfig=null;class en{constructor(t){this.order=X.Normal,this.list=new ze(!1),this.list.reset(_t.createList(t.scale)),this.minMult=t.minMult??1}initParticles(t){let e=t;for(;e;){const i=Math.random()*(1-this.minMult)+this.minMult;e.config.scaleMult=i,e.scale.x=e.scale.y=this.list.first.value*i,e=e.next}}updateParticle(t){t.scale.x=t.scale.y=this.list.interpolate(t.agePercent)*t.config.scaleMult}}en.type="scale",en.editorConfig=null;class An{constructor(t){this.order=X.Normal,this.min=t.min,this.max=t.max}initParticles(t){let e=t;for(;e;){const i=Math.random()*(this.max-this.min)+this.min;e.scale.x=e.scale.y=i,e=e.next}}}An.type="scaleStatic",An.editorConfig=null;class xt{static registerShape(t,e){xt.shapes[e||t.type]=t}constructor(t){this.order=X.Spawn;const e=xt.shapes[t.type];if(!e)throw new Error(`No shape found with type '${t.type}'`);this.shape=new e(t.data)}initParticles(t){let e=t;for(;e;)this.shape.getRandPos(e),e=e.next}}xt.type="spawnShape",xt.editorConfig=null,xt.shapes={},xt.registerShape(Hi),xt.registerShape(Li),xt.registerShape(vA),xt.registerShape(vA,"circle");class nn{constructor(t){this.order=X.Normal,this.texture=typeof t.texture=="string"?Ze(t.texture):t.texture}initParticles(t){let e=t;for(;e;)e.texture=this.texture,e=e.next}}nn.type="textureSingle",nn.editorConfig=null;class sn{constructor(t){this.order=X.Late,this.list=new ze(!1),this.list.reset(_t.createList(t.speed)),this.minMult=t.minMult??1}initParticles(t){let e=t;for(;e;){const i=Math.random()*(1-this.minMult)+this.minMult;e.config.speedMult=i,e.config.velocity?e.config.velocity.set(this.list.first.value*i,0):e.config.velocity=new v.Point(this.list.first.value*i,0),Ut(e.rotation,e.config.velocity),e=e.next}}updateParticle(t,e){const i=this.list.interpolate(t.agePercent)*t.config.speedMult,n=t.config.velocity;Zl(n),fo(n,i),t.x+=n.x*e,t.y+=n.y*e}}sn.type="moveSpeed",sn.editorConfig=null;class on{constructor(t){this.order=X.Late,this.min=t.min,this.max=t.max}initParticles(t){let e=t;for(;e;){const i=Math.random()*(this.max-this.min)+this.min;e.config.velocity?e.config.velocity.set(i,0):e.config.velocity=new v.Point(i,0),Ut(e.rotation,e.config.velocity),e=e.next}}updateParticle(t,e){const i=t.config.velocity;t.x+=i.x*e,t.y+=i.y*e}}on.type="moveSpeedStatic",on.editorConfig=null;class rn extends v.Sprite{constructor(t){super(),this.prevChild=this.nextChild=null,this.emitter=t,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(t){this.maxLife=t,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 an=v.Ticker.shared,se=Symbol("Position particle per emitter position");class j{static registerBehavior(t){j.knownBehaviors[t.type]=t}constructor(t,e){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 v.Point,this.particlesPerWave=1,this.rotation=0,this.ownerPos=new v.Point,this._prevEmitterPos=new v.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=t,e&&this.init(e),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(t){typeof t=="number"&&t>0?this._frequency=t:this._frequency=1}get parent(){return this._parent}set parent(t){this.cleanup(),this._parent=t}init(t){if(!t)return;this.cleanup(),this._origConfig=t,this.minLifetime=t.lifetime.min,this.maxLifetime=t.lifetime.max,t.ease?this.customEase=typeof t.ease=="function"?t.ease:Bo(t.ease):this.customEase=null,this.particlesPerWave=1,t.particlesPerWave&&t.particlesPerWave>1&&(this.particlesPerWave=t.particlesPerWave),this.frequency=t.frequency,this.spawnChance=typeof t.spawnChance=="number"&&t.spawnChance>0?t.spawnChance:1,this.emitterLifetime=t.emitterLifetime||-1,this.maxParticles=t.maxParticles>0?t.maxParticles:1e3,this.addAtBack=!!t.addAtBack,this.rotation=0,this.ownerPos.set(0),t.pos?this.spawnPos.copyFrom(t.pos):this.spawnPos.set(0),this._prevEmitterPos.copyFrom(this.spawnPos),this._prevPosIsValid=!1,this._spawnTimer=0,this.emit=t.emit===void 0?!0:!!t.emit,this.autoUpdate=!!t.autoUpdate;const e=t.behaviors.map(i=>{const n=j.knownBehaviors[i.type];return n?new n(i.config):(console.error(`Unknown behavior: ${i.type}`),null)}).filter(i=>!!i);e.push(se),e.sort((i,n)=>i===se?n.order===X.Spawn?1:-1:n===se?i.order===X.Spawn?-1:1:i.order-n.order),this.initBehaviors=e.slice(),this.updateBehaviors=e.filter(i=>i!==se&&i.updateParticle),this.recycleBehaviors=e.filter(i=>i!==se&&i.recycleParticle)}getBehavior(t){return j.knownBehaviors[t]&&this.initBehaviors.find(e=>e instanceof j.knownBehaviors[t])||null}fillPool(t){for(;t>0;--t){const e=new rn(this);e.next=this._poolFirst,this._poolFirst=e}}recycle(t,e=!1){for(let i=0;i<this.recycleBehaviors.length;++i)this.recycleBehaviors[i].recycleParticle(t,!e);t.next&&(t.next.prev=t.prev),t.prev&&(t.prev.next=t.next),t===this._activeParticlesLast&&(this._activeParticlesLast=t.prev),t===this._activeParticlesFirst&&(this._activeParticlesFirst=t.next),t.prev=null,t.next=this._poolFirst,this._poolFirst=t,t.parent&&t.parent.removeChild(t),--this.particleCount}rotate(t){if(this.rotation===t)return;const e=t-this.rotation;this.rotation=t,Ut(e,this.spawnPos),this._posChanged=!0}updateSpawnPos(t,e){this._posChanged=!0,this.spawnPos.x=t,this.spawnPos.y=e}updateOwnerPos(t,e){this._posChanged=!0,this.ownerPos.x=t,this.ownerPos.y=e}resetPositionTracking(){this._prevPosIsValid=!1}get emit(){return this._emit}set emit(t){this._emit=!!t,this._emitterLife=this.emitterLifetime}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){this._autoUpdate&&!t?an.remove(this.update,this):!this._autoUpdate&&t&&an.add(this.update,this),this._autoUpdate=!!t}playOnceAndDestroy(t){this.autoUpdate=!0,this.emit=!0,this._destroyWhenComplete=!0,this._completeCallback=t}playOnce(t){this.emit=!0,this._completeCallback=t}update(t){if(typeof t!="number"&&(t=t.deltaTime),this._autoUpdate&&(t=an.elapsedMS*.001),!this._parent)return;for(let r=this._activeParticlesFirst,a;r;r=a)if(a=r.next,r.age+=t,r.age>r.maxLife||r.age<0)this.recycle(r);else{let g=r.age*r.oneOverLife;this.customEase&&(this.customEase.length===4?g=this.customEase(g,0,1,1):g=this.customEase(g)),r.agePercent=g;for(let c=0;c<this.updateBehaviors.length;++c)if(this.updateBehaviors[c].updateParticle(r,t)){this.recycle(r);break}}let e,i;this._prevPosIsValid&&(e=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-=t<0?0:t;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 r,a;if(this._prevPosIsValid&&this._posChanged){const u=1+this._spawnTimer/t;r=(n-e)*u+e,a=(s-i)*u+i}else r=n,a=s;let g=null,c=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 l;if(this.minLifetime===this.maxLifetime?l=this.minLifetime:l=Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,-this._spawnTimer>=l)continue;let h;this._poolFirst?(h=this._poolFirst,this._poolFirst=this._poolFirst.next,h.next=null):h=new rn(this),h.init(l),this.addAtBack?this._parent.addChildAt(h,0):this._parent.addChild(h),g?(c.next=h,h.prev=c,c=h):c=g=h,++this.particleCount}if(g){this._activeParticlesLast?(this._activeParticlesLast.next=g,g.prev=this._activeParticlesLast,this._activeParticlesLast=c):(this._activeParticlesFirst=g,this._activeParticlesLast=c);for(let u=0;u<this.initBehaviors.length;++u){const o=this.initBehaviors[u];if(o===se)for(let l=g,h;l;l=h){h=l.next,this.rotation!==0&&(Ut(this.rotation,l.position),l.rotation+=this.rotation),l.position.x+=r,l.position.y+=a,l.age+=-this._spawnTimer;let B=l.age*l.oneOverLife;this.customEase&&(this.customEase.length===4?B=this.customEase(B,0,1,1):B=this.customEase(B)),l.agePercent=B}else o.initParticles(g)}for(let u=g,o;u;u=o){o=u.next;for(let l=0;l<this.updateBehaviors.length;++l)if(this.updateBehaviors[l].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 r=this._completeCallback;this._completeCallback=null,r()}this._destroyWhenComplete&&this.destroy()}}emitNow(){const t=this.ownerPos.x+this.spawnPos.x,e=this.ownerPos.y+this.spawnPos.y;let i=null,n=null;for(let s=Math.min(this.particlesPerWave,this.maxParticles-this.particleCount),r=0;r<s;++r){if(this.spawnChance<1&&Math.random()>=this.spawnChance)continue;let a;this._poolFirst?(a=this._poolFirst,this._poolFirst=this._poolFirst.next,a.next=null):a=new rn(this);let g;this.minLifetime===this.maxLifetime?g=this.minLifetime:g=Math.random()*(this.maxLifetime-this.minLifetime)+this.minLifetime,a.init(g),this.addAtBack?this._parent.addChildAt(a,0):this._parent.addChild(a),i?(n.next=a,a.prev=n,n=a):n=i=a,++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 r=this.initBehaviors[s];if(r===se)for(let a=i,g;a;a=g)g=a.next,this.rotation!==0&&(Ut(this.rotation,a.position),a.rotation+=this.rotation),a.position.x+=t,a.position.y+=e;else r.initParticles(i)}}}cleanup(){let t,e;for(t=this._activeParticlesFirst;t;t=e)e=t.next,this.recycle(t,!0);this._activeParticlesFirst=this._activeParticlesLast=null,this.particleCount=0}get destroyed(){return!(this._parent&&this.initBehaviors.length)}destroy(){this.autoUpdate=!1,this.cleanup();let t;for(let e=this._poolFirst;e;e=t)t=e.next,e.destroy();this._poolFirst=this._parent=this.spawnPos=this.ownerPos=this.customEase=this._completeCallback=null,this.initBehaviors.length=this.updateBehaviors.length=this.recycleBehaviors.length=0}}j.knownBehaviors={},j.registerBehavior(Ui),j.registerBehavior(Ti),j.registerBehavior(Oi),j.registerBehavior(Pi),j.registerBehavior(Ji),j.registerBehavior(Ki),j.registerBehavior(Yi),j.registerBehavior(Wi),j.registerBehavior(ji),j.registerBehavior(Vi),j.registerBehavior(qi),j.registerBehavior(Xi),j.registerBehavior(Zi),j.registerBehavior(zi),j.registerBehavior($i),j.registerBehavior(tn),j.registerBehavior(en),j.registerBehavior(An),j.registerBehavior(xt),j.registerBehavior(nn),j.registerBehavior(sn),j.registerBehavior(on);class rg extends _i{constructor(){super(...arguments),this.elapsed=Date.now()}async onMount(t){await super.onMount(t);const{props:e}=t,i=e.context.tick;this.emitter=new j(this,e.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(t){}async onDestroy(t,e){const i=async()=>{this.emitter?.destroy(),this.emitter=null,this.subscriptionTick.unsubscribe(),e()};await super.onDestroy(t,i)}}st("ParticlesEmitter",rg);function ag(A){return ct("ParticlesEmitter",A)}const Qo=console.log;class po extends pt(v.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(){return this.app?.renderer}async detectImageDimensions(t){if(!t||typeof t!="string"||t.trim()==="")throw new Error(`Invalid image path provided to detectImageDimensions: ${t}`);let e=null;this.globalLoader&&(e=this.globalLoader.registerAsset(t),this.trackedAssetIds.add(e));const i=await v.Assets.load(t,n=>{this.globalLoader&&e&&this.globalLoader.updateProgress(e,n)});return this.globalLoader&&e&&this.globalLoader.completeAsset(e),{width:i.width,height:i.height}}async createTextures(t){let{width:e,height:i,framesHeight:n,framesWidth:s,image:r,offset:a}=t;if(!r||typeof r!="string"||r.trim()==="")return console.warn("Invalid image path provided to createTextures:",r),[];let g=null;this.globalLoader&&(g=this.globalLoader.registerAsset(r),this.trackedAssetIds.add(g));const c=await v.Assets.load(r,E=>{this.globalLoader&&g&&this.globalLoader.updateProgress(g,E)});this.globalLoader&&g&&this.globalLoader.completeAsset(g),(!e||e<=0)&&(e=c.width,t.width=e),(!i||i<=0)&&(i=c.height,t.height=i);const u=t.spriteWidth,o=t.spriteHeight,l=[],h=a&&a.x||0,B=a&&a.y||0;for(let E=0;E<n;E++){l[E]=[];for(let d=0;d<s;d++){const C=d*u+h,w=E*o+B;if(w>i)throw Qo(`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(C>e)throw Qo(`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.`);l[E].push(new v.Texture({source:c.source,frame:new v.Rectangle(C,w,u,o)}))}}return l}async createAnimations(){const{textures:t}=this.spritesheet;if(t)for(let e in t){const s={...["width","height","framesHeight","framesWidth","rectWidth","rectHeight","offset","image","sound"].reduce((E,d)=>({...E,[d]:this.spritesheet[d]}),{}),...t[e]},{rectWidth:r,width:a=0,framesWidth:g=1,rectHeight:c,height:u=0,framesHeight:o=1,image:l}=s;let h=a,B=u;if(l&&(!h||h<=0||!B||B<=0)){const E=await this.detectImageDimensions(l);(!h||h<=0)&&(h=E.width,s.width=h),(!B||B<=0)&&(B=E.height,s.height=B)}s.spriteWidth=r||h/g,s.spriteHeight=c||B/o,this.animations.set(e,{frames:await this.createTextures(s),name:e,animations:t[e].animations,params:[],data:s,sprites:[]})}}async onMount(t){this["#element"]=t;const{props:e,propObservables:i}=t,n=e.context.tick,s=e.sheet??{},r=e.sheet?.definition??{};if(this.app=e.context.app(),this.globalLoader=e.context?.globalLoader||null,s?.onFinish&&(this.onFinish=s.onFinish),this.subscriptionTick=n.observable.subscribe(g=>{this.destroyed||this.update(g)}),r){const g=r instanceof Promise?await r:r;this.spritesheet=g.value??g,await this.createAnimations()}if(s.params)for(let g in i?.sheet.params){const c=i?.sheet.params[g];N(c)?this.subscriptionSheet.push(c.observable.subscribe(u=>{this.animations.size!=0&&this.play(this.sheetCurrentAnimation,[{[g]:u}])})):this.play(this.sheetCurrentAnimation,[{[g]:c}])}const a=Ct(()=>{const{x:g,y:c}=i??{};if(!g||!c)return!1;const u=g,o=c,l=Ce(u)&&u.animatedState().current!==u.animatedState().end,h=Ce(o)&&o.animatedState().current!==o.animatedState().end;return l||h});nt(()=>{const g=a();this.isMounted&&(g?this.sheetCurrentAnimation="walk":this.sheetCurrentAnimation="stand",this.spritesheet&&this.has(this.sheetCurrentAnimation)&&this.play(this.sheetCurrentAnimation,[this.sheetParams]))}),super.onMount(t)}async onUpdate(t){if(this.destroyed)return;super.onUpdate(t),!this.globalLoader&&t.context?.globalLoader&&(this.globalLoader=t.context.globalLoader);const e=async s=>{if(!s||typeof s!="string"||s.trim()==="")return console.warn("Invalid image path provided to setTexture:",s),null;let r=null;this.globalLoader&&(r=this.globalLoader.registerAsset(s),this.trackedAssetIds.add(r));const a=this.fullProps.loader?.onProgress,g=await v.Assets.load(s,c=>{if(this.globalLoader&&r&&this.globalLoader.updateProgress(r,c),a&&a(c),c==1){this.globalLoader&&r&&this.globalLoader.completeAsset(r);const u=this.fullProps.loader?.onComplete;u&&setTimeout(()=>{u(g)})}});return g},i=t.sheet,n=t.sheet?.definition??{};if(n?.type==="reset"){const s=n.value instanceof Promise?await n.value:n.value;this.spritesheet=s??n,await this.resetAnimations()}if(i?.params&&(this.sheetParams=i?.params),i?.playing&&this.isMounted&&this.spritesheet&&this.animations.size>0&&(this.sheetCurrentAnimation=i?.playing,this.play(this.sheetCurrentAnimation,[this.sheetParams])),t.hitbox&&(this.hitbox=t.hitbox.value??t.hitbox),t.scaleMode)this.baseTexture.scaleMode=t.scaleMode;else if(t.image&&this.fullProps.rectangle===void 0){const s=await e(this.fullProps.image);s&&(this.texture=s)}else t.texture&&(dt(t.texture)?(t.texture.componentInstance.subjectInit.subscribe(),this.texture=this.renderer?.generateTexture(t.texture.componentInstance)):this.texture=t.texture);if(t.rectangle!==void 0){const{x:s,y:r,width:a,height:g}=t.rectangle?.value??t.rectangle,c=await e(this.fullProps.image);c&&(this.texture=new v.Texture({source:c.source,frame:new v.Rectangle(s,r,a,g)}))}}async onDestroy(t,e){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 v.Container&&this.parent.removeChild(this.currentAnimationContainer),e&&e()};await super.onDestroy(t,i)}has(t){return this.animations.has(t)}get(t){return this.animations.get(t)}isPlaying(t){return t?this.currentAnimation==null?!1:this.currentAnimation.name==t:!!this.currentAnimation}stop(){this.currentAnimation=null}play(t,e=[]){const i=this.currentAnimation?.params;if(this.isPlaying(t)&&cA(e,i||[]))return;const n=this.get(t);if(!n)throw new Error(`Impossible to play the ${t} animation because it doesn't exist on the "${this.id}" spritesheet`);const s=structuredClone(e);this.removeChildren(),n.sprites=[],this.currentAnimation=n,this.currentAnimation.params=s,this.time=0,this.frameIndex=0;let r=n.animations;r=os(r)?r(...s):r,this.currentAnimationContainer=new v.Container;for(let g of r){const c=new v.Sprite;for(let u of g)this.currentAnimation.sprites.push(u);this.currentAnimationContainer.addChild(c)}const a=this.currentAnimation.data.sound;a&&new de.Howl({src:a,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:t}){const e=this.getElement();if(e&&St(e)||!this.isPlaying()||!this.currentAnimation||!this.currentAnimationContainer)return;const i=this,{frames:n,sprites:s,data:r}=this.currentAnimation;let a=s[this.frameIndex];const g=s[this.frameIndex+1];for(let c of this.currentAnimationContainer.children){let u=function(d,C){const m=o(C||d);m!==void 0&&(i[d]=m)};if(!a||a.frameY==null||a.frameX==null)continue;this.texture=n[a.frameY][a.frameX];const o=d=>a[d]??r[d]??this.spritesheet[d],l=d=>{const C=o(d);C&&this[d].set(...C)};this.applyTransform&&(a={...a,...this.applyTransform(a,r,this.spritesheet)});const h=o("spriteRealSize"),B=typeof h=="number"?h:h?.height;typeof h=="number"||h?.width;const E=()=>{if(B&&this.hitbox){const{spriteWidth:d,spriteHeight:C}=r,w=(d-this.hitbox.w)/2/d,m=(C-B)/2,b=(C-this.hitbox.h-m)/C;this.anchor.set(w,b)}};a.sound,E(),l("anchor"),l("scale"),l("skew"),l("pivot"),u("alpha","opacity"),u("x"),u("y"),u("angle"),u("rotation"),u("visible")}if(!g){this.time=0,this.frameIndex=0,this.onFinish&&s.length>1&&this.onFinish();return}this.time+=t??1,this.time>=g.time&&this.frameIndex++}}st("Sprite",po);const ln=A=>(st("Sprite",po),ct("Sprite",A));function lg(A){const t={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},e=Y(null),i=ki(A),{play:n,loop:s,muted:r}=i({play:{type:Boolean,default:!0},loop:{type:Boolean,default:!1},muted:{type:Boolean,default:!1}});return nt(()=>{const a=e(),g=n();a&&g!==void 0&&(g?a.play():a.pause()),a&&s()&&(a.loop=s()),a&&r()&&(a.muted=r())}),Ni(()=>()=>{for(let a in t)t[a]&&e().removeEventListener(a,t[a])}),ht(ln,{...A,image:A.src,loader:{onComplete:a=>{const g=a.source.resource;e.set(g),A?.loader?.onComplete&&A.loader.onComplete(a);for(let c in t)if(A[c]){const u=o=>{A[c](o)};t[c]=u,g.addEventListener(c,u)}}}})}class gg extends pt(v.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(t,e){const{props:i}=t;await super.onMount(t,e);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&&qe(this.typewriterOptions.skip)&&yA(this.typewriterOptions.skip,()=>{this.skipTypewriter()}),this.typewriterOptions.sound&&this.initializeTypewriterSound()),this.updateLayout()),this.subscriptionTick=n.observable.subscribe(()=>{i.typewriter&&this.typewriterEffect()})}onUpdate(t){if(super.onUpdate(t),t.typewriter&&t.typewriter&&(this.typewriterOptions=t.typewriter,t.typewriter.sound&&this.initializeTypewriterSound()),t.text!==void 0&&(this.text=""+t.text),t.text!==void 0&&t.text!==this.fullText&&this.fullProps.typewriter&&(this.text="",this.currentIndex=0,this.fullText=t.text,this.updateLayout()),t.style){for(const e in t.style)this.style[e]=t.style[e];t.style.wordWrapWidth&&(this._wordWrapWidth=t.style.wordWrapWidth)}t.color&&(this.style.fill=t.color),t.size&&(this.style.fontSize=t.size),t.fontFamily&&(this.style.fontFamily=t.fontFamily),this.updateLayout()}get onCompleteCallback(){return this.typewriterOptions.onComplete}initializeTypewriterSound(){this.typewriterOptions.sound?.src&&(this.typewriterSound=new de.Howl({src:[this.typewriterOptions.sound.src],volume:this.typewriterOptions.sound.volume??.5,rate:this.typewriterOptions.sound.rate??1,preload:!0,onload:()=>{if(this.typewriterSound){const t=this.typewriterSound.duration(),e=this.typewriterOptions.sound?.rate??1;this.soundDuration=t/e*1e3}}}))}playTypewriterSound(t){!this.typewriterSound||!this.typewriterOptions.sound||this.soundDuration>0&&t-this.lastSoundTime<this.soundDuration||(this.typewriterSound.play(),this.lastSoundTime=t)}updateLayout(){this._wordWrapWidth?this.setWidth(this._wordWrapWidth):this.setWidth(this.width),this.setHeight(this.height)}typewriterEffect(){if(this.currentIndex<this.fullText.length){const t=Math.min(this.currentIndex+(this.typewriterOptions.speed??1),this.fullText.length);this.text=this.fullText.slice(0,t),this.currentIndex=t,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(t,e){const i=async()=>{this.subscriptionTick&&this.subscriptionTick.unsubscribe(),this.typewriterSound&&(this.typewriterSound.stop(),this.typewriterSound.unload(),this.typewriterSound=void 0),e&&e()};await super.onDestroy(t,i)}}st("Text",gg);function yo(A){return ct("Text",A)}class cg extends pt(v.TilingSprite){onUpdate(t){super.onUpdate(t),t.image&&(this.texture=v.Texture.from(t.image)),t.tileScale&&this.tileScale.set(t.tileScale.x,t.tileScale.y),t.tilePosition&&this.tilePosition.set(t.tilePosition.x,t.tilePosition.y),t.width!==void 0&&(this.width=t.width),t.height!==void 0&&(this.height=t.height)}}st("TilingSprite",cg);function hg(A){return ct("TilingSprite",A)}var ug=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ig(A){return A&&A.__esModule&&Object.prototype.hasOwnProperty.call(A,"default")?A.default:A}var wo={exports:{}};(function(A,t){(function(){var e,i;i=function(n){return A.exports=n},e={linear:function(n,s,r,a){return r*n/a+s},easeInQuad:function(n,s,r,a){return r*(n/=a)*n+s},easeOutQuad:function(n,s,r,a){return-r*(n/=a)*(n-2)+s},easeInOutQuad:function(n,s,r,a){return(n/=a/2)<1?r/2*n*n+s:-r/2*(--n*(n-2)-1)+s},easeInCubic:function(n,s,r,a){return r*(n/=a)*n*n+s},easeOutCubic:function(n,s,r,a){return r*((n=n/a-1)*n*n+1)+s},easeInOutCubic:function(n,s,r,a){return(n/=a/2)<1?r/2*n*n*n+s:r/2*((n-=2)*n*n+2)+s},easeInQuart:function(n,s,r,a){return r*(n/=a)*n*n*n+s},easeOutQuart:function(n,s,r,a){return-r*((n=n/a-1)*n*n*n-1)+s},easeInOutQuart:function(n,s,r,a){return(n/=a/2)<1?r/2*n*n*n*n+s:-r/2*((n-=2)*n*n*n-2)+s},easeInQuint:function(n,s,r,a){return r*(n/=a)*n*n*n*n+s},easeOutQuint:function(n,s,r,a){return r*((n=n/a-1)*n*n*n*n+1)+s},easeInOutQuint:function(n,s,r,a){return(n/=a/2)<1?r/2*n*n*n*n*n+s:r/2*((n-=2)*n*n*n*n+2)+s},easeInSine:function(n,s,r,a){return-r*Math.cos(n/a*(Math.PI/2))+r+s},easeOutSine:function(n,s,r,a){return r*Math.sin(n/a*(Math.PI/2))+s},easeInOutSine:function(n,s,r,a){return-r/2*(Math.cos(Math.PI*n/a)-1)+s},easeInExpo:function(n,s,r,a){return n===0?s:r*Math.pow(2,10*(n/a-1))+s},easeOutExpo:function(n,s,r,a){return n===a?s+r:r*(-Math.pow(2,-10*n/a)+1)+s},easeInOutExpo:function(n,s,r,a){return(n/=a/2)<1?r/2*Math.pow(2,10*(n-1))+s:r/2*(-Math.pow(2,-10*--n)+2)+s},easeInCirc:function(n,s,r,a){return-r*(Math.sqrt(1-(n/=a)*n)-1)+s},easeOutCirc:function(n,s,r,a){return r*Math.sqrt(1-(n=n/a-1)*n)+s},easeInOutCirc:function(n,s,r,a){return(n/=a/2)<1?-r/2*(Math.sqrt(1-n*n)-1)+s:r/2*(Math.sqrt(1-(n-=2)*n)+1)+s},easeInElastic:function(n,s,r,a){var g,c,u;return u=1.70158,c=0,g=r,n===0||(n/=a),c||(c=a*.3),g<Math.abs(r)?(g=r,u=c/4):u=c/(2*Math.PI)*Math.asin(r/g),-(g*Math.pow(2,10*(n-=1))*Math.sin((n*a-u)*(2*Math.PI)/c))+s},easeOutElastic:function(n,s,r,a){var g,c,u;return u=1.70158,c=0,g=r,n===0||(n/=a),c||(c=a*.3),g<Math.abs(r)?(g=r,u=c/4):u=c/(2*Math.PI)*Math.asin(r/g),g*Math.pow(2,-10*n)*Math.sin((n*a-u)*(2*Math.PI)/c)+r+s},easeInOutElastic:function(n,s,r,a){var g,c,u;return u=1.70158,c=0,g=r,n===0||(n/=a/2),c||(c=a*.44999999999999996),g<Math.abs(r)?(g=r,u=c/4):u=c/(2*Math.PI)*Math.asin(r/g),n<1?-.5*(g*Math.pow(2,10*(n-=1))*Math.sin((n*a-u)*(2*Math.PI)/c))+s:g*Math.pow(2,-10*(n-=1))*Math.sin((n*a-u)*(2*Math.PI)/c)*.5+r+s},easeInBack:function(n,s,r,a,g){return g===void 0&&(g=1.70158),r*(n/=a)*n*((g+1)*n-g)+s},easeOutBack:function(n,s,r,a,g){return g===void 0&&(g=1.70158),r*((n=n/a-1)*n*((g+1)*n+g)+1)+s},easeInOutBack:function(n,s,r,a,g){return g===void 0&&(g=1.70158),(n/=a/2)<1?r/2*(n*n*(((g*=1.525)+1)*n-g))+s:r/2*((n-=2)*n*(((g*=1.525)+1)*n+g)+2)+s},easeInBounce:function(n,s,r,a){var g;return g=e.easeOutBounce(a-n,0,r,a),r-g+s},easeOutBounce:function(n,s,r,a){return(n/=a)<.36363636363636365?r*(7.5625*n*n)+s:n<.7272727272727273?r*(7.5625*(n-=.5454545454545454)*n+.75)+s:n<.9090909090909091?r*(7.5625*(n-=.8181818181818182)*n+.9375)+s:r*(7.5625*(n-=.9545454545454546)*n+.984375)+s},easeInOutBounce:function(n,s,r,a){var g;return n<a/2?(g=e.easeInBounce(n*2,0,r,a),g*.5+s):(g=e.easeOutBounce(n*2-a,0,r,a),g*.5+r*.5+s)}},i(e)}).call(ug)})(wo);var fg=wo.exports;const mo=Ig(fg);function bA(A,t){if(A){if(typeof A=="function")return A;if(typeof A=="string")return mo[A]}else return mo[t]}class Bg{constructor(t){this.viewport=t,this.touches=[],this.addListeners()}addListeners(){this.viewport.eventMode="static",this.viewport.forceHitArea||(this.viewport.hitArea=new v.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=t=>this.handleWheel(t),this.viewport.options.events.domElement.addEventListener("wheel",this.wheelFunction,{passive:this.viewport.options.passiveWheel}),this.isMouseDown=!1}destroy(){var t;(t=this.viewport.options.events.domElement)==null||t.removeEventListener("wheel",this.wheelFunction)}down(t){if(!(this.viewport.pause||!this.viewport.visible)){if(t.pointerType==="mouse"?this.isMouseDown=!0:this.get(t.pointerId)||this.touches.push({id:t.pointerId,last:null}),this.count()===1){this.last=t.global.clone();const e=this.viewport.plugins.get("decelerate",!0),i=this.viewport.plugins.get("bounce",!0);(!e||!e.isActive())&&(!i||!i.isActive())?this.clickedAvailable=!0:this.clickedAvailable=!1}else this.clickedAvailable=!1;this.viewport.plugins.down(t)&&this.viewport.options.stopPropagation&&t.stopPropagation()}}clear(){this.isMouseDown=!1,this.touches=[],this.last=null}checkThreshold(t){return Math.abs(t)>=this.viewport.threshold}move(t){if(this.viewport.pause||!this.viewport.visible)return;const e=this.viewport.plugins.move(t);if(this.clickedAvailable&&this.last){const i=t.global.x-this.last.x,n=t.global.y-this.last.y;(this.checkThreshold(i)||this.checkThreshold(n))&&(this.clickedAvailable=!1)}e&&this.viewport.options.stopPropagation&&t.stopPropagation()}up(t){if(this.viewport.pause||!this.viewport.visible)return;t.pointerType==="mouse"&&(this.isMouseDown=!1),t.pointerType!=="mouse"&&this.remove(t.pointerId);const e=this.viewport.plugins.up(t);this.clickedAvailable&&this.count()===0&&this.last&&(this.viewport.emit("clicked",{event:t,screen:this.last,world:this.viewport.toWorld(this.last),viewport:this.viewport}),this.clickedAvailable=!1),e&&this.viewport.options.stopPropagation&&t.stopPropagation()}getPointerPosition(t){const e=new v.Point;return this.viewport.options.events.mapPositionToPoint(e,t.clientX,t.clientY),e}handleWheel(t){if(this.viewport.pause||!this.viewport.visible)return;const e=this.viewport.toLocal(this.getPointerPosition(t));this.viewport.left<=e.x&&e.x<=this.viewport.right&&this.viewport.top<=e.y&&e.y<=this.viewport.bottom&&this.viewport.plugins.wheel(t)&&!this.viewport.options.passiveWheel&&t.preventDefault()}pause(){this.touches=[],this.isMouseDown=!1}get(t){for(const e of this.touches)if(e.id===t)return e;return null}remove(t){for(let e=0;e<this.touches.length;e++)if(this.touches[e].id===t){this.touches.splice(e,1);return}}count(){return(this.isMouseDown?1:0)+this.touches.length}}const $e=["drag","pinch","wheel","follow","mouse-edges","decelerate","animate","bounce","snap-zoom","clamp-zoom","snap","clamp"];class Eg{constructor(t){this.viewport=t,this.list=[],this.plugins={}}add(t,e,i=$e.length){const n=this.plugins[t];n&&n.destroy(),this.plugins[t]=e;const s=$e.indexOf(t);s!==-1&&$e.splice(s,1),$e.splice(i,0,t),this.sort()}get(t,e){var i;return e&&(i=this.plugins[t])!=null&&i.paused?null:this.plugins[t]}update(t){for(const e of this.list)e.update(t)}resize(){for(const t of this.list)t.resize()}reset(){for(const t of this.list)t.reset()}removeAll(){this.list.forEach(t=>{t.destroy()}),this.plugins={},this.sort()}remove(t){var e;this.plugins[t]&&((e=this.plugins[t])==null||e.destroy(),delete this.plugins[t],this.viewport.emit("plugin-remove",t),this.sort())}pause(t){var e;(e=this.plugins[t])==null||e.pause()}resume(t){var e;(e=this.plugins[t])==null||e.resume()}sort(){this.list=[];for(const t of $e)this.plugins[t]&&this.list.push(this.plugins[t])}down(t){let e=!1;for(const i of this.list)i.down(t)&&(e=!0);return e}move(t){let e=!1;for(const i of this.viewport.plugins.list)i.move(t)&&(e=!0);return e}up(t){let e=!1;for(const i of this.list)i.up(t)&&(e=!0);return e}wheel(t){let e=!1;for(const i of this.list)i.wheel(t)&&(e=!0);return e}}class yt{constructor(t){this.parent=t,this.paused=!1}destroy(){}down(t){return!1}move(t){return!1}up(t){return!1}wheel(t){return!1}update(t){}resize(){}reset(){}pause(){this.paused=!0}resume(){this.paused=!1}}const Cg={removeOnInterrupt:!1,ease:"linear",time:1e3};class dg extends yt{constructor(t,e={}){super(t),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({},Cg,e),this.options.ease=bA(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(t){if(this.paused)return;this.time+=t;const e=new v.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:e,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,r=this.deltaX,a=this.deltaY,g=new v.Point(this.parent.x,this.parent.y);this.parent.moveCenter(n+r*i,s+a*i),this.parent.emit("moved",{viewport:this.parent,original:g,type:"animate"})}(this.width||this.height)&&this.parent.emit("zoomed",{viewport:this.parent,original:e,type:"animate"})}}}const Qg={sides:"all",friction:.5,time:150,ease:"easeInOutSine",underflow:"center",bounceBox:null};class pg extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},Qg,e),this.ease=bA(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(t){if(!this.paused){if(this.bounce(),this.toX){const e=this.toX;e.time+=t,this.parent.emit("moved",{viewport:this.parent,type:"bounce-x"}),e.time>=this.options.time?(this.parent.x=e.end,this.toX=null,this.parent.emit("bounce-x-end",this.parent)):this.parent.x=this.ease(e.time,e.start,e.delta,this.options.time)}if(this.toY){const e=this.toY;e.time+=t,this.parent.emit("moved",{viewport:this.parent,type:"bounce-y"}),e.time>=this.options.time?(this.parent.y=e.end,this.toY=null,this.parent.emit("bounce-y-end",this.parent)):this.parent.y=this.ease(e.time,e.start,e.delta,this.options.time)}}}calcUnderflowX(){let t;switch(this.underflowX){case-1:t=0;break;case 1:t=this.parent.screenWidth-this.parent.screenWorldWidth;break;default:t=(this.parent.screenWidth-this.parent.screenWorldWidth)/2}return t}calcUnderflowY(){let t;switch(this.underflowY){case-1:t=0;break;case 1:t=this.parent.screenHeight-this.parent.screenWorldHeight;break;default:t=(this.parent.screenHeight-this.parent.screenWorldHeight)/2}return t}oob(){const t=this.options.bounceBox;if(t){const e=typeof t.x>"u"?0:t.x,i=typeof t.y>"u"?0:t.y,n=typeof t.width>"u"?this.parent.worldWidth:t.width,s=typeof t.height>"u"?this.parent.worldHeight:t.height;return{left:this.parent.left<e,right:this.parent.right>n,top:this.parent.top<i,bottom:this.parent.bottom>s,topLeft:new v.Point(e*this.parent.scale.x,i*this.parent.scale.y),bottomRight:new v.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 v.Point(0,0),bottomRight:new v.Point(this.parent.worldWidth*this.parent.scale.x-this.parent.screenWidth,this.parent.worldHeight*this.parent.scale.y-this.parent.screenHeight)}}bounce(){var t,e;if(this.paused)return;let i,n=this.parent.plugins.get("decelerate",!0);n&&(n.x||n.y)&&(n.x&&n.percentChangeX===((t=n.options)==null?void 0:t.friction)||n.y&&n.percentChangeY===((e=n.options)==null?void 0:e.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)||{},r=this.parent.plugins.get("pinch",!0)||{};if(n=n||{},!(s!=null&&s.active)&&!(r!=null&&r.active)&&(!this.toX||!this.toY)&&(!n.x||!n.y)){i=i||this.oob();const a=i.topLeft,g=i.bottomRight;if(!this.toX&&!n.x){let c=null;i.left&&this.left?c=this.parent.screenWorldWidth<this.parent.screenWidth?this.calcUnderflowX():-a.x:i.right&&this.right&&(c=this.parent.screenWorldWidth<this.parent.screenWidth?this.calcUnderflowX():-g.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():-a.y:i.bottom&&this.bottom&&(c=this.parent.screenWorldHeight<this.parent.screenHeight?this.calcUnderflowY():-g.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 yg={left:!1,right:!1,top:!1,bottom:!1,direction:null,underflow:"center"};class wg extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},yg,e),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 t=this.options.underflow.toLowerCase();t==="none"?this.noUnderflow=!0:t==="center"?(this.underflowX=this.underflowY=0,this.noUnderflow=!1):(this.underflowX=t.indexOf("left")!==-1?-1:t.indexOf("right")!==-1?1:0,this.underflowY=t.indexOf("top")!==-1?-1:t.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 t=new v.Point(this.parent.x,this.parent.y),e=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,e.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,e.x=0,i=!0);i&&this.parent.emit("moved",{viewport:this.parent,original:t,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,e.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,e.y=0,i=!0);i&&this.parent.emit("moved",{viewport:this.parent,original:t,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 mg={minWidth:null,minHeight:null,maxWidth:null,maxHeight:null,minScale:null,maxScale:null};class Dg extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},mg,e),this.clamp()}resize(){this.clamp()}clamp(){if(!this.paused){if(this.options.minWidth||this.options.minHeight||this.options.maxWidth||this.options.maxHeight){let t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight;if(this.options.minWidth!==null&&t<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,t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.maxWidth!==null&&t>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,t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.minHeight!==null&&e<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,t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight,this.parent.emit("zoomed",{viewport:this.parent,type:"clamp-zoom"})}if(this.options.maxHeight!==null&&e>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 t={x:null,y:null},e={x:null,y:null};if(typeof this.options.minScale=="number")t.x=this.options.minScale,t.y=this.options.minScale;else if(this.options.minScale!==null){const s=this.options.minScale;t.x=typeof s.x>"u"?null:s.x,t.y=typeof s.y>"u"?null:s.y}if(typeof this.options.maxScale=="number")e.x=this.options.maxScale,e.y=this.options.maxScale;else if(this.options.maxScale!==null){const s=this.options.maxScale;e.x=typeof s.x>"u"?null:s.x,e.y=typeof s.y>"u"?null:s.y}let i=this.parent.scale.x,n=this.parent.scale.y;t.x!==null&&i<t.x&&(i=t.x),e.x!==null&&i>e.x&&(i=e.x),t.y!==null&&n<t.y&&(n=t.y),e.y!==null&&n>e.y&&(n=e.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 vg={friction:.98,bounce:.8,minSpeed:.01},Xt=16;class bg extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},vg,e),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 t=this.parent.input.count();return(t===1||t>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(t){if(this.saved.length){const e=this.saved[this.saved.length-1];t.type==="clamp-x"&&t.original?e.x===t.original.x&&(e.x=this.parent.x):t.type==="clamp-y"&&t.original&&e.y===t.original.y&&(e.y=this.parent.y)}}up(){if(this.parent.input.count()===0&&this.saved.length){const t=performance.now();for(const e of this.saved)if(e.time>=t-100){const i=t-e.time;this.x=(this.parent.x-e.x)/i,this.y=(this.parent.y-e.y)/i,this.percentChangeX=this.percentChangeY=this.options.friction,this.timeSinceRelease=0;break}}return!1}activate(t){t=t||{},typeof t.x<"u"&&(this.x=t.x,this.percentChangeX=this.options.friction),typeof t.y<"u"&&(this.y=t.y,this.percentChangeY=this.options.friction)}update(t){if(this.paused)return;const e=this.x||this.y,i=this.timeSinceRelease,n=this.timeSinceRelease+t;if(this.x){const s=this.percentChangeX,r=Math.log(s);this.parent.x+=this.x*Xt/r*(Math.pow(s,n/Xt)-Math.pow(s,i/Xt)),this.x*=Math.pow(this.percentChangeX,t/Xt)}if(this.y){const s=this.percentChangeY,r=Math.log(s);this.parent.y+=this.y*Xt/r*(Math.pow(s,n/Xt)-Math.pow(s,i/Xt)),this.y*=Math.pow(this.percentChangeY,t/Xt)}this.timeSinceRelease+=t,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)),e&&this.parent.emit("moved",{viewport:this.parent,type:"decelerate"})}reset(){this.x=this.y=null}}const Sg={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 xg extends yt{constructor(t,e={}){super(t),this.windowEventHandlers=[],this.options=Object.assign({},Sg,e),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(t){const e=n=>{t.includes(n.code)&&(this.keyIsPressed=!0)},i=n=>{t.includes(n.code)&&(this.keyIsPressed=!1)};this.addWindowEventHandler("keyup",i),this.addWindowEventHandler("keydown",e)}addWindowEventHandler(t,e){typeof window>"u"||(window.addEventListener(t,e),this.windowEventHandlers.push({event:t,handler:e}))}destroy(){typeof window>"u"||this.windowEventHandlers.forEach(({event:t,handler:e})=>{window.removeEventListener(t,e)})}mouseButtons(t){!t||t==="all"?this.mouse=[!0,!0,!0]:this.mouse=[t.indexOf("left")!==-1,t.indexOf("middle")!==-1,t.indexOf("right")!==-1]}parseUnderflow(){const t=this.options.underflow.toLowerCase();t==="center"?(this.underflowX=0,this.underflowY=0):(t.includes("left")?this.underflowX=-1:t.includes("right")?this.underflowX=1:this.underflowX=0,t.includes("top")?this.underflowY=-1:t.includes("bottom")?this.underflowY=1:this.underflowY=0)}checkButtons(t){const e=t.pointerType==="mouse",i=this.parent.input.count();return!!((i===1||i>1&&!this.parent.plugins.get("pinch",!0))&&(!e||this.mouse[t.button]))}checkKeyPress(t){return!this.options.keyToPress||this.keyIsPressed||this.options.ignoreKeyToPressOnTouch&&t.data.pointerType==="touch"}down(t){return this.paused||!this.options.pressDrag?!1:this.checkButtons(t)&&this.checkKeyPress(t)?(this.last={x:t.global.x,y:t.global.y},(this.parent.parent||this.parent).toLocal(this.last,void 0,this.last),this.current=t.pointerId,!0):(this.last=null,!1)}get active(){return this.moved}move(t){if(this.paused||!this.options.pressDrag)return!1;if(this.last&&this.current===t.data.pointerId){const e=t.global.x,i=t.global.y,n=this.parent.input.count();if(n===1||n>1&&!this.parent.plugins.get("pinch",!0)){const s={x:e,y:i};(this.parent.parent||this.parent).toLocal(s,void 0,s);const r=s.x-this.last.x,a=s.y-this.last.y;if(this.moved||this.xDirection&&this.parent.input.checkThreshold(r)||this.yDirection&&this.parent.input.checkThreshold(a))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:t,screen:new v.Point(this.last.x,this.last.y),world:this.parent.toWorld(new v.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(t){if(this.paused)return!1;const e=this.parent.input.touches;if(e.length===1){const i=e[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 v.Point(this.last.x,this.last.y);return(this.parent.parent||this.parent).toGlobal(i,i,!0),this.parent.emit("drag-end",{event:t,screen:i,world:this.parent.toWorld(i),viewport:this.parent}),this.last=null,this.moved=!1,!0}return!1}wheel(t){if(this.paused)return!1;if(this.options.wheel){const e=this.parent.plugins.get("wheel",!0);if(!e||!e.options.wheelZoom&&!t.ctrlKey){const i=t.deltaMode?this.options.lineHeight:1,n=[t.deltaX,t.deltaY],[s,r]=this.options.wheelSwapAxes?n.reverse():n;return this.xDirection&&(this.parent.x+=s*i*this.options.wheelScroll*this.reverse),this.yDirection&&(this.parent.y+=r*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||t.preventDefault(),this.parent.options.stopPropagation&&t.stopPropagation(),!0}}return!1}resume(){this.last=null,this.paused=!1}clamp(){const t=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,t.x=0):this.parent.right>this.parent.worldWidth&&(this.parent.x=-this.parent.worldWidth*this.parent.scale.x+this.parent.screenWidth,t.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,t.y=0),this.parent.bottom>this.parent.worldHeight&&(this.parent.y=-this.parent.worldHeight*this.parent.scale.y+this.parent.screenHeight,t.y=0)}}const kg={speed:0,acceleration:null,radius:null};class Mg extends yt{constructor(t,e,i={}){super(t),this.target=e,this.options=Object.assign({},kg,i),this.velocity={x:0,y:0}}update(t){if(this.paused)return;const e=this.parent.center;let i=this.target.x,n=this.target.y;if(this.options.radius)if(Math.sqrt(Math.pow(this.target.y-e.y,2)+Math.pow(this.target.x-e.x,2))>this.options.radius){const a=Math.atan2(this.target.y-e.y,this.target.x-e.x);i=this.target.x-Math.cos(a)*this.options.radius,n=this.target.y-Math.sin(a)*this.options.radius}else return;const s=i-e.x,r=n-e.y;if(s||r)if(this.options.speed)if(this.options.acceleration){const a=Math.atan2(n-e.y,i-e.x),g=Math.sqrt(Math.pow(s,2)+Math.pow(r,2));if(g){const c=(Math.pow(this.velocity.x,2)+Math.pow(this.velocity.y,2))/(2*this.options.acceleration);g>c?this.velocity={x:Math.min(this.velocity.x+(this.options.acceleration*t,this.options.speed)),y:Math.min(this.velocity.y+(this.options.acceleration*t,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(a)*this.velocity.x,o=Math.sin(a)*this.velocity.y,l=Math.abs(u)>Math.abs(s)?i:e.x+u,h=Math.abs(o)>Math.abs(r)?n:e.y+o;this.parent.moveCenter(l,h),this.parent.emit("moved",{viewport:this.parent,type:"follow"})}}else{const a=Math.atan2(n-e.y,i-e.x),g=Math.cos(a)*this.options.speed,c=Math.sin(a)*this.options.speed,u=Math.abs(g)>Math.abs(s)?i:e.x+g,o=Math.abs(c)>Math.abs(r)?n:e.y+c;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 Rg={radius:null,distance:null,top:null,bottom:null,left:null,right:null,speed:8,reverse:!1,noDecelerate:!1,linear:!1,allowButtons:!1};class _g extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},Rg,e),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 t=this.options.distance;t!==null?(this.left=t,this.top=t,this.right=this.parent.screenWidth-t,this.bottom=this.parent.screenHeight-t):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(t){if(this.paused||t.pointerType!=="mouse"&&t.pointerId!==1||!this.options.allowButtons&&t.buttons!==0)return!1;const e=t.global.x,i=t.global.y;if(this.radiusSquared){const n=this.parent.toScreen(this.parent.center);if(Math.pow(n.x-e,2)+Math.pow(n.y-i,2)>=this.radiusSquared){const s=Math.atan2(n.y-i,n.x-e);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&&e<this.left?this.horizontal=Number(this.reverse)*this.options.speed*.06:this.right!==null&&e>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 t=this.parent.plugins.get("decelerate",!0);this.horizontal&&t&&!this.options.noDecelerate&&t.activate({x:this.horizontal*this.options.speed*this.reverse/16.666666666666668})}decelerateVertical(){const t=this.parent.plugins.get("decelerate",!0);this.vertical&&t&&!this.options.noDecelerate&&t.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 t=this.parent.center;this.horizontal&&(t.x+=this.horizontal*this.options.speed),this.vertical&&(t.y+=this.vertical*this.options.speed),this.parent.moveCenter(t),this.parent.emit("moved",{viewport:this.parent,type:"mouse-edges"})}}}const Fg={noDrag:!1,percent:1,center:null,factor:1,axis:"all"},Gg=new v.Point;class Ng extends yt{constructor(t,e={}){super(t),this.active=!1,this.pinching=!1,this.moved=!1,this.options=Object.assign({},Fg,e)}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(t){if(this.paused||!this.active)return!1;const{x:e,y:i}=(this.parent.parent||this.parent).toLocal(t.global,void 0,Gg),n=this.parent.input.touches;if(n.length>=2){const s=n[0],r=n[1],a=s.last&&r.last?Math.sqrt(Math.pow(r.last.x-s.last.x,2)+Math.pow(r.last.y-s.last.y,2)):null;if(s.id===t.pointerId?s.last={x:e,y:i,data:t}:r.id===t.pointerId&&(r.last={x:e,y:i,data:t}),a){let g;const c=new v.Point(s.last.x+(r.last.x-s.last.x)/2,s.last.y+(r.last.y-s.last.y)/2);this.options.center||(g=this.parent.toLocal(c,this.parent.parent||this.parent));let u=Math.sqrt(Math.pow(r.last.x-s.last.x,2)+Math.pow(r.last.y-s.last.y,2));u=u===0?u=1e-10:u;const o=(1-a/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:c});const l=this.parent.plugins.get("clamp-zoom",!0);if(l&&l.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const h=(this.parent.parent||this.parent).toLocal(g,this.parent);this.parent.x+=(c.x-h.x)*this.options.factor,this.parent.y+=(c.y-h.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 Hg={topLeft:!1,friction:.8,time:1e3,ease:"easeInOutSine",interrupt:!0,removeOnComplete:!1,removeOnInterrupt:!1,forceStart:!1};class Lg extends yt{constructor(t,e,i,n={}){super(t),this.options=Object.assign({},Hg,n),this.ease=bA(n.ease,"easeInOutSine"),this.x=e,this.y=i,this.options.forceStart&&this.snapStart()}snapStart(){this.percent=0,this.snapping={time:0};const t=this.options.topLeft?this.parent.corner:this.parent.center;this.deltaX=this.x-t.x,this.deltaY=this.y-t.y,this.startX=t.x,this.startY=t.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 t=this.parent.plugins.get("decelerate",!0);t&&(t.x||t.y)&&(t.percentChangeX=t.percentChangeY=this.options.friction)}return!1}update(t){if(!this.paused&&!(this.options.interrupt&&this.parent.input.count()!==0))if(this.snapping){const e=this.snapping;e.time+=t;let i,n,s;const r=this.startX,a=this.startY,g=this.deltaX,c=this.deltaY;if(e.time>this.options.time)i=!0,n=r+g,s=a+c;else{const u=this.ease(e.time,0,1,this.options.time);n=r+g*u,s=a+c*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 e=this.options.topLeft?this.parent.corner:this.parent.center;(e.x!==this.x||e.y!==this.y)&&this.snapStart()}}}const Ug={width:0,height:0,time:1e3,ease:"easeInOutSine",center:null,interrupt:!0,removeOnComplete:!1,removeOnInterrupt:!1,forceStart:!1,noMove:!1};class Tg extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},Ug,e),this.ease=bA(this.options.ease),this.xIndependent=!1,this.yIndependent=!1,this.xScale=0,this.yScale=0,this.options.width>0&&(this.xScale=t.screenWidth/this.options.width,this.xIndependent=!0),this.options.height>0&&(this.yScale=t.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?(t.container.scale.x=this.xScale,t.container.scale.y=this.yScale,this.options.removeOnComplete&&this.parent.plugins.remove("snap-zoom")):e.forceStart&&this.createSnapping()}createSnapping(){const t=this.parent.worldScreenWidth,e=this.parent.worldScreenHeight,i=this.parent.screenWidth/this.xScale,n=this.parent.screenHeight/this.yScale;this.snapping={time:0,startX:t,startY:e,deltaX:i-t,deltaY:n-e},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(t){if(this.paused||this.options.interrupt&&this.parent.input.count()!==0)return;let e;if(!this.options.center&&!this.options.noMove&&(e=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+=t,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,r=this.ease(s.time,s.startX,s.deltaX,this.options.time),a=this.ease(s.time,s.startY,s.deltaY,this.options.time);this.parent.scale.x=this.parent.screenWidth/r,this.parent.scale.y=this.parent.screenHeight/a}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(e))}}resume(){this.snapping=null,super.resume()}}const Og={percent:.1,smooth:!1,interrupt:!0,reverse:!1,center:null,lineHeight:20,axis:"all",keyToPress:null,trackpadPinch:!1,wheelZoom:!0};class Pg extends yt{constructor(t,e={}){super(t),this.options=Object.assign({},Og,e),this.keyIsPressed=!1,this.options.keyToPress&&this.handleKeyPresses(this.options.keyToPress)}handleKeyPresses(t){typeof window>"u"||(window.addEventListener("keydown",e=>{t.includes(e.code)&&(this.keyIsPressed=!0)}),window.addEventListener("keyup",e=>{t.includes(e.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 t=this.smoothingCenter,e=this.smoothing;let i;this.options.center||(i=this.parent.toLocal(t)),this.isAxisX()&&(this.parent.scale.x+=e.x),this.isAxisY()&&(this.parent.scale.y+=e.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 r=s.toLocal(t);this.parent.x+=r.x-i.x,this.parent.y+=r.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(t){if(this.paused)return;const e=this.parent.input.getPointerPosition(t),i=-t.deltaY*(t.deltaMode?this.options.lineHeight:1)/200,n=Math.pow(2,(1+this.options.percent)*i);let s;this.options.center||(s=this.parent.toLocal(e)),this.isAxisX()&&(this.parent.scale.x*=n),this.isAxisY()&&(this.parent.scale.y*=n),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const r=this.parent.plugins.get("clamp-zoom",!0);if(r&&r.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const a=this.parent.parent||this.parent;a.toLocal(s,this.parent,s);const g=a.toLocal(e);this.parent.x+=g.x-s.x,this.parent.y+=g.y-s.y}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.emit("wheel-start",{event:t,viewport:this.parent})}wheel(t){if(this.paused||!this.checkKeyPress())return!1;if(t.ctrlKey&&this.options.trackpadPinch)this.pinch(t);else if(this.options.wheelZoom){const e=this.parent.input.getPointerPosition(t),i=(this.options.reverse?-1:1)*-t.deltaY*(t.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=e}else{let s;this.options.center||(s=this.parent.toLocal(e)),this.isAxisX()&&(this.parent.scale.x*=n),this.isAxisY()&&(this.parent.scale.y*=n),this.parent.emit("zoomed",{viewport:this.parent,type:"wheel"});const r=this.parent.plugins.get("clamp-zoom",!0);if(r&&r.clamp(),this.options.center)this.parent.moveCenter(this.options.center);else{const a=this.parent.parent||this.parent;a.toLocal(s,this.parent,s);const g=a.toLocal(e);this.parent.x+=g.x-s.x,this.parent.y+=g.y-s.y}}this.parent.emit("moved",{viewport:this.parent,type:"wheel"}),this.parent.emit("wheel-start",{event:t,viewport:this.parent})}return!this.parent.options.passiveWheel}}const Jg={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:v.Ticker.shared,allowPreserveDragOutside:!1};class Kg extends v.Container{constructor(t){super(),this._disableOnContextMenu=e=>e.preventDefault(),this.options={...Jg,...t},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 Bg(this),this.plugins=new Eg(this)}destroy(t){var e;!this.options.noTicker&&this.tickerFunction&&this.options.ticker.remove(this.tickerFunction),this.options.disableOnContextMenu&&((e=this.options.events.domElement)==null||e.removeEventListener("contextmenu",this._disableOnContextMenu)),this.input.destroy(),super.destroy(t)}update(t){this.pause||(this.plugins.update(t),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 v.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(t=typeof window>"u"?0:window.innerWidth,e=typeof window>"u"?0:window.innerHeight,i,n){this.screenWidth=t,this.screenHeight=e,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(t){this._worldWidth=t,this.plugins.resize()}get worldHeight(){return this._worldHeight?this._worldHeight:this.height/this.scale.y}set worldHeight(t){this._worldHeight=t,this.plugins.resize()}getVisibleBounds(){return new v.Rectangle(this.left,this.top,this.worldScreenWidth,this.worldScreenHeight)}toWorld(t,e){return arguments.length===2?this.toLocal(new v.Point(t,e)):this.toLocal(t)}toScreen(t,e){return arguments.length===2?this.toGlobal(new v.Point(t,e)):this.toGlobal(t)}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 v.Point(this.worldScreenWidth/2-this.x/this.scale.x,this.worldScreenHeight/2-this.y/this.scale.y)}set center(t){this.moveCenter(t)}moveCenter(...t){let e,i;typeof t[0]=="number"?(e=t[0],i=t[1]):(e=t[0].x,i=t[0].y);const n=(this.worldScreenWidth/2-e)*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 v.Point(-this.x/this.scale.x,-this.y/this.scale.y)}set corner(t){this.moveCorner(t)}moveCorner(...t){let e,i;return t.length===1?(e=-t[0].x*this.scale.x,i=-t[0].y*this.scale.y):(e=-t[0]*this.scale.x,i=-t[1]*this.scale.y),(e!==this.x||i!==this.y)&&(this.position.set(e,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(t){return this.screenWidth/t}findFitHeight(t){return this.screenHeight/t}findFit(t,e){const i=this.screenWidth/t,n=this.screenHeight/e;return Math.min(i,n)}findCover(t,e){const i=this.screenWidth/t,n=this.screenHeight/e;return Math.max(i,n)}fitWidth(t=this.worldWidth,e,i=!0,n){let s;e&&(s=this.center),this.scale.x=this.screenWidth/t,i&&(this.scale.y=this.scale.x);const r=this.plugins.get("clamp-zoom",!0);return!n&&r&&r.clamp(),e&&s&&this.moveCenter(s),this}fitHeight(t=this.worldHeight,e,i=!0,n){let s;e&&(s=this.center),this.scale.y=this.screenHeight/t,i&&(this.scale.x=this.scale.y);const r=this.plugins.get("clamp-zoom",!0);return!n&&r&&r.clamp(),e&&s&&this.moveCenter(s),this}fitWorld(t){let e;t&&(e=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(),t&&e&&this.moveCenter(e),this}fit(t,e=this.worldWidth,i=this.worldHeight){let n;t&&(n=this.center),this.scale.x=this.screenWidth/e,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(),t&&n&&this.moveCenter(n),this}setZoom(t,e){let i;e&&(i=this.center),this.scale.set(t);const n=this.plugins.get("clamp-zoom",!0);return n&&n.clamp(),e&&i&&this.moveCenter(i),this}zoomPercent(t,e){return this.setZoom(this.scale.x+this.scale.x*t,e)}zoom(t,e){return this.fitWidth(t+this.worldScreenWidth,e),this}get scaled(){return this.scale.x}set scaled(t){this.setZoom(t,!0)}snapZoom(t){return this.plugins.add("snap-zoom",new Tg(this,t)),this}OOB(){return{left:this.left<0,right:this.right>this.worldWidth,top:this.top<0,bottom:this.bottom>this.worldHeight,cornerPoint:new v.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(t){this.x=-t*this.scale.x+this.screenWidth,this.plugins.reset()}get left(){return-this.x/this.scale.x}set left(t){this.x=-t*this.scale.x,this.plugins.reset()}get top(){return-this.y/this.scale.y}set top(t){this.y=-t*this.scale.y,this.plugins.reset()}get bottom(){return-this.y/this.scale.y+this.worldScreenHeight}set bottom(t){this.y=-t*this.scale.y+this.screenHeight,this.plugins.reset()}get dirty(){return!!this._dirty}set dirty(t){this._dirty=t}get forceHitArea(){return this._forceHitArea}set forceHitArea(t){t?(this._forceHitArea=t,this.hitArea=t):(this._forceHitArea=null,this.hitArea=new v.Rectangle(0,0,this.worldWidth,this.worldHeight))}drag(t){return this.plugins.add("drag",new xg(this,t)),this}clamp(t){return this.plugins.add("clamp",new wg(this,t)),this}decelerate(t){return this.plugins.add("decelerate",new bg(this,t)),this}bounce(t){return this.plugins.add("bounce",new pg(this,t)),this}pinch(t){return this.plugins.add("pinch",new Ng(this,t)),this}snap(t,e,i){return this.plugins.add("snap",new Lg(this,t,e,i)),this}follow(t,e){return this.plugins.add("follow",new Mg(this,t,e)),this}wheel(t){return this.plugins.add("wheel",new Pg(this,t)),this}animate(t){return this.plugins.add("animate",new dg(this,t)),this}clampZoom(t){return this.plugins.add("clamp-zoom",new Dg(this,t)),this}mouseEdges(t){return this.plugins.add("mouse-edges",new _g(this,t)),this}get pause(){return!!this._pause}set pause(t){this._pause=t,this.lastViewport=null,this.moving=!1,this.zooming=!1,t&&this.input.pause()}ensureVisible(t,e,i,n,s){s&&(i>this.worldScreenWidth||n>this.worldScreenHeight)&&(this.fit(!0,i,n),this.emit("zoomed",{viewport:this,type:"ensureVisible"}));let r=!1;t<this.left?(this.left=t,r=!0):t+i>this.right&&(this.right=t+i,r=!0),e<this.top?(this.top=e,r=!0):e+n>this.bottom&&(this.bottom=e+n,r=!0),r&&this.emit("moved",{viewport:this,type:"ensureVisible"})}}const Yg=["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 Wg extends pt(v.Container){constructor(){super(),this.overrideProps=["wheel"];const t={noTicker:!0,events:{domElement:{addEventListener:()=>{}}}};this.viewport=new Kg(t),super.addChild(this.viewport),this.#t=new v.Graphics,super.addChild(this.#t),this.mask=this.#t}#t;addChild(...t){return this.viewport.addChild(...t)}addChildAt(t,e){return this.viewport.addChildAt(t,e)}onInit(t){super.onInit(t);for(let e of Yg)t[e]&&this.viewport.on(e,t[e])}async onMount(t,e){t.props.context.viewport=this.viewport,await super.onMount(t,e);const{props:i}=t,{tick:n,app:s,canvasSize:r}=i.context;nt(()=>{i.screenWidth===void 0&&(this.viewport.screenWidth=r().width),i.screenHeight===void 0&&(this.viewport.screenHeight=r().height),this.updateMask()}),nt(()=>{const a=s();if(!a)return;const g=a.renderer;g.events.domElement.addEventListener("wheel",this.viewport.input.wheelFunction),this.viewport.options.events=g.events}),this.tickSubscription=n.observable.subscribe(({value:a})=>{this.viewport.update(a.deltaTime)}),this.updateViewportSettings(i)}onUpdate(t){super.onUpdate(t),this.updateViewportSettings(t)}updateViewportSettings(t){t.screenWidth!==void 0&&(this.viewport.screenWidth=t.screenWidth),t.screenHeight!==void 0&&(this.viewport.screenHeight=t.screenHeight),this.updateMask(),t.worldWidth!==void 0&&(this.viewport.worldWidth=t.worldWidth),t.worldHeight!==void 0&&(this.viewport.worldHeight=t.worldHeight),t.drag&&this.viewport.drag(t.drag),t.clamp&&this.viewport.clamp(t.clamp.value??t.clamp),t.wheel&&(t.wheel===!0?this.viewport.wheel():this.viewport.wheel(t.wheel)),t.decelerate&&(t.decelerate===!0?this.viewport.decelerate():this.viewport.decelerate(t.decelerate)),t.pinch&&(t.pinch===!0?this.viewport.pinch():this.viewport.pinch(t.pinch))}updateMask(){this.#t&&(this.#t.clear(),this.#t.beginFill(16777215),this.#t.drawRect(0,0,this.viewport.screenWidth,this.viewport.screenHeight),this.#t.endFill())}async onDestroy(t,e){const i=async()=>{this.tickSubscription.unsubscribe(),e()};await super.onDestroy(t,i)}follow(...t){return this.viewport.follow(...t)}get plugins(){return this.viewport.plugins}}st("Viewport",Wg);function jg(A){return ct("Viewport",A)}class Vg extends pt(v.NineSliceSprite){constructor(){super({width:0,height:0})}async onUpdate(t){for(const[e,i]of Object.entries(t))i!==void 0&&(e==="image"?this.texture=await v.Assets.load(i):e in this&&(this[e]=i))}}st("NineSliceSprite",Vg);function qg(A){return ct("NineSliceSprite",A)}const Do=["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 Xg{constructor(){this.eventListeners=new Map,this.onBeforeDestroy=null,this.valueSignal=null,this.isFormElementType=!1}isFormElement(t){return["input","textarea","select"].includes(t.toLowerCase())}onInit(t){typeof t.element=="string"?(this.element=document.createElement(t.element),this.isFormElementType=this.isFormElement(t.element)):(this.element=t.element.value,this.isFormElementType=this.isFormElement(this.element.tagName)),(t.onBeforeDestroy||t["on-before-destroy"])&&(this.onBeforeDestroy=t.onBeforeDestroy||t["on-before-destroy"]);for(const e of Do)if(t.attrs?.[e]){const i=n=>{if(e==="submit"&&this.element.tagName.toLowerCase()==="form"){n.preventDefault();const s=new FormData(this.element),r={};s.forEach((a,g)=>{r[g]?Array.isArray(r[g])?r[g].push(a):r[g]=[r[g],a]:r[g]=a}),t.attrs[e]?.(n,r)}else t.attrs[e]?.(n)};this.eventListeners.set(e,i),this.element.addEventListener(e,i,!1)}if(t.children)for(const e of t.children)rs(e)?e.subscribe(({elements:i})=>{for(const n of i)this.element.appendChild(n.componentInstance.element)}):this.element.appendChild(e.componentInstance.element);this.onUpdate(t)}onMount(t){const i=t.propObservables.attrs;if(this.isFormElementType&&i?.value&&N(i.value)){this.valueSignal=i.value,this.element.value=this.valueSignal();const n=s=>{const r=s.target;this.valueSignal.set(r.value)};this.eventListeners.set("input",n),this.element.addEventListener("input",n,!1)}}onUpdate(t){if(this.element){for(const[e,i]of Object.entries(t.attrs||{}))if(e==="tabindex"){const n=N(i)?i():i;n!=null?this.element.setAttribute("tabindex",String(n)):this.element.removeAttribute("tabindex")}else if(e==="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,r]of Object.entries(n))r&&this.element.classList.add(s)}else if(e==="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,r]of Object.entries(n))r!=null&&(this.element.style[s]=r)}else if(e==="value"&&this.isFormElementType)if(N(i)){const n=this.element.value,s=i();n!==s&&(this.element.value=s)}else this.element.value=i;else Do.includes(e)||this.element.setAttribute(e,i);t.textContent&&(this.element.textContent=t.textContent)}}async onDestroy(t,e){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(),e&&e()}}}st("DOMElement",Xg);const vo=A=>ct("DOMElement",A);class Zg extends pt(v.DOMContainer){constructor(){super(...arguments),this.disableLayout=!0}onInit(t){const e=t._scopeClass;let i={element:"div"};e?(i.attrs={...t.attrs},i.attrs.class?typeof i.attrs.class=="string"?i.attrs.class=`${e} ${i.attrs.class}`:Array.isArray(i.attrs.class)?i.attrs.class=[e,...i.attrs.class]:typeof i.attrs.class=="object"&&(i.attrs.class={[e]:!0,...i.attrs.class}):i.attrs.class=e):t.attrs&&(i.attrs=t.attrs);const n=ht(vo,i,t.children);this.element=n.componentInstance.element}}st("DOMContainer",Zg);const zg=A=>ct("DOMContainer",A);var bo=(A=>(A.Normal="normal",A.Hover="hover",A.Pressed="pressed",A.Disabled="disabled",A))(bo||{});function $g(A){const t=Y("normal"),e=Y(!1),i=Y(!1),n=ki(A),{text:s,disabled:r,width:a,height:g,style:c,shape:u,controlName:o}=n({text:{type:String,default:""},disabled:{type:Boolean,default:!1},width:{type:Number,default:120},height:{type:Number,default:40},style:{type:Object,default:()=>({})},shape:{type:String,default:"rect"},controlName:{type:String,default:void 0}}),l=()=>A.controls?N(A.controls)?A.controls():A.controls:null;nt(()=>{const d=r(),C=e(),w=i();d?t.set("disabled"):C?t.set("pressed"):w?t.set("hover"):t.set("normal")});const h={pointerenter:d=>{r()||(i.set(!0),A.hoverEnter?.(d))},pointerleave:d=>{i.set(!1),e.set(!1),A.hoverLeave?.(d)},pointerdown:async d=>{if(!r()){e.set(!0),A.pressDown?.(d);const C=l(),w=o();C&&w&&C.applyControl&&await C.applyControl(w,!0)}},pointerup:async d=>{if(!r()&&e()){e.set(!1),A.pressUp?.(d);const C=l(),w=o();C&&w&&C.applyControl&&await C.applyControl(w,!1)}},pointertap:async d=>{if(!r()){A.click?.(d);const C=l(),w=o();C&&w&&C.applyControl&&await C.applyControl(w)}}},B=()=>{if(A.background)return A.background;const d=u(),C=Ct(()=>{const m=c().backgroundColor||{normal:"#007bff",hover:"#0056b3",pressed:"#004085",disabled:"#6c757d"},b=t();return m[b]||m.normal});if(d==="circle"){const w=Ct(()=>Math.min(a(),g())/2);return ht(Gi,{radius:w,x:Ct(()=>a()/2),y:Ct(()=>g()/2),color:C})}else return d==="ellipse"?ht(uo,{width:a,height:g,color:C}):ht(ho,{width:a,height:g,color:C})},E=()=>A.children&&A.children.length>0?A.children:[ht(yo,{text:s,x:Ct(()=>a()/2),y:Ct(()=>g()/2),anchor:{x:.5,y:.5},style:Ct(()=>{const C=c().text||{};return{fontSize:C.fontSize||16,fontFamily:C.fontFamily||"Arial",fill:C.color||"#ffffff"}})()})];return ht(Xe,{x:A.x,y:A.y,width:A.width,height:A.height,alpha:A.alpha,visible:A.visible,cursor:A.cursor||"pointer",tabindex:A.tabindex,...h},[B(),...E()])}function tc(A={}){const t=Object.assign({outerScale:{x:1,y:1},innerScale:{x:1,y:1},innerColor:"black",outerColor:"black"},A),e=()=>N(t.controls)?t.controls():t.controls;let i=70,n=10;const s=.5;let r=!1,a=null,g=0;const c=Y(0),u=Y(0),o=Y(s);function l(b){const M=b.x-0,G=b.y-0;return Math.min(1,Math.sqrt(M*M+G*G)/i)}function h(b){let M=Math.atan2(b.y,b.x);return M>=-Math.PI/8&&M<0||M>=0&&M<Math.PI/8?"right":M>=Math.PI/8&&M<3*Math.PI/8?"bottom_right":M>=3*Math.PI/8&&M<5*Math.PI/8?"bottom":M>=5*Math.PI/8&&M<7*Math.PI/8?"bottom_left":M>=7*Math.PI/8&&M<Math.PI||M>=-Math.PI&&M<-7*Math.PI/8?"left":M>=-7*Math.PI/8&&M<-5*Math.PI/8?"top_left":M>=-5*Math.PI/8&&M<-3*Math.PI/8?"top":"top_right"}function B(b){const M=b.currentTarget||b.target;a=b.getLocalPosition(M),r=!0,o.set(1),t.onStart?.();const G=e();G&&(G.handleJoystickStart?G.handleJoystickStart():G.joystick&&G.joystick.handleJoystickStart&&G.joystick.handleJoystickStart())}function E(){if(!r)return;c.set(0),u.set(0),r=!1,o.set(s),t.onEnd?.();const b=e();b&&(b.handleJoystickEnd?b.handleJoystickEnd():b.joystick&&b.joystick.handleJoystickEnd&&b.joystick.handleJoystickEnd())}function d(b){if(r==!1)return;const M=b.currentTarget||b.target;let G=b.getLocalPosition(M),O=G.x-(a?.x??0),K=G.y-(a?.y??0),H=new Cr.Point(0,0),T=0;if(O==0&&K==0)return;let W="left";if(O==0){K>0?(H.set(0,K>i?i:K),T=270,W="bottom"):(H.set(0,-(Math.abs(K)>i?i:Math.abs(K))),T=90,W="top"),c.set(H.x),u.set(H.y),g=l(H);const Lt={angle:T,direction:W,power:g};t.onChange?.(Lt);const gt=e();gt&&(gt.handleJoystickChange?gt.handleJoystickChange(Lt):gt.joystick&&gt.joystick.handleJoystickChange&&gt.joystick.handleJoystickChange(Lt));return}if(K==0){O>0?(H.set(Math.abs(O)>i?i:Math.abs(O),0),T=0,W="right"):(H.set(-(Math.abs(O)>i?i:Math.abs(O)),0),T=180,W="left"),c.set(H.x),u.set(H.y),g=l(H);const Lt={angle:T,direction:W,power:g};t.onChange?.(Lt);const gt=e();gt&&(gt.handleJoystickChange?gt.handleJoystickChange(Lt):gt.joystick&&gt.joystick.handleJoystickChange&&gt.joystick.handleJoystickChange(Lt));return}let At=Math.abs(K/O),ot=Math.atan(At);T=ot*180/Math.PI;let tt=0,It=0;O*O+K*K>=i*i?(tt=i*Math.cos(ot),It=i*Math.sin(ot)):(tt=Math.abs(O)>i?i:Math.abs(O),It=Math.abs(K)>i?i:Math.abs(K)),K<0&&(It=-Math.abs(It)),O<0&&(tt=-Math.abs(tt)),O>0&&K<0||(O<0&&K<0?T=180-T:O<0&&K>0?T=T+180:O>0&&K>0&&(T=360-T)),H.set(tt,It),g=l(H),W=h(H),c.set(H.x),u.set(H.y);const ft={angle:T,direction:W,power:g};t.onChange?.(ft);const Tt=e();Tt&&(Tt.handleJoystickChange?Tt.handleJoystickChange(ft):Tt.joystick&&Tt.joystick.handleJoystickChange&&Tt.joystick.handleJoystickChange(ft))}let C,w;t.outer?w=ht(ln,{image:t.outer,anchor:{x:.5,y:.5},scale:t.outerScale}):w=ht(ne,{draw:b=>{b.circle(0,0,i).fill(t.outerColor)},alpha:.5});const m={scale:t.innerScale,x:c,y:u,alpha:o};return t.inner?C=t.inner:C=ht(ne,{draw:b=>{b.circle(0,0,n*2.5).fill(t.innerColor)},...m}),ht(Xe,{...A,pointerdown:B,pointerup:E,pointerupoutside:E,pointermove:d},w,C)}const le=class le{constructor(){this.containers=new Map,this.scrollAnimations=new Map}static getInstance(){return le.instance||(le.instance=new le),le.instance}registerContainer(t,e){this.containers.set(t,{...e,id:t})}updateContainer(t,e){const i=this.containers.get(t);i&&this.containers.set(t,{...i,...e})}setTabindex(t,e){const i=this.containers.get(t);i&&(i.tabindexSubscription&&i.tabindexSubscription.unsubscribe(),i.tabindex=e,N(e)&&(i.tabindexSubscription=e.observable.subscribe(n=>{n!==null&&n!==i.currentIndex()&&this.setIndex(t,n)})))}unregisterContainer(t){this.containers.delete(t),this.scrollAnimations.delete(t)}registerFocusable(t,e,i){const n=this.containers.get(t);if(!n){console.warn(`FocusContainer with id "${t}" not found`);return}n.focusables.set(i,e),(N(n.tabindex)?n.tabindex():n.tabindex)===i&&n.currentIndex()===null&&this.setIndex(t,i)}unregisterFocusable(t,e){const i=this.containers.get(t);i&&i.focusables.delete(e)}navigate(t,e){const i=this.containers.get(t);if(!i||i.element&&St(i.element))return;if(i.throttle){const a=Date.now(),g=i.lastNavigateTime||0;if(a-g<i.throttle)return;i.lastNavigateTime=a}const n=i.currentIndex(),s=Array.from(i.focusables.keys()).sort((a,g)=>a-g);if(s.length===0)return;let r=null;if(n===null)r=e==="next"?s[0]:s[s.length-1];else{const a=s.indexOf(n);e==="next"?a<s.length-1?r=s[a+1]:r=s[0]:a>0?r=s[a-1]:r=s[s.length-1]}if(r!==null){const a=i.tabindex;N(a)?a.set(r):this.setIndex(t,r)}}setIndex(t,e){const i=this.containers.get(t);if(!i)return;const n=i.focusables.get(e);if(!n){console.warn(`No focusable element at index ${e} in container "${t}"`);return}i.currentIndex.set(e),i.focusedElement.set(n);const s=i.tabindex;N(s)&&s()!==e&&s.set(e),i.onFocusChange&&i.onFocusChange(e,n);const r=n.componentInstance;if(r&&r.element&&typeof r.element.focus=="function"){const a=r.element;a.focus(),typeof a.scrollIntoView=="function"&&a.scrollIntoView({block:"center",behavior:"smooth"})}if(i.autoScroll){const a=i.viewport;if(a){const g=typeof i.autoScroll=="boolean"?{center:!0}:i.autoScroll;this.scrollToElement(t,e,a,g)}}}getElement(t,e){const i=this.containers.get(t);return i&&i.focusables.get(e)||null}getCurrentIndexSignal(t){const e=this.containers.get(t);return e?e.currentIndex:null}getFocusedElementSignal(t){const e=this.containers.get(t);return e?e.focusedElement:null}isElementVisible(t,e){if(!e)return!0;const i=this.getElementBounds(t),n=e.getVisibleBounds();return i.x<n.right&&i.x+i.width>n.left&&i.y<n.bottom&&i.y+i.height>n.top}getElementBounds(t){const e=t.componentInstance;if(!e)return{x:0,y:0,width:0,height:0};const i=e.getLocalBounds(),n=e.getGlobalPosition();return{x:n.x,y:n.y,width:i.width,height:i.height}}scrollToElement(t,e,i,n={}){const s=this.containers.get(t);if(!s)return;const r=s.focusables.get(e);if(!r)return;const a=i||s.viewport;if(!a)return;const g=this.getElementBounds(r);a.getVisibleBounds();const c=n.padding||0,u=n.center!==!1,o=n.smooth||!1,l=n.duration||300;if(this.isElementVisible(r,a)){if(u){const h=g.x+g.width/2,B=g.y+g.height/2;o?this.animateScroll(t,a,h,B,l):a.moveCenter(h,B)}return}if(u){const h=g.x+g.width/2,B=g.y+g.height/2;o?this.animateScroll(t,a,h,B,l):a.moveCenter(h,B)}else{const h=g.x-c,B=g.y-c,E=g.width+c*2,d=g.height+c*2;if(o){const C=g.x+g.width/2,w=g.y+g.height/2;this.animateScroll(t,a,C,w,l)}else a.fit(h,B,E,d,c)}}animateScroll(t,e,i,n,s){const r=e.center,a=r.x,g=r.y,c={startTime:Date.now(),startX:a,startY:g,targetX:i,targetY:n,duration:s};this.scrollAnimations.set(t,c);const u=()=>{const o=this.scrollAnimations.get(t);if(!o)return;const l=Date.now()-o.startTime,h=Math.min(l/o.duration,1),B=1-Math.pow(1-h,3),E=o.startX+(o.targetX-o.startX)*B,d=o.startY+(o.targetY-o.startY)*B;e.moveCenter(E,d),h<1?requestAnimationFrame(u):this.scrollAnimations.delete(t)};requestAnimationFrame(u)}};le.instance=null;let SA=le;const ut=SA.getInstance();class ec extends vt{constructor(){super(...arguments),this.element=null,this.controlsDirective=null,this.containerId="",this.controlsSubscription=null,this.originalControls=null}onInit(t){this.element=t;const e=t.componentInstance;e&&typeof e.getContainerId=="function"&&(this.containerId=e.getContainerId());const i=t.props.controls;if(!i)return;const n=N(i)?i():i;n&&(this.originalControls=n)}setupNavigationControls(t){if(!this.controlsDirective){console.warn("FocusNavigation: Controls directive not found, cannot set up navigation");return}t=t.value??t;const e={...t,up:{...t.up,repeat:t.up?.repeat??!0,bind:t.up?.bind??["up","top_left","top_right"],keyDown:i=>{this.navigate("previous"),t.up?.keyDown?.(i)}},down:{...t.down,repeat:t.down?.repeat??!0,bind:t.down?.bind??["down","bottom_left","bottom_right"],keyDown:i=>{this.navigate("next"),t.down?.keyDown?.(i)}},left:{...t.left,repeat:t.left?.repeat??!0,bind:t.left?.bind??"left",keyDown:i=>{this.navigate("previous"),t.left?.keyDown?.(i)}},right:{...t.right,repeat:t.right?.repeat??!0,bind:t.right?.bind??"right",keyDown:i=>{this.navigate("next"),t.right?.keyDown?.(i)}},action:{...t.action,bind:t.action?.bind??["space","enter"],keyDown:i=>{this.triggerAction(),t.action?.keyDown?.(i)}}};this.controlsDirective.onUpdate({controls:e},this.element)}navigate(t){this.containerId&&ut.navigate(this.containerId,t)}triggerAction(){if(!this.containerId)return;const t=ut.getFocusedElementSignal(this.containerId);if(!t)return;const e=t();if(!e)return;const i=e.componentInstance;i&&typeof i.emit=="function"&&i.emit("pointertap",{target:i})}onMount(t){const e=t.componentInstance;if(e&&typeof e.getContainerId=="function"&&(this.containerId=e.getContainerId()),this.controlsDirective=t.directives?.controls,!this.controlsDirective){const n=ri(t,"controls");n&&(t.directives||(t.directives={}),t.directives.controls=n,this.controlsDirective=n)}const i=t.props.controls;if(i){const n=N(i)?i():i;n&&(this.originalControls=n,this.setupNavigationControls(n))}N(i)&&(this.controlsSubscription=i.observable.subscribe(n=>{n&&(this.originalControls=n,this.setupNavigationControls(n))}))}onUpdate(t,e){if(t.controls!==void 0){const i=N(t.controls)?t.controls():t.controls;i&&(this.originalControls=i,this.setupNavigationControls(i))}}onDestroy(t){this.controlsSubscription&&(this.controlsSubscription.unsubscribe(),this.controlsSubscription=null),this.element=null,this.controlsDirective=null,this.originalControls=null}}bt("focusNavigation",ec);class Ac extends pt(v.Container){constructor(){super(...arguments),this.containerId="",this.currentIndexSignal=null,this.focusedElementSignal=null,this.registeredFocusables=new Set}onInit(t){super.onInit(t),this.containerId=`focus-container-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;const e=Y(null),i=Y(null);this.currentIndexSignal=e,this.focusedElementSignal=i;const n=t.viewport||t.context?.viewport;ut.registerContainer(this.containerId,{focusables:new Map,currentIndex:e,focusedElement:i,onFocusChange:t.onFocusChange,autoScroll:t.autoScroll,viewport:n,throttle:t.throttle??150})}async onMount(t){if(await super.onMount(t,void 0),ut.updateContainer(this.containerId,{element:t}),t.props.controls){const e=ri(t,"focusNavigation");e&&!t.directives&&(t.directives={}),e&&(t.directives.focusNavigation=e,e.onInit(t),e.onMount(t))}if(t.allElements){const e=t.allElements.subscribe(()=>{this.registerChildren(t)});t.effectSubscriptions||(t.effectSubscriptions=[]),t.effectSubscriptions.push(e)}ut.setTabindex(this.containerId,t.propObservables.tabindex),setTimeout(()=>{this.registerChildren(t)},0)}onUpdate(t){super.onUpdate(t);const e=t.viewport||t.context?.viewport;ut.updateContainer(this.containerId,{viewport:e,autoScroll:t.autoScroll,onFocusChange:t.onFocusChange,throttle:t.throttle??150})}async onDestroy(t,e){for(const i of this.registeredFocusables)ut.unregisterFocusable(this.containerId,i);this.registeredFocusables.clear(),ut.unregisterContainer(this.containerId),await super.onDestroy(t,e)}registerChildren(t){if(!t.props.children)return;const e=n=>{for(const s of n)if(s){if(N(s)||s&&typeof s.subscribe=="function"){(N(s)?s.observable:s).subscribe(r=>{if(r&&typeof r=="object"&&"elements"in r){const a=r.elements||[];Array.isArray(a)&&e(a)}else Array.isArray(r)?e(r):r&&i(r)});continue}if(Array.isArray(s)){e(s);continue}i(s)}},i=n=>{if(!n||!n.componentInstance)return;let s;if(n.props?.attrs?.tabindex!==void 0){const r=n.props.attrs.tabindex;s=N(r)?r():r}else if(n.props?.tabindex!==void 0){const r=n.props.tabindex;s=N(r)?r():r}if(s!==void 0&&s>=0&&(this.registeredFocusables.has(s)||(ut.registerFocusable(this.containerId,n,s),this.registeredFocusables.add(s))),n.props&&n.props.children)if(Array.isArray(n.props.children))e(n.props.children);else if(N(n.props.children)||n.props.children&&typeof n.props.children.subscribe=="function"){const r=(N(n.props.children)?n.props.children.observable:n.props.children).subscribe(a=>{if(a&&typeof a=="object"&&"elements"in a){const g=a.elements||[];Array.isArray(g)&&e(g)}else Array.isArray(a)?e(a):a&&i(a)});n.effectSubscriptions&&n.effectSubscriptions.push(r)}else i(n.props.children)};if(Array.isArray(t.props.children))e(t.props.children);else if(t.props.children)if(N(t.props.children)||t.props.children&&typeof t.props.children.subscribe=="function"){const n=(N(t.props.children)?t.props.children.observable:t.props.children).subscribe(s=>{if(s&&typeof s=="object"&&"elements"in s){const r=s.elements||[];Array.isArray(r)&&e(r)}else Array.isArray(s)?e(s):s&&i(s)});t.effectSubscriptions||(t.effectSubscriptions=[]),t.effectSubscriptions.push(n)}else i(t.props.children)}getContainerId(){return this.containerId}getCurrentIndexSignal(){return this.currentIndexSignal}getFocusedElementSignal(){return this.focusedElementSignal}}st("FocusContainer",Ac);const ic=A=>ct("FocusContainer",A);var nc=(()=>{var A=YA&&YA.tagName.toUpperCase()==="SCRIPT"&&YA.src||new URL("index.global.js",document.baseURI).href;return(function(t){t=t||{};var e;e||(e=typeof t<"u"?t:{});var i,n;e.ready=new Promise(function(I,f){i=I,n=f});var s=Object.assign({},e),r="";typeof document<"u"&&document.currentScript&&(r=document.currentScript.src),A&&(r=A),r.indexOf("blob:")!==0?r=r.substr(0,r.replace(/[?#].*/,"").lastIndexOf("/")+1):r="";var a=e.print||console.log.bind(console),g=e.printErr||console.warn.bind(console);Object.assign(e,s),s=null;var c;e.wasmBinary&&(c=e.wasmBinary),e.noExitRuntime,typeof WebAssembly!="object"&&tt("no native wasm support detected");var u,o=!1;function l(I,f,Q){Q=f+Q;for(var p="";!(f>=Q);){var y=I[f++];if(!y)break;if(y&128){var D=I[f++]&63;if((y&224)==192)p+=String.fromCharCode((y&31)<<6|D);else{var S=I[f++]&63;y=(y&240)==224?(y&15)<<12|D<<6|S:(y&7)<<18|D<<12|S<<6|I[f++]&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 h,B,E,d,C,w,m,b,M;function G(){var I=u.buffer;h=I,e.HEAP8=B=new Int8Array(I),e.HEAP16=d=new Int16Array(I),e.HEAP32=w=new Int32Array(I),e.HEAPU8=E=new Uint8Array(I),e.HEAPU16=C=new Uint16Array(I),e.HEAPU32=m=new Uint32Array(I),e.HEAPF32=b=new Float32Array(I),e.HEAPF64=M=new Float64Array(I)}var O,K=[],H=[],T=[];function W(){var I=e.preRun.shift();K.unshift(I)}var At=0,ot=null;function tt(I){throw e.onAbort&&e.onAbort(I),I="Aborted("+I+")",g(I),o=!0,I=new WebAssembly.RuntimeError(I+". Build with -sASSERTIONS for more info."),n(I),I}function It(I){return I.startsWith("data:application/octet-stream;base64,")}var ft;if(ft="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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",!It(ft)){var Tt=ft;ft=e.locateFile?e.locateFile(Tt,r):r+Tt}function Lt(){var I=ft;try{if(I==ft&&c)return new Uint8Array(c);if(It(I))try{var f=yh(I.slice(37)),Q=new Uint8Array(f.length);for(I=0;I<f.length;++I)Q[I]=f.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){tt(D)}}function gt(){return c||typeof fetch!="function"?Promise.resolve().then(function(){return Lt()}):fetch(ft,{credentials:"same-origin"}).then(function(I){if(!I.ok)throw"failed to load wasm binary file at '"+ft+"'";return I.arrayBuffer()}).catch(function(){return Lt()})}function Bn(I){for(;0<I.length;)I.shift()(e)}function $o(I){if(I===void 0)return"_unknown";I=I.replace(/[^a-zA-Z0-9_]/g,"$");var f=I.charCodeAt(0);return 48<=f&&57>=f?"_"+I:I}function En(I,f){return I=$o(I),function(){return f.apply(this,arguments)}}var kt=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Cn=[];function FA(I){var f=Error,Q=En(I,function(p){this.name=I,this.message=p,p=Error(p).stack,p!==void 0&&(this.stack=this.toString()+`
4
+ `+p.replace(/^Error(:[^\n]*)?\n/,""))});return Q.prototype=Object.create(f.prototype),Q.prototype.constructor=Q,Q.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},Q}var Me=void 0;function P(I){throw new Me(I)}var tA=I=>(I||P("Cannot use deleted val. handle = "+I),kt[I].value),GA=I=>{switch(I){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var f=Cn.length?Cn.pop():kt.length;return kt[f]={ga:1,value:I},f}},tr=void 0,er=void 0;function rt(I){for(var f="";E[I];)f+=er[E[I++]];return f}var eA=[];function dn(){for(;eA.length;){var I=eA.pop();I.M.$=!1,I.delete()}}var AA=void 0,Ot={};function Qn(I,f){for(f===void 0&&P("ptr should not be undefined");I.R;)f=I.ba(f),I=I.R;return f}var ge={};function Ar(I){I=hr(I);var f=rt(I);return Kt(I),f}function ir(I,f){var Q=ge[I];return Q===void 0&&P(f+" has unknown type "+Ar(I)),Q}function NA(){}var pn=!1;function nr(I){--I.count.value,I.count.value===0&&(I.T?I.U.W(I.T):I.P.N.W(I.O))}function sr(I,f,Q){return f===Q?I:Q.R===void 0?null:(I=sr(I,f,Q.R),I===null?null:Q.na(I))}var or={};function Ah(I,f){return f=Qn(I,f),Ot[f]}var rr=void 0;function HA(I){throw new rr(I)}function LA(I,f){return f.P&&f.O||HA("makeClassHandle requires ptr and ptrType"),!!f.U!=!!f.T&&HA("Both smartPtrType and smartPtr must be specified"),f.count={value:1},Re(Object.create(I,{M:{value:f}}))}function Re(I){return typeof FinalizationRegistry>"u"?(Re=f=>f,I):(pn=new FinalizationRegistry(f=>{nr(f.M)}),Re=f=>{var Q=f.M;return Q.T&&pn.register(f,{M:Q},f),f},NA=f=>{pn.unregister(f)},Re(I))}var UA={};function yn(I){for(;I.length;){var f=I.pop();I.pop()(f)}}function iA(I){return this.fromWireType(w[I>>2])}var _e={},TA={};function Zt(I,f,Q){function p(x){x=Q(x),x.length!==I.length&&HA("Mismatched type converter count");for(var _=0;_<I.length;++_)Pt(I[_],x[_])}I.forEach(function(x){TA[x]=f});var y=Array(f.length),D=[],S=0;f.forEach((x,_)=>{ge.hasOwnProperty(x)?y[_]=ge[x]:(D.push(x),_e.hasOwnProperty(x)||(_e[x]=[]),_e[x].push(()=>{y[_]=ge[x],++S,S===D.length&&p(y)}))}),D.length===0&&p(y)}function wn(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 Pt(I,f,Q={}){if(!("argPackAdvance"in f))throw new TypeError("registerType registeredInstance requires argPackAdvance");var p=f.name;if(I||P('type "'+p+'" must have a positive integer typeid pointer'),ge.hasOwnProperty(I)){if(Q.ua)return;P("Cannot register type '"+p+"' twice")}ge[I]=f,delete TA[I],_e.hasOwnProperty(I)&&(f=_e[I],delete _e[I],f.forEach(y=>y()))}function mn(I){P(I.M.P.N.name+" instance already deleted")}function zt(){}function Dn(I,f,Q){if(I[f].S===void 0){var p=I[f];I[f]=function(){return I[f].S.hasOwnProperty(arguments.length)||P("Function '"+Q+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+I[f].S+")!"),I[f].S[arguments.length].apply(this,arguments)},I[f].S=[],I[f].S[p.Z]=p}}function ih(I,f){e.hasOwnProperty(I)?(P("Cannot register public name '"+I+"' twice"),Dn(e,I,I),e.hasOwnProperty(void 0)&&P("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),e[I].S[void 0]=f):e[I]=f}function nh(I,f,Q,p,y,D,S,x){this.name=I,this.constructor=f,this.X=Q,this.W=p,this.R=y,this.pa=D,this.ba=S,this.na=x,this.ja=[]}function vn(I,f,Q){for(;f!==Q;)f.ba||P("Expected null or instance of "+Q.name+", got an instance of "+f.name),I=f.ba(I),f=f.R;return I}function sh(I,f){return f===null?(this.ea&&P("null is not a valid "+this.name),0):(f.M||P('Cannot pass "'+kn(f)+'" as a '+this.name),f.M.O||P("Cannot pass deleted object as a pointer of type "+this.name),vn(f.M.O,f.M.P.N,this.N))}function oh(I,f){if(f===null){if(this.ea&&P("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(f.M||P('Cannot pass "'+kn(f)+'" as a '+this.name),f.M.O||P("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&f.M.P.ca&&P("Cannot convert argument of type "+(f.M.U?f.M.U.name:f.M.P.name)+" to parameter type "+this.name),Q=vn(f.M.O,f.M.P.N,this.N),this.da)switch(f.M.T===void 0&&P("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:f.M.U===this?Q=f.M.T:P("Cannot convert argument of type "+(f.M.U?f.M.U.name:f.M.P.name)+" to parameter type "+this.name);break;case 1:Q=f.M.T;break;case 2:if(f.M.U===this)Q=f.M.T;else{var p=f.clone();Q=this.xa(Q,GA(function(){p.delete()})),I!==null&&I.push(this.W,Q)}break;default:P("Unsupporting sharing policy")}return Q}function rh(I,f){return f===null?(this.ea&&P("null is not a valid "+this.name),0):(f.M||P('Cannot pass "'+kn(f)+'" as a '+this.name),f.M.O||P("Cannot pass deleted object as a pointer of type "+this.name),f.M.P.ca&&P("Cannot convert argument of type "+f.M.P.name+" to parameter type "+this.name),vn(f.M.O,f.M.P.N,this.N))}function Jt(I,f,Q,p){this.name=I,this.N=f,this.ea=Q,this.ca=p,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,f.R!==void 0?this.toWireType=oh:(this.toWireType=p?sh:rh,this.V=null)}function ah(I,f){e.hasOwnProperty(I)||HA("Replacing nonexistant public symbol"),e[I]=f,e[I].Z=void 0}function lh(I,f){var Q=[];return function(){if(Q.length=0,Object.assign(Q,arguments),I.includes("j")){var p=e["dynCall_"+I];p=Q&&Q.length?p.apply(null,[f].concat(Q)):p.call(null,f)}else p=O.get(f).apply(null,Q);return p}}function Mt(I,f){I=rt(I);var Q=I.includes("j")?lh(I,f):O.get(f);return typeof Q!="function"&&P("unknown function pointer with signature "+I+": "+f),Q}var ar=void 0;function OA(I,f){function Q(D){y[D]||ge[D]||(TA[D]?TA[D].forEach(Q):(p.push(D),y[D]=!0))}var p=[],y={};throw f.forEach(Q),new ar(I+": "+p.map(Ar).join([", "]))}function bn(I,f,Q,p,y){var D=f.length;2>D&&P("argTypes array size mismatch! Must at least get return value and 'this' types!");var S=f[1]!==null&&Q!==null,x=!1;for(Q=1;Q<f.length;++Q)if(f[Q]!==null&&f[Q].V===void 0){x=!0;break}var _=f[0].name!=="void",R=D-2,F=Array(R),L=[],J=[];return function(){if(arguments.length!==R&&P("function "+I+" called with "+arguments.length+" arguments, expected "+R+" args!"),J.length=0,L.length=S?2:1,L[0]=y,S){var it=f[1].toWireType(J,this);L[1]=it}for(var V=0;V<R;++V)F[V]=f[V+2].toWireType(J,arguments[V]),L.push(F[V]);if(V=p.apply(null,L),x)yn(J);else for(var Bt=S?1:2;Bt<f.length;Bt++){var Rt=Bt===1?it:F[Bt-2];f[Bt].V!==null&&f[Bt].V(Rt)}return it=_?f[0].fromWireType(V):void 0,it}}function Sn(I,f){for(var Q=[],p=0;p<I;p++)Q.push(m[f+4*p>>2]);return Q}function xn(I){4<I&&--kt[I].ga===0&&(kt[I]=void 0,Cn.push(I))}function kn(I){if(I===null)return"null";var f=typeof I;return f==="object"||f==="array"||f==="function"?I.toString():""+I}function gh(I,f){switch(f){case 2:return function(Q){return this.fromWireType(b[Q>>2])};case 3:return function(Q){return this.fromWireType(M[Q>>3])};default:throw new TypeError("Unknown float type: "+I)}}function ch(I,f,Q){switch(f){case 0:return Q?function(p){return B[p]}:function(p){return E[p]};case 1:return Q?function(p){return d[p>>1]}:function(p){return C[p>>1]};case 2:return Q?function(p){return w[p>>2]}:function(p){return m[p>>2]};default:throw new TypeError("Unknown integer type: "+I)}}function hh(I,f){for(var Q="",p=0;!(p>=f/2);++p){var y=d[I+2*p>>1];if(y==0)break;Q+=String.fromCharCode(y)}return Q}function uh(I,f,Q){if(Q===void 0&&(Q=2147483647),2>Q)return 0;Q-=2;var p=f;Q=Q<2*I.length?Q/2:I.length;for(var y=0;y<Q;++y)d[f>>1]=I.charCodeAt(y),f+=2;return d[f>>1]=0,f-p}function Ih(I){return 2*I.length}function fh(I,f){for(var Q=0,p="";!(Q>=f/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 Bh(I,f,Q){if(Q===void 0&&(Q=2147483647),4>Q)return 0;var p=f;Q=p+Q-4;for(var y=0;y<I.length;++y){var D=I.charCodeAt(y);if(55296<=D&&57343>=D){var S=I.charCodeAt(++y);D=65536+((D&1023)<<10)|S&1023}if(w[f>>2]=D,f+=4,f+4>Q)break}return w[f>>2]=0,f-p}function Eh(I){for(var f=0,Q=0;Q<I.length;++Q){var p=I.charCodeAt(Q);55296<=p&&57343>=p&&++Q,f+=4}return f}var Ch={};function lr(I){var f=Ch[I];return f===void 0?rt(I):f}var PA=[];function dh(I){var f=PA.length;return PA.push(I),f}function Qh(I,f){for(var Q=Array(I),p=0;p<I;++p)Q[p]=ir(m[f+4*p>>2],"parameter "+p);return Q}var gr=[],ph=[null,[],[]];Me=e.BindingError=FA("BindingError"),e.count_emval_handles=function(){for(var I=0,f=5;f<kt.length;++f)kt[f]!==void 0&&++I;return I},e.get_first_emval=function(){for(var I=5;I<kt.length;++I)if(kt[I]!==void 0)return kt[I];return null},tr=e.PureVirtualError=FA("PureVirtualError");for(var cr=Array(256),JA=0;256>JA;++JA)cr[JA]=String.fromCharCode(JA);er=cr,e.getInheritedInstanceCount=function(){return Object.keys(Ot).length},e.getLiveInheritedInstances=function(){var I=[],f;for(f in Ot)Ot.hasOwnProperty(f)&&I.push(Ot[f]);return I},e.flushPendingDeletes=dn,e.setDelayFunction=function(I){AA=I,eA.length&&AA&&AA(dn)},rr=e.InternalError=FA("InternalError"),zt.prototype.isAliasOf=function(I){if(!(this instanceof zt&&I instanceof zt))return!1;var f=this.M.P.N,Q=this.M.O,p=I.M.P.N;for(I=I.M.O;f.R;)Q=f.ba(Q),f=f.R;for(;p.R;)I=p.ba(I),p=p.R;return f===p&&Q===I},zt.prototype.clone=function(){if(this.M.O||mn(this),this.M.aa)return this.M.count.value+=1,this;var I=Re,f=Object,Q=f.create,p=Object.getPrototypeOf(this),y=this.M;return I=I(Q.call(f,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},zt.prototype.delete=function(){this.M.O||mn(this),this.M.$&&!this.M.aa&&P("Object already scheduled for deletion"),NA(this),nr(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},zt.prototype.isDeleted=function(){return!this.M.O},zt.prototype.deleteLater=function(){return this.M.O||mn(this),this.M.$&&!this.M.aa&&P("Object already scheduled for deletion"),eA.push(this),eA.length===1&&AA&&AA(dn),this.M.$=!0,this},Jt.prototype.qa=function(I){return this.ka&&(I=this.ka(I)),I},Jt.prototype.ha=function(I){this.W&&this.W(I)},Jt.prototype.argPackAdvance=8,Jt.prototype.readValueFromPointer=iA,Jt.prototype.deleteObject=function(I){I!==null&&I.delete()},Jt.prototype.fromWireType=function(I){function f(){return this.da?LA(this.N.X,{P:this.wa,O:Q,U:this,T:I}):LA(this.N.X,{P:this,O:I})}var Q=this.qa(I);if(!Q)return this.ha(I),null;var p=Ah(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=or[p],!p)return f.call(this);p=this.ca?p.la:p.pointerType;var y=sr(Q,this.N,p.N);return y===null?f.call(this):this.da?LA(p.N.X,{P:p,O:y,U:this,T:I}):LA(p.N.X,{P:p,O:y})},ar=e.UnboundTypeError=FA("UnboundTypeError");var yh=typeof atob=="function"?atob:function(I){var f="",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++)),S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(I.charAt(Q++));p=p<<2|y>>4,y=(y&15)<<4|D>>2;var x=(D&3)<<6|S;f+=String.fromCharCode(p),D!==64&&(f+=String.fromCharCode(y)),S!==64&&(f+=String.fromCharCode(x))}while(Q<I.length);return f},wh={l:function(I,f,Q,p){tt("Assertion failed: "+(I?l(E,I):"")+", at: "+[f?f?l(E,f):"":"unknown filename",Q,p?p?l(E,p):"":"unknown function"])},q:function(I,f,Q){I=rt(I),f=ir(f,"wrapper"),Q=tA(Q);var p=[].slice,y=f.N,D=y.X,S=y.R.X,x=y.R.constructor;I=En(I,function(){y.R.ja.forEach((function(R){if(this[R]===S[R])throw new tr("Pure virtual function "+R+" 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&&P("Pass correct 'this' to __construct");var R=x.implement.apply(void 0,[this].concat(p.call(arguments)));NA(R);var F=R.M;R.notifyOnDestruction(),F.aa=!0,Object.defineProperties(this,{M:{value:F}}),Re(this),R=F.O,R=Qn(y,R),Ot.hasOwnProperty(R)?P("Tried to register registered instance: "+R):Ot[R]=this},D.__destruct=function(){this===D&&P("Pass correct 'this' to __destruct"),NA(this);var R=this.M.O;R=Qn(y,R),Ot.hasOwnProperty(R)?delete Ot[R]:P("Tried to unregister unregistered instance: "+R)},I.prototype=Object.create(D);for(var _ in Q)I.prototype[_]=Q[_];return GA(I)},j:function(I){var f=UA[I];delete UA[I];var Q=f.fa,p=f.W,y=f.ia,D=y.map(S=>S.ta).concat(y.map(S=>S.za));Zt([I],D,S=>{var x={};return y.forEach((_,R)=>{var F=S[R],L=_.ra,J=_.sa,it=S[R+y.length],V=_.ya,Bt=_.Aa;x[_.oa]={read:Rt=>F.fromWireType(L(J,Rt)),write:(Rt,nA)=>{var Yt=[];V(Bt,Rt,it.toWireType(Yt,nA)),yn(Yt)}}}),[{name:f.name,fromWireType:function(_){var R={},F;for(F in x)R[F]=x[F].read(_);return p(_),R},toWireType:function(_,R){for(var F in x)if(!(F in R))throw new TypeError('Missing field: "'+F+'"');var L=Q();for(F in x)x[F].write(L,R[F]);return _!==null&&_.push(p,L),L},argPackAdvance:8,readValueFromPointer:iA,V:p}]})},v:function(){},B:function(I,f,Q,p,y){var D=wn(Q);f=rt(f),Pt(I,{name:f,fromWireType:function(S){return!!S},toWireType:function(S,x){return x?p:y},argPackAdvance:8,readValueFromPointer:function(S){if(Q===1)var x=B;else if(Q===2)x=d;else if(Q===4)x=w;else throw new TypeError("Unknown boolean type size: "+f);return this.fromWireType(x[S>>D])},V:null})},f:function(I,f,Q,p,y,D,S,x,_,R,F,L,J){F=rt(F),D=Mt(y,D),x&&(x=Mt(S,x)),R&&(R=Mt(_,R)),J=Mt(L,J);var it=$o(F);ih(it,function(){OA("Cannot construct "+F+" due to unbound types",[p])}),Zt([I,f,Q],p?[p]:[],function(V){if(V=V[0],p)var Bt=V.N,Rt=Bt.X;else Rt=zt.prototype;V=En(it,function(){if(Object.getPrototypeOf(this)!==nA)throw new Me("Use 'new' to construct "+F);if(Yt.Y===void 0)throw new Me(F+" has no accessible constructor");var fr=Yt.Y[arguments.length];if(fr===void 0)throw new Me("Tried to invoke ctor of "+F+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(Yt.Y).toString()+") parameters instead!");return fr.apply(this,arguments)});var nA=Object.create(Rt,{constructor:{value:V}});V.prototype=nA;var Yt=new nh(F,V,nA,J,Bt,D,x,R);Bt=new Jt(F,Yt,!0,!1),Rt=new Jt(F+"*",Yt,!1,!1);var Ir=new Jt(F+" const*",Yt,!1,!0);return or[I]={pointerType:Rt,la:Ir},ah(it,V),[Bt,Rt,Ir]})},d:function(I,f,Q,p,y,D,S){var x=Sn(Q,p);f=rt(f),D=Mt(y,D),Zt([],[I],function(_){function R(){OA("Cannot call "+F+" due to unbound types",x)}_=_[0];var F=_.name+"."+f;f.startsWith("@@")&&(f=Symbol[f.substring(2)]);var L=_.N.constructor;return L[f]===void 0?(R.Z=Q-1,L[f]=R):(Dn(L,f,F),L[f].S[Q-1]=R),Zt([],x,function(J){return J=bn(F,[J[0],null].concat(J.slice(1)),null,D,S),L[f].S===void 0?(J.Z=Q-1,L[f]=J):L[f].S[Q-1]=J,[]}),[]})},p:function(I,f,Q,p,y,D){0<f||tt();var S=Sn(f,Q);y=Mt(p,y),Zt([],[I],function(x){x=x[0];var _="constructor "+x.name;if(x.N.Y===void 0&&(x.N.Y=[]),x.N.Y[f-1]!==void 0)throw new Me("Cannot register multiple constructors with identical number of parameters ("+(f-1)+") for class '"+x.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return x.N.Y[f-1]=()=>{OA("Cannot construct "+x.name+" due to unbound types",S)},Zt([],S,function(R){return R.splice(1,0,null),x.N.Y[f-1]=bn(_,R,null,y,D),[]}),[]})},a:function(I,f,Q,p,y,D,S,x){var _=Sn(Q,p);f=rt(f),D=Mt(y,D),Zt([],[I],function(R){function F(){OA("Cannot call "+L+" due to unbound types",_)}R=R[0];var L=R.name+"."+f;f.startsWith("@@")&&(f=Symbol[f.substring(2)]),x&&R.N.ja.push(f);var J=R.N.X,it=J[f];return it===void 0||it.S===void 0&&it.className!==R.name&&it.Z===Q-2?(F.Z=Q-2,F.className=R.name,J[f]=F):(Dn(J,f,L),J[f].S[Q-2]=F),Zt([],_,function(V){return V=bn(L,V,R,D,S),J[f].S===void 0?(V.Z=Q-2,J[f]=V):J[f].S[Q-2]=V,[]}),[]})},A:function(I,f){f=rt(f),Pt(I,{name:f,fromWireType:function(Q){var p=tA(Q);return xn(Q),p},toWireType:function(Q,p){return GA(p)},argPackAdvance:8,readValueFromPointer:iA,V:null})},n:function(I,f,Q){Q=wn(Q),f=rt(f),Pt(I,{name:f,fromWireType:function(p){return p},toWireType:function(p,y){return y},argPackAdvance:8,readValueFromPointer:gh(f,Q),V:null})},e:function(I,f,Q,p,y){f=rt(f),y===-1&&(y=4294967295),y=wn(Q);var D=x=>x;if(p===0){var S=32-8*Q;D=x=>x<<S>>>S}Q=f.includes("unsigned")?function(x,_){return _>>>0}:function(x,_){return _},Pt(I,{name:f,fromWireType:D,toWireType:Q,argPackAdvance:8,readValueFromPointer:ch(f,y,p!==0),V:null})},b:function(I,f,Q){function p(D){D>>=2;var S=m;return new y(h,S[D+1],S[D])}var y=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][f];Q=rt(Q),Pt(I,{name:Q,fromWireType:p,argPackAdvance:8,readValueFromPointer:p},{ua:!0})},o:function(I,f){f=rt(f);var Q=f==="std::string";Pt(I,{name:f,fromWireType:function(p){var y=m[p>>2],D=p+4;if(Q)for(var S=D,x=0;x<=y;++x){var _=D+x;if(x==y||E[_]==0){if(S=S?l(E,S,_-S):"",R===void 0)var R=S;else R+="\0",R+=S;S=_+1}}else{for(R=Array(y),x=0;x<y;++x)R[x]=String.fromCharCode(E[D+x]);R=R.join("")}return Kt(p),R},toWireType:function(p,y){y instanceof ArrayBuffer&&(y=new Uint8Array(y));var D,S=typeof y=="string";if(S||y instanceof Uint8Array||y instanceof Uint8ClampedArray||y instanceof Int8Array||P("Cannot pass non-string to std::string"),Q&&S){var x=0;for(D=0;D<y.length;++D){var _=y.charCodeAt(D);127>=_?x++:2047>=_?x+=2:55296<=_&&57343>=_?(x+=4,++D):x+=3}D=x}else D=y.length;if(x=Mn(4+D+1),_=x+4,m[x>>2]=D,Q&&S){if(S=_,_=D+1,D=E,0<_){_=S+_-1;for(var R=0;R<y.length;++R){var F=y.charCodeAt(R);if(55296<=F&&57343>=F){var L=y.charCodeAt(++R);F=65536+((F&1023)<<10)|L&1023}if(127>=F){if(S>=_)break;D[S++]=F}else{if(2047>=F){if(S+1>=_)break;D[S++]=192|F>>6}else{if(65535>=F){if(S+2>=_)break;D[S++]=224|F>>12}else{if(S+3>=_)break;D[S++]=240|F>>18,D[S++]=128|F>>12&63}D[S++]=128|F>>6&63}D[S++]=128|F&63}}D[S]=0}}else if(S)for(S=0;S<D;++S)R=y.charCodeAt(S),255<R&&(Kt(_),P("String has UTF-16 code units that do not fit in 8 bits")),E[_+S]=R;else for(S=0;S<D;++S)E[_+S]=y[S];return p!==null&&p.push(Kt,x),x},argPackAdvance:8,readValueFromPointer:iA,V:function(p){Kt(p)}})},i:function(I,f,Q){if(Q=rt(Q),f===2)var p=hh,y=uh,D=Ih,S=()=>C,x=1;else f===4&&(p=fh,y=Bh,D=Eh,S=()=>m,x=2);Pt(I,{name:Q,fromWireType:function(_){for(var R=m[_>>2],F=S(),L,J=_+4,it=0;it<=R;++it){var V=_+4+it*f;(it==R||F[V>>x]==0)&&(J=p(J,V-J),L===void 0?L=J:(L+="\0",L+=J),J=V+f)}return Kt(_),L},toWireType:function(_,R){typeof R!="string"&&P("Cannot pass non-string to C++ string type "+Q);var F=D(R),L=Mn(4+F+f);return m[L>>2]=F>>x,y(R,L+4,F+f),_!==null&&_.push(Kt,L),L},argPackAdvance:8,readValueFromPointer:iA,V:function(_){Kt(_)}})},k:function(I,f,Q,p,y,D){UA[I]={name:rt(f),fa:Mt(Q,p),W:Mt(y,D),ia:[]}},h:function(I,f,Q,p,y,D,S,x,_,R){UA[I].ia.push({oa:rt(f),ta:Q,ra:Mt(p,y),sa:D,za:S,ya:Mt(x,_),Aa:R})},C:function(I,f){f=rt(f),Pt(I,{va:!0,name:f,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(I,f,Q,p,y){I=PA[I],f=tA(f),Q=lr(Q);var D=[];return m[p>>2]=GA(D),I(f,Q,D,y)},t:function(I,f,Q,p){I=PA[I],f=tA(f),Q=lr(Q),I(f,Q,null,p)},g:xn,m:function(I,f){var Q=Qh(I,f),p=Q[0];f=p.name+"_$"+Q.slice(1).map(function(S){return S.name}).join("_")+"$";var y=gr[f];if(y!==void 0)return y;var D=Array(I-1);return y=dh((S,x,_,R)=>{for(var F=0,L=0;L<I-1;++L)D[L]=Q[L+1].readValueFromPointer(R+F),F+=Q[L+1].argPackAdvance;for(S=S[x].apply(S,D),L=0;L<I-1;++L)Q[L+1].ma&&Q[L+1].ma(D[L]);if(!p.va)return p.toWireType(_,S)}),gr[f]=y},D:function(I){4<I&&(kt[I].ga+=1)},r:function(I){var f=tA(I);yn(f),xn(I)},c:function(){tt("")},x:function(I,f,Q){E.copyWithin(I,f,f+Q)},w:function(I){var f=E.length;if(I>>>=0,2147483648<I)return!1;for(var Q=1;4>=Q;Q*=2){var p=f*(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);t:{try{u.grow(y-h.byteLength+65535>>>16),G();var D=1;break t}catch{}D=void 0}if(D)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(I,f,Q,p){for(var y=0,D=0;D<Q;D++){var S=m[f>>2],x=m[f+4>>2];f+=8;for(var _=0;_<x;_++){var R=E[S+_],F=ph[I];R===0||R===10?((I===1?a:g)(l(F,0)),F.length=0):F.push(R)}y+=x}return m[p>>2]=y,0}};(function(){function I(y){e.asm=y.exports,u=e.asm.E,G(),O=e.asm.J,H.unshift(e.asm.F),At--,e.monitorRunDependencies&&e.monitorRunDependencies(At),At==0&&ot&&(y=ot,ot=null,y())}function f(y){I(y.instance)}function Q(y){return gt().then(function(D){return WebAssembly.instantiate(D,p)}).then(function(D){return D}).then(y,function(D){g("failed to asynchronously prepare wasm: "+D),tt(D)})}var p={a:wh};if(At++,e.monitorRunDependencies&&e.monitorRunDependencies(At),e.instantiateWasm)try{return e.instantiateWasm(p,I)}catch(y){g("Module.instantiateWasm callback failed with error: "+y),n(y)}return(function(){return c||typeof WebAssembly.instantiateStreaming!="function"||It(ft)||typeof fetch!="function"?Q(f):fetch(ft,{credentials:"same-origin"}).then(function(y){return WebAssembly.instantiateStreaming(y,p).then(f,function(D){return g("wasm streaming compile failed: "+D),g("falling back to ArrayBuffer instantiation"),Q(f)})})})().catch(n),{}})(),e.___wasm_call_ctors=function(){return(e.___wasm_call_ctors=e.asm.F).apply(null,arguments)};var hr=e.___getTypeName=function(){return(hr=e.___getTypeName=e.asm.G).apply(null,arguments)};e.__embind_initialize_bindings=function(){return(e.__embind_initialize_bindings=e.asm.H).apply(null,arguments)};var Mn=e._malloc=function(){return(Mn=e._malloc=e.asm.I).apply(null,arguments)},Kt=e._free=function(){return(Kt=e._free=e.asm.K).apply(null,arguments)};e.dynCall_jiji=function(){return(e.dynCall_jiji=e.asm.L).apply(null,arguments)};var KA;ot=function I(){KA||ur(),KA||(ot=I)};function ur(){function I(){if(!KA&&(KA=!0,e.calledRun=!0,!o)){if(Bn(H),i(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;){var f=e.postRun.shift();T.unshift(f)}Bn(T)}}if(!(0<At)){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)W();Bn(K),0<At||(e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),I()},1)):I())}}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return ur(),t.ready})})();let q=(function(A){return A[A.Auto=0]="Auto",A[A.FlexStart=1]="FlexStart",A[A.Center=2]="Center",A[A.FlexEnd=3]="FlexEnd",A[A.Stretch=4]="Stretch",A[A.Baseline=5]="Baseline",A[A.SpaceBetween=6]="SpaceBetween",A[A.SpaceAround=7]="SpaceAround",A[A.SpaceEvenly=8]="SpaceEvenly",A})({}),xA=(function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A})({}),So=(function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A})({}),oe=(function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A})({}),pe=(function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A})({}),U=(function(A){return A[A.Left=0]="Left",A[A.Top=1]="Top",A[A.Right=2]="Right",A[A.Bottom=3]="Bottom",A[A.Start=4]="Start",A[A.End=5]="End",A[A.Horizontal=6]="Horizontal",A[A.Vertical=7]="Vertical",A[A.All=8]="All",A})({}),ye=(function(A){return A[A.None=0]="None",A[A.StretchFlexBasis=1]="StretchFlexBasis",A[A.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",A[A.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",A[A.All=2147483647]="All",A[A.Classic=2147483646]="Classic",A})({}),sc=(function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A})({}),Gt=(function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A})({}),we=(function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A})({}),wt=(function(A){return A[A.FlexStart=0]="FlexStart",A[A.Center=1]="Center",A[A.FlexEnd=2]="FlexEnd",A[A.SpaceBetween=3]="SpaceBetween",A[A.SpaceAround=4]="SpaceAround",A[A.SpaceEvenly=5]="SpaceEvenly",A})({}),me=(function(A){return A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug",A[A.Verbose=4]="Verbose",A[A.Fatal=5]="Fatal",A})({}),gn=(function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A})({}),xo=(function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A})({}),De=(function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A})({}),ve=(function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A})({}),Nt=(function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A})({}),be=(function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A})({});const oc={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:xA.BorderBox,BOX_SIZING_CONTENT_BOX:xA.ContentBox,DIMENSION_WIDTH:So.Width,DIMENSION_HEIGHT:So.Height,DIRECTION_INHERIT:oe.Inherit,DIRECTION_LTR:oe.LTR,DIRECTION_RTL:oe.RTL,DISPLAY_FLEX:pe.Flex,DISPLAY_NONE:pe.None,DISPLAY_CONTENTS:pe.Contents,EDGE_LEFT:U.Left,EDGE_TOP:U.Top,EDGE_RIGHT:U.Right,EDGE_BOTTOM:U.Bottom,EDGE_START:U.Start,EDGE_END:U.End,EDGE_HORIZONTAL:U.Horizontal,EDGE_VERTICAL:U.Vertical,EDGE_ALL:U.All,ERRATA_NONE:ye.None,ERRATA_STRETCH_FLEX_BASIS:ye.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:ye.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:ye.AbsolutePercentAgainstInnerSize,ERRATA_ALL:ye.All,ERRATA_CLASSIC:ye.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:sc.WebFlexBasis,FLEX_DIRECTION_COLUMN:Gt.Column,FLEX_DIRECTION_COLUMN_REVERSE:Gt.ColumnReverse,FLEX_DIRECTION_ROW:Gt.Row,FLEX_DIRECTION_ROW_REVERSE:Gt.RowReverse,GUTTER_COLUMN:we.Column,GUTTER_ROW:we.Row,GUTTER_ALL:we.All,JUSTIFY_FLEX_START:wt.FlexStart,JUSTIFY_CENTER:wt.Center,JUSTIFY_FLEX_END:wt.FlexEnd,JUSTIFY_SPACE_BETWEEN:wt.SpaceBetween,JUSTIFY_SPACE_AROUND:wt.SpaceAround,JUSTIFY_SPACE_EVENLY:wt.SpaceEvenly,LOG_LEVEL_ERROR:me.Error,LOG_LEVEL_WARN:me.Warn,LOG_LEVEL_INFO:me.Info,LOG_LEVEL_DEBUG:me.Debug,LOG_LEVEL_VERBOSE:me.Verbose,LOG_LEVEL_FATAL:me.Fatal,MEASURE_MODE_UNDEFINED:gn.Undefined,MEASURE_MODE_EXACTLY:gn.Exactly,MEASURE_MODE_AT_MOST:gn.AtMost,NODE_TYPE_DEFAULT:xo.Default,NODE_TYPE_TEXT:xo.Text,OVERFLOW_VISIBLE:De.Visible,OVERFLOW_HIDDEN:De.Hidden,OVERFLOW_SCROLL:De.Scroll,POSITION_TYPE_STATIC:ve.Static,POSITION_TYPE_RELATIVE:ve.Relative,POSITION_TYPE_ABSOLUTE:ve.Absolute,UNIT_UNDEFINED:Nt.Undefined,UNIT_POINT:Nt.Point,UNIT_PERCENT:Nt.Percent,UNIT_AUTO:Nt.Auto,WRAP_NO_WRAP:be.NoWrap,WRAP_WRAP:be.Wrap,WRAP_WRAP_REVERSE:be.WrapReverse};function rc(A){function t(n,s,r){const a=n[s];n[s]=function(){for(var g=arguments.length,c=new Array(g),u=0;u<g;u++)c[u]=arguments[u];return r.call(this,a,...c)}}for(const n of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){const s={[Nt.Point]:A.Node.prototype[n],[Nt.Percent]:A.Node.prototype[`${n}Percent`],[Nt.Auto]:A.Node.prototype[`${n}Auto`]};t(A.Node.prototype,n,function(r){for(var a=arguments.length,g=new Array(a>1?a-1:0),c=1;c<a;c++)g[c-1]=arguments[c];const u=g.pop();let o,l;if(u==="auto")o=Nt.Auto,l=void 0;else if(typeof u=="object")o=u.unit,l=u.valueOf();else if(o=typeof u=="string"&&u.endsWith("%")?Nt.Percent:Nt.Point,l=parseFloat(u),u!==void 0&&!Number.isNaN(u)&&Number.isNaN(l))throw new Error(`Invalid value ${u} for ${n}`);if(!s[o])throw new Error(`Failed to execute "${n}": Unsupported unit '${u}'`);return l!==void 0?s[o].call(this,...g,l):s[o].call(this,...g)})}function e(n){return A.MeasureCallback.implement({measure:function(){const{width:s,height:r}=n(...arguments);return{width:s??NaN,height:r??NaN}}})}t(A.Node.prototype,"setMeasureFunc",function(n,s){return s?n.call(this,e(s)):this.unsetMeasureFunc()});function i(n){return A.DirtiedCallback.implement({dirtied:n})}return t(A.Node.prototype,"setDirtiedFunc",function(n,s){n.call(this,i(s))}),t(A.Config.prototype,"free",function(){A.Config.destroy(this)}),t(A.Node,"create",(n,s)=>s?A.Node.createWithConfig(s):A.Node.createDefault()),t(A.Node.prototype,"free",function(){A.Node.destroy(this)}),t(A.Node.prototype,"freeRecursive",function(){for(let n=0,s=this.getChildCount();n<s;++n)this.getChild(0).freeRecursive();this.free()}),t(A.Node.prototype,"calculateLayout",function(n){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:oe.LTR;return n.call(this,s,r,a)}),{Config:A.Config,Node:A.Node,...oc}}async function ac(){return rc(await nc())}let ko;function Mo(){return ko}function lc(A){ko=A}let Ro;function gc(A){Ro=A}function cc(){return Ro}function kA(A,t){return A?typeof A=="number"?A:typeof A=="string"&&A.endsWith("%")?(t??(t=1),t*(parseFloat(A)/100)):Number.isNaN(parseFloat(A))?0:parseFloat(A):0}function re(A){return typeof A=="number"?"number":A.endsWith("%")?"percentage":Number.isNaN(parseInt(A,10))?"keyword":"number"}function MA(A,t,e){return(t[A]-e[A])/2}function _o(A,t,e,i,n){const s=t==="percentage"?i[e]-n[e]:1;return kA(A)*s}function Fo(A,t,e){const[i,n]=A,s=re(i),r=re(n),a={x:void 0,y:void 0};switch(i){case"top":a.y=0;break;case"bottom":a.y=t.height-e.height;break;case"center":n==="left"||n==="right"?a.y=MA("height",t,e):a.x=MA("width",t,e);break;case"left":a.x=0;break;case"right":a.x=t.width-e.width;break;default:{const g=n==="top"||n==="bottom"||r!=="keyword"?"width":"height",c=g==="width"?"x":"y";a[c]=_o(i,s,g,t,e)}}switch(n){case"top":a.y=0;break;case"bottom":a.y=t.height-e.height;break;case"center":a.y===void 0?a.y=MA("height",t,e):a.x=MA("width",t,e);break;case"left":a.x=0;break;case"right":a.x=t.width-e.width;break;default:{const g=a.y===void 0?"y":"x",c=g==="y"?"height":"width";a[g]=_o(n,r,c,t,e)}}return a}function RA(A,t,e,i){const n=A==="right"||A==="bottom",s=e==="percentage"?t*i:t;return n?-s:s}function hc(A,t,e){const[i,n,s,r]=A,a=re(i),g=re(n),c=re(s),u=re(r);if(g==="keyword"||u==="keyword")throw new Error("Invalid objectPosition value: second and fourth values must be numbers or percentages");if(a!=="keyword"||c!=="keyword")throw new Error("Invalid objectPosition value: first and third values must be keywords");const o=Fo([i,s],t,e),l={...o},h=kA(n),B=kA(r);return i==="left"||i==="right"?l.x=o.x+RA(i,h,g,e.width):(i==="top"||i==="bottom")&&(l.y=o.y+RA(i,h,g,e.height)),s==="left"||s==="right"?l.x=o.x+RA(s,B,u,e.width):(s==="top"||s==="bottom")&&(l.y=o.y+RA(s,B,u,e.height)),l}function uc(A,t,e){const i=A[0],n={x:void 0,y:void 0};switch(i){case"top":n.y=0,n.x=(t.width-e.width)/2;break;case"bottom":n.y=t.height-e.height,n.x=(t.width-e.width)/2;break;case"left":n.x=0,n.y=(t.height-e.height)/2;break;case"right":n.x=t.width-e.width,n.y=(t.height-e.height)/2;break;case"center":n.x=(t.width-e.width)/2,n.y=(t.height-e.height)/2;break;default:{const r=re(i)==="percentage"?t.width-e.width:1;n.x=kA(i)*r,n.y=(t.height-e.height)/2}}return n}function cn(A,t,e){if(!A)return{x:0,y:0};const i=typeof A=="string"?A.split(" "):[A];switch(i.length){case 1:return uc(i,t,e);case 2:return Fo(i,t,e);case 4:return hc(i,t,e);default:throw new Error("Invalid objectPosition value: must have 1, 2, or 4 values")}}const hn={width:0,height:0};function Go(A){const t=A.target.getLocalBounds(),e=A.target.scale;return hn.width=Math.abs(t.width*e.x),hn.height=Math.abs(t.height*e.y),hn}function No(A,t,e=.49){return Math.abs(A-t)<e}function Ic(A,t=0,e={}){let i,n;const s=e.maxWait?e.maxWait:t;let r,a,g,c=0;const u=!!e.leading,o="maxWait"in e,l=e.trailing??!0,h=t!==0&&typeof globalThis.requestAnimationFrame=="function";if(typeof A!="function")throw new TypeError("Expected a function");function B(T){const W=i,At=n;return i=n=void 0,c=T,r=A.apply(At,W),r}function E(T,W){return h?(typeof a=="number"&&globalThis.cancelAnimationFrame(a),globalThis.requestAnimationFrame(T)):setTimeout(T,W)}function d(T){if(h){globalThis.cancelAnimationFrame(T);return}clearTimeout(T)}function C(T){return c=T,a=E(b,t),u?B(T):r}function w(T){const W=T-(g||0),At=T-c,ot=t-W;return o?Math.min(ot,s-At):ot}function m(T){const W=T-(g||0),At=T-c;return g===void 0||W>=t||W<0||o&&At>=s}function b(){const T=Date.now();if(m(T))return M(T);a=E(b,w(T))}function M(T){return a=void 0,l&&i?B(T):(i=n=void 0,r)}function G(){a!==void 0&&d(a),c=0,i=g=n=a=void 0}function O(){return a===void 0?r:M(Date.now())}function K(){return a!==void 0}function H(...T){const W=Date.now(),At=m(W);if(i=T,n=this,g=W,At){if(a===void 0)return C(g);if(o)return a=E(b,t),B(g)}return a===void 0&&(a=E(b,t)),r}return H.cancel=G,H.flush=O,H.pending=K,H}function fc(A,t,e={}){const i=e.leading??!0,n=e.trailing??!0;if(typeof A!="function")throw new TypeError("Expected a function");return Ic(A,t,{leading:i,trailing:n,maxWait:t})}var Bc=Object.defineProperty,Ec=(A,t,e)=>t in A?Bc(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,ae=(A,t,e)=>Ec(A,typeof t!="symbol"?t+"":t,e);class Ho{constructor(){ae(this,"autoUpdate",!0),ae(this,"_debugEnabled",!1),ae(this,"_debugRenderer",null),ae(this,"_throttledUpdateSize"),ae(this,"_throttle",100),ae(this,"_modificationCount",50)}async init(t){lc(await ac()),gc(Mo().Config.create());const{layout:e}=t??{},{autoUpdate:i,enableDebug:n,throttle:s,debugModificationCount:r}=e??{};n&&this.enableDebug(!0),i!==void 0&&(this.autoUpdate=i),this._throttle=s??this._throttle,this._throttledUpdateSize=fc(a=>this._updateSize(a),this._throttle,{leading:!0,trailing:!0}),this._modificationCount=r??this._modificationCount}async enableDebug(t=!this._debugEnabled){if(this._debugEnabled=t,!this._debugRenderer){const e=await Promise.resolve().then(()=>qc);this._debugRenderer=new e.DebugRenderer}this._debugEnabled||this._debugRenderer.reset()}update(t){this._debugEnabled&&this._debugRenderer&&(this._debugRenderer.reset(),t.addChild(this._debugRenderer.holder)),this._throttle===0?this._updateSize(t):this._throttledUpdateSize(t),this.updateLayout(t)}prerender({container:t}){this.autoUpdate&&this.update(t)}_updateSize(t){if(t.destroyed)return;const e=t._layout;if(e){const i=e.style;if(i.width==="intrinsic"||i.height==="intrinsic"){const n=Go(e);if(i.width==="intrinsic"){const s=e.yoga.getWidth().value;No(s,n.width)||(e.yoga.setWidth(n.width),e.invalidateRoot())}if(i.height==="intrinsic"){const s=e.yoga.getHeight().value;No(s,n.height)||(e.yoga.setHeight(n.height),e.invalidateRoot())}}if(!t.visible){e._onChildRemoved();return}}for(let i=0;i<t.children.length;i++)this._updateSize(t.children[i])}updateLayout(t){var e,i,n,s;const r=t._layout;if(t.visible){if(r){const a=r.yoga,g=r.style,c=(e=t.parent)==null?void 0:e.isOverflowContainer;if(!((i=t.parent)!=null&&i._layout)&&!c&&r._isDirty&&(r._isDirty=!1,a.calculateLayout(g.width,g.height,a.getDirection()??oe.LTR)),a.hasNewLayout()||r._forceUpdate){a.markLayoutSeen(),r._forceUpdate=!1,r._computedLayout=a.getComputedLayout();const o=cn(g.transformOrigin,r._computedLayout,{width:0,height:0});r._computedPixiLayout={...t.computeLayoutData(r._computedLayout),originX:o.x,originY:o.y},t.emit("layout",r),(n=t.onLayout)==null||n.call(t,r),t._onUpdate()}this._debugEnabled&&(r._styles.custom.debug||r._modificationCount>this._modificationCount&&r._styles.custom.debugHeat!==!1)&&((s=this._debugRenderer)==null||s.render(r))}for(let a=0;a<t.children.length;a++)this.updateLayout(t.children[a])}}destroy(){!this._debugEnabled&&this._debugRenderer&&this._debugRenderer.destroy()}}ae(Ho,"extension",{type:[v.ExtensionType.WebGLSystem,v.ExtensionType.WebGPUSystem],name:"layout"});const Lo={"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},Uo={"flex-start":q.FlexStart,"flex-end":q.FlexEnd,center:q.Center,stretch:q.Stretch,baseline:q.Baseline},To={auto:q.Auto,"flex-start":q.FlexStart,"flex-end":q.FlexEnd,center:q.Center,stretch:q.Stretch,baseline:q.Baseline},Oo={"border-box":xA.BorderBox,"content-box":xA.ContentBox},Po={ltr:oe.LTR,rtl:oe.RTL},Jo={none:pe.None,flex:pe.Flex,contents:pe.Contents},Ko={row:Gt.Row,column:Gt.Column,"row-reverse":Gt.RowReverse,"column-reverse":Gt.ColumnReverse},Yo={wrap:be.Wrap,nowrap:be.NoWrap,"wrap-reverse":be.WrapReverse},Wo={"flex-start":wt.FlexStart,"flex-end":wt.FlexEnd,center:wt.Center,"space-between":wt.SpaceBetween,"space-around":wt.SpaceAround,"space-evenly":wt.SpaceEvenly},jo={visible:De.Visible,hidden:De.Hidden,scroll:De.Scroll},Vo={absolute:ve.Absolute,relative:ve.Relative,static:ve.Static},Cc={alignContent:(A,t)=>A.setAlignContent(dc(t)),alignItems:(A,t)=>A.setAlignItems(Qc(t)),alignSelf:(A,t)=>A.setAlignSelf(pc(t)),aspectRatio:(A,t)=>A.setAspectRatio(t),borderBottomWidth:(A,t)=>A.setBorder(U.Bottom,t),borderEndWidth:(A,t)=>A.setBorder(U.End,t),borderLeftWidth:(A,t)=>A.setBorder(U.Left,t),borderRightWidth:(A,t)=>A.setBorder(U.Right,t),borderStartWidth:(A,t)=>A.setBorder(U.Start,t),borderTopWidth:(A,t)=>A.setBorder(U.Top,t),borderWidth:(A,t)=>A.setBorder(U.All,t),borderInlineWidth:(A,t)=>A.setBorder(U.Horizontal,t),borderBlockWidth:(A,t)=>A.setBorder(U.Vertical,t),bottom:(A,t)=>A.setPosition(U.Bottom,t),boxSizing:(A,t)=>A.setBoxSizing(yc(t)),direction:(A,t)=>A.setDirection(wc(t)),display:(A,t)=>A.setDisplay(mc(t)),end:(A,t)=>A.setPosition(U.End,t),flex:(A,t)=>A.setFlex(t),flexBasis:(A,t)=>A.setFlexBasis(t),flexDirection:(A,t)=>A.setFlexDirection(Dc(t)),rowGap:(A,t)=>A.setGap(we.Row,t),gap:(A,t)=>A.setGap(we.All,t),columnGap:(A,t)=>A.setGap(we.Column,t),flexGrow:(A,t)=>A.setFlexGrow(t),flexShrink:(A,t)=>A.setFlexShrink(t),flexWrap:(A,t)=>A.setFlexWrap(vc(t)),height:(A,t)=>A.setHeight(t),justifyContent:(A,t)=>A.setJustifyContent(bc(t)),left:(A,t)=>A.setPosition(U.Left,t),margin:(A,t)=>A.setMargin(U.All,t),marginBottom:(A,t)=>A.setMargin(U.Bottom,t),marginEnd:(A,t)=>A.setMargin(U.End,t),marginLeft:(A,t)=>A.setMargin(U.Left,t),marginRight:(A,t)=>A.setMargin(U.Right,t),marginStart:(A,t)=>A.setMargin(U.Start,t),marginTop:(A,t)=>A.setMargin(U.Top,t),marginInline:(A,t)=>A.setMargin(U.Horizontal,t),marginBlock:(A,t)=>A.setMargin(U.Vertical,t),maxHeight:(A,t)=>A.setMaxHeight(t),maxWidth:(A,t)=>A.setMaxWidth(t),minHeight:(A,t)=>A.setMinHeight(t),minWidth:(A,t)=>A.setMinWidth(t),overflow:(A,t)=>A.setOverflow(Sc(t)),padding:(A,t)=>A.setPadding(U.All,t),paddingBottom:(A,t)=>A.setPadding(U.Bottom,t),paddingEnd:(A,t)=>A.setPadding(U.End,t),paddingLeft:(A,t)=>A.setPadding(U.Left,t),paddingRight:(A,t)=>A.setPadding(U.Right,t),paddingStart:(A,t)=>A.setPadding(U.Start,t),paddingTop:(A,t)=>A.setPadding(U.Top,t),paddingInline:(A,t)=>A.setPadding(U.Horizontal,t),paddingBlock:(A,t)=>A.setPadding(U.Vertical,t),position:(A,t)=>A.setPositionType(xc(t)),right:(A,t)=>A.setPosition(U.Right,t),start:(A,t)=>A.setPosition(U.Start,t),top:(A,t)=>A.setPosition(U.Top,t),insetInline:(A,t)=>A.setPosition(U.Horizontal,t),insetBlock:(A,t)=>A.setPosition(U.Vertical,t),inset:(A,t)=>A.setPosition(U.All,t),width:(A,t)=>A.setWidth(t)};function dc(A){if(A in Lo)return Lo[A];throw new Error(`"${A}" is not a valid value for alignContent`)}function Qc(A){if(A in Uo)return Uo[A];throw new Error(`"${A}" is not a valid value for alignItems`)}function pc(A){if(A in To)return To[A];throw new Error(`"${A}" is not a valid value for alignSelf`)}function yc(A){if(A in Oo)return Oo[A];throw new Error(`"${A}" is not a valid value for boxSizing`)}function wc(A){if(A in Po)return Po[A];throw new Error(`"${A}" is not a valid value for direction`)}function mc(A){if(A in Jo)return Jo[A];throw new Error(`"${A}" is not a valid value for display`)}function Dc(A){if(A in Ko)return Ko[A];throw new Error(`"${A}" is not a valid value for flexDirection`)}function vc(A){if(A in Yo)return Yo[A];throw new Error(`"${A}" is not a valid value for flexWrap`)}function bc(A){if(A in Wo)return Wo[A];throw new Error(`"${A}" is not a valid value for justifyContent`)}function Sc(A){if(A in jo)return jo[A];throw new Error(`"${A}" is not a valid value for overflow`)}function xc(A){if(A in Vo)return Vo[A];throw new Error(`"${A}" is not a valid value for position`)}function kc(A,t={}){for(const[e,i]of Object.entries(t))try{const n=Cc[e];n&&n(A,i)}catch{}if(t.width!==void 0){const e=t.left!==void 0&&t.right!==void 0?"auto":t.width;A.setWidth(e)}if(t.height!==void 0){const e=t.top!==void 0&&t.bottom!==void 0?"auto":t.height;A.setHeight(e)}}function Mc(A,t){let i={...A._styles.custom,...t};i={...{...Se.defaultStyle.shared,...A.target instanceof v.ViewContainer||i.isLeaf||Se.defaultStyle.shared.isLeaf?Se.defaultStyle.leaf:Se.defaultStyle.container},...i};const s={...i},r=i.width==="intrinsic",a=i.height==="intrinsic";if(r||a){const{width:g,height:c}=Go(A);r&&(s.width=g),a&&(s.height=c)}return{custom:i,yoga:s}}function Rc(A,t){var e;let i=t.layout,n;if(!i&&t.isOverflowContainer&&(n=t,i=(e=n.parent)==null?void 0:e.layout,t=n.parent),!i)return!1;const s=A.yoga.getParent();s&&s.removeChild(A.yoga);const r=_c(A,t,n);return r===-1?!1:(r===i.yoga.getChildCount(),i.yoga.insertChild(A.yoga,r),!0)}function _c(A,t,e){const i=A.target;let n=0;if(e){for(const s of t.children){if(s===e){for(const r of e.children)if(!(!r.layout||!r.visible)){if(r===i)return n;n++}return-1}s.layout&&s.visible&&n++}return-1}for(const s of t.children)if(!(!s.layout||!s.visible)){if(s===i)return n;n++}return-1}function Fc(A){const t=A.yoga.getParent();t&&t.removeChild(A.yoga)}var Gc=Object.defineProperty,Nc=(A,t,e)=>t in A?Gc(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,mt=(A,t,e)=>Nc(A,typeof t!="symbol"?t+"":t,e);class Se{constructor({target:t}){mt(this,"yoga"),mt(this,"target"),mt(this,"destroyed",!1),mt(this,"_isDirty",!1),mt(this,"_computedPixiLayout",{x:0,y:0,offsetX:0,offsetY:0,scaleX:1,scaleY:1,originX:0,originY:0}),mt(this,"_computedLayout",{left:0,right:0,top:0,bottom:0,width:0,height:0}),mt(this,"_styles",{custom:{},yoga:{}}),mt(this,"_modificationCount",0),mt(this,"_forceUpdate",!1),mt(this,"hasParent",!1),mt(this,"_trackedStyleKeys",["borderRadius","borderColor","backgroundColor","objectFit","objectPosition","transformOrigin","isLeaf"]),this.target=t,this.yoga=Mo().Node.create(cc()),t.on("added",this._onChildAdded,this),t.on("removed",this._onChildRemoved,this),t.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(t){const e=Mc(this,t),i=JSON.stringify(this._styles.custom)!==JSON.stringify(e.custom),n=JSON.stringify(this._styles.yoga)!==JSON.stringify(e.yoga),s=i||n,r=this._trackedStyleKeys.some(a=>e.custom[a]!==this._styles.custom[a]);this._styles=e,r&&(this._forceUpdate=!0),s&&(kc(this.yoga,this._styles.yoga),this.target._onUpdate(),this.invalidateRoot())}invalidateRoot(t){const e=this.getRoot(t);e.destroyed||(e._layout._isDirty=!0,e._onUpdate(),this._modificationCount++)}forceUpdate(){this._forceUpdate=!0}getRoot(t){var e,i;let n=t||this.target;for(;(e=n.parent)!=null&&e._layout||(i=n.parent)!=null&&i.isOverflowContainer;)n=n.parent,n.isOverflowContainer&&(n=n.parent);return n}_onChildAdded(t){this.hasParent||Rc(this,t)!==!1&&(this.hasParent=!0,this.invalidateRoot())}_onChildRemoved(t){this.hasParent&&(this.hasParent=!1,this.invalidateRoot(t),Fc(this))}destroy(){this.destroyed||(this.destroyed=!0,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)}}mt(Se,"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 qo(A,t,e){let i=1,n=1;switch(A){case"fill":i=t.width/e.width,n=t.height/e.height;break;case"contain":{const s=Math.min(t.width/e.width,t.height/e.height);i=s,n=s;break}case"cover":{const s=Math.max(t.width/e.width,t.height/e.height);i=s,n=s;break}case"none":i=1,n=1;break;case"scale-down":{const s=Math.min(1,t.width/e.width,t.height/e.height);i=s,n=s;break}}return{offsetScaleX:i,offsetScaleY:n}}function Xo(A,t,e,i){const n=A.getLocalBounds(),s=A.layout.style.objectFit||e;let{offsetScaleX:r,offsetScaleY:a}=qo(s,t,n);const g={width:n.width*r,height:n.height*a};let{x:c,y:u}=cn(A.layout.style.objectPosition,t,g);i?(c+=n.width*r*i._x,u+=n.height*a*i._y):(c-=n.minX*r,u-=n.minY*a);const o=A.layout.style.applySizeDirectly;return(o===!0||o==null&&(A instanceof v.TilingSprite||A instanceof v.NineSliceSprite))&&(A.width=n.width*r,A.height=n.height*a,r=1,a=1),{x:t.left,y:t.top,offsetX:c,offsetY:u,scaleX:r,scaleY:a}}const un=Object.getOwnPropertyDescriptor(v.Container.prototype,"visible"),Hc={_layout:null,get layout(){return this._layout??null},set layout(A){if(A=A===!0?{}:A,!A){this._layout&&(this._layout.destroy(),this._layout=null,this.updateLocalTransform=v.Container.prototype.updateLocalTransform,Object.defineProperty(v.Container.prototype,"visible",un));return}if(!this._layout){this._layout=new Se({target:this}),Object.defineProperty(v.Container.prototype,"visible",{...un,set(t){un.set.call(this,t),this.layout&&(t&&this.parent?this.layout._onChildAdded(this.parent):this.layout._onChildRemoved())}});for(const t of this.children)t.layout&&t.visible&&(t.layout._onChildRemoved(),t.layout._onChildAdded(this));this.parent&&this.visible&&this._layout._onChildAdded(this.parent)}this._layout.setStyle(A),this.updateLocalTransform=this.updateLocalTransformWithLayout,this._onUpdate()},updateLocalTransformWithLayout(){const A=this._didContainerChangeTick;if(this._didLocalTransformChangeId===A)return;this._didLocalTransformChangeId=A;const t=this._layout,{x:e,y:i,offsetX:n,offsetY:s,scaleX:r,scaleY:a,originX:g,originY:c}=t._computedPixiLayout,u=this.localTransform,{rotation:o,skew:l,scale:h,position:B}=this,E=o+l._y,d=o-l._x,C=Math.cos(E)*h._x,w=Math.sin(E)*h._x,m=-Math.sin(d)*h._y,b=Math.cos(d)*h._y,M=B._x+e-g*C-c*m,G=B._y+i-g*w-c*b;u.a=C*r,u.b=w*r,u.c=m*a,u.d=b*a,u.tx=M+(n*C+s*m)+g,u.ty=G+(n*w+s*b)+c},computeLayoutData(A){const t=this._layout,{isLeaf:e}=t._styles.custom;return e?Xo(this,A,"fill"):{x:A.left,y:A.top,offsetX:0,offsetY:0,scaleX:1,scaleY:1}}};v.extensions.mixin(v.Container,Hc);const Zo=new v.Point(0,0),Lc={computeLayoutData(A){const t=this._style;Zo.copyFrom(this.scale),this.scale=1,t.wordWrap&&(t.wordWrapWidth=A.width);let e=this.getLocalBounds();const i=this.layout.style.objectFit||"scale-down",{offsetScaleX:n,offsetScaleY:s}=qo(i,A,e);t.wordWrap&&(t.wordWrapWidth=A.width/Math.min(1,Math.max(n,s))),e=this.getLocalBounds();const r={width:e.width*n,height:e.height*s};let{x:a,y:g}=cn(this.layout.style.objectPosition,A,r);return a+=e.width*n*this.anchor._x,g+=e.height*s*this.anchor._y,this.layout.style.applySizeDirectly===!0&&(this.width=e.width*n,this.height=e.height*s),this.scale.copyFrom(Zo),{x:A.left,y:A.top,offsetX:a,offsetY:g,scaleX:n,scaleY:s}}};v.extensions.mixin(v.AbstractText,Lc);const In=Object.getOwnPropertyDescriptor(v.AbstractText.prototype,"text");Object.defineProperty(v.AbstractText.prototype,"text",{...In,set(A){var t;const e=In.get.call(this);In.set.call(this,A),e!==A&&((t=this.layout)==null||t.forceUpdate())}});const Uc={computeLayoutData(A){return Xo(this,A,"fill",this._anchor)}};v.extensions.mixin(v.ViewContainer,Uc);var Ht=(A=>(A.Margin="margin",A.Padding="padding",A.Border="border",A.Flex="flex",A.Content="content",A))(Ht||{});function fn(A,t){const e=`getComputed${t.charAt(0).toUpperCase()+t.slice(1)}`;return{top:A.yoga[e](U.Top),right:A.yoga[e](U.Right),bottom:A.yoga[e](U.Bottom),left:A.yoga[e](U.Left)}}function Tc(A,t){const{width:e,height:i}=A.computedLayout,n=fn(A,"margin"),s=fn(A,"border"),r=fn(A,"padding"),a=t.get("margin");a.outer.x=-n.left,a.outer.y=-n.top,a.outer.width=e+n.left+n.right,a.outer.height=i+n.top+n.bottom,a.inner.x=0,a.inner.y=0,a.inner.width=e,a.inner.height=i;const g=t.get("border");g.outer.x=0,g.outer.y=0,g.outer.width=e,g.outer.height=i,g.inner.x=s.left,g.inner.y=s.top,g.inner.width=e-s.left-s.right,g.inner.height=i-s.top-s.bottom;const c=t.get("padding");c.outer.copyFrom(g.inner),c.inner.x=r.left+s.left,c.inner.y=r.top+s.top,c.inner.width=e-r.left-r.right-s.left-s.right,c.inner.height=i-r.top-r.bottom-s.top-s.bottom,Oc(A,t)}function Oc(A,t){var e;const i=t.get("flex"),n=t.get("padding");i.outer.copyFrom(n.inner);const s=new v.Bounds,r=A.yoga.getChildCount();for(let g=0;g<r;g++){const u=A.yoga.getChild(g).getComputedLayout();s.addRect(new v.Rectangle(u.left,u.top,u.width,u.height))}const a=A.yoga.getFlexDirection();a===Gt.Column||a===Gt.ColumnReverse?(s.width=i.outer.width,s.x=i.outer.x):(s.height=i.outer.height,s.y=i.outer.y),(e=i.inner)==null||e.copyFrom(s.rectangle),t.get("content").outer.copyFrom(s.rectangle)}var Pc=Object.defineProperty,Jc=(A,t,e)=>t in A?Pc(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,zo=(A,t,e)=>Jc(A,typeof t!="symbol"?t+"":t,e);function Kc(A,t,e){const i=Math.round(A[0]+(t[0]-A[0])*e),n=Math.round(A[1]+(t[1]-A[1])*e),s=Math.round(A[2]+(t[2]-A[2])*e);return`rgb(${i},${n},${s})`}class Yc extends v.Container{constructor(){super(),zo(this,"graphics"),zo(this,"heatGraphics"),this.graphics=new Map,Object.values(Ht).forEach(t=>{const e=new v.Graphics;this.graphics.set(t,e),this.addChild(e)}),this.heatGraphics=new v.Graphics,this.addChild(this.heatGraphics)}init(t){const{target:e,alpha:i,heat:n}=t;t.heatOnly||Object.entries(t).forEach(([a,g])=>{if(a==="target"||a==="alpha"||a==="heat"||a==="heatOnly")return;g=g;const c=this.graphics.get(a);if(!(!c||!g.draw))if(g.inner)this.drawCutBox(c,g.outer,g.inner,g.color,i);else{const{x:u,y:o,width:l,height:h}=g.outer;c.rect(u,o,l,Math.max(h,1)),c.fill({color:g.color,alpha:i})}});const{invalidationCount:s,draw:r}=n;if(s>0&&r){const g=Math.min(s/20,1),c=t[Ht.Margin],l=Kc([255,255,0],[255,0,0],g);this.heatGraphics.rect(c.outer.x,c.outer.y,c.outer.width,c.outer.height),this.heatGraphics.fill({color:l,alpha:Math.min(.3,g)}),this.heatGraphics.stroke({color:l,alpha:Math.max(.3,g),pixelLine:!0})}this.position.set(e.x,e.y)}reset(){this.graphics.forEach(t=>t.clear()),this.heatGraphics.clear(),this.removeFromParent()}drawCutBox(t,e,i,n,s){const{x:r,y:a,width:g,height:c}=e,{x:u,y:o,width:l,height:h}=i;t.rect(r,a,g,c),t.fill({color:n,alpha:s}),t.rect(u,o,l,h),t.cut()}}var Wc=Object.defineProperty,jc=(A,t,e)=>t in A?Wc(A,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):A[t]=e,_A=(A,t,e)=>jc(A,typeof t!="symbol"?t+"":t,e);class Vc{constructor(){_A(this,"holder",new v.Container),_A(this,"regions",new Map),_A(this,"colors",{[Ht.Margin]:"#B68655",[Ht.Padding]:"#BAC57F",[Ht.Border]:"#E7C583",[Ht.Content]:"#89B1BE",[Ht.Flex]:"#6E28D9"}),_A(this,"alpha",.75),Object.values(Ht).forEach(t=>{this.regions.set(t,{outer:new v.Rectangle,inner:new v.Rectangle})}),this.holder.__devtoolIgnore=!0,this.holder.__devtoolIgnoreChildren=!0,this.holder.eventMode="none",this.holder.interactiveChildren=!1}reset(){for(let t=this.holder.children.length-1;t>=0;t--){const e=this.holder.children[t];v.BigPool.return(e)}}render(t){Tc(t,this.regions);const e=Object.values(Ht).reduce((a,g)=>{const c=this.regions.get(g);if(!c)return a;const u=`debugDraw${g.charAt(0).toUpperCase()}${g.slice(1)}`;return a[g]={...c,color:this.colors[g],draw:t._styles.custom[u]??!0},a},{}),{left:i,top:n}=t.computedLayout,s=t.target.getGlobalPosition(),r=v.BigPool.get(Yc,{...e,target:{x:s.x+i,y:s.y+n},alpha:this.alpha,heat:{invalidationCount:t._modificationCount,draw:t._styles.custom.debugHeat!==!1},heatOnly:!t._styles.custom.debug});this.holder.addChildAt(r,0)}destroy(){this.reset(),this.holder.destroy(),this.regions.clear()}}const qc=Object.freeze(Object.defineProperty({__proto__:null,DebugRenderer:Vc},Symbol.toStringTag,{value:"Module"}));v.extensions.add(Ho);const Xc=async(A,t,e)=>{const{components:i,autoRegister:n,...s}=e??{};i?(n!==!1&&Si(),Object.entries(i).forEach(([c,u])=>{st(c,u)})):Si();const r=new v.Application;await r.init({resizeTo:A,autoStart:!1,antialias:!0,...s});const a=await ht(t);if(a.tag!="Canvas")throw new Error("Canvas is required");a.render(A,r);const{backgroundColor:g}=Qt(a.props,{backgroundColor:"black"});return r.renderer.background.color=g(),{canvasElement:a,app:r}};function Zc(A){return ut.getCurrentIndexSignal(A)}function zc(A){return ut.getFocusedElementSignal(A)}function $c(A,t){const e=ut.getCurrentIndexSignal(A),i=ut.getFocusedElementSignal(A);if(!e||!i)return console.warn(`FocusContainer with id "${A}" not found`),()=>{};const n=nt(()=>{const s=e(),r=i();t(s,r)});return()=>{n&&typeof n.unsubscribe=="function"&&n.unsubscribe()}}const th={linear:sl,easeIn:pi,easeInOut:Js,easeOut:ol,circIn:Ks,circInOut:rl,circOut:Ys,backIn:yi,backInOut:ll,backOut:al,anticipate:gl,bounceIn:Il,bounceInOut:fl,bounceOut:dA};class eh{constructor(t,e,i,n,s,r,a=0){this.x0=t,this.y0=e,this.x1=i,this.y1=n,this.x2=s,this.y2=r,this.focalPoint=a,this.gradient=null,this.texture=null,this.size=600,this.size=t;const g=this.size*.5;this.canvas=v.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(g*(1-a),g,0,g,g,g-.5))}addColorStop(t,e){this.gradient&&this.gradient.addColorStop(t,e)}render({translate:t}={}){const{x0:e,y0:i,x1:n,y1:s,x2:r,y2:a,focalPoint:g}=this,c=this.size;if(this.ctx&&this.gradient){this.ctx.fillStyle=this.gradient,this.ctx.fillRect(0,0,c,c),this.texture=new v.Texture({source:new v.ImageSource({resource:this.canvas,addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"})});const u=new v.Matrix,o=Math.sqrt((n-e)*(n-e)+(s-i)*(s-i)),l=Math.sqrt((r-e)*(r-e)+(a-i)*(a-i)),h=Math.atan2(s-i,n-e),B=o/c,E=l/c;u.rotate(-h),u.scale(B,E),t&&u.translate(t.x,t.y),this.transform=u}return{texture:this.texture,matrix:this.transform}}}return k.ArraySubject=Ue,k.Button=$g,k.ButtonState=bo,k.Canvas=Jl,k.Circle=Gi,k.Container=Xe,k.ControlsBase=uA,k.ControlsDirective=to,k.DOMContainer=zg,k.DOMElement=vo,k.DisplayObject=pt,k.Drag=ro,k.Drop=oo,k.EVENTS=co,k.Easing=th,k.Ellipse=uo,k.Flash=go,k.FocusContainer=ic,k.FocusManager=SA,k.GamepadControls=fs,k.Graphics=ne,k.Howl=Ll,k.Howler=de.Howler,k.Input=ls,k.Joystick=tc,k.JoystickControls=Bs,k.KeyboardControls=hs,k.Mesh=Vl,k.NineSliceSprite=qg,k.ObjectSubject=Te,k.ParticlesEmitter=ag,k.RadialGradient=eh,k.Rect=ho,k.Scene=Xl,k.Scheduler=eo,k.Shake=lo,k.Sound=so,k.Sprite=ln,k.Svg=Wl,k.Text=yo,k.TilingSprite=hg,k.Transition=ao,k.Triangle=Yl,k.Utils=Ia,k.Video=lg,k.Viewport=jg,k.ViewportFollow=Ao,k.animatedSequence=_l,k.animatedSignal=Di,k.bootstrapCanvas=Xc,k.checkDependencies=je,k.computed=Ct,k.cond=Gl,k.createComponent=ct,k.effect=nt,k.focusManager=ut,k.h=ht,k.isAnimatedSignal=Ce,k.isArraySubject=Da,k.isComputed=Ee,k.isElement=dt,k.isElementFrozen=St,k.isObjectSubject=va,k.isObservable=Xr,k.isPrimitive=bi,k.isSignal=N,k.isTrigger=qe,k.linkedSignal=Es,k.loop=Fl,k.mount=Ni,k.on=yA,k.registerAllComponents=Si,k.registerComponent=st,k.signal=Y,k.tick=ql,k.trigger=Ol,k.untracked=li,k.useDefineProps=ki,k.useFocusChange=$c,k.useFocusIndex=Zc,k.useFocusedElement=zc,k.useProps=Qt,k.waitForDependencies=$s,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"}),k})({},PIXI);
5
5
  //# sourceMappingURL=index.global.js.map