!function(t, e) {
    "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define("Phaser", [], e) : "object" == typeof exports ? exports.Phaser = e() : t.Phaser = e();
}(this, ()=>(()=>{
        var t = {
            6659: (t)=>{
                "use strict";
                var e = Object.prototype.hasOwnProperty, i = "~";
                function s() {}
                function n(t, e, i) {
                    this.fn = t, this.context = e, this.once = i || !1;
                }
                function r(t, e, s, r, o) {
                    if ("function" != typeof s) throw new TypeError("The listener must be a function");
                    var a = new n(s, r || t, o), h = i ? i + e : e;
                    return t._events[h] ? t._events[h].fn ? t._events[h] = [
                        t._events[h],
                        a
                    ] : t._events[h].push(a) : (t._events[h] = a, t._eventsCount++), t;
                }
                function o(t, e) {
                    0 == --t._eventsCount ? t._events = new s : delete t._events[e];
                }
                function a() {
                    this._events = new s, this._eventsCount = 0;
                }
                Object.create && (s.prototype = Object.create(null), (new s).__proto__ || (i = !1)), a.prototype.eventNames = function() {
                    var t, s, n = [];
                    if (0 === this._eventsCount) return n;
                    for(s in t = this._events)e.call(t, s) && n.push(i ? s.slice(1) : s);
                    return Object.getOwnPropertySymbols ? n.concat(Object.getOwnPropertySymbols(t)) : n;
                }, a.prototype.listeners = function(t) {
                    var e = i ? i + t : t, s = this._events[e];
                    if (!s) return [];
                    if (s.fn) return [
                        s.fn
                    ];
                    for(var n = 0, r = s.length, o = new Array(r); n < r; n++)o[n] = s[n].fn;
                    return o;
                }, a.prototype.listenerCount = function(t) {
                    var e = i ? i + t : t, s = this._events[e];
                    return s ? s.fn ? 1 : s.length : 0;
                }, a.prototype.emit = function(t, e, s, n, r, o) {
                    var a = i ? i + t : t;
                    if (!this._events[a]) return !1;
                    var h, l, u = this._events[a], c = arguments.length;
                    if (u.fn) {
                        switch(u.once && this.removeListener(t, u.fn, void 0, !0), c){
                            case 1:
                                return u.fn.call(u.context), !0;
                            case 2:
                                return u.fn.call(u.context, e), !0;
                            case 3:
                                return u.fn.call(u.context, e, s), !0;
                            case 4:
                                return u.fn.call(u.context, e, s, n), !0;
                            case 5:
                                return u.fn.call(u.context, e, s, n, r), !0;
                            case 6:
                                return u.fn.call(u.context, e, s, n, r, o), !0;
                        }
                        for(l = 1, h = new Array(c - 1); l < c; l++)h[l - 1] = arguments[l];
                        u.fn.apply(u.context, h);
                    } else {
                        var d, f = u.length;
                        for(l = 0; l < f; l++)switch(u[l].once && this.removeListener(t, u[l].fn, void 0, !0), c){
                            case 1:
                                u[l].fn.call(u[l].context);
                                break;
                            case 2:
                                u[l].fn.call(u[l].context, e);
                                break;
                            case 3:
                                u[l].fn.call(u[l].context, e, s);
                                break;
                            case 4:
                                u[l].fn.call(u[l].context, e, s, n);
                                break;
                            default:
                                if (!h) for(d = 1, h = new Array(c - 1); d < c; d++)h[d - 1] = arguments[d];
                                u[l].fn.apply(u[l].context, h);
                        }
                    }
                    return !0;
                }, a.prototype.on = function(t, e, i) {
                    return r(this, t, e, i, !1);
                }, a.prototype.once = function(t, e, i) {
                    return r(this, t, e, i, !0);
                }, a.prototype.removeListener = function(t, e, s, n) {
                    var r = i ? i + t : t;
                    if (!this._events[r]) return this;
                    if (!e) return o(this, r), this;
                    var a = this._events[r];
                    if (a.fn) a.fn !== e || n && !a.once || s && a.context !== s || o(this, r);
                    else {
                        for(var h = 0, l = [], u = a.length; h < u; h++)(a[h].fn !== e || n && !a[h].once || s && a[h].context !== s) && l.push(a[h]);
                        l.length ? this._events[r] = 1 === l.length ? l[0] : l : o(this, r);
                    }
                    return this;
                }, a.prototype.removeAllListeners = function(t) {
                    var e;
                    return t ? (e = i ? i + t : t, this._events[e] && o(this, e)) : (this._events = new s, this._eventsCount = 0), this;
                }, a.prototype.off = a.prototype.removeListener, a.prototype.addListener = a.prototype.on, a.prefixed = i, a.EventEmitter = a, t.exports = a;
            },
            62270: (t, e, i)=>{
                var s = i(82590);
                t.exports = function(t, e, i, n) {
                    for(var r = t[0], o = 1; o < t.length; o++){
                        var a = t[o];
                        s(a, r, e, i, n), r = a;
                    }
                    return t;
                };
            },
            61148: (t, e, i)=>{
                var s = i(6124);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "angle", e, i, n, r);
                };
            },
            22015: (t)=>{
                t.exports = function(t, e, i) {
                    for(var s = 0; s < t.length; s++){
                        var n = t[s];
                        e.call(i, n);
                    }
                    return t;
                };
            },
            31060: (t)=>{
                t.exports = function(t, e, i) {
                    void 0 === i && (i = 0);
                    for(var s = i; s < t.length; s++){
                        var n = t[s], r = !0;
                        for(var o in e)n[o] !== e[o] && (r = !1);
                        if (r) return n;
                    }
                    return null;
                };
            },
            52367: (t)=>{
                t.exports = function(t, e, i) {
                    void 0 === i && (i = 0);
                    for(var s = i; s < t.length; s++){
                        var n = t[s], r = !0;
                        for(var o in e)n[o] !== e[o] && (r = !1);
                        if (r) return n;
                    }
                    return null;
                };
            },
            12673: (t, e, i)=>{
                var s = i(40327), n = i(84093), r = i(72632), o = i(72283), a = new (i(71030))({
                    sys: {
                        queueDepthSort: o,
                        events: {
                            once: o
                        }
                    }
                }, 0, 0, 1, 1).setOrigin(0, 0);
                t.exports = function(t, e) {
                    void 0 === e && (e = {});
                    var i = e.hasOwnProperty("width"), o = e.hasOwnProperty("height"), h = r(e, "width", -1), l = r(e, "height", -1), u = r(e, "cellWidth", 1), c = r(e, "cellHeight", u), d = r(e, "position", n.TOP_LEFT), f = r(e, "x", 0), p = r(e, "y", 0), v = 0, g = 0, m = h * u, y = l * c;
                    a.setPosition(f, p), a.setSize(u, c);
                    for(var x = 0; x < t.length; x++)if (s(t[x], a, d), i && -1 === h) a.x += u;
                    else if (o && -1 === l) a.y += c;
                    else if (o && !i) {
                        if (g += c, a.y += c, g === y && (g = 0, v += u, a.y = p, a.x += u, v === m)) break;
                    } else if (v += u, a.x += u, v === m && (v = 0, g += c, a.x = f, a.y += c, g === y)) break;
                    return t;
                };
            },
            691: (t, e, i)=>{
                var s = i(6124);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "alpha", e, i, n, r);
                };
            },
            3877: (t, e, i)=>{
                var s = i(6124);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "x", e, i, n, r);
                };
            },
            71020: (t, e, i)=>{
                var s = i(6124);
                t.exports = function(t, e, i, n, r, o, a) {
                    return null == i && (i = e), s(t, "x", e, n, o, a), s(t, "y", i, r, o, a);
                };
            },
            28970: (t, e, i)=>{
                var s = i(6124);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "y", e, i, n, r);
                };
            },
            82249: (t)=>{
                t.exports = function(t, e, i, s) {
                    void 0 === i && (i = 0), void 0 === s && (s = 6.28);
                    for(var n = i, r = (s - i) / t.length, o = e.x, a = e.y, h = e.radius, l = 0; l < t.length; l++)t[l].x = o + h * Math.cos(n), t[l].y = a + h * Math.sin(n), n += r;
                    return t;
                };
            },
            30285: (t)=>{
                t.exports = function(t, e, i, s) {
                    void 0 === i && (i = 0), void 0 === s && (s = 6.28);
                    for(var n = i, r = (s - i) / t.length, o = e.width / 2, a = e.height / 2, h = 0; h < t.length; h++)t[h].x = e.x + o * Math.cos(n), t[h].y = e.y + a * Math.sin(n), n += r;
                    return t;
                };
            },
            61557: (t, e, i)=>{
                var s = i(8570);
                t.exports = function(t, e) {
                    for(var i = s(e, t.length), n = 0; n < t.length; n++){
                        var r = t[n], o = i[n];
                        r.x = o.x, r.y = o.y;
                    }
                    return t;
                };
            },
            63549: (t, e, i)=>{
                var s = i(40053), n = i(77640), r = i(38487);
                t.exports = function(t, e, i) {
                    void 0 === i && (i = 0);
                    var o = s(e, !1, t.length);
                    i > 0 ? n(o, i) : i < 0 && r(o, Math.abs(i));
                    for(var a = 0; a < t.length; a++)t[a].x = o[a].x, t[a].y = o[a].y;
                    return t;
                };
            },
            51629: (t, e, i)=>{
                var s = i(58813);
                t.exports = function(t, e, i) {
                    var n = s({
                        x1: e.x1,
                        y1: e.y1,
                        x2: e.x2,
                        y2: e.y2
                    }, i), r = s({
                        x1: e.x2,
                        y1: e.y2,
                        x2: e.x3,
                        y2: e.y3
                    }, i), o = s({
                        x1: e.x3,
                        y1: e.y3,
                        x2: e.x1,
                        y2: e.y1
                    }, i);
                    n.pop(), r.pop(), o.pop();
                    for(var a = (n = n.concat(r, o)).length / t.length, h = 0, l = 0; l < t.length; l++){
                        var u = t[l], c = n[Math.floor(h)];
                        u.x = c.x, u.y = c.y, h += a;
                    }
                    return t;
                };
            },
            1045: (t)=>{
                t.exports = function(t, e, i) {
                    for(var s = 0; s < t.length; s++){
                        var n = t[s];
                        n.anims && n.anims.play(e, i);
                    }
                    return t;
                };
            },
            6124: (t)=>{
                t.exports = function(t, e, i, s, n, r) {
                    var o;
                    void 0 === s && (s = 0), void 0 === n && (n = 0), void 0 === r && (r = 1);
                    var a = 0, h = t.length;
                    if (1 === r) for(o = n; o < h; o++)t[o][e] += i + a * s, a++;
                    else for(o = n; o >= 0; o--)t[o][e] += i + a * s, a++;
                    return t;
                };
            },
            23646: (t)=>{
                t.exports = function(t, e, i, s, n, r) {
                    var o;
                    void 0 === s && (s = 0), void 0 === n && (n = 0), void 0 === r && (r = 1);
                    var a = 0, h = t.length;
                    if (1 === r) for(o = n; o < h; o++)t[o][e] = i + a * s, a++;
                    else for(o = n; o >= 0; o--)t[o][e] = i + a * s, a++;
                    return t;
                };
            },
            4392: (t, e, i)=>{
                var s = i(30977);
                t.exports = function(t, e) {
                    for(var i = 0; i < t.length; i++)s(e, t[i]);
                    return t;
                };
            },
            94985: (t, e, i)=>{
                var s = i(72006);
                t.exports = function(t, e) {
                    for(var i = 0; i < t.length; i++)s(e, t[i]);
                    return t;
                };
            },
            63305: (t, e, i)=>{
                var s = i(74077);
                t.exports = function(t, e) {
                    for(var i = 0; i < t.length; i++)s(e, t[i]);
                    return t;
                };
            },
            90739: (t, e, i)=>{
                var s = i(30001);
                t.exports = function(t, e) {
                    for(var i = 0; i < t.length; i++)s(e, t[i]);
                    return t;
                };
            },
            91417: (t, e, i)=>{
                var s = i(99761);
                t.exports = function(t, e) {
                    for(var i = 0; i < t.length; i++)s(e, t[i]);
                    return t;
                };
            },
            26182: (t, e, i)=>{
                var s = i(6124);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "rotation", e, i, n, r);
                };
            },
            87299: (t, e, i)=>{
                var s = i(72395), n = i(53996);
                t.exports = function(t, e, i) {
                    for(var r = e.x, o = e.y, a = 0; a < t.length; a++){
                        var h = t[a];
                        s(h, r, o, i, Math.max(1, n(h.x, h.y, r, o)));
                    }
                    return t;
                };
            },
            92194: (t, e, i)=>{
                var s = i(72395);
                t.exports = function(t, e, i, n) {
                    var r = e.x, o = e.y;
                    if (0 === n) return t;
                    for(var a = 0; a < t.length; a++)s(t[a], r, o, i, n);
                    return t;
                };
            },
            30363: (t, e, i)=>{
                var s = i(6124);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "scaleX", e, i, n, r);
                };
            },
            51449: (t, e, i)=>{
                var s = i(6124);
                t.exports = function(t, e, i, n, r, o, a) {
                    return null == i && (i = e), s(t, "scaleX", e, n, o, a), s(t, "scaleY", i, r, o, a);
                };
            },
            64895: (t, e, i)=>{
                var s = i(6124);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "scaleY", e, i, n, r);
                };
            },
            30329: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "alpha", e, i, n, r);
                };
            },
            43954: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n) {
                    return s(t, "blendMode", e, 0, i, n);
                };
            },
            70688: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "depth", e, i, n, r);
                };
            },
            8314: (t)=>{
                t.exports = function(t, e, i) {
                    for(var s = 0; s < t.length; s++)t[s].setInteractive(e, i);
                    return t;
                };
            },
            12894: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r, o, a) {
                    return null == i && (i = e), s(t, "originX", e, n, o, a), s(t, "originY", i, r, o, a), t.forEach(function(t) {
                        t.updateDisplayOrigin();
                    }), t;
                };
            },
            38767: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "rotation", e, i, n, r);
                };
            },
            18584: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r, o, a) {
                    return null == i && (i = e), s(t, "scaleX", e, n, o, a), s(t, "scaleY", i, r, o, a);
                };
            },
            17381: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "scaleX", e, i, n, r);
                };
            },
            74370: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "scaleY", e, i, n, r);
                };
            },
            27773: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r, o, a) {
                    return null == i && (i = e), s(t, "scrollFactorX", e, n, o, a), s(t, "scrollFactorY", i, r, o, a);
                };
            },
            75257: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "scrollFactorX", e, i, n, r);
                };
            },
            54512: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "scrollFactorY", e, i, n, r);
                };
            },
            69423: (t)=>{
                t.exports = function(t, e, i, s, n) {
                    for(var r = 0; r < t.length; r++)t[r].setTint(e, i, s, n);
                    return t;
                };
            },
            58291: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n) {
                    return s(t, "visible", e, 0, i, n);
                };
            },
            94833: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "x", e, i, n, r);
                };
            },
            14284: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r, o, a) {
                    return null == i && (i = e), s(t, "x", e, n, o, a), s(t, "y", i, r, o, a);
                };
            },
            96574: (t, e, i)=>{
                var s = i(23646);
                t.exports = function(t, e, i, n, r) {
                    return s(t, "y", e, i, n, r);
                };
            },
            74086: (t, e, i)=>{
                var s = i(93736);
                t.exports = function(t, e, i, n, r) {
                    var o, a;
                    void 0 === n && (n = 0), void 0 === r && (r = new s);
                    var h = t.length;
                    if (1 === h) o = t[0].x, a = t[0].y, t[0].x = e, t[0].y = i;
                    else {
                        var l = 1, u = 0;
                        0 === n && (u = h - 1, l = h - 2), o = t[u].x, a = t[u].y, t[u].x = e, t[u].y = i;
                        for(var c = 0; c < h; c++)if (!(l >= h || -1 === l)) {
                            var d = t[l], f = d.x, p = d.y;
                            d.x = o, d.y = a, o = f, a = p, 0 === n ? l-- : l++;
                        }
                    }
                    return r.x = o, r.y = a, r;
                };
            },
            86347: (t, e, i)=>{
                var s = i(18592);
                t.exports = function(t) {
                    return s(t);
                };
            },
            1558: (t, e, i)=>{
                var s = i(5514);
                t.exports = function(t, e, i, n, r) {
                    void 0 === r && (r = !1);
                    var o, a = Math.abs(n - i) / t.length;
                    if (r) for(o = 0; o < t.length; o++)t[o][e] += s(o * a, i, n);
                    else for(o = 0; o < t.length; o++)t[o][e] = s(o * a, i, n);
                    return t;
                };
            },
            9938: (t, e, i)=>{
                var s = i(87736);
                t.exports = function(t, e, i, n, r) {
                    void 0 === r && (r = !1);
                    var o, a = Math.abs(n - i) / t.length;
                    if (r) for(o = 0; o < t.length; o++)t[o][e] += s(o * a, i, n);
                    else for(o = 0; o < t.length; o++)t[o][e] = s(o * a, i, n);
                    return t;
                };
            },
            71060: (t)=>{
                t.exports = function(t, e, i, s, n) {
                    if (void 0 === n && (n = !1), 0 === t.length) return t;
                    if (1 === t.length) return n ? t[0][e] += (s + i) / 2 : t[0][e] = (s + i) / 2, t;
                    var r, o = Math.abs(s - i) / (t.length - 1);
                    if (n) for(r = 0; r < t.length; r++)t[r][e] += r * o + i;
                    else for(r = 0; r < t.length; r++)t[r][e] = r * o + i;
                    return t;
                };
            },
            11207: (t)=>{
                t.exports = function(t) {
                    for(var e = 0; e < t.length; e++)t[e].visible = !t[e].visible;
                    return t;
                };
            },
            24404: (t, e, i)=>{
                var s = i(1071);
                t.exports = function(t, e, i) {
                    void 0 === i && (i = 0);
                    for(var n = 0; n < t.length; n++){
                        var r = t[n];
                        r.x = s(r.x, e.left - i, e.right + i), r.y = s(r.y, e.top - i, e.bottom + i);
                    }
                    return t;
                };
            },
            83979: (t, e, i)=>{
                t.exports = {
                    AlignTo: i(62270),
                    Angle: i(61148),
                    Call: i(22015),
                    GetFirst: i(31060),
                    GetLast: i(52367),
                    GridAlign: i(12673),
                    IncAlpha: i(691),
                    IncX: i(3877),
                    IncXY: i(71020),
                    IncY: i(28970),
                    PlaceOnCircle: i(82249),
                    PlaceOnEllipse: i(30285),
                    PlaceOnLine: i(61557),
                    PlaceOnRectangle: i(63549),
                    PlaceOnTriangle: i(51629),
                    PlayAnimation: i(1045),
                    PropertyValueInc: i(6124),
                    PropertyValueSet: i(23646),
                    RandomCircle: i(4392),
                    RandomEllipse: i(94985),
                    RandomLine: i(63305),
                    RandomRectangle: i(90739),
                    RandomTriangle: i(91417),
                    Rotate: i(26182),
                    RotateAround: i(87299),
                    RotateAroundDistance: i(92194),
                    ScaleX: i(30363),
                    ScaleXY: i(51449),
                    ScaleY: i(64895),
                    SetAlpha: i(30329),
                    SetBlendMode: i(43954),
                    SetDepth: i(70688),
                    SetHitArea: i(8314),
                    SetOrigin: i(12894),
                    SetRotation: i(38767),
                    SetScale: i(18584),
                    SetScaleX: i(17381),
                    SetScaleY: i(74370),
                    SetScrollFactor: i(27773),
                    SetScrollFactorX: i(75257),
                    SetScrollFactorY: i(54512),
                    SetTint: i(69423),
                    SetVisible: i(58291),
                    SetX: i(94833),
                    SetXY: i(14284),
                    SetY: i(96574),
                    ShiftPosition: i(74086),
                    Shuffle: i(86347),
                    SmootherStep: i(9938),
                    SmoothStep: i(1558),
                    Spread: i(71060),
                    ToggleVisible: i(11207),
                    WrapInRectangle: i(24404)
                };
            },
            85463: (t, e, i)=>{
                var s = i(82897), n = i(56694), r = i(16938), o = i(2406), a = i(71519), h = i(10850), l = i(28834), u = new n({
                    initialize: function(t, e, i) {
                        this.manager = t, this.key = e, this.type = "frame", this.frames = this.getFrames(t.textureManager, h(i, "frames", []), h(i, "defaultTextureKey", null), h(i, "sortFrames", !0)), this.frameRate = h(i, "frameRate", null), this.duration = h(i, "duration", null), this.msPerFrame, this.skipMissedFrames = h(i, "skipMissedFrames", !0), this.delay = h(i, "delay", 0), this.repeat = h(i, "repeat", 0), this.repeatDelay = h(i, "repeatDelay", 0), this.yoyo = h(i, "yoyo", !1), this.showBeforeDelay = h(i, "showBeforeDelay", !1), this.showOnStart = h(i, "showOnStart", !1), this.hideOnComplete = h(i, "hideOnComplete", !1), this.paused = !1, this.calculateDuration(this, this.getTotalFrames(), this.duration, this.frameRate), this.manager.on && (this.manager.on(r.PAUSE_ALL, this.pause, this), this.manager.on(r.RESUME_ALL, this.resume, this));
                    },
                    getTotalFrames: function() {
                        return this.frames.length;
                    },
                    calculateDuration: function(t, e, i, s) {
                        null === i && null === s ? (t.frameRate = 24, t.duration = 24 / e * 1e3) : i && null === s ? (t.duration = i, t.frameRate = e / (i / 1e3)) : (t.frameRate = s, t.duration = e / s * 1e3), t.msPerFrame = 1e3 / t.frameRate;
                    },
                    addFrame: function(t) {
                        return this.addFrameAt(this.frames.length, t);
                    },
                    addFrameAt: function(t, e) {
                        var i = this.getFrames(this.manager.textureManager, e);
                        if (i.length > 0) {
                            if (0 === t) this.frames = i.concat(this.frames);
                            else if (t === this.frames.length) this.frames = this.frames.concat(i);
                            else {
                                var s = this.frames.slice(0, t), n = this.frames.slice(t);
                                this.frames = s.concat(i, n);
                            }
                            this.updateFrameSequence();
                        }
                        return this;
                    },
                    checkFrame: function(t) {
                        return t >= 0 && t < this.frames.length;
                    },
                    getFirstTick: function(t) {
                        t.accumulator = 0, t.nextTick = t.msPerFrame + t.currentFrame.duration;
                    },
                    getFrameAt: function(t) {
                        return this.frames[t];
                    },
                    getFrames: function(t, e, i, s) {
                        void 0 === s && (s = !0);
                        var n, r, o, u, c = [], d = 1;
                        if ("string" == typeof e) {
                            if (u = e, !t.exists(u)) return console.warn('Texture "%s" not found', u), c;
                            var f = t.get(u).getFrameNames();
                            s && l(f), e = [], f.forEach(function(t) {
                                e.push({
                                    key: u,
                                    frame: t
                                });
                            });
                        }
                        if (!Array.isArray(e) || 0 === e.length) return c;
                        for(o = 0; o < e.length; o++){
                            var p = e[o], v = h(p, "key", i);
                            if (v) {
                                var g = h(p, "frame", 0), m = t.getFrame(v, g);
                                m ? ((r = new a(v, g, d, m)).duration = h(p, "duration", 0), r.isFirst = !n, n && (n.nextFrame = r, r.prevFrame = n), c.push(r), n = r, d++) : console.warn('Texture "%s" not found', v);
                            }
                        }
                        if (c.length > 0) {
                            r.isLast = !0, r.nextFrame = c[0], c[0].prevFrame = r;
                            var y = 1 / (c.length - 1);
                            for(o = 0; o < c.length; o++)c[o].progress = o * y;
                        }
                        return c;
                    },
                    getNextTick: function(t) {
                        t.accumulator -= t.nextTick, t.nextTick = t.msPerFrame + t.currentFrame.duration;
                    },
                    getFrameByProgress: function(t) {
                        return t = s(t, 0, 1), o(t, this.frames, "progress");
                    },
                    nextFrame: function(t) {
                        var e = t.currentFrame;
                        e.isLast ? t.yoyo ? this.handleYoyoFrame(t, !1) : t.repeatCounter > 0 ? t.inReverse && t.forward ? t.forward = !1 : this.repeatAnimation(t) : t.complete() : this.updateAndGetNextTick(t, e.nextFrame);
                    },
                    handleYoyoFrame: function(t, e) {
                        if (e || (e = !1), t.inReverse === !e && t.repeatCounter > 0) return (0 === t.repeatDelay || t.pendingRepeat) && (t.forward = e), void this.repeatAnimation(t);
                        if (t.inReverse === e || 0 !== t.repeatCounter) {
                            t.forward = e;
                            var i = e ? t.currentFrame.nextFrame : t.currentFrame.prevFrame;
                            this.updateAndGetNextTick(t, i);
                        } else t.complete();
                    },
                    getLastFrame: function() {
                        return this.frames[this.frames.length - 1];
                    },
                    previousFrame: function(t) {
                        var e = t.currentFrame;
                        e.isFirst ? t.yoyo ? this.handleYoyoFrame(t, !0) : t.repeatCounter > 0 ? (t.inReverse && !t.forward || (t.forward = !0), this.repeatAnimation(t)) : t.complete() : this.updateAndGetNextTick(t, e.prevFrame);
                    },
                    updateAndGetNextTick: function(t, e) {
                        t.setCurrentFrame(e), this.getNextTick(t);
                    },
                    removeFrame: function(t) {
                        var e = this.frames.indexOf(t);
                        return -1 !== e && this.removeFrameAt(e), this;
                    },
                    removeFrameAt: function(t) {
                        return this.frames.splice(t, 1), this.updateFrameSequence(), this;
                    },
                    repeatAnimation: function(t) {
                        if (2 === t._pendingStop) {
                            if (0 === t._pendingStopValue) return t.stop();
                            t._pendingStopValue--;
                        }
                        t.repeatDelay > 0 && !t.pendingRepeat ? (t.pendingRepeat = !0, t.accumulator -= t.nextTick, t.nextTick += t.repeatDelay) : (t.repeatCounter--, t.forward ? t.setCurrentFrame(t.currentFrame.nextFrame) : t.setCurrentFrame(t.currentFrame.prevFrame), t.isPlaying && (this.getNextTick(t), t.handleRepeat()));
                    },
                    toJSON: function() {
                        var t = {
                            key: this.key,
                            type: this.type,
                            frames: [],
                            frameRate: this.frameRate,
                            duration: this.duration,
                            skipMissedFrames: this.skipMissedFrames,
                            delay: this.delay,
                            repeat: this.repeat,
                            repeatDelay: this.repeatDelay,
                            yoyo: this.yoyo,
                            showBeforeDelay: this.showBeforeDelay,
                            showOnStart: this.showOnStart,
                            hideOnComplete: this.hideOnComplete
                        };
                        return this.frames.forEach(function(e) {
                            t.frames.push(e.toJSON());
                        }), t;
                    },
                    updateFrameSequence: function() {
                        for(var t, e = this.frames.length, i = 1 / (e - 1), s = 0; s < e; s++)(t = this.frames[s]).index = s + 1, t.isFirst = !1, t.isLast = !1, t.progress = s * i, 0 === s ? (t.isFirst = !0, 1 === e ? (t.isLast = !0, t.nextFrame = t, t.prevFrame = t) : (t.isLast = !1, t.prevFrame = this.frames[e - 1], t.nextFrame = this.frames[s + 1])) : s === e - 1 && e > 1 ? (t.isLast = !0, t.prevFrame = this.frames[e - 2], t.nextFrame = this.frames[0]) : e > 1 && (t.prevFrame = this.frames[s - 1], t.nextFrame = this.frames[s + 1]);
                        return this;
                    },
                    pause: function() {
                        return this.paused = !0, this;
                    },
                    resume: function() {
                        return this.paused = !1, this;
                    },
                    destroy: function() {
                        this.manager.off && (this.manager.off(r.PAUSE_ALL, this.pause, this), this.manager.off(r.RESUME_ALL, this.resume, this)), this.manager.remove(this.key);
                        for(var t = 0; t < this.frames.length; t++)this.frames[t].destroy();
                        this.frames = [], this.manager = null;
                    }
                });
                t.exports = u;
            },
            71519: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t, e, i, s, n) {
                        void 0 === n && (n = !1), this.textureKey = t, this.textureFrame = e, this.index = i, this.frame = s, this.isFirst = !1, this.isLast = !1, this.prevFrame = null, this.nextFrame = null, this.duration = 0, this.progress = 0, this.isKeyFrame = n;
                    },
                    toJSON: function() {
                        return {
                            key: this.textureKey,
                            frame: this.textureFrame,
                            duration: this.duration,
                            keyframe: this.isKeyFrame
                        };
                    },
                    destroy: function() {
                        this.frame = void 0;
                    }
                });
                t.exports = s;
            },
            90249: (t, e, i)=>{
                var s = i(85463), n = i(56694), r = i(33885), o = i(6659), a = i(16938), h = i(97081), l = i(72632), u = i(10850), c = i(83392), d = i(13401), f = i(76400), p = new n({
                    Extends: o,
                    initialize: function(t) {
                        o.call(this), this.game = t, this.textureManager = null, this.globalTimeScale = 1, this.anims = new r, this.mixes = new r, this.paused = !1, this.name = "AnimationManager", t.events.once(h.BOOT, this.boot, this);
                    },
                    boot: function() {
                        this.textureManager = this.game.textures, this.game.events.once(h.DESTROY, this.destroy, this);
                    },
                    addMix: function(t, e, i) {
                        var s = this.anims, n = this.mixes, r = "string" == typeof t ? t : t.key, o = "string" == typeof e ? e : e.key;
                        if (s.has(r) && s.has(o)) {
                            var a = n.get(r);
                            a || (a = {}), a[o] = i, n.set(r, a);
                        }
                        return this;
                    },
                    removeMix: function(t, e) {
                        var i = this.mixes, s = "string" == typeof t ? t : t.key, n = i.get(s);
                        if (n) {
                            if (e) {
                                var r = "string" == typeof e ? e : e.key;
                                n.hasOwnProperty(r) && delete n[r];
                            } else e || i.delete(s);
                        }
                        return this;
                    },
                    getMix: function(t, e) {
                        var i = this.mixes, s = "string" == typeof t ? t : t.key, n = "string" == typeof e ? e : e.key, r = i.get(s);
                        return r && r.hasOwnProperty(n) ? r[n] : 0;
                    },
                    add: function(t, e) {
                        return this.anims.has(t) ? (console.warn("Animation key exists: " + t), this) : (e.key = t, this.anims.set(t, e), this.emit(a.ADD_ANIMATION, t, e), this);
                    },
                    exists: function(t) {
                        return this.anims.has(t);
                    },
                    createFromAseprite: function(t, e, i) {
                        var s = [], n = this.game.cache.json.get(t);
                        if (!n) return console.warn("No Aseprite data found for: " + t), s;
                        var r = this, o = u(n, "meta", null), a = u(n, "frames", null);
                        o && a && u(o, "frameTags", []).forEach(function(n) {
                            var o = [], h = l(n, "name", null), u = l(n, "from", 0), d = l(n, "to", 0), f = l(n, "direction", "forward");
                            if (h && (!e || e && e.indexOf(h) > -1)) {
                                for(var p = 0, v = u; v <= d; v++){
                                    var g = v.toString(), m = a[g];
                                    if (m) {
                                        var y = l(m, "duration", c.MAX_SAFE_INTEGER);
                                        o.push({
                                            key: t,
                                            frame: g,
                                            duration: y
                                        }), p += y;
                                    }
                                }
                                var x = p / o.length;
                                o.forEach(function(t) {
                                    t.duration -= x;
                                }), "reverse" === f && (o = o.reverse());
                                var T, w = {
                                    key: h,
                                    frames: o,
                                    duration: p,
                                    yoyo: "pingpong" === f
                                };
                                i ? i.anims && (T = i.anims.create(w)) : T = r.create(w), T && s.push(T);
                            }
                        });
                        return s;
                    },
                    create: function(t) {
                        var e = t.key, i = !1;
                        return e && ((i = this.get(e)) ? console.warn("AnimationManager key already exists: " + e) : (i = new s(this, e, t), this.anims.set(e, i), this.emit(a.ADD_ANIMATION, e, i))), i;
                    },
                    fromJSON: function(t, e) {
                        void 0 === e && (e = !1), e && this.anims.clear(), "string" == typeof t && (t = JSON.parse(t));
                        var i = [];
                        if (t.hasOwnProperty("anims") && Array.isArray(t.anims)) {
                            for(var s = 0; s < t.anims.length; s++)i.push(this.create(t.anims[s]));
                            t.hasOwnProperty("globalTimeScale") && (this.globalTimeScale = t.globalTimeScale);
                        } else t.hasOwnProperty("key") && "frame" === t.type && i.push(this.create(t));
                        return i;
                    },
                    generateFrameNames: function(t, e) {
                        var i = u(e, "prefix", ""), s = u(e, "start", 0), n = u(e, "end", 0), r = u(e, "suffix", ""), o = u(e, "zeroPad", 0), a = u(e, "outputArray", []), h = u(e, "frames", !1);
                        if (!this.textureManager.exists(t)) return console.warn('Texture "%s" not found', t), a;
                        var l, c = this.textureManager.get(t);
                        if (!c) return a;
                        if (e) for(h || (h = d(s, n)), l = 0; l < h.length; l++){
                            var p = i + f(h[l], o, "0", 1) + r;
                            c.has(p) ? a.push({
                                key: t,
                                frame: p
                            }) : console.warn('Frame "%s" not found in texture "%s"', p, t);
                        }
                        else for(h = c.getFrameNames(), l = 0; l < h.length; l++)a.push({
                            key: t,
                            frame: h[l]
                        });
                        return a;
                    },
                    generateFrameNumbers: function(t, e) {
                        var i = u(e, "start", 0), s = u(e, "end", -1), n = u(e, "first", !1), r = u(e, "outputArray", []), o = u(e, "frames", !1);
                        if (!this.textureManager.exists(t)) return console.warn('Texture "%s" not found', t), r;
                        var a = this.textureManager.get(t);
                        if (!a) return r;
                        n && a.has(n) && r.push({
                            key: t,
                            frame: n
                        }), o || (-1 === s && (s = a.frameTotal - 2), o = d(i, s));
                        for(var h = 0; h < o.length; h++){
                            var l = o[h];
                            a.has(l) ? r.push({
                                key: t,
                                frame: l
                            }) : console.warn('Frame "%s" not found in texture "%s"', l, t);
                        }
                        return r;
                    },
                    get: function(t) {
                        return this.anims.get(t);
                    },
                    getAnimsFromTexture: function(t) {
                        for(var e = this.textureManager.get(t).key, i = this.anims.getArray(), s = [], n = 0; n < i.length; n++)for(var r = i[n], o = r.frames, a = 0; a < o.length; a++)if (o[a].textureKey === e) {
                            s.push(r.key);
                            break;
                        }
                        return s;
                    },
                    pauseAll: function() {
                        return this.paused || (this.paused = !0, this.emit(a.PAUSE_ALL)), this;
                    },
                    play: function(t, e) {
                        Array.isArray(e) || (e = [
                            e
                        ]);
                        for(var i = 0; i < e.length; i++)e[i].anims.play(t);
                        return this;
                    },
                    staggerPlay: function(t, e, i, s) {
                        void 0 === i && (i = 0), void 0 === s && (s = !0), Array.isArray(e) || (e = [
                            e
                        ]);
                        var n = e.length;
                        s || n--;
                        for(var r = 0; r < e.length; r++){
                            var o = i < 0 ? Math.abs(i) * (n - r) : i * r;
                            e[r].anims.playAfterDelay(t, o);
                        }
                        return this;
                    },
                    remove: function(t) {
                        var e = this.get(t);
                        return e && (this.emit(a.REMOVE_ANIMATION, t, e), this.anims.delete(t), this.removeMix(t)), e;
                    },
                    resumeAll: function() {
                        return this.paused && (this.paused = !1, this.emit(a.RESUME_ALL)), this;
                    },
                    toJSON: function(t) {
                        var e = {
                            anims: [],
                            globalTimeScale: this.globalTimeScale
                        };
                        return void 0 !== t && "" !== t ? e.anims.push(this.anims.get(t).toJSON()) : this.anims.each(function(t, i) {
                            e.anims.push(i.toJSON());
                        }), e;
                    },
                    destroy: function() {
                        this.anims.clear(), this.mixes.clear(), this.textureManager = null, this.game = null;
                    }
                });
                t.exports = p;
            },
            16569: (t, e, i)=>{
                var s = i(56694), n = i(33885), r = i(72632), o = i(16938), a = i(85463), h = new s({
                    initialize: function(t) {
                        this.parent = t, this.animationManager = t.scene.sys.anims, this.animationManager.on(o.REMOVE_ANIMATION, this.globalRemove, this), this.textureManager = this.animationManager.textureManager, this.anims = null, this.isPlaying = !1, this.hasStarted = !1, this.currentAnim = null, this.currentFrame = null, this.nextAnim = null, this.nextAnimsQueue = [], this.timeScale = 1, this.frameRate = 0, this.duration = 0, this.msPerFrame = 0, this.skipMissedFrames = !0, this.delay = 0, this.repeat = 0, this.repeatDelay = 0, this.yoyo = !1, this.showBeforeDelay = !1, this.showOnStart = !1, this.hideOnComplete = !1, this.forward = !0, this.inReverse = !1, this.accumulator = 0, this.nextTick = 0, this.delayCounter = 0, this.repeatCounter = 0, this.pendingRepeat = !1, this._paused = !1, this._wasPlaying = !1, this._pendingStop = 0, this._pendingStopValue;
                    },
                    chain: function(t) {
                        var e = this.parent;
                        if (void 0 === t) return this.nextAnimsQueue.length = 0, this.nextAnim = null, e;
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var i = 0; i < t.length; i++){
                            var s = t[i];
                            this.nextAnim ? this.nextAnimsQueue.push(s) : this.nextAnim = s;
                        }
                        return this.parent;
                    },
                    getName: function() {
                        return this.currentAnim ? this.currentAnim.key : "";
                    },
                    getFrameName: function() {
                        return this.currentFrame ? this.currentFrame.textureFrame : "";
                    },
                    load: function(t) {
                        this.isPlaying && this.stop();
                        var e = this.animationManager, i = "string" == typeof t ? t : r(t, "key", null), s = this.exists(i) ? this.get(i) : e.get(i);
                        if (s) {
                            this.currentAnim = s;
                            var n = s.getTotalFrames(), o = r(t, "frameRate", s.frameRate), a = r(t, "duration", s.duration);
                            s.calculateDuration(this, n, a, o), this.delay = r(t, "delay", s.delay), this.repeat = r(t, "repeat", s.repeat), this.repeatDelay = r(t, "repeatDelay", s.repeatDelay), this.yoyo = r(t, "yoyo", s.yoyo), this.showBeforeDelay = r(t, "showBeforeDelay", s.showBeforeDelay), this.showOnStart = r(t, "showOnStart", s.showOnStart), this.hideOnComplete = r(t, "hideOnComplete", s.hideOnComplete), this.skipMissedFrames = r(t, "skipMissedFrames", s.skipMissedFrames), this.timeScale = r(t, "timeScale", this.timeScale);
                            var h = r(t, "startFrame", 0);
                            h > s.getTotalFrames() && (h = 0);
                            var l = s.frames[h];
                            0 !== h || this.forward || (l = s.getLastFrame()), this.currentFrame = l;
                        } else console.warn("Missing animation: " + i);
                        return this.parent;
                    },
                    pause: function(t) {
                        return this._paused || (this._paused = !0, this._wasPlaying = this.isPlaying, this.isPlaying = !1), void 0 !== t && this.setCurrentFrame(t), this.parent;
                    },
                    resume: function(t) {
                        return this._paused && (this._paused = !1, this.isPlaying = this._wasPlaying), void 0 !== t && this.setCurrentFrame(t), this.parent;
                    },
                    playAfterDelay: function(t, e) {
                        if (this.isPlaying) {
                            var i = this.nextAnim, s = this.nextAnimsQueue;
                            i && s.unshift(i), this.nextAnim = t, this._pendingStop = 1, this._pendingStopValue = e;
                        } else this.delayCounter = e, this.play(t, !0);
                        return this.parent;
                    },
                    playAfterRepeat: function(t, e) {
                        if (void 0 === e && (e = 1), this.isPlaying) {
                            var i = this.nextAnim, s = this.nextAnimsQueue;
                            i && s.unshift(i), -1 !== this.repeatCounter && e > this.repeatCounter && (e = this.repeatCounter), this.nextAnim = t, this._pendingStop = 2, this._pendingStopValue = e;
                        } else this.play(t);
                        return this.parent;
                    },
                    play: function(t, e) {
                        void 0 === e && (e = !1);
                        var i = this.currentAnim, s = this.parent, n = "string" == typeof t ? t : t.key;
                        if (e && this.isPlaying && i.key === n) return s;
                        if (i && this.isPlaying) {
                            var r = this.animationManager.getMix(i.key, t);
                            if (r > 0) return this.playAfterDelay(t, r);
                        }
                        return this.forward = !0, this.inReverse = !1, this._paused = !1, this._wasPlaying = !0, this.startAnimation(t);
                    },
                    playReverse: function(t, e) {
                        void 0 === e && (e = !1);
                        var i = "string" == typeof t ? t : t.key;
                        return e && this.isPlaying && this.currentAnim.key === i ? this.parent : (this.forward = !1, this.inReverse = !0, this._paused = !1, this._wasPlaying = !0, this.startAnimation(t));
                    },
                    startAnimation: function(t) {
                        this.load(t);
                        var e = this.currentAnim, i = this.parent;
                        return e ? (this.repeatCounter = -1 === this.repeat ? Number.MAX_VALUE : this.repeat, e.getFirstTick(this), this.isPlaying = !0, this.pendingRepeat = !1, this.hasStarted = !1, this._pendingStop = 0, this._pendingStopValue = 0, this._paused = !1, this.delayCounter += this.delay, 0 === this.delayCounter ? this.handleStart() : this.showBeforeDelay && this.setCurrentFrame(this.currentFrame), i) : i;
                    },
                    handleStart: function() {
                        this.showOnStart && this.parent.setVisible(!0), this.setCurrentFrame(this.currentFrame), this.hasStarted = !0, this.emitEvents(o.ANIMATION_START);
                    },
                    handleRepeat: function() {
                        this.pendingRepeat = !1, this.emitEvents(o.ANIMATION_REPEAT);
                    },
                    handleStop: function() {
                        this._pendingStop = 0, this.isPlaying = !1, this.emitEvents(o.ANIMATION_STOP);
                    },
                    handleComplete: function() {
                        this._pendingStop = 0, this.isPlaying = !1, this.hideOnComplete && this.parent.setVisible(!1), this.emitEvents(o.ANIMATION_COMPLETE, o.ANIMATION_COMPLETE_KEY);
                    },
                    emitEvents: function(t, e) {
                        var i = this.currentAnim;
                        if (i) {
                            var s = this.currentFrame, n = this.parent, r = s.textureFrame;
                            n.emit(t, i, s, n, r), e && n.emit(e + i.key, i, s, n, r);
                        }
                    },
                    reverse: function() {
                        return this.isPlaying && (this.inReverse = !this.inReverse, this.forward = !this.forward), this.parent;
                    },
                    getProgress: function() {
                        var t = this.currentFrame;
                        if (!t) return 0;
                        var e = t.progress;
                        return this.inReverse && (e *= -1), e;
                    },
                    setProgress: function(t) {
                        return this.forward || (t = 1 - t), this.setCurrentFrame(this.currentAnim.getFrameByProgress(t)), this.parent;
                    },
                    setRepeat: function(t) {
                        return this.repeatCounter = -1 === t ? Number.MAX_VALUE : t, this.parent;
                    },
                    globalRemove: function(t, e) {
                        void 0 === e && (e = this.currentAnim), this.isPlaying && e.key === this.currentAnim.key && (this.stop(), this.setCurrentFrame(this.currentAnim.frames[0]));
                    },
                    restart: function(t, e) {
                        void 0 === t && (t = !1), void 0 === e && (e = !1);
                        var i = this.currentAnim, s = this.parent;
                        return i ? (e && (this.repeatCounter = -1 === this.repeat ? Number.MAX_VALUE : this.repeat), i.getFirstTick(this), this.emitEvents(o.ANIMATION_RESTART), this.isPlaying = !0, this.pendingRepeat = !1, this.hasStarted = !t, this._pendingStop = 0, this._pendingStopValue = 0, this._paused = !1, this.setCurrentFrame(i.frames[0]), this.parent) : s;
                    },
                    complete: function() {
                        if (this._pendingStop = 0, this.isPlaying = !1, this.currentAnim && this.handleComplete(), this.nextAnim) {
                            var t = this.nextAnim;
                            this.nextAnim = this.nextAnimsQueue.length > 0 ? this.nextAnimsQueue.shift() : null, this.play(t);
                        }
                        return this.parent;
                    },
                    stop: function() {
                        if (this._pendingStop = 0, this.isPlaying = !1, this.delayCounter = 0, this.currentAnim && this.handleStop(), this.nextAnim) {
                            var t = this.nextAnim;
                            this.nextAnim = this.nextAnimsQueue.shift(), this.play(t);
                        }
                        return this.parent;
                    },
                    stopAfterDelay: function(t) {
                        return this._pendingStop = 1, this._pendingStopValue = t, this.parent;
                    },
                    stopAfterRepeat: function(t) {
                        return void 0 === t && (t = 1), -1 !== this.repeatCounter && t > this.repeatCounter && (t = this.repeatCounter), this._pendingStop = 2, this._pendingStopValue = t, this.parent;
                    },
                    stopOnFrame: function(t) {
                        return this._pendingStop = 3, this._pendingStopValue = t, this.parent;
                    },
                    getTotalFrames: function() {
                        return this.currentAnim ? this.currentAnim.getTotalFrames() : 0;
                    },
                    update: function(t, e) {
                        var i = this.currentAnim;
                        if (this.isPlaying && i && !i.paused) {
                            if (this.accumulator += e * this.timeScale, 1 === this._pendingStop && (this._pendingStopValue -= e, this._pendingStopValue <= 0)) return this.stop();
                            if (this.hasStarted) {
                                if (this.accumulator >= this.nextTick && (this.forward ? i.nextFrame(this) : i.previousFrame(this), this.isPlaying && 0 === this._pendingStop && this.skipMissedFrames && this.accumulator > this.nextTick)) {
                                    var s = 0;
                                    do this.forward ? i.nextFrame(this) : i.previousFrame(this), s++;
                                    while (this.isPlaying && this.accumulator > this.nextTick && s < 60);
                                }
                            } else this.accumulator >= this.delayCounter && (this.accumulator -= this.delayCounter, this.handleStart());
                        }
                    },
                    setCurrentFrame: function(t) {
                        var e = this.parent;
                        return this.currentFrame = t, e.texture = t.frame.texture, e.frame = t.frame, e.isCropped && e.frame.updateCropUVs(e._crop, e.flipX, e.flipY), t.setAlpha && (e.alpha = t.alpha), e.setSizeToFrame(), e._originComponent && (t.frame.customPivot ? e.setOrigin(t.frame.pivotX, t.frame.pivotY) : e.updateDisplayOrigin()), this.isPlaying && this.hasStarted && (this.emitEvents(o.ANIMATION_UPDATE), 3 === this._pendingStop && this._pendingStopValue === t && this.stop()), e;
                    },
                    nextFrame: function() {
                        return this.currentAnim && this.currentAnim.nextFrame(this), this.parent;
                    },
                    previousFrame: function() {
                        return this.currentAnim && this.currentAnim.previousFrame(this), this.parent;
                    },
                    get: function(t) {
                        return this.anims ? this.anims.get(t) : null;
                    },
                    exists: function(t) {
                        return !!this.anims && this.anims.has(t);
                    },
                    create: function(t) {
                        var e = t.key, i = !1;
                        return e && ((i = this.get(e)) ? console.warn("Animation key already exists: " + e) : (i = new a(this, e, t), this.anims || (this.anims = new n), this.anims.set(e, i))), i;
                    },
                    createFromAseprite: function(t, e) {
                        return this.animationManager.createFromAseprite(t, e, this.parent);
                    },
                    generateFrameNames: function(t, e) {
                        return this.animationManager.generateFrameNames(t, e);
                    },
                    generateFrameNumbers: function(t, e) {
                        return this.animationManager.generateFrameNumbers(t, e);
                    },
                    remove: function(t) {
                        var e = this.get(t);
                        return e && (this.currentAnim === e && this.stop(), this.anims.delete(t)), e;
                    },
                    destroy: function() {
                        this.animationManager.off(o.REMOVE_ANIMATION, this.globalRemove, this), this.anims && this.anims.clear(), this.animationManager = null, this.parent = null, this.nextAnim = null, this.nextAnimsQueue.length = 0, this.currentAnim = null, this.currentFrame = null;
                    },
                    isPaused: {
                        get: function() {
                            return this._paused;
                        }
                    }
                });
                t.exports = h;
            },
            44509: (t)=>{
                t.exports = "add";
            },
            84563: (t)=>{
                t.exports = "animationcomplete";
            },
            61586: (t)=>{
                t.exports = "animationcomplete-";
            },
            72175: (t)=>{
                t.exports = "animationrepeat";
            },
            568: (t)=>{
                t.exports = "animationrestart";
            },
            37690: (t)=>{
                t.exports = "animationstart";
            },
            58525: (t)=>{
                t.exports = "animationstop";
            },
            5243: (t)=>{
                t.exports = "animationupdate";
            },
            10598: (t)=>{
                t.exports = "pauseall";
            },
            4860: (t)=>{
                t.exports = "remove";
            },
            31865: (t)=>{
                t.exports = "resumeall";
            },
            16938: (t, e, i)=>{
                t.exports = {
                    ADD_ANIMATION: i(44509),
                    ANIMATION_COMPLETE: i(84563),
                    ANIMATION_COMPLETE_KEY: i(61586),
                    ANIMATION_REPEAT: i(72175),
                    ANIMATION_RESTART: i(568),
                    ANIMATION_START: i(37690),
                    ANIMATION_STOP: i(58525),
                    ANIMATION_UPDATE: i(5243),
                    PAUSE_ALL: i(10598),
                    REMOVE_ANIMATION: i(4860),
                    RESUME_ALL: i(31865)
                };
            },
            13517: (t, e, i)=>{
                t.exports = {
                    Animation: i(85463),
                    AnimationFrame: i(71519),
                    AnimationManager: i(90249),
                    AnimationState: i(16569),
                    Events: i(16938)
                };
            },
            23740: (t, e, i)=>{
                var s = i(56694), n = i(33885), r = i(6659), o = i(69773), a = new s({
                    initialize: function() {
                        this.entries = new n, this.events = new r;
                    },
                    add: function(t, e) {
                        return this.entries.set(t, e), this.events.emit(o.ADD, this, t, e), this;
                    },
                    has: function(t) {
                        return this.entries.has(t);
                    },
                    exists: function(t) {
                        return this.entries.has(t);
                    },
                    get: function(t) {
                        return this.entries.get(t);
                    },
                    remove: function(t) {
                        var e = this.get(t);
                        return e && (this.entries.delete(t), this.events.emit(o.REMOVE, this, t, e.data)), this;
                    },
                    getKeys: function() {
                        return this.entries.keys();
                    },
                    destroy: function() {
                        this.entries.clear(), this.events.removeAllListeners(), this.entries = null, this.events = null;
                    }
                });
                t.exports = a;
            },
            43474: (t, e, i)=>{
                var s = i(23740), n = i(56694), r = i(97081), o = new n({
                    initialize: function(t) {
                        this.game = t, this.binary = new s, this.bitmapFont = new s, this.json = new s, this.physics = new s, this.shader = new s, this.audio = new s, this.video = new s, this.text = new s, this.html = new s, this.obj = new s, this.tilemap = new s, this.xml = new s, this.custom = {}, this.game.events.once(r.DESTROY, this.destroy, this);
                    },
                    addCustom: function(t) {
                        return this.custom.hasOwnProperty(t) || (this.custom[t] = new s), this.custom[t];
                    },
                    destroy: function() {
                        for(var t = [
                            "binary",
                            "bitmapFont",
                            "json",
                            "physics",
                            "shader",
                            "audio",
                            "video",
                            "text",
                            "html",
                            "obj",
                            "tilemap",
                            "xml"
                        ], e = 0; e < t.length; e++)this[t[e]].destroy(), this[t[e]] = null;
                        for(var i in this.custom)this.custom[i].destroy();
                        this.custom = null, this.game = null;
                    }
                });
                t.exports = o;
            },
            94762: (t)=>{
                t.exports = "add";
            },
            75968: (t)=>{
                t.exports = "remove";
            },
            69773: (t, e, i)=>{
                t.exports = {
                    ADD: i(94762),
                    REMOVE: i(75968)
                };
            },
            45820: (t, e, i)=>{
                t.exports = {
                    BaseCache: i(23740),
                    CacheManager: i(43474),
                    Events: i(69773)
                };
            },
            51052: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(75606), o = i(6659), a = i(89787), h = i(74118), l = i(69360), u = i(93222), c = i(93736), d = new s({
                    Extends: o,
                    Mixins: [
                        n.AlphaSingle,
                        n.Visible
                    ],
                    initialize: function(t, e, i, s) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 0), o.call(this), this.scene, this.sceneManager, this.scaleManager, this.cameraManager, this.id = 0, this.name = "", this.roundPixels = !1, this.useBounds = !1, this.worldView = new h, this.dirty = !0, this._x = t, this._y = e, this._width = i, this._height = s, this._bounds = new h, this._scrollX = 0, this._scrollY = 0, this._zoomX = 1, this._zoomY = 1, this._rotation = 0, this.matrix = new l, this.transparent = !0, this.backgroundColor = u("rgba(0,0,0,0)"), this.disableCull = !1, this.culledObjects = [], this.midPoint = new c(i / 2, s / 2), this.originX = .5, this.originY = .5, this._customViewport = !1, this.mask = null, this._maskCamera = null, this.renderList = [], this.isSceneCamera = !0;
                    },
                    addToRenderList: function(t) {
                        this.renderList.push(t);
                    },
                    setOrigin: function(t, e) {
                        return void 0 === t && (t = .5), void 0 === e && (e = t), this.originX = t, this.originY = e, this;
                    },
                    getScroll: function(t, e, i) {
                        void 0 === i && (i = new c);
                        var s = .5 * this.width, n = .5 * this.height;
                        return i.x = t - s, i.y = e - n, this.useBounds && (i.x = this.clampX(i.x), i.y = this.clampY(i.y)), i;
                    },
                    centerOnX: function(t) {
                        var e = .5 * this.width;
                        return this.midPoint.x = t, this.scrollX = t - e, this.useBounds && (this.scrollX = this.clampX(this.scrollX)), this;
                    },
                    centerOnY: function(t) {
                        var e = .5 * this.height;
                        return this.midPoint.y = t, this.scrollY = t - e, this.useBounds && (this.scrollY = this.clampY(this.scrollY)), this;
                    },
                    centerOn: function(t, e) {
                        return this.centerOnX(t), this.centerOnY(e), this;
                    },
                    centerToBounds: function() {
                        if (this.useBounds) {
                            var t = this._bounds, e = .5 * this.width, i = .5 * this.height;
                            this.midPoint.set(t.centerX, t.centerY), this.scrollX = t.centerX - e, this.scrollY = t.centerY - i;
                        }
                        return this;
                    },
                    centerToSize: function() {
                        return this.scrollX = .5 * this.width, this.scrollY = .5 * this.height, this;
                    },
                    cull: function(t) {
                        if (this.disableCull) return t;
                        var e = this.matrix.matrix, i = e[0], s = e[1], n = e[2], r = e[3], o = i * r - s * n;
                        if (!o) return t;
                        var a = e[4], h = e[5], l = this.scrollX, u = this.scrollY, c = this.width, d = this.height, f = this.y, p = f + d, v = this.x, g = v + c, m = this.culledObjects, y = t.length;
                        o = 1 / o, m.length = 0;
                        for(var x = 0; x < y; ++x){
                            var T = t[x];
                            if (T.hasOwnProperty("width") && !T.parentContainer) {
                                var w = T.width, b = T.height, S = T.x - l * T.scrollFactorX - w * T.originX, E = T.y - u * T.scrollFactorY - b * T.originY;
                                (S + w) * i + (E + b) * n + a > v && S * i + E * n + a < g && (S + w) * s + (E + b) * r + h > f && S * s + E * r + h < p && m.push(T);
                            } else m.push(T);
                        }
                        return m;
                    },
                    getWorldPoint: function(t, e, i) {
                        void 0 === i && (i = new c);
                        var s = this.matrix.matrix, n = s[0], r = s[1], o = s[2], a = s[3], h = s[4], l = s[5], u = n * a - r * o;
                        if (!u) return i.x = t, i.y = e, i;
                        var d = a * (u = 1 / u), f = -r * u, p = -o * u, v = n * u, g = (o * l - a * h) * u, m = (r * h - n * l) * u, y = Math.cos(this.rotation), x = Math.sin(this.rotation), T = this.zoomX, w = this.zoomY, b = this.scrollX, S = this.scrollY, E = t + (b * y - S * x) * T, A = e + (b * x + S * y) * w;
                        return i.x = E * d + A * p + g, i.y = E * f + A * v + m, i;
                    },
                    ignore: function(t) {
                        var e = this.id;
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var i = 0; i < t.length; i++){
                            var s = t[i];
                            Array.isArray(s) ? this.ignore(s) : s.isParent ? this.ignore(s.getChildren()) : s.cameraFilter |= e;
                        }
                        return this;
                    },
                    preRender: function() {
                        this.renderList.length = 0;
                        var t = this.width, e = this.height, i = .5 * t, s = .5 * e, n = this.zoomX, r = this.zoomY, o = this.matrix, a = t * this.originX, h = e * this.originY, l = this.scrollX, u = this.scrollY;
                        this.useBounds && (l = this.clampX(l), u = this.clampY(u)), this.roundPixels && (a = Math.round(a), h = Math.round(h)), this.scrollX = l, this.scrollY = u;
                        var c = l + i, d = u + s;
                        this.midPoint.set(c, d);
                        var f = t / n, p = e / r;
                        this.worldView.setTo(c - f / 2, d - p / 2, f, p), o.applyITRS(this.x + a, this.y + h, this.rotation, n, r), o.translate(-a, -h);
                    },
                    clampX: function(t) {
                        var e = this._bounds, i = this.displayWidth, s = e.x + (i - this.width) / 2, n = Math.max(s, s + e.width - i);
                        return t < s ? t = s : t > n && (t = n), t;
                    },
                    clampY: function(t) {
                        var e = this._bounds, i = this.displayHeight, s = e.y + (i - this.height) / 2, n = Math.max(s, s + e.height - i);
                        return t < s ? t = s : t > n && (t = n), t;
                    },
                    removeBounds: function() {
                        return this.useBounds = !1, this.dirty = !0, this._bounds.setEmpty(), this;
                    },
                    setAngle: function(t) {
                        return void 0 === t && (t = 0), this.rotation = r(t), this;
                    },
                    setBackgroundColor: function(t) {
                        return void 0 === t && (t = "rgba(0,0,0,0)"), this.backgroundColor = u(t), this.transparent = 0 === this.backgroundColor.alpha, this;
                    },
                    setBounds: function(t, e, i, s, n) {
                        return void 0 === n && (n = !1), this._bounds.setTo(t, e, i, s), this.dirty = !0, this.useBounds = !0, n ? this.centerToBounds() : (this.scrollX = this.clampX(this.scrollX), this.scrollY = this.clampY(this.scrollY)), this;
                    },
                    getBounds: function(t) {
                        void 0 === t && (t = new h);
                        var e = this._bounds;
                        return t.setTo(e.x, e.y, e.width, e.height), t;
                    },
                    setName: function(t) {
                        return void 0 === t && (t = ""), this.name = t, this;
                    },
                    setPosition: function(t, e) {
                        return void 0 === e && (e = t), this.x = t, this.y = e, this;
                    },
                    setRotation: function(t) {
                        return void 0 === t && (t = 0), this.rotation = t, this;
                    },
                    setRoundPixels: function(t) {
                        return this.roundPixels = t, this;
                    },
                    setScene: function(t, e) {
                        void 0 === e && (e = !0), this.scene && this._customViewport && this.sceneManager.customViewports--, this.scene = t, this.isSceneCamera = e;
                        var i = t.sys;
                        return this.sceneManager = i.game.scene, this.scaleManager = i.scale, this.cameraManager = i.cameras, this.updateSystem(), this;
                    },
                    setScroll: function(t, e) {
                        return void 0 === e && (e = t), this.scrollX = t, this.scrollY = e, this;
                    },
                    setSize: function(t, e) {
                        return void 0 === e && (e = t), this.width = t, this.height = e, this;
                    },
                    setViewport: function(t, e, i, s) {
                        return this.x = t, this.y = e, this.width = i, this.height = s, this;
                    },
                    setZoom: function(t, e) {
                        return void 0 === t && (t = 1), void 0 === e && (e = t), 0 === t && (t = .001), 0 === e && (e = .001), this.zoomX = t, this.zoomY = e, this;
                    },
                    setMask: function(t, e) {
                        return void 0 === e && (e = !0), this.mask = t, this._maskCamera = e ? this.cameraManager.default : this, this;
                    },
                    clearMask: function(t) {
                        return void 0 === t && (t = !1), t && this.mask && this.mask.destroy(), this.mask = null, this;
                    },
                    toJSON: function() {
                        var t = {
                            name: this.name,
                            x: this.x,
                            y: this.y,
                            width: this.width,
                            height: this.height,
                            zoom: this.zoom,
                            rotation: this.rotation,
                            roundPixels: this.roundPixels,
                            scrollX: this.scrollX,
                            scrollY: this.scrollY,
                            backgroundColor: this.backgroundColor.rgba
                        };
                        return this.useBounds && (t.bounds = {
                            x: this._bounds.x,
                            y: this._bounds.y,
                            width: this._bounds.width,
                            height: this._bounds.height
                        }), t;
                    },
                    update: function() {},
                    setIsSceneCamera: function(t) {
                        return this.isSceneCamera = t, this;
                    },
                    updateSystem: function() {
                        if (this.scaleManager && this.isSceneCamera) {
                            var t = 0 !== this._x || 0 !== this._y || this.scaleManager.width !== this._width || this.scaleManager.height !== this._height, e = this.sceneManager;
                            t && !this._customViewport ? e.customViewports++ : !t && this._customViewport && e.customViewports--, this.dirty = !0, this._customViewport = t;
                        }
                    },
                    destroy: function() {
                        this.emit(a.DESTROY, this), this.removeAllListeners(), this.matrix.destroy(), this.culledObjects = [], this._customViewport && this.sceneManager.customViewports--, this.renderList = [], this._bounds = null, this.scene = null, this.scaleManager = null, this.sceneManager = null, this.cameraManager = null;
                    },
                    x: {
                        get: function() {
                            return this._x;
                        },
                        set: function(t) {
                            this._x = t, this.updateSystem();
                        }
                    },
                    y: {
                        get: function() {
                            return this._y;
                        },
                        set: function(t) {
                            this._y = t, this.updateSystem();
                        }
                    },
                    width: {
                        get: function() {
                            return this._width;
                        },
                        set: function(t) {
                            this._width = t, this.updateSystem();
                        }
                    },
                    height: {
                        get: function() {
                            return this._height;
                        },
                        set: function(t) {
                            this._height = t, this.updateSystem();
                        }
                    },
                    scrollX: {
                        get: function() {
                            return this._scrollX;
                        },
                        set: function(t) {
                            t !== this._scrollX && (this._scrollX = t, this.dirty = !0);
                        }
                    },
                    scrollY: {
                        get: function() {
                            return this._scrollY;
                        },
                        set: function(t) {
                            t !== this._scrollY && (this._scrollY = t, this.dirty = !0);
                        }
                    },
                    zoom: {
                        get: function() {
                            return (this._zoomX + this._zoomY) / 2;
                        },
                        set: function(t) {
                            this._zoomX = t, this._zoomY = t, this.dirty = !0;
                        }
                    },
                    zoomX: {
                        get: function() {
                            return this._zoomX;
                        },
                        set: function(t) {
                            this._zoomX = t, this.dirty = !0;
                        }
                    },
                    zoomY: {
                        get: function() {
                            return this._zoomY;
                        },
                        set: function(t) {
                            this._zoomY = t, this.dirty = !0;
                        }
                    },
                    rotation: {
                        get: function() {
                            return this._rotation;
                        },
                        set: function(t) {
                            this._rotation = t, this.dirty = !0;
                        }
                    },
                    centerX: {
                        get: function() {
                            return this.x + .5 * this.width;
                        }
                    },
                    centerY: {
                        get: function() {
                            return this.y + .5 * this.height;
                        }
                    },
                    displayWidth: {
                        get: function() {
                            return this.width / this.zoomX;
                        }
                    },
                    displayHeight: {
                        get: function() {
                            return this.height / this.zoomY;
                        }
                    }
                });
                t.exports = d;
            },
            47751: (t, e, i)=>{
                var s = i(51052), n = i(79993), r = i(82897), o = i(56694), a = i(64937), h = i(53030), l = i(89787), u = i(42798), c = i(74118), d = i(93736), f = new o({
                    Extends: s,
                    Mixins: [
                        a.PostPipeline
                    ],
                    initialize: function(t, e, i, n) {
                        s.call(this, t, e, i, n), this.initPostPipeline(), this.inputEnabled = !0, this.fadeEffect = new h.Fade(this), this.flashEffect = new h.Flash(this), this.shakeEffect = new h.Shake(this), this.panEffect = new h.Pan(this), this.rotateToEffect = new h.RotateTo(this), this.zoomEffect = new h.Zoom(this), this.lerp = new d(1, 1), this.followOffset = new d, this.deadzone = null, this._follow = null;
                    },
                    setDeadzone: function(t, e) {
                        if (void 0 === t) this.deadzone = null;
                        else {
                            if (this.deadzone ? (this.deadzone.width = t, this.deadzone.height = e) : this.deadzone = new c(0, 0, t, e), this._follow) {
                                var i = this.width / 2, s = this.height / 2, r = this._follow.x - this.followOffset.x, o = this._follow.y - this.followOffset.y;
                                this.midPoint.set(r, o), this.scrollX = r - i, this.scrollY = o - s;
                            }
                            n(this.deadzone, this.midPoint.x, this.midPoint.y);
                        }
                        return this;
                    },
                    fadeIn: function(t, e, i, s, n, r) {
                        return this.fadeEffect.start(!1, t, e, i, s, !0, n, r);
                    },
                    fadeOut: function(t, e, i, s, n, r) {
                        return this.fadeEffect.start(!0, t, e, i, s, !0, n, r);
                    },
                    fadeFrom: function(t, e, i, s, n, r, o) {
                        return this.fadeEffect.start(!1, t, e, i, s, n, r, o);
                    },
                    fade: function(t, e, i, s, n, r, o) {
                        return this.fadeEffect.start(!0, t, e, i, s, n, r, o);
                    },
                    flash: function(t, e, i, s, n, r, o) {
                        return this.flashEffect.start(t, e, i, s, n, r, o);
                    },
                    shake: function(t, e, i, s, n) {
                        return this.shakeEffect.start(t, e, i, s, n);
                    },
                    pan: function(t, e, i, s, n, r, o) {
                        return this.panEffect.start(t, e, i, s, n, r, o);
                    },
                    rotateTo: function(t, e, i, s, n, r, o) {
                        return this.rotateToEffect.start(t, e, i, s, n, r, o);
                    },
                    zoomTo: function(t, e, i, s, n, r) {
                        return this.zoomEffect.start(t, e, i, s, n, r);
                    },
                    preRender: function() {
                        this.renderList.length = 0;
                        var t = this.width, e = this.height, i = .5 * t, s = .5 * e, r = this.zoom, o = this.matrix, a = t * this.originX, h = e * this.originY, c = this._follow, d = this.deadzone, f = this.scrollX, p = this.scrollY;
                        d && n(d, this.midPoint.x, this.midPoint.y);
                        var v = !1;
                        if (this.roundPixels && (a = Math.floor(a), h = Math.floor(h)), c && !this.panEffect.isRunning) {
                            var g = this.lerp, m = c.x - this.followOffset.x, y = c.y - this.followOffset.y;
                            this.roundPixels && (m = Math.floor(m), y = Math.floor(y)), d ? (m < d.x ? f = u(f, f - (d.x - m), g.x) : m > d.right && (f = u(f, f + (m - d.right), g.x)), y < d.y ? p = u(p, p - (d.y - y), g.y) : y > d.bottom && (p = u(p, p + (y - d.bottom), g.y))) : (f = u(f, m - a, g.x), p = u(p, y - h, g.y)), v = !0;
                        }
                        this.useBounds && (f = this.clampX(f), p = this.clampY(p)), this.roundPixels && (f = Math.floor(f), p = Math.floor(p)), this.scrollX = f, this.scrollY = p;
                        var x = f + i, T = p + s;
                        this.midPoint.set(x, T);
                        var w = t / r, b = e / r, S = x - w / 2, E = T - b / 2;
                        this.roundPixels && (S = Math.floor(S), E = Math.floor(E)), this.worldView.setTo(S, E, w, b), o.applyITRS(Math.floor(this.x + a), Math.floor(this.y + h), this.rotation, r, r), o.translate(-a, -h), this.shakeEffect.preRender(), v && this.emit(l.FOLLOW_UPDATE, this, c);
                    },
                    setLerp: function(t, e) {
                        return void 0 === t && (t = 1), void 0 === e && (e = t), this.lerp.set(t, e), this;
                    },
                    setFollowOffset: function(t, e) {
                        return void 0 === t && (t = 0), void 0 === e && (e = 0), this.followOffset.set(t, e), this;
                    },
                    startFollow: function(t, e, i, s, n, o) {
                        void 0 === e && (e = !1), void 0 === i && (i = 1), void 0 === s && (s = i), void 0 === n && (n = 0), void 0 === o && (o = n), this._follow = t, this.roundPixels = e, i = r(i, 0, 1), s = r(s, 0, 1), this.lerp.set(i, s), this.followOffset.set(n, o);
                        var a = this.width / 2, h = this.height / 2, l = t.x - n, u = t.y - o;
                        return this.midPoint.set(l, u), this.scrollX = l - a, this.scrollY = u - h, this.useBounds && (this.scrollX = this.clampX(this.scrollX), this.scrollY = this.clampY(this.scrollY)), this;
                    },
                    stopFollow: function() {
                        return this._follow = null, this;
                    },
                    resetFX: function() {
                        return this.rotateToEffect.reset(), this.panEffect.reset(), this.shakeEffect.reset(), this.flashEffect.reset(), this.fadeEffect.reset(), this;
                    },
                    update: function(t, e) {
                        this.visible && (this.rotateToEffect.update(t, e), this.panEffect.update(t, e), this.zoomEffect.update(t, e), this.shakeEffect.update(t, e), this.flashEffect.update(t, e), this.fadeEffect.update(t, e));
                    },
                    destroy: function() {
                        this.resetFX(), s.prototype.destroy.call(this), this._follow = null, this.deadzone = null;
                    }
                });
                t.exports = f;
            },
            62382: (t, e, i)=>{
                var s = i(47751), n = i(56694), r = i(72632), o = i(91963), a = i(94287), h = i(40444), l = i(7599), u = new n({
                    initialize: function(t) {
                        this.scene = t, this.systems = t.sys, this.roundPixels = t.sys.game.config.roundPixels, this.cameras = [], this.main, this.default, t.sys.events.once(l.BOOT, this.boot, this), t.sys.events.on(l.START, this.start, this);
                    },
                    boot: function() {
                        var t = this.systems;
                        t.settings.cameras ? this.fromJSON(t.settings.cameras) : this.add(), this.main = this.cameras[0], this.default = new s(0, 0, t.scale.width, t.scale.height).setScene(this.scene), t.game.scale.on(h.RESIZE, this.onResize, this), this.systems.events.once(l.DESTROY, this.destroy, this);
                    },
                    start: function() {
                        if (!this.main) {
                            var t = this.systems;
                            t.settings.cameras ? this.fromJSON(t.settings.cameras) : this.add(), this.main = this.cameras[0];
                        }
                        var e = this.systems.events;
                        e.on(l.UPDATE, this.update, this), e.once(l.SHUTDOWN, this.shutdown, this);
                    },
                    add: function(t, e, i, n, r, o) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = this.scene.sys.scale.width), void 0 === n && (n = this.scene.sys.scale.height), void 0 === r && (r = !1), void 0 === o && (o = "");
                        var a = new s(t, e, i, n);
                        return a.setName(o), a.setScene(this.scene), a.setRoundPixels(this.roundPixels), a.id = this.getNextID(), this.cameras.push(a), r && (this.main = a), a;
                    },
                    addExisting: function(t, e) {
                        return void 0 === e && (e = !1), -1 === this.cameras.indexOf(t) ? (t.id = this.getNextID(), t.setRoundPixels(this.roundPixels), this.cameras.push(t), e && (this.main = t), t) : null;
                    },
                    getNextID: function() {
                        for(var t = this.cameras, e = 1, i = 0; i < 32; i++){
                            for(var s = !1, n = 0; n < t.length; n++){
                                var r = t[n];
                                r && r.id === e && (s = !0);
                            }
                            if (!s) return e;
                            e <<= 1;
                        }
                        return 0;
                    },
                    getTotal: function(t) {
                        void 0 === t && (t = !1);
                        for(var e = 0, i = this.cameras, s = 0; s < i.length; s++){
                            var n = i[s];
                            (!t || t && n.visible) && e++;
                        }
                        return e;
                    },
                    fromJSON: function(t) {
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var e = this.scene.sys.scale.width, i = this.scene.sys.scale.height, s = 0; s < t.length; s++){
                            var n = t[s], o = r(n, "x", 0), a = r(n, "y", 0), h = r(n, "width", e), l = r(n, "height", i), u = this.add(o, a, h, l);
                            u.name = r(n, "name", ""), u.zoom = r(n, "zoom", 1), u.rotation = r(n, "rotation", 0), u.scrollX = r(n, "scrollX", 0), u.scrollY = r(n, "scrollY", 0), u.roundPixels = r(n, "roundPixels", !1), u.visible = r(n, "visible", !0);
                            var c = r(n, "backgroundColor", !1);
                            c && u.setBackgroundColor(c);
                            var d = r(n, "bounds", null);
                            if (d) {
                                var f = r(d, "x", 0), p = r(d, "y", 0), v = r(d, "width", e), g = r(d, "height", i);
                                u.setBounds(f, p, v, g);
                            }
                        }
                        return this;
                    },
                    getCamera: function(t) {
                        for(var e = this.cameras, i = 0; i < e.length; i++)if (e[i].name === t) return e[i];
                        return null;
                    },
                    getCamerasBelowPointer: function(t) {
                        for(var e = this.cameras, i = t.x, s = t.y, n = [], r = 0; r < e.length; r++){
                            var o = e[r];
                            o.visible && o.inputEnabled && a(o, i, s) && n.unshift(o);
                        }
                        return n;
                    },
                    remove: function(t, e) {
                        void 0 === e && (e = !0), Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var i = 0, s = this.cameras, n = 0; n < t.length; n++){
                            var r = s.indexOf(t[n]);
                            -1 !== r && (e ? s[r].destroy() : s[r].renderList = [], s.splice(r, 1), i++);
                        }
                        return !this.main && s[0] && (this.main = s[0]), i;
                    },
                    render: function(t, e) {
                        for(var i = this.scene, s = this.cameras, n = 0; n < s.length; n++){
                            var r = s[n];
                            if (r.visible && r.alpha > 0) {
                                r.preRender();
                                var o = this.getVisibleChildren(e.getChildren(), r);
                                t.render(i, o, r);
                            }
                        }
                    },
                    getVisibleChildren: function(t, e) {
                        return t.filter(function(t) {
                            return t.willRender(e);
                        });
                    },
                    resetAll: function() {
                        for(var t = 0; t < this.cameras.length; t++)this.cameras[t].destroy();
                        return this.cameras = [], this.main = this.add(), this.main;
                    },
                    update: function(t, e) {
                        for(var i = 0; i < this.cameras.length; i++)this.cameras[i].update(t, e);
                    },
                    onResize: function(t, e, i, s, n) {
                        for(var r = 0; r < this.cameras.length; r++){
                            var o = this.cameras[r];
                            0 === o._x && 0 === o._y && o._width === s && o._height === n && o.setSize(e.width, e.height);
                        }
                    },
                    resize: function(t, e) {
                        for(var i = 0; i < this.cameras.length; i++)this.cameras[i].setSize(t, e);
                    },
                    shutdown: function() {
                        this.main = void 0;
                        for(var t = 0; t < this.cameras.length; t++)this.cameras[t].destroy();
                        this.cameras = [];
                        var e = this.systems.events;
                        e.off(l.UPDATE, this.update, this), e.off(l.SHUTDOWN, this.shutdown, this);
                    },
                    destroy: function() {
                        this.shutdown(), this.default.destroy(), this.systems.events.off(l.START, this.start, this), this.systems.events.off(l.DESTROY, this.destroy, this), this.systems.game.scale.off(h.RESIZE, this.onResize, this), this.scene = null, this.systems = null;
                    }
                });
                o.register("CameraManager", u, "cameras"), t.exports = u;
            },
            92522: (t, e, i)=>{
                var s = i(82897), n = i(56694), r = i(89787), o = new n({
                    initialize: function(t) {
                        this.camera = t, this.isRunning = !1, this.isComplete = !1, this.direction = !0, this.duration = 0, this.red = 0, this.green = 0, this.blue = 0, this.alpha = 0, this.progress = 0, this._elapsed = 0, this._onUpdate, this._onUpdateScope;
                    },
                    start: function(t, e, i, s, n, o, a, h) {
                        if (void 0 === t && (t = !0), void 0 === e && (e = 1e3), void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === n && (n = 0), void 0 === o && (o = !1), void 0 === a && (a = null), void 0 === h && (h = this.camera.scene), !o && this.isRunning) return this.camera;
                        this.isRunning = !0, this.isComplete = !1, this.duration = e, this.direction = t, this.progress = 0, this.red = i, this.green = s, this.blue = n, this.alpha = t ? Number.MIN_VALUE : 1, this._elapsed = 0, this._onUpdate = a, this._onUpdateScope = h;
                        var l = t ? r.FADE_OUT_START : r.FADE_IN_START;
                        return this.camera.emit(l, this.camera, this, e, i, s, n), this.camera;
                    },
                    update: function(t, e) {
                        this.isRunning && (this._elapsed += e, this.progress = s(this._elapsed / this.duration, 0, 1), this._onUpdate && this._onUpdate.call(this._onUpdateScope, this.camera, this.progress), this._elapsed < this.duration ? this.alpha = this.direction ? this.progress : 1 - this.progress : (this.alpha = this.direction ? 1 : 0, this.effectComplete()));
                    },
                    postRenderCanvas: function(t) {
                        if (!this.isRunning && !this.isComplete) return !1;
                        var e = this.camera;
                        return t.fillStyle = "rgba(" + this.red + "," + this.green + "," + this.blue + "," + this.alpha + ")", t.fillRect(e.x, e.y, e.width, e.height), !0;
                    },
                    postRenderWebGL: function(t, e) {
                        if (!this.isRunning && !this.isComplete) return !1;
                        var i = this.camera, s = this.red / 255, n = this.green / 255, r = this.blue / 255;
                        return t.drawFillRect(i.x, i.y, i.width, i.height, e(r, n, s, 1), this.alpha), !0;
                    },
                    effectComplete: function() {
                        this._onUpdate = null, this._onUpdateScope = null, this.isRunning = !1, this.isComplete = !0;
                        var t = this.direction ? r.FADE_OUT_COMPLETE : r.FADE_IN_COMPLETE;
                        this.camera.emit(t, this.camera, this);
                    },
                    reset: function() {
                        this.isRunning = !1, this.isComplete = !1, this._onUpdate = null, this._onUpdateScope = null;
                    },
                    destroy: function() {
                        this.reset(), this.camera = null;
                    }
                });
                t.exports = o;
            },
            22151: (t, e, i)=>{
                var s = i(82897), n = i(56694), r = i(89787), o = new n({
                    initialize: function(t) {
                        this.camera = t, this.isRunning = !1, this.duration = 0, this.red = 0, this.green = 0, this.blue = 0, this.alpha = 1, this.progress = 0, this._elapsed = 0, this._alpha, this._onUpdate, this._onUpdateScope;
                    },
                    start: function(t, e, i, s, n, o, a) {
                        return void 0 === t && (t = 250), void 0 === e && (e = 255), void 0 === i && (i = 255), void 0 === s && (s = 255), void 0 === n && (n = !1), void 0 === o && (o = null), void 0 === a && (a = this.camera.scene), !n && this.isRunning || (this.isRunning = !0, this.duration = t, this.progress = 0, this.red = e, this.green = i, this.blue = s, this._alpha = this.alpha, this._elapsed = 0, this._onUpdate = o, this._onUpdateScope = a, this.camera.emit(r.FLASH_START, this.camera, this, t, e, i, s)), this.camera;
                    },
                    update: function(t, e) {
                        this.isRunning && (this._elapsed += e, this.progress = s(this._elapsed / this.duration, 0, 1), this._onUpdate && this._onUpdate.call(this._onUpdateScope, this.camera, this.progress), this._elapsed < this.duration ? this.alpha = this._alpha * (1 - this.progress) : this.effectComplete());
                    },
                    postRenderCanvas: function(t) {
                        if (!this.isRunning) return !1;
                        var e = this.camera;
                        return t.fillStyle = "rgba(" + this.red + "," + this.green + "," + this.blue + "," + this.alpha + ")", t.fillRect(e.x, e.y, e.width, e.height), !0;
                    },
                    postRenderWebGL: function(t, e) {
                        if (!this.isRunning) return !1;
                        var i = this.camera, s = this.red / 255, n = this.green / 255, r = this.blue / 255;
                        return t.drawFillRect(i.x, i.y, i.width, i.height, e(r, n, s, 1), this.alpha), !0;
                    },
                    effectComplete: function() {
                        this.alpha = this._alpha, this._onUpdate = null, this._onUpdateScope = null, this.isRunning = !1, this.camera.emit(r.FLASH_COMPLETE, this.camera, this);
                    },
                    reset: function() {
                        this.isRunning = !1, this._onUpdate = null, this._onUpdateScope = null;
                    },
                    destroy: function() {
                        this.reset(), this.camera = null;
                    }
                });
                t.exports = o;
            },
            37551: (t, e, i)=>{
                var s = i(82897), n = i(56694), r = i(35060), o = i(89787), a = i(93736), h = new n({
                    initialize: function(t) {
                        this.camera = t, this.isRunning = !1, this.duration = 0, this.source = new a, this.current = new a, this.destination = new a, this.ease, this.progress = 0, this._elapsed = 0, this._onUpdate, this._onUpdateScope;
                    },
                    start: function(t, e, i, s, n, a, h) {
                        void 0 === i && (i = 1e3), void 0 === s && (s = r.Linear), void 0 === n && (n = !1), void 0 === a && (a = null), void 0 === h && (h = this.camera.scene);
                        var l = this.camera;
                        return !n && this.isRunning || (this.isRunning = !0, this.duration = i, this.progress = 0, this.source.set(l.scrollX, l.scrollY), this.destination.set(t, e), l.getScroll(t, e, this.current), "string" == typeof s && r.hasOwnProperty(s) ? this.ease = r[s] : "function" == typeof s && (this.ease = s), this._elapsed = 0, this._onUpdate = a, this._onUpdateScope = h, this.camera.emit(o.PAN_START, this.camera, this, i, t, e)), l;
                    },
                    update: function(t, e) {
                        if (this.isRunning) {
                            this._elapsed += e;
                            var i = s(this._elapsed / this.duration, 0, 1);
                            this.progress = i;
                            var n = this.camera;
                            if (this._elapsed < this.duration) {
                                var r = this.ease(i);
                                n.getScroll(this.destination.x, this.destination.y, this.current);
                                var o = this.source.x + (this.current.x - this.source.x) * r, a = this.source.y + (this.current.y - this.source.y) * r;
                                n.setScroll(o, a), this._onUpdate && this._onUpdate.call(this._onUpdateScope, n, i, o, a);
                            } else n.centerOn(this.destination.x, this.destination.y), this._onUpdate && this._onUpdate.call(this._onUpdateScope, n, i, n.scrollX, n.scrollY), this.effectComplete();
                        }
                    },
                    effectComplete: function() {
                        this._onUpdate = null, this._onUpdateScope = null, this.isRunning = !1, this.camera.emit(o.PAN_COMPLETE, this.camera, this);
                    },
                    reset: function() {
                        this.isRunning = !1, this._onUpdate = null, this._onUpdateScope = null;
                    },
                    destroy: function() {
                        this.reset(), this.camera = null, this.source = null, this.destination = null;
                    }
                });
                t.exports = h;
            },
            1771: (t, e, i)=>{
                var s = i(82897), n = i(56694), r = i(89787), o = i(35060), a = new n({
                    initialize: function(t) {
                        this.camera = t, this.isRunning = !1, this.duration = 0, this.source = 0, this.current = 0, this.destination = 0, this.ease, this.progress = 0, this._elapsed = 0, this._onUpdate, this._onUpdateScope, this.clockwise = !0, this.shortestPath = !1;
                    },
                    start: function(t, e, i, s, n, a, h) {
                        void 0 === i && (i = 1e3), void 0 === s && (s = o.Linear), void 0 === n && (n = !1), void 0 === a && (a = null), void 0 === h && (h = this.camera.scene), void 0 === e && (e = !1), this.shortestPath = e;
                        var l = t;
                        t < 0 ? (l = -1 * t, this.clockwise = !1) : this.clockwise = !0;
                        var u = 360 * Math.PI / 180;
                        l -= Math.floor(l / u) * u;
                        var c = this.camera;
                        if (!n && this.isRunning) return c;
                        if (this.isRunning = !0, this.duration = i, this.progress = 0, this.source = c.rotation, this.destination = l, "string" == typeof s && o.hasOwnProperty(s) ? this.ease = o[s] : "function" == typeof s && (this.ease = s), this._elapsed = 0, this._onUpdate = a, this._onUpdateScope = h, this.shortestPath) {
                            var d = 0, f = 0;
                            (d = this.destination > this.source ? Math.abs(this.destination - this.source) : Math.abs(this.destination + u) - this.source) < (f = this.source > this.destination ? Math.abs(this.source - this.destination) : Math.abs(this.source + u) - this.destination) ? this.clockwise = !0 : d > f && (this.clockwise = !1);
                        }
                        return this.camera.emit(r.ROTATE_START, this.camera, this, i, l), c;
                    },
                    update: function(t, e) {
                        if (this.isRunning) {
                            this._elapsed += e;
                            var i = s(this._elapsed / this.duration, 0, 1);
                            this.progress = i;
                            var n = this.camera;
                            if (this._elapsed < this.duration) {
                                var r = this.ease(i);
                                this.current = n.rotation;
                                var o = 0, a = 360 * Math.PI / 180, h = this.destination, l = this.current;
                                !1 === this.clockwise && (h = this.current, l = this.destination), o = h >= l ? Math.abs(h - l) : Math.abs(h + a) - l;
                                var u = 0;
                                u = this.clockwise ? n.rotation + o * r : n.rotation - o * r, n.rotation = u, this._onUpdate && this._onUpdate.call(this._onUpdateScope, n, i, u);
                            } else n.rotation = this.destination, this._onUpdate && this._onUpdate.call(this._onUpdateScope, n, i, this.destination), this.effectComplete();
                        }
                    },
                    effectComplete: function() {
                        this._onUpdate = null, this._onUpdateScope = null, this.isRunning = !1, this.camera.emit(r.ROTATE_COMPLETE, this.camera, this);
                    },
                    reset: function() {
                        this.isRunning = !1, this._onUpdate = null, this._onUpdateScope = null;
                    },
                    destroy: function() {
                        this.reset(), this.camera = null, this.source = null, this.destination = null;
                    }
                });
                t.exports = a;
            },
            3241: (t, e, i)=>{
                var s = i(82897), n = i(56694), r = i(89787), o = i(93736), a = new n({
                    initialize: function(t) {
                        this.camera = t, this.isRunning = !1, this.duration = 0, this.intensity = new o, this.progress = 0, this._elapsed = 0, this._offsetX = 0, this._offsetY = 0, this._onUpdate, this._onUpdateScope;
                    },
                    start: function(t, e, i, s, n) {
                        return void 0 === t && (t = 100), void 0 === e && (e = .05), void 0 === i && (i = !1), void 0 === s && (s = null), void 0 === n && (n = this.camera.scene), !i && this.isRunning || (this.isRunning = !0, this.duration = t, this.progress = 0, "number" == typeof e ? this.intensity.set(e) : this.intensity.set(e.x, e.y), this._elapsed = 0, this._offsetX = 0, this._offsetY = 0, this._onUpdate = s, this._onUpdateScope = n, this.camera.emit(r.SHAKE_START, this.camera, this, t, e)), this.camera;
                    },
                    preRender: function() {
                        this.isRunning && this.camera.matrix.translate(this._offsetX, this._offsetY);
                    },
                    update: function(t, e) {
                        if (this.isRunning) {
                            if (this._elapsed += e, this.progress = s(this._elapsed / this.duration, 0, 1), this._onUpdate && this._onUpdate.call(this._onUpdateScope, this.camera, this.progress), this._elapsed < this.duration) {
                                var i = this.intensity, n = this.camera.width, r = this.camera.height, o = this.camera.zoom;
                                this._offsetX = (Math.random() * i.x * n * 2 - i.x * n) * o, this._offsetY = (Math.random() * i.y * r * 2 - i.y * r) * o, this.camera.roundPixels && (this._offsetX = Math.round(this._offsetX), this._offsetY = Math.round(this._offsetY));
                            } else this.effectComplete();
                        }
                    },
                    effectComplete: function() {
                        this._offsetX = 0, this._offsetY = 0, this._onUpdate = null, this._onUpdateScope = null, this.isRunning = !1, this.camera.emit(r.SHAKE_COMPLETE, this.camera, this);
                    },
                    reset: function() {
                        this.isRunning = !1, this._offsetX = 0, this._offsetY = 0, this._onUpdate = null, this._onUpdateScope = null;
                    },
                    destroy: function() {
                        this.reset(), this.camera = null, this.intensity = null;
                    }
                });
                t.exports = a;
            },
            13383: (t, e, i)=>{
                var s = i(82897), n = i(56694), r = i(35060), o = i(89787), a = new n({
                    initialize: function(t) {
                        this.camera = t, this.isRunning = !1, this.duration = 0, this.source = 1, this.destination = 1, this.ease, this.progress = 0, this._elapsed = 0, this._onUpdate, this._onUpdateScope;
                    },
                    start: function(t, e, i, s, n, a) {
                        void 0 === e && (e = 1e3), void 0 === i && (i = r.Linear), void 0 === s && (s = !1), void 0 === n && (n = null), void 0 === a && (a = this.camera.scene);
                        var h = this.camera;
                        return !s && this.isRunning || (this.isRunning = !0, this.duration = e, this.progress = 0, this.source = h.zoom, this.destination = t, "string" == typeof i && r.hasOwnProperty(i) ? this.ease = r[i] : "function" == typeof i && (this.ease = i), this._elapsed = 0, this._onUpdate = n, this._onUpdateScope = a, this.camera.emit(o.ZOOM_START, this.camera, this, e, t)), h;
                    },
                    update: function(t, e) {
                        this.isRunning && (this._elapsed += e, this.progress = s(this._elapsed / this.duration, 0, 1), this._elapsed < this.duration ? (this.camera.zoom = this.source + (this.destination - this.source) * this.ease(this.progress), this._onUpdate && this._onUpdate.call(this._onUpdateScope, this.camera, this.progress, this.camera.zoom)) : (this.camera.zoom = this.destination, this._onUpdate && this._onUpdate.call(this._onUpdateScope, this.camera, this.progress, this.destination), this.effectComplete()));
                    },
                    effectComplete: function() {
                        this._onUpdate = null, this._onUpdateScope = null, this.isRunning = !1, this.camera.emit(o.ZOOM_COMPLETE, this.camera, this);
                    },
                    reset: function() {
                        this.isRunning = !1, this._onUpdate = null, this._onUpdateScope = null;
                    },
                    destroy: function() {
                        this.reset(), this.camera = null;
                    }
                });
                t.exports = a;
            },
            53030: (t, e, i)=>{
                t.exports = {
                    Fade: i(92522),
                    Flash: i(22151),
                    Pan: i(37551),
                    Shake: i(3241),
                    RotateTo: i(1771),
                    Zoom: i(13383)
                };
            },
            39577: (t)=>{
                t.exports = "cameradestroy";
            },
            85373: (t)=>{
                t.exports = "camerafadeincomplete";
            },
            92057: (t)=>{
                t.exports = "camerafadeinstart";
            },
            1903: (t)=>{
                t.exports = "camerafadeoutcomplete";
            },
            96131: (t)=>{
                t.exports = "camerafadeoutstart";
            },
            85409: (t)=>{
                t.exports = "cameraflashcomplete";
            },
            25500: (t)=>{
                t.exports = "cameraflashstart";
            },
            44071: (t)=>{
                t.exports = "followupdate";
            },
            19818: (t)=>{
                t.exports = "camerapancomplete";
            },
            80002: (t)=>{
                t.exports = "camerapanstart";
            },
            87966: (t)=>{
                t.exports = "postrender";
            },
            74217: (t)=>{
                t.exports = "prerender";
            },
            34805: (t)=>{
                t.exports = "camerarotatecomplete";
            },
            30408: (t)=>{
                t.exports = "camerarotatestart";
            },
            49856: (t)=>{
                t.exports = "camerashakecomplete";
            },
            69189: (t)=>{
                t.exports = "camerashakestart";
            },
            67657: (t)=>{
                t.exports = "camerazoomcomplete";
            },
            14229: (t)=>{
                t.exports = "camerazoomstart";
            },
            89787: (t, e, i)=>{
                t.exports = {
                    DESTROY: i(39577),
                    FADE_IN_COMPLETE: i(85373),
                    FADE_IN_START: i(92057),
                    FADE_OUT_COMPLETE: i(1903),
                    FADE_OUT_START: i(96131),
                    FLASH_COMPLETE: i(85409),
                    FLASH_START: i(25500),
                    FOLLOW_UPDATE: i(44071),
                    PAN_COMPLETE: i(19818),
                    PAN_START: i(80002),
                    POST_RENDER: i(87966),
                    PRE_RENDER: i(74217),
                    ROTATE_COMPLETE: i(34805),
                    ROTATE_START: i(30408),
                    SHAKE_COMPLETE: i(49856),
                    SHAKE_START: i(69189),
                    ZOOM_COMPLETE: i(67657),
                    ZOOM_START: i(14229)
                };
            },
            32356: (t, e, i)=>{
                t.exports = {
                    Camera: i(47751),
                    BaseCamera: i(51052),
                    CameraManager: i(62382),
                    Effects: i(53030),
                    Events: i(89787)
                };
            },
            84219: (t, e, i)=>{
                var s = i(56694), n = i(10850), r = new s({
                    initialize: function(t) {
                        this.camera = n(t, "camera", null), this.left = n(t, "left", null), this.right = n(t, "right", null), this.up = n(t, "up", null), this.down = n(t, "down", null), this.zoomIn = n(t, "zoomIn", null), this.zoomOut = n(t, "zoomOut", null), this.zoomSpeed = n(t, "zoomSpeed", .01), this.minZoom = n(t, "minZoom", .001), this.maxZoom = n(t, "maxZoom", 1e3), this.speedX = 0, this.speedY = 0;
                        var e = n(t, "speed", null);
                        "number" == typeof e ? (this.speedX = e, this.speedY = e) : (this.speedX = n(t, "speed.x", 0), this.speedY = n(t, "speed.y", 0)), this._zoom = 0, this.active = null !== this.camera;
                    },
                    start: function() {
                        return this.active = null !== this.camera, this;
                    },
                    stop: function() {
                        return this.active = !1, this;
                    },
                    setCamera: function(t) {
                        return this.camera = t, this;
                    },
                    update: function(t) {
                        if (this.active) {
                            void 0 === t && (t = 1);
                            var e = this.camera;
                            this.up && this.up.isDown ? e.scrollY -= this.speedY * t | 0 : this.down && this.down.isDown && (e.scrollY += this.speedY * t | 0), this.left && this.left.isDown ? e.scrollX -= this.speedX * t | 0 : this.right && this.right.isDown && (e.scrollX += this.speedX * t | 0), this.zoomIn && this.zoomIn.isDown ? (e.zoom -= this.zoomSpeed, e.zoom < this.minZoom && (e.zoom = this.minZoom)) : this.zoomOut && this.zoomOut.isDown && (e.zoom += this.zoomSpeed, e.zoom > this.maxZoom && (e.zoom = this.maxZoom));
                        }
                    },
                    destroy: function() {
                        this.camera = null, this.left = null, this.right = null, this.up = null, this.down = null, this.zoomIn = null, this.zoomOut = null;
                    }
                });
                t.exports = r;
            },
            69370: (t, e, i)=>{
                var s = i(56694), n = i(10850), r = new s({
                    initialize: function(t) {
                        this.camera = n(t, "camera", null), this.left = n(t, "left", null), this.right = n(t, "right", null), this.up = n(t, "up", null), this.down = n(t, "down", null), this.zoomIn = n(t, "zoomIn", null), this.zoomOut = n(t, "zoomOut", null), this.zoomSpeed = n(t, "zoomSpeed", .01), this.minZoom = n(t, "minZoom", .001), this.maxZoom = n(t, "maxZoom", 1e3), this.accelX = 0, this.accelY = 0;
                        var e = n(t, "acceleration", null);
                        "number" == typeof e ? (this.accelX = e, this.accelY = e) : (this.accelX = n(t, "acceleration.x", 0), this.accelY = n(t, "acceleration.y", 0)), this.dragX = 0, this.dragY = 0;
                        var i = n(t, "drag", null);
                        "number" == typeof i ? (this.dragX = i, this.dragY = i) : (this.dragX = n(t, "drag.x", 0), this.dragY = n(t, "drag.y", 0)), this.maxSpeedX = 0, this.maxSpeedY = 0;
                        var s = n(t, "maxSpeed", null);
                        "number" == typeof s ? (this.maxSpeedX = s, this.maxSpeedY = s) : (this.maxSpeedX = n(t, "maxSpeed.x", 0), this.maxSpeedY = n(t, "maxSpeed.y", 0)), this._speedX = 0, this._speedY = 0, this._zoom = 0, this.active = null !== this.camera;
                    },
                    start: function() {
                        return this.active = null !== this.camera, this;
                    },
                    stop: function() {
                        return this.active = !1, this;
                    },
                    setCamera: function(t) {
                        return this.camera = t, this;
                    },
                    update: function(t) {
                        if (this.active) {
                            void 0 === t && (t = 1);
                            var e = this.camera;
                            this._speedX > 0 ? (this._speedX -= this.dragX * t, this._speedX < 0 && (this._speedX = 0)) : this._speedX < 0 && (this._speedX += this.dragX * t, this._speedX > 0 && (this._speedX = 0)), this._speedY > 0 ? (this._speedY -= this.dragY * t, this._speedY < 0 && (this._speedY = 0)) : this._speedY < 0 && (this._speedY += this.dragY * t, this._speedY > 0 && (this._speedY = 0)), this.up && this.up.isDown ? (this._speedY += this.accelY, this._speedY > this.maxSpeedY && (this._speedY = this.maxSpeedY)) : this.down && this.down.isDown && (this._speedY -= this.accelY, this._speedY < -this.maxSpeedY && (this._speedY = -this.maxSpeedY)), this.left && this.left.isDown ? (this._speedX += this.accelX, this._speedX > this.maxSpeedX && (this._speedX = this.maxSpeedX)) : this.right && this.right.isDown && (this._speedX -= this.accelX, this._speedX < -this.maxSpeedX && (this._speedX = -this.maxSpeedX)), this.zoomIn && this.zoomIn.isDown ? this._zoom = -this.zoomSpeed : this.zoomOut && this.zoomOut.isDown ? this._zoom = this.zoomSpeed : this._zoom = 0, 0 !== this._speedX && (e.scrollX -= this._speedX * t | 0), 0 !== this._speedY && (e.scrollY -= this._speedY * t | 0), 0 !== this._zoom && (e.zoom += this._zoom, e.zoom < this.minZoom ? e.zoom = this.minZoom : e.zoom > this.maxZoom && (e.zoom = this.maxZoom));
                        }
                    },
                    destroy: function() {
                        this.camera = null, this.left = null, this.right = null, this.up = null, this.down = null, this.zoomIn = null, this.zoomOut = null;
                    }
                });
                t.exports = r;
            },
            6524: (t, e, i)=>{
                t.exports = {
                    FixedKeyControl: i(84219),
                    SmoothedKeyControl: i(69370)
                };
            },
            44143: (t, e, i)=>{
                t.exports = {
                    Controls: i(6524),
                    Scene2D: i(32356)
                };
            },
            86459: (t, e, i)=>{
                var s = {
                    VERSION: "3.60.0",
                    BlendModes: i(95723),
                    ScaleModes: i(27394),
                    AUTO: 0,
                    CANVAS: 1,
                    WEBGL: 2,
                    HEADLESS: 3,
                    FOREVER: -1,
                    NONE: 4,
                    UP: 5,
                    DOWN: 6,
                    LEFT: 7,
                    RIGHT: 8
                };
                t.exports = s;
            },
            14033: (t, e, i)=>{
                var s = i(56694), n = i(86459), r = i(18360), o = i(77290), a = i(72632), h = i(10850), l = i(42911), u = i(72283), c = i(5923), d = i(65641), f = i(93222), p = new s({
                    initialize: function(t) {
                        void 0 === t && (t = {});
                        var e = h(t, "scale", null);
                        this.width = h(e, "width", 1024, t), this.height = h(e, "height", 768, t), this.zoom = h(e, "zoom", 1, t), this.parent = h(e, "parent", void 0, t), this.scaleMode = h(e, e ? "mode" : "scaleMode", 0, t), this.expandParent = h(e, "expandParent", !0, t), this.autoRound = h(e, "autoRound", !1, t), this.autoCenter = h(e, "autoCenter", 0, t), this.resizeInterval = h(e, "resizeInterval", 500, t), this.fullscreenTarget = h(e, "fullscreenTarget", null, t), this.minWidth = h(e, "minWidth", 0, t), this.maxWidth = h(e, "maxWidth", 0, t), this.minHeight = h(e, "minHeight", 0, t), this.maxHeight = h(e, "maxHeight", 0, t), this.renderType = h(t, "type", n.AUTO), this.canvas = h(t, "canvas", null), this.context = h(t, "context", null), this.canvasStyle = h(t, "canvasStyle", null), this.customEnvironment = h(t, "customEnvironment", !1), this.sceneConfig = h(t, "scene", null), this.seed = h(t, "seed", [
                            (Date.now() * Math.random()).toString()
                        ]), c.RND = new c.RandomDataGenerator(this.seed), this.gameTitle = h(t, "title", ""), this.gameURL = h(t, "url", "https://phaser.io"), this.gameVersion = h(t, "version", ""), this.autoFocus = h(t, "autoFocus", !0), this.stableSort = h(t, "stableSort", -1), -1 === this.stableSort && (this.stableSort = o.browser.es2019 ? 1 : 0), o.features.stableSort = this.stableSort, this.domCreateContainer = h(t, "dom.createContainer", !1), this.domPointerEvents = h(t, "dom.pointerEvents", "none"), this.inputKeyboard = h(t, "input.keyboard", !0), this.inputKeyboardEventTarget = h(t, "input.keyboard.target", window), this.inputKeyboardCapture = h(t, "input.keyboard.capture", []), this.inputMouse = h(t, "input.mouse", !0), this.inputMouseEventTarget = h(t, "input.mouse.target", null), this.inputMousePreventDefaultDown = h(t, "input.mouse.preventDefaultDown", !0), this.inputMousePreventDefaultUp = h(t, "input.mouse.preventDefaultUp", !0), this.inputMousePreventDefaultMove = h(t, "input.mouse.preventDefaultMove", !0), this.inputMousePreventDefaultWheel = h(t, "input.mouse.preventDefaultWheel", !0), this.inputTouch = h(t, "input.touch", o.input.touch), this.inputTouchEventTarget = h(t, "input.touch.target", null), this.inputTouchCapture = h(t, "input.touch.capture", !0), this.inputActivePointers = h(t, "input.activePointers", 1), this.inputSmoothFactor = h(t, "input.smoothFactor", 0), this.inputWindowEvents = h(t, "input.windowEvents", !0), this.inputGamepad = h(t, "input.gamepad", !1), this.inputGamepadEventTarget = h(t, "input.gamepad.target", window), this.disableContextMenu = h(t, "disableContextMenu", !1), this.audio = h(t, "audio", {}), this.hideBanner = !1 === h(t, "banner", null), this.hidePhaser = h(t, "banner.hidePhaser", !1), this.bannerTextColor = h(t, "banner.text", "#ffffff"), this.bannerBackgroundColor = h(t, "banner.background", [
                            "#ff0000",
                            "#ffff00",
                            "#00ff00",
                            "#00ffff",
                            "#000000"
                        ]), "" === this.gameTitle && this.hidePhaser && (this.hideBanner = !0), this.fps = h(t, "fps", null);
                        var i = h(t, "render", null);
                        this.pipeline = h(i, "pipeline", null, t), this.autoMobilePipeline = h(i, "autoMobilePipeline", !0, t), this.defaultPipeline = h(i, "defaultPipeline", d.MULTI_PIPELINE, t), this.antialias = h(i, "antialias", !0, t), this.antialiasGL = h(i, "antialiasGL", !0, t), this.mipmapFilter = h(i, "mipmapFilter", "", t), this.desynchronized = h(i, "desynchronized", !1, t), this.roundPixels = h(i, "roundPixels", !1, t), this.pixelArt = h(i, "pixelArt", 1 !== this.zoom, t), this.pixelArt && (this.antialias = !1, this.antialiasGL = !1, this.roundPixels = !0), this.transparent = h(i, "transparent", !1, t), this.clearBeforeRender = h(i, "clearBeforeRender", !0, t), this.preserveDrawingBuffer = h(i, "preserveDrawingBuffer", !1, t), this.premultipliedAlpha = h(i, "premultipliedAlpha", !0, t), this.failIfMajorPerformanceCaveat = h(i, "failIfMajorPerformanceCaveat", !1, t), this.powerPreference = h(i, "powerPreference", "default", t), this.batchSize = h(i, "batchSize", 4096, t), this.maxTextures = h(i, "maxTextures", -1, t), this.maxLights = h(i, "maxLights", 10, t);
                        var s = h(t, "backgroundColor", 0);
                        this.backgroundColor = f(s), this.transparent && (this.backgroundColor = f(0), this.backgroundColor.alpha = 0), this.preBoot = h(t, "callbacks.preBoot", u), this.postBoot = h(t, "callbacks.postBoot", u), this.physics = h(t, "physics", {}), this.defaultPhysicsSystem = h(this.physics, "default", !1), this.loaderBaseURL = h(t, "loader.baseURL", ""), this.loaderPath = h(t, "loader.path", ""), this.loaderMaxParallelDownloads = h(t, "loader.maxParallelDownloads", o.os.android ? 6 : 32), this.loaderCrossOrigin = h(t, "loader.crossOrigin", void 0), this.loaderResponseType = h(t, "loader.responseType", ""), this.loaderAsync = h(t, "loader.async", !0), this.loaderUser = h(t, "loader.user", ""), this.loaderPassword = h(t, "loader.password", ""), this.loaderTimeout = h(t, "loader.timeout", 0), this.loaderWithCredentials = h(t, "loader.withCredentials", !1), this.loaderImageLoadType = h(t, "loader.imageLoadType", "XHR"), this.loaderLocalScheme = h(t, "loader.localScheme", [
                            "file://",
                            "capacitor://"
                        ]), this.glowFXQuality = h(t, "fx.glow.quality", .1), this.glowFXDistance = h(t, "fx.glow.distance", 10), this.installGlobalPlugins = [], this.installScenePlugins = [];
                        var p = h(t, "plugins", null), v = r.DefaultScene;
                        p && (Array.isArray(p) ? this.defaultPlugins = p : l(p) && (this.installGlobalPlugins = a(p, "global", []), this.installScenePlugins = a(p, "scene", []), Array.isArray(p.default) ? v = p.default : Array.isArray(p.defaultMerge) && (v = v.concat(p.defaultMerge)))), this.defaultPlugins = v;
                        var g = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAg";
                        this.defaultImage = h(t, "images.default", g + "AQMAAABJtOi3AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABVJREFUeF7NwIEAAAAAgKD9qdeocAMAoAABm3DkcAAAAABJRU5ErkJggg=="), this.missingImage = h(t, "images.missing", g + "CAIAAAD8GO2jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ9JREFUeNq01ssOwyAMRFG46v//Mt1ESmgh+DFmE2GPOBARKb2NVjo+17PXLD8a1+pl5+A+wSgFygymWYHBb0FtsKhJDdZlncG2IzJ4ayoMDv20wTmSMzClEgbWYNTAkQ0Z+OJ+A/eWnAaR9+oxCF4Os0H8htsMUp+pwcgBBiMNnAwF8GqIgL2hAzaGFFgZauDPKABmowZ4GL369/0rwACp2yA/ttmvsQAAAABJRU5ErkJggg=="), this.whiteImage = h(t, "images.white", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABdJREFUeNpi/P//PwMMMDEgAdwcgAADAJZuAwXJYZOzAAAAAElFTkSuQmCC"), window && (window.FORCE_WEBGL ? this.renderType = n.WEBGL : window.FORCE_CANVAS && (this.renderType = n.CANVAS));
                    }
                });
                t.exports = p;
            },
            50150: (t, e, i)=>{
                var s = i(70616), n = i(61068), r = i(86459), o = i(90185);
                t.exports = function(t) {
                    var e = t.config;
                    if ((e.customEnvironment || e.canvas) && e.renderType === r.AUTO) throw new Error("Must set explicit renderType in custom environment");
                    if (!e.customEnvironment && !e.canvas && e.renderType !== r.HEADLESS) {
                        if (e.renderType === r.AUTO && (e.renderType = o.webGL ? r.WEBGL : r.CANVAS), e.renderType === r.WEBGL) {
                            if (!o.webGL) throw new Error("Cannot create WebGL context, aborting.");
                        } else {
                            if (e.renderType !== r.CANVAS) throw new Error("Unknown value for renderer type: " + e.renderType);
                            if (!o.canvas) throw new Error("Cannot create Canvas context, aborting.");
                        }
                    }
                    e.antialias || n.disableSmoothing();
                    var a, h, l = t.scale.baseSize, u = l.width, c = l.height;
                    (e.canvas ? (t.canvas = e.canvas, t.canvas.width = u, t.canvas.height = c) : t.canvas = n.create(t, u, c, e.renderType), e.canvasStyle && (t.canvas.style = e.canvasStyle), e.antialias || s.setCrisp(t.canvas), e.renderType !== r.HEADLESS) && (a = i(91135), h = i(11857), e.renderType === r.WEBGL ? t.renderer = new h(t) : (t.renderer = new a(t), t.context = t.renderer.gameContext));
                };
            },
            77291: (t, e, i)=>{
                var s = i(86459);
                t.exports = function(t) {
                    var e = t.config;
                    if (!e.hideBanner) {
                        var i = "WebGL";
                        e.renderType === s.CANVAS ? i = "Canvas" : e.renderType === s.HEADLESS && (i = "Headless");
                        var n, r = e.audio, o = t.device.audio;
                        if (n = o.webAudio && !r.disableWebAudio ? "Web Audio" : r.noAudio || !o.webAudio && !o.audioData ? "No Audio" : "HTML5 Audio", t.device.browser.ie) window.console && console.log("Phaser v" + s.VERSION + " / https://phaser.io");
                        else {
                            var a, h = "", l = [
                                h
                            ];
                            if (Array.isArray(e.bannerBackgroundColor)) e.bannerBackgroundColor.forEach(function(t) {
                                h = h.concat("%c "), l.push("background: " + t), a = t;
                            }), l[l.length - 1] = "color: " + e.bannerTextColor + "; background: " + a;
                            else h = h.concat("%c "), l.push("color: " + e.bannerTextColor + "; background: " + e.bannerBackgroundColor);
                            l.push("background: transparent"), e.gameTitle && (h = h.concat(e.gameTitle), e.gameVersion && (h = h.concat(" v" + e.gameVersion)), e.hidePhaser || (h = h.concat(" / ")));
                            e.hidePhaser || (h = h.concat("Phaser v" + s.VERSION + " (" + i + " | " + n + ")")), h = h.concat(" %c " + e.gameURL), l[0] = h, console.log.apply(console, l);
                        }
                    }
                };
            },
            15213: (t, e, i)=>{
                var s = i(99584), n = i(90249), r = i(43474), o = i(61068), a = i(56694), h = i(14033), l = i(85178), u = i(50150), c = i(81078), d = i(77291), f = i(77290), p = i(21546), v = i(6659), g = i(97081), m = i(69898), y = i(91963), x = i(49274), T = i(756), w = i(13553), b = i(38203), S = i(6237), E = i(26617), A = i(26493), C = i(84191), _ = new a({
                    initialize: function(t) {
                        this.config = new h(t), this.renderer = null, this.domContainer = null, this.canvas = null, this.context = null, this.isBooted = !1, this.isRunning = !1, this.events = new v, this.anims = new n(this), this.textures = new S(this), this.cache = new r(this), this.registry = new c(this, new v), this.input = new m(this, this.config), this.scene = new w(this, this.config.sceneConfig), this.device = f, this.scale = new T(this, this.config), this.sound = null, this.sound = C.create(this), this.loop = new E(this, this.config.fps), this.plugins = new x(this, this.config), this.pendingDestroy = !1, this.removeCanvas = !1, this.noReturn = !1, this.hasFocus = !1, this.isPaused = !1, p(this.boot.bind(this));
                    },
                    boot: function() {
                        y.hasCore("EventEmitter") ? (this.isBooted = !0, this.config.preBoot(this), this.scale.preBoot(), u(this), l(this), d(this), s(this.canvas, this.config.parent), this.textures.once(b.READY, this.texturesReady, this), this.events.emit(g.BOOT)) : console.warn("Aborting. Core Plugins missing.");
                    },
                    texturesReady: function() {
                        this.events.emit(g.READY), this.start();
                    },
                    start: function() {
                        this.isRunning = !0, this.config.postBoot(this), this.renderer ? this.loop.start(this.step.bind(this)) : this.loop.start(this.headlessStep.bind(this)), A(this);
                        var t = this.events;
                        t.on(g.HIDDEN, this.onHidden, this), t.on(g.VISIBLE, this.onVisible, this), t.on(g.BLUR, this.onBlur, this), t.on(g.FOCUS, this.onFocus, this);
                    },
                    step: function(t, e) {
                        if (this.pendingDestroy) return this.runDestroy();
                        if (!this.isPaused) {
                            var i = this.events;
                            i.emit(g.PRE_STEP, t, e), i.emit(g.STEP, t, e), this.scene.update(t, e), i.emit(g.POST_STEP, t, e);
                            var s = this.renderer;
                            s.preRender(), i.emit(g.PRE_RENDER, s, t, e), this.scene.render(s), s.postRender(), i.emit(g.POST_RENDER, s, t, e);
                        }
                    },
                    headlessStep: function(t, e) {
                        if (this.pendingDestroy) return this.runDestroy();
                        if (!this.isPaused) {
                            var i = this.events;
                            i.emit(g.PRE_STEP, t, e), i.emit(g.STEP, t, e), this.scene.update(t, e), i.emit(g.POST_STEP, t, e), this.scene.isProcessing = !1, i.emit(g.PRE_RENDER, null, t, e), i.emit(g.POST_RENDER, null, t, e);
                        }
                    },
                    onHidden: function() {
                        this.loop.pause(), this.events.emit(g.PAUSE);
                    },
                    pause: function() {
                        var t = this.isPaused;
                        this.isPaused = !0, t || this.events.emit(g.PAUSE);
                    },
                    onVisible: function() {
                        this.loop.resume(), this.events.emit(g.RESUME);
                    },
                    resume: function() {
                        var t = this.isPaused;
                        this.isPaused = !1, t && this.events.emit(g.RESUME);
                    },
                    onBlur: function() {
                        this.hasFocus = !1, this.loop.blur();
                    },
                    onFocus: function() {
                        this.hasFocus = !0, this.loop.focus();
                    },
                    getFrame: function() {
                        return this.loop.frame;
                    },
                    getTime: function() {
                        return this.loop.now;
                    },
                    destroy: function(t, e) {
                        void 0 === e && (e = !1), this.pendingDestroy = !0, this.removeCanvas = t, this.noReturn = e;
                    },
                    runDestroy: function() {
                        this.scene.destroy(), this.events.emit(g.DESTROY), this.events.removeAllListeners(), this.renderer && this.renderer.destroy(), this.removeCanvas && this.canvas && (o.remove(this.canvas), this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas)), this.domContainer && this.domContainer.parentNode.removeChild(this.domContainer), this.loop.destroy(), this.pendingDestroy = !1;
                    }
                });
                t.exports = _;
            },
            26617: (t, e, i)=>{
                var s = i(56694), n = i(10850), r = i(72283), o = i(27385), a = new s({
                    initialize: function(t, e) {
                        this.game = t, this.raf = new o, this.started = !1, this.running = !1, this.minFps = n(e, "min", 5), this.targetFps = n(e, "target", 60), this.fpsLimit = n(e, "limit", 0), this.hasFpsLimit = this.fpsLimit > 0, this._limitRate = this.hasFpsLimit ? 1e3 / this.fpsLimit : 0, this._min = 1e3 / this.minFps, this._target = 1e3 / this.targetFps, this.actualFps = this.targetFps, this.nextFpsUpdate = 0, this.framesThisSecond = 0, this.callback = r, this.forceSetTimeOut = n(e, "forceSetTimeOut", !1), this.time = 0, this.startTime = 0, this.lastTime = 0, this.frame = 0, this.inFocus = !0, this._pauseTime = 0, this._coolDown = 0, this.delta = 0, this.deltaIndex = 0, this.deltaHistory = [], this.deltaSmoothingMax = n(e, "deltaHistory", 10), this.panicMax = n(e, "panicMax", 120), this.rawDelta = 0, this.now = 0, this.smoothStep = n(e, "smoothStep", !0);
                    },
                    blur: function() {
                        this.inFocus = !1;
                    },
                    focus: function() {
                        this.inFocus = !0, this.resetDelta();
                    },
                    pause: function() {
                        this._pauseTime = window.performance.now();
                    },
                    resume: function() {
                        this.resetDelta(), this.startTime += this.time - this._pauseTime;
                    },
                    resetDelta: function() {
                        var t = window.performance.now();
                        this.time = t, this.lastTime = t, this.nextFpsUpdate = t + 1e3, this.framesThisSecond = 0;
                        for(var e = 0; e < this.deltaSmoothingMax; e++)this.deltaHistory[e] = Math.min(this._target, this.deltaHistory[e]);
                        this.delta = 0, this.deltaIndex = 0, this._coolDown = this.panicMax;
                    },
                    start: function(t) {
                        if (this.started) return this;
                        this.started = !0, this.running = !0;
                        for(var e = 0; e < this.deltaSmoothingMax; e++)this.deltaHistory[e] = this._target;
                        this.resetDelta(), this.startTime = window.performance.now(), this.callback = t;
                        var i = this.hasFpsLimit ? this.stepLimitFPS.bind(this) : this.step.bind(this);
                        this.raf.start(i, this.forceSetTimeOut, this._target);
                    },
                    smoothDelta: function(t) {
                        var e = this.deltaIndex, i = this.deltaHistory, s = this.deltaSmoothingMax;
                        (this._coolDown > 0 || !this.inFocus) && (this._coolDown--, t = Math.min(t, this._target)), t > this._min && (t = i[e], t = Math.min(t, this._min)), i[e] = t, this.deltaIndex++, this.deltaIndex >= s && (this.deltaIndex = 0);
                        for(var n = 0, r = 0; r < s; r++)n += i[r];
                        return n /= s;
                    },
                    updateFPS: function(t) {
                        this.actualFps = .25 * this.framesThisSecond + .75 * this.actualFps, this.nextFpsUpdate = t + 1e3, this.framesThisSecond = 0;
                    },
                    stepLimitFPS: function(t) {
                        this.now = t;
                        var e = Math.max(0, t - this.lastTime);
                        this.rawDelta = e, this.time += this.rawDelta, this.smoothStep && (e = this.smoothDelta(e)), this.delta += e, t >= this.nextFpsUpdate && this.updateFPS(t), this.framesThisSecond++, this.delta >= this._limitRate && (this.callback(t, this.delta), this.delta = 0), this.lastTime = t, this.frame++;
                    },
                    step: function(t) {
                        this.now = t;
                        var e = Math.max(0, t - this.lastTime);
                        this.rawDelta = e, this.time += this.rawDelta, this.smoothStep && (e = this.smoothDelta(e)), this.delta = e, t >= this.nextFpsUpdate && this.updateFPS(t), this.framesThisSecond++, this.callback(t, e), this.lastTime = t, this.frame++;
                    },
                    tick: function() {
                        var t = window.performance.now();
                        this.hasFpsLimit ? this.stepLimitFPS(t) : this.step(t);
                    },
                    sleep: function() {
                        this.running && (this.raf.stop(), this.running = !1);
                    },
                    wake: function(t) {
                        void 0 === t && (t = !1);
                        var e = window.performance.now();
                        if (!this.running) {
                            t && (this.startTime += -this.lastTime + (this.lastTime + e));
                            var i = this.hasFpsLimit ? this.stepLimitFPS.bind(this) : this.step.bind(this);
                            this.raf.start(i, this.forceSetTimeOut, this._target), this.running = !0, this.nextFpsUpdate = e + 1e3, this.framesThisSecond = 0, this.fpsLimitTriggered = !1, this.tick();
                        }
                    },
                    getDuration: function() {
                        return Math.round(this.lastTime - this.startTime) / 1e3;
                    },
                    getDurationMS: function() {
                        return Math.round(this.lastTime - this.startTime);
                    },
                    stop: function() {
                        return this.running = !1, this.started = !1, this.raf.stop(), this;
                    },
                    destroy: function() {
                        this.stop(), this.raf.destroy(), this.raf = null, this.game = null, this.callback = null;
                    }
                });
                t.exports = a;
            },
            26493: (t, e, i)=>{
                var s = i(97081);
                t.exports = function(t) {
                    var e, i = t.events;
                    if (void 0 !== document.hidden) e = "visibilitychange";
                    else [
                        "webkit",
                        "moz",
                        "ms"
                    ].forEach(function(t) {
                        void 0 !== document[t + "Hidden"] && (document.hidden = function() {
                            return document[t + "Hidden"];
                        }, e = t + "visibilitychange");
                    });
                    e && document.addEventListener(e, function(t) {
                        document.hidden || "pause" === t.type ? i.emit(s.HIDDEN) : i.emit(s.VISIBLE);
                    }, !1), window.onblur = function() {
                        i.emit(s.BLUR);
                    }, window.onfocus = function() {
                        i.emit(s.FOCUS);
                    }, window.focus && t.config.autoFocus && window.focus();
                };
            },
            41651: (t)=>{
                t.exports = "blur";
            },
            5520: (t)=>{
                t.exports = "boot";
            },
            51673: (t)=>{
                t.exports = "contextlost";
            },
            25055: (t)=>{
                t.exports = "destroy";
            },
            23767: (t)=>{
                t.exports = "focus";
            },
            57564: (t)=>{
                t.exports = "hidden";
            },
            38327: (t)=>{
                t.exports = "pause";
            },
            43807: (t)=>{
                t.exports = "postrender";
            },
            73652: (t)=>{
                t.exports = "poststep";
            },
            780: (t)=>{
                t.exports = "prerender";
            },
            13781: (t)=>{
                t.exports = "prestep";
            },
            38247: (t)=>{
                t.exports = "ready";
            },
            29129: (t)=>{
                t.exports = "resume";
            },
            34994: (t)=>{
                t.exports = "step";
            },
            98704: (t)=>{
                t.exports = "visible";
            },
            97081: (t, e, i)=>{
                t.exports = {
                    BLUR: i(41651),
                    BOOT: i(5520),
                    CONTEXT_LOST: i(51673),
                    DESTROY: i(25055),
                    FOCUS: i(23767),
                    HIDDEN: i(57564),
                    PAUSE: i(38327),
                    POST_RENDER: i(43807),
                    POST_STEP: i(73652),
                    PRE_RENDER: i(780),
                    PRE_STEP: i(13781),
                    READY: i(38247),
                    RESUME: i(29129),
                    STEP: i(34994),
                    VISIBLE: i(98704)
                };
            },
            80293: (t, e, i)=>{
                t.exports = {
                    Config: i(14033),
                    CreateRenderer: i(50150),
                    DebugHeader: i(77291),
                    Events: i(97081),
                    TimeStep: i(26617),
                    VisibilityHandler: i(26493)
                };
            },
            52780: (t, e, i)=>{
                var s = i(81543), n = i(61068), r = i(10850);
                t.exports = function(t) {
                    var e = r(t, "data", []), i = r(t, "canvas", null), o = r(t, "palette", s), a = r(t, "pixelWidth", 1), h = r(t, "pixelHeight", a), l = r(t, "resizeCanvas", !0), u = r(t, "clearCanvas", !0), c = r(t, "preRender", null), d = r(t, "postRender", null), f = Math.floor(Math.abs(e[0].length * a)), p = Math.floor(Math.abs(e.length * h));
                    i || (i = n.create2D(this, f, p), l = !1, u = !1), l && (i.width = f, i.height = p);
                    var v = i.getContext("2d", {
                        willReadFrequently: !0
                    });
                    u && v.clearRect(0, 0, f, p), c && c(i, v);
                    for(var g = 0; g < e.length; g++)for(var m = e[g], y = 0; y < m.length; y++){
                        var x = m[y];
                        "." !== x && " " !== x && (v.fillStyle = o[x], v.fillRect(y * a, g * h, a, h));
                    }
                    return d && d(i, v), i;
                };
            },
            84106: (t, e, i)=>{
                t.exports = {
                    GenerateTexture: i(52780),
                    Palettes: i(25235)
                };
            },
            81543: (t)=>{
                t.exports = {
                    0: "#000",
                    1: "#9D9D9D",
                    2: "#FFF",
                    3: "#BE2633",
                    4: "#E06F8B",
                    5: "#493C2B",
                    6: "#A46422",
                    7: "#EB8931",
                    8: "#F7E26B",
                    9: "#2F484E",
                    A: "#44891A",
                    B: "#A3CE27",
                    C: "#1B2632",
                    D: "#005784",
                    E: "#31A2F2",
                    F: "#B2DCEF"
                };
            },
            75846: (t)=>{
                t.exports = {
                    0: "#000",
                    1: "#fff",
                    2: "#8b4131",
                    3: "#7bbdc5",
                    4: "#8b41ac",
                    5: "#6aac41",
                    6: "#3931a4",
                    7: "#d5de73",
                    8: "#945a20",
                    9: "#5a4100",
                    A: "#bd736a",
                    B: "#525252",
                    C: "#838383",
                    D: "#acee8b",
                    E: "#7b73de",
                    F: "#acacac"
                };
            },
            83206: (t)=>{
                t.exports = {
                    0: "#000",
                    1: "#2234d1",
                    2: "#0c7e45",
                    3: "#44aacc",
                    4: "#8a3622",
                    5: "#5c2e78",
                    6: "#aa5c3d",
                    7: "#b5b5b5",
                    8: "#5e606e",
                    9: "#4c81fb",
                    A: "#6cd947",
                    B: "#7be2f9",
                    C: "#eb8a60",
                    D: "#e23d69",
                    E: "#ffd93f",
                    F: "#fff"
                };
            },
            13194: (t)=>{
                t.exports = {
                    0: "#000",
                    1: "#191028",
                    2: "#46af45",
                    3: "#a1d685",
                    4: "#453e78",
                    5: "#7664fe",
                    6: "#833129",
                    7: "#9ec2e8",
                    8: "#dc534b",
                    9: "#e18d79",
                    A: "#d6b97b",
                    B: "#e9d8a1",
                    C: "#216c4b",
                    D: "#d365c8",
                    E: "#afaab9",
                    F: "#f5f4eb"
                };
            },
            50686: (t)=>{
                t.exports = {
                    0: "#000",
                    1: "#191028",
                    2: "#46af45",
                    3: "#a1d685",
                    4: "#453e78",
                    5: "#7664fe",
                    6: "#833129",
                    7: "#9ec2e8",
                    8: "#dc534b",
                    9: "#e18d79",
                    A: "#d6b97b",
                    B: "#e9d8a1",
                    C: "#216c4b",
                    D: "#d365c8",
                    E: "#afaab9",
                    F: "#fff"
                };
            },
            25235: (t, e, i)=>{
                t.exports = {
                    ARNE16: i(81543),
                    C64: i(75846),
                    CGA: i(83206),
                    JMP: i(13194),
                    MSX: i(50686)
                };
            },
            63120: (t, e, i)=>{
                var s = i(56694), n = i(34631), r = i(38517), o = i(93736), a = new s({
                    Extends: r,
                    initialize: function(t, e, i, s) {
                        r.call(this, "CubicBezierCurve"), Array.isArray(t) && (s = new o(t[6], t[7]), i = new o(t[4], t[5]), e = new o(t[2], t[3]), t = new o(t[0], t[1])), this.p0 = t, this.p1 = e, this.p2 = i, this.p3 = s;
                    },
                    getStartPoint: function(t) {
                        return void 0 === t && (t = new o), t.copy(this.p0);
                    },
                    getResolution: function(t) {
                        return t;
                    },
                    getPoint: function(t, e) {
                        void 0 === e && (e = new o);
                        var i = this.p0, s = this.p1, r = this.p2, a = this.p3;
                        return e.set(n(t, i.x, s.x, r.x, a.x), n(t, i.y, s.y, r.y, a.y));
                    },
                    draw: function(t, e) {
                        void 0 === e && (e = 32);
                        var i = this.getPoints(e);
                        t.beginPath(), t.moveTo(this.p0.x, this.p0.y);
                        for(var s = 1; s < i.length; s++)t.lineTo(i[s].x, i[s].y);
                        return t.strokePath(), t;
                    },
                    toJSON: function() {
                        return {
                            type: this.type,
                            points: [
                                this.p0.x,
                                this.p0.y,
                                this.p1.x,
                                this.p1.y,
                                this.p2.x,
                                this.p2.y,
                                this.p3.x,
                                this.p3.y
                            ]
                        };
                    }
                });
                a.fromJSON = function(t) {
                    var e = t.points, i = new o(e[0], e[1]), s = new o(e[2], e[3]), n = new o(e[4], e[5]), r = new o(e[6], e[7]);
                    return new a(i, s, n, r);
                }, t.exports = a;
            },
            38517: (t, e, i)=>{
                var s = i(56694), n = i(80222), r = i(74118), o = i(93736), a = new s({
                    initialize: function(t) {
                        this.type = t, this.defaultDivisions = 5, this.arcLengthDivisions = 100, this.cacheArcLengths = [], this.needsUpdate = !0, this.active = !0, this._tmpVec2A = new o, this._tmpVec2B = new o;
                    },
                    draw: function(t, e) {
                        return void 0 === e && (e = 32), t.strokePoints(this.getPoints(e));
                    },
                    getBounds: function(t, e) {
                        t || (t = new r), void 0 === e && (e = 16);
                        var i = this.getLength();
                        e > i && (e = i / 2);
                        var s = Math.max(1, Math.round(i / e));
                        return n(this.getSpacedPoints(s), t);
                    },
                    getDistancePoints: function(t) {
                        var e = this.getLength(), i = Math.max(1, e / t);
                        return this.getSpacedPoints(i);
                    },
                    getEndPoint: function(t) {
                        return void 0 === t && (t = new o), this.getPointAt(1, t);
                    },
                    getLength: function() {
                        var t = this.getLengths();
                        return t[t.length - 1];
                    },
                    getLengths: function(t) {
                        if (void 0 === t && (t = this.arcLengthDivisions), this.cacheArcLengths.length === t + 1 && !this.needsUpdate) return this.cacheArcLengths;
                        this.needsUpdate = !1;
                        var e, i = [], s = this.getPoint(0, this._tmpVec2A), n = 0;
                        i.push(0);
                        for(var r = 1; r <= t; r++)n += (e = this.getPoint(r / t, this._tmpVec2B)).distance(s), i.push(n), s.copy(e);
                        return this.cacheArcLengths = i, i;
                    },
                    getPointAt: function(t, e) {
                        var i = this.getUtoTmapping(t);
                        return this.getPoint(i, e);
                    },
                    getPoints: function(t, e, i) {
                        void 0 === i && (i = []), t || (t = e ? this.getLength() / e : this.defaultDivisions);
                        for(var s = 0; s <= t; s++)i.push(this.getPoint(s / t));
                        return i;
                    },
                    getRandomPoint: function(t) {
                        return void 0 === t && (t = new o), this.getPoint(Math.random(), t);
                    },
                    getSpacedPoints: function(t, e, i) {
                        void 0 === i && (i = []), t || (t = e ? this.getLength() / e : this.defaultDivisions);
                        for(var s = 0; s <= t; s++){
                            var n = this.getUtoTmapping(s / t, null, t);
                            i.push(this.getPoint(n));
                        }
                        return i;
                    },
                    getStartPoint: function(t) {
                        return void 0 === t && (t = new o), this.getPointAt(0, t);
                    },
                    getTangent: function(t, e) {
                        void 0 === e && (e = new o);
                        var i = 1e-4, s = t - i, n = t + i;
                        return s < 0 && (s = 0), n > 1 && (n = 1), this.getPoint(s, this._tmpVec2A), this.getPoint(n, e), e.subtract(this._tmpVec2A).normalize();
                    },
                    getTangentAt: function(t, e) {
                        var i = this.getUtoTmapping(t);
                        return this.getTangent(i, e);
                    },
                    getTFromDistance: function(t, e) {
                        return t <= 0 ? 0 : this.getUtoTmapping(0, t, e);
                    },
                    getUtoTmapping: function(t, e, i) {
                        var s, n = this.getLengths(i), r = 0, o = n.length;
                        s = e ? Math.min(e, n[o - 1]) : t * n[o - 1];
                        for(var a, h = 0, l = o - 1; h <= l;)if ((a = n[r = Math.floor(h + (l - h) / 2)] - s) < 0) h = r + 1;
                        else {
                            if (!(a > 0)) {
                                l = r;
                                break;
                            }
                            l = r - 1;
                        }
                        if (n[r = l] === s) return r / (o - 1);
                        var u = n[r];
                        return (r + (s - u) / (n[r + 1] - u)) / (o - 1);
                    },
                    updateArcLengths: function() {
                        this.needsUpdate = !0, this.getLengths();
                    }
                });
                t.exports = a;
            },
            48835: (t, e, i)=>{
                var s = i(56694), n = i(38517), r = i(75606), o = i(10850), a = i(23701), h = i(93736), l = new s({
                    Extends: n,
                    initialize: function(t, e, i, s, a, l, u, c) {
                        if ("object" == typeof t) {
                            var d = t;
                            t = o(d, "x", 0), e = o(d, "y", 0), i = o(d, "xRadius", 0), s = o(d, "yRadius", i), a = o(d, "startAngle", 0), l = o(d, "endAngle", 360), u = o(d, "clockwise", !1), c = o(d, "rotation", 0);
                        } else void 0 === s && (s = i), void 0 === a && (a = 0), void 0 === l && (l = 360), void 0 === u && (u = !1), void 0 === c && (c = 0);
                        n.call(this, "EllipseCurve"), this.p0 = new h(t, e), this._xRadius = i, this._yRadius = s, this._startAngle = r(a), this._endAngle = r(l), this._clockwise = u, this._rotation = r(c);
                    },
                    getStartPoint: function(t) {
                        return void 0 === t && (t = new h), this.getPoint(0, t);
                    },
                    getResolution: function(t) {
                        return 2 * t;
                    },
                    getPoint: function(t, e) {
                        void 0 === e && (e = new h);
                        for(var i = 2 * Math.PI, s = this._endAngle - this._startAngle, n = Math.abs(s) < Number.EPSILON; s < 0;)s += i;
                        for(; s > i;)s -= i;
                        s < Number.EPSILON && (s = n ? 0 : i), this._clockwise && !n && (s === i ? s = -i : s -= i);
                        var r = this._startAngle + t * s, o = this.p0.x + this._xRadius * Math.cos(r), a = this.p0.y + this._yRadius * Math.sin(r);
                        if (0 !== this._rotation) {
                            var l = Math.cos(this._rotation), u = Math.sin(this._rotation), c = o - this.p0.x, d = a - this.p0.y;
                            o = c * l - d * u + this.p0.x, a = c * u + d * l + this.p0.y;
                        }
                        return e.set(o, a);
                    },
                    setXRadius: function(t) {
                        return this.xRadius = t, this;
                    },
                    setYRadius: function(t) {
                        return this.yRadius = t, this;
                    },
                    setWidth: function(t) {
                        return this.xRadius = t / 2, this;
                    },
                    setHeight: function(t) {
                        return this.yRadius = t / 2, this;
                    },
                    setStartAngle: function(t) {
                        return this.startAngle = t, this;
                    },
                    setEndAngle: function(t) {
                        return this.endAngle = t, this;
                    },
                    setClockwise: function(t) {
                        return this.clockwise = t, this;
                    },
                    setRotation: function(t) {
                        return this.rotation = t, this;
                    },
                    x: {
                        get: function() {
                            return this.p0.x;
                        },
                        set: function(t) {
                            this.p0.x = t;
                        }
                    },
                    y: {
                        get: function() {
                            return this.p0.y;
                        },
                        set: function(t) {
                            this.p0.y = t;
                        }
                    },
                    xRadius: {
                        get: function() {
                            return this._xRadius;
                        },
                        set: function(t) {
                            this._xRadius = t;
                        }
                    },
                    yRadius: {
                        get: function() {
                            return this._yRadius;
                        },
                        set: function(t) {
                            this._yRadius = t;
                        }
                    },
                    startAngle: {
                        get: function() {
                            return a(this._startAngle);
                        },
                        set: function(t) {
                            this._startAngle = r(t);
                        }
                    },
                    endAngle: {
                        get: function() {
                            return a(this._endAngle);
                        },
                        set: function(t) {
                            this._endAngle = r(t);
                        }
                    },
                    clockwise: {
                        get: function() {
                            return this._clockwise;
                        },
                        set: function(t) {
                            this._clockwise = t;
                        }
                    },
                    angle: {
                        get: function() {
                            return a(this._rotation);
                        },
                        set: function(t) {
                            this._rotation = r(t);
                        }
                    },
                    rotation: {
                        get: function() {
                            return this._rotation;
                        },
                        set: function(t) {
                            this._rotation = t;
                        }
                    },
                    toJSON: function() {
                        return {
                            type: this.type,
                            x: this.p0.x,
                            y: this.p0.y,
                            xRadius: this._xRadius,
                            yRadius: this._yRadius,
                            startAngle: a(this._startAngle),
                            endAngle: a(this._endAngle),
                            clockwise: this._clockwise,
                            rotation: a(this._rotation)
                        };
                    }
                });
                l.fromJSON = function(t) {
                    return new l(t);
                }, t.exports = l;
            },
            58084: (t, e, i)=>{
                var s = i(56694), n = i(38517), r = i(80222), o = i(74118), a = i(93736), h = new s({
                    Extends: n,
                    initialize: function(t, e) {
                        n.call(this, "LineCurve"), Array.isArray(t) && (e = new a(t[2], t[3]), t = new a(t[0], t[1])), this.p0 = t, this.p1 = e, this.arcLengthDivisions = 1;
                    },
                    getBounds: function(t) {
                        return void 0 === t && (t = new o), r([
                            this.p0,
                            this.p1
                        ], t);
                    },
                    getStartPoint: function(t) {
                        return void 0 === t && (t = new a), t.copy(this.p0);
                    },
                    getResolution: function(t) {
                        return void 0 === t && (t = 1), t;
                    },
                    getPoint: function(t, e) {
                        return void 0 === e && (e = new a), 1 === t ? e.copy(this.p1) : (e.copy(this.p1).subtract(this.p0).scale(t).add(this.p0), e);
                    },
                    getPointAt: function(t, e) {
                        return this.getPoint(t, e);
                    },
                    getTangent: function(t, e) {
                        return void 0 === e && (e = new a), e.copy(this.p1).subtract(this.p0).normalize(), e;
                    },
                    getUtoTmapping: function(t, e, i) {
                        var s;
                        if (e) {
                            var n = this.getLengths(i), r = n[n.length - 1];
                            s = Math.min(e, r) / r;
                        } else s = t;
                        return s;
                    },
                    draw: function(t) {
                        return t.lineBetween(this.p0.x, this.p0.y, this.p1.x, this.p1.y), t;
                    },
                    toJSON: function() {
                        return {
                            type: this.type,
                            points: [
                                this.p0.x,
                                this.p0.y,
                                this.p1.x,
                                this.p1.y
                            ]
                        };
                    }
                });
                h.fromJSON = function(t) {
                    var e = t.points, i = new a(e[0], e[1]), s = new a(e[2], e[3]);
                    return new h(i, s);
                }, t.exports = h;
            },
            64761: (t, e, i)=>{
                var s = i(56694), n = i(38517), r = i(16252), o = i(93736), a = new s({
                    Extends: n,
                    initialize: function(t, e, i) {
                        n.call(this, "QuadraticBezierCurve"), Array.isArray(t) && (i = new o(t[4], t[5]), e = new o(t[2], t[3]), t = new o(t[0], t[1])), this.p0 = t, this.p1 = e, this.p2 = i;
                    },
                    getStartPoint: function(t) {
                        return void 0 === t && (t = new o), t.copy(this.p0);
                    },
                    getResolution: function(t) {
                        return t;
                    },
                    getPoint: function(t, e) {
                        void 0 === e && (e = new o);
                        var i = this.p0, s = this.p1, n = this.p2;
                        return e.set(r(t, i.x, s.x, n.x), r(t, i.y, s.y, n.y));
                    },
                    draw: function(t, e) {
                        void 0 === e && (e = 32);
                        var i = this.getPoints(e);
                        t.beginPath(), t.moveTo(this.p0.x, this.p0.y);
                        for(var s = 1; s < i.length; s++)t.lineTo(i[s].x, i[s].y);
                        return t.strokePath(), t;
                    },
                    toJSON: function() {
                        return {
                            type: this.type,
                            points: [
                                this.p0.x,
                                this.p0.y,
                                this.p1.x,
                                this.p1.y,
                                this.p2.x,
                                this.p2.y
                            ]
                        };
                    }
                });
                a.fromJSON = function(t) {
                    var e = t.points, i = new o(e[0], e[1]), s = new o(e[2], e[3]), n = new o(e[4], e[5]);
                    return new a(i, s, n);
                }, t.exports = a;
            },
            11956: (t, e, i)=>{
                var s = i(14976), n = i(56694), r = i(38517), o = i(93736), a = new n({
                    Extends: r,
                    initialize: function(t) {
                        void 0 === t && (t = []), r.call(this, "SplineCurve"), this.points = [], this.addPoints(t);
                    },
                    addPoints: function(t) {
                        for(var e = 0; e < t.length; e++){
                            var i = new o;
                            "number" == typeof t[e] ? (i.x = t[e], i.y = t[e + 1], e++) : Array.isArray(t[e]) ? (i.x = t[e][0], i.y = t[e][1]) : (i.x = t[e].x, i.y = t[e].y), this.points.push(i);
                        }
                        return this;
                    },
                    addPoint: function(t, e) {
                        var i = new o(t, e);
                        return this.points.push(i), i;
                    },
                    getStartPoint: function(t) {
                        return void 0 === t && (t = new o), t.copy(this.points[0]);
                    },
                    getResolution: function(t) {
                        return t * this.points.length;
                    },
                    getPoint: function(t, e) {
                        void 0 === e && (e = new o);
                        var i = this.points, n = (i.length - 1) * t, r = Math.floor(n), a = n - r, h = i[0 === r ? r : r - 1], l = i[r], u = i[r > i.length - 2 ? i.length - 1 : r + 1], c = i[r > i.length - 3 ? i.length - 1 : r + 2];
                        return e.set(s(a, h.x, l.x, u.x, c.x), s(a, h.y, l.y, u.y, c.y));
                    },
                    toJSON: function() {
                        for(var t = [], e = 0; e < this.points.length; e++)t.push(this.points[e].x), t.push(this.points[e].y);
                        return {
                            type: this.type,
                            points: t
                        };
                    }
                });
                a.fromJSON = function(t) {
                    return new a(t.points);
                }, t.exports = a;
            },
            73962: (t, e, i)=>{
                t.exports = {
                    Path: i(12822),
                    MoveTo: i(53639),
                    CubicBezier: i(63120),
                    Curve: i(38517),
                    Ellipse: i(48835),
                    Line: i(58084),
                    QuadraticBezier: i(64761),
                    Spline: i(11956)
                };
            },
            53639: (t, e, i)=>{
                var s = i(56694), n = i(93736), r = new s({
                    initialize: function(t, e) {
                        this.active = !1, this.p0 = new n(t, e);
                    },
                    getPoint: function(t, e) {
                        return void 0 === e && (e = new n), e.copy(this.p0);
                    },
                    getPointAt: function(t, e) {
                        return this.getPoint(t, e);
                    },
                    getResolution: function() {
                        return 1;
                    },
                    getLength: function() {
                        return 0;
                    },
                    toJSON: function() {
                        return {
                            type: "MoveTo",
                            points: [
                                this.p0.x,
                                this.p0.y
                            ]
                        };
                    }
                });
                t.exports = r;
            },
            12822: (t, e, i)=>{
                var s = i(56694), n = i(63120), r = i(48835), o = i(61286), a = i(58084), h = i(53639), l = i(64761), u = i(74118), c = i(11956), d = i(93736), f = i(83392), p = new s({
                    initialize: function(t, e) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), this.name = "", this.curves = [], this.cacheLengths = [], this.autoClose = !1, this.startPoint = new d, this._tmpVec2A = new d, this._tmpVec2B = new d, "object" == typeof t ? this.fromJSON(t) : this.startPoint.set(t, e);
                    },
                    add: function(t) {
                        return this.curves.push(t), this;
                    },
                    circleTo: function(t, e, i) {
                        return void 0 === e && (e = !1), this.ellipseTo(t, t, 0, 360, e, i);
                    },
                    closePath: function() {
                        var t = this.curves[0].getPoint(0), e = this.curves[this.curves.length - 1].getPoint(1);
                        return t.equals(e) || this.curves.push(new a(e, t)), this;
                    },
                    cubicBezierTo: function(t, e, i, s, r, o) {
                        var a, h, l, u = this.getEndPoint();
                        return t instanceof d ? (a = t, h = e, l = i) : (a = new d(i, s), h = new d(r, o), l = new d(t, e)), this.add(new n(u, a, h, l));
                    },
                    quadraticBezierTo: function(t, e, i, s) {
                        var n, r, o = this.getEndPoint();
                        return t instanceof d ? (n = t, r = e) : (n = new d(i, s), r = new d(t, e)), this.add(new l(o, n, r));
                    },
                    draw: function(t, e) {
                        for(var i = 0; i < this.curves.length; i++){
                            var s = this.curves[i];
                            s.active && s.draw(t, e);
                        }
                        return t;
                    },
                    ellipseTo: function(t, e, i, s, n, o) {
                        var a = new r(0, 0, t, e, i, s, n, o), h = this.getEndPoint(this._tmpVec2A), l = a.getStartPoint(this._tmpVec2B);
                        return h.subtract(l), a.x = h.x, a.y = h.y, this.add(a);
                    },
                    fromJSON: function(t) {
                        this.curves = [], this.cacheLengths = [], this.startPoint.set(t.x, t.y), this.autoClose = t.autoClose;
                        for(var e = 0; e < t.curves.length; e++){
                            var i = t.curves[e];
                            switch(i.type){
                                case "LineCurve":
                                    this.add(a.fromJSON(i));
                                    break;
                                case "EllipseCurve":
                                    this.add(r.fromJSON(i));
                                    break;
                                case "SplineCurve":
                                    this.add(c.fromJSON(i));
                                    break;
                                case "CubicBezierCurve":
                                    this.add(n.fromJSON(i));
                                    break;
                                case "QuadraticBezierCurve":
                                    this.add(l.fromJSON(i));
                            }
                        }
                        return this;
                    },
                    getBounds: function(t, e) {
                        void 0 === t && (t = new u), void 0 === e && (e = 16), t.x = Number.MAX_VALUE, t.y = Number.MAX_VALUE;
                        for(var i = new u, s = f.MIN_SAFE_INTEGER, n = f.MIN_SAFE_INTEGER, r = 0; r < this.curves.length; r++){
                            var o = this.curves[r];
                            o.active && (o.getBounds(i, e), t.x = Math.min(t.x, i.x), t.y = Math.min(t.y, i.y), s = Math.max(s, i.right), n = Math.max(n, i.bottom));
                        }
                        return t.right = s, t.bottom = n, t;
                    },
                    getCurveLengths: function() {
                        if (this.cacheLengths.length === this.curves.length) return this.cacheLengths;
                        for(var t = [], e = 0, i = 0; i < this.curves.length; i++)e += this.curves[i].getLength(), t.push(e);
                        return this.cacheLengths = t, t;
                    },
                    getCurveAt: function(t) {
                        for(var e = t * this.getLength(), i = this.getCurveLengths(), s = 0; s < i.length;){
                            if (i[s] >= e) return this.curves[s];
                            s++;
                        }
                        return null;
                    },
                    getEndPoint: function(t) {
                        return void 0 === t && (t = new d), this.curves.length > 0 ? this.curves[this.curves.length - 1].getPoint(1, t) : t.copy(this.startPoint), t;
                    },
                    getLength: function() {
                        var t = this.getCurveLengths();
                        return t[t.length - 1];
                    },
                    getPoint: function(t, e) {
                        void 0 === e && (e = new d);
                        for(var i = t * this.getLength(), s = this.getCurveLengths(), n = 0; n < s.length;){
                            if (s[n] >= i) {
                                var r = s[n] - i, o = this.curves[n], a = o.getLength(), h = 0 === a ? 0 : 1 - r / a;
                                return o.getPointAt(h, e);
                            }
                            n++;
                        }
                        return null;
                    },
                    getPoints: function(t) {
                        void 0 === t && (t = 12);
                        for(var e, i = [], s = 0; s < this.curves.length; s++){
                            var n = this.curves[s];
                            if (n.active) for(var r = n.getResolution(t), o = n.getPoints(r), a = 0; a < o.length; a++){
                                var h = o[a];
                                e && e.equals(h) || (i.push(h), e = h);
                            }
                        }
                        return this.autoClose && i.length > 1 && !i[i.length - 1].equals(i[0]) && i.push(i[0]), i;
                    },
                    getRandomPoint: function(t) {
                        return void 0 === t && (t = new d), this.getPoint(Math.random(), t);
                    },
                    getSpacedPoints: function(t) {
                        void 0 === t && (t = 40);
                        for(var e = [], i = 0; i <= t; i++)e.push(this.getPoint(i / t));
                        return this.autoClose && e.push(e[0]), e;
                    },
                    getStartPoint: function(t) {
                        return void 0 === t && (t = new d), t.copy(this.startPoint);
                    },
                    getTangent: function(t, e) {
                        void 0 === e && (e = new d);
                        for(var i = t * this.getLength(), s = this.getCurveLengths(), n = 0; n < s.length;){
                            if (s[n] >= i) {
                                var r = s[n] - i, o = this.curves[n], a = o.getLength(), h = 0 === a ? 0 : 1 - r / a;
                                return o.getTangentAt(h, e);
                            }
                            n++;
                        }
                        return null;
                    },
                    lineTo: function(t, e) {
                        t instanceof d ? this._tmpVec2B.copy(t) : this._tmpVec2B.set(t, e);
                        var i = this.getEndPoint(this._tmpVec2A);
                        return this.add(new a([
                            i.x,
                            i.y,
                            this._tmpVec2B.x,
                            this._tmpVec2B.y
                        ]));
                    },
                    splineTo: function(t) {
                        return t.unshift(this.getEndPoint()), this.add(new c(t));
                    },
                    moveTo: function(t, e) {
                        return t instanceof d ? this.add(new h(t.x, t.y)) : this.add(new h(t, e));
                    },
                    toJSON: function() {
                        for(var t = [], e = 0; e < this.curves.length; e++)t.push(this.curves[e].toJSON());
                        return {
                            type: "Path",
                            x: this.startPoint.x,
                            y: this.startPoint.y,
                            autoClose: this.autoClose,
                            curves: t
                        };
                    },
                    updateArcLengths: function() {
                        this.cacheLengths = [], this.getCurveLengths();
                    },
                    destroy: function() {
                        this.curves.length = 0, this.cacheLengths.length = 0, this.startPoint = void 0;
                    }
                });
                o.register("path", function(t, e) {
                    return new p(t, e);
                }), t.exports = p;
            },
            81078: (t, e, i)=>{
                var s = i(56694), n = i(35026), r = new s({
                    initialize: function(t, e) {
                        this.parent = t, this.events = e, e || (this.events = t.events ? t.events : t), this.list = {}, this.values = {}, this._frozen = !1, !t.hasOwnProperty("sys") && this.events && this.events.once(n.DESTROY, this.destroy, this);
                    },
                    get: function(t) {
                        var e = this.list;
                        if (Array.isArray(t)) {
                            for(var i = [], s = 0; s < t.length; s++)i.push(e[t[s]]);
                            return i;
                        }
                        return e[t];
                    },
                    getAll: function() {
                        var t = {};
                        for(var e in this.list)this.list.hasOwnProperty(e) && (t[e] = this.list[e]);
                        return t;
                    },
                    query: function(t) {
                        var e = {};
                        for(var i in this.list)this.list.hasOwnProperty(i) && i.match(t) && (e[i] = this.list[i]);
                        return e;
                    },
                    set: function(t, e) {
                        if (this._frozen) return this;
                        if ("string" == typeof t) return this.setValue(t, e);
                        for(var i in t)this.setValue(i, t[i]);
                        return this;
                    },
                    inc: function(t, e) {
                        if (this._frozen) return this;
                        void 0 === e && (e = 1);
                        var i = this.get(t);
                        return void 0 === i && (i = 0), this.set(t, i + e), this;
                    },
                    toggle: function(t) {
                        return this._frozen || this.set(t, !this.get(t)), this;
                    },
                    setValue: function(t, e) {
                        if (this._frozen) return this;
                        if (this.has(t)) this.values[t] = e;
                        else {
                            var i = this, s = this.list, r = this.events, o = this.parent;
                            Object.defineProperty(this.values, t, {
                                enumerable: !0,
                                configurable: !0,
                                get: function() {
                                    return s[t];
                                },
                                set: function(e) {
                                    if (!i._frozen) {
                                        var a = s[t];
                                        s[t] = e, r.emit(n.CHANGE_DATA, o, t, e, a), r.emit(n.CHANGE_DATA_KEY + t, o, e, a);
                                    }
                                }
                            }), s[t] = e, r.emit(n.SET_DATA, o, t, e);
                        }
                        return this;
                    },
                    each: function(t, e) {
                        for(var i = [
                            this.parent,
                            null,
                            void 0
                        ], s = 1; s < arguments.length; s++)i.push(arguments[s]);
                        for(var n in this.list)i[1] = n, i[2] = this.list[n], t.apply(e, i);
                        return this;
                    },
                    merge: function(t, e) {
                        for(var i in void 0 === e && (e = !0), t)t.hasOwnProperty(i) && (e || !e && !this.has(i)) && this.setValue(i, t[i]);
                        return this;
                    },
                    remove: function(t) {
                        if (this._frozen) return this;
                        if (!Array.isArray(t)) return this.removeValue(t);
                        for(var e = 0; e < t.length; e++)this.removeValue(t[e]);
                        return this;
                    },
                    removeValue: function(t) {
                        if (this.has(t)) {
                            var e = this.list[t];
                            delete this.list[t], delete this.values[t], this.events.emit(n.REMOVE_DATA, this.parent, t, e);
                        }
                        return this;
                    },
                    pop: function(t) {
                        var e = void 0;
                        return !this._frozen && this.has(t) && (e = this.list[t], delete this.list[t], delete this.values[t], this.events.emit(n.REMOVE_DATA, this.parent, t, e)), e;
                    },
                    has: function(t) {
                        return this.list.hasOwnProperty(t);
                    },
                    setFreeze: function(t) {
                        return this._frozen = t, this;
                    },
                    reset: function() {
                        for(var t in this.list)delete this.list[t], delete this.values[t];
                        return this._frozen = !1, this;
                    },
                    destroy: function() {
                        this.reset(), this.events.off(n.CHANGE_DATA), this.events.off(n.SET_DATA), this.events.off(n.REMOVE_DATA), this.parent = null;
                    },
                    freeze: {
                        get: function() {
                            return this._frozen;
                        },
                        set: function(t) {
                            this._frozen = !!t;
                        }
                    },
                    count: {
                        get: function() {
                            var t = 0;
                            for(var e in this.list)void 0 !== this.list[e] && t++;
                            return t;
                        }
                    }
                });
                t.exports = r;
            },
            76508: (t, e, i)=>{
                var s = i(56694), n = i(81078), r = i(91963), o = i(7599), a = new s({
                    Extends: n,
                    initialize: function(t) {
                        n.call(this, t, t.sys.events), this.scene = t, this.systems = t.sys, t.sys.events.once(o.BOOT, this.boot, this), t.sys.events.on(o.START, this.start, this);
                    },
                    boot: function() {
                        this.events = this.systems.events, this.events.once(o.DESTROY, this.destroy, this);
                    },
                    start: function() {
                        this.events.once(o.SHUTDOWN, this.shutdown, this);
                    },
                    shutdown: function() {
                        this.systems.events.off(o.SHUTDOWN, this.shutdown, this);
                    },
                    destroy: function() {
                        n.prototype.destroy.call(this), this.events.off(o.START, this.start, this), this.scene = null, this.systems = null;
                    }
                });
                r.register("DataManagerPlugin", a, "data"), t.exports = a;
            },
            73569: (t)=>{
                t.exports = "changedata";
            },
            15590: (t)=>{
                t.exports = "changedata-";
            },
            37669: (t)=>{
                t.exports = "destroy";
            },
            87090: (t)=>{
                t.exports = "removedata";
            },
            90142: (t)=>{
                t.exports = "setdata";
            },
            35026: (t, e, i)=>{
                t.exports = {
                    CHANGE_DATA: i(73569),
                    CHANGE_DATA_KEY: i(15590),
                    DESTROY: i(37669),
                    REMOVE_DATA: i(87090),
                    SET_DATA: i(90142)
                };
            },
            1999: (t, e, i)=>{
                t.exports = {
                    DataManager: i(81078),
                    DataManagerPlugin: i(76508),
                    Events: i(35026)
                };
            },
            10720: (t, e, i)=>{
                var s = i(1350), n = {
                    flac: !1,
                    aac: !1,
                    audioData: !1,
                    dolby: !1,
                    m4a: !1,
                    mp3: !1,
                    ogg: !1,
                    opus: !1,
                    wav: !1,
                    webAudio: !1,
                    webm: !1
                };
                t.exports = function() {
                    if ("function" == typeof importScripts) return n;
                    n.audioData = !!window.Audio, n.webAudio = !(!window.AudioContext && !window.webkitAudioContext);
                    var t = document.createElement("audio"), e = !!t.canPlayType;
                    try {
                        if (e) {
                            var i = function(e, i) {
                                var s = t.canPlayType("audio/" + e).replace(/^no$/, "");
                                return i ? Boolean(s || t.canPlayType("audio/" + i).replace(/^no$/, "")) : Boolean(s);
                            };
                            if (n.ogg = i('ogg; codecs="vorbis"'), n.opus = i('ogg; codecs="opus"', "opus"), n.mp3 = i("mpeg"), n.wav = i("wav"), n.m4a = i("x-m4a"), n.aac = i("aac"), n.flac = i("flac", "x-flac"), n.webm = i('webm; codecs="vorbis"'), "" !== t.canPlayType('audio/mp4; codecs="ec-3"')) {
                                if (s.edge) n.dolby = !0;
                                else if (s.safari && s.safariVersion >= 9 && /Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)) {
                                    var r = parseInt(RegExp.$1, 10), o = parseInt(RegExp.$2, 10);
                                    (10 === r && o >= 11 || r > 10) && (n.dolby = !0);
                                }
                            }
                        }
                    } catch (t) {}
                    return n;
                }();
            },
            1350: (t, e, i)=>{
                var s, n = i(36580), r = {
                    chrome: !1,
                    chromeVersion: 0,
                    edge: !1,
                    firefox: !1,
                    firefoxVersion: 0,
                    ie: !1,
                    ieVersion: 0,
                    mobileSafari: !1,
                    opera: !1,
                    safari: !1,
                    safariVersion: 0,
                    silk: !1,
                    trident: !1,
                    tridentVersion: 0,
                    es2019: !1
                };
                t.exports = (s = navigator.userAgent, /Edg\/\d+/.test(s) ? (r.edge = !0, r.es2019 = !0) : /OPR/.test(s) ? (r.opera = !0, r.es2019 = !0) : /Chrome\/(\d+)/.test(s) && !n.windowsPhone ? (r.chrome = !0, r.chromeVersion = parseInt(RegExp.$1, 10), r.es2019 = r.chromeVersion > 69) : /Firefox\D+(\d+)/.test(s) ? (r.firefox = !0, r.firefoxVersion = parseInt(RegExp.$1, 10), r.es2019 = r.firefoxVersion > 10) : /AppleWebKit/.test(s) && n.iOS ? r.mobileSafari = !0 : /MSIE (\d+\.\d+);/.test(s) ? (r.ie = !0, r.ieVersion = parseInt(RegExp.$1, 10)) : /Version\/(\d+\.\d+) Safari/.test(s) && !n.windowsPhone ? (r.safari = !0, r.safariVersion = parseInt(RegExp.$1, 10), r.es2019 = r.safariVersion > 10) : /Trident\/(\d+\.\d+)(.*)rv:(\d+\.\d+)/.test(s) && (r.ie = !0, r.trident = !0, r.tridentVersion = parseInt(RegExp.$1, 10), r.ieVersion = parseInt(RegExp.$3, 10)), /Silk/.test(s) && (r.silk = !0), r);
            },
            98581: (t, e, i)=>{
                var s, n, r, o = i(61068), a = {
                    supportInverseAlpha: !1,
                    supportNewBlendModes: !1
                };
                t.exports = ("function" != typeof importScripts && void 0 !== document && (a.supportNewBlendModes = (s = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/", n = "AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==", (r = new Image).onload = function() {
                    var t = new Image;
                    t.onload = function() {
                        var e = o.create2D(t, 6).getContext("2d", {
                            willReadFrequently: !0
                        });
                        if (e.globalCompositeOperation = "multiply", e.drawImage(r, 0, 0), e.drawImage(t, 2, 0), !e.getImageData(2, 0, 1, 1)) return !1;
                        var i = e.getImageData(2, 0, 1, 1).data;
                        o.remove(t), a.supportNewBlendModes = 255 === i[0] && 0 === i[1] && 0 === i[2];
                    }, t.src = s + "/wCKxvRF" + n;
                }, r.src = s + "AP804Oa6" + n, !1), a.supportInverseAlpha = function() {
                    var t = o.create2D(this, 2).getContext("2d", {
                        willReadFrequently: !0
                    });
                    t.fillStyle = "rgba(10, 20, 30, 0.5)", t.fillRect(0, 0, 1, 1);
                    var e = t.getImageData(0, 0, 1, 1);
                    if (null === e) return !1;
                    t.putImageData(e, 1, 0);
                    var i = t.getImageData(1, 0, 1, 1), s = i.data[0] === e.data[0] && i.data[1] === e.data[1] && i.data[2] === e.data[2] && i.data[3] === e.data[3];
                    return o.remove(this), s;
                }()), a);
            },
            90185: (t, e, i)=>{
                var s = i(36580), n = i(1350), r = i(61068), o = {
                    canvas: !1,
                    canvasBitBltShift: null,
                    file: !1,
                    fileSystem: !1,
                    getUserMedia: !0,
                    littleEndian: !1,
                    localStorage: !1,
                    pointerLock: !1,
                    stableSort: !1,
                    support32bit: !1,
                    vibration: !1,
                    webGL: !1,
                    worker: !1
                };
                t.exports = function() {
                    if ("function" == typeof importScripts) return o;
                    o.canvas = !!window.CanvasRenderingContext2D;
                    try {
                        o.localStorage = !!localStorage.getItem;
                    } catch (t) {
                        o.localStorage = !1;
                    }
                    o.file = !!(window.File && window.FileReader && window.FileList && window.Blob), o.fileSystem = !!window.requestFileSystem;
                    var t, e, i, a = !1;
                    return o.webGL = function() {
                        if (window.WebGLRenderingContext) try {
                            var t = r.createWebGL(this), e = t.getContext("webgl") || t.getContext("experimental-webgl"), i = r.create2D(this), s = i.getContext("2d", {
                                willReadFrequently: !0
                            }).createImageData(1, 1);
                            return a = s.data instanceof Uint8ClampedArray, r.remove(t), r.remove(i), !!e;
                        } catch (t) {
                            return !1;
                        }
                        return !1;
                    }(), o.worker = !!window.Worker, o.pointerLock = "pointerLockElement" in document || "mozPointerLockElement" in document || "webkitPointerLockElement" in document, navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.oGetUserMedia, window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL, o.getUserMedia = o.getUserMedia && !!navigator.getUserMedia && !!window.URL, n.firefox && n.firefoxVersion < 21 && (o.getUserMedia = !1), !s.iOS && (n.ie || n.firefox || n.chrome) && (o.canvasBitBltShift = !0), (n.safari || n.mobileSafari) && (o.canvasBitBltShift = !1), navigator.vibrate = navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate, navigator.vibrate && (o.vibration = !0), "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array && "undefined" != typeof Uint32Array && (o.littleEndian = (t = new ArrayBuffer(4), e = new Uint8Array(t), i = new Uint32Array(t), e[0] = 161, e[1] = 178, e[2] = 195, e[3] = 212, 3569595041 === i[0] || 2712847316 !== i[0] && null)), o.support32bit = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8ClampedArray && "undefined" != typeof Int32Array && null !== o.littleEndian && a, o;
                }();
            },
            33553: (t)=>{
                var e = {
                    available: !1,
                    cancel: "",
                    keyboard: !1,
                    request: ""
                };
                t.exports = function() {
                    if ("function" == typeof importScripts) return e;
                    var t, i = "Fullscreen", s = "FullScreen", n = [
                        "request" + i,
                        "request" + s,
                        "webkitRequest" + i,
                        "webkitRequest" + s,
                        "msRequest" + i,
                        "msRequest" + s,
                        "mozRequest" + s,
                        "mozRequest" + i
                    ];
                    for(t = 0; t < n.length; t++)if (document.documentElement[n[t]]) {
                        e.available = !0, e.request = n[t];
                        break;
                    }
                    var r = [
                        "cancel" + s,
                        "exit" + i,
                        "webkitCancel" + s,
                        "webkitExit" + i,
                        "msCancel" + s,
                        "msExit" + i,
                        "mozCancel" + s,
                        "mozExit" + i
                    ];
                    if (e.available) {
                        for(t = 0; t < r.length; t++)if (document[r[t]]) {
                            e.cancel = r[t];
                            break;
                        }
                    }
                    return window.Element && Element.ALLOW_KEYBOARD_INPUT && !/ Version\/5\.1(?:\.\d+)? Safari\//.test(navigator.userAgent) && (e.keyboard = !0), Object.defineProperty(e, "active", {
                        get: function() {
                            return !!(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement);
                        }
                    }), e;
                }();
            },
            95872: (t, e, i)=>{
                var s = i(1350), n = {
                    gamepads: !1,
                    mspointer: !1,
                    touch: !1,
                    wheelEvent: null
                };
                t.exports = ("function" == typeof importScripts || (("ontouchstart" in document.documentElement || navigator.maxTouchPoints && navigator.maxTouchPoints >= 1) && (n.touch = !0), (navigator.msPointerEnabled || navigator.pointerEnabled) && (n.mspointer = !0), navigator.getGamepads && (n.gamepads = !0), "onwheel" in window || s.ie && "WheelEvent" in window ? n.wheelEvent = "wheel" : "onmousewheel" in window ? n.wheelEvent = "mousewheel" : s.firefox && "MouseScrollEvent" in window && (n.wheelEvent = "DOMMouseScroll")), n);
            },
            36580: (t)=>{
                var e = {
                    android: !1,
                    chromeOS: !1,
                    cordova: !1,
                    crosswalk: !1,
                    desktop: !1,
                    ejecta: !1,
                    electron: !1,
                    iOS: !1,
                    iOSVersion: 0,
                    iPad: !1,
                    iPhone: !1,
                    kindle: !1,
                    linux: !1,
                    macOS: !1,
                    node: !1,
                    nodeWebkit: !1,
                    pixelRatio: 1,
                    webApp: !1,
                    windows: !1,
                    windowsPhone: !1
                };
                t.exports = function() {
                    if ("function" == typeof importScripts) return e;
                    var t = navigator.userAgent;
                    /Windows/.test(t) ? e.windows = !0 : /Mac OS/.test(t) && !/like Mac OS/.test(t) ? navigator.maxTouchPoints && navigator.maxTouchPoints > 2 ? (e.iOS = !0, e.iPad = !0, navigator.appVersion.match(/Version\/(\d+)/), e.iOSVersion = parseInt(RegExp.$1, 10)) : e.macOS = !0 : /Android/.test(t) ? e.android = !0 : /Linux/.test(t) ? e.linux = !0 : /iP[ao]d|iPhone/i.test(t) ? (e.iOS = !0, navigator.appVersion.match(/OS (\d+)/), e.iOSVersion = parseInt(RegExp.$1, 10), e.iPhone = -1 !== t.toLowerCase().indexOf("iphone"), e.iPad = -1 !== t.toLowerCase().indexOf("ipad")) : /Kindle/.test(t) || /\bKF[A-Z][A-Z]+/.test(t) || /Silk.*Mobile Safari/.test(t) ? e.kindle = !0 : /CrOS/.test(t) && (e.chromeOS = !0), (/Windows Phone/i.test(t) || /IEMobile/i.test(t)) && (e.android = !1, e.iOS = !1, e.macOS = !1, e.windows = !0, e.windowsPhone = !0);
                    var i = /Silk/.test(t);
                    return (e.windows || e.macOS || e.linux && !i || e.chromeOS) && (e.desktop = !0), (e.windowsPhone || /Windows NT/i.test(t) && /Touch/i.test(t)) && (e.desktop = !1), navigator.standalone && (e.webApp = !0), "function" != typeof importScripts && (void 0 !== window.cordova && (e.cordova = !0), void 0 !== window.ejecta && (e.ejecta = !0)), "undefined" != typeof process && process.versions && process.versions.node && (e.node = !0), e.node && "object" == typeof process.versions && (e.nodeWebkit = !!process.versions["node-webkit"], e.electron = !!process.versions.electron), /Crosswalk/.test(t) && (e.crosswalk = !0), e.pixelRatio = window.devicePixelRatio || 1, e;
                }();
            },
            53861: (t, e, i)=>{
                var s = i(72632), n = {
                    h264: !1,
                    hls: !1,
                    mp4: !1,
                    m4v: !1,
                    ogg: !1,
                    vp9: !1,
                    webm: !1,
                    hasRequestVideoFrame: !1
                };
                t.exports = function() {
                    if ("function" == typeof importScripts) return n;
                    var t = document.createElement("video"), e = !!t.canPlayType, i = /^no$/;
                    try {
                        e && (t.canPlayType('video/ogg; codecs="theora"').replace(i, "") && (n.ogg = !0), t.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(i, "") && (n.h264 = !0, n.mp4 = !0), t.canPlayType("video/x-m4v").replace(i, "") && (n.m4v = !0), t.canPlayType('video/webm; codecs="vp8, vorbis"').replace(i, "") && (n.webm = !0), t.canPlayType('video/webm; codecs="vp9"').replace(i, "") && (n.vp9 = !0), t.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"').replace(i, "") && (n.hls = !0));
                    } catch (t) {}
                    return t.parentNode && t.parentNode.removeChild(t), n.getVideoURL = function(t) {
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var e = 0; e < t.length; e++){
                            var i, r = s(t[e], "url", t[e]);
                            if (0 === r.indexOf("blob:")) return {
                                url: r,
                                type: ""
                            };
                            if (i = 0 === r.indexOf("data:") ? r.split(",")[0].match(/\/(.*?);/) : r.match(/\.([a-zA-Z0-9]+)($|\?)/), i = s(t[e], "type", i ? i[1] : "").toLowerCase(), n[i]) return {
                                url: r,
                                type: i
                            };
                        }
                        return null;
                    }, n;
                }();
            },
            77290: (t, e, i)=>{
                t.exports = {
                    os: i(36580),
                    browser: i(1350),
                    features: i(90185),
                    input: i(95872),
                    audio: i(10720),
                    video: i(53861),
                    fullscreen: i(33553),
                    canvasFeatures: i(98581)
                };
            },
            65246: (t, e, i)=>{
                var s = i(56694), n = new Float32Array(20), r = new s({
                    initialize: function() {
                        this._matrix = new Float32Array(20), this.alpha = 1, this._dirty = !0, this._data = new Float32Array(20), this.reset();
                    },
                    set: function(t) {
                        return this._matrix.set(t), this._dirty = !0, this;
                    },
                    reset: function() {
                        var t = this._matrix;
                        return t.fill(0), t[0] = 1, t[6] = 1, t[12] = 1, t[18] = 1, this.alpha = 1, this._dirty = !0, this;
                    },
                    getData: function() {
                        var t = this._data;
                        return this._dirty && (t.set(this._matrix), t[4] /= 255, t[9] /= 255, t[14] /= 255, t[19] /= 255, this._dirty = !1), t;
                    },
                    brightness: function(t, e) {
                        void 0 === t && (t = 0), void 0 === e && (e = !1);
                        var i = t;
                        return this.multiply([
                            i,
                            0,
                            0,
                            0,
                            0,
                            0,
                            i,
                            0,
                            0,
                            0,
                            0,
                            0,
                            i,
                            0,
                            0,
                            0,
                            0,
                            0,
                            1,
                            0
                        ], e);
                    },
                    saturate: function(t, e) {
                        void 0 === t && (t = 0), void 0 === e && (e = !1);
                        var i = 2 * t / 3 + 1, s = -0.5 * (i - 1);
                        return this.multiply([
                            i,
                            s,
                            s,
                            0,
                            0,
                            s,
                            i,
                            s,
                            0,
                            0,
                            s,
                            s,
                            i,
                            0,
                            0,
                            0,
                            0,
                            0,
                            1,
                            0
                        ], e);
                    },
                    desaturate: function(t) {
                        return void 0 === t && (t = !1), this.saturate(-1, t);
                    },
                    hue: function(t, e) {
                        void 0 === t && (t = 0), void 0 === e && (e = !1), t = t / 180 * Math.PI;
                        var i = Math.cos(t), s = Math.sin(t), n = .213, r = .715, o = .072;
                        return this.multiply([
                            n + .787 * i + s * -n,
                            r + i * -r + s * -r,
                            o + i * -o + .928 * s,
                            0,
                            0,
                            n + i * -n + .143 * s,
                            r + i * (1 - r) + .14 * s,
                            o + i * -o + -0.283 * s,
                            0,
                            0,
                            n + i * -n + -0.787 * s,
                            r + i * -r + s * r,
                            o + .928 * i + s * o,
                            0,
                            0,
                            0,
                            0,
                            0,
                            1,
                            0
                        ], e);
                    },
                    grayscale: function(t, e) {
                        return void 0 === t && (t = 1), void 0 === e && (e = !1), this.saturate(-t, e);
                    },
                    blackWhite: function(t) {
                        return void 0 === t && (t = !1), this.multiply(r.BLACK_WHITE, t);
                    },
                    contrast: function(t, e) {
                        void 0 === t && (t = 0), void 0 === e && (e = !1);
                        var i = t + 1, s = -0.5 * (i - 1);
                        return this.multiply([
                            i,
                            0,
                            0,
                            0,
                            s,
                            0,
                            i,
                            0,
                            0,
                            s,
                            0,
                            0,
                            i,
                            0,
                            s,
                            0,
                            0,
                            0,
                            1,
                            0
                        ], e);
                    },
                    negative: function(t) {
                        return void 0 === t && (t = !1), this.multiply(r.NEGATIVE, t);
                    },
                    desaturateLuminance: function(t) {
                        return void 0 === t && (t = !1), this.multiply(r.DESATURATE_LUMINANCE, t);
                    },
                    sepia: function(t) {
                        return void 0 === t && (t = !1), this.multiply(r.SEPIA, t);
                    },
                    night: function(t, e) {
                        return void 0 === t && (t = .1), void 0 === e && (e = !1), this.multiply([
                            -2 * t,
                            -t,
                            0,
                            0,
                            0,
                            -t,
                            0,
                            t,
                            0,
                            0,
                            0,
                            t,
                            2 * t,
                            0,
                            0,
                            0,
                            0,
                            0,
                            1,
                            0
                        ], e);
                    },
                    lsd: function(t) {
                        return void 0 === t && (t = !1), this.multiply(r.LSD, t);
                    },
                    brown: function(t) {
                        return void 0 === t && (t = !1), this.multiply(r.BROWN, t);
                    },
                    vintagePinhole: function(t) {
                        return void 0 === t && (t = !1), this.multiply(r.VINTAGE, t);
                    },
                    kodachrome: function(t) {
                        return void 0 === t && (t = !1), this.multiply(r.KODACHROME, t);
                    },
                    technicolor: function(t) {
                        return void 0 === t && (t = !1), this.multiply(r.TECHNICOLOR, t);
                    },
                    polaroid: function(t) {
                        return void 0 === t && (t = !1), this.multiply(r.POLAROID, t);
                    },
                    shiftToBGR: function(t) {
                        return void 0 === t && (t = !1), this.multiply(r.SHIFT_BGR, t);
                    },
                    multiply: function(t, e) {
                        void 0 === e && (e = !1), e || this.reset();
                        var i = this._matrix, s = n;
                        return s.set(i), i.set([
                            s[0] * t[0] + s[1] * t[5] + s[2] * t[10] + s[3] * t[15],
                            s[0] * t[1] + s[1] * t[6] + s[2] * t[11] + s[3] * t[16],
                            s[0] * t[2] + s[1] * t[7] + s[2] * t[12] + s[3] * t[17],
                            s[0] * t[3] + s[1] * t[8] + s[2] * t[13] + s[3] * t[18],
                            s[0] * t[4] + s[1] * t[9] + s[2] * t[14] + s[3] * t[19] + s[4],
                            s[5] * t[0] + s[6] * t[5] + s[7] * t[10] + s[8] * t[15],
                            s[5] * t[1] + s[6] * t[6] + s[7] * t[11] + s[8] * t[16],
                            s[5] * t[2] + s[6] * t[7] + s[7] * t[12] + s[8] * t[17],
                            s[5] * t[3] + s[6] * t[8] + s[7] * t[13] + s[8] * t[18],
                            s[5] * t[4] + s[6] * t[9] + s[7] * t[14] + s[8] * t[19] + s[9],
                            s[10] * t[0] + s[11] * t[5] + s[12] * t[10] + s[13] * t[15],
                            s[10] * t[1] + s[11] * t[6] + s[12] * t[11] + s[13] * t[16],
                            s[10] * t[2] + s[11] * t[7] + s[12] * t[12] + s[13] * t[17],
                            s[10] * t[3] + s[11] * t[8] + s[12] * t[13] + s[13] * t[18],
                            s[10] * t[4] + s[11] * t[9] + s[12] * t[14] + s[13] * t[19] + s[14],
                            s[15] * t[0] + s[16] * t[5] + s[17] * t[10] + s[18] * t[15],
                            s[15] * t[1] + s[16] * t[6] + s[17] * t[11] + s[18] * t[16],
                            s[15] * t[2] + s[16] * t[7] + s[17] * t[12] + s[18] * t[17],
                            s[15] * t[3] + s[16] * t[8] + s[17] * t[13] + s[18] * t[18],
                            s[15] * t[4] + s[16] * t[9] + s[17] * t[14] + s[18] * t[19] + s[19]
                        ]), this._dirty = !0, this;
                    }
                });
                r.BLACK_WHITE = [
                    .3,
                    .6,
                    .1,
                    0,
                    0,
                    .3,
                    .6,
                    .1,
                    0,
                    0,
                    .3,
                    .6,
                    .1,
                    0,
                    0,
                    0,
                    0,
                    0,
                    1,
                    0
                ], r.NEGATIVE = [
                    -1,
                    0,
                    0,
                    1,
                    0,
                    0,
                    -1,
                    0,
                    1,
                    0,
                    0,
                    0,
                    -1,
                    1,
                    0,
                    0,
                    0,
                    0,
                    1,
                    0
                ], r.DESATURATE_LUMINANCE = [
                    .2764723,
                    .929708,
                    .0938197,
                    0,
                    -37.1,
                    .2764723,
                    .929708,
                    .0938197,
                    0,
                    -37.1,
                    .2764723,
                    .929708,
                    .0938197,
                    0,
                    -37.1,
                    0,
                    0,
                    0,
                    1,
                    0
                ], r.SEPIA = [
                    .393,
                    .7689999,
                    .18899999,
                    0,
                    0,
                    .349,
                    .6859999,
                    .16799999,
                    0,
                    0,
                    .272,
                    .5339999,
                    .13099999,
                    0,
                    0,
                    0,
                    0,
                    0,
                    1,
                    0
                ], r.LSD = [
                    2,
                    -0.4,
                    .5,
                    0,
                    0,
                    -0.5,
                    2,
                    -0.4,
                    0,
                    0,
                    -0.4,
                    -0.5,
                    3,
                    0,
                    0,
                    0,
                    0,
                    0,
                    1,
                    0
                ], r.BROWN = [
                    .5997023498159715,
                    .34553243048391263,
                    -0.2708298674538042,
                    0,
                    47.43192855600873,
                    -0.037703249837783157,
                    .8609577587992641,
                    .15059552388459913,
                    0,
                    -36.96841498319127,
                    .24113635128153335,
                    -0.07441037908422492,
                    .44972182064877153,
                    0,
                    -7.562075277591283,
                    0,
                    0,
                    0,
                    1,
                    0
                ], r.VINTAGE = [
                    .6279345635605994,
                    .3202183420819367,
                    -0.03965408211312453,
                    0,
                    9.651285835294123,
                    .02578397704808868,
                    .6441188644374771,
                    .03259127616149294,
                    0,
                    7.462829176470591,
                    .0466055556782719,
                    -0.0851232987247891,
                    .5241648018700465,
                    0,
                    5.159190588235296,
                    0,
                    0,
                    0,
                    1,
                    0
                ], r.KODACHROME = [
                    1.1285582396593525,
                    -0.3967382283601348,
                    -0.03992559172921793,
                    0,
                    63.72958762196502,
                    -0.16404339962244616,
                    1.0835251566291304,
                    -0.05498805115633132,
                    0,
                    24.732407896706203,
                    -0.16786010706155763,
                    -0.5603416277695248,
                    1.6014850761964943,
                    0,
                    35.62982807460946,
                    0,
                    0,
                    0,
                    1,
                    0
                ], r.TECHNICOLOR = [
                    1.9125277891456083,
                    -0.8545344976951645,
                    -0.09155508482755585,
                    0,
                    11.793603434377337,
                    -0.3087833385928097,
                    1.7658908555458428,
                    -0.10601743074722245,
                    0,
                    -70.35205161461398,
                    -0.231103377548616,
                    -0.7501899197440212,
                    1.847597816108189,
                    0,
                    30.950940869491138,
                    0,
                    0,
                    0,
                    1,
                    0
                ], r.POLAROID = [
                    1.438,
                    -0.062,
                    -0.062,
                    0,
                    0,
                    -0.122,
                    1.378,
                    -0.122,
                    0,
                    0,
                    -0.016,
                    -0.016,
                    1.483,
                    0,
                    0,
                    0,
                    0,
                    0,
                    1,
                    0
                ], r.SHIFT_BGR = [
                    0,
                    0,
                    1,
                    0,
                    0,
                    0,
                    1,
                    0,
                    0,
                    0,
                    1,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    0,
                    1,
                    0
                ], t.exports = r;
            },
            39298: (t, e, i)=>{
                var s = i(56694), n = i(72283), r = new s({
                    initialize: function(t, e, i) {
                        this._rgb = [
                            0,
                            0,
                            0
                        ], this.onChangeCallback = n, this.dirty = !1, this.set(t, e, i);
                    },
                    set: function(t, e, i) {
                        return void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), this._rgb = [
                            t,
                            e,
                            i
                        ], this.onChange(), this;
                    },
                    equals: function(t, e, i) {
                        var s = this._rgb;
                        return s[0] === t && s[1] === e && s[2] === i;
                    },
                    onChange: function() {
                        this.dirty = !0;
                        var t = this._rgb;
                        this.onChangeCallback.call(this, t[0], t[1], t[2]);
                    },
                    r: {
                        get: function() {
                            return this._rgb[0];
                        },
                        set: function(t) {
                            this._rgb[0] = t, this.onChange();
                        }
                    },
                    g: {
                        get: function() {
                            return this._rgb[1];
                        },
                        set: function(t) {
                            this._rgb[1] = t, this.onChange();
                        }
                    },
                    b: {
                        get: function() {
                            return this._rgb[2];
                        },
                        set: function(t) {
                            this._rgb[2] = t, this.onChange();
                        }
                    },
                    destroy: function() {
                        this.onChangeCallback = null;
                    }
                });
                t.exports = r;
            },
            84093: (t)=>{
                t.exports = {
                    TOP_LEFT: 0,
                    TOP_CENTER: 1,
                    TOP_RIGHT: 2,
                    LEFT_TOP: 3,
                    LEFT_CENTER: 4,
                    LEFT_BOTTOM: 5,
                    CENTER: 6,
                    RIGHT_TOP: 7,
                    RIGHT_CENTER: 8,
                    RIGHT_BOTTOM: 9,
                    BOTTOM_LEFT: 10,
                    BOTTOM_CENTER: 11,
                    BOTTOM_RIGHT: 12
                };
            },
            32058: (t, e, i)=>{
                var s = i(97328), n = i(59994), r = i(73174), o = i(28417);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), o(t, n(e) + i), r(t, s(e) + a), t;
                };
            },
            85535: (t, e, i)=>{
                var s = i(97328), n = i(40163), r = i(73174), o = i(74465);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), o(t, n(e) - i), r(t, s(e) + a), t;
                };
            },
            9605: (t, e, i)=>{
                var s = i(97328), n = i(70271), r = i(73174), o = i(19298);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), o(t, n(e) + i), r(t, s(e) + a), t;
                };
            },
            22529: (t, e, i)=>{
                var s = i(21843), n = i(59994), r = i(29568);
                t.exports = function(t, e, i, o) {
                    return void 0 === i && (i = 0), void 0 === o && (o = 0), s(t, n(e) + i, r(e) + o), t;
                };
            },
            5739: (t, e, i)=>{
                var s = i(29568), n = i(40163), r = i(81711), o = i(74465);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), o(t, n(e) - i), r(t, s(e) + a), t;
                };
            },
            40327: (t, e, i)=>{
                var s = i(84093), n = [];
                n[s.BOTTOM_CENTER] = i(32058), n[s.BOTTOM_LEFT] = i(85535), n[s.BOTTOM_RIGHT] = i(9605), n[s.CENTER] = i(22529), n[s.LEFT_CENTER] = i(5739), n[s.RIGHT_CENTER] = i(27683), n[s.TOP_CENTER] = i(96439), n[s.TOP_LEFT] = i(81447), n[s.TOP_RIGHT] = i(47888), n[s.LEFT_BOTTOM] = n[s.BOTTOM_LEFT], n[s.LEFT_TOP] = n[s.TOP_LEFT], n[s.RIGHT_BOTTOM] = n[s.BOTTOM_RIGHT], n[s.RIGHT_TOP] = n[s.TOP_RIGHT];
                t.exports = function(t, e, i, s, r) {
                    return n[i](t, e, s, r);
                };
            },
            27683: (t, e, i)=>{
                var s = i(29568), n = i(70271), r = i(81711), o = i(19298);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), o(t, n(e) + i), r(t, s(e) + a), t;
                };
            },
            96439: (t, e, i)=>{
                var s = i(59994), n = i(47196), r = i(28417), o = i(84349);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), r(t, s(e) + i), o(t, n(e) - a), t;
                };
            },
            81447: (t, e, i)=>{
                var s = i(40163), n = i(47196), r = i(74465), o = i(84349);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), r(t, s(e) - i), o(t, n(e) - a), t;
                };
            },
            47888: (t, e, i)=>{
                var s = i(70271), n = i(47196), r = i(19298), o = i(84349);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), r(t, s(e) + i), o(t, n(e) - a), t;
                };
            },
            46997: (t, e, i)=>{
                t.exports = {
                    BottomCenter: i(32058),
                    BottomLeft: i(85535),
                    BottomRight: i(9605),
                    Center: i(22529),
                    LeftCenter: i(5739),
                    QuickSet: i(40327),
                    RightCenter: i(27683),
                    TopCenter: i(96439),
                    TopLeft: i(81447),
                    TopRight: i(47888)
                };
            },
            93545: (t, e, i)=>{
                var s = i(84093), n = i(98611), r = {
                    In: i(46997),
                    To: i(86639)
                };
                r = n(!1, r, s), t.exports = r;
            },
            27118: (t, e, i)=>{
                var s = i(97328), n = i(59994), r = i(28417), o = i(84349);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), r(t, n(e) + i), o(t, s(e) + a), t;
                };
            },
            84469: (t, e, i)=>{
                var s = i(97328), n = i(40163), r = i(74465), o = i(84349);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), r(t, n(e) - i), o(t, s(e) + a), t;
                };
            },
            51577: (t, e, i)=>{
                var s = i(97328), n = i(70271), r = i(19298), o = i(84349);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), r(t, n(e) + i), o(t, s(e) + a), t;
                };
            },
            90271: (t, e, i)=>{
                var s = i(97328), n = i(40163), r = i(73174), o = i(19298);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), o(t, n(e) - i), r(t, s(e) + a), t;
                };
            },
            30466: (t, e, i)=>{
                var s = i(29568), n = i(40163), r = i(81711), o = i(19298);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), o(t, n(e) - i), r(t, s(e) + a), t;
                };
            },
            50087: (t, e, i)=>{
                var s = i(40163), n = i(47196), r = i(19298), o = i(84349);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), r(t, s(e) - i), o(t, n(e) - a), t;
                };
            },
            82590: (t, e, i)=>{
                var s = i(84093), n = [];
                n[s.BOTTOM_CENTER] = i(27118), n[s.BOTTOM_LEFT] = i(84469), n[s.BOTTOM_RIGHT] = i(51577), n[s.LEFT_BOTTOM] = i(90271), n[s.LEFT_CENTER] = i(30466), n[s.LEFT_TOP] = i(50087), n[s.RIGHT_BOTTOM] = i(13555), n[s.RIGHT_CENTER] = i(99049), n[s.RIGHT_TOP] = i(67788), n[s.TOP_CENTER] = i(78170), n[s.TOP_LEFT] = i(54145), n[s.TOP_RIGHT] = i(75548);
                t.exports = function(t, e, i, s, r) {
                    return n[i](t, e, s, r);
                };
            },
            13555: (t, e, i)=>{
                var s = i(97328), n = i(70271), r = i(73174), o = i(74465);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), o(t, n(e) + i), r(t, s(e) + a), t;
                };
            },
            99049: (t, e, i)=>{
                var s = i(29568), n = i(70271), r = i(81711), o = i(74465);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), o(t, n(e) + i), r(t, s(e) + a), t;
                };
            },
            67788: (t, e, i)=>{
                var s = i(70271), n = i(47196), r = i(74465), o = i(84349);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), r(t, s(e) + i), o(t, n(e) - a), t;
                };
            },
            78170: (t, e, i)=>{
                var s = i(59994), n = i(47196), r = i(73174), o = i(28417);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), o(t, s(e) + i), r(t, n(e) - a), t;
                };
            },
            54145: (t, e, i)=>{
                var s = i(40163), n = i(47196), r = i(73174), o = i(74465);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), o(t, s(e) - i), r(t, n(e) - a), t;
                };
            },
            75548: (t, e, i)=>{
                var s = i(70271), n = i(47196), r = i(73174), o = i(19298);
                t.exports = function(t, e, i, a) {
                    return void 0 === i && (i = 0), void 0 === a && (a = 0), o(t, s(e) + i), r(t, n(e) - a), t;
                };
            },
            86639: (t, e, i)=>{
                t.exports = {
                    BottomCenter: i(27118),
                    BottomLeft: i(84469),
                    BottomRight: i(51577),
                    LeftBottom: i(90271),
                    LeftCenter: i(30466),
                    LeftTop: i(50087),
                    QuickSet: i(82590),
                    RightBottom: i(13555),
                    RightCenter: i(99049),
                    RightTop: i(67788),
                    TopCenter: i(78170),
                    TopLeft: i(54145),
                    TopRight: i(75548)
                };
            },
            21843: (t, e, i)=>{
                var s = i(28417), n = i(81711);
                t.exports = function(t, e, i) {
                    return s(t, e), n(t, i);
                };
            },
            97328: (t)=>{
                t.exports = function(t) {
                    return t.y + t.height - t.height * t.originY;
                };
            },
            7126: (t, e, i)=>{
                var s = i(97328), n = i(40163), r = i(70271), o = i(47196), a = i(74118);
                t.exports = function(t, e) {
                    void 0 === e && (e = new a);
                    var i = n(t), h = o(t);
                    return e.x = i, e.y = h, e.width = r(t) - i, e.height = s(t) - h, e;
                };
            },
            59994: (t)=>{
                t.exports = function(t) {
                    return t.x - t.width * t.originX + .5 * t.width;
                };
            },
            29568: (t)=>{
                t.exports = function(t) {
                    return t.y - t.height * t.originY + .5 * t.height;
                };
            },
            40163: (t)=>{
                t.exports = function(t) {
                    return t.x - t.width * t.originX;
                };
            },
            52088: (t)=>{
                t.exports = function(t) {
                    return t.width * t.originX;
                };
            },
            23379: (t)=>{
                t.exports = function(t) {
                    return t.height * t.originY;
                };
            },
            70271: (t)=>{
                t.exports = function(t) {
                    return t.x + t.width - t.width * t.originX;
                };
            },
            47196: (t)=>{
                t.exports = function(t) {
                    return t.y - t.height * t.originY;
                };
            },
            73174: (t)=>{
                t.exports = function(t, e) {
                    return t.y = e - t.height + t.height * t.originY, t;
                };
            },
            28417: (t)=>{
                t.exports = function(t, e) {
                    var i = t.width * t.originX;
                    return t.x = e + i - .5 * t.width, t;
                };
            },
            81711: (t)=>{
                t.exports = function(t, e) {
                    var i = t.height * t.originY;
                    return t.y = e + i - .5 * t.height, t;
                };
            },
            74465: (t)=>{
                t.exports = function(t, e) {
                    return t.x = e + t.width * t.originX, t;
                };
            },
            19298: (t)=>{
                t.exports = function(t, e) {
                    return t.x = e - t.width + t.width * t.originX, t;
                };
            },
            84349: (t)=>{
                t.exports = function(t, e) {
                    return t.y = e + t.height * t.originY, t;
                };
            },
            15252: (t, e, i)=>{
                t.exports = {
                    CenterOn: i(21843),
                    GetBottom: i(97328),
                    GetBounds: i(7126),
                    GetCenterX: i(59994),
                    GetCenterY: i(29568),
                    GetLeft: i(40163),
                    GetOffsetX: i(52088),
                    GetOffsetY: i(23379),
                    GetRight: i(70271),
                    GetTop: i(47196),
                    SetBottom: i(73174),
                    SetCenterX: i(28417),
                    SetCenterY: i(81711),
                    SetLeft: i(74465),
                    SetRight: i(19298),
                    SetTop: i(84349)
                };
            },
            70616: (t)=>{
                t.exports = {
                    setCrisp: function(t) {
                        return [
                            "optimizeSpeed",
                            "-moz-crisp-edges",
                            "-o-crisp-edges",
                            "-webkit-optimize-contrast",
                            "optimize-contrast",
                            "crisp-edges",
                            "pixelated"
                        ].forEach(function(e) {
                            t.style["image-rendering"] = e;
                        }), t.style.msInterpolationMode = "nearest-neighbor", t;
                    },
                    setBicubic: function(t) {
                        return t.style["image-rendering"] = "auto", t.style.msInterpolationMode = "bicubic", t;
                    }
                };
            },
            61068: (t, e, i)=>{
                var s, n, r, o = i(86459), a = i(8213), h = [], l = !1;
                t.exports = (r = function() {
                    var t = 0;
                    return h.forEach(function(e) {
                        e.parent && t++;
                    }), t;
                }, {
                    create2D: function(t, e, i) {
                        return s(t, e, i, o.CANVAS);
                    },
                    create: s = function(t, e, i, s, r) {
                        var u;
                        void 0 === e && (e = 1), void 0 === i && (i = 1), void 0 === s && (s = o.CANVAS), void 0 === r && (r = !1);
                        var c = n(s);
                        return null === c ? (c = {
                            parent: t,
                            canvas: document.createElement("canvas"),
                            type: s
                        }, s === o.CANVAS && h.push(c), u = c.canvas) : (c.parent = t, u = c.canvas), r && (c.parent = u), u.width = e, u.height = i, l && s === o.CANVAS && a.disable(u.getContext("2d", {
                            willReadFrequently: !1
                        })), u;
                    },
                    createWebGL: function(t, e, i) {
                        return s(t, e, i, o.WEBGL);
                    },
                    disableSmoothing: function() {
                        l = !0;
                    },
                    enableSmoothing: function() {
                        l = !1;
                    },
                    first: n = function(t) {
                        if (void 0 === t && (t = o.CANVAS), t === o.WEBGL) return null;
                        for(var e = 0; e < h.length; e++){
                            var i = h[e];
                            if (!i.parent && i.type === t) return i;
                        }
                        return null;
                    },
                    free: function() {
                        return h.length - r();
                    },
                    pool: h,
                    remove: function(t) {
                        var e = t instanceof HTMLCanvasElement;
                        h.forEach(function(i) {
                            (e && i.canvas === t || !e && i.parent === t) && (i.parent = null, i.canvas.width = 1, i.canvas.height = 1);
                        });
                    },
                    total: r
                });
            },
            8213: (t)=>{
                var e, i = "";
                t.exports = {
                    disable: function(t) {
                        return "" === i && (i = e(t)), i && (t[i] = !1), t;
                    },
                    enable: function(t) {
                        return "" === i && (i = e(t)), i && (t[i] = !0), t;
                    },
                    getPrefix: e = function(t) {
                        for(var e = [
                            "i",
                            "webkitI",
                            "msI",
                            "mozI",
                            "oI"
                        ], i = 0; i < e.length; i++){
                            var s = e[i] + "mageSmoothingEnabled";
                            if (s in t) return s;
                        }
                        return null;
                    },
                    isEnabled: function(t) {
                        return null !== i ? t[i] : null;
                    }
                };
            },
            59271: (t)=>{
                t.exports = function(t, e) {
                    return void 0 === e && (e = "none"), t.style.msTouchAction = e, t.style["ms-touch-action"] = e, t.style["touch-action"] = e, t;
                };
            },
            36505: (t)=>{
                t.exports = function(t, e) {
                    void 0 === e && (e = "none");
                    return [
                        "-webkit-",
                        "-khtml-",
                        "-moz-",
                        "-ms-",
                        ""
                    ].forEach(function(i) {
                        t.style[i + "user-select"] = e;
                    }), t.style["-webkit-touch-callout"] = e, t.style["-webkit-tap-highlight-color"] = "rgba(0, 0, 0, 0)", t;
                };
            },
            23514: (t, e, i)=>{
                t.exports = {
                    CanvasInterpolation: i(70616),
                    CanvasPool: i(61068),
                    Smoothing: i(8213),
                    TouchAction: i(59271),
                    UserSelect: i(36505)
                };
            },
            27119: (t, e, i)=>{
                var s = i(56694), n = i(22946), r = i(5657), o = i(24650), a = i(68033), h = new s({
                    initialize: function(t, e, i, s) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 255), this.r = 0, this.g = 0, this.b = 0, this.a = 255, this._h = 0, this._s = 0, this._v = 0, this._locked = !1, this.gl = [
                            0,
                            0,
                            0,
                            1
                        ], this._color = 0, this._color32 = 0, this._rgba = "", this.setTo(t, e, i, s);
                    },
                    transparent: function() {
                        return this._locked = !0, this.red = 0, this.green = 0, this.blue = 0, this.alpha = 0, this._locked = !1, this.update(!0);
                    },
                    setTo: function(t, e, i, s, n) {
                        return void 0 === s && (s = 255), void 0 === n && (n = !0), this._locked = !0, this.red = t, this.green = e, this.blue = i, this.alpha = s, this._locked = !1, this.update(n);
                    },
                    setGLTo: function(t, e, i, s) {
                        return void 0 === s && (s = 1), this._locked = !0, this.redGL = t, this.greenGL = e, this.blueGL = i, this.alphaGL = s, this._locked = !1, this.update(!0);
                    },
                    setFromRGB: function(t) {
                        return this._locked = !0, this.red = t.r, this.green = t.g, this.blue = t.b, t.hasOwnProperty("a") && (this.alpha = t.a), this._locked = !1, this.update(!0);
                    },
                    setFromHSV: function(t, e, i) {
                        return o(t, e, i, this);
                    },
                    update: function(t) {
                        if (void 0 === t && (t = !1), this._locked) return this;
                        var e = this.r, i = this.g, s = this.b, o = this.a;
                        return this._color = n(e, i, s), this._color32 = r(e, i, s, o), this._rgba = "rgba(" + e + "," + i + "," + s + "," + o / 255 + ")", t && a(e, i, s, this), this;
                    },
                    updateHSV: function() {
                        var t = this.r, e = this.g, i = this.b;
                        return a(t, e, i, this), this;
                    },
                    clone: function() {
                        return new h(this.r, this.g, this.b, this.a);
                    },
                    gray: function(t) {
                        return this.setTo(t, t, t);
                    },
                    random: function(t, e) {
                        void 0 === t && (t = 0), void 0 === e && (e = 255);
                        var i = Math.floor(t + Math.random() * (e - t)), s = Math.floor(t + Math.random() * (e - t)), n = Math.floor(t + Math.random() * (e - t));
                        return this.setTo(i, s, n);
                    },
                    randomGray: function(t, e) {
                        void 0 === t && (t = 0), void 0 === e && (e = 255);
                        var i = Math.floor(t + Math.random() * (e - t));
                        return this.setTo(i, i, i);
                    },
                    saturate: function(t) {
                        return this.s += t / 100, this;
                    },
                    desaturate: function(t) {
                        return this.s -= t / 100, this;
                    },
                    lighten: function(t) {
                        return this.v += t / 100, this;
                    },
                    darken: function(t) {
                        return this.v -= t / 100, this;
                    },
                    brighten: function(t) {
                        var e = this.r, i = this.g, s = this.b;
                        return e = Math.max(0, Math.min(255, e - Math.round(-t / 100 * 255))), i = Math.max(0, Math.min(255, i - Math.round(-t / 100 * 255))), s = Math.max(0, Math.min(255, s - Math.round(-t / 100 * 255))), this.setTo(e, i, s);
                    },
                    color: {
                        get: function() {
                            return this._color;
                        }
                    },
                    color32: {
                        get: function() {
                            return this._color32;
                        }
                    },
                    rgba: {
                        get: function() {
                            return this._rgba;
                        }
                    },
                    redGL: {
                        get: function() {
                            return this.gl[0];
                        },
                        set: function(t) {
                            this.gl[0] = Math.min(Math.abs(t), 1), this.r = Math.floor(255 * this.gl[0]), this.update(!0);
                        }
                    },
                    greenGL: {
                        get: function() {
                            return this.gl[1];
                        },
                        set: function(t) {
                            this.gl[1] = Math.min(Math.abs(t), 1), this.g = Math.floor(255 * this.gl[1]), this.update(!0);
                        }
                    },
                    blueGL: {
                        get: function() {
                            return this.gl[2];
                        },
                        set: function(t) {
                            this.gl[2] = Math.min(Math.abs(t), 1), this.b = Math.floor(255 * this.gl[2]), this.update(!0);
                        }
                    },
                    alphaGL: {
                        get: function() {
                            return this.gl[3];
                        },
                        set: function(t) {
                            this.gl[3] = Math.min(Math.abs(t), 1), this.a = Math.floor(255 * this.gl[3]), this.update();
                        }
                    },
                    red: {
                        get: function() {
                            return this.r;
                        },
                        set: function(t) {
                            t = Math.floor(Math.abs(t)), this.r = Math.min(t, 255), this.gl[0] = t / 255, this.update(!0);
                        }
                    },
                    green: {
                        get: function() {
                            return this.g;
                        },
                        set: function(t) {
                            t = Math.floor(Math.abs(t)), this.g = Math.min(t, 255), this.gl[1] = t / 255, this.update(!0);
                        }
                    },
                    blue: {
                        get: function() {
                            return this.b;
                        },
                        set: function(t) {
                            t = Math.floor(Math.abs(t)), this.b = Math.min(t, 255), this.gl[2] = t / 255, this.update(!0);
                        }
                    },
                    alpha: {
                        get: function() {
                            return this.a;
                        },
                        set: function(t) {
                            t = Math.floor(Math.abs(t)), this.a = Math.min(t, 255), this.gl[3] = t / 255, this.update();
                        }
                    },
                    h: {
                        get: function() {
                            return this._h;
                        },
                        set: function(t) {
                            this._h = t, o(t, this._s, this._v, this);
                        }
                    },
                    s: {
                        get: function() {
                            return this._s;
                        },
                        set: function(t) {
                            this._s = t, o(this._h, t, this._v, this);
                        }
                    },
                    v: {
                        get: function() {
                            return this._v;
                        },
                        set: function(t) {
                            this._v = t, o(this._h, this._s, t, this);
                        }
                    }
                });
                t.exports = h;
            },
            30245: (t, e, i)=>{
                var s = i(22946);
                t.exports = function(t) {
                    void 0 === t && (t = 1024);
                    var e, i = [], n = 255, r = 255, o = 0, a = 0;
                    for(e = 0; e <= n; e++)i.push({
                        r: r,
                        g: e,
                        b: a,
                        color: s(r, e, a)
                    });
                    for(o = 255, e = n; e >= 0; e--)i.push({
                        r: e,
                        g: o,
                        b: a,
                        color: s(e, o, a)
                    });
                    for(r = 0, e = 0; e <= n; e++, o--)i.push({
                        r: r,
                        g: o,
                        b: e,
                        color: s(r, o, e)
                    });
                    for(o = 0, a = 255, e = 0; e <= n; e++, a--, r++)i.push({
                        r: r,
                        g: o,
                        b: a,
                        color: s(r, o, a)
                    });
                    if (1024 === t) return i;
                    var h = [], l = 0, u = 1024 / t;
                    for(e = 0; e < t; e++)h.push(i[Math.floor(l)]), l += u;
                    return h;
                };
            },
            86672: (t)=>{
                t.exports = function(t) {
                    var e = {
                        r: t >> 16 & 255,
                        g: t >> 8 & 255,
                        b: 255 & t,
                        a: 255
                    };
                    return t > 16777215 && (e.a = t >>> 24), e;
                };
            },
            25409: (t)=>{
                t.exports = function(t) {
                    var e = t.toString(16);
                    return 1 === e.length ? "0" + e : e;
                };
            },
            22946: (t)=>{
                t.exports = function(t, e, i) {
                    return t << 16 | e << 8 | i;
                };
            },
            5657: (t)=>{
                t.exports = function(t, e, i, s) {
                    return s << 24 | t << 16 | e << 8 | i;
                };
            },
            74777: (t, e, i)=>{
                var s = i(27119), n = i(59998);
                t.exports = function(t, e, i) {
                    var r = i, o = i, a = i;
                    if (0 !== e) {
                        var h = i < .5 ? i * (1 + e) : i + e - i * e, l = 2 * i - h;
                        r = n(l, h, t + 1 / 3), o = n(l, h, t), a = n(l, h, t - 1 / 3);
                    }
                    return (new s).setGLTo(r, o, a, 1);
                };
            },
            89263: (t, e, i)=>{
                var s = i(24650);
                t.exports = function(t, e) {
                    void 0 === t && (t = 1), void 0 === e && (e = 1);
                    for(var i = [], n = 0; n <= 359; n++)i.push(s(n / 359, t, e));
                    return i;
                };
            },
            24650: (t, e, i)=>{
                var s = i(22946);
                function n(t, e, i, s) {
                    var n = (t + 6 * e) % 6, r = Math.min(n, 4 - n, 1);
                    return Math.round(255 * (s - s * i * Math.max(0, r)));
                }
                t.exports = function(t, e, i, r) {
                    void 0 === e && (e = 1), void 0 === i && (i = 1);
                    var o = n(5, t, e, i), a = n(3, t, e, i), h = n(1, t, e, i);
                    return r ? r.setTo ? r.setTo(o, a, h, r.alpha, !0) : (r.r = o, r.g = a, r.b = h, r.color = s(o, a, h), r) : {
                        r: o,
                        g: a,
                        b: h,
                        color: s(o, a, h)
                    };
                };
            },
            91487: (t, e, i)=>{
                var s = i(27119);
                t.exports = function(t) {
                    var e = new s;
                    t = t.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i, function(t, e, i, s) {
                        return e + e + i + i + s + s;
                    });
                    var i = /^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);
                    if (i) {
                        var n = parseInt(i[1], 16), r = parseInt(i[2], 16), o = parseInt(i[3], 16);
                        e.setTo(n, r, o);
                    }
                    return e;
                };
            },
            59998: (t)=>{
                t.exports = function(t, e, i) {
                    return i < 0 && (i += 1), i > 1 && (i -= 1), i < 1 / 6 ? t + 6 * (e - t) * i : i < .5 ? e : i < 2 / 3 ? t + (e - t) * (2 / 3 - i) * 6 : t;
                };
            },
            74853: (t, e, i)=>{
                var s = i(27119), n = i(15978);
                t.exports = function(t) {
                    var e = n(t);
                    return new s(e.r, e.g, e.b, e.a);
                };
            },
            15978: (t)=>{
                t.exports = function(t) {
                    return t > 16777215 ? {
                        a: t >>> 24,
                        r: t >> 16 & 255,
                        g: t >> 8 & 255,
                        b: 255 & t
                    } : {
                        a: 255,
                        r: t >> 16 & 255,
                        g: t >> 8 & 255,
                        b: 255 & t
                    };
                };
            },
            53756: (t, e, i)=>{
                var s = i(42798), n = function(t, e, i, n, r, o, a, h) {
                    void 0 === a && (a = 100), void 0 === h && (h = 0);
                    var l = h / a;
                    return {
                        r: s(t, n, l),
                        g: s(e, r, l),
                        b: s(i, o, l)
                    };
                };
                t.exports = {
                    RGBWithRGB: n,
                    ColorWithRGB: function(t, e, i, s, r, o) {
                        return void 0 === r && (r = 100), void 0 === o && (o = 0), n(t.r, t.g, t.b, e, i, s, r, o);
                    },
                    ColorWithColor: function(t, e, i, s) {
                        return void 0 === i && (i = 100), void 0 === s && (s = 0), n(t.r, t.g, t.b, e.r, e.g, e.b, i, s);
                    }
                };
            },
            73904: (t, e, i)=>{
                var s = i(27119);
                t.exports = function(t) {
                    return new s(t.r, t.g, t.b, t.a);
                };
            },
            26841: (t, e, i)=>{
                var s = i(27119);
                t.exports = function(t) {
                    var e = new s, i = /^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(t.toLowerCase());
                    if (i) {
                        var n = parseInt(i[1], 10), r = parseInt(i[2], 10), o = parseInt(i[3], 10), a = void 0 !== i[4] ? parseFloat(i[4]) : 1;
                        e.setTo(n, r, o, 255 * a);
                    }
                    return e;
                };
            },
            68033: (t)=>{
                t.exports = function(t, e, i, s) {
                    void 0 === s && (s = {
                        h: 0,
                        s: 0,
                        v: 0
                    }), t /= 255, e /= 255, i /= 255;
                    var n = Math.min(t, e, i), r = Math.max(t, e, i), o = r - n, a = 0, h = 0 === r ? 0 : o / r, l = r;
                    return r !== n && (r === t ? a = (e - i) / o + (e < i ? 6 : 0) : r === e ? a = (i - t) / o + 2 : r === i && (a = (t - e) / o + 4), a /= 6), s.hasOwnProperty("_h") ? (s._h = a, s._s = h, s._v = l) : (s.h = a, s.s = h, s.v = l), s;
                };
            },
            4880: (t, e, i)=>{
                var s = i(25409);
                t.exports = function(t, e, i, n, r) {
                    return void 0 === n && (n = 255), void 0 === r && (r = "#"), "#" === r ? "#" + (16777216 + (t << 16) + (e << 8) + i).toString(16).slice(1, 7) : "0x" + s(n) + s(t) + s(e) + s(i);
                };
            },
            37243: (t, e, i)=>{
                var s = i(17489), n = i(27119);
                t.exports = function(t, e) {
                    return void 0 === t && (t = 0), void 0 === e && (e = 255), new n(s(t, e), s(t, e), s(t, e));
                };
            },
            93222: (t, e, i)=>{
                var s = i(91487), n = i(74853), r = i(73904), o = i(26841);
                t.exports = function(t) {
                    switch(typeof t){
                        case "string":
                            return "rgb" === t.substr(0, 3).toLowerCase() ? o(t) : s(t);
                        case "number":
                            return n(t);
                        case "object":
                            return r(t);
                    }
                };
            },
            95509: (t, e, i)=>{
                var s = i(27119);
                s.ColorSpectrum = i(30245), s.ColorToRGBA = i(86672), s.ComponentToHex = i(25409), s.GetColor = i(22946), s.GetColor32 = i(5657), s.HexStringToColor = i(91487), s.HSLToColor = i(74777), s.HSVColorWheel = i(89263), s.HSVToRGB = i(24650), s.HueToComponent = i(59998), s.IntegerToColor = i(74853), s.IntegerToRGB = i(15978), s.Interpolate = i(53756), s.ObjectToColor = i(73904), s.RandomRGB = i(37243), s.RGBStringToColor = i(26841), s.RGBToHSV = i(68033), s.RGBToString = i(4880), s.ValueToColor = i(93222), t.exports = s;
            },
            24816: (t, e, i)=>{
                t.exports = {
                    Align: i(93545),
                    BaseShader: i(31053),
                    Bounds: i(15252),
                    Canvas: i(23514),
                    Color: i(95509),
                    ColorMatrix: i(65246),
                    Masks: i(93310),
                    RGB: i(39298)
                };
            },
            76756: (t, e, i)=>{
                var s = i(56694), n = i(61286), r = new s({
                    initialize: function(t, e, i, s, n, r) {
                        e || (e = t.sys.make.image({
                            x: i,
                            y: s,
                            key: n,
                            frame: r,
                            add: !1
                        })), this.bitmapMask = e, this.invertAlpha = !1, this.isStencil = !1;
                    },
                    setBitmap: function(t) {
                        this.bitmapMask = t;
                    },
                    preRenderWebGL: function(t, e, i) {
                        t.pipelines.BITMAPMASK_PIPELINE.beginMask(this, e, i);
                    },
                    postRenderWebGL: function(t, e, i) {
                        t.pipelines.BITMAPMASK_PIPELINE.endMask(this, e, i);
                    },
                    preRenderCanvas: function() {},
                    postRenderCanvas: function() {},
                    destroy: function() {
                        this.bitmapMask = null;
                    }
                });
                n.register("bitmapMask", function(t, e, i, s, n) {
                    return new r(this.scene, t, e, i, s, n);
                }), t.exports = r;
            },
            63037: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t, e) {
                        this.geometryMask = e, this.invertAlpha = !1, this.isStencil = !0, this.level = 0;
                    },
                    setShape: function(t) {
                        return this.geometryMask = t, this;
                    },
                    setInvertAlpha: function(t) {
                        return void 0 === t && (t = !0), this.invertAlpha = t, this;
                    },
                    preRenderWebGL: function(t, e, i) {
                        var s = t.gl;
                        t.flush(), 0 === t.maskStack.length && (s.enable(s.STENCIL_TEST), s.clear(s.STENCIL_BUFFER_BIT), t.maskCount = 0), t.currentCameraMask.mask !== this && (t.currentMask.mask = this), t.maskStack.push({
                            mask: this,
                            camera: i
                        }), this.applyStencil(t, i, !0), t.maskCount++;
                    },
                    applyStencil: function(t, e, i) {
                        var s = t.gl, n = this.geometryMask, r = t.maskCount, o = 255;
                        s.colorMask(!1, !1, !1, !1), i ? (s.stencilFunc(s.EQUAL, r, o), s.stencilOp(s.KEEP, s.KEEP, s.INCR), r++) : (s.stencilFunc(s.EQUAL, r + 1, o), s.stencilOp(s.KEEP, s.KEEP, s.DECR)), this.level = r, n.renderWebGL(t, n, e), t.flush(), s.colorMask(!0, !0, !0, !0), s.stencilOp(s.KEEP, s.KEEP, s.KEEP), this.invertAlpha ? s.stencilFunc(s.NOTEQUAL, r, o) : s.stencilFunc(s.EQUAL, r, o);
                    },
                    postRenderWebGL: function(t) {
                        var e = t.gl;
                        t.maskStack.pop(), t.maskCount--, t.flush();
                        var i = t.currentMask;
                        if (0 === t.maskStack.length) i.mask = null, e.disable(e.STENCIL_TEST);
                        else {
                            var s = t.maskStack[t.maskStack.length - 1];
                            s.mask.applyStencil(t, s.camera, !1), t.currentCameraMask.mask !== s.mask ? (i.mask = s.mask, i.camera = s.camera) : i.mask = null;
                        }
                    },
                    preRenderCanvas: function(t, e, i) {
                        var s = this.geometryMask;
                        t.currentContext.save(), s.renderCanvas(t, s, i, null, null, !0), t.currentContext.clip();
                    },
                    postRenderCanvas: function(t) {
                        t.currentContext.restore();
                    },
                    destroy: function() {
                        this.geometryMask = null;
                    }
                });
                t.exports = s;
            },
            93310: (t, e, i)=>{
                t.exports = {
                    BitmapMask: i(76756),
                    GeometryMask: i(63037)
                };
            },
            31053: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t, e, i, s) {
                        e && "" !== e || (e = [
                            "precision mediump float;",
                            "uniform vec2 resolution;",
                            "varying vec2 fragCoord;",
                            "void main () {",
                            "    vec2 uv = fragCoord / resolution.xy;",
                            "    gl_FragColor = vec4(uv.xyx, 1.0);",
                            "}"
                        ].join("\n")), i && "" !== i || (i = [
                            "precision mediump float;",
                            "uniform mat4 uProjectionMatrix;",
                            "uniform mat4 uViewMatrix;",
                            "uniform vec2 uResolution;",
                            "attribute vec2 inPosition;",
                            "varying vec2 fragCoord;",
                            "varying vec2 outTexCoord;",
                            "void main () {",
                            "   gl_Position = uProjectionMatrix * uViewMatrix * vec4(inPosition, 1.0, 1.0);",
                            "   fragCoord = vec2(inPosition.x, uResolution.y - inPosition.y);",
                            "   outTexCoord = vec2(inPosition.x / uResolution.x, fragCoord.y / uResolution.y);",
                            "}"
                        ].join("\n")), void 0 === s && (s = null), this.key = t, this.fragmentSrc = e, this.vertexSrc = i, this.uniforms = s;
                    }
                });
                t.exports = s;
            },
            99584: (t)=>{
                t.exports = function(t, e) {
                    var i;
                    if (e) "string" == typeof e ? i = document.getElementById(e) : "object" == typeof e && 1 === e.nodeType && (i = e);
                    else if (t.parentElement || null === e) return t;
                    return i || (i = document.body), i.appendChild(t), t;
                };
            },
            85178: (t, e, i)=>{
                var s = i(99584);
                t.exports = function(t) {
                    var e = t.config;
                    if (e.parent && e.domCreateContainer) {
                        var i = document.createElement("div");
                        i.style.cssText = [
                            "display: block;",
                            "width: " + t.scale.width + "px;",
                            "height: " + t.scale.height + "px;",
                            "padding: 0; margin: 0;",
                            "position: absolute;",
                            "overflow: hidden;",
                            "pointer-events: " + e.domPointerEvents + ";",
                            "transform: scale(1);",
                            "transform-origin: left top;"
                        ].join(" "), t.domContainer = i, s(i, e.parent);
                    }
                };
            },
            21546: (t, e, i)=>{
                var s = i(36580);
                t.exports = function(t) {
                    if ("complete" !== document.readyState && "interactive" !== document.readyState) {
                        var e = function() {
                            document.removeEventListener("deviceready", e, !0), document.removeEventListener("DOMContentLoaded", e, !0), window.removeEventListener("load", e, !0), t();
                        };
                        document.body ? s.cordova ? document.addEventListener("deviceready", e, !1) : (document.addEventListener("DOMContentLoaded", e, !0), window.addEventListener("load", e, !0)) : window.setTimeout(e, 20);
                    } else t();
                };
            },
            74181: (t)=>{
                t.exports = function(t) {
                    if (!t) return window.innerHeight;
                    var e = Math.abs(window.orientation), i = {
                        w: 0,
                        h: 0
                    }, s = document.createElement("div");
                    return s.setAttribute("style", "position: fixed; height: 100vh; width: 0; top: 0"), document.documentElement.appendChild(s), i.w = 90 === e ? s.offsetHeight : window.innerWidth, i.h = 90 === e ? window.innerWidth : s.offsetHeight, document.documentElement.removeChild(s), s = null, 90 !== Math.abs(window.orientation) ? i.h : i.w;
                };
            },
            9229: (t, e, i)=>{
                var s = i(55301);
                t.exports = function(t, e) {
                    var i = window.screen, n = !!i && (i.orientation || i.mozOrientation || i.msOrientation);
                    return n && "string" == typeof n.type ? n.type : "string" == typeof n ? n : "number" == typeof window.orientation ? 0 === window.orientation || 180 === window.orientation ? s.ORIENTATION.PORTRAIT : s.ORIENTATION.LANDSCAPE : window.matchMedia ? window.matchMedia("(orientation: portrait)").matches ? s.ORIENTATION.PORTRAIT : window.matchMedia("(orientation: landscape)").matches ? s.ORIENTATION.LANDSCAPE : void 0 : e > t ? s.ORIENTATION.PORTRAIT : s.ORIENTATION.LANDSCAPE;
                };
            },
            2893: (t)=>{
                t.exports = function(t) {
                    var e;
                    return "" !== t && ("string" == typeof t ? e = document.getElementById(t) : t && 1 === t.nodeType && (e = t)), e || (e = document.body), e;
                };
            },
            89200: (t)=>{
                t.exports = function(t) {
                    var e = "";
                    try {
                        if (window.DOMParser) e = (new DOMParser).parseFromString(t, "text/xml");
                        else (e = new ActiveXObject("Microsoft.XMLDOM")).loadXML(t);
                    } catch (t) {
                        e = null;
                    }
                    return e && e.documentElement && !e.getElementsByTagName("parsererror").length ? e : null;
                };
            },
            55638: (t)=>{
                t.exports = function(t) {
                    t.parentNode && t.parentNode.removeChild(t);
                };
            },
            27385: (t, e, i)=>{
                var s = i(56694), n = i(72283), r = new s({
                    initialize: function() {
                        this.isRunning = !1, this.callback = n, this.isSetTimeOut = !1, this.timeOutID = null, this.delay = 0;
                        var t = this;
                        this.step = function e(i) {
                            t.callback(i), t.isRunning && (t.timeOutID = window.requestAnimationFrame(e));
                        }, this.stepTimeout = function e() {
                            t.isRunning && (t.timeOutID = window.setTimeout(e, t.delay)), t.callback(window.performance.now());
                        };
                    },
                    start: function(t, e, i) {
                        this.isRunning || (this.callback = t, this.isSetTimeOut = e, this.delay = i, this.isRunning = !0, this.timeOutID = e ? window.setTimeout(this.stepTimeout, 0) : window.requestAnimationFrame(this.step));
                    },
                    stop: function() {
                        this.isRunning = !1, this.isSetTimeOut ? clearTimeout(this.timeOutID) : window.cancelAnimationFrame(this.timeOutID);
                    },
                    destroy: function() {
                        this.stop(), this.callback = n;
                    }
                });
                t.exports = r;
            },
            3590: (t, e, i)=>{
                var s = {
                    AddToDOM: i(99584),
                    DOMContentLoaded: i(21546),
                    GetInnerHeight: i(74181),
                    GetScreenOrientation: i(9229),
                    GetTarget: i(2893),
                    ParseXML: i(89200),
                    RemoveFromDOM: i(55638),
                    RequestAnimationFrame: i(27385)
                };
                t.exports = s;
            },
            78491: (t, e, i)=>{
                var s = i(56694), n = i(6659), r = i(91963), o = new s({
                    Extends: n,
                    initialize: function() {
                        n.call(this);
                    },
                    shutdown: function() {
                        this.removeAllListeners();
                    },
                    destroy: function() {
                        this.removeAllListeners();
                    }
                });
                r.register("EventEmitter", o, "events"), t.exports = o;
            },
            95146: (t, e, i)=>{
                t.exports = {
                    EventEmitter: i(78491)
                };
            },
            20170: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e) {
                        void 0 === e && (e = 1), n.call(this, r.BARREL, t), this.amount = e;
                    }
                });
                t.exports = o;
            },
            51182: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e, i, s, o, a, h) {
                        void 0 === i && (i = 1), void 0 === s && (s = 1), void 0 === o && (o = 1), void 0 === a && (a = 1), void 0 === h && (h = 4), n.call(this, r.BLOOM, t), this.steps = h, this.offsetX = i, this.offsetY = s, this.blurStrength = o, this.strength = a, this.glcolor = [
                            1,
                            1,
                            1
                        ], null != e && (this.color = e);
                    },
                    color: {
                        get: function() {
                            var t = this.glcolor;
                            return (255 * t[0] << 16) + (255 * t[1] << 8) + (255 * t[2] | 0);
                        },
                        set: function(t) {
                            var e = this.glcolor;
                            e[0] = (t >> 16 & 255) / 255, e[1] = (t >> 8 & 255) / 255, e[2] = (255 & t) / 255;
                        }
                    }
                });
                t.exports = o;
            },
            51498: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e, i, s, o, a, h) {
                        void 0 === e && (e = 0), void 0 === i && (i = 2), void 0 === s && (s = 2), void 0 === o && (o = 1), void 0 === h && (h = 4), n.call(this, r.BLUR, t), this.quality = 0, this.x = i, this.y = s, this.steps = h, this.strength = o, this.glcolor = [
                            1,
                            1,
                            1
                        ], null != a && (this.color = a);
                    },
                    color: {
                        get: function() {
                            var t = this.glcolor;
                            return (255 * t[0] << 16) + (255 * t[1] << 8) + (255 * t[2] | 0);
                        },
                        set: function(t) {
                            var e = this.glcolor;
                            e[0] = (t >> 16 & 255) / 255, e[1] = (t >> 8 & 255) / 255, e[2] = (255 & t) / 255;
                        }
                    }
                });
                t.exports = o;
            },
            12042: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e, i, s, o, a, h, l) {
                        void 0 === e && (e = .5), void 0 === i && (i = 1), void 0 === s && (s = .2), void 0 === o && (o = !1), void 0 === a && (a = 1), void 0 === h && (h = 1), void 0 === l && (l = 1), n.call(this, r.BOKEH, t), this.radius = e, this.amount = i, this.contrast = s, this.isTiltShift = o, this.strength = l, this.blurX = a, this.blurY = h;
                    }
                });
                t.exports = o;
            },
            69900: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e, i, s, o, a) {
                        void 0 === e && (e = 8), void 0 === o && (o = 1), void 0 === a && (a = .005), n.call(this, r.CIRCLE, t), this.scale = o, this.feather = a, this.thickness = e, this.glcolor = [
                            1,
                            .2,
                            .7
                        ], this.glcolor2 = [
                            1,
                            0,
                            0,
                            .4
                        ], null != i && (this.color = i), null != s && (this.backgroundColor = s);
                    },
                    color: {
                        get: function() {
                            var t = this.glcolor;
                            return (255 * t[0] << 16) + (255 * t[1] << 8) + (255 * t[2] | 0);
                        },
                        set: function(t) {
                            var e = this.glcolor;
                            e[0] = (t >> 16 & 255) / 255, e[1] = (t >> 8 & 255) / 255, e[2] = (255 & t) / 255;
                        }
                    },
                    backgroundColor: {
                        get: function() {
                            var t = this.glcolor2;
                            return (255 * t[0] << 16) + (255 * t[1] << 8) + (255 * t[2] | 0);
                        },
                        set: function(t) {
                            var e = this.glcolor2;
                            e[0] = (t >> 16 & 255) / 255, e[1] = (t >> 8 & 255) / 255, e[2] = (255 & t) / 255;
                        }
                    }
                });
                t.exports = o;
            },
            48991: (t, e, i)=>{
                var s = i(56694), n = i(65246), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t) {
                        n.call(this), this.type = r.COLOR_MATRIX, this.gameObject = t, this.active = !0;
                    },
                    destroy: function() {
                        this.gameObject = null, this._matrix = null, this._data = null;
                    }
                });
                t.exports = o;
            },
            47551: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t, e) {
                        this.type = t, this.gameObject = e, this.active = !0;
                    },
                    setActive: function(t) {
                        return this.active = t, this;
                    },
                    destroy: function() {
                        this.gameObject = null, this.active = !1;
                    }
                });
                t.exports = s;
            },
            47909: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e, i, s) {
                        void 0 === e && (e = "__WHITE"), void 0 === i && (i = .005), void 0 === s && (s = .005), n.call(this, r.DISPLACEMENT, t), this.x = i, this.y = s, this.glTexture, this.setTexture(e);
                    },
                    setTexture: function(t) {
                        var e = this.gameObject.scene.sys.textures.getFrame(t);
                        return e && (this.glTexture = e.glTexture), this;
                    }
                });
                t.exports = o;
            },
            18919: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e, i, s, o) {
                        void 0 === i && (i = 4), void 0 === s && (s = 0), void 0 === o && (o = !1), n.call(this, r.GLOW, t), this.outerStrength = i, this.innerStrength = s, this.knockout = o, this.glcolor = [
                            1,
                            1,
                            1,
                            1
                        ], void 0 !== e && (this.color = e);
                    },
                    color: {
                        get: function() {
                            var t = this.glcolor;
                            return (255 * t[0] << 16) + (255 * t[1] << 8) + (255 * t[2] | 0);
                        },
                        set: function(t) {
                            var e = this.glcolor;
                            e[0] = (t >> 16 & 255) / 255, e[1] = (t >> 8 & 255) / 255, e[2] = (255 & t) / 255;
                        }
                    }
                });
                t.exports = o;
            },
            62494: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e, i, s, o, a, h, l, u) {
                        void 0 === s && (s = .2), void 0 === o && (o = 0), void 0 === a && (a = 0), void 0 === h && (h = 0), void 0 === l && (l = 1), void 0 === u && (u = 0), n.call(this, r.GRADIENT, t), this.alpha = s, this.size = u, this.fromX = o, this.fromY = a, this.toX = h, this.toY = l, this.glcolor1 = [
                            255,
                            0,
                            0
                        ], this.glcolor2 = [
                            0,
                            255,
                            0
                        ], null != e && (this.color1 = e), null != i && (this.color2 = i);
                    },
                    color1: {
                        get: function() {
                            var t = this.glcolor1;
                            return (t[0] << 16) + (t[1] << 8) + (0 | t[2]);
                        },
                        set: function(t) {
                            var e = this.glcolor1;
                            e[0] = t >> 16 & 255, e[1] = t >> 8 & 255, e[2] = 255 & t;
                        }
                    },
                    color2: {
                        get: function() {
                            var t = this.glcolor2;
                            return (t[0] << 16) + (t[1] << 8) + (0 | t[2]);
                        },
                        set: function(t) {
                            var e = this.glcolor2;
                            e[0] = t >> 16 & 255, e[1] = t >> 8 & 255, e[2] = 255 & t;
                        }
                    }
                });
                t.exports = o;
            },
            68897: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e) {
                        void 0 === e && (e = 1), n.call(this, r.PIXELATE, t), this.amount = e;
                    }
                });
                t.exports = o;
            },
            58575: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e, i, s, o, a, h, l) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = .1), void 0 === o && (o = 1), void 0 === h && (h = 6), void 0 === l && (l = 1), n.call(this, r.SHADOW, t), this.x = e, this.y = i, this.decay = s, this.power = o, this.glcolor = [
                            0,
                            0,
                            0,
                            1
                        ], this.samples = h, this.intensity = l, void 0 !== a && (this.color = a);
                    },
                    color: {
                        get: function() {
                            var t = this.glcolor;
                            return (255 * t[0] << 16) + (255 * t[1] << 8) + (255 * t[2] | 0);
                        },
                        set: function(t) {
                            var e = this.glcolor;
                            e[0] = (t >> 16 & 255) / 255, e[1] = (t >> 8 & 255) / 255, e[2] = (255 & t) / 255;
                        }
                    }
                });
                t.exports = o;
            },
            33755: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e, i, s, o) {
                        void 0 === e && (e = .5), void 0 === i && (i = .5), void 0 === s && (s = 3), void 0 === o && (o = !1), n.call(this, r.SHINE, t), this.speed = e, this.lineWidth = i, this.gradient = s, this.reveal = o;
                    }
                });
                t.exports = o;
            },
            24949: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e, i, s, o) {
                        void 0 === e && (e = .5), void 0 === i && (i = .5), void 0 === s && (s = .5), void 0 === o && (o = .5), n.call(this, r.VIGNETTE, t), this.x = e, this.y = i, this.radius = s, this.strength = o;
                    }
                });
                t.exports = o;
            },
            66241: (t, e, i)=>{
                var s = i(56694), n = i(47551), r = i(47406), o = new s({
                    Extends: n,
                    initialize: function(t, e, i, s, o) {
                        void 0 === e && (e = .1), void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === o && (o = !1), n.call(this, r.WIPE, t), this.progress = 0, this.wipeWidth = e, this.direction = i, this.axis = s, this.reveal = o;
                    }
                });
                t.exports = o;
            },
            47406: (t)=>{
                t.exports = {
                    GLOW: 4,
                    SHADOW: 5,
                    PIXELATE: 6,
                    VIGNETTE: 7,
                    SHINE: 8,
                    BLUR: 9,
                    GRADIENT: 12,
                    BLOOM: 13,
                    COLOR_MATRIX: 14,
                    CIRCLE: 15,
                    BARREL: 16,
                    DISPLACEMENT: 17,
                    WIPE: 18,
                    BOKEH: 19
                };
            },
            96910: (t, e, i)=>{
                var s = i(98611), n = i(47406), r = {
                    Barrel: i(20170),
                    Controller: i(47551),
                    Bloom: i(51182),
                    Blur: i(51498),
                    Bokeh: i(12042),
                    Circle: i(69900),
                    ColorMatrix: i(48991),
                    Displacement: i(47909),
                    Glow: i(18919),
                    Gradient: i(62494),
                    Pixelate: i(68897),
                    Shadow: i(58575),
                    Shine: i(33755),
                    Vignette: i(24949),
                    Wipe: i(66241)
                };
                r = s(!1, r, n), t.exports = r;
            },
            88933: (t, e, i)=>{
                var s = i(95723), n = i(20494);
                t.exports = function(t, e, i) {
                    e.x = n(i, "x", 0), e.y = n(i, "y", 0), e.depth = n(i, "depth", 0), e.flipX = n(i, "flipX", !1), e.flipY = n(i, "flipY", !1);
                    var r = n(i, "scale", null);
                    "number" == typeof r ? e.setScale(r) : null !== r && (e.scaleX = n(r, "x", 1), e.scaleY = n(r, "y", 1));
                    var o = n(i, "scrollFactor", null);
                    "number" == typeof o ? e.setScrollFactor(o) : null !== o && (e.scrollFactorX = n(o, "x", 1), e.scrollFactorY = n(o, "y", 1)), e.rotation = n(i, "rotation", 0);
                    var a = n(i, "angle", null);
                    null !== a && (e.angle = a), e.alpha = n(i, "alpha", 1);
                    var h = n(i, "origin", null);
                    if ("number" == typeof h) e.setOrigin(h);
                    else if (null !== h) {
                        var l = n(h, "x", .5), u = n(h, "y", .5);
                        e.setOrigin(l, u);
                    }
                    return e.blendMode = n(i, "blendMode", s.NORMAL), e.visible = n(i, "visible", !0), n(i, "add", !0) && t.sys.displayList.add(e), e.preUpdate && t.sys.updateList.add(e), e;
                };
            },
            32291: (t, e, i)=>{
                var s = i(20494);
                t.exports = function(t, e) {
                    var i = s(e, "anims", null);
                    if (null === i) return t;
                    if ("string" == typeof i) t.anims.play(i);
                    else if ("object" == typeof i) {
                        var n = t.anims, r = s(i, "key", void 0);
                        if (r) {
                            var o = s(i, "startFrame", void 0), a = s(i, "delay", 0), h = s(i, "repeat", 0), l = s(i, "repeatDelay", 0), u = s(i, "yoyo", !1), c = s(i, "play", !1), d = s(i, "delayedPlay", 0), f = {
                                key: r,
                                delay: a,
                                repeat: h,
                                repeatDelay: l,
                                yoyo: u,
                                startFrame: o
                            };
                            c ? n.play(f) : d > 0 ? n.playAfterDelay(f, d) : n.load(f);
                        }
                    }
                    return t;
                };
            },
            91713: (t, e, i)=>{
                var s = i(56694), n = i(71207), r = i(91963), o = i(56631), a = i(7599), h = i(17922), l = new s({
                    Extends: n,
                    initialize: function(t) {
                        n.call(this, t), this.sortChildrenFlag = !1, this.scene = t, this.systems = t.sys, this.events = t.sys.events, this.addCallback = this.addChildCallback, this.removeCallback = this.removeChildCallback, this.events.once(a.BOOT, this.boot, this), this.events.on(a.START, this.start, this);
                    },
                    boot: function() {
                        this.events.once(a.DESTROY, this.destroy, this);
                    },
                    addChildCallback: function(t) {
                        t.displayList && t.displayList !== this && t.removeFromDisplayList(), t.parentContainer && t.parentContainer.remove(t), t.displayList || (this.queueDepthSort(), t.displayList = this, t.emit(o.ADDED_TO_SCENE, t, this.scene), this.events.emit(a.ADDED_TO_SCENE, t, this.scene));
                    },
                    removeChildCallback: function(t) {
                        this.queueDepthSort(), t.displayList = null, t.emit(o.REMOVED_FROM_SCENE, t, this.scene), this.events.emit(a.REMOVED_FROM_SCENE, t, this.scene);
                    },
                    start: function() {
                        this.events.once(a.SHUTDOWN, this.shutdown, this);
                    },
                    queueDepthSort: function() {
                        this.sortChildrenFlag = !0;
                    },
                    depthSort: function() {
                        this.sortChildrenFlag && (h(this.list, this.sortByDepth), this.sortChildrenFlag = !1);
                    },
                    sortByDepth: function(t, e) {
                        return t._depth - e._depth;
                    },
                    getChildren: function() {
                        return this.list;
                    },
                    shutdown: function() {
                        for(var t = this.list; t.length;)t[0].destroy(!0);
                        this.events.off(a.SHUTDOWN, this.shutdown, this);
                    },
                    destroy: function() {
                        this.shutdown(), this.events.off(a.START, this.start, this), this.scene = null, this.systems = null, this.events = null;
                    }
                });
                r.register("DisplayList", l, "displayList"), t.exports = l;
            },
            89980: (t, e, i)=>{
                var s = i(56694), n = i(48129), r = i(81078), o = i(6659), a = i(56631), h = i(7599), l = new s({
                    Extends: o,
                    initialize: function(t, e) {
                        o.call(this), this.scene = t, this.displayList = null, this.type = e, this.state = 0, this.parentContainer = null, this.name = "", this.active = !0, this.tabIndex = -1, this.data = null, this.renderFlags = 15, this.cameraFilter = 0, this.input = null, this.body = null, this.ignoreDestroy = !1, this.on(a.ADDED_TO_SCENE, this.addedToScene, this), this.on(a.REMOVED_FROM_SCENE, this.removedFromScene, this), t.sys.queueDepthSort();
                    },
                    setActive: function(t) {
                        return this.active = t, this;
                    },
                    setName: function(t) {
                        return this.name = t, this;
                    },
                    setState: function(t) {
                        return this.state = t, this;
                    },
                    setDataEnabled: function() {
                        return this.data || (this.data = new r(this)), this;
                    },
                    setData: function(t, e) {
                        return this.data || (this.data = new r(this)), this.data.set(t, e), this;
                    },
                    incData: function(t, e) {
                        return this.data || (this.data = new r(this)), this.data.inc(t, e), this;
                    },
                    toggleData: function(t) {
                        return this.data || (this.data = new r(this)), this.data.toggle(t), this;
                    },
                    getData: function(t) {
                        return this.data || (this.data = new r(this)), this.data.get(t);
                    },
                    setInteractive: function(t, e, i) {
                        return this.scene.sys.input.enable(this, t, e, i), this;
                    },
                    disableInteractive: function() {
                        return this.scene.sys.input.disable(this), this;
                    },
                    removeInteractive: function() {
                        return this.scene.sys.input.clear(this), this.input = void 0, this;
                    },
                    addedToScene: function() {},
                    removedFromScene: function() {},
                    update: function() {},
                    toJSON: function() {
                        return n(this);
                    },
                    willRender: function(t) {
                        return !(!(!this.displayList || !this.displayList.active || this.displayList.willRender(t)) || l.RENDER_MASK !== this.renderFlags || 0 !== this.cameraFilter && this.cameraFilter & t.id);
                    },
                    getIndexList: function() {
                        for(var t = this, e = this.parentContainer, i = []; e && (i.unshift(e.getIndex(t)), t = e, e.parentContainer);)e = e.parentContainer;
                        return this.displayList ? i.unshift(this.displayList.getIndex(t)) : i.unshift(this.scene.sys.displayList.getIndex(t)), i;
                    },
                    addToDisplayList: function(t) {
                        return void 0 === t && (t = this.scene.sys.displayList), this.displayList && this.displayList !== t && this.removeFromDisplayList(), t.exists(this) || (this.displayList = t, t.add(this, !0), t.queueDepthSort(), this.emit(a.ADDED_TO_SCENE, this, this.scene), t.events.emit(h.ADDED_TO_SCENE, this, this.scene)), this;
                    },
                    addToUpdateList: function() {
                        return this.scene && this.preUpdate && this.scene.sys.updateList.add(this), this;
                    },
                    removeFromDisplayList: function() {
                        var t = this.displayList || this.scene.sys.displayList;
                        return t && t.exists(this) && (t.remove(this, !0), t.queueDepthSort(), this.displayList = null, this.emit(a.REMOVED_FROM_SCENE, this, this.scene), t.events.emit(h.REMOVED_FROM_SCENE, this, this.scene)), this;
                    },
                    removeFromUpdateList: function() {
                        return this.scene && this.preUpdate && this.scene.sys.updateList.remove(this), this;
                    },
                    destroy: function(t) {
                        this.scene && !this.ignoreDestroy && (void 0 === t && (t = !1), this.preDestroy && this.preDestroy.call(this), this.emit(a.DESTROY, this, t), this.removeAllListeners(), this.postPipelines && this.resetPostPipeline(!0), this.removeFromDisplayList(), this.removeFromUpdateList(), this.input && (this.scene.sys.input.clear(this), this.input = void 0), this.data && (this.data.destroy(), this.data = void 0), this.body && (this.body.destroy(), this.body = void 0), this.preFX && (this.preFX.destroy(), this.preFX = void 0), this.postFX && (this.postFX.destroy(), this.postFX = void 0), this.active = !1, this.visible = !1, this.scene = void 0, this.parentContainer = void 0);
                    }
                });
                l.RENDER_MASK = 15, t.exports = l;
            },
            99325: (t, e, i)=>{
                var s = i(56694), n = i(91963), r = i(7599), o = new s({
                    initialize: function(t) {
                        this.scene = t, this.systems = t.sys, this.events = t.sys.events, this.displayList, this.updateList, this.events.once(r.BOOT, this.boot, this), this.events.on(r.START, this.start, this);
                    },
                    boot: function() {
                        this.displayList = this.systems.displayList, this.updateList = this.systems.updateList, this.events.once(r.DESTROY, this.destroy, this);
                    },
                    start: function() {
                        this.events.once(r.SHUTDOWN, this.shutdown, this);
                    },
                    shutdown: function() {
                        this.events.off(r.SHUTDOWN, this.shutdown, this);
                    },
                    destroy: function() {
                        this.shutdown(), this.events.off(r.START, this.start, this), this.scene = null, this.systems = null, this.events = null, this.displayList = null, this.updateList = null;
                    }
                });
                o.register = function(t, e) {
                    o.prototype.hasOwnProperty(t) || (o.prototype[t] = e);
                }, o.remove = function(t) {
                    o.prototype.hasOwnProperty(t) && delete o.prototype[t];
                }, n.register("GameObjectCreator", o, "make"), t.exports = o;
            },
            61286: (t, e, i)=>{
                var s = i(56694), n = i(91963), r = i(7599), o = new s({
                    initialize: function(t) {
                        this.scene = t, this.systems = t.sys, this.events = t.sys.events, this.displayList, this.updateList, this.events.once(r.BOOT, this.boot, this), this.events.on(r.START, this.start, this);
                    },
                    boot: function() {
                        this.displayList = this.systems.displayList, this.updateList = this.systems.updateList, this.events.once(r.DESTROY, this.destroy, this);
                    },
                    start: function() {
                        this.events.once(r.SHUTDOWN, this.shutdown, this);
                    },
                    existing: function(t) {
                        return (t.renderCanvas || t.renderWebGL) && this.displayList.add(t), t.preUpdate && this.updateList.add(t), t;
                    },
                    shutdown: function() {
                        this.events.off(r.SHUTDOWN, this.shutdown, this);
                    },
                    destroy: function() {
                        this.shutdown(), this.events.off(r.START, this.start, this), this.scene = null, this.systems = null, this.events = null, this.displayList = null, this.updateList = null;
                    }
                });
                o.register = function(t, e) {
                    o.prototype.hasOwnProperty(t) || (o.prototype[t] = e);
                }, o.remove = function(t) {
                    o.prototype.hasOwnProperty(t) && delete o.prototype[t];
                }, n.register("GameObjectFactory", o, "add"), t.exports = o;
            },
            73329: (t, e, i)=>{
                var s = i(69360), n = new s, r = new s, o = new s, a = {
                    camera: n,
                    sprite: r,
                    calc: o
                };
                t.exports = function(t, e, i) {
                    var s = n, h = r, l = o;
                    return h.applyITRS(t.x, t.y, t.rotation, t.scaleX, t.scaleY), s.copyFrom(e.matrix), i ? (s.multiplyWithOffset(i, -e.scrollX * t.scrollFactorX, -e.scrollY * t.scrollFactorY), h.e = t.x, h.f = t.y) : (h.e -= e.scrollX * t.scrollFactorX, h.f -= e.scrollY * t.scrollFactorY), s.multiply(h, l), a;
                };
            },
            92034: (t, e, i)=>{
                var s = i(56694), n = i(74623), r = i(91963), o = i(7599), a = new s({
                    Extends: n,
                    initialize: function(t) {
                        n.call(this), this.checkQueue = !0, this.scene = t, this.systems = t.sys, t.sys.events.once(o.BOOT, this.boot, this), t.sys.events.on(o.START, this.start, this);
                    },
                    boot: function() {
                        this.systems.events.once(o.DESTROY, this.destroy, this);
                    },
                    start: function() {
                        var t = this.systems.events;
                        t.on(o.PRE_UPDATE, this.update, this), t.on(o.UPDATE, this.sceneUpdate, this), t.once(o.SHUTDOWN, this.shutdown, this);
                    },
                    sceneUpdate: function(t, e) {
                        for(var i = this._active, s = i.length, n = 0; n < s; n++){
                            var r = i[n];
                            r.active && r.preUpdate.call(r, t, e);
                        }
                    },
                    shutdown: function() {
                        for(var t = this._active.length; t--;)this._active[t].destroy(!0);
                        for(t = this._pending.length; t--;)this._pending[t].destroy(!0);
                        for(t = this._destroy.length; t--;)this._destroy[t].destroy(!0);
                        this._toProcess = 0, this._pending = [], this._active = [], this._destroy = [], this.removeAllListeners();
                        var e = this.systems.events;
                        e.off(o.PRE_UPDATE, this.update, this), e.off(o.UPDATE, this.sceneUpdate, this), e.off(o.SHUTDOWN, this.shutdown, this);
                    },
                    destroy: function() {
                        this.shutdown(), this.systems.events.off(o.START, this.start, this), this.scene = null, this.systems = null;
                    }
                });
                r.register("UpdateList", a, "updateList"), t.exports = a;
            },
            8810: (t)=>{
                t.exports = function(t, e, i, s, n, r, o, a, h, l, u, c, d, f, p) {
                    var v = i.x - e.displayOriginX + n, g = i.y - e.displayOriginY + r, m = v + i.w, y = g + i.h, x = o.getXRound(v, g, a), T = o.getYRound(v, g, a), w = o.getXRound(v, y, a), b = o.getYRound(v, y, a), S = o.getXRound(m, y, a), E = o.getYRound(m, y, a), A = o.getXRound(m, g, a), C = o.getYRound(m, g, a);
                    t.batchQuad(e, x, T, w, b, S, E, A, C, s.u0, s.v0, s.u1, s.v1, h, l, u, c, d, f, p);
                };
            },
            82173: (t)=>{
                t.exports = function(t, e, i, s) {
                    if (void 0 === i && (i = !1), void 0 === s) return s = {
                        local: {
                            x: 0,
                            y: 0,
                            width: 0,
                            height: 0
                        },
                        global: {
                            x: 0,
                            y: 0,
                            width: 0,
                            height: 0
                        },
                        lines: {
                            shortest: 0,
                            longest: 0,
                            lengths: null,
                            height: 0
                        },
                        wrappedText: "",
                        words: [],
                        characters: [],
                        scaleX: 0,
                        scaleY: 0
                    };
                    var n, r, o, a, h = t.text, l = h.length, u = t.maxWidth, c = t.wordWrapCharCode, d = Number.MAX_VALUE, f = Number.MAX_VALUE, p = 0, v = 0, g = t.fontData.chars, m = t.fontData.lineHeight, y = t.letterSpacing, x = t.lineSpacing, T = 0, w = 0, b = 0, S = null, E = t._align, A = 0, C = 0, _ = t.fontSize / t.fontData.size, M = _ * t.scaleX, P = _ * t.scaleY, R = null, O = 0, L = [], F = Number.MAX_VALUE, D = 0, I = 0, k = 0, B = [], N = [], X = null;
                    if (u > 0) {
                        for(n = 0; n < l; n++)if (10 !== (b = h.charCodeAt(n))) {
                            if (S = g[b]) {
                                if (null !== R) var U = S.kerning[O];
                                b === c ? null !== X && (B.push({
                                    word: X.word,
                                    i: X.i,
                                    x: X.x * M,
                                    y: X.y * P,
                                    w: X.w * M,
                                    h: X.h * P,
                                    cr: !1
                                }), X = null) : (null === X && (X = {
                                    word: "",
                                    i: n,
                                    x: T,
                                    y: w,
                                    w: 0,
                                    h: m,
                                    cr: !1
                                }), X.word = X.word.concat(h[n]), X.w += S.xOffset + S.xAdvance + (void 0 !== U ? U : 0)), T += S.xAdvance + y, R = S, O = b;
                            }
                        } else null !== X && (B.push({
                            word: X.word,
                            i: X.i,
                            x: X.x * M,
                            y: X.y * P,
                            w: X.w * M,
                            h: X.h * P,
                            cr: !0
                        }), X = null), T = 0, w += m + x, R = null;
                        var Y;
                        null !== X && B.push({
                            word: X.word,
                            i: X.i,
                            x: X.x * M,
                            y: X.y * P,
                            w: X.w * M,
                            h: X.h * P,
                            cr: !1
                        }), T = 0, w = 0, R = null, O = 0;
                        var z = 0, G = [];
                        for(n = 0; n < B.length; n++){
                            var V = B[n], W = V.x, H = V.x + V.w;
                            if (Y) z = W - (W - (Y.x + Y.w) + Y.w), Y = null;
                            W - z > u || H - z > u ? (G.push(V.i - 1), V.cr ? (G.push(V.i + V.word.length), z = 0, Y = null) : Y = V) : V.cr && (G.push(V.i + V.word.length), z = 0, Y = null);
                        }
                        for(n = G.length - 1; n >= 0; n--)r = h, o = G[n], a = "\n", h = r.substr(0, o) + a + r.substr(o + 1);
                        s.wrappedText = h, l = h.length, B = [], X = null;
                    }
                    var j = 0;
                    for(n = 0; n < l; n++)if (10 !== (b = h.charCodeAt(n))) {
                        if (S = g[b]) {
                            if (A = T, C = w, null !== R) {
                                var q = S.kerning[O];
                                A += void 0 !== q ? q : 0;
                            }
                            d > A && (d = A), f > C && (f = C);
                            var K = A + S.xAdvance, Z = C + m;
                            p < K && (p = K), v < Z && (v = Z);
                            var J = S.xOffset + S.xAdvance + (void 0 !== q ? q : 0);
                            b === c ? null !== X && (B.push({
                                word: X.word,
                                i: X.i,
                                x: X.x * M,
                                y: X.y * P,
                                w: X.w * M,
                                h: X.h * P
                            }), X = null) : (null === X && (X = {
                                word: "",
                                i: j,
                                x: T,
                                y: w,
                                w: 0,
                                h: m
                            }), X.word = X.word.concat(h[n]), X.w += J), N.push({
                                i: j,
                                idx: n,
                                char: h[n],
                                code: b,
                                x: (S.xOffset + A) * _,
                                y: (S.yOffset + w) * _,
                                w: S.width * _,
                                h: S.height * _,
                                t: w * _,
                                r: K * _,
                                b: m * _,
                                line: I,
                                glyph: S
                            }), T += S.xAdvance + y + (void 0 !== q ? q : 0), R = S, O = b, k = K * _, j++;
                        }
                    } else null !== X && (B.push({
                        word: X.word,
                        i: X.i,
                        x: X.x * M,
                        y: X.y * P,
                        w: X.w * M,
                        h: X.h * P
                    }), X = null), T = 0, w += m + x, R = null, L[I] = k, k > D && (D = k), k < F && (F = k), I++, k = 0;
                    if (null !== X && B.push({
                        word: X.word,
                        i: X.i,
                        x: X.x * M,
                        y: X.y * P,
                        w: X.w * M,
                        h: X.h * P
                    }), L[I] = k, k > D && (D = k), k < F && (F = k), E > 0) for(var Q = 0; Q < N.length; Q++){
                        var $ = N[Q];
                        if (1 === E) {
                            var tt = (D - L[$.line]) / 2;
                            $.x += tt, $.r += tt;
                        } else if (2 === E) {
                            var et = D - L[$.line];
                            $.x += et, $.r += et;
                        }
                    }
                    var it = s.local, st = s.global, nt = s.lines;
                    return it.x = d * _, it.y = f * _, it.width = p * _, it.height = v * _, st.x = t.x - t._displayOriginX + d * M, st.y = t.y - t._displayOriginY + f * P, st.width = p * M, st.height = v * P, nt.shortest = F, nt.longest = D, nt.lengths = L, e && (it.x = Math.ceil(it.x), it.y = Math.ceil(it.y), it.width = Math.ceil(it.width), it.height = Math.ceil(it.height), st.x = Math.ceil(st.x), st.y = Math.ceil(st.y), st.width = Math.ceil(st.width), st.height = Math.ceil(st.height), nt.shortest = Math.ceil(F), nt.longest = Math.ceil(D)), i && (t._displayOriginX = t.originX * it.width, t._displayOriginY = t.originY * it.height, st.x = t.x - t._displayOriginX * t.scaleX, st.y = t.y - t._displayOriginY * t.scaleY, e && (st.x = Math.ceil(st.x), st.y = Math.ceil(st.y))), s.words = B, s.characters = N, s.lines.height = m, s.scale = _, s.scaleX = t.scaleX, s.scaleY = t.scaleY, s;
                };
            },
            68298: (t, e, i)=>{
                var s = i(31476);
                t.exports = function(t, e, i, n, r, o, a) {
                    var h = t.sys.textures.get(i), l = h.get(n), u = t.sys.cache.xml.get(r);
                    if (l && u) {
                        var c = s(u, l, o, a, h);
                        return t.sys.cache.bitmapFont.add(e, {
                            data: c,
                            texture: i,
                            frame: n,
                            fromAtlas: !0
                        }), !0;
                    }
                    return !1;
                };
            },
            39860: (t, e, i)=>{
                var s = i(10850);
                t.exports = function(t, e) {
                    var i = e.width, n = e.height, r = Math.floor(i / 2), o = Math.floor(n / 2), a = s(e, "chars", "");
                    if ("" !== a) {
                        var h = s(e, "image", ""), l = t.sys.textures.getFrame(h), u = l.cutX, c = l.cutY, d = l.source.width, f = l.source.height, p = s(e, "offset.x", 0), v = s(e, "offset.y", 0), g = s(e, "spacing.x", 0), m = s(e, "spacing.y", 0), y = s(e, "lineSpacing", 0), x = s(e, "charsPerRow", null);
                        null === x && (x = d / i) > a.length && (x = a.length);
                        for(var T = p, w = v, b = {
                            retroFont: !0,
                            font: h,
                            size: i,
                            lineHeight: n + y,
                            chars: {}
                        }, S = 0, E = 0; E < a.length; E++){
                            var A = a.charCodeAt(E), C = (u + T) / d, _ = (c + w) / f, M = (u + T + i) / d, P = (c + w + n) / f;
                            b.chars[A] = {
                                x: T,
                                y: w,
                                width: i,
                                height: n,
                                centerX: r,
                                centerY: o,
                                xOffset: 0,
                                yOffset: 0,
                                xAdvance: i,
                                data: {},
                                kerning: {},
                                u0: C,
                                v0: _,
                                u1: M,
                                v1: P
                            }, ++S === x ? (S = 0, T = p, w += n + m) : T += i + g;
                        }
                        return {
                            data: b,
                            frame: null,
                            texture: h
                        };
                    }
                };
            },
            31476: (t)=>{
                function e(t, e) {
                    return parseInt(t.getAttribute(e), 10);
                }
                t.exports = function(t, i, s, n, r) {
                    void 0 === s && (s = 0), void 0 === n && (n = 0);
                    var o = i.cutX, a = i.cutY, h = i.source.width, l = i.source.height, u = i.sourceIndex, c = {}, d = t.getElementsByTagName("info")[0], f = t.getElementsByTagName("common")[0];
                    c.font = d.getAttribute("face"), c.size = e(d, "size"), c.lineHeight = e(f, "lineHeight") + n, c.chars = {};
                    var p = t.getElementsByTagName("char"), v = void 0 !== i && i.trimmed;
                    if (v) var g = i.height, m = i.width;
                    for(var y = 0; y < p.length; y++){
                        var x = p[y], T = e(x, "id"), w = String.fromCharCode(T), b = e(x, "x"), S = e(x, "y"), E = e(x, "width"), A = e(x, "height");
                        v && (b < m && (m = b), S < g && (g = S)), v && 0 !== g && 0 !== m && (b -= i.x, S -= i.y);
                        var C = (o + b) / h, _ = (a + S) / l, M = (o + b + E) / h, P = (a + S + A) / l;
                        if (c.chars[T] = {
                            x: b,
                            y: S,
                            width: E,
                            height: A,
                            centerX: Math.floor(E / 2),
                            centerY: Math.floor(A / 2),
                            xOffset: e(x, "xoffset"),
                            yOffset: e(x, "yoffset"),
                            xAdvance: e(x, "xadvance") + s,
                            data: {},
                            kerning: {},
                            u0: C,
                            v0: _,
                            u1: M,
                            v1: P
                        }, r && 0 !== E && 0 !== A) {
                            var R = r.add(w, u, b, S, E, A);
                            R && R.setUVs(E, A, C, _, M, P);
                        }
                    }
                    var O = t.getElementsByTagName("kerning");
                    for(y = 0; y < O.length; y++){
                        var L = O[y], F = e(L, "first"), D = e(L, "second"), I = e(L, "amount");
                        c.chars[D].kerning[F] = I;
                    }
                    return c;
                };
            },
            55873: (t, e, i)=>{
                var s = i(66863), n = i(98611), r = {
                    Parse: i(39860)
                };
                r = n(!1, r, s), t.exports = r;
            },
            66863: (t)=>{
                t.exports = {
                    TEXT_SET1: " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",
                    TEXT_SET2: " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",
                    TEXT_SET3: "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",
                    TEXT_SET4: "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",
                    TEXT_SET5: "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",
                    TEXT_SET6: "ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",
                    TEXT_SET7: "AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",
                    TEXT_SET8: "0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",
                    TEXT_SET9: "ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",
                    TEXT_SET10: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
                    TEXT_SET11: "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789"
                };
            },
            13468: (t, e, i)=>{
                var s = i(44616), n = i(56694), r = i(88899), o = new n({
                    Extends: s,
                    Mixins: [
                        r
                    ],
                    initialize: function(t, e, i, n, r, o, a) {
                        s.call(this, t, e, i, n, r, o, a), this.type = "DynamicBitmapText", this.scrollX = 0, this.scrollY = 0, this.cropWidth = 0, this.cropHeight = 0, this.displayCallback, this.callbackData = {
                            parent: this,
                            color: 0,
                            tint: {
                                topLeft: 0,
                                topRight: 0,
                                bottomLeft: 0,
                                bottomRight: 0
                            },
                            index: 0,
                            charCode: 0,
                            x: 0,
                            y: 0,
                            scale: 0,
                            rotation: 0,
                            data: 0
                        };
                    },
                    setSize: function(t, e) {
                        return this.cropWidth = t, this.cropHeight = e, this;
                    },
                    setDisplayCallback: function(t) {
                        return this.displayCallback = t, this;
                    },
                    setScrollX: function(t) {
                        return this.scrollX = t, this;
                    },
                    setScrollY: function(t) {
                        return this.scrollY = t, this;
                    }
                });
                t.exports = o;
            },
            93438: (t, e, i)=>{
                var s = i(49584);
                t.exports = function(t, e, i, n) {
                    var r = e._text, o = r.length, a = t.currentContext;
                    if (0 !== o && s(t, a, e, i, n)) {
                        i.addToRenderList(e);
                        var h = e.fromAtlas ? e.frame : e.texture.frames.__BASE, l = e.displayCallback, u = e.callbackData, c = e.fontData.chars, d = e.fontData.lineHeight, f = e._letterSpacing, p = 0, v = 0, g = 0, m = null, y = 0, x = 0, T = 0, w = 0, b = 0, S = 0, E = null, A = 0, C = e.frame.source.image, _ = h.cutX, M = h.cutY, P = 0, R = 0, O = e._fontSize / e.fontData.size, L = e._align, F = 0, D = 0;
                        e.getTextBounds(!1);
                        var I = e._bounds.lines;
                        1 === L ? D = (I.longest - I.lengths[0]) / 2 : 2 === L && (D = I.longest - I.lengths[0]), a.translate(-e.displayOriginX, -e.displayOriginY);
                        var k = i.roundPixels;
                        e.cropWidth > 0 && e.cropHeight > 0 && (a.beginPath(), a.rect(0, 0, e.cropWidth, e.cropHeight), a.clip());
                        for(var B = 0; B < o; B++)if (R = O, P = 0, 10 !== (g = r.charCodeAt(B))) {
                            if (m = c[g]) {
                                if (y = _ + m.x, x = M + m.y, T = m.width, w = m.height, b = m.xOffset + p - e.scrollX, S = m.yOffset + v - e.scrollY, null !== E) {
                                    var N = m.kerning[A];
                                    b += void 0 !== N ? N : 0;
                                }
                                if (l) {
                                    u.index = B, u.charCode = g, u.x = b, u.y = S, u.scale = R, u.rotation = P, u.data = m.data;
                                    var X = l(u);
                                    b = X.x, S = X.y, R = X.scale, P = X.rotation;
                                }
                                b *= R, S *= R, b += D, p += m.xAdvance + f + (void 0 !== N ? N : 0), E = m, A = g, 0 !== T && 0 !== w && 32 !== g && (k && (b = Math.round(b), S = Math.round(S)), a.save(), a.translate(b, S), a.rotate(P), a.scale(R, R), a.drawImage(C, y, x, T, w, 0, 0, T, w), a.restore());
                            }
                        } else F++, 1 === L ? D = (I.longest - I.lengths[F]) / 2 : 2 === L && (D = I.longest - I.lengths[F]), p = 0, v += d, E = null;
                        a.restore();
                    }
                };
            },
            67513: (t, e, i)=>{
                var s = i(13468), n = i(88933), r = i(99325), o = i(20494);
                r.register("dynamicBitmapText", function(t, e) {
                    void 0 === t && (t = {});
                    var i = o(t, "font", ""), r = o(t, "text", ""), a = o(t, "size", !1), h = new s(this.scene, 0, 0, i, r, a);
                    return void 0 !== e && (t.add = e), n(this.scene, h, t), h;
                });
            },
            94145: (t, e, i)=>{
                var s = i(13468);
                i(61286).register("dynamicBitmapText", function(t, e, i, n, r) {
                    return this.displayList.add(new s(this.scene, t, e, i, n, r));
                });
            },
            88899: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(16873), r = i(93438), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            16873: (t, e, i)=>{
                var s = i(73329), n = i(69360), r = i(75512), o = new n;
                t.exports = function(t, e, i, n) {
                    var a = e.text, h = a.length;
                    if (0 !== h) {
                        i.addToRenderList(e);
                        var l = t.pipelines.set(e.pipeline, e), u = s(e, i, n);
                        t.pipelines.preBatch(e);
                        var c = u.sprite, d = u.calc, f = o, p = e.cropWidth > 0 || e.cropHeight > 0;
                        p && (l.flush(), t.pushScissor(d.tx, d.ty, e.cropWidth * d.scaleX, e.cropHeight * d.scaleY));
                        var v, g, m = e.frame.glTexture, y = e.tintFill, x = r.getTintAppendFloatAlpha(e.tintTopLeft, i.alpha * e._alphaTL), T = r.getTintAppendFloatAlpha(e.tintTopRight, i.alpha * e._alphaTR), w = r.getTintAppendFloatAlpha(e.tintBottomLeft, i.alpha * e._alphaBL), b = r.getTintAppendFloatAlpha(e.tintBottomRight, i.alpha * e._alphaBR), S = l.setGameObject(e), E = 0, A = 0, C = 0, _ = 0, M = e.letterSpacing, P = 0, R = 0, O = e.scrollX, L = e.scrollY, F = e.fontData, D = F.chars, I = F.lineHeight, k = e.fontSize / F.size, B = 0, N = e._align, X = 0, U = 0, Y = e.getTextBounds(!1);
                        e.maxWidth > 0 && (h = (a = Y.wrappedText).length);
                        var z = e._bounds.lines;
                        1 === N ? U = (z.longest - z.lengths[0]) / 2 : 2 === N && (U = z.longest - z.lengths[0]);
                        for(var G = i.roundPixels, V = e.displayCallback, W = e.callbackData, H = 0; H < h; H++)if (10 !== (C = a.charCodeAt(H))) {
                            if (v = D[C]) {
                                P = v.width, R = v.height;
                                var j = v.xOffset + E - O, q = v.yOffset + A - L;
                                if (null !== g) {
                                    var K = v.kerning[_];
                                    j += void 0 !== K ? K : 0;
                                }
                                if (E += v.xAdvance + M, g = v, _ = C, 0 !== P && 0 !== R && 32 !== C) {
                                    if (k = e.fontSize / e.fontData.size, B = 0, V) {
                                        W.color = 0, W.tint.topLeft = x, W.tint.topRight = T, W.tint.bottomLeft = w, W.tint.bottomRight = b, W.index = H, W.charCode = C, W.x = j, W.y = q, W.scale = k, W.rotation = B, W.data = v.data;
                                        var Z = V(W);
                                        j = Z.x, q = Z.y, k = Z.scale, B = Z.rotation, Z.color ? (x = Z.color, T = Z.color, w = Z.color, b = Z.color) : (x = Z.tint.topLeft, T = Z.tint.topRight, w = Z.tint.bottomLeft, b = Z.tint.bottomRight), x = r.getTintAppendFloatAlpha(x, i.alpha * e._alphaTL), T = r.getTintAppendFloatAlpha(T, i.alpha * e._alphaTR), w = r.getTintAppendFloatAlpha(w, i.alpha * e._alphaBL), b = r.getTintAppendFloatAlpha(b, i.alpha * e._alphaBR);
                                    }
                                    j *= k, q *= k, j -= e.displayOriginX, q -= e.displayOriginY, j += U, f.applyITRS(j, q, B, k, k), d.multiply(f, c);
                                    var J = v.u0, Q = v.v0, $ = v.u1, tt = v.v1, et = P, it = R, st = c.e, nt = c.f, rt = it * c.c + c.e, ot = it * c.d + c.f, at = et * c.a + it * c.c + c.e, ht = et * c.b + it * c.d + c.f, lt = et * c.a + c.e, ut = et * c.b + c.f;
                                    G && (st = Math.round(st), nt = Math.round(nt), rt = Math.round(rt), ot = Math.round(ot), at = Math.round(at), ht = Math.round(ht), lt = Math.round(lt), ut = Math.round(ut)), l.batchQuad(e, st, nt, rt, ot, at, ht, lt, ut, J, Q, $, tt, x, T, w, b, y, m, S);
                                }
                            }
                        } else X++, 1 === N ? U = (z.longest - z.lengths[X]) / 2 : 2 === N && (U = z.longest - z.lengths[X]), E = 0, A += I, g = null;
                        p && (l.flush(), t.popScissor()), t.pipelines.postBatch(e);
                    }
                };
            },
            44616: (t, e, i)=>{
                var s = i(56694), n = i(82897), r = i(64937), o = i(89980), a = i(82173), h = i(68298), l = i(31476), u = i(74118), c = i(84557), d = new s({
                    Extends: o,
                    Mixins: [
                        r.Alpha,
                        r.BlendMode,
                        r.Depth,
                        r.GetBounds,
                        r.Mask,
                        r.Origin,
                        r.Pipeline,
                        r.PostPipeline,
                        r.ScrollFactor,
                        r.Texture,
                        r.Tint,
                        r.Transform,
                        r.Visible,
                        c
                    ],
                    initialize: function(t, e, i, s, n, r, h) {
                        void 0 === n && (n = ""), void 0 === h && (h = 0), o.call(this, t, "BitmapText"), this.font = s;
                        var l = this.scene.sys.cache.bitmapFont.get(s);
                        l || console.warn("Invalid BitmapText key: " + s), this.fontData = l.data, this._text = "", this._fontSize = r || this.fontData.size, this._letterSpacing = 0, this._lineSpacing = 0, this._align = h, this._bounds = a(), this._dirty = !0, this._maxWidth = 0, this.wordWrapCharCode = 32, this.charColors = [], this.dropShadowX = 0, this.dropShadowY = 0, this.dropShadowColor = 0, this.dropShadowAlpha = .5, this.fromAtlas = l.fromAtlas, this.setTexture(l.texture, l.frame), this.setPosition(e, i), this.setOrigin(0, 0), this.initPipeline(), this.initPostPipeline(), this.setText(n);
                    },
                    setLeftAlign: function() {
                        return this._align = d.ALIGN_LEFT, this._dirty = !0, this;
                    },
                    setCenterAlign: function() {
                        return this._align = d.ALIGN_CENTER, this._dirty = !0, this;
                    },
                    setRightAlign: function() {
                        return this._align = d.ALIGN_RIGHT, this._dirty = !0, this;
                    },
                    setFontSize: function(t) {
                        return this._fontSize = t, this._dirty = !0, this;
                    },
                    setLetterSpacing: function(t) {
                        return void 0 === t && (t = 0), this._letterSpacing = t, this._dirty = !0, this;
                    },
                    setLineSpacing: function(t) {
                        return void 0 === t && (t = 0), this.lineSpacing = t, this;
                    },
                    setText: function(t) {
                        return t || 0 === t || (t = ""), Array.isArray(t) && (t = t.join("\n")), t !== this.text && (this._text = t.toString(), this._dirty = !0, this.updateDisplayOrigin()), this;
                    },
                    setDropShadow: function(t, e, i, s) {
                        return void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = .5), this.dropShadowX = t, this.dropShadowY = e, this.dropShadowColor = i, this.dropShadowAlpha = s, this;
                    },
                    setCharacterTint: function(t, e, i, s, r, o, a) {
                        void 0 === t && (t = 0), void 0 === e && (e = 1), void 0 === i && (i = !1), void 0 === s && (s = -1), void 0 === r && (r = s, o = s, a = s);
                        var h = this.text.length;
                        -1 === e && (e = h), t < 0 && (t = h + t), t = n(t, 0, h - 1);
                        for(var l = n(t + e, t, h), u = this.charColors, c = t; c < l; c++){
                            var d = u[c];
                            if (-1 === s) u[c] = null;
                            else {
                                var f = i ? 1 : 0;
                                d ? (d.tintEffect = f, d.tintTL = s, d.tintTR = r, d.tintBL = o, d.tintBR = a) : u[c] = {
                                    tintEffect: f,
                                    tintTL: s,
                                    tintTR: r,
                                    tintBL: o,
                                    tintBR: a
                                };
                            }
                        }
                        return this;
                    },
                    setWordTint: function(t, e, i, s, n, r, o) {
                        void 0 === e && (e = 1);
                        for(var a = this.getTextBounds().words, h = "number" == typeof t, l = 0, u = 0; u < a.length; u++){
                            var c = a[u];
                            if ((h && u === t || !h && c.word === t) && (this.setCharacterTint(c.i, c.word.length, i, s, n, r, o), ++l === e)) return this;
                        }
                        return this;
                    },
                    getTextBounds: function(t) {
                        var e = this._bounds;
                        return (this._dirty || t || this.scaleX !== e.scaleX || this.scaleY !== e.scaleY) && (a(this, t, !0, e), this._dirty = !1), e;
                    },
                    getCharacterAt: function(t, e, i) {
                        for(var s = this.getLocalPoint(t, e, null, i), n = this.getTextBounds().characters, r = new u, o = 0; o < n.length; o++){
                            var a = n[o];
                            if (r.setTo(a.x, a.t, a.r - a.x, a.b), r.contains(s.x, s.y)) return a;
                        }
                        return null;
                    },
                    updateDisplayOrigin: function() {
                        return this._dirty = !0, this.getTextBounds(!1), this;
                    },
                    setFont: function(t, e, i) {
                        if (void 0 === e && (e = this._fontSize), void 0 === i && (i = this._align), t !== this.font) {
                            var s = this.scene.sys.cache.bitmapFont.get(t);
                            s && (this.font = t, this.fontData = s.data, this._fontSize = e, this._align = i, this.fromAtlas = !0 === s.fromAtlas, this.setTexture(s.texture, s.frame), a(this, !1, !0, this._bounds));
                        }
                        return this;
                    },
                    setMaxWidth: function(t, e) {
                        return this._maxWidth = t, this._dirty = !0, void 0 !== e && (this.wordWrapCharCode = e), this;
                    },
                    align: {
                        set: function(t) {
                            this._align = t, this._dirty = !0;
                        },
                        get: function() {
                            return this._align;
                        }
                    },
                    text: {
                        set: function(t) {
                            this.setText(t);
                        },
                        get: function() {
                            return this._text;
                        }
                    },
                    fontSize: {
                        set: function(t) {
                            this._fontSize = t, this._dirty = !0;
                        },
                        get: function() {
                            return this._fontSize;
                        }
                    },
                    letterSpacing: {
                        set: function(t) {
                            this._letterSpacing = t, this._dirty = !0;
                        },
                        get: function() {
                            return this._letterSpacing;
                        }
                    },
                    lineSpacing: {
                        set: function(t) {
                            this._lineSpacing = t, this._dirty = !0;
                        },
                        get: function() {
                            return this._lineSpacing;
                        }
                    },
                    maxWidth: {
                        set: function(t) {
                            this._maxWidth = t, this._dirty = !0;
                        },
                        get: function() {
                            return this._maxWidth;
                        }
                    },
                    width: {
                        get: function() {
                            return this.getTextBounds(!1), this._bounds.global.width;
                        }
                    },
                    height: {
                        get: function() {
                            return this.getTextBounds(!1), this._bounds.global.height;
                        }
                    },
                    displayWidth: {
                        get: function() {
                            return this.width;
                        }
                    },
                    displayHeight: {
                        get: function() {
                            return this.height;
                        }
                    },
                    toJSON: function() {
                        var t = r.ToJSON(this), e = {
                            font: this.font,
                            text: this.text,
                            fontSize: this.fontSize,
                            letterSpacing: this.letterSpacing,
                            lineSpacing: this.lineSpacing,
                            align: this.align
                        };
                        return t.data = e, t;
                    },
                    preDestroy: function() {
                        this.charColors.length = 0, this._bounds = null, this.fontData = null;
                    }
                });
                d.ALIGN_LEFT = 0, d.ALIGN_CENTER = 1, d.ALIGN_RIGHT = 2, d.ParseFromAtlas = h, d.ParseXMLBitmapFont = l, t.exports = d;
            },
            97545: (t, e, i)=>{
                var s = i(49584);
                t.exports = function(t, e, i, n) {
                    var r = e._text, o = r.length, a = t.currentContext;
                    if (0 !== o && s(t, a, e, i, n)) {
                        i.addToRenderList(e);
                        var h = e.fromAtlas ? e.frame : e.texture.frames.__BASE, l = e.fontData.chars, u = e.fontData.lineHeight, c = e._letterSpacing, d = e._lineSpacing, f = 0, p = 0, v = 0, g = null, m = 0, y = 0, x = 0, T = 0, w = 0, b = 0, S = null, E = 0, A = h.source.image, C = h.cutX, _ = h.cutY, M = e._fontSize / e.fontData.size, P = e._align, R = 0, O = 0, L = e.getTextBounds(!1);
                        e.maxWidth > 0 && (o = (r = L.wrappedText).length);
                        var F = e._bounds.lines;
                        1 === P ? O = (F.longest - F.lengths[0]) / 2 : 2 === P && (O = F.longest - F.lengths[0]), a.translate(-e.displayOriginX, -e.displayOriginY);
                        for(var D = i.roundPixels, I = 0; I < o; I++)if (10 !== (v = r.charCodeAt(I))) {
                            if (g = l[v]) {
                                if (m = C + g.x, y = _ + g.y, x = g.width, T = g.height, w = g.xOffset + f, b = g.yOffset + p, null !== S) {
                                    var k = g.kerning[E];
                                    w += void 0 !== k ? k : 0;
                                }
                                w *= M, b *= M, w += O, f += g.xAdvance + c + (void 0 !== k ? k : 0), S = g, E = v, 0 !== x && 0 !== T && 32 !== v && (D && (w = Math.round(w), b = Math.round(b)), a.save(), a.translate(w, b), a.scale(M, M), a.drawImage(A, m, y, x, T, 0, 0, x, T), a.restore());
                            }
                        } else R++, 1 === P ? O = (F.longest - F.lengths[R]) / 2 : 2 === P && (O = F.longest - F.lengths[R]), f = 0, p += u + d, S = null;
                        a.restore();
                    }
                };
            },
            95499: (t, e, i)=>{
                var s = i(44616), n = i(88933), r = i(99325), o = i(20494), a = i(10850);
                r.register("bitmapText", function(t, e) {
                    void 0 === t && (t = {});
                    var i = a(t, "font", ""), r = o(t, "text", ""), h = o(t, "size", !1), l = a(t, "align", 0), u = new s(this.scene, 0, 0, i, r, h, l);
                    return void 0 !== e && (t.add = e), n(this.scene, u, t), u;
                });
            },
            21797: (t, e, i)=>{
                var s = i(44616);
                i(61286).register("bitmapText", function(t, e, i, n, r, o) {
                    return this.displayList.add(new s(this.scene, t, e, i, n, r, o));
                });
            },
            84557: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(26372), r = i(97545), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            26372: (t, e, i)=>{
                var s = i(8810), n = i(73329), r = i(75512);
                t.exports = function(t, e, i, o) {
                    if (0 !== e._text.length) {
                        i.addToRenderList(e);
                        var a = t.pipelines.set(e.pipeline, e), h = n(e, i, o).calc;
                        t.pipelines.preBatch(e);
                        var l, u, c, d = i.roundPixels, f = i.alpha, p = e.charColors, v = e.tintFill, g = r.getTintAppendFloatAlpha, m = g(e.tintTopLeft, f * e._alphaTL), y = g(e.tintTopRight, f * e._alphaTR), x = g(e.tintBottomLeft, f * e._alphaBL), T = g(e.tintBottomRight, f * e._alphaBR), w = e.frame.glTexture, b = a.setGameObject(e), S = e.getTextBounds(!1).characters, E = e.dropShadowX, A = e.dropShadowY;
                        if (0 !== E || 0 !== A) {
                            var C = e.dropShadowColor, _ = e.dropShadowAlpha, M = g(C, f * _ * e._alphaTL), P = g(C, f * _ * e._alphaTR), R = g(C, f * _ * e._alphaBL), O = g(C, f * _ * e._alphaBR);
                            for(l = 0; l < S.length; l++)c = (u = S[l]).glyph, 32 !== u.code && 0 !== c.width && 0 !== c.height && s(a, e, u, c, E, A, h, d, M, P, R, O, 1, w, b);
                        }
                        for(l = 0; l < S.length; l++)if (c = (u = S[l]).glyph, 32 !== u.code && 0 !== c.width && 0 !== c.height) {
                            if (p[u.i]) {
                                var L = p[u.i], F = L.tintEffect, D = g(L.tintTL, f * e._alphaTL), I = g(L.tintTR, f * e._alphaTR), k = g(L.tintBL, f * e._alphaBL), B = g(L.tintBR, f * e._alphaBR);
                                s(a, e, u, c, 0, 0, h, d, D, I, k, B, F, w, b);
                            } else s(a, e, u, c, 0, 0, h, d, m, y, x, T, v, w, b);
                        }
                        t.pipelines.postBatch(e);
                    }
                };
            },
            52816: (t, e, i)=>{
                var s = i(92246), n = i(41664), r = i(56694), o = i(64937), a = i(82047), h = i(89980), l = i(71207), u = new r({
                    Extends: h,
                    Mixins: [
                        o.Alpha,
                        o.BlendMode,
                        o.Depth,
                        o.Mask,
                        o.Pipeline,
                        o.PostPipeline,
                        o.ScrollFactor,
                        o.Size,
                        o.Texture,
                        o.Transform,
                        o.Visible,
                        s
                    ],
                    initialize: function(t, e, i, s, n) {
                        h.call(this, t, "Blitter"), this.setTexture(s, n), this.setPosition(e, i), this.initPipeline(), this.initPostPipeline(), this.children = new l, this.renderList = [], this.dirty = !1;
                    },
                    create: function(t, e, i, s, r) {
                        void 0 === s && (s = !0), void 0 === r && (r = this.children.length), void 0 === i ? i = this.frame : i instanceof a || (i = this.texture.get(i));
                        var o = new n(this, t, e, i, s);
                        return this.children.addAt(o, r, !1), this.dirty = !0, o;
                    },
                    createFromCallback: function(t, e, i, s) {
                        for(var n = this.createMultiple(e, i, s), r = 0; r < n.length; r++){
                            var o = n[r];
                            t.call(this, o, r);
                        }
                        return n;
                    },
                    createMultiple: function(t, e, i) {
                        void 0 === e && (e = this.frame.name), void 0 === i && (i = !0), Array.isArray(e) || (e = [
                            e
                        ]);
                        var s = [], n = this;
                        return e.forEach(function(e) {
                            for(var r = 0; r < t; r++)s.push(n.create(0, 0, e, i));
                        }), s;
                    },
                    childCanRender: function(t) {
                        return t.visible && t.alpha > 0;
                    },
                    getRenderList: function() {
                        return this.dirty && (this.renderList = this.children.list.filter(this.childCanRender, this), this.dirty = !1), this.renderList;
                    },
                    clear: function() {
                        this.children.removeAll(), this.dirty = !0;
                    },
                    preDestroy: function() {
                        this.children.destroy(), this.renderList = [];
                    }
                });
                t.exports = u;
            },
            33177: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n = e.getRenderList();
                    if (0 !== n.length) {
                        var r = t.currentContext, o = i.alpha * e.alpha;
                        if (0 !== o) {
                            i.addToRenderList(e), r.globalCompositeOperation = t.blendModes[e.blendMode], r.imageSmoothingEnabled = !e.frame.source.scaleMode;
                            var a = e.x - i.scrollX * e.scrollFactorX, h = e.y - i.scrollY * e.scrollFactorY;
                            r.save(), s && s.copyToContext(r);
                            for(var l = i.roundPixels, u = 0; u < n.length; u++){
                                var c = n[u], d = c.flipX || c.flipY, f = c.frame, p = f.canvasData, v = f.x, g = f.y, m = 1, y = 1, x = c.alpha * o;
                                0 !== x && (r.globalAlpha = x, d ? (c.flipX && (m = -1, v -= p.width), c.flipY && (y = -1, g -= p.height), p.width > 0 && p.height > 0 && (r.save(), r.translate(c.x + a, c.y + h), r.scale(m, y), r.drawImage(f.source.image, p.x, p.y, p.width, p.height, v, g, p.width, p.height), r.restore())) : (l && (v = Math.round(v), g = Math.round(g)), p.width > 0 && p.height > 0 && r.drawImage(f.source.image, p.x, p.y, p.width, p.height, v + c.x + a, g + c.y + h, p.width, p.height)));
                            }
                            r.restore();
                        }
                    }
                };
            },
            68452: (t, e, i)=>{
                var s = i(52816), n = i(88933), r = i(99325), o = i(20494);
                r.register("blitter", function(t, e) {
                    void 0 === t && (t = {});
                    var i = o(t, "key", null), r = o(t, "frame", null), a = new s(this.scene, 0, 0, i, r);
                    return void 0 !== e && (t.add = e), n(this.scene, a, t), a;
                });
            },
            38906: (t, e, i)=>{
                var s = i(52816);
                i(61286).register("blitter", function(t, e, i, n) {
                    return this.displayList.add(new s(this.scene, t, e, i, n));
                });
            },
            92246: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(89165), r = i(33177), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            89165: (t, e, i)=>{
                var s = i(69360), n = i(75512), r = new s;
                t.exports = function(t, e, i, s) {
                    var o = e.getRenderList(), a = i.alpha * e.alpha;
                    if (0 !== o.length && 0 !== a) {
                        i.addToRenderList(e);
                        var h = t.pipelines.set(this.pipeline, e), l = i.scrollX * e.scrollFactorX, u = i.scrollY * e.scrollFactorY, c = r.copyFrom(i.matrix);
                        s && (c.multiplyWithOffset(s, -l, -u), l = 0, u = 0);
                        var d = e.x - l, f = e.y - u, p = -1, v = i.roundPixels;
                        t.pipelines.preBatch(e);
                        for(var g = 0; g < o.length; g++){
                            var m = o[g], y = m.frame, x = m.alpha * a;
                            if (0 !== x) {
                                var T = y.width, w = y.height, b = d + m.x + y.x, S = f + m.y + y.y;
                                m.flipX && (T *= -1, b += y.width), m.flipY && (w *= -1, S += y.height);
                                var E = c.setQuad(b, S, b + T, S + w, v), A = n.getTintAppendFloatAlpha(m.tint, x);
                                if (y.sourceIndex !== p) {
                                    var C = h.setGameObject(e, y);
                                    p = y.sourceIndex;
                                }
                                h.batchQuad(e, E[0], E[1], E[2], E[3], E[4], E[5], E[6], E[7], y.u0, y.v0, y.u1, y.v1, A, A, A, A, false, y.glTexture, C) && (p = -1);
                            }
                        }
                        t.pipelines.postBatch(e);
                    }
                };
            },
            41664: (t, e, i)=>{
                var s = i(56694), n = i(82047), r = new s({
                    initialize: function(t, e, i, s, n) {
                        this.parent = t, this.x = e, this.y = i, this.frame = s, this.data = {}, this.tint = 16777215, this._visible = n, this._alpha = 1, this.flipX = !1, this.flipY = !1, this.hasTransformComponent = !0;
                    },
                    setFrame: function(t) {
                        return void 0 === t ? this.frame = this.parent.frame : t instanceof n && t.texture === this.parent.texture ? this.frame = t : this.frame = this.parent.texture.get(t), this;
                    },
                    resetFlip: function() {
                        return this.flipX = !1, this.flipY = !1, this;
                    },
                    reset: function(t, e, i) {
                        return this.x = t, this.y = e, this.flipX = !1, this.flipY = !1, this._alpha = 1, this._visible = !0, this.parent.dirty = !0, i && this.setFrame(i), this;
                    },
                    setPosition: function(t, e) {
                        return this.x = t, this.y = e, this;
                    },
                    setFlipX: function(t) {
                        return this.flipX = t, this;
                    },
                    setFlipY: function(t) {
                        return this.flipY = t, this;
                    },
                    setFlip: function(t, e) {
                        return this.flipX = t, this.flipY = e, this;
                    },
                    setVisible: function(t) {
                        return this.visible = t, this;
                    },
                    setAlpha: function(t) {
                        return this.alpha = t, this;
                    },
                    setTint: function(t) {
                        return this.tint = t, this;
                    },
                    destroy: function() {
                        this.parent.dirty = !0, this.parent.children.remove(this), this.parent = void 0, this.frame = void 0, this.data = void 0;
                    },
                    visible: {
                        get: function() {
                            return this._visible;
                        },
                        set: function(t) {
                            this.parent.dirty |= this._visible !== t, this._visible = t;
                        }
                    },
                    alpha: {
                        get: function() {
                            return this._alpha;
                        },
                        set: function(t) {
                            this.parent.dirty |= this._alpha > 0 != t > 0, this._alpha = t;
                        }
                    }
                });
                t.exports = r;
            },
            97123: (t, e, i)=>{
                var s = i(82897), n = {
                    _alpha: 1,
                    _alphaTL: 1,
                    _alphaTR: 1,
                    _alphaBL: 1,
                    _alphaBR: 1,
                    clearAlpha: function() {
                        return this.setAlpha(1);
                    },
                    setAlpha: function(t, e, i, n) {
                        return void 0 === t && (t = 1), void 0 === e ? this.alpha = t : (this._alphaTL = s(t, 0, 1), this._alphaTR = s(e, 0, 1), this._alphaBL = s(i, 0, 1), this._alphaBR = s(n, 0, 1)), this;
                    },
                    alpha: {
                        get: function() {
                            return this._alpha;
                        },
                        set: function(t) {
                            var e = s(t, 0, 1);
                            this._alpha = e, this._alphaTL = e, this._alphaTR = e, this._alphaBL = e, this._alphaBR = e, 0 === e ? this.renderFlags &= -3 : this.renderFlags |= 2;
                        }
                    },
                    alphaTopLeft: {
                        get: function() {
                            return this._alphaTL;
                        },
                        set: function(t) {
                            var e = s(t, 0, 1);
                            this._alphaTL = e, 0 !== e && (this.renderFlags |= 2);
                        }
                    },
                    alphaTopRight: {
                        get: function() {
                            return this._alphaTR;
                        },
                        set: function(t) {
                            var e = s(t, 0, 1);
                            this._alphaTR = e, 0 !== e && (this.renderFlags |= 2);
                        }
                    },
                    alphaBottomLeft: {
                        get: function() {
                            return this._alphaBL;
                        },
                        set: function(t) {
                            var e = s(t, 0, 1);
                            this._alphaBL = e, 0 !== e && (this.renderFlags |= 2);
                        }
                    },
                    alphaBottomRight: {
                        get: function() {
                            return this._alphaBR;
                        },
                        set: function(t) {
                            var e = s(t, 0, 1);
                            this._alphaBR = e, 0 !== e && (this.renderFlags |= 2);
                        }
                    }
                };
                t.exports = n;
            },
            15720: (t, e, i)=>{
                var s = i(82897), n = {
                    _alpha: 1,
                    clearAlpha: function() {
                        return this.setAlpha(1);
                    },
                    setAlpha: function(t) {
                        return void 0 === t && (t = 1), this.alpha = t, this;
                    },
                    alpha: {
                        get: function() {
                            return this._alpha;
                        },
                        set: function(t) {
                            var e = s(t, 0, 1);
                            this._alpha = e, 0 === e ? this.renderFlags &= -3 : this.renderFlags |= 2;
                        }
                    }
                };
                t.exports = n;
            },
            69732: (t, e, i)=>{
                var s = i(95723), n = {
                    _blendMode: s.NORMAL,
                    blendMode: {
                        get: function() {
                            return this._blendMode;
                        },
                        set: function(t) {
                            "string" == typeof t && (t = s[t]), (t |= 0) >= -1 && (this._blendMode = t);
                        }
                    },
                    setBlendMode: function(t) {
                        return this.blendMode = t, this;
                    }
                };
                t.exports = n;
            },
            28284: (t)=>{
                t.exports = {
                    width: 0,
                    height: 0,
                    displayWidth: {
                        get: function() {
                            return this.scaleX * this.width;
                        },
                        set: function(t) {
                            this.scaleX = t / this.width;
                        }
                    },
                    displayHeight: {
                        get: function() {
                            return this.scaleY * this.height;
                        },
                        set: function(t) {
                            this.scaleY = t / this.height;
                        }
                    },
                    setSize: function(t, e) {
                        return this.width = t, this.height = e, this;
                    },
                    setDisplaySize: function(t, e) {
                        return this.displayWidth = t, this.displayHeight = e, this;
                    }
                };
            },
            85293: (t)=>{
                var e = {
                    texture: null,
                    frame: null,
                    isCropped: !1,
                    setCrop: function(t, e, i, s) {
                        if (void 0 === t) this.isCropped = !1;
                        else if (this.frame) {
                            if ("number" == typeof t) this.frame.setCropUVs(this._crop, t, e, i, s, this.flipX, this.flipY);
                            else {
                                var n = t;
                                this.frame.setCropUVs(this._crop, n.x, n.y, n.width, n.height, this.flipX, this.flipY);
                            }
                            this.isCropped = !0;
                        }
                        return this;
                    },
                    resetCropObject: function() {
                        return {
                            u0: 0,
                            v0: 0,
                            u1: 0,
                            v1: 0,
                            width: 0,
                            height: 0,
                            x: 0,
                            y: 0,
                            flipX: !1,
                            flipY: !1,
                            cx: 0,
                            cy: 0,
                            cw: 0,
                            ch: 0
                        };
                    }
                };
                t.exports = e;
            },
            14975: (t)=>{
                var e = {
                    _depth: 0,
                    depth: {
                        get: function() {
                            return this._depth;
                        },
                        set: function(t) {
                            this.displayList && this.displayList.queueDepthSort(), this._depth = t;
                        }
                    },
                    setDepth: function(t) {
                        return void 0 === t && (t = 0), this.depth = t, this;
                    }
                };
                t.exports = e;
            },
            88677: (t, e, i)=>{
                var s = i(56694), n = i(96910), r = i(72677), o = new s({
                    initialize: function(t, e) {
                        this.gameObject = t, this.isPost = e, this.enabled = !1, this.list = [], this.padding = 0;
                    },
                    setPadding: function(t) {
                        return void 0 === t && (t = 0), this.padding = t, this.gameObject;
                    },
                    onFXCopy: function() {},
                    onFX: function() {},
                    enable: function(t) {
                        if (!this.isPost) {
                            var e = this.gameObject.scene.sys.renderer;
                            e && e.pipelines ? (this.gameObject.pipeline = e.pipelines.FX_PIPELINE, void 0 !== t && (this.padding = t), this.enabled = !0) : this.enabled = !1;
                        }
                    },
                    clear: function() {
                        if (this.isPost) this.gameObject.resetPostPipeline(!0);
                        else {
                            for(var t = this.list, e = 0; e < t.length; e++)t[e].destroy();
                            this.list = [];
                        }
                        return this.enabled = !1, this.gameObject;
                    },
                    remove: function(t) {
                        var e;
                        if (this.isPost) {
                            var i = this.gameObject.getPostPipeline(String(t.type));
                            for(Array.isArray(i) || (i = [
                                i
                            ]), e = 0; e < i.length; e++){
                                var s = i[e];
                                if (s.controller === t) {
                                    this.gameObject.removePostPipeline(s), t.destroy();
                                    break;
                                }
                            }
                        } else {
                            var n = this.list;
                            for(e = 0; e < n.length; e++)n[e] === t && (r(n, e), t.destroy());
                        }
                        return this.gameObject;
                    },
                    disable: function(t) {
                        return void 0 === t && (t = !1), this.isPost || this.gameObject.resetPipeline(), this.enabled = !1, t && this.clear(), this.gameObject;
                    },
                    add: function(t, e) {
                        if (!this.isPost) return this.enabled || this.enable(), this.list.push(t), t;
                        var i = String(t.type);
                        this.gameObject.setPostPipeline(i, e);
                        var s = this.gameObject.getPostPipeline(i);
                        return s ? (Array.isArray(s) && (s = s.pop()), s.controller = t, t) : void 0;
                    },
                    addGlow: function(t, e, i, s, r, o) {
                        return this.add(new n.Glow(this.gameObject, t, e, i, s), {
                            quality: r,
                            distance: o
                        });
                    },
                    addShadow: function(t, e, i, s, r, o, a) {
                        return this.add(new n.Shadow(this.gameObject, t, e, i, s, r, o, a));
                    },
                    addPixelate: function(t) {
                        return this.add(new n.Pixelate(this.gameObject, t));
                    },
                    addVignette: function(t, e, i, s) {
                        return this.add(new n.Vignette(this.gameObject, t, e, i, s));
                    },
                    addShine: function(t, e, i, s) {
                        return this.add(new n.Shine(this.gameObject, t, e, i, s));
                    },
                    addBlur: function(t, e, i, s, r, o) {
                        return this.add(new n.Blur(this.gameObject, t, e, i, s, r, o));
                    },
                    addGradient: function(t, e, i, s, r, o, a, h) {
                        return this.add(new n.Gradient(this.gameObject, t, e, i, s, r, o, a, h));
                    },
                    addBloom: function(t, e, i, s, r, o) {
                        return this.add(new n.Bloom(this.gameObject, t, e, i, s, r, o));
                    },
                    addColorMatrix: function() {
                        return this.add(new n.ColorMatrix(this.gameObject));
                    },
                    addCircle: function(t, e, i, s, r) {
                        return this.add(new n.Circle(this.gameObject, t, e, i, s, r));
                    },
                    addBarrel: function(t) {
                        return this.add(new n.Barrel(this.gameObject, t));
                    },
                    addDisplacement: function(t, e, i) {
                        return this.add(new n.Displacement(this.gameObject, t, e, i));
                    },
                    addWipe: function(t, e, i) {
                        return this.add(new n.Wipe(this.gameObject, t, e, i));
                    },
                    addReveal: function(t, e, i) {
                        return this.add(new n.Wipe(this.gameObject, t, e, i, !0));
                    },
                    addBokeh: function(t, e, i) {
                        return this.add(new n.Bokeh(this.gameObject, t, e, i));
                    },
                    addTiltShift: function(t, e, i, s, r, o) {
                        return this.add(new n.Bokeh(this.gameObject, t, e, i, !0, s, r, o));
                    },
                    destroy: function() {
                        this.clear(), this.gameObject = null;
                    }
                });
                t.exports = o;
            },
            92972: (t)=>{
                t.exports = {
                    flipX: !1,
                    flipY: !1,
                    toggleFlipX: function() {
                        return this.flipX = !this.flipX, this;
                    },
                    toggleFlipY: function() {
                        return this.flipY = !this.flipY, this;
                    },
                    setFlipX: function(t) {
                        return this.flipX = t, this;
                    },
                    setFlipY: function(t) {
                        return this.flipY = t, this;
                    },
                    setFlip: function(t, e) {
                        return this.flipX = t, this.flipY = e, this;
                    },
                    resetFlip: function() {
                        return this.flipX = !1, this.flipY = !1, this;
                    }
                };
            },
            80693: (t, e, i)=>{
                var s = i(74118), n = i(2386), r = i(93736), o = {
                    prepareBoundsOutput: function(t, e) {
                        (void 0 === e && (e = !1), 0 !== this.rotation && n(t, this.x, this.y, this.rotation), e && this.parentContainer) && this.parentContainer.getBoundsTransformMatrix().transformPoint(t.x, t.y, t);
                        return t;
                    },
                    getCenter: function(t, e) {
                        return void 0 === t && (t = new r), t.x = this.x - this.displayWidth * this.originX + this.displayWidth / 2, t.y = this.y - this.displayHeight * this.originY + this.displayHeight / 2, this.prepareBoundsOutput(t, e);
                    },
                    getTopLeft: function(t, e) {
                        return t || (t = new r), t.x = this.x - this.displayWidth * this.originX, t.y = this.y - this.displayHeight * this.originY, this.prepareBoundsOutput(t, e);
                    },
                    getTopCenter: function(t, e) {
                        return t || (t = new r), t.x = this.x - this.displayWidth * this.originX + this.displayWidth / 2, t.y = this.y - this.displayHeight * this.originY, this.prepareBoundsOutput(t, e);
                    },
                    getTopRight: function(t, e) {
                        return t || (t = new r), t.x = this.x - this.displayWidth * this.originX + this.displayWidth, t.y = this.y - this.displayHeight * this.originY, this.prepareBoundsOutput(t, e);
                    },
                    getLeftCenter: function(t, e) {
                        return t || (t = new r), t.x = this.x - this.displayWidth * this.originX, t.y = this.y - this.displayHeight * this.originY + this.displayHeight / 2, this.prepareBoundsOutput(t, e);
                    },
                    getRightCenter: function(t, e) {
                        return t || (t = new r), t.x = this.x - this.displayWidth * this.originX + this.displayWidth, t.y = this.y - this.displayHeight * this.originY + this.displayHeight / 2, this.prepareBoundsOutput(t, e);
                    },
                    getBottomLeft: function(t, e) {
                        return t || (t = new r), t.x = this.x - this.displayWidth * this.originX, t.y = this.y - this.displayHeight * this.originY + this.displayHeight, this.prepareBoundsOutput(t, e);
                    },
                    getBottomCenter: function(t, e) {
                        return t || (t = new r), t.x = this.x - this.displayWidth * this.originX + this.displayWidth / 2, t.y = this.y - this.displayHeight * this.originY + this.displayHeight, this.prepareBoundsOutput(t, e);
                    },
                    getBottomRight: function(t, e) {
                        return t || (t = new r), t.x = this.x - this.displayWidth * this.originX + this.displayWidth, t.y = this.y - this.displayHeight * this.originY + this.displayHeight, this.prepareBoundsOutput(t, e);
                    },
                    getBounds: function(t) {
                        var e, i, n, r, o, a, h, l;
                        if (void 0 === t && (t = new s), this.parentContainer) {
                            var u = this.parentContainer.getBoundsTransformMatrix();
                            this.getTopLeft(t), u.transformPoint(t.x, t.y, t), e = t.x, i = t.y, this.getTopRight(t), u.transformPoint(t.x, t.y, t), n = t.x, r = t.y, this.getBottomLeft(t), u.transformPoint(t.x, t.y, t), o = t.x, a = t.y, this.getBottomRight(t), u.transformPoint(t.x, t.y, t), h = t.x, l = t.y;
                        } else this.getTopLeft(t), e = t.x, i = t.y, this.getTopRight(t), n = t.x, r = t.y, this.getBottomLeft(t), o = t.x, a = t.y, this.getBottomRight(t), h = t.x, l = t.y;
                        return t.x = Math.min(e, n, o, h), t.y = Math.min(i, r, a, l), t.width = Math.max(e, n, o, h) - t.x, t.height = Math.max(i, r, a, l) - t.y, t;
                    }
                };
                t.exports = o;
            },
            39171: (t, e, i)=>{
                var s = i(76756), n = i(63037), r = {
                    mask: null,
                    setMask: function(t) {
                        return this.mask = t, this;
                    },
                    clearMask: function(t) {
                        return void 0 === t && (t = !1), t && this.mask && this.mask.destroy(), this.mask = null, this;
                    },
                    createBitmapMask: function(t, e, i, n, r) {
                        return void 0 === t && (this.texture || this.shader || this.geom) && (t = this), new s(this.scene, t, e, i, n, r);
                    },
                    createGeometryMask: function(t) {
                        return void 0 !== t || "Graphics" !== this.type && !this.geom || (t = this), new n(this.scene, t);
                    }
                };
                t.exports = r;
            },
            28072: (t)=>{
                var e = {
                    _originComponent: !0,
                    originX: .5,
                    originY: .5,
                    _displayOriginX: 0,
                    _displayOriginY: 0,
                    displayOriginX: {
                        get: function() {
                            return this._displayOriginX;
                        },
                        set: function(t) {
                            this._displayOriginX = t, this.originX = t / this.width;
                        }
                    },
                    displayOriginY: {
                        get: function() {
                            return this._displayOriginY;
                        },
                        set: function(t) {
                            this._displayOriginY = t, this.originY = t / this.height;
                        }
                    },
                    setOrigin: function(t, e) {
                        return void 0 === t && (t = .5), void 0 === e && (e = t), this.originX = t, this.originY = e, this.updateDisplayOrigin();
                    },
                    setOriginFromFrame: function() {
                        return this.frame && this.frame.customPivot ? (this.originX = this.frame.pivotX, this.originY = this.frame.pivotY, this.updateDisplayOrigin()) : this.setOrigin();
                    },
                    setDisplayOrigin: function(t, e) {
                        return void 0 === t && (t = 0), void 0 === e && (e = t), this.displayOriginX = t, this.displayOriginY = e, this;
                    },
                    updateDisplayOrigin: function() {
                        return this._displayOriginX = this.originX * this.width, this._displayOriginY = this.originY * this.height, this;
                    }
                };
                t.exports = e;
            },
            54211: (t, e, i)=>{
                var s = i(75606), n = i(63130), r = i(10850), o = i(55303), a = i(93736), h = {
                    path: null,
                    rotateToPath: !1,
                    pathRotationOffset: 0,
                    pathOffset: null,
                    pathVector: null,
                    pathDelta: null,
                    pathTween: null,
                    pathConfig: null,
                    _prevDirection: o.PLAYING_FORWARD,
                    setPath: function(t, e) {
                        void 0 === e && (e = this.pathConfig);
                        var i = this.pathTween;
                        return i && i.isPlaying() && i.stop(), this.path = t, e && this.startFollow(e), this;
                    },
                    setRotateToPath: function(t, e) {
                        return void 0 === e && (e = 0), this.rotateToPath = t, this.pathRotationOffset = e, this;
                    },
                    isFollowing: function() {
                        var t = this.pathTween;
                        return t && t.isPlaying();
                    },
                    startFollow: function(t, e) {
                        void 0 === t && (t = {}), void 0 === e && (e = 0);
                        var i = this.pathTween;
                        i && i.isPlaying() && i.stop(), "number" == typeof t && (t = {
                            duration: t
                        }), t.from = r(t, "from", 0), t.to = r(t, "to", 1);
                        var h = n(t, "positionOnPath", !1);
                        this.rotateToPath = n(t, "rotateToPath", !1), this.pathRotationOffset = r(t, "rotationOffset", 0);
                        var l = r(t, "startAt", e);
                        if (l && (t.onStart = function(t) {
                            var e = t.data[0];
                            e.progress = l, e.elapsed = e.duration * l;
                            var i = e.ease(e.progress);
                            e.current = e.start + (e.end - e.start) * i, e.setTargetValue();
                        }), this.pathOffset || (this.pathOffset = new a(this.x, this.y)), this.pathVector || (this.pathVector = new a), this.pathDelta || (this.pathDelta = new a), this.pathDelta.reset(), t.persist = !0, this.pathTween = this.scene.sys.tweens.addCounter(t), this.path.getStartPoint(this.pathOffset), h && (this.x = this.pathOffset.x, this.y = this.pathOffset.y), this.pathOffset.x = this.x - this.pathOffset.x, this.pathOffset.y = this.y - this.pathOffset.y, this._prevDirection = o.PLAYING_FORWARD, this.rotateToPath) {
                            var u = this.path.getPoint(.1);
                            this.rotation = Math.atan2(u.y - this.y, u.x - this.x) + s(this.pathRotationOffset);
                        }
                        return this.pathConfig = t, this;
                    },
                    pauseFollow: function() {
                        var t = this.pathTween;
                        return t && t.isPlaying() && t.pause(), this;
                    },
                    resumeFollow: function() {
                        var t = this.pathTween;
                        return t && t.isPaused() && t.resume(), this;
                    },
                    stopFollow: function() {
                        var t = this.pathTween;
                        return t && t.isPlaying() && t.stop(), this;
                    },
                    pathUpdate: function() {
                        var t = this.pathTween;
                        if (t) {
                            var e = t.data[0], i = this.pathDelta, n = this.pathVector;
                            if (i.copy(n).negate(), e.state === o.COMPLETE) return this.path.getPoint(e.end, n), i.add(n), n.add(this.pathOffset), void this.setPosition(n.x, n.y);
                            if (e.state !== o.PLAYING_FORWARD && e.state !== o.PLAYING_BACKWARD) return;
                            this.path.getPoint(t.getValue(), n), i.add(n), n.add(this.pathOffset);
                            var r = this.x, a = this.y;
                            this.setPosition(n.x, n.y);
                            var h = this.x - r, l = this.y - a;
                            if (0 === h && 0 === l) return;
                            if (e.state !== this._prevDirection) return void (this._prevDirection = e.state);
                            this.rotateToPath && (this.rotation = Math.atan2(l, h) + s(this.pathRotationOffset));
                        }
                    }
                };
                t.exports = h;
            },
            58210: (t, e, i)=>{
                var s = i(28699), n = {
                    defaultPipeline: null,
                    pipeline: null,
                    pipelineData: null,
                    initPipeline: function(t) {
                        this.pipelineData = {};
                        var e = this.scene.sys.renderer;
                        if (!e) return !1;
                        var i = e.pipelines;
                        if (i) {
                            void 0 === t && (t = i.default);
                            var s = i.get(t);
                            if (s) return this.defaultPipeline = s, this.pipeline = s, !0;
                        }
                        return !1;
                    },
                    setPipeline: function(t, e, i) {
                        var n = this.scene.sys.renderer;
                        if (!n) return this;
                        var r = n.pipelines;
                        if (r) {
                            var o = r.get(t);
                            o && (this.pipeline = o), e && (this.pipelineData = i ? s(e) : e);
                        }
                        return this;
                    },
                    setPipelineData: function(t, e) {
                        var i = this.pipelineData;
                        return void 0 === e ? delete i[t] : i[t] = e, this;
                    },
                    resetPipeline: function(t) {
                        return void 0 === t && (t = !1), this.pipeline = this.defaultPipeline, t && (this.pipelineData = {}), null !== this.pipeline;
                    },
                    getPipelineName: function() {
                        return this.pipeline.name;
                    }
                };
                t.exports = n;
            },
            44086: (t, e, i)=>{
                var s = i(28699), n = i(88677), r = i(72677), o = {
                    hasPostPipeline: !1,
                    postPipelines: null,
                    postPipelineData: null,
                    preFX: null,
                    postFX: null,
                    initPostPipeline: function(t) {
                        this.postPipelines = [], this.postPipelineData = {}, this.postFX = new n(this, !0), t && (this.preFX = new n(this, !1));
                    },
                    setPostPipeline: function(t, e, i) {
                        var n = this.scene.sys.renderer;
                        if (!n) return this;
                        var r = n.pipelines;
                        if (r) {
                            Array.isArray(t) || (t = [
                                t
                            ]);
                            for(var o = 0; o < t.length; o++){
                                var a = r.getPostPipeline(t[o], this, e);
                                a && this.postPipelines.push(a);
                            }
                            e && (this.postPipelineData = i ? s(e) : e);
                        }
                        return this.hasPostPipeline = this.postPipelines.length > 0, this;
                    },
                    setPostPipelineData: function(t, e) {
                        var i = this.postPipelineData;
                        return void 0 === e ? delete i[t] : i[t] = e, this;
                    },
                    getPostPipeline: function(t) {
                        for(var e = "string" == typeof t, i = this.postPipelines, s = [], n = 0; n < i.length; n++){
                            var r = i[n];
                            (e && r.name === t || !e && r instanceof t) && s.push(r);
                        }
                        return 1 === s.length ? s[0] : s;
                    },
                    resetPostPipeline: function(t) {
                        void 0 === t && (t = !1);
                        for(var e = this.postPipelines, i = 0; i < e.length; i++)e[i].destroy();
                        this.postPipelines = [], this.hasPostPipeline = !1, t && (this.postPipelineData = {});
                    },
                    removePostPipeline: function(t) {
                        for(var e = "string" == typeof t, i = this.postPipelines, s = i.length - 1; s >= 0; s--){
                            var n = i[s];
                            (e && n.name === t || !e && n === t) && (n.destroy(), r(i, s));
                        }
                        return this.hasPostPipeline = this.postPipelines.length > 0, this;
                    },
                    clearFX: function() {
                        return this.preFX && this.preFX.clear(), this.postFX && this.postFX.clear(), this;
                    }
                };
                t.exports = o;
            },
            45900: (t)=>{
                var e = {
                    scrollFactorX: 1,
                    scrollFactorY: 1,
                    setScrollFactor: function(t, e) {
                        return void 0 === e && (e = t), this.scrollFactorX = t, this.scrollFactorY = e, this;
                    }
                };
                t.exports = e;
            },
            31654: (t)=>{
                var e = {
                    _sizeComponent: !0,
                    width: 0,
                    height: 0,
                    displayWidth: {
                        get: function() {
                            return Math.abs(this.scaleX * this.frame.realWidth);
                        },
                        set: function(t) {
                            this.scaleX = t / this.frame.realWidth;
                        }
                    },
                    displayHeight: {
                        get: function() {
                            return Math.abs(this.scaleY * this.frame.realHeight);
                        },
                        set: function(t) {
                            this.scaleY = t / this.frame.realHeight;
                        }
                    },
                    setSizeToFrame: function(t) {
                        t || (t = this.frame), this.width = t.realWidth, this.height = t.realHeight;
                        var e = this.input;
                        return e && !e.customHitArea && (e.hitArea.width = this.width, e.hitArea.height = this.height), this;
                    },
                    setSize: function(t, e) {
                        return this.width = t, this.height = e, this;
                    },
                    setDisplaySize: function(t, e) {
                        return this.displayWidth = t, this.displayHeight = e, this;
                    }
                };
                t.exports = e;
            },
            82081: (t, e, i)=>{
                var s = i(82047), n = {
                    texture: null,
                    frame: null,
                    isCropped: !1,
                    setTexture: function(t, e) {
                        return this.texture = this.scene.sys.textures.get(t), this.setFrame(e);
                    },
                    setFrame: function(t, e, i) {
                        return void 0 === e && (e = !0), void 0 === i && (i = !0), t instanceof s ? (this.texture = this.scene.sys.textures.get(t.texture.key), this.frame = t) : this.frame = this.texture.get(t), this.frame.cutWidth && this.frame.cutHeight ? this.renderFlags |= 8 : this.renderFlags &= -9, this._sizeComponent && e && this.setSizeToFrame(), this._originComponent && i && (this.frame.customPivot ? this.setOrigin(this.frame.pivotX, this.frame.pivotY) : this.updateDisplayOrigin()), this;
                    }
                };
                t.exports = n;
            },
            21850: (t, e, i)=>{
                var s = i(82047), n = {
                    texture: null,
                    frame: null,
                    isCropped: !1,
                    setCrop: function(t, e, i, s) {
                        if (void 0 === t) this.isCropped = !1;
                        else if (this.frame) {
                            if ("number" == typeof t) this.frame.setCropUVs(this._crop, t, e, i, s, this.flipX, this.flipY);
                            else {
                                var n = t;
                                this.frame.setCropUVs(this._crop, n.x, n.y, n.width, n.height, this.flipX, this.flipY);
                            }
                            this.isCropped = !0;
                        }
                        return this;
                    },
                    setTexture: function(t, e) {
                        return this.texture = this.scene.sys.textures.get(t), this.setFrame(e);
                    },
                    setFrame: function(t, e, i) {
                        return void 0 === e && (e = !0), void 0 === i && (i = !0), t instanceof s ? (this.texture = this.scene.sys.textures.get(t.texture.key), this.frame = t) : this.frame = this.texture.get(t), this.frame.cutWidth && this.frame.cutHeight ? this.renderFlags |= 8 : this.renderFlags &= -9, this._sizeComponent && e && this.setSizeToFrame(), this._originComponent && i && (this.frame.customPivot ? this.setOrigin(this.frame.pivotX, this.frame.pivotY) : this.updateDisplayOrigin()), this.isCropped && this.frame.updateCropUVs(this._crop, this.flipX, this.flipY), this;
                    },
                    resetCropObject: function() {
                        return {
                            u0: 0,
                            v0: 0,
                            u1: 0,
                            v1: 0,
                            width: 0,
                            height: 0,
                            x: 0,
                            y: 0,
                            flipX: !1,
                            flipY: !1,
                            cx: 0,
                            cy: 0,
                            cw: 0,
                            ch: 0
                        };
                    }
                };
                t.exports = n;
            },
            58072: (t)=>{
                var e = {
                    tintTopLeft: 16777215,
                    tintTopRight: 16777215,
                    tintBottomLeft: 16777215,
                    tintBottomRight: 16777215,
                    tintFill: !1,
                    clearTint: function() {
                        return this.setTint(16777215), this;
                    },
                    setTint: function(t, e, i, s) {
                        return void 0 === t && (t = 16777215), void 0 === e && (e = t, i = t, s = t), this.tintTopLeft = t, this.tintTopRight = e, this.tintBottomLeft = i, this.tintBottomRight = s, this.tintFill = !1, this;
                    },
                    setTintFill: function(t, e, i, s) {
                        return this.setTint(t, e, i, s), this.tintFill = !0, this;
                    },
                    tint: {
                        set: function(t) {
                            this.setTint(t, t, t, t);
                        }
                    },
                    isTinted: {
                        get: function() {
                            var t = 16777215;
                            return this.tintFill || this.tintTopLeft !== t || this.tintTopRight !== t || this.tintBottomLeft !== t || this.tintBottomRight !== t;
                        }
                    }
                };
                t.exports = e;
            },
            48129: (t)=>{
                t.exports = function(t) {
                    var e = {
                        name: t.name,
                        type: t.type,
                        x: t.x,
                        y: t.y,
                        depth: t.depth,
                        scale: {
                            x: t.scaleX,
                            y: t.scaleY
                        },
                        origin: {
                            x: t.originX,
                            y: t.originY
                        },
                        flipX: t.flipX,
                        flipY: t.flipY,
                        rotation: t.rotation,
                        alpha: t.alpha,
                        visible: t.visible,
                        blendMode: t.blendMode,
                        textureKey: "",
                        frameKey: "",
                        data: {}
                    };
                    return t.texture && (e.textureKey = t.texture.key, e.frameKey = t.frame.name), e;
                };
            },
            56584: (t, e, i)=>{
                var s = i(83392), n = i(69360), r = i(64462), o = i(35786), a = i(62138), h = i(93736), l = {
                    hasTransformComponent: !0,
                    _scaleX: 1,
                    _scaleY: 1,
                    _rotation: 0,
                    x: 0,
                    y: 0,
                    z: 0,
                    w: 0,
                    scale: {
                        get: function() {
                            return (this._scaleX + this._scaleY) / 2;
                        },
                        set: function(t) {
                            this._scaleX = t, this._scaleY = t, 0 === t ? this.renderFlags &= -5 : this.renderFlags |= 4;
                        }
                    },
                    scaleX: {
                        get: function() {
                            return this._scaleX;
                        },
                        set: function(t) {
                            this._scaleX = t, 0 === t ? this.renderFlags &= -5 : 0 !== this._scaleY && (this.renderFlags |= 4);
                        }
                    },
                    scaleY: {
                        get: function() {
                            return this._scaleY;
                        },
                        set: function(t) {
                            this._scaleY = t, 0 === t ? this.renderFlags &= -5 : 0 !== this._scaleX && (this.renderFlags |= 4);
                        }
                    },
                    angle: {
                        get: function() {
                            return a(this._rotation * s.RAD_TO_DEG);
                        },
                        set: function(t) {
                            this.rotation = a(t) * s.DEG_TO_RAD;
                        }
                    },
                    rotation: {
                        get: function() {
                            return this._rotation;
                        },
                        set: function(t) {
                            this._rotation = o(t);
                        }
                    },
                    setPosition: function(t, e, i, s) {
                        return void 0 === t && (t = 0), void 0 === e && (e = t), void 0 === i && (i = 0), void 0 === s && (s = 0), this.x = t, this.y = e, this.z = i, this.w = s, this;
                    },
                    copyPosition: function(t) {
                        return void 0 !== t.x && (this.x = t.x), void 0 !== t.y && (this.y = t.y), void 0 !== t.z && (this.z = t.z), void 0 !== t.w && (this.w = t.w), this;
                    },
                    setRandomPosition: function(t, e, i, s) {
                        return void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = this.scene.sys.scale.width), void 0 === s && (s = this.scene.sys.scale.height), this.x = t + Math.random() * i, this.y = e + Math.random() * s, this;
                    },
                    setRotation: function(t) {
                        return void 0 === t && (t = 0), this.rotation = t, this;
                    },
                    setAngle: function(t) {
                        return void 0 === t && (t = 0), this.angle = t, this;
                    },
                    setScale: function(t, e) {
                        return void 0 === t && (t = 1), void 0 === e && (e = t), this.scaleX = t, this.scaleY = e, this;
                    },
                    setX: function(t) {
                        return void 0 === t && (t = 0), this.x = t, this;
                    },
                    setY: function(t) {
                        return void 0 === t && (t = 0), this.y = t, this;
                    },
                    setZ: function(t) {
                        return void 0 === t && (t = 0), this.z = t, this;
                    },
                    setW: function(t) {
                        return void 0 === t && (t = 0), this.w = t, this;
                    },
                    getLocalTransformMatrix: function(t) {
                        return void 0 === t && (t = new n), t.applyITRS(this.x, this.y, this._rotation, this._scaleX, this._scaleY);
                    },
                    getWorldTransformMatrix: function(t, e) {
                        void 0 === t && (t = new n);
                        var i = this.parentContainer;
                        if (!i) return this.getLocalTransformMatrix(t);
                        for(e || (e = new n), t.applyITRS(this.x, this.y, this._rotation, this._scaleX, this._scaleY); i;)e.applyITRS(i.x, i.y, i._rotation, i._scaleX, i._scaleY), e.multiply(t, t), i = i.parentContainer;
                        return t;
                    },
                    getLocalPoint: function(t, e, i, s) {
                        i || (i = new h), s || (s = this.scene.sys.cameras.main);
                        var n = s.scrollX, o = s.scrollY, a = t + n * this.scrollFactorX - n, l = e + o * this.scrollFactorY - o;
                        return this.parentContainer ? this.getWorldTransformMatrix().applyInverse(a, l, i) : r(a, l, this.x, this.y, this.rotation, this.scaleX, this.scaleY, i), this._originComponent && (i.x += this._displayOriginX, i.y += this._displayOriginY), i;
                    },
                    getParentRotation: function() {
                        for(var t = 0, e = this.parentContainer; e;)t += e.rotation, e = e.parentContainer;
                        return t;
                    }
                };
                t.exports = l;
            },
            69360: (t, e, i)=>{
                var s = i(56694), n = i(83392), r = i(93736), o = new s({
                    initialize: function(t, e, i, s, n, r) {
                        void 0 === t && (t = 1), void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 1), void 0 === n && (n = 0), void 0 === r && (r = 0), this.matrix = new Float32Array([
                            t,
                            e,
                            i,
                            s,
                            n,
                            r,
                            0,
                            0,
                            1
                        ]), this.decomposedMatrix = {
                            translateX: 0,
                            translateY: 0,
                            scaleX: 1,
                            scaleY: 1,
                            rotation: 0
                        }, this.quad = new Float32Array(8);
                    },
                    a: {
                        get: function() {
                            return this.matrix[0];
                        },
                        set: function(t) {
                            this.matrix[0] = t;
                        }
                    },
                    b: {
                        get: function() {
                            return this.matrix[1];
                        },
                        set: function(t) {
                            this.matrix[1] = t;
                        }
                    },
                    c: {
                        get: function() {
                            return this.matrix[2];
                        },
                        set: function(t) {
                            this.matrix[2] = t;
                        }
                    },
                    d: {
                        get: function() {
                            return this.matrix[3];
                        },
                        set: function(t) {
                            this.matrix[3] = t;
                        }
                    },
                    e: {
                        get: function() {
                            return this.matrix[4];
                        },
                        set: function(t) {
                            this.matrix[4] = t;
                        }
                    },
                    f: {
                        get: function() {
                            return this.matrix[5];
                        },
                        set: function(t) {
                            this.matrix[5] = t;
                        }
                    },
                    tx: {
                        get: function() {
                            return this.matrix[4];
                        },
                        set: function(t) {
                            this.matrix[4] = t;
                        }
                    },
                    ty: {
                        get: function() {
                            return this.matrix[5];
                        },
                        set: function(t) {
                            this.matrix[5] = t;
                        }
                    },
                    rotation: {
                        get: function() {
                            return Math.acos(this.a / this.scaleX) * (Math.atan(-this.c / this.a) < 0 ? -1 : 1);
                        }
                    },
                    rotationNormalized: {
                        get: function() {
                            var t = this.matrix, e = t[0], i = t[1], s = t[2], r = t[3];
                            return e || i ? i > 0 ? Math.acos(e / this.scaleX) : -Math.acos(e / this.scaleX) : s || r ? n.TAU - (r > 0 ? Math.acos(-s / this.scaleY) : -Math.acos(s / this.scaleY)) : 0;
                        }
                    },
                    scaleX: {
                        get: function() {
                            return Math.sqrt(this.a * this.a + this.b * this.b);
                        }
                    },
                    scaleY: {
                        get: function() {
                            return Math.sqrt(this.c * this.c + this.d * this.d);
                        }
                    },
                    loadIdentity: function() {
                        var t = this.matrix;
                        return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 1, t[4] = 0, t[5] = 0, this;
                    },
                    translate: function(t, e) {
                        var i = this.matrix;
                        return i[4] = i[0] * t + i[2] * e + i[4], i[5] = i[1] * t + i[3] * e + i[5], this;
                    },
                    scale: function(t, e) {
                        var i = this.matrix;
                        return i[0] *= t, i[1] *= t, i[2] *= e, i[3] *= e, this;
                    },
                    rotate: function(t) {
                        var e = Math.sin(t), i = Math.cos(t), s = this.matrix, n = s[0], r = s[1], o = s[2], a = s[3];
                        return s[0] = n * i + o * e, s[1] = r * i + a * e, s[2] = n * -e + o * i, s[3] = r * -e + a * i, this;
                    },
                    multiply: function(t, e) {
                        var i = this.matrix, s = t.matrix, n = i[0], r = i[1], o = i[2], a = i[3], h = i[4], l = i[5], u = s[0], c = s[1], d = s[2], f = s[3], p = s[4], v = s[5], g = void 0 === e ? i : e.matrix;
                        return g[0] = u * n + c * o, g[1] = u * r + c * a, g[2] = d * n + f * o, g[3] = d * r + f * a, g[4] = p * n + v * o + h, g[5] = p * r + v * a + l, g;
                    },
                    multiplyWithOffset: function(t, e, i) {
                        var s = this.matrix, n = t.matrix, r = s[0], o = s[1], a = s[2], h = s[3], l = e * r + i * a + s[4], u = e * o + i * h + s[5], c = n[0], d = n[1], f = n[2], p = n[3], v = n[4], g = n[5];
                        return s[0] = c * r + d * a, s[1] = c * o + d * h, s[2] = f * r + p * a, s[3] = f * o + p * h, s[4] = v * r + g * a + l, s[5] = v * o + g * h + u, this;
                    },
                    transform: function(t, e, i, s, n, r) {
                        var o = this.matrix, a = o[0], h = o[1], l = o[2], u = o[3], c = o[4], d = o[5];
                        return o[0] = t * a + e * l, o[1] = t * h + e * u, o[2] = i * a + s * l, o[3] = i * h + s * u, o[4] = n * a + r * l + c, o[5] = n * h + r * u + d, this;
                    },
                    transformPoint: function(t, e, i) {
                        void 0 === i && (i = {
                            x: 0,
                            y: 0
                        });
                        var s = this.matrix, n = s[0], r = s[1], o = s[2], a = s[3], h = s[4], l = s[5];
                        return i.x = t * n + e * o + h, i.y = t * r + e * a + l, i;
                    },
                    invert: function() {
                        var t = this.matrix, e = t[0], i = t[1], s = t[2], n = t[3], r = t[4], o = t[5], a = e * n - i * s;
                        return t[0] = n / a, t[1] = -i / a, t[2] = -s / a, t[3] = e / a, t[4] = (s * o - n * r) / a, t[5] = -(e * o - i * r) / a, this;
                    },
                    copyFrom: function(t) {
                        var e = this.matrix;
                        return e[0] = t.a, e[1] = t.b, e[2] = t.c, e[3] = t.d, e[4] = t.e, e[5] = t.f, this;
                    },
                    copyFromArray: function(t) {
                        var e = this.matrix;
                        return e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e[4] = t[4], e[5] = t[5], this;
                    },
                    copyToContext: function(t) {
                        var e = this.matrix;
                        return t.transform(e[0], e[1], e[2], e[3], e[4], e[5]), t;
                    },
                    setToContext: function(t) {
                        var e = this.matrix;
                        return t.setTransform(e[0], e[1], e[2], e[3], e[4], e[5]), t;
                    },
                    copyToArray: function(t) {
                        var e = this.matrix;
                        return void 0 === t ? t = [
                            e[0],
                            e[1],
                            e[2],
                            e[3],
                            e[4],
                            e[5]
                        ] : (t[0] = e[0], t[1] = e[1], t[2] = e[2], t[3] = e[3], t[4] = e[4], t[5] = e[5]), t;
                    },
                    setTransform: function(t, e, i, s, n, r) {
                        var o = this.matrix;
                        return o[0] = t, o[1] = e, o[2] = i, o[3] = s, o[4] = n, o[5] = r, this;
                    },
                    decomposeMatrix: function() {
                        var t = this.decomposedMatrix, e = this.matrix, i = e[0], s = e[1], n = e[2], r = e[3], o = i * r - s * n;
                        if (t.translateX = e[4], t.translateY = e[5], i || s) {
                            var a = Math.sqrt(i * i + s * s);
                            t.rotation = s > 0 ? Math.acos(i / a) : -Math.acos(i / a), t.scaleX = a, t.scaleY = o / a;
                        } else if (n || r) {
                            var h = Math.sqrt(n * n + r * r);
                            t.rotation = .5 * Math.PI - (r > 0 ? Math.acos(-n / h) : -Math.acos(n / h)), t.scaleX = o / h, t.scaleY = h;
                        } else t.rotation = 0, t.scaleX = 0, t.scaleY = 0;
                        return t;
                    },
                    applyITRS: function(t, e, i, s, n) {
                        var r = this.matrix, o = Math.sin(i), a = Math.cos(i);
                        return r[4] = t, r[5] = e, r[0] = a * s, r[1] = o * s, r[2] = -o * n, r[3] = a * n, this;
                    },
                    applyInverse: function(t, e, i) {
                        void 0 === i && (i = new r);
                        var s = this.matrix, n = s[0], o = s[1], a = s[2], h = s[3], l = s[4], u = s[5], c = 1 / (n * h + a * -o);
                        return i.x = h * c * t + -a * c * e + (u * a - l * h) * c, i.y = n * c * e + -o * c * t + (-u * n + l * o) * c, i;
                    },
                    setQuad: function(t, e, i, s, n, r) {
                        void 0 === r && (r = this.quad);
                        var o = this.matrix, a = o[0], h = o[1], l = o[2], u = o[3], c = o[4], d = o[5];
                        return r[0] = t * a + e * l + c, r[1] = t * h + e * u + d, r[2] = t * a + s * l + c, r[3] = t * h + s * u + d, r[4] = i * a + s * l + c, r[5] = i * h + s * u + d, r[6] = i * a + e * l + c, r[7] = i * h + e * u + d, n && r.forEach(function(t, e) {
                            r[e] = Math.round(t);
                        }), r;
                    },
                    getX: function(t, e) {
                        return t * this.a + e * this.c + this.e;
                    },
                    getY: function(t, e) {
                        return t * this.b + e * this.d + this.f;
                    },
                    getXRound: function(t, e, i) {
                        var s = this.getX(t, e);
                        return i && (s = Math.round(s)), s;
                    },
                    getYRound: function(t, e, i) {
                        var s = this.getY(t, e);
                        return i && (s = Math.round(s)), s;
                    },
                    getCSSMatrix: function() {
                        var t = this.matrix;
                        return "matrix(" + t[0] + "," + t[1] + "," + t[2] + "," + t[3] + "," + t[4] + "," + t[5] + ")";
                    },
                    destroy: function() {
                        this.matrix = null, this.quad = null, this.decomposedMatrix = null;
                    }
                });
                t.exports = o;
            },
            59694: (t)=>{
                var e = {
                    _visible: !0,
                    visible: {
                        get: function() {
                            return this._visible;
                        },
                        set: function(t) {
                            t ? (this._visible = !0, this.renderFlags |= 1) : (this._visible = !1, this.renderFlags &= -2);
                        }
                    },
                    setVisible: function(t) {
                        return this.visible = t, this;
                    }
                };
                t.exports = e;
            },
            64937: (t, e, i)=>{
                t.exports = {
                    Alpha: i(97123),
                    AlphaSingle: i(15720),
                    BlendMode: i(69732),
                    ComputedSize: i(28284),
                    Crop: i(85293),
                    Depth: i(14975),
                    Flip: i(92972),
                    FX: i(88677),
                    GetBounds: i(80693),
                    Mask: i(39171),
                    Origin: i(28072),
                    PathFollower: i(54211),
                    Pipeline: i(58210),
                    PostPipeline: i(44086),
                    ScrollFactor: i(45900),
                    Size: i(31654),
                    Texture: i(82081),
                    TextureCrop: i(21850),
                    Tint: i(58072),
                    ToJSON: i(48129),
                    Transform: i(56584),
                    TransformMatrix: i(69360),
                    Visible: i(59694)
                };
            },
            70339: (t, e, i)=>{
                var s = i(59959), n = i(95723), r = i(56694), o = i(64937), a = i(56631), h = i(89980), l = i(74118), u = i(98524), c = i(58795), d = i(93736), f = new r({
                    Extends: h,
                    Mixins: [
                        o.AlphaSingle,
                        o.BlendMode,
                        o.ComputedSize,
                        o.Depth,
                        o.Mask,
                        o.PostPipeline,
                        o.Transform,
                        o.Visible,
                        u
                    ],
                    initialize: function(t, e, i, s) {
                        h.call(this, t, "Container"), this.list = [], this.exclusive = !0, this.maxSize = -1, this.position = 0, this.localTransform = new o.TransformMatrix, this.tempTransformMatrix = new o.TransformMatrix, this._sortKey = "", this._sysEvents = t.sys.events, this.scrollFactorX = 1, this.scrollFactorY = 1, this.initPostPipeline(), this.setPosition(e, i), this.setBlendMode(n.SKIP_CHECK), s && this.add(s);
                    },
                    originX: {
                        get: function() {
                            return .5;
                        }
                    },
                    originY: {
                        get: function() {
                            return .5;
                        }
                    },
                    displayOriginX: {
                        get: function() {
                            return .5 * this.width;
                        }
                    },
                    displayOriginY: {
                        get: function() {
                            return .5 * this.height;
                        }
                    },
                    setExclusive: function(t) {
                        return void 0 === t && (t = !0), this.exclusive = t, this;
                    },
                    getBounds: function(t) {
                        if (void 0 === t && (t = new l), t.setTo(this.x, this.y, 0, 0), this.parentContainer) {
                            var e = this.parentContainer.getBoundsTransformMatrix().transformPoint(this.x, this.y);
                            t.setTo(e.x, e.y, 0, 0);
                        }
                        if (this.list.length > 0) {
                            var i = this.list, s = new l, n = !1;
                            t.setEmpty();
                            for(var r = 0; r < i.length; r++){
                                var o = i[r];
                                o.getBounds && (o.getBounds(s), n ? c(s, t, t) : (t.setTo(s.x, s.y, s.width, s.height), n = !0));
                            }
                        }
                        return t;
                    },
                    addHandler: function(t) {
                        t.once(a.DESTROY, this.remove, this), this.exclusive && (t.parentContainer && t.parentContainer.remove(t), t.parentContainer = this, t.removeFromDisplayList(), t.addedToScene());
                    },
                    removeHandler: function(t) {
                        t.off(a.DESTROY, this.remove, this), this.exclusive && (t.parentContainer = null, t.removedFromScene(), t.addToDisplayList());
                    },
                    pointToContainer: function(t, e) {
                        void 0 === e && (e = new d), this.parentContainer ? this.parentContainer.pointToContainer(t, e) : (e.x = t.x, e.y = t.y);
                        var i = this.tempTransformMatrix;
                        return i.applyITRS(this.x, this.y, this.rotation, this.scaleX, this.scaleY), i.invert(), i.transformPoint(t.x, t.y, e), e;
                    },
                    getBoundsTransformMatrix: function() {
                        return this.getWorldTransformMatrix(this.tempTransformMatrix, this.localTransform);
                    },
                    add: function(t) {
                        return s.Add(this.list, t, this.maxSize, this.addHandler, this), this;
                    },
                    addAt: function(t, e) {
                        return s.AddAt(this.list, t, e, this.maxSize, this.addHandler, this), this;
                    },
                    getAt: function(t) {
                        return this.list[t];
                    },
                    getIndex: function(t) {
                        return this.list.indexOf(t);
                    },
                    sort: function(t, e) {
                        return t ? (void 0 === e && (e = function(e, i) {
                            return e[t] - i[t];
                        }), s.StableSort(this.list, e), this) : this;
                    },
                    getByName: function(t) {
                        return s.GetFirst(this.list, "name", t);
                    },
                    getRandom: function(t, e) {
                        return s.GetRandom(this.list, t, e);
                    },
                    getFirst: function(t, e, i, n) {
                        return s.GetFirst(this.list, t, e, i, n);
                    },
                    getAll: function(t, e, i, n) {
                        return s.GetAll(this.list, t, e, i, n);
                    },
                    count: function(t, e, i, n) {
                        return s.CountAllMatching(this.list, t, e, i, n);
                    },
                    swap: function(t, e) {
                        return s.Swap(this.list, t, e), this;
                    },
                    moveTo: function(t, e) {
                        return s.MoveTo(this.list, t, e), this;
                    },
                    moveAbove: function(t, e) {
                        return s.MoveAbove(this.list, t, e), this;
                    },
                    moveBelow: function(t, e) {
                        return s.MoveBelow(this.list, t, e), this;
                    },
                    remove: function(t, e) {
                        var i = s.Remove(this.list, t, this.removeHandler, this);
                        if (e && i) {
                            Array.isArray(i) || (i = [
                                i
                            ]);
                            for(var n = 0; n < i.length; n++)i[n].destroy();
                        }
                        return this;
                    },
                    removeAt: function(t, e) {
                        var i = s.RemoveAt(this.list, t, this.removeHandler, this);
                        return e && i && i.destroy(), this;
                    },
                    removeBetween: function(t, e, i) {
                        var n = s.RemoveBetween(this.list, t, e, this.removeHandler, this);
                        if (i) for(var r = 0; r < n.length; r++)n[r].destroy();
                        return this;
                    },
                    removeAll: function(t) {
                        var e = this.list;
                        if (t) {
                            for(var i = 0; i < e.length; i++)e[i] && e[i].scene && (e[i].off(a.DESTROY, this.remove, this), e[i].destroy());
                            this.list = [];
                        } else s.RemoveBetween(e, 0, e.length, this.removeHandler, this);
                        return this;
                    },
                    bringToTop: function(t) {
                        return s.BringToTop(this.list, t), this;
                    },
                    sendToBack: function(t) {
                        return s.SendToBack(this.list, t), this;
                    },
                    moveUp: function(t) {
                        return s.MoveUp(this.list, t), this;
                    },
                    moveDown: function(t) {
                        return s.MoveDown(this.list, t), this;
                    },
                    reverse: function() {
                        return this.list.reverse(), this;
                    },
                    shuffle: function() {
                        return s.Shuffle(this.list), this;
                    },
                    replace: function(t, e, i) {
                        return s.Replace(this.list, t, e) && (this.addHandler(e), this.removeHandler(t), i && t.destroy()), this;
                    },
                    exists: function(t) {
                        return this.list.indexOf(t) > -1;
                    },
                    setAll: function(t, e, i, n) {
                        return s.SetAll(this.list, t, e, i, n), this;
                    },
                    each: function(t, e) {
                        var i, s = [
                            null
                        ], n = this.list.slice(), r = n.length;
                        for(i = 2; i < arguments.length; i++)s.push(arguments[i]);
                        for(i = 0; i < r; i++)s[0] = n[i], t.apply(e, s);
                        return this;
                    },
                    iterate: function(t, e) {
                        var i, s = [
                            null
                        ];
                        for(i = 2; i < arguments.length; i++)s.push(arguments[i]);
                        for(i = 0; i < this.list.length; i++)s[0] = this.list[i], t.apply(e, s);
                        return this;
                    },
                    setScrollFactor: function(t, e, i) {
                        return void 0 === e && (e = t), void 0 === i && (i = !1), this.scrollFactorX = t, this.scrollFactorY = e, i && (s.SetAll(this.list, "scrollFactorX", t), s.SetAll(this.list, "scrollFactorY", e)), this;
                    },
                    length: {
                        get: function() {
                            return this.list.length;
                        }
                    },
                    first: {
                        get: function() {
                            return this.position = 0, this.list.length > 0 ? this.list[0] : null;
                        }
                    },
                    last: {
                        get: function() {
                            return this.list.length > 0 ? (this.position = this.list.length - 1, this.list[this.position]) : null;
                        }
                    },
                    next: {
                        get: function() {
                            return this.position < this.list.length ? (this.position++, this.list[this.position]) : null;
                        }
                    },
                    previous: {
                        get: function() {
                            return this.position > 0 ? (this.position--, this.list[this.position]) : null;
                        }
                    },
                    preDestroy: function() {
                        this.removeAll(!!this.exclusive), this.localTransform.destroy(), this.tempTransformMatrix.destroy(), this.list = [];
                    }
                });
                t.exports = f;
            },
            13916: (t)=>{
                t.exports = function(t, e, i, s) {
                    i.addToRenderList(e);
                    var n = e.list;
                    if (0 !== n.length) {
                        var r = e.localTransform;
                        s ? (r.loadIdentity(), r.multiply(s), r.translate(e.x, e.y), r.rotate(e.rotation), r.scale(e.scaleX, e.scaleY)) : r.applyITRS(e.x, e.y, e.rotation, e.scaleX, e.scaleY);
                        var o = -1 !== e.blendMode;
                        o || t.setBlendMode(0);
                        var a = e._alpha, h = e.scrollFactorX, l = e.scrollFactorY;
                        e.mask && e.mask.preRenderCanvas(t, null, i);
                        for(var u = 0; u < n.length; u++){
                            var c = n[u];
                            if (c.willRender(i)) {
                                var d = c.alpha, f = c.scrollFactorX, p = c.scrollFactorY;
                                o || c.blendMode === t.currentBlendMode || t.setBlendMode(c.blendMode), c.setScrollFactor(f * h, p * l), c.setAlpha(d * a), c.renderCanvas(t, c, i, r), c.setAlpha(d), c.setScrollFactor(f, p);
                            }
                        }
                        e.mask && e.mask.postRenderCanvas(t);
                    }
                };
            },
            44516: (t, e, i)=>{
                var s = i(88933), n = i(70339), r = i(99325), o = i(20494);
                r.register("container", function(t, e) {
                    void 0 === t && (t = {});
                    var i = o(t, "x", 0), r = o(t, "y", 0), a = o(t, "children", null), h = new n(this.scene, i, r, a);
                    return void 0 !== e && (t.add = e), s(this.scene, h, t), h;
                });
            },
            23400: (t, e, i)=>{
                var s = i(70339);
                i(61286).register("container", function(t, e, i) {
                    return this.displayList.add(new s(this.scene, t, e, i));
                });
            },
            98524: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(36934), r = i(13916), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            36934: (t)=>{
                t.exports = function(t, e, i, s) {
                    i.addToRenderList(e);
                    var n = e.list, r = n.length;
                    if (0 !== r) {
                        var o = e.localTransform;
                        s ? (o.loadIdentity(), o.multiply(s), o.translate(e.x, e.y), o.rotate(e.rotation), o.scale(e.scaleX, e.scaleY)) : o.applyITRS(e.x, e.y, e.rotation, e.scaleX, e.scaleY), t.pipelines.preBatch(e);
                        var a = -1 !== e.blendMode;
                        a || t.setBlendMode(0);
                        for(var h = e.alpha, l = e.scrollFactorX, u = e.scrollFactorY, c = 0; c < r; c++){
                            var d = n[c];
                            if (d.willRender(i)) {
                                var f, p, v, g;
                                if (void 0 !== d.alphaTopLeft) f = d.alphaTopLeft, p = d.alphaTopRight, v = d.alphaBottomLeft, g = d.alphaBottomRight;
                                else {
                                    var m = d.alpha;
                                    f = m, p = m, v = m, g = m;
                                }
                                var y = d.scrollFactorX, x = d.scrollFactorY;
                                a || d.blendMode === t.currentBlendMode || t.setBlendMode(d.blendMode);
                                var T = d.mask;
                                T && T.preRenderWebGL(t, d, i);
                                var w = d.type;
                                w !== t.currentType && (t.newType = !0, t.currentType = w), t.nextTypeMatch = c < r - 1 && n[c + 1].type === t.currentType, d.setScrollFactor(y * l, x * u), d.setAlpha(f * h, p * h, v * h, g * h), d.renderWebGL(t, d, i, o, e), d.setAlpha(f, p, v, g), d.setScrollFactor(y, x), T && T.postRenderWebGL(t, i), t.newType = !1;
                            }
                        }
                        t.pipelines.postBatch(e);
                    }
                };
            },
            2452: (t)=>{
                t.exports = [
                    "normal",
                    "multiply",
                    "multiply",
                    "screen",
                    "overlay",
                    "darken",
                    "lighten",
                    "color-dodge",
                    "color-burn",
                    "hard-light",
                    "soft-light",
                    "difference",
                    "exclusion",
                    "hue",
                    "saturation",
                    "color",
                    "luminosity"
                ];
            },
            38943: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(11603), o = i(89980), a = i(42911), h = i(55638), l = i(7599), u = i(51729), c = new s({
                    Extends: o,
                    Mixins: [
                        n.AlphaSingle,
                        n.BlendMode,
                        n.Depth,
                        n.Origin,
                        n.ScrollFactor,
                        n.Transform,
                        n.Visible,
                        r
                    ],
                    initialize: function(t, e, i, s, n, r) {
                        o.call(this, t, "DOMElement"), this.parent = t.sys.game.domContainer, this.cache = t.sys.cache.html, this.node, this.transformOnly = !1, this.skewX = 0, this.skewY = 0, this.rotate3d = new u, this.rotate3dAngle = "deg", this.pointerEvents = "auto", this.width = 0, this.height = 0, this.displayWidth = 0, this.displayHeight = 0, this.handler = this.dispatchNativeEvent.bind(this), this.setPosition(e, i), "string" == typeof s ? "#" === s[0] ? this.setElement(s.substr(1), n, r) : this.createElement(s, n, r) : s && this.setElement(s, n, r), t.sys.events.on(l.SLEEP, this.handleSceneEvent, this), t.sys.events.on(l.WAKE, this.handleSceneEvent, this), t.sys.events.on(l.PRE_RENDER, this.preRender, this);
                    },
                    handleSceneEvent: function(t) {
                        var e = this.node, i = e.style;
                        e && (i.display = t.settings.visible ? "block" : "none");
                    },
                    setSkew: function(t, e) {
                        return void 0 === t && (t = 0), void 0 === e && (e = t), this.skewX = t, this.skewY = e, this;
                    },
                    setPerspective: function(t) {
                        return this.parent.style.perspective = t + "px", this;
                    },
                    perspective: {
                        get: function() {
                            return parseFloat(this.parent.style.perspective);
                        },
                        set: function(t) {
                            this.parent.style.perspective = t + "px";
                        }
                    },
                    addListener: function(t) {
                        if (this.node) {
                            t = t.split(" ");
                            for(var e = 0; e < t.length; e++)this.node.addEventListener(t[e], this.handler, !1);
                        }
                        return this;
                    },
                    removeListener: function(t) {
                        if (this.node) {
                            t = t.split(" ");
                            for(var e = 0; e < t.length; e++)this.node.removeEventListener(t[e], this.handler);
                        }
                        return this;
                    },
                    dispatchNativeEvent: function(t) {
                        this.emit(t.type, t);
                    },
                    createElement: function(t, e, i) {
                        return this.setElement(document.createElement(t), e, i);
                    },
                    setElement: function(t, e, i) {
                        var s;
                        if (this.removeElement(), "string" == typeof t ? ("#" === t[0] && (t = t.substr(1)), s = document.getElementById(t)) : "object" == typeof t && 1 === t.nodeType && (s = t), !s) return this;
                        if (this.node = s, e && a(e)) for(var n in e)s.style[n] = e[n];
                        else "string" == typeof e && (s.style = e);
                        return s.style.zIndex = "0", s.style.display = "inline", s.style.position = "absolute", s.phaser = this, this.parent && this.parent.appendChild(s), i && (s.innerText = i), this.updateSize();
                    },
                    createFromCache: function(t, e) {
                        var i = this.cache.get(t);
                        return i && this.createFromHTML(i, e), this;
                    },
                    createFromHTML: function(t, e) {
                        void 0 === e && (e = "div"), this.removeElement();
                        var i = document.createElement(e);
                        return this.node = i, i.style.zIndex = "0", i.style.display = "inline", i.style.position = "absolute", i.phaser = this, this.parent && this.parent.appendChild(i), i.innerHTML = t, this.updateSize();
                    },
                    removeElement: function() {
                        return this.node && (h(this.node), this.node = null), this;
                    },
                    updateSize: function() {
                        var t = this.node, e = t.getBoundingClientRect();
                        return this.width = t.clientWidth, this.height = t.clientHeight, this.displayWidth = e.width || 0, this.displayHeight = e.height || 0, this;
                    },
                    getChildByProperty: function(t, e) {
                        if (this.node) {
                            for(var i = this.node.querySelectorAll("*"), s = 0; s < i.length; s++)if (i[s][t] === e) return i[s];
                        }
                        return null;
                    },
                    getChildByID: function(t) {
                        return this.getChildByProperty("id", t);
                    },
                    getChildByName: function(t) {
                        return this.getChildByProperty("name", t);
                    },
                    setClassName: function(t) {
                        return this.node && (this.node.className = t, this.updateSize()), this;
                    },
                    setText: function(t) {
                        return this.node && (this.node.innerText = t, this.updateSize()), this;
                    },
                    setHTML: function(t) {
                        return this.node && (this.node.innerHTML = t, this.updateSize()), this;
                    },
                    preRender: function() {
                        var t = this.parentContainer, e = this.node;
                        e && t && !t.willRender() && (e.style.display = "none");
                    },
                    willRender: function() {
                        return !0;
                    },
                    preDestroy: function() {
                        this.removeElement(), this.scene.sys.events.off(l.SLEEP, this.handleSceneEvent, this), this.scene.sys.events.off(l.WAKE, this.handleSceneEvent, this), this.scene.sys.events.off(l.PRE_RENDER, this.preRender, this);
                    }
                });
                t.exports = c;
            },
            66070: (t, e, i)=>{
                var s = i(2452), n = i(89980), r = i(69360), o = new r, a = new r, h = new r;
                t.exports = function(t, e, i, r) {
                    if (e.node) {
                        var l = e.node.style, u = e.scene.sys.settings;
                        if (!l || !u.visible || n.RENDER_MASK !== e.renderFlags || 0 !== e.cameraFilter && e.cameraFilter & i.id || e.parentContainer && !e.parentContainer.willRender()) l.display = "none";
                        else {
                            var c = e.parentContainer, d = i.alpha * e.alpha;
                            c && (d *= c.alpha);
                            var f = o, p = a, v = h, g = 0, m = 0, y = "0%", x = "0%";
                            r ? (g = e.width * e.scaleX * e.originX, m = e.height * e.scaleY * e.originY, p.applyITRS(e.x - g, e.y - m, e.rotation, e.scaleX, e.scaleY), f.copyFrom(i.matrix), f.multiplyWithOffset(r, -i.scrollX * e.scrollFactorX, -i.scrollY * e.scrollFactorY), p.e = e.x - g, p.f = e.y - m, f.multiply(p, v)) : (g = e.width * e.originX, m = e.height * e.originY, p.applyITRS(e.x - g, e.y - m, e.rotation, e.scaleX, e.scaleY), f.copyFrom(i.matrix), y = 100 * e.originX + "%", x = 100 * e.originY + "%", p.e -= i.scrollX * e.scrollFactorX, p.f -= i.scrollY * e.scrollFactorY, f.multiply(p, v)), e.transformOnly || (l.display = "block", l.opacity = d, l.zIndex = e._depth, l.pointerEvents = e.pointerEvents, l.mixBlendMode = s[e._blendMode]), l.transform = v.getCSSMatrix() + " skew(" + e.skewX + "rad, " + e.skewY + "rad) rotate3d(" + e.rotate3d.x + "," + e.rotate3d.y + "," + e.rotate3d.z + "," + e.rotate3d.w + e.rotate3dAngle + ")", l.transformOrigin = y + " " + x;
                        }
                    }
                };
            },
            66788: (t, e, i)=>{
                var s = i(38943);
                i(61286).register("dom", function(t, e, i, n, r) {
                    var o = new s(this.scene, t, e, i, n, r);
                    return this.displayList.add(o), o;
                });
            },
            11603: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(66070), r = i(66070), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            65492: (t)=>{
                t.exports = "addedtoscene";
            },
            98398: (t)=>{
                t.exports = "destroy";
            },
            40239: (t)=>{
                t.exports = "removedfromscene";
            },
            17286: (t)=>{
                t.exports = "complete";
            },
            31496: (t)=>{
                t.exports = "created";
            },
            89587: (t)=>{
                t.exports = "error";
            },
            59792: (t)=>{
                t.exports = "locked";
            },
            96342: (t)=>{
                t.exports = "loop";
            },
            6017: (t)=>{
                t.exports = "playing";
            },
            49614: (t)=>{
                t.exports = "play";
            },
            24418: (t)=>{
                t.exports = "seeked";
            },
            87318: (t)=>{
                t.exports = "seeking";
            },
            50009: (t)=>{
                t.exports = "stalled";
            },
            61922: (t)=>{
                t.exports = "stop";
            },
            79501: (t)=>{
                t.exports = "textureready";
            },
            4052: (t)=>{
                t.exports = "unlocked";
            },
            54857: (t)=>{
                t.exports = "unsupported";
            },
            56631: (t, e, i)=>{
                t.exports = {
                    ADDED_TO_SCENE: i(65492),
                    DESTROY: i(98398),
                    REMOVED_FROM_SCENE: i(40239),
                    VIDEO_COMPLETE: i(17286),
                    VIDEO_CREATED: i(31496),
                    VIDEO_ERROR: i(89587),
                    VIDEO_LOCKED: i(59792),
                    VIDEO_LOOP: i(96342),
                    VIDEO_PLAY: i(49614),
                    VIDEO_PLAYING: i(6017),
                    VIDEO_SEEKED: i(24418),
                    VIDEO_SEEKING: i(87318),
                    VIDEO_STALLED: i(50009),
                    VIDEO_STOP: i(61922),
                    VIDEO_TEXTURE: i(79501),
                    VIDEO_UNLOCKED: i(4052),
                    VIDEO_UNSUPPORTED: i(54857)
                };
            },
            39419: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(89980), o = i(79394), a = new s({
                    Extends: r,
                    Mixins: [
                        n.Alpha,
                        n.BlendMode,
                        n.Depth,
                        n.Flip,
                        n.Origin,
                        n.ScrollFactor,
                        n.Size,
                        n.Texture,
                        n.Tint,
                        n.Transform,
                        n.Visible,
                        o
                    ],
                    initialize: function(t) {
                        r.call(this, t, "Extern");
                    },
                    addedToScene: function() {
                        this.scene.sys.updateList.add(this);
                    },
                    removedFromScene: function() {
                        this.scene.sys.updateList.remove(this);
                    },
                    preUpdate: function() {},
                    render: function() {}
                });
                t.exports = a;
            },
            96699: ()=>{},
            41155: (t, e, i)=>{
                var s = i(39419);
                i(61286).register("extern", function() {
                    var t = new s(this.scene);
                    return this.displayList.add(t), t;
                });
            },
            79394: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(81410), r = i(96699), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            81410: (t, e, i)=>{
                var s = i(73329);
                t.exports = function(t, e, i, n) {
                    t.pipelines.clear();
                    var r = s(e, i, n).calc;
                    e.render.call(e, t, i, r), t.pipelines.rebind();
                };
            },
            36266: (t)=>{
                t.exports = {
                    ARC: 0,
                    BEGIN_PATH: 1,
                    CLOSE_PATH: 2,
                    FILL_RECT: 3,
                    LINE_TO: 4,
                    MOVE_TO: 5,
                    LINE_STYLE: 6,
                    FILL_STYLE: 7,
                    FILL_PATH: 8,
                    STROKE_PATH: 9,
                    FILL_TRIANGLE: 10,
                    STROKE_TRIANGLE: 11,
                    SAVE: 14,
                    RESTORE: 15,
                    TRANSLATE: 16,
                    SCALE: 17,
                    ROTATE: 18,
                    GRADIENT_FILL_STYLE: 21,
                    GRADIENT_LINE_STYLE: 22
                };
            },
            33182: (t, e, i)=>{
                var s = i(51052), n = i(56694), r = i(36266), o = i(64937), a = i(95669), h = i(89980), l = i(72632), u = i(10850), c = i(83392), d = i(60898), f = new n({
                    Extends: h,
                    Mixins: [
                        o.AlphaSingle,
                        o.BlendMode,
                        o.Depth,
                        o.Mask,
                        o.Pipeline,
                        o.PostPipeline,
                        o.Transform,
                        o.Visible,
                        o.ScrollFactor,
                        d
                    ],
                    initialize: function(t, e) {
                        var i = u(e, "x", 0), s = u(e, "y", 0);
                        h.call(this, t, "Graphics"), this.setPosition(i, s), this.initPipeline(), this.initPostPipeline(), this.displayOriginX = 0, this.displayOriginY = 0, this.commandBuffer = [], this.defaultFillColor = -1, this.defaultFillAlpha = 1, this.defaultStrokeWidth = 1, this.defaultStrokeColor = -1, this.defaultStrokeAlpha = 1, this._lineWidth = 1, this.setDefaultStyles(e);
                    },
                    setDefaultStyles: function(t) {
                        return u(t, "lineStyle", null) && (this.defaultStrokeWidth = u(t, "lineStyle.width", 1), this.defaultStrokeColor = u(t, "lineStyle.color", 16777215), this.defaultStrokeAlpha = u(t, "lineStyle.alpha", 1), this.lineStyle(this.defaultStrokeWidth, this.defaultStrokeColor, this.defaultStrokeAlpha)), u(t, "fillStyle", null) && (this.defaultFillColor = u(t, "fillStyle.color", 16777215), this.defaultFillAlpha = u(t, "fillStyle.alpha", 1), this.fillStyle(this.defaultFillColor, this.defaultFillAlpha)), this;
                    },
                    lineStyle: function(t, e, i) {
                        return void 0 === i && (i = 1), this.commandBuffer.push(r.LINE_STYLE, t, e, i), this._lineWidth = t, this;
                    },
                    fillStyle: function(t, e) {
                        return void 0 === e && (e = 1), this.commandBuffer.push(r.FILL_STYLE, t, e), this;
                    },
                    fillGradientStyle: function(t, e, i, s, n, o, a, h) {
                        return void 0 === n && (n = 1), void 0 === o && (o = n), void 0 === a && (a = n), void 0 === h && (h = n), this.commandBuffer.push(r.GRADIENT_FILL_STYLE, n, o, a, h, t, e, i, s), this;
                    },
                    lineGradientStyle: function(t, e, i, s, n, o) {
                        return void 0 === o && (o = 1), this.commandBuffer.push(r.GRADIENT_LINE_STYLE, t, o, e, i, s, n), this;
                    },
                    beginPath: function() {
                        return this.commandBuffer.push(r.BEGIN_PATH), this;
                    },
                    closePath: function() {
                        return this.commandBuffer.push(r.CLOSE_PATH), this;
                    },
                    fillPath: function() {
                        return this.commandBuffer.push(r.FILL_PATH), this;
                    },
                    fill: function() {
                        return this.commandBuffer.push(r.FILL_PATH), this;
                    },
                    strokePath: function() {
                        return this.commandBuffer.push(r.STROKE_PATH), this;
                    },
                    stroke: function() {
                        return this.commandBuffer.push(r.STROKE_PATH), this;
                    },
                    fillCircleShape: function(t) {
                        return this.fillCircle(t.x, t.y, t.radius);
                    },
                    strokeCircleShape: function(t) {
                        return this.strokeCircle(t.x, t.y, t.radius);
                    },
                    fillCircle: function(t, e, i) {
                        return this.beginPath(), this.arc(t, e, i, 0, c.PI2), this.fillPath(), this;
                    },
                    strokeCircle: function(t, e, i) {
                        return this.beginPath(), this.arc(t, e, i, 0, c.PI2), this.strokePath(), this;
                    },
                    fillRectShape: function(t) {
                        return this.fillRect(t.x, t.y, t.width, t.height);
                    },
                    strokeRectShape: function(t) {
                        return this.strokeRect(t.x, t.y, t.width, t.height);
                    },
                    fillRect: function(t, e, i, s) {
                        return this.commandBuffer.push(r.FILL_RECT, t, e, i, s), this;
                    },
                    strokeRect: function(t, e, i, s) {
                        var n = this._lineWidth / 2, r = t - n, o = t + n;
                        return this.beginPath(), this.moveTo(t, e), this.lineTo(t, e + s), this.strokePath(), this.beginPath(), this.moveTo(t + i, e), this.lineTo(t + i, e + s), this.strokePath(), this.beginPath(), this.moveTo(r, e), this.lineTo(o + i, e), this.strokePath(), this.beginPath(), this.moveTo(r, e + s), this.lineTo(o + i, e + s), this.strokePath(), this;
                    },
                    fillRoundedRect: function(t, e, i, s, n) {
                        void 0 === n && (n = 20);
                        var r = n, o = n, a = n, h = n;
                        "number" != typeof n && (r = l(n, "tl", 20), o = l(n, "tr", 20), a = l(n, "bl", 20), h = l(n, "br", 20));
                        var u = r >= 0, d = o >= 0, f = a >= 0, p = h >= 0;
                        return r = Math.abs(r), o = Math.abs(o), a = Math.abs(a), h = Math.abs(h), this.beginPath(), this.moveTo(t + r, e), this.lineTo(t + i - o, e), d ? this.arc(t + i - o, e + o, o, -c.TAU, 0) : this.arc(t + i, e, o, Math.PI, c.TAU, !0), this.lineTo(t + i, e + s - h), p ? this.arc(t + i - h, e + s - h, h, 0, c.TAU) : this.arc(t + i, e + s, h, -c.TAU, Math.PI, !0), this.lineTo(t + a, e + s), f ? this.arc(t + a, e + s - a, a, c.TAU, Math.PI) : this.arc(t, e + s, a, 0, -c.TAU, !0), this.lineTo(t, e + r), u ? this.arc(t + r, e + r, r, -Math.PI, -c.TAU) : this.arc(t, e, r, c.TAU, 0, !0), this.fillPath(), this;
                    },
                    strokeRoundedRect: function(t, e, i, s, n) {
                        void 0 === n && (n = 20);
                        var r = n, o = n, a = n, h = n, u = Math.min(i, s) / 2;
                        "number" != typeof n && (r = l(n, "tl", 20), o = l(n, "tr", 20), a = l(n, "bl", 20), h = l(n, "br", 20));
                        var d = r >= 0, f = o >= 0, p = a >= 0, v = h >= 0;
                        return r = Math.min(Math.abs(r), u), o = Math.min(Math.abs(o), u), a = Math.min(Math.abs(a), u), h = Math.min(Math.abs(h), u), this.beginPath(), this.moveTo(t + r, e), this.lineTo(t + i - o, e), this.moveTo(t + i - o, e), f ? this.arc(t + i - o, e + o, o, -c.TAU, 0) : this.arc(t + i, e, o, Math.PI, c.TAU, !0), this.lineTo(t + i, e + s - h), this.moveTo(t + i, e + s - h), v ? this.arc(t + i - h, e + s - h, h, 0, c.TAU) : this.arc(t + i, e + s, h, -c.TAU, Math.PI, !0), this.lineTo(t + a, e + s), this.moveTo(t + a, e + s), p ? this.arc(t + a, e + s - a, a, c.TAU, Math.PI) : this.arc(t, e + s, a, 0, -c.TAU, !0), this.lineTo(t, e + r), this.moveTo(t, e + r), d ? this.arc(t + r, e + r, r, -Math.PI, -c.TAU) : this.arc(t, e, r, c.TAU, 0, !0), this.strokePath(), this;
                    },
                    fillPointShape: function(t, e) {
                        return this.fillPoint(t.x, t.y, e);
                    },
                    fillPoint: function(t, e, i) {
                        return !i || i < 1 ? i = 1 : (t -= i / 2, e -= i / 2), this.commandBuffer.push(r.FILL_RECT, t, e, i, i), this;
                    },
                    fillTriangleShape: function(t) {
                        return this.fillTriangle(t.x1, t.y1, t.x2, t.y2, t.x3, t.y3);
                    },
                    strokeTriangleShape: function(t) {
                        return this.strokeTriangle(t.x1, t.y1, t.x2, t.y2, t.x3, t.y3);
                    },
                    fillTriangle: function(t, e, i, s, n, o) {
                        return this.commandBuffer.push(r.FILL_TRIANGLE, t, e, i, s, n, o), this;
                    },
                    strokeTriangle: function(t, e, i, s, n, o) {
                        return this.commandBuffer.push(r.STROKE_TRIANGLE, t, e, i, s, n, o), this;
                    },
                    strokeLineShape: function(t) {
                        return this.lineBetween(t.x1, t.y1, t.x2, t.y2);
                    },
                    lineBetween: function(t, e, i, s) {
                        return this.beginPath(), this.moveTo(t, e), this.lineTo(i, s), this.strokePath(), this;
                    },
                    lineTo: function(t, e) {
                        return this.commandBuffer.push(r.LINE_TO, t, e), this;
                    },
                    moveTo: function(t, e) {
                        return this.commandBuffer.push(r.MOVE_TO, t, e), this;
                    },
                    strokePoints: function(t, e, i, s) {
                        void 0 === e && (e = !1), void 0 === i && (i = !1), void 0 === s && (s = t.length), this.beginPath(), this.moveTo(t[0].x, t[0].y);
                        for(var n = 1; n < s; n++)this.lineTo(t[n].x, t[n].y);
                        return e && this.lineTo(t[0].x, t[0].y), i && this.closePath(), this.strokePath(), this;
                    },
                    fillPoints: function(t, e, i, s) {
                        void 0 === e && (e = !1), void 0 === i && (i = !1), void 0 === s && (s = t.length), this.beginPath(), this.moveTo(t[0].x, t[0].y);
                        for(var n = 1; n < s; n++)this.lineTo(t[n].x, t[n].y);
                        return e && this.lineTo(t[0].x, t[0].y), i && this.closePath(), this.fillPath(), this;
                    },
                    strokeEllipseShape: function(t, e) {
                        void 0 === e && (e = 32);
                        var i = t.getPoints(e);
                        return this.strokePoints(i, !0);
                    },
                    strokeEllipse: function(t, e, i, s, n) {
                        void 0 === n && (n = 32);
                        var r = new a(t, e, i, s).getPoints(n);
                        return this.strokePoints(r, !0);
                    },
                    fillEllipseShape: function(t, e) {
                        void 0 === e && (e = 32);
                        var i = t.getPoints(e);
                        return this.fillPoints(i, !0);
                    },
                    fillEllipse: function(t, e, i, s, n) {
                        void 0 === n && (n = 32);
                        var r = new a(t, e, i, s).getPoints(n);
                        return this.fillPoints(r, !0);
                    },
                    arc: function(t, e, i, s, n, o, a) {
                        return void 0 === o && (o = !1), void 0 === a && (a = 0), this.commandBuffer.push(r.ARC, t, e, i, s, n, o, a), this;
                    },
                    slice: function(t, e, i, s, n, o, a) {
                        return void 0 === o && (o = !1), void 0 === a && (a = 0), this.commandBuffer.push(r.BEGIN_PATH), this.commandBuffer.push(r.MOVE_TO, t, e), this.commandBuffer.push(r.ARC, t, e, i, s, n, o, a), this.commandBuffer.push(r.CLOSE_PATH), this;
                    },
                    save: function() {
                        return this.commandBuffer.push(r.SAVE), this;
                    },
                    restore: function() {
                        return this.commandBuffer.push(r.RESTORE), this;
                    },
                    translateCanvas: function(t, e) {
                        return this.commandBuffer.push(r.TRANSLATE, t, e), this;
                    },
                    scaleCanvas: function(t, e) {
                        return this.commandBuffer.push(r.SCALE, t, e), this;
                    },
                    rotateCanvas: function(t) {
                        return this.commandBuffer.push(r.ROTATE, t), this;
                    },
                    clear: function() {
                        return this.commandBuffer.length = 0, this.defaultFillColor > -1 && this.fillStyle(this.defaultFillColor, this.defaultFillAlpha), this.defaultStrokeColor > -1 && this.lineStyle(this.defaultStrokeWidth, this.defaultStrokeColor, this.defaultStrokeAlpha), this;
                    },
                    generateTexture: function(t, e, i) {
                        var s, n, r = this.scene.sys, o = r.game.renderer;
                        void 0 === e && (e = r.scale.width), void 0 === i && (i = r.scale.height), f.TargetCamera.setScene(this.scene), f.TargetCamera.setViewport(0, 0, e, i), f.TargetCamera.scrollX = this.x, f.TargetCamera.scrollY = this.y;
                        var a = {
                            willReadFrequently: !0
                        };
                        if ("string" == typeof t) {
                            if (r.textures.exists(t)) {
                                var h = (s = r.textures.get(t)).getSourceImage();
                                h instanceof HTMLCanvasElement && (n = h.getContext("2d", a));
                            } else n = (s = r.textures.createCanvas(t, e, i)).getSourceImage().getContext("2d", a);
                        } else t instanceof HTMLCanvasElement && (n = t.getContext("2d", a));
                        return n && (this.renderCanvas(o, this, f.TargetCamera, null, n, !1), s && s.refresh()), this;
                    },
                    preDestroy: function() {
                        this.commandBuffer = [];
                    }
                });
                f.TargetCamera = new s, t.exports = f;
            },
            91543: (t, e, i)=>{
                var s = i(36266), n = i(49584);
                t.exports = function(t, e, i, r, o, a) {
                    var h = e.commandBuffer, l = h.length, u = o || t.currentContext;
                    if (0 !== l && n(t, u, e, i, r)) {
                        i.addToRenderList(e);
                        var c = 1, d = 1, f = 0, p = 0, v = 1, g = 0, m = 0, y = 0;
                        u.beginPath();
                        for(var x = 0; x < l; ++x)switch(h[x]){
                            case s.ARC:
                                u.arc(h[x + 1], h[x + 2], h[x + 3], h[x + 4], h[x + 5], h[x + 6]), x += 7;
                                break;
                            case s.LINE_STYLE:
                                v = h[x + 1], f = h[x + 2], c = h[x + 3], g = (16711680 & f) >>> 16, m = (65280 & f) >>> 8, y = 255 & f, u.strokeStyle = "rgba(" + g + "," + m + "," + y + "," + c + ")", u.lineWidth = v, x += 3;
                                break;
                            case s.FILL_STYLE:
                                p = h[x + 1], d = h[x + 2], g = (16711680 & p) >>> 16, m = (65280 & p) >>> 8, y = 255 & p, u.fillStyle = "rgba(" + g + "," + m + "," + y + "," + d + ")", x += 2;
                                break;
                            case s.BEGIN_PATH:
                                u.beginPath();
                                break;
                            case s.CLOSE_PATH:
                                u.closePath();
                                break;
                            case s.FILL_PATH:
                                a || u.fill();
                                break;
                            case s.STROKE_PATH:
                                a || u.stroke();
                                break;
                            case s.FILL_RECT:
                                a ? u.rect(h[x + 1], h[x + 2], h[x + 3], h[x + 4]) : u.fillRect(h[x + 1], h[x + 2], h[x + 3], h[x + 4]), x += 4;
                                break;
                            case s.FILL_TRIANGLE:
                                u.beginPath(), u.moveTo(h[x + 1], h[x + 2]), u.lineTo(h[x + 3], h[x + 4]), u.lineTo(h[x + 5], h[x + 6]), u.closePath(), a || u.fill(), x += 6;
                                break;
                            case s.STROKE_TRIANGLE:
                                u.beginPath(), u.moveTo(h[x + 1], h[x + 2]), u.lineTo(h[x + 3], h[x + 4]), u.lineTo(h[x + 5], h[x + 6]), u.closePath(), a || u.stroke(), x += 6;
                                break;
                            case s.LINE_TO:
                                u.lineTo(h[x + 1], h[x + 2]), x += 2;
                                break;
                            case s.MOVE_TO:
                                u.moveTo(h[x + 1], h[x + 2]), x += 2;
                                break;
                            case s.LINE_FX_TO:
                                u.lineTo(h[x + 1], h[x + 2]), x += 5;
                                break;
                            case s.MOVE_FX_TO:
                                u.moveTo(h[x + 1], h[x + 2]), x += 5;
                                break;
                            case s.SAVE:
                                u.save();
                                break;
                            case s.RESTORE:
                                u.restore();
                                break;
                            case s.TRANSLATE:
                                u.translate(h[x + 1], h[x + 2]), x += 2;
                                break;
                            case s.SCALE:
                                u.scale(h[x + 1], h[x + 2]), x += 2;
                                break;
                            case s.ROTATE:
                                u.rotate(h[x + 1]), x += 1;
                                break;
                            case s.GRADIENT_FILL_STYLE:
                                x += 5;
                                break;
                            case s.GRADIENT_LINE_STYLE:
                                x += 6;
                        }
                        u.restore();
                    }
                };
            },
            41286: (t, e, i)=>{
                var s = i(99325), n = i(33182);
                s.register("graphics", function(t, e) {
                    void 0 === t && (t = {}), void 0 !== e && (t.add = e);
                    var i = new n(this.scene, t);
                    return t.add && this.scene.sys.displayList.add(i), i;
                });
            },
            13122: (t, e, i)=>{
                var s = i(33182);
                i(61286).register("graphics", function(t) {
                    return this.displayList.add(new s(this.scene, t));
                });
            },
            60898: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(34429), r = i(91543), r = i(91543), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            34429: (t, e, i)=>{
                var s = i(36266), n = i(73329), r = i(69360), o = i(75512), a = function(t, e, i) {
                    this.x = t, this.y = e, this.width = i;
                }, h = function(t, e, i) {
                    this.points = [], this.pointsLength = 1, this.points[0] = new a(t, e, i);
                }, l = [], u = new r;
                t.exports = function(t, e, i, r) {
                    if (0 !== e.commandBuffer.length) {
                        i.addToRenderList(e);
                        var c = t.pipelines.set(e.pipeline, e);
                        t.pipelines.preBatch(e);
                        for(var d = n(e, i, r).calc, f = u.loadIdentity(), p = e.commandBuffer, v = i.alpha * e.alpha, g = 1, m = c.fillTint, y = c.strokeTint, x = 0, T = 0, w = 0, b = 2 * Math.PI, S = [], E = 0, A = !0, C = null, _ = o.getTintAppendFloatAlpha, M = 0; M < p.length; M++)switch(p[M]){
                            case s.BEGIN_PATH:
                                S.length = 0, C = null, A = !0;
                                break;
                            case s.CLOSE_PATH:
                                A = !1, C && C.points.length && C.points.push(C.points[0]);
                                break;
                            case s.FILL_PATH:
                                for(E = 0; E < S.length; E++)c.batchFillPath(S[E].points, f, d);
                                break;
                            case s.STROKE_PATH:
                                for(E = 0; E < S.length; E++)c.batchStrokePath(S[E].points, g, A, f, d);
                                break;
                            case s.LINE_STYLE:
                                g = p[++M];
                                var P = _(p[++M], p[++M] * v);
                                y.TL = P, y.TR = P, y.BL = P, y.BR = P;
                                break;
                            case s.FILL_STYLE:
                                var R = _(p[++M], p[++M] * v);
                                m.TL = R, m.TR = R, m.BL = R, m.BR = R;
                                break;
                            case s.GRADIENT_FILL_STYLE:
                                var O = p[++M] * v, L = p[++M] * v, F = p[++M] * v, D = p[++M] * v;
                                m.TL = _(p[++M], O), m.TR = _(p[++M], L), m.BL = _(p[++M], F), m.BR = _(p[++M], D);
                                break;
                            case s.GRADIENT_LINE_STYLE:
                                g = p[++M];
                                var I = p[++M] * v;
                                y.TL = _(p[++M], I), y.TR = _(p[++M], I), y.BL = _(p[++M], I), y.BR = _(p[++M], I);
                                break;
                            case s.ARC:
                                var k = 0, B = p[++M], N = p[++M], X = p[++M], U = p[++M], Y = p[++M], z = p[++M], G = p[++M];
                                for(Y -= U, z ? Y < -b ? Y = -b : Y > 0 && (Y = Y % b - b) : Y > b ? Y = b : Y < 0 && (Y = b + Y % b), null === C && (C = new h(B + Math.cos(U) * X, N + Math.sin(U) * X, g), S.push(C), k += .01); k < 1 + G;)w = Y * k + U, x = B + Math.cos(w) * X, T = N + Math.sin(w) * X, C.points.push(new a(x, T, g)), k += .01;
                                w = Y + U, x = B + Math.cos(w) * X, T = N + Math.sin(w) * X, C.points.push(new a(x, T, g));
                                break;
                            case s.FILL_RECT:
                                c.batchFillRect(p[++M], p[++M], p[++M], p[++M], f, d);
                                break;
                            case s.FILL_TRIANGLE:
                                c.batchFillTriangle(p[++M], p[++M], p[++M], p[++M], p[++M], p[++M], f, d);
                                break;
                            case s.STROKE_TRIANGLE:
                                c.batchStrokeTriangle(p[++M], p[++M], p[++M], p[++M], p[++M], p[++M], g, f, d);
                                break;
                            case s.LINE_TO:
                                null !== C ? C.points.push(new a(p[++M], p[++M], g)) : (C = new h(p[++M], p[++M], g), S.push(C));
                                break;
                            case s.MOVE_TO:
                                C = new h(p[++M], p[++M], g), S.push(C);
                                break;
                            case s.SAVE:
                                l.push(f.copyToArray());
                                break;
                            case s.RESTORE:
                                f.copyFromArray(l.pop());
                                break;
                            case s.TRANSLATE:
                                B = p[++M], N = p[++M], f.translate(B, N);
                                break;
                            case s.SCALE:
                                B = p[++M], N = p[++M], f.scale(B, N);
                                break;
                            case s.ROTATE:
                                f.rotate(p[++M]);
                        }
                        t.pipelines.postBatch(e);
                    }
                };
            },
            59192: (t, e, i)=>{
                var s = i(83979), n = i(56694), r = i(56631), o = i(6659), a = i(71608), h = i(72632), l = i(10850), u = i(19256), c = i(42911), d = i(75757), f = i(58403), p = i(13747), v = new n({
                    Extends: o,
                    initialize: function(t, e, i) {
                        o.call(this), i ? e && !Array.isArray(e) && (e = [
                            e
                        ]) : Array.isArray(e) ? c(e[0]) && (i = e, e = null) : c(e) && (i = e, e = null), this.scene = t, this.children = new f, this.isParent = !0, this.type = "Group", this.classType = h(i, "classType", p), this.name = h(i, "name", ""), this.active = h(i, "active", !0), this.maxSize = h(i, "maxSize", -1), this.defaultKey = h(i, "defaultKey", null), this.defaultFrame = h(i, "defaultFrame", null), this.runChildUpdate = h(i, "runChildUpdate", !1), this.createCallback = h(i, "createCallback", null), this.removeCallback = h(i, "removeCallback", null), this.createMultipleCallback = h(i, "createMultipleCallback", null), this.internalCreateCallback = h(i, "internalCreateCallback", null), this.internalRemoveCallback = h(i, "internalRemoveCallback", null), e && this.addMultiple(e), i && this.createMultiple(i), this.on(r.ADDED_TO_SCENE, this.addedToScene, this), this.on(r.REMOVED_FROM_SCENE, this.removedFromScene, this);
                    },
                    addedToScene: function() {
                        this.scene.sys.updateList.add(this);
                    },
                    removedFromScene: function() {
                        this.scene.sys.updateList.remove(this);
                    },
                    create: function(t, e, i, s, n, r) {
                        if (void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = this.defaultKey), void 0 === s && (s = this.defaultFrame), void 0 === n && (n = !0), void 0 === r && (r = !0), this.isFull()) return null;
                        var o = new this.classType(this.scene, t, e, i, s);
                        return o.addToDisplayList(this.scene.sys.displayList), o.addToUpdateList(), o.visible = n, o.setActive(r), this.add(o), o;
                    },
                    createMultiple: function(t) {
                        if (this.isFull()) return [];
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        var e = [];
                        if (t[0].key) for(var i = 0; i < t.length; i++){
                            var s = this.createFromConfig(t[i]);
                            e = e.concat(s);
                        }
                        return e;
                    },
                    createFromConfig: function(t) {
                        if (this.isFull()) return [];
                        this.classType = h(t, "classType", this.classType);
                        var e = h(t, "key", void 0), i = h(t, "frame", null), n = h(t, "visible", !0), r = h(t, "active", !0), o = [];
                        if (void 0 === e) return o;
                        Array.isArray(e) || (e = [
                            e
                        ]), Array.isArray(i) || (i = [
                            i
                        ]);
                        var a = h(t, "repeat", 0), c = h(t, "randomKey", !1), f = h(t, "randomFrame", !1), p = h(t, "yoyo", !1), v = h(t, "quantity", !1), g = h(t, "frameQuantity", 1), m = h(t, "max", 0), y = d(e, i, {
                            max: m,
                            qty: v || g,
                            random: c,
                            randomB: f,
                            repeat: a,
                            yoyo: p
                        });
                        t.createCallback && (this.createCallback = t.createCallback), t.removeCallback && (this.removeCallback = t.removeCallback);
                        for(var x = 0; x < y.length; x++){
                            var T = this.create(0, 0, y[x].a, y[x].b, n, r);
                            if (!T) break;
                            o.push(T);
                        }
                        if (u(t, "setXY")) {
                            var w = l(t, "setXY.x", 0), b = l(t, "setXY.y", 0), S = l(t, "setXY.stepX", 0), E = l(t, "setXY.stepY", 0);
                            s.SetXY(o, w, b, S, E);
                        }
                        if (u(t, "setRotation")) {
                            var A = l(t, "setRotation.value", 0), C = l(t, "setRotation.step", 0);
                            s.SetRotation(o, A, C);
                        }
                        if (u(t, "setScale")) {
                            var _ = l(t, "setScale.x", 1), M = l(t, "setScale.y", _), P = l(t, "setScale.stepX", 0), R = l(t, "setScale.stepY", 0);
                            s.SetScale(o, _, M, P, R);
                        }
                        if (u(t, "setOrigin")) {
                            var O = l(t, "setOrigin.x", .5), L = l(t, "setOrigin.y", O), F = l(t, "setOrigin.stepX", 0), D = l(t, "setOrigin.stepY", 0);
                            s.SetOrigin(o, O, L, F, D);
                        }
                        if (u(t, "setAlpha")) {
                            var I = l(t, "setAlpha.value", 1), k = l(t, "setAlpha.step", 0);
                            s.SetAlpha(o, I, k);
                        }
                        if (u(t, "setDepth")) {
                            var B = l(t, "setDepth.value", 0), N = l(t, "setDepth.step", 0);
                            s.SetDepth(o, B, N);
                        }
                        if (u(t, "setScrollFactor")) {
                            var X = l(t, "setScrollFactor.x", 1), U = l(t, "setScrollFactor.y", X), Y = l(t, "setScrollFactor.stepX", 0), z = l(t, "setScrollFactor.stepY", 0);
                            s.SetScrollFactor(o, X, U, Y, z);
                        }
                        var G = h(t, "hitArea", null), V = h(t, "hitAreaCallback", null);
                        G && s.SetHitArea(o, G, V);
                        var W = h(t, "gridAlign", !1);
                        return W && s.GridAlign(o, W), this.createMultipleCallback && this.createMultipleCallback.call(this, o), o;
                    },
                    preUpdate: function(t, e) {
                        if (this.runChildUpdate && 0 !== this.children.size) for(var i = this.children.entries.slice(), s = 0; s < i.length; s++){
                            var n = i[s];
                            n.active && n.update(t, e);
                        }
                    },
                    add: function(t, e) {
                        return void 0 === e && (e = !1), this.isFull() || (this.children.set(t), this.internalCreateCallback && this.internalCreateCallback.call(this, t), this.createCallback && this.createCallback.call(this, t), e && (t.addToDisplayList(this.scene.sys.displayList), t.addToUpdateList()), t.on(r.DESTROY, this.remove, this)), this;
                    },
                    addMultiple: function(t, e) {
                        if (void 0 === e && (e = !1), Array.isArray(t)) for(var i = 0; i < t.length; i++)this.add(t[i], e);
                        return this;
                    },
                    remove: function(t, e, i) {
                        return void 0 === e && (e = !1), void 0 === i && (i = !1), this.children.contains(t) ? (this.children.delete(t), this.internalRemoveCallback && this.internalRemoveCallback.call(this, t), this.removeCallback && this.removeCallback.call(this, t), t.off(r.DESTROY, this.remove, this), i ? t.destroy() : e && (t.removeFromDisplayList(), t.removeFromUpdateList()), this) : this;
                    },
                    clear: function(t, e) {
                        void 0 === t && (t = !1), void 0 === e && (e = !1);
                        for(var i = this.children, s = 0; s < i.size; s++){
                            var n = i.entries[s];
                            n.off(r.DESTROY, this.remove, this), e ? n.destroy() : t && (n.removeFromDisplayList(), n.removeFromUpdateList());
                        }
                        return this.children.clear(), this;
                    },
                    contains: function(t) {
                        return this.children.contains(t);
                    },
                    getChildren: function() {
                        return this.children.entries;
                    },
                    getLength: function() {
                        return this.children.size;
                    },
                    getMatching: function(t, e, i, s) {
                        return a(this.children.entries, t, e, i, s);
                    },
                    getFirst: function(t, e, i, s, n, r, o) {
                        return this.getHandler(!0, 1, t, e, i, s, n, r, o);
                    },
                    getFirstNth: function(t, e, i, s, n, r, o, a) {
                        return this.getHandler(!0, t, e, i, s, n, r, o, a);
                    },
                    getLast: function(t, e, i, s, n, r, o) {
                        return this.getHandler(!1, 1, t, e, i, s, n, r, o);
                    },
                    getLastNth: function(t, e, i, s, n, r, o, a) {
                        return this.getHandler(!1, t, e, i, s, n, r, o, a);
                    },
                    getHandler: function(t, e, i, s, n, r, o, a, h) {
                        var l, u;
                        void 0 === i && (i = !1), void 0 === s && (s = !1);
                        var c = 0, d = this.children.entries;
                        if (t) for(u = 0; u < d.length; u++)if ((l = d[u]).active === i) {
                            if (++c === e) break;
                        } else l = null;
                        else for(u = d.length - 1; u >= 0; u--)if ((l = d[u]).active === i) {
                            if (++c === e) break;
                        } else l = null;
                        return l ? ("number" == typeof n && (l.x = n), "number" == typeof r && (l.y = r), l) : s ? this.create(n, r, o, a, h) : null;
                    },
                    get: function(t, e, i, s, n) {
                        return this.getFirst(!1, !0, t, e, i, s, n);
                    },
                    getFirstAlive: function(t, e, i, s, n, r) {
                        return this.getFirst(!0, t, e, i, s, n, r);
                    },
                    getFirstDead: function(t, e, i, s, n, r) {
                        return this.getFirst(!1, t, e, i, s, n, r);
                    },
                    playAnimation: function(t, e) {
                        return s.PlayAnimation(this.children.entries, t, e), this;
                    },
                    isFull: function() {
                        return -1 !== this.maxSize && this.children.size >= this.maxSize;
                    },
                    countActive: function(t) {
                        void 0 === t && (t = !0);
                        for(var e = 0, i = 0; i < this.children.size; i++)this.children.entries[i].active === t && e++;
                        return e;
                    },
                    getTotalUsed: function() {
                        return this.countActive();
                    },
                    getTotalFree: function() {
                        var t = this.getTotalUsed();
                        return (-1 === this.maxSize ? 999999999999 : this.maxSize) - t;
                    },
                    setActive: function(t) {
                        return this.active = t, this;
                    },
                    setName: function(t) {
                        return this.name = t, this;
                    },
                    propertyValueSet: function(t, e, i, n, r) {
                        return s.PropertyValueSet(this.children.entries, t, e, i, n, r), this;
                    },
                    propertyValueInc: function(t, e, i, n, r) {
                        return s.PropertyValueInc(this.children.entries, t, e, i, n, r), this;
                    },
                    setX: function(t, e) {
                        return s.SetX(this.children.entries, t, e), this;
                    },
                    setY: function(t, e) {
                        return s.SetY(this.children.entries, t, e), this;
                    },
                    setXY: function(t, e, i, n) {
                        return s.SetXY(this.children.entries, t, e, i, n), this;
                    },
                    incX: function(t, e) {
                        return s.IncX(this.children.entries, t, e), this;
                    },
                    incY: function(t, e) {
                        return s.IncY(this.children.entries, t, e), this;
                    },
                    incXY: function(t, e, i, n) {
                        return s.IncXY(this.children.entries, t, e, i, n), this;
                    },
                    shiftPosition: function(t, e, i) {
                        return s.ShiftPosition(this.children.entries, t, e, i), this;
                    },
                    angle: function(t, e) {
                        return s.Angle(this.children.entries, t, e), this;
                    },
                    rotate: function(t, e) {
                        return s.Rotate(this.children.entries, t, e), this;
                    },
                    rotateAround: function(t, e) {
                        return s.RotateAround(this.children.entries, t, e), this;
                    },
                    rotateAroundDistance: function(t, e, i) {
                        return s.RotateAroundDistance(this.children.entries, t, e, i), this;
                    },
                    setAlpha: function(t, e) {
                        return s.SetAlpha(this.children.entries, t, e), this;
                    },
                    setTint: function(t, e, i, n) {
                        return s.SetTint(this.children.entries, t, e, i, n), this;
                    },
                    setOrigin: function(t, e, i, n) {
                        return s.SetOrigin(this.children.entries, t, e, i, n), this;
                    },
                    scaleX: function(t, e) {
                        return s.ScaleX(this.children.entries, t, e), this;
                    },
                    scaleY: function(t, e) {
                        return s.ScaleY(this.children.entries, t, e), this;
                    },
                    scaleXY: function(t, e, i, n) {
                        return s.ScaleXY(this.children.entries, t, e, i, n), this;
                    },
                    setDepth: function(t, e) {
                        return s.SetDepth(this.children.entries, t, e), this;
                    },
                    setBlendMode: function(t) {
                        return s.SetBlendMode(this.children.entries, t), this;
                    },
                    setHitArea: function(t, e) {
                        return s.SetHitArea(this.children.entries, t, e), this;
                    },
                    shuffle: function() {
                        return s.Shuffle(this.children.entries), this;
                    },
                    kill: function(t) {
                        this.children.contains(t) && t.setActive(!1);
                    },
                    killAndHide: function(t) {
                        this.children.contains(t) && (t.setActive(!1), t.setVisible(!1));
                    },
                    setVisible: function(t, e, i) {
                        return s.SetVisible(this.children.entries, t, e, i), this;
                    },
                    toggleVisible: function() {
                        return s.ToggleVisible(this.children.entries), this;
                    },
                    destroy: function(t, e) {
                        void 0 === t && (t = !1), void 0 === e && (e = !1), this.scene && !this.ignoreDestroy && (this.emit(r.DESTROY, this), this.removeAllListeners(), this.scene.sys.updateList.remove(this), this.clear(e, t), this.scene = void 0, this.children = void 0);
                    }
                });
                t.exports = v;
            },
            61295: (t, e, i)=>{
                var s = i(99325), n = i(59192);
                s.register("group", function(t) {
                    return new n(this.scene, null, t);
                });
            },
            62598: (t, e, i)=>{
                var s = i(59192);
                i(61286).register("group", function(t, e) {
                    return this.updateList.add(new s(this.scene, t, e));
                });
            },
            1539: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(89980), o = i(57322), a = new s({
                    Extends: r,
                    Mixins: [
                        n.Alpha,
                        n.BlendMode,
                        n.Depth,
                        n.Flip,
                        n.GetBounds,
                        n.Mask,
                        n.Origin,
                        n.Pipeline,
                        n.PostPipeline,
                        n.ScrollFactor,
                        n.Size,
                        n.TextureCrop,
                        n.Tint,
                        n.Transform,
                        n.Visible,
                        o
                    ],
                    initialize: function(t, e, i, s, n) {
                        r.call(this, t, "Image"), this._crop = this.resetCropObject(), this.setTexture(s, n), this.setPosition(e, i), this.setSizeToFrame(), this.setOriginFromFrame(), this.initPipeline(), this.initPostPipeline(!0);
                    }
                });
                t.exports = a;
            },
            57786: (t)=>{
                t.exports = function(t, e, i, s) {
                    i.addToRenderList(e), t.batchSprite(e, e.frame, i, s);
                };
            },
            83556: (t, e, i)=>{
                var s = i(88933), n = i(99325), r = i(20494), o = i(1539);
                n.register("image", function(t, e) {
                    void 0 === t && (t = {});
                    var i = r(t, "key", null), n = r(t, "frame", null), a = new o(this.scene, 0, 0, i, n);
                    return void 0 !== e && (t.add = e), s(this.scene, a, t), a;
                });
            },
            20927: (t, e, i)=>{
                var s = i(1539);
                i(61286).register("image", function(t, e, i, n) {
                    return this.displayList.add(new s(this.scene, t, e, i, n));
                });
            },
            57322: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(59390), r = i(57786), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            59390: (t)=>{
                t.exports = function(t, e, i, s) {
                    i.addToRenderList(e), this.pipeline.batchSprite(e, i, s);
                };
            },
            48013: (t, e, i)=>{
                var s = {
                    Events: i(56631),
                    DisplayList: i(91713),
                    GameObjectCreator: i(99325),
                    GameObjectFactory: i(61286),
                    UpdateList: i(92034),
                    Components: i(64937),
                    GetCalcMatrix: i(73329),
                    BuildGameObject: i(88933),
                    BuildGameObjectAnimation: i(32291),
                    GameObject: i(89980),
                    BitmapText: i(44616),
                    Blitter: i(52816),
                    Bob: i(41664),
                    Container: i(70339),
                    DOMElement: i(38943),
                    DynamicBitmapText: i(13468),
                    Extern: i(39419),
                    Graphics: i(33182),
                    Group: i(59192),
                    Image: i(1539),
                    Layer: i(85305),
                    Particles: i(27684),
                    PathFollower: i(29598),
                    RenderTexture: i(15996),
                    RetroFont: i(55873),
                    Rope: i(79968),
                    Sprite: i(13747),
                    Text: i(76555),
                    GetTextSize: i(32979),
                    MeasureText: i(27030),
                    TextStyle: i(74744),
                    TileSprite: i(35856),
                    Zone: i(71030),
                    Video: i(8630),
                    Shape: i(91461),
                    Arc: i(28593),
                    Curve: i(15220),
                    Ellipse: i(28591),
                    Grid: i(39169),
                    IsoBox: i(4415),
                    IsoTriangle: i(65159),
                    Line: i(579),
                    Polygon: i(91249),
                    Rectangle: i(517),
                    Star: i(77843),
                    Triangle: i(21873),
                    Factories: {
                        Blitter: i(38906),
                        Container: i(23400),
                        DOMElement: i(66788),
                        DynamicBitmapText: i(94145),
                        Extern: i(41155),
                        Graphics: i(13122),
                        Group: i(62598),
                        Image: i(20927),
                        Layer: i(17676),
                        Particles: i(81212),
                        PathFollower: i(19626),
                        RenderTexture: i(29599),
                        Rope: i(31982),
                        Sprite: i(66135),
                        StaticBitmapText: i(21797),
                        Text: i(94627),
                        TileSprite: i(20509),
                        Zone: i(34546),
                        Video: i(215),
                        Arc: i(10369),
                        Curve: i(10147),
                        Ellipse: i(99869),
                        Grid: i(9326),
                        IsoBox: i(88154),
                        IsoTriangle: i(67765),
                        Line: i(85665),
                        Polygon: i(88203),
                        Rectangle: i(94355),
                        Star: i(23962),
                        Triangle: i(79296)
                    },
                    Creators: {
                        Blitter: i(68452),
                        Container: i(44516),
                        DynamicBitmapText: i(67513),
                        Graphics: i(41286),
                        Group: i(61295),
                        Image: i(83556),
                        Layer: i(56378),
                        Particles: i(765),
                        RenderTexture: i(85692),
                        Rope: i(96027),
                        Sprite: i(89219),
                        StaticBitmapText: i(95499),
                        Text: i(75397),
                        TileSprite: i(63950),
                        Zone: i(24067),
                        Video: i(65601)
                    }
                };
                s.Shader = i(27902), s.Mesh = i(83321), s.NineSlice = i(44139), s.PointLight = i(13171), s.Plane = i(33412), s.Factories.Shader = i(51979), s.Factories.Mesh = i(8767), s.Factories.NineSlice = i(53778), s.Factories.PointLight = i(91201), s.Factories.Plane = i(58322), s.Creators.Shader = i(13908), s.Creators.Mesh = i(41839), s.Creators.NineSlice = i(40964), s.Creators.PointLight = i(162), s.Creators.Plane = i(10912), s.Light = i(14455), s.LightsManager = i(26193), s.LightsPlugin = i(50296), t.exports = s;
            },
            85305: (t, e, i)=>{
                var s = i(95723), n = i(56694), r = i(64937), o = i(48129), a = i(81078), h = i(6659), l = i(56631), u = i(71207), c = i(58010), d = i(7599), f = i(17922), p = new n({
                    Extends: u,
                    Mixins: [
                        r.AlphaSingle,
                        r.BlendMode,
                        r.Depth,
                        r.Mask,
                        r.PostPipeline,
                        r.Visible,
                        h,
                        c
                    ],
                    initialize: function(t, e) {
                        u.call(this, t), h.call(this), this.scene = t, this.displayList = null, this.type = "Layer", this.state = 0, this.parentContainer = null, this.name = "", this.active = !0, this.tabIndex = -1, this.data = null, this.renderFlags = 15, this.cameraFilter = 0, this.input = null, this.body = null, this.ignoreDestroy = !1, this.systems = t.sys, this.events = t.sys.events, this.sortChildrenFlag = !1, this.addCallback = this.addChildCallback, this.removeCallback = this.removeChildCallback, this.initPostPipeline(), this.clearAlpha(), this.setBlendMode(s.SKIP_CHECK), e && this.add(e), t.sys.queueDepthSort();
                    },
                    setActive: function(t) {
                        return this.active = t, this;
                    },
                    setName: function(t) {
                        return this.name = t, this;
                    },
                    setState: function(t) {
                        return this.state = t, this;
                    },
                    setDataEnabled: function() {
                        return this.data || (this.data = new a(this)), this;
                    },
                    setData: function(t, e) {
                        return this.data || (this.data = new a(this)), this.data.set(t, e), this;
                    },
                    incData: function(t, e) {
                        return this.data || (this.data = new a(this)), this.data.inc(t, e), this;
                    },
                    toggleData: function(t) {
                        return this.data || (this.data = new a(this)), this.data.toggle(t), this;
                    },
                    getData: function(t) {
                        return this.data || (this.data = new a(this)), this.data.get(t);
                    },
                    setInteractive: function() {
                        return this;
                    },
                    disableInteractive: function() {
                        return this;
                    },
                    removeInteractive: function() {
                        return this;
                    },
                    addedToScene: function() {},
                    removedFromScene: function() {},
                    update: function() {},
                    toJSON: function() {
                        return o(this);
                    },
                    willRender: function(t) {
                        return !(15 !== this.renderFlags || 0 === this.list.length || 0 !== this.cameraFilter && this.cameraFilter & t.id);
                    },
                    getIndexList: function() {
                        for(var t = this, e = this.parentContainer, i = []; e && (i.unshift(e.getIndex(t)), t = e, e.parentContainer);)e = e.parentContainer;
                        return i.unshift(this.displayList.getIndex(t)), i;
                    },
                    addChildCallback: function(t) {
                        t.displayList && t.displayList !== this && t.removeFromDisplayList(), t.displayList || (this.queueDepthSort(), t.displayList = this, t.emit(l.ADDED_TO_SCENE, t, this.scene), this.events.emit(d.ADDED_TO_SCENE, t, this.scene));
                    },
                    removeChildCallback: function(t) {
                        this.queueDepthSort(), t.displayList = null, t.emit(l.REMOVED_FROM_SCENE, t, this.scene), this.events.emit(d.REMOVED_FROM_SCENE, t, this.scene);
                    },
                    queueDepthSort: function() {
                        this.sortChildrenFlag = !0;
                    },
                    depthSort: function() {
                        this.sortChildrenFlag && (f(this.list, this.sortByDepth), this.sortChildrenFlag = !1);
                    },
                    sortByDepth: function(t, e) {
                        return t._depth - e._depth;
                    },
                    getChildren: function() {
                        return this.list;
                    },
                    addToDisplayList: function(t) {
                        return void 0 === t && (t = this.scene.sys.displayList), this.displayList && this.displayList !== t && this.removeFromDisplayList(), t.exists(this) || (this.displayList = t, t.add(this, !0), t.queueDepthSort(), this.emit(l.ADDED_TO_SCENE, this, this.scene), t.events.emit(d.ADDED_TO_SCENE, this, this.scene)), this;
                    },
                    removeFromDisplayList: function() {
                        var t = this.displayList || this.scene.sys.displayList;
                        return t.exists(this) && (t.remove(this, !0), t.queueDepthSort(), this.displayList = null, this.emit(l.REMOVED_FROM_SCENE, this, this.scene), t.events.emit(d.REMOVED_FROM_SCENE, this, this.scene)), this;
                    },
                    destroy: function(t) {
                        if (this.scene && !this.ignoreDestroy) {
                            this.emit(l.DESTROY, this);
                            for(var e = this.list; e.length;)e[0].destroy(t);
                            this.removeAllListeners(), this.resetPostPipeline(!0), this.displayList && (this.displayList.remove(this, !0), this.displayList.queueDepthSort()), this.data && (this.data.destroy(), this.data = void 0), this.active = !1, this.visible = !1, this.list = void 0, this.scene = void 0, this.displayList = void 0, this.systems = void 0, this.events = void 0;
                        }
                    }
                });
                t.exports = p;
            },
            834: (t)=>{
                t.exports = function(t, e, i) {
                    var s = e.list;
                    if (0 !== s.length) {
                        e.depthSort();
                        var n = -1 !== e.blendMode;
                        n || t.setBlendMode(0);
                        var r = e._alpha;
                        e.mask && e.mask.preRenderCanvas(t, null, i);
                        for(var o = 0; o < s.length; o++){
                            var a = s[o];
                            if (a.willRender(i)) {
                                var h = a.alpha;
                                n || a.blendMode === t.currentBlendMode || t.setBlendMode(a.blendMode), a.setAlpha(h * r), a.renderCanvas(t, a, i), a.setAlpha(h);
                            }
                        }
                        e.mask && e.mask.postRenderCanvas(t);
                    }
                };
            },
            56378: (t, e, i)=>{
                var s = i(88933), n = i(85305), r = i(99325), o = i(20494);
                r.register("layer", function(t, e) {
                    void 0 === t && (t = {});
                    var i = o(t, "children", null), r = new n(this.scene, i);
                    return void 0 !== e && (t.add = e), s(this.scene, r, t), r;
                });
            },
            17676: (t, e, i)=>{
                var s = i(85305);
                i(61286).register("layer", function(t) {
                    return this.displayList.add(new s(this.scene, t));
                });
            },
            58010: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(17576), r = i(834), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            17576: (t)=>{
                t.exports = function(t, e, i) {
                    var s = e.list, n = s.length;
                    if (0 !== n) {
                        e.depthSort(), t.pipelines.preBatch(e);
                        var r = -1 !== e.blendMode;
                        r || t.setBlendMode(0);
                        for(var o = e.alpha, a = 0; a < n; a++){
                            var h = s[a];
                            if (h.willRender(i)) {
                                var l, u, c, d;
                                if (void 0 !== h.alphaTopLeft) l = h.alphaTopLeft, u = h.alphaTopRight, c = h.alphaBottomLeft, d = h.alphaBottomRight;
                                else {
                                    var f = h.alpha;
                                    l = f, u = f, c = f, d = f;
                                }
                                r || h.blendMode === t.currentBlendMode || t.setBlendMode(h.blendMode);
                                var p = h.mask;
                                p && p.preRenderWebGL(t, h, i);
                                var v = h.type;
                                v !== t.currentType && (t.newType = !0, t.currentType = v), t.nextTypeMatch = a < n - 1 && s[a + 1].type === t.currentType, h.setAlpha(l * o, u * o, c * o, d * o), h.renderWebGL(t, h, i), h.setAlpha(l, u, c, d), p && p.postRenderWebGL(t, i), t.newType = !1;
                            }
                        }
                        t.pipelines.postBatch(e);
                    }
                };
            },
            14455: (t, e, i)=>{
                var s = i(26673), n = i(56694), r = i(64937), o = i(39298), a = i(75512), h = new n({
                    Extends: s,
                    Mixins: [
                        r.Origin,
                        r.ScrollFactor,
                        r.Transform,
                        r.Visible
                    ],
                    initialize: function(t, e, i, n, r, a, h) {
                        s.call(this, t, e, i), this.color = new o(n, r, a), this.intensity = h, this.renderFlags = 15, this.cameraFilter = 0, this.setScrollFactor(1, 1), this.setOrigin(), this.setDisplayOrigin(i);
                    },
                    displayWidth: {
                        get: function() {
                            return this.diameter;
                        },
                        set: function(t) {
                            this.diameter = t;
                        }
                    },
                    displayHeight: {
                        get: function() {
                            return this.diameter;
                        },
                        set: function(t) {
                            this.diameter = t;
                        }
                    },
                    width: {
                        get: function() {
                            return this.diameter;
                        },
                        set: function(t) {
                            this.diameter = t;
                        }
                    },
                    height: {
                        get: function() {
                            return this.diameter;
                        },
                        set: function(t) {
                            this.diameter = t;
                        }
                    },
                    willRender: function(t) {
                        return !(h.RENDER_MASK !== this.renderFlags || 0 !== this.cameraFilter && this.cameraFilter & t.id);
                    },
                    setColor: function(t) {
                        var e = a.getFloatsFromUintRGB(t);
                        return this.color.set(e[0], e[1], e[2]), this;
                    },
                    setIntensity: function(t) {
                        return this.intensity = t, this;
                    },
                    setRadius: function(t) {
                        return this.radius = t, this;
                    }
                });
                h.RENDER_MASK = 15, t.exports = h;
            },
            26193: (t, e, i)=>{
                var s = i(26535), n = i(56694), r = i(53996), o = i(14455), a = i(13171), h = i(39298), l = i(72677), u = i(17922), c = i(75512), d = new n({
                    initialize: function() {
                        this.lights = [], this.ambientColor = new h(.1, .1, .1), this.active = !1, this.maxLights = -1, this.visibleLights = 0;
                    },
                    addPointLight: function(t, e, i, s, n, r) {
                        return this.systems.displayList.add(new a(this.scene, t, e, i, s, n, r));
                    },
                    enable: function() {
                        return -1 === this.maxLights && (this.maxLights = this.systems.renderer.config.maxLights), this.active = !0, this;
                    },
                    disable: function() {
                        return this.active = !1, this;
                    },
                    getLights: function(t) {
                        for(var e = this.lights, i = t.worldView, n = [], o = 0; o < e.length; o++){
                            var a = e[o];
                            a.willRender(t) && s(a, i) && n.push({
                                light: a,
                                distance: r(a.x, a.y, i.centerX, i.centerY)
                            });
                        }
                        return n.length > this.maxLights && (u(n, this.sortByDistance), n = n.slice(0, this.maxLights)), this.visibleLights = n.length, n;
                    },
                    sortByDistance: function(t, e) {
                        return t.distance >= e.distance;
                    },
                    setAmbientColor: function(t) {
                        var e = c.getFloatsFromUintRGB(t);
                        return this.ambientColor.set(e[0], e[1], e[2]), this;
                    },
                    getMaxVisibleLights: function() {
                        return this.maxLights;
                    },
                    getLightCount: function() {
                        return this.lights.length;
                    },
                    addLight: function(t, e, i, s, n) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 128), void 0 === s && (s = 16777215), void 0 === n && (n = 1);
                        var r = c.getFloatsFromUintRGB(s), a = new o(t, e, i, r[0], r[1], r[2], n);
                        return this.lights.push(a), a;
                    },
                    removeLight: function(t) {
                        var e = this.lights.indexOf(t);
                        return e >= 0 && l(this.lights, e), this;
                    },
                    shutdown: function() {
                        this.lights.length = 0;
                    },
                    destroy: function() {
                        this.shutdown();
                    }
                });
                t.exports = d;
            },
            50296: (t, e, i)=>{
                var s = i(56694), n = i(26193), r = i(91963), o = i(7599), a = new s({
                    Extends: n,
                    initialize: function(t) {
                        this.scene = t, this.systems = t.sys, t.sys.settings.isBooted || t.sys.events.once(o.BOOT, this.boot, this), n.call(this);
                    },
                    boot: function() {
                        var t = this.systems.events;
                        t.on(o.SHUTDOWN, this.shutdown, this), t.on(o.DESTROY, this.destroy, this);
                    },
                    destroy: function() {
                        this.shutdown(), this.scene = void 0, this.systems = void 0;
                    }
                });
                r.register("LightsPlugin", a, "lights"), t.exports = a;
            },
            83321: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(75606), o = i(18693), a = i(89980), h = i(53267), l = i(67623), u = i(73329), c = i(16650), d = i(23464), f = i(23701), p = i(17922), v = i(70015), g = i(85769), m = new s({
                    Extends: a,
                    Mixins: [
                        n.AlphaSingle,
                        n.BlendMode,
                        n.Depth,
                        n.Mask,
                        n.Pipeline,
                        n.PostPipeline,
                        n.ScrollFactor,
                        n.Size,
                        n.Texture,
                        n.Transform,
                        n.Visible,
                        d
                    ],
                    initialize: function(t, e, i, s, n, r, o, h, l, u, d, f) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = "__WHITE"), a.call(this, t, "Mesh"), this.faces = [], this.vertices = [], this.tintFill = !1, this.debugCallback = null, this.debugGraphic = null, this.hideCCW = !0, this.modelPosition = new v, this.modelScale = new v(1, 1, 1), this.modelRotation = new v, this.dirtyCache = [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ], this.transformMatrix = new c, this.viewPosition = new v, this.viewMatrix = new c, this.projectionMatrix = new c, this.totalRendered = 0, this.totalFrame = 0, this.ignoreDirtyCache = !1, this.fov, this.displayOriginX = 0, this.displayOriginY = 0;
                        var p = t.sys.renderer;
                        this.setPosition(e, i), this.setTexture(s, n), this.setSize(p.width, p.height), this.initPipeline(), this.initPostPipeline(), this.setPerspective(p.width, p.height), r && this.addVertices(r, o, h, l, u, d, f);
                    },
                    addedToScene: function() {
                        this.scene.sys.updateList.add(this);
                    },
                    removedFromScene: function() {
                        this.scene.sys.updateList.remove(this);
                    },
                    panX: function(t) {
                        return this.viewPosition.addScale(v.LEFT, t), this.dirtyCache[10] = 1, this;
                    },
                    panY: function(t) {
                        return this.viewPosition.y += v.DOWN.y * t, this.dirtyCache[10] = 1, this;
                    },
                    panZ: function(t) {
                        return this.viewPosition.z += t, this.dirtyCache[10] = 1, this;
                    },
                    setPerspective: function(t, e, i, s, n) {
                        return void 0 === i && (i = 45), void 0 === s && (s = .01), void 0 === n && (n = 1e3), this.fov = i, this.projectionMatrix.perspective(r(i), t / e, s, n), this.dirtyCache[10] = 1, this.dirtyCache[11] = 0, this;
                    },
                    setOrtho: function(t, e, i, s) {
                        return void 0 === t && (t = this.scene.sys.renderer.getAspectRatio()), void 0 === e && (e = 1), void 0 === i && (i = -1000), void 0 === s && (s = 1e3), this.fov = 0, this.projectionMatrix.ortho(-t, t, -e, e, i, s), this.dirtyCache[10] = 1, this.dirtyCache[11] = 1, this;
                    },
                    clear: function() {
                        return this.faces.forEach(function(t) {
                            t.destroy();
                        }), this.faces = [], this.vertices = [], this;
                    },
                    addVerticesFromObj: function(t, e, i, s, n, r, o, a, l) {
                        var u, c = this.scene.sys.cache.obj.get(t);
                        return c && (u = h(c, this, e, i, s, n, r, o, a, l)), u && 0 !== u.verts.length || console.warn("Mesh.addVerticesFromObj data empty:", t), this;
                    },
                    sortByDepth: function(t, e) {
                        return t.depth - e.depth;
                    },
                    depthSort: function() {
                        return p(this.faces, this.sortByDepth), this;
                    },
                    addVertex: function(t, e, i, s, n, r, o) {
                        var a = new g(t, e, i, s, n, r, o);
                        return this.vertices.push(a), a;
                    },
                    addFace: function(t, e, i) {
                        var s = new o(t, e, i);
                        return this.faces.push(s), this.dirtyCache[9] = -1, s;
                    },
                    addVertices: function(t, e, i, s, n, r, o) {
                        var a = l(t, e, i, s, n, r, o);
                        return a ? (this.faces = this.faces.concat(a.faces), this.vertices = this.vertices.concat(a.vertices)) : console.warn("Mesh.addVertices data empty or invalid"), this.dirtyCache[9] = -1, this;
                    },
                    getFaceCount: function() {
                        return this.faces.length;
                    },
                    getVertexCount: function() {
                        return this.vertices.length;
                    },
                    getFace: function(t) {
                        return this.faces[t];
                    },
                    hasFaceAt: function(t, e, i) {
                        void 0 === i && (i = this.scene.sys.cameras.main);
                        for(var s = u(this, i).calc, n = this.faces, r = 0; r < n.length; r++){
                            if (n[r].contains(t, e, s)) return !0;
                        }
                        return !1;
                    },
                    getFaceAt: function(t, e, i) {
                        void 0 === i && (i = this.scene.sys.cameras.main);
                        for(var s = u(this, i).calc, n = this.faces, r = [], o = 0; o < n.length; o++){
                            var a = n[o];
                            a.contains(t, e, s) && r.push(a);
                        }
                        return p(r, this.sortByDepth);
                    },
                    setDebug: function(t, e) {
                        return this.debugGraphic = t, this.debugCallback = t || e ? e || this.renderDebug : null, this;
                    },
                    isDirty: function() {
                        var t = this.modelPosition, e = this.modelRotation, i = this.modelScale, s = this.dirtyCache, n = t.x, r = t.y, o = t.z, a = e.x, h = e.y, l = e.z, u = i.x, c = i.y, d = i.z, f = this.getFaceCount(), p = s[0], v = s[1], g = s[2], m = s[3], y = s[4], x = s[5], T = s[6], w = s[7], b = s[8], S = s[9];
                        return s[0] = n, s[1] = r, s[2] = o, s[3] = a, s[4] = h, s[5] = l, s[6] = u, s[7] = c, s[8] = d, s[9] = f, p !== n || v !== r || g !== o || m !== a || y !== h || x !== l || T !== u || w !== c || b !== d || S !== f;
                    },
                    preUpdate: function() {
                        this.totalRendered = this.totalFrame, this.totalFrame = 0;
                        var t = this.dirtyCache;
                        if (this.ignoreDirtyCache || t[10] || this.isDirty()) {
                            var e = this.width, i = this.height, s = this.viewMatrix, n = this.viewPosition;
                            t[10] && (s.identity(), s.translate(n), s.invert(), t[10] = 0);
                            var r = this.transformMatrix;
                            r.setWorldMatrix(this.modelRotation, this.modelPosition, this.modelScale, this.viewMatrix, this.projectionMatrix);
                            for(var o = n.z, a = this.faces, h = 0; h < a.length; h++)a[h].transformCoordinatesLocal(r, e, i, o);
                            this.depthSort();
                        }
                    },
                    renderDebug: function(t, e) {
                        for(var i = t.debugGraphic, s = 0; s < e.length; s++){
                            var n = e[s], r = n.vertex1.tx, o = n.vertex1.ty, a = n.vertex2.tx, h = n.vertex2.ty, l = n.vertex3.tx, u = n.vertex3.ty;
                            i.strokeTriangle(r, o, a, h, l, u);
                        }
                    },
                    preDestroy: function() {
                        this.clear(), this.debugCallback = null, this.debugGraphic = null;
                    },
                    clearTint: function() {
                        return this.setTint();
                    },
                    setInteractive: function() {
                        var t = this.faces;
                        return this.scene.sys.input.enable(this, function(e, i, s) {
                            for(var n = 0; n < t.length; n++){
                                if (t[n].contains(i, s)) return !0;
                            }
                            return !1;
                        }), this;
                    },
                    setTint: function(t) {
                        void 0 === t && (t = 16777215);
                        for(var e = this.vertices, i = 0; i < e.length; i++)e[i].color = t;
                        return this;
                    },
                    uvScroll: function(t, e) {
                        for(var i = this.faces, s = 0; s < i.length; s++)i[s].scrollUV(t, e);
                        return this;
                    },
                    uvScale: function(t, e) {
                        for(var i = this.faces, s = 0; s < i.length; s++)i[s].scaleUV(t, e);
                        return this;
                    },
                    tint: {
                        set: function(t) {
                            this.setTint(t);
                        }
                    },
                    rotateX: {
                        get: function() {
                            return f(this.modelRotation.x);
                        },
                        set: function(t) {
                            this.modelRotation.x = r(t);
                        }
                    },
                    rotateY: {
                        get: function() {
                            return f(this.modelRotation.y);
                        },
                        set: function(t) {
                            this.modelRotation.y = r(t);
                        }
                    },
                    rotateZ: {
                        get: function() {
                            return f(this.modelRotation.z);
                        },
                        set: function(t) {
                            this.modelRotation.z = r(t);
                        }
                    }
                });
                t.exports = m;
            },
            6317: (t)=>{
                t.exports = function() {};
            },
            41839: (t, e, i)=>{
                var s = i(88933), n = i(99325), r = i(20494), o = i(10850), a = i(83321);
                n.register("mesh", function(t, e) {
                    void 0 === t && (t = {});
                    var i = r(t, "key", null), n = r(t, "frame", null), h = o(t, "vertices", []), l = o(t, "uvs", []), u = o(t, "indicies", []), c = o(t, "containsZ", !1), d = o(t, "normals", []), f = o(t, "colors", 16777215), p = o(t, "alphas", 1), v = new a(this.scene, 0, 0, i, n, h, l, u, c, d, f, p);
                    return void 0 !== e && (t.add = e), s(this.scene, v, t), v;
                });
            },
            8767: (t, e, i)=>{
                var s = i(83321);
                i(61286).register("mesh", function(t, e, i, n, r, o, a, h, l, u, c) {
                    return this.displayList.add(new s(this.scene, t, e, i, n, r, o, a, h, l, u, c));
                });
            },
            23464: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(57410), r = i(6317), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            57410: (t, e, i)=>{
                var s = i(73329);
                t.exports = function(t, e, i, n) {
                    var r = e.faces, o = r.length;
                    if (0 !== o) {
                        i.addToRenderList(e);
                        var a = t.pipelines.set(e.pipeline, e), h = s(e, i, n).calc;
                        t.pipelines.preBatch(e);
                        for(var l = a.setGameObject(e), u = a.vertexViewF32, c = a.vertexViewU32, d = a.vertexCount * a.currentShader.vertexComponentCount - 1, f = e.tintFill, p = [], v = e.debugCallback, g = h.a, m = h.b, y = h.c, x = h.d, T = h.e, w = h.f, b = e.viewPosition.z, S = e.hideCCW, E = i.roundPixels, A = i.alpha * e.alpha, C = 0, _ = 0; _ < o; _++){
                            var M = r[_];
                            M.isInView(i, S, b, A, g, m, y, x, T, w, E) && (a.shouldFlush(3) && (a.flush(), l = a.setGameObject(e), d = 0), d = M.load(u, c, d, l, f), C++, a.vertexCount += 3, a.currentBatch.count = a.vertexCount - a.currentBatch.start, v && p.push(M));
                        }
                        e.totalFrame += C, v && v.call(e, e, p), t.pipelines.postBatch(e);
                    }
                };
            },
            44139: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(89980), o = i(94456), a = i(85769), h = new s({
                    Extends: r,
                    Mixins: [
                        n.AlphaSingle,
                        n.BlendMode,
                        n.Depth,
                        n.GetBounds,
                        n.Mask,
                        n.Origin,
                        n.Pipeline,
                        n.PostPipeline,
                        n.ScrollFactor,
                        n.Texture,
                        n.Transform,
                        n.Visible,
                        o
                    ],
                    initialize: function(t, e, i, s, n, o, h, l, u, c, d) {
                        void 0 === o && (o = 256), void 0 === h && (h = 256), void 0 === l && (l = 10), void 0 === u && (u = 10), void 0 === c && (c = 0), void 0 === d && (d = 0), r.call(this, t, "NineSlice"), this._width, this._height, this._originX = .5, this._originY = .5, this._sizeComponent = !0, this.vertices = [], this.leftWidth, this.rightWidth, this.topHeight, this.bottomHeight, this.tint = 16777215, this.tintFill = !1, this.is3Slice = 0 === c && 0 === d;
                        for(var f = this.is3Slice ? 18 : 54, p = 0; p < f; p++)this.vertices.push(new a);
                        this.setPosition(e, i), this.setTexture(s, n), this.setSlices(o, h, l, u, c, d), this.setOrigin(.5, .5), this.initPipeline(), this.initPostPipeline();
                    },
                    setSlices: function(t, e, i, s, n, r) {
                        void 0 === t && (t = 256), void 0 === e && (e = 256), void 0 === i && (i = 10), void 0 === s && (s = 10), void 0 === n && (n = 0), void 0 === r && (r = 0);
                        var o = 0 === n && 0 === r;
                        return this.is3Slice !== o ? console.warn("Cannot change 9 slice to 3 slice") : (this._width = t, this._height = e, this.leftWidth = i, this.rightWidth = s, this.topHeight = n, this.bottomHeight = r, this.is3Slice && (e = this.frame.height, this._height = e, this.topHeight = e, this.bottomHeight = 0), this.updateVertices(), this.updateUVs()), this;
                    },
                    updateUVs: function() {
                        var t = this.leftWidth, e = this.rightWidth, i = this.topHeight, s = this.bottomHeight, n = this.frame.width, r = this.frame.height;
                        this.updateQuadUVs(0, 0, 0, t / n, i / r), this.updateQuadUVs(6, t / n, 0, 1 - e / n, i / r), this.updateQuadUVs(12, 1 - e / n, 0, 1, i / r), this.is3Slice || (this.updateQuadUVs(18, 0, i / r, t / n, 1 - s / r), this.updateQuadUVs(24, t / n, i / r, 1 - e / n, 1 - s / r), this.updateQuadUVs(30, 1 - e / n, i / r, 1, 1 - s / r), this.updateQuadUVs(36, 0, 1 - s / r, t / n, 1), this.updateQuadUVs(42, t / n, 1 - s / r, 1 - e / n, 1), this.updateQuadUVs(48, 1 - e / n, 1 - s / r, 1, 1));
                    },
                    updateVertices: function() {
                        var t = this.leftWidth, e = this.rightWidth, i = this.topHeight, s = this.bottomHeight, n = this.width, r = this.height;
                        this.updateQuad(0, -0.5, .5, t / n - .5, .5 - i / r), this.updateQuad(6, t / n - .5, .5, .5 - e / n, .5 - i / r), this.updateQuad(12, .5 - e / n, .5, .5, .5 - i / r), this.is3Slice || (this.updateQuad(18, -0.5, .5 - i / r, t / n - .5, s / r - .5), this.updateQuad(24, t / n - .5, .5 - i / r, .5 - e / n, s / r - .5), this.updateQuad(30, .5 - e / n, .5 - i / r, .5, s / r - .5), this.updateQuad(36, -0.5, s / r - .5, t / n - .5, -0.5), this.updateQuad(42, t / n - .5, s / r - .5, .5 - e / n, -0.5), this.updateQuad(48, .5 - e / n, s / r - .5, .5, -0.5));
                    },
                    updateQuad: function(t, e, i, s, n) {
                        var r = this.width, o = this.height, a = this.originX, h = this.originY, l = this.vertices;
                        l[t + 0].resize(e, i, r, o, a, h), l[t + 1].resize(e, n, r, o, a, h), l[t + 2].resize(s, i, r, o, a, h), l[t + 3].resize(e, n, r, o, a, h), l[t + 4].resize(s, n, r, o, a, h), l[t + 5].resize(s, i, r, o, a, h);
                    },
                    updateQuadUVs: function(t, e, i, s, n) {
                        var r = this.vertices, o = this.frame, a = o.u0, h = o.v0, l = o.u1, u = o.v1;
                        if (0 !== a || 1 !== l) {
                            var c = l - a;
                            e = a + e * c, s = a + s * c;
                        }
                        if (0 !== h || 1 !== u) {
                            var d = u - h;
                            i = h + i * d, n = h + n * d;
                        }
                        r[t + 0].setUVs(e, i), r[t + 1].setUVs(e, n), r[t + 2].setUVs(s, i), r[t + 3].setUVs(e, n), r[t + 4].setUVs(s, n), r[t + 5].setUVs(s, i);
                    },
                    clearTint: function() {
                        return this.setTint(16777215), this;
                    },
                    setTint: function(t) {
                        return void 0 === t && (t = 16777215), this.tint = t, this.tintFill = !1, this;
                    },
                    setTintFill: function(t) {
                        return this.setTint(t), this.tintFill = !0, this;
                    },
                    isTinted: {
                        get: function() {
                            return 16777215 !== this.tint;
                        }
                    },
                    width: {
                        get: function() {
                            return this._width;
                        },
                        set: function(t) {
                            this._width = Math.max(t, this.leftWidth + this.rightWidth), this.updateVertices();
                        }
                    },
                    height: {
                        get: function() {
                            return this._height;
                        },
                        set: function(t) {
                            this.is3Slice || (this._height = Math.max(t, this.topHeight + this.bottomHeight), this.updateVertices());
                        }
                    },
                    displayWidth: {
                        get: function() {
                            return this.scaleX * this.width;
                        },
                        set: function(t) {
                            this.scaleX = t / this.width;
                        }
                    },
                    displayHeight: {
                        get: function() {
                            return this.scaleY * this.height;
                        },
                        set: function(t) {
                            this.scaleY = t / this.height;
                        }
                    },
                    setSize: function(t, e) {
                        this.width = t, this.height = e;
                        var i = this.input;
                        return i && !i.customHitArea && (i.hitArea.width = this.width, i.hitArea.height = this.height), this;
                    },
                    setDisplaySize: function(t, e) {
                        return this.displayWidth = t, this.displayHeight = e, this;
                    },
                    originX: {
                        get: function() {
                            return this._originX;
                        },
                        set: function(t) {
                            this._originX = t, this.updateVertices();
                        }
                    },
                    originY: {
                        get: function() {
                            return this._originY;
                        },
                        set: function(t) {
                            this._originY = t, this.updateVertices();
                        }
                    },
                    setOrigin: function(t, e) {
                        return void 0 === t && (t = .5), void 0 === e && (e = t), this._originX = t, this._originY = e, this.updateVertices(), this.updateDisplayOrigin();
                    },
                    setSizeToFrame: function() {
                        if (this.is3Slice) {
                            var t = this.frame.height;
                            this._height = t, this.topHeight = t, this.bottomHeight = 0;
                        }
                        return this.updateUVs(), this;
                    },
                    preDestroy: function() {
                        this.vertices = [];
                    }
                });
                t.exports = h;
            },
            40964: (t, e, i)=>{
                var s = i(88933), n = i(99325), r = i(20494), o = i(10850), a = i(44139);
                n.register("nineslice", function(t, e) {
                    void 0 === t && (t = {});
                    var i = r(t, "key", null), n = r(t, "frame", null), h = o(t, "width", 256), l = o(t, "height", 256), u = o(t, "leftWidth", 10), c = o(t, "rightWidth", 10), d = o(t, "topHeight", 0), f = o(t, "bottomHeight", 0), p = new a(this.scene, 0, 0, i, n, h, l, u, c, d, f);
                    return void 0 !== e && (t.add = e), s(this.scene, p, t), p;
                });
            },
            53778: (t, e, i)=>{
                var s = i(44139);
                i(61286).register("nineslice", function(t, e, i, n, r, o, a, h, l, u) {
                    return this.displayList.add(new s(this.scene, t, e, i, n, r, o, a, h, l, u));
                });
            },
            94456: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(27420), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            27420: (t, e, i)=>{
                var s = i(73329), n = i(75512);
                t.exports = function(t, e, i, r) {
                    var o = e.vertices, a = o.length;
                    if (0 !== a) {
                        i.addToRenderList(e);
                        var h = t.pipelines.set(e.pipeline, e), l = s(e, i, r, !1).calc;
                        t.pipelines.preBatch(e);
                        var u = h.setGameObject(e), c = h.vertexViewF32, d = h.vertexViewU32, f = h.vertexCount * h.currentShader.vertexComponentCount - 1, p = i.roundPixels, v = e.tintFill, g = i.alpha * e.alpha, m = n.getTintAppendFloatAlpha(e.tint, g), y = h.vertexAvailable(), x = -1;
                        y < a && (x = y);
                        for(var T = 0; T < a; T++){
                            var w = o[T];
                            T === x && (h.flush(), u = h.setGameObject(e), f = 0), c[++f] = l.getXRound(w.vx, w.vy, p), c[++f] = l.getYRound(w.vx, w.vy, p), c[++f] = w.u, c[++f] = w.v, c[++f] = u, c[++f] = v, d[++f] = m, h.vertexCount++, h.currentBatch.count = h.vertexCount - h.currentBatch.start;
                        }
                        t.pipelines.postBatch(e);
                    }
                };
            },
            19737: (t, e, i)=>{
                var s = i(56694), n = i(93025), r = i(22946), o = i(21902), a = i(4840), h = i(15978), l = new s({
                    Extends: n,
                    initialize: function(t) {
                        n.call(this, t, null, !1), this.active = !1, this.easeName = "Linear", this.r = [], this.g = [], this.b = [];
                    },
                    getMethod: function() {
                        return null === this.propertyValue ? 0 : 9;
                    },
                    setMethods: function() {
                        var t = this.propertyValue, e = t, i = this.defaultEmit, s = this.defaultUpdate;
                        if (9 === this.method) {
                            this.start = t[0], this.ease = o("Linear"), this.interpolation = a("linear"), i = this.easedValueEmit, s = this.easeValueUpdate, e = t[0], this.active = !0;
                            for(var n = 0; n < t.length; n++){
                                var r = h(t[n]);
                                this.r.push(r.r), this.g.push(r.g), this.b.push(r.b);
                            }
                        }
                        return this.onEmit = i, this.onUpdate = s, this.current = e, this;
                    },
                    setEase: function(t) {
                        this.easeName = t, this.ease = o(t);
                    },
                    easedValueEmit: function() {
                        return this.current = this.start, this.start;
                    },
                    easeValueUpdate: function(t, e, i) {
                        var s = this.ease(i), n = this.interpolation(this.r, s), o = this.interpolation(this.g, s), a = this.interpolation(this.b, s), h = r(n, o, a);
                        return this.current = h, h;
                    }
                });
                t.exports = l;
            },
            93025: (t, e, i)=>{
                var s = i(17489), n = i(82897), r = i(56694), o = i(61616), a = i(21902), h = i(72632), l = i(4840), u = i(88462), c = i(1071), d = new r({
                    initialize: function(t, e, i) {
                        void 0 === i && (i = !1), this.propertyKey = t, this.propertyValue = e, this.defaultValue = e, this.steps = 0, this.counter = 0, this.yoyo = !1, this.direction = 0, this.start = 0, this.current = 0, this.end = 0, this.ease = null, this.interpolation = null, this.emitOnly = i, this.onEmit = this.defaultEmit, this.onUpdate = this.defaultUpdate, this.active = !0, this.method = 0, this._onEmit, this._onUpdate;
                    },
                    loadConfig: function(t, e) {
                        void 0 === t && (t = {}), e && (this.propertyKey = e), this.propertyValue = h(t, this.propertyKey, this.defaultValue), this.method = this.getMethod(), this.setMethods(), this.emitOnly && (this.onUpdate = this.defaultUpdate);
                    },
                    toJSON: function() {
                        return JSON.stringify(this.propertyValue);
                    },
                    onChange: function(t) {
                        var e;
                        switch(this.method){
                            case 1:
                            case 3:
                            case 8:
                                e = t;
                                break;
                            case 2:
                                this.propertyValue.indexOf(t) >= 0 && (e = t);
                                break;
                            case 4:
                                var i = (this.end - this.start) / this.steps;
                                e = u(t, i), this.counter = e;
                                break;
                            case 5:
                            case 6:
                            case 7:
                                e = n(t, this.start, this.end);
                                break;
                            case 9:
                                e = this.start[0];
                        }
                        return this.current = e, this;
                    },
                    getMethod: function() {
                        var t = this.propertyValue;
                        if (null === t) return 0;
                        var e = typeof t;
                        if ("number" === e) return 1;
                        if (Array.isArray(t)) return 2;
                        if ("function" === e) return 3;
                        if ("object" === e) {
                            if (this.hasBoth(t, "start", "end")) return this.has(t, "steps") ? 4 : 5;
                            if (this.hasBoth(t, "min", "max")) return 6;
                            if (this.has(t, "random")) return 7;
                            if (this.hasEither(t, "onEmit", "onUpdate")) return 8;
                            if (this.has(t, "interpolation")) return 9;
                        }
                        return 0;
                    },
                    setMethods: function() {
                        var t = this.propertyValue, e = t, i = this.defaultEmit, s = this.defaultUpdate;
                        switch(this.method){
                            case 1:
                                i = this.staticValueEmit;
                                break;
                            case 2:
                                i = this.randomStaticValueEmit, e = t[0];
                                break;
                            case 3:
                                this._onEmit = t, i = this.proxyEmit;
                                break;
                            case 4:
                                this.start = t.start, this.end = t.end, this.steps = t.steps, this.counter = this.start, this.yoyo = !!this.has(t, "yoyo") && t.yoyo, this.direction = 0, i = this.steppedEmit, e = this.start;
                                break;
                            case 5:
                                this.start = t.start, this.end = t.end;
                                var n = this.has(t, "ease") ? t.ease : "Linear";
                                this.ease = a(n, t.easeParams), i = this.has(t, "random") && t.random ? this.randomRangedValueEmit : this.easedValueEmit, s = this.easeValueUpdate, e = this.start;
                                break;
                            case 6:
                                this.start = t.min, this.end = t.max, i = this.has(t, "int") && t.int ? this.randomRangedIntEmit : this.randomRangedValueEmit, e = this.start;
                                break;
                            case 7:
                                var r = t.random;
                                Array.isArray(r) && (this.start = r[0], this.end = r[1]), i = this.randomRangedIntEmit, e = this.start;
                                break;
                            case 8:
                                this._onEmit = this.has(t, "onEmit") ? t.onEmit : this.defaultEmit, this._onUpdate = this.has(t, "onUpdate") ? t.onUpdate : this.defaultUpdate, i = this.proxyEmit, s = this.proxyUpdate;
                                break;
                            case 9:
                                this.start = t.values;
                                var o = this.has(t, "ease") ? t.ease : "Linear";
                                this.ease = a(o, t.easeParams), this.interpolation = l(t.interpolation), i = this.easedValueEmit, s = this.easeValueUpdate, e = this.start[0];
                        }
                        return this.onEmit = i, this.onUpdate = s, this.current = e, this;
                    },
                    has: function(t, e) {
                        return t.hasOwnProperty(e);
                    },
                    hasBoth: function(t, e, i) {
                        return t.hasOwnProperty(e) && t.hasOwnProperty(i);
                    },
                    hasEither: function(t, e, i) {
                        return t.hasOwnProperty(e) || t.hasOwnProperty(i);
                    },
                    defaultEmit: function(t, e, i) {
                        return i;
                    },
                    defaultUpdate: function(t, e, i, s) {
                        return s;
                    },
                    proxyEmit: function(t, e, i) {
                        var s = this._onEmit(t, e, i);
                        return this.current = s, s;
                    },
                    proxyUpdate: function(t, e, i, s) {
                        var n = this._onUpdate(t, e, i, s);
                        return this.current = n, n;
                    },
                    staticValueEmit: function() {
                        return this.current;
                    },
                    staticValueUpdate: function() {
                        return this.current;
                    },
                    randomStaticValueEmit: function() {
                        var t = Math.floor(Math.random() * this.propertyValue.length);
                        return this.current = this.propertyValue[t], this.current;
                    },
                    randomRangedValueEmit: function(t, e) {
                        var i = o(this.start, this.end);
                        return t && t.data[e] && (t.data[e].min = i, t.data[e].max = this.end), this.current = i, i;
                    },
                    randomRangedIntEmit: function(t, e) {
                        var i = s(this.start, this.end);
                        return t && t.data[e] && (t.data[e].min = i, t.data[e].max = this.end), this.current = i, i;
                    },
                    steppedEmit: function() {
                        var t, e = this.counter, i = e, s = (this.end - this.start) / this.steps;
                        this.yoyo ? (0 === this.direction ? (i += s) >= this.end && (t = i - this.end, i = this.end - t, this.direction = 1) : (i -= s) <= this.start && (t = this.start - i, i = this.start + t, this.direction = 0), this.counter = i) : this.counter = c(i + s, this.start, this.end);
                        return this.current = e, e;
                    },
                    easedValueEmit: function(t, e) {
                        if (t && t.data[e]) {
                            var i = t.data[e];
                            i.min = this.start, i.max = this.end;
                        }
                        return this.current = this.start, this.start;
                    },
                    easeValueUpdate: function(t, e, i) {
                        var s, n = t.data[e], r = this.ease(i);
                        return s = this.interpolation ? this.interpolation(this.start, r) : (n.max - n.min) * r + n.min, this.current = s, s;
                    },
                    destroy: function() {
                        this.propertyValue = null, this.defaultValue = null, this.ease = null, this.interpolation = null, this._onEmit = null, this._onUpdate = null;
                    }
                });
                t.exports = d;
            },
            87811: (t, e, i)=>{
                var s = i(56694), n = i(72632), r = i(30891), o = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, o) {
                        if ("object" == typeof t) {
                            var a = t;
                            t = n(a, "x", 0), e = n(a, "y", 0), i = n(a, "power", 0), s = n(a, "epsilon", 100), o = n(a, "gravity", 50);
                        } else void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 100), void 0 === o && (o = 50);
                        r.call(this, t, e, !0), this._gravity = o, this._power = i * o, this._epsilon = s * s;
                    },
                    update: function(t, e) {
                        var i = this.x - t.x, s = this.y - t.y, n = i * i + s * s;
                        if (0 !== n) {
                            var r = Math.sqrt(n);
                            n < this._epsilon && (n = this._epsilon);
                            var o = this._power * e / (n * r) * 100;
                            t.velocityX += i * o, t.velocityY += s * o;
                        }
                    },
                    epsilon: {
                        get: function() {
                            return Math.sqrt(this._epsilon);
                        },
                        set: function(t) {
                            this._epsilon = t * t;
                        }
                    },
                    power: {
                        get: function() {
                            return this._power / this._gravity;
                        },
                        set: function(t) {
                            this._power = t * this._gravity;
                        }
                    },
                    gravity: {
                        get: function() {
                            return this._gravity;
                        },
                        set: function(t) {
                            var e = this.power;
                            this._gravity = t, this.power = e;
                        }
                    }
                });
                t.exports = o;
            },
            14909: (t, e, i)=>{
                var s = i(16569), n = i(82897), r = i(56694), o = i(75606), a = i(74118), h = i(2386), l = i(93736), u = new r({
                    initialize: function(t) {
                        this.emitter = t, this.texture = null, this.frame = null, this.x = 0, this.y = 0, this.worldPosition = new l, this.velocityX = 0, this.velocityY = 0, this.accelerationX = 0, this.accelerationY = 0, this.maxVelocityX = 1e4, this.maxVelocityY = 1e4, this.bounce = 0, this.scaleX = 1, this.scaleY = 1, this.alpha = 1, this.angle = 0, this.rotation = 0, this.tint = 16777215, this.life = 1e3, this.lifeCurrent = 1e3, this.delayCurrent = 0, this.holdCurrent = 0, this.lifeT = 0, this.data = {
                            tint: {
                                min: 16777215,
                                max: 16777215
                            },
                            alpha: {
                                min: 1,
                                max: 1
                            },
                            rotate: {
                                min: 0,
                                max: 0
                            },
                            scaleX: {
                                min: 1,
                                max: 1
                            },
                            scaleY: {
                                min: 1,
                                max: 1
                            },
                            x: {
                                min: 0,
                                max: 0
                            },
                            y: {
                                min: 0,
                                max: 0
                            },
                            accelerationX: {
                                min: 0,
                                max: 0
                            },
                            accelerationY: {
                                min: 0,
                                max: 0
                            },
                            maxVelocityX: {
                                min: 0,
                                max: 0
                            },
                            maxVelocityY: {
                                min: 0,
                                max: 0
                            },
                            moveToX: {
                                min: 0,
                                max: 0
                            },
                            moveToY: {
                                min: 0,
                                max: 0
                            },
                            bounce: {
                                min: 0,
                                max: 0
                            }
                        }, this.isCropped = !1, this.scene = t.scene, this.anims = new s(this), this.bounds = new a;
                    },
                    emit: function(t, e, i, s, n, r) {
                        return this.emitter.emit(t, e, i, s, n, r);
                    },
                    isAlive: function() {
                        return this.lifeCurrent > 0;
                    },
                    kill: function() {
                        this.lifeCurrent = 0;
                    },
                    setPosition: function(t, e) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), this.x = t, this.y = e;
                    },
                    fire: function(t, e) {
                        var i = this.emitter, s = i.ops, n = i.getAnim();
                        if (n ? this.anims.play(n) : (this.frame = i.getFrame(), this.texture = this.frame.texture), !this.frame) throw new Error("Particle has no texture frame");
                        if (i.getEmitZone(this), void 0 === t ? this.x += s.x.onEmit(this, "x") : s.x.steps > 0 ? this.x += t + s.x.onEmit(this, "x") : this.x += t, void 0 === e ? this.y += s.y.onEmit(this, "y") : s.y.steps > 0 ? this.y += e + s.y.onEmit(this, "y") : this.y += e, this.life = s.lifespan.onEmit(this, "lifespan"), this.lifeCurrent = this.life, this.lifeT = 0, this.delayCurrent = s.delay.onEmit(this, "delay"), this.holdCurrent = s.hold.onEmit(this, "hold"), this.scaleX = s.scaleX.onEmit(this, "scaleX"), this.scaleY = s.scaleY.active ? s.scaleY.onEmit(this, "scaleY") : this.scaleX, this.angle = s.rotate.onEmit(this, "rotate"), this.rotation = o(this.angle), i.worldMatrix.transformPoint(this.x, this.y, this.worldPosition), 0 === this.delayCurrent && i.getDeathZone(this)) return this.lifeCurrent = 0, !1;
                        var r = s.speedX.onEmit(this, "speedX"), a = s.speedY.active ? s.speedY.onEmit(this, "speedY") : r;
                        if (i.radial) {
                            var h = o(s.angle.onEmit(this, "angle"));
                            this.velocityX = Math.cos(h) * Math.abs(r), this.velocityY = Math.sin(h) * Math.abs(a);
                        } else if (i.moveTo) {
                            var l = s.moveToX.onEmit(this, "moveToX"), u = s.moveToY.onEmit(this, "moveToY"), c = this.life / 1e3;
                            this.velocityX = (l - this.x) / c, this.velocityY = (u - this.y) / c;
                        } else this.velocityX = r, this.velocityY = a;
                        return i.acceleration && (this.accelerationX = s.accelerationX.onEmit(this, "accelerationX"), this.accelerationY = s.accelerationY.onEmit(this, "accelerationY")), this.maxVelocityX = s.maxVelocityX.onEmit(this, "maxVelocityX"), this.maxVelocityY = s.maxVelocityY.onEmit(this, "maxVelocityY"), this.bounce = s.bounce.onEmit(this, "bounce"), this.alpha = s.alpha.onEmit(this, "alpha"), s.color.active ? this.tint = s.color.onEmit(this, "tint") : this.tint = s.tint.onEmit(this, "tint"), !0;
                    },
                    update: function(t, e, i) {
                        if (this.lifeCurrent <= 0) return !(this.holdCurrent > 0) || (this.holdCurrent -= t, this.holdCurrent <= 0);
                        if (this.delayCurrent > 0) return this.delayCurrent -= t, !1;
                        this.anims.update(0, t);
                        var s = this.emitter, n = s.ops, r = 1 - this.lifeCurrent / this.life;
                        if (this.lifeT = r, this.x = n.x.onUpdate(this, "x", r, this.x), this.y = n.y.onUpdate(this, "y", r, this.y), s.moveTo) {
                            var a = n.moveToX.onUpdate(this, "moveToX", r, s.moveToX), h = n.moveToY.onUpdate(this, "moveToY", r, s.moveToY), l = this.lifeCurrent / 1e3;
                            this.velocityX = (a - this.x) / l, this.velocityY = (h - this.y) / l;
                        }
                        return this.computeVelocity(s, t, e, i, r), this.scaleX = n.scaleX.onUpdate(this, "scaleX", r, this.scaleX), this.scaleY = this.scaleX, n.scaleY.active && (this.scaleY = n.scaleY.onUpdate(this, "scaleY", r, this.scaleY)), this.angle = n.rotate.onUpdate(this, "rotate", r, this.angle), this.rotation = o(this.angle), s.getDeathZone(this) ? (this.lifeCurrent = 0, !0) : (this.alpha = n.alpha.onUpdate(this, "alpha", r, this.alpha), n.color.active ? this.tint = n.color.onUpdate(this, "color", r, this.tint) : this.tint = n.tint.onUpdate(this, "tint", r, this.tint), this.lifeCurrent -= t, this.lifeCurrent <= 0 && this.holdCurrent <= 0);
                    },
                    computeVelocity: function(t, e, i, s, r) {
                        var o = t.ops, a = this.velocityX, h = this.velocityY, l = o.accelerationX.onUpdate(this, "accelerationX", r, this.accelerationX), u = o.accelerationY.onUpdate(this, "accelerationY", r, this.accelerationY), c = o.maxVelocityX.onUpdate(this, "maxVelocityX", r, this.maxVelocityX), d = o.maxVelocityY.onUpdate(this, "maxVelocityY", r, this.maxVelocityY);
                        this.bounce = o.bounce.onUpdate(this, "bounce", r, this.bounce), a += t.gravityX * i + l * i, h += t.gravityY * i + u * i, a = n(a, -c, c), h = n(h, -d, d), this.velocityX = a, this.velocityY = h, this.x += a * i, this.y += h * i, t.worldMatrix.transformPoint(this.x, this.y, this.worldPosition);
                        for(var f = 0; f < s.length; f++){
                            var p = s[f];
                            p.active && p.update(this, e, i, r);
                        }
                    },
                    setSizeToFrame: function() {},
                    getBounds: function(t) {
                        void 0 === t && (t = this.emitter.getWorldTransformMatrix());
                        var e = Math.abs(t.scaleX) * this.scaleX, i = Math.abs(t.scaleY) * this.scaleY, s = this.x, n = this.y, r = this.rotation, o = this.frame.width * e / 2, a = this.frame.height * i / 2, u = this.bounds, c = new l(s - o, n - a), d = new l(s + o, n - a), f = new l(s - o, n + a), p = new l(s + o, n + a);
                        return 0 !== r && (h(c, s, n, r), h(d, s, n, r), h(f, s, n, r), h(p, s, n, r)), t.transformPoint(c.x, c.y, c), t.transformPoint(d.x, d.y, d), t.transformPoint(f.x, f.y, f), t.transformPoint(p.x, p.y, p), u.x = Math.min(c.x, d.x, f.x, p.x), u.y = Math.min(c.y, d.y, f.y, p.y), u.width = Math.max(c.x, d.x, f.x, p.x) - u.x, u.height = Math.max(c.y, d.y, f.y, p.y) - u.y, u;
                    },
                    destroy: function() {
                        this.anims.destroy(), this.anims = null, this.emitter = null, this.texture = null, this.frame = null, this.scene = null;
                    }
                });
                t.exports = u;
            },
            73106: (t, e, i)=>{
                var s = i(56694), n = i(30891), r = i(74118), o = new s({
                    Extends: n,
                    initialize: function(t, e, i, s, o, a, h, l) {
                        void 0 === o && (o = !0), void 0 === a && (a = !0), void 0 === h && (h = !0), void 0 === l && (l = !0), n.call(this, t, e, !0), this.bounds = new r(t, e, i, s), this.collideLeft = o, this.collideRight = a, this.collideTop = h, this.collideBottom = l;
                    },
                    update: function(t) {
                        var e = this.bounds, i = -t.bounce, s = t.worldPosition;
                        s.x < e.x && this.collideLeft ? (t.x += e.x - s.x, t.velocityX *= i) : s.x > e.right && this.collideRight && (t.x -= s.x - e.right, t.velocityX *= i), s.y < e.y && this.collideTop ? (t.y += e.y - s.y, t.velocityY *= i) : s.y > e.bottom && this.collideBottom && (t.y -= s.y - e.bottom, t.velocityY *= i);
                    }
                });
                t.exports = o;
            },
            9216: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(48129), o = i(29538), a = i(69361), h = i(54213), l = i(19737), u = i(93025), c = i(40629), d = i(89980), f = i(72632), p = i(72861), v = i(87811), g = i(53523), m = i(19256), y = i(7782), x = i(71207), T = i(14655), w = i(14909), b = i(68433), S = i(74118), E = i(90205), A = i(66458), C = i(69116), _ = i(17922), M = i(69360), P = i(93736), R = i(1071), O = i(73106), L = [
                    "active",
                    "advance",
                    "blendMode",
                    "colorEase",
                    "deathCallback",
                    "deathCallbackScope",
                    "duration",
                    "emitCallback",
                    "emitCallbackScope",
                    "follow",
                    "frequency",
                    "gravityX",
                    "gravityY",
                    "maxAliveParticles",
                    "maxParticles",
                    "name",
                    "emitting",
                    "particleBringToTop",
                    "particleClass",
                    "radial",
                    "sortCallback",
                    "sortOrderAsc",
                    "sortProperty",
                    "stopAfter",
                    "tintFill",
                    "timeScale",
                    "trackVisible",
                    "visible"
                ], F = [
                    "accelerationX",
                    "accelerationY",
                    "alpha",
                    "angle",
                    "bounce",
                    "color",
                    "delay",
                    "hold",
                    "lifespan",
                    "maxVelocityX",
                    "maxVelocityY",
                    "moveToX",
                    "moveToY",
                    "quantity",
                    "rotate",
                    "scaleX",
                    "scaleY",
                    "speedX",
                    "speedY",
                    "tint",
                    "x",
                    "y"
                ], D = new s({
                    Extends: d,
                    Mixins: [
                        n.AlphaSingle,
                        n.BlendMode,
                        n.Depth,
                        n.Mask,
                        n.Pipeline,
                        n.PostPipeline,
                        n.ScrollFactor,
                        n.Texture,
                        n.Transform,
                        n.Visible,
                        C
                    ],
                    initialize: function(t, e, i, s, n) {
                        d.call(this, t, "ParticleEmitter"), this.particleClass = w, this.ops = {
                            accelerationX: new u("accelerationX", 0),
                            accelerationY: new u("accelerationY", 0),
                            alpha: new u("alpha", 1),
                            angle: new u("angle", {
                                min: 0,
                                max: 360
                            }, !0),
                            bounce: new u("bounce", 0),
                            color: new l("color"),
                            delay: new u("delay", 0, !0),
                            hold: new u("hold", 0, !0),
                            lifespan: new u("lifespan", 1e3, !0),
                            maxVelocityX: new u("maxVelocityX", 1e4),
                            maxVelocityY: new u("maxVelocityY", 1e4),
                            moveToX: new u("moveToX", 0),
                            moveToY: new u("moveToY", 0),
                            quantity: new u("quantity", 1, !0),
                            rotate: new u("rotate", 0),
                            scaleX: new u("scaleX", 1),
                            scaleY: new u("scaleY", 1),
                            speedX: new u("speedX", 0, !0),
                            speedY: new u("speedY", 0, !0),
                            tint: new u("tint", 16777215),
                            x: new u("x", 0),
                            y: new u("y", 0)
                        }, this.radial = !0, this.gravityX = 0, this.gravityY = 0, this.acceleration = !1, this.moveTo = !1, this.emitCallback = null, this.emitCallbackScope = null, this.deathCallback = null, this.deathCallbackScope = null, this.maxParticles = 0, this.maxAliveParticles = 0, this.stopAfter = 0, this.duration = 0, this.frequency = 0, this.emitting = !0, this.particleBringToTop = !0, this.timeScale = 1, this.emitZones = [], this.deathZones = [], this.viewBounds = null, this.follow = null, this.followOffset = new P, this.trackVisible = !1, this.frames = [], this.randomFrame = !0, this.frameQuantity = 1, this.anims = [], this.randomAnim = !0, this.animQuantity = 1, this.dead = [], this.alive = [], this.counters = new Float32Array(10), this.skipping = !1, this.worldMatrix = new M, this.sortProperty = "", this.sortOrderAsc = !0, this.sortCallback = this.depthSortCallback, this.processors = new x(this), this.tintFill = !1, this.initPipeline(), this.initPostPipeline(), this.setPosition(e, i), this.setTexture(s), n && this.setConfig(n);
                    },
                    addedToScene: function() {
                        this.scene.sys.updateList.add(this);
                    },
                    removedFromScene: function() {
                        this.scene.sys.updateList.remove(this);
                    },
                    setConfig: function(t) {
                        if (!t) return this;
                        var e = 0, i = "", s = this.ops;
                        for(e = 0; e < F.length; e++)s[i = F[e]].loadConfig(t);
                        for(e = 0; e < L.length; e++)m(t, i = L[e]) && (this[i] = f(t, i));
                        if (this.acceleration = 0 !== this.accelerationX || 0 !== this.accelerationY, this.moveTo = 0 !== this.moveToX && 0 !== this.moveToY, m(t, "speed") && (s.speedX.loadConfig(t, "speed"), s.speedY.active = !1), (g(t, [
                            "speedX",
                            "speedY"
                        ]) || this.moveTo) && (this.radial = !1), m(t, "scale") && (s.scaleX.loadConfig(t, "scale"), s.scaleY.active = !1), m(t, "callbackScope")) {
                            var n = f(t, "callbackScope", null);
                            this.emitCallbackScope = n, this.deathCallbackScope = n;
                        }
                        if (m(t, "emitZone") && this.addEmitZone(t.emitZone), m(t, "deathZone") && this.addDeathZone(t.deathZone), m(t, "bounds")) {
                            var r = this.addParticleBounds(t.bounds);
                            r.collideLeft = f(t, "collideLeft", !0), r.collideRight = f(t, "collideRight", !0), r.collideTop = f(t, "collideTop", !0), r.collideBottom = f(t, "collideBottom", !0);
                        }
                        return m(t, "followOffset") && this.followOffset.setFromObject(f(t, "followOffset", 0)), m(t, "texture") && this.setTexture(t.texture), m(t, "frame") ? this.setEmitterFrame(t.frame) : m(t, "anim") && this.setAnim(t.anim), m(t, "reserve") && this.reserve(t.reserve), m(t, "advance") && this.fastForward(t.advance), this.resetCounters(this.frequency, this.emitting), this.emitting && this.emit(c.START, this), this;
                    },
                    toJSON: function() {
                        var t = r(this), e = 0, i = "";
                        for(e = 0; e < L.length; e++)t[i = L[e]] = this[i];
                        var s = this.ops;
                        for(e = 0; e < F.length; e++)s[i = F[e]] && (t[i] = s[i].toJSON());
                        return s.speedY.active || (delete t.speedX, t.speed = s.speedX.toJSON()), this.scaleX === this.scaleY && (delete t.scaleX, delete t.scaleY, t.scale = s.scaleX.toJSON()), t;
                    },
                    resetCounters: function(t, e) {
                        var i = this.counters;
                        i.fill(0), i[0] = t, e && (i[5] = 1);
                    },
                    startFollow: function(t, e, i, s) {
                        return void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = !1), this.follow = t, this.followOffset.set(e, i), this.trackVisible = s, this;
                    },
                    stopFollow: function() {
                        return this.follow = null, this.followOffset.set(0, 0), this.trackVisible = !1, this;
                    },
                    getFrame: function() {
                        var t, e = this.frames, i = e.length;
                        return 1 === i ? t = e[0] : this.randomFrame ? t = p(e) : (t = e[this.currentFrame], this.frameCounter++, this.frameCounter === this.frameQuantity && (this.frameCounter = 0, this.currentFrame++, this.currentFrame === i && (this.currentFrame = 0))), this.texture.get(t);
                    },
                    setEmitterFrame: function(t, e, i) {
                        void 0 === e && (e = !0), void 0 === i && (i = 1), this.randomFrame = e, this.frameQuantity = i, this.currentFrame = 0;
                        var s = typeof t;
                        if (this.frames.length = 0, Array.isArray(t)) this.frames = this.frames.concat(t);
                        else if ("string" === s || "number" === s) this.frames.push(t);
                        else if ("object" === s) {
                            var n = t;
                            (t = f(n, "frames", null)) && (this.frames = this.frames.concat(t));
                            var r = f(n, "cycle", !1);
                            this.randomFrame = !r, this.frameQuantity = f(n, "quantity", i);
                        }
                        return 1 === this.frames.length && (this.frameQuantity = 1, this.randomFrame = !1), this;
                    },
                    getAnim: function() {
                        var t = this.anims, e = t.length;
                        if (0 === e) return null;
                        if (1 === e) return t[0];
                        if (this.randomAnim) return p(t);
                        var i = t[this.currentAnim];
                        return this.animCounter++, this.animCounter >= this.animQuantity && (this.animCounter = 0, this.currentAnim = R(this.currentAnim + 1, 0, e - 1)), i;
                    },
                    setAnim: function(t, e, i) {
                        void 0 === e && (e = !0), void 0 === i && (i = 1), this.randomAnim = e, this.animQuantity = i, this.currentAnim = 0;
                        var s = typeof t;
                        if (this.anims.length = 0, Array.isArray(t)) this.anims = this.anims.concat(t);
                        else if ("string" === s) this.anims.push(t);
                        else if ("object" === s) {
                            var n = t;
                            (t = f(n, "anims", null)) && (this.anims = this.anims.concat(t));
                            var r = f(n, "cycle", !1);
                            this.randomAnim = !r, this.animQuantity = f(n, "quantity", i);
                        }
                        return 1 === this.anims.length && (this.animQuantity = 1, this.randomAnim = !1), this;
                    },
                    setRadial: function(t) {
                        return void 0 === t && (t = !0), this.radial = t, this;
                    },
                    addParticleBounds: function(t, e, i, s, n, r, o, a) {
                        if ("object" == typeof t) {
                            var h = t;
                            t = h.x, e = h.y, i = m(h, "w") ? h.w : h.width, s = m(h, "h") ? h.h : h.height;
                        }
                        return this.addParticleProcessor(new O(t, e, i, s, n, r, o, a));
                    },
                    setParticleSpeed: function(t, e) {
                        return void 0 === e && (e = t), this.ops.speedX.onChange(t), t === e ? this.ops.speedY.active = !1 : this.ops.speedY.onChange(e), this.radial = !0, this;
                    },
                    setParticleScale: function(t, e) {
                        return void 0 === t && (t = 1), void 0 === e && (e = t), this.ops.scaleX.onChange(t), this.ops.scaleY.onChange(e), this;
                    },
                    setParticleGravity: function(t, e) {
                        return this.gravityX = t, this.gravityY = e, this;
                    },
                    setParticleAlpha: function(t) {
                        return this.ops.alpha.onChange(t), this;
                    },
                    setParticleTint: function(t) {
                        return this.ops.tint.onChange(t), this;
                    },
                    setEmitterAngle: function(t) {
                        return this.ops.angle.onChange(t), this;
                    },
                    setParticleLifespan: function(t) {
                        return this.ops.lifespan.onChange(t), this;
                    },
                    setQuantity: function(t) {
                        return this.quantity = t, this;
                    },
                    setFrequency: function(t, e) {
                        return this.frequency = t, this.flowCounter = t > 0 ? t : 0, e && (this.quantity = e), this;
                    },
                    addDeathZone: function(t) {
                        var e;
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var i = this.deathZones, s = 0; s < t.length; s++)if ((e = t[s]) instanceof a) i.push(e);
                        else if ("function" == typeof e.contains) e = new a(e, !0), i.push(e);
                        else {
                            var n = f(e, "type", "onEnter"), r = f(e, "source", null);
                            if (r && "function" == typeof r.contains) e = new a(r, "onEnter" === n), i.push(e);
                        }
                        return e;
                    },
                    removeDeathZone: function(t) {
                        return A(this.deathZones, t), this;
                    },
                    addEmitZone: function(t) {
                        var e;
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var i = this.emitZones, s = [], n = 0; n < t.length; n++){
                            if ((e = t[n]) instanceof b || e instanceof h) i.push(e);
                            else {
                                var r = f(e, "type", "random"), o = f(e, "source", null);
                                if ("random" === r) e = new b(o);
                                else if ("edge" === r) {
                                    var a = f(e, "quantity", 1), l = f(e, "stepRate", 0), u = f(e, "yoyo", !1), c = f(e, "seamless", !0), d = f(e, "total", -1);
                                    e = new h(o, a, l, u, c, d);
                                }
                                e && i.push(e);
                            }
                            s.push(e);
                        }
                        return s;
                    },
                    removeEmitZone: function(t) {
                        return A(this.emitZones, t), this.zoneIndex = 0, this;
                    },
                    getEmitZone: function(t) {
                        var e = this.emitZones, i = e.length;
                        if (0 !== i) {
                            var s = e[this.zoneIndex];
                            s.getPoint(t), s.total > -1 && (this.zoneTotal++, this.zoneTotal === s.total && (this.zoneTotal = 0, this.zoneIndex++, this.zoneIndex === i && (this.zoneIndex = 0)));
                        }
                    },
                    getDeathZone: function(t) {
                        for(var e = this.deathZones, i = 0; i < e.length; i++){
                            var s = e[i];
                            if (s.willKill(t)) return this.emit(c.DEATH_ZONE, this, t, s), !0;
                        }
                        return !1;
                    },
                    setEmitZone: function(t) {
                        var e;
                        return (e = isFinite(t) ? t : this.emitZones.indexOf(t)) >= 0 && (this.zoneIndex = e), this;
                    },
                    addParticleProcessor: function(t) {
                        return this.processors.exists(t) || (t.emitter && t.emitter.removeParticleProcessor(t), this.processors.add(t), t.emitter = this), t;
                    },
                    removeParticleProcessor: function(t) {
                        return this.processors.exists(t) && (this.processors.remove(t, !0), t.emitter = null), t;
                    },
                    getProcessors: function() {
                        return this.processors.getAll("active", !0);
                    },
                    createGravityWell: function(t) {
                        return this.addParticleProcessor(new v(t));
                    },
                    reserve: function(t) {
                        var e = this.dead;
                        if (this.maxParticles > 0) {
                            var i = this.getParticleCount();
                            i + t > this.maxParticles && (t = this.maxParticles - (i + t));
                        }
                        for(var s = 0; s < t; s++)e.push(new this.particleClass(this));
                        return this;
                    },
                    getAliveParticleCount: function() {
                        return this.alive.length;
                    },
                    getDeadParticleCount: function() {
                        return this.dead.length;
                    },
                    getParticleCount: function() {
                        return this.getAliveParticleCount() + this.getDeadParticleCount();
                    },
                    atLimit: function() {
                        return this.maxParticles > 0 && this.getParticleCount() >= this.maxParticles || this.maxAliveParticles > 0 && this.getAliveParticleCount() >= this.maxAliveParticles;
                    },
                    onParticleEmit: function(t, e) {
                        return void 0 === t ? (this.emitCallback = null, this.emitCallbackScope = null) : "function" == typeof t && (this.emitCallback = t, e && (this.emitCallbackScope = e)), this;
                    },
                    onParticleDeath: function(t, e) {
                        return void 0 === t ? (this.deathCallback = null, this.deathCallbackScope = null) : "function" == typeof t && (this.deathCallback = t, e && (this.deathCallbackScope = e)), this;
                    },
                    killAll: function() {
                        for(var t = this.dead, e = this.alive; e.length > 0;)t.push(e.pop());
                        return this;
                    },
                    forEachAlive: function(t, e) {
                        for(var i = this.alive, s = i.length, n = 0; n < s; n++)t.call(e, i[n], this);
                        return this;
                    },
                    forEachDead: function(t, e) {
                        for(var i = this.dead, s = i.length, n = 0; n < s; n++)t.call(e, i[n], this);
                        return this;
                    },
                    start: function(t, e) {
                        return void 0 === t && (t = 0), this.emitting || (t > 0 && this.fastForward(t), this.emitting = !0, this.resetCounters(this.frequency, !0), void 0 !== e && (this.duration = Math.abs(e)), this.emit(c.START, this)), this;
                    },
                    stop: function(t) {
                        return void 0 === t && (t = !1), this.emitting && (this.emitting = !1, t && this.killAll(), this.emit(c.STOP, this)), this;
                    },
                    pause: function() {
                        return this.active = !1, this;
                    },
                    resume: function() {
                        return this.active = !0, this;
                    },
                    setSortProperty: function(t, e) {
                        return void 0 === t && (t = ""), void 0 === e && (e = this.true), this.sortProperty = t, this.sortOrderAsc = e, this.sortCallback = this.depthSortCallback, this;
                    },
                    setSortCallback: function(t) {
                        return t = "" !== this.sortProperty ? this.depthSortCallback : null, this.sortCallback = t, this;
                    },
                    depthSort: function() {
                        return _(this.alive, this.sortCallback.bind(this)), this;
                    },
                    depthSortCallback: function(t, e) {
                        var i = this.sortProperty;
                        return this.sortOrderAsc ? t[i] - e[i] : e[i] - t[i];
                    },
                    flow: function(t, e, i) {
                        return void 0 === e && (e = 1), this.emitting = !1, this.frequency = t, this.quantity = e, void 0 !== i && (this.stopAfter = i), this.start();
                    },
                    explode: function(t, e, i) {
                        this.frequency = -1, this.resetCounters(-1, !0);
                        var s = this.emitParticle(t, e, i);
                        return this.emit(c.EXPLODE, this, s), s;
                    },
                    emitParticleAt: function(t, e, i) {
                        return this.emitParticle(i, t, e);
                    },
                    emitParticle: function(t, e, i) {
                        if (!this.atLimit()) {
                            void 0 === t && (t = this.ops.quantity.onEmit());
                            for(var s = this.dead, n = this.stopAfter, r = this.follow ? this.follow.x + this.followOffset.x : e, o = this.follow ? this.follow.y + this.followOffset.y : i, a = 0; a < t; a++){
                                var h = s.pop();
                                if (h || (h = new this.particleClass(this)), h.fire(r, o) ? (this.particleBringToTop ? this.alive.push(h) : this.alive.unshift(h), this.emitCallback && this.emitCallback.call(this.emitCallbackScope, h, this)) : this.dead.push(h), n > 0 && (this.stopCounter++, this.stopCounter >= n)) break;
                                if (this.atLimit()) break;
                            }
                            return h;
                        }
                    },
                    fastForward: function(t, e) {
                        void 0 === e && (e = 1e3 / 60);
                        var i = 0;
                        for(this.skipping = !0; i < Math.abs(t);)this.preUpdate(0, e), i += e;
                        return this.skipping = !1, this;
                    },
                    preUpdate: function(t, e) {
                        var i = (e *= this.timeScale) / 1e3;
                        this.trackVisible && (this.visible = this.follow.visible), this.getWorldTransformMatrix(this.worldMatrix);
                        var s = this.getProcessors(), n = this.alive, r = this.dead, o = 0, a = [], h = n.length;
                        for(o = 0; o < h; o++){
                            var l = n[o];
                            l.update(e, i, s) && a.push({
                                index: o,
                                particle: l
                            });
                        }
                        if ((h = a.length) > 0) {
                            var u = this.deathCallback, d = this.deathCallbackScope;
                            for(o = h - 1; o >= 0; o--){
                                var f = a[o];
                                n.splice(f.index, 1), r.push(f.particle), u && u.call(d, f.particle), f.particle.setPosition();
                            }
                        }
                        if (this.emitting || this.skipping) {
                            if (0 === this.frequency) this.emitParticle();
                            else if (this.frequency > 0) for(this.flowCounter -= e; this.flowCounter <= 0;)this.emitParticle(), this.flowCounter += this.frequency;
                            this.skipping || (this.duration > 0 && (this.elapsed += e, this.elapsed >= this.duration && this.stop()), this.stopAfter > 0 && this.stopCounter >= this.stopAfter && this.stop());
                        } else 1 === this.completeFlag && 0 === n.length && (this.completeFlag = 0, this.emit(c.COMPLETE, this));
                    },
                    overlap: function(t) {
                        for(var e = this.getWorldTransformMatrix(), i = this.alive, s = i.length, n = [], r = 0; r < s; r++){
                            var o = i[r];
                            E(t, o.getBounds(e)) && n.push(o);
                        }
                        return n;
                    },
                    getBounds: function(t, e, i, s) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 1e3 / 60), void 0 === s && (s = new S);
                        var n, r, a = this.getWorldTransformMatrix(), h = this.alive, l = !1;
                        if (s.setTo(0, 0, 0, 0), e > 0) {
                            var u = 0;
                            for(this.skipping = !0; u < Math.abs(e);){
                                for(this.preUpdate(0, i), n = 0; n < h.length; n++)r = h[n].getBounds(a), l ? T(s, r) : (l = !0, o(r, s));
                                u += i;
                            }
                            this.skipping = !1;
                        } else for(n = 0; n < h.length; n++)r = h[n].getBounds(a), l ? T(s, r) : (l = !0, o(r, s));
                        return t > 0 && y(s, t, t), s;
                    },
                    createEmitter: function() {
                        throw new Error("createEmitter removed. See ParticleEmitter docs for info");
                    },
                    particleX: {
                        get: function() {
                            return this.ops.x.current;
                        },
                        set: function(t) {
                            this.ops.x.onChange(t);
                        }
                    },
                    particleY: {
                        get: function() {
                            return this.ops.y.current;
                        },
                        set: function(t) {
                            this.ops.y.onChange(t);
                        }
                    },
                    accelerationX: {
                        get: function() {
                            return this.ops.accelerationX.current;
                        },
                        set: function(t) {
                            this.ops.accelerationX.onChange(t);
                        }
                    },
                    accelerationY: {
                        get: function() {
                            return this.ops.accelerationY.current;
                        },
                        set: function(t) {
                            this.ops.accelerationY.onChange(t);
                        }
                    },
                    maxVelocityX: {
                        get: function() {
                            return this.ops.maxVelocityX.current;
                        },
                        set: function(t) {
                            this.ops.maxVelocityX.onChange(t);
                        }
                    },
                    maxVelocityY: {
                        get: function() {
                            return this.ops.maxVelocityY.current;
                        },
                        set: function(t) {
                            this.ops.maxVelocityY.onChange(t);
                        }
                    },
                    speed: {
                        get: function() {
                            return this.ops.speedX.current;
                        },
                        set: function(t) {
                            this.ops.speedX.onChange(t), this.ops.speedY.onChange(t);
                        }
                    },
                    speedX: {
                        get: function() {
                            return this.ops.speedX.current;
                        },
                        set: function(t) {
                            this.ops.speedX.onChange(t);
                        }
                    },
                    speedY: {
                        get: function() {
                            return this.ops.speedY.current;
                        },
                        set: function(t) {
                            this.ops.speedY.onChange(t);
                        }
                    },
                    moveToX: {
                        get: function() {
                            return this.ops.moveToX.current;
                        },
                        set: function(t) {
                            this.ops.moveToX.onChange(t);
                        }
                    },
                    moveToY: {
                        get: function() {
                            return this.ops.moveToY.current;
                        },
                        set: function(t) {
                            this.ops.moveToY.onChange(t);
                        }
                    },
                    bounce: {
                        get: function() {
                            return this.ops.bounce.current;
                        },
                        set: function(t) {
                            this.ops.bounce.onChange(t);
                        }
                    },
                    particleScaleX: {
                        get: function() {
                            return this.ops.scaleX.current;
                        },
                        set: function(t) {
                            this.ops.scaleX.onChange(t);
                        }
                    },
                    particleScaleY: {
                        get: function() {
                            return this.ops.scaleY.current;
                        },
                        set: function(t) {
                            this.ops.scaleY.onChange(t);
                        }
                    },
                    particleColor: {
                        get: function() {
                            return this.ops.color.current;
                        },
                        set: function(t) {
                            this.ops.color.onChange(t);
                        }
                    },
                    colorEase: {
                        get: function() {
                            return this.ops.color.easeName;
                        },
                        set: function(t) {
                            this.ops.color.setEase(t);
                        }
                    },
                    particleTint: {
                        get: function() {
                            return this.ops.tint.current;
                        },
                        set: function(t) {
                            this.ops.tint.onChange(t);
                        }
                    },
                    particleAlpha: {
                        get: function() {
                            return this.ops.alpha.current;
                        },
                        set: function(t) {
                            this.ops.alpha.onChange(t);
                        }
                    },
                    lifespan: {
                        get: function() {
                            return this.ops.lifespan.current;
                        },
                        set: function(t) {
                            this.ops.lifespan.onChange(t);
                        }
                    },
                    particleAngle: {
                        get: function() {
                            return this.ops.angle.current;
                        },
                        set: function(t) {
                            this.ops.angle.onChange(t);
                        }
                    },
                    particleRotate: {
                        get: function() {
                            return this.ops.rotate.current;
                        },
                        set: function(t) {
                            this.ops.rotate.onChange(t);
                        }
                    },
                    quantity: {
                        get: function() {
                            return this.ops.quantity.current;
                        },
                        set: function(t) {
                            this.ops.quantity.onChange(t);
                        }
                    },
                    delay: {
                        get: function() {
                            return this.ops.delay.current;
                        },
                        set: function(t) {
                            this.ops.delay.onChange(t);
                        }
                    },
                    hold: {
                        get: function() {
                            return this.ops.hold.current;
                        },
                        set: function(t) {
                            this.ops.hold.onChange(t);
                        }
                    },
                    flowCounter: {
                        get: function() {
                            return this.counters[0];
                        },
                        set: function(t) {
                            this.counters[0] = t;
                        }
                    },
                    frameCounter: {
                        get: function() {
                            return this.counters[1];
                        },
                        set: function(t) {
                            this.counters[1] = t;
                        }
                    },
                    animCounter: {
                        get: function() {
                            return this.counters[2];
                        },
                        set: function(t) {
                            this.counters[2] = t;
                        }
                    },
                    elapsed: {
                        get: function() {
                            return this.counters[3];
                        },
                        set: function(t) {
                            this.counters[3] = t;
                        }
                    },
                    stopCounter: {
                        get: function() {
                            return this.counters[4];
                        },
                        set: function(t) {
                            this.counters[4] = t;
                        }
                    },
                    completeFlag: {
                        get: function() {
                            return this.counters[5];
                        },
                        set: function(t) {
                            this.counters[5] = t;
                        }
                    },
                    zoneIndex: {
                        get: function() {
                            return this.counters[6];
                        },
                        set: function(t) {
                            this.counters[6] = t;
                        }
                    },
                    zoneTotal: {
                        get: function() {
                            return this.counters[7];
                        },
                        set: function(t) {
                            this.counters[7] = t;
                        }
                    },
                    currentFrame: {
                        get: function() {
                            return this.counters[8];
                        },
                        set: function(t) {
                            this.counters[8] = t;
                        }
                    },
                    currentAnim: {
                        get: function() {
                            return this.counters[9];
                        },
                        set: function(t) {
                            this.counters[9] = t;
                        }
                    },
                    preDestroy: function() {
                        var t;
                        this.texture = null, this.frames = null, this.anims = null, this.emitCallback = null, this.emitCallbackScope = null, this.deathCallback = null, this.deathCallbackScope = null, this.emitZones = null, this.deathZones = null, this.bounds = null, this.follow = null, this.counters = null;
                        var e = this.ops;
                        for(t = 0; t < F.length; t++)e[F[t]].destroy();
                        for(t = 0; t < this.alive.length; t++)this.alive[t].destroy();
                        for(t = 0; t < this.dead.length; t++)this.dead[t].destroy();
                        this.ops = null, this.alive = [], this.dead = [], this.worldMatrix.destroy();
                    }
                });
                t.exports = D;
            },
            10456: (t, e, i)=>{
                var s = i(90205), n = i(69360), r = new n, o = new n, a = new n, h = new n;
                t.exports = function(t, e, i, n) {
                    var l = r, u = o, c = a, d = h;
                    n ? (d.loadIdentity(), d.multiply(n), d.translate(e.x, e.y), d.rotate(e.rotation), d.scale(e.scaleX, e.scaleY)) : d.applyITRS(e.x, e.y, e.rotation, e.scaleX, e.scaleY);
                    var f = t.currentContext, p = i.roundPixels, v = i.alpha, g = e.alpha, m = e.alive, y = m.length, x = e.viewBounds;
                    if (e.visible && 0 !== y && (!x || s(x, i.worldView))) {
                        e.sortCallback && e.depthSort(), i.addToRenderList(e);
                        var T = e.scrollFactorX, w = e.scrollFactorY;
                        f.save(), f.globalCompositeOperation = t.blendModes[e.blendMode];
                        for(var b = 0; b < y; b++){
                            var S = m[b], E = S.alpha * g * v;
                            if (!(E <= 0 || 0 === S.scaleX || 0 === S.scaleY)) {
                                c.applyITRS(S.x, S.y, S.rotation, S.scaleX, S.scaleY), l.copyFrom(i.matrix), l.multiplyWithOffset(d, -i.scrollX * T, -i.scrollY * w), c.e = S.x, c.f = S.y, l.multiply(c, u);
                                var A = S.frame, C = A.canvasData;
                                if (C.width > 0 && C.height > 0) {
                                    var _ = -A.halfWidth, M = -A.halfHeight;
                                    f.globalAlpha = E, f.save(), u.setToContext(f), p && (_ = Math.round(_), M = Math.round(M)), f.imageSmoothingEnabled = !A.source.scaleMode, f.drawImage(A.source.image, C.x, C.y, C.width, C.height, _, M, C.width, C.height), f.restore();
                                }
                            }
                        }
                        f.restore();
                    }
                };
            },
            765: (t, e, i)=>{
                var s = i(88933), n = i(99325), r = i(20494), o = i(72632), a = i(9216);
                n.register("particles", function(t, e) {
                    void 0 === t && (t = {});
                    var i = r(t, "key", null), n = o(t, "config", null), h = new a(this.scene, 0, 0, i);
                    return void 0 !== e && (t.add = e), s(this.scene, h, t), n && h.setConfig(n), h;
                });
            },
            81212: (t, e, i)=>{
                var s = i(61286), n = i(9216);
                s.register("particles", function(t, e, i, s) {
                    return void 0 !== t && "string" == typeof t && console.warn("ParticleEmitterManager was removed in Phaser 3.60. See documentation for details"), this.displayList.add(new n(this.scene, t, e, i, s));
                });
            },
            69116: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(10275), r = i(10456), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            10275: (t, e, i)=>{
                var s = i(90205), n = i(69360), r = i(75512), o = new n, a = new n, h = new n, l = new n;
                t.exports = function(t, e, i, n) {
                    var u = t.pipelines.set(e.pipeline), c = o, d = a, f = h, p = l;
                    n ? (p.loadIdentity(), p.multiply(n), p.translate(e.x, e.y), p.rotate(e.rotation), p.scale(e.scaleX, e.scaleY)) : p.applyITRS(e.x, e.y, e.rotation, e.scaleX, e.scaleY);
                    var v = i.roundPixels, g = r.getTintAppendFloatAlpha, m = i.alpha, y = e.alpha, x = e.frame.glTexture;
                    t.pipelines.preBatch(e);
                    var T = e.alive, w = T.length, b = e.viewBounds;
                    if (0 !== w && (!b || s(b, i.worldView))) {
                        e.sortCallback && e.depthSort();
                        var S = u.setGameObject(e, e.frame);
                        i.addToRenderList(e), c.copyFrom(i.matrix), c.multiplyWithOffset(p, -i.scrollX * e.scrollFactorX, -i.scrollY * e.scrollFactorY), t.setBlendMode(e.blendMode), e.mask && (e.mask.preRenderWebGL(t, e, i), t.pipelines.set(e.pipeline));
                        for(var E = e.tintFill, A = 0; A < w; A++){
                            var C = T[A], _ = C.alpha * y * m;
                            if (!(_ <= 0 || 0 === C.scaleX || 0 === C.scaleY)) {
                                f.applyITRS(C.x, C.y, C.rotation, C.scaleX, C.scaleY), f.e = C.x, f.f = C.y, c.multiply(f, d);
                                var M = C.frame, P = -M.halfWidth, R = -M.halfHeight, O = d.setQuad(P, R, P + M.width, R + M.height, v), L = g(C.tint, _);
                                u.shouldFlush(6) && (u.flush(), S = u.setGameObject(e, e.frame)), u.batchQuad(e, O[0], O[1], O[2], O[3], O[4], O[5], O[6], O[7], M.u0, M.v0, M.u1, M.v1, L, L, L, L, E, x, S);
                            }
                        }
                        e.mask && e.mask.postRenderWebGL(t, i), t.pipelines.postBatch(e);
                    }
                };
            },
            30891: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t, e, i) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = !0), this.emitter, this.x = t, this.y = e, this.active = i;
                    },
                    update: function() {},
                    destroy: function() {
                        this.emitter = null;
                    }
                });
                t.exports = s;
            },
            76100: (t)=>{
                t.exports = "complete";
            },
            26677: (t)=>{
                t.exports = "deathzone";
            },
            62736: (t)=>{
                t.exports = "explode";
            },
            56490: (t)=>{
                t.exports = "start";
            },
            85715: (t)=>{
                t.exports = "stop";
            },
            40629: (t, e, i)=>{
                t.exports = {
                    COMPLETE: i(76100),
                    DEATH_ZONE: i(26677),
                    EXPLODE: i(62736),
                    START: i(56490),
                    STOP: i(85715)
                };
            },
            27684: (t, e, i)=>{
                t.exports = {
                    EmitterColorOp: i(19737),
                    EmitterOp: i(93025),
                    Events: i(40629),
                    GravityWell: i(87811),
                    Particle: i(14909),
                    ParticleBounds: i(73106),
                    ParticleEmitter: i(9216),
                    ParticleProcessor: i(30891),
                    Zones: i(25962)
                };
            },
            69361: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t, e) {
                        this.source = t, this.killOnEnter = e;
                    },
                    willKill: function(t) {
                        var e = t.worldPosition, i = this.source.contains(e.x, e.y);
                        return i && this.killOnEnter || !i && !this.killOnEnter;
                    }
                });
                t.exports = s;
            },
            54213: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t, e, i, s, n, r) {
                        void 0 === s && (s = !1), void 0 === n && (n = !0), void 0 === r && (r = -1), this.source = t, this.points = [], this.quantity = e, this.stepRate = i, this.yoyo = s, this.counter = -1, this.seamless = n, this._length = 0, this._direction = 0, this.total = r, this.updateSource();
                    },
                    updateSource: function() {
                        if (this.points = this.source.getPoints(this.quantity, this.stepRate), this.seamless) {
                            var t = this.points[0], e = this.points[this.points.length - 1];
                            t.x === e.x && t.y === e.y && this.points.pop();
                        }
                        var i = this._length;
                        return this._length = this.points.length, this._length < i && this.counter > this._length && (this.counter = this._length - 1), this;
                    },
                    changeSource: function(t) {
                        return this.source = t, this.updateSource();
                    },
                    getPoint: function(t) {
                        0 === this._direction ? (this.counter++, this.counter >= this._length && (this.yoyo ? (this._direction = 1, this.counter = this._length - 1) : this.counter = 0)) : (this.counter--, -1 === this.counter && (this.yoyo ? (this._direction = 0, this.counter = 0) : this.counter = this._length - 1));
                        var e = this.points[this.counter];
                        e && (t.x = e.x, t.y = e.y);
                    }
                });
                t.exports = s;
            },
            68433: (t, e, i)=>{
                var s = i(56694), n = i(93736), r = new s({
                    initialize: function(t) {
                        this.source = t, this._tempVec = new n, this.total = -1;
                    },
                    getPoint: function(t) {
                        var e = this._tempVec;
                        this.source.getRandomPoint(e), t.x = e.x, t.y = e.y;
                    }
                });
                t.exports = r;
            },
            25962: (t, e, i)=>{
                t.exports = {
                    DeathZone: i(69361),
                    EdgeZone: i(54213),
                    RandomZone: i(68433)
                };
            },
            29598: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(13747), o = new s({
                    Extends: r,
                    Mixins: [
                        n.PathFollower
                    ],
                    initialize: function(t, e, i, s, n, o) {
                        r.call(this, t, i, s, n, o), this.path = e;
                    },
                    preUpdate: function(t, e) {
                        this.anims.update(t, e), this.pathUpdate(t);
                    }
                });
                t.exports = o;
            },
            19626: (t, e, i)=>{
                var s = i(61286), n = i(29598);
                s.register("follower", function(t, e, i, s, r) {
                    var o = new n(this.scene, t, e, i, s, r);
                    return this.displayList.add(o), this.updateList.add(o), o;
                });
            },
            33412: (t, e, i)=>{
                var s = i(16569), n = i(56694), r = i(99425), o = i(15978), a = i(83321), h = i(76583), l = new n({
                    Extends: a,
                    initialize: function(t, e, i, n, r, o, h, l) {
                        n || (n = "__DEFAULT"), a.call(this, t, e, i, n, r), this.type = "Plane", this.anims = new s(this), this.gridWidth, this.gridHeight, this.isTiled, this._checkerboard = null, this.hideCCW = !1, this.setGridSize(o, h, l), this.setSizeToFrame(!1), this.setViewHeight();
                    },
                    setGridSize: function(t, e, i) {
                        void 0 === t && (t = 8), void 0 === e && (e = 8), void 0 === i && (i = !1);
                        var s = !1;
                        return i && (s = !0), this.gridWidth = t, this.gridHeight = e, this.isTiled = i, this.clear(), r({
                            mesh: this,
                            widthSegments: t,
                            heightSegments: e,
                            isOrtho: !1,
                            tile: i,
                            flipY: s
                        }), this;
                    },
                    setSizeToFrame: function(t) {
                        void 0 === t && (t = !0);
                        var e = this.frame;
                        if (this.setPerspective(this.width / e.width, this.height / e.height), this._checkerboard && this._checkerboard !== this.texture && this.removeCheckerboard(), !t) return this;
                        var i, s, n = this.gridWidth, r = this.gridHeight, o = this.vertices, a = e.u0, h = e.u1, l = e.v0, u = e.v1, c = 0;
                        if (this.isTiled) for(l = e.v1, u = e.v0, s = 0; s < r; s++)for(i = 0; i < n; i++)o[c++].setUVs(a, u), o[c++].setUVs(a, l), o[c++].setUVs(h, u), o[c++].setUVs(a, l), o[c++].setUVs(h, l), o[c++].setUVs(h, u);
                        else {
                            var d = n + 1, f = r + 1, p = h - a, v = u - l, g = [];
                            for(s = 0; s < f; s++)for(i = 0; i < d; i++){
                                var m = a + p * (i / n), y = l + v * (s / r);
                                g.push(m, y);
                            }
                            for(s = 0; s < r; s++)for(i = 0; i < n; i++){
                                var x = 2 * (i + d * s), T = 2 * (i + d * (s + 1)), w = 2 * (i + 1 + d * (s + 1)), b = 2 * (i + 1 + d * s);
                                o[c++].setUVs(g[x], g[x + 1]), o[c++].setUVs(g[T], g[T + 1]), o[c++].setUVs(g[b], g[b + 1]), o[c++].setUVs(g[T], g[T + 1]), o[c++].setUVs(g[w], g[w + 1]), o[c++].setUVs(g[b], g[b + 1]);
                            }
                        }
                        return this;
                    },
                    setViewHeight: function(t) {
                        void 0 === t && (t = this.frame.height);
                        var e = this.fov * (Math.PI / 180);
                        this.viewPosition.z = this.height / t / Math.tan(e / 2), this.dirtyCache[10] = 1;
                    },
                    createCheckerboard: function(t, e, i, s, n) {
                        void 0 === t && (t = 16777215), void 0 === e && (e = 255), void 0 === i && (i = 255), void 0 === s && (s = 255), void 0 === n && (n = 128);
                        var r = this.scene.sys.renderer.gl, a = r.createTexture();
                        r.activeTexture(r.TEXTURE0), r.bindTexture(r.TEXTURE_2D, a), r.texParameteri(r.TEXTURE_2D, r.TEXTURE_MIN_FILTER, r.NEAREST), r.texParameteri(r.TEXTURE_2D, r.TEXTURE_MAG_FILTER, r.NEAREST);
                        for(var l = o(t), u = o(e), c = [], d = 0; d < 16; d++)for(var f = 0; f < 16; f++)d < 8 && f < 8 || d > 7 && f > 7 ? c.push(l.r, l.g, l.b, i) : c.push(u.r, u.g, u.b, s);
                        r.texImage2D(r.TEXTURE_2D, 0, r.RGBA, 16, 16, 0, r.RGBA, r.UNSIGNED_BYTE, new Uint8Array(c)), a.isAlphaPremultiplied = !0, a.isRenderTexture = !1, a.width = 16, a.height = 16;
                        var p = this.scene.sys.textures.addGLTexture(h(), a, 16, 16);
                        return this.removeCheckerboard(), this._checkerboard = p, r.bindTexture(r.TEXTURE_2D, null), this.setTexture(p), this.setSizeToFrame(), this.setViewHeight(n), this;
                    },
                    removeCheckerboard: function() {
                        this._checkerboard && (this._checkerboard.destroy(), this._checkerboard = null);
                    },
                    play: function(t, e) {
                        return this.anims.play(t, e);
                    },
                    playReverse: function(t, e) {
                        return this.anims.playReverse(t, e);
                    },
                    playAfterDelay: function(t, e) {
                        return this.anims.playAfterDelay(t, e);
                    },
                    playAfterRepeat: function(t, e) {
                        return this.anims.playAfterRepeat(t, e);
                    },
                    stop: function() {
                        return this.anims.stop();
                    },
                    stopAfterDelay: function(t) {
                        return this.anims.stopAfterDelay(t);
                    },
                    stopAfterRepeat: function(t) {
                        return this.anims.stopAfterRepeat(t);
                    },
                    stopOnFrame: function(t) {
                        return this.anims.stopOnFrame(t);
                    },
                    preUpdate: function(t, e) {
                        a.prototype.preUpdate.call(this, t, e), this.anims.update(t, e);
                    },
                    preDestroy: function() {
                        this.clear(), this.removeCheckerboard(), this.anims.destroy(), this.anims = void 0, this.debugCallback = null, this.debugGraphic = null;
                    }
                });
                t.exports = l;
            },
            10912: (t, e, i)=>{
                var s = i(88933), n = i(32291), r = i(99325), o = i(20494), a = i(10850), h = i(33412);
                r.register("plane", function(t, e) {
                    void 0 === t && (t = {});
                    var i = o(t, "key", null), r = o(t, "frame", null), l = a(t, "width", 8), u = a(t, "height", 8), c = a(t, "tile", !1), d = new h(this.scene, 0, 0, i, r, l, u, c);
                    void 0 !== e && (t.add = e);
                    var f = a(t, "checkerboard", null);
                    if (f) {
                        var p = a(f, "color1", 16777215), v = a(f, "color2", 255), g = a(f, "alpha1", 255), m = a(f, "alpha2", 255), y = a(f, "height", 128);
                        d.createCheckerboard(p, v, g, m, y);
                    }
                    return s(this.scene, d, t), n(d, t), d;
                });
            },
            58322: (t, e, i)=>{
                var s = i(33412);
                i(61286).register("plane", function(t, e, i, n, r, o, a) {
                    return this.displayList.add(new s(this.scene, t, e, i, n, r, o, a));
                });
            },
            13171: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(89980), o = i(74853), a = i(65641), h = i(71606), l = new s({
                    Extends: r,
                    Mixins: [
                        n.AlphaSingle,
                        n.BlendMode,
                        n.Depth,
                        n.Mask,
                        n.Pipeline,
                        n.PostPipeline,
                        n.ScrollFactor,
                        n.Transform,
                        n.Visible,
                        h
                    ],
                    initialize: function(t, e, i, s, n, h, l) {
                        void 0 === s && (s = 16777215), void 0 === n && (n = 128), void 0 === h && (h = 1), void 0 === l && (l = .1), r.call(this, t, "PointLight"), this.initPipeline(a.POINTLIGHT_PIPELINE), this.initPostPipeline(), this.setPosition(e, i), this.color = o(s), this.intensity = h, this.attenuation = l, this.width = 2 * n, this.height = 2 * n, this._radius = n;
                    },
                    radius: {
                        get: function() {
                            return this._radius;
                        },
                        set: function(t) {
                            this._radius = t, this.width = 2 * t, this.height = 2 * t;
                        }
                    },
                    originX: {
                        get: function() {
                            return .5;
                        }
                    },
                    originY: {
                        get: function() {
                            return .5;
                        }
                    },
                    displayOriginX: {
                        get: function() {
                            return this._radius;
                        }
                    },
                    displayOriginY: {
                        get: function() {
                            return this._radius;
                        }
                    }
                });
                t.exports = l;
            },
            162: (t, e, i)=>{
                var s = i(88933), n = i(99325), r = i(20494), o = i(13171);
                n.register("pointlight", function(t, e) {
                    void 0 === t && (t = {});
                    var i = r(t, "color", 16777215), n = r(t, "radius", 128), a = r(t, "intensity", 1), h = r(t, "attenuation", .1), l = new o(this.scene, 0, 0, i, n, a, h);
                    return void 0 !== e && (t.add = e), s(this.scene, l, t), l;
                });
            },
            91201: (t, e, i)=>{
                var s = i(61286), n = i(13171);
                s.register("pointlight", function(t, e, i, s, r, o) {
                    return this.displayList.add(new n(this.scene, t, e, i, s, r, o));
                });
            },
            71606: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(80590), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            80590: (t, e, i)=>{
                var s = i(73329);
                t.exports = function(t, e, i, n) {
                    i.addToRenderList(e);
                    var r = t.pipelines.set(e.pipeline), o = s(e, i, n).calc, a = e.width, h = e.height, l = -e._radius, u = -e._radius, c = l + a, d = u + h, f = o.getX(0, 0), p = o.getY(0, 0), v = o.getX(l, u), g = o.getY(l, u), m = o.getX(l, d), y = o.getY(l, d), x = o.getX(c, d), T = o.getY(c, d), w = o.getX(c, u), b = o.getY(c, u);
                    t.pipelines.preBatch(e), r.batchPointLight(e, i, v, g, m, y, x, T, w, b, f, p), t.pipelines.postBatch(e);
                };
            },
            15996: (t, e, i)=>{
                var s = i(56694), n = i(845), r = i(1539), o = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, o) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 32), void 0 === o && (o = 32);
                        var a = new n(t.sys.textures, "", s, o);
                        r.call(this, t, e, i, a), this.type = "RenderTexture", this.camera = this.texture.camera, this._saved = !1;
                    },
                    setSize: function(t, e) {
                        this.width = t, this.height = e, this.texture.setSize(t, e), this.updateDisplayOrigin();
                        var i = this.input;
                        return i && !i.customHitArea && (i.hitArea.width = t, i.hitArea.height = e), this;
                    },
                    resize: function(t, e) {
                        return this.setSize(t, e), this;
                    },
                    saveTexture: function(t) {
                        var e = this.texture;
                        return e.key = t, e.manager.addDynamicTexture(e) && (this._saved = !0), e;
                    },
                    fill: function(t, e, i, s, n, r) {
                        return this.texture.fill(t, e, i, s, n, r), this;
                    },
                    clear: function() {
                        return this.texture.clear(), this;
                    },
                    stamp: function(t, e, i, s, n) {
                        return this.texture.stamp(t, e, i, s, n), this;
                    },
                    erase: function(t, e, i) {
                        return this.texture.erase(t, e, i), this;
                    },
                    draw: function(t, e, i, s, n) {
                        return this.texture.draw(t, e, i, s, n), this;
                    },
                    drawFrame: function(t, e, i, s, n, r) {
                        return this.texture.drawFrame(t, e, i, s, n, r), this;
                    },
                    repeat: function(t, e, i, s, n, r, o, a, h) {
                        return this.texture.repeat(t, e, i, s, n, r, o, a, h), this;
                    },
                    beginDraw: function() {
                        return this.texture.beginDraw(), this;
                    },
                    batchDraw: function(t, e, i, s, n) {
                        return this.texture.batchDraw(t, e, i, s, n), this;
                    },
                    batchDrawFrame: function(t, e, i, s, n, r) {
                        return this.texture.batchDrawFrame(t, e, i, s, n, r), this;
                    },
                    endDraw: function(t) {
                        return this.texture.endDraw(t), this;
                    },
                    snapshotArea: function(t, e, i, s, n, r, o) {
                        return this.texture.snapshotArea(t, e, i, s, n, r, o), this;
                    },
                    snapshot: function(t, e, i) {
                        return this.snapshotArea(0, 0, this.width, this.height, t, e, i);
                    },
                    snapshotPixel: function(t, e, i) {
                        return this.snapshotArea(t, e, 1, 1, i, "pixel");
                    },
                    preDestroy: function() {
                        this._saved || this.texture.destroy();
                    }
                });
                t.exports = o;
            },
            85692: (t, e, i)=>{
                var s = i(88933), n = i(99325), r = i(20494), o = i(15996);
                n.register("renderTexture", function(t, e) {
                    void 0 === t && (t = {});
                    var i = r(t, "x", 0), n = r(t, "y", 0), a = r(t, "width", 32), h = r(t, "height", 32), l = new o(this.scene, i, n, a, h);
                    return void 0 !== e && (t.add = e), s(this.scene, l, t), l;
                });
            },
            29599: (t, e, i)=>{
                var s = i(61286), n = i(15996);
                s.register("renderTexture", function(t, e, i, s) {
                    return this.displayList.add(new n(this.scene, t, e, i, s));
                });
            },
            79968: (t, e, i)=>{
                var s = i(16569), n = i(56694), r = i(64937), o = i(89980), a = i(65641), h = i(58912), l = i(93736), u = new n({
                    Extends: o,
                    Mixins: [
                        r.AlphaSingle,
                        r.BlendMode,
                        r.Depth,
                        r.Flip,
                        r.Mask,
                        r.Pipeline,
                        r.PostPipeline,
                        r.Size,
                        r.Texture,
                        r.Transform,
                        r.Visible,
                        r.ScrollFactor,
                        h
                    ],
                    initialize: function(t, e, i, n, r, h, u, c, d) {
                        void 0 === n && (n = "__DEFAULT"), void 0 === h && (h = 2), void 0 === u && (u = !0), o.call(this, t, "Rope"), this.anims = new s(this), this.points = h, this.vertices, this.uv, this.colors, this.alphas, this.tintFill = "__DEFAULT" === n, this.dirty = !1, this.horizontal = u, this._flipX = !1, this._flipY = !1, this._perp = new l, this.debugCallback = null, this.debugGraphic = null, this.setTexture(n, r), this.setPosition(e, i), this.setSizeToFrame(), this.initPipeline(a.ROPE_PIPELINE), Array.isArray(h) && this.resizeArrays(h.length), this.setPoints(h, c, d), this.updateVertices();
                    },
                    addedToScene: function() {
                        this.scene.sys.updateList.add(this);
                    },
                    removedFromScene: function() {
                        this.scene.sys.updateList.remove(this);
                    },
                    preUpdate: function(t, e) {
                        var i = this.anims.currentFrame;
                        this.anims.update(t, e), this.anims.currentFrame !== i && (this.updateUVs(), this.updateVertices());
                    },
                    play: function(t, e, i) {
                        return this.anims.play(t, e, i), this;
                    },
                    setDirty: function() {
                        return this.dirty = !0, this;
                    },
                    setHorizontal: function(t, e, i) {
                        return void 0 === t && (t = this.points.length), this.horizontal ? this : (this.horizontal = !0, this.setPoints(t, e, i));
                    },
                    setVertical: function(t, e, i) {
                        return void 0 === t && (t = this.points.length), this.horizontal ? (this.horizontal = !1, this.setPoints(t, e, i)) : this;
                    },
                    setTintFill: function(t) {
                        return void 0 === t && (t = !1), this.tintFill = t, this;
                    },
                    setAlphas: function(t, e) {
                        var i = this.points.length;
                        if (i < 1) return this;
                        var s, n = this.alphas;
                        void 0 === t ? t = [
                            1
                        ] : Array.isArray(t) || void 0 !== e || (t = [
                            t
                        ]);
                        var r = 0;
                        if (void 0 !== e) for(s = 0; s < i; s++)n[r = 2 * s] = t, n[r + 1] = e;
                        else if (t.length === i) for(s = 0; s < i; s++)n[r = 2 * s] = t[s], n[r + 1] = t[s];
                        else {
                            var o = t[0];
                            for(s = 0; s < i; s++)r = 2 * s, t.length > r && (o = t[r]), n[r] = o, t.length > r + 1 && (o = t[r + 1]), n[r + 1] = o;
                        }
                        return this;
                    },
                    setColors: function(t) {
                        var e = this.points.length;
                        if (e < 1) return this;
                        var i, s = this.colors;
                        void 0 === t ? t = [
                            16777215
                        ] : Array.isArray(t) || (t = [
                            t
                        ]);
                        var n = 0;
                        if (t.length === e) for(i = 0; i < e; i++)s[n = 2 * i] = t[i], s[n + 1] = t[i];
                        else {
                            var r = t[0];
                            for(i = 0; i < e; i++)n = 2 * i, t.length > n && (r = t[n]), s[n] = r, t.length > n + 1 && (r = t[n + 1]), s[n + 1] = r;
                        }
                        return this;
                    },
                    setPoints: function(t, e, i) {
                        if (void 0 === t && (t = 2), "number" == typeof t) {
                            var s, n, r, o = t;
                            if (o < 2 && (o = 2), t = [], this.horizontal) for(r = -this.frame.halfWidth, n = this.frame.width / (o - 1), s = 0; s < o; s++)t.push({
                                x: r + s * n,
                                y: 0
                            });
                            else for(r = -this.frame.halfHeight, n = this.frame.height / (o - 1), s = 0; s < o; s++)t.push({
                                x: 0,
                                y: r + s * n
                            });
                        }
                        var a = t.length, h = this.points.length;
                        return a < 1 ? (console.warn("Rope: Not enough points given"), this) : (1 === a && (t.unshift({
                            x: 0,
                            y: 0
                        }), a++), h !== a && this.resizeArrays(a), this.dirty = !0, this.points = t, this.updateUVs(), null != e && this.setColors(e), null != i && this.setAlphas(i), this);
                    },
                    updateUVs: function() {
                        for(var t = this.uv, e = this.points.length, i = this.frame.u0, s = this.frame.v0, n = this.frame.u1, r = this.frame.v1, o = (n - i) / (e - 1), a = (r - s) / (e - 1), h = 0; h < e; h++){
                            var l, u, c, d, f = 4 * h;
                            this.horizontal ? (this._flipX ? (l = n - h * o, c = n - h * o) : (l = i + h * o, c = i + h * o), this._flipY ? (u = r, d = s) : (u = s, d = r)) : (this._flipX ? (l = i, c = n) : (l = n, c = i), this._flipY ? (u = r - h * a, d = r - h * a) : (u = s + h * a, d = s + h * a)), t[f + 0] = l, t[f + 1] = u, t[f + 2] = c, t[f + 3] = d;
                        }
                        return this;
                    },
                    resizeArrays: function(t) {
                        var e = this.colors, i = this.alphas;
                        this.vertices = new Float32Array(4 * t), this.uv = new Float32Array(4 * t), e = new Uint32Array(2 * t), i = new Float32Array(2 * t);
                        for(var s = 0; s < 2 * t; s++)e[s] = 16777215, i[s] = 1;
                        return this.colors = e, this.alphas = i, this.dirty = !0, this;
                    },
                    updateVertices: function() {
                        var t = this._perp, e = this.points, i = this.vertices, s = e.length;
                        if (this.dirty = !1, !(s < 1)) {
                            for(var n, r = e[0], o = this.horizontal ? this.frame.halfHeight : this.frame.halfWidth, a = 0; a < s; a++){
                                var h = e[a], l = 4 * a;
                                n = a < s - 1 ? e[a + 1] : h, t.x = n.y - r.y, t.y = -(n.x - r.x);
                                var u = t.length();
                                t.x /= u, t.y /= u, t.x *= o, t.y *= o, i[l] = h.x + t.x, i[l + 1] = h.y + t.y, i[l + 2] = h.x - t.x, i[l + 3] = h.y - t.y, r = h;
                            }
                            return this;
                        }
                    },
                    setDebug: function(t, e) {
                        return this.debugGraphic = t, this.debugCallback = t || e ? e || this.renderDebugVerts : null, this;
                    },
                    renderDebugVerts: function(t, e, i) {
                        var s = t.debugGraphic, n = i[0], r = i[1], o = i[2], a = i[3];
                        s.lineBetween(n, r, o, a);
                        for(var h = 4; h < e; h += 4){
                            var l = i[h + 0], u = i[h + 1], c = i[h + 2], d = i[h + 3];
                            s.lineBetween(n, r, l, u), s.lineBetween(o, a, c, d), s.lineBetween(o, a, l, u), s.lineBetween(l, u, c, d), n = l, r = u, o = c, a = d;
                        }
                    },
                    preDestroy: function() {
                        this.anims.destroy(), this.anims = void 0, this.points = null, this.vertices = null, this.uv = null, this.colors = null, this.alphas = null, this.debugCallback = null, this.debugGraphic = null;
                    },
                    flipX: {
                        get: function() {
                            return this._flipX;
                        },
                        set: function(t) {
                            return this._flipX = t, this.updateUVs();
                        }
                    },
                    flipY: {
                        get: function() {
                            return this._flipY;
                        },
                        set: function(t) {
                            return this._flipY = t, this.updateUVs();
                        }
                    }
                });
                t.exports = u;
            },
            44598: (t)=>{
                t.exports = function() {};
            },
            96027: (t, e, i)=>{
                var s = i(88933), n = i(99325), r = i(20494), o = i(10850), a = i(79968);
                n.register("rope", function(t, e) {
                    void 0 === t && (t = {});
                    var i = r(t, "key", null), n = r(t, "frame", null), h = r(t, "horizontal", !0), l = o(t, "points", void 0), u = o(t, "colors", void 0), c = o(t, "alphas", void 0), d = new a(this.scene, 0, 0, i, n, l, h, u, c);
                    return void 0 !== e && (t.add = e), s(this.scene, d, t), d;
                });
            },
            31982: (t, e, i)=>{
                var s = i(79968);
                i(61286).register("rope", function(t, e, i, n, r, o, a, h) {
                    return this.displayList.add(new s(this.scene, t, e, i, n, r, o, a, h));
                });
            },
            58912: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(49489), r = i(44598), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            49489: (t, e, i)=>{
                var s = i(73329), n = i(75512);
                t.exports = function(t, e, i, r) {
                    i.addToRenderList(e);
                    var o = t.pipelines.set(e.pipeline, e), a = s(e, i, r).calc, h = e.vertices, l = e.uv, u = e.colors, c = e.alphas, d = e.alpha, f = n.getTintAppendFloatAlpha, p = i.roundPixels, v = h.length, g = Math.floor(.5 * v);
                    o.flush(), t.pipelines.preBatch(e);
                    var m = o.setGameObject(e), y = o.vertexViewF32, x = o.vertexViewU32, T = o.vertexCount * o.currentShader.vertexComponentCount - 1, w = 0, b = e.tintFill;
                    e.dirty && e.updateVertices();
                    for(var S = e.debugCallback, E = [], A = 0; A < v; A += 2){
                        var C = h[A + 0], _ = h[A + 1], M = C * a.a + _ * a.c + a.e, P = C * a.b + _ * a.d + a.f;
                        p && (M = Math.round(M), P = Math.round(P)), y[++T] = M, y[++T] = P, y[++T] = l[A + 0], y[++T] = l[A + 1], y[++T] = m, y[++T] = b, x[++T] = f(u[w], i.alpha * (c[w] * d)), w++, S && (E[A + 0] = M, E[A + 1] = P);
                    }
                    S && S.call(e, e, v, E), o.vertexCount += g, o.currentBatch.count = o.vertexCount - o.currentBatch.start, t.pipelines.postBatch(e);
                };
            },
            27902: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(89980), o = i(72632), a = i(98611), h = i(22440), l = i(24252), u = i(69360), c = new s({
                    Extends: r,
                    Mixins: [
                        n.ComputedSize,
                        n.Depth,
                        n.GetBounds,
                        n.Mask,
                        n.Origin,
                        n.ScrollFactor,
                        n.Transform,
                        n.Visible,
                        l
                    ],
                    initialize: function(t, e, i, s, n, o, a, h) {
                        void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === n && (n = 128), void 0 === o && (o = 128), r.call(this, t, "Shader"), this.blendMode = -1, this.shader;
                        var l = t.sys.renderer;
                        this.renderer = l, this.gl = l.gl, this.vertexData = new ArrayBuffer(2 * Float32Array.BYTES_PER_ELEMENT * 6), this.vertexBuffer = l.createVertexBuffer(this.vertexData.byteLength, this.gl.STREAM_DRAW), this.program = null, this.bytes = new Uint8Array(this.vertexData), this.vertexViewF32 = new Float32Array(this.vertexData), this._tempMatrix1 = new u, this._tempMatrix2 = new u, this._tempMatrix3 = new u, this.viewMatrix = new Float32Array([
                            1,
                            0,
                            0,
                            0,
                            0,
                            1,
                            0,
                            0,
                            0,
                            0,
                            1,
                            0,
                            0,
                            0,
                            0,
                            1
                        ]), this.projectionMatrix = new Float32Array([
                            1,
                            0,
                            0,
                            0,
                            0,
                            1,
                            0,
                            0,
                            0,
                            0,
                            1,
                            0,
                            0,
                            0,
                            0,
                            1
                        ]), this.uniforms = {}, this.pointer = null, this._rendererWidth = l.width, this._rendererHeight = l.height, this._textureCount = 0, this.framebuffer = null, this.glTexture = null, this.renderToTexture = !1, this.texture = null, this.setPosition(i, s), this.setSize(n, o), this.setOrigin(.5, .5), this.setShader(e, a, h);
                    },
                    willRender: function(t) {
                        return !!this.renderToTexture || !(r.RENDER_MASK !== this.renderFlags || 0 !== this.cameraFilter && this.cameraFilter & t.id);
                    },
                    setRenderToTexture: function(t, e) {
                        if (void 0 === e && (e = !1), !this.renderToTexture) {
                            var i = this.width, s = this.height, n = this.renderer;
                            this.glTexture = n.createTextureFromSource(null, i, s, 0), this.glTexture.flipY = e, this.framebuffer = n.createFramebuffer(i, s, this.glTexture, !1), this._rendererWidth = i, this._rendererHeight = s, this.renderToTexture = !0, this.projOrtho(0, this.width, this.height, 0), t && (this.texture = this.scene.sys.textures.addGLTexture(t, this.glTexture, i, s));
                        }
                        return this.shader && (n.pipelines.clear(), this.load(), this.flush(), n.pipelines.rebind()), this;
                    },
                    setShader: function(t, e, i) {
                        if (void 0 === e && (e = []), "string" == typeof t) {
                            var s = this.scene.sys.cache.shader;
                            if (!s.has(t)) return console.warn("Shader missing: " + t), this;
                            this.shader = s.get(t);
                        } else this.shader = t;
                        var n = this.gl, r = this.renderer;
                        this.program && n.deleteProgram(this.program);
                        var o = r.createProgram(this.shader.vertexSrc, this.shader.fragmentSrc);
                        n.uniformMatrix4fv(n.getUniformLocation(o, "uViewMatrix"), !1, this.viewMatrix), n.uniformMatrix4fv(n.getUniformLocation(o, "uProjectionMatrix"), !1, this.projectionMatrix), n.uniform2f(n.getUniformLocation(o, "uResolution"), this.width, this.height), this.program = o;
                        var h = new Date, l = {
                            resolution: {
                                type: "2f",
                                value: {
                                    x: this.width,
                                    y: this.height
                                }
                            },
                            time: {
                                type: "1f",
                                value: 0
                            },
                            mouse: {
                                type: "2f",
                                value: {
                                    x: this.width / 2,
                                    y: this.height / 2
                                }
                            },
                            date: {
                                type: "4fv",
                                value: [
                                    h.getFullYear(),
                                    h.getMonth(),
                                    h.getDate(),
                                    60 * h.getHours() * 60 + 60 * h.getMinutes() + h.getSeconds()
                                ]
                            },
                            sampleRate: {
                                type: "1f",
                                value: 44100
                            },
                            iChannel0: {
                                type: "sampler2D",
                                value: null,
                                textureData: {
                                    repeat: !0
                                }
                            },
                            iChannel1: {
                                type: "sampler2D",
                                value: null,
                                textureData: {
                                    repeat: !0
                                }
                            },
                            iChannel2: {
                                type: "sampler2D",
                                value: null,
                                textureData: {
                                    repeat: !0
                                }
                            },
                            iChannel3: {
                                type: "sampler2D",
                                value: null,
                                textureData: {
                                    repeat: !0
                                }
                            }
                        };
                        this.shader.uniforms ? this.uniforms = a(!0, {}, this.shader.uniforms, l) : this.uniforms = l;
                        for(var u = 0; u < 4; u++)e[u] && this.setSampler2D("iChannel" + u, e[u], u, i);
                        return this.initUniforms(), this.projOrtho(0, this._rendererWidth, this._rendererHeight, 0), this;
                    },
                    setPointer: function(t) {
                        return this.pointer = t, this;
                    },
                    projOrtho: function(t, e, i, s) {
                        var n = 1 / (t - e), r = 1 / (i - s), o = this.projectionMatrix;
                        o[0] = -2 * n, o[5] = -2 * r, o[10] = -0.001, o[12] = (t + e) * n, o[13] = (s + i) * r, o[14] = -0;
                        var a = this.program, h = this.gl;
                        this.renderer.setProgram(a), h.uniformMatrix4fv(h.getUniformLocation(a, "uProjectionMatrix"), !1, this.projectionMatrix), this._rendererWidth = e, this._rendererHeight = i;
                    },
                    initUniforms: function() {
                        var t = this.gl, e = this.renderer.glFuncMap, i = this.program;
                        for(var s in this._textureCount = 0, this.uniforms){
                            var n = this.uniforms[s], r = n.type, o = e[r];
                            n.uniformLocation = t.getUniformLocation(i, s), "sampler2D" !== r && (n.glMatrix = o.matrix, n.glValueLength = o.length, n.glFunc = o.func);
                        }
                    },
                    setSampler2DBuffer: function(t, e, i, s, n, r) {
                        void 0 === n && (n = 0), void 0 === r && (r = {});
                        var o = this.uniforms[t];
                        return o.value = e, r.width = i, r.height = s, o.textureData = r, this._textureCount = n, this.initSampler2D(o), this;
                    },
                    setSampler2D: function(t, e, i, s) {
                        void 0 === i && (i = 0);
                        var n = this.scene.sys.textures;
                        if (n.exists(e)) {
                            var r = n.getFrame(e);
                            if (r.glTexture && r.glTexture.isRenderTexture) return this.setSampler2DBuffer(t, r.glTexture, r.width, r.height, i, s);
                            var o = this.uniforms[t], a = r.source;
                            o.textureKey = e, o.source = a.image, o.value = r.glTexture, a.isGLTexture && (s || (s = {}), s.width = a.width, s.height = a.height), s && (o.textureData = s), this._textureCount = i, this.initSampler2D(o);
                        }
                        return this;
                    },
                    setUniform: function(t, e) {
                        return h(this.uniforms, t, e), this;
                    },
                    getUniform: function(t) {
                        return o(this.uniforms, t, null);
                    },
                    setChannel0: function(t, e) {
                        return this.setSampler2D("iChannel0", t, 0, e);
                    },
                    setChannel1: function(t, e) {
                        return this.setSampler2D("iChannel1", t, 1, e);
                    },
                    setChannel2: function(t, e) {
                        return this.setSampler2D("iChannel2", t, 2, e);
                    },
                    setChannel3: function(t, e) {
                        return this.setSampler2D("iChannel3", t, 3, e);
                    },
                    initSampler2D: function(t) {
                        if (t.value) {
                            var e = this.gl;
                            e.activeTexture(e.TEXTURE0 + this._textureCount), e.bindTexture(e.TEXTURE_2D, t.value);
                            var i = t.textureData;
                            if (i && !t.value.isRenderTexture) {
                                var s = e[o(i, "magFilter", "linear").toUpperCase()], n = e[o(i, "minFilter", "linear").toUpperCase()], r = e[o(i, "wrapS", "repeat").toUpperCase()], a = e[o(i, "wrapT", "repeat").toUpperCase()], h = e[o(i, "format", "rgba").toUpperCase()];
                                if (i.repeat && (r = e.REPEAT, a = e.REPEAT), e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL, !!i.flipY), i.width) {
                                    var l = o(i, "width", 512), u = o(i, "height", 2), c = o(i, "border", 0);
                                    e.texImage2D(e.TEXTURE_2D, 0, h, l, u, c, h, e.UNSIGNED_BYTE, null);
                                } else e.texImage2D(e.TEXTURE_2D, 0, h, e.RGBA, e.UNSIGNED_BYTE, t.source);
                                e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, s), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, n), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, r), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, a);
                            }
                            this.renderer.setProgram(this.program), e.uniform1i(t.uniformLocation, this._textureCount), this._textureCount++;
                        }
                    },
                    syncUniforms: function() {
                        var t, e, i, s, n, r = this.gl, o = this.uniforms, a = 0;
                        for(var h in o)i = (t = o[h]).glFunc, e = t.glValueLength, s = t.uniformLocation, null !== (n = t.value) && (1 === e ? t.glMatrix ? i.call(r, s, t.transpose, n) : i.call(r, s, n) : 2 === e ? i.call(r, s, n.x, n.y) : 3 === e ? i.call(r, s, n.x, n.y, n.z) : 4 === e ? i.call(r, s, n.x, n.y, n.z, n.w) : "sampler2D" === t.type && (r.activeTexture(r.TEXTURE0 + a), r.bindTexture(r.TEXTURE_2D, n), r.uniform1i(s, a), a++));
                    },
                    load: function(t) {
                        var e = this.gl, i = this.width, s = this.height, n = this.renderer, r = this.program, o = this.viewMatrix;
                        if (!this.renderToTexture) {
                            var a = -this._displayOriginX, h = -this._displayOriginY;
                            o[0] = t[0], o[1] = t[1], o[4] = t[2], o[5] = t[3], o[8] = t[4], o[9] = t[5], o[12] = o[0] * a + o[4] * h, o[13] = o[1] * a + o[5] * h;
                        }
                        e.useProgram(r), e.uniformMatrix4fv(e.getUniformLocation(r, "uViewMatrix"), !1, o), e.uniform2f(e.getUniformLocation(r, "uResolution"), this.width, this.height);
                        var l = this.uniforms, u = l.resolution;
                        u.value.x = i, u.value.y = s, l.time.value = n.game.loop.getDuration();
                        var c = this.pointer;
                        if (c) {
                            var d = l.mouse, f = c.x / i, p = 1 - c.y / s;
                            d.value.x = f.toFixed(2), d.value.y = p.toFixed(2);
                        }
                        this.syncUniforms();
                    },
                    flush: function() {
                        var t = this.width, e = this.height, i = this.program, s = this.gl, n = this.vertexBuffer, r = this.renderer, o = 2 * Float32Array.BYTES_PER_ELEMENT;
                        this.renderToTexture && (r.setFramebuffer(this.framebuffer), s.clearColor(0, 0, 0, 0), s.clear(s.COLOR_BUFFER_BIT)), s.bindBuffer(s.ARRAY_BUFFER, n);
                        var a = s.getAttribLocation(i, "inPosition");
                        -1 !== a && (s.enableVertexAttribArray(a), s.vertexAttribPointer(a, 2, s.FLOAT, !1, o, 0));
                        var h = this.vertexViewF32;
                        h[3] = e, h[4] = t, h[5] = e, h[8] = t, h[9] = e, h[10] = t;
                        s.bufferSubData(s.ARRAY_BUFFER, 0, this.bytes.subarray(0, 6 * o)), s.drawArrays(s.TRIANGLES, 0, 6), this.renderToTexture && r.setFramebuffer(null, !1);
                    },
                    setAlpha: function() {},
                    setBlendMode: function() {},
                    preDestroy: function() {
                        var t = this.gl;
                        t.deleteProgram(this.program), t.deleteBuffer(this.vertexBuffer), this.renderToTexture && (this.renderer.deleteFramebuffer(this.framebuffer), this.texture.destroy(), this.framebuffer = null, this.glTexture = null, this.texture = null);
                    }
                });
                t.exports = c;
            },
            10612: (t)=>{
                t.exports = function() {};
            },
            13908: (t, e, i)=>{
                var s = i(88933), n = i(99325), r = i(20494), o = i(27902);
                n.register("shader", function(t, e) {
                    void 0 === t && (t = {});
                    var i = r(t, "key", null), n = r(t, "x", 0), a = r(t, "y", 0), h = r(t, "width", 128), l = r(t, "height", 128), u = new o(this.scene, i, n, a, h, l);
                    return void 0 !== e && (t.add = e), s(this.scene, u, t), u;
                });
            },
            51979: (t, e, i)=>{
                var s = i(27902);
                i(61286).register("shader", function(t, e, i, n, r, o, a) {
                    return this.displayList.add(new s(this.scene, t, e, i, n, r, o, a));
                });
            },
            24252: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(19782), r = i(10612), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            19782: (t, e, i)=>{
                var s = i(73329);
                t.exports = function(t, e, i, n) {
                    if (e.shader) {
                        if (i.addToRenderList(e), t.pipelines.clear(), e.renderToTexture) e.load(), e.flush();
                        else {
                            var r = s(e, i, n).calc;
                            t.width === e._rendererWidth && t.height === e._rendererHeight || e.projOrtho(0, t.width, t.height, 0), e.load(r.matrix), e.flush();
                        }
                        t.pipelines.rebind();
                    }
                };
            },
            19543: (t, e, i)=>{
                var s = i(75512);
                t.exports = function(t, e, i, n, r, o) {
                    for(var a = s.getTintAppendFloatAlpha(i.fillColor, i.fillAlpha * n), h = i.pathData, l = i.pathIndexes, u = 0; u < l.length; u += 3){
                        var c = 2 * l[u], d = 2 * l[u + 1], f = 2 * l[u + 2], p = h[c + 0] - r, v = h[c + 1] - o, g = h[d + 0] - r, m = h[d + 1] - o, y = h[f + 0] - r, x = h[f + 1] - o, T = e.getX(p, v), w = e.getY(p, v), b = e.getX(g, m), S = e.getY(g, m), E = e.getX(y, x), A = e.getY(y, x);
                        t.batchTri(i, T, w, b, S, E, A, 0, 0, 1, 1, a, a, a, 2);
                    }
                };
            },
            15608: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n = i || e.fillColor, r = s || e.fillAlpha, o = (16711680 & n) >>> 16, a = (65280 & n) >>> 8, h = 255 & n;
                    t.fillStyle = "rgba(" + o + "," + a + "," + h + "," + r + ")";
                };
            },
            17876: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n = i || e.strokeColor, r = s || e.strokeAlpha, o = (16711680 & n) >>> 16, a = (65280 & n) >>> 8, h = 255 & n;
                    t.strokeStyle = "rgba(" + o + "," + a + "," + h + "," + r + ")", t.lineWidth = e.lineWidth;
                };
            },
            91461: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(89980), o = i(88829), a = new s({
                    Extends: r,
                    Mixins: [
                        n.AlphaSingle,
                        n.BlendMode,
                        n.Depth,
                        n.GetBounds,
                        n.Mask,
                        n.Origin,
                        n.Pipeline,
                        n.PostPipeline,
                        n.ScrollFactor,
                        n.Transform,
                        n.Visible
                    ],
                    initialize: function(t, e, i) {
                        void 0 === e && (e = "Shape"), r.call(this, t, e), this.geom = i, this.pathData = [], this.pathIndexes = [], this.fillColor = 16777215, this.fillAlpha = 1, this.strokeColor = 16777215, this.strokeAlpha = 1, this.lineWidth = 1, this.isFilled = !1, this.isStroked = !1, this.closePath = !0, this._tempLine = new o, this.width = 0, this.height = 0, this.initPipeline(), this.initPostPipeline();
                    },
                    setFillStyle: function(t, e) {
                        return void 0 === e && (e = 1), void 0 === t ? this.isFilled = !1 : (this.fillColor = t, this.fillAlpha = e, this.isFilled = !0), this;
                    },
                    setStrokeStyle: function(t, e, i) {
                        return void 0 === i && (i = 1), void 0 === t ? this.isStroked = !1 : (this.lineWidth = t, this.strokeColor = e, this.strokeAlpha = i, this.isStroked = !0), this;
                    },
                    setClosePath: function(t) {
                        return this.closePath = t, this;
                    },
                    setSize: function(t, e) {
                        return this.width = t, this.height = e, this;
                    },
                    setDisplaySize: function(t, e) {
                        return this.displayWidth = t, this.displayHeight = e, this;
                    },
                    preDestroy: function() {
                        this.geom = null, this._tempLine = null, this.pathData = [], this.pathIndexes = [];
                    },
                    displayWidth: {
                        get: function() {
                            return this.scaleX * this.width;
                        },
                        set: function(t) {
                            this.scaleX = t / this.width;
                        }
                    },
                    displayHeight: {
                        get: function() {
                            return this.scaleY * this.height;
                        },
                        set: function(t) {
                            this.scaleY = t / this.height;
                        }
                    }
                });
                t.exports = a;
            },
            50262: (t, e, i)=>{
                var s = i(75512);
                t.exports = function(t, e, i, n, r) {
                    var o = t.strokeTint, a = s.getTintAppendFloatAlpha(e.strokeColor, e.strokeAlpha * i);
                    o.TL = a, o.TR = a, o.BL = a, o.BR = a;
                    var h = e.pathData, l = h.length - 1, u = e.lineWidth, c = u / 2, d = h[0] - n, f = h[1] - r;
                    e.closePath || (l -= 2);
                    for(var p = 2; p < l; p += 2){
                        var v = h[p] - n, g = h[p + 1] - r;
                        t.batchLine(d, f, v, g, c, c, u, p - 2, !!e.closePath && p === l - 1), d = v, f = g;
                    }
                };
            },
            28593: (t, e, i)=>{
                var s = i(2213), n = i(56694), r = i(75606), o = i(11117), a = i(26673), h = i(83392), l = i(91461), u = new n({
                    Extends: l,
                    Mixins: [
                        s
                    ],
                    initialize: function(t, e, i, s, n, r, o, h, u) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 128), void 0 === n && (n = 0), void 0 === r && (r = 360), void 0 === o && (o = !1), l.call(this, t, "Arc", new a(0, 0, s)), this._startAngle = n, this._endAngle = r, this._anticlockwise = o, this._iterations = .01, this.setPosition(e, i);
                        var c = 2 * this.geom.radius;
                        this.setSize(c, c), void 0 !== h && this.setFillStyle(h, u), this.updateDisplayOrigin(), this.updateData();
                    },
                    iterations: {
                        get: function() {
                            return this._iterations;
                        },
                        set: function(t) {
                            this._iterations = t, this.updateData();
                        }
                    },
                    radius: {
                        get: function() {
                            return this.geom.radius;
                        },
                        set: function(t) {
                            this.geom.radius = t;
                            var e = 2 * t;
                            this.setSize(e, e), this.updateDisplayOrigin(), this.updateData();
                        }
                    },
                    startAngle: {
                        get: function() {
                            return this._startAngle;
                        },
                        set: function(t) {
                            this._startAngle = t, this.updateData();
                        }
                    },
                    endAngle: {
                        get: function() {
                            return this._endAngle;
                        },
                        set: function(t) {
                            this._endAngle = t, this.updateData();
                        }
                    },
                    anticlockwise: {
                        get: function() {
                            return this._anticlockwise;
                        },
                        set: function(t) {
                            this._anticlockwise = t, this.updateData();
                        }
                    },
                    setRadius: function(t) {
                        return this.radius = t, this;
                    },
                    setIterations: function(t) {
                        return void 0 === t && (t = .01), this.iterations = t, this;
                    },
                    setStartAngle: function(t, e) {
                        return this._startAngle = t, void 0 !== e && (this._anticlockwise = e), this.updateData();
                    },
                    setEndAngle: function(t, e) {
                        return this._endAngle = t, void 0 !== e && (this._anticlockwise = e), this.updateData();
                    },
                    updateData: function() {
                        var t = this._iterations, e = t, i = this.geom.radius, s = r(this._startAngle), n = r(this._endAngle), a = i, l = i;
                        n -= s, this._anticlockwise ? n < -h.PI2 ? n = -h.PI2 : n > 0 && (n = -h.PI2 + n % h.PI2) : n > h.PI2 ? n = h.PI2 : n < 0 && (n = h.PI2 + n % h.PI2);
                        for(var u, c = [
                            a + Math.cos(s) * i,
                            l + Math.sin(s) * i
                        ]; e < 1;)u = n * e + s, c.push(a + Math.cos(u) * i, l + Math.sin(u) * i), e += t;
                        return u = n + s, c.push(a + Math.cos(u) * i, l + Math.sin(u) * i), c.push(a + Math.cos(s) * i, l + Math.sin(s) * i), this.pathIndexes = o(c), this.pathData = c, this;
                    }
                });
                t.exports = u;
            },
            23560: (t, e, i)=>{
                var s = i(75606), n = i(15608), r = i(17876), o = i(49584);
                t.exports = function(t, e, i, a) {
                    i.addToRenderList(e);
                    var h = t.currentContext;
                    if (o(t, h, e, i, a)) {
                        var l = e.radius;
                        h.beginPath(), h.arc(l - e.originX * (2 * l), l - e.originY * (2 * l), l, s(e._startAngle), s(e._endAngle), e.anticlockwise), e.closePath && h.closePath(), e.isFilled && (n(h, e), h.fill()), e.isStroked && (r(h, e), h.stroke()), h.restore();
                    }
                };
            },
            10369: (t, e, i)=>{
                var s = i(28593), n = i(61286);
                n.register("arc", function(t, e, i, n, r, o, a, h) {
                    return this.displayList.add(new s(this.scene, t, e, i, n, r, o, a, h));
                }), n.register("circle", function(t, e, i, n, r) {
                    return this.displayList.add(new s(this.scene, t, e, i, 0, 360, !1, n, r));
                });
            },
            2213: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(58356), r = i(23560), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            58356: (t, e, i)=>{
                var s = i(73329), n = i(19543), r = i(50262);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.pipelines.set(e.pipeline), h = s(e, i, o), l = a.calcMatrix.copyFrom(h.calc), u = e._displayOriginX, c = e._displayOriginY, d = i.alpha * e.alpha;
                    t.pipelines.preBatch(e), e.isFilled && n(a, l, e, d, u, c), e.isStroked && r(a, e, d, u, c), t.pipelines.postBatch(e);
                };
            },
            15220: (t, e, i)=>{
                var s = i(56694), n = i(87203), r = i(11117), o = i(74118), a = i(91461), h = new s({
                    Extends: a,
                    Mixins: [
                        n
                    ],
                    initialize: function(t, e, i, s, n, r) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), a.call(this, t, "Curve", s), this._smoothness = 32, this._curveBounds = new o, this.closePath = !1, this.setPosition(e, i), void 0 !== n && this.setFillStyle(n, r), this.updateData();
                    },
                    smoothness: {
                        get: function() {
                            return this._smoothness;
                        },
                        set: function(t) {
                            this._smoothness = t, this.updateData();
                        }
                    },
                    setSmoothness: function(t) {
                        return this._smoothness = t, this.updateData();
                    },
                    updateData: function() {
                        var t = this._curveBounds, e = this._smoothness;
                        this.geom.getBounds(t, e), this.setSize(t.width, t.height), this.updateDisplayOrigin();
                        for(var i = [], s = this.geom.getPoints(e), n = 0; n < s.length; n++)i.push(s[n].x, s[n].y);
                        return i.push(s[0].x, s[0].y), this.pathIndexes = r(i), this.pathData = i, this;
                    }
                });
                t.exports = h;
            },
            4024: (t, e, i)=>{
                var s = i(15608), n = i(17876), r = i(49584);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.currentContext;
                    if (r(t, a, e, i, o)) {
                        var h = e._displayOriginX + e._curveBounds.x, l = e._displayOriginY + e._curveBounds.y, u = e.pathData, c = u.length - 1, d = u[0] - h, f = u[1] - l;
                        a.beginPath(), a.moveTo(d, f), e.closePath || (c -= 2);
                        for(var p = 2; p < c; p += 2){
                            var v = u[p] - h, g = u[p + 1] - l;
                            a.lineTo(v, g);
                        }
                        e.closePath && a.closePath(), e.isFilled && (s(a, e), a.fill()), e.isStroked && (n(a, e), a.stroke()), a.restore();
                    }
                };
            },
            10147: (t, e, i)=>{
                var s = i(61286), n = i(15220);
                s.register("curve", function(t, e, i, s, r) {
                    return this.displayList.add(new n(this.scene, t, e, i, s, r));
                });
            },
            87203: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(82958), r = i(4024), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            82958: (t, e, i)=>{
                var s = i(19543), n = i(73329), r = i(50262);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.pipelines.set(e.pipeline), h = n(e, i, o), l = a.calcMatrix.copyFrom(h.calc), u = e._displayOriginX + e._curveBounds.x, c = e._displayOriginY + e._curveBounds.y, d = i.alpha * e.alpha;
                    t.pipelines.preBatch(e), e.isFilled && s(a, l, e, d, u, c), e.isStroked && r(a, e, d, u, c), t.pipelines.postBatch(e);
                };
            },
            28591: (t, e, i)=>{
                var s = i(56694), n = i(11117), r = i(84171), o = i(95669), a = i(91461), h = new s({
                    Extends: a,
                    Mixins: [
                        r
                    ],
                    initialize: function(t, e, i, s, n, r, h) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 128), void 0 === n && (n = 128), a.call(this, t, "Ellipse", new o(s / 2, n / 2, s, n)), this._smoothness = 64, this.setPosition(e, i), this.width = s, this.height = n, void 0 !== r && this.setFillStyle(r, h), this.updateDisplayOrigin(), this.updateData();
                    },
                    smoothness: {
                        get: function() {
                            return this._smoothness;
                        },
                        set: function(t) {
                            this._smoothness = t, this.updateData();
                        }
                    },
                    setSize: function(t, e) {
                        return this.width = t, this.height = e, this.geom.setPosition(t / 2, e / 2), this.geom.setSize(t, e), this.updateData();
                    },
                    setSmoothness: function(t) {
                        return this._smoothness = t, this.updateData();
                    },
                    updateData: function() {
                        for(var t = [], e = this.geom.getPoints(this._smoothness), i = 0; i < e.length; i++)t.push(e[i].x, e[i].y);
                        return t.push(e[0].x, e[0].y), this.pathIndexes = n(t), this.pathData = t, this;
                    }
                });
                t.exports = h;
            },
            55881: (t, e, i)=>{
                var s = i(15608), n = i(17876), r = i(49584);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.currentContext;
                    if (r(t, a, e, i, o)) {
                        var h = e._displayOriginX, l = e._displayOriginY, u = e.pathData, c = u.length - 1, d = u[0] - h, f = u[1] - l;
                        a.beginPath(), a.moveTo(d, f), e.closePath || (c -= 2);
                        for(var p = 2; p < c; p += 2){
                            var v = u[p] - h, g = u[p + 1] - l;
                            a.lineTo(v, g);
                        }
                        a.closePath(), e.isFilled && (s(a, e), a.fill()), e.isStroked && (n(a, e), a.stroke()), a.restore();
                    }
                };
            },
            99869: (t, e, i)=>{
                var s = i(28591);
                i(61286).register("ellipse", function(t, e, i, n, r, o) {
                    return this.displayList.add(new s(this.scene, t, e, i, n, r, o));
                });
            },
            84171: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(17554), r = i(55881), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            17554: (t, e, i)=>{
                var s = i(19543), n = i(73329), r = i(50262);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.pipelines.set(e.pipeline), h = n(e, i, o), l = a.calcMatrix.copyFrom(h.calc), u = e._displayOriginX, c = e._displayOriginY, d = i.alpha * e.alpha;
                    t.pipelines.preBatch(e), e.isFilled && s(a, l, e, d, u, c), e.isStroked && r(a, e, d, u, c), t.pipelines.postBatch(e);
                };
            },
            39169: (t, e, i)=>{
                var s = i(56694), n = i(91461), r = i(88059), o = new s({
                    Extends: n,
                    Mixins: [
                        r
                    ],
                    initialize: function(t, e, i, s, r, o, a, h, l, u, c) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 128), void 0 === r && (r = 128), void 0 === o && (o = 32), void 0 === a && (a = 32), n.call(this, t, "Grid", null), this.cellWidth = o, this.cellHeight = a, this.showCells = !0, this.outlineFillColor = 0, this.outlineFillAlpha = 0, this.showOutline = !0, this.showAltCells = !1, this.altFillColor, this.altFillAlpha, this.setPosition(e, i), this.setSize(s, r), this.setFillStyle(h, l), void 0 !== u && this.setOutlineStyle(u, c), this.updateDisplayOrigin();
                    },
                    setFillStyle: function(t, e) {
                        return void 0 === e && (e = 1), void 0 === t ? this.showCells = !1 : (this.fillColor = t, this.fillAlpha = e, this.showCells = !0), this;
                    },
                    setAltFillStyle: function(t, e) {
                        return void 0 === e && (e = 1), void 0 === t ? this.showAltCells = !1 : (this.altFillColor = t, this.altFillAlpha = e, this.showAltCells = !0), this;
                    },
                    setOutlineStyle: function(t, e) {
                        return void 0 === e && (e = 1), void 0 === t ? this.showOutline = !1 : (this.outlineFillColor = t, this.outlineFillAlpha = e, this.showOutline = !0), this;
                    }
                });
                t.exports = o;
            },
            95525: (t, e, i)=>{
                var s = i(15608), n = i(17876), r = i(49584);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.currentContext;
                    if (r(t, a, e, i, o)) {
                        var h = -e._displayOriginX, l = -e._displayOriginY, u = i.alpha * e.alpha, c = e.width, d = e.height, f = e.cellWidth, p = e.cellHeight, v = Math.ceil(c / f), g = Math.ceil(d / p), m = f, y = p, x = f - (v * f - c), T = p - (g * p - d), w = e.showCells, b = e.showAltCells, S = e.showOutline, E = 0, A = 0, C = 0, _ = 0, M = 0;
                        if (S && (m--, y--, x === f && x--, T === p && T--), w && e.fillAlpha > 0) for(s(a, e), A = 0; A < g; A++)for(b && (C = A % 2), E = 0; E < v; E++)b && C ? C = 0 : (C++, _ = E < v - 1 ? m : x, M = A < g - 1 ? y : T, a.fillRect(h + E * f, l + A * p, _, M));
                        if (b && e.altFillAlpha > 0) for(s(a, e, e.altFillColor, e.altFillAlpha * u), A = 0; A < g; A++)for(b && (C = A % 2), E = 0; E < v; E++)!b || C ? (C = 0, _ = E < v - 1 ? m : x, M = A < g - 1 ? y : T, a.fillRect(h + E * f, l + A * p, _, M)) : C = 1;
                        if (S && e.outlineFillAlpha > 0) {
                            for(n(a, e, e.outlineFillColor, e.outlineFillAlpha * u), E = 1; E < v; E++){
                                var P = E * f;
                                a.beginPath(), a.moveTo(P + h, l), a.lineTo(P + h, d + l), a.stroke();
                            }
                            for(A = 1; A < g; A++){
                                var R = A * p;
                                a.beginPath(), a.moveTo(h, R + l), a.lineTo(h + c, R + l), a.stroke();
                            }
                        }
                        a.restore();
                    }
                };
            },
            9326: (t, e, i)=>{
                var s = i(61286), n = i(39169);
                s.register("grid", function(t, e, i, s, r, o, a, h, l, u) {
                    return this.displayList.add(new n(this.scene, t, e, i, s, r, o, a, h, l, u));
                });
            },
            88059: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(50639), r = i(95525), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            50639: (t, e, i)=>{
                var s = i(73329), n = i(75512);
                t.exports = function(t, e, i, r) {
                    i.addToRenderList(e);
                    var o = t.pipelines.set(e.pipeline), a = s(e, i, r);
                    o.calcMatrix.copyFrom(a.calc).translate(-e._displayOriginX, -e._displayOriginY);
                    var h, l, u = i.alpha * e.alpha, c = e.width, d = e.height, f = e.cellWidth, p = e.cellHeight, v = Math.ceil(c / f), g = Math.ceil(d / p), m = f, y = p, x = f - (v * f - c), T = p - (g * p - d), w = e.showCells, b = e.showAltCells, S = e.showOutline, E = 0, A = 0, C = 0, _ = 0, M = 0;
                    if (S && (m--, y--, x === f && x--, T === p && T--), t.pipelines.preBatch(e), w && e.fillAlpha > 0) for(h = o.fillTint, l = n.getTintAppendFloatAlpha(e.fillColor, e.fillAlpha * u), h.TL = l, h.TR = l, h.BL = l, h.BR = l, A = 0; A < g; A++)for(b && (C = A % 2), E = 0; E < v; E++)b && C ? C = 0 : (C++, _ = E < v - 1 ? m : x, M = A < g - 1 ? y : T, o.batchFillRect(E * f, A * p, _, M));
                    if (b && e.altFillAlpha > 0) for(h = o.fillTint, l = n.getTintAppendFloatAlpha(e.altFillColor, e.altFillAlpha * u), h.TL = l, h.TR = l, h.BL = l, h.BR = l, A = 0; A < g; A++)for(b && (C = A % 2), E = 0; E < v; E++)!b || C ? (C = 0, _ = E < v - 1 ? m : x, M = A < g - 1 ? y : T, o.batchFillRect(E * f, A * p, _, M)) : C = 1;
                    if (S && e.outlineFillAlpha > 0) {
                        var P = o.strokeTint, R = n.getTintAppendFloatAlpha(e.outlineFillColor, e.outlineFillAlpha * u);
                        for(P.TL = R, P.TR = R, P.BL = R, P.BR = R, E = 1; E < v; E++){
                            var O = E * f;
                            o.batchLine(O, 0, O, d, 1, 1, 1, 0, !1);
                        }
                        for(A = 1; A < g; A++){
                            var L = A * p;
                            o.batchLine(0, L, c, L, 1, 1, 1, 0, !1);
                        }
                    }
                    t.pipelines.postBatch(e);
                };
            },
            4415: (t, e, i)=>{
                var s = i(72296), n = i(56694), r = i(91461), o = new n({
                    Extends: r,
                    Mixins: [
                        s
                    ],
                    initialize: function(t, e, i, s, n, o, a, h) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 48), void 0 === n && (n = 32), void 0 === o && (o = 15658734), void 0 === a && (a = 10066329), void 0 === h && (h = 13421772), r.call(this, t, "IsoBox", null), this.projection = 4, this.fillTop = o, this.fillLeft = a, this.fillRight = h, this.showTop = !0, this.showLeft = !0, this.showRight = !0, this.isFilled = !0, this.setPosition(e, i), this.setSize(s, n), this.updateDisplayOrigin();
                    },
                    setProjection: function(t) {
                        return this.projection = t, this;
                    },
                    setFaces: function(t, e, i) {
                        return void 0 === t && (t = !0), void 0 === e && (e = !0), void 0 === i && (i = !0), this.showTop = t, this.showLeft = e, this.showRight = i, this;
                    },
                    setFillStyle: function(t, e, i) {
                        return this.fillTop = t, this.fillLeft = e, this.fillRight = i, this.isFilled = !0, this;
                    }
                });
                t.exports = o;
            },
            32884: (t, e, i)=>{
                var s = i(15608), n = i(49584);
                t.exports = function(t, e, i, r) {
                    i.addToRenderList(e);
                    var o = t.currentContext;
                    if (n(t, o, e, i, r) && e.isFilled) {
                        var a = e.width, h = e.height, l = a / 2, u = a / e.projection;
                        e.showTop && (s(o, e, e.fillTop), o.beginPath(), o.moveTo(-l, -h), o.lineTo(0, -u - h), o.lineTo(l, -h), o.lineTo(l, -1), o.lineTo(0, u - 1), o.lineTo(-l, -1), o.lineTo(-l, -h), o.fill()), e.showLeft && (s(o, e, e.fillLeft), o.beginPath(), o.moveTo(-l, 0), o.lineTo(0, u), o.lineTo(0, u - h), o.lineTo(-l, -h), o.lineTo(-l, 0), o.fill()), e.showRight && (s(o, e, e.fillRight), o.beginPath(), o.moveTo(l, 0), o.lineTo(0, u), o.lineTo(0, u - h), o.lineTo(l, -h), o.lineTo(l, 0), o.fill()), o.restore();
                    }
                };
            },
            88154: (t, e, i)=>{
                var s = i(61286), n = i(4415);
                s.register("isobox", function(t, e, i, s, r, o, a) {
                    return this.displayList.add(new n(this.scene, t, e, i, s, r, o, a));
                });
            },
            72296: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(33101), r = i(32884), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            33101: (t, e, i)=>{
                var s = i(73329), n = i(75512);
                t.exports = function(t, e, i, r) {
                    i.addToRenderList(e);
                    var o, a, h, l, u, c, d, f, p, v = t.pipelines.set(e.pipeline), g = s(e, i, r), m = v.calcMatrix.copyFrom(g.calc), y = e.width, x = e.height, T = y / 2, w = y / e.projection, b = i.alpha * e.alpha;
                    e.isFilled && (t.pipelines.preBatch(e), e.showTop && (o = n.getTintAppendFloatAlpha(e.fillTop, b), a = m.getX(-T, -x), h = m.getY(-T, -x), l = m.getX(0, -w - x), u = m.getY(0, -w - x), c = m.getX(T, -x), d = m.getY(T, -x), f = m.getX(0, w - x), p = m.getY(0, w - x), v.batchQuad(e, a, h, l, u, c, d, f, p, 0, 0, 1, 1, o, o, o, o, 2)), e.showLeft && (o = n.getTintAppendFloatAlpha(e.fillLeft, b), a = m.getX(-T, 0), h = m.getY(-T, 0), l = m.getX(0, w), u = m.getY(0, w), c = m.getX(0, w - x), d = m.getY(0, w - x), f = m.getX(-T, -x), p = m.getY(-T, -x), v.batchQuad(e, a, h, l, u, c, d, f, p, 0, 0, 1, 1, o, o, o, o, 2)), e.showRight && (o = n.getTintAppendFloatAlpha(e.fillRight, b), a = m.getX(T, 0), h = m.getY(T, 0), l = m.getX(0, w), u = m.getY(0, w), c = m.getX(0, w - x), d = m.getY(0, w - x), f = m.getX(T, -x), p = m.getY(T, -x), v.batchQuad(e, a, h, l, u, c, d, f, p, 0, 0, 1, 1, o, o, o, o, 2)), t.pipelines.postBatch(e));
                };
            },
            65159: (t, e, i)=>{
                var s = i(56694), n = i(93387), r = i(91461), o = new s({
                    Extends: r,
                    Mixins: [
                        n
                    ],
                    initialize: function(t, e, i, s, n, o, a, h, l) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 48), void 0 === n && (n = 32), void 0 === o && (o = !1), void 0 === a && (a = 15658734), void 0 === h && (h = 10066329), void 0 === l && (l = 13421772), r.call(this, t, "IsoTriangle", null), this.projection = 4, this.fillTop = a, this.fillLeft = h, this.fillRight = l, this.showTop = !0, this.showLeft = !0, this.showRight = !0, this.isReversed = o, this.isFilled = !0, this.setPosition(e, i), this.setSize(s, n), this.updateDisplayOrigin();
                    },
                    setProjection: function(t) {
                        return this.projection = t, this;
                    },
                    setReversed: function(t) {
                        return this.isReversed = t, this;
                    },
                    setFaces: function(t, e, i) {
                        return void 0 === t && (t = !0), void 0 === e && (e = !0), void 0 === i && (i = !0), this.showTop = t, this.showLeft = e, this.showRight = i, this;
                    },
                    setFillStyle: function(t, e, i) {
                        return this.fillTop = t, this.fillLeft = e, this.fillRight = i, this.isFilled = !0, this;
                    }
                });
                t.exports = o;
            },
            9923: (t, e, i)=>{
                var s = i(15608), n = i(49584);
                t.exports = function(t, e, i, r) {
                    i.addToRenderList(e);
                    var o = t.currentContext;
                    if (n(t, o, e, i, r) && e.isFilled) {
                        var a = e.width, h = e.height, l = a / 2, u = a / e.projection, c = e.isReversed;
                        e.showTop && c && (s(o, e, e.fillTop), o.beginPath(), o.moveTo(-l, -h), o.lineTo(0, -u - h), o.lineTo(l, -h), o.lineTo(0, u - h), o.fill()), e.showLeft && (s(o, e, e.fillLeft), o.beginPath(), c ? (o.moveTo(-l, -h), o.lineTo(0, u), o.lineTo(0, u - h)) : (o.moveTo(-l, 0), o.lineTo(0, u), o.lineTo(0, u - h)), o.fill()), e.showRight && (s(o, e, e.fillRight), o.beginPath(), c ? (o.moveTo(l, -h), o.lineTo(0, u), o.lineTo(0, u - h)) : (o.moveTo(l, 0), o.lineTo(0, u), o.lineTo(0, u - h)), o.fill()), o.restore();
                    }
                };
            },
            67765: (t, e, i)=>{
                var s = i(61286), n = i(65159);
                s.register("isotriangle", function(t, e, i, s, r, o, a, h) {
                    return this.displayList.add(new n(this.scene, t, e, i, s, r, o, a, h));
                });
            },
            93387: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(54946), r = i(9923), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            54946: (t, e, i)=>{
                var s = i(73329), n = i(75512);
                t.exports = function(t, e, i, r) {
                    i.addToRenderList(e);
                    var o = t.pipelines.set(e.pipeline), a = s(e, i, r), h = o.calcMatrix.copyFrom(a.calc), l = e.width, u = e.height, c = l / 2, d = l / e.projection, f = e.isReversed, p = i.alpha * e.alpha;
                    if (e.isFilled) {
                        var v, g, m, y, x, T, w;
                        if (t.pipelines.preBatch(e), e.showTop && f) {
                            v = n.getTintAppendFloatAlpha(e.fillTop, p), g = h.getX(-c, -u), m = h.getY(-c, -u), y = h.getX(0, -d - u), x = h.getY(0, -d - u), T = h.getX(c, -u), w = h.getY(c, -u);
                            var b = h.getX(0, d - u), S = h.getY(0, d - u);
                            o.batchQuad(e, g, m, y, x, T, w, b, S, 0, 0, 1, 1, v, v, v, v, 2);
                        }
                        e.showLeft && (v = n.getTintAppendFloatAlpha(e.fillLeft, p), f ? (g = h.getX(-c, -u), m = h.getY(-c, -u), y = h.getX(0, d), x = h.getY(0, d), T = h.getX(0, d - u), w = h.getY(0, d - u)) : (g = h.getX(-c, 0), m = h.getY(-c, 0), y = h.getX(0, d), x = h.getY(0, d), T = h.getX(0, d - u), w = h.getY(0, d - u)), o.batchTri(e, g, m, y, x, T, w, 0, 0, 1, 1, v, v, v, 2)), e.showRight && (v = n.getTintAppendFloatAlpha(e.fillRight, p), f ? (g = h.getX(c, -u), m = h.getY(c, -u), y = h.getX(0, d), x = h.getY(0, d), T = h.getX(0, d - u), w = h.getY(0, d - u)) : (g = h.getX(c, 0), m = h.getY(c, 0), y = h.getX(0, d), x = h.getY(0, d), T = h.getX(0, d - u), w = h.getY(0, d - u)), o.batchTri(e, g, m, y, x, T, w, 0, 0, 1, 1, v, v, v, 2)), t.pipelines.postBatch(e);
                    }
                };
            },
            579: (t, e, i)=>{
                var s = i(56694), n = i(91461), r = i(88829), o = i(52660), a = new s({
                    Extends: n,
                    Mixins: [
                        o
                    ],
                    initialize: function(t, e, i, s, o, a, h, l, u) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === o && (o = 0), void 0 === a && (a = 128), void 0 === h && (h = 0), n.call(this, t, "Line", new r(s, o, a, h));
                        var c = Math.max(1, this.geom.right - this.geom.left), d = Math.max(1, this.geom.bottom - this.geom.top);
                        this.lineWidth = 1, this._startWidth = 1, this._endWidth = 1, this.setPosition(e, i), this.setSize(c, d), void 0 !== l && this.setStrokeStyle(1, l, u), this.updateDisplayOrigin();
                    },
                    setLineWidth: function(t, e) {
                        return void 0 === e && (e = t), this._startWidth = t, this._endWidth = e, this.lineWidth = t, this;
                    },
                    setTo: function(t, e, i, s) {
                        return this.geom.setTo(t, e, i, s), this;
                    }
                });
                t.exports = a;
            },
            52044: (t, e, i)=>{
                var s = i(17876), n = i(49584);
                t.exports = function(t, e, i, r) {
                    i.addToRenderList(e);
                    var o = t.currentContext;
                    if (n(t, o, e, i, r)) {
                        var a = e._displayOriginX, h = e._displayOriginY;
                        e.isStroked && (s(o, e), o.beginPath(), o.moveTo(e.geom.x1 - a, e.geom.y1 - h), o.lineTo(e.geom.x2 - a, e.geom.y2 - h), o.stroke()), o.restore();
                    }
                };
            },
            85665: (t, e, i)=>{
                var s = i(61286), n = i(579);
                s.register("line", function(t, e, i, s, r, o, a, h) {
                    return this.displayList.add(new n(this.scene, t, e, i, s, r, o, a, h));
                });
            },
            52660: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(46952), r = i(52044), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            46952: (t, e, i)=>{
                var s = i(73329), n = i(75512);
                t.exports = function(t, e, i, r) {
                    i.addToRenderList(e);
                    var o = t.pipelines.set(e.pipeline), a = s(e, i, r);
                    o.calcMatrix.copyFrom(a.calc);
                    var h = e._displayOriginX, l = e._displayOriginY, u = i.alpha * e.alpha;
                    if (t.pipelines.preBatch(e), e.isStroked) {
                        var c = o.strokeTint, d = n.getTintAppendFloatAlpha(e.strokeColor, e.strokeAlpha * u);
                        c.TL = d, c.TR = d, c.BL = d, c.BR = d;
                        var f = e._startWidth, p = e._endWidth;
                        o.batchLine(e.geom.x1 - h, e.geom.y1 - l, e.geom.x2 - h, e.geom.y2 - l, f, p, 1, 0, !1, a.sprite, a.camera);
                    }
                    t.pipelines.postBatch(e);
                };
            },
            91249: (t, e, i)=>{
                var s = i(70573), n = i(56694), r = i(11117), o = i(14045), a = i(8580), h = i(91461), l = i(18974), u = new n({
                    Extends: h,
                    Mixins: [
                        s
                    ],
                    initialize: function(t, e, i, s, n, r) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), h.call(this, t, "Polygon", new a(s));
                        var l = o(this.geom);
                        this.setPosition(e, i), this.setSize(l.width, l.height), void 0 !== n && this.setFillStyle(n, r), this.updateDisplayOrigin(), this.updateData();
                    },
                    smooth: function(t) {
                        void 0 === t && (t = 1);
                        for(var e = 0; e < t; e++)l(this.geom);
                        return this.updateData();
                    },
                    setTo: function(t) {
                        this.geom.setTo(t);
                        var e = o(this.geom);
                        return this.setSize(e.width, e.height), this.updateDisplayOrigin(), this.updateData();
                    },
                    updateData: function() {
                        for(var t = [], e = this.geom.points, i = 0; i < e.length; i++)t.push(e[i].x, e[i].y);
                        return t.push(e[0].x, e[0].y), this.pathIndexes = r(t), this.pathData = t, this;
                    }
                });
                t.exports = u;
            },
            40834: (t, e, i)=>{
                var s = i(15608), n = i(17876), r = i(49584);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.currentContext;
                    if (r(t, a, e, i, o)) {
                        var h = e._displayOriginX, l = e._displayOriginY, u = e.pathData, c = u.length - 1, d = u[0] - h, f = u[1] - l;
                        a.beginPath(), a.moveTo(d, f), e.closePath || (c -= 2);
                        for(var p = 2; p < c; p += 2){
                            var v = u[p] - h, g = u[p + 1] - l;
                            a.lineTo(v, g);
                        }
                        e.closePath && a.closePath(), e.isFilled && (s(a, e), a.fill()), e.isStroked && (n(a, e), a.stroke()), a.restore();
                    }
                };
            },
            88203: (t, e, i)=>{
                var s = i(61286), n = i(91249);
                s.register("polygon", function(t, e, i, s, r) {
                    return this.displayList.add(new n(this.scene, t, e, i, s, r));
                });
            },
            70573: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(72841), r = i(40834), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            72841: (t, e, i)=>{
                var s = i(19543), n = i(73329), r = i(50262);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.pipelines.set(e.pipeline), h = n(e, i, o), l = a.calcMatrix.copyFrom(h.calc), u = e._displayOriginX, c = e._displayOriginY, d = i.alpha * e.alpha;
                    t.pipelines.preBatch(e), e.isFilled && s(a, l, e, d, u, c), e.isStroked && r(a, e, d, u, c), t.pipelines.postBatch(e);
                };
            },
            517: (t, e, i)=>{
                var s = i(56694), n = i(74118), r = i(91461), o = i(37673), a = new s({
                    Extends: r,
                    Mixins: [
                        o
                    ],
                    initialize: function(t, e, i, s, o, a, h) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 128), void 0 === o && (o = 128), r.call(this, t, "Rectangle", new n(0, 0, s, o)), this.setPosition(e, i), this.setSize(s, o), void 0 !== a && this.setFillStyle(a, h), this.updateDisplayOrigin(), this.updateData();
                    },
                    setSize: function(t, e) {
                        this.width = t, this.height = e, this.geom.setSize(t, e), this.updateData(), this.updateDisplayOrigin();
                        var i = this.input;
                        return i && !i.customHitArea && (i.hitArea.width = t, i.hitArea.height = e), this;
                    },
                    updateData: function() {
                        var t = [], e = this.geom, i = this._tempLine;
                        return e.getLineA(i), t.push(i.x1, i.y1, i.x2, i.y2), e.getLineB(i), t.push(i.x2, i.y2), e.getLineC(i), t.push(i.x2, i.y2), e.getLineD(i), t.push(i.x2, i.y2), this.pathData = t, this;
                    }
                });
                t.exports = a;
            },
            4091: (t, e, i)=>{
                var s = i(15608), n = i(17876), r = i(49584);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.currentContext;
                    if (r(t, a, e, i, o)) {
                        var h = e._displayOriginX, l = e._displayOriginY;
                        e.isFilled && (s(a, e), a.fillRect(-h, -l, e.width, e.height)), e.isStroked && (n(a, e), a.beginPath(), a.rect(-h, -l, e.width, e.height), a.stroke()), a.restore();
                    }
                };
            },
            94355: (t, e, i)=>{
                var s = i(61286), n = i(517);
                s.register("rectangle", function(t, e, i, s, r, o) {
                    return this.displayList.add(new n(this.scene, t, e, i, s, r, o));
                });
            },
            37673: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(43532), r = i(4091), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            43532: (t, e, i)=>{
                var s = i(73329), n = i(50262), r = i(75512);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.pipelines.set(e.pipeline), h = s(e, i, o);
                    a.calcMatrix.copyFrom(h.calc);
                    var l = e._displayOriginX, u = e._displayOriginY, c = i.alpha * e.alpha;
                    if (t.pipelines.preBatch(e), e.isFilled) {
                        var d = a.fillTint, f = r.getTintAppendFloatAlpha(e.fillColor, e.fillAlpha * c);
                        d.TL = f, d.TR = f, d.BL = f, d.BR = f, a.batchFillRect(-l, -u, e.width, e.height);
                    }
                    e.isStroked && n(a, e, c, l, u), t.pipelines.postBatch(e);
                };
            },
            77843: (t, e, i)=>{
                var s = i(87956), n = i(56694), r = i(11117), o = i(91461), a = new n({
                    Extends: o,
                    Mixins: [
                        s
                    ],
                    initialize: function(t, e, i, s, n, r, a, h) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 5), void 0 === n && (n = 32), void 0 === r && (r = 64), o.call(this, t, "Star", null), this._points = s, this._innerRadius = n, this._outerRadius = r, this.setPosition(e, i), this.setSize(2 * r, 2 * r), void 0 !== a && this.setFillStyle(a, h), this.updateDisplayOrigin(), this.updateData();
                    },
                    setPoints: function(t) {
                        return this._points = t, this.updateData();
                    },
                    setInnerRadius: function(t) {
                        return this._innerRadius = t, this.updateData();
                    },
                    setOuterRadius: function(t) {
                        return this._outerRadius = t, this.updateData();
                    },
                    points: {
                        get: function() {
                            return this._points;
                        },
                        set: function(t) {
                            this._points = t, this.updateData();
                        }
                    },
                    innerRadius: {
                        get: function() {
                            return this._innerRadius;
                        },
                        set: function(t) {
                            this._innerRadius = t, this.updateData();
                        }
                    },
                    outerRadius: {
                        get: function() {
                            return this._outerRadius;
                        },
                        set: function(t) {
                            this._outerRadius = t, this.updateData();
                        }
                    },
                    updateData: function() {
                        var t = [], e = this._points, i = this._innerRadius, s = this._outerRadius, n = Math.PI / 2 * 3, o = Math.PI / e, a = s, h = s;
                        t.push(a, h + -s);
                        for(var l = 0; l < e; l++)t.push(a + Math.cos(n) * s, h + Math.sin(n) * s), n += o, t.push(a + Math.cos(n) * i, h + Math.sin(n) * i), n += o;
                        return t.push(a, h + -s), this.pathIndexes = r(t), this.pathData = t, this;
                    }
                });
                t.exports = a;
            },
            11401: (t, e, i)=>{
                var s = i(15608), n = i(17876), r = i(49584);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.currentContext;
                    if (r(t, a, e, i, o)) {
                        var h = e._displayOriginX, l = e._displayOriginY, u = e.pathData, c = u.length - 1, d = u[0] - h, f = u[1] - l;
                        a.beginPath(), a.moveTo(d, f), e.closePath || (c -= 2);
                        for(var p = 2; p < c; p += 2){
                            var v = u[p] - h, g = u[p + 1] - l;
                            a.lineTo(v, g);
                        }
                        a.closePath(), e.isFilled && (s(a, e), a.fill()), e.isStroked && (n(a, e), a.stroke()), a.restore();
                    }
                };
            },
            23962: (t, e, i)=>{
                var s = i(77843);
                i(61286).register("star", function(t, e, i, n, r, o, a) {
                    return this.displayList.add(new s(this.scene, t, e, i, n, r, o, a));
                });
            },
            87956: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(12037), r = i(11401), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            12037: (t, e, i)=>{
                var s = i(19543), n = i(73329), r = i(50262);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.pipelines.set(e.pipeline), h = n(e, i, o), l = a.calcMatrix.copyFrom(h.calc), u = e._displayOriginX, c = e._displayOriginY, d = i.alpha * e.alpha;
                    t.pipelines.preBatch(e), e.isFilled && s(a, l, e, d, u, c), e.isStroked && r(a, e, d, u, c), t.pipelines.postBatch(e);
                };
            },
            21873: (t, e, i)=>{
                var s = i(56694), n = i(91461), r = i(66349), o = i(70498), a = new s({
                    Extends: n,
                    Mixins: [
                        o
                    ],
                    initialize: function(t, e, i, s, o, a, h, l, u, c, d) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === o && (o = 128), void 0 === a && (a = 64), void 0 === h && (h = 0), void 0 === l && (l = 128), void 0 === u && (u = 128), n.call(this, t, "Triangle", new r(s, o, a, h, l, u));
                        var f = this.geom.right - this.geom.left, p = this.geom.bottom - this.geom.top;
                        this.setPosition(e, i), this.setSize(f, p), void 0 !== c && this.setFillStyle(c, d), this.updateDisplayOrigin(), this.updateData();
                    },
                    setTo: function(t, e, i, s, n, r) {
                        return this.geom.setTo(t, e, i, s, n, r), this.updateData();
                    },
                    updateData: function() {
                        var t = [], e = this.geom, i = this._tempLine;
                        return e.getLineA(i), t.push(i.x1, i.y1, i.x2, i.y2), e.getLineB(i), t.push(i.x2, i.y2), e.getLineC(i), t.push(i.x2, i.y2), this.pathData = t, this;
                    }
                });
                t.exports = a;
            },
            60213: (t, e, i)=>{
                var s = i(15608), n = i(17876), r = i(49584);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.currentContext;
                    if (r(t, a, e, i, o)) {
                        var h = e._displayOriginX, l = e._displayOriginY, u = e.geom.x1 - h, c = e.geom.y1 - l, d = e.geom.x2 - h, f = e.geom.y2 - l, p = e.geom.x3 - h, v = e.geom.y3 - l;
                        a.beginPath(), a.moveTo(u, c), a.lineTo(d, f), a.lineTo(p, v), a.closePath(), e.isFilled && (s(a, e), a.fill()), e.isStroked && (n(a, e), a.stroke()), a.restore();
                    }
                };
            },
            79296: (t, e, i)=>{
                var s = i(61286), n = i(21873);
                s.register("triangle", function(t, e, i, s, r, o, a, h, l, u) {
                    return this.displayList.add(new n(this.scene, t, e, i, s, r, o, a, h, l, u));
                });
            },
            70498: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(72291), r = i(60213), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            72291: (t, e, i)=>{
                var s = i(73329), n = i(50262), r = i(75512);
                t.exports = function(t, e, i, o) {
                    i.addToRenderList(e);
                    var a = t.pipelines.set(e.pipeline), h = s(e, i, o);
                    a.calcMatrix.copyFrom(h.calc);
                    var l = e._displayOriginX, u = e._displayOriginY, c = i.alpha * e.alpha;
                    if (t.pipelines.preBatch(e), e.isFilled) {
                        var d = a.fillTint, f = r.getTintAppendFloatAlpha(e.fillColor, e.fillAlpha * c);
                        d.TL = f, d.TR = f, d.BL = f, d.BR = f;
                        var p = e.geom.x1 - l, v = e.geom.y1 - u, g = e.geom.x2 - l, m = e.geom.y2 - u, y = e.geom.x3 - l, x = e.geom.y3 - u;
                        a.batchFillTriangle(p, v, g, m, y, x, h.sprite, h.camera);
                    }
                    e.isStroked && n(a, e, c, l, u), t.pipelines.postBatch(e);
                };
            },
            13747: (t, e, i)=>{
                var s = i(16569), n = i(56694), r = i(64937), o = i(89980), a = i(20791), h = new n({
                    Extends: o,
                    Mixins: [
                        r.Alpha,
                        r.BlendMode,
                        r.Depth,
                        r.Flip,
                        r.GetBounds,
                        r.Mask,
                        r.Origin,
                        r.Pipeline,
                        r.PostPipeline,
                        r.ScrollFactor,
                        r.Size,
                        r.TextureCrop,
                        r.Tint,
                        r.Transform,
                        r.Visible,
                        a
                    ],
                    initialize: function(t, e, i, n, r) {
                        o.call(this, t, "Sprite"), this._crop = this.resetCropObject(), this.anims = new s(this), this.setTexture(n, r), this.setPosition(e, i), this.setSizeToFrame(), this.setOriginFromFrame(), this.initPipeline(), this.initPostPipeline(!0);
                    },
                    addedToScene: function() {
                        this.scene.sys.updateList.add(this);
                    },
                    removedFromScene: function() {
                        this.scene.sys.updateList.remove(this);
                    },
                    preUpdate: function(t, e) {
                        this.anims.update(t, e);
                    },
                    play: function(t, e) {
                        return this.anims.play(t, e);
                    },
                    playReverse: function(t, e) {
                        return this.anims.playReverse(t, e);
                    },
                    playAfterDelay: function(t, e) {
                        return this.anims.playAfterDelay(t, e);
                    },
                    playAfterRepeat: function(t, e) {
                        return this.anims.playAfterRepeat(t, e);
                    },
                    chain: function(t) {
                        return this.anims.chain(t);
                    },
                    stop: function() {
                        return this.anims.stop();
                    },
                    stopAfterDelay: function(t) {
                        return this.anims.stopAfterDelay(t);
                    },
                    stopAfterRepeat: function(t) {
                        return this.anims.stopAfterRepeat(t);
                    },
                    stopOnFrame: function(t) {
                        return this.anims.stopOnFrame(t);
                    },
                    toJSON: function() {
                        return r.ToJSON(this);
                    },
                    preDestroy: function() {
                        this.anims.destroy(), this.anims = void 0;
                    }
                });
                t.exports = h;
            },
            27573: (t)=>{
                t.exports = function(t, e, i, s) {
                    i.addToRenderList(e), t.batchSprite(e, e.frame, i, s);
                };
            },
            89219: (t, e, i)=>{
                var s = i(88933), n = i(32291), r = i(99325), o = i(20494), a = i(13747);
                r.register("sprite", function(t, e) {
                    void 0 === t && (t = {});
                    var i = o(t, "key", null), r = o(t, "frame", null), h = new a(this.scene, 0, 0, i, r);
                    return void 0 !== e && (t.add = e), s(this.scene, h, t), n(h, t), h;
                });
            },
            66135: (t, e, i)=>{
                var s = i(61286), n = i(13747);
                s.register("sprite", function(t, e, i, s) {
                    return this.displayList.add(new n(this.scene, t, e, i, s));
                });
            },
            20791: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(21034), r = i(27573), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            21034: (t)=>{
                t.exports = function(t, e, i, s) {
                    i.addToRenderList(e), e.pipeline.batchSprite(e, i, s);
                };
            },
            32979: (t)=>{
                t.exports = function(t, e, i) {
                    var s = t.canvas, n = t.context, r = t.style, o = [], a = 0, h = i.length;
                    r.maxLines > 0 && r.maxLines < i.length && (h = r.maxLines), r.syncFont(s, n);
                    for(var l = 0; l < h; l++){
                        var u = r.strokeThickness;
                        u += n.measureText(i[l]).width, r.wordWrap && (u -= n.measureText(" ").width), o[l] = Math.ceil(u), a = Math.max(a, o[l]);
                    }
                    var c = e.fontSize + r.strokeThickness, d = c * h, f = t.lineSpacing;
                    return h > 1 && (d += f * (h - 1)), {
                        width: a,
                        height: d,
                        lines: h,
                        lineWidths: o,
                        lineSpacing: f,
                        lineHeight: c
                    };
                };
            },
            27030: (t, e, i)=>{
                var s = i(61068);
                t.exports = function(t) {
                    var e = s.create(this), i = e.getContext("2d", {
                        willReadFrequently: !0
                    });
                    t.syncFont(e, i);
                    var n = i.measureText(t.testString);
                    if ("actualBoundingBoxAscent" in n) {
                        var r = n.actualBoundingBoxAscent, o = n.actualBoundingBoxDescent;
                        return s.remove(e), {
                            ascent: r,
                            descent: o,
                            fontSize: r + o
                        };
                    }
                    var a = Math.ceil(n.width * t.baselineX), h = a, l = 2 * h;
                    h = h * t.baselineY | 0, e.width = a, e.height = l, i.fillStyle = "#f00", i.fillRect(0, 0, a, l), i.font = t._font, i.textBaseline = "alphabetic", i.fillStyle = "#000", i.fillText(t.testString, 0, h);
                    var u = {
                        ascent: 0,
                        descent: 0,
                        fontSize: 0
                    }, c = i.getImageData(0, 0, a, l);
                    if (!c) return u.ascent = h, u.descent = h + 6, u.fontSize = u.ascent + u.descent, s.remove(e), u;
                    var d, f, p = c.data, v = p.length, g = 4 * a, m = 0, y = !1;
                    for(d = 0; d < h; d++){
                        for(f = 0; f < g; f += 4)if (255 !== p[m + f]) {
                            y = !0;
                            break;
                        }
                        if (y) break;
                        m += g;
                    }
                    for(u.ascent = h - d, m = v - g, y = !1, d = l; d > h; d--){
                        for(f = 0; f < g; f += 4)if (255 !== p[m + f]) {
                            y = !0;
                            break;
                        }
                        if (y) break;
                        m -= g;
                    }
                    return u.descent = d - h, u.fontSize = u.ascent + u.descent, s.remove(e), u;
                };
            },
            76555: (t, e, i)=>{
                var s = i(99584), n = i(61068), r = i(56694), o = i(64937), a = i(89980), h = i(32979), l = i(10850), u = i(55638), c = i(80032), d = i(74744), f = new r({
                    Extends: a,
                    Mixins: [
                        o.Alpha,
                        o.BlendMode,
                        o.ComputedSize,
                        o.Crop,
                        o.Depth,
                        o.Flip,
                        o.GetBounds,
                        o.Mask,
                        o.Origin,
                        o.Pipeline,
                        o.PostPipeline,
                        o.ScrollFactor,
                        o.Tint,
                        o.Transform,
                        o.Visible,
                        c
                    ],
                    initialize: function(t, e, i, s, r) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), a.call(this, t, "Text"), this.renderer = t.sys.renderer, this.setPosition(e, i), this.setOrigin(0, 0), this.initPipeline(), this.initPostPipeline(!0), this.canvas = n.create(this), this.context = this.canvas.getContext("2d", {
                            willReadFrequently: !0
                        }), this.style = new d(this, r), this.autoRound = !0, this.splitRegExp = /(?:\r\n|\r|\n)/, this._text = void 0, this.padding = {
                            left: 0,
                            right: 0,
                            top: 0,
                            bottom: 0
                        }, this.width = 1, this.height = 1, this.lineSpacing = 0, this.dirty = !1, 0 === this.style.resolution && (this.style.resolution = 1), this._crop = this.resetCropObject(), this.texture = t.sys.textures.addCanvas(null, this.canvas, !0), this.frame = this.texture.get(), this.frame.source.resolution = this.style.resolution, this.renderer && this.renderer.gl && (this.renderer.deleteTexture(this.frame.source.glTexture), this.frame.source.glTexture = null), this.initRTL(), this.setText(s), r && r.padding && this.setPadding(r.padding), r && r.lineSpacing && this.setLineSpacing(r.lineSpacing);
                    },
                    initRTL: function() {
                        this.style.rtl && (this.canvas.dir = "rtl", this.context.direction = "rtl", this.canvas.style.display = "none", s(this.canvas, this.scene.sys.canvas), this.originX = 1);
                    },
                    runWordWrap: function(t) {
                        var e = this.style;
                        if (e.wordWrapCallback) {
                            var i = e.wordWrapCallback.call(e.wordWrapCallbackScope, t, this);
                            return Array.isArray(i) && (i = i.join("\n")), i;
                        }
                        return e.wordWrapWidth ? e.wordWrapUseAdvanced ? this.advancedWordWrap(t, this.context, this.style.wordWrapWidth) : this.basicWordWrap(t, this.context, this.style.wordWrapWidth) : t;
                    },
                    advancedWordWrap: function(t, e, i) {
                        for(var s = "", n = t.replace(/ +/gi, " ").split(this.splitRegExp), r = n.length, o = 0; o < r; o++){
                            var a = n[o], h = "";
                            if (a = a.replace(/^ *|\s*$/gi, ""), e.measureText(a).width < i) s += a + "\n";
                            else {
                                for(var l = i, u = a.split(" "), c = 0; c < u.length; c++){
                                    var d = u[c], f = d + " ", p = e.measureText(f).width;
                                    if (p > l) {
                                        if (0 === c) {
                                            for(var v = f; v.length && (v = v.slice(0, -1), !((p = e.measureText(v).width) <= l)););
                                            if (!v.length) throw new Error("wordWrapWidth < a single character");
                                            var g = d.substr(v.length);
                                            u[c] = g, h += v;
                                        }
                                        var m = u[c].length ? c : c + 1, y = u.slice(m).join(" ").replace(/[ \n]*$/gi, "");
                                        n.splice(o + 1, 0, y), r = n.length;
                                        break;
                                    }
                                    h += f, l -= p;
                                }
                                s += h.replace(/[ \n]*$/gi, "") + "\n";
                            }
                        }
                        return s = s.replace(/[\s|\n]*$/gi, "");
                    },
                    basicWordWrap: function(t, e, i) {
                        for(var s = "", n = t.split(this.splitRegExp), r = n.length - 1, o = e.measureText(" ").width, a = 0; a <= r; a++){
                            for(var h = i, l = n[a].split(" "), u = l.length - 1, c = 0; c <= u; c++){
                                var d = l[c], f = e.measureText(d).width, p = f;
                                c < u && (p += o), p > h && c > 0 && (s += "\n", h = i), s += d, c < u ? (s += " ", h -= p) : h -= f;
                            }
                            a < r && (s += "\n");
                        }
                        return s;
                    },
                    getWrappedText: function(t) {
                        return void 0 === t && (t = this._text), this.style.syncFont(this.canvas, this.context), this.runWordWrap(t).split(this.splitRegExp);
                    },
                    setText: function(t) {
                        return t || 0 === t || (t = ""), Array.isArray(t) && (t = t.join("\n")), t !== this._text && (this._text = t.toString(), this.updateText()), this;
                    },
                    appendText: function(t, e) {
                        void 0 === e && (e = !0), t || 0 === t || (t = ""), Array.isArray(t) && (t = t.join("\n")), t = t.toString();
                        var i = this._text.concat(e ? "\n" + t : t);
                        return i !== this._text && (this._text = i, this.updateText()), this;
                    },
                    setStyle: function(t) {
                        return this.style.setStyle(t);
                    },
                    setFont: function(t) {
                        return this.style.setFont(t);
                    },
                    setFontFamily: function(t) {
                        return this.style.setFontFamily(t);
                    },
                    setFontSize: function(t) {
                        return this.style.setFontSize(t);
                    },
                    setFontStyle: function(t) {
                        return this.style.setFontStyle(t);
                    },
                    setFixedSize: function(t, e) {
                        return this.style.setFixedSize(t, e);
                    },
                    setBackgroundColor: function(t) {
                        return this.style.setBackgroundColor(t);
                    },
                    setFill: function(t) {
                        return this.style.setFill(t);
                    },
                    setColor: function(t) {
                        return this.style.setColor(t);
                    },
                    setStroke: function(t, e) {
                        return this.style.setStroke(t, e);
                    },
                    setShadow: function(t, e, i, s, n, r) {
                        return this.style.setShadow(t, e, i, s, n, r);
                    },
                    setShadowOffset: function(t, e) {
                        return this.style.setShadowOffset(t, e);
                    },
                    setShadowColor: function(t) {
                        return this.style.setShadowColor(t);
                    },
                    setShadowBlur: function(t) {
                        return this.style.setShadowBlur(t);
                    },
                    setShadowStroke: function(t) {
                        return this.style.setShadowStroke(t);
                    },
                    setShadowFill: function(t) {
                        return this.style.setShadowFill(t);
                    },
                    setWordWrapWidth: function(t, e) {
                        return this.style.setWordWrapWidth(t, e);
                    },
                    setWordWrapCallback: function(t, e) {
                        return this.style.setWordWrapCallback(t, e);
                    },
                    setAlign: function(t) {
                        return this.style.setAlign(t);
                    },
                    setResolution: function(t) {
                        return this.style.setResolution(t);
                    },
                    setLineSpacing: function(t) {
                        return this.lineSpacing = t, this.updateText();
                    },
                    setPadding: function(t, e, i, s) {
                        if ("object" == typeof t) {
                            var n = t, r = l(n, "x", null);
                            null !== r ? (t = r, i = r) : (t = l(n, "left", 0), i = l(n, "right", t));
                            var o = l(n, "y", null);
                            null !== o ? (e = o, s = o) : (e = l(n, "top", 0), s = l(n, "bottom", e));
                        } else void 0 === t && (t = 0), void 0 === e && (e = t), void 0 === i && (i = t), void 0 === s && (s = e);
                        return this.padding.left = t, this.padding.top = e, this.padding.right = i, this.padding.bottom = s, this.updateText();
                    },
                    setMaxLines: function(t) {
                        return this.style.setMaxLines(t);
                    },
                    updateText: function() {
                        var t = this.canvas, e = this.context, i = this.style, s = i.resolution, n = i.metrics;
                        i.syncFont(t, e);
                        var r = this._text;
                        (i.wordWrapWidth || i.wordWrapCallback) && (r = this.runWordWrap(this._text));
                        var o, a = r.split(this.splitRegExp), l = h(this, n, a), u = this.padding;
                        0 === i.fixedWidth ? (this.width = l.width + u.left + u.right, o = l.width) : (this.width = i.fixedWidth, (o = this.width - u.left - u.right) < l.width && (o = l.width)), 0 === i.fixedHeight ? this.height = l.height + u.top + u.bottom : this.height = i.fixedHeight;
                        var c, d, f = this.width, p = this.height;
                        this.updateDisplayOrigin(), f *= s, p *= s, f = Math.max(f, 1), p = Math.max(p, 1), t.width !== f || t.height !== p ? (t.width = f, t.height = p, this.frame.setSize(f, p), i.syncFont(t, e), i.rtl && (e.direction = "rtl")) : e.clearRect(0, 0, f, p), e.save(), e.scale(s, s), i.backgroundColor && (e.fillStyle = i.backgroundColor, e.fillRect(0, 0, f, p)), i.syncStyle(t, e), e.translate(u.left, u.top);
                        for(var v = 0; v < l.lines; v++){
                            if (c = i.strokeThickness / 2, d = i.strokeThickness / 2 + v * l.lineHeight + n.ascent, v > 0 && (d += l.lineSpacing * v), i.rtl) c = f - c - u.left - u.right;
                            else if ("right" === i.align) c += o - l.lineWidths[v];
                            else if ("center" === i.align) c += (o - l.lineWidths[v]) / 2;
                            else if ("justify" === i.align) {
                                if (l.lineWidths[v] / l.width >= .85) {
                                    var g = l.width - l.lineWidths[v], m = e.measureText(" ").width, y = a[v].trim(), x = y.split(" ");
                                    g += (a[v].length - y.length) * m;
                                    for(var T = Math.floor(g / m), w = 0; T > 0;)x[w] += " ", w = (w + 1) % (x.length - 1 || 1), --T;
                                    a[v] = x.join(" ");
                                }
                            }
                            this.autoRound && (c = Math.round(c), d = Math.round(d)), i.strokeThickness && (i.syncShadow(e, i.shadowStroke), e.strokeText(a[v], c, d)), i.color && (i.syncShadow(e, i.shadowFill), e.fillText(a[v], c, d));
                        }
                        e.restore(), this.renderer && this.renderer.gl && (this.frame.source.glTexture = this.renderer.canvasToTexture(t, this.frame.source.glTexture, !0), this.frame.glTexture = this.frame.source.glTexture), this.dirty = !0;
                        var b = this.input;
                        return b && !b.customHitArea && (b.hitArea.width = this.width, b.hitArea.height = this.height), this;
                    },
                    getTextMetrics: function() {
                        return this.style.getTextMetrics();
                    },
                    text: {
                        get: function() {
                            return this._text;
                        },
                        set: function(t) {
                            this.setText(t);
                        }
                    },
                    toJSON: function() {
                        var t = o.ToJSON(this), e = {
                            autoRound: this.autoRound,
                            text: this._text,
                            style: this.style.toJSON(),
                            padding: {
                                left: this.padding.left,
                                right: this.padding.right,
                                top: this.padding.top,
                                bottom: this.padding.bottom
                            }
                        };
                        return t.data = e, t;
                    },
                    preDestroy: function() {
                        this.style.rtl && u(this.canvas), n.remove(this.canvas), this.texture.destroy();
                    }
                });
                t.exports = f;
            },
            71649: (t)=>{
                t.exports = function(t, e, i, s) {
                    0 !== e.width && 0 !== e.height && (i.addToRenderList(e), t.batchSprite(e, e.frame, i, s));
                };
            },
            75397: (t, e, i)=>{
                var s = i(88933), n = i(99325), r = i(20494), o = i(76555);
                n.register("text", function(t, e) {
                    void 0 === t && (t = {});
                    var i = r(t, "text", ""), n = r(t, "style", null), a = r(t, "padding", null);
                    null !== a && (n.padding = a);
                    var h = new o(this.scene, 0, 0, i, n);
                    return void 0 !== e && (t.add = e), s(this.scene, h, t), h.autoRound = r(t, "autoRound", !0), h.resolution = r(t, "resolution", 1), h;
                });
            },
            94627: (t, e, i)=>{
                var s = i(76555);
                i(61286).register("text", function(t, e, i, n) {
                    return this.displayList.add(new s(this.scene, t, e, i, n));
                });
            },
            80032: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(76128), r = i(71649), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            74744: (t, e, i)=>{
                var s = i(56694), n = i(20494), r = i(10850), o = i(27030), a = {
                    fontFamily: [
                        "fontFamily",
                        "Courier"
                    ],
                    fontSize: [
                        "fontSize",
                        "16px"
                    ],
                    fontStyle: [
                        "fontStyle",
                        ""
                    ],
                    backgroundColor: [
                        "backgroundColor",
                        null
                    ],
                    color: [
                        "color",
                        "#fff"
                    ],
                    stroke: [
                        "stroke",
                        "#fff"
                    ],
                    strokeThickness: [
                        "strokeThickness",
                        0
                    ],
                    shadowOffsetX: [
                        "shadow.offsetX",
                        0
                    ],
                    shadowOffsetY: [
                        "shadow.offsetY",
                        0
                    ],
                    shadowColor: [
                        "shadow.color",
                        "#000"
                    ],
                    shadowBlur: [
                        "shadow.blur",
                        0
                    ],
                    shadowStroke: [
                        "shadow.stroke",
                        !1
                    ],
                    shadowFill: [
                        "shadow.fill",
                        !1
                    ],
                    align: [
                        "align",
                        "left"
                    ],
                    maxLines: [
                        "maxLines",
                        0
                    ],
                    fixedWidth: [
                        "fixedWidth",
                        0
                    ],
                    fixedHeight: [
                        "fixedHeight",
                        0
                    ],
                    resolution: [
                        "resolution",
                        0
                    ],
                    rtl: [
                        "rtl",
                        !1
                    ],
                    testString: [
                        "testString",
                        "|M\xc3‰qgy"
                    ],
                    baselineX: [
                        "baselineX",
                        1.2
                    ],
                    baselineY: [
                        "baselineY",
                        1.4
                    ],
                    wordWrapWidth: [
                        "wordWrap.width",
                        null
                    ],
                    wordWrapCallback: [
                        "wordWrap.callback",
                        null
                    ],
                    wordWrapCallbackScope: [
                        "wordWrap.callbackScope",
                        null
                    ],
                    wordWrapUseAdvanced: [
                        "wordWrap.useAdvancedWrap",
                        !1
                    ]
                }, h = new s({
                    initialize: function(t, e) {
                        this.parent = t, this.fontFamily, this.fontSize, this.fontStyle, this.backgroundColor, this.color, this.stroke, this.strokeThickness, this.shadowOffsetX, this.shadowOffsetY, this.shadowColor, this.shadowBlur, this.shadowStroke, this.shadowFill, this.align, this.maxLines, this.fixedWidth, this.fixedHeight, this.resolution, this.rtl, this.testString, this.baselineX, this.baselineY, this.wordWrapWidth, this.wordWrapCallback, this.wordWrapCallbackScope, this.wordWrapUseAdvanced, this._font, this.setStyle(e, !1, !0);
                    },
                    setStyle: function(t, e, i) {
                        for(var s in void 0 === e && (e = !0), void 0 === i && (i = !1), t && t.hasOwnProperty("fontSize") && "number" == typeof t.fontSize && (t.fontSize = t.fontSize.toString() + "px"), a){
                            var h = i ? a[s][1] : this[s];
                            this[s] = "wordWrapCallback" === s || "wordWrapCallbackScope" === s ? r(t, a[s][0], h) : n(t, a[s][0], h);
                        }
                        var l = r(t, "font", null);
                        null !== l && this.setFont(l, !1), this._font = [
                            this.fontStyle,
                            this.fontSize,
                            this.fontFamily
                        ].join(" ").trim();
                        var u = r(t, "fill", null);
                        null !== u && (this.color = u);
                        var c = r(t, "metrics", !1);
                        return c ? this.metrics = {
                            ascent: r(c, "ascent", 0),
                            descent: r(c, "descent", 0),
                            fontSize: r(c, "fontSize", 0)
                        } : !e && this.metrics || (this.metrics = o(this)), e ? this.parent.updateText() : this.parent;
                    },
                    syncFont: function(t, e) {
                        e.font = this._font;
                    },
                    syncStyle: function(t, e) {
                        e.textBaseline = "alphabetic", e.fillStyle = this.color, e.strokeStyle = this.stroke, e.lineWidth = this.strokeThickness, e.lineCap = "round", e.lineJoin = "round";
                    },
                    syncShadow: function(t, e) {
                        e ? (t.shadowOffsetX = this.shadowOffsetX, t.shadowOffsetY = this.shadowOffsetY, t.shadowColor = this.shadowColor, t.shadowBlur = this.shadowBlur) : (t.shadowOffsetX = 0, t.shadowOffsetY = 0, t.shadowColor = 0, t.shadowBlur = 0);
                    },
                    update: function(t) {
                        return t && (this._font = [
                            this.fontStyle,
                            this.fontSize,
                            this.fontFamily
                        ].join(" ").trim(), this.metrics = o(this)), this.parent.updateText();
                    },
                    setFont: function(t, e) {
                        void 0 === e && (e = !0);
                        var i = t, s = "", n = "";
                        if ("string" != typeof t) i = r(t, "fontFamily", "Courier"), s = r(t, "fontSize", "16px"), n = r(t, "fontStyle", "");
                        else {
                            var o = t.split(" "), a = 0;
                            n = o.length > 2 ? o[a++] : "", s = o[a++] || "16px", i = o[a++] || "Courier";
                        }
                        return i === this.fontFamily && s === this.fontSize && n === this.fontStyle || (this.fontFamily = i, this.fontSize = s, this.fontStyle = n, e && this.update(!0)), this.parent;
                    },
                    setFontFamily: function(t) {
                        return this.fontFamily !== t && (this.fontFamily = t, this.update(!0)), this.parent;
                    },
                    setFontStyle: function(t) {
                        return this.fontStyle !== t && (this.fontStyle = t, this.update(!0)), this.parent;
                    },
                    setFontSize: function(t) {
                        return "number" == typeof t && (t = t.toString() + "px"), this.fontSize !== t && (this.fontSize = t, this.update(!0)), this.parent;
                    },
                    setTestString: function(t) {
                        return this.testString = t, this.update(!0);
                    },
                    setFixedSize: function(t, e) {
                        return this.fixedWidth = t, this.fixedHeight = e, t && (this.parent.width = t), e && (this.parent.height = e), this.update(!1);
                    },
                    setBackgroundColor: function(t) {
                        return this.backgroundColor = t, this.update(!1);
                    },
                    setFill: function(t) {
                        return this.color = t, this.update(!1);
                    },
                    setColor: function(t) {
                        return this.color = t, this.update(!1);
                    },
                    setResolution: function(t) {
                        return this.resolution = t, this.update(!1);
                    },
                    setStroke: function(t, e) {
                        return void 0 === e && (e = this.strokeThickness), void 0 === t && 0 !== this.strokeThickness ? (this.strokeThickness = 0, this.update(!0)) : this.stroke === t && this.strokeThickness === e || (this.stroke = t, this.strokeThickness = e, this.update(!0)), this.parent;
                    },
                    setShadow: function(t, e, i, s, n, r) {
                        return void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = "#000"), void 0 === s && (s = 0), void 0 === n && (n = !1), void 0 === r && (r = !0), this.shadowOffsetX = t, this.shadowOffsetY = e, this.shadowColor = i, this.shadowBlur = s, this.shadowStroke = n, this.shadowFill = r, this.update(!1);
                    },
                    setShadowOffset: function(t, e) {
                        return void 0 === t && (t = 0), void 0 === e && (e = t), this.shadowOffsetX = t, this.shadowOffsetY = e, this.update(!1);
                    },
                    setShadowColor: function(t) {
                        return void 0 === t && (t = "#000"), this.shadowColor = t, this.update(!1);
                    },
                    setShadowBlur: function(t) {
                        return void 0 === t && (t = 0), this.shadowBlur = t, this.update(!1);
                    },
                    setShadowStroke: function(t) {
                        return this.shadowStroke = t, this.update(!1);
                    },
                    setShadowFill: function(t) {
                        return this.shadowFill = t, this.update(!1);
                    },
                    setWordWrapWidth: function(t, e) {
                        return void 0 === e && (e = !1), this.wordWrapWidth = t, this.wordWrapUseAdvanced = e, this.update(!1);
                    },
                    setWordWrapCallback: function(t, e) {
                        return void 0 === e && (e = null), this.wordWrapCallback = t, this.wordWrapCallbackScope = e, this.update(!1);
                    },
                    setAlign: function(t) {
                        return void 0 === t && (t = "left"), this.align = t, this.update(!1);
                    },
                    setMaxLines: function(t) {
                        return void 0 === t && (t = 0), this.maxLines = t, this.update(!1);
                    },
                    getTextMetrics: function() {
                        var t = this.metrics;
                        return {
                            ascent: t.ascent,
                            descent: t.descent,
                            fontSize: t.fontSize
                        };
                    },
                    toJSON: function() {
                        var t = {};
                        for(var e in a)t[e] = this[e];
                        return t.metrics = this.getTextMetrics(), t;
                    },
                    destroy: function() {
                        this.parent = void 0;
                    }
                });
                t.exports = h;
            },
            76128: (t, e, i)=>{
                var s = i(75512);
                t.exports = function(t, e, i, n) {
                    if (0 !== e.width && 0 !== e.height) {
                        i.addToRenderList(e);
                        var r = e.frame, o = r.width, a = r.height, h = s.getTintAppendFloatAlpha, l = t.pipelines.set(e.pipeline, e), u = l.setTexture2D(r.glTexture, e);
                        l.batchTexture(e, r.glTexture, o, a, e.x, e.y, o / e.style.resolution, a / e.style.resolution, e.scaleX, e.scaleY, e.rotation, e.flipX, e.flipY, e.scrollFactorX, e.scrollFactorY, e.displayOriginX, e.displayOriginY, 0, 0, o, a, h(e.tintTopLeft, i.alpha * e._alphaTL), h(e.tintTopRight, i.alpha * e._alphaTR), h(e.tintBottomLeft, i.alpha * e._alphaBL), h(e.tintBottomRight, i.alpha * e._alphaBR), e.tintFill, 0, 0, i, n, !1, u);
                    }
                };
            },
            35856: (t, e, i)=>{
                var s = i(61068), n = i(56694), r = i(64937), o = i(89980), a = i(3504), h = i(8213), l = i(9271), u = i(93736), c = new n({
                    Extends: o,
                    Mixins: [
                        r.Alpha,
                        r.BlendMode,
                        r.ComputedSize,
                        r.Crop,
                        r.Depth,
                        r.Flip,
                        r.GetBounds,
                        r.Mask,
                        r.Origin,
                        r.Pipeline,
                        r.PostPipeline,
                        r.ScrollFactor,
                        r.Tint,
                        r.Transform,
                        r.Visible,
                        l
                    ],
                    initialize: function(t, e, i, n, r, h, l) {
                        var c = t.sys.renderer;
                        o.call(this, t, "TileSprite");
                        var d = t.sys.textures.get(h), f = d.get(l);
                        f.source.compressionAlgorithm && (console.warn("TileSprite cannot use compressed texture"), f = (d = t.sys.textures.get("__MISSING")).get()), "DynamicTexture" === d.type && (console.warn("TileSprite cannot use Dynamic Texture"), f = (d = t.sys.textures.get("__MISSING")).get()), n && r ? (n = Math.floor(n), r = Math.floor(r)) : (n = f.width, r = f.height), this._tilePosition = new u, this._tileScale = new u(1, 1), this.dirty = !1, this.renderer = c, this.canvas = s.create(this, n, r), this.context = this.canvas.getContext("2d", {
                            willReadFrequently: !1
                        }), this.displayTexture = d, this.displayFrame = f, this._crop = this.resetCropObject(), this.texture = t.sys.textures.addCanvas(null, this.canvas, !0), this.frame = this.texture.get(), this.potWidth = a(f.width), this.potHeight = a(f.height), this.fillCanvas = s.create2D(this, this.potWidth, this.potHeight), this.fillContext = this.fillCanvas.getContext("2d", {
                            willReadFrequently: !1
                        }), this.fillPattern = null, this.setPosition(e, i), this.setSize(n, r), this.setFrame(l), this.setOriginFromFrame(), this.initPipeline(), this.initPostPipeline(!0);
                    },
                    setTexture: function(t, e) {
                        return this.displayTexture = this.scene.sys.textures.get(t), this.setFrame(e);
                    },
                    setFrame: function(t) {
                        var e = this.displayTexture.get(t);
                        return this.potWidth = a(e.width), this.potHeight = a(e.height), this.canvas.width = 0, e.cutWidth && e.cutHeight ? this.renderFlags |= 8 : this.renderFlags &= -9, this.displayFrame = e, this.dirty = !0, this.updateTileTexture(), this;
                    },
                    setTilePosition: function(t, e) {
                        return void 0 !== t && (this.tilePositionX = t), void 0 !== e && (this.tilePositionY = e), this;
                    },
                    setTileScale: function(t, e) {
                        return void 0 === t && (t = this.tileScaleX), void 0 === e && (e = t), this.tileScaleX = t, this.tileScaleY = e, this;
                    },
                    updateTileTexture: function() {
                        if (this.dirty && this.renderer) {
                            var t = this.displayFrame;
                            if (t.source.isRenderTexture || t.source.isGLTexture) return console.warn("TileSprites can only use Image or Canvas based textures"), void (this.dirty = !1);
                            var e = this.fillContext, i = this.fillCanvas, s = this.potWidth, n = this.potHeight;
                            this.renderer && this.renderer.gl || (s = t.cutWidth, n = t.cutHeight), e.clearRect(0, 0, s, n), i.width = s, i.height = n, e.drawImage(t.source.image, t.cutX, t.cutY, t.cutWidth, t.cutHeight, 0, 0, s, n), this.renderer && this.renderer.gl ? this.fillPattern = this.renderer.canvasToTexture(i, this.fillPattern) : this.fillPattern = e.createPattern(i, "repeat"), this.updateCanvas(), this.dirty = !1;
                        }
                    },
                    updateCanvas: function() {
                        var t = this.canvas;
                        if (t.width === this.width && t.height === this.height || (t.width = this.width, t.height = this.height, this.frame.setSize(this.width, this.height), this.updateDisplayOrigin(), this.dirty = !0), !this.dirty || this.renderer && this.renderer.gl) this.dirty = !1;
                        else {
                            var e = this.context;
                            this.scene.sys.game.config.antialias || h.disable(e);
                            var i = this._tileScale.x, s = this._tileScale.y, n = this._tilePosition.x, r = this._tilePosition.y;
                            e.clearRect(0, 0, this.width, this.height), e.save(), e.scale(i, s), e.translate(-n, -r), e.fillStyle = this.fillPattern, e.fillRect(n, r, this.width / i, this.height / s), e.restore(), this.dirty = !1;
                        }
                    },
                    preDestroy: function() {
                        this.renderer && this.renderer.gl && this.renderer.deleteTexture(this.fillPattern), s.remove(this.canvas), s.remove(this.fillCanvas), this.fillPattern = null, this.fillContext = null, this.fillCanvas = null, this.displayTexture = null, this.displayFrame = null, this.texture.destroy(), this.renderer = null;
                    },
                    tilePositionX: {
                        get: function() {
                            return this._tilePosition.x;
                        },
                        set: function(t) {
                            this._tilePosition.x = t, this.dirty = !0;
                        }
                    },
                    tilePositionY: {
                        get: function() {
                            return this._tilePosition.y;
                        },
                        set: function(t) {
                            this._tilePosition.y = t, this.dirty = !0;
                        }
                    },
                    tileScaleX: {
                        get: function() {
                            return this._tileScale.x;
                        },
                        set: function(t) {
                            this._tileScale.x = t, this.dirty = !0;
                        }
                    },
                    tileScaleY: {
                        get: function() {
                            return this._tileScale.y;
                        },
                        set: function(t) {
                            this._tileScale.y = t, this.dirty = !0;
                        }
                    }
                });
                t.exports = c;
            },
            93305: (t)=>{
                t.exports = function(t, e, i, s) {
                    e.updateCanvas(), i.addToRenderList(e), t.batchSprite(e, e.frame, i, s);
                };
            },
            63950: (t, e, i)=>{
                var s = i(88933), n = i(99325), r = i(20494), o = i(35856);
                n.register("tileSprite", function(t, e) {
                    void 0 === t && (t = {});
                    var i = r(t, "x", 0), n = r(t, "y", 0), a = r(t, "width", 512), h = r(t, "height", 512), l = r(t, "key", ""), u = r(t, "frame", ""), c = new o(this.scene, i, n, a, h, l, u);
                    return void 0 !== e && (t.add = e), s(this.scene, c, t), c;
                });
            },
            20509: (t, e, i)=>{
                var s = i(35856);
                i(61286).register("tileSprite", function(t, e, i, n, r, o) {
                    return this.displayList.add(new s(this.scene, t, e, i, n, r, o));
                });
            },
            9271: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(74287), r = i(93305), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            74287: (t, e, i)=>{
                var s = i(75512);
                t.exports = function(t, e, i, n) {
                    e.updateCanvas();
                    var r = e.width, o = e.height;
                    if (0 !== r && 0 !== o) {
                        i.addToRenderList(e);
                        var a = s.getTintAppendFloatAlpha, h = t.pipelines.set(e.pipeline, e), l = h.setTexture2D(e.fillPattern, e);
                        h.batchTexture(e, e.fillPattern, e.displayFrame.width * e.tileScaleX, e.displayFrame.height * e.tileScaleY, e.x, e.y, r, o, e.scaleX, e.scaleY, e.rotation, e.flipX, e.flipY, e.scrollFactorX, e.scrollFactorY, e.originX * r, e.originY * o, 0, 0, r, o, a(e.tintTopLeft, i.alpha * e._alphaTL), a(e.tintTopRight, i.alpha * e._alphaTR), a(e.tintBottomLeft, i.alpha * e._alphaBL), a(e.tintBottomRight, i.alpha * e._alphaBR), e.tintFill, e.tilePositionX % e.displayFrame.width / e.displayFrame.width, e.tilePositionY % e.displayFrame.height / e.displayFrame.height, i, n, !1, l);
                    }
                };
            },
            8630: (t, e, i)=>{
                var s = i(82897), n = i(56694), r = i(64937), o = i(56631), a = i(97081), h = i(89980), l = i(83392), u = i(76038), c = i(76583), d = i(77974), f = new n({
                    Extends: h,
                    Mixins: [
                        r.Alpha,
                        r.BlendMode,
                        r.Depth,
                        r.Flip,
                        r.GetBounds,
                        r.Mask,
                        r.Origin,
                        r.Pipeline,
                        r.PostPipeline,
                        r.ScrollFactor,
                        r.Size,
                        r.TextureCrop,
                        r.Tint,
                        r.Transform,
                        r.Visible,
                        d
                    ],
                    initialize: function(t, e, i, s) {
                        h.call(this, t, "Video"), this.video, this.videoTexture, this.videoTextureSource, this.snapshotTexture, this.flipY = !1, this._key = c(), this.touchLocked = !1, this.playWhenUnlocked = !1, this.frameReady = !1, this.isStalled = !1, this.failedPlayAttempts = 0, this.metadata, this.retry = 0, this.retryInterval = 500, this._systemMuted = !1, this._codeMuted = !1, this._systemPaused = !1, this._codePaused = !1, this._callbacks = {
                            ended: this.completeHandler.bind(this),
                            legacy: this.legacyPlayHandler.bind(this),
                            playing: this.playingHandler.bind(this),
                            seeked: this.seekedHandler.bind(this),
                            seeking: this.seekingHandler.bind(this),
                            stalled: this.stalledHandler.bind(this),
                            suspend: this.stalledHandler.bind(this),
                            waiting: this.stalledHandler.bind(this)
                        }, this._loadCallbackHandler = this.loadErrorHandler.bind(this), this._crop = this.resetCropObject(), this.markers = {}, this._markerIn = 0, this._markerOut = 0, this._playingMarker = !1, this._lastUpdate = 0, this.cacheKey = "", this.isSeeking = !1, this._playCalled = !1, this._rfvCallbackId = 0;
                        var n = t.sys.game;
                        this._device = n.device.video, this.setPosition(e, i), this.setSize(256, 256), this.initPipeline(), this.initPostPipeline(!0), n.events.on(a.PAUSE, this.globalPause, this), n.events.on(a.RESUME, this.globalResume, this);
                        var r = t.sys.sound;
                        r && r.on(u.GLOBAL_MUTE, this.globalMute, this), s && this.load(s);
                    },
                    addedToScene: function() {
                        this.scene.sys.updateList.add(this);
                    },
                    removedFromScene: function() {
                        this.scene.sys.updateList.remove(this);
                    },
                    load: function(t) {
                        var e = this.scene.sys.cache.video.get(t);
                        return e ? (this.cacheKey = t, this.loadHandler(e.url, e.noAudio, e.crossOrigin)) : console.warn("No video in cache for key: " + t), this;
                    },
                    changeSource: function(t, e, i, s, n) {
                        void 0 === e && (e = !0), void 0 === i && (i = !1), this.cacheKey !== t && (this.load(t), e && this.play(i, s, n));
                    },
                    getVideoKey: function() {
                        return this.cacheKey;
                    },
                    loadURL: function(t, e, i) {
                        void 0 === e && (e = !1);
                        var s = this._device.getVideoURL(t);
                        return s ? (this.cacheKey = "", this.loadHandler(s.url, e, i)) : console.warn("No supported video format found for " + t), this;
                    },
                    loadMediaStream: function(t, e, i) {
                        return this.loadHandler(null, e, i, t);
                    },
                    loadHandler: function(t, e, i, s) {
                        e || (e = !1);
                        var n = this.video;
                        if (n ? (this.removeLoadEventHandlers(), this.stop()) : ((n = document.createElement("video")).controls = !1, n.setAttribute("playsinline", "playsinline"), n.setAttribute("preload", "auto"), n.setAttribute("disablePictureInPicture", "true")), e ? (n.muted = !0, n.defaultMuted = !0, n.setAttribute("autoplay", "autoplay")) : (n.muted = !1, n.defaultMuted = !1, n.removeAttribute("autoplay")), i ? n.setAttribute("crossorigin", i) : n.removeAttribute("crossorigin"), s) {
                            if ("srcObject" in n) try {
                                n.srcObject = s;
                            } catch (t) {
                                if ("TypeError" !== t.name) throw t;
                                n.src = URL.createObjectURL(s);
                            }
                            else n.src = URL.createObjectURL(s);
                        } else n.src = t;
                        return this.addLoadEventHandlers(), this.retry = 0, this.video = n, this._playCalled = !1, n.load(), this;
                    },
                    requestVideoFrame: function(t, e) {
                        var i = this.video;
                        if (i) {
                            var s = e.width, n = e.height, r = this.videoTexture, a = this.videoTextureSource, h = !r || a.source !== i;
                            h ? (this._codePaused = i.paused, this._codeMuted = i.muted, r ? (a.source = i, a.width = s, a.height = n, r.get().setSize(s, n)) : ((r = this.scene.sys.textures.create(this._key, i, s, n)).add("__BASE", 0, 0, 0, s, n), this.setTexture(r), this.videoTexture = r, this.videoTextureSource = r.source[0], this.videoTextureSource.setFlipY(this.flipY), this.emit(o.VIDEO_TEXTURE, this, r)), this.setSizeToFrame(), this.updateDisplayOrigin()) : a.update(), this.isStalled = !1, this.metadata = e;
                            var l = e.mediaTime;
                            h && (this._lastUpdate = l, this.emit(o.VIDEO_CREATED, this, s, n), this.frameReady || (this.frameReady = !0, this.emit(o.VIDEO_PLAY, this))), this._playingMarker ? l >= this._markerOut && (i.loop ? (i.currentTime = this._markerIn, this.emit(o.VIDEO_LOOP, this)) : (this.stop(!1), this.emit(o.VIDEO_COMPLETE, this))) : l < this._lastUpdate && this.emit(o.VIDEO_LOOP, this), this._lastUpdate = l, this._rfvCallbackId = this.video.requestVideoFrameCallback(this.requestVideoFrame.bind(this));
                        }
                    },
                    play: function(t, e, i) {
                        void 0 === e && (e = -1), void 0 === i && (i = l.MAX_SAFE_INTEGER);
                        var s = this.video;
                        return !s || this.isPlaying() ? (s || console.warn("Video not loaded"), this) : (void 0 === t && (t = s.loop), s.loop = t, this._markerIn = e, this._markerOut = i, this._playingMarker = e > -1 && i > e && i < l.MAX_SAFE_INTEGER, this._playCalled || (this._rfvCallbackId = s.requestVideoFrameCallback(this.requestVideoFrame.bind(this)), this._playCalled = !0, this.createPlayPromise()), this);
                    },
                    addLoadEventHandlers: function() {
                        var t = this.video;
                        t && (t.addEventListener("error", this._loadCallbackHandler), t.addEventListener("abort", this._loadCallbackHandler));
                    },
                    removeLoadEventHandlers: function() {
                        var t = this.video;
                        t && (t.removeEventListener("error", this._loadCallbackHandler), t.removeEventListener("abort", this._loadCallbackHandler));
                    },
                    addEventHandlers: function() {
                        var t = this.video;
                        if (t) {
                            var e = this._callbacks;
                            for(var i in e)t.addEventListener(i, e[i]);
                        }
                    },
                    removeEventHandlers: function() {
                        var t = this.video;
                        if (t) {
                            var e = this._callbacks;
                            for(var i in e)t.removeEventListener(i, e[i]);
                        }
                    },
                    createPlayPromise: function(t) {
                        void 0 === t && (t = !0);
                        var e = this.video, i = e.play();
                        if (void 0 !== i) {
                            var s = this.playSuccess.bind(this), n = this.playError.bind(this);
                            if (!t) {
                                var r = this;
                                n = function() {
                                    r.failedPlayAttempts++;
                                };
                            }
                            i.then(s).catch(n);
                        } else e.addEventListener("playing", this._callbacks.legacy), t || this.failedPlayAttempts++;
                    },
                    addMarker: function(t, e, i) {
                        return !isNaN(e) && e >= 0 && !isNaN(i) && i > e && (this.markers[t] = [
                            e,
                            i
                        ]), this;
                    },
                    playMarker: function(t, e) {
                        var i = this.markers[t];
                        return i && this.play(e, i[0], i[1]), this;
                    },
                    removeMarker: function(t) {
                        return delete this.markers[t], this;
                    },
                    snapshot: function(t, e) {
                        return void 0 === t && (t = this.width), void 0 === e && (e = this.height), this.snapshotArea(0, 0, this.width, this.height, t, e);
                    },
                    snapshotArea: function(t, e, i, s, n, r) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = this.width), void 0 === s && (s = this.height), void 0 === n && (n = i), void 0 === r && (r = s);
                        var o = this.video, a = this.snapshotTexture;
                        return a ? (a.setSize(n, r), o && a.context.drawImage(o, t, e, i, s, 0, 0, n, r)) : (a = this.scene.sys.textures.createCanvas(c(), n, r), this.snapshotTexture = a, o && a.context.drawImage(o, t, e, i, s, 0, 0, n, r)), a.update();
                    },
                    saveSnapshotTexture: function(t) {
                        return this.snapshotTexture ? this.scene.sys.textures.renameTexture(this.snapshotTexture.key, t) : this.snapshotTexture = this.scene.sys.textures.createCanvas(t, this.width, this.height), this.snapshotTexture;
                    },
                    playSuccess: function() {
                        if (this._playCalled) {
                            this.addEventHandlers(), this._codePaused = !1, this.touchLocked && (this.touchLocked = !1, this.emit(o.VIDEO_UNLOCKED, this));
                            var t = this.scene.sys.sound;
                            t && t.mute && this.setMute(!0), this._markerIn > -1 && (this.video.currentTime = this._markerIn);
                        }
                    },
                    playError: function(t) {
                        var e = t.name;
                        "NotAllowedError" === e ? (this.touchLocked = !0, this.playWhenUnlocked = !0, this.failedPlayAttempts = 1, this.emit(o.VIDEO_LOCKED, this)) : "NotSupportedError" === e ? (this.stop(!1), this.emit(o.VIDEO_UNSUPPORTED, this, t)) : (this.stop(!1), this.emit(o.VIDEO_ERROR, this, t));
                    },
                    legacyPlayHandler: function() {
                        var t = this.video;
                        t && (this.playSuccess(), t.removeEventListener("playing", this._callbacks.legacy));
                    },
                    playingHandler: function() {
                        this.isStalled = !1, this.emit(o.VIDEO_PLAYING, this);
                    },
                    loadErrorHandler: function(t) {
                        this.stop(!1), this.emit(o.VIDEO_ERROR, this, t);
                    },
                    stalledHandler: function(t) {
                        this.isStalled = !0, this.emit(o.VIDEO_STALLED, this, t);
                    },
                    completeHandler: function() {
                        this._playCalled = !1, this.emit(o.VIDEO_COMPLETE, this);
                    },
                    preUpdate: function(t, e) {
                        this.video && this._playCalled && this.touchLocked && this.playWhenUnlocked && (this.retry += e, this.retry >= this.retryInterval && (this.createPlayPromise(!1), this.retry = 0));
                    },
                    seekTo: function(t) {
                        var e = this.video;
                        if (e) {
                            var i = e.duration;
                            if (i !== 1 / 0 && !isNaN(i)) {
                                var s = i * t;
                                this.setCurrentTime(s);
                            }
                        }
                        return this;
                    },
                    getCurrentTime: function() {
                        return this.video ? this.video.currentTime : 0;
                    },
                    setCurrentTime: function(t) {
                        var e = this.video;
                        if (e) {
                            if ("string" == typeof t) {
                                var i = t[0], s = parseFloat(t.substr(1));
                                "+" === i ? t = e.currentTime + s : "-" === i && (t = e.currentTime - s);
                            }
                            e.currentTime = t;
                        }
                        return this;
                    },
                    seekingHandler: function() {
                        this.isSeeking = !0, this.emit(o.VIDEO_SEEKING, this);
                    },
                    seekedHandler: function() {
                        this.isSeeking = !1, this.emit(o.VIDEO_SEEKED, this);
                    },
                    getProgress: function() {
                        var t = this.video;
                        if (t) {
                            var e = t.duration;
                            if (e !== 1 / 0 && !isNaN(e)) return t.currentTime / e;
                        }
                        return -1;
                    },
                    getDuration: function() {
                        return this.video ? this.video.duration : 0;
                    },
                    setMute: function(t) {
                        void 0 === t && (t = !0), this._codeMuted = t;
                        var e = this.video;
                        return e && (e.muted = !!this._systemMuted || t), this;
                    },
                    isMuted: function() {
                        return this._codeMuted;
                    },
                    globalMute: function(t, e) {
                        this._systemMuted = e;
                        var i = this.video;
                        i && (i.muted = !!this._codeMuted || e);
                    },
                    globalPause: function() {
                        this._systemPaused = !0, this.video && !this.video.ended && (this.removeEventHandlers(), this.video.pause());
                    },
                    globalResume: function() {
                        this._systemPaused = !1, !this.video || this._codePaused || this.video.ended || this.createPlayPromise();
                    },
                    setPaused: function(t) {
                        void 0 === t && (t = !0);
                        var e = this.video;
                        return this._codePaused = t, e && !e.ended && (t ? e.paused || (this.removeEventHandlers(), e.pause()) : t || (this._playCalled ? e.paused && !this._systemPaused && this.createPlayPromise() : this.play())), this;
                    },
                    pause: function() {
                        return this.setPaused(!0);
                    },
                    resume: function() {
                        return this.setPaused(!1);
                    },
                    getVolume: function() {
                        return this.video ? this.video.volume : 1;
                    },
                    setVolume: function(t) {
                        return void 0 === t && (t = 1), this.video && (this.video.volume = s(t, 0, 1)), this;
                    },
                    getPlaybackRate: function() {
                        return this.video ? this.video.playbackRate : 1;
                    },
                    setPlaybackRate: function(t) {
                        return this.video && (this.video.playbackRate = t), this;
                    },
                    getLoop: function() {
                        return !!this.video && this.video.loop;
                    },
                    setLoop: function(t) {
                        return void 0 === t && (t = !0), this.video && (this.video.loop = t), this;
                    },
                    isPlaying: function() {
                        return !!this.video && !(this.video.paused || this.video.ended);
                    },
                    isPaused: function() {
                        return this.video && this._playCalled && this.video.paused || this._codePaused || this._systemPaused;
                    },
                    saveTexture: function(t, e) {
                        return void 0 === e && (e = !1), this.videoTexture && (this.scene.sys.textures.renameTexture(this._key, t), this.videoTextureSource.setFlipY(e)), this._key = t, this.flipY = e, !!this.videoTexture;
                    },
                    stop: function(t) {
                        void 0 === t && (t = !0);
                        var e = this.video;
                        return e && (this.removeEventHandlers(), e.cancelVideoFrameCallback(this._rfvCallbackId), e.pause()), this.retry = 0, this._playCalled = !1, t && this.emit(o.VIDEO_STOP, this), this;
                    },
                    removeVideoElement: function() {
                        var t = this.video;
                        if (t) {
                            for(t.parentNode && t.parentNode.removeChild(t); t.hasChildNodes();)t.removeChild(t.firstChild);
                            t.removeAttribute("autoplay"), t.removeAttribute("src"), this.video = null;
                        }
                    },
                    preDestroy: function() {
                        this.stop(!1), this.removeLoadEventHandlers(), this.removeVideoElement();
                        var t = this.scene.sys.game.events;
                        t.off(a.PAUSE, this.globalPause, this), t.off(a.RESUME, this.globalResume, this);
                        var e = this.scene.sys.sound;
                        e && e.off(u.GLOBAL_MUTE, this.globalMute, this);
                    }
                });
                t.exports = f;
            },
            56933: (t)=>{
                t.exports = function(t, e, i, s) {
                    e.videoTexture && (i.addToRenderList(e), t.batchSprite(e, e.frame, i, s));
                };
            },
            65601: (t, e, i)=>{
                var s = i(88933), n = i(99325), r = i(20494), o = i(8630);
                n.register("video", function(t, e) {
                    void 0 === t && (t = {});
                    var i = r(t, "key", null), n = new o(this.scene, 0, 0, i);
                    return void 0 !== e && (t.add = e), s(this.scene, n, t), n;
                });
            },
            215: (t, e, i)=>{
                var s = i(8630);
                i(61286).register("video", function(t, e, i) {
                    return this.displayList.add(new s(this.scene, t, e, i));
                });
            },
            77974: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(83572), r = i(56933), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            83572: (t)=>{
                t.exports = function(t, e, i, s) {
                    e.videoTexture && (i.addToRenderList(e), e.pipeline.batchSprite(e, i, s));
                };
            },
            71030: (t, e, i)=>{
                var s = i(95723), n = i(26673), r = i(65650), o = i(56694), a = i(64937), h = i(89980), l = i(74118), u = i(94287), c = new o({
                    Extends: h,
                    Mixins: [
                        a.Depth,
                        a.GetBounds,
                        a.Origin,
                        a.Transform,
                        a.ScrollFactor,
                        a.Visible
                    ],
                    initialize: function(t, e, i, n, r) {
                        void 0 === n && (n = 1), void 0 === r && (r = n), h.call(this, t, "Zone"), this.setPosition(e, i), this.width = n, this.height = r, this.blendMode = s.NORMAL, this.updateDisplayOrigin();
                    },
                    displayWidth: {
                        get: function() {
                            return this.scaleX * this.width;
                        },
                        set: function(t) {
                            this.scaleX = t / this.width;
                        }
                    },
                    displayHeight: {
                        get: function() {
                            return this.scaleY * this.height;
                        },
                        set: function(t) {
                            this.scaleY = t / this.height;
                        }
                    },
                    setSize: function(t, e, i) {
                        void 0 === i && (i = !0), this.width = t, this.height = e, this.updateDisplayOrigin();
                        var s = this.input;
                        return i && s && !s.customHitArea && (s.hitArea.width = t, s.hitArea.height = e), this;
                    },
                    setDisplaySize: function(t, e) {
                        return this.displayWidth = t, this.displayHeight = e, this;
                    },
                    setCircleDropZone: function(t) {
                        return this.setDropZone(new n(0, 0, t), r);
                    },
                    setRectangleDropZone: function(t, e) {
                        return this.setDropZone(new l(0, 0, t, e), u);
                    },
                    setDropZone: function(t, e) {
                        return this.input || this.setInteractive(t, e, !0), this;
                    },
                    setAlpha: function() {},
                    setBlendMode: function() {},
                    renderCanvas: function(t, e, i) {
                        i.addToRenderList(e);
                    },
                    renderWebGL: function(t, e, i) {
                        i.addToRenderList(e);
                    }
                });
                t.exports = c;
            },
            24067: (t, e, i)=>{
                var s = i(99325), n = i(20494), r = i(71030);
                s.register("zone", function(t) {
                    var e = n(t, "x", 0), i = n(t, "y", 0), s = n(t, "width", 1), o = n(t, "height", s);
                    return new r(this.scene, e, i, s, o);
                });
            },
            34546: (t, e, i)=>{
                var s = i(71030);
                i(61286).register("zone", function(t, e, i, n) {
                    return this.displayList.add(new s(this.scene, t, e, i, n));
                });
            },
            95847: (t)=>{
                t.exports = function(t) {
                    return t.radius > 0 ? Math.PI * t.radius * t.radius : 0;
                };
            },
            26673: (t, e, i)=>{
                var s = i(56694), n = i(65650), r = i(94026), o = i(62941), a = i(52394), h = i(30977), l = new s({
                    initialize: function(t, e, i) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), this.type = a.CIRCLE, this.x = t, this.y = e, this._radius = i, this._diameter = 2 * i;
                    },
                    contains: function(t, e) {
                        return n(this, t, e);
                    },
                    getPoint: function(t, e) {
                        return r(this, t, e);
                    },
                    getPoints: function(t, e, i) {
                        return o(this, t, e, i);
                    },
                    getRandomPoint: function(t) {
                        return h(this, t);
                    },
                    setTo: function(t, e, i) {
                        return this.x = t, this.y = e, this._radius = i, this._diameter = 2 * i, this;
                    },
                    setEmpty: function() {
                        return this._radius = 0, this._diameter = 0, this;
                    },
                    setPosition: function(t, e) {
                        return void 0 === e && (e = t), this.x = t, this.y = e, this;
                    },
                    isEmpty: function() {
                        return this._radius <= 0;
                    },
                    radius: {
                        get: function() {
                            return this._radius;
                        },
                        set: function(t) {
                            this._radius = t, this._diameter = 2 * t;
                        }
                    },
                    diameter: {
                        get: function() {
                            return this._diameter;
                        },
                        set: function(t) {
                            this._diameter = t, this._radius = .5 * t;
                        }
                    },
                    left: {
                        get: function() {
                            return this.x - this._radius;
                        },
                        set: function(t) {
                            this.x = t + this._radius;
                        }
                    },
                    right: {
                        get: function() {
                            return this.x + this._radius;
                        },
                        set: function(t) {
                            this.x = t - this._radius;
                        }
                    },
                    top: {
                        get: function() {
                            return this.y - this._radius;
                        },
                        set: function(t) {
                            this.y = t + this._radius;
                        }
                    },
                    bottom: {
                        get: function() {
                            return this.y + this._radius;
                        },
                        set: function(t) {
                            this.y = t - this._radius;
                        }
                    }
                });
                t.exports = l;
            },
            37964: (t)=>{
                t.exports = function(t) {
                    return Math.PI * t.radius * 2;
                };
            },
            72233: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e, i) {
                    return void 0 === i && (i = new s), i.x = t.x + t.radius * Math.cos(e), i.y = t.y + t.radius * Math.sin(e), i;
                };
            },
            61761: (t, e, i)=>{
                var s = i(26673);
                t.exports = function(t) {
                    return new s(t.x, t.y, t.radius);
                };
            },
            65650: (t)=>{
                t.exports = function(t, e, i) {
                    return t.radius > 0 && e >= t.left && e <= t.right && i >= t.top && i <= t.bottom && (t.x - e) * (t.x - e) + (t.y - i) * (t.y - i) <= t.radius * t.radius;
                };
            },
            39187: (t, e, i)=>{
                var s = i(65650);
                t.exports = function(t, e) {
                    return s(t, e.x, e.y);
                };
            },
            58672: (t, e, i)=>{
                var s = i(65650);
                t.exports = function(t, e) {
                    return s(t, e.x, e.y) && s(t, e.right, e.y) && s(t, e.x, e.bottom) && s(t, e.right, e.bottom);
                };
            },
            42997: (t)=>{
                t.exports = function(t, e) {
                    return e.setTo(t.x, t.y, t.radius);
                };
            },
            94894: (t)=>{
                t.exports = function(t, e) {
                    return t.x === e.x && t.y === e.y && t.radius === e.radius;
                };
            },
            48027: (t, e, i)=>{
                var s = i(74118);
                t.exports = function(t, e) {
                    return void 0 === e && (e = new s), e.x = t.left, e.y = t.top, e.width = t.diameter, e.height = t.diameter, e;
                };
            },
            94026: (t, e, i)=>{
                var s = i(72233), n = i(91806), r = i(83392), o = i(79967);
                t.exports = function(t, e, i) {
                    void 0 === i && (i = new o);
                    var a = n(e, 0, r.PI2);
                    return s(t, a, i);
                };
            },
            62941: (t, e, i)=>{
                var s = i(37964), n = i(72233), r = i(91806), o = i(83392);
                t.exports = function(t, e, i, a) {
                    void 0 === a && (a = []), !e && i > 0 && (e = s(t) / i);
                    for(var h = 0; h < e; h++){
                        var l = r(h / e, 0, o.PI2);
                        a.push(n(t, l));
                    }
                    return a;
                };
            },
            34585: (t)=>{
                t.exports = function(t, e, i) {
                    return t.x += e, t.y += i, t;
                };
            },
            88665: (t)=>{
                t.exports = function(t, e) {
                    return t.x += e.x, t.y += e.y, t;
                };
            },
            30977: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e) {
                    void 0 === e && (e = new s);
                    var i = 2 * Math.PI * Math.random(), n = Math.random() + Math.random(), r = n > 1 ? 2 - n : n, o = r * Math.cos(i), a = r * Math.sin(i);
                    return e.x = t.x + o * t.radius, e.y = t.y + a * t.radius, e;
                };
            },
            6112: (t, e, i)=>{
                var s = i(26673);
                s.Area = i(95847), s.Circumference = i(37964), s.CircumferencePoint = i(72233), s.Clone = i(61761), s.Contains = i(65650), s.ContainsPoint = i(39187), s.ContainsRect = i(58672), s.CopyFrom = i(42997), s.Equals = i(94894), s.GetBounds = i(48027), s.GetPoint = i(94026), s.GetPoints = i(62941), s.Offset = i(34585), s.OffsetPoint = i(88665), s.Random = i(30977), t.exports = s;
            },
            52394: (t)=>{
                t.exports = {
                    CIRCLE: 0,
                    ELLIPSE: 1,
                    LINE: 2,
                    POINT: 3,
                    POLYGON: 4,
                    RECTANGLE: 5,
                    TRIANGLE: 6
                };
            },
            58605: (t)=>{
                t.exports = function(t) {
                    return t.isEmpty() ? 0 : t.getMajorRadius() * t.getMinorRadius() * Math.PI;
                };
            },
            39507: (t)=>{
                t.exports = function(t) {
                    var e = t.width / 2, i = t.height / 2, s = Math.pow(e - i, 2) / Math.pow(e + i, 2);
                    return Math.PI * (e + i) * (1 + 3 * s / (10 + Math.sqrt(4 - 3 * s)));
                };
            },
            86998: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e, i) {
                    void 0 === i && (i = new s);
                    var n = t.width / 2, r = t.height / 2;
                    return i.x = t.x + n * Math.cos(e), i.y = t.y + r * Math.sin(e), i;
                };
            },
            81773: (t, e, i)=>{
                var s = i(95669);
                t.exports = function(t) {
                    return new s(t.x, t.y, t.width, t.height);
                };
            },
            72313: (t)=>{
                t.exports = function(t, e, i) {
                    if (t.width <= 0 || t.height <= 0) return !1;
                    var s = (e - t.x) / t.width, n = (i - t.y) / t.height;
                    return (s *= s) + (n *= n) < .25;
                };
            },
            34368: (t, e, i)=>{
                var s = i(72313);
                t.exports = function(t, e) {
                    return s(t, e.x, e.y);
                };
            },
            71431: (t, e, i)=>{
                var s = i(72313);
                t.exports = function(t, e) {
                    return s(t, e.x, e.y) && s(t, e.right, e.y) && s(t, e.x, e.bottom) && s(t, e.right, e.bottom);
                };
            },
            75459: (t)=>{
                t.exports = function(t, e) {
                    return e.setTo(t.x, t.y, t.width, t.height);
                };
            },
            95669: (t, e, i)=>{
                var s = i(56694), n = i(72313), r = i(95340), o = i(54978), a = i(52394), h = i(72006), l = new s({
                    initialize: function(t, e, i, s) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 0), this.type = a.ELLIPSE, this.x = t, this.y = e, this.width = i, this.height = s;
                    },
                    contains: function(t, e) {
                        return n(this, t, e);
                    },
                    getPoint: function(t, e) {
                        return r(this, t, e);
                    },
                    getPoints: function(t, e, i) {
                        return o(this, t, e, i);
                    },
                    getRandomPoint: function(t) {
                        return h(this, t);
                    },
                    setTo: function(t, e, i, s) {
                        return this.x = t, this.y = e, this.width = i, this.height = s, this;
                    },
                    setEmpty: function() {
                        return this.width = 0, this.height = 0, this;
                    },
                    setPosition: function(t, e) {
                        return void 0 === e && (e = t), this.x = t, this.y = e, this;
                    },
                    setSize: function(t, e) {
                        return void 0 === e && (e = t), this.width = t, this.height = e, this;
                    },
                    isEmpty: function() {
                        return this.width <= 0 || this.height <= 0;
                    },
                    getMinorRadius: function() {
                        return Math.min(this.width, this.height) / 2;
                    },
                    getMajorRadius: function() {
                        return Math.max(this.width, this.height) / 2;
                    },
                    left: {
                        get: function() {
                            return this.x - this.width / 2;
                        },
                        set: function(t) {
                            this.x = t + this.width / 2;
                        }
                    },
                    right: {
                        get: function() {
                            return this.x + this.width / 2;
                        },
                        set: function(t) {
                            this.x = t - this.width / 2;
                        }
                    },
                    top: {
                        get: function() {
                            return this.y - this.height / 2;
                        },
                        set: function(t) {
                            this.y = t + this.height / 2;
                        }
                    },
                    bottom: {
                        get: function() {
                            return this.y + this.height / 2;
                        },
                        set: function(t) {
                            this.y = t - this.height / 2;
                        }
                    }
                });
                t.exports = l;
            },
            98068: (t)=>{
                t.exports = function(t, e) {
                    return t.x === e.x && t.y === e.y && t.width === e.width && t.height === e.height;
                };
            },
            72897: (t, e, i)=>{
                var s = i(74118);
                t.exports = function(t, e) {
                    return void 0 === e && (e = new s), e.x = t.left, e.y = t.top, e.width = t.width, e.height = t.height, e;
                };
            },
            95340: (t, e, i)=>{
                var s = i(86998), n = i(91806), r = i(83392), o = i(79967);
                t.exports = function(t, e, i) {
                    void 0 === i && (i = new o);
                    var a = n(e, 0, r.PI2);
                    return s(t, a, i);
                };
            },
            54978: (t, e, i)=>{
                var s = i(39507), n = i(86998), r = i(91806), o = i(83392);
                t.exports = function(t, e, i, a) {
                    void 0 === a && (a = []), !e && i > 0 && (e = s(t) / i);
                    for(var h = 0; h < e; h++){
                        var l = r(h / e, 0, o.PI2);
                        a.push(n(t, l));
                    }
                    return a;
                };
            },
            77951: (t)=>{
                t.exports = function(t, e, i) {
                    return t.x += e, t.y += i, t;
                };
            },
            36233: (t)=>{
                t.exports = function(t, e) {
                    return t.x += e.x, t.y += e.y, t;
                };
            },
            72006: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e) {
                    void 0 === e && (e = new s);
                    var i = Math.random() * Math.PI * 2, n = Math.sqrt(Math.random());
                    return e.x = t.x + n * Math.cos(i) * t.width / 2, e.y = t.y + n * Math.sin(i) * t.height / 2, e;
                };
            },
            40652: (t, e, i)=>{
                var s = i(95669);
                s.Area = i(58605), s.Circumference = i(39507), s.CircumferencePoint = i(86998), s.Clone = i(81773), s.Contains = i(72313), s.ContainsPoint = i(34368), s.ContainsRect = i(71431), s.CopyFrom = i(75459), s.Equals = i(98068), s.GetBounds = i(72897), s.GetPoint = i(95340), s.GetPoints = i(54978), s.Offset = i(77951), s.OffsetPoint = i(36233), s.Random = i(72006), t.exports = s;
            },
            84068: (t, e, i)=>{
                var s = i(52394), n = i(98611), r = {
                    Circle: i(6112),
                    Ellipse: i(40652),
                    Intersects: i(7563),
                    Line: i(28482),
                    Mesh: i(14293),
                    Point: i(63472),
                    Polygon: i(44359),
                    Rectangle: i(66658),
                    Triangle: i(87619)
                };
                r = n(!1, r, s), t.exports = r;
            },
            22184: (t, e, i)=>{
                var s = i(53996);
                t.exports = function(t, e) {
                    return s(t.x, t.y, e.x, e.y) <= t.radius + e.radius;
                };
            },
            26535: (t)=>{
                t.exports = function(t, e) {
                    var i = e.width / 2, s = e.height / 2, n = Math.abs(t.x - e.x - i), r = Math.abs(t.y - e.y - s), o = i + t.radius, a = s + t.radius;
                    if (n > o || r > a) return !1;
                    if (n <= i || r <= s) return !0;
                    var h = n - i, l = r - s;
                    return h * h + l * l <= t.radius * t.radius;
                };
            },
            71145: (t, e, i)=>{
                var s = i(79967), n = i(22184);
                t.exports = function(t, e, i) {
                    if (void 0 === i && (i = []), n(t, e)) {
                        var r, o, a, h, l = t.x, u = t.y, c = t.radius, d = e.x, f = e.y, p = e.radius;
                        if (u === f) 0 === (a = (o = -2 * f) * o - 4 * (r = 1) * (d * d + (h = (p * p - c * c - d * d + l * l) / (2 * (l - d))) * h - 2 * d * h + f * f - p * p)) ? i.push(new s(h, -o / (2 * r))) : a > 0 && (i.push(new s(h, (-o + Math.sqrt(a)) / (2 * r))), i.push(new s(h, (-o - Math.sqrt(a)) / (2 * r))));
                        else {
                            var v = (l - d) / (u - f), g = (p * p - c * c - d * d + l * l - f * f + u * u) / (2 * (u - f));
                            0 === (a = (o = 2 * u * v - 2 * g * v - 2 * l) * o - 4 * (r = v * v + 1) * (l * l + u * u + g * g - c * c - 2 * u * g)) ? (h = -o / (2 * r), i.push(new s(h, g - h * v))) : a > 0 && (h = (-o + Math.sqrt(a)) / (2 * r), i.push(new s(h, g - h * v)), h = (-o - Math.sqrt(a)) / (2 * r), i.push(new s(h, g - h * v)));
                        }
                    }
                    return i;
                };
            },
            62508: (t, e, i)=>{
                var s = i(26111), n = i(26535);
                t.exports = function(t, e, i) {
                    if (void 0 === i && (i = []), n(t, e)) {
                        var r = e.getLineA(), o = e.getLineB(), a = e.getLineC(), h = e.getLineD();
                        s(r, t, i), s(o, t, i), s(a, t, i), s(h, t, i);
                    }
                    return i;
                };
            },
            26111: (t, e, i)=>{
                var s = i(79967), n = i(61472);
                t.exports = function(t, e, i) {
                    if (void 0 === i && (i = []), n(t, e)) {
                        var r, o, a = t.x1, h = t.y1, l = t.x2, u = t.y2, c = e.x, d = e.y, f = e.radius, p = l - a, v = u - h, g = a - c, m = h - d, y = p * p + v * v, x = 2 * (p * g + v * m), T = x * x - 4 * y * (g * g + m * m - f * f);
                        if (0 === T) {
                            var w = -x / (2 * y);
                            r = a + w * p, o = h + w * v, w >= 0 && w <= 1 && i.push(new s(r, o));
                        } else if (T > 0) {
                            var b = (-x - Math.sqrt(T)) / (2 * y);
                            r = a + b * p, o = h + b * v, b >= 0 && b <= 1 && i.push(new s(r, o));
                            var S = (-x + Math.sqrt(T)) / (2 * y);
                            r = a + S * p, o = h + S * v, S >= 0 && S <= 1 && i.push(new s(r, o));
                        }
                    }
                    return i;
                };
            },
            96537: (t, e, i)=>{
                var s = i(70015);
                t.exports = function(t, e, i, n) {
                    void 0 === i && (i = !1);
                    var r, o, a, h = t.x1, l = t.y1, u = t.x2, c = t.y2, d = e.x1, f = e.y1, p = u - h, v = c - l, g = e.x2 - d, m = e.y2 - f, y = p * m - v * g;
                    if (0 === y) return null;
                    if (i) {
                        if ((o = (d + g * (r = (p * (f - l) + v * (h - d)) / (g * v - m * p)) - h) / p) < 0 || r < 0 || r > 1) return null;
                        a = o;
                    } else {
                        if (o = ((l - f) * p - (h - d) * v) / y, (r = ((d - h) * m - (f - l) * g) / y) < 0 || r > 1 || o < 0 || o > 1) return null;
                        a = r;
                    }
                    return void 0 === n && (n = new s), n.set(h + p * a, l + v * a, a);
                };
            },
            17647: (t, e, i)=>{
                var s = i(96537), n = i(88829), r = i(70015), o = new n, a = new r;
                t.exports = function(t, e, i, n) {
                    void 0 === i && (i = !1), void 0 === n && (n = new r);
                    var h = !1;
                    n.set(), a.set();
                    for(var l = e[0], u = 1; u < e.length; u++){
                        var c = e[u];
                        o.setTo(l.x, l.y, c.x, c.y), l = c, s(t, o, i, a) && (!h || a.z < n.z) && (n.copy(a), h = !0);
                    }
                    return h ? n : null;
                };
            },
            68439: (t, e, i)=>{
                var s = i(70015), n = i(51729), r = i(17647), o = new s;
                t.exports = function(t, e, i, s) {
                    void 0 === s && (s = new n), Array.isArray(e) || (e = [
                        e
                    ]);
                    var a = !1;
                    s.set(), o.set();
                    for(var h = 0; h < e.length; h++)r(t, e[h].points, i, o) && (!a || o.z < s.z) && (s.set(o.x, o.y, o.z, h), a = !0);
                    return a ? s : null;
                };
            },
            9569: (t, e, i)=>{
                var s = i(79967), n = i(25227), r = i(47910);
                t.exports = function(t, e, i) {
                    if (void 0 === i && (i = []), r(t, e)) for(var o = e.getLineA(), a = e.getLineB(), h = e.getLineC(), l = e.getLineD(), u = [
                        new s,
                        new s,
                        new s,
                        new s
                    ], c = [
                        n(o, t, u[0]),
                        n(a, t, u[1]),
                        n(h, t, u[2]),
                        n(l, t, u[3])
                    ], d = 0; d < 4; d++)c[d] && i.push(u[d]);
                    return i;
                };
            },
            7449: (t, e, i)=>{
                var s = i(51729), n = i(68439), r = new (i(88829));
                function o(t, e, i, o, a) {
                    var h = Math.cos(t), l = Math.sin(t);
                    r.setTo(e, i, e + h, i + l);
                    var u = n(r, o, !0);
                    u && a.push(new s(u.x, u.y, t, u.w));
                }
                function a(t, e) {
                    return t.z - e.z;
                }
                t.exports = function(t, e, i) {
                    Array.isArray(i) || (i = [
                        i
                    ]);
                    for(var s = [], n = [], r = 0; r < i.length; r++)for(var h = i[r].points, l = 0; l < h.length; l++){
                        var u = Math.atan2(h[l].y - e, h[l].x - t);
                        -1 === n.indexOf(u) && (o(u, t, e, i, s), o(u - 1e-5, t, e, i, s), o(u + 1e-5, t, e, i, s), n.push(u));
                    }
                    return s.sort(a);
                };
            },
            82931: (t, e, i)=>{
                var s = i(74118), n = i(90205);
                t.exports = function(t, e, i) {
                    return void 0 === i && (i = new s), n(t, e) && (i.x = Math.max(t.x, e.x), i.y = Math.max(t.y, e.y), i.width = Math.min(t.right, e.right) - i.x, i.height = Math.min(t.bottom, e.bottom) - i.y), i;
                };
            },
            1946: (t, e, i)=>{
                var s = i(9569), n = i(90205);
                t.exports = function(t, e, i) {
                    if (void 0 === i && (i = []), n(t, e)) {
                        var r = t.getLineA(), o = t.getLineB(), a = t.getLineC(), h = t.getLineD();
                        s(r, e, i), s(o, e, i), s(a, e, i), s(h, e, i);
                    }
                    return i;
                };
            },
            34211: (t, e, i)=>{
                var s = i(20370), n = i(9569);
                t.exports = function(t, e, i) {
                    if (void 0 === i && (i = []), s(t, e)) {
                        var r = e.getLineA(), o = e.getLineB(), a = e.getLineC();
                        n(r, t, i), n(o, t, i), n(a, t, i);
                    }
                    return i;
                };
            },
            80511: (t, e, i)=>{
                var s = i(26111), n = i(48411);
                t.exports = function(t, e, i) {
                    if (void 0 === i && (i = []), n(t, e)) {
                        var r = t.getLineA(), o = t.getLineB(), a = t.getLineC();
                        s(r, e, i), s(o, e, i), s(a, e, i);
                    }
                    return i;
                };
            },
            31343: (t, e, i)=>{
                var s = i(79967), n = i(86117), r = i(25227);
                t.exports = function(t, e, i) {
                    if (void 0 === i && (i = []), n(t, e)) for(var o = t.getLineA(), a = t.getLineB(), h = t.getLineC(), l = [
                        new s,
                        new s,
                        new s
                    ], u = [
                        r(o, e, l[0]),
                        r(a, e, l[1]),
                        r(h, e, l[2])
                    ], c = 0; c < 3; c++)u[c] && i.push(l[c]);
                    return i;
                };
            },
            70534: (t, e, i)=>{
                var s = i(23589), n = i(31343);
                t.exports = function(t, e, i) {
                    if (void 0 === i && (i = []), s(t, e)) {
                        var r = e.getLineA(), o = e.getLineB(), a = e.getLineC();
                        n(t, r, i), n(t, o, i), n(t, a, i);
                    }
                    return i;
                };
            },
            61472: (t, e, i)=>{
                var s = i(65650), n = new (i(79967));
                t.exports = function(t, e, i) {
                    if (void 0 === i && (i = n), s(e, t.x1, t.y1)) return i.x = t.x1, i.y = t.y1, !0;
                    if (s(e, t.x2, t.y2)) return i.x = t.x2, i.y = t.y2, !0;
                    var r = t.x2 - t.x1, o = t.y2 - t.y1, a = e.x - t.x1, h = e.y - t.y1, l = r * r + o * o, u = r, c = o;
                    if (l > 0) {
                        var d = (a * r + h * o) / l;
                        u *= d, c *= d;
                    }
                    return i.x = t.x1 + u, i.y = t.y1 + c, u * u + c * c <= l && u * r + c * o >= 0 && s(e, i.x, i.y);
                };
            },
            25227: (t)=>{
                t.exports = function(t, e, i) {
                    var s = t.x1, n = t.y1, r = t.x2, o = t.y2, a = e.x1, h = e.y1, l = e.x2, u = e.y2;
                    if (s === r && n === o || a === l && h === u) return !1;
                    var c = (u - h) * (r - s) - (l - a) * (o - n);
                    if (0 === c) return !1;
                    var d = ((l - a) * (n - h) - (u - h) * (s - a)) / c, f = ((r - s) * (n - h) - (o - n) * (s - a)) / c;
                    return !(d < 0 || d > 1 || f < 0 || f > 1) && (i && (i.x = s + d * (r - s), i.y = n + d * (o - n)), !0);
                };
            },
            47910: (t)=>{
                t.exports = function(t, e) {
                    var i = t.x1, s = t.y1, n = t.x2, r = t.y2, o = e.x, a = e.y, h = e.right, l = e.bottom, u = 0;
                    if (i >= o && i <= h && s >= a && s <= l || n >= o && n <= h && r >= a && r <= l) return !0;
                    if (i < o && n >= o) {
                        if ((u = s + (r - s) * (o - i) / (n - i)) > a && u <= l) return !0;
                    } else if (i > h && n <= h && (u = s + (r - s) * (h - i) / (n - i)) >= a && u <= l) return !0;
                    if (s < a && r >= a) {
                        if ((u = i + (n - i) * (a - s) / (r - s)) >= o && u <= h) return !0;
                    } else if (s > l && r <= l && (u = i + (n - i) * (l - s) / (r - s)) >= o && u <= h) return !0;
                    return !1;
                };
            },
            34426: (t)=>{
                t.exports = function(t, e, i) {
                    void 0 === i && (i = 1);
                    var s = e.x1, n = e.y1, r = e.x2, o = e.y2, a = t.x, h = t.y, l = (r - s) * (r - s) + (o - n) * (o - n);
                    if (0 === l) return !1;
                    var u = ((a - s) * (r - s) + (h - n) * (o - n)) / l;
                    if (u < 0) return Math.sqrt((s - a) * (s - a) + (n - h) * (n - h)) <= i;
                    if (u >= 0 && u <= 1) {
                        var c = ((n - h) * (r - s) - (s - a) * (o - n)) / l;
                        return Math.abs(c) * Math.sqrt(l) <= i;
                    }
                    return Math.sqrt((r - a) * (r - a) + (o - h) * (o - h)) <= i;
                };
            },
            81414: (t, e, i)=>{
                var s = i(34426);
                t.exports = function(t, e) {
                    if (!s(t, e)) return !1;
                    var i = Math.min(e.x1, e.x2), n = Math.max(e.x1, e.x2), r = Math.min(e.y1, e.y2), o = Math.max(e.y1, e.y2);
                    return t.x >= i && t.x <= n && t.y >= r && t.y <= o;
                };
            },
            90205: (t)=>{
                t.exports = function(t, e) {
                    return !(t.width <= 0 || t.height <= 0 || e.width <= 0 || e.height <= 0) && !(t.right < e.x || t.bottom < e.y || t.x > e.right || t.y > e.bottom);
                };
            },
            20370: (t, e, i)=>{
                var s = i(25227), n = i(94287), r = i(86875), o = i(87279);
                t.exports = function(t, e) {
                    if (e.left > t.right || e.right < t.left || e.top > t.bottom || e.bottom < t.top) return !1;
                    var i = e.getLineA(), a = e.getLineB(), h = e.getLineC();
                    if (n(t, i.x1, i.y1) || n(t, i.x2, i.y2)) return !0;
                    if (n(t, a.x1, a.y1) || n(t, a.x2, a.y2)) return !0;
                    if (n(t, h.x1, h.y1) || n(t, h.x2, h.y2)) return !0;
                    var l = t.getLineA(), u = t.getLineB(), c = t.getLineC(), d = t.getLineD();
                    if (s(i, l) || s(i, u) || s(i, c) || s(i, d)) return !0;
                    if (s(a, l) || s(a, u) || s(a, c) || s(a, d)) return !0;
                    if (s(h, l) || s(h, u) || s(h, c) || s(h, d)) return !0;
                    var f = o(t);
                    return r(e, f, !0).length > 0;
                };
            },
            8786: (t)=>{
                t.exports = function(t, e, i, s, n, r) {
                    return void 0 === r && (r = 0), !(e > t.right + r || i < t.left - r || s > t.bottom + r || n < t.top - r);
                };
            },
            48411: (t, e, i)=>{
                var s = i(61472), n = i(60689);
                t.exports = function(t, e) {
                    return !(t.left > e.right || t.right < e.left || t.top > e.bottom || t.bottom < e.top) && (!!n(t, e.x, e.y) || !!s(t.getLineA(), e) || !!s(t.getLineB(), e) || !!s(t.getLineC(), e));
                };
            },
            86117: (t, e, i)=>{
                var s = i(25227);
                t.exports = function(t, e) {
                    return !(!t.contains(e.x1, e.y1) && !t.contains(e.x2, e.y2)) || !!s(t.getLineA(), e) || !!s(t.getLineB(), e) || !!s(t.getLineC(), e);
                };
            },
            23589: (t, e, i)=>{
                var s = i(86875), n = i(18680), r = i(25227);
                t.exports = function(t, e) {
                    if (t.left > e.right || t.right < e.left || t.top > e.bottom || t.bottom < e.top) return !1;
                    var i = t.getLineA(), o = t.getLineB(), a = t.getLineC(), h = e.getLineA(), l = e.getLineB(), u = e.getLineC();
                    if (r(i, h) || r(i, l) || r(i, u)) return !0;
                    if (r(o, h) || r(o, l) || r(o, u)) return !0;
                    if (r(a, h) || r(a, l) || r(a, u)) return !0;
                    var c = n(t), d = s(e, c, !0);
                    return d.length > 0 || (c = n(e), (d = s(t, c, !0)).length > 0);
                };
            },
            7563: (t, e, i)=>{
                t.exports = {
                    CircleToCircle: i(22184),
                    CircleToRectangle: i(26535),
                    GetCircleToCircle: i(71145),
                    GetCircleToRectangle: i(62508),
                    GetLineToCircle: i(26111),
                    GetLineToLine: i(96537),
                    GetLineToPoints: i(17647),
                    GetLineToPolygon: i(68439),
                    GetLineToRectangle: i(9569),
                    GetRaysFromPointToPolygon: i(7449),
                    GetRectangleIntersection: i(82931),
                    GetRectangleToRectangle: i(1946),
                    GetRectangleToTriangle: i(34211),
                    GetTriangleToCircle: i(80511),
                    GetTriangleToLine: i(31343),
                    GetTriangleToTriangle: i(70534),
                    LineToCircle: i(61472),
                    LineToLine: i(25227),
                    LineToRectangle: i(47910),
                    PointToLine: i(34426),
                    PointToLineSegment: i(81414),
                    RectangleToRectangle: i(90205),
                    RectangleToTriangle: i(20370),
                    RectangleToValues: i(8786),
                    TriangleToCircle: i(48411),
                    TriangleToLine: i(86117),
                    TriangleToTriangle: i(23589)
                };
            },
            50599: (t)=>{
                t.exports = function(t) {
                    return Math.atan2(t.y2 - t.y1, t.x2 - t.x1);
                };
            },
            58813: (t)=>{
                t.exports = function(t, e, i) {
                    void 0 === e && (e = 1), void 0 === i && (i = []);
                    var s = Math.round(t.x1), n = Math.round(t.y1), r = Math.round(t.x2), o = Math.round(t.y2), a = Math.abs(r - s), h = Math.abs(o - n), l = s < r ? 1 : -1, u = n < o ? 1 : -1, c = a - h;
                    i.push({
                        x: s,
                        y: n
                    });
                    for(var d = 1; s !== r || n !== o;){
                        var f = c << 1;
                        f > -h && (c -= h, s += l), f < a && (c += a, n += u), d % e == 0 && i.push({
                            x: s,
                            y: n
                        }), d++;
                    }
                    return i;
                };
            },
            88513: (t)=>{
                t.exports = function(t, e, i) {
                    var s = e - (t.x1 + t.x2) / 2, n = i - (t.y1 + t.y2) / 2;
                    return t.x1 += s, t.y1 += n, t.x2 += s, t.y2 += n, t;
                };
            },
            26718: (t, e, i)=>{
                var s = i(88829);
                t.exports = function(t) {
                    return new s(t.x1, t.y1, t.x2, t.y2);
                };
            },
            88930: (t)=>{
                t.exports = function(t, e) {
                    return e.setTo(t.x1, t.y1, t.x2, t.y2);
                };
            },
            90656: (t)=>{
                t.exports = function(t, e) {
                    return t.x1 === e.x1 && t.y1 === e.y1 && t.x2 === e.x2 && t.y2 === e.y2;
                };
            },
            30897: (t, e, i)=>{
                var s = i(16028);
                t.exports = function(t, e, i) {
                    void 0 === i && (i = e);
                    var n = s(t), r = t.x2 - t.x1, o = t.y2 - t.y1;
                    return e && (t.x1 = t.x1 - r / n * e, t.y1 = t.y1 - o / n * e), i && (t.x2 = t.x2 + r / n * i, t.y2 = t.y2 + o / n * i), t;
                };
            },
            30684: (t, e, i)=>{
                var s = i(92951), n = i(21902), r = i(79967);
                t.exports = function(t, e, i, o, a) {
                    void 0 === o && (o = 0), void 0 === a && (a = []);
                    var h, l, u = [], c = t.x1, d = t.y1, f = t.x2 - c, p = t.y2 - d, v = n(e, a), g = i - 1;
                    for(h = 0; h < g; h++)l = v(h / g), u.push(new r(c + f * l, d + p * l));
                    if (l = v(1), u.push(new r(c + f * l, d + p * l)), o > 0) {
                        var m = u[0], y = [
                            m
                        ];
                        for(h = 1; h < u.length - 1; h++){
                            var x = u[h];
                            s(m, x) >= o && (y.push(x), m = x);
                        }
                        var T = u[u.length - 1];
                        return s(m, T) < o && y.pop(), y.push(T), y;
                    }
                    return u;
                };
            },
            20487: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e) {
                    return void 0 === e && (e = new s), e.x = (t.x1 + t.x2) / 2, e.y = (t.y1 + t.y2) / 2, e;
                };
            },
            11222: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e, i) {
                    void 0 === i && (i = new s);
                    var n = t.x1, r = t.y1, o = t.x2, a = t.y2, h = (o - n) * (o - n) + (a - r) * (a - r);
                    if (0 === h) return i;
                    var l = ((e.x - n) * (o - n) + (e.y - r) * (a - r)) / h;
                    return i.x = n + l * (o - n), i.y = r + l * (a - r), i;
                };
            },
            7377: (t, e, i)=>{
                var s = i(83392), n = i(50599), r = i(79967);
                t.exports = function(t, e) {
                    void 0 === e && (e = new r);
                    var i = n(t) - s.TAU;
                    return e.x = Math.cos(i), e.y = Math.sin(i), e;
                };
            },
            66464: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e, i) {
                    return void 0 === i && (i = new s), i.x = t.x1 + (t.x2 - t.x1) * e, i.y = t.y1 + (t.y2 - t.y1) * e, i;
                };
            },
            8570: (t, e, i)=>{
                var s = i(16028), n = i(79967);
                t.exports = function(t, e, i, r) {
                    void 0 === r && (r = []), !e && i > 0 && (e = s(t) / i);
                    for(var o = t.x1, a = t.y1, h = t.x2, l = t.y2, u = 0; u < e; u++){
                        var c = u / e, d = o + (h - o) * c, f = a + (l - a) * c;
                        r.push(new n(d, f));
                    }
                    return r;
                };
            },
            65269: (t)=>{
                t.exports = function(t, e) {
                    var i = t.x1, s = t.y1, n = t.x2, r = t.y2, o = (n - i) * (n - i) + (r - s) * (r - s);
                    if (0 === o) return !1;
                    var a = ((s - e.y) * (n - i) - (i - e.x) * (r - s)) / o;
                    return Math.abs(a) * Math.sqrt(o);
                };
            },
            82996: (t)=>{
                t.exports = function(t) {
                    return Math.abs(t.y1 - t.y2);
                };
            },
            16028: (t)=>{
                t.exports = function(t) {
                    return Math.sqrt((t.x2 - t.x1) * (t.x2 - t.x1) + (t.y2 - t.y1) * (t.y2 - t.y1));
                };
            },
            88829: (t, e, i)=>{
                var s = i(56694), n = i(66464), r = i(8570), o = i(52394), a = i(74077), h = i(93736), l = new s({
                    initialize: function(t, e, i, s) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 0), this.type = o.LINE, this.x1 = t, this.y1 = e, this.x2 = i, this.y2 = s;
                    },
                    getPoint: function(t, e) {
                        return n(this, t, e);
                    },
                    getPoints: function(t, e, i) {
                        return r(this, t, e, i);
                    },
                    getRandomPoint: function(t) {
                        return a(this, t);
                    },
                    setTo: function(t, e, i, s) {
                        return void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 0), this.x1 = t, this.y1 = e, this.x2 = i, this.y2 = s, this;
                    },
                    getPointA: function(t) {
                        return void 0 === t && (t = new h), t.set(this.x1, this.y1), t;
                    },
                    getPointB: function(t) {
                        return void 0 === t && (t = new h), t.set(this.x2, this.y2), t;
                    },
                    left: {
                        get: function() {
                            return Math.min(this.x1, this.x2);
                        },
                        set: function(t) {
                            this.x1 <= this.x2 ? this.x1 = t : this.x2 = t;
                        }
                    },
                    right: {
                        get: function() {
                            return Math.max(this.x1, this.x2);
                        },
                        set: function(t) {
                            this.x1 > this.x2 ? this.x1 = t : this.x2 = t;
                        }
                    },
                    top: {
                        get: function() {
                            return Math.min(this.y1, this.y2);
                        },
                        set: function(t) {
                            this.y1 <= this.y2 ? this.y1 = t : this.y2 = t;
                        }
                    },
                    bottom: {
                        get: function() {
                            return Math.max(this.y1, this.y2);
                        },
                        set: function(t) {
                            this.y1 > this.y2 ? this.y1 = t : this.y2 = t;
                        }
                    }
                });
                t.exports = l;
            },
            73273: (t, e, i)=>{
                var s = i(83392), n = i(1071), r = i(50599);
                t.exports = function(t) {
                    var e = r(t) - s.TAU;
                    return n(e, -Math.PI, Math.PI);
                };
            },
            96936: (t, e, i)=>{
                var s = i(83392), n = i(50599);
                t.exports = function(t) {
                    return Math.cos(n(t) - s.TAU);
                };
            },
            43581: (t, e, i)=>{
                var s = i(83392), n = i(50599);
                t.exports = function(t) {
                    return Math.sin(n(t) - s.TAU);
                };
            },
            13990: (t)=>{
                t.exports = function(t, e, i) {
                    return t.x1 += e, t.y1 += i, t.x2 += e, t.y2 += i, t;
                };
            },
            1298: (t)=>{
                t.exports = function(t) {
                    return -(t.x2 - t.x1) / (t.y2 - t.y1);
                };
            },
            74077: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e) {
                    void 0 === e && (e = new s);
                    var i = Math.random();
                    return e.x = t.x1 + i * (t.x2 - t.x1), e.y = t.y1 + i * (t.y2 - t.y1), e;
                };
            },
            30473: (t, e, i)=>{
                var s = i(50599), n = i(73273);
                t.exports = function(t, e) {
                    return 2 * n(e) - Math.PI - s(t);
                };
            },
            25968: (t, e, i)=>{
                var s = i(1809);
                t.exports = function(t, e) {
                    var i = (t.x1 + t.x2) / 2, n = (t.y1 + t.y2) / 2;
                    return s(t, i, n, e);
                };
            },
            24296: (t, e, i)=>{
                var s = i(1809);
                t.exports = function(t, e, i) {
                    return s(t, e.x, e.y, i);
                };
            },
            1809: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n = Math.cos(s), r = Math.sin(s), o = t.x1 - e, a = t.y1 - i;
                    return t.x1 = o * n - a * r + e, t.y1 = o * r + a * n + i, o = t.x2 - e, a = t.y2 - i, t.x2 = o * n - a * r + e, t.y2 = o * r + a * n + i, t;
                };
            },
            88171: (t)=>{
                t.exports = function(t, e, i, s, n) {
                    return t.x1 = e, t.y1 = i, t.x2 = e + Math.cos(s) * n, t.y2 = i + Math.sin(s) * n, t;
                };
            },
            82797: (t)=>{
                t.exports = function(t) {
                    return (t.y2 - t.y1) / (t.x2 - t.x1);
                };
            },
            41067: (t)=>{
                t.exports = function(t) {
                    return Math.abs(t.x1 - t.x2);
                };
            },
            28482: (t, e, i)=>{
                var s = i(88829);
                s.Angle = i(50599), s.BresenhamPoints = i(58813), s.CenterOn = i(88513), s.Clone = i(26718), s.CopyFrom = i(88930), s.Equals = i(90656), s.Extend = i(30897), s.GetEasedPoints = i(30684), s.GetMidPoint = i(20487), s.GetNearestPoint = i(11222), s.GetNormal = i(7377), s.GetPoint = i(66464), s.GetPoints = i(8570), s.GetShortestDistance = i(65269), s.Height = i(82996), s.Length = i(16028), s.NormalAngle = i(73273), s.NormalX = i(96936), s.NormalY = i(43581), s.Offset = i(13990), s.PerpSlope = i(1298), s.Random = i(74077), s.ReflectAngle = i(30473), s.Rotate = i(25968), s.RotateAroundPoint = i(24296), s.RotateAroundXY = i(1809), s.SetToAngle = i(88171), s.Slope = i(82797), s.Width = i(41067), t.exports = s;
            },
            18693: (t, e, i)=>{
                var s = i(56694), n = i(74118), r = i(93736);
                function o(t, e, i, s) {
                    var n = t - i, r = e - s, o = n * n + r * r;
                    return Math.sqrt(o);
                }
                var a = new s({
                    initialize: function(t, e, i) {
                        this.vertex1 = t, this.vertex2 = e, this.vertex3 = i, this.bounds = new n, this._inCenter = new r;
                    },
                    getInCenter: function(t) {
                        void 0 === t && (t = !0);
                        var e, i, s, n, r, a, h = this.vertex1, l = this.vertex2, u = this.vertex3;
                        t ? (e = h.x, i = h.y, s = l.x, n = l.y, r = u.x, a = u.y) : (e = h.vx, i = h.vy, s = l.vx, n = l.vy, r = u.vx, a = u.vy);
                        var c = o(r, a, s, n), d = o(e, i, r, a), f = o(s, n, e, i), p = c + d + f;
                        return this._inCenter.set((e * c + s * d + r * f) / p, (i * c + n * d + a * f) / p);
                    },
                    contains: function(t, e, i) {
                        var s = this.vertex1, n = this.vertex2, r = this.vertex3, o = s.vx, a = s.vy, h = n.vx, l = n.vy, u = r.vx, c = r.vy;
                        if (i) {
                            var d = i.a, f = i.b, p = i.c, v = i.d, g = i.e, m = i.f;
                            o = s.vx * d + s.vy * p + g, a = s.vx * f + s.vy * v + m, h = n.vx * d + n.vy * p + g, l = n.vx * f + n.vy * v + m, u = r.vx * d + r.vy * p + g, c = r.vx * f + r.vy * v + m;
                        }
                        var y = u - o, x = c - a, T = h - o, w = l - a, b = t - o, S = e - a, E = y * y + x * x, A = y * T + x * w, C = y * b + x * S, _ = T * T + w * w, M = T * b + w * S, P = E * _ - A * A, R = 0 === P ? 0 : 1 / P, O = (_ * C - A * M) * R, L = (E * M - A * C) * R;
                        return O >= 0 && L >= 0 && O + L < 1;
                    },
                    isCounterClockwise: function(t) {
                        var e = this.vertex1, i = this.vertex2, s = this.vertex3, n = (i.vx - e.vx) * (s.vy - e.vy) - (i.vy - e.vy) * (s.vx - e.vx);
                        return t <= 0 ? n >= 0 : n < 0;
                    },
                    load: function(t, e, i, s, n) {
                        return i = this.vertex1.load(t, e, i, s, n), i = this.vertex2.load(t, e, i, s, n), i = this.vertex3.load(t, e, i, s, n);
                    },
                    transformCoordinatesLocal: function(t, e, i, s) {
                        return this.vertex1.transformCoordinatesLocal(t, e, i, s), this.vertex2.transformCoordinatesLocal(t, e, i, s), this.vertex3.transformCoordinatesLocal(t, e, i, s), this;
                    },
                    updateBounds: function() {
                        var t = this.vertex1, e = this.vertex2, i = this.vertex3, s = this.bounds;
                        return s.x = Math.min(t.vx, e.vx, i.vx), s.y = Math.min(t.vy, e.vy, i.vy), s.width = Math.max(t.vx, e.vx, i.vx) - s.x, s.height = Math.max(t.vy, e.vy, i.vy) - s.y, this;
                    },
                    isInView: function(t, e, i, s, n, r, o, a, h, l, u) {
                        this.update(s, n, r, o, a, h, l, u);
                        var c = this.vertex1, d = this.vertex2, f = this.vertex3;
                        if (c.ta <= 0 && d.ta <= 0 && f.ta <= 0) return !1;
                        if (e && !this.isCounterClockwise(i)) return !1;
                        var p = this.bounds;
                        p.x = Math.min(c.tx, d.tx, f.tx), p.y = Math.min(c.ty, d.ty, f.ty), p.width = Math.max(c.tx, d.tx, f.tx) - p.x, p.height = Math.max(c.ty, d.ty, f.ty) - p.y;
                        var v = t.x + t.width, g = t.y + t.height;
                        return !(p.width <= 0 || p.height <= 0 || t.width <= 0 || t.height <= 0) && !(p.right < t.x || p.bottom < t.y || p.x > v || p.y > g);
                    },
                    scrollUV: function(t, e) {
                        return this.vertex1.scrollUV(t, e), this.vertex2.scrollUV(t, e), this.vertex3.scrollUV(t, e), this;
                    },
                    scaleUV: function(t, e) {
                        return this.vertex1.scaleUV(t, e), this.vertex2.scaleUV(t, e), this.vertex3.scaleUV(t, e), this;
                    },
                    setColor: function(t) {
                        return this.vertex1.color = t, this.vertex2.color = t, this.vertex3.color = t, this;
                    },
                    update: function(t, e, i, s, n, r, o, a) {
                        return this.vertex1.update(e, i, s, n, r, o, a, t), this.vertex2.update(e, i, s, n, r, o, a, t), this.vertex3.update(e, i, s, n, r, o, a, t), this;
                    },
                    translate: function(t, e) {
                        void 0 === e && (e = 0);
                        var i = this.vertex1, s = this.vertex2, n = this.vertex3;
                        return i.x += t, i.y += e, s.x += t, s.y += e, n.x += t, n.y += e, this;
                    },
                    x: {
                        get: function() {
                            return this.getInCenter().x;
                        },
                        set: function(t) {
                            var e = this.getInCenter();
                            this.translate(t - e.x, 0);
                        }
                    },
                    y: {
                        get: function() {
                            return this.getInCenter().y;
                        },
                        set: function(t) {
                            var e = this.getInCenter();
                            this.translate(0, t - e.y);
                        }
                    },
                    alpha: {
                        get: function() {
                            var t = this.vertex1, e = this.vertex2, i = this.vertex3;
                            return (t.alpha + e.alpha + i.alpha) / 3;
                        },
                        set: function(t) {
                            this.vertex1.alpha = t, this.vertex2.alpha = t, this.vertex3.alpha = t;
                        }
                    },
                    depth: {
                        get: function() {
                            var t = this.vertex1, e = this.vertex2, i = this.vertex3;
                            return (t.vz + e.vz + i.vz) / 3;
                        }
                    },
                    destroy: function() {
                        this.vertex1 = null, this.vertex2 = null, this.vertex3 = null;
                    }
                });
                t.exports = a;
            },
            99425: (t, e, i)=>{
                var s = i(18693), n = i(72632), r = i(16650), o = i(70015), a = i(85769), h = new o, l = new o, u = new r;
                t.exports = function(t) {
                    var e, i = n(t, "mesh"), r = n(t, "texture", null), o = n(t, "frame"), c = n(t, "width", 1), d = n(t, "height", c), f = n(t, "widthSegments", 1), p = n(t, "heightSegments", f), v = n(t, "x", 0), g = n(t, "y", 0), m = n(t, "z", 0), y = n(t, "rotateX", 0), x = n(t, "rotateY", 0), T = n(t, "rotateZ", 0), w = n(t, "zIsUp", !0), b = n(t, "isOrtho", !!i && i.dirtyCache[11]), S = n(t, "colors", [
                        16777215
                    ]), E = n(t, "alphas", [
                        1
                    ]), A = n(t, "tile", !1), C = n(t, "flipY", !1), _ = n(t, "width", null), M = {
                        faces: [],
                        verts: []
                    };
                    if (h.set(v, g, m), l.set(y, x, T), u.fromRotationXYTranslation(l, h, w), !r && i) r = i.texture, o || (e = i.frame);
                    else if (i && "string" == typeof r) r = i.scene.sys.textures.get(r);
                    else if (!r) return M;
                    e || (e = r.get(o)), !_ && b && r && i && (c = e.width / i.height, d = e.height / i.height);
                    var P, R, O = c / 2, L = d / 2, F = Math.floor(f), D = Math.floor(p), I = F + 1, k = D + 1, B = c / F, N = d / D, X = [], U = [], Y = 0, z = 1, G = 0, V = 1;
                    e && (Y = e.u0, z = e.u1, C ? (G = e.v1, V = e.v0) : (G = e.v0, V = e.v1));
                    var W = z - Y, H = V - G;
                    for(R = 0; R < k; R++){
                        var j = R * N - L;
                        for(P = 0; P < I; P++){
                            var q = P * B - O;
                            U.push(q, -j);
                            var K = Y + W * (P / F), Z = G + H * (R / D);
                            X.push(K, Z);
                        }
                    }
                    Array.isArray(S) || (S = [
                        S
                    ]), Array.isArray(E) || (E = [
                        E
                    ]);
                    var J = 0, Q = 0;
                    for(R = 0; R < D; R++)for(P = 0; P < F; P++){
                        var $ = 2 * (P + I * R), tt = 2 * (P + I * (R + 1)), et = 2 * (P + 1 + I * (R + 1)), it = 2 * (P + 1 + I * R), st = S[Q], nt = E[J], rt = new a(U[$], U[$ + 1], 0, X[$], X[$ + 1], st, nt).transformMat4(u), ot = new a(U[tt], U[tt + 1], 0, X[tt], X[tt + 1], st, nt).transformMat4(u), at = new a(U[it], U[it + 1], 0, X[it], X[it + 1], st, nt).transformMat4(u), ht = new a(U[tt], U[tt + 1], 0, X[tt], X[tt + 1], st, nt).transformMat4(u), lt = new a(U[et], U[et + 1], 0, X[et], X[et + 1], st, nt).transformMat4(u), ut = new a(U[it], U[it + 1], 0, X[it], X[it + 1], st, nt).transformMat4(u);
                        A && (rt.setUVs(Y, V), ot.setUVs(Y, G), at.setUVs(z, V), ht.setUVs(Y, G), lt.setUVs(z, G), ut.setUVs(z, V)), ++Q === S.length && (Q = 0), ++J === E.length && (J = 0), M.verts.push(rt, ot, at, ht, lt, ut), M.faces.push(new s(rt, ot, at), new s(ht, lt, ut));
                    }
                    return i && (i.faces = i.faces.concat(M.faces), i.vertices = i.vertices.concat(M.verts)), M;
                };
            },
            53267: (t, e, i)=>{
                var s = i(18693), n = i(16650), r = i(70015), o = i(85769), a = new r, h = new r, l = new n;
                t.exports = function(t, e, i, n, r, u, c, d, f, p) {
                    void 0 === i && (i = 1), void 0 === n && (n = 0), void 0 === r && (r = 0), void 0 === u && (u = 0), void 0 === c && (c = 0), void 0 === d && (d = 0), void 0 === f && (f = 0), void 0 === p && (p = !0);
                    var v = {
                        faces: [],
                        verts: []
                    }, g = t.materials;
                    a.set(n, r, u), h.set(c, d, f), l.fromRotationXYTranslation(h, a, p);
                    for(var m = 0; m < t.models.length; m++)for(var y = t.models[m], x = y.vertices, T = y.textureCoords, w = y.faces, b = 0; b < w.length; b++){
                        var S = w[b], E = S.vertices[0], A = S.vertices[1], C = S.vertices[2], _ = x[E.vertexIndex], M = x[A.vertexIndex], P = x[C.vertexIndex], R = E.textureCoordsIndex, O = A.textureCoordsIndex, L = C.textureCoordsIndex, F = -1 === R ? {
                            u: 0,
                            v: 1
                        } : T[R], D = -1 === O ? {
                            u: 0,
                            v: 0
                        } : T[O], I = -1 === L ? {
                            u: 1,
                            v: 1
                        } : T[L], k = 16777215;
                        "" !== S.material && g[S.material] && (k = g[S.material]);
                        var B = new o(_.x * i, _.y * i, _.z * i, F.u, F.v, k).transformMat4(l), N = new o(M.x * i, M.y * i, M.z * i, D.u, D.v, k).transformMat4(l), X = new o(P.x * i, P.y * i, P.z * i, I.u, I.v, k).transformMat4(l);
                        v.verts.push(B, N, X), v.faces.push(new s(B, N, X));
                    }
                    return e && (e.faces = e.faces.concat(v.faces), e.vertices = e.vertices.concat(v.verts)), v;
                };
            },
            67623: (t, e, i)=>{
                var s = i(18693), n = i(85769);
                t.exports = function(t, e, i, r, o, a, h, l) {
                    if (void 0 === r && (r = !1), void 0 === a && (a = 16777215), void 0 === h && (h = 1), void 0 === l && (l = !1), t.length === e.length || r) {
                        var u, c, d, f, p, v, g, m, y, x, T, w = {
                            faces: [],
                            vertices: []
                        }, b = r ? 3 : 2, S = Array.isArray(a), E = Array.isArray(h);
                        if (Array.isArray(i) && i.length > 0) for(u = 0; u < i.length; u++){
                            var A = i[u], C = 2 * i[u], _ = i[u] * b;
                            c = t[_], d = t[_ + 1], f = r ? t[_ + 2] : 0, p = e[C], v = e[C + 1], l && (v = 1 - v), g = S ? a[A] : a, m = E ? h[A] : h, y = 0, x = 0, T = 0, o && (y = o[_], x = o[_ + 1], T = r ? o[_ + 2] : 0), w.vertices.push(new n(c, d, f, p, v, g, m, y, x, T));
                        }
                        else {
                            var M = 0, P = 0;
                            for(u = 0; u < t.length; u += b)c = t[u], d = t[u + 1], f = r ? t[u + 2] : 0, p = e[M], v = e[M + 1], g = S ? a[P] : a, m = E ? h[P] : h, y = 0, x = 0, T = 0, o && (y = o[u], x = o[u + 1], T = r ? o[u + 2] : 0), w.vertices.push(new n(c, d, f, p, v, g, m, y, x, T)), M += 2, P++;
                        }
                        for(u = 0; u < w.vertices.length; u += 3){
                            var R = w.vertices[u], O = w.vertices[u + 1], L = w.vertices[u + 2];
                            w.faces.push(new s(R, O, L));
                        }
                        return w;
                    }
                    console.warn("GenerateVerts: vertices and uvs count not equal");
                };
            },
            27291: (t)=>{
                var e = !0, i = "untitled", s = "", n = "";
                function r(t) {
                    var e = t.indexOf("#");
                    return e > -1 ? t.substring(0, e) : t;
                }
                function o(t) {
                    return 0 === t.models.length && t.models.push({
                        faces: [],
                        name: i,
                        textureCoords: [],
                        vertexNormals: [],
                        vertices: []
                    }), s = "", t.models[t.models.length - 1];
                }
                function a(t, e) {
                    var n = t.length >= 2 ? t[1] : i;
                    e.models.push({
                        faces: [],
                        name: n,
                        textureCoords: [],
                        vertexNormals: [],
                        vertices: []
                    }), s = "";
                }
                function h(t) {
                    2 === t.length && (s = t[1]);
                }
                function l(t, e) {
                    var i = t.length, s = i >= 2 ? parseFloat(t[1]) : 0, n = i >= 3 ? parseFloat(t[2]) : 0, r = i >= 4 ? parseFloat(t[3]) : 0;
                    o(e).vertices.push({
                        x: s,
                        y: n,
                        z: r
                    });
                }
                function u(t, i) {
                    var s = t.length, n = s >= 2 ? parseFloat(t[1]) : 0, r = s >= 3 ? parseFloat(t[2]) : 0, a = s >= 4 ? parseFloat(t[3]) : 0;
                    isNaN(n) && (n = 0), isNaN(r) && (r = 0), isNaN(a) && (a = 0), e && (r = 1 - r), o(i).textureCoords.push({
                        u: n,
                        v: r,
                        w: a
                    });
                }
                function c(t, e) {
                    var i = t.length, s = i >= 2 ? parseFloat(t[1]) : 0, n = i >= 3 ? parseFloat(t[2]) : 0, r = i >= 4 ? parseFloat(t[3]) : 0;
                    o(e).vertexNormals.push({
                        x: s,
                        y: n,
                        z: r
                    });
                }
                function d(t, e) {
                    var i = t.length - 1;
                    if (!(i < 3)) {
                        for(var r = {
                            group: s,
                            material: n,
                            vertices: []
                        }, a = 0; a < i; a++){
                            var h = t[a + 1].split("/"), l = h.length;
                            if (!(l < 1 || l > 3)) {
                                var u = 0, c = 0, d = 0;
                                u = parseInt(h[0], 10), l > 1 && "" !== h[1] && (c = parseInt(h[1], 10)), l > 2 && (d = parseInt(h[2], 10)), 0 !== u && (u < 0 && (u = o(e).vertices.length + 1 + u), c -= 1, u -= 1, d -= 1, r.vertices.push({
                                    textureCoordsIndex: c,
                                    vertexIndex: u,
                                    vertexNormalIndex: d
                                }));
                            }
                        }
                        o(e).faces.push(r);
                    }
                }
                function f(t, e) {
                    t.length >= 2 && e.materialLibraries.push(t[1]);
                }
                function p(t) {
                    t.length >= 2 && (n = t[1]);
                }
                t.exports = function(t, i) {
                    void 0 === i && (i = !0), e = i;
                    var o = {
                        materials: {},
                        materialLibraries: [],
                        models: []
                    };
                    s = "", n = "";
                    for(var v = t.split("\n"), g = 0; g < v.length; g++){
                        var m = r(v[g]).replace(/\s\s+/g, " ").trim().split(" ");
                        switch(m[0].toLowerCase()){
                            case "o":
                                a(m, o);
                                break;
                            case "g":
                                h(m);
                                break;
                            case "v":
                                l(m, o);
                                break;
                            case "vt":
                                u(m, o);
                                break;
                            case "vn":
                                c(m, o);
                                break;
                            case "f":
                                d(m, o);
                                break;
                            case "mtllib":
                                f(m, o);
                                break;
                            case "usemtl":
                                p(m);
                        }
                    }
                    return o;
                };
            },
            76799: (t, e, i)=>{
                var s = i(22946);
                t.exports = function(t) {
                    for(var e = {}, i = t.split("\n"), n = "", r = 0; r < i.length; r++){
                        var o = i[r].trim();
                        if (0 !== o.indexOf("#") && "" !== o) {
                            var a = o.replace(/\s\s+/g, " ").trim().split(" ");
                            switch(a[0].toLowerCase()){
                                case "newmtl":
                                    n = a[1];
                                    break;
                                case "kd":
                                    var h = Math.floor(255 * a[1]), l = a.length >= 2 ? Math.floor(255 * a[2]) : h, u = a.length >= 3 ? Math.floor(255 * a[3]) : h;
                                    e[n] = s(h, l, u);
                            }
                        }
                    }
                    return e;
                };
            },
            15313: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n, r;
                    if (void 0 === i && void 0 === s) {
                        var o = t.getInCenter();
                        n = o.x, r = o.y;
                    }
                    var a = Math.cos(e), h = Math.sin(e), l = t.vertex1, u = t.vertex2, c = t.vertex3, d = l.x - n, f = l.y - r;
                    l.set(d * a - f * h + n, d * h + f * a + r), d = u.x - n, f = u.y - r, u.set(d * a - f * h + n, d * h + f * a + r), d = c.x - n, f = c.y - r, c.set(d * a - f * h + n, d * h + f * a + r);
                };
            },
            85769: (t, e, i)=>{
                var s = i(56694), n = i(75512), r = i(70015), o = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, n, o, a, h, l, u) {
                        void 0 === o && (o = 16777215), void 0 === a && (a = 1), void 0 === h && (h = 0), void 0 === l && (l = 0), void 0 === u && (u = 0), r.call(this, t, e, i), this.vx = 0, this.vy = 0, this.vz = 0, this.nx = h, this.ny = l, this.nz = u, this.u = s, this.v = n, this.color = o, this.alpha = a, this.tx = 0, this.ty = 0, this.ta = 0, this.tu = s, this.tv = n;
                    },
                    setUVs: function(t, e) {
                        return this.u = t, this.v = e, this.tu = t, this.tv = e, this;
                    },
                    scrollUV: function(t, e) {
                        return this.tu += t, this.tv += e, this;
                    },
                    scaleUV: function(t, e) {
                        return this.tu = this.u * t, this.tv = this.v * e, this;
                    },
                    transformCoordinatesLocal: function(t, e, i, s) {
                        var n = this.x, r = this.y, o = this.z, a = t.val, h = n * a[0] + r * a[4] + o * a[8] + a[12], l = n * a[1] + r * a[5] + o * a[9] + a[13], u = n * a[2] + r * a[6] + o * a[10] + a[14], c = n * a[3] + r * a[7] + o * a[11] + a[15];
                        this.vx = h / c * e, this.vy = -l / c * i, this.vz = s <= 0 ? u / c : -u / c;
                    },
                    resize: function(t, e, i, s, n, r) {
                        return this.x = t, this.y = e, this.vx = this.x * i, this.vy = -this.y * s, this.vz = 0, n < .5 ? this.vx += i * (.5 - n) : n > .5 && (this.vx -= i * (n - .5)), r < .5 ? this.vy += s * (.5 - r) : r > .5 && (this.vy -= s * (r - .5)), this;
                    },
                    update: function(t, e, i, s, n, r, o, a) {
                        var h = this.vx * t + this.vy * i + n, l = this.vx * e + this.vy * s + r;
                        return o && (h = Math.round(h), l = Math.round(l)), this.tx = h, this.ty = l, this.ta = this.alpha * a, this;
                    },
                    load: function(t, e, i, s, r) {
                        return t[++i] = this.tx, t[++i] = this.ty, t[++i] = this.tu, t[++i] = this.tv, t[++i] = s, t[++i] = r, e[++i] = n.getTintAppendFloatAlpha(this.color, this.ta), i;
                    }
                });
                t.exports = o;
            },
            14293: (t, e, i)=>{
                var s = {
                    Face: i(18693),
                    GenerateGridVerts: i(99425),
                    GenerateObjVerts: i(53267),
                    GenerateVerts: i(67623),
                    ParseObj: i(27291),
                    ParseObjMaterial: i(76799),
                    RotateFace: i(15313),
                    Vertex: i(85769)
                };
                t.exports = s;
            },
            77601: (t)=>{
                t.exports = function(t) {
                    return t.setTo(Math.ceil(t.x), Math.ceil(t.y));
                };
            },
            38933: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t) {
                    return new s(t.x, t.y);
                };
            },
            47103: (t)=>{
                t.exports = function(t, e) {
                    return e.setTo(t.x, t.y);
                };
            },
            13625: (t)=>{
                t.exports = function(t, e) {
                    return t.x === e.x && t.y === e.y;
                };
            },
            12536: (t)=>{
                t.exports = function(t) {
                    return t.setTo(Math.floor(t.x), Math.floor(t.y));
                };
            },
            54205: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e) {
                    if (void 0 === e && (e = new s), !Array.isArray(t)) throw new Error("GetCentroid points argument must be an array");
                    var i = t.length;
                    if (i < 1) throw new Error("GetCentroid points array must not be empty");
                    if (1 === i) e.x = t[0].x, e.y = t[0].y;
                    else {
                        for(var n = 0; n < i; n++)e.x += t[n].x, e.y += t[n].y;
                        e.x /= i, e.y /= i;
                    }
                    return e;
                };
            },
            50083: (t)=>{
                t.exports = function(t) {
                    return Math.sqrt(t.x * t.x + t.y * t.y);
                };
            },
            82712: (t)=>{
                t.exports = function(t) {
                    return t.x * t.x + t.y * t.y;
                };
            },
            20052: (t, e, i)=>{
                var s = i(74118);
                t.exports = function(t, e) {
                    void 0 === e && (e = new s);
                    for(var i = Number.NEGATIVE_INFINITY, n = Number.POSITIVE_INFINITY, r = Number.NEGATIVE_INFINITY, o = Number.POSITIVE_INFINITY, a = 0; a < t.length; a++){
                        var h = t[a];
                        h.x > i && (i = h.x), h.x < n && (n = h.x), h.y > r && (r = h.y), h.y < o && (o = h.y);
                    }
                    return e.x = n, e.y = o, e.width = i - n, e.height = r - o, e;
                };
            },
            77154: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e, i, n) {
                    return void 0 === i && (i = 0), void 0 === n && (n = new s), n.x = t.x + (e.x - t.x) * i, n.y = t.y + (e.y - t.y) * i, n;
                };
            },
            42397: (t)=>{
                t.exports = function(t) {
                    return t.setTo(t.y, t.x);
                };
            },
            59464: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e) {
                    return void 0 === e && (e = new s), e.setTo(-t.x, -t.y);
                };
            },
            79967: (t, e, i)=>{
                var s = i(56694), n = i(52394), r = new s({
                    initialize: function(t, e) {
                        void 0 === t && (t = 0), void 0 === e && (e = t), this.type = n.POINT, this.x = t, this.y = e;
                    },
                    setTo: function(t, e) {
                        return void 0 === t && (t = 0), void 0 === e && (e = t), this.x = t, this.y = e, this;
                    }
                });
                t.exports = r;
            },
            53581: (t, e, i)=>{
                var s = i(79967), n = i(82712);
                t.exports = function(t, e, i) {
                    void 0 === i && (i = new s);
                    var r = (t.x * e.x + t.y * e.y) / n(e);
                    return 0 !== r && (i.x = r * e.x, i.y = r * e.y), i;
                };
            },
            50817: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e, i) {
                    void 0 === i && (i = new s);
                    var n = t.x * e.x + t.y * e.y;
                    return 0 !== n && (i.x = n * e.x, i.y = n * e.y), i;
                };
            },
            40525: (t, e, i)=>{
                var s = i(50083);
                t.exports = function(t, e) {
                    if (0 !== t.x || 0 !== t.y) {
                        var i = s(t);
                        t.x /= i, t.y /= i;
                    }
                    return t.x *= e, t.y *= e, t;
                };
            },
            63472: (t, e, i)=>{
                var s = i(79967);
                s.Ceil = i(77601), s.Clone = i(38933), s.CopyFrom = i(47103), s.Equals = i(13625), s.Floor = i(12536), s.GetCentroid = i(54205), s.GetMagnitude = i(50083), s.GetMagnitudeSq = i(82712), s.GetRectangleFromPoints = i(20052), s.Interpolate = i(77154), s.Invert = i(42397), s.Negative = i(59464), s.Project = i(53581), s.ProjectUnit = i(50817), s.SetMagnitude = i(40525), t.exports = s;
            },
            19631: (t, e, i)=>{
                var s = i(8580);
                t.exports = function(t) {
                    return new s(t.points);
                };
            },
            45604: (t)=>{
                t.exports = function(t, e, i) {
                    for(var s = !1, n = -1, r = t.points.length - 1; ++n < t.points.length; r = n){
                        var o = t.points[n].x, a = t.points[n].y, h = t.points[r].x, l = t.points[r].y;
                        (a <= i && i < l || l <= i && i < a) && e < (h - o) * (i - a) / (l - a) + o && (s = !s);
                    }
                    return s;
                };
            },
            87289: (t, e, i)=>{
                var s = i(45604);
                t.exports = function(t, e) {
                    return s(t, e.x, e.y);
                };
            },
            11117: (t)=>{
                "use strict";
                function e(t, e, s) {
                    s = s || 2;
                    var r, o, a, h, c, d, p, v = e && e.length, g = v ? e[0] * s : t.length, m = i(t, 0, g, s, !0), y = [];
                    if (!m || m.next === m.prev) return y;
                    if (v && (m = function(t, e, s, n) {
                        var r, o, a, h = [];
                        for(r = 0, o = e.length; r < o; r++)(a = i(t, e[r] * n, r < o - 1 ? e[r + 1] * n : t.length, n, !1)) === a.next && (a.steiner = !0), h.push(f(a));
                        for(h.sort(l), r = 0; r < h.length; r++)s = u(h[r], s);
                        return s;
                    }(t, e, m, s)), t.length > 80 * s) {
                        r = a = t[0], o = h = t[1];
                        for(var x = s; x < g; x += s)(c = t[x]) < r && (r = c), (d = t[x + 1]) < o && (o = d), c > a && (a = c), d > h && (h = d);
                        p = 0 !== (p = Math.max(a - r, h - o)) ? 32767 / p : 0;
                    }
                    return n(m, y, s, r, o, p, 0), y;
                }
                function i(t, e, i, s, n) {
                    var r, o;
                    if (n === C(t, e, i, s) > 0) for(r = e; r < i; r += s)o = S(r, t[r], t[r + 1], o);
                    else for(r = i - s; r >= e; r -= s)o = S(r, t[r], t[r + 1], o);
                    return o && m(o, o.next) && (E(o), o = o.next), o;
                }
                function s(t, e) {
                    if (!t) return t;
                    e || (e = t);
                    var i, s = t;
                    do if (i = !1, s.steiner || !m(s, s.next) && 0 !== g(s.prev, s, s.next)) s = s.next;
                    else {
                        if (E(s), (s = e = s.prev) === s.next) break;
                        i = !0;
                    }
                    while (i || s !== e);
                    return e;
                }
                function n(t, e, i, l, u, c, f) {
                    if (t) {
                        !f && c && function(t, e, i, s) {
                            var n = t;
                            do 0 === n.z && (n.z = d(n.x, n.y, e, i, s)), n.prevZ = n.prev, n.nextZ = n.next, n = n.next;
                            while (n !== t);
                            n.prevZ.nextZ = null, n.prevZ = null, function(t) {
                                var e, i, s, n, r, o, a, h, l = 1;
                                do {
                                    for(i = t, t = null, r = null, o = 0; i;){
                                        for(o++, s = i, a = 0, e = 0; e < l && (a++, s = s.nextZ); e++);
                                        for(h = l; a > 0 || h > 0 && s;)0 !== a && (0 === h || !s || i.z <= s.z) ? (n = i, i = i.nextZ, a--) : (n = s, s = s.nextZ, h--), r ? r.nextZ = n : t = n, n.prevZ = r, r = n;
                                        i = s;
                                    }
                                    r.nextZ = null, l *= 2;
                                }while (o > 1);
                            }(n);
                        }(t, l, u, c);
                        for(var p, v, g = t; t.prev !== t.next;)if (p = t.prev, v = t.next, c ? o(t, l, u, c) : r(t)) e.push(p.i / i | 0), e.push(t.i / i | 0), e.push(v.i / i | 0), E(t), t = v.next, g = v.next;
                        else if ((t = v) === g) {
                            f ? 1 === f ? n(t = a(s(t), e, i), e, i, l, u, c, 2) : 2 === f && h(t, e, i, l, u, c) : n(s(t), e, i, l, u, c, 1);
                            break;
                        }
                    }
                }
                function r(t) {
                    var e = t.prev, i = t, s = t.next;
                    if (g(e, i, s) >= 0) return !1;
                    for(var n = e.x, r = i.x, o = s.x, a = e.y, h = i.y, l = s.y, u = n < r ? n < o ? n : o : r < o ? r : o, c = a < h ? a < l ? a : l : h < l ? h : l, d = n > r ? n > o ? n : o : r > o ? r : o, f = a > h ? a > l ? a : l : h > l ? h : l, v = s.next; v !== e;){
                        if (v.x >= u && v.x <= d && v.y >= c && v.y <= f && p(n, a, r, h, o, l, v.x, v.y) && g(v.prev, v, v.next) >= 0) return !1;
                        v = v.next;
                    }
                    return !0;
                }
                function o(t, e, i, s) {
                    var n = t.prev, r = t, o = t.next;
                    if (g(n, r, o) >= 0) return !1;
                    for(var a = n.x, h = r.x, l = o.x, u = n.y, c = r.y, f = o.y, v = a < h ? a < l ? a : l : h < l ? h : l, m = u < c ? u < f ? u : f : c < f ? c : f, y = a > h ? a > l ? a : l : h > l ? h : l, x = u > c ? u > f ? u : f : c > f ? c : f, T = d(v, m, e, i, s), w = d(y, x, e, i, s), b = t.prevZ, S = t.nextZ; b && b.z >= T && S && S.z <= w;){
                        if (b.x >= v && b.x <= y && b.y >= m && b.y <= x && b !== n && b !== o && p(a, u, h, c, l, f, b.x, b.y) && g(b.prev, b, b.next) >= 0) return !1;
                        if (b = b.prevZ, S.x >= v && S.x <= y && S.y >= m && S.y <= x && S !== n && S !== o && p(a, u, h, c, l, f, S.x, S.y) && g(S.prev, S, S.next) >= 0) return !1;
                        S = S.nextZ;
                    }
                    for(; b && b.z >= T;){
                        if (b.x >= v && b.x <= y && b.y >= m && b.y <= x && b !== n && b !== o && p(a, u, h, c, l, f, b.x, b.y) && g(b.prev, b, b.next) >= 0) return !1;
                        b = b.prevZ;
                    }
                    for(; S && S.z <= w;){
                        if (S.x >= v && S.x <= y && S.y >= m && S.y <= x && S !== n && S !== o && p(a, u, h, c, l, f, S.x, S.y) && g(S.prev, S, S.next) >= 0) return !1;
                        S = S.nextZ;
                    }
                    return !0;
                }
                function a(t, e, i) {
                    var n = t;
                    do {
                        var r = n.prev, o = n.next.next;
                        !m(r, o) && y(r, n, n.next, o) && w(r, o) && w(o, r) && (e.push(r.i / i | 0), e.push(n.i / i | 0), e.push(o.i / i | 0), E(n), E(n.next), n = t = o), n = n.next;
                    }while (n !== t);
                    return s(n);
                }
                function h(t, e, i, r, o, a) {
                    var h = t;
                    do {
                        for(var l = h.next.next; l !== h.prev;){
                            if (h.i !== l.i && v(h, l)) {
                                var u = b(h, l);
                                return h = s(h, h.next), u = s(u, u.next), n(h, e, i, r, o, a, 0), void n(u, e, i, r, o, a, 0);
                            }
                            l = l.next;
                        }
                        h = h.next;
                    }while (h !== t);
                }
                function l(t, e) {
                    return t.x - e.x;
                }
                function u(t, e) {
                    var i = function(t, e) {
                        var i, s = e, n = t.x, r = t.y, o = -1 / 0;
                        do {
                            if (r <= s.y && r >= s.next.y && s.next.y !== s.y) {
                                var a = s.x + (r - s.y) * (s.next.x - s.x) / (s.next.y - s.y);
                                if (a <= n && a > o && (o = a, i = s.x < s.next.x ? s : s.next, a === n)) return i;
                            }
                            s = s.next;
                        }while (s !== e);
                        if (!i) return null;
                        var h, l = i, u = i.x, d = i.y, f = 1 / 0;
                        s = i;
                        do n >= s.x && s.x >= u && n !== s.x && p(r < d ? n : o, r, u, d, r < d ? o : n, r, s.x, s.y) && (h = Math.abs(r - s.y) / (n - s.x), w(s, t) && (h < f || h === f && (s.x > i.x || s.x === i.x && c(i, s))) && (i = s, f = h)), s = s.next;
                        while (s !== l);
                        return i;
                    }(t, e);
                    if (!i) return e;
                    var n = b(i, t);
                    return s(n, n.next), s(i, i.next);
                }
                function c(t, e) {
                    return g(t.prev, t, e.prev) < 0 && g(e.next, t, t.next) < 0;
                }
                function d(t, e, i, s, n) {
                    return (t = 1431655765 & ((t = 858993459 & ((t = 252645135 & ((t = 16711935 & ((t = (t - i) * n | 0) | t << 8)) | t << 4)) | t << 2)) | t << 1)) | (e = 1431655765 & ((e = 858993459 & ((e = 252645135 & ((e = 16711935 & ((e = (e - s) * n | 0) | e << 8)) | e << 4)) | e << 2)) | e << 1)) << 1;
                }
                function f(t) {
                    var e = t, i = t;
                    do (e.x < i.x || e.x === i.x && e.y < i.y) && (i = e), e = e.next;
                    while (e !== t);
                    return i;
                }
                function p(t, e, i, s, n, r, o, a) {
                    return (n - o) * (e - a) >= (t - o) * (r - a) && (t - o) * (s - a) >= (i - o) * (e - a) && (i - o) * (r - a) >= (n - o) * (s - a);
                }
                function v(t, e) {
                    return t.next.i !== e.i && t.prev.i !== e.i && !function(t, e) {
                        var i = t;
                        do {
                            if (i.i !== t.i && i.next.i !== t.i && i.i !== e.i && i.next.i !== e.i && y(i, i.next, t, e)) return !0;
                            i = i.next;
                        }while (i !== t);
                        return !1;
                    }(t, e) && (w(t, e) && w(e, t) && function(t, e) {
                        var i = t, s = !1, n = (t.x + e.x) / 2, r = (t.y + e.y) / 2;
                        do i.y > r != i.next.y > r && i.next.y !== i.y && n < (i.next.x - i.x) * (r - i.y) / (i.next.y - i.y) + i.x && (s = !s), i = i.next;
                        while (i !== t);
                        return s;
                    }(t, e) && (g(t.prev, t, e.prev) || g(t, e.prev, e)) || m(t, e) && g(t.prev, t, t.next) > 0 && g(e.prev, e, e.next) > 0);
                }
                function g(t, e, i) {
                    return (e.y - t.y) * (i.x - e.x) - (e.x - t.x) * (i.y - e.y);
                }
                function m(t, e) {
                    return t.x === e.x && t.y === e.y;
                }
                function y(t, e, i, s) {
                    var n = T(g(t, e, i)), r = T(g(t, e, s)), o = T(g(i, s, t)), a = T(g(i, s, e));
                    return n !== r && o !== a || !(0 !== n || !x(t, i, e)) || !(0 !== r || !x(t, s, e)) || !(0 !== o || !x(i, t, s)) || !(0 !== a || !x(i, e, s));
                }
                function x(t, e, i) {
                    return e.x <= Math.max(t.x, i.x) && e.x >= Math.min(t.x, i.x) && e.y <= Math.max(t.y, i.y) && e.y >= Math.min(t.y, i.y);
                }
                function T(t) {
                    return t > 0 ? 1 : t < 0 ? -1 : 0;
                }
                function w(t, e) {
                    return g(t.prev, t, t.next) < 0 ? g(t, e, t.next) >= 0 && g(t, t.prev, e) >= 0 : g(t, e, t.prev) < 0 || g(t, t.next, e) < 0;
                }
                function b(t, e) {
                    var i = new A(t.i, t.x, t.y), s = new A(e.i, e.x, e.y), n = t.next, r = e.prev;
                    return t.next = e, e.prev = t, i.next = n, n.prev = i, s.next = i, i.prev = s, r.next = s, s.prev = r, s;
                }
                function S(t, e, i, s) {
                    var n = new A(t, e, i);
                    return s ? (n.next = s.next, n.prev = s, s.next.prev = n, s.next = n) : (n.prev = n, n.next = n), n;
                }
                function E(t) {
                    t.next.prev = t.prev, t.prev.next = t.next, t.prevZ && (t.prevZ.nextZ = t.nextZ), t.nextZ && (t.nextZ.prevZ = t.prevZ);
                }
                function A(t, e, i) {
                    this.i = t, this.x = e, this.y = i, this.prev = null, this.next = null, this.z = 0, this.prevZ = null, this.nextZ = null, this.steiner = !1;
                }
                function C(t, e, i, s) {
                    for(var n = 0, r = e, o = i - s; r < i; r += s)n += (t[o] - t[r]) * (t[r + 1] + t[o + 1]), o = r;
                    return n;
                }
                e.deviation = function(t, e, i, s) {
                    var n = e && e.length, r = n ? e[0] * i : t.length, o = Math.abs(C(t, 0, r, i));
                    if (n) for(var a = 0, h = e.length; a < h; a++){
                        var l = e[a] * i, u = a < h - 1 ? e[a + 1] * i : t.length;
                        o -= Math.abs(C(t, l, u, i));
                    }
                    var c = 0;
                    for(a = 0; a < s.length; a += 3){
                        var d = s[a] * i, f = s[a + 1] * i, p = s[a + 2] * i;
                        c += Math.abs((t[d] - t[p]) * (t[f + 1] - t[d + 1]) - (t[d] - t[f]) * (t[p + 1] - t[d + 1]));
                    }
                    return 0 === o && 0 === c ? 0 : Math.abs((c - o) / o);
                }, e.flatten = function(t) {
                    for(var e = t[0][0].length, i = {
                        vertices: [],
                        holes: [],
                        dimensions: e
                    }, s = 0, n = 0; n < t.length; n++){
                        for(var r = 0; r < t[n].length; r++)for(var o = 0; o < e; o++)i.vertices.push(t[n][r][o]);
                        n > 0 && (s += t[n - 1].length, i.holes.push(s));
                    }
                    return i;
                }, t.exports = e;
            },
            14045: (t, e, i)=>{
                var s = i(74118);
                t.exports = function(t, e) {
                    void 0 === e && (e = new s);
                    for(var i, n = 1 / 0, r = 1 / 0, o = -n, a = -r, h = 0; h < t.points.length; h++)i = t.points[h], n = Math.min(n, i.x), r = Math.min(r, i.y), o = Math.max(o, i.x), a = Math.max(a, i.y);
                    return e.x = n, e.y = r, e.width = o - n, e.height = a - r, e;
                };
            },
            98286: (t)=>{
                t.exports = function(t, e) {
                    void 0 === e && (e = []);
                    for(var i = 0; i < t.points.length; i++)e.push(t.points[i].x), e.push(t.points[i].y);
                    return e;
                };
            },
            89294: (t, e, i)=>{
                var s = i(16028), n = i(88829), r = i(5159);
                t.exports = function(t, e, i, o) {
                    void 0 === o && (o = []);
                    var a = t.points, h = r(t);
                    !e && i > 0 && (e = h / i);
                    for(var l = 0; l < e; l++)for(var u = h * (l / e), c = 0, d = 0; d < a.length; d++){
                        var f = a[d], p = a[(d + 1) % a.length], v = new n(f.x, f.y, p.x, p.y), g = s(v);
                        if (!(u < c || u > c + g)) {
                            var m = v.getPoint((u - c) / g);
                            o.push(m);
                            break;
                        }
                        c += g;
                    }
                    return o;
                };
            },
            5159: (t, e, i)=>{
                var s = i(16028), n = i(88829);
                t.exports = function(t) {
                    for(var e = t.points, i = 0, r = 0; r < e.length; r++){
                        var o = e[r], a = e[(r + 1) % e.length], h = new n(o.x, o.y, a.x, a.y);
                        i += s(h);
                    }
                    return i;
                };
            },
            8580: (t, e, i)=>{
                var s = i(56694), n = i(45604), r = i(89294), o = i(52394), a = new s({
                    initialize: function(t) {
                        this.type = o.POLYGON, this.area = 0, this.points = [], t && this.setTo(t);
                    },
                    contains: function(t, e) {
                        return n(this, t, e);
                    },
                    setTo: function(t) {
                        if (this.area = 0, this.points = [], "string" == typeof t && (t = t.split(" ")), !Array.isArray(t)) return this;
                        for(var e, i = Number.MAX_VALUE, s = 0; s < t.length; s++)e = {
                            x: 0,
                            y: 0
                        }, "number" == typeof t[s] || "string" == typeof t[s] ? (e.x = parseFloat(t[s]), e.y = parseFloat(t[s + 1]), s++) : Array.isArray(t[s]) ? (e.x = t[s][0], e.y = t[s][1]) : (e.x = t[s].x, e.y = t[s].y), this.points.push(e), e.y < i && (i = e.y);
                        return this.calculateArea(i), this;
                    },
                    calculateArea: function() {
                        if (this.points.length < 3) return this.area = 0, this.area;
                        for(var t, e, i = 0, s = 0; s < this.points.length - 1; s++)t = this.points[s], i += ((e = this.points[s + 1]).x - t.x) * (t.y + e.y);
                        return t = this.points[0], e = this.points[this.points.length - 1], i += (t.x - e.x) * (e.y + t.y), this.area = .5 * -i, this.area;
                    },
                    getPoints: function(t, e, i) {
                        return r(this, t, e, i);
                    }
                });
                t.exports = a;
            },
            32244: (t)=>{
                t.exports = function(t) {
                    return t.points.reverse(), t;
                };
            },
            95874: (t)=>{
                function e(t, e, i) {
                    var s = e.x, n = e.y, r = i.x - s, o = i.y - n;
                    if (0 !== r || 0 !== o) {
                        var a = ((t.x - s) * r + (t.y - n) * o) / (r * r + o * o);
                        a > 1 ? (s = i.x, n = i.y) : a > 0 && (s += r * a, n += o * a);
                    }
                    return (r = t.x - s) * r + (o = t.y - n) * o;
                }
                function i(t, s, n, r, o) {
                    for(var a, h = r, l = s + 1; l < n; l++){
                        var u = e(t[l], t[s], t[n]);
                        u > h && (a = l, h = u);
                    }
                    h > r && (a - s > 1 && i(t, s, a, r, o), o.push(t[a]), n - a > 1 && i(t, a, n, r, o));
                }
                function s(t, e) {
                    var s = t.length - 1, n = [
                        t[0]
                    ];
                    return i(t, 0, s, e, n), n.push(t[s]), n;
                }
                t.exports = function(t, e, i) {
                    void 0 === e && (e = 1), void 0 === i && (i = !1);
                    var n = t.points;
                    if (n.length > 2) {
                        var r = e * e;
                        i || (n = function(t, e) {
                            for(var i, s, n, r, o, a = t[0], h = [
                                a
                            ], l = 1, u = t.length; l < u; l++)i = t[l], n = a, r = void 0, o = void 0, r = (s = i).x - n.x, o = s.y - n.y, r * r + o * o > e && (h.push(i), a = i);
                            return a !== i && h.push(i), h;
                        }(n, r)), t.setTo(s(n, r));
                    }
                    return t;
                };
            },
            18974: (t)=>{
                var e = function(t, e) {
                    return t[0] = e[0], t[1] = e[1], t;
                };
                t.exports = function(t) {
                    var i, s = [], n = t.points;
                    for(i = 0; i < n.length; i++)s.push([
                        n[i].x,
                        n[i].y
                    ]);
                    var r = [];
                    for(s.length > 0 && r.push(e([
                        0,
                        0
                    ], s[0])), i = 0; i < s.length - 1; i++){
                        var o = s[i], a = s[i + 1], h = o[0], l = o[1], u = a[0], c = a[1];
                        r.push([
                            .85 * h + .15 * u,
                            .85 * l + .15 * c
                        ]), r.push([
                            .15 * h + .85 * u,
                            .15 * l + .85 * c
                        ]);
                    }
                    return s.length > 1 && r.push(e([
                        0,
                        0
                    ], s[s.length - 1])), t.setTo(r);
                };
            },
            23490: (t)=>{
                t.exports = function(t, e, i) {
                    for(var s = t.points, n = 0; n < s.length; n++)s[n].x += e, s[n].y += i;
                    return t;
                };
            },
            44359: (t, e, i)=>{
                var s = i(8580);
                s.Clone = i(19631), s.Contains = i(45604), s.ContainsPoint = i(87289), s.Earcut = i(11117), s.GetAABB = i(14045), s.GetNumberArray = i(98286), s.GetPoints = i(89294), s.Perimeter = i(5159), s.Reverse = i(32244), s.Simplify = i(95874), s.Smooth = i(18974), s.Translate = i(23490), t.exports = s;
            },
            1653: (t)=>{
                t.exports = function(t) {
                    return t.width * t.height;
                };
            },
            33943: (t)=>{
                t.exports = function(t) {
                    return t.x = Math.ceil(t.x), t.y = Math.ceil(t.y), t;
                };
            },
            58662: (t)=>{
                t.exports = function(t) {
                    return t.x = Math.ceil(t.x), t.y = Math.ceil(t.y), t.width = Math.ceil(t.width), t.height = Math.ceil(t.height), t;
                };
            },
            79993: (t)=>{
                t.exports = function(t, e, i) {
                    return t.x = e - t.width / 2, t.y = i - t.height / 2, t;
                };
            },
            81572: (t, e, i)=>{
                var s = i(74118);
                t.exports = function(t) {
                    return new s(t.x, t.y, t.width, t.height);
                };
            },
            94287: (t)=>{
                t.exports = function(t, e, i) {
                    return !(t.width <= 0 || t.height <= 0) && t.x <= e && t.x + t.width >= e && t.y <= i && t.y + t.height >= i;
                };
            },
            28687: (t, e, i)=>{
                var s = i(94287);
                t.exports = function(t, e) {
                    return s(t, e.x, e.y);
                };
            },
            73222: (t)=>{
                t.exports = function(t, e) {
                    return !(e.width * e.height > t.width * t.height) && e.x > t.x && e.x < t.right && e.right > t.x && e.right < t.right && e.y > t.y && e.y < t.bottom && e.bottom > t.y && e.bottom < t.bottom;
                };
            },
            29538: (t)=>{
                t.exports = function(t, e) {
                    return e.setTo(t.x, t.y, t.width, t.height);
                };
            },
            87279: (t)=>{
                t.exports = function(t, e) {
                    return void 0 === e && (e = []), e.push({
                        x: t.x,
                        y: t.y
                    }), e.push({
                        x: t.right,
                        y: t.y
                    }), e.push({
                        x: t.right,
                        y: t.bottom
                    }), e.push({
                        x: t.x,
                        y: t.bottom
                    }), e;
                };
            },
            19989: (t)=>{
                t.exports = function(t, e) {
                    return t.x === e.x && t.y === e.y && t.width === e.width && t.height === e.height;
                };
            },
            92628: (t, e, i)=>{
                var s = i(6700);
                t.exports = function(t, e) {
                    var i = s(t);
                    return i < s(e) ? t.setSize(e.height * i, e.height) : t.setSize(e.width, e.width / i), t.setPosition(e.centerX - t.width / 2, e.centerY - t.height / 2);
                };
            },
            85028: (t, e, i)=>{
                var s = i(6700);
                t.exports = function(t, e) {
                    var i = s(t);
                    return i > s(e) ? t.setSize(e.height * i, e.height) : t.setSize(e.width, e.width / i), t.setPosition(e.centerX - t.width / 2, e.centerY - t.height / 2);
                };
            },
            71356: (t)=>{
                t.exports = function(t) {
                    return t.x = Math.floor(t.x), t.y = Math.floor(t.y), t;
                };
            },
            21687: (t)=>{
                t.exports = function(t) {
                    return t.x = Math.floor(t.x), t.y = Math.floor(t.y), t.width = Math.floor(t.width), t.height = Math.floor(t.height), t;
                };
            },
            80222: (t, e, i)=>{
                var s = i(74118), n = i(83392);
                t.exports = function(t, e) {
                    if (void 0 === e && (e = new s), 0 === t.length) return e;
                    for(var i, r, o, a = Number.MAX_VALUE, h = Number.MAX_VALUE, l = n.MIN_SAFE_INTEGER, u = n.MIN_SAFE_INTEGER, c = 0; c < t.length; c++)i = t[c], Array.isArray(i) ? (r = i[0], o = i[1]) : (r = i.x, o = i.y), a = Math.min(a, r), h = Math.min(h, o), l = Math.max(l, r), u = Math.max(u, o);
                    return e.x = a, e.y = h, e.width = l - a, e.height = u - h, e;
                };
            },
            75785: (t, e, i)=>{
                var s = i(74118);
                t.exports = function(t, e, i, n, r) {
                    return void 0 === r && (r = new s), r.setTo(Math.min(t, i), Math.min(e, n), Math.abs(t - i), Math.abs(e - n));
                };
            },
            6700: (t)=>{
                t.exports = function(t) {
                    return 0 === t.height ? NaN : t.width / t.height;
                };
            },
            35242: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e) {
                    return void 0 === e && (e = new s), e.x = t.centerX, e.y = t.centerY, e;
                };
            },
            47698: (t, e, i)=>{
                var s = i(85876), n = i(79967);
                t.exports = function(t, e, i) {
                    if (void 0 === i && (i = new n), e <= 0 || e >= 1) return i.x = t.x, i.y = t.y, i;
                    var r = s(t) * e;
                    return e > .5 ? (r -= t.width + t.height) <= t.width ? (i.x = t.right - r, i.y = t.bottom) : (i.x = t.x, i.y = t.bottom - (r - t.width)) : r <= t.width ? (i.x = t.x + r, i.y = t.y) : (i.x = t.right, i.y = t.y + (r - t.width)), i;
                };
            },
            54932: (t, e, i)=>{
                var s = i(47698), n = i(85876);
                t.exports = function(t, e, i, r) {
                    void 0 === r && (r = []), !e && i > 0 && (e = n(t) / i);
                    for(var o = 0; o < e; o++){
                        var a = o / e;
                        r.push(s(t, a));
                    }
                    return r;
                };
            },
            31591: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e) {
                    return void 0 === e && (e = new s), e.x = t.width, e.y = t.height, e;
                };
            },
            7782: (t, e, i)=>{
                var s = i(79993);
                t.exports = function(t, e, i) {
                    var n = t.centerX, r = t.centerY;
                    return t.setSize(t.width + 2 * e, t.height + 2 * i), s(t, n, r);
                };
            },
            66217: (t, e, i)=>{
                var s = i(74118), n = i(90205);
                t.exports = function(t, e, i) {
                    return void 0 === i && (i = new s), n(t, e) ? (i.x = Math.max(t.x, e.x), i.y = Math.max(t.y, e.y), i.width = Math.min(t.right, e.right) - i.x, i.height = Math.min(t.bottom, e.bottom) - i.y) : i.setEmpty(), i;
                };
            },
            40053: (t, e, i)=>{
                var s = i(85876), n = i(79967);
                t.exports = function(t, e, i, r) {
                    if (void 0 === r && (r = []), !e && !i) return r;
                    e ? i = Math.round(s(t) / e) : e = s(t) / i;
                    for(var o = t.x, a = t.y, h = 0, l = 0; l < i; l++)switch(r.push(new n(o, a)), h){
                        case 0:
                            (o += e) >= t.right && (h = 1, a += o - t.right, o = t.right);
                            break;
                        case 1:
                            (a += e) >= t.bottom && (h = 2, o -= a - t.bottom, a = t.bottom);
                            break;
                        case 2:
                            (o -= e) <= t.left && (h = 3, a -= t.left - o, o = t.left);
                            break;
                        case 3:
                            (a -= e) <= t.top && (h = 0, a = t.top);
                    }
                    return r;
                };
            },
            86673: (t)=>{
                t.exports = function(t, e) {
                    for(var i = t.x, s = t.right, n = t.y, r = t.bottom, o = 0; o < e.length; o++)i = Math.min(i, e[o].x), s = Math.max(s, e[o].x), n = Math.min(n, e[o].y), r = Math.max(r, e[o].y);
                    return t.x = i, t.y = n, t.width = s - i, t.height = r - n, t;
                };
            },
            14655: (t)=>{
                t.exports = function(t, e) {
                    var i = Math.min(t.x, e.x), s = Math.max(t.right, e.right);
                    t.x = i, t.width = s - i;
                    var n = Math.min(t.y, e.y), r = Math.max(t.bottom, e.bottom);
                    return t.y = n, t.height = r - n, t;
                };
            },
            44755: (t)=>{
                t.exports = function(t, e, i) {
                    var s = Math.min(t.x, e), n = Math.max(t.right, e);
                    t.x = s, t.width = n - s;
                    var r = Math.min(t.y, i), o = Math.max(t.bottom, i);
                    return t.y = r, t.height = o - r, t;
                };
            },
            74466: (t)=>{
                t.exports = function(t, e, i) {
                    return t.x += e, t.y += i, t;
                };
            },
            55946: (t)=>{
                t.exports = function(t, e) {
                    return t.x += e.x, t.y += e.y, t;
                };
            },
            97474: (t)=>{
                t.exports = function(t, e) {
                    return t.x < e.right && t.right > e.x && t.y < e.bottom && t.bottom > e.y;
                };
            },
            85876: (t)=>{
                t.exports = function(t) {
                    return 2 * (t.width + t.height);
                };
            },
            20243: (t, e, i)=>{
                var s = i(79967), n = i(75606);
                t.exports = function(t, e, i) {
                    void 0 === i && (i = new s), e = n(e);
                    var r = Math.sin(e), o = Math.cos(e), a = o > 0 ? t.width / 2 : t.width / -2, h = r > 0 ? t.height / 2 : t.height / -2;
                    return Math.abs(a * r) < Math.abs(h * o) ? h = a * r / o : a = h * o / r, i.x = a + t.centerX, i.y = h + t.centerY, i;
                };
            },
            30001: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e) {
                    return void 0 === e && (e = new s), e.x = t.x + Math.random() * t.width, e.y = t.y + Math.random() * t.height, e;
                };
            },
            97691: (t, e, i)=>{
                var s = i(17489), n = i(73222), r = i(79967);
                t.exports = function(t, e, i) {
                    if (void 0 === i && (i = new r), n(t, e)) switch(s(0, 3)){
                        case 0:
                            i.x = t.x + Math.random() * (e.right - t.x), i.y = t.y + Math.random() * (e.top - t.y);
                            break;
                        case 1:
                            i.x = e.x + Math.random() * (t.right - e.x), i.y = e.bottom + Math.random() * (t.bottom - e.bottom);
                            break;
                        case 2:
                            i.x = t.x + Math.random() * (e.x - t.x), i.y = e.y + Math.random() * (t.bottom - e.y);
                            break;
                        case 3:
                            i.x = e.right + Math.random() * (t.right - e.right), i.y = t.y + Math.random() * (e.bottom - t.y);
                    }
                    return i;
                };
            },
            74118: (t, e, i)=>{
                var s = i(56694), n = i(94287), r = i(47698), o = i(54932), a = i(52394), h = i(88829), l = i(30001), u = new s({
                    initialize: function(t, e, i, s) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 0), this.type = a.RECTANGLE, this.x = t, this.y = e, this.width = i, this.height = s;
                    },
                    contains: function(t, e) {
                        return n(this, t, e);
                    },
                    getPoint: function(t, e) {
                        return r(this, t, e);
                    },
                    getPoints: function(t, e, i) {
                        return o(this, t, e, i);
                    },
                    getRandomPoint: function(t) {
                        return l(this, t);
                    },
                    setTo: function(t, e, i, s) {
                        return this.x = t, this.y = e, this.width = i, this.height = s, this;
                    },
                    setEmpty: function() {
                        return this.setTo(0, 0, 0, 0);
                    },
                    setPosition: function(t, e) {
                        return void 0 === e && (e = t), this.x = t, this.y = e, this;
                    },
                    setSize: function(t, e) {
                        return void 0 === e && (e = t), this.width = t, this.height = e, this;
                    },
                    isEmpty: function() {
                        return this.width <= 0 || this.height <= 0;
                    },
                    getLineA: function(t) {
                        return void 0 === t && (t = new h), t.setTo(this.x, this.y, this.right, this.y), t;
                    },
                    getLineB: function(t) {
                        return void 0 === t && (t = new h), t.setTo(this.right, this.y, this.right, this.bottom), t;
                    },
                    getLineC: function(t) {
                        return void 0 === t && (t = new h), t.setTo(this.right, this.bottom, this.x, this.bottom), t;
                    },
                    getLineD: function(t) {
                        return void 0 === t && (t = new h), t.setTo(this.x, this.bottom, this.x, this.y), t;
                    },
                    left: {
                        get: function() {
                            return this.x;
                        },
                        set: function(t) {
                            t >= this.right ? this.width = 0 : this.width = this.right - t, this.x = t;
                        }
                    },
                    right: {
                        get: function() {
                            return this.x + this.width;
                        },
                        set: function(t) {
                            t <= this.x ? this.width = 0 : this.width = t - this.x;
                        }
                    },
                    top: {
                        get: function() {
                            return this.y;
                        },
                        set: function(t) {
                            t >= this.bottom ? this.height = 0 : this.height = this.bottom - t, this.y = t;
                        }
                    },
                    bottom: {
                        get: function() {
                            return this.y + this.height;
                        },
                        set: function(t) {
                            t <= this.y ? this.height = 0 : this.height = t - this.y;
                        }
                    },
                    centerX: {
                        get: function() {
                            return this.x + this.width / 2;
                        },
                        set: function(t) {
                            this.x = t - this.width / 2;
                        }
                    },
                    centerY: {
                        get: function() {
                            return this.y + this.height / 2;
                        },
                        set: function(t) {
                            this.y = t - this.height / 2;
                        }
                    }
                });
                t.exports = u;
            },
            51828: (t)=>{
                t.exports = function(t, e) {
                    return t.width === e.width && t.height === e.height;
                };
            },
            5691: (t)=>{
                t.exports = function(t, e, i) {
                    return void 0 === i && (i = e), t.width *= e, t.height *= i, t;
                };
            },
            58795: (t, e, i)=>{
                var s = i(74118);
                t.exports = function(t, e, i) {
                    void 0 === i && (i = new s);
                    var n = Math.min(t.x, e.x), r = Math.min(t.y, e.y), o = Math.max(t.right, e.right) - n, a = Math.max(t.bottom, e.bottom) - r;
                    return i.setTo(n, r, o, a);
                };
            },
            66658: (t, e, i)=>{
                var s = i(74118);
                s.Area = i(1653), s.Ceil = i(33943), s.CeilAll = i(58662), s.CenterOn = i(79993), s.Clone = i(81572), s.Contains = i(94287), s.ContainsPoint = i(28687), s.ContainsRect = i(73222), s.CopyFrom = i(29538), s.Decompose = i(87279), s.Equals = i(19989), s.FitInside = i(92628), s.FitOutside = i(85028), s.Floor = i(71356), s.FloorAll = i(21687), s.FromPoints = i(80222), s.FromXY = i(75785), s.GetAspectRatio = i(6700), s.GetCenter = i(35242), s.GetPoint = i(47698), s.GetPoints = i(54932), s.GetSize = i(31591), s.Inflate = i(7782), s.Intersection = i(66217), s.MarchingAnts = i(40053), s.MergePoints = i(86673), s.MergeRect = i(14655), s.MergeXY = i(44755), s.Offset = i(74466), s.OffsetPoint = i(55946), s.Overlaps = i(97474), s.Perimeter = i(85876), s.PerimeterPoint = i(20243), s.Random = i(30001), s.RandomOutside = i(97691), s.SameDimensions = i(51828), s.Scale = i(5691), s.Union = i(58795), t.exports = s;
            },
            19108: (t)=>{
                t.exports = function(t) {
                    var e = t.x1, i = t.y1, s = t.x2, n = t.y2, r = t.x3, o = t.y3;
                    return Math.abs(((r - e) * (n - i) - (s - e) * (o - i)) / 2);
                };
            },
            41199: (t, e, i)=>{
                var s = i(66349);
                t.exports = function(t, e, i) {
                    var n = i * (Math.sqrt(3) / 2);
                    return new s(t, e, t + i / 2, e + n, t - i / 2, e + n);
                };
            },
            88730: (t, e, i)=>{
                var s = i(11117), n = i(66349);
                t.exports = function(t, e, i, r, o) {
                    void 0 === e && (e = null), void 0 === i && (i = 1), void 0 === r && (r = 1), void 0 === o && (o = []);
                    for(var a, h, l, u, c, d, f, p, v, g = s(t, e), m = 0; m < g.length; m += 3)a = g[m], h = g[m + 1], l = g[m + 2], u = t[2 * a] * i, c = t[2 * a + 1] * r, d = t[2 * h] * i, f = t[2 * h + 1] * r, p = t[2 * l] * i, v = t[2 * l + 1] * r, o.push(new n(u, c, d, f, p, v));
                    return o;
                };
            },
            3635: (t, e, i)=>{
                var s = i(66349);
                t.exports = function(t, e, i, n) {
                    return void 0 === n && (n = i), new s(t, e, t, e - n, t + i, e);
                };
            },
            1882: (t, e, i)=>{
                var s = i(56595), n = i(9640);
                t.exports = function(t, e, i, r) {
                    void 0 === r && (r = s);
                    var o = r(t), a = e - o.x, h = i - o.y;
                    return n(t, a, h);
                };
            },
            56595: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e) {
                    return void 0 === e && (e = new s), e.x = (t.x1 + t.x2 + t.x3) / 3, e.y = (t.y1 + t.y2 + t.y3) / 3, e;
                };
            },
            91835: (t, e, i)=>{
                var s = i(93736);
                function n(t, e, i, s) {
                    return t * s - e * i;
                }
                t.exports = function(t, e) {
                    void 0 === e && (e = new s);
                    var i = t.x3, r = t.y3, o = t.x1 - i, a = t.y1 - r, h = t.x2 - i, l = t.y2 - r, u = 2 * n(o, a, h, l), c = n(a, o * o + a * a, l, h * h + l * l), d = n(o, o * o + a * a, h, h * h + l * l);
                    return e.x = i - c / u, e.y = r + d / u, e;
                };
            },
            97073: (t, e, i)=>{
                var s = i(26673);
                t.exports = function(t, e) {
                    void 0 === e && (e = new s);
                    var i, n, r = t.x1, o = t.y1, a = t.x2, h = t.y2, l = t.x3, u = t.y3, c = a - r, d = h - o, f = l - r, p = u - o, v = c * (r + a) + d * (o + h), g = f * (r + l) + p * (o + u), m = 2 * (c * (u - h) - d * (l - a));
                    if (Math.abs(m) < 1e-6) {
                        var y = Math.min(r, a, l), x = Math.min(o, h, u);
                        i = .5 * (Math.max(r, a, l) - y), n = .5 * (Math.max(o, h, u) - x), e.x = y + i, e.y = x + n, e.radius = Math.sqrt(i * i + n * n);
                    } else e.x = (p * v - d * g) / m, e.y = (c * g - f * v) / m, i = e.x - r, n = e.y - o, e.radius = Math.sqrt(i * i + n * n);
                    return e;
                };
            },
            75974: (t, e, i)=>{
                var s = i(66349);
                t.exports = function(t) {
                    return new s(t.x1, t.y1, t.x2, t.y2, t.x3, t.y3);
                };
            },
            60689: (t)=>{
                t.exports = function(t, e, i) {
                    var s = t.x3 - t.x1, n = t.y3 - t.y1, r = t.x2 - t.x1, o = t.y2 - t.y1, a = e - t.x1, h = i - t.y1, l = s * s + n * n, u = s * r + n * o, c = s * a + n * h, d = r * r + o * o, f = r * a + o * h, p = l * d - u * u, v = 0 === p ? 0 : 1 / p, g = (d * c - u * f) * v, m = (l * f - u * c) * v;
                    return g >= 0 && m >= 0 && g + m < 1;
                };
            },
            86875: (t)=>{
                t.exports = function(t, e, i, s) {
                    void 0 === i && (i = !1), void 0 === s && (s = []);
                    for(var n, r, o, a, h, l, u = t.x3 - t.x1, c = t.y3 - t.y1, d = t.x2 - t.x1, f = t.y2 - t.y1, p = u * u + c * c, v = u * d + c * f, g = d * d + f * f, m = p * g - v * v, y = 0 === m ? 0 : 1 / m, x = t.x1, T = t.y1, w = 0; w < e.length && (r = (p * (l = d * (o = e[w].x - x) + f * (a = e[w].y - T)) - v * (h = u * o + c * a)) * y, !((n = (g * h - v * l) * y) >= 0 && r >= 0 && n + r < 1 && (s.push({
                        x: e[w].x,
                        y: e[w].y
                    }), i))); w++);
                    return s;
                };
            },
            51532: (t, e, i)=>{
                var s = i(60689);
                t.exports = function(t, e) {
                    return s(t, e.x, e.y);
                };
            },
            42538: (t)=>{
                t.exports = function(t, e) {
                    return e.setTo(t.x1, t.y1, t.x2, t.y2, t.x3, t.y3);
                };
            },
            18680: (t)=>{
                t.exports = function(t, e) {
                    return void 0 === e && (e = []), e.push({
                        x: t.x1,
                        y: t.y1
                    }), e.push({
                        x: t.x2,
                        y: t.y2
                    }), e.push({
                        x: t.x3,
                        y: t.y3
                    }), e;
                };
            },
            29977: (t)=>{
                t.exports = function(t, e) {
                    return t.x1 === e.x1 && t.y1 === e.y1 && t.x2 === e.x2 && t.y2 === e.y2 && t.x3 === e.x3 && t.y3 === e.y3;
                };
            },
            56088: (t, e, i)=>{
                var s = i(79967), n = i(16028);
                t.exports = function(t, e, i) {
                    void 0 === i && (i = new s);
                    var r = t.getLineA(), o = t.getLineB(), a = t.getLineC();
                    if (e <= 0 || e >= 1) return i.x = r.x1, i.y = r.y1, i;
                    var h = n(r), l = n(o), u = n(a), c = (h + l + u) * e, d = 0;
                    return c < h ? (d = c / h, i.x = r.x1 + (r.x2 - r.x1) * d, i.y = r.y1 + (r.y2 - r.y1) * d) : c > h + l ? (d = (c -= h + l) / u, i.x = a.x1 + (a.x2 - a.x1) * d, i.y = a.y1 + (a.y2 - a.y1) * d) : (d = (c -= h) / l, i.x = o.x1 + (o.x2 - o.x1) * d, i.y = o.y1 + (o.y2 - o.y1) * d), i;
                };
            },
            24402: (t, e, i)=>{
                var s = i(16028), n = i(79967);
                t.exports = function(t, e, i, r) {
                    void 0 === r && (r = []);
                    var o = t.getLineA(), a = t.getLineB(), h = t.getLineC(), l = s(o), u = s(a), c = s(h), d = l + u + c;
                    !e && i > 0 && (e = d / i);
                    for(var f = 0; f < e; f++){
                        var p = d * (f / e), v = 0, g = new n;
                        p < l ? (v = p / l, g.x = o.x1 + (o.x2 - o.x1) * v, g.y = o.y1 + (o.y2 - o.y1) * v) : p > l + u ? (v = (p -= l + u) / c, g.x = h.x1 + (h.x2 - h.x1) * v, g.y = h.y1 + (h.y2 - h.y1) * v) : (v = (p -= l) / u, g.x = a.x1 + (a.x2 - a.x1) * v, g.y = a.y1 + (a.y2 - a.y1) * v), r.push(g);
                    }
                    return r;
                };
            },
            83648: (t, e, i)=>{
                var s = i(79967);
                function n(t, e, i, s) {
                    var n = t - i, r = e - s, o = n * n + r * r;
                    return Math.sqrt(o);
                }
                t.exports = function(t, e) {
                    void 0 === e && (e = new s);
                    var i = t.x1, r = t.y1, o = t.x2, a = t.y2, h = t.x3, l = t.y3, u = n(h, l, o, a), c = n(i, r, h, l), d = n(o, a, i, r), f = u + c + d;
                    return e.x = (i * u + o * c + h * d) / f, e.y = (r * u + a * c + l * d) / f, e;
                };
            },
            9640: (t)=>{
                t.exports = function(t, e, i) {
                    return t.x1 += e, t.y1 += i, t.x2 += e, t.y2 += i, t.x3 += e, t.y3 += i, t;
                };
            },
            95290: (t, e, i)=>{
                var s = i(16028);
                t.exports = function(t) {
                    var e = t.getLineA(), i = t.getLineB(), n = t.getLineC();
                    return s(e) + s(i) + s(n);
                };
            },
            99761: (t, e, i)=>{
                var s = i(79967);
                t.exports = function(t, e) {
                    void 0 === e && (e = new s);
                    var i = t.x2 - t.x1, n = t.y2 - t.y1, r = t.x3 - t.x1, o = t.y3 - t.y1, a = Math.random(), h = Math.random();
                    return a + h >= 1 && (a = 1 - a, h = 1 - h), e.x = t.x1 + (i * a + r * h), e.y = t.y1 + (n * a + o * h), e;
                };
            },
            21934: (t, e, i)=>{
                var s = i(19211), n = i(83648);
                t.exports = function(t, e) {
                    var i = n(t);
                    return s(t, i.x, i.y, e);
                };
            },
            68454: (t, e, i)=>{
                var s = i(19211);
                t.exports = function(t, e, i) {
                    return s(t, e.x, e.y, i);
                };
            },
            19211: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n = Math.cos(s), r = Math.sin(s), o = t.x1 - e, a = t.y1 - i;
                    return t.x1 = o * n - a * r + e, t.y1 = o * r + a * n + i, o = t.x2 - e, a = t.y2 - i, t.x2 = o * n - a * r + e, t.y2 = o * r + a * n + i, o = t.x3 - e, a = t.y3 - i, t.x3 = o * n - a * r + e, t.y3 = o * r + a * n + i, t;
                };
            },
            66349: (t, e, i)=>{
                var s = i(56694), n = i(60689), r = i(56088), o = i(24402), a = i(52394), h = i(88829), l = i(99761), u = new s({
                    initialize: function(t, e, i, s, n, r) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === n && (n = 0), void 0 === r && (r = 0), this.type = a.TRIANGLE, this.x1 = t, this.y1 = e, this.x2 = i, this.y2 = s, this.x3 = n, this.y3 = r;
                    },
                    contains: function(t, e) {
                        return n(this, t, e);
                    },
                    getPoint: function(t, e) {
                        return r(this, t, e);
                    },
                    getPoints: function(t, e, i) {
                        return o(this, t, e, i);
                    },
                    getRandomPoint: function(t) {
                        return l(this, t);
                    },
                    setTo: function(t, e, i, s, n, r) {
                        return void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === n && (n = 0), void 0 === r && (r = 0), this.x1 = t, this.y1 = e, this.x2 = i, this.y2 = s, this.x3 = n, this.y3 = r, this;
                    },
                    getLineA: function(t) {
                        return void 0 === t && (t = new h), t.setTo(this.x1, this.y1, this.x2, this.y2), t;
                    },
                    getLineB: function(t) {
                        return void 0 === t && (t = new h), t.setTo(this.x2, this.y2, this.x3, this.y3), t;
                    },
                    getLineC: function(t) {
                        return void 0 === t && (t = new h), t.setTo(this.x3, this.y3, this.x1, this.y1), t;
                    },
                    left: {
                        get: function() {
                            return Math.min(this.x1, this.x2, this.x3);
                        },
                        set: function(t) {
                            var e = 0;
                            e = this.x1 <= this.x2 && this.x1 <= this.x3 ? this.x1 - t : this.x2 <= this.x1 && this.x2 <= this.x3 ? this.x2 - t : this.x3 - t, this.x1 -= e, this.x2 -= e, this.x3 -= e;
                        }
                    },
                    right: {
                        get: function() {
                            return Math.max(this.x1, this.x2, this.x3);
                        },
                        set: function(t) {
                            var e = 0;
                            e = this.x1 >= this.x2 && this.x1 >= this.x3 ? this.x1 - t : this.x2 >= this.x1 && this.x2 >= this.x3 ? this.x2 - t : this.x3 - t, this.x1 -= e, this.x2 -= e, this.x3 -= e;
                        }
                    },
                    top: {
                        get: function() {
                            return Math.min(this.y1, this.y2, this.y3);
                        },
                        set: function(t) {
                            var e = 0;
                            e = this.y1 <= this.y2 && this.y1 <= this.y3 ? this.y1 - t : this.y2 <= this.y1 && this.y2 <= this.y3 ? this.y2 - t : this.y3 - t, this.y1 -= e, this.y2 -= e, this.y3 -= e;
                        }
                    },
                    bottom: {
                        get: function() {
                            return Math.max(this.y1, this.y2, this.y3);
                        },
                        set: function(t) {
                            var e = 0;
                            e = this.y1 >= this.y2 && this.y1 >= this.y3 ? this.y1 - t : this.y2 >= this.y1 && this.y2 >= this.y3 ? this.y2 - t : this.y3 - t, this.y1 -= e, this.y2 -= e, this.y3 -= e;
                        }
                    }
                });
                t.exports = u;
            },
            87619: (t, e, i)=>{
                var s = i(66349);
                s.Area = i(19108), s.BuildEquilateral = i(41199), s.BuildFromPolygon = i(88730), s.BuildRight = i(3635), s.CenterOn = i(1882), s.Centroid = i(56595), s.CircumCenter = i(91835), s.CircumCircle = i(97073), s.Clone = i(75974), s.Contains = i(60689), s.ContainsArray = i(86875), s.ContainsPoint = i(51532), s.CopyFrom = i(42538), s.Decompose = i(18680), s.Equals = i(29977), s.GetPoint = i(56088), s.GetPoints = i(24402), s.InCenter = i(83648), s.Perimeter = i(95290), s.Offset = i(9640), s.Random = i(99761), s.Rotate = i(21934), s.RotateAroundPoint = i(68454), s.RotateAroundXY = i(19211), t.exports = s;
            },
            27395: (t)=>{
                t.exports = function(t, e, i) {
                    return {
                        gameObject: t,
                        enabled: !0,
                        draggable: !1,
                        dropZone: !1,
                        cursor: !1,
                        target: null,
                        camera: null,
                        hitArea: e,
                        hitAreaCallback: i,
                        hitAreaDebug: null,
                        customHitArea: !1,
                        localX: 0,
                        localY: 0,
                        dragState: 0,
                        dragStartX: 0,
                        dragStartY: 0,
                        dragStartXGlobal: 0,
                        dragStartYGlobal: 0,
                        dragX: 0,
                        dragY: 0
                    };
                };
            },
            18104: (t)=>{
                t.exports = function(t, e) {
                    return function(i, s, n, r) {
                        var o = t.getPixelAlpha(s, n, r.texture.key, r.frame.name);
                        return o && o >= e;
                    };
                };
            },
            69898: (t, e, i)=>{
                var s = i(56694), n = i(72687), r = i(6659), o = i(33963), a = i(97081), h = i(71064), l = i(7905), u = i(40398), c = i(37579), d = i(69360), f = i(64462), p = new s({
                    initialize: function(t, e) {
                        this.game = t, this.scaleManager, this.canvas, this.config = e, this.enabled = !0, this.events = new r, this.isOver = !0, this.defaultCursor = "", this.keyboard = e.inputKeyboard ? new h(this) : null, this.mouse = e.inputMouse ? new l(this) : null, this.touch = e.inputTouch ? new c(this) : null, this.pointers = [], this.pointersTotal = e.inputActivePointers, e.inputTouch && 1 === this.pointersTotal && (this.pointersTotal = 2);
                        for(var i = 0; i <= this.pointersTotal; i++){
                            var s = new u(this, i);
                            s.smoothFactor = e.inputSmoothFactor, this.pointers.push(s);
                        }
                        this.mousePointer = e.inputMouse ? this.pointers[0] : null, this.activePointer = this.pointers[0], this.globalTopOnly = !0, this.time = 0, this._tempPoint = {
                            x: 0,
                            y: 0
                        }, this._tempHitTest = [], this._tempMatrix = new d, this._tempMatrix2 = new d, this._tempSkip = !1, this.mousePointerContainer = [
                            this.mousePointer
                        ], t.events.once(a.BOOT, this.boot, this);
                    },
                    boot: function() {
                        var t = this.game, e = t.events;
                        this.canvas = t.canvas, this.scaleManager = t.scale, this.events.emit(o.MANAGER_BOOT), e.on(a.PRE_RENDER, this.preRender, this), e.once(a.DESTROY, this.destroy, this);
                    },
                    setCanvasOver: function(t) {
                        this.isOver = !0, this.events.emit(o.GAME_OVER, t);
                    },
                    setCanvasOut: function(t) {
                        this.isOver = !1, this.events.emit(o.GAME_OUT, t);
                    },
                    preRender: function() {
                        var t = this.game.loop.now, e = this.game.loop.delta, i = this.game.scene.getScenes(!0, !0);
                        this.time = t, this.events.emit(o.MANAGER_UPDATE);
                        for(var s = 0; s < i.length; s++){
                            var n = i[s];
                            if (n.sys.input && n.sys.input.updatePoll(t, e) && this.globalTopOnly) return;
                        }
                    },
                    setDefaultCursor: function(t) {
                        this.defaultCursor = t, this.canvas.style.cursor !== t && (this.canvas.style.cursor = t);
                    },
                    setCursor: function(t) {
                        t.cursor && (this.canvas.style.cursor = t.cursor);
                    },
                    resetCursor: function(t) {
                        t.cursor && this.canvas && (this.canvas.style.cursor = this.defaultCursor);
                    },
                    addPointer: function(t) {
                        void 0 === t && (t = 1);
                        var e = [];
                        this.pointersTotal + t > 10 && (t = 10 - this.pointersTotal);
                        for(var i = 0; i < t; i++){
                            var s = this.pointers.length, n = new u(this, s);
                            n.smoothFactor = this.config.inputSmoothFactor, this.pointers.push(n), this.pointersTotal++, e.push(n);
                        }
                        return e;
                    },
                    updateInputPlugins: function(t, e) {
                        var i = this.game.scene.getScenes(!1, !0);
                        this._tempSkip = !1;
                        for(var s = 0; s < i.length; s++){
                            var n = i[s];
                            if (n.sys.input) {
                                if (n.sys.input.update(t, e) && this.globalTopOnly || this._tempSkip) return;
                            }
                        }
                    },
                    onTouchStart: function(t) {
                        for(var e = this.pointers, i = [], s = 0; s < t.changedTouches.length; s++)for(var r = t.changedTouches[s], o = 1; o < this.pointersTotal; o++){
                            var a = e[o];
                            if (!a.active) {
                                a.touchstart(r, t), this.activePointer = a, i.push(a);
                                break;
                            }
                        }
                        this.updateInputPlugins(n.TOUCH_START, i);
                    },
                    onTouchMove: function(t) {
                        for(var e = this.pointers, i = [], s = 0; s < t.changedTouches.length; s++)for(var r = t.changedTouches[s], o = 1; o < this.pointersTotal; o++){
                            var a = e[o];
                            if (a.active && a.identifier === r.identifier) {
                                var h = document.elementFromPoint(r.pageX, r.pageY) === this.canvas;
                                !this.isOver && h ? this.setCanvasOver(t) : this.isOver && !h && this.setCanvasOut(t), this.isOver && (a.touchmove(r, t), this.activePointer = a, i.push(a));
                                break;
                            }
                        }
                        this.updateInputPlugins(n.TOUCH_MOVE, i);
                    },
                    onTouchEnd: function(t) {
                        for(var e = this.pointers, i = [], s = 0; s < t.changedTouches.length; s++)for(var r = t.changedTouches[s], o = 1; o < this.pointersTotal; o++){
                            var a = e[o];
                            if (a.active && a.identifier === r.identifier) {
                                a.touchend(r, t), i.push(a);
                                break;
                            }
                        }
                        this.updateInputPlugins(n.TOUCH_END, i);
                    },
                    onTouchCancel: function(t) {
                        for(var e = this.pointers, i = [], s = 0; s < t.changedTouches.length; s++)for(var r = t.changedTouches[s], o = 1; o < this.pointersTotal; o++){
                            var a = e[o];
                            if (a.active && a.identifier === r.identifier) {
                                a.touchcancel(r, t), i.push(a);
                                break;
                            }
                        }
                        this.updateInputPlugins(n.TOUCH_CANCEL, i);
                    },
                    onMouseDown: function(t) {
                        var e = this.mousePointer;
                        e.down(t), e.updateMotion(), this.activePointer = e, this.updateInputPlugins(n.MOUSE_DOWN, this.mousePointerContainer);
                    },
                    onMouseMove: function(t) {
                        var e = this.mousePointer;
                        e.move(t), e.updateMotion(), this.activePointer = e, this.updateInputPlugins(n.MOUSE_MOVE, this.mousePointerContainer);
                    },
                    onMouseUp: function(t) {
                        var e = this.mousePointer;
                        e.up(t), e.updateMotion(), this.activePointer = e, this.updateInputPlugins(n.MOUSE_UP, this.mousePointerContainer);
                    },
                    onMouseWheel: function(t) {
                        var e = this.mousePointer;
                        e.wheel(t), this.activePointer = e, this.updateInputPlugins(n.MOUSE_WHEEL, this.mousePointerContainer);
                    },
                    onPointerLockChange: function(t) {
                        var e = this.mouse.locked;
                        this.mousePointer.locked = e, this.events.emit(o.POINTERLOCK_CHANGE, t, e);
                    },
                    inputCandidate: function(t, e) {
                        var i = t.input;
                        if (!i || !i.enabled || !t.willRender(e)) return !1;
                        var s = !0, n = t.parentContainer;
                        if (n) do {
                            if (!n.willRender(e)) {
                                s = !1;
                                break;
                            }
                            n = n.parentContainer;
                        }while (n);
                        return s;
                    },
                    hitTest: function(t, e, i, s) {
                        void 0 === s && (s = this._tempHitTest);
                        var n = this._tempPoint, r = i.scrollX, o = i.scrollY;
                        s.length = 0;
                        var a = t.x, h = t.y;
                        i.getWorldPoint(a, h, n), t.worldX = n.x, t.worldY = n.y;
                        for(var l = {
                            x: 0,
                            y: 0
                        }, u = this._tempMatrix, c = this._tempMatrix2, d = 0; d < e.length; d++){
                            var p = e[d];
                            if (this.inputCandidate(p, i)) {
                                var v = n.x + r * p.scrollFactorX - r, g = n.y + o * p.scrollFactorY - o;
                                p.parentContainer ? (p.getWorldTransformMatrix(u, c), u.applyInverse(v, g, l)) : f(v, g, p.x, p.y, p.rotation, p.scaleX, p.scaleY, l), this.pointWithinHitArea(p, l.x, l.y) && s.push(p);
                            }
                        }
                        return s;
                    },
                    pointWithinHitArea: function(t, e, i) {
                        e += t.displayOriginX, i += t.displayOriginY;
                        var s = t.input;
                        return !(!s || !s.hitAreaCallback(s.hitArea, e, i, t)) && (s.localX = e, s.localY = i, !0);
                    },
                    pointWithinInteractiveObject: function(t, e, i) {
                        return !!t.hitArea && (e += t.gameObject.displayOriginX, i += t.gameObject.displayOriginY, t.localX = e, t.localY = i, t.hitAreaCallback(t.hitArea, e, i, t));
                    },
                    transformPointer: function(t, e, i, s) {
                        var n = t.position, r = t.prevPosition;
                        r.x = n.x, r.y = n.y;
                        var o = this.scaleManager.transformX(e), a = this.scaleManager.transformY(i), h = t.smoothFactor;
                        s && 0 !== h ? (n.x = o * h + r.x * (1 - h), n.y = a * h + r.y * (1 - h)) : (n.x = o, n.y = a);
                    },
                    destroy: function() {
                        this.events.removeAllListeners(), this.game.events.off(a.PRE_RENDER), this.keyboard && this.keyboard.destroy(), this.mouse && this.mouse.destroy(), this.touch && this.touch.destroy();
                        for(var t = 0; t < this.pointers.length; t++)this.pointers[t].destroy();
                        this.pointers = [], this._tempHitTest = [], this._tempMatrix.destroy(), this.canvas = null, this.game = null;
                    }
                });
                t.exports = p;
            },
            12499: (t, e, i)=>{
                var s = i(26673), n = i(65650), r = i(56694), o = i(72687), a = i(27395), h = i(18104), l = i(53996), u = i(95669), c = i(72313), d = i(33963), f = i(6659), p = i(72632), v = i(52394), g = i(63399), m = i(42911), y = i(91963), x = i(74118), T = i(94287), w = i(7599), b = i(66349), S = i(60689), E = new r({
                    Extends: f,
                    initialize: function(t) {
                        f.call(this), this.scene = t, this.systems = t.sys, this.settings = t.sys.settings, this.manager = t.sys.game.input, this.pluginEvents = new f, this.enabled = !0, this.displayList, this.cameras, g.install(this), this.mouse = this.manager.mouse, this.topOnly = !0, this.pollRate = -1, this._pollTimer = 0;
                        var e = {
                            cancelled: !1
                        };
                        this._eventContainer = {
                            stopPropagation: function() {
                                e.cancelled = !0;
                            }
                        }, this._eventData = e, this.dragDistanceThreshold = 0, this.dragTimeThreshold = 0, this._temp = [], this._tempZones = [], this._list = [], this._pendingInsertion = [], this._pendingRemoval = [], this._draggable = [], this._drag = {
                            0: [],
                            1: [],
                            2: [],
                            3: [],
                            4: [],
                            5: [],
                            6: [],
                            7: [],
                            8: [],
                            9: [],
                            10: []
                        }, this._dragState = [], this._over = {
                            0: [],
                            1: [],
                            2: [],
                            3: [],
                            4: [],
                            5: [],
                            6: [],
                            7: [],
                            8: [],
                            9: [],
                            10: []
                        }, this._validTypes = [
                            "onDown",
                            "onUp",
                            "onOver",
                            "onOut",
                            "onMove",
                            "onDragStart",
                            "onDrag",
                            "onDragEnd",
                            "onDragEnter",
                            "onDragLeave",
                            "onDragOver",
                            "onDrop"
                        ], this._updatedThisFrame = !1, t.sys.events.once(w.BOOT, this.boot, this), t.sys.events.on(w.START, this.start, this);
                    },
                    boot: function() {
                        this.cameras = this.systems.cameras, this.displayList = this.systems.displayList, this.systems.events.once(w.DESTROY, this.destroy, this), this.pluginEvents.emit(d.BOOT);
                    },
                    start: function() {
                        var t = this.systems.events;
                        t.on(w.TRANSITION_START, this.transitionIn, this), t.on(w.TRANSITION_OUT, this.transitionOut, this), t.on(w.TRANSITION_COMPLETE, this.transitionComplete, this), t.on(w.PRE_UPDATE, this.preUpdate, this), t.once(w.SHUTDOWN, this.shutdown, this), this.manager.events.on(d.GAME_OUT, this.onGameOut, this), this.manager.events.on(d.GAME_OVER, this.onGameOver, this), this.enabled = !0, this._dragState = [
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0,
                            0
                        ], this.pluginEvents.emit(d.START);
                    },
                    onGameOver: function(t) {
                        this.isActive() && this.emit(d.GAME_OVER, t.timeStamp, t);
                    },
                    onGameOut: function(t) {
                        this.isActive() && this.emit(d.GAME_OUT, t.timeStamp, t);
                    },
                    preUpdate: function() {
                        this.pluginEvents.emit(d.PRE_UPDATE);
                        var t = this._pendingRemoval, e = this._pendingInsertion, i = t.length, s = e.length;
                        if (0 !== i || 0 !== s) {
                            for(var n = this._list, r = 0; r < i; r++){
                                var o = t[r], a = n.indexOf(o);
                                a > -1 && (n.splice(a, 1), this.clear(o, !0));
                            }
                            this._pendingRemoval.length = 0, this._list = n.concat(e.splice(0));
                        }
                    },
                    isActive: function() {
                        return this.enabled && this.scene.sys.canInput();
                    },
                    updatePoll: function(t, e) {
                        if (!this.isActive()) return !1;
                        if (this.pluginEvents.emit(d.UPDATE, t, e), this._updatedThisFrame) return this._updatedThisFrame = !1, !1;
                        var i, s = this.manager, n = s.pointers, r = s.pointersTotal;
                        for(i = 0; i < r; i++)n[i].updateMotion();
                        if (0 === this._list.length) return !1;
                        var o = this.pollRate;
                        if (-1 === o) return !1;
                        if (o > 0) {
                            if (this._pollTimer -= e, !(this._pollTimer < 0)) return !1;
                            this._pollTimer = this.pollRate;
                        }
                        var a = !1;
                        for(i = 0; i < r; i++){
                            var h = 0, l = n[i];
                            this._tempZones = [], this._temp = this.hitTestPointer(l), this.sortGameObjects(this._temp, l), this.sortDropZones(this._tempZones), this.topOnly && (this._temp.length && this._temp.splice(1), this._tempZones.length && this._tempZones.splice(1)), h += this.processOverOutEvents(l), 2 === this.getDragState(l) && this.processDragThresholdEvent(l, t), h > 0 && (a = !0);
                        }
                        return a;
                    },
                    update: function(t, e) {
                        if (!this.isActive()) return !1;
                        for(var i = e.length, s = !1, n = 0; n < i; n++){
                            var r = 0, a = e[n];
                            switch(this._tempZones = [], this._temp = this.hitTestPointer(a), this.sortGameObjects(this._temp, a), this.sortDropZones(this._tempZones), this.topOnly && (this._temp.length && this._temp.splice(1), this._tempZones.length && this._tempZones.splice(1)), t){
                                case o.MOUSE_DOWN:
                                    r += this.processDragDownEvent(a), r += this.processDownEvents(a), r += this.processOverOutEvents(a);
                                    break;
                                case o.MOUSE_UP:
                                    r += this.processDragUpEvent(a), r += this.processUpEvents(a), r += this.processOverOutEvents(a);
                                    break;
                                case o.TOUCH_START:
                                    r += this.processDragDownEvent(a), r += this.processDownEvents(a), r += this.processOverEvents(a);
                                    break;
                                case o.TOUCH_END:
                                case o.TOUCH_CANCEL:
                                    r += this.processDragUpEvent(a), r += this.processUpEvents(a), r += this.processOutEvents(a);
                                    break;
                                case o.MOUSE_MOVE:
                                case o.TOUCH_MOVE:
                                    r += this.processDragMoveEvent(a), r += this.processMoveEvents(a), r += this.processOverOutEvents(a);
                                    break;
                                case o.MOUSE_WHEEL:
                                    r += this.processWheelEvent(a);
                            }
                            r > 0 && (s = !0);
                        }
                        return this._updatedThisFrame = !0, s;
                    },
                    clear: function(t, e) {
                        void 0 === e && (e = !1), this.disable(t);
                        var i = t.input;
                        i && (this.removeDebug(t), i.gameObject = void 0, i.target = void 0, i.hitArea = void 0, i.hitAreaCallback = void 0, i.callbackContext = void 0, t.input = null), e || this.queueForRemoval(t);
                        var s = this._draggable.indexOf(t);
                        return s > -1 && this._draggable.splice(s, 1), t;
                    },
                    disable: function(t) {
                        var e = t.input;
                        e && (e.enabled = !1, e.dragState = 0);
                        var i = this._temp, s = this._drag, n = this._over, r = this.manager, o = i.indexOf(t);
                        o > -1 && i.splice(o, 1);
                        for(var a = 0; a < r.pointersTotal; a++)(o = s[a].indexOf(t)) > -1 && s[a].splice(o, 1), (o = n[a].indexOf(t)) > -1 && (n[a].splice(o, 1), r.resetCursor(e));
                        return this;
                    },
                    enable: function(t, e, i, s) {
                        return void 0 === s && (s = !1), t.input ? t.input.enabled = !0 : this.setHitArea(t, e, i), t.input && s && !t.input.dropZone && (t.input.dropZone = s), this;
                    },
                    hitTestPointer: function(t) {
                        for(var e = this.cameras.getCamerasBelowPointer(t), i = 0; i < e.length; i++){
                            for(var s = e[i], n = this.manager.hitTest(t, this._list, s), r = 0; r < n.length; r++){
                                var o = n[r];
                                o.input.dropZone && this._tempZones.push(o);
                            }
                            if (n.length > 0) return t.camera = s, n;
                        }
                        return t.camera = e[0], [];
                    },
                    processDownEvents: function(t) {
                        var e = 0, i = this._temp, s = this._eventData, n = this._eventContainer;
                        s.cancelled = !1;
                        for(var r = !1, o = 0; o < i.length; o++){
                            var a = i[o];
                            if (a.input && a.input.enabled) {
                                if (e++, a.emit(d.GAMEOBJECT_POINTER_DOWN, t, a.input.localX, a.input.localY, n), s.cancelled || !a.input || !a.input.enabled) {
                                    r = !0;
                                    break;
                                }
                                if (this.emit(d.GAMEOBJECT_DOWN, t, a, n), s.cancelled || !a.input) {
                                    r = !0;
                                    break;
                                }
                            }
                        }
                        return !r && this.manager && (t.downElement === this.manager.game.canvas ? this.emit(d.POINTER_DOWN, t, i) : this.emit(d.POINTER_DOWN_OUTSIDE, t)), e;
                    },
                    getDragState: function(t) {
                        return this._dragState[t.id];
                    },
                    setDragState: function(t, e) {
                        this._dragState[t.id] = e;
                    },
                    processDragThresholdEvent: function(t, e) {
                        var i = !1, s = this.dragTimeThreshold, n = this.dragDistanceThreshold;
                        if ((n > 0 && l(t.x, t.y, t.downX, t.downY) >= n || s > 0 && e >= t.downTime + s) && (i = !0), i) return this.setDragState(t, 3), this.processDragStartList(t);
                    },
                    processDragStartList: function(t) {
                        if (3 !== this.getDragState(t)) return 0;
                        for(var e = this._drag[t.id], i = 0; i < e.length; i++){
                            var s = e[i], n = s.input;
                            n.dragState = 2, n.dragStartX = s.x, n.dragStartY = s.y, n.dragStartXGlobal = t.worldX, n.dragStartYGlobal = t.worldY, n.dragX = n.dragStartXGlobal - n.dragStartX, n.dragY = n.dragStartYGlobal - n.dragStartY, s.emit(d.GAMEOBJECT_DRAG_START, t, n.dragX, n.dragY), this.emit(d.DRAG_START, t, s);
                        }
                        return this.setDragState(t, 4), e.length;
                    },
                    processDragDownEvent: function(t) {
                        var e = this._temp;
                        if (0 === this._draggable.length || 0 === e.length || !t.primaryDown || 0 !== this.getDragState(t)) return 0;
                        this.setDragState(t, 1);
                        for(var i = [], s = 0; s < e.length; s++){
                            var n = e[s];
                            n.input.draggable && 0 === n.input.dragState && i.push(n);
                        }
                        return 0 === i.length ? (this.setDragState(t, 0), 0) : (i.length > 1 && (this.sortGameObjects(i, t), this.topOnly && i.splice(1)), this._drag[t.id] = i, 0 === this.dragDistanceThreshold && 0 === this.dragTimeThreshold ? (this.setDragState(t, 3), this.processDragStartList(t)) : (this.setDragState(t, 2), 0));
                    },
                    processDragMoveEvent: function(t) {
                        if (2 === this.getDragState(t) && this.processDragThresholdEvent(t, this.manager.game.loop.now), 4 !== this.getDragState(t)) return 0;
                        for(var e = this._tempZones, i = this._drag[t.id], s = 0; s < i.length; s++){
                            var n, r, o = i[s], a = o.input, h = a.target;
                            if (h) {
                                var l = e.indexOf(h);
                                0 === l ? (o.emit(d.GAMEOBJECT_DRAG_OVER, t, h), this.emit(d.DRAG_OVER, t, o, h)) : l > 0 ? (o.emit(d.GAMEOBJECT_DRAG_LEAVE, t, h), this.emit(d.DRAG_LEAVE, t, o, h), a.target = e[0], h = a.target, o.emit(d.GAMEOBJECT_DRAG_ENTER, t, h), this.emit(d.DRAG_ENTER, t, o, h)) : (o.emit(d.GAMEOBJECT_DRAG_LEAVE, t, h), this.emit(d.DRAG_LEAVE, t, o, h), e[0] ? (a.target = e[0], h = a.target, o.emit(d.GAMEOBJECT_DRAG_ENTER, t, h), this.emit(d.DRAG_ENTER, t, o, h)) : a.target = null);
                            } else !h && e[0] && (a.target = e[0], h = a.target, o.emit(d.GAMEOBJECT_DRAG_ENTER, t, h), this.emit(d.DRAG_ENTER, t, o, h));
                            if (o.parentContainer) {
                                var u = t.worldX - a.dragStartXGlobal, c = t.worldY - a.dragStartYGlobal, f = o.getParentRotation(), p = u * Math.cos(f) + c * Math.sin(f), v = c * Math.cos(f) - u * Math.sin(f);
                                p *= 1 / o.parentContainer.scaleX, v *= 1 / o.parentContainer.scaleY, n = p + a.dragStartX, r = v + a.dragStartY;
                            } else n = t.worldX - a.dragX, r = t.worldY - a.dragY;
                            o.emit(d.GAMEOBJECT_DRAG, t, n, r), this.emit(d.DRAG, t, o, n, r);
                        }
                        return i.length;
                    },
                    processDragUpEvent: function(t) {
                        for(var e = this._drag[t.id], i = 0; i < e.length; i++){
                            var s = e[i], n = s.input;
                            if (n && 2 === n.dragState) {
                                n.dragState = 0, n.dragX = n.localX - s.displayOriginX, n.dragY = n.localY - s.displayOriginY;
                                var r = !1, o = n.target;
                                o && (s.emit(d.GAMEOBJECT_DROP, t, o), this.emit(d.DROP, t, s, o), n.target = null, r = !0), s.input && s.input.enabled && (s.emit(d.GAMEOBJECT_DRAG_END, t, n.dragX, n.dragY, r), this.emit(d.DRAG_END, t, s, r));
                            }
                        }
                        return this.setDragState(t, 0), e.splice(0), 0;
                    },
                    processMoveEvents: function(t) {
                        var e = 0, i = this._temp, s = this._eventData, n = this._eventContainer;
                        s.cancelled = !1;
                        for(var r = !1, o = 0; o < i.length; o++){
                            var a = i[o];
                            if (a.input && a.input.enabled) {
                                if (e++, a.emit(d.GAMEOBJECT_POINTER_MOVE, t, a.input.localX, a.input.localY, n), s.cancelled || !a.input || !a.input.enabled) {
                                    r = !0;
                                    break;
                                }
                                if (this.emit(d.GAMEOBJECT_MOVE, t, a, n), s.cancelled || !a.input || !a.input.enabled) {
                                    r = !0;
                                    break;
                                }
                                if (this.topOnly) break;
                            }
                        }
                        return r || this.emit(d.POINTER_MOVE, t, i), e;
                    },
                    processWheelEvent: function(t) {
                        var e = 0, i = this._temp, s = this._eventData, n = this._eventContainer;
                        s.cancelled = !1;
                        for(var r = !1, o = t.deltaX, a = t.deltaY, h = t.deltaZ, l = 0; l < i.length; l++){
                            var u = i[l];
                            if (u.input && u.input.enabled) {
                                if (e++, u.emit(d.GAMEOBJECT_POINTER_WHEEL, t, o, a, h, n), s.cancelled || !u.input || !u.input.enabled) {
                                    r = !0;
                                    break;
                                }
                                if (this.emit(d.GAMEOBJECT_WHEEL, t, u, o, a, h, n), s.cancelled || !u.input || !u.input.enabled) {
                                    r = !0;
                                    break;
                                }
                            }
                        }
                        return r || this.emit(d.POINTER_WHEEL, t, i, o, a, h), e;
                    },
                    processOverEvents: function(t) {
                        var e = this._temp, i = 0, s = e.length, n = [];
                        if (s > 0) {
                            var r = this.manager, o = this._eventData, a = this._eventContainer;
                            o.cancelled = !1;
                            for(var h = !1, l = 0; l < s; l++){
                                var u = e[l];
                                if (u.input && u.input.enabled) {
                                    if (n.push(u), r.setCursor(u.input), u.emit(d.GAMEOBJECT_POINTER_OVER, t, u.input.localX, u.input.localY, a), i++, o.cancelled || !u.input || !u.input.enabled) {
                                        h = !0;
                                        break;
                                    }
                                    if (this.emit(d.GAMEOBJECT_OVER, t, u, a), o.cancelled || !u.input || !u.input.enabled) {
                                        h = !0;
                                        break;
                                    }
                                }
                            }
                            h || this.emit(d.POINTER_OVER, t, n);
                        }
                        return this._over[t.id] = n, i;
                    },
                    processOutEvents: function(t) {
                        var e = this._over[t.id], i = 0, s = e.length;
                        if (s > 0) {
                            var n = this.manager, r = this._eventData, o = this._eventContainer;
                            r.cancelled = !1;
                            var a = !1;
                            this.sortGameObjects(e, t);
                            for(var h = 0; h < s; h++){
                                var l = e[h];
                                if ((l = e[h]).input && l.input.enabled) {
                                    if (n.resetCursor(l.input), l.emit(d.GAMEOBJECT_POINTER_OUT, t, o), i++, r.cancelled || !l.input || !l.input.enabled) {
                                        a = !0;
                                        break;
                                    }
                                    if (this.emit(d.GAMEOBJECT_OUT, t, l, o), r.cancelled || !l.input || !l.input.enabled) {
                                        a = !0;
                                        break;
                                    }
                                    a || this.emit(d.POINTER_OUT, t, e);
                                }
                            }
                            this._over[t.id] = [];
                        }
                        return i;
                    },
                    processOverOutEvents: function(t) {
                        var e, i, s = this._temp, n = [], r = [], o = [], a = this._over[t.id], h = this._drag[t.id], l = this.manager;
                        for(e = 0; e < a.length; e++)i = a[e], -1 === s.indexOf(i) && -1 === h.indexOf(i) ? n.push(i) : o.push(i);
                        for(e = 0; e < s.length; e++)i = s[e], -1 === a.indexOf(i) && r.push(i);
                        var u = n.length, c = 0, f = this._eventData, p = this._eventContainer;
                        f.cancelled = !1;
                        var v = !1;
                        if (u > 0) {
                            for(this.sortGameObjects(n, t), e = 0; e < u; e++)if ((i = n[e]).input && i.input.enabled) {
                                if (l.resetCursor(i.input), i.emit(d.GAMEOBJECT_POINTER_OUT, t, p), c++, f.cancelled || !i.input || !i.input.enabled) {
                                    v = !0;
                                    break;
                                }
                                if (this.emit(d.GAMEOBJECT_OUT, t, i, p), f.cancelled || !i.input || !i.input.enabled) {
                                    v = !0;
                                    break;
                                }
                            }
                            v || this.emit(d.POINTER_OUT, t, n);
                        }
                        if (u = r.length, f.cancelled = !1, v = !1, u > 0) {
                            for(this.sortGameObjects(r, t), e = 0; e < u; e++)if ((i = r[e]).input && i.input.enabled) {
                                if (l.setCursor(i.input), i.emit(d.GAMEOBJECT_POINTER_OVER, t, i.input.localX, i.input.localY, p), c++, f.cancelled || !i.input || !i.input.enabled) {
                                    v = !0;
                                    break;
                                }
                                if (this.emit(d.GAMEOBJECT_OVER, t, i, p), f.cancelled || !i.input || !i.input.enabled) {
                                    v = !0;
                                    break;
                                }
                            }
                            v || this.emit(d.POINTER_OVER, t, r);
                        }
                        return a = o.concat(r), this._over[t.id] = this.sortGameObjects(a, t), c;
                    },
                    processUpEvents: function(t) {
                        var e = this._temp, i = this._eventData, s = this._eventContainer;
                        i.cancelled = !1;
                        for(var n = !1, r = 0; r < e.length; r++){
                            var o = e[r];
                            if (o.input && o.input.enabled) {
                                if (o.emit(d.GAMEOBJECT_POINTER_UP, t, o.input.localX, o.input.localY, s), i.cancelled || !o.input || !o.input.enabled) {
                                    n = !0;
                                    break;
                                }
                                if (this.emit(d.GAMEOBJECT_UP, t, o, s), i.cancelled || !o.input || !o.input.enabled) {
                                    n = !0;
                                    break;
                                }
                            }
                        }
                        return !n && this.manager && (t.upElement === this.manager.game.canvas ? this.emit(d.POINTER_UP, t, e) : this.emit(d.POINTER_UP_OUTSIDE, t)), e.length;
                    },
                    queueForInsertion: function(t) {
                        return -1 === this._pendingInsertion.indexOf(t) && -1 === this._list.indexOf(t) && this._pendingInsertion.push(t), this;
                    },
                    queueForRemoval: function(t) {
                        return this._pendingRemoval.push(t), this;
                    },
                    setDraggable: function(t, e) {
                        void 0 === e && (e = !0), Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var i = 0; i < t.length; i++){
                            var s = t[i];
                            s.input.draggable = e;
                            var n = this._draggable.indexOf(s);
                            e && -1 === n ? this._draggable.push(s) : !e && n > -1 && this._draggable.splice(n, 1);
                        }
                        return this;
                    },
                    makePixelPerfect: function(t) {
                        void 0 === t && (t = 1);
                        var e = this.systems.textures;
                        return h(e, t);
                    },
                    setHitArea: function(t, e, i) {
                        if (void 0 === e) return this.setHitAreaFromTexture(t);
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        var s = !1, n = !1, r = !1, o = !1, h = !1, l = !0;
                        if (m(e)) {
                            var u = e;
                            e = p(u, "hitArea", null), i = p(u, "hitAreaCallback", null), s = p(u, "draggable", !1), n = p(u, "dropZone", !1), r = p(u, "cursor", !1), o = p(u, "useHandCursor", !1), h = p(u, "pixelPerfect", !1);
                            var c = p(u, "alphaTolerance", 1);
                            h && (e = {}, i = this.makePixelPerfect(c)), e && i || (this.setHitAreaFromTexture(t), l = !1);
                        } else "function" != typeof e || i || (i = e, e = {});
                        for(var d = 0; d < t.length; d++){
                            var f = t[d];
                            if (h && "Container" === f.type) console.warn("Cannot pixelPerfect test a Container. Use a custom callback.");
                            else {
                                var v = f.input ? f.input : a(f, e, i);
                                v.customHitArea = l, v.dropZone = n, v.cursor = o ? "pointer" : r, f.input = v, s && this.setDraggable(f), this.queueForInsertion(f);
                            }
                        }
                        return this;
                    },
                    setHitAreaCircle: function(t, e, i, r, o) {
                        void 0 === o && (o = n);
                        var a = new s(e, i, r);
                        return this.setHitArea(t, a, o);
                    },
                    setHitAreaEllipse: function(t, e, i, s, n, r) {
                        void 0 === r && (r = c);
                        var o = new u(e, i, s, n);
                        return this.setHitArea(t, o, r);
                    },
                    setHitAreaFromTexture: function(t, e) {
                        void 0 === e && (e = T), Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var i = 0; i < t.length; i++){
                            var s = t[i], n = s.frame, r = 0, o = 0;
                            s.width ? (r = s.width, o = s.height) : n && (r = n.realWidth, o = n.realHeight), "Container" !== s.type || 0 !== r && 0 !== o ? 0 !== r && 0 !== o && (s.input = a(s, new x(0, 0, r, o), e), this.queueForInsertion(s)) : console.warn("Container.setInteractive must specify a Shape or call setSize() first");
                        }
                        return this;
                    },
                    setHitAreaRectangle: function(t, e, i, s, n, r) {
                        void 0 === r && (r = T);
                        var o = new x(e, i, s, n);
                        return this.setHitArea(t, o, r);
                    },
                    setHitAreaTriangle: function(t, e, i, s, n, r, o, a) {
                        void 0 === a && (a = S);
                        var h = new b(e, i, s, n, r, o);
                        return this.setHitArea(t, h, a);
                    },
                    enableDebug: function(t, e) {
                        void 0 === e && (e = 65280);
                        var i = t.input;
                        if (!i || !i.hitArea) return this;
                        var s = i.hitArea, n = s.type, r = i.hitAreaDebug, o = this.systems.add, a = this.systems.updateList;
                        r && (a.remove(r), r.destroy(), r = null);
                        var h = 0, l = 0;
                        switch(n){
                            case v.CIRCLE:
                                r = o.arc(0, 0, s.radius), h = s.x - s.radius, l = s.y - s.radius;
                                break;
                            case v.ELLIPSE:
                                r = o.ellipse(0, 0, s.width, s.height), h = s.x - s.width / 2, l = s.y - s.height / 2;
                                break;
                            case v.LINE:
                                r = o.line(0, 0, s.x1, s.y1, s.x2, s.y2);
                                break;
                            case v.POLYGON:
                                r = o.polygon(0, 0, s.points);
                                break;
                            case v.RECTANGLE:
                                r = o.rectangle(0, 0, s.width, s.height), h = s.x, l = s.y;
                                break;
                            case v.TRIANGLE:
                                r = o.triangle(0, 0, s.x1, s.y1, s.x2, s.y2, s.x3, s.y3);
                        }
                        return r && (r.isFilled = !1, r.strokeColor = e, r.preUpdate = function() {
                            r.setStrokeStyle(1 / t.scale, r.strokeColor), r.setDisplayOrigin(t.displayOriginX, t.displayOriginY);
                            var e = t.x, i = t.y, s = t.rotation, n = t.scaleX, o = t.scaleY;
                            if (t.parentContainer) {
                                var a = t.getWorldTransformMatrix();
                                e = a.tx, i = a.ty, s = a.rotation, n = a.scaleX, o = a.scaleY;
                            }
                            r.setRotation(s), r.setScale(n, o), r.setPosition(e + h * n, i + l * o), r.setScrollFactor(t.scrollFactorX, t.scrollFactorY), r.setDepth(t.depth);
                        }, a.add(r), i.hitAreaDebug = r), this;
                    },
                    removeDebug: function(t) {
                        var e = t.input;
                        if (e && e.hitAreaDebug) {
                            var i = e.hitAreaDebug;
                            this.systems.updateList.remove(i), i.destroy(), e.hitAreaDebug = null;
                        }
                        return this;
                    },
                    setPollAlways: function() {
                        return this.setPollRate(0);
                    },
                    setPollOnMove: function() {
                        return this.setPollRate(-1);
                    },
                    setPollRate: function(t) {
                        return this.pollRate = t, this._pollTimer = 0, this;
                    },
                    setGlobalTopOnly: function(t) {
                        return this.manager.globalTopOnly = t, this;
                    },
                    setTopOnly: function(t) {
                        return this.topOnly = t, this;
                    },
                    sortGameObjects: function(t, e) {
                        if (t.length < 2 || !e.camera) return t;
                        var i = e.camera.renderList;
                        return t.sort(function(t, e) {
                            var s = Math.max(i.indexOf(t), 0);
                            return Math.max(i.indexOf(e), 0) - s;
                        });
                    },
                    sortDropZones: function(t) {
                        return t.length < 2 ? t : (this.scene.sys.depthSort(), t.sort(this.sortDropZoneHandler.bind(this)));
                    },
                    sortDropZoneHandler: function(t, e) {
                        if (t.parentContainer || e.parentContainer) {
                            if (t.parentContainer === e.parentContainer) return e.parentContainer.getIndex(e) - t.parentContainer.getIndex(t);
                            if (t.parentContainer === e) return -1;
                            if (e.parentContainer === t) return 1;
                            for(var i = t.getIndexList(), s = e.getIndexList(), n = Math.min(i.length, s.length), r = 0; r < n; r++){
                                var o = i[r], a = s[r];
                                if (o !== a) return a - o;
                            }
                            return s.length - i.length;
                        }
                        return this.displayList.getIndex(e) - this.displayList.getIndex(t);
                    },
                    stopPropagation: function() {
                        return this.manager._tempSkip = !0, this;
                    },
                    addPointer: function(t) {
                        return this.manager.addPointer(t);
                    },
                    setDefaultCursor: function(t) {
                        return this.manager.setDefaultCursor(t), this;
                    },
                    transitionIn: function() {
                        this.enabled = this.settings.transitionAllowInput;
                    },
                    transitionComplete: function() {
                        this.settings.transitionAllowInput || (this.enabled = !0);
                    },
                    transitionOut: function() {
                        this.enabled = this.settings.transitionAllowInput;
                    },
                    shutdown: function() {
                        this.pluginEvents.emit(d.SHUTDOWN), this._temp.length = 0, this._list.length = 0, this._draggable.length = 0, this._pendingRemoval.length = 0, this._pendingInsertion.length = 0, this._dragState.length = 0;
                        for(var t = 0; t < 10; t++)this._drag[t] = [], this._over[t] = [];
                        this.removeAllListeners();
                        var e = this.manager;
                        e.canvas.style.cursor = e.defaultCursor;
                        var i = this.systems.events;
                        i.off(w.TRANSITION_START, this.transitionIn, this), i.off(w.TRANSITION_OUT, this.transitionOut, this), i.off(w.TRANSITION_COMPLETE, this.transitionComplete, this), i.off(w.PRE_UPDATE, this.preUpdate, this), e.events.off(d.GAME_OUT, this.onGameOut, this), e.events.off(d.GAME_OVER, this.onGameOver, this), i.off(w.SHUTDOWN, this.shutdown, this);
                    },
                    resetPointers: function() {
                        for(var t = this.manager.pointers, e = 0; e < t.length; e++)t[e].reset();
                    },
                    destroy: function() {
                        this.shutdown(), this.pluginEvents.emit(d.DESTROY), this.pluginEvents.removeAllListeners(), this.scene.sys.events.off(w.START, this.start, this), this.scene = null, this.cameras = null, this.manager = null, this.events = null, this.mouse = null;
                    },
                    x: {
                        get: function() {
                            return this.manager.activePointer.x;
                        }
                    },
                    y: {
                        get: function() {
                            return this.manager.activePointer.y;
                        }
                    },
                    isOver: {
                        get: function() {
                            return this.manager.isOver;
                        }
                    },
                    mousePointer: {
                        get: function() {
                            return this.manager.mousePointer;
                        }
                    },
                    activePointer: {
                        get: function() {
                            return this.manager.activePointer;
                        }
                    },
                    pointer1: {
                        get: function() {
                            return this.manager.pointers[1];
                        }
                    },
                    pointer2: {
                        get: function() {
                            return this.manager.pointers[2];
                        }
                    },
                    pointer3: {
                        get: function() {
                            return this.manager.pointers[3];
                        }
                    },
                    pointer4: {
                        get: function() {
                            return this.manager.pointers[4];
                        }
                    },
                    pointer5: {
                        get: function() {
                            return this.manager.pointers[5];
                        }
                    },
                    pointer6: {
                        get: function() {
                            return this.manager.pointers[6];
                        }
                    },
                    pointer7: {
                        get: function() {
                            return this.manager.pointers[7];
                        }
                    },
                    pointer8: {
                        get: function() {
                            return this.manager.pointers[8];
                        }
                    },
                    pointer9: {
                        get: function() {
                            return this.manager.pointers[9];
                        }
                    },
                    pointer10: {
                        get: function() {
                            return this.manager.pointers[10];
                        }
                    }
                });
                y.register("InputPlugin", E, "input"), t.exports = E;
            },
            63399: (t, e, i)=>{
                var s = i(10850), n = {}, r = {
                    register: function(t, e, i, s, r) {
                        n[t] = {
                            plugin: e,
                            mapping: i,
                            settingsKey: s,
                            configKey: r
                        };
                    },
                    getPlugin: function(t) {
                        return n[t];
                    },
                    install: function(t) {
                        var e = t.scene.sys, i = e.settings.input, r = e.game.config;
                        for(var o in n){
                            var a = n[o].plugin, h = n[o].mapping, l = n[o].settingsKey, u = n[o].configKey;
                            s(i, l, r[u]) && (t[h] = new a(t));
                        }
                    },
                    remove: function(t) {
                        n.hasOwnProperty(t) && delete n[t];
                    }
                };
                t.exports = r;
            },
            40398: (t, e, i)=>{
                var s = i(90447), n = i(56694), r = i(53996), o = i(88456), a = i(44521), h = i(93736), l = i(36580), u = new n({
                    initialize: function(t, e) {
                        this.manager = t, this.id = e, this.event, this.downElement, this.upElement, this.camera = null, this.button = 0, this.buttons = 0, this.position = new h, this.prevPosition = new h, this.midPoint = new h(-1, -1), this.velocity = new h, this.angle = 0, this.distance = 0, this.smoothFactor = 0, this.motionFactor = .2, this.worldX = 0, this.worldY = 0, this.moveTime = 0, this.downX = 0, this.downY = 0, this.downTime = 0, this.upX = 0, this.upY = 0, this.upTime = 0, this.primaryDown = !1, this.isDown = !1, this.wasTouch = !1, this.wasCanceled = !1, this.movementX = 0, this.movementY = 0, this.identifier = 0, this.pointerId = null, this.active = 0 === e, this.locked = !1, this.deltaX = 0, this.deltaY = 0, this.deltaZ = 0;
                    },
                    updateWorldPoint: function(t) {
                        var e = t.getWorldPoint(this.x, this.y);
                        return this.worldX = e.x, this.worldY = e.y, this;
                    },
                    positionToCamera: function(t, e) {
                        return t.getWorldPoint(this.x, this.y, e);
                    },
                    updateMotion: function() {
                        var t = this.position.x, e = this.position.y, i = this.midPoint.x, n = this.midPoint.y;
                        if (t !== i || e !== n) {
                            var r = a(this.motionFactor, i, t), h = a(this.motionFactor, n, e);
                            o(r, t, .1) && (r = t), o(h, e, .1) && (h = e), this.midPoint.set(r, h);
                            var l = t - r, u = e - h;
                            this.velocity.set(l, u), this.angle = s(r, h, t, e), this.distance = Math.sqrt(l * l + u * u);
                        }
                    },
                    up: function(t) {
                        "buttons" in t && (this.buttons = t.buttons), this.event = t, this.button = t.button, this.upElement = t.target, this.manager.transformPointer(this, t.pageX, t.pageY, !1), 0 === t.button && (this.primaryDown = !1, this.upX = this.x, this.upY = this.y), 0 === this.buttons && (this.isDown = !1, this.upTime = t.timeStamp, this.wasTouch = !1);
                    },
                    down: function(t) {
                        "buttons" in t && (this.buttons = t.buttons), this.event = t, this.button = t.button, this.downElement = t.target, this.manager.transformPointer(this, t.pageX, t.pageY, !1), 0 === t.button && (this.primaryDown = !0, this.downX = this.x, this.downY = this.y), l.macOS && t.ctrlKey && (this.buttons = 2, this.primaryDown = !1), this.isDown || (this.isDown = !0, this.downTime = t.timeStamp), this.wasTouch = !1;
                    },
                    move: function(t) {
                        "buttons" in t && (this.buttons = t.buttons), this.event = t, this.manager.transformPointer(this, t.pageX, t.pageY, !0), this.locked && (this.movementX = t.movementX || t.mozMovementX || t.webkitMovementX || 0, this.movementY = t.movementY || t.mozMovementY || t.webkitMovementY || 0), this.moveTime = t.timeStamp, this.wasTouch = !1;
                    },
                    wheel: function(t) {
                        "buttons" in t && (this.buttons = t.buttons), this.event = t, this.manager.transformPointer(this, t.pageX, t.pageY, !1), this.deltaX = t.deltaX, this.deltaY = t.deltaY, this.deltaZ = t.deltaZ, this.wasTouch = !1;
                    },
                    touchstart: function(t, e) {
                        t.pointerId && (this.pointerId = t.pointerId), this.identifier = t.identifier, this.target = t.target, this.active = !0, this.buttons = 1, this.event = e, this.downElement = t.target, this.manager.transformPointer(this, t.pageX, t.pageY, !1), this.primaryDown = !0, this.downX = this.x, this.downY = this.y, this.downTime = e.timeStamp, this.isDown = !0, this.wasTouch = !0, this.wasCanceled = !1, this.updateMotion();
                    },
                    touchmove: function(t, e) {
                        this.event = e, this.manager.transformPointer(this, t.pageX, t.pageY, !0), this.moveTime = e.timeStamp, this.wasTouch = !0, this.updateMotion();
                    },
                    touchend: function(t, e) {
                        this.buttons = 0, this.event = e, this.upElement = t.target, this.manager.transformPointer(this, t.pageX, t.pageY, !1), this.primaryDown = !1, this.upX = this.x, this.upY = this.y, this.upTime = e.timeStamp, this.isDown = !1, this.wasTouch = !0, this.wasCanceled = !1, this.active = !1, this.updateMotion();
                    },
                    touchcancel: function(t, e) {
                        this.buttons = 0, this.event = e, this.upElement = t.target, this.manager.transformPointer(this, t.pageX, t.pageY, !1), this.primaryDown = !1, this.upX = this.x, this.upY = this.y, this.upTime = e.timeStamp, this.isDown = !1, this.wasTouch = !0, this.wasCanceled = !0, this.active = !1;
                    },
                    noButtonDown: function() {
                        return 0 === this.buttons;
                    },
                    leftButtonDown: function() {
                        return !!(1 & this.buttons);
                    },
                    rightButtonDown: function() {
                        return !!(2 & this.buttons);
                    },
                    middleButtonDown: function() {
                        return !!(4 & this.buttons);
                    },
                    backButtonDown: function() {
                        return !!(8 & this.buttons);
                    },
                    forwardButtonDown: function() {
                        return !!(16 & this.buttons);
                    },
                    leftButtonReleased: function() {
                        return 0 === this.button && !this.isDown;
                    },
                    rightButtonReleased: function() {
                        return 2 === this.button && !this.isDown;
                    },
                    middleButtonReleased: function() {
                        return 1 === this.button && !this.isDown;
                    },
                    backButtonReleased: function() {
                        return 3 === this.button && !this.isDown;
                    },
                    forwardButtonReleased: function() {
                        return 4 === this.button && !this.isDown;
                    },
                    getDistance: function() {
                        return this.isDown ? r(this.downX, this.downY, this.x, this.y) : r(this.downX, this.downY, this.upX, this.upY);
                    },
                    getDistanceX: function() {
                        return this.isDown ? Math.abs(this.downX - this.x) : Math.abs(this.downX - this.upX);
                    },
                    getDistanceY: function() {
                        return this.isDown ? Math.abs(this.downY - this.y) : Math.abs(this.downY - this.upY);
                    },
                    getDuration: function() {
                        return this.isDown ? this.manager.time - this.downTime : this.upTime - this.downTime;
                    },
                    getAngle: function() {
                        return this.isDown ? s(this.downX, this.downY, this.x, this.y) : s(this.downX, this.downY, this.upX, this.upY);
                    },
                    getInterpolatedPosition: function(t, e) {
                        void 0 === t && (t = 10), void 0 === e && (e = []);
                        for(var i = this.prevPosition.x, s = this.prevPosition.y, n = this.position.x, r = this.position.y, o = 0; o < t; o++){
                            var h = 1 / t * o;
                            e[o] = {
                                x: a(h, i, n),
                                y: a(h, s, r)
                            };
                        }
                        return e;
                    },
                    reset: function() {
                        this.event = null, this.downElement = null, this.upElement = null, this.button = 0, this.buttons = 0, this.position.set(0, 0), this.prevPosition.set(0, 0), this.midPoint.set(-1, -1), this.velocity.set(0, 0), this.angle = 0, this.distance = 0, this.worldX = 0, this.worldY = 0, this.downX = 0, this.downY = 0, this.upX = 0, this.upY = 0, this.moveTime = 0, this.upTime = 0, this.downTime = 0, this.primaryDown = !1, this.isDown = !1, this.wasTouch = !1, this.wasCanceled = !1, this.movementX = 0, this.movementY = 0, this.identifier = 0, this.pointerId = null, this.deltaX = 0, this.deltaY = 0, this.deltaZ = 0, this.active = 0 === this.id;
                    },
                    destroy: function() {
                        this.camera = null, this.manager = null, this.position = null;
                    },
                    x: {
                        get: function() {
                            return this.position.x;
                        },
                        set: function(t) {
                            this.position.x = t;
                        }
                    },
                    y: {
                        get: function() {
                            return this.position.y;
                        },
                        set: function(t) {
                            this.position.y = t;
                        }
                    },
                    time: {
                        get: function() {
                            return this.event ? this.event.timeStamp : 0;
                        }
                    }
                });
                t.exports = u;
            },
            72687: (t)=>{
                t.exports = {
                    MOUSE_DOWN: 0,
                    MOUSE_MOVE: 1,
                    MOUSE_UP: 2,
                    TOUCH_START: 3,
                    TOUCH_MOVE: 4,
                    TOUCH_END: 5,
                    POINTER_LOCK_CHANGE: 6,
                    TOUCH_CANCEL: 7,
                    MOUSE_WHEEL: 8
                };
            },
            14874: (t)=>{
                t.exports = "boot";
            },
            54168: (t)=>{
                t.exports = "destroy";
            },
            526: (t)=>{
                t.exports = "dragend";
            },
            81623: (t)=>{
                t.exports = "dragenter";
            },
            94472: (t)=>{
                t.exports = "drag";
            },
            9304: (t)=>{
                t.exports = "dragleave";
            },
            34265: (t)=>{
                t.exports = "dragover";
            },
            50151: (t)=>{
                t.exports = "dragstart";
            },
            98134: (t)=>{
                t.exports = "drop";
            },
            56773: (t)=>{
                t.exports = "gameobjectdown";
            },
            45824: (t)=>{
                t.exports = "dragend";
            },
            39578: (t)=>{
                t.exports = "dragenter";
            },
            72072: (t)=>{
                t.exports = "drag";
            },
            82569: (t)=>{
                t.exports = "dragleave";
            },
            70833: (t)=>{
                t.exports = "dragover";
            },
            81442: (t)=>{
                t.exports = "dragstart";
            },
            32936: (t)=>{
                t.exports = "drop";
            },
            99658: (t)=>{
                t.exports = "gameobjectmove";
            },
            60515: (t)=>{
                t.exports = "gameobjectout";
            },
            55254: (t)=>{
                t.exports = "gameobjectover";
            },
            34782: (t)=>{
                t.exports = "pointerdown";
            },
            41769: (t)=>{
                t.exports = "pointermove";
            },
            65588: (t)=>{
                t.exports = "pointerout";
            },
            61640: (t)=>{
                t.exports = "pointerover";
            },
            49342: (t)=>{
                t.exports = "pointerup";
            },
            82662: (t)=>{
                t.exports = "wheel";
            },
            13058: (t)=>{
                t.exports = "gameobjectup";
            },
            52426: (t)=>{
                t.exports = "gameobjectwheel";
            },
            78072: (t)=>{
                t.exports = "gameout";
            },
            1545: (t)=>{
                t.exports = "gameover";
            },
            67137: (t)=>{
                t.exports = "boot";
            },
            27678: (t)=>{
                t.exports = "process";
            },
            22257: (t)=>{
                t.exports = "update";
            },
            90379: (t)=>{
                t.exports = "pointerlockchange";
            },
            88909: (t)=>{
                t.exports = "pointerdown";
            },
            36548: (t)=>{
                t.exports = "pointerdownoutside";
            },
            18483: (t)=>{
                t.exports = "pointermove";
            },
            22355: (t)=>{
                t.exports = "pointerout";
            },
            7997: (t)=>{
                t.exports = "pointerover";
            },
            66318: (t)=>{
                t.exports = "pointerup";
            },
            94812: (t)=>{
                t.exports = "pointerupoutside";
            },
            37310: (t)=>{
                t.exports = "wheel";
            },
            24196: (t)=>{
                t.exports = "preupdate";
            },
            27053: (t)=>{
                t.exports = "shutdown";
            },
            29413: (t)=>{
                t.exports = "start";
            },
            25165: (t)=>{
                t.exports = "update";
            },
            33963: (t, e, i)=>{
                t.exports = {
                    BOOT: i(14874),
                    DESTROY: i(54168),
                    DRAG_END: i(526),
                    DRAG_ENTER: i(81623),
                    DRAG: i(94472),
                    DRAG_LEAVE: i(9304),
                    DRAG_OVER: i(34265),
                    DRAG_START: i(50151),
                    DROP: i(98134),
                    GAME_OUT: i(78072),
                    GAME_OVER: i(1545),
                    GAMEOBJECT_DOWN: i(56773),
                    GAMEOBJECT_DRAG_END: i(45824),
                    GAMEOBJECT_DRAG_ENTER: i(39578),
                    GAMEOBJECT_DRAG: i(72072),
                    GAMEOBJECT_DRAG_LEAVE: i(82569),
                    GAMEOBJECT_DRAG_OVER: i(70833),
                    GAMEOBJECT_DRAG_START: i(81442),
                    GAMEOBJECT_DROP: i(32936),
                    GAMEOBJECT_MOVE: i(99658),
                    GAMEOBJECT_OUT: i(60515),
                    GAMEOBJECT_OVER: i(55254),
                    GAMEOBJECT_POINTER_DOWN: i(34782),
                    GAMEOBJECT_POINTER_MOVE: i(41769),
                    GAMEOBJECT_POINTER_OUT: i(65588),
                    GAMEOBJECT_POINTER_OVER: i(61640),
                    GAMEOBJECT_POINTER_UP: i(49342),
                    GAMEOBJECT_POINTER_WHEEL: i(82662),
                    GAMEOBJECT_UP: i(13058),
                    GAMEOBJECT_WHEEL: i(52426),
                    MANAGER_BOOT: i(67137),
                    MANAGER_PROCESS: i(27678),
                    MANAGER_UPDATE: i(22257),
                    POINTER_DOWN: i(88909),
                    POINTER_DOWN_OUTSIDE: i(36548),
                    POINTER_MOVE: i(18483),
                    POINTER_OUT: i(22355),
                    POINTER_OVER: i(7997),
                    POINTER_UP: i(66318),
                    POINTER_UP_OUTSIDE: i(94812),
                    POINTER_WHEEL: i(37310),
                    POINTERLOCK_CHANGE: i(90379),
                    PRE_UPDATE: i(24196),
                    SHUTDOWN: i(27053),
                    START: i(29413),
                    UPDATE: i(25165)
                };
            },
            70848: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t, e) {
                        this.pad = t, this.events = t.events, this.index = e, this.value = 0, this.threshold = .1;
                    },
                    update: function(t) {
                        this.value = t;
                    },
                    getValue: function() {
                        return Math.abs(this.value) < this.threshold ? 0 : this.value;
                    },
                    destroy: function() {
                        this.pad = null, this.events = null;
                    }
                });
                t.exports = s;
            },
            21274: (t, e, i)=>{
                var s = i(56694), n = i(43200), r = new s({
                    initialize: function(t, e) {
                        this.pad = t, this.events = t.manager, this.index = e, this.value = 0, this.threshold = 1, this.pressed = !1;
                    },
                    update: function(t) {
                        this.value = t;
                        var e = this.pad, i = this.index;
                        t >= this.threshold ? this.pressed || (this.pressed = !0, this.events.emit(n.BUTTON_DOWN, e, this, t), this.pad.emit(n.GAMEPAD_BUTTON_DOWN, i, t, this)) : this.pressed && (this.pressed = !1, this.events.emit(n.BUTTON_UP, e, this, t), this.pad.emit(n.GAMEPAD_BUTTON_UP, i, t, this));
                    },
                    destroy: function() {
                        this.pad = null, this.events = null;
                    }
                });
                t.exports = r;
            },
            75956: (t, e, i)=>{
                var s = i(70848), n = i(21274), r = i(56694), o = i(6659), a = i(93736), h = new r({
                    Extends: o,
                    initialize: function(t, e) {
                        o.call(this), this.manager = t, this.pad = e, this.id = e.id, this.index = e.index;
                        for(var i = [], r = 0; r < e.buttons.length; r++)i.push(new n(this, r));
                        this.buttons = i;
                        var h = [];
                        for(r = 0; r < e.axes.length; r++)h.push(new s(this, r));
                        this.axes = h, this.vibration = e.vibrationActuator;
                        var l = {
                            value: 0,
                            pressed: !1
                        };
                        this._LCLeft = i[14] ? i[14] : l, this._LCRight = i[15] ? i[15] : l, this._LCTop = i[12] ? i[12] : l, this._LCBottom = i[13] ? i[13] : l, this._RCLeft = i[2] ? i[2] : l, this._RCRight = i[1] ? i[1] : l, this._RCTop = i[3] ? i[3] : l, this._RCBottom = i[0] ? i[0] : l, this._FBLeftTop = i[4] ? i[4] : l, this._FBLeftBottom = i[6] ? i[6] : l, this._FBRightTop = i[5] ? i[5] : l, this._FBRightBottom = i[7] ? i[7] : l;
                        var u = {
                            value: 0
                        };
                        this._HAxisLeft = h[0] ? h[0] : u, this._VAxisLeft = h[1] ? h[1] : u, this._HAxisRight = h[2] ? h[2] : u, this._VAxisRight = h[3] ? h[3] : u, this.leftStick = new a, this.rightStick = new a, this._created = performance.now();
                    },
                    getAxisTotal: function() {
                        return this.axes.length;
                    },
                    getAxisValue: function(t) {
                        return this.axes[t].getValue();
                    },
                    setAxisThreshold: function(t) {
                        for(var e = 0; e < this.axes.length; e++)this.axes[e].threshold = t;
                    },
                    getButtonTotal: function() {
                        return this.buttons.length;
                    },
                    getButtonValue: function(t) {
                        return this.buttons[t].value;
                    },
                    isButtonDown: function(t) {
                        return this.buttons[t].pressed;
                    },
                    update: function(t) {
                        if (!(t.timestamp < this._created)) {
                            var e, i = this.buttons, s = t.buttons, n = i.length;
                            for(e = 0; e < n; e++)i[e].update(s[e].value);
                            var r = this.axes, o = t.axes;
                            for(n = r.length, e = 0; e < n; e++)r[e].update(o[e]);
                            n >= 2 && (this.leftStick.set(r[0].getValue(), r[1].getValue()), n >= 4 && this.rightStick.set(r[2].getValue(), r[3].getValue()));
                        }
                    },
                    destroy: function() {
                        var t;
                        for(this.removeAllListeners(), this.manager = null, this.pad = null, t = 0; t < this.buttons.length; t++)this.buttons[t].destroy();
                        for(t = 0; t < this.axes.length; t++)this.axes[t].destroy();
                        this.buttons = [], this.axes = [];
                    },
                    connected: {
                        get: function() {
                            return this.pad.connected;
                        }
                    },
                    timestamp: {
                        get: function() {
                            return this.pad.timestamp;
                        }
                    },
                    left: {
                        get: function() {
                            return this._LCLeft.pressed;
                        }
                    },
                    right: {
                        get: function() {
                            return this._LCRight.pressed;
                        }
                    },
                    up: {
                        get: function() {
                            return this._LCTop.pressed;
                        }
                    },
                    down: {
                        get: function() {
                            return this._LCBottom.pressed;
                        }
                    },
                    A: {
                        get: function() {
                            return this._RCBottom.pressed;
                        }
                    },
                    Y: {
                        get: function() {
                            return this._RCTop.pressed;
                        }
                    },
                    X: {
                        get: function() {
                            return this._RCLeft.pressed;
                        }
                    },
                    B: {
                        get: function() {
                            return this._RCRight.pressed;
                        }
                    },
                    L1: {
                        get: function() {
                            return this._FBLeftTop.value;
                        }
                    },
                    L2: {
                        get: function() {
                            return this._FBLeftBottom.value;
                        }
                    },
                    R1: {
                        get: function() {
                            return this._FBRightTop.value;
                        }
                    },
                    R2: {
                        get: function() {
                            return this._FBRightBottom.value;
                        }
                    }
                });
                t.exports = h;
            },
            1379: (t, e, i)=>{
                var s = i(56694), n = i(6659), r = i(43200), o = i(75956), a = i(10850), h = i(63399), l = i(33963), u = new s({
                    Extends: n,
                    initialize: function(t) {
                        n.call(this), this.scene = t.scene, this.settings = this.scene.sys.settings, this.sceneInputPlugin = t, this.enabled = !0, this.target, this.gamepads = [], this.queue = [], this.onGamepadHandler, this._pad1, this._pad2, this._pad3, this._pad4, t.pluginEvents.once(l.BOOT, this.boot, this), t.pluginEvents.on(l.START, this.start, this);
                    },
                    boot: function() {
                        var t = this.scene.sys.game, e = this.settings.input, i = t.config;
                        this.enabled = a(e, "gamepad", i.inputGamepad) && t.device.input.gamepads, this.target = a(e, "gamepad.target", i.inputGamepadEventTarget), this.sceneInputPlugin.pluginEvents.once(l.DESTROY, this.destroy, this);
                    },
                    start: function() {
                        this.enabled && (this.startListeners(), this.refreshPads()), this.sceneInputPlugin.pluginEvents.once(l.SHUTDOWN, this.shutdown, this);
                    },
                    isActive: function() {
                        return this.enabled && this.scene.sys.isActive();
                    },
                    startListeners: function() {
                        var t = this, e = this.target, i = function(e) {
                            !e.defaultPrevented && t.isActive() && (t.refreshPads(), t.queue.push(e));
                        };
                        this.onGamepadHandler = i, e.addEventListener("gamepadconnected", i, !1), e.addEventListener("gamepaddisconnected", i, !1), this.sceneInputPlugin.pluginEvents.on(l.UPDATE, this.update, this);
                    },
                    stopListeners: function() {
                        this.target.removeEventListener("gamepadconnected", this.onGamepadHandler), this.target.removeEventListener("gamepaddisconnected", this.onGamepadHandler), this.sceneInputPlugin.pluginEvents.off(l.UPDATE, this.update);
                        for(var t = 0; t < this.gamepads.length; t++)this.gamepads[t].removeAllListeners();
                    },
                    disconnectAll: function() {
                        for(var t = 0; t < this.gamepads.length; t++)this.gamepads[t].pad.connected = !1;
                    },
                    refreshPads: function() {
                        var t = navigator.getGamepads();
                        if (t) for(var e = this.gamepads, i = 0; i < t.length; i++){
                            var s = t[i];
                            if (s) {
                                var n = s.id, r = s.index, a = e[r];
                                if (a) a.id !== n ? (a.destroy(), e[r] = new o(this, s)) : a.update(s);
                                else {
                                    var h = new o(this, s);
                                    e[r] = h, this._pad1 ? this._pad2 ? this._pad3 ? this._pad4 || (this._pad4 = h) : this._pad3 = h : this._pad2 = h : this._pad1 = h;
                                }
                            }
                        }
                        else this.disconnectAll();
                    },
                    getAll: function() {
                        for(var t = [], e = this.gamepads, i = 0; i < e.length; i++)e[i] && t.push(e[i]);
                        return t;
                    },
                    getPad: function(t) {
                        for(var e = this.gamepads, i = 0; i < e.length; i++)if (e[i] && e[i].index === t) return e[i];
                    },
                    update: function() {
                        if (this.enabled) {
                            this.refreshPads();
                            var t = this.queue.length;
                            if (0 !== t) for(var e = this.queue.splice(0, t), i = 0; i < t; i++){
                                var s = e[i], n = this.getPad(s.gamepad.index);
                                "gamepadconnected" === s.type ? this.emit(r.CONNECTED, n, s) : "gamepaddisconnected" === s.type && this.emit(r.DISCONNECTED, n, s);
                            }
                        }
                    },
                    shutdown: function() {
                        this.stopListeners(), this.removeAllListeners();
                    },
                    destroy: function() {
                        this.shutdown();
                        for(var t = 0; t < this.gamepads.length; t++)this.gamepads[t] && this.gamepads[t].destroy();
                        this.gamepads = [], this.scene = null, this.settings = null, this.sceneInputPlugin = null, this.target = null;
                    },
                    total: {
                        get: function() {
                            return this.gamepads.length;
                        }
                    },
                    pad1: {
                        get: function() {
                            return this._pad1;
                        }
                    },
                    pad2: {
                        get: function() {
                            return this._pad2;
                        }
                    },
                    pad3: {
                        get: function() {
                            return this._pad3;
                        }
                    },
                    pad4: {
                        get: function() {
                            return this._pad4;
                        }
                    }
                });
                h.register("GamepadPlugin", u, "gamepad", "gamepad", "inputGamepad"), t.exports = u;
            },
            33171: (t)=>{
                t.exports = {
                    UP: 12,
                    DOWN: 13,
                    LEFT: 14,
                    RIGHT: 15,
                    SELECT: 8,
                    START: 9,
                    B: 0,
                    A: 1,
                    Y: 2,
                    X: 3,
                    LEFT_SHOULDER: 4,
                    RIGHT_SHOULDER: 5
                };
            },
            74982: (t)=>{
                t.exports = {
                    UP: 12,
                    DOWN: 13,
                    LEFT: 14,
                    RIGHT: 15,
                    SHARE: 8,
                    OPTIONS: 9,
                    PS: 16,
                    TOUCHBAR: 17,
                    X: 0,
                    CIRCLE: 1,
                    SQUARE: 2,
                    TRIANGLE: 3,
                    L1: 4,
                    R1: 5,
                    L2: 6,
                    R2: 7,
                    L3: 10,
                    R3: 11,
                    LEFT_STICK_H: 0,
                    LEFT_STICK_V: 1,
                    RIGHT_STICK_H: 2,
                    RIGHT_STICK_V: 3
                };
            },
            43247: (t)=>{
                t.exports = {
                    UP: 12,
                    DOWN: 13,
                    LEFT: 14,
                    RIGHT: 15,
                    MENU: 16,
                    A: 0,
                    B: 1,
                    X: 2,
                    Y: 3,
                    LB: 4,
                    RB: 5,
                    LT: 6,
                    RT: 7,
                    BACK: 8,
                    START: 9,
                    LS: 10,
                    RS: 11,
                    LEFT_STICK_H: 0,
                    LEFT_STICK_V: 1,
                    RIGHT_STICK_H: 2,
                    RIGHT_STICK_V: 3
                };
            },
            4898: (t, e, i)=>{
                t.exports = {
                    DUALSHOCK_4: i(74982),
                    SNES_USB: i(33171),
                    XBOX_360: i(43247)
                };
            },
            17344: (t)=>{
                t.exports = "down";
            },
            36635: (t)=>{
                t.exports = "up";
            },
            85724: (t)=>{
                t.exports = "connected";
            },
            55832: (t)=>{
                t.exports = "disconnected";
            },
            772: (t)=>{
                t.exports = "down";
            },
            33608: (t)=>{
                t.exports = "up";
            },
            43200: (t, e, i)=>{
                t.exports = {
                    BUTTON_DOWN: i(17344),
                    BUTTON_UP: i(36635),
                    CONNECTED: i(85724),
                    DISCONNECTED: i(55832),
                    GAMEPAD_BUTTON_DOWN: i(772),
                    GAMEPAD_BUTTON_UP: i(33608)
                };
            },
            92636: (t, e, i)=>{
                t.exports = {
                    Axis: i(70848),
                    Button: i(21274),
                    Events: i(43200),
                    Gamepad: i(75956),
                    GamepadPlugin: i(1379),
                    Configs: i(4898)
                };
            },
            20873: (t, e, i)=>{
                var s = i(72687), n = i(98611), r = {
                    CreatePixelPerfectHandler: i(18104),
                    CreateInteractiveObject: i(27395),
                    Events: i(33963),
                    Gamepad: i(92636),
                    InputManager: i(69898),
                    InputPlugin: i(12499),
                    InputPluginCache: i(63399),
                    Keyboard: i(28388),
                    Mouse: i(11343),
                    Pointer: i(40398),
                    Touch: i(77423)
                };
                r = n(!1, r, s), t.exports = r;
            },
            71064: (t, e, i)=>{
                var s = i(66458), n = i(56694), r = i(97081), o = i(33963), a = i(11873), h = i(72283), l = new n({
                    initialize: function(t) {
                        this.manager = t, this.queue = [], this.preventDefault = !0, this.captures = [], this.enabled = !1, this.target, this.onKeyDown = h, this.onKeyUp = h, t.events.once(o.MANAGER_BOOT, this.boot, this);
                    },
                    boot: function() {
                        var t = this.manager.config;
                        this.enabled = t.inputKeyboard, this.target = t.inputKeyboardEventTarget, this.addCapture(t.inputKeyboardCapture), !this.target && window && (this.target = window), this.enabled && this.target && this.startListeners(), this.manager.game.events.on(r.POST_STEP, this.postUpdate, this);
                    },
                    startListeners: function() {
                        var t = this;
                        this.onKeyDown = function(e) {
                            if (!e.defaultPrevented && t.enabled && t.manager) {
                                t.queue.push(e), t.manager.events.emit(o.MANAGER_PROCESS);
                                var i = e.altKey || e.ctrlKey || e.shiftKey || e.metaKey;
                                t.preventDefault && !i && t.captures.indexOf(e.keyCode) > -1 && e.preventDefault();
                            }
                        }, this.onKeyUp = function(e) {
                            if (!e.defaultPrevented && t.enabled && t.manager) {
                                t.queue.push(e), t.manager.events.emit(o.MANAGER_PROCESS);
                                var i = e.altKey || e.ctrlKey || e.shiftKey || e.metaKey;
                                t.preventDefault && !i && t.captures.indexOf(e.keyCode) > -1 && e.preventDefault();
                            }
                        };
                        var e = this.target;
                        e && (e.addEventListener("keydown", this.onKeyDown, !1), e.addEventListener("keyup", this.onKeyUp, !1), this.enabled = !0);
                    },
                    stopListeners: function() {
                        var t = this.target;
                        t.removeEventListener("keydown", this.onKeyDown, !1), t.removeEventListener("keyup", this.onKeyUp, !1), this.enabled = !1;
                    },
                    postUpdate: function() {
                        this.queue = [];
                    },
                    addCapture: function(t) {
                        "string" == typeof t && (t = t.split(",")), Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var e = this.captures, i = 0; i < t.length; i++){
                            var s = t[i];
                            "string" == typeof s && (s = a[s.trim().toUpperCase()]), -1 === e.indexOf(s) && e.push(s);
                        }
                        this.preventDefault = e.length > 0;
                    },
                    removeCapture: function(t) {
                        "string" == typeof t && (t = t.split(",")), Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var e = this.captures, i = 0; i < t.length; i++){
                            var n = t[i];
                            "string" == typeof n && (n = a[n.toUpperCase()]), s(e, n);
                        }
                        this.preventDefault = e.length > 0;
                    },
                    clearCaptures: function() {
                        this.captures = [], this.preventDefault = !1;
                    },
                    destroy: function() {
                        this.stopListeners(), this.clearCaptures(), this.queue = [], this.manager.game.events.off(r.POST_RENDER, this.postUpdate, this), this.target = null, this.enabled = !1, this.manager = null;
                    }
                });
                t.exports = l;
            },
            89666: (t, e, i)=>{
                var s = i(56694), n = i(6659), r = i(94030), o = i(97081), a = i(10850), h = i(33963), l = i(63399), u = i(50165), c = i(11873), d = i(95625), f = i(48044), p = i(7599), v = i(84314), g = new s({
                    Extends: n,
                    initialize: function(t) {
                        n.call(this), this.game = t.systems.game, this.scene = t.scene, this.settings = this.scene.sys.settings, this.sceneInputPlugin = t, this.manager = t.manager.keyboard, this.enabled = !0, this.keys = [], this.combos = [], this.prevCode = null, this.prevTime = 0, this.prevType = null, t.pluginEvents.once(h.BOOT, this.boot, this), t.pluginEvents.on(h.START, this.start, this);
                    },
                    boot: function() {
                        var t = this.settings.input;
                        this.enabled = a(t, "keyboard", !0);
                        var e = a(t, "keyboard.capture", null);
                        e && this.addCaptures(e), this.sceneInputPlugin.pluginEvents.once(h.DESTROY, this.destroy, this);
                    },
                    start: function() {
                        this.sceneInputPlugin.manager.events.on(h.MANAGER_PROCESS, this.update, this), this.sceneInputPlugin.pluginEvents.once(h.SHUTDOWN, this.shutdown, this), this.game.events.on(o.BLUR, this.resetKeys, this), this.scene.sys.events.on(p.PAUSE, this.resetKeys, this), this.scene.sys.events.on(p.SLEEP, this.resetKeys, this);
                    },
                    isActive: function() {
                        return this.enabled && this.scene.sys.canInput();
                    },
                    addCapture: function(t) {
                        return this.manager.addCapture(t), this;
                    },
                    removeCapture: function(t) {
                        return this.manager.removeCapture(t), this;
                    },
                    getCaptures: function() {
                        return this.manager.captures;
                    },
                    enableGlobalCapture: function() {
                        return this.manager.preventDefault = !0, this;
                    },
                    disableGlobalCapture: function() {
                        return this.manager.preventDefault = !1, this;
                    },
                    clearCaptures: function() {
                        return this.manager.clearCaptures(), this;
                    },
                    createCursorKeys: function() {
                        return this.addKeys({
                            up: c.UP,
                            down: c.DOWN,
                            left: c.LEFT,
                            right: c.RIGHT,
                            space: c.SPACE,
                            shift: c.SHIFT
                        });
                    },
                    addKeys: function(t, e, i) {
                        void 0 === e && (e = !0), void 0 === i && (i = !1);
                        var s = {};
                        if ("string" == typeof t) {
                            t = t.split(",");
                            for(var n = 0; n < t.length; n++){
                                var r = t[n].trim();
                                r && (s[r] = this.addKey(r, e, i));
                            }
                        } else for(var o in t)s[o] = this.addKey(t[o], e, i);
                        return s;
                    },
                    addKey: function(t, e, i) {
                        void 0 === e && (e = !0), void 0 === i && (i = !1);
                        var s = this.keys;
                        if (t instanceof u) {
                            var n = s.indexOf(t);
                            return n > -1 ? s[n] = t : s[t.keyCode] = t, e && this.addCapture(t.keyCode), t.setEmitOnRepeat(i), t;
                        }
                        return "string" == typeof t && (t = c[t.toUpperCase()]), s[t] || (s[t] = new u(this, t), e && this.addCapture(t), s[t].setEmitOnRepeat(i)), s[t];
                    },
                    removeKey: function(t, e, i) {
                        void 0 === e && (e = !1), void 0 === i && (i = !1);
                        var s, n = this.keys;
                        if (t instanceof u) {
                            var r = n.indexOf(t);
                            r > -1 && (s = this.keys[r], this.keys[r] = void 0);
                        } else "string" == typeof t && (t = c[t.toUpperCase()]);
                        return n[t] && (s = n[t], n[t] = void 0), s && (s.plugin = null, i && this.removeCapture(s.keyCode), e && s.destroy()), this;
                    },
                    removeAllKeys: function(t, e) {
                        void 0 === t && (t = !1), void 0 === e && (e = !1);
                        for(var i = this.keys, s = 0; s < i.length; s++){
                            var n = i[s];
                            n && (i[s] = void 0, e && this.removeCapture(n.keyCode), t && n.destroy());
                        }
                        return this;
                    },
                    createCombo: function(t, e) {
                        return new d(this, t, e);
                    },
                    checkDown: function(t, e) {
                        if (void 0 === e && (e = 0), this.enabled && t.isDown) {
                            var i = v(this.time - t.timeDown, e);
                            if (i > t._tick) return t._tick = i, !0;
                        }
                        return !1;
                    },
                    update: function() {
                        var t = this.manager.queue, e = t.length;
                        if (this.isActive() && 0 !== e) for(var i = this.keys, s = 0; s < e; s++){
                            var n = t[s], o = n.keyCode, a = i[o], h = !1;
                            void 0 === n.cancelled && (n.cancelled = 0, n.stopImmediatePropagation = function() {
                                n.cancelled = 1;
                            }, n.stopPropagation = function() {
                                n.cancelled = -1;
                            }), -1 !== n.cancelled && (o === this.prevCode && n.timeStamp === this.prevTime && n.type === this.prevType || (this.prevCode = o, this.prevTime = n.timeStamp, this.prevType = n.type, "keydown" === n.type ? (a && (h = a.isDown, a.onDown(n)), n.cancelled || a && h || (f[o] && this.emit(r.KEY_DOWN + f[o], n), n.cancelled || this.emit(r.ANY_KEY_DOWN, n))) : (a && a.onUp(n), n.cancelled || (f[o] && this.emit(r.KEY_UP + f[o], n), n.cancelled || this.emit(r.ANY_KEY_UP, n))), 1 === n.cancelled && (n.cancelled = 0)));
                        }
                    },
                    resetKeys: function() {
                        for(var t = this.keys, e = 0; e < t.length; e++)t[e] && t[e].reset();
                        return this;
                    },
                    shutdown: function() {
                        this.removeAllKeys(!0), this.removeAllListeners(), this.sceneInputPlugin.manager.events.off(h.MANAGER_PROCESS, this.update, this), this.game.events.off(o.BLUR, this.resetKeys), this.scene.sys.events.off(p.PAUSE, this.resetKeys, this), this.scene.sys.events.off(p.SLEEP, this.resetKeys, this), this.queue = [];
                    },
                    destroy: function() {
                        this.shutdown();
                        for(var t = this.keys, e = 0; e < t.length; e++)t[e] && t[e].destroy();
                        this.keys = [], this.combos = [], this.queue = [], this.scene = null, this.settings = null, this.sceneInputPlugin = null, this.manager = null;
                    },
                    time: {
                        get: function() {
                            return this.sceneInputPlugin.manager.time;
                        }
                    }
                });
                l.register("KeyboardPlugin", g, "keyboard", "keyboard", "inputKeyboard"), t.exports = g;
            },
            60258: (t)=>{
                t.exports = function(t, e) {
                    return e.timeLastMatched = t.timeStamp, e.index++, e.index === e.size || (e.current = e.keyCodes[e.index], !1);
                };
            },
            95625: (t, e, i)=>{
                var s = i(56694), n = i(94030), r = i(72632), o = i(2544), a = i(88754), h = new s({
                    initialize: function(t, e, i) {
                        if (void 0 === i && (i = {}), e.length < 2) return !1;
                        this.manager = t, this.enabled = !0, this.keyCodes = [];
                        for(var s = 0; s < e.length; s++){
                            var h = e[s];
                            "string" == typeof h ? this.keyCodes.push(h.toUpperCase().charCodeAt(0)) : "number" == typeof h ? this.keyCodes.push(h) : h.hasOwnProperty("keyCode") && this.keyCodes.push(h.keyCode);
                        }
                        this.current = this.keyCodes[0], this.index = 0, this.size = this.keyCodes.length, this.timeLastMatched = 0, this.matched = !1, this.timeMatched = 0, this.resetOnWrongKey = r(i, "resetOnWrongKey", !0), this.maxKeyDelay = r(i, "maxKeyDelay", 0), this.resetOnMatch = r(i, "resetOnMatch", !1), this.deleteOnMatch = r(i, "deleteOnMatch", !1);
                        var l = this;
                        this.onKeyDown = function(t) {
                            !l.matched && l.enabled && o(t, l) && (l.manager.emit(n.COMBO_MATCH, l, t), l.resetOnMatch ? a(l) : l.deleteOnMatch && l.destroy());
                        }, this.manager.on(n.ANY_KEY_DOWN, this.onKeyDown);
                    },
                    progress: {
                        get: function() {
                            return this.index / this.size;
                        }
                    },
                    destroy: function() {
                        this.enabled = !1, this.keyCodes = [], this.manager.off(n.ANY_KEY_DOWN, this.onKeyDown), this.manager = null;
                    }
                });
                t.exports = h;
            },
            2544: (t, e, i)=>{
                var s = i(60258);
                t.exports = function(t, e) {
                    if (e.matched) return !0;
                    var i = !1, n = !1;
                    if (t.keyCode === e.current) {
                        if (e.index > 0 && e.maxKeyDelay > 0) {
                            var r = e.timeLastMatched + e.maxKeyDelay;
                            t.timeStamp <= r && (n = !0, i = s(t, e));
                        } else n = !0, i = s(t, e);
                    }
                    return !n && e.resetOnWrongKey && (e.index = 0, e.current = e.keyCodes[0]), i && (e.timeLastMatched = t.timeStamp, e.matched = !0, e.timeMatched = t.timeStamp), i;
                };
            },
            88754: (t)=>{
                t.exports = function(t) {
                    return t.current = t.keyCodes[0], t.index = 0, t.timeLastMatched = 0, t.matched = !1, t.timeMatched = 0, t;
                };
            },
            5044: (t)=>{
                t.exports = "keydown";
            },
            40813: (t)=>{
                t.exports = "keyup";
            },
            89319: (t)=>{
                t.exports = "keycombomatch";
            },
            43267: (t)=>{
                t.exports = "down";
            },
            78595: (t)=>{
                t.exports = "keydown-";
            },
            30056: (t)=>{
                t.exports = "keyup-";
            },
            81939: (t)=>{
                t.exports = "up";
            },
            94030: (t, e, i)=>{
                t.exports = {
                    ANY_KEY_DOWN: i(5044),
                    ANY_KEY_UP: i(40813),
                    COMBO_MATCH: i(89319),
                    DOWN: i(43267),
                    KEY_DOWN: i(78595),
                    KEY_UP: i(30056),
                    UP: i(81939)
                };
            },
            28388: (t, e, i)=>{
                t.exports = {
                    Events: i(94030),
                    KeyboardManager: i(71064),
                    KeyboardPlugin: i(89666),
                    Key: i(50165),
                    KeyCodes: i(11873),
                    KeyCombo: i(95625),
                    AdvanceKeyCombo: i(60258),
                    ProcessKeyCombo: i(2544),
                    ResetKeyCombo: i(88754),
                    JustDown: i(42460),
                    JustUp: i(53162),
                    DownDuration: i(64964),
                    UpDuration: i(70331)
                };
            },
            64964: (t)=>{
                t.exports = function(t, e) {
                    void 0 === e && (e = 50);
                    var i = t.plugin.game.loop.time - t.timeDown;
                    return t.isDown && i < e;
                };
            },
            42460: (t)=>{
                t.exports = function(t) {
                    return !!t._justDown && (t._justDown = !1, !0);
                };
            },
            53162: (t)=>{
                t.exports = function(t) {
                    return !!t._justUp && (t._justUp = !1, !0);
                };
            },
            50165: (t, e, i)=>{
                var s = i(56694), n = i(6659), r = i(94030), o = new s({
                    Extends: n,
                    initialize: function(t, e) {
                        n.call(this), this.plugin = t, this.keyCode = e, this.originalEvent = void 0, this.enabled = !0, this.isDown = !1, this.isUp = !0, this.altKey = !1, this.ctrlKey = !1, this.shiftKey = !1, this.metaKey = !1, this.location = 0, this.timeDown = 0, this.duration = 0, this.timeUp = 0, this.emitOnRepeat = !1, this.repeats = 0, this._justDown = !1, this._justUp = !1, this._tick = -1;
                    },
                    setEmitOnRepeat: function(t) {
                        return this.emitOnRepeat = t, this;
                    },
                    onDown: function(t) {
                        this.originalEvent = t, this.enabled && (this.altKey = t.altKey, this.ctrlKey = t.ctrlKey, this.shiftKey = t.shiftKey, this.metaKey = t.metaKey, this.location = t.location, this.repeats++, this.isDown ? this.emitOnRepeat && this.emit(r.DOWN, this, t) : (this.isDown = !0, this.isUp = !1, this.timeDown = t.timeStamp, this.duration = 0, this._justDown = !0, this._justUp = !1, this.emit(r.DOWN, this, t)));
                    },
                    onUp: function(t) {
                        this.originalEvent = t, this.enabled && (this.isDown = !1, this.isUp = !0, this.timeUp = t.timeStamp, this.duration = this.timeUp - this.timeDown, this.repeats = 0, this._justDown = !1, this._justUp = !0, this._tick = -1, this.emit(r.UP, this, t));
                    },
                    reset: function() {
                        return this.isDown = !1, this.isUp = !0, this.altKey = !1, this.ctrlKey = !1, this.shiftKey = !1, this.metaKey = !1, this.timeDown = 0, this.duration = 0, this.timeUp = 0, this.repeats = 0, this._justDown = !1, this._justUp = !1, this._tick = -1, this;
                    },
                    getDuration: function() {
                        return this.isDown ? this.plugin.game.loop.time - this.timeDown : 0;
                    },
                    destroy: function() {
                        this.removeAllListeners(), this.originalEvent = null, this.plugin = null;
                    }
                });
                t.exports = o;
            },
            11873: (t)=>{
                t.exports = {
                    BACKSPACE: 8,
                    TAB: 9,
                    ENTER: 13,
                    SHIFT: 16,
                    CTRL: 17,
                    ALT: 18,
                    PAUSE: 19,
                    CAPS_LOCK: 20,
                    ESC: 27,
                    SPACE: 32,
                    PAGE_UP: 33,
                    PAGE_DOWN: 34,
                    END: 35,
                    HOME: 36,
                    LEFT: 37,
                    UP: 38,
                    RIGHT: 39,
                    DOWN: 40,
                    PRINT_SCREEN: 42,
                    INSERT: 45,
                    DELETE: 46,
                    ZERO: 48,
                    ONE: 49,
                    TWO: 50,
                    THREE: 51,
                    FOUR: 52,
                    FIVE: 53,
                    SIX: 54,
                    SEVEN: 55,
                    EIGHT: 56,
                    NINE: 57,
                    NUMPAD_ZERO: 96,
                    NUMPAD_ONE: 97,
                    NUMPAD_TWO: 98,
                    NUMPAD_THREE: 99,
                    NUMPAD_FOUR: 100,
                    NUMPAD_FIVE: 101,
                    NUMPAD_SIX: 102,
                    NUMPAD_SEVEN: 103,
                    NUMPAD_EIGHT: 104,
                    NUMPAD_NINE: 105,
                    NUMPAD_ADD: 107,
                    NUMPAD_SUBTRACT: 109,
                    A: 65,
                    B: 66,
                    C: 67,
                    D: 68,
                    E: 69,
                    F: 70,
                    G: 71,
                    H: 72,
                    I: 73,
                    J: 74,
                    K: 75,
                    L: 76,
                    M: 77,
                    N: 78,
                    O: 79,
                    P: 80,
                    Q: 81,
                    R: 82,
                    S: 83,
                    T: 84,
                    U: 85,
                    V: 86,
                    W: 87,
                    X: 88,
                    Y: 89,
                    Z: 90,
                    F1: 112,
                    F2: 113,
                    F3: 114,
                    F4: 115,
                    F5: 116,
                    F6: 117,
                    F7: 118,
                    F8: 119,
                    F9: 120,
                    F10: 121,
                    F11: 122,
                    F12: 123,
                    SEMICOLON: 186,
                    PLUS: 187,
                    COMMA: 188,
                    MINUS: 189,
                    PERIOD: 190,
                    FORWARD_SLASH: 191,
                    BACK_SLASH: 220,
                    QUOTES: 222,
                    BACKTICK: 192,
                    OPEN_BRACKET: 219,
                    CLOSED_BRACKET: 221,
                    SEMICOLON_FIREFOX: 59,
                    COLON: 58,
                    COMMA_FIREFOX_WINDOWS: 60,
                    COMMA_FIREFOX: 62,
                    BRACKET_RIGHT_FIREFOX: 174,
                    BRACKET_LEFT_FIREFOX: 175
                };
            },
            48044: (t, e, i)=>{
                var s = i(11873), n = {};
                for(var r in s)n[s[r]] = r;
                t.exports = n;
            },
            70331: (t)=>{
                t.exports = function(t, e) {
                    void 0 === e && (e = 50);
                    var i = t.plugin.game.loop.time - t.timeUp;
                    return t.isUp && i < e;
                };
            },
            7905: (t, e, i)=>{
                var s = i(56694), n = i(90185), r = i(33963), o = i(72283), a = new s({
                    initialize: function(t) {
                        this.manager = t, this.preventDefaultDown = !0, this.preventDefaultUp = !0, this.preventDefaultMove = !0, this.preventDefaultWheel = !1, this.enabled = !1, this.target, this.locked = !1, this.onMouseMove = o, this.onMouseDown = o, this.onMouseUp = o, this.onMouseDownWindow = o, this.onMouseUpWindow = o, this.onMouseOver = o, this.onMouseOut = o, this.onMouseWheel = o, this.pointerLockChange = o, this.isTop = !0, t.events.once(r.MANAGER_BOOT, this.boot, this);
                    },
                    boot: function() {
                        var t = this.manager.config;
                        this.enabled = t.inputMouse, this.target = t.inputMouseEventTarget, this.passive = t.inputMousePassive, this.preventDefaultDown = t.inputMousePreventDefaultDown, this.preventDefaultUp = t.inputMousePreventDefaultUp, this.preventDefaultMove = t.inputMousePreventDefaultMove, this.preventDefaultWheel = t.inputMousePreventDefaultWheel, this.target ? "string" == typeof this.target && (this.target = document.getElementById(this.target)) : this.target = this.manager.game.canvas, t.disableContextMenu && this.disableContextMenu(), this.enabled && this.target && this.startListeners();
                    },
                    disableContextMenu: function() {
                        return this.target.addEventListener("contextmenu", function(t) {
                            return t.preventDefault(), !1;
                        }), this;
                    },
                    requestPointerLock: function() {
                        if (n.pointerLock) {
                            var t = this.target;
                            t.requestPointerLock = t.requestPointerLock || t.mozRequestPointerLock || t.webkitRequestPointerLock, t.requestPointerLock();
                        }
                    },
                    releasePointerLock: function() {
                        n.pointerLock && (document.exitPointerLock = document.exitPointerLock || document.mozExitPointerLock || document.webkitExitPointerLock, document.exitPointerLock());
                    },
                    startListeners: function() {
                        var t = this.target;
                        if (t) {
                            var e = this, i = this.manager, s = i.canvas, r = window && window.focus && i.game.config.autoFocus;
                            this.onMouseMove = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && (i.onMouseMove(t), e.preventDefaultMove && t.preventDefault());
                            }, this.onMouseDown = function(t) {
                                r && window.focus(), !t.defaultPrevented && e.enabled && i && i.enabled && (i.onMouseDown(t), e.preventDefaultDown && t.target === s && t.preventDefault());
                            }, this.onMouseDownWindow = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && t.target !== s && i.onMouseDown(t);
                            }, this.onMouseUp = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && (i.onMouseUp(t), e.preventDefaultUp && t.target === s && t.preventDefault());
                            }, this.onMouseUpWindow = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && t.target !== s && i.onMouseUp(t);
                            }, this.onMouseOver = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && i.setCanvasOver(t);
                            }, this.onMouseOut = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && i.setCanvasOut(t);
                            }, this.onMouseWheel = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && i.onMouseWheel(t), e.preventDefaultWheel && t.target === s && t.preventDefault();
                            };
                            var o = {
                                passive: !0
                            };
                            if (t.addEventListener("mousemove", this.onMouseMove), t.addEventListener("mousedown", this.onMouseDown), t.addEventListener("mouseup", this.onMouseUp), t.addEventListener("mouseover", this.onMouseOver, o), t.addEventListener("mouseout", this.onMouseOut, o), this.preventDefaultWheel ? t.addEventListener("wheel", this.onMouseWheel, {
                                passive: !1
                            }) : t.addEventListener("wheel", this.onMouseWheel, o), window && i.game.config.inputWindowEvents) try {
                                window.top.addEventListener("mousedown", this.onMouseDownWindow, o), window.top.addEventListener("mouseup", this.onMouseUpWindow, o);
                            } catch (t) {
                                window.addEventListener("mousedown", this.onMouseDownWindow, o), window.addEventListener("mouseup", this.onMouseUpWindow, o), this.isTop = !1;
                            }
                            n.pointerLock && (this.pointerLockChange = function(t) {
                                var s = e.target;
                                e.locked = document.pointerLockElement === s || document.mozPointerLockElement === s || document.webkitPointerLockElement === s, i.onPointerLockChange(t);
                            }, document.addEventListener("pointerlockchange", this.pointerLockChange, !0), document.addEventListener("mozpointerlockchange", this.pointerLockChange, !0), document.addEventListener("webkitpointerlockchange", this.pointerLockChange, !0)), this.enabled = !0;
                        }
                    },
                    stopListeners: function() {
                        var t = this.target;
                        t.removeEventListener("mousemove", this.onMouseMove), t.removeEventListener("mousedown", this.onMouseDown), t.removeEventListener("mouseup", this.onMouseUp), t.removeEventListener("mouseover", this.onMouseOver), t.removeEventListener("mouseout", this.onMouseOut), window && ((t = this.isTop ? window.top : window).removeEventListener("mousedown", this.onMouseDownWindow), t.removeEventListener("mouseup", this.onMouseUpWindow)), n.pointerLock && (document.removeEventListener("pointerlockchange", this.pointerLockChange, !0), document.removeEventListener("mozpointerlockchange", this.pointerLockChange, !0), document.removeEventListener("webkitpointerlockchange", this.pointerLockChange, !0));
                    },
                    destroy: function() {
                        this.stopListeners(), this.target = null, this.enabled = !1, this.manager = null;
                    }
                });
                t.exports = a;
            },
            11343: (t, e, i)=>{
                t.exports = {
                    MouseManager: i(7905)
                };
            },
            37579: (t, e, i)=>{
                var s = i(56694), n = i(33963), r = i(72283), o = new s({
                    initialize: function(t) {
                        this.manager = t, this.capture = !0, this.enabled = !1, this.target, this.onTouchStart = r, this.onTouchStartWindow = r, this.onTouchMove = r, this.onTouchEnd = r, this.onTouchEndWindow = r, this.onTouchCancel = r, this.onTouchCancelWindow = r, this.isTop = !0, t.events.once(n.MANAGER_BOOT, this.boot, this);
                    },
                    boot: function() {
                        var t = this.manager.config;
                        this.enabled = t.inputTouch, this.target = t.inputTouchEventTarget, this.capture = t.inputTouchCapture, this.target ? "string" == typeof this.target && (this.target = document.getElementById(this.target)) : this.target = this.manager.game.canvas, t.disableContextMenu && this.disableContextMenu(), this.enabled && this.target && this.startListeners();
                    },
                    disableContextMenu: function() {
                        return this.target.addEventListener("contextmenu", function(t) {
                            return t.preventDefault(), !1;
                        }), this;
                    },
                    startListeners: function() {
                        var t = this.target;
                        if (t) {
                            var e = this, i = this.manager, s = i.canvas, n = window && window.focus && i.game.config.autoFocus;
                            this.onTouchMove = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && (i.onTouchMove(t), e.capture && t.cancelable && t.preventDefault());
                            }, this.onTouchStart = function(t) {
                                n && window.focus(), !t.defaultPrevented && e.enabled && i && i.enabled && (i.onTouchStart(t), e.capture && t.cancelable && t.target === s && t.preventDefault());
                            }, this.onTouchStartWindow = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && t.target !== s && i.onTouchStart(t);
                            }, this.onTouchEnd = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && (i.onTouchEnd(t), e.capture && t.cancelable && t.target === s && t.preventDefault());
                            }, this.onTouchEndWindow = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && t.target !== s && i.onTouchEnd(t);
                            }, this.onTouchCancel = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && (i.onTouchCancel(t), e.capture && t.preventDefault());
                            }, this.onTouchCancelWindow = function(t) {
                                !t.defaultPrevented && e.enabled && i && i.enabled && i.onTouchCancel(t);
                            };
                            var r = this.capture, o = {
                                passive: !0
                            }, a = {
                                passive: !1
                            };
                            if (t.addEventListener("touchstart", this.onTouchStart, r ? a : o), t.addEventListener("touchmove", this.onTouchMove, r ? a : o), t.addEventListener("touchend", this.onTouchEnd, r ? a : o), t.addEventListener("touchcancel", this.onTouchCancel, r ? a : o), window && i.game.config.inputWindowEvents) try {
                                window.top.addEventListener("touchstart", this.onTouchStartWindow, a), window.top.addEventListener("touchend", this.onTouchEndWindow, a), window.top.addEventListener("touchcancel", this.onTouchCancelWindow, a);
                            } catch (t) {
                                window.addEventListener("touchstart", this.onTouchStartWindow, a), window.addEventListener("touchend", this.onTouchEndWindow, a), window.addEventListener("touchcancel", this.onTouchCancelWindow, a), this.isTop = !1;
                            }
                            this.enabled = !0;
                        }
                    },
                    stopListeners: function() {
                        var t = this.target;
                        t.removeEventListener("touchstart", this.onTouchStart), t.removeEventListener("touchmove", this.onTouchMove), t.removeEventListener("touchend", this.onTouchEnd), t.removeEventListener("touchcancel", this.onTouchCancel), window && ((t = this.isTop ? window.top : window).removeEventListener("touchstart", this.onTouchStartWindow), t.removeEventListener("touchend", this.onTouchEndWindow), t.removeEventListener("touchcancel", this.onTouchCancelWindow));
                    },
                    destroy: function() {
                        this.stopListeners(), this.target = null, this.enabled = !1, this.manager = null;
                    }
                });
                t.exports = o;
            },
            77423: (t, e, i)=>{
                t.exports = {
                    TouchManager: i(37579)
                };
            },
            98035: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(683), o = i(72632), a = i(30750), h = i(43531), l = i(88490), u = i(33868), c = new s({
                    initialize: function(t, e) {
                        if (this.loader = t, this.cache = o(e, "cache", !1), this.type = o(e, "type", !1), !this.type) throw new Error("Invalid File type: " + this.type);
                        this.key = o(e, "key", !1);
                        var i = this.key;
                        if (t.prefix && "" !== t.prefix && (this.key = t.prefix + i), !this.key) throw new Error("Invalid File key: " + this.key);
                        var s = o(e, "url");
                        void 0 === s ? s = t.path + i + "." + o(e, "extension", "") : "string" != typeof s || s.match(/^(?:blob:|data:|capacitor:\/\/|http:\/\/|https:\/\/|\/\/)/) || (s = t.path + s), this.url = s, this.src = "", this.xhrSettings = u(o(e, "responseType", void 0)), o(e, "xhrSettings", !1) && (this.xhrSettings = h(this.xhrSettings, o(e, "xhrSettings", {}))), this.xhrLoader = null, this.state = "function" == typeof this.url ? n.FILE_POPULATED : n.FILE_PENDING, this.bytesTotal = 0, this.bytesLoaded = -1, this.percentComplete = -1, this.crossOrigin = void 0, this.data = void 0, this.config = o(e, "config", {}), this.multiFile, this.linkFile;
                    },
                    setLink: function(t) {
                        this.linkFile = t, t.linkFile = this;
                    },
                    resetXHR: function() {
                        this.xhrLoader && (this.xhrLoader.onload = void 0, this.xhrLoader.onerror = void 0, this.xhrLoader.onprogress = void 0);
                    },
                    load: function() {
                        this.state === n.FILE_POPULATED ? this.loader.nextFile(this, !0) : (this.state = n.FILE_LOADING, this.src = a(this, this.loader.baseURL), 0 === this.src.indexOf("data:") ? console.warn("Local data URIs are not supported: " + this.key) : this.xhrLoader = l(this, this.loader.xhr));
                    },
                    onLoad: function(t, e) {
                        var i = t.responseURL && this.loader.localSchemes.some(function(e) {
                            return 0 === t.responseURL.indexOf(e);
                        }) && 0 === e.target.status, s = !(e.target && 200 !== e.target.status) || i;
                        4 === t.readyState && t.status >= 400 && t.status <= 599 && (s = !1), this.state = n.FILE_LOADED, this.resetXHR(), this.loader.nextFile(this, s);
                    },
                    onError: function() {
                        this.resetXHR(), this.loader.nextFile(this, !1);
                    },
                    onProgress: function(t) {
                        t.lengthComputable && (this.bytesLoaded = t.loaded, this.bytesTotal = t.total, this.percentComplete = Math.min(this.bytesLoaded / this.bytesTotal, 1), this.loader.emit(r.FILE_PROGRESS, this, this.percentComplete));
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING, this.onProcessComplete();
                    },
                    onProcessComplete: function() {
                        this.state = n.FILE_COMPLETE, this.multiFile && this.multiFile.onFileComplete(this), this.loader.fileProcessComplete(this);
                    },
                    onProcessError: function() {
                        console.error('Failed to process file: %s "%s"', this.type, this.key), this.state = n.FILE_ERRORED, this.multiFile && this.multiFile.onFileFailed(this), this.loader.fileProcessComplete(this);
                    },
                    hasCacheConflict: function() {
                        return this.cache && this.cache.exists(this.key);
                    },
                    addToCache: function() {
                        this.cache && this.data && this.cache.add(this.key, this.data);
                    },
                    pendingDestroy: function(t) {
                        if (this.state !== n.FILE_PENDING_DESTROY) {
                            void 0 === t && (t = this.data);
                            var e = this.key, i = this.type;
                            this.loader.emit(r.FILE_COMPLETE, e, i, t), this.loader.emit(r.FILE_KEY_COMPLETE + i + "-" + e, e, i, t), this.loader.flagForRemoval(this), this.state = n.FILE_PENDING_DESTROY;
                        }
                    },
                    destroy: function() {
                        this.loader = null, this.cache = null, this.xhrSettings = null, this.multiFile = null, this.linkFile = null, this.data = null;
                    }
                });
                c.createObjectURL = function(t, e, i) {
                    if ("function" == typeof URL) t.src = URL.createObjectURL(e);
                    else {
                        var s = new FileReader;
                        s.onload = function() {
                            t.removeAttribute("crossOrigin"), t.src = "data:" + (e.type || i) + ";base64," + s.result.split(",")[1];
                        }, s.onerror = t.onerror, s.readAsDataURL(e);
                    }
                }, c.revokeObjectURL = function(t) {
                    "function" == typeof URL && URL.revokeObjectURL(t.src);
                }, t.exports = c;
            },
            76846: (t)=>{
                var e = {}, i = {
                    install: function(t) {
                        for(var i in e)t[i] = e[i];
                    },
                    register: function(t, i) {
                        e[t] = i;
                    },
                    destroy: function() {
                        e = {};
                    }
                };
                t.exports = i;
            },
            30750: (t)=>{
                t.exports = function(t, e) {
                    return !!t.url && (t.url.match(/^(?:blob:|data:|capacitor:\/\/|http:\/\/|https:\/\/|\/\/)/) ? t.url : e + t.url);
                };
            },
            67285: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(58403), o = i(6659), a = i(683), h = i(76846), l = i(72632), u = i(10850), c = i(91963), d = i(7599), f = i(33868), p = new s({
                    Extends: o,
                    initialize: function(t) {
                        o.call(this);
                        var e = t.sys.game.config, i = t.sys.settings.loader;
                        this.scene = t, this.systems = t.sys, this.cacheManager = t.sys.cache, this.textureManager = t.sys.textures, this.sceneManager = t.sys.game.scene, h.install(this), this.prefix = "", this.path = "", this.baseURL = "", this.setBaseURL(l(i, "baseURL", e.loaderBaseURL)), this.setPath(l(i, "path", e.loaderPath)), this.setPrefix(l(i, "prefix", e.loaderPrefix)), this.maxParallelDownloads = l(i, "maxParallelDownloads", e.loaderMaxParallelDownloads), this.xhr = f(l(i, "responseType", e.loaderResponseType), l(i, "async", e.loaderAsync), l(i, "user", e.loaderUser), l(i, "password", e.loaderPassword), l(i, "timeout", e.loaderTimeout), l(i, "withCredentials", e.loaderWithCredentials)), this.crossOrigin = l(i, "crossOrigin", e.loaderCrossOrigin), this.imageLoadType = l(i, "imageLoadType", e.loaderImageLoadType), this.localSchemes = l(i, "localScheme", e.loaderLocalScheme), this.totalToLoad = 0, this.progress = 0, this.list = new r, this.inflight = new r, this.queue = new r, this._deleteQueue = new r, this.totalFailed = 0, this.totalComplete = 0, this.state = n.LOADER_IDLE, this.multiKeyIndex = 0, t.sys.events.once(d.BOOT, this.boot, this), t.sys.events.on(d.START, this.pluginStart, this);
                    },
                    boot: function() {
                        this.systems.events.once(d.DESTROY, this.destroy, this);
                    },
                    pluginStart: function() {
                        this.systems.events.once(d.SHUTDOWN, this.shutdown, this);
                    },
                    setBaseURL: function(t) {
                        return void 0 === t && (t = ""), "" !== t && "/" !== t.substr(-1) && (t = t.concat("/")), this.baseURL = t, this;
                    },
                    setPath: function(t) {
                        return void 0 === t && (t = ""), "" !== t && "/" !== t.substr(-1) && (t = t.concat("/")), this.path = t, this;
                    },
                    setPrefix: function(t) {
                        return void 0 === t && (t = ""), this.prefix = t, this;
                    },
                    setCORS: function(t) {
                        return this.crossOrigin = t, this;
                    },
                    addFile: function(t) {
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var e = 0; e < t.length; e++){
                            var i = t[e];
                            this.keyExists(i) || (this.list.set(i), this.emit(a.ADD, i.key, i.type, this, i), this.isLoading() && (this.totalToLoad++, this.updateProgress()));
                        }
                    },
                    keyExists: function(t) {
                        var e = t.hasCacheConflict();
                        return e || this.list.iterate(function(i) {
                            if (i.type === t.type && i.key === t.key) return e = !0, !1;
                        }), !e && this.isLoading() && (this.inflight.iterate(function(i) {
                            if (i.type === t.type && i.key === t.key) return e = !0, !1;
                        }), this.queue.iterate(function(i) {
                            if (i.type === t.type && i.key === t.key) return e = !0, !1;
                        })), e;
                    },
                    addPack: function(t, e) {
                        if ("string" == typeof e) {
                            var i = u(t, e);
                            i && (t = {
                                packKey: i
                            });
                        }
                        var s = 0, n = this.baseURL, r = this.path, o = this.prefix;
                        for(var a in t)if (Object.prototype.hasOwnProperty.call(t, a)) {
                            var h = t[a], c = l(h, "baseURL", n), d = l(h, "path", r), f = l(h, "prefix", o), p = l(h, "files", null), v = l(h, "defaultType", "void");
                            if (Array.isArray(p)) {
                                this.setBaseURL(c), this.setPath(d), this.setPrefix(f);
                                for(var g = 0; g < p.length; g++){
                                    var m = p[g], y = m.hasOwnProperty("type") ? m.type : v;
                                    this[y] && (this[y](m), s++);
                                }
                            }
                        }
                        return this.setBaseURL(n), this.setPath(r), this.setPrefix(o), s > 0;
                    },
                    isLoading: function() {
                        return this.state === n.LOADER_LOADING || this.state === n.LOADER_PROCESSING;
                    },
                    isReady: function() {
                        return this.state === n.LOADER_IDLE || this.state === n.LOADER_COMPLETE;
                    },
                    start: function() {
                        this.isReady() && (this.progress = 0, this.totalFailed = 0, this.totalComplete = 0, this.totalToLoad = this.list.size, this.emit(a.START, this), 0 === this.list.size ? this.loadComplete() : (this.state = n.LOADER_LOADING, this.inflight.clear(), this.queue.clear(), this.updateProgress(), this.checkLoadQueue(), this.systems.events.on(d.UPDATE, this.update, this)));
                    },
                    updateProgress: function() {
                        this.progress = 1 - (this.list.size + this.inflight.size) / this.totalToLoad, this.emit(a.PROGRESS, this.progress);
                    },
                    update: function() {
                        this.state === n.LOADER_LOADING && this.list.size > 0 && this.inflight.size < this.maxParallelDownloads && this.checkLoadQueue();
                    },
                    checkLoadQueue: function() {
                        this.list.each(function(t) {
                            if ((t.state === n.FILE_POPULATED || t.state === n.FILE_PENDING && this.inflight.size < this.maxParallelDownloads) && (this.inflight.set(t), this.list.delete(t), t.crossOrigin || (t.crossOrigin = this.crossOrigin), t.load()), this.inflight.size === this.maxParallelDownloads) return !1;
                        }, this);
                    },
                    nextFile: function(t, e) {
                        this.inflight && (this.inflight.delete(t), this.updateProgress(), e ? (this.totalComplete++, this.queue.set(t), this.emit(a.FILE_LOAD, t), t.onProcess()) : (this.totalFailed++, this._deleteQueue.set(t), this.emit(a.FILE_LOAD_ERROR, t), this.fileProcessComplete(t)));
                    },
                    fileProcessComplete: function(t) {
                        this.scene && this.systems && this.systems.game && !this.systems.game.pendingDestroy && (t.state === n.FILE_ERRORED ? t.multiFile && t.multiFile.onFileFailed(t) : t.state === n.FILE_COMPLETE && (t.multiFile ? t.multiFile.isReadyToProcess() && (t.multiFile.addToCache(), t.multiFile.pendingDestroy()) : (t.addToCache(), t.pendingDestroy())), this.queue.delete(t), 0 === this.list.size && 0 === this.inflight.size && 0 === this.queue.size && this.loadComplete());
                    },
                    loadComplete: function() {
                        this.emit(a.POST_PROCESS, this), this.list.clear(), this.inflight.clear(), this.queue.clear(), this.progress = 1, this.state = n.LOADER_COMPLETE, this.systems.events.off(d.UPDATE, this.update, this), this._deleteQueue.iterateLocal("destroy"), this._deleteQueue.clear(), this.emit(a.COMPLETE, this, this.totalComplete, this.totalFailed);
                    },
                    flagForRemoval: function(t) {
                        this._deleteQueue.set(t);
                    },
                    saveJSON: function(t, e) {
                        return this.save(JSON.stringify(t), e);
                    },
                    save: function(t, e, i) {
                        void 0 === e && (e = "file.json"), void 0 === i && (i = "application/json");
                        var s = new Blob([
                            t
                        ], {
                            type: i
                        }), n = URL.createObjectURL(s), r = document.createElement("a");
                        return r.download = e, r.textContent = "Download " + e, r.href = n, r.click(), this;
                    },
                    reset: function() {
                        this.list.clear(), this.inflight.clear(), this.queue.clear();
                        var t = this.systems.game.config, e = this.systems.settings.loader;
                        this.setBaseURL(l(e, "baseURL", t.loaderBaseURL)), this.setPath(l(e, "path", t.loaderPath)), this.setPrefix(l(e, "prefix", t.loaderPrefix)), this.state = n.LOADER_IDLE;
                    },
                    shutdown: function() {
                        this.reset(), this.state = n.LOADER_SHUTDOWN, this.systems.events.off(d.UPDATE, this.update, this), this.systems.events.off(d.SHUTDOWN, this.shutdown, this);
                    },
                    destroy: function() {
                        this.shutdown(), this.state = n.LOADER_DESTROYED, this.systems.events.off(d.UPDATE, this.update, this), this.systems.events.off(d.START, this.pluginStart, this), this.list = null, this.inflight = null, this.queue = null, this.scene = null, this.systems = null, this.textureManager = null, this.cacheManager = null, this.sceneManager = null;
                    }
                });
                c.register("Loader", p, "load"), t.exports = p;
            },
            43531: (t, e, i)=>{
                var s = i(98611), n = i(33868);
                t.exports = function(t, e) {
                    var i = void 0 === t ? n() : s({}, t);
                    if (e) for(var r in e)void 0 !== e[r] && (i[r] = e[r]);
                    return i;
                };
            },
            45176: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(683), o = new s({
                    initialize: function(t, e, i, s) {
                        var r = [];
                        s.forEach(function(t) {
                            t && r.push(t);
                        }), this.loader = t, this.type = e, this.key = i, this.multiKeyIndex = t.multiKeyIndex++, this.files = r, this.state = n.FILE_PENDING, this.complete = !1, this.pending = r.length, this.failed = 0, this.config = {}, this.baseURL = t.baseURL, this.path = t.path, this.prefix = t.prefix;
                        for(var o = 0; o < r.length; o++)r[o].multiFile = this;
                    },
                    isReadyToProcess: function() {
                        return 0 === this.pending && 0 === this.failed && !this.complete;
                    },
                    addToMultiFile: function(t) {
                        return this.files.push(t), t.multiFile = this, this.pending++, this.complete = !1, this;
                    },
                    onFileComplete: function(t) {
                        -1 !== this.files.indexOf(t) && this.pending--;
                    },
                    onFileFailed: function(t) {
                        -1 !== this.files.indexOf(t) && (this.failed++, console.error('File failed: %s "%s" (via %s "%s")', this.type, this.key, t.type, t.key));
                    },
                    pendingDestroy: function() {
                        if (this.state !== n.FILE_PENDING_DESTROY) {
                            var t = this.key, e = this.type;
                            this.loader.emit(r.FILE_COMPLETE, t, e), this.loader.emit(r.FILE_KEY_COMPLETE + e + "-" + t, t, e), this.loader.flagForRemoval(this);
                            for(var i = 0; i < this.files.length; i++)this.files[i].pendingDestroy();
                            this.state = n.FILE_PENDING_DESTROY;
                        }
                    },
                    destroy: function() {
                        this.loader = null, this.files = null, this.config = null;
                    }
                });
                t.exports = o;
            },
            88490: (t, e, i)=>{
                var s = i(43531);
                t.exports = function(t, e) {
                    var i = s(e, t.xhrSettings), n = new XMLHttpRequest;
                    if (n.open("GET", t.src, i.async, i.user, i.password), n.responseType = t.xhrSettings.responseType, n.timeout = i.timeout, i.headers) for(var r in i.headers)n.setRequestHeader(r, i.headers[r]);
                    return i.header && i.headerValue && n.setRequestHeader(i.header, i.headerValue), i.requestedWith && n.setRequestHeader("X-Requested-With", i.requestedWith), i.overrideMimeType && n.overrideMimeType(i.overrideMimeType), i.withCredentials && (n.withCredentials = !0), n.onload = t.onLoad.bind(t, n), n.onerror = t.onError.bind(t, n), n.onprogress = t.onProgress.bind(t), n.send(), n;
                };
            },
            33868: (t)=>{
                t.exports = function(t, e, i, s, n, r) {
                    return void 0 === t && (t = ""), void 0 === e && (e = !0), void 0 === i && (i = ""), void 0 === s && (s = ""), void 0 === n && (n = 0), void 0 === r && (r = !1), {
                        responseType: t,
                        async: e,
                        user: i,
                        password: s,
                        timeout: n,
                        headers: void 0,
                        header: void 0,
                        headerValue: void 0,
                        requestedWith: !1,
                        overrideMimeType: void 0,
                        withCredentials: r
                    };
                };
            },
            12117: (t)=>{
                t.exports = {
                    LOADER_IDLE: 0,
                    LOADER_LOADING: 1,
                    LOADER_PROCESSING: 2,
                    LOADER_COMPLETE: 3,
                    LOADER_SHUTDOWN: 4,
                    LOADER_DESTROYED: 5,
                    FILE_PENDING: 10,
                    FILE_LOADING: 11,
                    FILE_LOADED: 12,
                    FILE_FAILED: 13,
                    FILE_PROCESSING: 14,
                    FILE_ERRORED: 16,
                    FILE_COMPLETE: 17,
                    FILE_DESTROYED: 18,
                    FILE_POPULATED: 19,
                    FILE_PENDING_DESTROY: 20
                };
            },
            7398: (t)=>{
                t.exports = "addfile";
            },
            52187: (t)=>{
                t.exports = "complete";
            },
            36627: (t)=>{
                t.exports = "filecomplete";
            },
            81925: (t)=>{
                t.exports = "filecomplete-";
            },
            29774: (t)=>{
                t.exports = "loaderror";
            },
            20943: (t)=>{
                t.exports = "load";
            },
            74693: (t)=>{
                t.exports = "fileprogress";
            },
            71176: (t)=>{
                t.exports = "postprocess";
            },
            88984: (t)=>{
                t.exports = "progress";
            },
            72753: (t)=>{
                t.exports = "start";
            },
            683: (t, e, i)=>{
                t.exports = {
                    ADD: i(7398),
                    COMPLETE: i(52187),
                    FILE_COMPLETE: i(36627),
                    FILE_KEY_COMPLETE: i(81925),
                    FILE_LOAD_ERROR: i(29774),
                    FILE_LOAD: i(20943),
                    FILE_PROGRESS: i(74693),
                    POST_PROCESS: i(71176),
                    PROGRESS: i(88984),
                    START: i(72753)
                };
            },
            46468: (t, e, i)=>{
                var s = i(56694), n = i(76846), r = i(70806), o = i(683), a = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, n) {
                        r.call(this, t, e, i, s, n), this.type = "animationJSON";
                    },
                    onProcess: function() {
                        this.loader.once(o.POST_PROCESS, this.onLoadComplete, this), r.prototype.onProcess.call(this);
                    },
                    onLoadComplete: function() {
                        this.loader.systems.anims.fromJSON(this.data);
                    }
                });
                n.register("animation", function(t, e, i, s) {
                    if (Array.isArray(t)) for(var n = 0; n < t.length; n++)this.addFile(new a(this, t[n]));
                    else this.addFile(new a(this, t, e, s, i));
                    return this;
                }), t.exports = a;
            },
            31648: (t, e, i)=>{
                var s = i(56694), n = i(76846), r = i(72632), o = i(42927), a = i(42911), h = i(70806), l = i(45176), u = new s({
                    Extends: l,
                    initialize: function(t, e, i, s, n, u) {
                        var c, d;
                        if (a(e)) {
                            var f = e;
                            e = r(f, "key"), c = new o(t, {
                                key: e,
                                url: r(f, "textureURL"),
                                extension: r(f, "textureExtension", "png"),
                                normalMap: r(f, "normalMap"),
                                xhrSettings: r(f, "textureXhrSettings")
                            }), d = new h(t, {
                                key: e,
                                url: r(f, "atlasURL"),
                                extension: r(f, "atlasExtension", "json"),
                                xhrSettings: r(f, "atlasXhrSettings")
                            });
                        } else c = new o(t, e, i, n), d = new h(t, e, s, u);
                        c.linkFile ? l.call(this, t, "atlasjson", e, [
                            c,
                            d,
                            c.linkFile
                        ]) : l.call(this, t, "atlasjson", e, [
                            c,
                            d
                        ]);
                    },
                    addToCache: function() {
                        if (this.isReadyToProcess()) {
                            var t = this.files[0], e = this.files[1], i = this.files[2] ? this.files[2].data : null;
                            this.loader.textureManager.addAtlas(t.key, t.data, e.data, i), e.addToCache(), this.complete = !0;
                        }
                    }
                });
                n.register("aseprite", function(t, e, i, s, n) {
                    var r;
                    if (Array.isArray(t)) for(var o = 0; o < t.length; o++)r = new u(this, t[o]), this.addFile(r.files);
                    else r = new u(this, t, e, i, s, n), this.addFile(r.files);
                    return this;
                }), t.exports = u;
            },
            73152: (t, e, i)=>{
                var s = i(56694), n = i(76846), r = i(72632), o = i(42927), a = i(42911), h = i(70806), l = i(45176), u = new s({
                    Extends: l,
                    initialize: function(t, e, i, s, n, u) {
                        var c, d;
                        if (a(e)) {
                            var f = e;
                            e = r(f, "key"), c = new o(t, {
                                key: e,
                                url: r(f, "textureURL"),
                                extension: r(f, "textureExtension", "png"),
                                normalMap: r(f, "normalMap"),
                                xhrSettings: r(f, "textureXhrSettings")
                            }), d = new h(t, {
                                key: e,
                                url: r(f, "atlasURL"),
                                extension: r(f, "atlasExtension", "json"),
                                xhrSettings: r(f, "atlasXhrSettings")
                            });
                        } else c = new o(t, e, i, n), d = new h(t, e, s, u);
                        c.linkFile ? l.call(this, t, "atlasjson", e, [
                            c,
                            d,
                            c.linkFile
                        ]) : l.call(this, t, "atlasjson", e, [
                            c,
                            d
                        ]);
                    },
                    addToCache: function() {
                        if (this.isReadyToProcess()) {
                            var t = this.files[0], e = this.files[1], i = this.files[2] ? this.files[2].data : null;
                            this.loader.textureManager.addAtlas(t.key, t.data, e.data, i), this.complete = !0;
                        }
                    }
                });
                n.register("atlas", function(t, e, i, s, n) {
                    var r;
                    if (Array.isArray(t)) for(var o = 0; o < t.length; o++)r = new u(this, t[o]), this.addFile(r.files);
                    else r = new u(this, t, e, i, s, n), this.addFile(r.files);
                    return this;
                }), t.exports = u;
            },
            24616: (t, e, i)=>{
                var s = i(56694), n = i(76846), r = i(72632), o = i(42927), a = i(42911), h = i(45176), l = i(15297), u = new s({
                    Extends: h,
                    initialize: function(t, e, i, s, n, u) {
                        var c, d;
                        if (a(e)) {
                            var f = e;
                            e = r(f, "key"), c = new o(t, {
                                key: e,
                                url: r(f, "textureURL"),
                                extension: r(f, "textureExtension", "png"),
                                normalMap: r(f, "normalMap"),
                                xhrSettings: r(f, "textureXhrSettings")
                            }), d = new l(t, {
                                key: e,
                                url: r(f, "atlasURL"),
                                extension: r(f, "atlasExtension", "xml"),
                                xhrSettings: r(f, "atlasXhrSettings")
                            });
                        } else c = new o(t, e, i, n), d = new l(t, e, s, u);
                        c.linkFile ? h.call(this, t, "atlasxml", e, [
                            c,
                            d,
                            c.linkFile
                        ]) : h.call(this, t, "atlasxml", e, [
                            c,
                            d
                        ]);
                    },
                    addToCache: function() {
                        if (this.isReadyToProcess()) {
                            var t = this.files[0], e = this.files[1], i = this.files[2] ? this.files[2].data : null;
                            this.loader.textureManager.addAtlasXML(t.key, t.data, e.data, i), this.complete = !0;
                        }
                    }
                });
                n.register("atlasXML", function(t, e, i, s, n) {
                    var r;
                    if (Array.isArray(t)) for(var o = 0; o < t.length; o++)r = new u(this, t[o]), this.addFile(r.files);
                    else r = new u(this, t, e, i, s, n), this.addFile(r.files);
                    return this;
                }), t.exports = u;
            },
            67448: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(30929), l = i(42911), u = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, n) {
                        if (l(e)) {
                            var o = e;
                            e = a(o, "key"), s = a(o, "xhrSettings"), n = a(o, "context", n);
                        }
                        var h = {
                            type: "audio",
                            cache: t.cacheManager.audio,
                            extension: i.type,
                            responseType: "arraybuffer",
                            key: e,
                            url: i.url,
                            xhrSettings: s,
                            config: {
                                context: n
                            }
                        };
                        r.call(this, t, h);
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING;
                        var t = this;
                        this.config.context.decodeAudioData(this.xhrLoader.response, function(e) {
                            t.data = e, t.onProcessComplete();
                        }, function(e) {
                            console.error("Error decoding audio: " + t.key + " - ", e ? e.message : null), t.onProcessError();
                        }), this.config.context = null;
                    }
                });
                u.create = function(t, e, i, s, n) {
                    var r = t.systems.game, o = r.config.audio, c = r.device.audio;
                    l(e) && (i = a(e, "url", []), s = a(e, "config", {}));
                    var d = u.getAudioURL(r, i);
                    return d ? c.webAudio && !o.disableWebAudio ? new u(t, e, d, n, r.sound.context) : new h(t, e, d, s) : (console.warn('No audio URLs for "%s" matched this device', e), null);
                }, u.getAudioURL = function(t, e) {
                    Array.isArray(e) || (e = [
                        e
                    ]);
                    for(var i = 0; i < e.length; i++){
                        var s = a(e[i], "url", e[i]);
                        if (0 === s.indexOf("blob:") || 0 === s.indexOf("data:")) return {
                            url: s,
                            type: ""
                        };
                        var n = s.match(/\.([a-zA-Z0-9]+)($|\?)/);
                        if (n = a(e[i], "type", n ? n[1] : "").toLowerCase(), t.device.audio[n]) return {
                            url: s,
                            type: n
                        };
                    }
                    return null;
                }, o.register("audio", function(t, e, i, s) {
                    var n, r = this.systems.game, o = r.config.audio, a = r.device.audio;
                    if (o.noAudio || !a.webAudio && !a.audioData) return this;
                    if (Array.isArray(t)) for(var h = 0; h < t.length; h++)(n = u.create(this, t[h])) && this.addFile(n);
                    else (n = u.create(this, t, e, i, s)) && this.addFile(n);
                    return this;
                }), t.exports = u;
            },
            66109: (t, e, i)=>{
                var s = i(67448), n = i(56694), r = i(76846), o = i(72632), a = i(42911), h = i(70806), l = i(45176), u = new n({
                    Extends: l,
                    initialize: function(t, e, i, n, r, u, c) {
                        if (a(e)) {
                            var d = e;
                            e = o(d, "key"), i = o(d, "jsonURL"), n = o(d, "audioURL"), r = o(d, "audioConfig"), u = o(d, "audioXhrSettings"), c = o(d, "jsonXhrSettings");
                        }
                        var f;
                        if (n) {
                            var p = s.create(t, e, n, r, u);
                            p && (f = new h(t, e, i, c), l.call(this, t, "audiosprite", e, [
                                p,
                                f
                            ]), this.config.resourceLoad = !1);
                        } else f = new h(t, e, i, c), l.call(this, t, "audiosprite", e, [
                            f
                        ]), this.config.resourceLoad = !0, this.config.audioConfig = r, this.config.audioXhrSettings = u;
                    },
                    onFileComplete: function(t) {
                        if (-1 !== this.files.indexOf(t) && (this.pending--, this.config.resourceLoad && "json" === t.type && t.data.hasOwnProperty("resources"))) {
                            var e = t.data.resources, i = o(this.config, "audioConfig"), n = o(this.config, "audioXhrSettings"), r = s.create(this.loader, t.key, e, i, n);
                            r && (this.addToMultiFile(r), this.loader.addFile(r));
                        }
                    },
                    addToCache: function() {
                        if (this.isReadyToProcess()) {
                            var t = this.files[0], e = this.files[1];
                            t.addToCache(), e.addToCache(), this.complete = !0;
                        }
                    }
                });
                r.register("audioSprite", function(t, e, i, s, n, r) {
                    var o, a = this.systems.game, h = a.config.audio, l = a.device.audio;
                    if (h && h.noAudio || !l.webAudio && !l.audioData) return this;
                    if (Array.isArray(t)) for(var c = 0; c < t.length; c++)(o = new u(this, t[c])).files && this.addFile(o.files);
                    else (o = new u(this, t, e, i, s, n, r)).files && this.addFile(o.files);
                    return this;
                });
            },
            40612: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, n) {
                        var o = "bin";
                        if (h(e)) {
                            var l = e;
                            e = a(l, "key"), i = a(l, "url"), s = a(l, "xhrSettings"), o = a(l, "extension", o), n = a(l, "dataType", n);
                        }
                        var u = {
                            type: "binary",
                            cache: t.cacheManager.binary,
                            extension: o,
                            responseType: "arraybuffer",
                            key: e,
                            url: i,
                            xhrSettings: s,
                            config: {
                                dataType: n
                            }
                        };
                        r.call(this, t, u);
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING;
                        var t = this.config.dataType;
                        this.data = t ? new t(this.xhrLoader.response) : this.xhrLoader.response, this.onProcessComplete();
                    }
                });
                o.register("binary", function(t, e, i, s) {
                    if (Array.isArray(t)) for(var n = 0; n < t.length; n++)this.addFile(new l(this, t[n]));
                    else this.addFile(new l(this, t, e, s, i));
                    return this;
                }), t.exports = l;
            },
            54565: (t, e, i)=>{
                var s = i(56694), n = i(76846), r = i(72632), o = i(42927), a = i(42911), h = i(45176), l = i(31476), u = i(15297), c = new s({
                    Extends: h,
                    initialize: function(t, e, i, s, n, l) {
                        var c, d;
                        if (a(e)) {
                            var f = e;
                            e = r(f, "key"), c = new o(t, {
                                key: e,
                                url: r(f, "textureURL"),
                                extension: r(f, "textureExtension", "png"),
                                normalMap: r(f, "normalMap"),
                                xhrSettings: r(f, "textureXhrSettings")
                            }), d = new u(t, {
                                key: e,
                                url: r(f, "fontDataURL"),
                                extension: r(f, "fontDataExtension", "xml"),
                                xhrSettings: r(f, "fontDataXhrSettings")
                            });
                        } else c = new o(t, e, i, n), d = new u(t, e, s, l);
                        c.linkFile ? h.call(this, t, "bitmapfont", e, [
                            c,
                            d,
                            c.linkFile
                        ]) : h.call(this, t, "bitmapfont", e, [
                            c,
                            d
                        ]);
                    },
                    addToCache: function() {
                        if (this.isReadyToProcess()) {
                            var t = this.files[0], e = this.files[1];
                            t.addToCache();
                            var i = t.cache.get(t.key), s = l(e.data, t.cache.getFrame(t.key), 0, 0, i);
                            this.loader.cacheManager.bitmapFont.add(t.key, {
                                data: s,
                                texture: t.key,
                                frame: null
                            }), this.complete = !0;
                        }
                    }
                });
                n.register("bitmapFont", function(t, e, i, s, n) {
                    var r;
                    if (Array.isArray(t)) for(var o = 0; o < t.length; o++)r = new c(this, t[o]), this.addFile(r.files);
                    else r = new c(this, t, e, i, s, n), this.addFile(r.files);
                    return this;
                }), t.exports = c;
            },
            99898: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = new s({
                    Extends: r,
                    initialize: function(t, e, i, s) {
                        var n = "css";
                        if (h(e)) {
                            var o = e;
                            e = a(o, "key"), i = a(o, "url"), s = a(o, "xhrSettings"), n = a(o, "extension", n);
                        }
                        var l = {
                            type: "script",
                            cache: !1,
                            extension: n,
                            responseType: "text",
                            key: e,
                            url: i,
                            xhrSettings: s
                        };
                        r.call(this, t, l);
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING, this.data = document.createElement("style"), this.data.defer = !1, this.data.innerHTML = this.xhrLoader.responseText, document.head.appendChild(this.data), this.onProcessComplete();
                    }
                });
                o.register("css", function(t, e, i) {
                    if (Array.isArray(t)) for(var s = 0; s < t.length; s++)this.addFile(new l(this, t[s]));
                    else this.addFile(new l(this, t, e, i));
                    return this;
                }), t.exports = l;
            },
            47375: (t, e, i)=>{
                var s = i(73152), n = i(40612), r = i(56694), o = i(76846), a = i(72632), h = i(42927), l = i(42911), u = i(70806), c = i(67409), d = i(30657), f = i(80802), p = i(45176), v = i(24904), g = new r({
                    Extends: p,
                    initialize: function(t, e, i, s) {
                        if (i.multiAtlasURL) {
                            var r = new u(t, {
                                key: e,
                                url: i.multiAtlasURL,
                                xhrSettings: s,
                                config: i
                            });
                            p.call(this, t, "texture", e, [
                                r
                            ]);
                        } else {
                            var o = i.textureURL.substr(i.textureURL.length - 3);
                            i.type || (i.type = "ktx" === o.toLowerCase() ? "KTX" : "PVR");
                            var a = new n(t, {
                                key: e,
                                url: i.textureURL,
                                extension: o,
                                xhrSettings: s,
                                config: i
                            });
                            if (i.atlasURL) {
                                var h = new u(t, {
                                    key: e,
                                    url: i.atlasURL,
                                    xhrSettings: s,
                                    config: i
                                });
                                p.call(this, t, "texture", e, [
                                    a,
                                    h
                                ]);
                            } else p.call(this, t, "texture", e, [
                                a
                            ]);
                        }
                        this.config = i;
                    },
                    onFileComplete: function(t) {
                        if (-1 !== this.files.indexOf(t)) {
                            if (this.pending--, !this.config.multiAtlasURL) return;
                            if ("json" === t.type && t.data.hasOwnProperty("textures")) {
                                var e = t.data.textures, i = this.config, s = this.loader, r = s.baseURL, o = s.path, h = s.prefix, l = a(i, "multiBaseURL", this.baseURL), u = a(i, "multiPath", this.path), c = a(i, "prefix", this.prefix), d = a(i, "textureXhrSettings");
                                l && s.setBaseURL(l), u && s.setPath(u), c && s.setPrefix(c);
                                for(var f = 0; f < e.length; f++){
                                    var p = e[f].image, v = "CMA" + this.multiKeyIndex + "_" + p, g = new n(s, v, p, d);
                                    if (this.addToMultiFile(g), s.addFile(g), e[f].normalMap) {
                                        var m = new n(s, v, e[f].normalMap, d);
                                        m.type = "normalMap", g.setLink(m), this.addToMultiFile(m), s.addFile(m);
                                    }
                                }
                                s.setBaseURL(r), s.setPath(o), s.setPrefix(h);
                            }
                        }
                    },
                    addToCache: function() {
                        if (this.isReadyToProcess()) {
                            var t = this.config;
                            if (t.multiAtlasURL) this.addMultiToCache();
                            else {
                                var e, i = this.loader.systems.renderer, s = this.loader.textureManager, n = this.files[0], r = this.files[1];
                                if ("PVR" === t.type ? e = v(n.data) : "KTX" === t.type && (e = c(n.data)), e && i.supportsCompressedTexture(t.format, e.internalFormat)) {
                                    e.format = i.getCompressedTextureName(t.format, e.internalFormat);
                                    var o = r && r.data ? r.data : null;
                                    s.addCompressedTexture(n.key, e, o);
                                }
                            }
                            this.complete = !0;
                        }
                    },
                    addMultiToCache: function() {
                        for(var t, e = this.config, i = this.files[0], s = [], n = [], r = [], o = this.loader.systems.renderer, a = this.loader.textureManager, h = 1; h < this.files.length; h++){
                            var l = this.files[h];
                            if ("normalMap" !== l.type) for(var u = l.key.indexOf("_"), d = l.key.substr(u + 1), f = l.data, p = 0; p < i.data.textures.length; p++){
                                var g = i.data.textures[p];
                                if (g.image === d) {
                                    "PVR" === e.type ? t = v(f) : "KTX" === e.type && (t = c(f)), t && o.supportsCompressedTexture(e.format, t.internalFormat) && (t.format = o.getCompressedTextureName(e.format, t.internalFormat), n.push(t), s.push(g), l.linkFile && r.push(l.linkFile.data));
                                    break;
                                }
                            }
                        }
                        0 === r.length && (r = void 0), a.addAtlasJSONArray(this.key, n, s, r), this.complete = !0;
                    }
                });
                o.register("texture", function(t, e, i) {
                    var n = this.systems.renderer, r = function(t, e, i, r) {
                        var o = {
                            format: null,
                            type: null,
                            textureURL: void 0,
                            atlasURL: void 0,
                            multiAtlasURL: void 0,
                            multiPath: void 0,
                            multiBaseURL: void 0
                        };
                        if (l(e)) {
                            var u = e;
                            e = a(u, "key"), i = a(u, "url"), r = a(u, "xhrSettings");
                        }
                        var c = !1;
                        for(var p in i)if (n.supportsCompressedTexture(p)) {
                            var v = i[p];
                            "string" == typeof v ? o.textureURL = v : o = d(v, o), o.format = p.toUpperCase(), c = !0;
                            break;
                        }
                        if (c) {
                            if ("IMG" === o.format) {
                                var m;
                                m = o.multiAtlasURL ? new f(t, e, o.multiAtlasURL, o.multiPath, o.multiBaseURL, r).files : o.atlasURL ? new s(t, e, o.textureURL, o.atlasURL, r).files : new h(t, e, o.textureURL, r), t.addFile(m);
                            } else {
                                var y = new g(t, e, o, r);
                                t.addFile(y.files);
                            }
                        } else console.warn("No supported compressed texture format or IMG fallback", e);
                    };
                    if (Array.isArray(t)) for(var o = 0; o < t.length; o++)r(this, t[o]);
                    else r(this, t, e, i);
                    return this;
                }), t.exports = g;
            },
            46568: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = i(31053), u = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, n) {
                        var o = "glsl";
                        if (h(e)) {
                            var l = e;
                            e = a(l, "key"), i = a(l, "url"), s = a(l, "shaderType", "fragment"), n = a(l, "xhrSettings"), o = a(l, "extension", o);
                        } else void 0 === s && (s = "fragment");
                        var u = {
                            type: "glsl",
                            cache: t.cacheManager.shader,
                            extension: o,
                            responseType: "text",
                            key: e,
                            url: i,
                            config: {
                                shaderType: s
                            },
                            xhrSettings: n
                        };
                        r.call(this, t, u);
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING, this.data = this.xhrLoader.responseText, this.onProcessComplete();
                    },
                    addToCache: function() {
                        var t = this.data.split("\n"), e = this.extractBlock(t, 0);
                        if (e) for(; e;){
                            var i = this.getShaderName(e.header), s = this.getShaderType(e.header), n = this.getShaderUniforms(e.header), r = e.shader;
                            if (this.cache.has(i)) {
                                var o = this.cache.get(i);
                                "fragment" === s ? o.fragmentSrc = r : o.vertexSrc = r, o.uniforms || (o.uniforms = n);
                            } else "fragment" === s ? this.cache.add(i, new l(i, r, "", n)) : this.cache.add(i, new l(i, "", r, n));
                            e = this.extractBlock(t, e.offset);
                        }
                        else "fragment" === this.config.shaderType ? this.cache.add(this.key, new l(this.key, this.data)) : this.cache.add(this.key, new l(this.key, "", this.data));
                    },
                    getShaderName: function(t) {
                        for(var e = 0; e < t.length; e++){
                            var i = t[e].trim();
                            if ("name:" === i.substring(0, 5)) return i.substring(5).trim();
                        }
                        return this.key;
                    },
                    getShaderType: function(t) {
                        for(var e = 0; e < t.length; e++){
                            var i = t[e].trim();
                            if ("type:" === i.substring(0, 5)) return i.substring(5).trim();
                        }
                        return this.config.shaderType;
                    },
                    getShaderUniforms: function(t) {
                        for(var e = {}, i = 0; i < t.length; i++){
                            var s = t[i].trim();
                            if ("uniform." === s.substring(0, 8)) {
                                var n = s.indexOf(":");
                                if (n) {
                                    var r = s.substring(8, n);
                                    try {
                                        e[r] = JSON.parse(s.substring(n + 1));
                                    } catch (t) {
                                        console.warn("Invalid uniform JSON: " + r);
                                    }
                                }
                            }
                        }
                        return e;
                    },
                    extractBlock: function(t, e) {
                        for(var i = -1, s = -1, n = -1, r = !1, o = !1, a = [], h = [], l = e; l < t.length; l++){
                            var u = t[l].trim();
                            if ("---" === u) {
                                if (-1 === i) i = l, r = !0;
                                else {
                                    if (!r) {
                                        o = !1;
                                        break;
                                    }
                                    s = l, r = !1, o = !0;
                                }
                            } else r ? a.push(u) : o && (h.push(u), n = l);
                        }
                        return r || -1 === s ? null : {
                            header: a,
                            shader: h.join("\n"),
                            offset: n
                        };
                    }
                });
                o.register("glsl", function(t, e, i, s) {
                    if (Array.isArray(t)) for(var n = 0; n < t.length; n++)this.addFile(new u(this, t[n]));
                    else this.addFile(new u(this, t, e, i, s));
                    return this;
                }), t.exports = u;
            },
            30929: (t, e, i)=>{
                var s = i(56694), n = i(683), r = i(98035), o = i(72632), a = i(30750), h = i(42911), l = new s({
                    Extends: r,
                    initialize: function(t, e, i, s) {
                        if (h(e)) {
                            var n = e;
                            e = o(n, "key"), s = o(n, "config", s);
                        }
                        var a = {
                            type: "audio",
                            cache: t.cacheManager.audio,
                            extension: i.type,
                            key: e,
                            url: i.url,
                            config: s
                        };
                        r.call(this, t, a), this.locked = "ontouchstart" in window, this.loaded = !1, this.filesLoaded = 0, this.filesTotal = 0;
                    },
                    onLoad: function() {
                        this.loaded || (this.loaded = !0, this.loader.nextFile(this, !0));
                    },
                    onError: function() {
                        for(var t = 0; t < this.data.length; t++){
                            var e = this.data[t];
                            e.oncanplaythrough = null, e.onerror = null;
                        }
                        this.loader.nextFile(this, !1);
                    },
                    onProgress: function(t) {
                        var e = t.target;
                        e.oncanplaythrough = null, e.onerror = null, this.filesLoaded++, this.percentComplete = Math.min(this.filesLoaded / this.filesTotal, 1), this.loader.emit(n.FILE_PROGRESS, this, this.percentComplete), this.filesLoaded === this.filesTotal && this.onLoad();
                    },
                    load: function() {
                        this.data = [];
                        var t = this.config && this.config.instances || 1;
                        this.filesTotal = t, this.filesLoaded = 0, this.percentComplete = 0;
                        for(var e = 0; e < t; e++){
                            var i = new Audio;
                            i.dataset || (i.dataset = {}), i.dataset.name = this.key + ("0" + e).slice(-2), i.dataset.used = "false", this.locked ? i.dataset.locked = "true" : (i.dataset.locked = "false", i.preload = "auto", i.oncanplaythrough = this.onProgress.bind(this), i.onerror = this.onError.bind(this)), this.data.push(i);
                        }
                        for(e = 0; e < this.data.length; e++)(i = this.data[e]).src = a(this, this.loader.baseURL), this.locked || i.load();
                        this.locked && setTimeout(this.onLoad.bind(this));
                    }
                });
                t.exports = l;
            },
            77459: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = new s({
                    Extends: r,
                    initialize: function(t, e, i, s) {
                        var n = "html";
                        if (h(e)) {
                            var o = e;
                            e = a(o, "key"), i = a(o, "url"), s = a(o, "xhrSettings"), n = a(o, "extension", n);
                        }
                        var l = {
                            type: "text",
                            cache: t.cacheManager.html,
                            extension: n,
                            responseType: "text",
                            key: e,
                            url: i,
                            xhrSettings: s
                        };
                        r.call(this, t, l);
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING, this.data = this.xhrLoader.responseText, this.onProcessComplete();
                    }
                });
                o.register("html", function(t, e, i) {
                    if (Array.isArray(t)) for(var s = 0; s < t.length; s++)this.addFile(new l(this, t[s]));
                    else this.addFile(new l(this, t, e, i));
                    return this;
                }), t.exports = l;
            },
            9755: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, n, o) {
                        void 0 === s && (s = 512), void 0 === n && (n = 512);
                        var l = "html";
                        if (h(e)) {
                            var u = e;
                            e = a(u, "key"), i = a(u, "url"), o = a(u, "xhrSettings"), l = a(u, "extension", l), s = a(u, "width", s), n = a(u, "height", n);
                        }
                        var c = {
                            type: "html",
                            cache: t.textureManager,
                            extension: l,
                            responseType: "text",
                            key: e,
                            url: i,
                            xhrSettings: o,
                            config: {
                                width: s,
                                height: n
                            }
                        };
                        r.call(this, t, c);
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING;
                        var t = this.config.width, e = this.config.height, i = [];
                        i.push('<svg width="' + t + 'px" height="' + e + 'px" viewBox="0 0 ' + t + " " + e + '" xmlns="http://www.w3.org/2000/svg">'), i.push('<foreignObject width="100%" height="100%">'), i.push('<body xmlns="http://www.w3.org/1999/xhtml">'), i.push(this.xhrLoader.responseText), i.push("</body>"), i.push("</foreignObject>"), i.push("</svg>");
                        var s = [
                            i.join("\n")
                        ], o = this;
                        try {
                            var a = new window.Blob(s, {
                                type: "image/svg+xml;charset=utf-8"
                            });
                        } catch (t) {
                            return o.state = n.FILE_ERRORED, void o.onProcessComplete();
                        }
                        this.data = new Image, this.data.crossOrigin = this.crossOrigin, this.data.onload = function() {
                            r.revokeObjectURL(o.data), o.onProcessComplete();
                        }, this.data.onerror = function() {
                            r.revokeObjectURL(o.data), o.onProcessError();
                        }, r.createObjectURL(this.data, a, "image/svg+xml");
                    },
                    addToCache: function() {
                        this.cache.addImage(this.key, this.data);
                    }
                });
                o.register("htmlTexture", function(t, e, i, s, n) {
                    if (Array.isArray(t)) for(var r = 0; r < t.length; r++)this.addFile(new l(this, t[r]));
                    else this.addFile(new l(this, t, e, i, s, n));
                    return this;
                }), t.exports = l;
            },
            42927: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = i(30750), u = new s({
                    Extends: r,
                    initialize: function t(e, i, s, n, o) {
                        var l, u = "png";
                        if (h(i)) {
                            var c = i;
                            i = a(c, "key"), s = a(c, "url"), l = a(c, "normalMap"), n = a(c, "xhrSettings"), u = a(c, "extension", u), o = a(c, "frameConfig");
                        }
                        Array.isArray(s) && (l = s[1], s = s[0]);
                        var d = {
                            type: "image",
                            cache: e.textureManager,
                            extension: u,
                            responseType: "blob",
                            key: i,
                            url: s,
                            xhrSettings: n,
                            config: o
                        };
                        if (r.call(this, e, d), l) {
                            var f = new t(e, this.key, l, n, o);
                            f.type = "normalMap", this.setLink(f), e.addFile(f);
                        }
                        this.useImageElementLoad = "HTMLImageElement" === e.imageLoadType, this.useImageElementLoad && (this.load = this.loadImage, this.onProcess = this.onProcessImage);
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING, this.data = new Image, this.data.crossOrigin = this.crossOrigin;
                        var t = this;
                        this.data.onload = function() {
                            r.revokeObjectURL(t.data), t.onProcessComplete();
                        }, this.data.onerror = function() {
                            r.revokeObjectURL(t.data), t.onProcessError();
                        }, r.createObjectURL(this.data, this.xhrLoader.response, "image/png");
                    },
                    onProcessImage: function() {
                        var t = this.state;
                        this.state = n.FILE_PROCESSING, t === n.FILE_LOADED ? this.onProcessComplete() : this.onProcessError();
                    },
                    loadImage: function() {
                        if (this.state = n.FILE_LOADING, this.src = l(this, this.loader.baseURL), 0 === this.src.indexOf("data:")) console.warn("Local data URIs are not supported: " + this.key);
                        else {
                            this.data = new Image, this.data.crossOrigin = this.crossOrigin;
                            var t = this;
                            this.data.onload = function() {
                                t.state = n.FILE_LOADED, t.loader.nextFile(t, !0);
                            }, this.data.onerror = function() {
                                t.loader.nextFile(t, !1);
                            }, this.data.src = this.src;
                        }
                    },
                    addToCache: function() {
                        var t = this.linkFile;
                        t ? t.state >= n.FILE_COMPLETE && ("normalMap" === this.type ? this.cache.addImage(this.key, t.data, this.data) : this.cache.addImage(this.key, this.data, t.data)) : this.cache.addImage(this.key, this.data);
                    }
                });
                o.register("image", function(t, e, i) {
                    if (Array.isArray(t)) for(var s = 0; s < t.length; s++)this.addFile(new u(this, t[s]));
                    else this.addFile(new u(this, t, e, i));
                    return this;
                }), t.exports = u;
            },
            70806: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(10850), l = i(42911), u = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, o) {
                        var u = "json";
                        if (l(e)) {
                            var c = e;
                            e = a(c, "key"), i = a(c, "url"), s = a(c, "xhrSettings"), u = a(c, "extension", u), o = a(c, "dataKey", o);
                        }
                        var d = {
                            type: "json",
                            cache: t.cacheManager.json,
                            extension: u,
                            responseType: "text",
                            key: e,
                            url: i,
                            xhrSettings: s,
                            config: o
                        };
                        r.call(this, t, d), l(i) && (this.data = o ? h(i, o) : i, this.state = n.FILE_POPULATED);
                    },
                    onProcess: function() {
                        if (this.state !== n.FILE_POPULATED) {
                            this.state = n.FILE_PROCESSING;
                            try {
                                var t = JSON.parse(this.xhrLoader.responseText);
                            } catch (t) {
                                throw this.onProcessError(), t;
                            }
                            var e = this.config;
                            this.data = "string" == typeof e ? h(t, e, t) : t;
                        }
                        this.onProcessComplete();
                    }
                });
                o.register("json", function(t, e, i, s) {
                    if (Array.isArray(t)) for(var n = 0; n < t.length; n++)this.addFile(new u(this, t[n]));
                    else this.addFile(new u(this, t, e, s, i));
                    return this;
                }), t.exports = u;
            },
            80802: (t, e, i)=>{
                var s = i(56694), n = i(76846), r = i(72632), o = i(42927), a = i(42911), h = i(70806), l = i(45176), u = new s({
                    Extends: l,
                    initialize: function(t, e, i, s, n, o, u) {
                        if (a(e)) {
                            var c = e;
                            e = r(c, "key"), i = r(c, "url", !1) ? r(c, "url") : r(c, "atlasURL"), o = r(c, "xhrSettings"), s = r(c, "path"), n = r(c, "baseURL"), u = r(c, "textureXhrSettings");
                        }
                        var d = new h(t, e, i, o);
                        l.call(this, t, "multiatlas", e, [
                            d
                        ]), this.config.path = s, this.config.baseURL = n, this.config.textureXhrSettings = u;
                    },
                    onFileComplete: function(t) {
                        if (-1 !== this.files.indexOf(t) && (this.pending--, "json" === t.type && t.data.hasOwnProperty("textures"))) {
                            var e = t.data.textures, i = this.config, s = this.loader, n = s.baseURL, a = s.path, h = s.prefix, l = r(i, "baseURL", this.baseURL), u = r(i, "path", this.path), c = r(i, "prefix", this.prefix), d = r(i, "textureXhrSettings");
                            s.setBaseURL(l), s.setPath(u), s.setPrefix(c);
                            for(var f = 0; f < e.length; f++){
                                var p = e[f].image, v = "MA" + this.multiKeyIndex + "_" + p, g = new o(s, v, p, d);
                                if (this.addToMultiFile(g), s.addFile(g), e[f].normalMap) {
                                    var m = new o(s, v, e[f].normalMap, d);
                                    m.type = "normalMap", g.setLink(m), this.addToMultiFile(m), s.addFile(m);
                                }
                            }
                            s.setBaseURL(n), s.setPath(a), s.setPrefix(h);
                        }
                    },
                    addToCache: function() {
                        if (this.isReadyToProcess()) {
                            for(var t = this.files[0], e = [], i = [], s = [], n = 1; n < this.files.length; n++){
                                var r = this.files[n];
                                if ("normalMap" !== r.type) for(var o = r.key.indexOf("_"), a = r.key.substr(o + 1), h = r.data, l = 0; l < t.data.textures.length; l++){
                                    var u = t.data.textures[l];
                                    if (u.image === a) {
                                        i.push(h), e.push(u), r.linkFile && s.push(r.linkFile.data);
                                        break;
                                    }
                                }
                            }
                            0 === s.length && (s = void 0), this.loader.textureManager.addAtlasJSONArray(this.key, i, e, s), this.complete = !0;
                        }
                    }
                });
                n.register("multiatlas", function(t, e, i, s, n) {
                    var r;
                    if (Array.isArray(t)) for(var o = 0; o < t.length; o++)r = new u(this, t[o]), this.addFile(r.files);
                    else r = new u(this, t, e, i, s, n), this.addFile(r.files);
                    return this;
                }), t.exports = u;
            },
            39034: (t, e, i)=>{
                var s = i(56694), n = i(76846), r = i(72632), o = i(42911), a = i(45176), h = i(55188), l = new s({
                    Extends: a,
                    initialize: function(t, e, i, s) {
                        var n = "js", l = [];
                        if (o(e)) {
                            var u = e;
                            e = r(u, "key"), i = r(u, "url"), s = r(u, "xhrSettings"), n = r(u, "extension", n);
                        }
                        Array.isArray(i) || (i = [
                            i
                        ]);
                        for(var c = 0; c < i.length; c++){
                            var d = new h(t, {
                                key: e + "_" + c.toString(),
                                url: i[c],
                                extension: n,
                                xhrSettings: s
                            });
                            d.onProcess = function() {
                                this.onProcessComplete();
                            }, l.push(d);
                        }
                        a.call(this, t, "scripts", e, l);
                    },
                    addToCache: function() {
                        if (this.isReadyToProcess()) {
                            for(var t = 0; t < this.files.length; t++){
                                var e = this.files[t];
                                e.data = document.createElement("script"), e.data.language = "javascript", e.data.type = "text/javascript", e.data.defer = !1, e.data.text = e.xhrLoader.responseText, document.head.appendChild(e.data);
                            }
                            this.complete = !0;
                        }
                    }
                });
                n.register("scripts", function(t, e, i) {
                    var s;
                    if (Array.isArray(t)) for(var n = 0; n < t.length; n++)s = new l(this, t[n]), this.addFile(s.files);
                    else s = new l(this, t, e, i), this.addFile(s.files);
                    return this;
                }), t.exports = l;
            },
            85527: (t, e, i)=>{
                var s = i(56694), n = i(76846), r = i(72632), o = i(42911), a = i(45176), h = i(27291), l = i(76799), u = i(86897), c = new s({
                    Extends: a,
                    initialize: function(t, e, i, s, n, h) {
                        var l, c, d = t.cacheManager.obj;
                        if (o(e)) {
                            var f = e;
                            e = r(f, "key"), l = new u(t, {
                                key: e,
                                type: "obj",
                                cache: d,
                                url: r(f, "url"),
                                extension: r(f, "extension", "obj"),
                                xhrSettings: r(f, "xhrSettings"),
                                config: {
                                    flipUV: r(f, "flipUV", n)
                                }
                            }), (s = r(f, "matURL")) && (c = new u(t, {
                                key: e,
                                type: "mat",
                                cache: d,
                                url: s,
                                extension: r(f, "matExtension", "mat"),
                                xhrSettings: r(f, "xhrSettings")
                            }));
                        } else l = new u(t, {
                            key: e,
                            url: i,
                            type: "obj",
                            cache: d,
                            extension: "obj",
                            xhrSettings: h,
                            config: {
                                flipUV: n
                            }
                        }), s && (c = new u(t, {
                            key: e,
                            url: s,
                            type: "mat",
                            cache: d,
                            extension: "mat",
                            xhrSettings: h
                        }));
                        a.call(this, t, "obj", e, [
                            l,
                            c
                        ]);
                    },
                    addToCache: function() {
                        if (this.isReadyToProcess()) {
                            var t = this.files[0], e = this.files[1], i = h(t.data, t.config.flipUV);
                            e && (i.materials = l(e.data)), t.cache.add(t.key, i), this.complete = !0;
                        }
                    }
                });
                n.register("obj", function(t, e, i, s, n) {
                    var r;
                    if (Array.isArray(t)) for(var o = 0; o < t.length; o++)r = new c(this, t[o]), this.addFile(r.files);
                    else r = new c(this, t, e, i, s, n), this.addFile(r.files);
                    return this;
                }), t.exports = c;
            },
            3616: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(76846), o = i(70806), a = new s({
                    Extends: o,
                    initialize: function(t, e, i, s, n) {
                        o.call(this, t, e, i, s, n), this.type = "packfile";
                    },
                    onProcess: function() {
                        if (this.state !== n.FILE_POPULATED && (this.state = n.FILE_PROCESSING, this.data = JSON.parse(this.xhrLoader.responseText)), this.data.hasOwnProperty("files") && this.config) {
                            var t = {};
                            t[this.config] = this.data, this.data = t;
                        }
                        this.loader.addPack(this.data, this.config), this.onProcessComplete();
                    }
                });
                r.register("pack", function(t, e, i, s) {
                    if (Array.isArray(t)) for(var n = 0; n < t.length; n++)this.addFile(new a(this, t[n]));
                    else this.addFile(new a(this, t, e, s, i));
                    return this;
                }), t.exports = a;
            },
            12217: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, o, l) {
                        var u = "js";
                        if (h(e)) {
                            var c = e;
                            e = a(c, "key"), i = a(c, "url"), l = a(c, "xhrSettings"), u = a(c, "extension", u), s = a(c, "start"), o = a(c, "mapping");
                        }
                        var d = {
                            type: "plugin",
                            cache: !1,
                            extension: u,
                            responseType: "text",
                            key: e,
                            url: i,
                            xhrSettings: l,
                            config: {
                                start: s,
                                mapping: o
                            }
                        };
                        r.call(this, t, d), "function" == typeof i && (this.data = i, this.state = n.FILE_POPULATED);
                    },
                    onProcess: function() {
                        var t = this.loader.systems.plugins, e = this.config, i = a(e, "start", !1), s = a(e, "mapping", null);
                        if (this.state === n.FILE_POPULATED) t.install(this.key, this.data, i, s);
                        else {
                            this.state = n.FILE_PROCESSING, this.data = document.createElement("script"), this.data.language = "javascript", this.data.type = "text/javascript", this.data.defer = !1, this.data.text = this.xhrLoader.responseText, document.head.appendChild(this.data);
                            var r = t.install(this.key, window[this.key], i, s);
                            (i || s) && (this.loader.systems[s] = r, this.loader.scene[s] = r);
                        }
                        this.onProcessComplete();
                    }
                });
                o.register("plugin", function(t, e, i, s, n) {
                    if (Array.isArray(t)) for(var r = 0; r < t.length; r++)this.addFile(new l(this, t[r]));
                    else this.addFile(new l(this, t, e, i, s, n));
                    return this;
                }), t.exports = l;
            },
            4474: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, n) {
                        var o = "svg";
                        if (h(e)) {
                            var l = e;
                            e = a(l, "key"), i = a(l, "url"), s = a(l, "svgConfig", {}), n = a(l, "xhrSettings"), o = a(l, "extension", o);
                        }
                        var u = {
                            type: "svg",
                            cache: t.textureManager,
                            extension: o,
                            responseType: "text",
                            key: e,
                            url: i,
                            xhrSettings: n,
                            config: {
                                width: a(s, "width"),
                                height: a(s, "height"),
                                scale: a(s, "scale")
                            }
                        };
                        r.call(this, t, u);
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING;
                        var t = this.xhrLoader.responseText, e = [
                            t
                        ], i = this.config.width, s = this.config.height, o = this.config.scale;
                        t: if (i && s || o) {
                            var a = (new DOMParser).parseFromString(t, "text/xml").getElementsByTagName("svg")[0], h = a.hasAttribute("viewBox"), l = parseFloat(a.getAttribute("width")), u = parseFloat(a.getAttribute("height"));
                            if (!h && l && u) a.setAttribute("viewBox", "0  0 " + l + " " + u);
                            else if (h && !l && !u) {
                                var c = a.getAttribute("viewBox").split(/\s+|,/);
                                l = c[2], u = c[3];
                            }
                            if (o) {
                                if (!l || !u) break t;
                                i = l * o, s = u * o;
                            }
                            a.setAttribute("width", i.toString() + "px"), a.setAttribute("height", s.toString() + "px"), e = [
                                (new XMLSerializer).serializeToString(a)
                            ];
                        }
                        try {
                            var d = new window.Blob(e, {
                                type: "image/svg+xml;charset=utf-8"
                            });
                        } catch (t) {
                            return void this.onProcessError();
                        }
                        this.data = new Image, this.data.crossOrigin = this.crossOrigin;
                        var f = this, p = !1;
                        this.data.onload = function() {
                            p || r.revokeObjectURL(f.data), f.onProcessComplete();
                        }, this.data.onerror = function() {
                            p ? f.onProcessError() : (p = !0, r.revokeObjectURL(f.data), f.data.src = "data:image/svg+xml," + encodeURIComponent(e.join("")));
                        }, r.createObjectURL(this.data, d, "image/svg+xml");
                    },
                    addToCache: function() {
                        this.cache.addImage(this.key, this.data);
                    }
                });
                o.register("svg", function(t, e, i, s) {
                    if (Array.isArray(t)) for(var n = 0; n < t.length; n++)this.addFile(new l(this, t[n]));
                    else this.addFile(new l(this, t, e, i, s));
                    return this;
                }), t.exports = l;
            },
            95171: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = new s({
                    Extends: r,
                    initialize: function(t, e, i, s) {
                        var n = "js";
                        if (h(e)) {
                            var o = e;
                            e = a(o, "key"), i = a(o, "url"), s = a(o, "xhrSettings"), n = a(o, "extension", n);
                        }
                        var l = {
                            type: "text",
                            extension: n,
                            responseType: "text",
                            key: e,
                            url: i,
                            xhrSettings: s
                        };
                        r.call(this, t, l);
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING, this.data = this.xhrLoader.responseText, this.onProcessComplete();
                    },
                    addToCache: function() {
                        var t = this.data.concat("(function(){\nreturn new " + this.key + "();\n}).call(this);"), e = eval;
                        this.loader.sceneManager.add(this.key, e(t)), this.complete = !0;
                    }
                });
                o.register("sceneFile", function(t, e, i) {
                    if (Array.isArray(t)) for(var s = 0; s < t.length; s++)this.addFile(new l(this, t[s]));
                    else this.addFile(new l(this, t, e, i));
                    return this;
                }), t.exports = l;
            },
            82458: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, o, l) {
                        var u = "js";
                        if (h(e)) {
                            var c = e;
                            e = a(c, "key"), i = a(c, "url"), l = a(c, "xhrSettings"), u = a(c, "extension", u), s = a(c, "systemKey"), o = a(c, "sceneKey");
                        }
                        var d = {
                            type: "scenePlugin",
                            cache: !1,
                            extension: u,
                            responseType: "text",
                            key: e,
                            url: i,
                            xhrSettings: l,
                            config: {
                                systemKey: s,
                                sceneKey: o
                            }
                        };
                        r.call(this, t, d), "function" == typeof i && (this.data = i, this.state = n.FILE_POPULATED);
                    },
                    onProcess: function() {
                        var t = this.loader.systems.plugins, e = this.config, i = this.key, s = a(e, "systemKey", i), r = a(e, "sceneKey", i);
                        this.state === n.FILE_POPULATED ? t.installScenePlugin(s, this.data, r, this.loader.scene, !0) : (this.state = n.FILE_PROCESSING, this.data = document.createElement("script"), this.data.language = "javascript", this.data.type = "text/javascript", this.data.defer = !1, this.data.text = this.xhrLoader.responseText, document.head.appendChild(this.data), t.installScenePlugin(s, window[this.key], r, this.loader.scene, !0)), this.onProcessComplete();
                    }
                });
                o.register("scenePlugin", function(t, e, i, s, n) {
                    if (Array.isArray(t)) for(var r = 0; r < t.length; r++)this.addFile(new l(this, t[r]));
                    else this.addFile(new l(this, t, e, i, s, n));
                    return this;
                }), t.exports = l;
            },
            55188: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = new s({
                    Extends: r,
                    initialize: function(t, e, i, s, n) {
                        var o = "js";
                        if (h(e)) {
                            var l = e;
                            e = a(l, "key"), i = a(l, "url"), s = a(l, "type", "script"), n = a(l, "xhrSettings"), o = a(l, "extension", o);
                        } else void 0 === s && (s = "script");
                        var u = {
                            type: s,
                            cache: !1,
                            extension: o,
                            responseType: "text",
                            key: e,
                            url: i,
                            xhrSettings: n
                        };
                        r.call(this, t, u);
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING, this.data = document.createElement("script"), this.data.language = "javascript", this.data.type = "text/javascript", this.data.defer = !1, this.data.text = this.xhrLoader.responseText, document.head.appendChild(this.data), this.onProcessComplete();
                    }
                });
                o.register("script", function(t, e, i, s) {
                    if (Array.isArray(t)) for(var n = 0; n < t.length; n++)this.addFile(new l(this, t[n]));
                    else this.addFile(new l(this, t, e, i, s));
                    return this;
                }), t.exports = l;
            },
            33536: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(76846), o = i(42927), a = new s({
                    Extends: o,
                    initialize: function(t, e, i, s, n) {
                        o.call(this, t, e, i, n, s), this.type = "spritesheet";
                    },
                    addToCache: function() {
                        var t = this.linkFile;
                        t ? t.state >= n.FILE_COMPLETE && ("normalMap" === this.type ? this.cache.addSpriteSheet(this.key, t.data, this.config, this.data) : this.cache.addSpriteSheet(this.key, this.data, this.config, t.data)) : this.cache.addSpriteSheet(this.key, this.data, this.config);
                    }
                });
                r.register("spritesheet", function(t, e, i, s) {
                    if (Array.isArray(t)) for(var n = 0; n < t.length; n++)this.addFile(new a(this, t[n]));
                    else this.addFile(new a(this, t, e, i, s));
                    return this;
                }), t.exports = a;
            },
            86897: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = new s({
                    Extends: r,
                    initialize: function(t, e, i, s) {
                        var n = "text", o = "txt", l = t.cacheManager.text;
                        if (h(e)) {
                            var u = e;
                            e = a(u, "key"), i = a(u, "url"), s = a(u, "xhrSettings"), o = a(u, "extension", o), n = a(u, "type", n), l = a(u, "cache", l);
                        }
                        var c = {
                            type: n,
                            cache: l,
                            extension: o,
                            responseType: "text",
                            key: e,
                            url: i,
                            xhrSettings: s
                        };
                        r.call(this, t, c);
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING, this.data = this.xhrLoader.responseText, this.onProcessComplete();
                    }
                });
                o.register("text", function(t, e, i) {
                    if (Array.isArray(t)) for(var s = 0; s < t.length; s++)this.addFile(new l(this, t[s]));
                    else this.addFile(new l(this, t, e, i));
                    return this;
                }), t.exports = l;
            },
            58673: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = i(93560), u = new s({
                    Extends: r,
                    initialize: function(t, e, i, s) {
                        var n = "csv";
                        if (h(e)) {
                            var o = e;
                            e = a(o, "key"), i = a(o, "url"), s = a(o, "xhrSettings"), n = a(o, "extension", n);
                        }
                        var u = {
                            type: "tilemapCSV",
                            cache: t.cacheManager.tilemap,
                            extension: n,
                            responseType: "text",
                            key: e,
                            url: i,
                            xhrSettings: s
                        };
                        r.call(this, t, u), this.tilemapFormat = l.CSV;
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING, this.data = this.xhrLoader.responseText, this.onProcessComplete();
                    },
                    addToCache: function() {
                        var t = {
                            format: this.tilemapFormat,
                            data: this.data
                        };
                        this.cache.add(this.key, t);
                    }
                });
                o.register("tilemapCSV", function(t, e, i) {
                    if (Array.isArray(t)) for(var s = 0; s < t.length; s++)this.addFile(new u(this, t[s]));
                    else this.addFile(new u(this, t, e, i));
                    return this;
                }), t.exports = u;
            },
            98896: (t, e, i)=>{
                var s = i(56694), n = i(76846), r = i(70806), o = i(93560), a = new s({
                    Extends: r,
                    initialize: function(t, e, i, s) {
                        r.call(this, t, e, i, s), this.type = "tilemapJSON", this.cache = t.cacheManager.tilemap;
                    },
                    addToCache: function() {
                        var t = {
                            format: o.WELTMEISTER,
                            data: this.data
                        };
                        this.cache.add(this.key, t);
                    }
                });
                n.register("tilemapImpact", function(t, e, i) {
                    if (Array.isArray(t)) for(var s = 0; s < t.length; s++)this.addFile(new a(this, t[s]));
                    else this.addFile(new a(this, t, e, i));
                    return this;
                }), t.exports = a;
            },
            50563: (t, e, i)=>{
                var s = i(56694), n = i(76846), r = i(70806), o = i(93560), a = new s({
                    Extends: r,
                    initialize: function(t, e, i, s) {
                        r.call(this, t, e, i, s), this.type = "tilemapJSON", this.cache = t.cacheManager.tilemap;
                    },
                    addToCache: function() {
                        var t = {
                            format: o.TILED_JSON,
                            data: this.data
                        };
                        this.cache.add(this.key, t);
                    }
                });
                n.register("tilemapTiledJSON", function(t, e, i) {
                    if (Array.isArray(t)) for(var s = 0; s < t.length; s++)this.addFile(new a(this, t[s]));
                    else this.addFile(new a(this, t, e, i));
                    return this;
                }), t.exports = a;
            },
            82857: (t, e, i)=>{
                var s = i(56694), n = i(76846), r = i(72632), o = i(42927), a = i(42911), h = i(45176), l = i(86897), u = new s({
                    Extends: h,
                    initialize: function(t, e, i, s, n, u) {
                        var c, d;
                        if (a(e)) {
                            var f = e;
                            e = r(f, "key"), c = new o(t, {
                                key: e,
                                url: r(f, "textureURL"),
                                extension: r(f, "textureExtension", "png"),
                                normalMap: r(f, "normalMap"),
                                xhrSettings: r(f, "textureXhrSettings")
                            }), d = new l(t, {
                                key: e,
                                url: r(f, "atlasURL"),
                                extension: r(f, "atlasExtension", "txt"),
                                xhrSettings: r(f, "atlasXhrSettings")
                            });
                        } else c = new o(t, e, i, n), d = new l(t, e, s, u);
                        c.linkFile ? h.call(this, t, "unityatlas", e, [
                            c,
                            d,
                            c.linkFile
                        ]) : h.call(this, t, "unityatlas", e, [
                            c,
                            d
                        ]);
                    },
                    addToCache: function() {
                        if (this.isReadyToProcess()) {
                            var t = this.files[0], e = this.files[1], i = this.files[2] ? this.files[2].data : null;
                            this.loader.textureManager.addUnityAtlas(t.key, t.data, e.data, i), this.complete = !0;
                        }
                    }
                });
                n.register("unityAtlas", function(t, e, i, s, n) {
                    var r;
                    if (Array.isArray(t)) for(var o = 0; o < t.length; o++)r = new u(this, t[o]), this.addFile(r.files);
                    else r = new u(this, t, e, i, s, n), this.addFile(r.files);
                    return this;
                }), t.exports = u;
            },
            22833: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(30750), h = i(72632), l = i(42911), u = new s({
                    Extends: r,
                    initialize: function(t, e, i, s) {
                        if (void 0 === s && (s = !1), l(e)) {
                            var n = e;
                            e = h(n, "key"), i = h(n, "url", []), s = h(n, "noAudio", !1);
                        }
                        var o = t.systems.game.device.video.getVideoURL(i);
                        o || console.warn("VideoFile: No supported format for " + e);
                        var a = {
                            type: "video",
                            cache: t.cacheManager.video,
                            extension: o.type,
                            key: e,
                            url: o.url,
                            config: {
                                noAudio: s
                            }
                        };
                        r.call(this, t, a);
                    },
                    onProcess: function() {
                        this.data = {
                            url: this.src,
                            noAudio: this.config.noAudio,
                            crossOrigin: this.crossOrigin
                        }, this.onProcessComplete();
                    },
                    load: function() {
                        this.src = a(this, this.loader.baseURL), this.state = n.FILE_LOADED, this.loader.nextFile(this, !0);
                    }
                });
                o.register("video", function(t, e, i) {
                    if (Array.isArray(t)) for(var s = 0; s < t.length; s++)this.addFile(new u(this, t[s]));
                    else this.addFile(new u(this, t, e, i));
                    return this;
                }), t.exports = u;
            },
            15297: (t, e, i)=>{
                var s = i(56694), n = i(12117), r = i(98035), o = i(76846), a = i(72632), h = i(42911), l = i(89200), u = new s({
                    Extends: r,
                    initialize: function(t, e, i, s) {
                        var n = "xml";
                        if (h(e)) {
                            var o = e;
                            e = a(o, "key"), i = a(o, "url"), s = a(o, "xhrSettings"), n = a(o, "extension", n);
                        }
                        var l = {
                            type: "xml",
                            cache: t.cacheManager.xml,
                            extension: n,
                            responseType: "text",
                            key: e,
                            url: i,
                            xhrSettings: s
                        };
                        r.call(this, t, l);
                    },
                    onProcess: function() {
                        this.state = n.FILE_PROCESSING, this.data = l(this.xhrLoader.responseText), this.data ? this.onProcessComplete() : this.onProcessError();
                    }
                });
                o.register("xml", function(t, e, i) {
                    if (Array.isArray(t)) for(var s = 0; s < t.length; s++)this.addFile(new u(this, t[s]));
                    else this.addFile(new u(this, t, e, i));
                    return this;
                }), t.exports = u;
            },
            34034: (t, e, i)=>{
                t.exports = {
                    AnimationJSONFile: i(46468),
                    AsepriteFile: i(31648),
                    AtlasJSONFile: i(73152),
                    AtlasXMLFile: i(24616),
                    AudioFile: i(67448),
                    AudioSpriteFile: i(66109),
                    BinaryFile: i(40612),
                    BitmapFontFile: i(54565),
                    CompressedTextureFile: i(47375),
                    CSSFile: i(99898),
                    GLSLFile: i(46568),
                    HTML5AudioFile: i(30929),
                    HTMLFile: i(77459),
                    HTMLTextureFile: i(9755),
                    ImageFile: i(42927),
                    JSONFile: i(70806),
                    MultiAtlasFile: i(80802),
                    MultiScriptFile: i(39034),
                    OBJFile: i(85527),
                    PackFile: i(3616),
                    PluginFile: i(12217),
                    SceneFile: i(95171),
                    ScenePluginFile: i(82458),
                    ScriptFile: i(55188),
                    SpriteSheetFile: i(33536),
                    SVGFile: i(4474),
                    TextFile: i(86897),
                    TilemapCSVFile: i(58673),
                    TilemapImpactFile: i(98896),
                    TilemapJSONFile: i(50563),
                    UnityAtlasFile: i(82857),
                    VideoFile: i(22833),
                    XMLFile: i(15297)
                };
            },
            95695: (t, e, i)=>{
                var s = i(12117), n = i(98611), r = {
                    Events: i(683),
                    FileTypes: i(34034),
                    File: i(98035),
                    FileTypesManager: i(76846),
                    GetURL: i(30750),
                    LoaderPlugin: i(67285),
                    MergeXHRSettings: i(43531),
                    MultiFile: i(45176),
                    XHRLoader: i(88490),
                    XHRSettings: i(33868)
                };
                r = n(!1, r, s), t.exports = r;
            },
            26042: (t)=>{
                t.exports = function(t) {
                    for(var e = 0, i = 0; i < t.length; i++)e += +t[i];
                    return e / t.length;
                };
            },
            22824: (t, e, i)=>{
                var s = i(8034);
                t.exports = function(t, e) {
                    return s(t) / s(e) / s(t - e);
                };
            },
            17489: (t)=>{
                t.exports = function(t, e) {
                    return Math.floor(Math.random() * (e - t + 1) + t);
                };
            },
            14976: (t)=>{
                t.exports = function(t, e, i, s, n) {
                    var r = .5 * (s - e), o = .5 * (n - i), a = t * t;
                    return (2 * i - 2 * s + r + o) * (t * a) + (-3 * i + 3 * s - 2 * r - o) * a + r * t + i;
                };
            },
            89129: (t)=>{
                t.exports = function(t, e, i) {
                    void 0 === e && (e = 0), void 0 === i && (i = 10);
                    var s = Math.pow(i, -e);
                    return Math.ceil(t * s) / s;
                };
            },
            82897: (t)=>{
                t.exports = function(t, e, i) {
                    return Math.max(e, Math.min(i, t));
                };
            },
            75606: (t, e, i)=>{
                var s = i(83392);
                t.exports = function(t) {
                    return t * s.DEG_TO_RAD;
                };
            },
            767: (t)=>{
                t.exports = function(t, e) {
                    return Math.abs(t - e);
                };
            },
            9849: (t, e, i)=>{
                var s = i(82897), n = i(56694), r = i(16650), o = i(72283), a = new r, h = new n({
                    initialize: function t(e, i, s, n) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === n && (n = t.DefaultOrder), this._x = e, this._y = i, this._z = s, this._order = n, this.onChangeCallback = o;
                    },
                    x: {
                        get: function() {
                            return this._x;
                        },
                        set: function(t) {
                            this._x = t, this.onChangeCallback(this);
                        }
                    },
                    y: {
                        get: function() {
                            return this._y;
                        },
                        set: function(t) {
                            this._y = t, this.onChangeCallback(this);
                        }
                    },
                    z: {
                        get: function() {
                            return this._z;
                        },
                        set: function(t) {
                            this._z = t, this.onChangeCallback(this);
                        }
                    },
                    order: {
                        get: function() {
                            return this._order;
                        },
                        set: function(t) {
                            this._order = t, this.onChangeCallback(this);
                        }
                    },
                    set: function(t, e, i, s) {
                        return void 0 === s && (s = this._order), this._x = t, this._y = e, this._z = i, this._order = s, this.onChangeCallback(this), this;
                    },
                    copy: function(t) {
                        return this.set(t.x, t.y, t.z, t.order);
                    },
                    setFromQuaternion: function(t, e, i) {
                        return void 0 === e && (e = this._order), void 0 === i && (i = !1), a.fromQuat(t), this.setFromRotationMatrix(a, e, i);
                    },
                    setFromRotationMatrix: function(t, e, i) {
                        void 0 === e && (e = this._order), void 0 === i && (i = !1);
                        var n = t.val, r = n[0], o = n[4], a = n[8], h = n[1], l = n[5], u = n[9], c = n[2], d = n[6], f = n[10], p = 0, v = 0, g = 0, m = .99999;
                        switch(e){
                            case "XYZ":
                                v = Math.asin(s(a, -1, 1)), Math.abs(a) < m ? (p = Math.atan2(-u, f), g = Math.atan2(-o, r)) : p = Math.atan2(d, l);
                                break;
                            case "YXZ":
                                p = Math.asin(-s(u, -1, 1)), Math.abs(u) < m ? (v = Math.atan2(a, f), g = Math.atan2(h, l)) : v = Math.atan2(-c, r);
                                break;
                            case "ZXY":
                                p = Math.asin(s(d, -1, 1)), Math.abs(d) < m ? (v = Math.atan2(-c, f), g = Math.atan2(-o, l)) : g = Math.atan2(h, r);
                                break;
                            case "ZYX":
                                v = Math.asin(-s(c, -1, 1)), Math.abs(c) < m ? (p = Math.atan2(d, f), g = Math.atan2(h, r)) : g = Math.atan2(-o, l);
                                break;
                            case "YZX":
                                g = Math.asin(s(h, -1, 1)), Math.abs(h) < m ? (p = Math.atan2(-u, l), v = Math.atan2(-c, r)) : v = Math.atan2(a, f);
                                break;
                            case "XZY":
                                g = Math.asin(-s(o, -1, 1)), Math.abs(o) < m ? (p = Math.atan2(d, l), v = Math.atan2(a, r)) : p = Math.atan2(-u, f);
                        }
                        return this._x = p, this._y = v, this._z = g, this._order = e, i && this.onChangeCallback(this), this;
                    }
                });
                h.RotationOrders = [
                    "XYZ",
                    "YXZ",
                    "ZXY",
                    "ZYX",
                    "YZX",
                    "XZY"
                ], h.DefaultOrder = "XYZ", t.exports = h;
            },
            8034: (t)=>{
                t.exports = function(t) {
                    if (0 === t) return 1;
                    for(var e = t; --t;)e *= t;
                    return e;
                };
            },
            61616: (t)=>{
                t.exports = function(t, e) {
                    return Math.random() * (e - t) + t;
                };
            },
            60679: (t)=>{
                t.exports = function(t, e, i) {
                    void 0 === e && (e = 0), void 0 === i && (i = 10);
                    var s = Math.pow(i, -e);
                    return Math.floor(t * s) / s;
                };
            },
            91806: (t, e, i)=>{
                var s = i(82897);
                t.exports = function(t, e, i) {
                    return (i - e) * (t = s(t, 0, 1)) + e;
                };
            },
            79366: (t)=>{
                t.exports = function(t, e) {
                    return t / e / 1e3;
                };
            },
            43776: (t)=>{
                t.exports = function(t) {
                    return t == parseFloat(t) ? !(t % 2) : void 0;
                };
            },
            58442: (t)=>{
                t.exports = function(t) {
                    return t === parseFloat(t) ? !(t % 2) : void 0;
                };
            },
            42798: (t)=>{
                t.exports = function(t, e, i) {
                    return (e - t) * i + t;
                };
            },
            61072: (t)=>{
                t.exports = function(t, e, i) {
                    return void 0 === i && (i = 0), t.clone().lerp(e, i);
                };
            },
            5341: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t) {
                        this.val = new Float32Array(9), t ? this.copy(t) : this.identity();
                    },
                    clone: function() {
                        return new s(this);
                    },
                    set: function(t) {
                        return this.copy(t);
                    },
                    copy: function(t) {
                        var e = this.val, i = t.val;
                        return e[0] = i[0], e[1] = i[1], e[2] = i[2], e[3] = i[3], e[4] = i[4], e[5] = i[5], e[6] = i[6], e[7] = i[7], e[8] = i[8], this;
                    },
                    fromMat4: function(t) {
                        var e = t.val, i = this.val;
                        return i[0] = e[0], i[1] = e[1], i[2] = e[2], i[3] = e[4], i[4] = e[5], i[5] = e[6], i[6] = e[8], i[7] = e[9], i[8] = e[10], this;
                    },
                    fromArray: function(t) {
                        var e = this.val;
                        return e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], e[4] = t[4], e[5] = t[5], e[6] = t[6], e[7] = t[7], e[8] = t[8], this;
                    },
                    identity: function() {
                        var t = this.val;
                        return t[0] = 1, t[1] = 0, t[2] = 0, t[3] = 0, t[4] = 1, t[5] = 0, t[6] = 0, t[7] = 0, t[8] = 1, this;
                    },
                    transpose: function() {
                        var t = this.val, e = t[1], i = t[2], s = t[5];
                        return t[1] = t[3], t[2] = t[6], t[3] = e, t[5] = t[7], t[6] = i, t[7] = s, this;
                    },
                    invert: function() {
                        var t = this.val, e = t[0], i = t[1], s = t[2], n = t[3], r = t[4], o = t[5], a = t[6], h = t[7], l = t[8], u = l * r - o * h, c = -l * n + o * a, d = h * n - r * a, f = e * u + i * c + s * d;
                        return f ? (f = 1 / f, t[0] = u * f, t[1] = (-l * i + s * h) * f, t[2] = (o * i - s * r) * f, t[3] = c * f, t[4] = (l * e - s * a) * f, t[5] = (-o * e + s * n) * f, t[6] = d * f, t[7] = (-h * e + i * a) * f, t[8] = (r * e - i * n) * f, this) : null;
                    },
                    adjoint: function() {
                        var t = this.val, e = t[0], i = t[1], s = t[2], n = t[3], r = t[4], o = t[5], a = t[6], h = t[7], l = t[8];
                        return t[0] = r * l - o * h, t[1] = s * h - i * l, t[2] = i * o - s * r, t[3] = o * a - n * l, t[4] = e * l - s * a, t[5] = s * n - e * o, t[6] = n * h - r * a, t[7] = i * a - e * h, t[8] = e * r - i * n, this;
                    },
                    determinant: function() {
                        var t = this.val, e = t[0], i = t[1], s = t[2], n = t[3], r = t[4], o = t[5], a = t[6], h = t[7], l = t[8];
                        return e * (l * r - o * h) + i * (-l * n + o * a) + s * (h * n - r * a);
                    },
                    multiply: function(t) {
                        var e = this.val, i = e[0], s = e[1], n = e[2], r = e[3], o = e[4], a = e[5], h = e[6], l = e[7], u = e[8], c = t.val, d = c[0], f = c[1], p = c[2], v = c[3], g = c[4], m = c[5], y = c[6], x = c[7], T = c[8];
                        return e[0] = d * i + f * r + p * h, e[1] = d * s + f * o + p * l, e[2] = d * n + f * a + p * u, e[3] = v * i + g * r + m * h, e[4] = v * s + g * o + m * l, e[5] = v * n + g * a + m * u, e[6] = y * i + x * r + T * h, e[7] = y * s + x * o + T * l, e[8] = y * n + x * a + T * u, this;
                    },
                    translate: function(t) {
                        var e = this.val, i = t.x, s = t.y;
                        return e[6] = i * e[0] + s * e[3] + e[6], e[7] = i * e[1] + s * e[4] + e[7], e[8] = i * e[2] + s * e[5] + e[8], this;
                    },
                    rotate: function(t) {
                        var e = this.val, i = e[0], s = e[1], n = e[2], r = e[3], o = e[4], a = e[5], h = Math.sin(t), l = Math.cos(t);
                        return e[0] = l * i + h * r, e[1] = l * s + h * o, e[2] = l * n + h * a, e[3] = l * r - h * i, e[4] = l * o - h * s, e[5] = l * a - h * n, this;
                    },
                    scale: function(t) {
                        var e = this.val, i = t.x, s = t.y;
                        return e[0] = i * e[0], e[1] = i * e[1], e[2] = i * e[2], e[3] = s * e[3], e[4] = s * e[4], e[5] = s * e[5], this;
                    },
                    fromQuat: function(t) {
                        var e = t.x, i = t.y, s = t.z, n = t.w, r = e + e, o = i + i, a = s + s, h = e * r, l = e * o, u = e * a, c = i * o, d = i * a, f = s * a, p = n * r, v = n * o, g = n * a, m = this.val;
                        return m[0] = 1 - (c + f), m[3] = l + g, m[6] = u - v, m[1] = l - g, m[4] = 1 - (h + f), m[7] = d + p, m[2] = u + v, m[5] = d - p, m[8] = 1 - (h + c), this;
                    },
                    normalFromMat4: function(t) {
                        var e = t.val, i = this.val, s = e[0], n = e[1], r = e[2], o = e[3], a = e[4], h = e[5], l = e[6], u = e[7], c = e[8], d = e[9], f = e[10], p = e[11], v = e[12], g = e[13], m = e[14], y = e[15], x = s * h - n * a, T = s * l - r * a, w = s * u - o * a, b = n * l - r * h, S = n * u - o * h, E = r * u - o * l, A = c * g - d * v, C = c * m - f * v, _ = c * y - p * v, M = d * m - f * g, P = d * y - p * g, R = f * y - p * m, O = x * R - T * P + w * M + b * _ - S * C + E * A;
                        return O ? (O = 1 / O, i[0] = (h * R - l * P + u * M) * O, i[1] = (l * _ - a * R - u * C) * O, i[2] = (a * P - h * _ + u * A) * O, i[3] = (r * P - n * R - o * M) * O, i[4] = (s * R - r * _ + o * C) * O, i[5] = (n * _ - s * P - o * A) * O, i[6] = (g * E - m * S + y * b) * O, i[7] = (m * w - v * E - y * T) * O, i[8] = (v * S - g * w + y * x) * O, this) : null;
                    }
                });
                t.exports = s;
            },
            16650: (t, e, i)=>{
                var s = i(56694), n = i(70015), r = 1e-6, o = new s({
                    initialize: function(t) {
                        this.val = new Float32Array(16), t ? this.copy(t) : this.identity();
                    },
                    clone: function() {
                        return new o(this);
                    },
                    set: function(t) {
                        return this.copy(t);
                    },
                    setValues: function(t, e, i, s, n, r, o, a, h, l, u, c, d, f, p, v) {
                        var g = this.val;
                        return g[0] = t, g[1] = e, g[2] = i, g[3] = s, g[4] = n, g[5] = r, g[6] = o, g[7] = a, g[8] = h, g[9] = l, g[10] = u, g[11] = c, g[12] = d, g[13] = f, g[14] = p, g[15] = v, this;
                    },
                    copy: function(t) {
                        var e = t.val;
                        return this.setValues(e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8], e[9], e[10], e[11], e[12], e[13], e[14], e[15]);
                    },
                    fromArray: function(t) {
                        return this.setValues(t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15]);
                    },
                    zero: function() {
                        return this.setValues(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
                    },
                    transform: function(t, e, i) {
                        var s = a.fromQuat(i).val, n = e.x, r = e.y, o = e.z;
                        return this.setValues(s[0] * n, s[1] * n, s[2] * n, 0, s[4] * r, s[5] * r, s[6] * r, 0, s[8] * o, s[9] * o, s[10] * o, 0, t.x, t.y, t.z, 1);
                    },
                    xyz: function(t, e, i) {
                        this.identity();
                        var s = this.val;
                        return s[12] = t, s[13] = e, s[14] = i, this;
                    },
                    scaling: function(t, e, i) {
                        this.zero();
                        var s = this.val;
                        return s[0] = t, s[5] = e, s[10] = i, s[15] = 1, this;
                    },
                    identity: function() {
                        return this.setValues(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
                    },
                    transpose: function() {
                        var t = this.val, e = t[1], i = t[2], s = t[3], n = t[6], r = t[7], o = t[11];
                        return t[1] = t[4], t[2] = t[8], t[3] = t[12], t[4] = e, t[6] = t[9], t[7] = t[13], t[8] = i, t[9] = n, t[11] = t[14], t[12] = s, t[13] = r, t[14] = o, this;
                    },
                    getInverse: function(t) {
                        return this.copy(t), this.invert();
                    },
                    invert: function() {
                        var t = this.val, e = t[0], i = t[1], s = t[2], n = t[3], r = t[4], o = t[5], a = t[6], h = t[7], l = t[8], u = t[9], c = t[10], d = t[11], f = t[12], p = t[13], v = t[14], g = t[15], m = e * o - i * r, y = e * a - s * r, x = e * h - n * r, T = i * a - s * o, w = i * h - n * o, b = s * h - n * a, S = l * p - u * f, E = l * v - c * f, A = l * g - d * f, C = u * v - c * p, _ = u * g - d * p, M = c * g - d * v, P = m * M - y * _ + x * C + T * A - w * E + b * S;
                        return P ? (P = 1 / P, this.setValues((o * M - a * _ + h * C) * P, (s * _ - i * M - n * C) * P, (p * b - v * w + g * T) * P, (c * w - u * b - d * T) * P, (a * A - r * M - h * E) * P, (e * M - s * A + n * E) * P, (v * x - f * b - g * y) * P, (l * b - c * x + d * y) * P, (r * _ - o * A + h * S) * P, (i * A - e * _ - n * S) * P, (f * w - p * x + g * m) * P, (u * x - l * w - d * m) * P, (o * E - r * C - a * S) * P, (e * C - i * E + s * S) * P, (p * y - f * T - v * m) * P, (l * T - u * y + c * m) * P)) : this;
                    },
                    adjoint: function() {
                        var t = this.val, e = t[0], i = t[1], s = t[2], n = t[3], r = t[4], o = t[5], a = t[6], h = t[7], l = t[8], u = t[9], c = t[10], d = t[11], f = t[12], p = t[13], v = t[14], g = t[15];
                        return this.setValues(o * (c * g - d * v) - u * (a * g - h * v) + p * (a * d - h * c), -(i * (c * g - d * v) - u * (s * g - n * v) + p * (s * d - n * c)), i * (a * g - h * v) - o * (s * g - n * v) + p * (s * h - n * a), -(i * (a * d - h * c) - o * (s * d - n * c) + u * (s * h - n * a)), -(r * (c * g - d * v) - l * (a * g - h * v) + f * (a * d - h * c)), e * (c * g - d * v) - l * (s * g - n * v) + f * (s * d - n * c), -(e * (a * g - h * v) - r * (s * g - n * v) + f * (s * h - n * a)), e * (a * d - h * c) - r * (s * d - n * c) + l * (s * h - n * a), r * (u * g - d * p) - l * (o * g - h * p) + f * (o * d - h * u), -(e * (u * g - d * p) - l * (i * g - n * p) + f * (i * d - n * u)), e * (o * g - h * p) - r * (i * g - n * p) + f * (i * h - n * o), -(e * (o * d - h * u) - r * (i * d - n * u) + l * (i * h - n * o)), -(r * (u * v - c * p) - l * (o * v - a * p) + f * (o * c - a * u)), e * (u * v - c * p) - l * (i * v - s * p) + f * (i * c - s * u), -(e * (o * v - a * p) - r * (i * v - s * p) + f * (i * a - s * o)), e * (o * c - a * u) - r * (i * c - s * u) + l * (i * a - s * o));
                    },
                    determinant: function() {
                        var t = this.val, e = t[0], i = t[1], s = t[2], n = t[3], r = t[4], o = t[5], a = t[6], h = t[7], l = t[8], u = t[9], c = t[10], d = t[11], f = t[12], p = t[13], v = t[14], g = t[15];
                        return (e * o - i * r) * (c * g - d * v) - (e * a - s * r) * (u * g - d * p) + (e * h - n * r) * (u * v - c * p) + (i * a - s * o) * (l * g - d * f) - (i * h - n * o) * (l * v - c * f) + (s * h - n * a) * (l * p - u * f);
                    },
                    multiply: function(t) {
                        var e = this.val, i = e[0], s = e[1], n = e[2], r = e[3], o = e[4], a = e[5], h = e[6], l = e[7], u = e[8], c = e[9], d = e[10], f = e[11], p = e[12], v = e[13], g = e[14], m = e[15], y = t.val, x = y[0], T = y[1], w = y[2], b = y[3];
                        return e[0] = x * i + T * o + w * u + b * p, e[1] = x * s + T * a + w * c + b * v, e[2] = x * n + T * h + w * d + b * g, e[3] = x * r + T * l + w * f + b * m, x = y[4], T = y[5], w = y[6], b = y[7], e[4] = x * i + T * o + w * u + b * p, e[5] = x * s + T * a + w * c + b * v, e[6] = x * n + T * h + w * d + b * g, e[7] = x * r + T * l + w * f + b * m, x = y[8], T = y[9], w = y[10], b = y[11], e[8] = x * i + T * o + w * u + b * p, e[9] = x * s + T * a + w * c + b * v, e[10] = x * n + T * h + w * d + b * g, e[11] = x * r + T * l + w * f + b * m, x = y[12], T = y[13], w = y[14], b = y[15], e[12] = x * i + T * o + w * u + b * p, e[13] = x * s + T * a + w * c + b * v, e[14] = x * n + T * h + w * d + b * g, e[15] = x * r + T * l + w * f + b * m, this;
                    },
                    multiplyLocal: function(t) {
                        var e = this.val, i = t.val;
                        return this.setValues(e[0] * i[0] + e[1] * i[4] + e[2] * i[8] + e[3] * i[12], e[0] * i[1] + e[1] * i[5] + e[2] * i[9] + e[3] * i[13], e[0] * i[2] + e[1] * i[6] + e[2] * i[10] + e[3] * i[14], e[0] * i[3] + e[1] * i[7] + e[2] * i[11] + e[3] * i[15], e[4] * i[0] + e[5] * i[4] + e[6] * i[8] + e[7] * i[12], e[4] * i[1] + e[5] * i[5] + e[6] * i[9] + e[7] * i[13], e[4] * i[2] + e[5] * i[6] + e[6] * i[10] + e[7] * i[14], e[4] * i[3] + e[5] * i[7] + e[6] * i[11] + e[7] * i[15], e[8] * i[0] + e[9] * i[4] + e[10] * i[8] + e[11] * i[12], e[8] * i[1] + e[9] * i[5] + e[10] * i[9] + e[11] * i[13], e[8] * i[2] + e[9] * i[6] + e[10] * i[10] + e[11] * i[14], e[8] * i[3] + e[9] * i[7] + e[10] * i[11] + e[11] * i[15], e[12] * i[0] + e[13] * i[4] + e[14] * i[8] + e[15] * i[12], e[12] * i[1] + e[13] * i[5] + e[14] * i[9] + e[15] * i[13], e[12] * i[2] + e[13] * i[6] + e[14] * i[10] + e[15] * i[14], e[12] * i[3] + e[13] * i[7] + e[14] * i[11] + e[15] * i[15]);
                    },
                    premultiply: function(t) {
                        return this.multiplyMatrices(t, this);
                    },
                    multiplyMatrices: function(t, e) {
                        var i = t.val, s = e.val, n = i[0], r = i[4], o = i[8], a = i[12], h = i[1], l = i[5], u = i[9], c = i[13], d = i[2], f = i[6], p = i[10], v = i[14], g = i[3], m = i[7], y = i[11], x = i[15], T = s[0], w = s[4], b = s[8], S = s[12], E = s[1], A = s[5], C = s[9], _ = s[13], M = s[2], P = s[6], R = s[10], O = s[14], L = s[3], F = s[7], D = s[11], I = s[15];
                        return this.setValues(n * T + r * E + o * M + a * L, h * T + l * E + u * M + c * L, d * T + f * E + p * M + v * L, g * T + m * E + y * M + x * L, n * w + r * A + o * P + a * F, h * w + l * A + u * P + c * F, d * w + f * A + p * P + v * F, g * w + m * A + y * P + x * F, n * b + r * C + o * R + a * D, h * b + l * C + u * R + c * D, d * b + f * C + p * R + v * D, g * b + m * C + y * R + x * D, n * S + r * _ + o * O + a * I, h * S + l * _ + u * O + c * I, d * S + f * _ + p * O + v * I, g * S + m * _ + y * O + x * I);
                    },
                    translate: function(t) {
                        return this.translateXYZ(t.x, t.y, t.z);
                    },
                    translateXYZ: function(t, e, i) {
                        var s = this.val;
                        return s[12] = s[0] * t + s[4] * e + s[8] * i + s[12], s[13] = s[1] * t + s[5] * e + s[9] * i + s[13], s[14] = s[2] * t + s[6] * e + s[10] * i + s[14], s[15] = s[3] * t + s[7] * e + s[11] * i + s[15], this;
                    },
                    scale: function(t) {
                        return this.scaleXYZ(t.x, t.y, t.z);
                    },
                    scaleXYZ: function(t, e, i) {
                        var s = this.val;
                        return s[0] = s[0] * t, s[1] = s[1] * t, s[2] = s[2] * t, s[3] = s[3] * t, s[4] = s[4] * e, s[5] = s[5] * e, s[6] = s[6] * e, s[7] = s[7] * e, s[8] = s[8] * i, s[9] = s[9] * i, s[10] = s[10] * i, s[11] = s[11] * i, this;
                    },
                    makeRotationAxis: function(t, e) {
                        var i = Math.cos(e), s = Math.sin(e), n = 1 - i, r = t.x, o = t.y, a = t.z, h = n * r, l = n * o;
                        return this.setValues(h * r + i, h * o - s * a, h * a + s * o, 0, h * o + s * a, l * o + i, l * a - s * r, 0, h * a - s * o, l * a + s * r, n * a * a + i, 0, 0, 0, 0, 1);
                    },
                    rotate: function(t, e) {
                        var i = this.val, s = e.x, n = e.y, o = e.z, a = Math.sqrt(s * s + n * n + o * o);
                        if (Math.abs(a) < r) return this;
                        s *= a = 1 / a, n *= a, o *= a;
                        var h = Math.sin(t), l = Math.cos(t), u = 1 - l, c = i[0], d = i[1], f = i[2], p = i[3], v = i[4], g = i[5], m = i[6], y = i[7], x = i[8], T = i[9], w = i[10], b = i[11], S = i[12], E = i[13], A = i[14], C = i[15], _ = s * s * u + l, M = n * s * u + o * h, P = o * s * u - n * h, R = s * n * u - o * h, O = n * n * u + l, L = o * n * u + s * h, F = s * o * u + n * h, D = n * o * u - s * h, I = o * o * u + l;
                        return this.setValues(c * _ + v * M + x * P, d * _ + g * M + T * P, f * _ + m * M + w * P, p * _ + y * M + b * P, c * R + v * O + x * L, d * R + g * O + T * L, f * R + m * O + w * L, p * R + y * O + b * L, c * F + v * D + x * I, d * F + g * D + T * I, f * F + m * D + w * I, p * F + y * D + b * I, S, E, A, C);
                    },
                    rotateX: function(t) {
                        var e = this.val, i = Math.sin(t), s = Math.cos(t), n = e[4], r = e[5], o = e[6], a = e[7], h = e[8], l = e[9], u = e[10], c = e[11];
                        return e[4] = n * s + h * i, e[5] = r * s + l * i, e[6] = o * s + u * i, e[7] = a * s + c * i, e[8] = h * s - n * i, e[9] = l * s - r * i, e[10] = u * s - o * i, e[11] = c * s - a * i, this;
                    },
                    rotateY: function(t) {
                        var e = this.val, i = Math.sin(t), s = Math.cos(t), n = e[0], r = e[1], o = e[2], a = e[3], h = e[8], l = e[9], u = e[10], c = e[11];
                        return e[0] = n * s - h * i, e[1] = r * s - l * i, e[2] = o * s - u * i, e[3] = a * s - c * i, e[8] = n * i + h * s, e[9] = r * i + l * s, e[10] = o * i + u * s, e[11] = a * i + c * s, this;
                    },
                    rotateZ: function(t) {
                        var e = this.val, i = Math.sin(t), s = Math.cos(t), n = e[0], r = e[1], o = e[2], a = e[3], h = e[4], l = e[5], u = e[6], c = e[7];
                        return e[0] = n * s + h * i, e[1] = r * s + l * i, e[2] = o * s + u * i, e[3] = a * s + c * i, e[4] = h * s - n * i, e[5] = l * s - r * i, e[6] = u * s - o * i, e[7] = c * s - a * i, this;
                    },
                    fromRotationTranslation: function(t, e) {
                        var i = t.x, s = t.y, n = t.z, r = t.w, o = i + i, a = s + s, h = n + n, l = i * o, u = i * a, c = i * h, d = s * a, f = s * h, p = n * h, v = r * o, g = r * a, m = r * h;
                        return this.setValues(1 - (d + p), u + m, c - g, 0, u - m, 1 - (l + p), f + v, 0, c + g, f - v, 1 - (l + d), 0, e.x, e.y, e.z, 1);
                    },
                    fromQuat: function(t) {
                        var e = t.x, i = t.y, s = t.z, n = t.w, r = e + e, o = i + i, a = s + s, h = e * r, l = e * o, u = e * a, c = i * o, d = i * a, f = s * a, p = n * r, v = n * o, g = n * a;
                        return this.setValues(1 - (c + f), l + g, u - v, 0, l - g, 1 - (h + f), d + p, 0, u + v, d - p, 1 - (h + c), 0, 0, 0, 0, 1);
                    },
                    frustum: function(t, e, i, s, n, r) {
                        var o = 1 / (e - t), a = 1 / (s - i), h = 1 / (n - r);
                        return this.setValues(2 * n * o, 0, 0, 0, 0, 2 * n * a, 0, 0, (e + t) * o, (s + i) * a, (r + n) * h, -1, 0, 0, r * n * 2 * h, 0);
                    },
                    perspective: function(t, e, i, s) {
                        var n = 1 / Math.tan(t / 2), r = 1 / (i - s);
                        return this.setValues(n / e, 0, 0, 0, 0, n, 0, 0, 0, 0, (s + i) * r, -1, 0, 0, 2 * s * i * r, 0);
                    },
                    perspectiveLH: function(t, e, i, s) {
                        return this.setValues(2 * i / t, 0, 0, 0, 0, 2 * i / e, 0, 0, 0, 0, -s / (i - s), 1, 0, 0, i * s / (i - s), 0);
                    },
                    ortho: function(t, e, i, s, n, r) {
                        var o = t - e, a = i - s, h = n - r;
                        return o = 0 === o ? o : 1 / o, a = 0 === a ? a : 1 / a, h = 0 === h ? h : 1 / h, this.setValues(-2 * o, 0, 0, 0, 0, -2 * a, 0, 0, 0, 0, 2 * h, 0, (t + e) * o, (s + i) * a, (r + n) * h, 1);
                    },
                    lookAtRH: function(t, e, i) {
                        var s = this.val;
                        return c.subVectors(t, e), 0 === c.getLengthSquared() && (c.z = 1), c.normalize(), l.crossVectors(i, c), 0 === l.getLengthSquared() && (1 === Math.abs(i.z) ? c.x += 1e-4 : c.z += 1e-4, c.normalize(), l.crossVectors(i, c)), l.normalize(), u.crossVectors(c, l), s[0] = l.x, s[1] = l.y, s[2] = l.z, s[4] = u.x, s[5] = u.y, s[6] = u.z, s[8] = c.x, s[9] = c.y, s[10] = c.z, this;
                    },
                    lookAt: function(t, e, i) {
                        var s = t.x, n = t.y, o = t.z, a = i.x, h = i.y, l = i.z, u = e.x, c = e.y, d = e.z;
                        if (Math.abs(s - u) < r && Math.abs(n - c) < r && Math.abs(o - d) < r) return this.identity();
                        var f = s - u, p = n - c, v = o - d, g = 1 / Math.sqrt(f * f + p * p + v * v), m = h * (v *= g) - l * (p *= g), y = l * (f *= g) - a * v, x = a * p - h * f;
                        (g = Math.sqrt(m * m + y * y + x * x)) ? (m *= g = 1 / g, y *= g, x *= g) : (m = 0, y = 0, x = 0);
                        var T = p * x - v * y, w = v * m - f * x, b = f * y - p * m;
                        return (g = Math.sqrt(T * T + w * w + b * b)) ? (T *= g = 1 / g, w *= g, b *= g) : (T = 0, w = 0, b = 0), this.setValues(m, T, f, 0, y, w, p, 0, x, b, v, 0, -(m * s + y * n + x * o), -(T * s + w * n + b * o), -(f * s + p * n + v * o), 1);
                    },
                    yawPitchRoll: function(t, e, i) {
                        this.zero(), a.zero(), h.zero();
                        var s = this.val, n = a.val, r = h.val, o = Math.sin(i), l = Math.cos(i);
                        return s[10] = 1, s[15] = 1, s[0] = l, s[1] = o, s[4] = -o, s[5] = l, o = Math.sin(e), l = Math.cos(e), n[0] = 1, n[15] = 1, n[5] = l, n[10] = l, n[9] = -o, n[6] = o, o = Math.sin(t), l = Math.cos(t), r[5] = 1, r[15] = 1, r[0] = l, r[2] = -o, r[8] = o, r[10] = l, this.multiplyLocal(a), this.multiplyLocal(h), this;
                    },
                    setWorldMatrix: function(t, e, i, s, n) {
                        return this.yawPitchRoll(t.y, t.x, t.z), a.scaling(i.x, i.y, i.z), h.xyz(e.x, e.y, e.z), this.multiplyLocal(a), this.multiplyLocal(h), s && this.multiplyLocal(s), n && this.multiplyLocal(n), this;
                    },
                    multiplyToMat4: function(t, e) {
                        var i = this.val, s = t.val, n = i[0], r = i[1], o = i[2], a = i[3], h = i[4], l = i[5], u = i[6], c = i[7], d = i[8], f = i[9], p = i[10], v = i[11], g = i[12], m = i[13], y = i[14], x = i[15], T = s[0], w = s[1], b = s[2], S = s[3], E = s[4], A = s[5], C = s[6], _ = s[7], M = s[8], P = s[9], R = s[10], O = s[11], L = s[12], F = s[13], D = s[14], I = s[15];
                        return e.setValues(T * n + w * h + b * d + S * g, w * r + w * l + b * f + S * m, b * o + w * u + b * p + S * y, S * a + w * c + b * v + S * x, E * n + A * h + C * d + _ * g, E * r + A * l + C * f + _ * m, E * o + A * u + C * p + _ * y, E * a + A * c + C * v + _ * x, M * n + P * h + R * d + O * g, M * r + P * l + R * f + O * m, M * o + P * u + R * p + O * y, M * a + P * c + R * v + O * x, L * n + F * h + D * d + I * g, L * r + F * l + D * f + I * m, L * o + F * u + D * p + I * y, L * a + F * c + D * v + I * x);
                    },
                    fromRotationXYTranslation: function(t, e, i) {
                        var s = e.x, n = e.y, r = e.z, o = Math.sin(t.x), a = Math.cos(t.x), h = Math.sin(t.y), l = Math.cos(t.y), u = s, c = n, d = r, f = -o, p = 0 - f * h, v = 0 - a * h, g = f * l, m = a * l;
                        return i || (u = l * s + h * r, c = p * s + a * n + g * r, d = v * s + o * n + m * r), this.setValues(l, p, v, 0, 0, a, o, 0, h, g, m, 0, u, c, d, 1);
                    },
                    getMaxScaleOnAxis: function() {
                        var t = this.val, e = t[0] * t[0] + t[1] * t[1] + t[2] * t[2], i = t[4] * t[4] + t[5] * t[5] + t[6] * t[6], s = t[8] * t[8] + t[9] * t[9] + t[10] * t[10];
                        return Math.sqrt(Math.max(e, i, s));
                    }
                }), a = new o, h = new o, l = new n, u = new n, c = new n;
                t.exports = o;
            },
            69635: (t)=>{
                t.exports = function(t, e, i) {
                    return Math.min(t + e, i);
                };
            },
            37394: (t)=>{
                t.exports = function(t) {
                    var e = t.length;
                    if (0 === e) return 0;
                    t.sort(function(t, e) {
                        return t - e;
                    });
                    var i = Math.floor(e / 2);
                    return e % 2 == 0 ? (t[i] + t[i - 1]) / 2 : t[i];
                };
            },
            17259: (t)=>{
                t.exports = function(t, e, i) {
                    return Math.max(t - e, i);
                };
            },
            61820: (t)=>{
                t.exports = function(t, e, i, s) {
                    void 0 === i && (i = e + 1);
                    var n = (t - e) / (i - e);
                    return n > 1 ? void 0 !== s ? (n = (s - t) / (s - i)) < 0 && (n = 0) : n = 1 : n < 0 && (n = 0), n;
                };
            },
            75003: (t, e, i)=>{
                var s = i(56694), n = i(5341), r = i(72283), o = i(70015), a = 1e-6, h = new Int8Array([
                    1,
                    2,
                    0
                ]), l = new Float32Array([
                    0,
                    0,
                    0
                ]), u = new o(1, 0, 0), c = new o(0, 1, 0), d = new o, f = new n, p = new s({
                    initialize: function(t, e, i, s) {
                        this.onChangeCallback = r, this.set(t, e, i, s);
                    },
                    x: {
                        get: function() {
                            return this._x;
                        },
                        set: function(t) {
                            this._x = t, this.onChangeCallback(this);
                        }
                    },
                    y: {
                        get: function() {
                            return this._y;
                        },
                        set: function(t) {
                            this._y = t, this.onChangeCallback(this);
                        }
                    },
                    z: {
                        get: function() {
                            return this._z;
                        },
                        set: function(t) {
                            this._z = t, this.onChangeCallback(this);
                        }
                    },
                    w: {
                        get: function() {
                            return this._w;
                        },
                        set: function(t) {
                            this._w = t, this.onChangeCallback(this);
                        }
                    },
                    copy: function(t) {
                        return this.set(t);
                    },
                    set: function(t, e, i, s, n) {
                        return void 0 === n && (n = !0), "object" == typeof t ? (this._x = t.x || 0, this._y = t.y || 0, this._z = t.z || 0, this._w = t.w || 0) : (this._x = t || 0, this._y = e || 0, this._z = i || 0, this._w = s || 0), n && this.onChangeCallback(this), this;
                    },
                    add: function(t) {
                        return this._x += t.x, this._y += t.y, this._z += t.z, this._w += t.w, this.onChangeCallback(this), this;
                    },
                    subtract: function(t) {
                        return this._x -= t.x, this._y -= t.y, this._z -= t.z, this._w -= t.w, this.onChangeCallback(this), this;
                    },
                    scale: function(t) {
                        return this._x *= t, this._y *= t, this._z *= t, this._w *= t, this.onChangeCallback(this), this;
                    },
                    length: function() {
                        var t = this.x, e = this.y, i = this.z, s = this.w;
                        return Math.sqrt(t * t + e * e + i * i + s * s);
                    },
                    lengthSq: function() {
                        var t = this.x, e = this.y, i = this.z, s = this.w;
                        return t * t + e * e + i * i + s * s;
                    },
                    normalize: function() {
                        var t = this.x, e = this.y, i = this.z, s = this.w, n = t * t + e * e + i * i + s * s;
                        return n > 0 && (n = 1 / Math.sqrt(n), this._x = t * n, this._y = e * n, this._z = i * n, this._w = s * n), this.onChangeCallback(this), this;
                    },
                    dot: function(t) {
                        return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w;
                    },
                    lerp: function(t, e) {
                        void 0 === e && (e = 0);
                        var i = this.x, s = this.y, n = this.z, r = this.w;
                        return this.set(i + e * (t.x - i), s + e * (t.y - s), n + e * (t.z - n), r + e * (t.w - r));
                    },
                    rotationTo: function(t, e) {
                        var i = t.x * e.x + t.y * e.y + t.z * e.z;
                        return i < -0.999999 ? (d.copy(u).cross(t).length() < a && d.copy(c).cross(t), d.normalize(), this.setAxisAngle(d, Math.PI)) : i > .999999 ? this.set(0, 0, 0, 1) : (d.copy(t).cross(e), this._x = d.x, this._y = d.y, this._z = d.z, this._w = 1 + i, this.normalize());
                    },
                    setAxes: function(t, e, i) {
                        var s = f.val;
                        return s[0] = e.x, s[3] = e.y, s[6] = e.z, s[1] = i.x, s[4] = i.y, s[7] = i.z, s[2] = -t.x, s[5] = -t.y, s[8] = -t.z, this.fromMat3(f).normalize();
                    },
                    identity: function() {
                        return this.set(0, 0, 0, 1);
                    },
                    setAxisAngle: function(t, e) {
                        e *= .5;
                        var i = Math.sin(e);
                        return this.set(i * t.x, i * t.y, i * t.z, Math.cos(e));
                    },
                    multiply: function(t) {
                        var e = this.x, i = this.y, s = this.z, n = this.w, r = t.x, o = t.y, a = t.z, h = t.w;
                        return this.set(e * h + n * r + i * a - s * o, i * h + n * o + s * r - e * a, s * h + n * a + e * o - i * r, n * h - e * r - i * o - s * a);
                    },
                    slerp: function(t, e) {
                        var i = this.x, s = this.y, n = this.z, r = this.w, o = t.x, h = t.y, l = t.z, u = t.w, c = i * o + s * h + n * l + r * u;
                        c < 0 && (c = -c, o = -o, h = -h, l = -l, u = -u);
                        var d = 1 - e, f = e;
                        if (1 - c > a) {
                            var p = Math.acos(c), v = Math.sin(p);
                            d = Math.sin((1 - e) * p) / v, f = Math.sin(e * p) / v;
                        }
                        return this.set(d * i + f * o, d * s + f * h, d * n + f * l, d * r + f * u);
                    },
                    invert: function() {
                        var t = this.x, e = this.y, i = this.z, s = this.w, n = t * t + e * e + i * i + s * s, r = n ? 1 / n : 0;
                        return this.set(-t * r, -e * r, -i * r, s * r);
                    },
                    conjugate: function() {
                        return this._x = -this.x, this._y = -this.y, this._z = -this.z, this.onChangeCallback(this), this;
                    },
                    rotateX: function(t) {
                        t *= .5;
                        var e = this.x, i = this.y, s = this.z, n = this.w, r = Math.sin(t), o = Math.cos(t);
                        return this.set(e * o + n * r, i * o + s * r, s * o - i * r, n * o - e * r);
                    },
                    rotateY: function(t) {
                        t *= .5;
                        var e = this.x, i = this.y, s = this.z, n = this.w, r = Math.sin(t), o = Math.cos(t);
                        return this.set(e * o - s * r, i * o + n * r, s * o + e * r, n * o - i * r);
                    },
                    rotateZ: function(t) {
                        t *= .5;
                        var e = this.x, i = this.y, s = this.z, n = this.w, r = Math.sin(t), o = Math.cos(t);
                        return this.set(e * o + i * r, i * o - e * r, s * o + n * r, n * o - s * r);
                    },
                    calculateW: function() {
                        var t = this.x, e = this.y, i = this.z;
                        return this.w = -Math.sqrt(1 - t * t - e * e - i * i), this;
                    },
                    setFromEuler: function(t, e) {
                        var i = t.x / 2, s = t.y / 2, n = t.z / 2, r = Math.cos(i), o = Math.cos(s), a = Math.cos(n), h = Math.sin(i), l = Math.sin(s), u = Math.sin(n);
                        switch(t.order){
                            case "XYZ":
                                this.set(h * o * a + r * l * u, r * l * a - h * o * u, r * o * u + h * l * a, r * o * a - h * l * u, e);
                                break;
                            case "YXZ":
                                this.set(h * o * a + r * l * u, r * l * a - h * o * u, r * o * u - h * l * a, r * o * a + h * l * u, e);
                                break;
                            case "ZXY":
                                this.set(h * o * a - r * l * u, r * l * a + h * o * u, r * o * u + h * l * a, r * o * a - h * l * u, e);
                                break;
                            case "ZYX":
                                this.set(h * o * a - r * l * u, r * l * a + h * o * u, r * o * u - h * l * a, r * o * a + h * l * u, e);
                                break;
                            case "YZX":
                                this.set(h * o * a + r * l * u, r * l * a + h * o * u, r * o * u - h * l * a, r * o * a - h * l * u, e);
                                break;
                            case "XZY":
                                this.set(h * o * a - r * l * u, r * l * a - h * o * u, r * o * u + h * l * a, r * o * a + h * l * u, e);
                        }
                        return this;
                    },
                    setFromRotationMatrix: function(t) {
                        var e, i = t.val, s = i[0], n = i[4], r = i[8], o = i[1], a = i[5], h = i[9], l = i[2], u = i[6], c = i[10], d = s + a + c;
                        return d > 0 ? (e = .5 / Math.sqrt(d + 1), this.set((u - h) * e, (r - l) * e, (o - n) * e, .25 / e)) : s > a && s > c ? (e = 2 * Math.sqrt(1 + s - a - c), this.set(.25 * e, (n + o) / e, (r + l) / e, (u - h) / e)) : a > c ? (e = 2 * Math.sqrt(1 + a - s - c), this.set((n + o) / e, .25 * e, (h + u) / e, (r - l) / e)) : (e = 2 * Math.sqrt(1 + c - s - a), this.set((r + l) / e, (h + u) / e, .25 * e, (o - n) / e)), this;
                    },
                    fromMat3: function(t) {
                        var e, i = t.val, s = i[0] + i[4] + i[8];
                        if (s > 0) e = Math.sqrt(s + 1), this.w = .5 * e, e = .5 / e, this._x = (i[7] - i[5]) * e, this._y = (i[2] - i[6]) * e, this._z = (i[3] - i[1]) * e;
                        else {
                            var n = 0;
                            i[4] > i[0] && (n = 1), i[8] > i[3 * n + n] && (n = 2);
                            var r = h[n], o = h[r];
                            e = Math.sqrt(i[3 * n + n] - i[3 * r + r] - i[3 * o + o] + 1), l[n] = .5 * e, e = .5 / e, l[r] = (i[3 * r + n] + i[3 * n + r]) * e, l[o] = (i[3 * o + n] + i[3 * n + o]) * e, this._x = l[0], this._y = l[1], this._z = l[2], this._w = (i[3 * o + r] - i[3 * r + o]) * e;
                        }
                        return this.onChangeCallback(this), this;
                    }
                });
                t.exports = p;
            },
            23701: (t, e, i)=>{
                var s = i(83392);
                t.exports = function(t) {
                    return t * s.RAD_TO_DEG;
                };
            },
            16906: (t)=>{
                t.exports = function(t, e) {
                    void 0 === e && (e = 1);
                    var i = 2 * Math.random() * Math.PI;
                    return t.x = Math.cos(i) * e, t.y = Math.sin(i) * e, t;
                };
            },
            52417: (t)=>{
                t.exports = function(t, e) {
                    void 0 === e && (e = 1);
                    var i = 2 * Math.random() * Math.PI, s = 2 * Math.random() - 1, n = Math.sqrt(1 - s * s) * e;
                    return t.x = Math.cos(i) * n, t.y = Math.sin(i) * n, t.z = s * e, t;
                };
            },
            17915: (t)=>{
                t.exports = function(t, e) {
                    return void 0 === e && (e = 1), t.x = (2 * Math.random() - 1) * e, t.y = (2 * Math.random() - 1) * e, t.z = (2 * Math.random() - 1) * e, t.w = (2 * Math.random() - 1) * e, t;
                };
            },
            52257: (t)=>{
                t.exports = function(t, e) {
                    var i = t.x, s = t.y;
                    return t.x = i * Math.cos(e) - s * Math.sin(e), t.y = i * Math.sin(e) + s * Math.cos(e), t;
                };
            },
            2386: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n = Math.cos(s), r = Math.sin(s), o = t.x - e, a = t.y - i;
                    return t.x = o * n - a * r + e, t.y = o * r + a * n + i, t;
                };
            },
            72395: (t)=>{
                t.exports = function(t, e, i, s, n) {
                    var r = s + Math.atan2(t.y - i, t.x - e);
                    return t.x = e + n * Math.cos(r), t.y = i + n * Math.sin(r), t;
                };
            },
            41061: (t)=>{
                t.exports = function(t, e, i, s, n) {
                    return t.x = e + n * Math.cos(s), t.y = i + n * Math.sin(s), t;
                };
            },
            93709: (t, e, i)=>{
                var s = i(70015), n = i(16650), r = i(75003), o = new n, a = new r, h = new s;
                t.exports = function(t, e, i) {
                    return a.setAxisAngle(e, i), o.fromRotationTranslation(a, h.set(0, 0, 0)), t.transformMat4(o);
                };
            },
            67233: (t)=>{
                t.exports = function(t) {
                    return t > 0 ? Math.ceil(t) : Math.floor(t);
                };
            },
            64333: (t)=>{
                t.exports = function(t, e, i) {
                    void 0 === e && (e = 0), void 0 === i && (i = 10);
                    var s = Math.pow(i, -e);
                    return Math.round(t * s) / s;
                };
            },
            59533: (t)=>{
                t.exports = function(t, e, i, s) {
                    void 0 === e && (e = 1), void 0 === i && (i = 1), void 0 === s && (s = 1), s *= Math.PI / t;
                    for(var n = [], r = [], o = 0; o < t; o++)e += (i -= e * s) * s, n[o] = i, r[o] = e;
                    return {
                        sin: r,
                        cos: n,
                        length: t
                    };
                };
            },
            5514: (t)=>{
                t.exports = function(t, e, i) {
                    return t <= e ? 0 : t >= i ? 1 : (t = (t - e) / (i - e)) * t * (3 - 2 * t);
                };
            },
            87736: (t)=>{
                t.exports = function(t, e, i) {
                    return (t = Math.max(0, Math.min(1, (t - e) / (i - e)))) * t * t * (t * (6 * t - 15) + 10);
                };
            },
            55805: (t, e, i)=>{
                var s = i(93736);
                t.exports = function(t, e, i, n) {
                    void 0 === n && (n = new s);
                    var r = 0, o = 0;
                    return t > 0 && t <= e * i && (r = t > e - 1 ? t - (o = Math.floor(t / e)) * e : t), n.set(r, o);
                };
            },
            64462: (t, e, i)=>{
                var s = i(93736);
                t.exports = function(t, e, i, n, r, o, a, h) {
                    void 0 === h && (h = new s);
                    var l = Math.sin(r), u = Math.cos(r), c = u * o, d = l * o, f = -l * a, p = u * a, v = 1 / (c * p + f * -d);
                    return h.x = p * v * t + -f * v * e + (n * f - i * p) * v, h.y = c * v * e + -d * v * t + (-n * c + i * d) * v, h;
                };
            },
            93736: (t, e, i)=>{
                var s = i(56694), n = i(88456), r = new s({
                    initialize: function(t, e) {
                        this.x = 0, this.y = 0, "object" == typeof t ? (this.x = t.x || 0, this.y = t.y || 0) : (void 0 === e && (e = t), this.x = t || 0, this.y = e || 0);
                    },
                    clone: function() {
                        return new r(this.x, this.y);
                    },
                    copy: function(t) {
                        return this.x = t.x || 0, this.y = t.y || 0, this;
                    },
                    setFromObject: function(t) {
                        return this.x = t.x || 0, this.y = t.y || 0, this;
                    },
                    set: function(t, e) {
                        return void 0 === e && (e = t), this.x = t, this.y = e, this;
                    },
                    setTo: function(t, e) {
                        return this.set(t, e);
                    },
                    setToPolar: function(t, e) {
                        return null == e && (e = 1), this.x = Math.cos(t) * e, this.y = Math.sin(t) * e, this;
                    },
                    equals: function(t) {
                        return this.x === t.x && this.y === t.y;
                    },
                    fuzzyEquals: function(t, e) {
                        return n(this.x, t.x, e) && n(this.y, t.y, e);
                    },
                    angle: function() {
                        var t = Math.atan2(this.y, this.x);
                        return t < 0 && (t += 2 * Math.PI), t;
                    },
                    setAngle: function(t) {
                        return this.setToPolar(t, this.length());
                    },
                    add: function(t) {
                        return this.x += t.x, this.y += t.y, this;
                    },
                    subtract: function(t) {
                        return this.x -= t.x, this.y -= t.y, this;
                    },
                    multiply: function(t) {
                        return this.x *= t.x, this.y *= t.y, this;
                    },
                    scale: function(t) {
                        return isFinite(t) ? (this.x *= t, this.y *= t) : (this.x = 0, this.y = 0), this;
                    },
                    divide: function(t) {
                        return this.x /= t.x, this.y /= t.y, this;
                    },
                    negate: function() {
                        return this.x = -this.x, this.y = -this.y, this;
                    },
                    distance: function(t) {
                        var e = t.x - this.x, i = t.y - this.y;
                        return Math.sqrt(e * e + i * i);
                    },
                    distanceSq: function(t) {
                        var e = t.x - this.x, i = t.y - this.y;
                        return e * e + i * i;
                    },
                    length: function() {
                        var t = this.x, e = this.y;
                        return Math.sqrt(t * t + e * e);
                    },
                    setLength: function(t) {
                        return this.normalize().scale(t);
                    },
                    lengthSq: function() {
                        var t = this.x, e = this.y;
                        return t * t + e * e;
                    },
                    normalize: function() {
                        var t = this.x, e = this.y, i = t * t + e * e;
                        return i > 0 && (i = 1 / Math.sqrt(i), this.x = t * i, this.y = e * i), this;
                    },
                    normalizeRightHand: function() {
                        var t = this.x;
                        return this.x = -1 * this.y, this.y = t, this;
                    },
                    normalizeLeftHand: function() {
                        var t = this.x;
                        return this.x = this.y, this.y = -1 * t, this;
                    },
                    dot: function(t) {
                        return this.x * t.x + this.y * t.y;
                    },
                    cross: function(t) {
                        return this.x * t.y - this.y * t.x;
                    },
                    lerp: function(t, e) {
                        void 0 === e && (e = 0);
                        var i = this.x, s = this.y;
                        return this.x = i + e * (t.x - i), this.y = s + e * (t.y - s), this;
                    },
                    transformMat3: function(t) {
                        var e = this.x, i = this.y, s = t.val;
                        return this.x = s[0] * e + s[3] * i + s[6], this.y = s[1] * e + s[4] * i + s[7], this;
                    },
                    transformMat4: function(t) {
                        var e = this.x, i = this.y, s = t.val;
                        return this.x = s[0] * e + s[4] * i + s[12], this.y = s[1] * e + s[5] * i + s[13], this;
                    },
                    reset: function() {
                        return this.x = 0, this.y = 0, this;
                    },
                    limit: function(t) {
                        var e = this.length();
                        return e && e > t && this.scale(t / e), this;
                    },
                    reflect: function(t) {
                        return t = t.clone().normalize(), this.subtract(t.scale(2 * this.dot(t)));
                    },
                    mirror: function(t) {
                        return this.reflect(t).negate();
                    },
                    rotate: function(t) {
                        var e = Math.cos(t), i = Math.sin(t);
                        return this.set(e * this.x - i * this.y, i * this.x + e * this.y);
                    },
                    project: function(t) {
                        var e = this.dot(t) / t.dot(t);
                        return this.copy(t).scale(e);
                    }
                });
                r.ZERO = new r, r.RIGHT = new r(1, 0), r.LEFT = new r(-1, 0), r.UP = new r(0, -1), r.DOWN = new r(0, 1), r.ONE = new r(1, 1), t.exports = r;
            },
            70015: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t, e, i) {
                        this.x = 0, this.y = 0, this.z = 0, "object" == typeof t ? (this.x = t.x || 0, this.y = t.y || 0, this.z = t.z || 0) : (this.x = t || 0, this.y = e || 0, this.z = i || 0);
                    },
                    up: function() {
                        return this.x = 0, this.y = 1, this.z = 0, this;
                    },
                    min: function(t) {
                        return this.x = Math.min(this.x, t.x), this.y = Math.min(this.y, t.y), this.z = Math.min(this.z, t.z), this;
                    },
                    max: function(t) {
                        return this.x = Math.max(this.x, t.x), this.y = Math.max(this.y, t.y), this.z = Math.max(this.z, t.z), this;
                    },
                    clone: function() {
                        return new s(this.x, this.y, this.z);
                    },
                    addVectors: function(t, e) {
                        return this.x = t.x + e.x, this.y = t.y + e.y, this.z = t.z + e.z, this;
                    },
                    crossVectors: function(t, e) {
                        var i = t.x, s = t.y, n = t.z, r = e.x, o = e.y, a = e.z;
                        return this.x = s * a - n * o, this.y = n * r - i * a, this.z = i * o - s * r, this;
                    },
                    equals: function(t) {
                        return this.x === t.x && this.y === t.y && this.z === t.z;
                    },
                    copy: function(t) {
                        return this.x = t.x, this.y = t.y, this.z = t.z || 0, this;
                    },
                    set: function(t, e, i) {
                        return "object" == typeof t ? (this.x = t.x || 0, this.y = t.y || 0, this.z = t.z || 0) : (this.x = t || 0, this.y = e || 0, this.z = i || 0), this;
                    },
                    setFromMatrixPosition: function(t) {
                        return this.fromArray(t.val, 12);
                    },
                    setFromMatrixColumn: function(t, e) {
                        return this.fromArray(t.val, 4 * e);
                    },
                    fromArray: function(t, e) {
                        return void 0 === e && (e = 0), this.x = t[e], this.y = t[e + 1], this.z = t[e + 2], this;
                    },
                    add: function(t) {
                        return this.x += t.x, this.y += t.y, this.z += t.z || 0, this;
                    },
                    addScalar: function(t) {
                        return this.x += t, this.y += t, this.z += t, this;
                    },
                    addScale: function(t, e) {
                        return this.x += t.x * e, this.y += t.y * e, this.z += t.z * e || 0, this;
                    },
                    subtract: function(t) {
                        return this.x -= t.x, this.y -= t.y, this.z -= t.z || 0, this;
                    },
                    multiply: function(t) {
                        return this.x *= t.x, this.y *= t.y, this.z *= t.z || 1, this;
                    },
                    scale: function(t) {
                        return isFinite(t) ? (this.x *= t, this.y *= t, this.z *= t) : (this.x = 0, this.y = 0, this.z = 0), this;
                    },
                    divide: function(t) {
                        return this.x /= t.x, this.y /= t.y, this.z /= t.z || 1, this;
                    },
                    negate: function() {
                        return this.x = -this.x, this.y = -this.y, this.z = -this.z, this;
                    },
                    distance: function(t) {
                        var e = t.x - this.x, i = t.y - this.y, s = t.z - this.z || 0;
                        return Math.sqrt(e * e + i * i + s * s);
                    },
                    distanceSq: function(t) {
                        var e = t.x - this.x, i = t.y - this.y, s = t.z - this.z || 0;
                        return e * e + i * i + s * s;
                    },
                    length: function() {
                        var t = this.x, e = this.y, i = this.z;
                        return Math.sqrt(t * t + e * e + i * i);
                    },
                    lengthSq: function() {
                        var t = this.x, e = this.y, i = this.z;
                        return t * t + e * e + i * i;
                    },
                    normalize: function() {
                        var t = this.x, e = this.y, i = this.z, s = t * t + e * e + i * i;
                        return s > 0 && (s = 1 / Math.sqrt(s), this.x = t * s, this.y = e * s, this.z = i * s), this;
                    },
                    dot: function(t) {
                        return this.x * t.x + this.y * t.y + this.z * t.z;
                    },
                    cross: function(t) {
                        var e = this.x, i = this.y, s = this.z, n = t.x, r = t.y, o = t.z;
                        return this.x = i * o - s * r, this.y = s * n - e * o, this.z = e * r - i * n, this;
                    },
                    lerp: function(t, e) {
                        void 0 === e && (e = 0);
                        var i = this.x, s = this.y, n = this.z;
                        return this.x = i + e * (t.x - i), this.y = s + e * (t.y - s), this.z = n + e * (t.z - n), this;
                    },
                    applyMatrix3: function(t) {
                        var e = this.x, i = this.y, s = this.z, n = t.val;
                        return this.x = n[0] * e + n[3] * i + n[6] * s, this.y = n[1] * e + n[4] * i + n[7] * s, this.z = n[2] * e + n[5] * i + n[8] * s, this;
                    },
                    applyMatrix4: function(t) {
                        var e = this.x, i = this.y, s = this.z, n = t.val, r = 1 / (n[3] * e + n[7] * i + n[11] * s + n[15]);
                        return this.x = (n[0] * e + n[4] * i + n[8] * s + n[12]) * r, this.y = (n[1] * e + n[5] * i + n[9] * s + n[13]) * r, this.z = (n[2] * e + n[6] * i + n[10] * s + n[14]) * r, this;
                    },
                    transformMat3: function(t) {
                        var e = this.x, i = this.y, s = this.z, n = t.val;
                        return this.x = e * n[0] + i * n[3] + s * n[6], this.y = e * n[1] + i * n[4] + s * n[7], this.z = e * n[2] + i * n[5] + s * n[8], this;
                    },
                    transformMat4: function(t) {
                        var e = this.x, i = this.y, s = this.z, n = t.val;
                        return this.x = n[0] * e + n[4] * i + n[8] * s + n[12], this.y = n[1] * e + n[5] * i + n[9] * s + n[13], this.z = n[2] * e + n[6] * i + n[10] * s + n[14], this;
                    },
                    transformCoordinates: function(t) {
                        var e = this.x, i = this.y, s = this.z, n = t.val, r = e * n[0] + i * n[4] + s * n[8] + n[12], o = e * n[1] + i * n[5] + s * n[9] + n[13], a = e * n[2] + i * n[6] + s * n[10] + n[14], h = e * n[3] + i * n[7] + s * n[11] + n[15];
                        return this.x = r / h, this.y = o / h, this.z = a / h, this;
                    },
                    transformQuat: function(t) {
                        var e = this.x, i = this.y, s = this.z, n = t.x, r = t.y, o = t.z, a = t.w, h = a * e + r * s - o * i, l = a * i + o * e - n * s, u = a * s + n * i - r * e, c = -n * e - r * i - o * s;
                        return this.x = h * a + c * -n + l * -o - u * -r, this.y = l * a + c * -r + u * -n - h * -o, this.z = u * a + c * -o + h * -r - l * -n, this;
                    },
                    project: function(t) {
                        var e = this.x, i = this.y, s = this.z, n = t.val, r = n[0], o = n[1], a = n[2], h = n[3], l = n[4], u = n[5], c = n[6], d = n[7], f = n[8], p = n[9], v = n[10], g = n[11], m = n[12], y = n[13], x = n[14], T = 1 / (e * h + i * d + s * g + n[15]);
                        return this.x = (e * r + i * l + s * f + m) * T, this.y = (e * o + i * u + s * p + y) * T, this.z = (e * a + i * c + s * v + x) * T, this;
                    },
                    projectViewMatrix: function(t, e) {
                        return this.applyMatrix4(t).applyMatrix4(e);
                    },
                    unprojectViewMatrix: function(t, e) {
                        return this.applyMatrix4(t).applyMatrix4(e);
                    },
                    unproject: function(t, e) {
                        var i = t.x, s = t.y, n = t.z, r = t.w, o = this.x - i, a = r - this.y - 1 - s, h = this.z;
                        return this.x = 2 * o / n - 1, this.y = 2 * a / r - 1, this.z = 2 * h - 1, this.project(e);
                    },
                    reset: function() {
                        return this.x = 0, this.y = 0, this.z = 0, this;
                    }
                });
                s.ZERO = new s, s.RIGHT = new s(1, 0, 0), s.LEFT = new s(-1, 0, 0), s.UP = new s(0, -1, 0), s.DOWN = new s(0, 1, 0), s.FORWARD = new s(0, 0, 1), s.BACK = new s(0, 0, -1), s.ONE = new s(1, 1, 1), t.exports = s;
            },
            51729: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t, e, i, s) {
                        this.x = 0, this.y = 0, this.z = 0, this.w = 0, "object" == typeof t ? (this.x = t.x || 0, this.y = t.y || 0, this.z = t.z || 0, this.w = t.w || 0) : (this.x = t || 0, this.y = e || 0, this.z = i || 0, this.w = s || 0);
                    },
                    clone: function() {
                        return new s(this.x, this.y, this.z, this.w);
                    },
                    copy: function(t) {
                        return this.x = t.x, this.y = t.y, this.z = t.z || 0, this.w = t.w || 0, this;
                    },
                    equals: function(t) {
                        return this.x === t.x && this.y === t.y && this.z === t.z && this.w === t.w;
                    },
                    set: function(t, e, i, s) {
                        return "object" == typeof t ? (this.x = t.x || 0, this.y = t.y || 0, this.z = t.z || 0, this.w = t.w || 0) : (this.x = t || 0, this.y = e || 0, this.z = i || 0, this.w = s || 0), this;
                    },
                    add: function(t) {
                        return this.x += t.x, this.y += t.y, this.z += t.z || 0, this.w += t.w || 0, this;
                    },
                    subtract: function(t) {
                        return this.x -= t.x, this.y -= t.y, this.z -= t.z || 0, this.w -= t.w || 0, this;
                    },
                    scale: function(t) {
                        return this.x *= t, this.y *= t, this.z *= t, this.w *= t, this;
                    },
                    length: function() {
                        var t = this.x, e = this.y, i = this.z, s = this.w;
                        return Math.sqrt(t * t + e * e + i * i + s * s);
                    },
                    lengthSq: function() {
                        var t = this.x, e = this.y, i = this.z, s = this.w;
                        return t * t + e * e + i * i + s * s;
                    },
                    normalize: function() {
                        var t = this.x, e = this.y, i = this.z, s = this.w, n = t * t + e * e + i * i + s * s;
                        return n > 0 && (n = 1 / Math.sqrt(n), this.x = t * n, this.y = e * n, this.z = i * n, this.w = s * n), this;
                    },
                    dot: function(t) {
                        return this.x * t.x + this.y * t.y + this.z * t.z + this.w * t.w;
                    },
                    lerp: function(t, e) {
                        void 0 === e && (e = 0);
                        var i = this.x, s = this.y, n = this.z, r = this.w;
                        return this.x = i + e * (t.x - i), this.y = s + e * (t.y - s), this.z = n + e * (t.z - n), this.w = r + e * (t.w - r), this;
                    },
                    multiply: function(t) {
                        return this.x *= t.x, this.y *= t.y, this.z *= t.z || 1, this.w *= t.w || 1, this;
                    },
                    divide: function(t) {
                        return this.x /= t.x, this.y /= t.y, this.z /= t.z || 1, this.w /= t.w || 1, this;
                    },
                    distance: function(t) {
                        var e = t.x - this.x, i = t.y - this.y, s = t.z - this.z || 0, n = t.w - this.w || 0;
                        return Math.sqrt(e * e + i * i + s * s + n * n);
                    },
                    distanceSq: function(t) {
                        var e = t.x - this.x, i = t.y - this.y, s = t.z - this.z || 0, n = t.w - this.w || 0;
                        return e * e + i * i + s * s + n * n;
                    },
                    negate: function() {
                        return this.x = -this.x, this.y = -this.y, this.z = -this.z, this.w = -this.w, this;
                    },
                    transformMat4: function(t) {
                        var e = this.x, i = this.y, s = this.z, n = this.w, r = t.val;
                        return this.x = r[0] * e + r[4] * i + r[8] * s + r[12] * n, this.y = r[1] * e + r[5] * i + r[9] * s + r[13] * n, this.z = r[2] * e + r[6] * i + r[10] * s + r[14] * n, this.w = r[3] * e + r[7] * i + r[11] * s + r[15] * n, this;
                    },
                    transformQuat: function(t) {
                        var e = this.x, i = this.y, s = this.z, n = t.x, r = t.y, o = t.z, a = t.w, h = a * e + r * s - o * i, l = a * i + o * e - n * s, u = a * s + n * i - r * e, c = -n * e - r * i - o * s;
                        return this.x = h * a + c * -n + l * -o - u * -r, this.y = l * a + c * -r + u * -n - h * -o, this.z = u * a + c * -o + h * -r - l * -n, this;
                    },
                    reset: function() {
                        return this.x = 0, this.y = 0, this.z = 0, this.w = 0, this;
                    }
                });
                s.prototype.sub = s.prototype.subtract, s.prototype.mul = s.prototype.multiply, s.prototype.div = s.prototype.divide, s.prototype.dist = s.prototype.distance, s.prototype.distSq = s.prototype.distanceSq, s.prototype.len = s.prototype.length, s.prototype.lenSq = s.prototype.lengthSq, t.exports = s;
            },
            9557: (t)=>{
                t.exports = function(t, e, i) {
                    return Math.abs(t - e) <= i;
                };
            },
            1071: (t)=>{
                t.exports = function(t, e, i) {
                    if (t >= e && t <= i) return t;
                    var s = i - e;
                    return e + ((t - e) % s + s) % s;
                };
            },
            90447: (t)=>{
                t.exports = function(t, e, i, s) {
                    return Math.atan2(s - e, i - t);
                };
            },
            94240: (t)=>{
                t.exports = function(t, e) {
                    return Math.atan2(e.y - t.y, e.x - t.x);
                };
            },
            84066: (t)=>{
                t.exports = function(t, e) {
                    return Math.atan2(e.x - t.x, e.y - t.y);
                };
            },
            9678: (t)=>{
                t.exports = function(t, e, i, s) {
                    return Math.atan2(i - t, s - e);
                };
            },
            76861: (t, e, i)=>{
                var s = i(83392);
                t.exports = function(t) {
                    return t > Math.PI && (t -= s.PI2), Math.abs(((t + s.TAU) % s.PI2 - s.PI2) % s.PI2);
                };
            },
            37570: (t)=>{
                t.exports = function(t) {
                    return (t %= 2 * Math.PI) >= 0 ? t : t + 2 * Math.PI;
                };
            },
            87597: (t, e, i)=>{
                var s = i(61616);
                t.exports = function() {
                    return s(-Math.PI, Math.PI);
                };
            },
            74493: (t, e, i)=>{
                var s = i(61616);
                t.exports = function() {
                    return s(-180, 180);
                };
            },
            19049: (t, e, i)=>{
                var s = i(37570);
                t.exports = function(t) {
                    return s(t + Math.PI);
                };
            },
            90612: (t, e, i)=>{
                var s = i(83392);
                t.exports = function(t, e, i) {
                    return void 0 === i && (i = .05), t === e || (Math.abs(e - t) <= i || Math.abs(e - t) >= s.PI2 - i ? t = e : (Math.abs(e - t) > Math.PI && (e < t ? e += s.PI2 : e -= s.PI2), e > t ? t += i : e < t && (t -= i))), t;
                };
            },
            93954: (t)=>{
                t.exports = function(t, e) {
                    var i = e - t;
                    return 0 === i ? 0 : i - 360 * Math.floor((i - -180) / 360);
                };
            },
            35786: (t, e, i)=>{
                var s = i(1071);
                t.exports = function(t) {
                    return s(t, -Math.PI, Math.PI);
                };
            },
            62138: (t, e, i)=>{
                var s = i(1071);
                t.exports = function(t) {
                    return s(t, -180, 180);
                };
            },
            22153: (t, e, i)=>{
                t.exports = {
                    Between: i(90447),
                    BetweenPoints: i(94240),
                    BetweenPointsY: i(84066),
                    BetweenY: i(9678),
                    CounterClockwise: i(76861),
                    Normalize: i(37570),
                    Random: i(87597),
                    RandomDegrees: i(74493),
                    Reverse: i(19049),
                    RotateTo: i(90612),
                    ShortestBetween: i(93954),
                    Wrap: i(35786),
                    WrapDegrees: i(62138)
                };
            },
            83392: (t)=>{
                var e = {
                    PI2: 2 * Math.PI,
                    TAU: .5 * Math.PI,
                    EPSILON: 1e-6,
                    DEG_TO_RAD: Math.PI / 180,
                    RAD_TO_DEG: 180 / Math.PI,
                    RND: null,
                    MIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER || -9007199254740991,
                    MAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER || 9007199254740991
                };
                t.exports = e;
            },
            53996: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n = t - i, r = e - s;
                    return Math.sqrt(n * n + r * r);
                };
            },
            92951: (t)=>{
                t.exports = function(t, e) {
                    var i = t.x - e.x, s = t.y - e.y;
                    return Math.sqrt(i * i + s * s);
                };
            },
            12161: (t)=>{
                t.exports = function(t, e) {
                    var i = t.x - e.x, s = t.y - e.y;
                    return i * i + s * s;
                };
            },
            38057: (t)=>{
                t.exports = function(t, e, i, s) {
                    return Math.max(Math.abs(t - i), Math.abs(e - s));
                };
            },
            33297: (t)=>{
                t.exports = function(t, e, i, s, n) {
                    return void 0 === n && (n = 2), Math.sqrt(Math.pow(i - t, n) + Math.pow(s - e, n));
                };
            },
            90366: (t)=>{
                t.exports = function(t, e, i, s) {
                    return Math.abs(t - i) + Math.abs(e - s);
                };
            },
            35032: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n = t - i, r = e - s;
                    return n * n + r * r;
                };
            },
            10130: (t, e, i)=>{
                t.exports = {
                    Between: i(53996),
                    BetweenPoints: i(92951),
                    BetweenPointsSquared: i(12161),
                    Chebyshev: i(38057),
                    Power: i(33297),
                    Snake: i(90366),
                    Squared: i(35032)
                };
            },
            35060: (t, e, i)=>{
                var s = i(25265), n = i(57428), r = i(73214), o = i(71778), a = i(36468), h = i(88258), l = i(52910), u = i(67799), c = i(74083), d = i(92284), f = i(28035), p = i(8754);
                t.exports = {
                    Power0: l,
                    Power1: u.Out,
                    Power2: o.Out,
                    Power3: c.Out,
                    Power4: d.Out,
                    Linear: l,
                    Quad: u.Out,
                    Cubic: o.Out,
                    Quart: c.Out,
                    Quint: d.Out,
                    Sine: f.Out,
                    Expo: h.Out,
                    Circ: r.Out,
                    Elastic: a.Out,
                    Back: s.Out,
                    Bounce: n.Out,
                    Stepped: p,
                    "Quad.easeIn": u.In,
                    "Cubic.easeIn": o.In,
                    "Quart.easeIn": c.In,
                    "Quint.easeIn": d.In,
                    "Sine.easeIn": f.In,
                    "Expo.easeIn": h.In,
                    "Circ.easeIn": r.In,
                    "Elastic.easeIn": a.In,
                    "Back.easeIn": s.In,
                    "Bounce.easeIn": n.In,
                    "Quad.easeOut": u.Out,
                    "Cubic.easeOut": o.Out,
                    "Quart.easeOut": c.Out,
                    "Quint.easeOut": d.Out,
                    "Sine.easeOut": f.Out,
                    "Expo.easeOut": h.Out,
                    "Circ.easeOut": r.Out,
                    "Elastic.easeOut": a.Out,
                    "Back.easeOut": s.Out,
                    "Bounce.easeOut": n.Out,
                    "Quad.easeInOut": u.InOut,
                    "Cubic.easeInOut": o.InOut,
                    "Quart.easeInOut": c.InOut,
                    "Quint.easeInOut": d.InOut,
                    "Sine.easeInOut": f.InOut,
                    "Expo.easeInOut": h.InOut,
                    "Circ.easeInOut": r.InOut,
                    "Elastic.easeInOut": a.InOut,
                    "Back.easeInOut": s.InOut,
                    "Bounce.easeInOut": n.InOut
                };
            },
            25860: (t)=>{
                t.exports = function(t, e) {
                    return void 0 === e && (e = 1.70158), t * t * ((e + 1) * t - e);
                };
            },
            45264: (t)=>{
                t.exports = function(t, e) {
                    void 0 === e && (e = 1.70158);
                    var i = 1.525 * e;
                    return (t *= 2) < 1 ? t * t * ((i + 1) * t - i) * .5 : .5 * ((t -= 2) * t * ((i + 1) * t + i) + 2);
                };
            },
            36699: (t)=>{
                t.exports = function(t, e) {
                    return void 0 === e && (e = 1.70158), --t * t * ((e + 1) * t + e) + 1;
                };
            },
            25265: (t, e, i)=>{
                t.exports = {
                    In: i(25860),
                    Out: i(36699),
                    InOut: i(45264)
                };
            },
            62191: (t)=>{
                t.exports = function(t) {
                    return (t = 1 - t) < 1 / 2.75 ? 1 - 7.5625 * t * t : t < 2 / 2.75 ? 1 - (7.5625 * (t -= 1.5 / 2.75) * t + .75) : t < 2.5 / 2.75 ? 1 - (7.5625 * (t -= 2.25 / 2.75) * t + .9375) : 1 - (7.5625 * (t -= 2.625 / 2.75) * t + .984375);
                };
            },
            24799: (t)=>{
                t.exports = function(t) {
                    var e = !1;
                    return t < .5 ? (t = 1 - 2 * t, e = !0) : t = 2 * t - 1, t < 1 / 2.75 ? t *= 7.5625 * t : t = t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375, e ? .5 * (1 - t) : .5 * t + .5;
                };
            },
            60819: (t)=>{
                t.exports = function(t) {
                    return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
                };
            },
            57428: (t, e, i)=>{
                t.exports = {
                    In: i(62191),
                    Out: i(60819),
                    InOut: i(24799)
                };
            },
            86855: (t)=>{
                t.exports = function(t) {
                    return 1 - Math.sqrt(1 - t * t);
                };
            },
            7280: (t)=>{
                t.exports = function(t) {
                    return (t *= 2) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1);
                };
            },
            18058: (t)=>{
                t.exports = function(t) {
                    return Math.sqrt(1 - --t * t);
                };
            },
            73214: (t, e, i)=>{
                t.exports = {
                    In: i(86855),
                    Out: i(18058),
                    InOut: i(7280)
                };
            },
            91532: (t)=>{
                t.exports = function(t) {
                    return t * t * t;
                };
            },
            63180: (t)=>{
                t.exports = function(t) {
                    return (t *= 2) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2);
                };
            },
            16518: (t)=>{
                t.exports = function(t) {
                    return --t * t * t + 1;
                };
            },
            71778: (t, e, i)=>{
                t.exports = {
                    In: i(91532),
                    Out: i(16518),
                    InOut: i(63180)
                };
            },
            24729: (t)=>{
                t.exports = function(t, e, i) {
                    if (void 0 === e && (e = .1), void 0 === i && (i = .1), 0 === t) return 0;
                    if (1 === t) return 1;
                    var s = i / 4;
                    return e < 1 ? e = 1 : s = i * Math.asin(1 / e) / (2 * Math.PI), -e * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / i);
                };
            },
            50325: (t)=>{
                t.exports = function(t, e, i) {
                    if (void 0 === e && (e = .1), void 0 === i && (i = .1), 0 === t) return 0;
                    if (1 === t) return 1;
                    var s = i / 4;
                    return e < 1 ? e = 1 : s = i * Math.asin(1 / e) / (2 * Math.PI), (t *= 2) < 1 ? e * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / i) * -0.5 : e * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / i) * .5 + 1;
                };
            },
            84074: (t)=>{
                t.exports = function(t, e, i) {
                    if (void 0 === e && (e = .1), void 0 === i && (i = .1), 0 === t) return 0;
                    if (1 === t) return 1;
                    var s = i / 4;
                    return e < 1 ? e = 1 : s = i * Math.asin(1 / e) / (2 * Math.PI), e * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / i) + 1;
                };
            },
            36468: (t, e, i)=>{
                t.exports = {
                    In: i(24729),
                    Out: i(84074),
                    InOut: i(50325)
                };
            },
            95638: (t)=>{
                t.exports = function(t) {
                    return Math.pow(2, 10 * (t - 1)) - .001;
                };
            },
            10357: (t)=>{
                t.exports = function(t) {
                    return (t *= 2) < 1 ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (2 - Math.pow(2, -10 * (t - 1)));
                };
            },
            14894: (t)=>{
                t.exports = function(t) {
                    return 1 - Math.pow(2, -10 * t);
                };
            },
            88258: (t, e, i)=>{
                t.exports = {
                    In: i(95638),
                    Out: i(14894),
                    InOut: i(10357)
                };
            },
            33063: (t, e, i)=>{
                t.exports = {
                    Back: i(25265),
                    Bounce: i(57428),
                    Circular: i(73214),
                    Cubic: i(71778),
                    Elastic: i(36468),
                    Expo: i(88258),
                    Linear: i(52910),
                    Quadratic: i(67799),
                    Quartic: i(74083),
                    Quintic: i(92284),
                    Sine: i(28035),
                    Stepped: i(8754)
                };
            },
            43927: (t)=>{
                t.exports = function(t) {
                    return t;
                };
            },
            52910: (t, e, i)=>{
                t.exports = i(43927);
            },
            77471: (t)=>{
                t.exports = function(t) {
                    return t * t;
                };
            },
            83863: (t)=>{
                t.exports = function(t) {
                    return (t *= 2) < 1 ? .5 * t * t : -0.5 * (--t * (t - 2) - 1);
                };
            },
            44383: (t)=>{
                t.exports = function(t) {
                    return t * (2 - t);
                };
            },
            67799: (t, e, i)=>{
                t.exports = {
                    In: i(77471),
                    Out: i(44383),
                    InOut: i(83863)
                };
            },
            48311: (t)=>{
                t.exports = function(t) {
                    return t * t * t * t;
                };
            },
            55248: (t)=>{
                t.exports = function(t) {
                    return (t *= 2) < 1 ? .5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2);
                };
            },
            23135: (t)=>{
                t.exports = function(t) {
                    return 1 - --t * t * t * t;
                };
            },
            74083: (t, e, i)=>{
                t.exports = {
                    In: i(48311),
                    Out: i(23135),
                    InOut: i(55248)
                };
            },
            7313: (t)=>{
                t.exports = function(t) {
                    return t * t * t * t * t;
                };
            },
            98759: (t)=>{
                t.exports = function(t) {
                    return (t *= 2) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2);
                };
            },
            26670: (t)=>{
                t.exports = function(t) {
                    return --t * t * t * t * t + 1;
                };
            },
            92284: (t, e, i)=>{
                t.exports = {
                    In: i(7313),
                    Out: i(26670),
                    InOut: i(98759)
                };
            },
            52929: (t)=>{
                t.exports = function(t) {
                    return 0 === t ? 0 : 1 === t ? 1 : 1 - Math.cos(t * Math.PI / 2);
                };
            },
            66333: (t)=>{
                t.exports = function(t) {
                    return 0 === t ? 0 : 1 === t ? 1 : .5 * (1 - Math.cos(Math.PI * t));
                };
            },
            37255: (t)=>{
                t.exports = function(t) {
                    return 0 === t ? 0 : 1 === t ? 1 : Math.sin(t * Math.PI / 2);
                };
            },
            28035: (t, e, i)=>{
                t.exports = {
                    In: i(52929),
                    Out: i(37255),
                    InOut: i(66333)
                };
            },
            52770: (t)=>{
                t.exports = function(t, e) {
                    return void 0 === e && (e = 1), t <= 0 ? 0 : t >= 1 ? 1 : 1 / e * (1 + (e * t | 0));
                };
            },
            8754: (t, e, i)=>{
                t.exports = i(52770);
            },
            17247: (t)=>{
                t.exports = function(t, e) {
                    return void 0 === e && (e = 1e-4), Math.ceil(t - e);
                };
            },
            88456: (t)=>{
                t.exports = function(t, e, i) {
                    return void 0 === i && (i = 1e-4), Math.abs(t - e) < i;
                };
            },
            61824: (t)=>{
                t.exports = function(t, e) {
                    return void 0 === e && (e = 1e-4), Math.floor(t + e);
                };
            },
            41935: (t)=>{
                t.exports = function(t, e, i) {
                    return void 0 === i && (i = 1e-4), t > e - i;
                };
            },
            54726: (t)=>{
                t.exports = function(t, e, i) {
                    return void 0 === i && (i = 1e-4), t < e + i;
                };
            },
            52778: (t, e, i)=>{
                t.exports = {
                    Ceil: i(17247),
                    Equal: i(88456),
                    Floor: i(61824),
                    GreaterThan: i(41935),
                    LessThan: i(54726)
                };
            },
            5923: (t, e, i)=>{
                var s = i(83392), n = i(98611), r = {
                    Angle: i(22153),
                    Distance: i(10130),
                    Easing: i(33063),
                    Fuzzy: i(52778),
                    Interpolation: i(48528),
                    Pow2: i(73773),
                    Snap: i(23679),
                    RandomDataGenerator: i(81429),
                    Average: i(26042),
                    Bernstein: i(22824),
                    Between: i(17489),
                    CatmullRom: i(14976),
                    CeilTo: i(89129),
                    Clamp: i(82897),
                    DegToRad: i(75606),
                    Difference: i(767),
                    Euler: i(9849),
                    Factorial: i(8034),
                    FloatBetween: i(61616),
                    FloorTo: i(60679),
                    FromPercent: i(91806),
                    GetSpeed: i(79366),
                    IsEven: i(43776),
                    IsEvenStrict: i(58442),
                    Linear: i(42798),
                    LinearXY: i(61072),
                    MaxAdd: i(69635),
                    Median: i(37394),
                    MinSub: i(17259),
                    Percent: i(61820),
                    RadToDeg: i(23701),
                    RandomXY: i(16906),
                    RandomXYZ: i(52417),
                    RandomXYZW: i(17915),
                    Rotate: i(52257),
                    RotateAround: i(2386),
                    RotateAroundDistance: i(72395),
                    RotateTo: i(41061),
                    RoundAwayFromZero: i(67233),
                    RoundTo: i(64333),
                    SinCosTableGenerator: i(59533),
                    SmootherStep: i(87736),
                    SmoothStep: i(5514),
                    ToXY: i(55805),
                    TransformXY: i(64462),
                    Within: i(9557),
                    Wrap: i(1071),
                    Vector2: i(93736),
                    Vector3: i(70015),
                    Vector4: i(51729),
                    Matrix3: i(5341),
                    Matrix4: i(16650),
                    Quaternion: i(75003),
                    RotateVec3: i(93709)
                };
                r = n(!1, r, s), t.exports = r;
            },
            63210: (t, e, i)=>{
                var s = i(22824);
                t.exports = function(t, e) {
                    for(var i = 0, n = t.length - 1, r = 0; r <= n; r++)i += Math.pow(1 - e, n - r) * Math.pow(e, r) * t[r] * s(n, r);
                    return i;
                };
            },
            88332: (t, e, i)=>{
                var s = i(14976);
                t.exports = function(t, e) {
                    var i = t.length - 1, n = i * e, r = Math.floor(n);
                    return t[0] === t[i] ? (e < 0 && (r = Math.floor(n = i * (1 + e))), s(n - r, t[(r - 1 + i) % i], t[r], t[(r + 1) % i], t[(r + 2) % i])) : e < 0 ? t[0] - (s(-n, t[0], t[0], t[1], t[1]) - t[0]) : e > 1 ? t[i] - (s(n - i, t[i], t[i], t[i - 1], t[i - 1]) - t[i]) : s(n - r, t[r ? r - 1 : 0], t[r], t[i < r + 1 ? i : r + 1], t[i < r + 2 ? i : r + 2]);
                };
            },
            34631: (t)=>{
                t.exports = function(t, e, i, s, n) {
                    return function(t, e) {
                        var i = 1 - t;
                        return i * i * i * e;
                    }(t, e) + function(t, e) {
                        var i = 1 - t;
                        return 3 * i * i * t * e;
                    }(t, i) + function(t, e) {
                        return 3 * (1 - t) * t * t * e;
                    }(t, s) + function(t, e) {
                        return t * t * t * e;
                    }(t, n);
                };
            },
            47614: (t, e, i)=>{
                var s = i(42798);
                t.exports = function(t, e) {
                    var i = t.length - 1, n = i * e, r = Math.floor(n);
                    return e < 0 ? s(t[0], t[1], n) : e > 1 ? s(t[i], t[i - 1], i - n) : s(t[r], t[r + 1 > i ? i : r + 1], n - r);
                };
            },
            16252: (t)=>{
                t.exports = function(t, e, i, s) {
                    return function(t, e) {
                        var i = 1 - t;
                        return i * i * e;
                    }(t, e) + function(t, e) {
                        return 2 * (1 - t) * t * e;
                    }(t, i) + function(t, e) {
                        return t * t * e;
                    }(t, s);
                };
            },
            44521: (t, e, i)=>{
                var s = i(5514);
                t.exports = function(t, e, i) {
                    return e + (i - e) * s(t, 0, 1);
                };
            },
            45507: (t, e, i)=>{
                var s = i(87736);
                t.exports = function(t, e, i) {
                    return e + (i - e) * s(t, 0, 1);
                };
            },
            48528: (t, e, i)=>{
                t.exports = {
                    Bezier: i(63210),
                    CatmullRom: i(88332),
                    CubicBezier: i(34631),
                    Linear: i(47614),
                    QuadraticBezier: i(16252),
                    SmoothStep: i(44521),
                    SmootherStep: i(45507)
                };
            },
            3504: (t)=>{
                t.exports = function(t) {
                    var e = Math.log(t) / .6931471805599453;
                    return 1 << Math.ceil(e);
                };
            },
            28621: (t)=>{
                t.exports = function(t, e) {
                    return t > 0 && 0 == (t & t - 1) && e > 0 && 0 == (e & e - 1);
                };
            },
            2018: (t)=>{
                t.exports = function(t) {
                    return t > 0 && 0 == (t & t - 1);
                };
            },
            73773: (t, e, i)=>{
                t.exports = {
                    GetNext: i(3504),
                    IsSize: i(28621),
                    IsValue: i(2018)
                };
            },
            81429: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t) {
                        void 0 === t && (t = [
                            (Date.now() * Math.random()).toString()
                        ]), this.c = 1, this.s0 = 0, this.s1 = 0, this.s2 = 0, this.n = 0, this.signs = [
                            -1,
                            1
                        ], t && this.init(t);
                    },
                    rnd: function() {
                        var t = 2091639 * this.s0 + 2.3283064365386963e-10 * this.c;
                        return this.c = 0 | t, this.s0 = this.s1, this.s1 = this.s2, this.s2 = t - this.c, this.s2;
                    },
                    hash: function(t) {
                        var e, i = this.n;
                        t = t.toString();
                        for(var s = 0; s < t.length; s++)e = .02519603282416938 * (i += t.charCodeAt(s)), e -= i = e >>> 0, i = (e *= i) >>> 0, i += 4294967296 * (e -= i);
                        return this.n = i, 2.3283064365386963e-10 * (i >>> 0);
                    },
                    init: function(t) {
                        "string" == typeof t ? this.state(t) : this.sow(t);
                    },
                    sow: function(t) {
                        if (this.n = 4022871197, this.s0 = this.hash(" "), this.s1 = this.hash(" "), this.s2 = this.hash(" "), this.c = 1, t) for(var e = 0; e < t.length && null != t[e]; e++){
                            var i = t[e];
                            this.s0 -= this.hash(i), this.s0 += ~~(this.s0 < 0), this.s1 -= this.hash(i), this.s1 += ~~(this.s1 < 0), this.s2 -= this.hash(i), this.s2 += ~~(this.s2 < 0);
                        }
                    },
                    integer: function() {
                        return 4294967296 * this.rnd();
                    },
                    frac: function() {
                        return this.rnd() + 11102230246251565e-32 * (2097152 * this.rnd() | 0);
                    },
                    real: function() {
                        return this.integer() + this.frac();
                    },
                    integerInRange: function(t, e) {
                        return Math.floor(this.realInRange(0, e - t + 1) + t);
                    },
                    between: function(t, e) {
                        return Math.floor(this.realInRange(0, e - t + 1) + t);
                    },
                    realInRange: function(t, e) {
                        return this.frac() * (e - t) + t;
                    },
                    normal: function() {
                        return 1 - 2 * this.frac();
                    },
                    uuid: function() {
                        var t = "", e = "";
                        for(e = t = ""; t++ < 36; e += ~t % 5 | 3 * t & 4 ? (15 ^ t ? 8 ^ this.frac() * (20 ^ t ? 16 : 4) : 4).toString(16) : "-");
                        return e;
                    },
                    pick: function(t) {
                        return t[this.integerInRange(0, t.length - 1)];
                    },
                    sign: function() {
                        return this.pick(this.signs);
                    },
                    weightedPick: function(t) {
                        return t[~~(Math.pow(this.frac(), 2) * (t.length - 1) + .5)];
                    },
                    timestamp: function(t, e) {
                        return this.realInRange(t || 9466848e5, e || 1577862e6);
                    },
                    angle: function() {
                        return this.integerInRange(-180, 180);
                    },
                    rotation: function() {
                        return this.realInRange(-3.1415926, 3.1415926);
                    },
                    state: function(t) {
                        return "string" == typeof t && t.match(/^!rnd/) && (t = t.split(","), this.c = parseFloat(t[1]), this.s0 = parseFloat(t[2]), this.s1 = parseFloat(t[3]), this.s2 = parseFloat(t[4])), [
                            "!rnd",
                            this.c,
                            this.s0,
                            this.s1,
                            this.s2
                        ].join(",");
                    },
                    shuffle: function(t) {
                        for(var e = t.length - 1; e > 0; e--){
                            var i = Math.floor(this.frac() * (e + 1)), s = t[i];
                            t[i] = t[e], t[e] = s;
                        }
                        return t;
                    }
                });
                t.exports = s;
            },
            82127: (t)=>{
                t.exports = function(t, e, i, s) {
                    return void 0 === i && (i = 0), 0 === e ? t : (t -= i, t = e * Math.ceil(t / e), s ? (i + t) / e : i + t);
                };
            },
            84314: (t)=>{
                t.exports = function(t, e, i, s) {
                    return void 0 === i && (i = 0), 0 === e ? t : (t -= i, t = e * Math.floor(t / e), s ? (i + t) / e : i + t);
                };
            },
            88462: (t)=>{
                t.exports = function(t, e, i, s) {
                    return void 0 === i && (i = 0), 0 === e ? t : (t -= i, t = e * Math.round(t / e), s ? (i + t) / e : i + t);
                };
            },
            23679: (t, e, i)=>{
                t.exports = {
                    Ceil: i(82127),
                    Floor: i(84314),
                    To: i(88462)
                };
            },
            92491: (t, e, i)=>{
                i(75205);
                var s = i(86459), n = i(98611), r = {
                    Actions: i(83979),
                    Animations: i(13517),
                    BlendModes: i(95723),
                    Cache: i(45820),
                    Cameras: i(44143),
                    Core: i(80293),
                    Class: i(56694),
                    Create: i(84106),
                    Curves: i(73962),
                    Data: i(1999),
                    Display: i(24816),
                    DOM: i(3590),
                    Events: i(95146),
                    FX: i(96910),
                    Game: i(15213),
                    GameObjects: i(48013),
                    Geom: i(84068),
                    Input: i(20873),
                    Loader: i(95695),
                    Math: i(5923),
                    Physics: i(53954),
                    Plugins: i(45615),
                    Renderer: i(42069),
                    Scale: i(86754),
                    ScaleModes: i(27394),
                    Scene: i(87157),
                    Scenes: i(20436),
                    Structs: i(20010),
                    Textures: i(87499),
                    Tilemaps: i(52678),
                    Time: i(97121),
                    Tweens: i(75193),
                    Utils: i(22178)
                };
                r.Sound = i(56751), r = n(!1, r, s), t.exports = r, i.g.Phaser = r;
            },
            62832: (t, e, i)=>{
                var s = i(56694), n = i(7864), r = i(1539), o = new s({
                    Extends: r,
                    Mixins: [
                        n.Acceleration,
                        n.Angular,
                        n.Bounce,
                        n.Debug,
                        n.Drag,
                        n.Enable,
                        n.Friction,
                        n.Gravity,
                        n.Immovable,
                        n.Mass,
                        n.Pushable,
                        n.Size,
                        n.Velocity
                    ],
                    initialize: function(t, e, i, s, n) {
                        r.call(this, t, e, i, s, n), this.body = null;
                    }
                });
                t.exports = o;
            },
            66150: (t, e, i)=>{
                var s = i(56694), n = i(75606), r = i(53996), o = i(35032), a = i(99523), h = i(72632), l = i(30657), u = i(2732), c = i(15147), d = i(91963), f = i(7599), p = i(93736), v = i(85233), g = new s({
                    initialize: function(t) {
                        this.scene = t, this.systems = t.sys, this.config = this.getConfig(), this.world, this.add, t.sys.events.once(f.BOOT, this.boot, this), t.sys.events.on(f.START, this.start, this);
                    },
                    boot: function() {
                        this.world = new v(this.scene, this.config), this.add = new a(this.world), this.systems.events.once(f.DESTROY, this.destroy, this);
                    },
                    start: function() {
                        this.world || (this.world = new v(this.scene, this.config), this.add = new a(this.world));
                        var t = this.systems.events;
                        h(this.config, "customUpdate", !1) || t.on(f.UPDATE, this.world.update, this.world), t.on(f.POST_UPDATE, this.world.postUpdate, this.world), t.once(f.SHUTDOWN, this.shutdown, this);
                    },
                    enableUpdate: function() {
                        this.systems.events.on(f.UPDATE, this.world.update, this.world);
                    },
                    disableUpdate: function() {
                        this.systems.events.off(f.UPDATE, this.world.update, this.world);
                    },
                    getConfig: function() {
                        var t = this.systems.game.config.physics, e = this.systems.settings.physics;
                        return l(h(e, "arcade", {}), h(t, "arcade", {}));
                    },
                    overlap: function(t, e, i, s, n) {
                        return void 0 === i && (i = null), void 0 === s && (s = null), void 0 === n && (n = i), this.world.collideObjects(t, e, i, s, n, !0);
                    },
                    collide: function(t, e, i, s, n) {
                        return void 0 === i && (i = null), void 0 === s && (s = null), void 0 === n && (n = i), this.world.collideObjects(t, e, i, s, n, !1);
                    },
                    collideTiles: function(t, e, i, s, n) {
                        return this.world.collideTiles(t, e, i, s, n);
                    },
                    overlapTiles: function(t, e, i, s, n) {
                        return this.world.overlapTiles(t, e, i, s, n);
                    },
                    pause: function() {
                        return this.world.pause();
                    },
                    resume: function() {
                        return this.world.resume();
                    },
                    accelerateTo: function(t, e, i, s, n, r) {
                        void 0 === s && (s = 60);
                        var o = Math.atan2(i - t.y, e - t.x);
                        return t.body.acceleration.setToPolar(o, s), void 0 !== n && void 0 !== r && t.body.maxVelocity.set(n, r), o;
                    },
                    accelerateToObject: function(t, e, i, s, n) {
                        return this.accelerateTo(t, e.x, e.y, i, s, n);
                    },
                    closest: function(t, e) {
                        e || (e = this.world.bodies.entries);
                        for(var i = Number.MAX_VALUE, s = null, n = t.x, r = t.y, a = e.length, h = 0; h < a; h++){
                            var l = e[h], u = l.body || l;
                            if (t !== l && t !== u && t !== u.gameObject && t !== u.center) {
                                var c = o(n, r, u.center.x, u.center.y);
                                c < i && (s = l, i = c);
                            }
                        }
                        return s;
                    },
                    furthest: function(t, e) {
                        e || (e = this.world.bodies.entries);
                        for(var i = -1, s = null, n = t.x, r = t.y, a = e.length, h = 0; h < a; h++){
                            var l = e[h], u = l.body || l;
                            if (t !== l && t !== u && t !== u.gameObject && t !== u.center) {
                                var c = o(n, r, u.center.x, u.center.y);
                                c > i && (s = l, i = c);
                            }
                        }
                        return s;
                    },
                    moveTo: function(t, e, i, s, n) {
                        void 0 === s && (s = 60), void 0 === n && (n = 0);
                        var o = Math.atan2(i - t.y, e - t.x);
                        return n > 0 && (s = r(t.x, t.y, e, i) / (n / 1e3)), t.body.velocity.setToPolar(o, s), o;
                    },
                    moveToObject: function(t, e, i, s) {
                        return this.moveTo(t, e.x, e.y, i, s);
                    },
                    velocityFromAngle: function(t, e, i) {
                        return void 0 === e && (e = 60), void 0 === i && (i = new p), i.setToPolar(n(t), e);
                    },
                    velocityFromRotation: function(t, e, i) {
                        return void 0 === e && (e = 60), void 0 === i && (i = new p), i.setToPolar(t, e);
                    },
                    overlapRect: function(t, e, i, s, n, r) {
                        return c(this.world, t, e, i, s, n, r);
                    },
                    overlapCirc: function(t, e, i, s, n) {
                        return u(this.world, t, e, i, s, n);
                    },
                    shutdown: function() {
                        if (this.world) {
                            var t = this.systems.events;
                            t.off(f.UPDATE, this.world.update, this.world), t.off(f.POST_UPDATE, this.world.postUpdate, this.world), t.off(f.SHUTDOWN, this.shutdown, this), this.add.destroy(), this.world.destroy(), this.add = null, this.world = null;
                        }
                    },
                    destroy: function() {
                        this.shutdown(), this.scene.sys.events.off(f.START, this.start, this), this.scene = null, this.systems = null;
                    }
                });
                d.register("ArcadePhysics", g, "arcadePhysics"), t.exports = g;
            },
            25084: (t, e, i)=>{
                var s = i(56694), n = i(7864), r = i(13747), o = new s({
                    Extends: r,
                    Mixins: [
                        n.Acceleration,
                        n.Angular,
                        n.Bounce,
                        n.Debug,
                        n.Drag,
                        n.Enable,
                        n.Friction,
                        n.Gravity,
                        n.Immovable,
                        n.Mass,
                        n.Pushable,
                        n.Size,
                        n.Velocity
                    ],
                    initialize: function(t, e, i, s, n) {
                        r.call(this, t, e, i, s, n), this.body = null;
                    }
                });
                t.exports = o;
            },
            97602: (t, e, i)=>{
                var s = i(56694), n = i(47401), r = i(27037), o = i(23701), a = i(74118), h = i(94287), l = i(93736), u = new s({
                    initialize: function(t, e) {
                        var i = 64, s = 64, r = void 0 !== e;
                        r && e.displayWidth && (i = e.displayWidth, s = e.displayHeight), r || (e = {
                            x: 0,
                            y: 0,
                            angle: 0,
                            rotation: 0,
                            scaleX: 1,
                            scaleY: 1,
                            displayOriginX: 0,
                            displayOriginY: 0
                        }), this.world = t, this.gameObject = r ? e : void 0, this.isBody = !0, this.transform = {
                            x: e.x,
                            y: e.y,
                            rotation: e.angle,
                            scaleX: e.scaleX,
                            scaleY: e.scaleY,
                            displayOriginX: e.displayOriginX,
                            displayOriginY: e.displayOriginY
                        }, this.debugShowBody = t.defaults.debugShowBody, this.debugShowVelocity = t.defaults.debugShowVelocity, this.debugBodyColor = t.defaults.bodyDebugColor, this.enable = !0, this.isCircle = !1, this.radius = 0, this.offset = new l, this.position = new l(e.x - e.scaleX * e.displayOriginX, e.y - e.scaleY * e.displayOriginY), this.prev = this.position.clone(), this.prevFrame = this.position.clone(), this.allowRotation = !0, this.rotation = e.angle, this.preRotation = e.angle, this.width = i, this.height = s, this.sourceWidth = i, this.sourceHeight = s, e.frame && (this.sourceWidth = e.frame.realWidth, this.sourceHeight = e.frame.realHeight), this.halfWidth = Math.abs(i / 2), this.halfHeight = Math.abs(s / 2), this.center = new l(this.position.x + this.halfWidth, this.position.y + this.halfHeight), this.velocity = new l, this.newVelocity = new l, this.deltaMax = new l, this.acceleration = new l, this.allowDrag = !0, this.drag = new l, this.allowGravity = !0, this.gravity = new l, this.bounce = new l, this.worldBounce = null, this.customBoundsRectangle = t.bounds, this.onWorldBounds = !1, this.onCollide = !1, this.onOverlap = !1, this.maxVelocity = new l(1e4, 1e4), this.maxSpeed = -1, this.friction = new l(1, 0), this.useDamping = !1, this.angularVelocity = 0, this.angularAcceleration = 0, this.angularDrag = 0, this.maxAngular = 1e3, this.mass = 1, this.angle = 0, this.speed = 0, this.facing = n.FACING_NONE, this.immovable = !1, this.pushable = !0, this.moves = !0, this.customSeparateX = !1, this.customSeparateY = !1, this.overlapX = 0, this.overlapY = 0, this.overlapR = 0, this.embedded = !1, this.collideWorldBounds = !1, this.checkCollision = {
                            none: !1,
                            up: !0,
                            down: !0,
                            left: !0,
                            right: !0
                        }, this.touching = {
                            none: !0,
                            up: !1,
                            down: !1,
                            left: !1,
                            right: !1
                        }, this.wasTouching = {
                            none: !0,
                            up: !1,
                            down: !1,
                            left: !1,
                            right: !1
                        }, this.blocked = {
                            none: !0,
                            up: !1,
                            down: !1,
                            left: !1,
                            right: !1
                        }, this.syncBounds = !1, this.physicsType = n.DYNAMIC_BODY, this._sx = e.scaleX, this._sy = e.scaleY, this._dx = 0, this._dy = 0, this._tx = 0, this._ty = 0, this._bounds = new a;
                    },
                    updateBounds: function() {
                        var t = this.gameObject, e = this.transform;
                        if (t.parentContainer) {
                            var i = t.getWorldTransformMatrix(this.world._tempMatrix, this.world._tempMatrix2);
                            e.x = i.tx, e.y = i.ty, e.rotation = o(i.rotation), e.scaleX = i.scaleX, e.scaleY = i.scaleY, e.displayOriginX = t.displayOriginX, e.displayOriginY = t.displayOriginY;
                        } else e.x = t.x, e.y = t.y, e.rotation = t.angle, e.scaleX = t.scaleX, e.scaleY = t.scaleY, e.displayOriginX = t.displayOriginX, e.displayOriginY = t.displayOriginY;
                        var s = !1;
                        if (this.syncBounds) {
                            var n = t.getBounds(this._bounds);
                            this.width = n.width, this.height = n.height, s = !0;
                        } else {
                            var r = Math.abs(e.scaleX), a = Math.abs(e.scaleY);
                            this._sx === r && this._sy === a || (this.width = this.sourceWidth * r, this.height = this.sourceHeight * a, this._sx = r, this._sy = a, s = !0);
                        }
                        s && (this.halfWidth = Math.floor(this.width / 2), this.halfHeight = Math.floor(this.height / 2), this.updateCenter());
                    },
                    updateCenter: function() {
                        this.center.set(this.position.x + this.halfWidth, this.position.y + this.halfHeight);
                    },
                    updateFromGameObject: function() {
                        this.updateBounds();
                        var t = this.transform;
                        this.position.x = t.x + t.scaleX * (this.offset.x - t.displayOriginX), this.position.y = t.y + t.scaleY * (this.offset.y - t.displayOriginY), this.updateCenter();
                    },
                    resetFlags: function(t) {
                        void 0 === t && (t = !1);
                        var e = this.wasTouching, i = this.touching, s = this.blocked;
                        t ? (e.none = !0, e.up = !1, e.down = !1, e.left = !1, e.right = !1) : (e.none = i.none, e.up = i.up, e.down = i.down, e.left = i.left, e.right = i.right), i.none = !0, i.up = !1, i.down = !1, i.left = !1, i.right = !1, s.none = !0, s.up = !1, s.down = !1, s.left = !1, s.right = !1, this.overlapR = 0, this.overlapX = 0, this.overlapY = 0, this.embedded = !1;
                    },
                    preUpdate: function(t, e) {
                        t && this.resetFlags(), this.gameObject && this.updateFromGameObject(), this.rotation = this.transform.rotation, this.preRotation = this.rotation, this.moves && (this.prev.x = this.position.x, this.prev.y = this.position.y, this.prevFrame.x = this.position.x, this.prevFrame.y = this.position.y), t && this.update(e);
                    },
                    update: function(t) {
                        if (this.prev.x = this.position.x, this.prev.y = this.position.y, this.moves) {
                            this.world.updateMotion(this, t);
                            var e = this.velocity.x, i = this.velocity.y;
                            this.newVelocity.set(e * t, i * t), this.position.add(this.newVelocity), this.updateCenter(), this.angle = Math.atan2(i, e), this.speed = Math.sqrt(e * e + i * i), this.collideWorldBounds && this.checkWorldBounds() && this.onWorldBounds && this.world.emit(r.WORLD_BOUNDS, this, this.blocked.up, this.blocked.down, this.blocked.left, this.blocked.right);
                        }
                        this._dx = this.position.x - this.prev.x, this._dy = this.position.y - this.prev.y;
                    },
                    postUpdate: function() {
                        var t = this.position.x - this.prevFrame.x, e = this.position.y - this.prevFrame.y, i = this.gameObject;
                        if (this.moves) {
                            var s = this.deltaMax.x, r = this.deltaMax.y;
                            0 !== s && 0 !== t && (t < 0 && t < -s ? t = -s : t > 0 && t > s && (t = s)), 0 !== r && 0 !== e && (e < 0 && e < -r ? e = -r : e > 0 && e > r && (e = r)), i && (i.x += t, i.y += e);
                        }
                        t < 0 ? this.facing = n.FACING_LEFT : t > 0 && (this.facing = n.FACING_RIGHT), e < 0 ? this.facing = n.FACING_UP : e > 0 && (this.facing = n.FACING_DOWN), this.allowRotation && i && (i.angle += this.deltaZ()), this._tx = t, this._ty = e;
                    },
                    setBoundsRectangle: function(t) {
                        return this.customBoundsRectangle = t || this.world.bounds, this;
                    },
                    checkWorldBounds: function() {
                        var t = this.position, e = this.customBoundsRectangle, i = this.world.checkCollision, s = this.worldBounce ? -this.worldBounce.x : -this.bounce.x, n = this.worldBounce ? -this.worldBounce.y : -this.bounce.y, r = !1;
                        return t.x < e.x && i.left ? (t.x = e.x, this.velocity.x *= s, this.blocked.left = !0, r = !0) : this.right > e.right && i.right && (t.x = e.right - this.width, this.velocity.x *= s, this.blocked.right = !0, r = !0), t.y < e.y && i.up ? (t.y = e.y, this.velocity.y *= n, this.blocked.up = !0, r = !0) : this.bottom > e.bottom && i.down && (t.y = e.bottom - this.height, this.velocity.y *= n, this.blocked.down = !0, r = !0), r && (this.blocked.none = !1, this.updateCenter()), r;
                    },
                    setOffset: function(t, e) {
                        return void 0 === e && (e = t), this.offset.set(t, e), this;
                    },
                    setGameObject: function(t, e) {
                        return void 0 === e && (e = !0), this.world.remove(this), this.gameObject && this.gameObject.body && (this.gameObject.body = null), this.gameObject = t, t.body && (t.body = this), this.setSize(), this.world.add(this), this.enable = e, this;
                    },
                    setSize: function(t, e, i) {
                        void 0 === i && (i = !0);
                        var s = this.gameObject;
                        if (s && (!t && s.frame && (t = s.frame.realWidth), !e && s.frame && (e = s.frame.realHeight)), this.sourceWidth = t, this.sourceHeight = e, this.width = this.sourceWidth * this._sx, this.height = this.sourceHeight * this._sy, this.halfWidth = Math.floor(this.width / 2), this.halfHeight = Math.floor(this.height / 2), this.updateCenter(), i && s && s.getCenter) {
                            var n = (s.width - t) / 2, r = (s.height - e) / 2;
                            this.offset.set(n, r);
                        }
                        return this.isCircle = !1, this.radius = 0, this;
                    },
                    setCircle: function(t, e, i) {
                        return void 0 === e && (e = this.offset.x), void 0 === i && (i = this.offset.y), t > 0 ? (this.isCircle = !0, this.radius = t, this.sourceWidth = 2 * t, this.sourceHeight = 2 * t, this.width = this.sourceWidth * this._sx, this.height = this.sourceHeight * this._sy, this.halfWidth = Math.floor(this.width / 2), this.halfHeight = Math.floor(this.height / 2), this.offset.set(e, i), this.updateCenter()) : this.isCircle = !1, this;
                    },
                    reset: function(t, e) {
                        this.stop();
                        var i = this.gameObject;
                        i && (i.setPosition(t, e), this.rotation = i.angle, this.preRotation = i.angle);
                        var s = this.position;
                        i && i.getTopLeft ? i.getTopLeft(s) : s.set(t, e), this.prev.copy(s), this.prevFrame.copy(s), i && this.updateBounds(), this.updateCenter(), this.collideWorldBounds && this.checkWorldBounds(), this.resetFlags(!0);
                    },
                    stop: function() {
                        return this.velocity.set(0), this.acceleration.set(0), this.speed = 0, this.angularVelocity = 0, this.angularAcceleration = 0, this;
                    },
                    getBounds: function(t) {
                        return t.x = this.x, t.y = this.y, t.right = this.right, t.bottom = this.bottom, t;
                    },
                    hitTest: function(t, e) {
                        return this.isCircle ? this.radius > 0 && t >= this.left && t <= this.right && e >= this.top && e <= this.bottom && (this.center.x - t) * (this.center.x - t) + (this.center.y - e) * (this.center.y - e) <= this.radius * this.radius : h(this, t, e);
                    },
                    onFloor: function() {
                        return this.blocked.down;
                    },
                    onCeiling: function() {
                        return this.blocked.up;
                    },
                    onWall: function() {
                        return this.blocked.left || this.blocked.right;
                    },
                    deltaAbsX: function() {
                        return this._dx > 0 ? this._dx : -this._dx;
                    },
                    deltaAbsY: function() {
                        return this._dy > 0 ? this._dy : -this._dy;
                    },
                    deltaX: function() {
                        return this._dx;
                    },
                    deltaY: function() {
                        return this._dy;
                    },
                    deltaXFinal: function() {
                        return this._tx;
                    },
                    deltaYFinal: function() {
                        return this._ty;
                    },
                    deltaZ: function() {
                        return this.rotation - this.preRotation;
                    },
                    destroy: function() {
                        this.enable = !1, this.world && this.world.pendingDestroy.set(this);
                    },
                    drawDebug: function(t) {
                        var e = this.position, i = e.x + this.halfWidth, s = e.y + this.halfHeight;
                        this.debugShowBody && (t.lineStyle(t.defaultStrokeWidth, this.debugBodyColor), this.isCircle ? t.strokeCircle(i, s, this.width / 2) : (this.checkCollision.up && t.lineBetween(e.x, e.y, e.x + this.width, e.y), this.checkCollision.right && t.lineBetween(e.x + this.width, e.y, e.x + this.width, e.y + this.height), this.checkCollision.down && t.lineBetween(e.x, e.y + this.height, e.x + this.width, e.y + this.height), this.checkCollision.left && t.lineBetween(e.x, e.y, e.x, e.y + this.height))), this.debugShowVelocity && (t.lineStyle(t.defaultStrokeWidth, this.world.defaults.velocityDebugColor, 1), t.lineBetween(i, s, i + this.velocity.x / 2, s + this.velocity.y / 2));
                    },
                    willDrawDebug: function() {
                        return this.debugShowBody || this.debugShowVelocity;
                    },
                    setCollideWorldBounds: function(t, e, i, s) {
                        void 0 === t && (t = !0), this.collideWorldBounds = t;
                        var n = void 0 !== e, r = void 0 !== i;
                        return (n || r) && (this.worldBounce || (this.worldBounce = new l), n && (this.worldBounce.x = e), r && (this.worldBounce.y = i)), void 0 !== s && (this.onWorldBounds = s), this;
                    },
                    setVelocity: function(t, e) {
                        return this.velocity.set(t, e), t = this.velocity.x, e = this.velocity.y, this.speed = Math.sqrt(t * t + e * e), this;
                    },
                    setVelocityX: function(t) {
                        return this.setVelocity(t, this.velocity.y);
                    },
                    setVelocityY: function(t) {
                        return this.setVelocity(this.velocity.x, t);
                    },
                    setMaxVelocity: function(t, e) {
                        return this.maxVelocity.set(t, e), this;
                    },
                    setMaxVelocityX: function(t) {
                        return this.maxVelocity.x = t, this;
                    },
                    setMaxVelocityY: function(t) {
                        return this.maxVelocity.y = t, this;
                    },
                    setMaxSpeed: function(t) {
                        return this.maxSpeed = t, this;
                    },
                    setBounce: function(t, e) {
                        return this.bounce.set(t, e), this;
                    },
                    setBounceX: function(t) {
                        return this.bounce.x = t, this;
                    },
                    setBounceY: function(t) {
                        return this.bounce.y = t, this;
                    },
                    setAcceleration: function(t, e) {
                        return this.acceleration.set(t, e), this;
                    },
                    setAccelerationX: function(t) {
                        return this.acceleration.x = t, this;
                    },
                    setAccelerationY: function(t) {
                        return this.acceleration.y = t, this;
                    },
                    setAllowDrag: function(t) {
                        return void 0 === t && (t = !0), this.allowDrag = t, this;
                    },
                    setAllowGravity: function(t) {
                        return void 0 === t && (t = !0), this.allowGravity = t, this;
                    },
                    setAllowRotation: function(t) {
                        return void 0 === t && (t = !0), this.allowRotation = t, this;
                    },
                    setDrag: function(t, e) {
                        return this.drag.set(t, e), this;
                    },
                    setDamping: function(t) {
                        return this.useDamping = t, this;
                    },
                    setDragX: function(t) {
                        return this.drag.x = t, this;
                    },
                    setDragY: function(t) {
                        return this.drag.y = t, this;
                    },
                    setGravity: function(t, e) {
                        return this.gravity.set(t, e), this;
                    },
                    setGravityX: function(t) {
                        return this.gravity.x = t, this;
                    },
                    setGravityY: function(t) {
                        return this.gravity.y = t, this;
                    },
                    setFriction: function(t, e) {
                        return this.friction.set(t, e), this;
                    },
                    setFrictionX: function(t) {
                        return this.friction.x = t, this;
                    },
                    setFrictionY: function(t) {
                        return this.friction.y = t, this;
                    },
                    setAngularVelocity: function(t) {
                        return this.angularVelocity = t, this;
                    },
                    setAngularAcceleration: function(t) {
                        return this.angularAcceleration = t, this;
                    },
                    setAngularDrag: function(t) {
                        return this.angularDrag = t, this;
                    },
                    setMass: function(t) {
                        return this.mass = t, this;
                    },
                    setImmovable: function(t) {
                        return void 0 === t && (t = !0), this.immovable = t, this;
                    },
                    setEnable: function(t) {
                        return void 0 === t && (t = !0), this.enable = t, this;
                    },
                    processX: function(t, e, i, s) {
                        this.x += t, this.updateCenter(), null !== e && (this.velocity.x = e);
                        var n = this.blocked;
                        i && (n.left = !0, n.none = !1), s && (n.right = !0, n.none = !1);
                    },
                    processY: function(t, e, i, s) {
                        this.y += t, this.updateCenter(), null !== e && (this.velocity.y = e);
                        var n = this.blocked;
                        i && (n.up = !0, n.none = !1), s && (n.down = !0, n.none = !1);
                    },
                    x: {
                        get: function() {
                            return this.position.x;
                        },
                        set: function(t) {
                            this.position.x = t;
                        }
                    },
                    y: {
                        get: function() {
                            return this.position.y;
                        },
                        set: function(t) {
                            this.position.y = t;
                        }
                    },
                    left: {
                        get: function() {
                            return this.position.x;
                        }
                    },
                    right: {
                        get: function() {
                            return this.position.x + this.width;
                        }
                    },
                    top: {
                        get: function() {
                            return this.position.y;
                        }
                    },
                    bottom: {
                        get: function() {
                            return this.position.y + this.height;
                        }
                    }
                });
                t.exports = u;
            },
            3909: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t, e, i, s, n, r, o) {
                        this.world = t, this.name = "", this.active = !0, this.overlapOnly = e, this.object1 = i, this.object2 = s, this.collideCallback = n, this.processCallback = r, this.callbackContext = o;
                    },
                    setName: function(t) {
                        return this.name = t, this;
                    },
                    update: function() {
                        this.world.collideObjects(this.object1, this.object2, this.collideCallback, this.processCallback, this.callbackContext, this.overlapOnly);
                    },
                    destroy: function() {
                        this.world.removeCollider(this), this.active = !1, this.world = null, this.object1 = null, this.object2 = null, this.collideCallback = null, this.processCallback = null, this.callbackContext = null;
                    }
                });
                t.exports = s;
            },
            99523: (t, e, i)=>{
                var s = i(62832), n = i(25084), r = i(97602), o = i(56694), a = i(47401), h = i(10481), l = i(66634), u = i(46346), c = new o({
                    initialize: function(t) {
                        this.world = t, this.scene = t.scene, this.sys = t.scene.sys;
                    },
                    collider: function(t, e, i, s, n) {
                        return this.world.addCollider(t, e, i, s, n);
                    },
                    overlap: function(t, e, i, s, n) {
                        return this.world.addOverlap(t, e, i, s, n);
                    },
                    existing: function(t, e) {
                        var i = e ? a.STATIC_BODY : a.DYNAMIC_BODY;
                        return this.world.enableBody(t, i), t;
                    },
                    staticImage: function(t, e, i, n) {
                        var r = new s(this.scene, t, e, i, n);
                        return this.sys.displayList.add(r), this.world.enableBody(r, a.STATIC_BODY), r;
                    },
                    image: function(t, e, i, n) {
                        var r = new s(this.scene, t, e, i, n);
                        return this.sys.displayList.add(r), this.world.enableBody(r, a.DYNAMIC_BODY), r;
                    },
                    staticSprite: function(t, e, i, s) {
                        var r = new n(this.scene, t, e, i, s);
                        return this.sys.displayList.add(r), this.sys.updateList.add(r), this.world.enableBody(r, a.STATIC_BODY), r;
                    },
                    sprite: function(t, e, i, s) {
                        var r = new n(this.scene, t, e, i, s);
                        return this.sys.displayList.add(r), this.sys.updateList.add(r), this.world.enableBody(r, a.DYNAMIC_BODY), r;
                    },
                    staticGroup: function(t, e) {
                        return this.sys.updateList.add(new u(this.world, this.world.scene, t, e));
                    },
                    group: function(t, e) {
                        return this.sys.updateList.add(new h(this.world, this.world.scene, t, e));
                    },
                    body: function(t, e, i, s) {
                        var n = new r(this.world);
                        return n.position.set(t, e), i && s && n.setSize(i, s), this.world.add(n, a.DYNAMIC_BODY), n;
                    },
                    staticBody: function(t, e, i, s) {
                        var n = new l(this.world);
                        return n.position.set(t, e), i && s && n.setSize(i, s), this.world.add(n, a.STATIC_BODY), n;
                    },
                    destroy: function() {
                        this.world = null, this.scene = null, this.sys = null;
                    }
                });
                t.exports = c;
            },
            75671: (t, e, i)=>{
                var s = i(47401);
                t.exports = function(t, e, i, n) {
                    var r = 0, o = t.deltaAbsX() + e.deltaAbsX() + n;
                    return 0 === t._dx && 0 === e._dx ? (t.embedded = !0, e.embedded = !0) : t._dx > e._dx ? (r = t.right - e.x) > o && !i || !1 === t.checkCollision.right || !1 === e.checkCollision.left ? r = 0 : (t.touching.none = !1, t.touching.right = !0, e.touching.none = !1, e.touching.left = !0, e.physicsType !== s.STATIC_BODY || i || (t.blocked.none = !1, t.blocked.right = !0), t.physicsType !== s.STATIC_BODY || i || (e.blocked.none = !1, e.blocked.left = !0)) : t._dx < e._dx && (-(r = t.x - e.width - e.x) > o && !i || !1 === t.checkCollision.left || !1 === e.checkCollision.right ? r = 0 : (t.touching.none = !1, t.touching.left = !0, e.touching.none = !1, e.touching.right = !0, e.physicsType !== s.STATIC_BODY || i || (t.blocked.none = !1, t.blocked.left = !0), t.physicsType !== s.STATIC_BODY || i || (e.blocked.none = !1, e.blocked.right = !0))), t.overlapX = r, e.overlapX = r, r;
                };
            },
            66185: (t, e, i)=>{
                var s = i(47401);
                t.exports = function(t, e, i, n) {
                    var r = 0, o = t.deltaAbsY() + e.deltaAbsY() + n;
                    return 0 === t._dy && 0 === e._dy ? (t.embedded = !0, e.embedded = !0) : t._dy > e._dy ? (r = t.bottom - e.y) > o && !i || !1 === t.checkCollision.down || !1 === e.checkCollision.up ? r = 0 : (t.touching.none = !1, t.touching.down = !0, e.touching.none = !1, e.touching.up = !0, e.physicsType !== s.STATIC_BODY || i || (t.blocked.none = !1, t.blocked.down = !0), t.physicsType !== s.STATIC_BODY || i || (e.blocked.none = !1, e.blocked.up = !0)) : t._dy < e._dy && (-(r = t.y - e.bottom) > o && !i || !1 === t.checkCollision.up || !1 === e.checkCollision.down ? r = 0 : (t.touching.none = !1, t.touching.up = !0, e.touching.none = !1, e.touching.down = !0, e.physicsType !== s.STATIC_BODY || i || (t.blocked.none = !1, t.blocked.up = !0), t.physicsType !== s.STATIC_BODY || i || (e.blocked.none = !1, e.blocked.down = !0))), t.overlapY = r, e.overlapY = r, r;
                };
            },
            10481: (t, e, i)=>{
                var s = i(25084), n = i(56694), r = i(47401), o = i(72632), a = i(59192), h = i(42911), l = new n({
                    Extends: a,
                    initialize: function(t, e, i, n) {
                        if (i || n) {
                            if (h(i)) n = i, i = null, n.internalCreateCallback = this.createCallbackHandler, n.internalRemoveCallback = this.removeCallbackHandler;
                            else if (Array.isArray(i) && h(i[0])) {
                                n = i[0];
                                var l = this;
                                i.forEach(function(t) {
                                    t.internalCreateCallback = l.createCallbackHandler, t.internalRemoveCallback = l.removeCallbackHandler;
                                }), i = null;
                            } else n = {
                                internalCreateCallback: this.createCallbackHandler,
                                internalRemoveCallback: this.removeCallbackHandler
                            };
                        } else n = {
                            internalCreateCallback: this.createCallbackHandler,
                            internalRemoveCallback: this.removeCallbackHandler
                        };
                        this.world = t, n.classType = o(n, "classType", s), this.physicsType = r.DYNAMIC_BODY, this.defaults = {
                            setCollideWorldBounds: o(n, "collideWorldBounds", !1),
                            setBoundsRectangle: o(n, "customBoundsRectangle", null),
                            setAccelerationX: o(n, "accelerationX", 0),
                            setAccelerationY: o(n, "accelerationY", 0),
                            setAllowDrag: o(n, "allowDrag", !0),
                            setAllowGravity: o(n, "allowGravity", !0),
                            setAllowRotation: o(n, "allowRotation", !0),
                            setDamping: o(n, "useDamping", !1),
                            setBounceX: o(n, "bounceX", 0),
                            setBounceY: o(n, "bounceY", 0),
                            setDragX: o(n, "dragX", 0),
                            setDragY: o(n, "dragY", 0),
                            setEnable: o(n, "enable", !0),
                            setGravityX: o(n, "gravityX", 0),
                            setGravityY: o(n, "gravityY", 0),
                            setFrictionX: o(n, "frictionX", 0),
                            setFrictionY: o(n, "frictionY", 0),
                            setMaxSpeed: o(n, "maxSpeed", -1),
                            setMaxVelocityX: o(n, "maxVelocityX", 1e4),
                            setMaxVelocityY: o(n, "maxVelocityY", 1e4),
                            setVelocityX: o(n, "velocityX", 0),
                            setVelocityY: o(n, "velocityY", 0),
                            setAngularVelocity: o(n, "angularVelocity", 0),
                            setAngularAcceleration: o(n, "angularAcceleration", 0),
                            setAngularDrag: o(n, "angularDrag", 0),
                            setMass: o(n, "mass", 1),
                            setImmovable: o(n, "immovable", !1)
                        }, a.call(this, e, i, n), this.type = "PhysicsGroup";
                    },
                    createCallbackHandler: function(t) {
                        t.body || this.world.enableBody(t, r.DYNAMIC_BODY);
                        var e = t.body;
                        for(var i in this.defaults)e[i](this.defaults[i]);
                    },
                    removeCallbackHandler: function(t) {
                        t.body && this.world.disableBody(t);
                    },
                    setVelocity: function(t, e, i) {
                        void 0 === i && (i = 0);
                        for(var s = this.getChildren(), n = 0; n < s.length; n++)s[n].body.velocity.set(t + n * i, e + n * i);
                        return this;
                    },
                    setVelocityX: function(t, e) {
                        void 0 === e && (e = 0);
                        for(var i = this.getChildren(), s = 0; s < i.length; s++)i[s].body.velocity.x = t + s * e;
                        return this;
                    },
                    setVelocityY: function(t, e) {
                        void 0 === e && (e = 0);
                        for(var i = this.getChildren(), s = 0; s < i.length; s++)i[s].body.velocity.y = t + s * e;
                        return this;
                    }
                });
                t.exports = l;
            },
            22916: (t)=>{
                var e, i, s, n, r, o, a, h, l, u, c, d, f, p, v, g, m, y = function() {
                    return u && v && i.blocked.right ? (e.processX(-m, a, !1, !0), 1) : l && g && i.blocked.left ? (e.processX(m, a, !0), 1) : f && g && e.blocked.right ? (i.processX(-m, h, !1, !0), 2) : d && v && e.blocked.left ? (i.processX(m, h, !0), 2) : 0;
                }, x = function(t) {
                    if (s && n) m *= .5, 0 === t || 3 === t ? (e.processX(m, r), i.processX(-m, o)) : (e.processX(-m, r), i.processX(m, o));
                    else if (s && !n) 0 === t || 3 === t ? e.processX(m, a, !0) : e.processX(-m, a, !1, !0);
                    else if (!s && n) 0 === t || 3 === t ? i.processX(-m, h, !1, !0) : i.processX(m, h, !0);
                    else {
                        var v = .5 * m;
                        0 === t ? p ? (e.processX(m, 0, !0), i.processX(0, null, !1, !0)) : f ? (e.processX(v, 0, !0), i.processX(-v, 0, !1, !0)) : (e.processX(v, i.velocity.x, !0), i.processX(-v, null, !1, !0)) : 1 === t ? c ? (e.processX(0, null, !1, !0), i.processX(m, 0, !0)) : u ? (e.processX(-v, 0, !1, !0), i.processX(v, 0, !0)) : (e.processX(-v, null, !1, !0), i.processX(v, e.velocity.x, !0)) : 2 === t ? p ? (e.processX(-m, 0, !1, !0), i.processX(0, null, !0)) : d ? (e.processX(-v, 0, !1, !0), i.processX(v, 0, !0)) : (e.processX(-v, i.velocity.x, !1, !0), i.processX(v, null, !0)) : 3 === t && (c ? (e.processX(0, null, !0), i.processX(-m, 0, !1, !0)) : l ? (e.processX(v, 0, !0), i.processX(-v, 0, !1, !0)) : (e.processX(v, i.velocity.y, !0), i.processX(-v, null, !1, !0)));
                    }
                    return !0;
                };
                t.exports = {
                    BlockCheck: y,
                    Check: function() {
                        var t = e.velocity.x, s = i.velocity.x, n = Math.sqrt(s * s * i.mass / e.mass) * (s > 0 ? 1 : -1), a = Math.sqrt(t * t * e.mass / i.mass) * (t > 0 ? 1 : -1), h = .5 * (n + a);
                        return a -= h, r = h + (n -= h) * e.bounce.x, o = h + a * i.bounce.x, l && g ? x(0) : d && v ? x(1) : u && v ? x(2) : !(!f || !g) && x(3);
                    },
                    Set: function(t, r, o) {
                        i = r;
                        var x = (e = t).velocity.x, T = i.velocity.x;
                        return s = e.pushable, l = e._dx < 0, u = e._dx > 0, c = 0 === e._dx, v = Math.abs(e.right - i.x) <= Math.abs(i.right - e.x), a = T - x * e.bounce.x, n = i.pushable, d = i._dx < 0, f = i._dx > 0, p = 0 === i._dx, g = !v, h = x - T * i.bounce.x, m = Math.abs(o), y();
                    },
                    Run: x,
                    RunImmovableBody1: function(t) {
                        1 === t ? i.velocity.x = 0 : v ? i.processX(m, h, !0) : i.processX(-m, h, !1, !0), e.moves && (i.y += (e.y - e.prev.y) * e.friction.y, i._dy = i.y - i.prev.y);
                    },
                    RunImmovableBody2: function(t) {
                        2 === t ? e.velocity.x = 0 : g ? e.processX(m, a, !0) : e.processX(-m, a, !1, !0), i.moves && (e.y += (i.y - i.prev.y) * i.friction.y, e._dy = e.y - e.prev.y);
                    }
                };
            },
            67050: (t)=>{
                var e, i, s, n, r, o, a, h, l, u, c, d, f, p, v, g, m, y = function() {
                    return u && v && i.blocked.down ? (e.processY(-m, a, !1, !0), 1) : l && g && i.blocked.up ? (e.processY(m, a, !0), 1) : f && g && e.blocked.down ? (i.processY(-m, h, !1, !0), 2) : d && v && e.blocked.up ? (i.processY(m, h, !0), 2) : 0;
                }, x = function(t) {
                    if (s && n) m *= .5, 0 === t || 3 === t ? (e.processY(m, r), i.processY(-m, o)) : (e.processY(-m, r), i.processY(m, o));
                    else if (s && !n) 0 === t || 3 === t ? e.processY(m, a, !0) : e.processY(-m, a, !1, !0);
                    else if (!s && n) 0 === t || 3 === t ? i.processY(-m, h, !1, !0) : i.processY(m, h, !0);
                    else {
                        var v = .5 * m;
                        0 === t ? p ? (e.processY(m, 0, !0), i.processY(0, null, !1, !0)) : f ? (e.processY(v, 0, !0), i.processY(-v, 0, !1, !0)) : (e.processY(v, i.velocity.y, !0), i.processY(-v, null, !1, !0)) : 1 === t ? c ? (e.processY(0, null, !1, !0), i.processY(m, 0, !0)) : u ? (e.processY(-v, 0, !1, !0), i.processY(v, 0, !0)) : (e.processY(-v, null, !1, !0), i.processY(v, e.velocity.y, !0)) : 2 === t ? p ? (e.processY(-m, 0, !1, !0), i.processY(0, null, !0)) : d ? (e.processY(-v, 0, !1, !0), i.processY(v, 0, !0)) : (e.processY(-v, i.velocity.y, !1, !0), i.processY(v, null, !0)) : 3 === t && (c ? (e.processY(0, null, !0), i.processY(-m, 0, !1, !0)) : l ? (e.processY(v, 0, !0), i.processY(-v, 0, !1, !0)) : (e.processY(v, i.velocity.y, !0), i.processY(-v, null, !1, !0)));
                    }
                    return !0;
                };
                t.exports = {
                    BlockCheck: y,
                    Check: function() {
                        var t = e.velocity.y, s = i.velocity.y, n = Math.sqrt(s * s * i.mass / e.mass) * (s > 0 ? 1 : -1), a = Math.sqrt(t * t * e.mass / i.mass) * (t > 0 ? 1 : -1), h = .5 * (n + a);
                        return a -= h, r = h + (n -= h) * e.bounce.y, o = h + a * i.bounce.y, l && g ? x(0) : d && v ? x(1) : u && v ? x(2) : !(!f || !g) && x(3);
                    },
                    Set: function(t, r, o) {
                        i = r;
                        var x = (e = t).velocity.y, T = i.velocity.y;
                        return s = e.pushable, l = e._dy < 0, u = e._dy > 0, c = 0 === e._dy, v = Math.abs(e.bottom - i.y) <= Math.abs(i.bottom - e.y), a = T - x * e.bounce.y, n = i.pushable, d = i._dy < 0, f = i._dy > 0, p = 0 === i._dy, g = !v, h = x - T * i.bounce.y, m = Math.abs(o), y();
                    },
                    Run: x,
                    RunImmovableBody1: function(t) {
                        1 === t ? i.velocity.y = 0 : v ? i.processY(m, h, !0) : i.processY(-m, h, !1, !0), e.moves && (i.x += (e.x - e.prev.x) * e.friction.x, i._dx = i.x - i.prev.x);
                    },
                    RunImmovableBody2: function(t) {
                        2 === t ? e.velocity.y = 0 : g ? e.processY(m, a, !0) : e.processY(-m, a, !1, !0), i.moves && (e.x += (i.x - i.prev.x) * i.friction.x, e._dx = e.x - e.prev.x);
                    }
                };
            },
            61777: (t, e, i)=>{
                var s = i(75671), n = i(22916);
                t.exports = function(t, e, i, r, o) {
                    void 0 === o && (o = s(t, e, i, r));
                    var a = t.immovable, h = e.immovable;
                    if (i || 0 === o || a && h || t.customSeparateX || e.customSeparateX) return 0 !== o || t.embedded && e.embedded;
                    var l = n.Set(t, e, o);
                    return a || h ? (a ? n.RunImmovableBody1(l) : h && n.RunImmovableBody2(l), !0) : l > 0 || n.Check();
                };
            },
            25299: (t, e, i)=>{
                var s = i(66185), n = i(67050);
                t.exports = function(t, e, i, r, o) {
                    void 0 === o && (o = s(t, e, i, r));
                    var a = t.immovable, h = e.immovable;
                    if (i || 0 === o || a && h || t.customSeparateY || e.customSeparateY) return 0 !== o || t.embedded && e.embedded;
                    var l = n.Set(t, e, o);
                    return a || h ? (a ? n.RunImmovableBody1(l) : h && n.RunImmovableBody2(l), !0) : l > 0 || n.Check();
                };
            },
            66634: (t, e, i)=>{
                var s = i(65650), n = i(56694), r = i(47401), o = i(94287), a = i(93736), h = new n({
                    initialize: function(t, e) {
                        var i = 64, s = 64, n = void 0 !== e;
                        n && e.displayWidth && (i = e.displayWidth, s = e.displayHeight), n || (e = {
                            x: 0,
                            y: 0,
                            angle: 0,
                            rotation: 0,
                            scaleX: 1,
                            scaleY: 1,
                            displayOriginX: 0,
                            displayOriginY: 0
                        }), this.world = t, this.gameObject = n ? e : void 0, this.isBody = !0, this.debugShowBody = t.defaults.debugShowStaticBody, this.debugBodyColor = t.defaults.staticBodyDebugColor, this.enable = !0, this.isCircle = !1, this.radius = 0, this.offset = new a, this.position = new a(e.x - i * e.originX, e.y - s * e.originY), this.width = i, this.height = s, this.halfWidth = Math.abs(this.width / 2), this.halfHeight = Math.abs(this.height / 2), this.center = new a(this.position.x + this.halfWidth, this.position.y + this.halfHeight), this.velocity = a.ZERO, this.allowGravity = !1, this.gravity = a.ZERO, this.bounce = a.ZERO, this.onWorldBounds = !1, this.onCollide = !1, this.onOverlap = !1, this.mass = 1, this.immovable = !0, this.pushable = !1, this.customSeparateX = !1, this.customSeparateY = !1, this.overlapX = 0, this.overlapY = 0, this.overlapR = 0, this.embedded = !1, this.collideWorldBounds = !1, this.checkCollision = {
                            none: !1,
                            up: !0,
                            down: !0,
                            left: !0,
                            right: !0
                        }, this.touching = {
                            none: !0,
                            up: !1,
                            down: !1,
                            left: !1,
                            right: !1
                        }, this.wasTouching = {
                            none: !0,
                            up: !1,
                            down: !1,
                            left: !1,
                            right: !1
                        }, this.blocked = {
                            none: !0,
                            up: !1,
                            down: !1,
                            left: !1,
                            right: !1
                        }, this.physicsType = r.STATIC_BODY, this._dx = 0, this._dy = 0;
                    },
                    setGameObject: function(t, e) {
                        return t && t !== this.gameObject && (this.gameObject.body = null, t.body = this, this.gameObject = t), e && this.updateFromGameObject(), this;
                    },
                    updateFromGameObject: function() {
                        this.world.staticTree.remove(this);
                        var t = this.gameObject;
                        return t.getTopLeft(this.position), this.width = t.displayWidth, this.height = t.displayHeight, this.halfWidth = Math.abs(this.width / 2), this.halfHeight = Math.abs(this.height / 2), this.center.set(this.position.x + this.halfWidth, this.position.y + this.halfHeight), this.world.staticTree.insert(this), this;
                    },
                    setOffset: function(t, e) {
                        return void 0 === e && (e = t), this.world.staticTree.remove(this), this.position.x -= this.offset.x, this.position.y -= this.offset.y, this.offset.set(t, e), this.position.x += this.offset.x, this.position.y += this.offset.y, this.updateCenter(), this.world.staticTree.insert(this), this;
                    },
                    setSize: function(t, e, i) {
                        void 0 === i && (i = !0);
                        var s = this.gameObject;
                        if (!t && s.frame && (t = s.frame.realWidth), !e && s.frame && (e = s.frame.realHeight), this.world.staticTree.remove(this), this.width = t, this.height = e, this.halfWidth = Math.floor(t / 2), this.halfHeight = Math.floor(e / 2), i && s.getCenter) {
                            var n = s.displayWidth / 2, r = s.displayHeight / 2;
                            this.position.x -= this.offset.x, this.position.y -= this.offset.y, this.offset.set(n - this.halfWidth, r - this.halfHeight), this.position.x += this.offset.x, this.position.y += this.offset.y;
                        }
                        return this.updateCenter(), this.isCircle = !1, this.radius = 0, this.world.staticTree.insert(this), this;
                    },
                    setCircle: function(t, e, i) {
                        return void 0 === e && (e = this.offset.x), void 0 === i && (i = this.offset.y), t > 0 ? (this.world.staticTree.remove(this), this.isCircle = !0, this.radius = t, this.width = 2 * t, this.height = 2 * t, this.halfWidth = Math.floor(this.width / 2), this.halfHeight = Math.floor(this.height / 2), this.offset.set(e, i), this.updateCenter(), this.world.staticTree.insert(this)) : this.isCircle = !1, this;
                    },
                    updateCenter: function() {
                        this.center.set(this.position.x + this.halfWidth, this.position.y + this.halfHeight);
                    },
                    reset: function(t, e) {
                        var i = this.gameObject;
                        void 0 === t && (t = i.x), void 0 === e && (e = i.y), this.world.staticTree.remove(this), i.setPosition(t, e), i.getTopLeft(this.position), this.updateCenter(), this.world.staticTree.insert(this);
                    },
                    stop: function() {
                        return this;
                    },
                    getBounds: function(t) {
                        return t.x = this.x, t.y = this.y, t.right = this.right, t.bottom = this.bottom, t;
                    },
                    hitTest: function(t, e) {
                        return this.isCircle ? s(this, t, e) : o(this, t, e);
                    },
                    postUpdate: function() {},
                    deltaAbsX: function() {
                        return 0;
                    },
                    deltaAbsY: function() {
                        return 0;
                    },
                    deltaX: function() {
                        return 0;
                    },
                    deltaY: function() {
                        return 0;
                    },
                    deltaZ: function() {
                        return 0;
                    },
                    destroy: function() {
                        this.enable = !1, this.world.pendingDestroy.set(this);
                    },
                    drawDebug: function(t) {
                        var e = this.position, i = e.x + this.halfWidth, s = e.y + this.halfHeight;
                        this.debugShowBody && (t.lineStyle(t.defaultStrokeWidth, this.debugBodyColor, 1), this.isCircle ? t.strokeCircle(i, s, this.width / 2) : t.strokeRect(e.x, e.y, this.width, this.height));
                    },
                    willDrawDebug: function() {
                        return this.debugShowBody;
                    },
                    setMass: function(t) {
                        return t <= 0 && (t = .1), this.mass = t, this;
                    },
                    x: {
                        get: function() {
                            return this.position.x;
                        },
                        set: function(t) {
                            this.world.staticTree.remove(this), this.position.x = t, this.world.staticTree.insert(this);
                        }
                    },
                    y: {
                        get: function() {
                            return this.position.y;
                        },
                        set: function(t) {
                            this.world.staticTree.remove(this), this.position.y = t, this.world.staticTree.insert(this);
                        }
                    },
                    left: {
                        get: function() {
                            return this.position.x;
                        }
                    },
                    right: {
                        get: function() {
                            return this.position.x + this.width;
                        }
                    },
                    top: {
                        get: function() {
                            return this.position.y;
                        }
                    },
                    bottom: {
                        get: function() {
                            return this.position.y + this.height;
                        }
                    }
                });
                t.exports = h;
            },
            46346: (t, e, i)=>{
                var s = i(25084), n = i(56694), r = i(47401), o = i(72632), a = i(59192), h = i(42911), l = new n({
                    Extends: a,
                    initialize: function(t, e, i, n) {
                        i || n ? h(i) ? (n = i, i = null, n.internalCreateCallback = this.createCallbackHandler, n.internalRemoveCallback = this.removeCallbackHandler, n.createMultipleCallback = this.createMultipleCallbackHandler, n.classType = o(n, "classType", s)) : Array.isArray(i) && h(i[0]) ? (n = i, i = null, n.forEach(function(t) {
                            t.internalCreateCallback = this.createCallbackHandler, t.internalRemoveCallback = this.removeCallbackHandler, t.createMultipleCallback = this.createMultipleCallbackHandler, t.classType = o(t, "classType", s);
                        })) : n = {
                            internalCreateCallback: this.createCallbackHandler,
                            internalRemoveCallback: this.removeCallbackHandler
                        } : n = {
                            internalCreateCallback: this.createCallbackHandler,
                            internalRemoveCallback: this.removeCallbackHandler,
                            createMultipleCallback: this.createMultipleCallbackHandler,
                            classType: s
                        }, this.world = t, this.physicsType = r.STATIC_BODY, a.call(this, e, i, n), this.type = "StaticPhysicsGroup";
                    },
                    createCallbackHandler: function(t) {
                        t.body || this.world.enableBody(t, r.STATIC_BODY);
                    },
                    removeCallbackHandler: function(t) {
                        t.body && this.world.disableBody(t);
                    },
                    createMultipleCallbackHandler: function() {
                        this.refresh();
                    },
                    refresh: function() {
                        for(var t = this.children.entries, e = 0; e < t.length; e++)t[e].body.reset();
                        return this;
                    }
                });
                t.exports = l;
            },
            85233: (t, e, i)=>{
                var s = i(94240), n = i(97602), r = i(82897), o = i(56694), a = i(3909), h = i(47401), l = i(53996), u = i(92951), c = i(6659), d = i(27037), f = i(88456), p = i(41935), v = i(54726), g = i(75671), m = i(66185), y = i(44662), x = i(10850), T = i(83392), w = i(74623), b = i(25163), S = i(74118), E = i(68687), A = i(27354), C = i(61777), _ = i(25299), M = i(58403), P = i(66634), R = i(28808), O = i(69360), L = i(93736), F = i(1071), D = new o({
                    Extends: c,
                    initialize: function(t, e) {
                        c.call(this), this.scene = t, this.bodies = new M, this.staticBodies = new M, this.pendingDestroy = new M, this.colliders = new w, this.gravity = new L(x(e, "gravity.x", 0), x(e, "gravity.y", 0)), this.bounds = new S(x(e, "x", 0), x(e, "y", 0), x(e, "width", t.sys.scale.width), x(e, "height", t.sys.scale.height)), this.checkCollision = {
                            up: x(e, "checkCollision.up", !0),
                            down: x(e, "checkCollision.down", !0),
                            left: x(e, "checkCollision.left", !0),
                            right: x(e, "checkCollision.right", !0)
                        }, this.fps = x(e, "fps", 60), this.fixedStep = x(e, "fixedStep", !0), this._elapsed = 0, this._frameTime = 1 / this.fps, this._frameTimeMS = 1e3 * this._frameTime, this.stepsLastFrame = 0, this.timeScale = x(e, "timeScale", 1), this.OVERLAP_BIAS = x(e, "overlapBias", 4), this.TILE_BIAS = x(e, "tileBias", 16), this.forceX = x(e, "forceX", !1), this.isPaused = x(e, "isPaused", !1), this._total = 0, this.drawDebug = x(e, "debug", !1), this.debugGraphic, this.defaults = {
                            debugShowBody: x(e, "debugShowBody", !0),
                            debugShowStaticBody: x(e, "debugShowStaticBody", !0),
                            debugShowVelocity: x(e, "debugShowVelocity", !0),
                            bodyDebugColor: x(e, "debugBodyColor", 16711935),
                            staticBodyDebugColor: x(e, "debugStaticBodyColor", 255),
                            velocityDebugColor: x(e, "debugVelocityColor", 65280)
                        }, this.maxEntries = x(e, "maxEntries", 16), this.useTree = x(e, "useTree", !0), this.tree = new E(this.maxEntries), this.staticTree = new E(this.maxEntries), this.treeMinMax = {
                            minX: 0,
                            minY: 0,
                            maxX: 0,
                            maxY: 0
                        }, this._tempMatrix = new O, this._tempMatrix2 = new O, this.tileFilterOptions = {
                            isColliding: !0,
                            isNotEmpty: !0,
                            hasInterestingFace: !0
                        }, this.drawDebug && this.createDebugGraphic();
                    },
                    enable: function(t, e) {
                        void 0 === e && (e = h.DYNAMIC_BODY), Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var i = 0; i < t.length; i++){
                            var s = t[i];
                            if (s.isParent) for(var n = s.getChildren(), r = 0; r < n.length; r++){
                                var o = n[r];
                                o.isParent ? this.enable(o, e) : this.enableBody(o, e);
                            }
                            else this.enableBody(s, e);
                        }
                    },
                    enableBody: function(t, e) {
                        return void 0 === e && (e = h.DYNAMIC_BODY), t.hasTransformComponent && (t.body || (e === h.DYNAMIC_BODY ? t.body = new n(this, t) : e === h.STATIC_BODY && (t.body = new P(this, t))), this.add(t.body)), t;
                    },
                    add: function(t) {
                        return t.physicsType === h.DYNAMIC_BODY ? this.bodies.set(t) : t.physicsType === h.STATIC_BODY && (this.staticBodies.set(t), this.staticTree.insert(t)), t.enable = !0, t;
                    },
                    disable: function(t) {
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var e = 0; e < t.length; e++){
                            var i = t[e];
                            if (i.isParent) for(var s = i.getChildren(), n = 0; n < s.length; n++){
                                var r = s[n];
                                r.isParent ? this.disable(r) : this.disableBody(r.body);
                            }
                            else this.disableBody(i.body);
                        }
                    },
                    disableBody: function(t) {
                        this.remove(t), t.enable = !1;
                    },
                    remove: function(t) {
                        t.physicsType === h.DYNAMIC_BODY ? (this.tree.remove(t), this.bodies.delete(t)) : t.physicsType === h.STATIC_BODY && (this.staticBodies.delete(t), this.staticTree.remove(t));
                    },
                    createDebugGraphic: function() {
                        var t = this.scene.sys.add.graphics({
                            x: 0,
                            y: 0
                        });
                        return t.setDepth(Number.MAX_VALUE), this.debugGraphic = t, this.drawDebug = !0, t;
                    },
                    setBounds: function(t, e, i, s, n, r, o, a) {
                        return this.bounds.setTo(t, e, i, s), void 0 !== n && this.setBoundsCollision(n, r, o, a), this;
                    },
                    setBoundsCollision: function(t, e, i, s) {
                        return void 0 === t && (t = !0), void 0 === e && (e = !0), void 0 === i && (i = !0), void 0 === s && (s = !0), this.checkCollision.left = t, this.checkCollision.right = e, this.checkCollision.up = i, this.checkCollision.down = s, this;
                    },
                    pause: function() {
                        return this.isPaused = !0, this.emit(d.PAUSE), this;
                    },
                    resume: function() {
                        return this.isPaused = !1, this.emit(d.RESUME), this;
                    },
                    addCollider: function(t, e, i, s, n) {
                        void 0 === i && (i = null), void 0 === s && (s = null), void 0 === n && (n = i);
                        var r = new a(this, !1, t, e, i, s, n);
                        return this.colliders.add(r), r;
                    },
                    addOverlap: function(t, e, i, s, n) {
                        void 0 === i && (i = null), void 0 === s && (s = null), void 0 === n && (n = i);
                        var r = new a(this, !0, t, e, i, s, n);
                        return this.colliders.add(r), r;
                    },
                    removeCollider: function(t) {
                        return this.colliders.remove(t), this;
                    },
                    setFPS: function(t) {
                        return this.fps = t, this._frameTime = 1 / this.fps, this._frameTimeMS = 1e3 * this._frameTime, this;
                    },
                    update: function(t, e) {
                        if (!this.isPaused && 0 !== this.bodies.size) {
                            var i, s, n = this._frameTime, r = this._frameTimeMS * this.timeScale;
                            this._elapsed += e;
                            var o = this.bodies.entries, a = this._elapsed >= r;
                            for(this.fixedStep || (n = .001 * e, a = !0, this._elapsed = 0), i = 0; i < o.length; i++)(s = o[i]).enable && s.preUpdate(a, n);
                            if (a) {
                                this._elapsed -= r, this.stepsLastFrame = 1, this.useTree && (this.tree.clear(), this.tree.load(o));
                                var h = this.colliders.update();
                                for(i = 0; i < h.length; i++){
                                    var l = h[i];
                                    l.active && l.update();
                                }
                                this.emit(d.WORLD_STEP, n);
                            }
                            for(; this._elapsed >= r;)this._elapsed -= r, this.step(n);
                        }
                    },
                    step: function(t) {
                        var e, i, s = this.bodies.entries, n = s.length;
                        for(e = 0; e < n; e++)(i = s[e]).enable && i.update(t);
                        this.useTree && (this.tree.clear(), this.tree.load(s));
                        var r = this.colliders.update();
                        for(e = 0; e < r.length; e++){
                            var o = r[e];
                            o.active && o.update();
                        }
                        this.emit(d.WORLD_STEP, t), this.stepsLastFrame++;
                    },
                    postUpdate: function() {
                        var t, e, i = this.bodies.entries, s = i.length, n = this.bodies, r = this.staticBodies;
                        if (this.stepsLastFrame) for(this.stepsLastFrame = 0, t = 0; t < s; t++)(e = i[t]).enable && e.postUpdate();
                        if (this.drawDebug) {
                            var o = this.debugGraphic;
                            for(o.clear(), t = 0; t < s; t++)(e = i[t]).willDrawDebug() && e.drawDebug(o);
                            for(s = (i = r.entries).length, t = 0; t < s; t++)(e = i[t]).willDrawDebug() && e.drawDebug(o);
                        }
                        var a = this.pendingDestroy;
                        if (a.size > 0) {
                            var l = this.tree, u = this.staticTree;
                            for(s = (i = a.entries).length, t = 0; t < s; t++)(e = i[t]).physicsType === h.DYNAMIC_BODY ? (l.remove(e), n.delete(e)) : e.physicsType === h.STATIC_BODY && (u.remove(e), r.delete(e)), e.world = void 0, e.gameObject = void 0;
                            a.clear();
                        }
                    },
                    updateMotion: function(t, e) {
                        t.allowRotation && this.computeAngularVelocity(t, e), this.computeVelocity(t, e);
                    },
                    computeAngularVelocity: function(t, e) {
                        var i = t.angularVelocity, s = t.angularAcceleration, n = t.angularDrag, o = t.maxAngular;
                        s ? i += s * e : t.allowDrag && n && (p(i - (n *= e), 0, .1) ? i -= n : v(i + n, 0, .1) ? i += n : i = 0);
                        var a = (i = r(i, -o, o)) - t.angularVelocity;
                        t.angularVelocity += a, t.rotation += t.angularVelocity * e;
                    },
                    computeVelocity: function(t, e) {
                        var i = t.velocity.x, s = t.acceleration.x, n = t.drag.x, o = t.maxVelocity.x, a = t.velocity.y, h = t.acceleration.y, l = t.drag.y, u = t.maxVelocity.y, c = t.speed, d = t.maxSpeed, g = t.allowDrag, m = t.useDamping;
                        t.allowGravity && (i += (this.gravity.x + t.gravity.x) * e, a += (this.gravity.y + t.gravity.y) * e), s ? i += s * e : g && n && (m ? (i *= n = Math.pow(n, e), c = Math.sqrt(i * i + a * a), f(c, 0, .001) && (i = 0)) : p(i - (n *= e), 0, .01) ? i -= n : v(i + n, 0, .01) ? i += n : i = 0), h ? a += h * e : g && l && (m ? (a *= l = Math.pow(l, e), c = Math.sqrt(i * i + a * a), f(c, 0, .001) && (a = 0)) : p(a - (l *= e), 0, .01) ? a -= l : v(a + l, 0, .01) ? a += l : a = 0), i = r(i, -o, o), a = r(a, -u, u), t.velocity.set(i, a), d > -1 && t.velocity.length() > d && (t.velocity.normalize().scale(d), c = d), t.speed = c;
                    },
                    separate: function(t, e, i, s, n) {
                        var r, o, a = !1, h = !0;
                        if (!t.enable || !e.enable || t.checkCollision.none || e.checkCollision.none || !this.intersects(t, e)) return a;
                        if (i && !1 === i.call(s, t.gameObject, e.gameObject)) return a;
                        if (t.isCircle || e.isCircle) {
                            var l = this.separateCircle(t, e, n);
                            l.result ? (a = !0, h = !1) : (r = l.x, o = l.y, h = !0);
                        }
                        if (h) {
                            var u = !1, c = !1, f = this.OVERLAP_BIAS;
                            n ? (u = C(t, e, n, f, r), c = _(t, e, n, f, o)) : this.forceX || Math.abs(this.gravity.y + t.gravity.y) < Math.abs(this.gravity.x + t.gravity.x) ? (u = C(t, e, n, f, r), this.intersects(t, e) && (c = _(t, e, n, f, o))) : (c = _(t, e, n, f, o), this.intersects(t, e) && (u = C(t, e, n, f, r))), a = u || c;
                        }
                        return a && (n ? (t.onOverlap || e.onOverlap) && this.emit(d.OVERLAP, t.gameObject, e.gameObject, t, e) : (t.onCollide || e.onCollide) && this.emit(d.COLLIDE, t.gameObject, e.gameObject, t, e)), a;
                    },
                    separateCircle: function(t, e, i) {
                        g(t, e, !1, 0), m(t, e, !1, 0);
                        var n = t.isCircle, r = e.isCircle, o = t.center, a = e.center, h = t.immovable, c = e.immovable, d = t.velocity, f = e.velocity, p = 0, v = !0;
                        if (n !== r) {
                            v = !1;
                            var y = o.x, x = o.y, w = t.halfWidth, b = e.position.x, S = e.position.y, E = e.right, A = e.bottom;
                            r && (y = a.x, x = a.y, w = e.halfWidth, b = t.position.x, S = t.position.y, E = t.right, A = t.bottom), x < S ? y < b ? p = l(y, x, b, S) - w : y > E && (p = l(y, x, E, S) - w) : x > A && (y < b ? p = l(y, x, b, A) - w : y > E && (p = l(y, x, E, A) - w)), p *= -1;
                        } else p = t.halfWidth + e.halfWidth - u(o, a);
                        t.overlapR = p, e.overlapR = p;
                        var C = s(o, a), _ = (p + T.EPSILON) * Math.cos(C), M = (p + T.EPSILON) * Math.sin(C), P = {
                            overlap: p,
                            result: !1,
                            x: _,
                            y: M
                        };
                        if (i && (!v || v && 0 !== p)) return P.result = !0, P;
                        if (!v && 0 === p || h && c || t.customSeparateX || e.customSeparateX) return P.x = void 0, P.y = void 0, P;
                        var R = !t.pushable && !e.pushable;
                        if (v) {
                            var O = o.x - a.x, L = o.y - a.y, F = Math.sqrt(Math.pow(O, 2) + Math.pow(L, 2)), D = (a.x - o.x) / F || 0, I = (a.y - o.y) / F || 0, k = 2 * (d.x * D + d.y * I - f.x * D - f.y * I) / (t.mass + e.mass);
                            (h || c) && (k *= 2), h || (d.x = d.x - k / t.mass * D, d.y = d.y - k / t.mass * I, d.multiply(t.bounce)), c || (f.x = f.x + k / e.mass * D, f.y = f.y + k / e.mass * I, f.multiply(e.bounce)), h || c || (_ *= .5, M *= .5), h || (t.x -= _, t.y -= M, t.updateCenter()), c || (e.x += _, e.y += M, e.updateCenter()), P.result = !0;
                        } else !h || t.pushable || R ? (t.x -= _, t.y -= M, t.updateCenter()) : (!c || e.pushable || R) && (e.x += _, e.y += M, e.updateCenter()), P.x = void 0, P.y = void 0;
                        return P;
                    },
                    intersects: function(t, e) {
                        return t !== e && (t.isCircle || e.isCircle ? t.isCircle ? e.isCircle ? u(t.center, e.center) <= t.halfWidth + e.halfWidth : this.circleBodyIntersects(t, e) : this.circleBodyIntersects(e, t) : !(t.right <= e.left || t.bottom <= e.top || t.left >= e.right || t.top >= e.bottom));
                    },
                    circleBodyIntersects: function(t, e) {
                        var i = r(t.center.x, e.left, e.right), s = r(t.center.y, e.top, e.bottom);
                        return (t.center.x - i) * (t.center.x - i) + (t.center.y - s) * (t.center.y - s) <= t.halfWidth * t.halfWidth;
                    },
                    overlap: function(t, e, i, s, n) {
                        return void 0 === i && (i = null), void 0 === s && (s = null), void 0 === n && (n = i), this.collideObjects(t, e, i, s, n, !0);
                    },
                    collide: function(t, e, i, s, n) {
                        return void 0 === i && (i = null), void 0 === s && (s = null), void 0 === n && (n = i), this.collideObjects(t, e, i, s, n, !1);
                    },
                    collideObjects: function(t, e, i, s, n, r) {
                        var o, a;
                        !t.isParent || void 0 !== t.physicsType && void 0 !== e && t !== e || (t = t.children.entries), e && e.isParent && void 0 === e.physicsType && (e = e.children.entries);
                        var h = Array.isArray(t), l = Array.isArray(e);
                        if (this._total = 0, h || l) {
                            if (!h && l) for(o = 0; o < e.length; o++)this.collideHandler(t, e[o], i, s, n, r);
                            else if (h && !l) {
                                if (e) for(o = 0; o < t.length; o++)this.collideHandler(t[o], e, i, s, n, r);
                                else for(o = 0; o < t.length; o++){
                                    var u = t[o];
                                    for(a = o + 1; a < t.length; a++)o !== a && this.collideHandler(u, t[a], i, s, n, r);
                                }
                            } else for(o = 0; o < t.length; o++)for(a = 0; a < e.length; a++)this.collideHandler(t[o], e[a], i, s, n, r);
                        } else this.collideHandler(t, e, i, s, n, r);
                        return this._total > 0;
                    },
                    collideHandler: function(t, e, i, s, n, r) {
                        if (void 0 === e && t.isParent) return this.collideGroupVsGroup(t, t, i, s, n, r);
                        if (!t || !e) return !1;
                        if (t.body || t.isBody) {
                            if (e.body || e.isBody) return this.collideSpriteVsSprite(t, e, i, s, n, r);
                            if (e.isParent) return this.collideSpriteVsGroup(t, e, i, s, n, r);
                            if (e.isTilemap) return this.collideSpriteVsTilemapLayer(t, e, i, s, n, r);
                        } else if (t.isParent) {
                            if (e.body || e.isBody) return this.collideSpriteVsGroup(e, t, i, s, n, r);
                            if (e.isParent) return this.collideGroupVsGroup(t, e, i, s, n, r);
                            if (e.isTilemap) return this.collideGroupVsTilemapLayer(t, e, i, s, n, r);
                        } else if (t.isTilemap) {
                            if (e.body || e.isBody) return this.collideSpriteVsTilemapLayer(e, t, i, s, n, r);
                            if (e.isParent) return this.collideGroupVsTilemapLayer(e, t, i, s, n, r);
                        }
                    },
                    collideSpriteVsSprite: function(t, e, i, s, n, r) {
                        var o = t.isBody ? t : t.body, a = e.isBody ? e : e.body;
                        return !(!o || !a) && (this.separate(o, a, s, n, r) && (i && i.call(n, t, e), this._total++), !0);
                    },
                    collideSpriteVsGroup: function(t, e, i, s, n, r) {
                        var o, a, l, u = t.isBody ? t : t.body;
                        if (0 !== e.length && u && u.enable && !u.checkCollision.none) {
                            if (this.useTree || e.physicsType === h.STATIC_BODY) {
                                var c = this.treeMinMax;
                                c.minX = u.left, c.minY = u.top, c.maxX = u.right, c.maxY = u.bottom;
                                var d = e.physicsType === h.DYNAMIC_BODY ? this.tree.search(c) : this.staticTree.search(c);
                                for(a = d.length, o = 0; o < a; o++)u !== (l = d[o]) && l.enable && !l.checkCollision.none && e.contains(l.gameObject) && this.separate(u, l, s, n, r) && (i && i.call(n, u.gameObject, l.gameObject), this._total++);
                            } else {
                                var f = e.getChildren(), p = e.children.entries.indexOf(t);
                                for(a = f.length, o = 0; o < a; o++)(l = f[o].body) && o !== p && l.enable && this.separate(u, l, s, n, r) && (i && i.call(n, u.gameObject, l.gameObject), this._total++);
                            }
                        }
                    },
                    collideGroupVsTilemapLayer: function(t, e, i, s, n, r) {
                        var o = t.getChildren();
                        if (0 === o.length) return !1;
                        for(var a = !1, h = 0; h < o.length; h++)(o[h].body || o[h].isBody) && this.collideSpriteVsTilemapLayer(o[h], e, i, s, n, r) && (a = !0);
                        return a;
                    },
                    collideTiles: function(t, e, i, s, n) {
                        return !(0 === e.length || t.body && !t.body.enable || t.isBody && !t.enable) && this.collideSpriteVsTilesHandler(t, e, i, s, n, !1, !1);
                    },
                    overlapTiles: function(t, e, i, s, n) {
                        return !(0 === e.length || t.body && !t.body.enable || t.isBody && !t.enable) && this.collideSpriteVsTilesHandler(t, e, i, s, n, !0, !1);
                    },
                    collideSpriteVsTilemapLayer: function(t, e, i, s, n, r) {
                        var o = t.isBody ? t : t.body;
                        if (!o.enable || o.checkCollision.none) return !1;
                        var a = o.x, h = o.y, l = o.width, u = o.height, c = e.layer;
                        if (c.tileWidth > c.baseTileWidth) {
                            var d = (c.tileWidth - c.baseTileWidth) * e.scaleX;
                            a -= d, l += d;
                        }
                        c.tileHeight > c.baseTileHeight && (u += (c.tileHeight - c.baseTileHeight) * e.scaleY);
                        var f = r ? null : this.tileFilterOptions, p = y(a, h, l, u, f, e.scene.cameras.main, e.layer);
                        return 0 !== p.length && this.collideSpriteVsTilesHandler(t, p, i, s, n, r, !0);
                    },
                    collideSpriteVsTilesHandler: function(t, e, i, s, n, r, o) {
                        for(var a, h, l = t.isBody ? t : t.body, u = {
                            left: 0,
                            right: 0,
                            top: 0,
                            bottom: 0
                        }, c = !1, f = 0; f < e.length; f++){
                            var p = (h = (a = e[f]).tilemapLayer).tileToWorldXY(a.x, a.y);
                            u.left = p.x, u.top = p.y, a.baseHeight !== a.height && (u.top -= (a.height - a.baseHeight) * h.scaleY), u.right = u.left + a.width * h.scaleX, u.bottom = u.top + a.height * h.scaleY, R(u, l) && (!s || s.call(n, t, a)) && b(a, t) && (r || A(f, l, a, u, h, this.TILE_BIAS, o)) && (this._total++, c = !0, i && i.call(n, t, a), r && l.onOverlap ? this.emit(d.TILE_OVERLAP, t, a, l) : l.onCollide && this.emit(d.TILE_COLLIDE, t, a, l));
                        }
                        return c;
                    },
                    collideGroupVsGroup: function(t, e, i, s, n, r) {
                        if (0 !== t.length && 0 !== e.length) for(var o = t.getChildren(), a = 0; a < o.length; a++)this.collideSpriteVsGroup(o[a], e, i, s, n, r);
                    },
                    wrap: function(t, e) {
                        t.body ? this.wrapObject(t, e) : t.getChildren ? this.wrapArray(t.getChildren(), e) : Array.isArray(t) ? this.wrapArray(t, e) : this.wrapObject(t, e);
                    },
                    wrapArray: function(t, e) {
                        for(var i = 0; i < t.length; i++)this.wrapObject(t[i], e);
                    },
                    wrapObject: function(t, e) {
                        void 0 === e && (e = 0), t.x = F(t.x, this.bounds.left - e, this.bounds.right + e), t.y = F(t.y, this.bounds.top - e, this.bounds.bottom + e);
                    },
                    shutdown: function() {
                        this.tree.clear(), this.staticTree.clear(), this.bodies.clear(), this.staticBodies.clear(), this.colliders.destroy(), this.removeAllListeners();
                    },
                    destroy: function() {
                        this.shutdown(), this.scene = null, this.debugGraphic && (this.debugGraphic.destroy(), this.debugGraphic = null);
                    }
                });
                t.exports = D;
            },
            5321: (t)=>{
                t.exports = {
                    setAcceleration: function(t, e) {
                        return this.body.acceleration.set(t, e), this;
                    },
                    setAccelerationX: function(t) {
                        return this.body.acceleration.x = t, this;
                    },
                    setAccelerationY: function(t) {
                        return this.body.acceleration.y = t, this;
                    }
                };
            },
            29257: (t)=>{
                t.exports = {
                    setAngularVelocity: function(t) {
                        return this.body.angularVelocity = t, this;
                    },
                    setAngularAcceleration: function(t) {
                        return this.body.angularAcceleration = t, this;
                    },
                    setAngularDrag: function(t) {
                        return this.body.angularDrag = t, this;
                    }
                };
            },
            62122: (t)=>{
                t.exports = {
                    setBounce: function(t, e) {
                        return this.body.bounce.set(t, e), this;
                    },
                    setBounceX: function(t) {
                        return this.body.bounce.x = t, this;
                    },
                    setBounceY: function(t) {
                        return this.body.bounce.y = t, this;
                    },
                    setCollideWorldBounds: function(t, e, i, s) {
                        return this.body.setCollideWorldBounds(t, e, i, s), this;
                    }
                };
            },
            99803: (t)=>{
                t.exports = {
                    setDebug: function(t, e, i) {
                        return this.debugShowBody = t, this.debugShowVelocity = e, this.debugBodyColor = i, this;
                    },
                    setDebugBodyColor: function(t) {
                        return this.body.debugBodyColor = t, this;
                    },
                    debugShowBody: {
                        get: function() {
                            return this.body.debugShowBody;
                        },
                        set: function(t) {
                            this.body.debugShowBody = t;
                        }
                    },
                    debugShowVelocity: {
                        get: function() {
                            return this.body.debugShowVelocity;
                        },
                        set: function(t) {
                            this.body.debugShowVelocity = t;
                        }
                    },
                    debugBodyColor: {
                        get: function() {
                            return this.body.debugBodyColor;
                        },
                        set: function(t) {
                            this.body.debugBodyColor = t;
                        }
                    }
                };
            },
            87145: (t)=>{
                t.exports = {
                    setDrag: function(t, e) {
                        return this.body.drag.set(t, e), this;
                    },
                    setDragX: function(t) {
                        return this.body.drag.x = t, this;
                    },
                    setDragY: function(t) {
                        return this.body.drag.y = t, this;
                    },
                    setDamping: function(t) {
                        return this.body.useDamping = t, this;
                    }
                };
            },
            96174: (t)=>{
                var e = {
                    enableBody: function(t, e, i, s, n) {
                        return t && this.body.reset(e, i), s && (this.body.gameObject.active = !0), n && (this.body.gameObject.visible = !0), this.body.enable = !0, this;
                    },
                    disableBody: function(t, e) {
                        return void 0 === t && (t = !1), void 0 === e && (e = !1), this.body.stop(), this.body.enable = !1, t && (this.body.gameObject.active = !1), e && (this.body.gameObject.visible = !1), this;
                    },
                    refreshBody: function() {
                        return this.body.updateFromGameObject(), this;
                    }
                };
                t.exports = e;
            },
            51702: (t)=>{
                t.exports = {
                    setFriction: function(t, e) {
                        return this.body.friction.set(t, e), this;
                    },
                    setFrictionX: function(t) {
                        return this.body.friction.x = t, this;
                    },
                    setFrictionY: function(t) {
                        return this.body.friction.y = t, this;
                    }
                };
            },
            25578: (t)=>{
                t.exports = {
                    setGravity: function(t, e) {
                        return this.body.gravity.set(t, e), this;
                    },
                    setGravityX: function(t) {
                        return this.body.gravity.x = t, this;
                    },
                    setGravityY: function(t) {
                        return this.body.gravity.y = t, this;
                    }
                };
            },
            72029: (t)=>{
                var e = {
                    setImmovable: function(t) {
                        return void 0 === t && (t = !0), this.body.immovable = t, this;
                    }
                };
                t.exports = e;
            },
            34566: (t)=>{
                t.exports = {
                    setMass: function(t) {
                        return this.body.mass = t, this;
                    }
                };
            },
            2732: (t, e, i)=>{
                var s = i(15147), n = i(26673), r = i(22184), o = i(26535);
                t.exports = function(t, e, i, a, h, l) {
                    var u = s(t, e - a, i - a, 2 * a, 2 * a, h, l);
                    if (0 === u.length) return u;
                    for(var c = new n(e, i, a), d = new n, f = [], p = 0; p < u.length; p++){
                        var v = u[p];
                        v.isCircle ? (d.setTo(v.center.x, v.center.y, v.halfWidth), r(c, d) && f.push(v)) : o(c, v) && f.push(v);
                    }
                    return f;
                };
            },
            15147: (t)=>{
                t.exports = function(t, e, i, s, n, r, o) {
                    void 0 === r && (r = !0), void 0 === o && (o = !1);
                    var a = [], h = [], l = t.treeMinMax;
                    if (l.minX = e, l.minY = i, l.maxX = e + s, l.maxY = i + n, o && (h = t.staticTree.search(l)), r && t.useTree) a = t.tree.search(l);
                    else if (r) {
                        var u = t.bodies, c = {
                            position: {
                                x: e,
                                y: i
                            },
                            left: e,
                            top: i,
                            right: e + s,
                            bottom: i + n,
                            isCircle: !1
                        }, d = t.intersects;
                        u.iterate(function(t) {
                            d(t, c) && a.push(t);
                        });
                    }
                    return h.concat(a);
                };
            },
            57527: (t)=>{
                var e = {
                    setPushable: function(t) {
                        return void 0 === t && (t = !0), this.body.pushable = t, this;
                    }
                };
                t.exports = e;
            },
            77687: (t)=>{
                t.exports = {
                    setOffset: function(t, e) {
                        return this.body.setOffset(t, e), this;
                    },
                    setSize: function(t, e, i) {
                        return this.body.setSize(t, e, i), this;
                    },
                    setBodySize: function(t, e, i) {
                        return this.body.setSize(t, e, i), this;
                    },
                    setCircle: function(t, e, i) {
                        return this.body.setCircle(t, e, i), this;
                    }
                };
            },
            66536: (t)=>{
                t.exports = {
                    setVelocity: function(t, e) {
                        return this.body.setVelocity(t, e), this;
                    },
                    setVelocityX: function(t) {
                        return this.body.setVelocityX(t), this;
                    },
                    setVelocityY: function(t) {
                        return this.body.setVelocityY(t), this;
                    },
                    setMaxVelocity: function(t, e) {
                        return this.body.maxVelocity.set(t, e), this;
                    }
                };
            },
            7864: (t, e, i)=>{
                t.exports = {
                    Acceleration: i(5321),
                    Angular: i(29257),
                    Bounce: i(62122),
                    Debug: i(99803),
                    Drag: i(87145),
                    Enable: i(96174),
                    Friction: i(51702),
                    Gravity: i(25578),
                    Immovable: i(72029),
                    Mass: i(34566),
                    OverlapCirc: i(2732),
                    OverlapRect: i(15147),
                    Pushable: i(57527),
                    Size: i(77687),
                    Velocity: i(66536)
                };
            },
            47401: (t)=>{
                t.exports = {
                    DYNAMIC_BODY: 0,
                    STATIC_BODY: 1,
                    GROUP: 2,
                    TILEMAPLAYER: 3,
                    FACING_NONE: 10,
                    FACING_UP: 11,
                    FACING_DOWN: 12,
                    FACING_LEFT: 13,
                    FACING_RIGHT: 14
                };
            },
            22346: (t)=>{
                t.exports = "collide";
            },
            95092: (t)=>{
                t.exports = "overlap";
            },
            15775: (t)=>{
                t.exports = "pause";
            },
            74142: (t)=>{
                t.exports = "resume";
            },
            22825: (t)=>{
                t.exports = "tilecollide";
            },
            10851: (t)=>{
                t.exports = "tileoverlap";
            },
            7543: (t)=>{
                t.exports = "worldbounds";
            },
            1487: (t)=>{
                t.exports = "worldstep";
            },
            27037: (t, e, i)=>{
                t.exports = {
                    COLLIDE: i(22346),
                    OVERLAP: i(95092),
                    PAUSE: i(15775),
                    RESUME: i(74142),
                    TILE_COLLIDE: i(22825),
                    TILE_OVERLAP: i(10851),
                    WORLD_BOUNDS: i(7543),
                    WORLD_STEP: i(1487)
                };
            },
            39977: (t, e, i)=>{
                var s = i(47401), n = i(98611), r = {
                    ArcadePhysics: i(66150),
                    Body: i(97602),
                    Collider: i(3909),
                    Components: i(7864),
                    Events: i(27037),
                    Factory: i(99523),
                    GetOverlapX: i(75671),
                    GetOverlapY: i(66185),
                    SeparateX: i(61777),
                    SeparateY: i(25299),
                    Group: i(10481),
                    Image: i(62832),
                    Sprite: i(25084),
                    StaticBody: i(66634),
                    StaticGroup: i(46346),
                    Tilemap: i(8413),
                    World: i(85233)
                };
                r = n(!1, r, s), t.exports = r;
            },
            25163: (t)=>{
                t.exports = function(t, e) {
                    return t.collisionCallback ? !t.collisionCallback.call(t.collisionCallbackContext, e, t) : !t.layer.callbacks[t.index] || !t.layer.callbacks[t.index].callback.call(t.layer.callbacks[t.index].callbackContext, e, t);
                };
            },
            98209: (t)=>{
                t.exports = function(t, e) {
                    e < 0 ? (t.blocked.none = !1, t.blocked.left = !0) : e > 0 && (t.blocked.none = !1, t.blocked.right = !0), t.position.x -= e, t.updateCenter(), 0 === t.bounce.x ? t.velocity.x = 0 : t.velocity.x = -t.velocity.x * t.bounce.x;
                };
            },
            72792: (t)=>{
                t.exports = function(t, e) {
                    e < 0 ? (t.blocked.none = !1, t.blocked.up = !0) : e > 0 && (t.blocked.none = !1, t.blocked.down = !0), t.position.y -= e, t.updateCenter(), 0 === t.bounce.y ? t.velocity.y = 0 : t.velocity.y = -t.velocity.y * t.bounce.y;
                };
            },
            27354: (t, e, i)=>{
                var s = i(14405), n = i(52926), r = i(28808);
                t.exports = function(t, e, i, o, a, h, l) {
                    var u = o.left, c = o.top, d = o.right, f = o.bottom, p = i.faceLeft || i.faceRight, v = i.faceTop || i.faceBottom;
                    if (l || (p = !0, v = !0), !p && !v) return !1;
                    var g = 0, m = 0, y = 0, x = 1;
                    if (e.deltaAbsX() > e.deltaAbsY() ? y = -1 : e.deltaAbsX() < e.deltaAbsY() && (x = -1), 0 !== e.deltaX() && 0 !== e.deltaY() && p && v && (y = Math.min(Math.abs(e.position.x - d), Math.abs(e.right - u)), x = Math.min(Math.abs(e.position.y - f), Math.abs(e.bottom - c))), y < x) {
                        if (p && 0 !== (g = s(e, i, u, d, h, l)) && !r(o, e)) return !0;
                        v && (m = n(e, i, c, f, h, l));
                    } else {
                        if (v && 0 !== (m = n(e, i, c, f, h, l)) && !r(o, e)) return !0;
                        p && (g = s(e, i, u, d, h, l));
                    }
                    return 0 !== g || 0 !== m;
                };
            },
            14405: (t, e, i)=>{
                var s = i(98209);
                t.exports = function(t, e, i, n, r, o) {
                    var a = 0, h = e.faceLeft, l = e.faceRight, u = e.collideLeft, c = e.collideRight;
                    return o || (h = !0, l = !0, u = !0, c = !0), t.deltaX() < 0 && c && t.checkCollision.left ? l && t.x < n && (a = t.x - n) < -r && (a = 0) : t.deltaX() > 0 && u && t.checkCollision.right && h && t.right > i && (a = t.right - i) > r && (a = 0), 0 !== a && (t.customSeparateX ? t.overlapX = a : s(t, a)), a;
                };
            },
            52926: (t, e, i)=>{
                var s = i(72792);
                t.exports = function(t, e, i, n, r, o) {
                    var a = 0, h = e.faceTop, l = e.faceBottom, u = e.collideUp, c = e.collideDown;
                    return o || (h = !0, l = !0, u = !0, c = !0), t.deltaY() < 0 && c && t.checkCollision.up ? l && t.y < n && (a = t.y - n) < -r && (a = 0) : t.deltaY() > 0 && u && t.checkCollision.down && h && t.bottom > i && (a = t.bottom - i) > r && (a = 0), 0 !== a && (t.customSeparateY ? t.overlapY = a : s(t, a)), a;
                };
            },
            28808: (t)=>{
                t.exports = function(t, e) {
                    return !(e.right <= t.left || e.bottom <= t.top || e.position.x >= t.right || e.position.y >= t.bottom);
                };
            },
            8413: (t, e, i)=>{
                var s = {
                    ProcessTileCallbacks: i(25163),
                    ProcessTileSeparationX: i(98209),
                    ProcessTileSeparationY: i(72792),
                    SeparateTile: i(27354),
                    TileCheckX: i(14405),
                    TileCheckY: i(52926),
                    TileIntersectsBody: i(28808)
                };
                t.exports = s;
            },
            53954: (t, e, i)=>{
                t.exports = {
                    Arcade: i(39977),
                    Matter: i(45949)
                };
            },
            63568: (t, e, i)=>{
                var s = i(56694), n = i(93736), r = new s({
                    initialize: function() {
                        this.boundsCenter = new n, this.centerDiff = new n;
                    },
                    parseBody: function(t) {
                        if (!(t = t.hasOwnProperty("body") ? t.body : t).hasOwnProperty("bounds") || !t.hasOwnProperty("centerOfMass")) return !1;
                        var e = this.boundsCenter, i = this.centerDiff, s = t.bounds.max.x - t.bounds.min.x, n = t.bounds.max.y - t.bounds.min.y, r = s * t.centerOfMass.x, o = n * t.centerOfMass.y;
                        return e.set(s / 2, n / 2), i.set(r - e.x, o - e.y), !0;
                    },
                    getTopLeft: function(t, e, i) {
                        if (void 0 === e && (e = 0), void 0 === i && (i = 0), this.parseBody(t)) {
                            var s = this.boundsCenter, r = this.centerDiff;
                            return new n(e + s.x + r.x, i + s.y + r.y);
                        }
                        return !1;
                    },
                    getTopCenter: function(t, e, i) {
                        if (void 0 === e && (e = 0), void 0 === i && (i = 0), this.parseBody(t)) {
                            var s = this.boundsCenter, r = this.centerDiff;
                            return new n(e + r.x, i + s.y + r.y);
                        }
                        return !1;
                    },
                    getTopRight: function(t, e, i) {
                        if (void 0 === e && (e = 0), void 0 === i && (i = 0), this.parseBody(t)) {
                            var s = this.boundsCenter, r = this.centerDiff;
                            return new n(e - (s.x - r.x), i + s.y + r.y);
                        }
                        return !1;
                    },
                    getLeftCenter: function(t, e, i) {
                        if (void 0 === e && (e = 0), void 0 === i && (i = 0), this.parseBody(t)) {
                            var s = this.boundsCenter, r = this.centerDiff;
                            return new n(e + s.x + r.x, i + r.y);
                        }
                        return !1;
                    },
                    getCenter: function(t, e, i) {
                        if (void 0 === e && (e = 0), void 0 === i && (i = 0), this.parseBody(t)) {
                            var s = this.centerDiff;
                            return new n(e + s.x, i + s.y);
                        }
                        return !1;
                    },
                    getRightCenter: function(t, e, i) {
                        if (void 0 === e && (e = 0), void 0 === i && (i = 0), this.parseBody(t)) {
                            var s = this.boundsCenter, r = this.centerDiff;
                            return new n(e - (s.x - r.x), i + r.y);
                        }
                        return !1;
                    },
                    getBottomLeft: function(t, e, i) {
                        if (void 0 === e && (e = 0), void 0 === i && (i = 0), this.parseBody(t)) {
                            var s = this.boundsCenter, r = this.centerDiff;
                            return new n(e + s.x + r.x, i - (s.y - r.y));
                        }
                        return !1;
                    },
                    getBottomCenter: function(t, e, i) {
                        if (void 0 === e && (e = 0), void 0 === i && (i = 0), this.parseBody(t)) {
                            var s = this.boundsCenter, r = this.centerDiff;
                            return new n(e + r.x, i - (s.y - r.y));
                        }
                        return !1;
                    },
                    getBottomRight: function(t, e, i) {
                        if (void 0 === e && (e = 0), void 0 === i && (i = 0), this.parseBody(t)) {
                            var s = this.boundsCenter, r = this.centerDiff;
                            return new n(e - (s.x - r.x), i - (s.y - r.y));
                        }
                        return !1;
                    }
                });
                t.exports = r;
            },
            18171: (t, e, i)=>{
                var s = i(16929);
                s.Body = i(84125), s.Composite = i(11299), s.World = i(72005), s.Collision = i(63454), s.Detector = i(13657), s.Pairs = i(91327), s.Pair = i(70584), s.Query = i(13390), s.Resolver = i(44272), s.Constraint = i(52838), s.Common = i(68758), s.Engine = i(45775), s.Events = i(39073), s.Sleeping = i(22806), s.Plugin = i(84474), s.Bodies = i(68516), s.Composites = i(56643), s.Axes = i(50658), s.Bounds = i(84091), s.Svg = i(92765), s.Vector = i(10438), s.Vertices = i(39745), s.World.add = s.Composite.add, s.World.remove = s.Composite.remove, s.World.addComposite = s.Composite.addComposite, s.World.addBody = s.Composite.addBody, s.World.addConstraint = s.Composite.addConstraint, s.World.clear = s.Composite.clear, t.exports = s;
            },
            72653: (t, e, i)=>{
                var s = i(68516), n = i(56694), r = i(56643), o = i(52838), a = i(92765), h = i(3860), l = i(7030), u = i(73658), c = i(84720), d = i(10998), f = i(72829), p = i(88596), v = i(39745), g = new n({
                    initialize: function(t) {
                        this.world = t, this.scene = t.scene, this.sys = t.scene.sys;
                    },
                    rectangle: function(t, e, i, n, r) {
                        var o = s.rectangle(t, e, i, n, r);
                        return this.world.add(o), o;
                    },
                    trapezoid: function(t, e, i, n, r, o) {
                        var a = s.trapezoid(t, e, i, n, r, o);
                        return this.world.add(a), a;
                    },
                    circle: function(t, e, i, n, r) {
                        var o = s.circle(t, e, i, n, r);
                        return this.world.add(o), o;
                    },
                    polygon: function(t, e, i, n, r) {
                        var o = s.polygon(t, e, i, n, r);
                        return this.world.add(o), o;
                    },
                    fromVertices: function(t, e, i, n, r, o, a) {
                        "string" == typeof i && (i = v.fromPath(i));
                        var h = s.fromVertices(t, e, i, n, r, o, a);
                        return this.world.add(h), h;
                    },
                    fromPhysicsEditor: function(t, e, i, s, n) {
                        void 0 === n && (n = !0);
                        var r = d.parseBody(t, e, i, s);
                        return n && !this.world.has(r) && this.world.add(r), r;
                    },
                    fromSVG: function(t, e, i, n, r, o) {
                        void 0 === n && (n = 1), void 0 === r && (r = {}), void 0 === o && (o = !0);
                        for(var h = i.getElementsByTagName("path"), l = [], u = 0; u < h.length; u++){
                            var c = a.pathToVertices(h[u], 30);
                            1 !== n && v.scale(c, n, n), l.push(c);
                        }
                        var d = s.fromVertices(t, e, l, r);
                        return o && this.world.add(d), d;
                    },
                    fromJSON: function(t, e, i, s, n) {
                        void 0 === s && (s = {}), void 0 === n && (n = !0);
                        var r = f.parseBody(t, e, i, s);
                        return r && n && this.world.add(r), r;
                    },
                    imageStack: function(t, e, i, s, n, o, a, h, u) {
                        void 0 === a && (a = 0), void 0 === h && (h = 0), void 0 === u && (u = {});
                        var c = this.world, d = this.sys.displayList;
                        u.addToWorld = !1;
                        var f = r.stack(i, s, n, o, a, h, function(i, s) {
                            var n = new l(c, i, s, t, e, u);
                            return d.add(n), n.body;
                        });
                        return c.add(f), f;
                    },
                    stack: function(t, e, i, s, n, o, a) {
                        var h = r.stack(t, e, i, s, n, o, a);
                        return this.world.add(h), h;
                    },
                    pyramid: function(t, e, i, s, n, o, a) {
                        var h = r.pyramid(t, e, i, s, n, o, a);
                        return this.world.add(h), h;
                    },
                    chain: function(t, e, i, s, n, o) {
                        return r.chain(t, e, i, s, n, o);
                    },
                    mesh: function(t, e, i, s, n) {
                        return r.mesh(t, e, i, s, n);
                    },
                    newtonsCradle: function(t, e, i, s, n) {
                        var o = r.newtonsCradle(t, e, i, s, n);
                        return this.world.add(o), o;
                    },
                    car: function(t, e, i, s, n) {
                        var o = r.car(t, e, i, s, n);
                        return this.world.add(o), o;
                    },
                    softBody: function(t, e, i, s, n, o, a, h, l, u) {
                        var c = r.softBody(t, e, i, s, n, o, a, h, l, u);
                        return this.world.add(c), c;
                    },
                    joint: function(t, e, i, s, n) {
                        return this.constraint(t, e, i, s, n);
                    },
                    spring: function(t, e, i, s, n) {
                        return this.constraint(t, e, i, s, n);
                    },
                    constraint: function(t, e, i, s, n) {
                        void 0 === s && (s = 1), void 0 === n && (n = {}), n.bodyA = "body" === t.type ? t : t.body, n.bodyB = "body" === e.type ? e : e.body, isNaN(i) || (n.length = i), n.stiffness = s;
                        var r = o.create(n);
                        return this.world.add(r), r;
                    },
                    worldConstraint: function(t, e, i, s) {
                        void 0 === i && (i = 1), void 0 === s && (s = {}), s.bodyB = "body" === t.type ? t : t.body, isNaN(e) || (s.length = e), s.stiffness = i;
                        var n = o.create(s);
                        return this.world.add(n), n;
                    },
                    mouseSpring: function(t) {
                        return this.pointerConstraint(t);
                    },
                    pointerConstraint: function(t) {
                        void 0 === t && (t = {}), t.hasOwnProperty("render") || (t.render = {
                            visible: !1
                        });
                        var e = new p(this.scene, this.world, t);
                        return this.world.add(e.constraint), e;
                    },
                    image: function(t, e, i, s, n) {
                        var r = new l(this.world, t, e, i, s, n);
                        return this.sys.displayList.add(r), r;
                    },
                    tileBody: function(t, e) {
                        return new c(this.world, t, e);
                    },
                    sprite: function(t, e, i, s, n) {
                        var r = new u(this.world, t, e, i, s, n);
                        return this.sys.displayList.add(r), this.sys.updateList.add(r), r;
                    },
                    gameObject: function(t, e, i) {
                        return h(this.world, t, e, i);
                    },
                    destroy: function() {
                        this.world = null, this.scene = null, this.sys = null;
                    }
                });
                t.exports = g;
            },
            3860: (t, e, i)=>{
                var s = i(74527), n = i(72632), r = i(93736);
                t.exports = function(t, e, i, o) {
                    void 0 === i && (i = {}), void 0 === o && (o = !0);
                    var a = e.x, h = e.y;
                    if (e.body = {
                        temp: !0,
                        position: {
                            x: a,
                            y: h
                        }
                    }, [
                        s.Bounce,
                        s.Collision,
                        s.Force,
                        s.Friction,
                        s.Gravity,
                        s.Mass,
                        s.Sensor,
                        s.SetBody,
                        s.Sleep,
                        s.Static,
                        s.Transform,
                        s.Velocity
                    ].forEach(function(t) {
                        for(var i in t)(s = t[i]).get && "function" == typeof s.get || s.set && "function" == typeof s.set ? Object.defineProperty(e, i, {
                            get: t[i].get,
                            set: t[i].set
                        }) : Object.defineProperty(e, i, {
                            value: t[i]
                        });
                        var s;
                    }), e.world = t, e._tempVec2 = new r(a, h), i.hasOwnProperty("type") && "body" === i.type) e.setExistingBody(i, o);
                    else {
                        var l = n(i, "shape", null);
                        l || (l = "rectangle"), i.addToWorld = o, e.setBody(l, i);
                    }
                    return e;
                };
            },
            7030: (t, e, i)=>{
                var s = i(56694), n = i(74527), r = i(89980), o = i(72632), a = i(1539), h = i(58210), l = i(93736), u = new s({
                    Extends: a,
                    Mixins: [
                        n.Bounce,
                        n.Collision,
                        n.Force,
                        n.Friction,
                        n.Gravity,
                        n.Mass,
                        n.Sensor,
                        n.SetBody,
                        n.Sleep,
                        n.Static,
                        n.Transform,
                        n.Velocity,
                        h
                    ],
                    initialize: function(t, e, i, s, n, a) {
                        r.call(this, t.scene, "Image"), this._crop = this.resetCropObject(), this.setTexture(s, n), this.setSizeToFrame(), this.setOrigin(), this.world = t, this._tempVec2 = new l(e, i);
                        var h = o(a, "shape", null);
                        h ? this.setBody(h, a) : this.setRectangle(this.width, this.height, a), this.setPosition(e, i), this.initPipeline(), this.initPostPipeline(!0);
                    }
                });
                t.exports = u;
            },
            50583: (t, e, i)=>{
                var s = i(84093), n = i(50658), r = i(68516), o = i(84125), a = i(63568), h = i(84091), l = i(56694), u = i(63454), c = i(68758), d = i(11299), f = i(56643), p = i(52838), v = i(13657), g = i(53996), m = i(72653), y = i(72632), x = i(10850), T = i(1675), w = i(80391), b = i(16929), S = i(44097), E = i(30657), A = i(70584), C = i(91327), _ = i(84474), M = i(91963), P = i(13390), R = i(44272), O = i(7599), L = i(92765), F = i(10438), D = i(39745), I = i(31468);
                c.setDecomp(i(81084));
                var k = new l({
                    initialize: function(t) {
                        this.scene = t, this.systems = t.sys, this.config = this.getConfig(), this.world, this.add, this.bodyBounds, this.body = o, this.composite = d, this.collision = u, this.detector = v, this.pair = A, this.pairs = C, this.query = P, this.resolver = R, this.constraint = p, this.bodies = r, this.composites = f, this.axes = n, this.bounds = h, this.svg = L, this.vector = F, this.vertices = D, this.verts = D, this._tempVec2 = F.create(), x(this.config, "plugins.collisionevents", !0) && this.enableCollisionEventsPlugin(), x(this.config, "plugins.attractors", !1) && this.enableAttractorPlugin(), x(this.config, "plugins.wrap", !1) && this.enableWrapPlugin(), R._restingThresh = x(this.config, "restingThresh", 4), R._restingThreshTangent = x(this.config, "restingThreshTangent", 6), R._positionDampen = x(this.config, "positionDampen", .9), R._positionWarming = x(this.config, "positionWarming", .8), R._frictionNormalMultiplier = x(this.config, "frictionNormalMultiplier", 5), t.sys.events.once(O.BOOT, this.boot, this), t.sys.events.on(O.START, this.start, this);
                    },
                    boot: function() {
                        this.world = new I(this.scene, this.config), this.add = new m(this.world), this.bodyBounds = new a, this.systems.events.once(O.DESTROY, this.destroy, this);
                    },
                    start: function() {
                        this.world || (this.world = new I(this.scene, this.config), this.add = new m(this.world));
                        var t = this.systems.events;
                        t.on(O.UPDATE, this.world.update, this.world), t.on(O.POST_UPDATE, this.world.postUpdate, this.world), t.once(O.SHUTDOWN, this.shutdown, this);
                    },
                    getConfig: function() {
                        var t = this.systems.game.config.physics, e = this.systems.settings.physics;
                        return E(y(e, "matter", {}), y(t, "matter", {}));
                    },
                    enableAttractorPlugin: function() {
                        return _.register(T), _.use(b, T), this;
                    },
                    enableWrapPlugin: function() {
                        return _.register(S), _.use(b, S), this;
                    },
                    enableCollisionEventsPlugin: function() {
                        return _.register(w), _.use(b, w), this;
                    },
                    pause: function() {
                        return this.world.pause();
                    },
                    resume: function() {
                        return this.world.resume();
                    },
                    set60Hz: function() {
                        return this.world.getDelta = this.world.update60Hz, this.world.autoUpdate = !0, this;
                    },
                    set30Hz: function() {
                        return this.world.getDelta = this.world.update30Hz, this.world.autoUpdate = !0, this;
                    },
                    step: function(t, e) {
                        this.world.step(t, e);
                    },
                    containsPoint: function(t, e, i) {
                        t = this.getMatterBodies(t);
                        var s = F.create(e, i);
                        return P.point(t, s).length > 0;
                    },
                    intersectPoint: function(t, e, i) {
                        i = this.getMatterBodies(i);
                        var s = F.create(t, e), n = [];
                        return P.point(i, s).forEach(function(t) {
                            -1 === n.indexOf(t) && n.push(t);
                        }), n;
                    },
                    intersectRect: function(t, e, i, s, n, r) {
                        void 0 === n && (n = !1), r = this.getMatterBodies(r);
                        var o = {
                            min: {
                                x: t,
                                y: e
                            },
                            max: {
                                x: t + i,
                                y: e + s
                            }
                        }, a = [];
                        return P.region(r, o, n).forEach(function(t) {
                            -1 === a.indexOf(t) && a.push(t);
                        }), a;
                    },
                    intersectRay: function(t, e, i, s, n, r) {
                        void 0 === n && (n = 1), r = this.getMatterBodies(r);
                        for(var o = [], a = P.ray(r, F.create(t, e), F.create(i, s), n), h = 0; h < a.length; h++)o.push(a[h].body);
                        return o;
                    },
                    intersectBody: function(t, e) {
                        e = this.getMatterBodies(e);
                        for(var i = [], s = P.collides(t, e), n = 0; n < s.length; n++){
                            var r = s[n];
                            r.bodyA === t ? i.push(r.bodyB) : i.push(r.bodyA);
                        }
                        return i;
                    },
                    overlap: function(t, e, i, s, n) {
                        void 0 === i && (i = null), void 0 === s && (s = null), void 0 === n && (n = i), Array.isArray(t) || (t = [
                            t
                        ]), t = this.getMatterBodies(t), e = this.getMatterBodies(e);
                        for(var r = !1, o = 0; o < t.length; o++)for(var a = t[o], h = P.collides(a, e), l = 0; l < h.length; l++){
                            var u = h[l], c = u.bodyA.id === a.id ? u.bodyB : u.bodyA;
                            if (!s || s.call(n, a, c, u)) {
                                if (r = !0, i) i.call(n, a, c, u);
                                else if (!s) return !0;
                            }
                        }
                        return r;
                    },
                    setCollisionCategory: function(t, e) {
                        return (t = this.getMatterBodies(t)).forEach(function(t) {
                            t.collisionFilter.category = e;
                        }), this;
                    },
                    setCollisionGroup: function(t, e) {
                        return (t = this.getMatterBodies(t)).forEach(function(t) {
                            t.collisionFilter.group = e;
                        }), this;
                    },
                    setCollidesWith: function(t, e) {
                        t = this.getMatterBodies(t);
                        var i = 0;
                        if (Array.isArray(e)) for(var s = 0; s < e.length; s++)i |= e[s];
                        else i = e;
                        return t.forEach(function(t) {
                            t.collisionFilter.mask = i;
                        }), this;
                    },
                    getMatterBodies: function(t) {
                        if (!t) return this.world.getAllBodies();
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var e = [], i = 0; i < t.length; i++){
                            var s = t[i].hasOwnProperty("body") ? t[i].body : t[i];
                            e.push(s);
                        }
                        return e;
                    },
                    setVelocity: function(t, e, i) {
                        t = this.getMatterBodies(t);
                        var s = this._tempVec2;
                        return s.x = e, s.y = i, t.forEach(function(t) {
                            o.setVelocity(t, s);
                        }), this;
                    },
                    setVelocityX: function(t, e) {
                        t = this.getMatterBodies(t);
                        var i = this._tempVec2;
                        return i.x = e, t.forEach(function(t) {
                            i.y = t.velocity.y, o.setVelocity(t, i);
                        }), this;
                    },
                    setVelocityY: function(t, e) {
                        t = this.getMatterBodies(t);
                        var i = this._tempVec2;
                        return i.y = e, t.forEach(function(t) {
                            i.x = t.velocity.x, o.setVelocity(t, i);
                        }), this;
                    },
                    setAngularVelocity: function(t, e) {
                        return (t = this.getMatterBodies(t)).forEach(function(t) {
                            o.setAngularVelocity(t, e);
                        }), this;
                    },
                    applyForce: function(t, e) {
                        t = this.getMatterBodies(t);
                        var i = this._tempVec2;
                        return t.forEach(function(t) {
                            i.x = t.position.x, i.y = t.position.y, o.applyForce(t, i, e);
                        }), this;
                    },
                    applyForceFromPosition: function(t, e, i, s) {
                        t = this.getMatterBodies(t);
                        var n = this._tempVec2;
                        return t.forEach(function(t) {
                            void 0 === s && (s = t.angle), n.x = i * Math.cos(s), n.y = i * Math.sin(s), o.applyForce(t, e, n);
                        }), this;
                    },
                    applyForceFromAngle: function(t, e, i) {
                        t = this.getMatterBodies(t);
                        var s = this._tempVec2;
                        return t.forEach(function(t) {
                            void 0 === i && (i = t.angle), s.x = e * Math.cos(i), s.y = e * Math.sin(i), o.applyForce(t, {
                                x: t.position.x,
                                y: t.position.y
                            }, s);
                        }), this;
                    },
                    getConstraintLength: function(t) {
                        var e = t.pointA.x, i = t.pointA.y, s = t.pointB.x, n = t.pointB.y;
                        return t.bodyA && (e += t.bodyA.position.x, i += t.bodyA.position.y), t.bodyB && (s += t.bodyB.position.x, n += t.bodyB.position.y), g(e, i, s, n);
                    },
                    alignBody: function(t, e, i, n) {
                        var r;
                        switch(t = t.hasOwnProperty("body") ? t.body : t, n){
                            case s.TOP_LEFT:
                            case s.LEFT_TOP:
                                r = this.bodyBounds.getTopLeft(t, e, i);
                                break;
                            case s.TOP_CENTER:
                                r = this.bodyBounds.getTopCenter(t, e, i);
                                break;
                            case s.TOP_RIGHT:
                            case s.RIGHT_TOP:
                                r = this.bodyBounds.getTopRight(t, e, i);
                                break;
                            case s.LEFT_CENTER:
                                r = this.bodyBounds.getLeftCenter(t, e, i);
                                break;
                            case s.CENTER:
                                r = this.bodyBounds.getCenter(t, e, i);
                                break;
                            case s.RIGHT_CENTER:
                                r = this.bodyBounds.getRightCenter(t, e, i);
                                break;
                            case s.LEFT_BOTTOM:
                            case s.BOTTOM_LEFT:
                                r = this.bodyBounds.getBottomLeft(t, e, i);
                                break;
                            case s.BOTTOM_CENTER:
                                r = this.bodyBounds.getBottomCenter(t, e, i);
                                break;
                            case s.BOTTOM_RIGHT:
                            case s.RIGHT_BOTTOM:
                                r = this.bodyBounds.getBottomRight(t, e, i);
                        }
                        return r && o.setPosition(t, r), this;
                    },
                    shutdown: function() {
                        var t = this.systems.events;
                        this.world && (t.off(O.UPDATE, this.world.update, this.world), t.off(O.POST_UPDATE, this.world.postUpdate, this.world)), t.off(O.SHUTDOWN, this.shutdown, this), this.add && this.add.destroy(), this.world && this.world.destroy(), this.add = null, this.world = null;
                    },
                    destroy: function() {
                        this.shutdown(), this.scene.sys.events.off(O.START, this.start, this), this.scene = null, this.systems = null;
                    }
                });
                M.register("MatterPhysics", k, "matterPhysics"), t.exports = k;
            },
            73658: (t, e, i)=>{
                var s = i(16569), n = i(56694), r = i(74527), o = i(89980), a = i(72632), h = i(58210), l = i(13747), u = i(93736), c = new n({
                    Extends: l,
                    Mixins: [
                        r.Bounce,
                        r.Collision,
                        r.Force,
                        r.Friction,
                        r.Gravity,
                        r.Mass,
                        r.Sensor,
                        r.SetBody,
                        r.Sleep,
                        r.Static,
                        r.Transform,
                        r.Velocity,
                        h
                    ],
                    initialize: function(t, e, i, n, r, h) {
                        o.call(this, t.scene, "Sprite"), this._crop = this.resetCropObject(), this.anims = new s(this), this.setTexture(n, r), this.setSizeToFrame(), this.setOrigin(), this.world = t, this._tempVec2 = new u(e, i);
                        var l = a(h, "shape", null);
                        l ? this.setBody(l, h) : this.setRectangle(this.width, this.height, h), this.setPosition(e, i), this.initPipeline(), this.initPostPipeline(!0);
                    }
                });
                t.exports = c;
            },
            84720: (t, e, i)=>{
                var s = i(68516), n = i(84125), r = i(56694), o = i(74527), a = i(28699), h = i(6659), l = i(72632), u = i(19256), c = i(39745), d = new r({
                    Extends: h,
                    Mixins: [
                        o.Bounce,
                        o.Collision,
                        o.Friction,
                        o.Gravity,
                        o.Mass,
                        o.Sensor,
                        o.Sleep,
                        o.Static
                    ],
                    initialize: function(t, e, i) {
                        h.call(this), this.tile = e, this.world = t, e.physics.matterBody && e.physics.matterBody.destroy(), e.physics.matterBody = this;
                        var s = l(i, "body", null), r = l(i, "addToWorld", !0);
                        if (s) this.setBody(s, r);
                        else {
                            var o = e.getCollisionGroup();
                            l(o, "objects", []).length > 0 ? this.setFromTileCollision(i) : this.setFromTileRectangle(i);
                        }
                        if (e.flipX || e.flipY) {
                            var a = {
                                x: e.getCenterX(),
                                y: e.getCenterY()
                            }, u = e.flipX ? -1 : 1, c = e.flipY ? -1 : 1;
                            n.scale(s, u, c, a);
                        }
                    },
                    setFromTileRectangle: function(t) {
                        void 0 === t && (t = {}), u(t, "isStatic") || (t.isStatic = !0), u(t, "addToWorld") || (t.addToWorld = !0);
                        var e = this.tile.getBounds(), i = e.x + e.width / 2, n = e.y + e.height / 2, r = s.rectangle(i, n, e.width, e.height, t);
                        return this.setBody(r, t.addToWorld), this;
                    },
                    setFromTileCollision: function(t) {
                        void 0 === t && (t = {}), u(t, "isStatic") || (t.isStatic = !0), u(t, "addToWorld") || (t.addToWorld = !0);
                        for(var e = this.tile.tilemapLayer.scaleX, i = this.tile.tilemapLayer.scaleY, r = this.tile.getLeft(), o = this.tile.getTop(), h = this.tile.getCollisionGroup(), d = l(h, "objects", []), f = [], p = 0; p < d.length; p++){
                            var v = d[p], g = r + v.x * e, m = o + v.y * i, y = v.width * e, x = v.height * i, T = null;
                            if (v.rectangle) T = s.rectangle(g + y / 2, m + x / 2, y, x, t);
                            else if (v.ellipse) T = s.circle(g + y / 2, m + x / 2, y / 2, t);
                            else if (v.polygon || v.polyline) {
                                var w = (v.polygon ? v.polygon : v.polyline).map(function(t) {
                                    return {
                                        x: t.x * e,
                                        y: t.y * i
                                    };
                                }), b = c.create(w), S = c.centre(b);
                                g += S.x, m += S.y, T = s.fromVertices(g, m, b, t);
                            }
                            T && f.push(T);
                        }
                        if (1 === f.length) this.setBody(f[0], t.addToWorld);
                        else if (f.length > 1) {
                            var E = a(t);
                            E.parts = f, this.setBody(n.create(E), E.addToWorld);
                        }
                        return this;
                    },
                    setBody: function(t, e) {
                        return void 0 === e && (e = !0), this.body && this.removeBody(), this.body = t, this.body.gameObject = this, e && this.world.add(this.body), this;
                    },
                    removeBody: function() {
                        return this.body && (this.world.remove(this.body), this.body.gameObject = void 0, this.body = void 0), this;
                    },
                    destroy: function() {
                        this.removeBody(), this.tile.physics.matterBody = void 0, this.removeAllListeners();
                    }
                });
                t.exports = d;
            },
            10998: (t, e, i)=>{
                var s = i(68516), n = i(84125), r = i(68758), o = i(72632), a = i(39745), h = {
                    parseBody: function(t, e, i, s) {
                        void 0 === s && (s = {});
                        for(var a = o(i, "fixtures", []), h = [], l = 0; l < a.length; l++)for(var u = this.parseFixture(a[l]), c = 0; c < u.length; c++)h.push(u[c]);
                        var d = r.clone(i, !0);
                        r.extend(d, s, !0), delete d.fixtures, delete d.type;
                        var f = n.create(d);
                        return n.setParts(f, h), n.setPosition(f, {
                            x: t,
                            y: e
                        }), f;
                    },
                    parseFixture: function(t) {
                        var e, i = r.extend({}, !1, t);
                        if (delete i.circle, delete i.vertices, t.circle) {
                            var n = o(t.circle, "x"), a = o(t.circle, "y"), h = o(t.circle, "radius");
                            e = [
                                s.circle(n, a, h, i)
                            ];
                        } else t.vertices && (e = this.parseVertices(t.vertices, i));
                        return e;
                    },
                    parseVertices: function(t, e) {
                        void 0 === e && (e = {});
                        for(var i = [], o = 0; o < t.length; o++)a.clockwiseSort(t[o]), i.push(n.create(r.extend({
                            position: a.centre(t[o]),
                            vertices: t[o]
                        }, e)));
                        return s.flagCoincidentParts(i);
                    }
                };
                t.exports = h;
            },
            72829: (t, e, i)=>{
                var s = i(68516), n = i(84125), r = {
                    parseBody: function(t, e, i, r) {
                        var o;
                        void 0 === r && (r = {});
                        var a = i.vertices;
                        if (1 === a.length) r.vertices = a[0], o = n.create(r), s.flagCoincidentParts(o.parts);
                        else {
                            for(var h = [], l = 0; l < a.length; l++){
                                var u = n.create({
                                    vertices: a[l]
                                });
                                h.push(u);
                            }
                            s.flagCoincidentParts(h), r.parts = h, o = n.create(r);
                        }
                        return o.label = i.label, n.setPosition(o, {
                            x: t,
                            y: e
                        }), o;
                    }
                };
                t.exports = r;
            },
            88596: (t, e, i)=>{
                var s = i(84091), n = i(56694), r = i(11299), o = i(52838), a = i(13657), h = i(35416), l = i(33963), u = i(30657), c = i(22806), d = i(93736), f = i(39745), p = new n({
                    initialize: function(t, e, i) {
                        void 0 === i && (i = {});
                        this.scene = t, this.world = e, this.camera = null, this.pointer = null, this.active = !0, this.position = new d, this.body = null, this.part = null, this.constraint = o.create(u(i, {
                            label: "Pointer Constraint",
                            pointA: {
                                x: 0,
                                y: 0
                            },
                            pointB: {
                                x: 0,
                                y: 0
                            },
                            length: .01,
                            stiffness: .1,
                            angularStiffness: 1,
                            collisionFilter: {
                                category: 1,
                                mask: 4294967295,
                                group: 0
                            }
                        })), this.world.on(h.BEFORE_UPDATE, this.update, this), t.sys.input.on(l.POINTER_DOWN, this.onDown, this), t.sys.input.on(l.POINTER_UP, this.onUp, this);
                    },
                    onDown: function(t) {
                        this.pointer || (this.pointer = t, this.camera = t.camera);
                    },
                    onUp: function(t) {
                        t === this.pointer && (this.pointer = null);
                    },
                    getBody: function(t) {
                        var e = this.position, i = this.constraint;
                        this.camera.getWorldPoint(t.x, t.y, e);
                        for(var n = r.allBodies(this.world.localWorld), o = 0; o < n.length; o++){
                            var l = n[o];
                            if (!l.ignorePointer && s.contains(l.bounds, e) && a.canCollide(l.collisionFilter, i.collisionFilter) && this.hitTestBody(l, e)) return this.world.emit(h.DRAG_START, l, this.part, this), !0;
                        }
                        return !1;
                    },
                    hitTestBody: function(t, e) {
                        for(var i = this.constraint, s = t.parts.length, n = s > 1 ? 1 : 0; n < s; n++){
                            var r = t.parts[n];
                            if (f.contains(r.vertices, e)) return i.pointA = e, i.pointB = {
                                x: e.x - t.position.x,
                                y: e.y - t.position.y
                            }, i.bodyB = t, i.angleB = t.angle, c.set(t, !1), this.part = r, this.body = t, !0;
                        }
                        return !1;
                    },
                    update: function() {
                        var t = this.pointer, e = this.body;
                        if (this.active && t) {
                            if (t.isDown || !e) {
                                if (t.isDown) {
                                    if (!e && !this.getBody(t)) return;
                                    e = this.body;
                                    var i = this.position, s = this.constraint;
                                    this.camera.getWorldPoint(t.x, t.y, i), s.pointA.x = i.x, s.pointA.y = i.y, c.set(e, !1), this.world.emit(h.DRAG, e, this);
                                }
                            } else this.stopDrag();
                        } else e && this.stopDrag();
                    },
                    stopDrag: function() {
                        var t = this.body, e = this.constraint;
                        e.bodyB = null, e.pointB = null, this.pointer = null, this.body = null, this.part = null, t && this.world.emit(h.DRAG_END, t, this);
                    },
                    destroy: function() {
                        this.world.removeConstraint(this.constraint), this.pointer = null, this.constraint = null, this.body = null, this.part = null, this.world.off(h.BEFORE_UPDATE, this.update), this.scene.sys.input.off(l.POINTER_DOWN, this.onDown, this), this.scene.sys.input.off(l.POINTER_UP, this.onUp, this);
                    }
                });
                t.exports = p;
            },
            31468: (t, e, i)=>{
                var s = i(68516), n = i(84125), r = i(56694), o = i(68758), a = i(11299), h = i(45775), l = i(6659), u = i(35416), c = i(72632), d = i(10850), f = i(84125), p = i(39073), v = i(84720), g = i(72005), m = i(10438), y = new r({
                    Extends: l,
                    initialize: function(t, e) {
                        l.call(this), this.scene = t, this.engine = h.create(e), this.localWorld = this.engine.world;
                        var i = d(e, "gravity", null);
                        i ? this.setGravity(i.x, i.y, i.scale) : !1 === i && this.setGravity(0, 0, 0), this.walls = {
                            left: null,
                            right: null,
                            top: null,
                            bottom: null
                        }, this.enabled = d(e, "enabled", !0), this.getDelta = d(e, "getDelta", this.update60Hz);
                        var s = c(e, "runner", {}), n = c(s, "fps", !1), r = c(s, "fps", 60), o = c(s, "delta", 1e3 / r), a = c(s, "deltaMin", 1e3 / r), u = c(s, "deltaMax", 1e3 / (.5 * r));
                        n || (r = 1e3 / o), this.runner = {
                            fps: r,
                            deltaSampleSize: c(s, "deltaSampleSize", 60),
                            counterTimestamp: 0,
                            frameCounter: 0,
                            deltaHistory: [],
                            timePrev: null,
                            timeScalePrev: 1,
                            frameRequestId: null,
                            isFixed: c(s, "isFixed", !1),
                            delta: o,
                            deltaMin: a,
                            deltaMax: u
                        }, this.autoUpdate = d(e, "autoUpdate", !0);
                        var f = d(e, "debug", !1);
                        if (this.drawDebug = "object" == typeof f || f, this.debugGraphic, this.debugConfig = {
                            showAxes: c(f, "showAxes", !1),
                            showAngleIndicator: c(f, "showAngleIndicator", !1),
                            angleColor: c(f, "angleColor", 15208787),
                            showBroadphase: c(f, "showBroadphase", !1),
                            broadphaseColor: c(f, "broadphaseColor", 16757760),
                            showBounds: c(f, "showBounds", !1),
                            boundsColor: c(f, "boundsColor", 16777215),
                            showVelocity: c(f, "showVelocity", !1),
                            velocityColor: c(f, "velocityColor", 44783),
                            showCollisions: c(f, "showCollisions", !1),
                            collisionColor: c(f, "collisionColor", 16094476),
                            showSeparations: c(f, "showSeparations", !1),
                            separationColor: c(f, "separationColor", 16753920),
                            showBody: c(f, "showBody", !0),
                            showStaticBody: c(f, "showStaticBody", !0),
                            showInternalEdges: c(f, "showInternalEdges", !1),
                            renderFill: c(f, "renderFill", !1),
                            renderLine: c(f, "renderLine", !0),
                            fillColor: c(f, "fillColor", 1075465),
                            fillOpacity: c(f, "fillOpacity", 1),
                            lineColor: c(f, "lineColor", 2678297),
                            lineOpacity: c(f, "lineOpacity", 1),
                            lineThickness: c(f, "lineThickness", 1),
                            staticFillColor: c(f, "staticFillColor", 857979),
                            staticLineColor: c(f, "staticLineColor", 1255396),
                            showSleeping: c(f, "showSleeping", !1),
                            staticBodySleepOpacity: c(f, "staticBodySleepOpacity", .7),
                            sleepFillColor: c(f, "sleepFillColor", 4605510),
                            sleepLineColor: c(f, "sleepLineColor", 10066585),
                            showSensors: c(f, "showSensors", !0),
                            sensorFillColor: c(f, "sensorFillColor", 857979),
                            sensorLineColor: c(f, "sensorLineColor", 1255396),
                            showPositions: c(f, "showPositions", !0),
                            positionSize: c(f, "positionSize", 4),
                            positionColor: c(f, "positionColor", 14697178),
                            showJoint: c(f, "showJoint", !0),
                            jointColor: c(f, "jointColor", 14737474),
                            jointLineOpacity: c(f, "jointLineOpacity", 1),
                            jointLineThickness: c(f, "jointLineThickness", 2),
                            pinSize: c(f, "pinSize", 4),
                            pinColor: c(f, "pinColor", 4382944),
                            springColor: c(f, "springColor", 14697184),
                            anchorColor: c(f, "anchorColor", 15724527),
                            anchorSize: c(f, "anchorSize", 4),
                            showConvexHulls: c(f, "showConvexHulls", !1),
                            hullColor: c(f, "hullColor", 14091216)
                        }, this.drawDebug && this.createDebugGraphic(), this.setEventsProxy(), c(e, "setBounds", !1)) {
                            var p = e.setBounds;
                            if ("boolean" == typeof p) this.setBounds();
                            else {
                                var v = c(p, "x", 0), g = c(p, "y", 0), m = c(p, "width", t.sys.scale.width), y = c(p, "height", t.sys.scale.height), x = c(p, "thickness", 64), T = c(p, "left", !0), w = c(p, "right", !0), b = c(p, "top", !0), S = c(p, "bottom", !0);
                                this.setBounds(v, g, m, y, x, T, w, b, S);
                            }
                        }
                    },
                    setCompositeRenderStyle: function(t) {
                        var e, i, s, n = t.bodies, r = t.constraints, o = t.composites;
                        for(e = 0; e < n.length; e++)s = (i = n[e]).render, this.setBodyRenderStyle(i, s.lineColor, s.lineOpacity, s.lineThickness, s.fillColor, s.fillOpacity);
                        for(e = 0; e < r.length; e++)s = (i = r[e]).render, this.setConstraintRenderStyle(i, s.lineColor, s.lineOpacity, s.lineThickness, s.pinSize, s.anchorColor, s.anchorSize);
                        for(e = 0; e < o.length; e++)i = o[e], this.setCompositeRenderStyle(i);
                        return this;
                    },
                    setBodyRenderStyle: function(t, e, i, s, n, r) {
                        var o = t.render, a = this.debugConfig;
                        return o ? (null == e && (e = t.isStatic ? a.staticLineColor : a.lineColor), null == i && (i = a.lineOpacity), null == s && (s = a.lineThickness), null == n && (n = t.isStatic ? a.staticFillColor : a.fillColor), null == r && (r = a.fillOpacity), !1 !== e && (o.lineColor = e), !1 !== i && (o.lineOpacity = i), !1 !== s && (o.lineThickness = s), !1 !== n && (o.fillColor = n), !1 !== r && (o.fillOpacity = r), this) : this;
                    },
                    setConstraintRenderStyle: function(t, e, i, s, n, r, o) {
                        var a = t.render, h = this.debugConfig;
                        if (!a) return this;
                        if (null == e) {
                            var l = a.type;
                            "line" === l ? e = h.jointColor : "pin" === l ? e = h.pinColor : "spring" === l && (e = h.springColor);
                        }
                        return null == i && (i = h.jointLineOpacity), null == s && (s = h.jointLineThickness), null == n && (n = h.pinSize), null == r && (r = h.anchorColor), null == o && (o = h.anchorSize), !1 !== e && (a.lineColor = e), !1 !== i && (a.lineOpacity = i), !1 !== s && (a.lineThickness = s), !1 !== n && (a.pinSize = n), !1 !== r && (a.anchorColor = r), !1 !== o && (a.anchorSize = o), this;
                    },
                    setEventsProxy: function() {
                        var t = this, e = this.engine, i = this.localWorld;
                        this.drawDebug && (p.on(i, "compositeModified", function(e) {
                            t.setCompositeRenderStyle(e);
                        }), p.on(i, "beforeAdd", function(e) {
                            for(var i = [].concat(e.object), s = 0; s < i.length; s++){
                                var n = i[s], r = n.render;
                                "body" === n.type ? t.setBodyRenderStyle(n, r.lineColor, r.lineOpacity, r.lineThickness, r.fillColor, r.fillOpacity) : "composite" === n.type ? t.setCompositeRenderStyle(n) : "constraint" === n.type && t.setConstraintRenderStyle(n, r.lineColor, r.lineOpacity, r.lineThickness, r.pinSize, r.anchorColor, r.anchorSize);
                            }
                        })), p.on(i, "beforeAdd", function(e) {
                            t.emit(u.BEFORE_ADD, e);
                        }), p.on(i, "afterAdd", function(e) {
                            t.emit(u.AFTER_ADD, e);
                        }), p.on(i, "beforeRemove", function(e) {
                            t.emit(u.BEFORE_REMOVE, e);
                        }), p.on(i, "afterRemove", function(e) {
                            t.emit(u.AFTER_REMOVE, e);
                        }), p.on(e, "beforeUpdate", function(e) {
                            t.emit(u.BEFORE_UPDATE, e);
                        }), p.on(e, "afterUpdate", function(e) {
                            t.emit(u.AFTER_UPDATE, e);
                        }), p.on(e, "collisionStart", function(e) {
                            var i, s, n = e.pairs;
                            n.length > 0 && (i = n[0].bodyA, s = n[0].bodyB), t.emit(u.COLLISION_START, e, i, s);
                        }), p.on(e, "collisionActive", function(e) {
                            var i, s, n = e.pairs;
                            n.length > 0 && (i = n[0].bodyA, s = n[0].bodyB), t.emit(u.COLLISION_ACTIVE, e, i, s);
                        }), p.on(e, "collisionEnd", function(e) {
                            var i, s, n = e.pairs;
                            n.length > 0 && (i = n[0].bodyA, s = n[0].bodyB), t.emit(u.COLLISION_END, e, i, s);
                        });
                    },
                    setBounds: function(t, e, i, s, n, r, o, a, h) {
                        return void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = this.scene.sys.scale.width), void 0 === s && (s = this.scene.sys.scale.height), void 0 === n && (n = 64), void 0 === r && (r = !0), void 0 === o && (o = !0), void 0 === a && (a = !0), void 0 === h && (h = !0), this.updateWall(r, "left", t - n, e - n, n, s + 2 * n), this.updateWall(o, "right", t + i, e - n, n, s + 2 * n), this.updateWall(a, "top", t, e - n, i, n), this.updateWall(h, "bottom", t, e + s, i, n), this;
                    },
                    updateWall: function(t, e, i, s, n, r) {
                        var o = this.walls[e];
                        t ? (o && g.remove(this.localWorld, o), i += n / 2, s += r / 2, this.walls[e] = this.create(i, s, n, r, {
                            isStatic: !0,
                            friction: 0,
                            frictionStatic: 0
                        })) : (o && g.remove(this.localWorld, o), this.walls[e] = null);
                    },
                    createDebugGraphic: function() {
                        var t = this.scene.sys.add.graphics({
                            x: 0,
                            y: 0
                        });
                        return t.setDepth(Number.MAX_VALUE), this.debugGraphic = t, this.drawDebug = !0, t;
                    },
                    disableGravity: function() {
                        return this.localWorld.gravity.x = 0, this.localWorld.gravity.y = 0, this.localWorld.gravity.scale = 0, this;
                    },
                    setGravity: function(t, e, i) {
                        return void 0 === t && (t = 0), void 0 === e && (e = 1), void 0 === i && (i = .001), this.localWorld.gravity.x = t, this.localWorld.gravity.y = e, this.localWorld.gravity.scale = i, this;
                    },
                    create: function(t, e, i, n, r) {
                        var o = s.rectangle(t, e, i, n, r);
                        return g.add(this.localWorld, o), o;
                    },
                    add: function(t) {
                        return g.add(this.localWorld, t), this;
                    },
                    remove: function(t, e) {
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var i = 0; i < t.length; i++){
                            var s = t[i], n = s.body ? s.body : s;
                            a.remove(this.localWorld, n, e);
                        }
                        return this;
                    },
                    removeConstraint: function(t, e) {
                        return a.remove(this.localWorld, t, e), this;
                    },
                    convertTilemapLayer: function(t, e) {
                        var i = t.layer, s = t.getTilesWithin(0, 0, i.width, i.height, {
                            isColliding: !0
                        });
                        return this.convertTiles(s, e), this;
                    },
                    convertTiles: function(t, e) {
                        if (0 === t.length) return this;
                        for(var i = 0; i < t.length; i++)new v(this, t[i], e);
                        return this;
                    },
                    nextGroup: function(t) {
                        return f.nextGroup(t);
                    },
                    nextCategory: function() {
                        return f.nextCategory();
                    },
                    pause: function() {
                        return this.enabled = !1, this.emit(u.PAUSE), this;
                    },
                    resume: function() {
                        return this.enabled = !0, this.emit(u.RESUME), this;
                    },
                    update: function(t, e) {
                        if (this.enabled && this.autoUpdate) {
                            var i = this.engine, s = this.runner, n = i.timing;
                            s.isFixed ? e = this.getDelta(t, e) : (e = t - s.timePrev || s.delta, s.timePrev = t, s.deltaHistory.push(e), s.deltaHistory = s.deltaHistory.slice(-s.deltaSampleSize), e = (e = (e = Math.min.apply(null, s.deltaHistory)) < s.deltaMin ? s.deltaMin : e) > s.deltaMax ? s.deltaMax : e, s.delta = e), s.timeScalePrev = n.timeScale, s.frameCounter += 1, t - s.counterTimestamp >= 1e3 && (s.fps = s.frameCounter * ((t - s.counterTimestamp) / 1e3), s.counterTimestamp = t, s.frameCounter = 0), h.update(i, e);
                        }
                    },
                    step: function(t) {
                        h.update(this.engine, t);
                    },
                    update60Hz: function() {
                        return 1e3 / 60;
                    },
                    update30Hz: function() {
                        return 1e3 / 30;
                    },
                    has: function(t) {
                        var e = t.hasOwnProperty("body") ? t.body : t;
                        return null !== a.get(this.localWorld, e.id, e.type);
                    },
                    getAllBodies: function() {
                        return a.allBodies(this.localWorld);
                    },
                    getAllConstraints: function() {
                        return a.allConstraints(this.localWorld);
                    },
                    getAllComposites: function() {
                        return a.allComposites(this.localWorld);
                    },
                    postUpdate: function() {
                        if (this.drawDebug) {
                            var t = this.debugConfig, e = this.engine, i = this.debugGraphic, s = a.allBodies(this.localWorld);
                            this.debugGraphic.clear(), t.showBroadphase && e.broadphase.controller && this.renderGrid(e.broadphase, i, t.broadphaseColor, .5), t.showBounds && this.renderBodyBounds(s, i, t.boundsColor, .5), (t.showBody || t.showStaticBody) && this.renderBodies(s), t.showJoint && this.renderJoints(), (t.showAxes || t.showAngleIndicator) && this.renderBodyAxes(s, i, t.showAxes, t.angleColor, .5), t.showVelocity && this.renderBodyVelocity(s, i, t.velocityColor, 1, 2), t.showSeparations && this.renderSeparations(e.pairs.list, i, t.separationColor), t.showCollisions && this.renderCollisions(e.pairs.list, i, t.collisionColor);
                        }
                    },
                    renderGrid: function(t, e, i, s) {
                        e.lineStyle(1, i, s);
                        for(var n = o.keys(t.buckets), r = 0; r < n.length; r++){
                            var a = n[r];
                            if (!(t.buckets[a].length < 2)) {
                                var h = a.split(/C|R/);
                                e.strokeRect(parseInt(h[1], 10) * t.bucketWidth, parseInt(h[2], 10) * t.bucketHeight, t.bucketWidth, t.bucketHeight);
                            }
                        }
                        return this;
                    },
                    renderSeparations: function(t, e, i) {
                        e.lineStyle(1, i, 1);
                        for(var s = 0; s < t.length; s++){
                            var n = t[s];
                            if (n.isActive) {
                                var r = n.collision, o = r.bodyA, a = r.bodyB, h = o.position, l = a.position, u = r.penetration, c = o.isStatic || a.isStatic ? 1 : 4;
                                a.isStatic && (c = 0), e.lineBetween(l.x, l.y, l.x - u.x * c, l.y - u.y * c), c = o.isStatic || a.isStatic ? 1 : 4, o.isStatic && (c = 0), e.lineBetween(h.x, h.y, h.x - u.x * c, h.y - u.y * c);
                            }
                        }
                        return this;
                    },
                    renderCollisions: function(t, e, i) {
                        var s, n;
                        for(e.lineStyle(1, i, .5), e.fillStyle(i, 1), s = 0; s < t.length; s++)if ((n = t[s]).isActive) for(var r = 0; r < n.activeContacts.length; r++){
                            var o = n.activeContacts[r].vertex;
                            e.fillRect(o.x - 2, o.y - 2, 5, 5);
                        }
                        for(s = 0; s < t.length; s++)if ((n = t[s]).isActive) {
                            var a = n.collision, h = n.activeContacts;
                            if (h.length > 0) {
                                var l = h[0].vertex.x, u = h[0].vertex.y;
                                2 === h.length && (l = (h[0].vertex.x + h[1].vertex.x) / 2, u = (h[0].vertex.y + h[1].vertex.y) / 2), a.bodyB === a.supports[0].body || a.bodyA.isStatic ? e.lineBetween(l - 8 * a.normal.x, u - 8 * a.normal.y, l, u) : e.lineBetween(l + 8 * a.normal.x, u + 8 * a.normal.y, l, u);
                            }
                        }
                        return this;
                    },
                    renderBodyBounds: function(t, e, i, s) {
                        e.lineStyle(1, i, s);
                        for(var n = 0; n < t.length; n++){
                            var r = t[n];
                            if (r.render.visible) {
                                var o = r.bounds;
                                if (o) e.strokeRect(o.min.x, o.min.y, o.max.x - o.min.x, o.max.y - o.min.y);
                                else for(var a = r.parts, h = a.length > 1 ? 1 : 0; h < a.length; h++){
                                    var l = a[h];
                                    e.strokeRect(l.bounds.min.x, l.bounds.min.y, l.bounds.max.x - l.bounds.min.x, l.bounds.max.y - l.bounds.min.y);
                                }
                            }
                        }
                        return this;
                    },
                    renderBodyAxes: function(t, e, i, s, n) {
                        e.lineStyle(1, s, n);
                        for(var r = 0; r < t.length; r++){
                            var o, a, h, l = t[r], u = l.parts;
                            if (l.render.visible) {
                                if (i) for(a = u.length > 1 ? 1 : 0; a < u.length; a++)for(o = u[a], h = 0; h < o.axes.length; h++){
                                    var c = o.axes[h];
                                    e.lineBetween(o.position.x, o.position.y, o.position.x + 20 * c.x, o.position.y + 20 * c.y);
                                }
                                else for(a = u.length > 1 ? 1 : 0; a < u.length; a++)for(o = u[a], h = 0; h < o.axes.length; h++)e.lineBetween(o.position.x, o.position.y, (o.vertices[0].x + o.vertices[o.vertices.length - 1].x) / 2, (o.vertices[0].y + o.vertices[o.vertices.length - 1].y) / 2);
                            }
                        }
                        return this;
                    },
                    renderBodyVelocity: function(t, e, i, s, n) {
                        e.lineStyle(n, i, s);
                        for(var r = 0; r < t.length; r++){
                            var o = t[r];
                            o.render.visible && e.lineBetween(o.position.x, o.position.y, o.position.x + 2 * (o.position.x - o.positionPrev.x), o.position.y + 2 * (o.position.y - o.positionPrev.y));
                        }
                        return this;
                    },
                    renderBodies: function(t) {
                        for(var e = this.debugGraphic, i = this.debugConfig, s = i.showBody, n = i.showStaticBody, r = i.showSleeping, o = i.showInternalEdges, a = i.showConvexHulls, h = i.renderFill, l = i.renderLine, u = i.staticBodySleepOpacity, c = i.sleepFillColor, d = i.sleepLineColor, f = i.hullColor, p = 0; p < t.length; p++){
                            var v = t[p];
                            if (v.render.visible && (n || !v.isStatic) && (s || v.isStatic)) {
                                var g = v.render.lineColor, m = v.render.lineOpacity, y = v.render.lineThickness, x = v.render.fillColor, T = v.render.fillOpacity;
                                r && v.isSleeping && (v.isStatic ? (m *= u, T *= u) : (g = d, x = c)), h || (x = null), l || (g = null), this.renderBody(v, e, o, g, m, y, x, T);
                                var w = v.parts.length;
                                a && w > 1 && this.renderConvexHull(v, e, f, y);
                            }
                        }
                    },
                    renderBody: function(t, e, i, s, n, r, o, a) {
                        void 0 === s && (s = null), void 0 === n && (n = null), void 0 === r && (r = 1), void 0 === o && (o = null), void 0 === a && (a = null);
                        for(var h = this.debugConfig, l = h.sensorFillColor, u = h.sensorLineColor, c = t.parts, d = c.length, f = d > 1 ? 1 : 0; f < d; f++){
                            var p = c[f], v = p.render, g = v.opacity;
                            if (v.visible && 0 !== g && (!p.isSensor || h.showSensors)) {
                                var m = p.circleRadius;
                                if (e.beginPath(), p.isSensor ? (null !== o && e.fillStyle(l, a * g), null !== s && e.lineStyle(r, u, n * g)) : (null !== o && e.fillStyle(o, a * g), null !== s && e.lineStyle(r, s, n * g)), m) e.arc(p.position.x, p.position.y, m, 0, 2 * Math.PI);
                                else {
                                    var y = p.vertices, x = y.length;
                                    e.moveTo(y[0].x, y[0].y);
                                    for(var T = 1; T < x; T++){
                                        var w = y[T];
                                        if (!y[T - 1].isInternal || i ? e.lineTo(w.x, w.y) : e.moveTo(w.x, w.y), T < x && w.isInternal && !i) {
                                            var b = (T + 1) % x;
                                            e.moveTo(y[b].x, y[b].y);
                                        }
                                    }
                                    e.closePath();
                                }
                                null !== o && e.fillPath(), null !== s && e.strokePath();
                            }
                        }
                        if (h.showPositions && !t.isStatic) {
                            var S = t.position.x, E = t.position.y, A = Math.ceil(h.positionSize / 2);
                            e.fillStyle(h.positionColor, 1), e.fillRect(S - A, E - A, h.positionSize, h.positionSize);
                        }
                        return this;
                    },
                    renderConvexHull: function(t, e, i, s) {
                        if (void 0 === s && (s = 1), t.parts.length > 1) {
                            var n = t.vertices;
                            e.lineStyle(s, i), e.beginPath(), e.moveTo(n[0].x, n[0].y);
                            for(var r = 1; r < n.length; r++)e.lineTo(n[r].x, n[r].y);
                            e.lineTo(n[0].x, n[0].y), e.strokePath();
                        }
                        return this;
                    },
                    renderJoints: function() {
                        for(var t = this.debugGraphic, e = a.allConstraints(this.localWorld), i = 0; i < e.length; i++){
                            var s = e[i].render, n = s.lineColor, r = s.lineOpacity, o = s.lineThickness, h = s.pinSize, l = s.anchorColor, u = s.anchorSize;
                            this.renderConstraint(e[i], t, n, r, o, h, l, u);
                        }
                    },
                    renderConstraint: function(t, e, i, s, n, r, a, h) {
                        var l = t.render;
                        if (!l.visible || !t.pointA || !t.pointB) return this;
                        e.lineStyle(n, i, s);
                        var u, c, d = t.bodyA, f = t.bodyB;
                        if (u = d ? m.add(d.position, t.pointA) : t.pointA, "pin" === l.type) e.strokeCircle(u.x, u.y, r);
                        else {
                            if (c = f ? m.add(f.position, t.pointB) : t.pointB, e.beginPath(), e.moveTo(u.x, u.y), "spring" === l.type) for(var p, v = m.sub(c, u), g = m.perp(m.normalise(v)), y = Math.ceil(o.clamp(t.length / 5, 12, 20)), x = 1; x < y; x += 1)p = x % 2 == 0 ? 1 : -1, e.lineTo(u.x + v.x * (x / y) + g.x * p * 4, u.y + v.y * (x / y) + g.y * p * 4);
                            e.lineTo(c.x, c.y);
                        }
                        return e.strokePath(), l.anchors && h > 0 && (e.fillStyle(a), e.fillCircle(u.x, u.y, h), e.fillCircle(c.x, c.y, h)), this;
                    },
                    resetCollisionIDs: function() {
                        return n._nextCollidingGroupId = 1, n._nextNonCollidingGroupId = -1, n._nextCategory = 1, this;
                    },
                    shutdown: function() {
                        p.off(this.engine), this.removeAllListeners(), g.clear(this.localWorld, !1), h.clear(this.engine), this.drawDebug && this.debugGraphic.destroy();
                    },
                    destroy: function() {
                        this.shutdown();
                    }
                });
                t.exports = y;
            },
            95349: (t)=>{
                t.exports = {
                    setBounce: function(t) {
                        return this.body.restitution = t, this;
                    }
                };
            },
            70679: (t)=>{
                var e = {
                    setCollisionCategory: function(t) {
                        return this.body.collisionFilter.category = t, this;
                    },
                    setCollisionGroup: function(t) {
                        return this.body.collisionFilter.group = t, this;
                    },
                    setCollidesWith: function(t) {
                        var e = 0;
                        if (Array.isArray(t)) for(var i = 0; i < t.length; i++)e |= t[i];
                        else e = t;
                        return this.body.collisionFilter.mask = e, this;
                    },
                    setOnCollide: function(t) {
                        return this.body.onCollideCallback = t, this;
                    },
                    setOnCollideEnd: function(t) {
                        return this.body.onCollideEndCallback = t, this;
                    },
                    setOnCollideActive: function(t) {
                        return this.body.onCollideActiveCallback = t, this;
                    },
                    setOnCollideWith: function(t, e) {
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var i = 0; i < t.length; i++){
                            var s = t[i].hasOwnProperty("body") ? t[i].body : t[i];
                            this.body.setOnCollideWith(s, e);
                        }
                        return this;
                    }
                };
                t.exports = e;
            },
            77178: (t, e, i)=>{
                var s = i(84125), n = {
                    applyForce: function(t) {
                        return this._tempVec2.set(this.body.position.x, this.body.position.y), s.applyForce(this.body, this._tempVec2, t), this;
                    },
                    applyForceFrom: function(t, e) {
                        return s.applyForce(this.body, t, e), this;
                    },
                    thrust: function(t) {
                        var e = this.body.angle;
                        return this._tempVec2.set(t * Math.cos(e), t * Math.sin(e)), s.applyForce(this.body, {
                            x: this.body.position.x,
                            y: this.body.position.y
                        }, this._tempVec2), this;
                    },
                    thrustLeft: function(t) {
                        var e = this.body.angle - Math.PI / 2;
                        return this._tempVec2.set(t * Math.cos(e), t * Math.sin(e)), s.applyForce(this.body, {
                            x: this.body.position.x,
                            y: this.body.position.y
                        }, this._tempVec2), this;
                    },
                    thrustRight: function(t) {
                        var e = this.body.angle + Math.PI / 2;
                        return this._tempVec2.set(t * Math.cos(e), t * Math.sin(e)), s.applyForce(this.body, {
                            x: this.body.position.x,
                            y: this.body.position.y
                        }, this._tempVec2), this;
                    },
                    thrustBack: function(t) {
                        var e = this.body.angle - Math.PI;
                        return this._tempVec2.set(t * Math.cos(e), t * Math.sin(e)), s.applyForce(this.body, {
                            x: this.body.position.x,
                            y: this.body.position.y
                        }, this._tempVec2), this;
                    }
                };
                t.exports = n;
            },
            74015: (t)=>{
                var e = {
                    setFriction: function(t, e, i) {
                        return this.body.friction = t, void 0 !== e && (this.body.frictionAir = e), void 0 !== i && (this.body.frictionStatic = i), this;
                    },
                    setFrictionAir: function(t) {
                        return this.body.frictionAir = t, this;
                    },
                    setFrictionStatic: function(t) {
                        return this.body.frictionStatic = t, this;
                    }
                };
                t.exports = e;
            },
            11535: (t)=>{
                t.exports = {
                    setIgnoreGravity: function(t) {
                        return this.body.ignoreGravity = t, this;
                    }
                };
            },
            74497: (t, e, i)=>{
                var s = i(84125), n = i(93736), r = {
                    setMass: function(t) {
                        return s.setMass(this.body, t), this;
                    },
                    setDensity: function(t) {
                        return s.setDensity(this.body, t), this;
                    },
                    centerOfMass: {
                        get: function() {
                            return new n(this.body.centerOfMass.x, this.body.centerOfMass.y);
                        }
                    }
                };
                t.exports = r;
            },
            75529: (t)=>{
                t.exports = {
                    setSensor: function(t) {
                        return this.body.isSensor = t, this;
                    },
                    isSensor: function() {
                        return this.body.isSensor;
                    }
                };
            },
            64024: (t, e, i)=>{
                var s = i(68516), n = i(84125), r = i(88456), o = i(72632), a = i(10998), h = i(72829), l = i(39745), u = {
                    setRectangle: function(t, e, i) {
                        return this.setBody({
                            type: "rectangle",
                            width: t,
                            height: e
                        }, i);
                    },
                    setCircle: function(t, e) {
                        return this.setBody({
                            type: "circle",
                            radius: t
                        }, e);
                    },
                    setPolygon: function(t, e, i) {
                        return this.setBody({
                            type: "polygon",
                            sides: e,
                            radius: t
                        }, i);
                    },
                    setTrapezoid: function(t, e, i, s) {
                        return this.setBody({
                            type: "trapezoid",
                            width: t,
                            height: e,
                            slope: i
                        }, s);
                    },
                    setExistingBody: function(t, e) {
                        void 0 === e && (e = !0), this.body && this.world.remove(this.body, !0), this.body = t;
                        for(var i = 0; i < t.parts.length; i++)t.parts[i].gameObject = this;
                        var s = this;
                        if (t.destroy = function() {
                            s.world.remove(s.body, !0), s.body.gameObject = null;
                        }, e && (this.world.has(t) && this.world.remove(t, !0), this.world.add(t)), this._originComponent) {
                            var n = t.render.sprite.xOffset, o = t.render.sprite.yOffset, a = t.centerOfMass.x, h = t.centerOfMass.y;
                            if (r(a, .5) && r(h, .5)) this.setOrigin(n + .5, o + .5);
                            else {
                                var l = t.centerOffset.x, u = t.centerOffset.y;
                                this.setOrigin(n + l / this.displayWidth, o + u / this.displayHeight);
                            }
                        }
                        return this;
                    },
                    setBody: function(t, e) {
                        if (!t) return this;
                        var i;
                        "string" == typeof t && (t = {
                            type: t
                        });
                        var r = o(t, "type", "rectangle"), u = o(t, "x", this._tempVec2.x), c = o(t, "y", this._tempVec2.y), d = o(t, "width", this.width), f = o(t, "height", this.height);
                        switch(r){
                            case "rectangle":
                                i = s.rectangle(u, c, d, f, e);
                                break;
                            case "circle":
                                var p = o(t, "radius", Math.max(d, f) / 2), v = o(t, "maxSides", 25);
                                i = s.circle(u, c, p, e, v);
                                break;
                            case "trapezoid":
                                var g = o(t, "slope", .5);
                                i = s.trapezoid(u, c, d, f, g, e);
                                break;
                            case "polygon":
                                var m = o(t, "sides", 5), y = o(t, "radius", Math.max(d, f) / 2);
                                i = s.polygon(u, c, m, y, e);
                                break;
                            case "fromVertices":
                            case "fromVerts":
                                var x = o(t, "verts", null);
                                if (x) {
                                    if ("string" == typeof x && (x = l.fromPath(x)), this.body && !this.body.hasOwnProperty("temp")) n.setVertices(this.body, x), i = this.body;
                                    else {
                                        var T = o(t, "flagInternal", !1), w = o(t, "removeCollinear", .01), b = o(t, "minimumArea", 10);
                                        i = s.fromVertices(u, c, x, e, T, w, b);
                                    }
                                }
                                break;
                            case "fromPhysicsEditor":
                                i = a.parseBody(u, c, t, e);
                                break;
                            case "fromPhysicsTracer":
                                i = h.parseBody(u, c, t, e);
                        }
                        return i && this.setExistingBody(i, t.addToWorld), this;
                    }
                };
                t.exports = u;
            },
            25106: (t, e, i)=>{
                var s = i(35416), n = i(22806), r = i(39073), o = {
                    setToSleep: function() {
                        return n.set(this.body, !0), this;
                    },
                    setAwake: function() {
                        return n.set(this.body, !1), this;
                    },
                    setSleepThreshold: function(t) {
                        return void 0 === t && (t = 60), this.body.sleepThreshold = t, this;
                    },
                    setSleepEvents: function(t, e) {
                        return this.setSleepStartEvent(t), this.setSleepEndEvent(e), this;
                    },
                    setSleepStartEvent: function(t) {
                        if (t) {
                            var e = this.world;
                            r.on(this.body, "sleepStart", function(t) {
                                e.emit(s.SLEEP_START, t, this);
                            });
                        } else r.off(this.body, "sleepStart");
                        return this;
                    },
                    setSleepEndEvent: function(t) {
                        if (t) {
                            var e = this.world;
                            r.on(this.body, "sleepEnd", function(t) {
                                e.emit(s.SLEEP_END, t, this);
                            });
                        } else r.off(this.body, "sleepEnd");
                        return this;
                    }
                };
                t.exports = o;
            },
            82884: (t, e, i)=>{
                var s = i(84125), n = {
                    setStatic: function(t) {
                        return s.setStatic(this.body, t), this;
                    },
                    isStatic: function() {
                        return this.body.isStatic;
                    }
                };
                t.exports = n;
            },
            4753: (t, e, i)=>{
                var s = i(84125), n = i(83392), r = i(35786), o = i(62138), a = {
                    x: {
                        get: function() {
                            return this.body.position.x;
                        },
                        set: function(t) {
                            this._tempVec2.set(t, this.y), s.setPosition(this.body, this._tempVec2);
                        }
                    },
                    y: {
                        get: function() {
                            return this.body.position.y;
                        },
                        set: function(t) {
                            this._tempVec2.set(this.x, t), s.setPosition(this.body, this._tempVec2);
                        }
                    },
                    scaleX: {
                        get: function() {
                            return this._scaleX;
                        },
                        set: function(t) {
                            var e = 1 / this._scaleX, i = 1 / this._scaleY;
                            this._scaleX = t, 0 === this._scaleX ? this.renderFlags &= -5 : this.renderFlags |= 4, s.scale(this.body, e, i), s.scale(this.body, t, this._scaleY);
                        }
                    },
                    scaleY: {
                        get: function() {
                            return this._scaleY;
                        },
                        set: function(t) {
                            var e = 1 / this._scaleX, i = 1 / this._scaleY;
                            this._scaleY = t, 0 === this._scaleY ? this.renderFlags &= -5 : this.renderFlags |= 4, s.scale(this.body, e, i), s.scale(this.body, this._scaleX, t);
                        }
                    },
                    angle: {
                        get: function() {
                            return o(this.body.angle * n.RAD_TO_DEG);
                        },
                        set: function(t) {
                            this.rotation = o(t) * n.DEG_TO_RAD;
                        }
                    },
                    rotation: {
                        get: function() {
                            return this.body.angle;
                        },
                        set: function(t) {
                            this._rotation = r(t), s.setAngle(this.body, this._rotation);
                        }
                    },
                    setPosition: function(t, e) {
                        return void 0 === t && (t = 0), void 0 === e && (e = t), this._tempVec2.set(t, e), s.setPosition(this.body, this._tempVec2), this;
                    },
                    setRotation: function(t) {
                        return void 0 === t && (t = 0), this._rotation = r(t), s.setAngle(this.body, t), this;
                    },
                    setFixedRotation: function() {
                        return s.setInertia(this.body, 1 / 0), this;
                    },
                    setAngle: function(t) {
                        return void 0 === t && (t = 0), this.angle = t, s.setAngle(this.body, this.rotation), this;
                    },
                    setScale: function(t, e, i) {
                        void 0 === t && (t = 1), void 0 === e && (e = t);
                        var n = 1 / this._scaleX, r = 1 / this._scaleY;
                        return this._scaleX = t, this._scaleY = e, s.scale(this.body, n, r, i), s.scale(this.body, t, e, i), this;
                    }
                };
                t.exports = a;
            },
            37268: (t, e, i)=>{
                var s = i(84125), n = {
                    setVelocityX: function(t) {
                        return this._tempVec2.set(t, this.body.velocity.y), s.setVelocity(this.body, this._tempVec2), this;
                    },
                    setVelocityY: function(t) {
                        return this._tempVec2.set(this.body.velocity.x, t), s.setVelocity(this.body, this._tempVec2), this;
                    },
                    setVelocity: function(t, e) {
                        return this._tempVec2.set(t, e), s.setVelocity(this.body, this._tempVec2), this;
                    },
                    getVelocity: function() {
                        return s.getVelocity(this.body);
                    },
                    setAngularVelocity: function(t) {
                        return s.setAngularVelocity(this.body, t), this;
                    },
                    getAngularVelocity: function() {
                        return s.getAngularVelocity(this.body);
                    },
                    setAngularSpeed: function(t) {
                        return s.setAngularSpeed(this.body, t), this;
                    },
                    getAngularSpeed: function() {
                        return s.getAngularSpeed(this.body);
                    }
                };
                t.exports = n;
            },
            74527: (t, e, i)=>{
                t.exports = {
                    Bounce: i(95349),
                    Collision: i(70679),
                    Force: i(77178),
                    Friction: i(74015),
                    Gravity: i(11535),
                    Mass: i(74497),
                    Sensor: i(75529),
                    SetBody: i(64024),
                    Sleep: i(25106),
                    Static: i(82884),
                    Transform: i(4753),
                    Velocity: i(37268)
                };
            },
            63201: (t)=>{
                t.exports = "afteradd";
            },
            30474: (t)=>{
                t.exports = "afterremove";
            },
            44822: (t)=>{
                t.exports = "afterupdate";
            },
            88820: (t)=>{
                t.exports = "beforeadd";
            },
            94849: (t)=>{
                t.exports = "beforeremove";
            },
            6391: (t)=>{
                t.exports = "beforeupdate";
            },
            96738: (t)=>{
                t.exports = "collisionactive";
            },
            7916: (t)=>{
                t.exports = "collisionend";
            },
            59529: (t)=>{
                t.exports = "collisionstart";
            },
            10219: (t)=>{
                t.exports = "dragend";
            },
            183: (t)=>{
                t.exports = "drag";
            },
            39143: (t)=>{
                t.exports = "dragstart";
            },
            16483: (t)=>{
                t.exports = "pause";
            },
            35806: (t)=>{
                t.exports = "resume";
            },
            22106: (t)=>{
                t.exports = "sleepend";
            },
            5803: (t)=>{
                t.exports = "sleepstart";
            },
            35416: (t, e, i)=>{
                t.exports = {
                    AFTER_ADD: i(63201),
                    AFTER_REMOVE: i(30474),
                    AFTER_UPDATE: i(44822),
                    BEFORE_ADD: i(88820),
                    BEFORE_REMOVE: i(94849),
                    BEFORE_UPDATE: i(6391),
                    COLLISION_ACTIVE: i(96738),
                    COLLISION_END: i(7916),
                    COLLISION_START: i(59529),
                    DRAG_END: i(10219),
                    DRAG: i(183),
                    DRAG_START: i(39143),
                    PAUSE: i(16483),
                    RESUME: i(35806),
                    SLEEP_END: i(22106),
                    SLEEP_START: i(5803)
                };
            },
            45949: (t, e, i)=>{
                t.exports = {
                    BodyBounds: i(63568),
                    Components: i(74527),
                    Events: i(35416),
                    Factory: i(72653),
                    MatterGameObject: i(3860),
                    Image: i(7030),
                    Matter: i(18171),
                    MatterPhysics: i(50583),
                    PolyDecomp: i(81084),
                    Sprite: i(73658),
                    TileBody: i(84720),
                    PhysicsEditorParser: i(10998),
                    PhysicsJSONParser: i(72829),
                    PointerConstraint: i(88596),
                    World: i(31468)
                };
            },
            84125: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(39745), r = i(10438), o = i(22806), a = i(68758), h = i(84091), l = i(50658);
                !function() {
                    s._timeCorrection = !0, s._inertiaScale = 4, s._nextCollidingGroupId = 1, s._nextNonCollidingGroupId = -1, s._nextCategory = 1, s._baseDelta = 1e3 / 60, s.create = function(e) {
                        var i = {
                            id: a.nextId(),
                            type: "body",
                            label: "Body",
                            parts: [],
                            plugin: {},
                            angle: 0,
                            vertices: null,
                            position: {
                                x: 0,
                                y: 0
                            },
                            force: {
                                x: 0,
                                y: 0
                            },
                            torque: 0,
                            positionImpulse: {
                                x: 0,
                                y: 0
                            },
                            constraintImpulse: {
                                x: 0,
                                y: 0,
                                angle: 0
                            },
                            totalContacts: 0,
                            speed: 0,
                            angularSpeed: 0,
                            velocity: {
                                x: 0,
                                y: 0
                            },
                            angularVelocity: 0,
                            isSensor: !1,
                            isStatic: !1,
                            isSleeping: !1,
                            motion: 0,
                            sleepThreshold: 60,
                            density: .001,
                            restitution: 0,
                            friction: .1,
                            frictionStatic: .5,
                            frictionAir: .01,
                            collisionFilter: {
                                category: 1,
                                mask: 4294967295,
                                group: 0
                            },
                            slop: .05,
                            timeScale: 1,
                            events: null,
                            bounds: null,
                            chamfer: null,
                            circleRadius: 0,
                            positionPrev: null,
                            anglePrev: 0,
                            parent: null,
                            axes: null,
                            area: 0,
                            mass: 0,
                            inverseMass: 0,
                            inertia: 0,
                            deltaTime: 1e3 / 60,
                            inverseInertia: 0,
                            _original: null,
                            render: {
                                visible: !0,
                                opacity: 1,
                                sprite: {
                                    xOffset: 0,
                                    yOffset: 0
                                },
                                fillColor: null,
                                fillOpacity: null,
                                lineColor: null,
                                lineOpacity: null,
                                lineThickness: null
                            },
                            gameObject: null,
                            scale: {
                                x: 1,
                                y: 1
                            },
                            centerOfMass: {
                                x: 0,
                                y: 0
                            },
                            centerOffset: {
                                x: 0,
                                y: 0
                            },
                            gravityScale: {
                                x: 1,
                                y: 1
                            },
                            ignoreGravity: !1,
                            ignorePointer: !1,
                            onCollideCallback: null,
                            onCollideEndCallback: null,
                            onCollideActiveCallback: null,
                            onCollideWith: {}
                        };
                        !e.hasOwnProperty("position") && e.hasOwnProperty("vertices") ? e.position = n.centre(e.vertices) : e.hasOwnProperty("vertices") || (i.vertices = n.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"));
                        var s = a.extend(i, e);
                        return t(s, e), s.setOnCollideWith = function(t, e) {
                            return e ? this.onCollideWith[t.id] = e : delete this.onCollideWith[t.id], this;
                        }, s;
                    }, s.nextGroup = function(t) {
                        return t ? s._nextNonCollidingGroupId-- : s._nextCollidingGroupId++;
                    }, s.nextCategory = function() {
                        return s._nextCategory = s._nextCategory << 1, s._nextCategory;
                    };
                    var t = function(t, e) {
                        if (e = e || {}, s.set(t, {
                            bounds: t.bounds || h.create(t.vertices),
                            positionPrev: t.positionPrev || r.clone(t.position),
                            anglePrev: t.anglePrev || t.angle,
                            vertices: t.vertices,
                            parts: t.parts || [
                                t
                            ],
                            isStatic: t.isStatic,
                            isSleeping: t.isSleeping,
                            parent: t.parent || t
                        }), n.rotate(t.vertices, t.angle, t.position), l.rotate(t.axes, t.angle), h.update(t.bounds, t.vertices, t.velocity), s.set(t, {
                            axes: e.axes || t.axes,
                            area: e.area || t.area,
                            mass: e.mass || t.mass,
                            inertia: e.inertia || t.inertia
                        }), 1 === t.parts.length) {
                            var i = t.bounds, o = t.centerOfMass, a = t.centerOffset, u = i.max.x - i.min.x, c = i.max.y - i.min.y;
                            o.x = -(i.min.x - t.position.x) / u, o.y = -(i.min.y - t.position.y) / c, a.x = u * o.x, a.y = c * o.y;
                        }
                    };
                    s.set = function(t, e, i) {
                        var n;
                        for(n in "string" == typeof e && (n = e, (e = {})[n] = i), e)if (Object.prototype.hasOwnProperty.call(e, n)) switch(i = e[n], n){
                            case "isStatic":
                                s.setStatic(t, i);
                                break;
                            case "isSleeping":
                                o.set(t, i);
                                break;
                            case "mass":
                                s.setMass(t, i);
                                break;
                            case "density":
                                s.setDensity(t, i);
                                break;
                            case "inertia":
                                s.setInertia(t, i);
                                break;
                            case "vertices":
                                s.setVertices(t, i);
                                break;
                            case "position":
                                s.setPosition(t, i);
                                break;
                            case "angle":
                                s.setAngle(t, i);
                                break;
                            case "velocity":
                                s.setVelocity(t, i);
                                break;
                            case "angularVelocity":
                                s.setAngularVelocity(t, i);
                                break;
                            case "speed":
                                s.setSpeed(t, i);
                                break;
                            case "angularSpeed":
                                s.setAngularSpeed(t, i);
                                break;
                            case "parts":
                                s.setParts(t, i);
                                break;
                            case "centre":
                                s.setCentre(t, i);
                                break;
                            default:
                                t[n] = i;
                        }
                    }, s.setStatic = function(t, e) {
                        for(var i = 0; i < t.parts.length; i++){
                            var s = t.parts[i];
                            e ? (s.isStatic || (s._original = {
                                restitution: s.restitution,
                                friction: s.friction,
                                mass: s.mass,
                                inertia: s.inertia,
                                density: s.density,
                                inverseMass: s.inverseMass,
                                inverseInertia: s.inverseInertia
                            }), s.restitution = 0, s.friction = 1, s.mass = s.inertia = s.density = 1 / 0, s.inverseMass = s.inverseInertia = 0, s.positionPrev.x = s.position.x, s.positionPrev.y = s.position.y, s.anglePrev = s.angle, s.angularVelocity = 0, s.speed = 0, s.angularSpeed = 0, s.motion = 0) : s._original && (s.restitution = s._original.restitution, s.friction = s._original.friction, s.mass = s._original.mass, s.inertia = s._original.inertia, s.density = s._original.density, s.inverseMass = s._original.inverseMass, s.inverseInertia = s._original.inverseInertia, s._original = null), s.isStatic = e;
                        }
                    }, s.setMass = function(t, e) {
                        var i = t.inertia / (t.mass / 6);
                        t.inertia = i * (e / 6), t.inverseInertia = 1 / t.inertia, t.mass = e, t.inverseMass = 1 / t.mass, t.density = t.mass / t.area;
                    }, s.setDensity = function(t, e) {
                        s.setMass(t, e * t.area), t.density = e;
                    }, s.setInertia = function(t, e) {
                        t.inertia = e, t.inverseInertia = 1 / t.inertia;
                    }, s.setVertices = function(t, e) {
                        e[0].body === t ? t.vertices = e : t.vertices = n.create(e, t), t.axes = l.fromVertices(t.vertices), t.area = n.area(t.vertices), s.setMass(t, t.density * t.area);
                        var i = n.centre(t.vertices);
                        n.translate(t.vertices, i, -1), s.setInertia(t, s._inertiaScale * n.inertia(t.vertices, t.mass)), n.translate(t.vertices, t.position), h.update(t.bounds, t.vertices, t.velocity);
                    }, s.setParts = function(t, e, i) {
                        var r;
                        for(e = e.slice(0), t.parts.length = 0, t.parts.push(t), t.parent = t, r = 0; r < e.length; r++){
                            var o = e[r];
                            o !== t && (o.parent = t, t.parts.push(o));
                        }
                        if (1 !== t.parts.length) {
                            if (i = void 0 === i || i) {
                                var a = [];
                                for(r = 0; r < e.length; r++)a = a.concat(e[r].vertices);
                                n.clockwiseSort(a);
                                var l = n.hull(a), u = n.centre(l);
                                s.setVertices(t, l), n.translate(t.vertices, u);
                            }
                            var c = s._totalProperties(t), d = c.centre.x, f = c.centre.y, p = t.bounds, v = t.centerOfMass, g = t.centerOffset;
                            h.update(p, t.vertices, t.velocity), v.x = -(p.min.x - d) / (p.max.x - p.min.x), v.y = -(p.min.y - f) / (p.max.y - p.min.y), g.x = d, g.y = f, t.area = c.area, t.parent = t, t.position.x = d, t.position.y = f, t.positionPrev.x = d, t.positionPrev.y = f, s.setMass(t, c.mass), s.setInertia(t, c.inertia), s.setPosition(t, c.centre);
                        }
                    }, s.setCentre = function(t, e, i) {
                        i ? (t.positionPrev.x += e.x, t.positionPrev.y += e.y, t.position.x += e.x, t.position.y += e.y) : (t.positionPrev.x = e.x - (t.position.x - t.positionPrev.x), t.positionPrev.y = e.y - (t.position.y - t.positionPrev.y), t.position.x = e.x, t.position.y = e.y);
                    }, s.setPosition = function(t, e, i) {
                        var s = r.sub(e, t.position);
                        i ? (t.positionPrev.x = t.position.x, t.positionPrev.y = t.position.y, t.velocity.x = s.x, t.velocity.y = s.y, t.speed = r.magnitude(s)) : (t.positionPrev.x += s.x, t.positionPrev.y += s.y);
                        for(var o = 0; o < t.parts.length; o++){
                            var a = t.parts[o];
                            a.position.x += s.x, a.position.y += s.y, n.translate(a.vertices, s), h.update(a.bounds, a.vertices, t.velocity);
                        }
                    }, s.setAngle = function(t, e, i) {
                        var s = e - t.angle;
                        i ? (t.anglePrev = t.angle, t.angularVelocity = s, t.angularSpeed = Math.abs(s)) : t.anglePrev += s;
                        for(var o = 0; o < t.parts.length; o++){
                            var a = t.parts[o];
                            a.angle += s, n.rotate(a.vertices, s, t.position), l.rotate(a.axes, s), h.update(a.bounds, a.vertices, t.velocity), o > 0 && r.rotateAbout(a.position, s, t.position, a.position);
                        }
                    }, s.setVelocity = function(t, e) {
                        var i = t.deltaTime / s._baseDelta;
                        t.positionPrev.x = t.position.x - e.x * i, t.positionPrev.y = t.position.y - e.y * i, t.velocity.x = (t.position.x - t.positionPrev.x) / i, t.velocity.y = (t.position.y - t.positionPrev.y) / i, t.speed = r.magnitude(t.velocity);
                    }, s.getVelocity = function(t) {
                        var e = s._baseDelta / t.deltaTime;
                        return {
                            x: (t.position.x - t.positionPrev.x) * e,
                            y: (t.position.y - t.positionPrev.y) * e
                        };
                    }, s.getSpeed = function(t) {
                        return r.magnitude(s.getVelocity(t));
                    }, s.setSpeed = function(t, e) {
                        s.setVelocity(t, r.mult(r.normalise(s.getVelocity(t)), e));
                    }, s.setAngularVelocity = function(t, e) {
                        var i = t.deltaTime / s._baseDelta;
                        t.anglePrev = t.angle - e * i, t.angularVelocity = (t.angle - t.anglePrev) / i, t.angularSpeed = Math.abs(t.angularVelocity);
                    }, s.getAngularVelocity = function(t) {
                        return (t.angle - t.anglePrev) * s._baseDelta / t.deltaTime;
                    }, s.getAngularSpeed = function(t) {
                        return Math.abs(s.getAngularVelocity(t));
                    }, s.setAngularSpeed = function(t, e) {
                        s.setAngularVelocity(t, a.sign(s.getAngularVelocity(t)) * e);
                    }, s.translate = function(t, e, i) {
                        s.setPosition(t, r.add(t.position, e), i);
                    }, s.rotate = function(t, e, i, n) {
                        if (i) {
                            var r = Math.cos(e), o = Math.sin(e), a = t.position.x - i.x, h = t.position.y - i.y;
                            s.setPosition(t, {
                                x: i.x + (a * r - h * o),
                                y: i.y + (a * o + h * r)
                            }, n), s.setAngle(t, t.angle + e, n);
                        } else s.setAngle(t, t.angle + e, n);
                    }, s.scale = function(t, e, i, r) {
                        var o = 0, a = 0;
                        r = r || t.position;
                        for(var u = 0; u < t.parts.length; u++){
                            var c = t.parts[u];
                            c.scale.x = e, c.scale.y = i, n.scale(c.vertices, e, i, r), c.axes = l.fromVertices(c.vertices), c.area = n.area(c.vertices), s.setMass(c, t.density * c.area), n.translate(c.vertices, {
                                x: -c.position.x,
                                y: -c.position.y
                            }), s.setInertia(c, s._inertiaScale * n.inertia(c.vertices, c.mass)), n.translate(c.vertices, {
                                x: c.position.x,
                                y: c.position.y
                            }), u > 0 && (o += c.area, a += c.inertia), c.position.x = r.x + (c.position.x - r.x) * e, c.position.y = r.y + (c.position.y - r.y) * i, h.update(c.bounds, c.vertices, t.velocity);
                        }
                        t.parts.length > 1 && (t.area = o, t.isStatic || (s.setMass(t, t.density * o), s.setInertia(t, a))), t.circleRadius && (e === i ? t.circleRadius *= e : t.circleRadius = null);
                    }, s.update = function(t, e) {
                        var i = (e = (void 0 !== e ? e : 1e3 / 60) * t.timeScale) * e, o = s._timeCorrection ? e / (t.deltaTime || e) : 1, u = 1 - t.frictionAir * (e / a._baseDelta), c = (t.position.x - t.positionPrev.x) * o, d = (t.position.y - t.positionPrev.y) * o;
                        t.velocity.x = c * u + t.force.x / t.mass * i, t.velocity.y = d * u + t.force.y / t.mass * i, t.positionPrev.x = t.position.x, t.positionPrev.y = t.position.y, t.position.x += t.velocity.x, t.position.y += t.velocity.y, t.deltaTime = e, t.angularVelocity = (t.angle - t.anglePrev) * u * o + t.torque / t.inertia * i, t.anglePrev = t.angle, t.angle += t.angularVelocity, t.speed = r.magnitude(t.velocity), t.angularSpeed = Math.abs(t.angularVelocity);
                        for(var f = 0; f < t.parts.length; f++){
                            var p = t.parts[f];
                            n.translate(p.vertices, t.velocity), f > 0 && (p.position.x += t.velocity.x, p.position.y += t.velocity.y), 0 !== t.angularVelocity && (n.rotate(p.vertices, t.angularVelocity, t.position), l.rotate(p.axes, t.angularVelocity), f > 0 && r.rotateAbout(p.position, t.angularVelocity, t.position, p.position)), h.update(p.bounds, p.vertices, t.velocity);
                        }
                    }, s.updateVelocities = function(t) {
                        var e = s._baseDelta / t.deltaTime, i = t.velocity;
                        i.x = (t.position.x - t.positionPrev.x) * e, i.y = (t.position.y - t.positionPrev.y) * e, t.speed = Math.sqrt(i.x * i.x + i.y * i.y), t.angularVelocity = (t.angle - t.anglePrev) * e, t.angularSpeed = Math.abs(t.angularVelocity);
                    }, s.applyForce = function(t, e, i) {
                        var s = e.x - t.position.x, n = e.y - t.position.y;
                        t.force.x += i.x, t.force.y += i.y, t.torque += s * i.y - n * i.x;
                    }, s._totalProperties = function(t) {
                        for(var e = {
                            mass: 0,
                            area: 0,
                            inertia: 0,
                            centre: {
                                x: 0,
                                y: 0
                            }
                        }, i = 1 === t.parts.length ? 0 : 1; i < t.parts.length; i++){
                            var s = t.parts[i], n = s.mass !== 1 / 0 ? s.mass : 1;
                            e.mass += n, e.area += s.area, e.inertia += s.inertia, e.centre = r.add(e.centre, r.mult(s.position, n));
                        }
                        return e.centre = r.div(e.centre, e.mass), e;
                    };
                }();
            },
            11299: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(39073), r = i(68758), o = i(84091), a = i(84125);
                s.create = function(t) {
                    return r.extend({
                        id: r.nextId(),
                        type: "composite",
                        parent: null,
                        isModified: !1,
                        bodies: [],
                        constraints: [],
                        composites: [],
                        label: "Composite",
                        plugin: {},
                        cache: {
                            allBodies: null,
                            allConstraints: null,
                            allComposites: null
                        }
                    }, t);
                }, s.setModified = function(t, e, i, r) {
                    if (n.trigger(t, "compositeModified", t), t.isModified = e, e && t.cache && (t.cache.allBodies = null, t.cache.allConstraints = null, t.cache.allComposites = null), i && t.parent && s.setModified(t.parent, e, i, r), r) for(var o = 0; o < t.composites.length; o++){
                        var a = t.composites[o];
                        s.setModified(a, e, i, r);
                    }
                }, s.add = function(t, e) {
                    var i = [].concat(e);
                    n.trigger(t, "beforeAdd", {
                        object: e
                    });
                    for(var o = 0; o < i.length; o++){
                        var a = i[o];
                        switch(a.type){
                            case "body":
                                if (a.parent !== a) {
                                    r.warn("Composite.add: skipped adding a compound body part (you must add its parent instead)");
                                    break;
                                }
                                s.addBody(t, a);
                                break;
                            case "constraint":
                                s.addConstraint(t, a);
                                break;
                            case "composite":
                                s.addComposite(t, a);
                                break;
                            case "mouseConstraint":
                                s.addConstraint(t, a.constraint);
                        }
                    }
                    return n.trigger(t, "afterAdd", {
                        object: e
                    }), t;
                }, s.remove = function(t, e, i) {
                    var r = [].concat(e);
                    n.trigger(t, "beforeRemove", {
                        object: e
                    });
                    for(var o = 0; o < r.length; o++){
                        var a = r[o];
                        switch(a.type){
                            case "body":
                                s.removeBody(t, a, i);
                                break;
                            case "constraint":
                                s.removeConstraint(t, a, i);
                                break;
                            case "composite":
                                s.removeComposite(t, a, i);
                                break;
                            case "mouseConstraint":
                                s.removeConstraint(t, a.constraint);
                        }
                    }
                    return n.trigger(t, "afterRemove", {
                        object: e
                    }), t;
                }, s.addComposite = function(t, e) {
                    return t.composites.push(e), e.parent = t, s.setModified(t, !0, !0, !1), t;
                }, s.removeComposite = function(t, e, i) {
                    var n = r.indexOf(t.composites, e);
                    if (-1 !== n && s.removeCompositeAt(t, n), i) for(var o = 0; o < t.composites.length; o++)s.removeComposite(t.composites[o], e, !0);
                    return t;
                }, s.removeCompositeAt = function(t, e) {
                    return t.composites.splice(e, 1), s.setModified(t, !0, !0, !1), t;
                }, s.addBody = function(t, e) {
                    return t.bodies.push(e), s.setModified(t, !0, !0, !1), t;
                }, s.removeBody = function(t, e, i) {
                    var n = r.indexOf(t.bodies, e);
                    if (-1 !== n && s.removeBodyAt(t, n), i) for(var o = 0; o < t.composites.length; o++)s.removeBody(t.composites[o], e, !0);
                    return t;
                }, s.removeBodyAt = function(t, e) {
                    return t.bodies.splice(e, 1), s.setModified(t, !0, !0, !1), t;
                }, s.addConstraint = function(t, e) {
                    return t.constraints.push(e), s.setModified(t, !0, !0, !1), t;
                }, s.removeConstraint = function(t, e, i) {
                    var n = r.indexOf(t.constraints, e);
                    if (-1 !== n && s.removeConstraintAt(t, n), i) for(var o = 0; o < t.composites.length; o++)s.removeConstraint(t.composites[o], e, !0);
                    return t;
                }, s.removeConstraintAt = function(t, e) {
                    return t.constraints.splice(e, 1), s.setModified(t, !0, !0, !1), t;
                }, s.clear = function(t, e, i) {
                    if (i) for(var n = 0; n < t.composites.length; n++)s.clear(t.composites[n], e, !0);
                    return e ? t.bodies = t.bodies.filter(function(t) {
                        return t.isStatic;
                    }) : t.bodies.length = 0, t.constraints.length = 0, t.composites.length = 0, s.setModified(t, !0, !0, !1), t;
                }, s.allBodies = function(t) {
                    if (t.cache && t.cache.allBodies) return t.cache.allBodies;
                    for(var e = [].concat(t.bodies), i = 0; i < t.composites.length; i++)e = e.concat(s.allBodies(t.composites[i]));
                    return t.cache && (t.cache.allBodies = e), e;
                }, s.allConstraints = function(t) {
                    if (t.cache && t.cache.allConstraints) return t.cache.allConstraints;
                    for(var e = [].concat(t.constraints), i = 0; i < t.composites.length; i++)e = e.concat(s.allConstraints(t.composites[i]));
                    return t.cache && (t.cache.allConstraints = e), e;
                }, s.allComposites = function(t) {
                    if (t.cache && t.cache.allComposites) return t.cache.allComposites;
                    for(var e = [].concat(t.composites), i = 0; i < t.composites.length; i++)e = e.concat(s.allComposites(t.composites[i]));
                    return t.cache && (t.cache.allComposites = e), e;
                }, s.get = function(t, e, i) {
                    var n, r;
                    switch(i){
                        case "body":
                            n = s.allBodies(t);
                            break;
                        case "constraint":
                            n = s.allConstraints(t);
                            break;
                        case "composite":
                            n = s.allComposites(t).concat(t);
                    }
                    return n ? 0 === (r = n.filter(function(t) {
                        return t.id.toString() === e.toString();
                    })).length ? null : r[0] : null;
                }, s.move = function(t, e, i) {
                    return s.remove(t, e), s.add(i, e), t;
                }, s.rebase = function(t) {
                    for(var e = s.allBodies(t).concat(s.allConstraints(t)).concat(s.allComposites(t)), i = 0; i < e.length; i++)e[i].id = r.nextId();
                    return t;
                }, s.translate = function(t, e, i) {
                    for(var n = i ? s.allBodies(t) : t.bodies, r = 0; r < n.length; r++)a.translate(n[r], e);
                    return t;
                }, s.rotate = function(t, e, i, n) {
                    for(var r = Math.cos(e), o = Math.sin(e), h = n ? s.allBodies(t) : t.bodies, l = 0; l < h.length; l++){
                        var u = h[l], c = u.position.x - i.x, d = u.position.y - i.y;
                        a.setPosition(u, {
                            x: i.x + (c * r - d * o),
                            y: i.y + (c * o + d * r)
                        }), a.rotate(u, e);
                    }
                    return t;
                }, s.scale = function(t, e, i, n, r) {
                    for(var o = r ? s.allBodies(t) : t.bodies, h = 0; h < o.length; h++){
                        var l = o[h], u = l.position.x - n.x, c = l.position.y - n.y;
                        a.setPosition(l, {
                            x: n.x + u * e,
                            y: n.y + c * i
                        }), a.scale(l, e, i);
                    }
                    return t;
                }, s.bounds = function(t) {
                    for(var e = s.allBodies(t), i = [], n = 0; n < e.length; n += 1){
                        var r = e[n];
                        i.push(r.bounds.min, r.bounds.max);
                    }
                    return o.create(i);
                };
            },
            72005: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(11299);
                s.create = n.create, s.add = n.add, s.remove = n.remove, s.clear = n.clear, s.addComposite = n.addComposite, s.addBody = n.addBody, s.addConstraint = n.addConstraint;
            },
            63454: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n, r, o, a = i(39745), h = i(70584);
                n = [], r = {
                    overlap: 0,
                    axis: null
                }, o = {
                    overlap: 0,
                    axis: null
                }, s.create = function(t, e) {
                    return {
                        pair: null,
                        collided: !1,
                        bodyA: t,
                        bodyB: e,
                        parentA: t.parent,
                        parentB: e.parent,
                        depth: 0,
                        normal: {
                            x: 0,
                            y: 0
                        },
                        tangent: {
                            x: 0,
                            y: 0
                        },
                        penetration: {
                            x: 0,
                            y: 0
                        },
                        supports: []
                    };
                }, s.collides = function(t, e, i) {
                    if (s._overlapAxes(r, t.vertices, e.vertices, t.axes), r.overlap <= 0) return null;
                    if (s._overlapAxes(o, e.vertices, t.vertices, e.axes), o.overlap <= 0) return null;
                    var n, l, u = i && i.table[h.id(t, e)];
                    u ? n = u.collision : ((n = s.create(t, e)).collided = !0, n.bodyA = t.id < e.id ? t : e, n.bodyB = t.id < e.id ? e : t, n.parentA = n.bodyA.parent, n.parentB = n.bodyB.parent), t = n.bodyA, e = n.bodyB, l = r.overlap < o.overlap ? r : o;
                    var c = n.normal, d = n.supports, f = l.axis, p = f.x, v = f.y;
                    p * (e.position.x - t.position.x) + v * (e.position.y - t.position.y) < 0 ? (c.x = p, c.y = v) : (c.x = -p, c.y = -v), n.tangent.x = -c.y, n.tangent.y = c.x, n.depth = l.overlap, n.penetration.x = c.x * n.depth, n.penetration.y = c.y * n.depth;
                    var g = s._findSupports(t, e, c, 1), m = 0;
                    if (a.contains(t.vertices, g[0]) && (d[m++] = g[0]), a.contains(t.vertices, g[1]) && (d[m++] = g[1]), m < 2) {
                        var y = s._findSupports(e, t, c, -1);
                        a.contains(e.vertices, y[0]) && (d[m++] = y[0]), m < 2 && a.contains(e.vertices, y[1]) && (d[m++] = y[1]);
                    }
                    return 0 === m && (d[m++] = g[0]), d.length = m, n;
                }, s._overlapAxes = function(t, e, i, s) {
                    var n, r, o, a, h, l, u = e.length, c = i.length, d = e[0].x, f = e[0].y, p = i[0].x, v = i[0].y, g = s.length, m = Number.MAX_VALUE, y = 0;
                    for(h = 0; h < g; h++){
                        var x = s[h], T = x.x, w = x.y, b = d * T + f * w, S = p * T + v * w, E = b, A = S;
                        for(l = 1; l < u; l += 1)(a = e[l].x * T + e[l].y * w) > E ? E = a : a < b && (b = a);
                        for(l = 1; l < c; l += 1)(a = i[l].x * T + i[l].y * w) > A ? A = a : a < S && (S = a);
                        if ((n = (r = E - S) < (o = A - b) ? r : o) < m && (m = n, y = h, n <= 0)) break;
                    }
                    t.axis = s[y], t.overlap = m;
                }, s._projectToAxis = function(t, e, i) {
                    for(var s = e[0].x * i.x + e[0].y * i.y, n = s, r = 1; r < e.length; r += 1){
                        var o = e[r].x * i.x + e[r].y * i.y;
                        o > n ? n = o : o < s && (s = o);
                    }
                    t.min = s, t.max = n;
                }, s._findSupports = function(t, e, i, s) {
                    var r, o, a, h, l, u = e.vertices, c = u.length, d = t.position.x, f = t.position.y, p = i.x * s, v = i.y * s, g = Number.MAX_VALUE;
                    for(l = 0; l < c; l += 1)(h = p * (d - (o = u[l]).x) + v * (f - o.y)) < g && (g = h, r = o);
                    return g = p * (d - (a = u[(c + r.index - 1) % c]).x) + v * (f - a.y), p * (d - (o = u[(r.index + 1) % c]).x) + v * (f - o.y) < g ? (n[0] = r, n[1] = o, n) : (n[0] = r, n[1] = a, n);
                };
            },
            17319: (t)=>{
                var e = {};
                t.exports = e, e.create = function(t) {
                    return {
                        vertex: t,
                        normalImpulse: 0,
                        tangentImpulse: 0
                    };
                };
            },
            13657: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(68758), r = i(63454);
                s.create = function(t) {
                    return n.extend({
                        bodies: [],
                        pairs: null
                    }, t);
                }, s.setBodies = function(t, e) {
                    t.bodies = e.slice(0);
                }, s.clear = function(t) {
                    t.bodies = [];
                }, s.collisions = function(t) {
                    var e, i, n = [], o = t.pairs, a = t.bodies, h = a.length, l = s.canCollide, u = r.collides;
                    for(a.sort(s._compareBoundsX), e = 0; e < h; e++){
                        var c = a[e], d = c.bounds, f = c.bounds.max.x, p = c.bounds.max.y, v = c.bounds.min.y, g = c.isStatic || c.isSleeping, m = c.parts.length, y = 1 === m;
                        for(i = e + 1; i < h; i++){
                            var x = a[i];
                            if ((_ = x.bounds).min.x > f) break;
                            if (!(p < _.min.y || v > _.max.y) && (!g || !x.isStatic && !x.isSleeping) && l(c.collisionFilter, x.collisionFilter)) {
                                var T = x.parts.length;
                                if (y && 1 === T) (A = u(c, x, o)) && n.push(A);
                                else for(var w = T > 1 ? 1 : 0, b = m > 1 ? 1 : 0; b < m; b++)for(var S = c.parts[b], E = (d = S.bounds, w); E < T; E++){
                                    var A, C = x.parts[E], _ = C.bounds;
                                    d.min.x > _.max.x || d.max.x < _.min.x || d.max.y < _.min.y || d.min.y > _.max.y || (A = u(S, C, o)) && n.push(A);
                                }
                            }
                        }
                    }
                    return n;
                }, s.canCollide = function(t, e) {
                    return t.group === e.group && 0 !== t.group ? t.group > 0 : 0 != (t.mask & e.category) && 0 != (e.mask & t.category);
                }, s._compareBoundsX = function(t, e) {
                    return t.bounds.min.x - e.bounds.min.x;
                };
            },
            70584: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(17319);
                s.create = function(t, e) {
                    var i = t.bodyA, n = t.bodyB, r = {
                        id: s.id(i, n),
                        bodyA: i,
                        bodyB: n,
                        collision: t,
                        contacts: [],
                        activeContacts: [],
                        separation: 0,
                        isActive: !0,
                        confirmedActive: !0,
                        isSensor: i.isSensor || n.isSensor,
                        timeCreated: e,
                        timeUpdated: e,
                        inverseMass: 0,
                        friction: 0,
                        frictionStatic: 0,
                        restitution: 0,
                        slop: 0
                    };
                    return s.update(r, t, e), r;
                }, s.update = function(t, e, i) {
                    var s = t.contacts, r = e.supports, o = t.activeContacts, a = e.parentA, h = e.parentB, l = a.vertices.length;
                    t.isActive = !0, t.timeUpdated = i, t.collision = e, t.separation = e.depth, t.inverseMass = a.inverseMass + h.inverseMass, t.friction = a.friction < h.friction ? a.friction : h.friction, t.frictionStatic = a.frictionStatic > h.frictionStatic ? a.frictionStatic : h.frictionStatic, t.restitution = a.restitution > h.restitution ? a.restitution : h.restitution, t.slop = a.slop > h.slop ? a.slop : h.slop, e.pair = t, o.length = 0;
                    for(var u = 0; u < r.length; u++){
                        var c = r[u], d = c.body === a ? c.index : l + c.index, f = s[d];
                        f ? o.push(f) : o.push(s[d] = n.create(c));
                    }
                }, s.setActive = function(t, e, i) {
                    e ? (t.isActive = !0, t.timeUpdated = i) : (t.isActive = !1, t.activeContacts.length = 0);
                }, s.id = function(t, e) {
                    return t.id < e.id ? "A" + t.id + "B" + e.id : "A" + e.id + "B" + t.id;
                };
            },
            91327: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(70584), r = i(68758);
                s.create = function(t) {
                    return r.extend({
                        table: {},
                        list: [],
                        collisionStart: [],
                        collisionActive: [],
                        collisionEnd: []
                    }, t);
                }, s.update = function(t, e, i) {
                    var s, r, o, a, h = t.list, l = h.length, u = t.table, c = e.length, d = t.collisionStart, f = t.collisionEnd, p = t.collisionActive;
                    for(d.length = 0, f.length = 0, p.length = 0, a = 0; a < l; a++)h[a].confirmedActive = !1;
                    for(a = 0; a < c; a++)(o = (s = e[a]).pair) ? (o.isActive ? p.push(o) : d.push(o), n.update(o, s, i), o.confirmedActive = !0) : (u[(o = n.create(s, i)).id] = o, d.push(o), h.push(o));
                    var v = [];
                    for(l = h.length, a = 0; a < l; a++)(o = h[a]).confirmedActive || (n.setActive(o, !1, i), f.push(o), o.collision.bodyA.isSleeping || o.collision.bodyB.isSleeping || v.push(a));
                    for(a = 0; a < v.length; a++)o = h[r = v[a] - a], h.splice(r, 1), delete u[o.id];
                }, s.clear = function(t) {
                    return t.table = {}, t.list.length = 0, t.collisionStart.length = 0, t.collisionActive.length = 0, t.collisionEnd.length = 0, t;
                };
            },
            13390: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(10438), r = i(63454), o = i(84091), a = i(68516), h = i(39745);
                s.collides = function(t, e) {
                    for(var i = [], s = e.length, n = t.bounds, a = r.collides, h = o.overlaps, l = 0; l < s; l++){
                        var u = e[l], c = u.parts.length, d = 1 === c ? 0 : 1;
                        if (t !== u && h(u.bounds, n)) for(var f = d; f < c; f++){
                            var p = u.parts[f];
                            if (h(p.bounds, n)) {
                                var v = a(p, t);
                                if (v) {
                                    i.push(v);
                                    break;
                                }
                            }
                        }
                    }
                    return i;
                }, s.ray = function(t, e, i, r) {
                    r = r || 1e-100;
                    for(var o = n.angle(e, i), h = n.magnitude(n.sub(e, i)), l = .5 * (i.x + e.x), u = .5 * (i.y + e.y), c = a.rectangle(l, u, h, r, {
                        angle: o
                    }), d = s.collides(c, t), f = 0; f < d.length; f += 1){
                        var p = d[f];
                        p.body = p.bodyB = p.bodyA;
                    }
                    return d;
                }, s.region = function(t, e, i) {
                    for(var s = [], n = 0; n < t.length; n++){
                        var r = t[n], a = o.overlaps(r.bounds, e);
                        (a && !i || !a && i) && s.push(r);
                    }
                    return s;
                }, s.point = function(t, e) {
                    for(var i = [], s = 0; s < t.length; s++){
                        var n = t[s];
                        if (o.contains(n.bounds, e)) for(var r = 1 === n.parts.length ? 0 : 1; r < n.parts.length; r++){
                            var a = n.parts[r];
                            if (o.contains(a.bounds, e) && h.contains(a.vertices, e)) {
                                i.push(n);
                                break;
                            }
                        }
                    }
                    return i;
                };
            },
            44272: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(39745), r = i(68758), o = i(84091);
                s._restingThresh = 2, s._restingThreshTangent = Math.sqrt(6), s._positionDampen = .9, s._positionWarming = .8, s._frictionNormalMultiplier = 5, s._frictionMaxStatic = Number.MAX_VALUE, s.preSolvePosition = function(t) {
                    var e, i, s, n = t.length;
                    for(e = 0; e < n; e++)(i = t[e]).isActive && (s = i.activeContacts.length, i.collision.parentA.totalContacts += s, i.collision.parentB.totalContacts += s);
                }, s.solvePosition = function(t, e, i) {
                    var n, o, a, h, l, u, c, d, f = s._positionDampen * (i || 1), p = r.clamp(e / r._baseDelta, 0, 1), v = t.length;
                    for(n = 0; n < v; n++)(o = t[n]).isActive && !o.isSensor && (h = (a = o.collision).parentA, l = a.parentB, u = a.normal, o.separation = u.x * (l.positionImpulse.x + a.penetration.x - h.positionImpulse.x) + u.y * (l.positionImpulse.y + a.penetration.y - h.positionImpulse.y));
                    for(n = 0; n < v; n++)(o = t[n]).isActive && !o.isSensor && (h = (a = o.collision).parentA, l = a.parentB, u = a.normal, d = o.separation - o.slop * p, (h.isStatic || l.isStatic) && (d *= 2), h.isStatic || h.isSleeping || (c = f / h.totalContacts, h.positionImpulse.x += u.x * d * c, h.positionImpulse.y += u.y * d * c), l.isStatic || l.isSleeping || (c = f / l.totalContacts, l.positionImpulse.x -= u.x * d * c, l.positionImpulse.y -= u.y * d * c));
                }, s.postSolvePosition = function(t) {
                    for(var e = s._positionWarming, i = t.length, r = n.translate, a = o.update, h = 0; h < i; h++){
                        var l = t[h], u = l.positionImpulse, c = u.x, d = u.y, f = l.velocity;
                        if (l.totalContacts = 0, 0 !== c || 0 !== d) {
                            for(var p = 0; p < l.parts.length; p++){
                                var v = l.parts[p];
                                r(v.vertices, u), a(v.bounds, v.vertices, f), v.position.x += c, v.position.y += d;
                            }
                            l.positionPrev.x += c, l.positionPrev.y += d, c * f.x + d * f.y < 0 ? (u.x = 0, u.y = 0) : (u.x *= e, u.y *= e);
                        }
                    }
                }, s.preSolveVelocity = function(t) {
                    var e, i, s = t.length;
                    for(e = 0; e < s; e++){
                        var n = t[e];
                        if (n.isActive && !n.isSensor) {
                            var r = n.activeContacts, o = r.length, a = n.collision, h = a.parentA, l = a.parentB, u = a.normal, c = a.tangent;
                            for(i = 0; i < o; i++){
                                var d = r[i], f = d.vertex, p = d.normalImpulse, v = d.tangentImpulse;
                                if (0 !== p || 0 !== v) {
                                    var g = u.x * p + c.x * v, m = u.y * p + c.y * v;
                                    h.isStatic || h.isSleeping || (h.positionPrev.x += g * h.inverseMass, h.positionPrev.y += m * h.inverseMass, h.anglePrev += h.inverseInertia * ((f.x - h.position.x) * m - (f.y - h.position.y) * g)), l.isStatic || l.isSleeping || (l.positionPrev.x -= g * l.inverseMass, l.positionPrev.y -= m * l.inverseMass, l.anglePrev -= l.inverseInertia * ((f.x - l.position.x) * m - (f.y - l.position.y) * g));
                                }
                            }
                        }
                    }
                }, s.solveVelocity = function(t, e) {
                    var i, n, o, a, h = e / r._baseDelta, l = h * h * h, u = -s._restingThresh * h, c = s._restingThreshTangent, d = s._frictionNormalMultiplier * h, f = s._frictionMaxStatic, p = t.length;
                    for(o = 0; o < p; o++){
                        var v = t[o];
                        if (v.isActive && !v.isSensor) {
                            var g = v.collision, m = g.parentA, y = g.parentB, x = m.velocity, T = y.velocity, w = g.normal.x, b = g.normal.y, S = g.tangent.x, E = g.tangent.y, A = v.activeContacts, C = A.length, _ = 1 / C, M = m.inverseMass + y.inverseMass, P = v.friction * v.frictionStatic * d;
                            for(x.x = m.position.x - m.positionPrev.x, x.y = m.position.y - m.positionPrev.y, T.x = y.position.x - y.positionPrev.x, T.y = y.position.y - y.positionPrev.y, m.angularVelocity = m.angle - m.anglePrev, y.angularVelocity = y.angle - y.anglePrev, a = 0; a < C; a++){
                                var R = A[a], O = R.vertex, L = O.x - m.position.x, F = O.y - m.position.y, D = O.x - y.position.x, I = O.y - y.position.y, k = x.x - F * m.angularVelocity, B = x.y + L * m.angularVelocity, N = k - (T.x - I * y.angularVelocity), X = B - (T.y + D * y.angularVelocity), U = w * N + b * X, Y = S * N + E * X, z = v.separation + U, G = Math.min(z, 1), V = (G = z < 0 ? 0 : G) * P;
                                Y < -V || Y > V ? (n = Y > 0 ? Y : -Y, (i = v.friction * (Y > 0 ? 1 : -1) * l) < -n ? i = -n : i > n && (i = n)) : (i = Y, n = f);
                                var W = L * b - F * w, H = D * b - I * w, j = _ / (M + m.inverseInertia * W * W + y.inverseInertia * H * H), q = (1 + v.restitution) * U * j;
                                if (i *= j, U < u) R.normalImpulse = 0;
                                else {
                                    var K = R.normalImpulse;
                                    R.normalImpulse += q, R.normalImpulse > 0 && (R.normalImpulse = 0), q = R.normalImpulse - K;
                                }
                                if (Y < -c || Y > c) R.tangentImpulse = 0;
                                else {
                                    var Z = R.tangentImpulse;
                                    R.tangentImpulse += i, R.tangentImpulse < -n && (R.tangentImpulse = -n), R.tangentImpulse > n && (R.tangentImpulse = n), i = R.tangentImpulse - Z;
                                }
                                var J = w * q + S * i, Q = b * q + E * i;
                                m.isStatic || m.isSleeping || (m.positionPrev.x += J * m.inverseMass, m.positionPrev.y += Q * m.inverseMass, m.anglePrev += (L * Q - F * J) * m.inverseInertia), y.isStatic || y.isSleeping || (y.positionPrev.x -= J * y.inverseMass, y.positionPrev.y -= Q * y.inverseMass, y.anglePrev -= (D * Q - I * J) * y.inverseInertia);
                            }
                        }
                    }
                };
            },
            52838: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(39745), r = i(10438), o = i(22806), a = i(84091), h = i(50658), l = i(68758);
                s._warming = .4, s._torqueDampen = 1, s._minLength = 1e-6, s.create = function(t) {
                    var e = t;
                    e.bodyA && !e.pointA && (e.pointA = {
                        x: 0,
                        y: 0
                    }), e.bodyB && !e.pointB && (e.pointB = {
                        x: 0,
                        y: 0
                    });
                    var i = e.bodyA ? r.add(e.bodyA.position, e.pointA) : e.pointA, s = e.bodyB ? r.add(e.bodyB.position, e.pointB) : e.pointB, n = r.magnitude(r.sub(i, s));
                    e.length = void 0 !== e.length ? e.length : n, e.id = e.id || l.nextId(), e.label = e.label || "Constraint", e.type = "constraint", e.stiffness = e.stiffness || (e.length > 0 ? 1 : .7), e.damping = e.damping || 0, e.angularStiffness = e.angularStiffness || 0, e.angleA = e.bodyA ? e.bodyA.angle : e.angleA, e.angleB = e.bodyB ? e.bodyB.angle : e.angleB, e.plugin = {};
                    var o = {
                        visible: !0,
                        type: "line",
                        anchors: !0,
                        lineColor: null,
                        lineOpacity: null,
                        lineThickness: null,
                        pinSize: null,
                        anchorColor: null,
                        anchorSize: null
                    };
                    return 0 === e.length && e.stiffness > .1 ? (o.type = "pin", o.anchors = !1) : e.stiffness < .9 && (o.type = "spring"), e.render = l.extend(o, e.render), e;
                }, s.preSolveAll = function(t) {
                    for(var e = 0; e < t.length; e += 1){
                        var i = t[e], s = i.constraintImpulse;
                        i.isStatic || 0 === s.x && 0 === s.y && 0 === s.angle || (i.position.x += s.x, i.position.y += s.y, i.angle += s.angle);
                    }
                }, s.solveAll = function(t, e) {
                    for(var i = l.clamp(e / l._baseDelta, 0, 1), n = 0; n < t.length; n += 1){
                        var r = t[n], o = !r.bodyA || r.bodyA && r.bodyA.isStatic, a = !r.bodyB || r.bodyB && r.bodyB.isStatic;
                        (o || a) && s.solve(t[n], i);
                    }
                    for(n = 0; n < t.length; n += 1)o = !(r = t[n]).bodyA || r.bodyA && r.bodyA.isStatic, a = !r.bodyB || r.bodyB && r.bodyB.isStatic, o || a || s.solve(t[n], i);
                }, s.solve = function(t, e) {
                    var i = t.bodyA, n = t.bodyB, o = t.pointA, a = t.pointB;
                    if (i || n) {
                        i && !i.isStatic && (r.rotate(o, i.angle - t.angleA, o), t.angleA = i.angle), n && !n.isStatic && (r.rotate(a, n.angle - t.angleB, a), t.angleB = n.angle);
                        var h = o, l = a;
                        if (i && (h = r.add(i.position, o)), n && (l = r.add(n.position, a)), h && l) {
                            var u = r.sub(h, l), c = r.magnitude(u);
                            c < s._minLength && (c = s._minLength);
                            var d, f, p, v, g, m = (c - t.length) / c, y = t.stiffness >= 1 || 0 === t.length ? t.stiffness * e : t.stiffness * e * e, x = t.damping * e, T = r.mult(u, m * y), w = (i ? i.inverseMass : 0) + (n ? n.inverseMass : 0), b = w + ((i ? i.inverseInertia : 0) + (n ? n.inverseInertia : 0));
                            if (x > 0) {
                                var S = r.create();
                                p = r.div(u, c), g = r.sub(n && r.sub(n.position, n.positionPrev) || S, i && r.sub(i.position, i.positionPrev) || S), v = r.dot(p, g);
                            }
                            i && !i.isStatic && (f = i.inverseMass / w, i.constraintImpulse.x -= T.x * f, i.constraintImpulse.y -= T.y * f, i.position.x -= T.x * f, i.position.y -= T.y * f, x > 0 && (i.positionPrev.x -= x * p.x * v * f, i.positionPrev.y -= x * p.y * v * f), d = r.cross(o, T) / b * s._torqueDampen * i.inverseInertia * (1 - t.angularStiffness), i.constraintImpulse.angle -= d, i.angle -= d), n && !n.isStatic && (f = n.inverseMass / w, n.constraintImpulse.x += T.x * f, n.constraintImpulse.y += T.y * f, n.position.x += T.x * f, n.position.y += T.y * f, x > 0 && (n.positionPrev.x += x * p.x * v * f, n.positionPrev.y += x * p.y * v * f), d = r.cross(a, T) / b * s._torqueDampen * n.inverseInertia * (1 - t.angularStiffness), n.constraintImpulse.angle += d, n.angle += d);
                        }
                    }
                }, s.postSolveAll = function(t) {
                    for(var e = 0; e < t.length; e++){
                        var i = t[e], l = i.constraintImpulse;
                        if (!(i.isStatic || 0 === l.x && 0 === l.y && 0 === l.angle)) {
                            o.set(i, !1);
                            for(var u = 0; u < i.parts.length; u++){
                                var c = i.parts[u];
                                n.translate(c.vertices, l), u > 0 && (c.position.x += l.x, c.position.y += l.y), 0 !== l.angle && (n.rotate(c.vertices, l.angle, i.position), h.rotate(c.axes, l.angle), u > 0 && r.rotateAbout(c.position, l.angle, i.position, c.position)), a.update(c.bounds, c.vertices, i.velocity);
                            }
                            l.angle *= s._warming, l.x *= s._warming, l.y *= s._warming;
                        }
                    }
                }, s.pointAWorld = function(t) {
                    return {
                        x: (t.bodyA ? t.bodyA.position.x : 0) + (t.pointA ? t.pointA.x : 0),
                        y: (t.bodyA ? t.bodyA.position.y : 0) + (t.pointA ? t.pointA.y : 0)
                    };
                }, s.pointBWorld = function(t) {
                    return {
                        x: (t.bodyB ? t.bodyB.position.x : 0) + (t.pointB ? t.pointB.x : 0),
                        y: (t.bodyB ? t.bodyB.position.y : 0) + (t.pointB ? t.pointB.y : 0)
                    };
                }, s.currentLength = function(t) {
                    var e = (t.bodyA ? t.bodyA.position.x : 0) + (t.pointA ? t.pointA.x : 0), i = (t.bodyA ? t.bodyA.position.y : 0) + (t.pointA ? t.pointA.y : 0), s = e - ((t.bodyB ? t.bodyB.position.x : 0) + (t.pointB ? t.pointB.x : 0)), n = i - ((t.bodyB ? t.bodyB.position.y : 0) + (t.pointB ? t.pointB.y : 0));
                    return Math.sqrt(s * s + n * n);
                };
            },
            68758: (t, e, i)=>{
                var s = {};
                t.exports = s, function() {
                    s._baseDelta = 1e3 / 60, s._nextId = 0, s._seed = 0, s._nowStartTime = +new Date, s._warnedOnce = {}, s._decomp = null, s.extend = function(t, e) {
                        var i, n;
                        "boolean" == typeof e ? (i = 2, n = e) : (i = 1, n = !0);
                        for(var r = i; r < arguments.length; r++){
                            var o = arguments[r];
                            if (o) for(var a in o)n && o[a] && o[a].constructor === Object ? t[a] && t[a].constructor !== Object ? t[a] = o[a] : (t[a] = t[a] || {}, s.extend(t[a], n, o[a])) : t[a] = o[a];
                        }
                        return t;
                    }, s.clone = function(t, e) {
                        return s.extend({}, e, t);
                    }, s.keys = function(t) {
                        if (Object.keys) return Object.keys(t);
                        var e = [];
                        for(var i in t)e.push(i);
                        return e;
                    }, s.values = function(t) {
                        var e = [];
                        if (Object.keys) {
                            for(var i = Object.keys(t), s = 0; s < i.length; s++)e.push(t[i[s]]);
                            return e;
                        }
                        for(var n in t)e.push(t[n]);
                        return e;
                    }, s.get = function(t, e, i, s) {
                        e = e.split(".").slice(i, s);
                        for(var n = 0; n < e.length; n += 1)t = t[e[n]];
                        return t;
                    }, s.set = function(t, e, i, n, r) {
                        var o = e.split(".").slice(n, r);
                        return s.get(t, e, 0, -1)[o[o.length - 1]] = i, i;
                    }, s.shuffle = function(t) {
                        for(var e = t.length - 1; e > 0; e--){
                            var i = Math.floor(s.random() * (e + 1)), n = t[e];
                            t[e] = t[i], t[i] = n;
                        }
                        return t;
                    }, s.choose = function(t) {
                        return t[Math.floor(s.random() * t.length)];
                    }, s.isElement = function(t) {
                        return "undefined" != typeof HTMLElement ? t instanceof HTMLElement : !!(t && t.nodeType && t.nodeName);
                    }, s.isArray = function(t) {
                        return "[object Array]" === Object.prototype.toString.call(t);
                    }, s.isFunction = function(t) {
                        return "function" == typeof t;
                    }, s.isPlainObject = function(t) {
                        return "object" == typeof t && t.constructor === Object;
                    }, s.isString = function(t) {
                        return "[object String]" === toString.call(t);
                    }, s.clamp = function(t, e, i) {
                        return t < e ? e : t > i ? i : t;
                    }, s.sign = function(t) {
                        return t < 0 ? -1 : 1;
                    }, s.now = function() {
                        if ("undefined" != typeof window && window.performance) {
                            if (window.performance.now) return window.performance.now();
                            if (window.performance.webkitNow) return window.performance.webkitNow();
                        }
                        return Date.now ? Date.now() : new Date - s._nowStartTime;
                    }, s.random = function(e, i) {
                        return i = void 0 !== i ? i : 1, (e = void 0 !== e ? e : 0) + t() * (i - e);
                    };
                    var t = function() {
                        return s._seed = (9301 * s._seed + 49297) % 233280, s._seed / 233280;
                    };
                    s.colorToNumber = function(t) {
                        return 3 == (t = t.replace("#", "")).length && (t = t.charAt(0) + t.charAt(0) + t.charAt(1) + t.charAt(1) + t.charAt(2) + t.charAt(2)), parseInt(t, 16);
                    }, s.logLevel = 1, s.log = function() {
                        console && s.logLevel > 0 && s.logLevel <= 3 && console.log.apply(console, [
                            "matter-js:"
                        ].concat(Array.prototype.slice.call(arguments)));
                    }, s.info = function() {
                        console && s.logLevel > 0 && s.logLevel <= 2 && console.info.apply(console, [
                            "matter-js:"
                        ].concat(Array.prototype.slice.call(arguments)));
                    }, s.warn = function() {
                        console && s.logLevel > 0 && s.logLevel <= 3 && console.warn.apply(console, [
                            "matter-js:"
                        ].concat(Array.prototype.slice.call(arguments)));
                    }, s.warnOnce = function() {
                        var t = Array.prototype.slice.call(arguments).join(" ");
                        s._warnedOnce[t] || (s.warn(t), s._warnedOnce[t] = !0);
                    }, s.deprecated = function(t, e, i) {
                        t[e] = s.chain(function() {
                            s.warnOnce("\uD83D\uDD05 deprecated \uD83D\uDD05", i);
                        }, t[e]);
                    }, s.nextId = function() {
                        return s._nextId++;
                    }, s.indexOf = function(t, e) {
                        if (t.indexOf) return t.indexOf(e);
                        for(var i = 0; i < t.length; i++)if (t[i] === e) return i;
                        return -1;
                    }, s.map = function(t, e) {
                        if (t.map) return t.map(e);
                        for(var i = [], s = 0; s < t.length; s += 1)i.push(e(t[s]));
                        return i;
                    }, s.topologicalSort = function(t) {
                        var e = [], i = [], n = [];
                        for(var r in t)i[r] || n[r] || s._topologicalSort(r, i, n, t, e);
                        return e;
                    }, s._topologicalSort = function(t, e, i, n, r) {
                        var o = n[t] || [];
                        i[t] = !0;
                        for(var a = 0; a < o.length; a += 1){
                            var h = o[a];
                            i[h] || e[h] || s._topologicalSort(h, e, i, n, r);
                        }
                        i[t] = !1, e[t] = !0, r.push(t);
                    }, s.chain = function() {
                        for(var t = [], e = 0; e < arguments.length; e += 1){
                            var i = arguments[e];
                            i._chained ? t.push.apply(t, i._chained) : t.push(i);
                        }
                        var s = function() {
                            for(var e, i = new Array(arguments.length), s = 0, n = arguments.length; s < n; s++)i[s] = arguments[s];
                            for(s = 0; s < t.length; s += 1){
                                var r = t[s].apply(e, i);
                                void 0 !== r && (e = r);
                            }
                            return e;
                        };
                        return s._chained = t, s;
                    }, s.chainPathBefore = function(t, e, i) {
                        return s.set(t, e, s.chain(i, s.get(t, e)));
                    }, s.chainPathAfter = function(t, e, i) {
                        return s.set(t, e, s.chain(s.get(t, e), i));
                    }, s.setDecomp = function(t) {
                        s._decomp = t;
                    }, s.getDecomp = function() {
                        var t = s._decomp;
                        try {
                            t || "undefined" == typeof window || (t = window.decomp), t || void 0 === i.g || (t = i.g.decomp);
                        } catch (e) {
                            t = null;
                        }
                        return t;
                    };
                }();
            },
            45775: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(22806), r = i(44272), o = i(13657), a = i(91327), h = i(39073), l = i(11299), u = i(52838), c = i(68758), d = i(84125);
                s.create = function(t) {
                    t = t || {};
                    var e = c.extend({
                        positionIterations: 6,
                        velocityIterations: 4,
                        constraintIterations: 2,
                        enableSleeping: !1,
                        events: [],
                        plugin: {},
                        gravity: {
                            x: 0,
                            y: 1,
                            scale: .001
                        },
                        timing: {
                            timestamp: 0,
                            timeScale: 1,
                            lastDelta: 0,
                            lastElapsed: 0
                        }
                    }, t);
                    return e.world = t.world || l.create({
                        label: "World"
                    }), e.pairs = t.pairs || a.create(), e.detector = t.detector || o.create(), e.grid = {
                        buckets: []
                    }, e.world.gravity = e.gravity, e.broadphase = e.grid, e.metrics = {}, e;
                }, s.update = function(t, e) {
                    var i, d = c.now(), f = t.world, p = t.detector, v = t.pairs, g = t.timing, m = g.timestamp;
                    e = void 0 !== e ? e : c._baseDelta, e *= g.timeScale, g.timestamp += e, g.lastDelta = e;
                    var y = {
                        timestamp: g.timestamp,
                        delta: e
                    };
                    h.trigger(t, "beforeUpdate", y);
                    var x = l.allBodies(f), T = l.allConstraints(f);
                    for(f.isModified && (o.setBodies(p, x), l.setModified(f, !1, !1, !0)), t.enableSleeping && n.update(x, e), s._bodiesApplyGravity(x, t.gravity), e > 0 && s._bodiesUpdate(x, e), h.trigger(t, "beforeSolve", y), u.preSolveAll(x), i = 0; i < t.constraintIterations; i++)u.solveAll(T, e);
                    u.postSolveAll(x), p.pairs = t.pairs;
                    var w = o.collisions(p);
                    a.update(v, w, m), t.enableSleeping && n.afterCollisions(v.list), v.collisionStart.length > 0 && h.trigger(t, "collisionStart", {
                        pairs: v.collisionStart,
                        timestamp: g.timestamp,
                        delta: e
                    });
                    var b = c.clamp(20 / t.positionIterations, 0, 1);
                    for(r.preSolvePosition(v.list), i = 0; i < t.positionIterations; i++)r.solvePosition(v.list, e, b);
                    for(r.postSolvePosition(x), u.preSolveAll(x), i = 0; i < t.constraintIterations; i++)u.solveAll(T, e);
                    for(u.postSolveAll(x), r.preSolveVelocity(v.list), i = 0; i < t.velocityIterations; i++)r.solveVelocity(v.list, e);
                    return s._bodiesUpdateVelocities(x), v.collisionActive.length > 0 && h.trigger(t, "collisionActive", {
                        pairs: v.collisionActive,
                        timestamp: g.timestamp,
                        delta: e
                    }), v.collisionEnd.length > 0 && h.trigger(t, "collisionEnd", {
                        pairs: v.collisionEnd,
                        timestamp: g.timestamp,
                        delta: e
                    }), s._bodiesClearForces(x), h.trigger(t, "afterUpdate", y), t.timing.lastElapsed = c.now() - d, t;
                }, s.merge = function(t, e) {
                    if (c.extend(t, e), e.world) {
                        t.world = e.world, s.clear(t);
                        for(var i = l.allBodies(t.world), r = 0; r < i.length; r++){
                            var o = i[r];
                            n.set(o, !1), o.id = c.nextId();
                        }
                    }
                }, s.clear = function(t) {
                    a.clear(t.pairs), o.clear(t.detector);
                }, s._bodiesClearForces = function(t) {
                    for(var e = t.length, i = 0; i < e; i++){
                        var s = t[i];
                        s.force.x = 0, s.force.y = 0, s.torque = 0;
                    }
                }, s._bodiesApplyGravity = function(t, e) {
                    var i = void 0 !== e.scale ? e.scale : .001, s = t.length;
                    if ((0 !== e.x || 0 !== e.y) && 0 !== i) for(var n = 0; n < s; n++){
                        var r = t[n];
                        r.isStatic || r.isSleeping || (r.force.y += r.mass * e.y * i, r.force.x += r.mass * e.x * i);
                    }
                }, s._bodiesUpdate = function(t, e) {
                    for(var i = t.length, s = 0; s < i; s++){
                        var n = t[s];
                        n.isStatic || n.isSleeping || d.update(n, e);
                    }
                }, s._bodiesUpdateVelocities = function(t) {
                    for(var e = t.length, i = 0; i < e; i++)d.updateVelocities(t[i]);
                };
            },
            39073: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(68758);
                s.on = function(t, e, i) {
                    for(var s, n = e.split(" "), r = 0; r < n.length; r++)s = n[r], t.events = t.events || {}, t.events[s] = t.events[s] || [], t.events[s].push(i);
                    return i;
                }, s.off = function(t, e, i) {
                    if (e) {
                        "function" == typeof e && (i = e, e = n.keys(t.events).join(" "));
                        for(var s = e.split(" "), r = 0; r < s.length; r++){
                            var o = t.events[s[r]], a = [];
                            if (i && o) for(var h = 0; h < o.length; h++)o[h] !== i && a.push(o[h]);
                            t.events[s[r]] = a;
                        }
                    } else t.events = {};
                }, s.trigger = function(t, e, i) {
                    var s, r, o, a, h = t.events;
                    if (h && n.keys(h).length > 0) {
                        i || (i = {}), s = e.split(" ");
                        for(var l = 0; l < s.length; l++)if (o = h[r = s[l]]) {
                            (a = n.clone(i, !1)).name = r, a.source = t;
                            for(var u = 0; u < o.length; u++)o[u].apply(t, [
                                a
                            ]);
                        }
                    }
                };
            },
            16929: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(84474), r = i(68758);
                s.name = "matter-js", s.version = "0.19.0", s.uses = [], s.used = [], s.use = function() {
                    n.use(s, Array.prototype.slice.call(arguments));
                }, s.before = function(t, e) {
                    return t = t.replace(/^Matter./, ""), r.chainPathBefore(s, t, e);
                }, s.after = function(t, e) {
                    return t = t.replace(/^Matter./, ""), r.chainPathAfter(s, t, e);
                };
            },
            84474: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(68758);
                s._registry = {}, s.register = function(t) {
                    if (s.isPlugin(t) || n.warn("Plugin.register:", s.toString(t), "does not implement all required fields."), t.name in s._registry) {
                        var e = s._registry[t.name], i = s.versionParse(t.version).number, r = s.versionParse(e.version).number;
                        i > r ? (n.warn("Plugin.register:", s.toString(e), "was upgraded to", s.toString(t)), s._registry[t.name] = t) : i < r ? n.warn("Plugin.register:", s.toString(e), "can not be downgraded to", s.toString(t)) : t !== e && n.warn("Plugin.register:", s.toString(t), "is already registered to different plugin object");
                    } else s._registry[t.name] = t;
                    return t;
                }, s.resolve = function(t) {
                    return s._registry[s.dependencyParse(t).name];
                }, s.toString = function(t) {
                    return "string" == typeof t ? t : (t.name || "anonymous") + "@" + (t.version || t.range || "0.0.0");
                }, s.isPlugin = function(t) {
                    return t && t.name && t.version && t.install;
                }, s.isUsed = function(t, e) {
                    return t.used.indexOf(e) > -1;
                }, s.isFor = function(t, e) {
                    var i = t.for && s.dependencyParse(t.for);
                    return !t.for || e.name === i.name && s.versionSatisfies(e.version, i.range);
                }, s.use = function(t, e) {
                    if (t.uses = (t.uses || []).concat(e || []), 0 !== t.uses.length) {
                        for(var i = s.dependencies(t), r = n.topologicalSort(i), o = [], a = 0; a < r.length; a += 1)if (r[a] !== t.name) {
                            var h = s.resolve(r[a]);
                            h ? s.isUsed(t, h.name) || (s.isFor(h, t) || (n.warn("Plugin.use:", s.toString(h), "is for", h.for, "but installed on", s.toString(t) + "."), h._warned = !0), h.install ? h.install(t) : (n.warn("Plugin.use:", s.toString(h), "does not specify an install function."), h._warned = !0), h._warned ? (o.push("\uD83D\uDD36 " + s.toString(h)), delete h._warned) : o.push("✅ " + s.toString(h)), t.used.push(h.name)) : o.push("❌ " + r[a]);
                        }
                        o.length > 0 && !h.silent && n.info(o.join("  "));
                    } else n.warn("Plugin.use:", s.toString(t), "does not specify any dependencies to install.");
                }, s.dependencies = function(t, e) {
                    var i = s.dependencyParse(t), r = i.name;
                    if (!(r in (e = e || {}))) {
                        t = s.resolve(t) || t, e[r] = n.map(t.uses || [], function(e) {
                            s.isPlugin(e) && s.register(e);
                            var r = s.dependencyParse(e), o = s.resolve(e);
                            return o && !s.versionSatisfies(o.version, r.range) ? (n.warn("Plugin.dependencies:", s.toString(o), "does not satisfy", s.toString(r), "used by", s.toString(i) + "."), o._warned = !0, t._warned = !0) : o || (n.warn("Plugin.dependencies:", s.toString(e), "used by", s.toString(i), "could not be resolved."), t._warned = !0), r.name;
                        });
                        for(var o = 0; o < e[r].length; o += 1)s.dependencies(e[r][o], e);
                        return e;
                    }
                }, s.dependencyParse = function(t) {
                    return n.isString(t) ? (/^[\w-]+(@(\*|[\^~]?\d+\.\d+\.\d+(-[0-9A-Za-z-+]+)?))?$/.test(t) || n.warn("Plugin.dependencyParse:", t, "is not a valid dependency string."), {
                        name: t.split("@")[0],
                        range: t.split("@")[1] || "*"
                    }) : {
                        name: t.name,
                        range: t.range || t.version
                    };
                }, s.versionParse = function(t) {
                    var e = /^(\*)|(\^|~|>=|>)?\s*((\d+)\.(\d+)\.(\d+))(-[0-9A-Za-z-+]+)?$/;
                    e.test(t) || n.warn("Plugin.versionParse:", t, "is not a valid version or range.");
                    var i = e.exec(t), s = Number(i[4]), r = Number(i[5]), o = Number(i[6]);
                    return {
                        isRange: Boolean(i[1] || i[2]),
                        version: i[3],
                        range: t,
                        operator: i[1] || i[2] || "",
                        major: s,
                        minor: r,
                        patch: o,
                        parts: [
                            s,
                            r,
                            o
                        ],
                        prerelease: i[7],
                        number: 1e8 * s + 1e4 * r + o
                    };
                }, s.versionSatisfies = function(t, e) {
                    e = e || "*";
                    var i = s.versionParse(e), n = s.versionParse(t);
                    if (i.isRange) {
                        if ("*" === i.operator || "*" === t) return !0;
                        if (">" === i.operator) return n.number > i.number;
                        if (">=" === i.operator) return n.number >= i.number;
                        if ("~" === i.operator) return n.major === i.major && n.minor === i.minor && n.patch >= i.patch;
                        if ("^" === i.operator) return i.major > 0 ? n.major === i.major && n.number >= i.number : i.minor > 0 ? n.minor === i.minor && n.patch >= i.patch : n.patch === i.patch;
                    }
                    return t === e || "*" === t;
                };
            },
            22806: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(84125), r = i(39073), o = i(68758);
                s._motionWakeThreshold = .18, s._motionSleepThreshold = .08, s._minBias = .9, s.update = function(t, e) {
                    for(var i = e / o._baseDelta, r = s._motionSleepThreshold, a = 0; a < t.length; a++){
                        var h = t[a], l = n.getSpeed(h), u = n.getAngularSpeed(h), c = l * l + u * u;
                        if (0 === h.force.x && 0 === h.force.y) {
                            var d = Math.min(h.motion, c), f = Math.max(h.motion, c);
                            h.motion = s._minBias * d + (1 - s._minBias) * f, h.sleepThreshold > 0 && h.motion < r ? (h.sleepCounter += 1, h.sleepCounter >= h.sleepThreshold / i && s.set(h, !0)) : h.sleepCounter > 0 && (h.sleepCounter -= 1);
                        } else s.set(h, !1);
                    }
                }, s.afterCollisions = function(t) {
                    for(var e = s._motionSleepThreshold, i = 0; i < t.length; i++){
                        var n = t[i];
                        if (n.isActive) {
                            var r = n.collision, o = r.bodyA.parent, a = r.bodyB.parent;
                            if (!(o.isSleeping && a.isSleeping || o.isStatic || a.isStatic) && (o.isSleeping || a.isSleeping)) {
                                var h = o.isSleeping && !o.isStatic ? o : a, l = h === o ? a : o;
                                !h.isStatic && l.motion > e && s.set(h, !1);
                            }
                        }
                    }
                }, s.set = function(t, e) {
                    var i = t.isSleeping;
                    e ? (t.isSleeping = !0, t.sleepCounter = t.sleepThreshold, t.positionImpulse.x = 0, t.positionImpulse.y = 0, t.positionPrev.x = t.position.x, t.positionPrev.y = t.position.y, t.anglePrev = t.angle, t.speed = 0, t.angularSpeed = 0, t.motion = 0, i || r.trigger(t, "sleepStart")) : (t.isSleeping = !1, t.sleepCounter = 0, i && r.trigger(t, "sleepEnd"));
                };
            },
            68516: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(39745), r = i(68758), o = i(84125), a = i(84091), h = i(10438);
                s.rectangle = function(t, e, i, s, a) {
                    a = a || {};
                    var h = {
                        label: "Rectangle Body",
                        position: {
                            x: t,
                            y: e
                        },
                        vertices: n.fromPath("L 0 0 L " + i + " 0 L " + i + " " + s + " L 0 " + s)
                    };
                    if (a.chamfer) {
                        var l = a.chamfer;
                        h.vertices = n.chamfer(h.vertices, l.radius, l.quality, l.qualityMin, l.qualityMax), delete a.chamfer;
                    }
                    return o.create(r.extend({}, h, a));
                }, s.trapezoid = function(t, e, i, s, a, h) {
                    h = h || {};
                    var l, u = i * (a *= .5), c = u + (1 - 2 * a) * i, d = c + u;
                    l = a < .5 ? "L 0 0 L " + u + " " + -s + " L " + c + " " + -s + " L " + d + " 0" : "L 0 0 L " + c + " " + -s + " L " + d + " 0";
                    var f = {
                        label: "Trapezoid Body",
                        position: {
                            x: t,
                            y: e
                        },
                        vertices: n.fromPath(l)
                    };
                    if (h.chamfer) {
                        var p = h.chamfer;
                        f.vertices = n.chamfer(f.vertices, p.radius, p.quality, p.qualityMin, p.qualityMax), delete h.chamfer;
                    }
                    return o.create(r.extend({}, f, h));
                }, s.circle = function(t, e, i, n, o) {
                    n = n || {};
                    var a = {
                        label: "Circle Body",
                        circleRadius: i
                    };
                    o = o || 25;
                    var h = Math.ceil(Math.max(10, Math.min(o, i)));
                    return h % 2 == 1 && (h += 1), s.polygon(t, e, h, i, r.extend({}, a, n));
                }, s.polygon = function(t, e, i, a, h) {
                    if (h = h || {}, i < 3) return s.circle(t, e, a, h);
                    for(var l = 2 * Math.PI / i, u = "", c = .5 * l, d = 0; d < i; d += 1){
                        var f = c + d * l, p = Math.cos(f) * a, v = Math.sin(f) * a;
                        u += "L " + p.toFixed(3) + " " + v.toFixed(3) + " ";
                    }
                    var g = {
                        label: "Polygon Body",
                        position: {
                            x: t,
                            y: e
                        },
                        vertices: n.fromPath(u)
                    };
                    if (h.chamfer) {
                        var m = h.chamfer;
                        g.vertices = n.chamfer(g.vertices, m.radius, m.quality, m.qualityMin, m.qualityMax), delete h.chamfer;
                    }
                    return o.create(r.extend({}, g, h));
                }, s.fromVertices = function(t, e, i, s, l, u, c, d) {
                    var f, p, v, g, m, y, x, T, w, b, S = r.getDecomp();
                    for(f = Boolean(S && S.quickDecomp), s = s || {}, v = [], l = void 0 !== l && l, u = void 0 !== u ? u : .01, c = void 0 !== c ? c : 10, d = void 0 !== d ? d : .01, r.isArray(i[0]) || (i = [
                        i
                    ]), w = 0; w < i.length; w += 1)if (m = i[w], !(g = n.isConvex(m)) && !f && r.warnOnce("Bodies.fromVertices: Install the 'poly-decomp' library and use Common.setDecomp or provide 'decomp' as a global to decompose concave vertices."), g || !f) m = g ? n.clockwiseSort(m) : n.hull(m), v.push({
                        position: {
                            x: t,
                            y: e
                        },
                        vertices: m
                    });
                    else {
                        var E = m.map(function(t) {
                            return [
                                t.x,
                                t.y
                            ];
                        });
                        S.makeCCW(E), !1 !== u && S.removeCollinearPoints(E, u), !1 !== d && S.removeDuplicatePoints && S.removeDuplicatePoints(E, d);
                        var A = S.quickDecomp(E);
                        for(y = 0; y < A.length; y++){
                            var C = A[y].map(function(t) {
                                return {
                                    x: t[0],
                                    y: t[1]
                                };
                            });
                            c > 0 && n.area(C) < c || v.push({
                                position: n.centre(C),
                                vertices: C
                            });
                        }
                    }
                    for(y = 0; y < v.length; y++)v[y] = o.create(r.extend(v[y], s));
                    if (l) for(y = 0; y < v.length; y++){
                        var _ = v[y];
                        for(x = y + 1; x < v.length; x++){
                            var M = v[x];
                            if (a.overlaps(_.bounds, M.bounds)) {
                                var P = _.vertices, R = M.vertices;
                                for(T = 0; T < _.vertices.length; T++)for(b = 0; b < M.vertices.length; b++){
                                    var O = h.magnitudeSquared(h.sub(P[(T + 1) % P.length], R[b])), L = h.magnitudeSquared(h.sub(P[T], R[(b + 1) % R.length]));
                                    O < 5 && L < 5 && (P[T].isInternal = !0, R[b].isInternal = !0);
                                }
                            }
                        }
                    }
                    return v.length > 1 ? (p = o.create(r.extend({
                        parts: v.slice(0)
                    }, s)), o.setPosition(p, {
                        x: t,
                        y: e
                    }), p) : v[0];
                }, s.flagCoincidentParts = function(t, e) {
                    void 0 === e && (e = 5);
                    for(var i = 0; i < t.length; i++)for(var s = t[i], n = i + 1; n < t.length; n++){
                        var r = t[n];
                        if (a.overlaps(s.bounds, r.bounds)) for(var o = s.vertices, l = r.vertices, u = 0; u < s.vertices.length; u++)for(var c = 0; c < r.vertices.length; c++){
                            var d = h.magnitudeSquared(h.sub(o[(u + 1) % o.length], l[c])), f = h.magnitudeSquared(h.sub(o[u], l[(c + 1) % l.length]));
                            d < e && f < e && (o[u].isInternal = !0, l[c].isInternal = !0);
                        }
                    }
                    return t;
                };
            },
            56643: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(11299), r = i(52838), o = i(68758), a = i(84125), h = i(68516);
                s.stack = function(t, e, i, s, r, o, h) {
                    for(var l, u = n.create({
                        label: "Stack"
                    }), c = t, d = e, f = 0, p = 0; p < s; p++){
                        for(var v = 0, g = 0; g < i; g++){
                            var m = h(c, d, g, p, l, f);
                            if (m) {
                                var y = m.bounds.max.y - m.bounds.min.y, x = m.bounds.max.x - m.bounds.min.x;
                                y > v && (v = y), a.translate(m, {
                                    x: .5 * x,
                                    y: .5 * y
                                }), c = m.bounds.max.x + r, n.addBody(u, m), l = m, f += 1;
                            } else c += r;
                        }
                        d += v + o, c = t;
                    }
                    return u;
                }, s.chain = function(t, e, i, s, a, h) {
                    for(var l = t.bodies, u = 1; u < l.length; u++){
                        var c = l[u - 1], d = l[u], f = c.bounds.max.y - c.bounds.min.y, p = c.bounds.max.x - c.bounds.min.x, v = d.bounds.max.y - d.bounds.min.y, g = {
                            bodyA: c,
                            pointA: {
                                x: p * e,
                                y: f * i
                            },
                            bodyB: d,
                            pointB: {
                                x: (d.bounds.max.x - d.bounds.min.x) * s,
                                y: v * a
                            }
                        }, m = o.extend(g, h);
                        n.addConstraint(t, r.create(m));
                    }
                    return t.label += " Chain", t;
                }, s.mesh = function(t, e, i, s, a) {
                    var h, l, u, c, d, f = t.bodies;
                    for(h = 0; h < i; h++){
                        for(l = 1; l < e; l++)u = f[l - 1 + h * e], c = f[l + h * e], n.addConstraint(t, r.create(o.extend({
                            bodyA: u,
                            bodyB: c
                        }, a)));
                        if (h > 0) for(l = 0; l < e; l++)u = f[l + (h - 1) * e], c = f[l + h * e], n.addConstraint(t, r.create(o.extend({
                            bodyA: u,
                            bodyB: c
                        }, a))), s && l > 0 && (d = f[l - 1 + (h - 1) * e], n.addConstraint(t, r.create(o.extend({
                            bodyA: d,
                            bodyB: c
                        }, a)))), s && l < e - 1 && (d = f[l + 1 + (h - 1) * e], n.addConstraint(t, r.create(o.extend({
                            bodyA: d,
                            bodyB: c
                        }, a))));
                    }
                    return t.label += " Mesh", t;
                }, s.pyramid = function(t, e, i, n, r, o, h) {
                    return s.stack(t, e, i, n, r, o, function(e, s, o, l, u, c) {
                        var d = Math.min(n, Math.ceil(i / 2)), f = u ? u.bounds.max.x - u.bounds.min.x : 0;
                        if (!(l > d || o < (l = d - l) || o > i - 1 - l)) return 1 === c && a.translate(u, {
                            x: (o + (i % 2 == 1 ? 1 : -1)) * f,
                            y: 0
                        }), h(t + (u ? o * f : 0) + o * r, s, o, l, u, c);
                    });
                }, s.newtonsCradle = function(t, e, i, s, o) {
                    for(var a = n.create({
                        label: "Newtons Cradle"
                    }), l = 0; l < i; l++){
                        var u = h.circle(t + l * (1.9 * s), e + o, s, {
                            inertia: 1 / 0,
                            restitution: 1,
                            friction: 0,
                            frictionAir: 1e-4,
                            slop: 1
                        }), c = r.create({
                            pointA: {
                                x: t + l * (1.9 * s),
                                y: e
                            },
                            bodyB: u
                        });
                        n.addBody(a, u), n.addConstraint(a, c);
                    }
                    return a;
                }, s.car = function(t, e, i, s, o) {
                    var l = a.nextGroup(!0), u = .5 * -i + 20, c = .5 * i - 20, d = n.create({
                        label: "Car"
                    }), f = h.rectangle(t, e, i, s, {
                        collisionFilter: {
                            group: l
                        },
                        chamfer: {
                            radius: .5 * s
                        },
                        density: 2e-4
                    }), p = h.circle(t + u, e + 0, o, {
                        collisionFilter: {
                            group: l
                        },
                        friction: .8
                    }), v = h.circle(t + c, e + 0, o, {
                        collisionFilter: {
                            group: l
                        },
                        friction: .8
                    }), g = r.create({
                        bodyB: f,
                        pointB: {
                            x: u,
                            y: 0
                        },
                        bodyA: p,
                        stiffness: 1,
                        length: 0
                    }), m = r.create({
                        bodyB: f,
                        pointB: {
                            x: c,
                            y: 0
                        },
                        bodyA: v,
                        stiffness: 1,
                        length: 0
                    });
                    return n.addBody(d, f), n.addBody(d, p), n.addBody(d, v), n.addConstraint(d, g), n.addConstraint(d, m), d;
                }, s.softBody = function(t, e, i, n, r, a, l, u, c, d) {
                    c = o.extend({
                        inertia: 1 / 0
                    }, c), d = o.extend({
                        stiffness: .2,
                        render: {
                            type: "line",
                            anchors: !1
                        }
                    }, d);
                    var f = s.stack(t, e, i, n, r, a, function(t, e) {
                        return h.circle(t, e, u, c);
                    });
                    return s.mesh(f, i, n, l, d), f.label = "Soft Body", f;
                };
            },
            50658: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(10438), r = i(68758);
                s.fromVertices = function(t) {
                    for(var e = {}, i = 0; i < t.length; i++){
                        var s = (i + 1) % t.length, o = n.normalise({
                            x: t[s].y - t[i].y,
                            y: t[i].x - t[s].x
                        }), a = 0 === o.y ? 1 / 0 : o.x / o.y;
                        e[a = a.toFixed(3).toString()] = o;
                    }
                    return r.values(e);
                }, s.rotate = function(t, e) {
                    if (0 !== e) for(var i = Math.cos(e), s = Math.sin(e), n = 0; n < t.length; n++){
                        var r, o = t[n];
                        r = o.x * i - o.y * s, o.y = o.x * s + o.y * i, o.x = r;
                    }
                };
            },
            84091: (t)=>{
                var e = {};
                t.exports = e, e.create = function(t) {
                    var i = {
                        min: {
                            x: 0,
                            y: 0
                        },
                        max: {
                            x: 0,
                            y: 0
                        }
                    };
                    return t && e.update(i, t), i;
                }, e.update = function(t, e, i) {
                    t.min.x = 1 / 0, t.max.x = -1 / 0, t.min.y = 1 / 0, t.max.y = -1 / 0;
                    for(var s = 0; s < e.length; s++){
                        var n = e[s];
                        n.x > t.max.x && (t.max.x = n.x), n.x < t.min.x && (t.min.x = n.x), n.y > t.max.y && (t.max.y = n.y), n.y < t.min.y && (t.min.y = n.y);
                    }
                    i && (i.x > 0 ? t.max.x += i.x : t.min.x += i.x, i.y > 0 ? t.max.y += i.y : t.min.y += i.y);
                }, e.contains = function(t, e) {
                    return e.x >= t.min.x && e.x <= t.max.x && e.y >= t.min.y && e.y <= t.max.y;
                }, e.overlaps = function(t, e) {
                    return t.min.x <= e.max.x && t.max.x >= e.min.x && t.max.y >= e.min.y && t.min.y <= e.max.y;
                }, e.translate = function(t, e) {
                    t.min.x += e.x, t.max.x += e.x, t.min.y += e.y, t.max.y += e.y;
                }, e.shift = function(t, e) {
                    var i = t.max.x - t.min.x, s = t.max.y - t.min.y;
                    t.min.x = e.x, t.max.x = e.x + i, t.min.y = e.y, t.max.y = e.y + s;
                };
            },
            92765: (t, e, i)=>{
                var s = {};
                t.exports = s;
                i(84091);
                var n = i(68758);
                s.pathToVertices = function(t, e) {
                    "undefined" == typeof window || "SVGPathSeg" in window || n.warn("Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.");
                    var i, r, o, a, h, l, u, c, d, f, p, v = [], g = 0, m = 0, y = 0;
                    e = e || 15;
                    var x = function(t, e, i) {
                        var s = i % 2 == 1 && i > 1;
                        if (!d || t != d.x || e != d.y) {
                            d && s ? (f = d.x, p = d.y) : (f = 0, p = 0);
                            var n = {
                                x: f + t,
                                y: p + e
                            };
                            !s && d || (d = n), v.push(n), m = f + t, y = p + e;
                        }
                    }, T = function(t) {
                        var e = t.pathSegTypeAsLetter.toUpperCase();
                        if ("Z" !== e) {
                            switch(e){
                                case "M":
                                case "L":
                                case "T":
                                case "C":
                                case "S":
                                case "Q":
                                    m = t.x, y = t.y;
                                    break;
                                case "H":
                                    m = t.x;
                                    break;
                                case "V":
                                    y = t.y;
                            }
                            x(m, y, t.pathSegType);
                        }
                    };
                    for(s._svgPathToAbsolute(t), o = t.getTotalLength(), l = [], i = 0; i < t.pathSegList.numberOfItems; i += 1)l.push(t.pathSegList.getItem(i));
                    for(u = l.concat(); g < o;){
                        if ((h = l[t.getPathSegAtLength(g)]) != c) {
                            for(; u.length && u[0] != h;)T(u.shift());
                            c = h;
                        }
                        switch(h.pathSegTypeAsLetter.toUpperCase()){
                            case "C":
                            case "T":
                            case "S":
                            case "Q":
                            case "A":
                                a = t.getPointAtLength(g), x(a.x, a.y, 0);
                        }
                        g += e;
                    }
                    for(i = 0, r = u.length; i < r; ++i)T(u[i]);
                    return v;
                }, s._svgPathToAbsolute = function(t) {
                    for(var e, i, s, n, r, o, a = t.pathSegList, h = 0, l = 0, u = a.numberOfItems, c = 0; c < u; ++c){
                        var d = a.getItem(c), f = d.pathSegTypeAsLetter;
                        if (/[MLHVCSQTA]/.test(f)) "x" in d && (h = d.x), "y" in d && (l = d.y);
                        else switch("x1" in d && (s = h + d.x1), "x2" in d && (r = h + d.x2), "y1" in d && (n = l + d.y1), "y2" in d && (o = l + d.y2), "x" in d && (h += d.x), "y" in d && (l += d.y), f){
                            case "m":
                                a.replaceItem(t.createSVGPathSegMovetoAbs(h, l), c);
                                break;
                            case "l":
                                a.replaceItem(t.createSVGPathSegLinetoAbs(h, l), c);
                                break;
                            case "h":
                                a.replaceItem(t.createSVGPathSegLinetoHorizontalAbs(h), c);
                                break;
                            case "v":
                                a.replaceItem(t.createSVGPathSegLinetoVerticalAbs(l), c);
                                break;
                            case "c":
                                a.replaceItem(t.createSVGPathSegCurvetoCubicAbs(h, l, s, n, r, o), c);
                                break;
                            case "s":
                                a.replaceItem(t.createSVGPathSegCurvetoCubicSmoothAbs(h, l, r, o), c);
                                break;
                            case "q":
                                a.replaceItem(t.createSVGPathSegCurvetoQuadraticAbs(h, l, s, n), c);
                                break;
                            case "t":
                                a.replaceItem(t.createSVGPathSegCurvetoQuadraticSmoothAbs(h, l), c);
                                break;
                            case "a":
                                a.replaceItem(t.createSVGPathSegArcAbs(h, l, d.r1, d.r2, d.angle, d.largeArcFlag, d.sweepFlag), c);
                                break;
                            case "z":
                            case "Z":
                                h = e, l = i;
                        }
                        "M" != f && "m" != f || (e = h, i = l);
                    }
                };
            },
            10438: (t)=>{
                var e = {};
                t.exports = e, e.create = function(t, e) {
                    return {
                        x: t || 0,
                        y: e || 0
                    };
                }, e.clone = function(t) {
                    return {
                        x: t.x,
                        y: t.y
                    };
                }, e.magnitude = function(t) {
                    return Math.sqrt(t.x * t.x + t.y * t.y);
                }, e.magnitudeSquared = function(t) {
                    return t.x * t.x + t.y * t.y;
                }, e.rotate = function(t, e, i) {
                    var s = Math.cos(e), n = Math.sin(e);
                    i || (i = {});
                    var r = t.x * s - t.y * n;
                    return i.y = t.x * n + t.y * s, i.x = r, i;
                }, e.rotateAbout = function(t, e, i, s) {
                    var n = Math.cos(e), r = Math.sin(e);
                    s || (s = {});
                    var o = i.x + ((t.x - i.x) * n - (t.y - i.y) * r);
                    return s.y = i.y + ((t.x - i.x) * r + (t.y - i.y) * n), s.x = o, s;
                }, e.normalise = function(t) {
                    var i = e.magnitude(t);
                    return 0 === i ? {
                        x: 0,
                        y: 0
                    } : {
                        x: t.x / i,
                        y: t.y / i
                    };
                }, e.dot = function(t, e) {
                    return t.x * e.x + t.y * e.y;
                }, e.cross = function(t, e) {
                    return t.x * e.y - t.y * e.x;
                }, e.cross3 = function(t, e, i) {
                    return (e.x - t.x) * (i.y - t.y) - (e.y - t.y) * (i.x - t.x);
                }, e.add = function(t, e, i) {
                    return i || (i = {}), i.x = t.x + e.x, i.y = t.y + e.y, i;
                }, e.sub = function(t, e, i) {
                    return i || (i = {}), i.x = t.x - e.x, i.y = t.y - e.y, i;
                }, e.mult = function(t, e) {
                    return {
                        x: t.x * e,
                        y: t.y * e
                    };
                }, e.div = function(t, e) {
                    return {
                        x: t.x / e,
                        y: t.y / e
                    };
                }, e.perp = function(t, e) {
                    return {
                        x: (e = !0 === e ? -1 : 1) * -t.y,
                        y: e * t.x
                    };
                }, e.neg = function(t) {
                    return {
                        x: -t.x,
                        y: -t.y
                    };
                }, e.angle = function(t, e) {
                    return Math.atan2(e.y - t.y, e.x - t.x);
                }, e._temp = [
                    e.create(),
                    e.create(),
                    e.create(),
                    e.create(),
                    e.create(),
                    e.create()
                ];
            },
            39745: (t, e, i)=>{
                var s = {};
                t.exports = s;
                var n = i(10438), r = i(68758);
                s.create = function(t, e) {
                    for(var i = [], s = 0; s < t.length; s++){
                        var n = t[s], r = {
                            x: n.x,
                            y: n.y,
                            index: s,
                            body: e,
                            isInternal: !1
                        };
                        i.push(r);
                    }
                    return i;
                }, s.fromPath = function(t, e) {
                    var i = [];
                    return t.replace(/L?\s*([-\d.e]+)[\s,]*([-\d.e]+)*/gi, function(t, e, s) {
                        i.push({
                            x: parseFloat(e),
                            y: parseFloat(s)
                        });
                    }), s.create(i, e);
                }, s.centre = function(t) {
                    for(var e, i, r, o = s.area(t, !0), a = {
                        x: 0,
                        y: 0
                    }, h = 0; h < t.length; h++)r = (h + 1) % t.length, e = n.cross(t[h], t[r]), i = n.mult(n.add(t[h], t[r]), e), a = n.add(a, i);
                    return n.div(a, 6 * o);
                }, s.mean = function(t) {
                    for(var e = {
                        x: 0,
                        y: 0
                    }, i = 0; i < t.length; i++)e.x += t[i].x, e.y += t[i].y;
                    return n.div(e, t.length);
                }, s.area = function(t, e) {
                    for(var i = 0, s = t.length - 1, n = 0; n < t.length; n++)i += (t[s].x - t[n].x) * (t[s].y + t[n].y), s = n;
                    return e ? i / 2 : Math.abs(i) / 2;
                }, s.inertia = function(t, e) {
                    for(var i, s, r = 0, o = 0, a = t, h = 0; h < a.length; h++)s = (h + 1) % a.length, r += (i = Math.abs(n.cross(a[s], a[h]))) * (n.dot(a[s], a[s]) + n.dot(a[s], a[h]) + n.dot(a[h], a[h])), o += i;
                    return e / 6 * (r / o);
                }, s.translate = function(t, e, i) {
                    i = void 0 !== i ? i : 1;
                    var s, n = t.length, r = e.x * i, o = e.y * i;
                    for(s = 0; s < n; s++)t[s].x += r, t[s].y += o;
                    return t;
                }, s.rotate = function(t, e, i) {
                    if (0 !== e) {
                        var s, n, r, o, a = Math.cos(e), h = Math.sin(e), l = i.x, u = i.y, c = t.length;
                        for(o = 0; o < c; o++)n = (s = t[o]).x - l, r = s.y - u, s.x = l + (n * a - r * h), s.y = u + (n * h + r * a);
                        return t;
                    }
                }, s.contains = function(t, e) {
                    for(var i, s = e.x, n = e.y, r = t.length, o = t[r - 1], a = 0; a < r; a++){
                        if (i = t[a], (s - o.x) * (i.y - o.y) + (n - o.y) * (o.x - i.x) > 0) return !1;
                        o = i;
                    }
                    return !0;
                }, s.scale = function(t, e, i, r) {
                    if (1 === e && 1 === i) return t;
                    var o, a;
                    r = r || s.centre(t);
                    for(var h = 0; h < t.length; h++)o = t[h], a = n.sub(o, r), t[h].x = r.x + a.x * e, t[h].y = r.y + a.y * i;
                    return t;
                }, s.chamfer = function(t, e, i, s, o) {
                    e = "number" == typeof e ? [
                        e
                    ] : e || [
                        8
                    ], i = void 0 !== i ? i : -1, s = s || 2, o = o || 14;
                    for(var a = [], h = 0; h < t.length; h++){
                        var l = t[h - 1 >= 0 ? h - 1 : t.length - 1], u = t[h], c = t[(h + 1) % t.length], d = e[h < e.length ? h : e.length - 1];
                        if (0 !== d) {
                            var f = n.normalise({
                                x: u.y - l.y,
                                y: l.x - u.x
                            }), p = n.normalise({
                                x: c.y - u.y,
                                y: u.x - c.x
                            }), v = Math.sqrt(2 * Math.pow(d, 2)), g = n.mult(r.clone(f), d), m = n.normalise(n.mult(n.add(f, p), .5)), y = n.sub(u, n.mult(m, v)), x = i;
                            -1 === i && (x = 1.75 * Math.pow(d, .32)), (x = r.clamp(x, s, o)) % 2 == 1 && (x += 1);
                            for(var T = Math.acos(n.dot(f, p)) / x, w = 0; w < x; w++)a.push(n.add(n.rotate(g, T * w), y));
                        } else a.push(u);
                    }
                    return a;
                }, s.clockwiseSort = function(t) {
                    var e = s.mean(t);
                    return t.sort(function(t, i) {
                        return n.angle(e, t) - n.angle(e, i);
                    }), t;
                }, s.isConvex = function(t) {
                    var e, i, s, n, r = 0, o = t.length;
                    if (o < 3) return null;
                    for(e = 0; e < o; e++)if (s = (e + 2) % o, n = (t[i = (e + 1) % o].x - t[e].x) * (t[s].y - t[i].y), (n -= (t[i].y - t[e].y) * (t[s].x - t[i].x)) < 0 ? r |= 1 : n > 0 && (r |= 2), 3 === r) return !1;
                    return 0 !== r || null;
                }, s.hull = function(t) {
                    var e, i, s = [], r = [];
                    for((t = t.slice(0)).sort(function(t, e) {
                        var i = t.x - e.x;
                        return 0 !== i ? i : t.y - e.y;
                    }), i = 0; i < t.length; i += 1){
                        for(e = t[i]; r.length >= 2 && n.cross3(r[r.length - 2], r[r.length - 1], e) <= 0;)r.pop();
                        r.push(e);
                    }
                    for(i = t.length - 1; i >= 0; i -= 1){
                        for(e = t[i]; s.length >= 2 && n.cross3(s[s.length - 2], s[s.length - 1], e) <= 0;)s.pop();
                        s.push(e);
                    }
                    return s.pop(), r.pop(), s.concat(r);
                };
            },
            1675: (t, e, i)=>{
                var s = i(18171), n = {
                    name: "matter-attractors",
                    version: "0.1.7",
                    for: "matter-js@^0.19.0",
                    silent: !0,
                    install: function(t) {
                        t.after("Body.create", function() {
                            n.Body.init(this);
                        }), t.before("Engine.update", function(t) {
                            n.Engine.update(t);
                        });
                    },
                    Body: {
                        init: function(t) {
                            t.plugin.attractors = t.plugin.attractors || [];
                        }
                    },
                    Engine: {
                        update: function(t) {
                            for(var e = s.Composite.allBodies(t.world), i = 0; i < e.length; i++){
                                var n = e[i], r = n.plugin.attractors;
                                if (r && r.length > 0) for(var o = 0; o < e.length; o++){
                                    var a = e[o];
                                    if (i !== o) for(var h = 0; h < r.length; h++){
                                        var l = r[h], u = l;
                                        s.Common.isFunction(l) && (u = l(n, a)), u && s.Body.applyForce(a, a.position, u);
                                    }
                                }
                            }
                        }
                    },
                    Attractors: {
                        gravityConstant: .001,
                        gravity: function(t, e) {
                            var i = s.Vector.sub(e.position, t.position), r = s.Vector.magnitudeSquared(i) || 1e-4, o = s.Vector.normalise(i), a = -n.Attractors.gravityConstant * (t.mass * e.mass / r), h = s.Vector.mult(o, a);
                            s.Body.applyForce(t, t.position, s.Vector.neg(h)), s.Body.applyForce(e, e.position, h);
                        }
                    }
                };
                t.exports = n;
            },
            80391: (t)=>{
                t.exports = {
                    name: "matter-collision-events",
                    version: "0.1.6",
                    for: "matter-js@^0.19.0",
                    silent: !0,
                    install: function(t) {
                        t.after("Engine.create", function() {
                            t.Events.on(this, "collisionStart", function(e) {
                                e.pairs.map(function(e) {
                                    var i = e.bodyA, s = e.bodyB;
                                    i.gameObject && i.gameObject.emit("collide", i, s, e), s.gameObject && s.gameObject.emit("collide", s, i, e), t.Events.trigger(i, "onCollide", {
                                        pair: e
                                    }), t.Events.trigger(s, "onCollide", {
                                        pair: e
                                    }), i.onCollideCallback && i.onCollideCallback(e), s.onCollideCallback && s.onCollideCallback(e), i.onCollideWith[s.id] && i.onCollideWith[s.id](s, e), s.onCollideWith[i.id] && s.onCollideWith[i.id](i, e);
                                });
                            }), t.Events.on(this, "collisionActive", function(e) {
                                e.pairs.map(function(e) {
                                    var i = e.bodyA, s = e.bodyB;
                                    i.gameObject && i.gameObject.emit("collideActive", i, s, e), s.gameObject && s.gameObject.emit("collideActive", s, i, e), t.Events.trigger(i, "onCollideActive", {
                                        pair: e
                                    }), t.Events.trigger(s, "onCollideActive", {
                                        pair: e
                                    }), i.onCollideActiveCallback && i.onCollideActiveCallback(e), s.onCollideActiveCallback && s.onCollideActiveCallback(e);
                                });
                            }), t.Events.on(this, "collisionEnd", function(e) {
                                e.pairs.map(function(e) {
                                    var i = e.bodyA, s = e.bodyB;
                                    i.gameObject && i.gameObject.emit("collideEnd", i, s, e), s.gameObject && s.gameObject.emit("collideEnd", s, i, e), t.Events.trigger(i, "onCollideEnd", {
                                        pair: e
                                    }), t.Events.trigger(s, "onCollideEnd", {
                                        pair: e
                                    }), i.onCollideEndCallback && i.onCollideEndCallback(e), s.onCollideEndCallback && s.onCollideEndCallback(e);
                                });
                            });
                        });
                    }
                };
            },
            44097: (t, e, i)=>{
                var s = i(18171), n = {
                    name: "matter-wrap",
                    version: "0.1.4",
                    for: "matter-js@^0.19.0",
                    silent: !0,
                    install: function(t) {
                        t.after("Engine.update", function() {
                            n.Engine.update(this);
                        });
                    },
                    Engine: {
                        update: function(t) {
                            for(var e = t.world, i = s.Composite.allBodies(e), r = s.Composite.allComposites(e), o = 0; o < i.length; o += 1){
                                var a = i[o];
                                a.plugin.wrap && n.Body.wrap(a, a.plugin.wrap);
                            }
                            for(o = 0; o < r.length; o += 1){
                                var h = r[o];
                                h.plugin.wrap && n.Composite.wrap(h, h.plugin.wrap);
                            }
                        }
                    },
                    Bounds: {
                        wrap: function(t, e) {
                            var i = null, s = null;
                            if (void 0 !== e.min.x && void 0 !== e.max.x && (t.min.x > e.max.x ? i = e.min.x - t.max.x : t.max.x < e.min.x && (i = e.max.x - t.min.x)), void 0 !== e.min.y && void 0 !== e.max.y && (t.min.y > e.max.y ? s = e.min.y - t.max.y : t.max.y < e.min.y && (s = e.max.y - t.min.y)), null !== i || null !== s) return {
                                x: i || 0,
                                y: s || 0
                            };
                        }
                    },
                    Body: {
                        wrap: function(t, e) {
                            var i = n.Bounds.wrap(t.bounds, e);
                            return i && s.Body.translate(t, i), i;
                        }
                    },
                    Composite: {
                        bounds: function(t) {
                            for(var e = s.Composite.allBodies(t), i = [], n = 0; n < e.length; n += 1){
                                var r = e[n];
                                i.push(r.bounds.min, r.bounds.max);
                            }
                            return s.Bounds.create(i);
                        },
                        wrap: function(t, e) {
                            var i = n.Bounds.wrap(n.Composite.bounds(t), e);
                            return i && s.Composite.translate(t, i), i;
                        }
                    }
                };
                t.exports = n;
            },
            81084: (t)=>{
                function e(t, e, i) {
                    i = i || 0;
                    var s, n, r, o, a, h, l, u = [
                        0,
                        0
                    ];
                    return s = t[1][1] - t[0][1], n = t[0][0] - t[1][0], r = s * t[0][0] + n * t[0][1], o = e[1][1] - e[0][1], a = e[0][0] - e[1][0], h = o * e[0][0] + a * e[0][1], S(l = s * a - o * n, 0, i) || (u[0] = (a * r - n * h) / l, u[1] = (s * h - o * r) / l), u;
                }
                function i(t, e, i, s) {
                    var n = e[0] - t[0], r = e[1] - t[1], o = s[0] - i[0], a = s[1] - i[1];
                    if (o * r - a * n == 0) return !1;
                    var h = (n * (i[1] - t[1]) + r * (t[0] - i[0])) / (o * r - a * n), l = (o * (t[1] - i[1]) + a * (i[0] - t[0])) / (a * n - o * r);
                    return h >= 0 && h <= 1 && l >= 0 && l <= 1;
                }
                function s(t, e, i) {
                    return (e[0] - t[0]) * (i[1] - t[1]) - (i[0] - t[0]) * (e[1] - t[1]);
                }
                function n(t, e, i) {
                    return s(t, e, i) > 0;
                }
                function r(t, e, i) {
                    return s(t, e, i) >= 0;
                }
                function o(t, e, i) {
                    return s(t, e, i) < 0;
                }
                function a(t, e, i) {
                    return s(t, e, i) <= 0;
                }
                t.exports = {
                    decomp: function(t) {
                        var e = T(t);
                        return e.length > 0 ? w(t, e) : [
                            t
                        ];
                    },
                    quickDecomp: function t(e, i, s, h, l, u, v) {
                        u = u || 100, v = v || 0, l = l || 25, i = void 0 !== i ? i : [], s = s || [], h = h || [];
                        var g = [
                            0,
                            0
                        ], m = [
                            0,
                            0
                        ], x = [
                            0,
                            0
                        ], T = 0, w = 0, S = 0, E = 0, A = 0, C = 0, _ = 0, M = [], P = [], R = e, O = e;
                        if (O.length < 3) return i;
                        if (++v > u) return console.warn("quickDecomp: max level (" + u + ") reached."), i;
                        for(var L = 0; L < e.length; ++L)if (p(R, L)) {
                            s.push(R[L]), T = w = Number.MAX_VALUE;
                            for(var F = 0; F < e.length; ++F)n(d(R, L - 1), d(R, L), d(R, F)) && a(d(R, L - 1), d(R, L), d(R, F - 1)) && (x = b(d(R, L - 1), d(R, L), d(R, F), d(R, F - 1)), o(d(R, L + 1), d(R, L), x) && (S = c(R[L], x)) < w && (w = S, m = x, C = F)), n(d(R, L + 1), d(R, L), d(R, F + 1)) && a(d(R, L + 1), d(R, L), d(R, F)) && (x = b(d(R, L + 1), d(R, L), d(R, F), d(R, F + 1)), n(d(R, L - 1), d(R, L), x) && (S = c(R[L], x)) < T && (T = S, g = x, A = F));
                            if (C === (A + 1) % e.length) x[0] = (m[0] + g[0]) / 2, x[1] = (m[1] + g[1]) / 2, h.push(x), L < A ? (f(M, R, L, A + 1), M.push(x), P.push(x), 0 !== C && f(P, R, C, R.length), f(P, R, 0, L + 1)) : (0 !== L && f(M, R, L, R.length), f(M, R, 0, A + 1), M.push(x), P.push(x), f(P, R, C, L + 1));
                            else {
                                if (C > A && (A += e.length), E = Number.MAX_VALUE, A < C) return i;
                                for(F = C; F <= A; ++F)r(d(R, L - 1), d(R, L), d(R, F)) && a(d(R, L + 1), d(R, L), d(R, F)) && (S = c(d(R, L), d(R, F))) < E && y(R, L, F) && (E = S, _ = F % e.length);
                                L < _ ? (f(M, R, L, _ + 1), 0 !== _ && f(P, R, _, O.length), f(P, R, 0, L + 1)) : (0 !== L && f(M, R, L, O.length), f(M, R, 0, _ + 1), f(P, R, _, L + 1));
                            }
                            return M.length < P.length ? (t(M, i, s, h, l, u, v), t(P, i, s, h, l, u, v)) : (t(P, i, s, h, l, u, v), t(M, i, s, h, l, u, v)), i;
                        }
                        return i.push(e), i;
                    },
                    isSimple: function(t) {
                        var e, s = t;
                        for(e = 0; e < s.length - 1; e++)for(var n = 0; n < e - 1; n++)if (i(s[e], s[e + 1], s[n], s[n + 1])) return !1;
                        for(e = 1; e < s.length - 2; e++)if (i(s[0], s[s.length - 1], s[e], s[e + 1])) return !1;
                        return !0;
                    },
                    removeCollinearPoints: function(t, e) {
                        for(var i = 0, s = t.length - 1; t.length > 3 && s >= 0; --s)u(d(t, s - 1), d(t, s), d(t, s + 1), e) && (t.splice(s % t.length, 1), i++);
                        return i;
                    },
                    removeDuplicatePoints: function(t, e) {
                        for(var i = t.length - 1; i >= 1; --i)for(var s = t[i], n = i - 1; n >= 0; --n)E(s, t[n], e) && t.splice(i, 1);
                    },
                    makeCCW: function(t) {
                        for(var e = 0, i = t, s = 1; s < t.length; ++s)(i[s][1] < i[e][1] || i[s][1] === i[e][1] && i[s][0] > i[e][0]) && (e = s);
                        return !n(d(t, e - 1), d(t, e), d(t, e + 1)) && (function(t) {
                            for(var e = [], i = t.length, s = 0; s !== i; s++)e.push(t.pop());
                            for(s = 0; s !== i; s++)t[s] = e[s];
                        }(t), !0);
                    }
                };
                var h = [], l = [];
                function u(t, e, i, n) {
                    if (n) {
                        var r = h, o = l;
                        r[0] = e[0] - t[0], r[1] = e[1] - t[1], o[0] = i[0] - e[0], o[1] = i[1] - e[1];
                        var a = r[0] * o[0] + r[1] * o[1], u = Math.sqrt(r[0] * r[0] + r[1] * r[1]), c = Math.sqrt(o[0] * o[0] + o[1] * o[1]);
                        return Math.acos(a / (u * c)) < n;
                    }
                    return 0 === s(t, e, i);
                }
                function c(t, e) {
                    var i = e[0] - t[0], s = e[1] - t[1];
                    return i * i + s * s;
                }
                function d(t, e) {
                    var i = t.length;
                    return t[e < 0 ? e % i + i : e % i];
                }
                function f(t, e, i, s) {
                    for(var n = i; n < s; n++)t.push(e[n]);
                }
                function p(t, e) {
                    return o(d(t, e - 1), d(t, e), d(t, e + 1));
                }
                var v = [], g = [];
                function m(t, i, s) {
                    var n, o, h = v, l = g;
                    if (r(d(t, i + 1), d(t, i), d(t, s)) && a(d(t, i - 1), d(t, i), d(t, s))) return !1;
                    o = c(d(t, i), d(t, s));
                    for(var u = 0; u !== t.length; ++u)if ((u + 1) % t.length !== i && u !== i && r(d(t, i), d(t, s), d(t, u + 1)) && a(d(t, i), d(t, s), d(t, u)) && (h[0] = d(t, i), h[1] = d(t, s), l[0] = d(t, u), l[1] = d(t, u + 1), n = e(h, l), c(d(t, i), n) < o)) return !1;
                    return !0;
                }
                function y(t, e, s) {
                    for(var n = 0; n !== t.length; ++n)if (n !== e && n !== s && (n + 1) % t.length !== e && (n + 1) % t.length !== s && i(d(t, e), d(t, s), d(t, n), d(t, n + 1))) return !1;
                    return !0;
                }
                function x(t, e, i, s) {
                    var n = s || [];
                    if (function(t) {
                        t.length = 0;
                    }(n), e < i) for(var r = e; r <= i; r++)n.push(t[r]);
                    else {
                        for(r = 0; r <= i; r++)n.push(t[r]);
                        for(r = e; r < t.length; r++)n.push(t[r]);
                    }
                    return n;
                }
                function T(t) {
                    for(var e = [], i = [], s = [], n = [], r = Number.MAX_VALUE, o = 0; o < t.length; ++o)if (p(t, o)) {
                        for(var a = 0; a < t.length; ++a)if (m(t, o, a)) {
                            i = T(x(t, o, a, n)), s = T(x(t, a, o, n));
                            for(var h = 0; h < s.length; h++)i.push(s[h]);
                            i.length < r && (e = i, r = i.length, e.push([
                                d(t, o),
                                d(t, a)
                            ]));
                        }
                    }
                    return e;
                }
                function w(t, e) {
                    if (0 === e.length) return [
                        t
                    ];
                    if (e instanceof Array && e.length && e[0] instanceof Array && 2 === e[0].length && e[0][0] instanceof Array) {
                        for(var i = [
                            t
                        ], s = 0; s < e.length; s++)for(var n = e[s], r = 0; r < i.length; r++){
                            var o = w(i[r], n);
                            if (o) {
                                i.splice(r, 1), i.push(o[0], o[1]);
                                break;
                            }
                        }
                        return i;
                    }
                    n = e, s = t.indexOf(n[0]), r = t.indexOf(n[1]);
                    return -1 !== s && -1 !== r && [
                        x(t, s, r),
                        x(t, r, s)
                    ];
                }
                function b(t, e, i, s, n) {
                    n = n || 0;
                    var r = e[1] - t[1], o = t[0] - e[0], a = r * t[0] + o * t[1], h = s[1] - i[1], l = i[0] - s[0], u = h * i[0] + l * i[1], c = r * l - h * o;
                    return S(c, 0, n) ? [
                        0,
                        0
                    ] : [
                        (l * a - o * u) / c,
                        (r * u - h * a) / c
                    ];
                }
                function S(t, e, i) {
                    return i = i || 0, Math.abs(t - e) <= i;
                }
                function E(t, e, i) {
                    return S(t[0], e[0], i) && S(t[1], e[1], i);
                }
            },
            88257: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t) {
                        this.pluginManager = t, this.game = t.game;
                    },
                    init: function() {},
                    start: function() {},
                    stop: function() {},
                    destroy: function() {
                        this.pluginManager = null, this.game = null, this.scene = null, this.systems = null;
                    }
                });
                t.exports = s;
            },
            18360: (t)=>{
                t.exports = {
                    Global: [
                        "game",
                        "anims",
                        "cache",
                        "plugins",
                        "registry",
                        "scale",
                        "sound",
                        "textures",
                        "renderer"
                    ],
                    CoreScene: [
                        "EventEmitter",
                        "CameraManager",
                        "GameObjectCreator",
                        "GameObjectFactory",
                        "ScenePlugin",
                        "DisplayList",
                        "UpdateList"
                    ],
                    DefaultScene: [
                        "Clock",
                        "DataManagerPlugin",
                        "InputPlugin",
                        "Loader",
                        "TweenManager",
                        "LightsPlugin"
                    ]
                };
            },
            91963: (t)=>{
                var e = {}, i = {}, s = {
                    register: function(t, i, s, n) {
                        void 0 === n && (n = !1), e[t] = {
                            plugin: i,
                            mapping: s,
                            custom: n
                        };
                    },
                    registerCustom: function(t, e, s, n) {
                        i[t] = {
                            plugin: e,
                            mapping: s,
                            data: n
                        };
                    },
                    hasCore: function(t) {
                        return e.hasOwnProperty(t);
                    },
                    hasCustom: function(t) {
                        return i.hasOwnProperty(t);
                    },
                    getCore: function(t) {
                        return e[t];
                    },
                    getCustom: function(t) {
                        return i[t];
                    },
                    getCustomClass: function(t) {
                        return i.hasOwnProperty(t) ? i[t].plugin : null;
                    },
                    remove: function(t) {
                        e.hasOwnProperty(t) && delete e[t];
                    },
                    removeCustom: function(t) {
                        i.hasOwnProperty(t) && delete i[t];
                    },
                    destroyCorePlugins: function() {
                        for(var t in e)e.hasOwnProperty(t) && delete e[t];
                    },
                    destroyCustomPlugins: function() {
                        for(var t in i)i.hasOwnProperty(t) && delete i[t];
                    }
                };
                t.exports = s;
            },
            49274: (t, e, i)=>{
                var s = i(56694), n = i(97081), r = i(6659), o = i(76846), a = i(99325), h = i(61286), l = i(72632), u = i(91963), c = i(66458), d = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this), this.game = t, this.plugins = [], this.scenePlugins = [], this._pendingGlobal = [], this._pendingScene = [], t.isBooted ? this.boot() : t.events.once(n.BOOT, this.boot, this);
                    },
                    boot: function() {
                        var t, e, i, s, r, o, a, h = this.game.config, u = h.installGlobalPlugins;
                        for(u = u.concat(this._pendingGlobal), t = 0; t < u.length; t++)e = u[t], i = l(e, "key", null), s = l(e, "plugin", null), r = l(e, "start", !1), o = l(e, "mapping", null), a = l(e, "data", null), i && (s ? this.install(i, s, r, o, a) : console.warn("Missing `plugin` for key: " + i));
                        for(u = (u = h.installScenePlugins).concat(this._pendingScene), t = 0; t < u.length; t++)e = u[t], i = l(e, "key", null), s = l(e, "plugin", null), o = l(e, "mapping", null), i && (s ? this.installScenePlugin(i, s, o) : console.warn("Missing `plugin` for key: " + i));
                        this._pendingGlobal = [], this._pendingScene = [], this.game.events.once(n.DESTROY, this.destroy, this);
                    },
                    addToScene: function(t, e, i) {
                        var s, n, r, o = this.game, a = t.scene, h = t.settings.map, l = t.settings.isBooted;
                        for(s = 0; s < e.length; s++)o[n = e[s]] ? (t[n] = o[n], h.hasOwnProperty(n) && (a[h[n]] = t[n])) : "game" === n && h.hasOwnProperty(n) && (a[h[n]] = o);
                        for(var c = 0; c < i.length; c++)for(r = i[c], s = 0; s < r.length; s++)if (n = r[s], u.hasCore(n)) {
                            var d = u.getCore(n), f = d.mapping, p = new d.plugin(a, this, f);
                            t[f] = p, d.custom ? a[f] = p : h.hasOwnProperty(f) && (a[h[f]] = p), l && p.boot();
                        }
                        for(r = this.plugins, s = 0; s < r.length; s++){
                            var v = r[s];
                            v.mapping && (a[v.mapping] = v.plugin);
                        }
                    },
                    getDefaultScenePlugins: function() {
                        var t = this.game.config.defaultPlugins;
                        return t = t.concat(this.scenePlugins);
                    },
                    installScenePlugin: function(t, e, i, s, n) {
                        if (void 0 === n && (n = !1), "function" == typeof e) {
                            if (u.hasCore(t) || u.register(t, e, i, !0), -1 === this.scenePlugins.indexOf(t)) this.scenePlugins.push(t);
                            else if (!n && u.hasCore(t)) return void console.warn("Scene Plugin key in use: " + t);
                            if (s) {
                                var r = new e(s, this, t);
                                s.sys[t] = r, i && "" !== i && (s[i] = r), r.boot();
                            }
                        } else console.warn("Invalid Scene Plugin: " + t);
                    },
                    install: function(t, e, i, s, n) {
                        if (void 0 === i && (i = !1), void 0 === s && (s = null), void 0 === n && (n = null), "function" != typeof e) return console.warn("Invalid Plugin: " + t), null;
                        if (u.hasCustom(t)) return console.warn("Plugin key in use: " + t), null;
                        if (null !== s && (i = !0), this.game.isBooted) {
                            if (u.registerCustom(t, e, s, n), i) return this.start(t);
                        } else this._pendingGlobal.push({
                            key: t,
                            plugin: e,
                            start: i,
                            mapping: s,
                            data: n
                        });
                        return null;
                    },
                    getIndex: function(t) {
                        for(var e = this.plugins, i = 0; i < e.length; i++){
                            if (e[i].key === t) return i;
                        }
                        return -1;
                    },
                    getEntry: function(t) {
                        var e = this.getIndex(t);
                        if (-1 !== e) return this.plugins[e];
                    },
                    isActive: function(t) {
                        var e = this.getEntry(t);
                        return e && e.active;
                    },
                    start: function(t, e) {
                        void 0 === e && (e = t);
                        var i = this.getEntry(e);
                        return i && !i.active ? (i.active = !0, i.plugin.start()) : i || (i = this.createEntry(t, e)), i ? i.plugin : null;
                    },
                    createEntry: function(t, e) {
                        var i = u.getCustom(t);
                        if (i) {
                            var s = new i.plugin(this);
                            i = {
                                key: e,
                                plugin: s,
                                active: !0,
                                mapping: i.mapping,
                                data: i.data
                            }, this.plugins.push(i), s.init(i.data), s.start();
                        }
                        return i;
                    },
                    stop: function(t) {
                        var e = this.getEntry(t);
                        return e && e.active && (e.active = !1, e.plugin.stop()), this;
                    },
                    get: function(t, e) {
                        void 0 === e && (e = !0);
                        var i = this.getEntry(t);
                        if (i) return i.plugin;
                        var s = this.getClass(t);
                        return s && e ? (i = this.createEntry(t, t)) ? i.plugin : null : s || null;
                    },
                    getClass: function(t) {
                        return u.getCustomClass(t);
                    },
                    removeGlobalPlugin: function(t) {
                        var e = this.getEntry(t);
                        e && c(this.plugins, e), u.removeCustom(t);
                    },
                    removeScenePlugin: function(t) {
                        c(this.scenePlugins, t), u.remove(t);
                    },
                    registerGameObject: function(t, e, i) {
                        return e && h.register(t, e), i && a.register(t, i), this;
                    },
                    removeGameObject: function(t, e, i) {
                        return void 0 === e && (e = !0), void 0 === i && (i = !0), e && h.remove(t), i && a.remove(t), this;
                    },
                    registerFileType: function(t, e, i) {
                        o.register(t, e), i && i.sys.load && (i.sys.load[t] = e);
                    },
                    destroy: function() {
                        for(var t = 0; t < this.plugins.length; t++)this.plugins[t].plugin.destroy();
                        u.destroyCustomPlugins(), this.game.noReturn && u.destroyCorePlugins(), this.game = null, this.plugins = [], this.scenePlugins = [];
                    }
                });
                t.exports = d;
            },
            39283: (t, e, i)=>{
                var s = i(88257), n = i(56694), r = i(7599), o = new n({
                    Extends: s,
                    initialize: function(t, e, i) {
                        s.call(this, e), this.scene = t, this.systems = t.sys, this.pluginKey = i, t.sys.events.once(r.BOOT, this.boot, this);
                    },
                    boot: function() {},
                    destroy: function() {
                        this.pluginManager = null, this.game = null, this.scene = null, this.systems = null;
                    }
                });
                t.exports = o;
            },
            45615: (t, e, i)=>{
                t.exports = {
                    BasePlugin: i(88257),
                    DefaultPlugins: i(18360),
                    PluginCache: i(91963),
                    PluginManager: i(49274),
                    ScenePlugin: i(39283)
                };
            },
            75205: ()=>{
                !("requestVideoFrameCallback" in HTMLVideoElement.prototype) && "getVideoPlaybackQuality" in HTMLVideoElement.prototype && (HTMLVideoElement.prototype._rvfcpolyfillmap = {}, HTMLVideoElement.prototype.requestVideoFrameCallback = function(t) {
                    const e = performance.now(), i = this.getVideoPlaybackQuality(), s = this.mozPresentedFrames || this.mozPaintedFrames || i.totalVideoFrames - i.droppedVideoFrames, n = (r, o)=>{
                        const a = this.getVideoPlaybackQuality(), h = this.mozPresentedFrames || this.mozPaintedFrames || a.totalVideoFrames - a.droppedVideoFrames;
                        if (h > s) {
                            const s = this.mozFrameDelay || a.totalFrameDelay - i.totalFrameDelay || 0, n = o - r;
                            t(o, {
                                presentationTime: o + 1e3 * s,
                                expectedDisplayTime: o + n,
                                width: this.videoWidth,
                                height: this.videoHeight,
                                mediaTime: Math.max(0, this.currentTime || 0) + n / 1e3,
                                presentedFrames: h,
                                processingDuration: s
                            }), delete this._rvfcpolyfillmap[e];
                        } else this._rvfcpolyfillmap[e] = requestAnimationFrame((t)=>n(o, t));
                    };
                    return this._rvfcpolyfillmap[e] = requestAnimationFrame((t)=>n(e, t)), e;
                }, HTMLVideoElement.prototype.cancelVideoFrameCallback = function(t) {
                    cancelAnimationFrame(this._rvfcpolyfillmap[t]), delete this._rvfcpolyfillmap[t];
                });
            },
            95723: (t)=>{
                t.exports = {
                    SKIP_CHECK: -1,
                    NORMAL: 0,
                    ADD: 1,
                    MULTIPLY: 2,
                    SCREEN: 3,
                    OVERLAY: 4,
                    DARKEN: 5,
                    LIGHTEN: 6,
                    COLOR_DODGE: 7,
                    COLOR_BURN: 8,
                    HARD_LIGHT: 9,
                    SOFT_LIGHT: 10,
                    DIFFERENCE: 11,
                    EXCLUSION: 12,
                    HUE: 13,
                    SATURATION: 14,
                    COLOR: 15,
                    LUMINOSITY: 16,
                    ERASE: 17,
                    SOURCE_IN: 18,
                    SOURCE_OUT: 19,
                    SOURCE_ATOP: 20,
                    DESTINATION_OVER: 21,
                    DESTINATION_IN: 22,
                    DESTINATION_OUT: 23,
                    DESTINATION_ATOP: 24,
                    LIGHTER: 25,
                    COPY: 26,
                    XOR: 27
                };
            },
            27394: (t)=>{
                t.exports = {
                    DEFAULT: 0,
                    LINEAR: 0,
                    NEAREST: 1
                };
            },
            91135: (t, e, i)=>{
                var s = i(89787), n = i(61840), r = i(56694), o = i(86459), a = i(6659), h = i(81044), l = i(32834), u = i(40444), c = i(38203), d = i(69360), f = new r({
                    Extends: a,
                    initialize: function(t) {
                        a.call(this);
                        var e = t.config;
                        this.config = {
                            clearBeforeRender: e.clearBeforeRender,
                            backgroundColor: e.backgroundColor,
                            antialias: e.antialias,
                            roundPixels: e.roundPixels
                        }, this.game = t, this.type = o.CANVAS, this.drawCount = 0, this.width = 0, this.height = 0, this.gameCanvas = t.canvas;
                        var i = {
                            alpha: t.config.transparent,
                            desynchronized: t.config.desynchronized,
                            willReadFrequently: !1
                        };
                        this.gameContext = e.context ? e.context : this.gameCanvas.getContext("2d", i), this.currentContext = this.gameContext, this.antialias = t.config.antialias, this.blendModes = l(), this.snapshotState = {
                            x: 0,
                            y: 0,
                            width: 1,
                            height: 1,
                            getPixel: !1,
                            callback: null,
                            type: "image/png",
                            encoder: .92
                        }, this._tempMatrix1 = new d, this._tempMatrix2 = new d, this._tempMatrix3 = new d, this.isBooted = !1, this.init();
                    },
                    init: function() {
                        this.game.textures.once(c.READY, this.boot, this);
                    },
                    boot: function() {
                        var t = this.game, e = t.scale.baseSize;
                        this.width = e.width, this.height = e.height, this.isBooted = !0, t.scale.on(u.RESIZE, this.onResize, this), this.resize(e.width, e.height);
                    },
                    onResize: function(t, e) {
                        e.width === this.width && e.height === this.height || this.resize(e.width, e.height);
                    },
                    resize: function(t, e) {
                        this.width = t, this.height = e, this.emit(h.RESIZE, t, e);
                    },
                    resetTransform: function() {
                        this.currentContext.setTransform(1, 0, 0, 1, 0, 0);
                    },
                    setBlendMode: function(t) {
                        return this.currentContext.globalCompositeOperation = t, this;
                    },
                    setContext: function(t) {
                        return this.currentContext = t || this.gameContext, this;
                    },
                    setAlpha: function(t) {
                        return this.currentContext.globalAlpha = t, this;
                    },
                    preRender: function() {
                        var t = this.gameContext, e = this.config, i = this.width, s = this.height;
                        t.globalAlpha = 1, t.globalCompositeOperation = "source-over", t.setTransform(1, 0, 0, 1, 0, 0), e.clearBeforeRender && (t.clearRect(0, 0, i, s), e.transparent || (t.fillStyle = e.backgroundColor.rgba, t.fillRect(0, 0, i, s))), t.save(), this.drawCount = 0, this.emit(h.PRE_RENDER);
                    },
                    render: function(t, e, i) {
                        var n = e.length;
                        this.emit(h.RENDER, t, i);
                        var r = i.x, o = i.y, a = i.width, l = i.height, u = i.renderToTexture ? i.context : t.sys.context;
                        u.save(), this.game.scene.customViewports && (u.beginPath(), u.rect(r, o, a, l), u.clip()), i.emit(s.PRE_RENDER, i), this.currentContext = u;
                        var c = i.mask;
                        c && c.preRenderCanvas(this, null, i._maskCamera), i.transparent || (u.fillStyle = i.backgroundColor.rgba, u.fillRect(r, o, a, l)), u.globalAlpha = i.alpha, u.globalCompositeOperation = "source-over", this.drawCount += n, i.renderToTexture && i.emit(s.PRE_RENDER, i), i.matrix.copyToContext(u);
                        for(var d = 0; d < n; d++){
                            var f = e[d];
                            f.mask && f.mask.preRenderCanvas(this, f, i), f.renderCanvas(this, f, i), f.mask && f.mask.postRenderCanvas(this, f, i);
                        }
                        u.setTransform(1, 0, 0, 1, 0, 0), u.globalCompositeOperation = "source-over", u.globalAlpha = 1, i.flashEffect.postRenderCanvas(u), i.fadeEffect.postRenderCanvas(u), i.dirty = !1, c && c.postRenderCanvas(this), u.restore(), i.renderToTexture && (i.emit(s.POST_RENDER, i), i.renderToGame && t.sys.context.drawImage(i.canvas, r, o)), i.emit(s.POST_RENDER, i);
                    },
                    postRender: function() {
                        this.gameContext.restore(), this.emit(h.POST_RENDER);
                        var t = this.snapshotState;
                        t.callback && (n(this.gameCanvas, t), t.callback = null);
                    },
                    snapshotCanvas: function(t, e, i, s, r, o, a, h, l) {
                        void 0 === i && (i = !1), this.snapshotArea(s, r, o, a, e, h, l);
                        var u = this.snapshotState;
                        return u.getPixel = i, n(t, u), u.callback = null, this;
                    },
                    snapshot: function(t, e, i) {
                        return this.snapshotArea(0, 0, this.gameCanvas.width, this.gameCanvas.height, t, e, i);
                    },
                    snapshotArea: function(t, e, i, s, n, r, o) {
                        var a = this.snapshotState;
                        return a.callback = n, a.type = r, a.encoder = o, a.getPixel = !1, a.x = t, a.y = e, a.width = Math.min(i, this.gameCanvas.width), a.height = Math.min(s, this.gameCanvas.height), this;
                    },
                    snapshotPixel: function(t, e, i) {
                        return this.snapshotArea(t, e, 1, 1, i), this.snapshotState.getPixel = !0, this;
                    },
                    batchSprite: function(t, e, i, s) {
                        var n = i.alpha * t.alpha;
                        if (0 !== n) {
                            var r = this.currentContext, o = this._tempMatrix1, a = this._tempMatrix2, h = e.canvasData, l = h.x, u = h.y, c = e.cutWidth, d = e.cutHeight, f = e.customPivot, p = e.source.resolution, v = t.displayOriginX, g = t.displayOriginY, m = -v + e.x, y = -g + e.y;
                            if (t.isCropped) {
                                var x = t._crop;
                                x.flipX === t.flipX && x.flipY === t.flipY || e.updateCropUVs(x, t.flipX, t.flipY), c = x.cw, d = x.ch, l = x.cx, u = x.cy, m = -v + x.x, y = -g + x.y, t.flipX && (m >= 0 ? m = -(m + c) : m < 0 && (m = Math.abs(m) - c)), t.flipY && (y >= 0 ? y = -(y + d) : y < 0 && (y = Math.abs(y) - d));
                            }
                            var T = 1, w = 1;
                            t.flipX && (f || (m += -e.realWidth + 2 * v), T = -1), t.flipY && (f || (y += -e.realHeight + 2 * g), w = -1);
                            var b = t.x, S = t.y;
                            i.roundPixels && (b = Math.floor(b), S = Math.floor(S)), a.applyITRS(b, S, t.rotation, t.scaleX * T, t.scaleY * w), o.copyFrom(i.matrix), s ? (o.multiplyWithOffset(s, -i.scrollX * t.scrollFactorX, -i.scrollY * t.scrollFactorY), a.e = b, a.f = S) : (a.e -= i.scrollX * t.scrollFactorX, a.f -= i.scrollY * t.scrollFactorY), o.multiply(a), i.roundPixels && (o.e = Math.round(o.e), o.f = Math.round(o.f)), r.save(), o.setToContext(r), r.globalCompositeOperation = this.blendModes[t.blendMode], r.globalAlpha = n, r.imageSmoothingEnabled = !e.source.scaleMode, t.mask && t.mask.preRenderCanvas(this, t, i), c > 0 && d > 0 && r.drawImage(e.source.image, l, u, c, d, m, y, c / p, d / p), t.mask && t.mask.postRenderCanvas(this, t, i), r.restore();
                        }
                    },
                    destroy: function() {
                        this.removeAllListeners(), this.game = null, this.gameCanvas = null, this.gameContext = null;
                    }
                });
                t.exports = f;
            },
            6046: (t, e, i)=>{
                t.exports = {
                    CanvasRenderer: i(91135),
                    GetBlendModes: i(32834),
                    SetTransform: i(49584)
                };
            },
            32834: (t, e, i)=>{
                var s = i(95723), n = i(98581);
                t.exports = function() {
                    var t = [], e = n.supportNewBlendModes, i = "source-over";
                    return t[s.NORMAL] = i, t[s.ADD] = "lighter", t[s.MULTIPLY] = e ? "multiply" : i, t[s.SCREEN] = e ? "screen" : i, t[s.OVERLAY] = e ? "overlay" : i, t[s.DARKEN] = e ? "darken" : i, t[s.LIGHTEN] = e ? "lighten" : i, t[s.COLOR_DODGE] = e ? "color-dodge" : i, t[s.COLOR_BURN] = e ? "color-burn" : i, t[s.HARD_LIGHT] = e ? "hard-light" : i, t[s.SOFT_LIGHT] = e ? "soft-light" : i, t[s.DIFFERENCE] = e ? "difference" : i, t[s.EXCLUSION] = e ? "exclusion" : i, t[s.HUE] = e ? "hue" : i, t[s.SATURATION] = e ? "saturation" : i, t[s.COLOR] = e ? "color" : i, t[s.LUMINOSITY] = e ? "luminosity" : i, t[s.ERASE] = "destination-out", t[s.SOURCE_IN] = "source-in", t[s.SOURCE_OUT] = "source-out", t[s.SOURCE_ATOP] = "source-atop", t[s.DESTINATION_OVER] = "destination-over", t[s.DESTINATION_IN] = "destination-in", t[s.DESTINATION_OUT] = "destination-out", t[s.DESTINATION_ATOP] = "destination-atop", t[s.LIGHTER] = "lighter", t[s.COPY] = "copy", t[s.XOR] = "xor", t;
                };
            },
            49584: (t, e, i)=>{
                var s = i(73329);
                t.exports = function(t, e, i, n, r) {
                    var o = n.alpha * i.alpha;
                    if (o <= 0) return !1;
                    var a = s(i, n, r).calc;
                    return e.globalCompositeOperation = t.blendModes[i.blendMode], e.globalAlpha = o, e.save(), a.setToContext(e), e.imageSmoothingEnabled = i.frame ? !i.frame.source.scaleMode : t.antialias, !0;
                };
            },
            70936: (t)=>{
                t.exports = "postrender";
            },
            99298: (t)=>{
                t.exports = "prerender";
            },
            7743: (t)=>{
                t.exports = "render";
            },
            99519: (t)=>{
                t.exports = "resize";
            },
            81044: (t, e, i)=>{
                t.exports = {
                    POST_RENDER: i(70936),
                    PRE_RENDER: i(99298),
                    RENDER: i(7743),
                    RESIZE: i(99519)
                };
            },
            42069: (t, e, i)=>{
                t.exports = {
                    Canvas: i(6046),
                    Events: i(81044),
                    Snapshot: i(95528),
                    WebGL: i(55478)
                };
            },
            61840: (t, e, i)=>{
                var s = i(61068), n = i(27119), r = i(72632);
                t.exports = function(t, e) {
                    var i = r(e, "callback"), o = r(e, "type", "image/png"), a = r(e, "encoder", .92), h = Math.abs(Math.round(r(e, "x", 0))), l = Math.abs(Math.round(r(e, "y", 0))), u = Math.floor(r(e, "width", t.width)), c = Math.floor(r(e, "height", t.height));
                    if (r(e, "getPixel", !1)) {
                        var d = t.getContext("2d", {
                            willReadFrequently: !1
                        }).getImageData(h, l, 1, 1).data;
                        i.call(null, new n(d[0], d[1], d[2], d[3]));
                    } else if (0 !== h || 0 !== l || u !== t.width || c !== t.height) {
                        var f = s.createWebGL(this, u, c), p = f.getContext("2d", {
                            willReadFrequently: !0
                        });
                        u > 0 && c > 0 && p.drawImage(t, h, l, u, c, 0, 0, u, c);
                        var v = new Image;
                        v.onerror = function() {
                            i.call(null), s.remove(f);
                        }, v.onload = function() {
                            i.call(null, v), s.remove(f);
                        }, v.src = f.toDataURL(o, a);
                    } else {
                        var g = new Image;
                        g.onerror = function() {
                            i.call(null);
                        }, g.onload = function() {
                            i.call(null, g);
                        }, g.src = t.toDataURL(o, a);
                    }
                };
            },
            1217: (t, e, i)=>{
                var s = i(61068), n = i(27119), r = i(72632);
                t.exports = function(t, e) {
                    var i = t, o = r(e, "callback"), a = r(e, "type", "image/png"), h = r(e, "encoder", .92), l = Math.abs(Math.round(r(e, "x", 0))), u = Math.abs(Math.round(r(e, "y", 0))), c = r(e, "getPixel", !1), d = r(e, "isFramebuffer", !1), f = d ? r(e, "bufferWidth", 1) : i.drawingBufferWidth, p = d ? r(e, "bufferHeight", 1) : i.drawingBufferHeight;
                    if (c) {
                        var v = new Uint8Array(4), g = d ? u : p - u;
                        i.readPixels(l, g, 1, 1, i.RGBA, i.UNSIGNED_BYTE, v), o.call(null, new n(v[0], v[1], v[2], v[3]));
                    } else {
                        var m = Math.floor(r(e, "width", f)), y = Math.floor(r(e, "height", p)), x = m * y * 4, T = new Uint8Array(x);
                        i.readPixels(l, p - u - y, m, y, i.RGBA, i.UNSIGNED_BYTE, T);
                        for(var w = s.createWebGL(this, m, y), b = w.getContext("2d", {
                            willReadFrequently: !0
                        }), S = b.getImageData(0, 0, m, y), E = S.data, A = 0; A < y; A++)for(var C = 0; C < m; C++){
                            var _ = 4 * ((y - A - 1) * m + C), M = d ? x - 4 * (A * m + (m - C)) : 4 * (A * m + C);
                            E[M + 0] = T[_ + 0], E[M + 1] = T[_ + 1], E[M + 2] = T[_ + 2], E[M + 3] = T[_ + 3];
                        }
                        b.putImageData(S, 0, 0);
                        var P = new Image;
                        P.onerror = function() {
                            o.call(null), s.remove(w);
                        }, P.onload = function() {
                            o.call(null, P), s.remove(w);
                        }, P.src = w.toDataURL(a, h);
                    }
                };
            },
            95528: (t, e, i)=>{
                t.exports = {
                    Canvas: i(61840),
                    WebGL: i(1217)
                };
            },
            35217: (t, e, i)=>{
                var s = i(56694), n = i(65641), r = i(33885), o = i(77290), a = i(72632), h = i(37410), l = i(82127), u = i(5583), c = i(58136), d = i(47406), f = i(81828), p = i(66901), v = i(71264), g = i(77310), m = i(10919), y = i(21213), x = i(51212), T = i(60848), w = new s({
                    initialize: function(t) {
                        this.game = t.game, this.renderer = t, this.classes = new r([
                            [
                                n.UTILITY_PIPELINE,
                                T
                            ],
                            [
                                n.MULTI_PIPELINE,
                                g
                            ],
                            [
                                n.BITMAPMASK_PIPELINE,
                                u
                            ],
                            [
                                n.SINGLE_PIPELINE,
                                x
                            ],
                            [
                                n.ROPE_PIPELINE,
                                y
                            ],
                            [
                                n.LIGHT_PIPELINE,
                                p
                            ],
                            [
                                n.POINTLIGHT_PIPELINE,
                                m
                            ],
                            [
                                n.MOBILE_PIPELINE,
                                v
                            ],
                            [
                                n.FX_PIPELINE,
                                f
                            ]
                        ]), this.postPipelineClasses = new r([
                            [
                                String(d.BARREL),
                                c.Barrel
                            ],
                            [
                                String(d.BLOOM),
                                c.Bloom
                            ],
                            [
                                String(d.BLUR),
                                c.Blur
                            ],
                            [
                                String(d.BOKEH),
                                c.Bokeh
                            ],
                            [
                                String(d.CIRCLE),
                                c.Circle
                            ],
                            [
                                String(d.COLOR_MATRIX),
                                c.ColorMatrix
                            ],
                            [
                                String(d.DISPLACEMENT),
                                c.Displacement
                            ],
                            [
                                String(d.GLOW),
                                c.Glow
                            ],
                            [
                                String(d.GRADIENT),
                                c.Gradient
                            ],
                            [
                                String(d.PIXELATE),
                                c.Pixelate
                            ],
                            [
                                String(d.SHADOW),
                                c.Shadow
                            ],
                            [
                                String(d.SHINE),
                                c.Shine
                            ],
                            [
                                String(d.VIGNETTE),
                                c.Vignette
                            ],
                            [
                                String(d.WIPE),
                                c.Wipe
                            ]
                        ]), this.pipelines = new r, this.default = null, this.current = null, this.previous = null, this.MULTI_PIPELINE = null, this.BITMAPMASK_PIPELINE = null, this.UTILITY_PIPELINE = null, this.MOBILE_PIPELINE = null, this.FX_PIPELINE = null, this.fullFrame1, this.fullFrame2, this.halfFrame1, this.halfFrame2, this.renderTargets = [], this.maxDimension = 0, this.frameInc = 32, this.targetIndex = 0;
                    },
                    boot: function(t, e, i) {
                        var s = this.renderer, r = this.renderTargets;
                        this.frameInc = Math.floor(a(t, "frameInc", 32));
                        for(var l, u, c = s.width, d = s.height, f = Math.min(c, d), p = Math.ceil(f / this.frameInc), v = 1; v < p; v++){
                            var g = v * this.frameInc;
                            r.push(new h(s, g, g)), r.push(new h(s, g, g)), r.push(new h(s, g, g)), this.maxDimension = g;
                        }
                        r.push(new h(s, c, d, 1, 0, !0, !0)), r.push(new h(s, c, d, 1, 0, !0, !0)), r.push(new h(s, c, d, 1, 0, !0, !0));
                        var m = this, y = this.game;
                        if (this.classes.each(function(t, e) {
                            l = m.add(t, new e({
                                game: y
                            })), t === n.UTILITY_PIPELINE && (m.UTILITY_PIPELINE = l, m.fullFrame1 = l.fullFrame1, m.fullFrame2 = l.fullFrame2, m.halfFrame1 = l.halfFrame1, m.halfFrame2 = l.halfFrame2);
                        }), this.MULTI_PIPELINE = this.get(n.MULTI_PIPELINE), this.BITMAPMASK_PIPELINE = this.get(n.BITMAPMASK_PIPELINE), this.MOBILE_PIPELINE = this.get(n.MOBILE_PIPELINE), this.FX_PIPELINE = this.get(n.FX_PIPELINE), t) for(u in t){
                            var x = t[u];
                            (l = new x(y)).name = u, l.isPostFX ? this.postPipelineClasses.set(u, x) : this.has(u) || (this.classes.set(u, x), this.add(u, l));
                        }
                        this.default = this.get(e), i && !o.os.desktop && (this.default = this.MOBILE_PIPELINE);
                    },
                    setDefaultPipeline: function(t) {
                        var e = this.get(t);
                        return e && (this.default = e), e;
                    },
                    add: function(t, e) {
                        if (!e.isPostFX) {
                            var i = this.pipelines, s = this.renderer;
                            return i.has(t) ? console.warn("Pipeline exists: " + t) : (e.name = t, e.manager = this, i.set(t, e)), e.hasBooted || e.boot(), 0 === s.width || 0 === s.height || e.isPreFX || e.resize(s.width, s.height), e;
                        }
                        console.warn(t + " is a Post Pipeline. Use `addPostPipeline` instead");
                    },
                    addPostPipeline: function(t, e) {
                        this.postPipelineClasses.has(t) || this.postPipelineClasses.set(t, e);
                    },
                    flush: function() {
                        this.current && this.current.flush();
                    },
                    has: function(t) {
                        var e = this.pipelines;
                        return "string" == typeof t ? e.has(t) : !!e.contains(t);
                    },
                    get: function(t) {
                        var e = this.pipelines;
                        return "string" == typeof t ? e.get(t) : e.contains(t) ? t : void 0;
                    },
                    getPostPipeline: function(t, e, i) {
                        var s, n = this.postPipelineClasses, r = "", o = typeof t;
                        if ("string" === o || "number" === o ? (s = n.get(t), r = t) : "function" === o ? (n.contains(t) && (s = t), r = t.name) : "object" === o && (s = n.get(t.name), r = t.name), s) {
                            var a = new s(this.game, i);
                            return a.name = r, e && (a.gameObject = e), a;
                        }
                    },
                    remove: function(t, e, i) {
                        void 0 === e && (e = !0), void 0 === i && (i = !0), this.pipelines.delete(t), e && this.classes.delete(t), i && this.postPipelineClasses.delete(t);
                    },
                    set: function(t, e, i) {
                        if (!t.isPostFX) return this.isCurrent(t, i) || (this.flush(), this.current && this.current.unbind(), this.current = t, t.bind(i)), t.updateProjectionMatrix(), t.onBind(e), t;
                    },
                    preBatch: function(t) {
                        if (t.hasPostPipeline) {
                            this.flush();
                            for(var e = t.postPipelines, i = e.length - 1; i >= 0; i--){
                                var s = e[i];
                                s.active && s.preBatch(t);
                            }
                        }
                    },
                    postBatch: function(t) {
                        if (t.hasPostPipeline) {
                            this.flush();
                            for(var e = t.postPipelines, i = 0; i < e.length; i++){
                                var s = e[i];
                                s.active && s.postBatch(t);
                            }
                        }
                    },
                    preBatchCamera: function(t) {
                        if (t.hasPostPipeline) {
                            this.flush();
                            for(var e = t.postPipelines, i = e.length - 1; i >= 0; i--){
                                var s = e[i];
                                s.active && s.preBatch(t);
                            }
                        }
                    },
                    postBatchCamera: function(t) {
                        if (t.hasPostPipeline) {
                            this.flush();
                            for(var e = t.postPipelines, i = 0; i < e.length; i++){
                                var s = e[i];
                                s.active && s.postBatch(t);
                            }
                        }
                    },
                    isCurrent: function(t, e) {
                        var i = this.renderer, s = this.current;
                        return s && !e && (e = s.currentShader), !(s !== t || e.program !== i.currentProgram);
                    },
                    copyFrame: function(t, e, i, s, n) {
                        return this.setUtility(this.UTILITY_PIPELINE.copyShader).copyFrame(t, e, i, s, n), this;
                    },
                    copyToGame: function(t) {
                        return this.setUtility(this.UTILITY_PIPELINE.copyShader).copyToGame(t), this;
                    },
                    drawFrame: function(t, e, i, s) {
                        return this.setUtility(this.UTILITY_PIPELINE.colorMatrixShader).drawFrame(t, e, i, s), this;
                    },
                    blendFrames: function(t, e, i, s, n) {
                        return this.setUtility(this.UTILITY_PIPELINE.linearShader).blendFrames(t, e, i, s, n), this;
                    },
                    blendFramesAdditive: function(t, e, i, s, n) {
                        return this.setUtility(this.UTILITY_PIPELINE.addShader).blendFramesAdditive(t, e, i, s, n), this;
                    },
                    clearFrame: function(t, e) {
                        return this.UTILITY_PIPELINE.clearFrame(t, e), this;
                    },
                    blitFrame: function(t, e, i, s, n, r) {
                        return this.setUtility(this.UTILITY_PIPELINE.copyShader).blitFrame(t, e, i, s, n, r), this;
                    },
                    copyFrameRect: function(t, e, i, s, n, r, o, a) {
                        return this.UTILITY_PIPELINE.copyFrameRect(t, e, i, s, n, r, o, a), this;
                    },
                    forceZero: function() {
                        return this.current && this.current.forceZero;
                    },
                    setMulti: function() {
                        return this.set(this.MULTI_PIPELINE);
                    },
                    setUtility: function(t) {
                        return this.UTILITY_PIPELINE.bind(t);
                    },
                    setFX: function() {
                        return this.set(this.FX_PIPELINE);
                    },
                    rebind: function(t) {
                        void 0 === t && this.previous && (t = this.previous);
                        var e = this.renderer, i = e.gl;
                        i.disable(i.DEPTH_TEST), i.disable(i.CULL_FACE), e.hasActiveStencilMask() ? i.clear(i.DEPTH_BUFFER_BIT) : (i.disable(i.STENCIL_TEST), i.clear(i.DEPTH_BUFFER_BIT | i.STENCIL_BUFFER_BIT)), i.viewport(0, 0, e.width, e.height), e.currentProgram = null, e.setBlendMode(0, !0);
                        var s = e.vaoExtension;
                        s && s.bindVertexArrayOES(null);
                        var n = this.pipelines.entries;
                        for(var r in n)n[r].glReset = !0;
                        t && (this.current = t, t.rebind());
                    },
                    clear: function() {
                        var t = this.renderer;
                        this.flush(), this.current ? (this.current.unbind(), this.previous = this.current, this.current = null) : this.previous = null, t.currentProgram = null, t.setBlendMode(0, !0);
                        var e = t.vaoExtension;
                        e && e.bindVertexArrayOES(null);
                    },
                    getRenderTarget: function(t) {
                        var e = this.renderTargets;
                        if (t > this.maxDimension) return this.targetIndex = e.length - 3, e[this.targetIndex];
                        var i = 3 * (l(t, this.frameInc, 0, !0) - 1);
                        return this.targetIndex = i, e[i];
                    },
                    getSwapRenderTarget: function() {
                        return this.renderTargets[this.targetIndex + 1];
                    },
                    getAltSwapRenderTarget: function() {
                        return this.renderTargets[this.targetIndex + 2];
                    },
                    destroy: function() {
                        this.flush(), this.classes.clear(), this.postPipelineClasses.clear(), this.pipelines.clear(), this.renderer = null, this.game = null, this.classes = null, this.postPipelineClasses = null, this.pipelines = null, this.default = null, this.current = null, this.previous = null;
                    }
                });
                t.exports = w;
            },
            37410: (t, e, i)=>{
                var s = i(56694), n = i(81044), r = new s({
                    initialize: function(t, e, i, s, n, r, o, a, h) {
                        void 0 === s && (s = 1), void 0 === n && (n = 0), void 0 === r && (r = !0), void 0 === o && (o = !1), void 0 === a && (a = !0), void 0 === h && (h = !0), this.renderer = t, this.framebuffer = null, this.texture = null, this.width = 0, this.height = 0, this.scale = s, this.minFilter = n, this.autoClear = r, this.autoResize = !0, this.hasDepthBuffer = a, this.forceClamp = h, this.resize(e, i), o ? this.setAutoResize(!0) : this.autoResize = !1;
                    },
                    setAutoResize: function(t) {
                        return t && !this.autoResize ? (this.renderer.on(n.RESIZE, this.resize, this), this.autoResize = !0) : !t && this.autoResize && (this.renderer.off(n.RESIZE, this.resize, this), this.autoResize = !1), this;
                    },
                    resize: function(t, e) {
                        var i = t * this.scale, s = e * this.scale;
                        if (this.autoResize && (i !== this.width || s !== this.height)) {
                            var n = this.renderer;
                            n.deleteFramebuffer(this.framebuffer), n.deleteTexture(this.texture), t *= this.scale, e *= this.scale, (t = Math.round(t)) <= 0 && (t = 1), (e = Math.round(e)) <= 0 && (e = 1), this.texture = n.createTextureFromSource(null, t, e, this.minFilter, this.forceClamp), this.framebuffer = n.createFramebuffer(t, e, this.texture, this.hasDepthBuffer), this.width = t, this.height = e;
                        }
                        return this;
                    },
                    bind: function(t, e, i) {
                        void 0 === t && (t = !1);
                        var s = this.renderer;
                        if (t && s.flush(), e && i && this.resize(e, i), s.pushFramebuffer(this.framebuffer, !1, !1), t && this.adjustViewport(), this.autoClear) {
                            var n = this.renderer.gl;
                            n.clearColor(0, 0, 0, 0), n.clear(n.COLOR_BUFFER_BIT);
                        }
                        s.clearStencilMask();
                    },
                    adjustViewport: function() {
                        var t = this.renderer.gl;
                        t.viewport(0, 0, this.width, this.height), t.disable(t.SCISSOR_TEST);
                    },
                    clear: function() {
                        var t = this.renderer, e = t.gl;
                        t.pushFramebuffer(this.framebuffer), e.disable(e.SCISSOR_TEST), e.clearColor(0, 0, 0, 0), e.clear(e.COLOR_BUFFER_BIT), t.popFramebuffer(), t.resetScissor();
                    },
                    unbind: function(t) {
                        void 0 === t && (t = !1);
                        var e = this.renderer;
                        return t && e.flush(), e.popFramebuffer();
                    },
                    destroy: function() {
                        var t = this.renderer;
                        t.deleteFramebuffer(this.framebuffer), t.deleteTexture(this.texture), t.off(n.RESIZE, this.resize, this), this.renderer = null, this.framebuffer = null, this.texture = null;
                    }
                });
                t.exports = r;
            },
            75512: (t)=>{
                t.exports = {
                    getTintFromFloats: function(t, e, i, s) {
                        return ((255 & (255 * s | 0)) << 24 | (255 & (255 * t | 0)) << 16 | (255 & (255 * e | 0)) << 8 | 255 & (255 * i | 0)) >>> 0;
                    },
                    getTintAppendFloatAlpha: function(t, e) {
                        return ((255 & (255 * e | 0)) << 24 | t) >>> 0;
                    },
                    getTintAppendFloatAlphaAndSwap: function(t, e) {
                        return ((255 & (255 * e | 0)) << 24 | (255 & (0 | t)) << 16 | (255 & (t >> 8 | 0)) << 8 | 255 & (t >> 16 | 0)) >>> 0;
                    },
                    getFloatsFromUintRGB: function(t) {
                        return [
                            (255 & (t >> 16 | 0)) / 255,
                            (255 & (t >> 8 | 0)) / 255,
                            (255 & (0 | t)) / 255
                        ];
                    },
                    checkShaderMax: function(t, e) {
                        var i = Math.min(16, t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS));
                        return e && -1 !== e ? Math.min(i, e) : i;
                    },
                    parseFragmentShaderMaxTextures: function(t, e) {
                        if (!t) return "";
                        for(var i = "", s = 0; s < e; s++)s > 0 && (i += "\n	else "), s < e - 1 && (i += "if (outTexId < " + s + ".5)"), i += "\n	{", i += "\n		texture = texture2D(uMainSampler[" + s + "], outTexCoord);", i += "\n	}";
                        return (t = t.replace(/%count%/gi, e.toString())).replace(/%forloop%/gi, i);
                    },
                    setGlowQuality: function(t, e, i, s) {
                        return void 0 === i && (i = e.config.glowFXQuality), void 0 === s && (s = e.config.glowFXDistance), t = (t = t.replace(/__SIZE__/gi, (1 / i / s).toFixed(7))).replace(/__DIST__/gi, s.toFixed(0) + ".0");
                    }
                };
            },
            44775: (t, e, i)=>{
                var s = i(56694), n = i(28699), r = i(6659), o = i(18970), a = i(72632), h = i(16650), l = i(81044), u = i(37410), c = i(75512), d = i(71305), f = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this);
                        var e = t.game, i = e.renderer, s = i.gl;
                        this.name = a(t, "name", "WebGLPipeline"), this.game = e, this.renderer = i, this.manager, this.gl = s, this.view = e.canvas, this.width = 0, this.height = 0, this.vertexCount = 0, this.vertexCapacity = 0, this.vertexData, this.vertexBuffer, this.activeBuffer, this.topology = a(t, "topology", s.TRIANGLES), this.bytes, this.vertexViewF32, this.vertexViewU32, this.active = !0, this.forceZero = a(t, "forceZero", !1), this.hasBooted = !1, this.isPostFX = !1, this.isPreFX = !1, this.renderTargets = [], this.currentRenderTarget, this.shaders = [], this.currentShader, this.projectionMatrix, this.projectionWidth = 0, this.projectionHeight = 0, this.config = t, this.glReset = !1, this.batch = [], this.currentBatch = null, this.currentTexture = null, this.currentUnit = 0, this.activeTextures = [];
                    },
                    boot: function() {
                        var t, e = this.gl, i = this.config, s = this.renderer;
                        this.isPostFX || (this.projectionMatrix = (new h).identity());
                        var n = this.renderTargets, r = a(i, "renderTarget", !1);
                        "boolean" == typeof r && r && (r = 1);
                        var c = s.width, d = s.height;
                        if ("number" == typeof r) for(t = 0; t < r; t++)n.push(new u(s, c, d, 1, 0, !0));
                        else if (Array.isArray(r)) for(t = 0; t < r.length; t++){
                            var f = a(r[t], "scale", 1), p = a(r[t], "minFilter", 0), v = a(r[t], "autoClear", 1), g = a(r[t], "width", null), m = a(r[t], "height", g);
                            g ? n.push(new u(s, g, m, 1, p, v)) : n.push(new u(s, c, d, f, p, v));
                        }
                        n.length && (this.currentRenderTarget = n[0]), this.setShadersFromConfig(i);
                        var y = this.shaders, x = 0;
                        for(t = 0; t < y.length; t++)y[t].vertexSize > x && (x = y[t].vertexSize);
                        var T = a(i, "batchSize", s.config.batchSize);
                        this.vertexCapacity = 6 * T;
                        var w = new ArrayBuffer(this.vertexCapacity * x);
                        this.vertexData = w, this.bytes = new Uint8Array(w), this.vertexViewF32 = new Float32Array(w), this.vertexViewU32 = new Uint32Array(w);
                        var b = a(i, "vertices", null);
                        for(b ? (this.vertexViewF32.set(b), this.vertexBuffer = s.createVertexBuffer(w, e.STATIC_DRAW)) : this.vertexBuffer = s.createVertexBuffer(w.byteLength, e.DYNAMIC_DRAW), this.setVertexBuffer(), t = y.length - 1; t >= 0; t--)y[t].rebind();
                        this.hasBooted = !0, s.on(l.RESIZE, this.resize, this), s.on(l.PRE_RENDER, this.onPreRender, this), s.on(l.RENDER, this.onRender, this), s.on(l.POST_RENDER, this.onPostRender, this), this.emit(o.BOOT, this), this.onBoot();
                    },
                    onBoot: function() {},
                    onResize: function() {},
                    setShader: function(t, e, i) {
                        var s = this.renderer;
                        t === this.currentShader && s.currentProgram === this.currentShader.program || (this.flush(), this.setVertexBuffer(i) && !e && (e = !0), t.bind(e, !1), this.currentShader = t);
                        return this;
                    },
                    getShaderByName: function(t) {
                        for(var e = this.shaders, i = 0; i < e.length; i++)if (e[i].name === t) return e[i];
                    },
                    setShadersFromConfig: function(t) {
                        var e, i = this.shaders, s = this.renderer;
                        for(e = 0; e < i.length; e++)i[e].destroy();
                        var r = "vertShader", o = "fragShader", h = "attributes", l = a(t, r, null), u = c.parseFragmentShaderMaxTextures(a(t, o, null), s.maxTextures), f = a(t, h, null), p = a(t, "shaders", []), v = p.length;
                        if (0 === v) l && u && (this.shaders = [
                            new d(this, "default", l, u, n(f))
                        ]);
                        else {
                            var g = [];
                            for(e = 0; e < v; e++){
                                var m, y, x, T, w = p[e];
                                if ("string" == typeof w ? (m = "default", y = l, x = c.parseFragmentShaderMaxTextures(w, s.maxTextures), T = f) : (m = a(w, "name", "default"), y = a(w, r, l), x = c.parseFragmentShaderMaxTextures(a(w, o, u), s.maxTextures), T = a(w, h, f)), "default" === m) {
                                    var b = x.split("\n")[0].trim();
                                    b.indexOf("#define SHADER_NAME") > -1 && (m = b.substring(20));
                                }
                                y && x && g.push(new d(this, m, y, x, n(T)));
                            }
                            this.shaders = g;
                        }
                        return 0 === this.shaders.length ? console.warn("Pipeline: " + this.name + " - Invalid shader config") : this.currentShader = this.shaders[0], this;
                    },
                    createBatch: function(t) {
                        return this.currentBatch = {
                            start: this.vertexCount,
                            count: 0,
                            texture: [
                                t
                            ],
                            unit: 0,
                            maxUnit: 0
                        }, this.currentUnit = 0, this.currentTexture = t, this.batch.push(this.currentBatch), 0;
                    },
                    addTextureToBatch: function(t) {
                        var e = this.currentBatch;
                        e && (e.texture.push(t), e.unit++, e.maxUnit++);
                    },
                    pushBatch: function(t) {
                        if (!this.currentBatch || this.forceZero && t !== this.currentTexture) return this.createBatch(t);
                        if (t === this.currentTexture) return this.currentUnit;
                        var e = this.currentBatch, i = e.texture.indexOf(t);
                        return -1 === i ? e.texture.length === this.renderer.maxTextures ? this.createBatch(t) : (e.unit++, e.maxUnit++, e.texture.push(t), this.currentUnit = e.unit, this.currentTexture = t, e.unit) : (this.currentUnit = i, this.currentTexture = t, i);
                    },
                    setGameObject: function(t, e) {
                        return void 0 === e && (e = t.frame), this.pushBatch(e.source.glTexture);
                    },
                    shouldFlush: function(t) {
                        return void 0 === t && (t = 0), this.vertexCount + t > this.vertexCapacity;
                    },
                    vertexAvailable: function() {
                        return this.vertexCapacity - this.vertexCount;
                    },
                    resize: function(t, e) {
                        t === this.width && e === this.height || this.flush(), this.width = t, this.height = e;
                        for(var i = this.renderTargets, s = 0; s < i.length; s++)i[s].resize(t, e);
                        return this.setProjectionMatrix(t, e), this.emit(o.RESIZE, t, e, this), this.onResize(t, e), this;
                    },
                    setProjectionMatrix: function(t, e) {
                        var i = this.projectionMatrix;
                        if (!i) return this;
                        this.projectionWidth = t, this.projectionHeight = e, i.ortho(0, t, e, 0, -1000, 1e3);
                        for(var s = this.shaders, n = "uProjectionMatrix", r = 0; r < s.length; r++){
                            var o = s[r];
                            o.hasUniform(n) && (o.resetUniform(n), o.setMatrix4fv(n, !1, i.val, o));
                        }
                        return this;
                    },
                    flipProjectionMatrix: function(t) {
                        void 0 === t && (t = !0);
                        var e = this.projectionMatrix;
                        if (!e) return this;
                        var i = this.projectionWidth, s = this.projectionHeight;
                        t ? e.ortho(0, i, 0, s, -1000, 1e3) : e.ortho(0, i, s, 0, -1000, 1e3), this.setMatrix4fv("uProjectionMatrix", !1, e.val);
                    },
                    updateProjectionMatrix: function() {
                        if (this.projectionMatrix) {
                            var t = this.renderer.projectionWidth, e = this.renderer.projectionHeight;
                            this.projectionWidth === t && this.projectionHeight === e || this.setProjectionMatrix(t, e);
                        }
                    },
                    bind: function(t) {
                        if (void 0 === t && (t = this.currentShader), this.glReset) return this.rebind(t);
                        var e = !1, i = this.gl;
                        return i.getParameter(i.ARRAY_BUFFER_BINDING) !== this.vertexBuffer && (i.bindBuffer(i.ARRAY_BUFFER, this.vertexBuffer), this.activeBuffer = this.vertexBuffer, e = !0), t.bind(e), this.currentShader = t, this.activeTextures.length = 0, this.emit(o.BIND, this, t), this.onActive(t), this;
                    },
                    rebind: function(t) {
                        this.activeBuffer = null, this.setVertexBuffer();
                        for(var e = this.shaders, i = e.length - 1; i >= 0; i--){
                            var s = e[i].rebind();
                            t && s !== t || (this.currentShader = s);
                        }
                        return this.activeTextures.length = 0, this.emit(o.REBIND, this.currentShader), this.onActive(this.currentShader), this.onRebind(), this.glReset = !1, this;
                    },
                    setVertexBuffer: function(t) {
                        if (void 0 === t && (t = this.vertexBuffer), t !== this.activeBuffer) {
                            var e = this.gl;
                            return this.gl.bindBuffer(e.ARRAY_BUFFER, t), this.activeBuffer = t, !0;
                        }
                        return !1;
                    },
                    preBatch: function(t) {
                        return this.currentRenderTarget && this.currentRenderTarget.bind(), this.onPreBatch(t), this;
                    },
                    postBatch: function(t) {
                        return this.onDraw(this.currentRenderTarget), this.onPostBatch(t), this;
                    },
                    onDraw: function() {},
                    unbind: function() {
                        this.currentRenderTarget && this.currentRenderTarget.unbind();
                    },
                    flush: function(t) {
                        if (void 0 === t && (t = !1), this.vertexCount > 0) {
                            this.emit(o.BEFORE_FLUSH, this, t), this.onBeforeFlush(t);
                            var e = this.gl, i = this.vertexCount, s = this.currentShader.vertexSize, n = this.topology;
                            if (this.active) {
                                var r, a, h;
                                this.setVertexBuffer(), i === this.vertexCapacity ? e.bufferData(e.ARRAY_BUFFER, this.vertexData, e.DYNAMIC_DRAW) : e.bufferSubData(e.ARRAY_BUFFER, 0, this.bytes.subarray(0, i * s));
                                var l = this.batch, u = this.activeTextures;
                                if (this.forceZero) for(u[0] || e.activeTexture(e.TEXTURE0), r = 0; r < l.length; r++)h = (a = l[r]).texture[0], u[0] !== h && (e.bindTexture(e.TEXTURE_2D, h), u[0] = h), e.drawArrays(n, a.start, a.count);
                                else for(r = 0; r < l.length; r++){
                                    a = l[r];
                                    for(var c = 0; c <= a.maxUnit; c++)h = a.texture[c], u[c] !== h && (e.activeTexture(e.TEXTURE0 + c), e.bindTexture(e.TEXTURE_2D, h), u[c] = h);
                                    e.drawArrays(n, a.start, a.count);
                                }
                            }
                            this.vertexCount = 0, this.batch.length = 0, this.currentBatch = null, this.currentTexture = null, this.currentUnit = 0, this.emit(o.AFTER_FLUSH, this, t), this.onAfterFlush(t);
                        }
                        return this;
                    },
                    onActive: function() {},
                    onBind: function() {},
                    onRebind: function() {},
                    onBatch: function() {},
                    onPreBatch: function() {},
                    onPostBatch: function() {},
                    onPreRender: function() {},
                    onRender: function() {},
                    onPostRender: function() {},
                    onBeforeFlush: function() {},
                    onAfterFlush: function() {},
                    batchVert: function(t, e, i, s, n, r, o) {
                        var a = this.vertexViewF32, h = this.vertexViewU32, l = this.vertexCount * this.currentShader.vertexComponentCount - 1;
                        a[++l] = t, a[++l] = e, a[++l] = i, a[++l] = s, a[++l] = n, a[++l] = r, h[++l] = o, this.vertexCount++, this.currentBatch.count = this.vertexCount - this.currentBatch.start;
                    },
                    batchQuad: function(t, e, i, s, n, r, o, a, h, l, u, c, d, f, p, v, g, m, y, x) {
                        void 0 === x && (x = this.currentUnit);
                        var T = !1;
                        this.shouldFlush(6) && (this.flush(), T = !0), this.currentBatch || (x = this.setTexture2D(y));
                        var w = this.vertexViewF32, b = this.vertexViewU32, S = this.vertexCount * this.currentShader.vertexComponentCount - 1;
                        return w[++S] = e, w[++S] = i, w[++S] = l, w[++S] = u, w[++S] = x, w[++S] = m, b[++S] = f, w[++S] = s, w[++S] = n, w[++S] = l, w[++S] = d, w[++S] = x, w[++S] = m, b[++S] = v, w[++S] = r, w[++S] = o, w[++S] = c, w[++S] = d, w[++S] = x, w[++S] = m, b[++S] = g, w[++S] = e, w[++S] = i, w[++S] = l, w[++S] = u, w[++S] = x, w[++S] = m, b[++S] = f, w[++S] = r, w[++S] = o, w[++S] = c, w[++S] = d, w[++S] = x, w[++S] = m, b[++S] = g, w[++S] = a, w[++S] = h, w[++S] = c, w[++S] = u, w[++S] = x, w[++S] = m, b[++S] = p, this.vertexCount += 6, this.currentBatch.count = this.vertexCount - this.currentBatch.start, this.onBatch(t), T;
                    },
                    batchTri: function(t, e, i, s, n, r, o, a, h, l, u, c, d, f, p, v, g) {
                        void 0 === g && (g = this.currentUnit);
                        var m = !1;
                        this.shouldFlush(3) && (this.flush(), m = !0), this.currentBatch || (g = this.setTexture2D(v));
                        var y = this.vertexViewF32, x = this.vertexViewU32, T = this.vertexCount * this.currentShader.vertexComponentCount - 1;
                        return y[++T] = e, y[++T] = i, y[++T] = a, y[++T] = h, y[++T] = g, y[++T] = p, x[++T] = c, y[++T] = s, y[++T] = n, y[++T] = a, y[++T] = u, y[++T] = g, y[++T] = p, x[++T] = d, y[++T] = r, y[++T] = o, y[++T] = l, y[++T] = u, y[++T] = g, y[++T] = p, x[++T] = f, this.vertexCount += 3, this.currentBatch.count = this.vertexCount - this.currentBatch.start, this.onBatch(t), m;
                    },
                    drawFillRect: function(t, e, i, s, n, r, o, a) {
                        void 0 === o && (o = this.renderer.whiteTexture), void 0 === a && (a = !0), t = Math.floor(t), e = Math.floor(e);
                        var h = Math.floor(t + i), l = Math.floor(e + s), u = this.setTexture2D(o), d = c.getTintAppendFloatAlphaAndSwap(n, r), f = 0, p = 1;
                        a && (f = 1, p = 0), this.batchQuad(null, t, e, t, l, h, l, h, e, 0, f, 1, p, d, d, d, d, 0, o, u);
                    },
                    setTexture2D: function(t) {
                        return void 0 === t && (t = this.renderer.whiteTexture), this.pushBatch(t);
                    },
                    bindTexture: function(t, e) {
                        void 0 === e && (e = 0);
                        var i = this.gl;
                        return i.activeTexture(i.TEXTURE0 + e), i.bindTexture(i.TEXTURE_2D, t), this;
                    },
                    bindRenderTarget: function(t, e) {
                        return this.bindTexture(t.texture, e);
                    },
                    setTime: function(t, e) {
                        return this.set1f(t, this.game.loop.getDuration(), e), this;
                    },
                    setBoolean: function(t, e, i) {
                        return void 0 === i && (i = this.currentShader), i.setBoolean(t, e), this;
                    },
                    set1f: function(t, e, i) {
                        return void 0 === i && (i = this.currentShader), i.set1f(t, e), this;
                    },
                    set2f: function(t, e, i, s) {
                        return void 0 === s && (s = this.currentShader), s.set2f(t, e, i), this;
                    },
                    set3f: function(t, e, i, s, n) {
                        return void 0 === n && (n = this.currentShader), n.set3f(t, e, i, s), this;
                    },
                    set4f: function(t, e, i, s, n, r) {
                        return void 0 === r && (r = this.currentShader), r.set4f(t, e, i, s, n), this;
                    },
                    set1fv: function(t, e, i) {
                        return void 0 === i && (i = this.currentShader), i.set1fv(t, e), this;
                    },
                    set2fv: function(t, e, i) {
                        return void 0 === i && (i = this.currentShader), i.set2fv(t, e), this;
                    },
                    set3fv: function(t, e, i) {
                        return void 0 === i && (i = this.currentShader), i.set3fv(t, e), this;
                    },
                    set4fv: function(t, e, i) {
                        return void 0 === i && (i = this.currentShader), i.set4fv(t, e), this;
                    },
                    set1iv: function(t, e, i) {
                        return void 0 === i && (i = this.currentShader), i.set1iv(t, e), this;
                    },
                    set2iv: function(t, e, i) {
                        return void 0 === i && (i = this.currentShader), i.set2iv(t, e), this;
                    },
                    set3iv: function(t, e, i) {
                        return void 0 === i && (i = this.currentShader), i.set3iv(t, e), this;
                    },
                    set4iv: function(t, e, i) {
                        return void 0 === i && (i = this.currentShader), i.set4iv(t, e), this;
                    },
                    set1i: function(t, e, i) {
                        return void 0 === i && (i = this.currentShader), i.set1i(t, e), this;
                    },
                    set2i: function(t, e, i, s) {
                        return void 0 === s && (s = this.currentShader), s.set2i(t, e, i), this;
                    },
                    set3i: function(t, e, i, s, n) {
                        return void 0 === n && (n = this.currentShader), n.set3i(t, e, i, s), this;
                    },
                    set4i: function(t, e, i, s, n, r) {
                        return void 0 === r && (r = this.currentShader), r.set4i(t, e, i, s, n), this;
                    },
                    setMatrix2fv: function(t, e, i, s) {
                        return void 0 === s && (s = this.currentShader), s.setMatrix2fv(t, e, i), this;
                    },
                    setMatrix3fv: function(t, e, i, s) {
                        return void 0 === s && (s = this.currentShader), s.setMatrix3fv(t, e, i), this;
                    },
                    setMatrix4fv: function(t, e, i, s) {
                        return void 0 === s && (s = this.currentShader), s.setMatrix4fv(t, e, i), this;
                    },
                    destroy: function() {
                        var t;
                        this.emit(o.DESTROY, this);
                        var e = this.shaders;
                        for(t = 0; t < e.length; t++)e[t].destroy();
                        var i = this.renderTargets;
                        for(t = 0; t < i.length; t++)i[t].destroy();
                        this.gl.deleteBuffer(this.vertexBuffer);
                        var s = this.renderer;
                        return s.off(l.RESIZE, this.resize, this), s.off(l.PRE_RENDER, this.onPreRender, this), s.off(l.RENDER, this.onRender, this), s.off(l.POST_RENDER, this.onPostRender, this), this.removeAllListeners(), this.game = null, this.renderer = null, this.manager = null, this.gl = null, this.view = null, this.shaders = null, this.renderTargets = null, this.bytes = null, this.vertexViewF32 = null, this.vertexViewU32 = null, this.vertexData = null, this.vertexBuffer = null, this.currentShader = null, this.currentRenderTarget = null, this.activeTextures = null, this;
                    }
                });
                t.exports = f;
            },
            11857: (t, e, i)=>{
                var s = i(66458), n = i(89787), r = i(56694), o = i(86459), a = i(6659), h = i(81044), l = i(28621), u = i(16650), c = i(72283), d = i(35217), f = i(37410), p = i(40444), v = i(38203), g = i(75512), m = i(1217), y = !1, x = new r({
                    Extends: a,
                    initialize: function(t) {
                        a.call(this);
                        var e = t.config, i = {
                            alpha: e.transparent,
                            desynchronized: e.desynchronized,
                            depth: !0,
                            antialias: e.antialiasGL,
                            premultipliedAlpha: e.premultipliedAlpha,
                            stencil: !0,
                            failIfMajorPerformanceCaveat: e.failIfMajorPerformanceCaveat,
                            powerPreference: e.powerPreference,
                            preserveDrawingBuffer: e.preserveDrawingBuffer,
                            willReadFrequently: !1
                        };
                        this.config = {
                            clearBeforeRender: e.clearBeforeRender,
                            antialias: e.antialias,
                            backgroundColor: e.backgroundColor,
                            contextCreation: i,
                            roundPixels: e.roundPixels,
                            maxTextures: e.maxTextures,
                            maxTextureSize: e.maxTextureSize,
                            batchSize: e.batchSize,
                            maxLights: e.maxLights,
                            mipmapFilter: e.mipmapFilter
                        }, this.game = t, this.type = o.WEBGL, this.pipelines = null, this.width = 0, this.height = 0, this.canvas = t.canvas, this.blendModes = [], this.contextLost = !1, this.snapshotState = {
                            x: 0,
                            y: 0,
                            width: 1,
                            height: 1,
                            getPixel: !1,
                            callback: null,
                            type: "image/png",
                            encoder: .92,
                            isFramebuffer: !1,
                            bufferWidth: 0,
                            bufferHeight: 0
                        }, this.maxTextures = 0, this.textureIndexes, this.currentFramebuffer = null, this.fboStack = [], this.currentProgram = null, this.currentBlendMode = 1 / 0, this.currentScissorEnabled = !1, this.currentScissor = null, this.scissorStack = [], this.contextLostHandler = c, this.contextRestoredHandler = c, this.gl = null, this.supportedExtensions = null, this.instancedArraysExtension = null, this.vaoExtension = null, this.extensions = {}, this.glFormats, this.compression, this.drawingBufferHeight = 0, this.blankTexture = null, this.whiteTexture = null, this.maskCount = 0, this.maskStack = [], this.currentMask = {
                            mask: null,
                            camera: null
                        }, this.currentCameraMask = {
                            mask: null,
                            camera: null
                        }, this.glFuncMap = null, this.currentType = "", this.newType = !1, this.nextTypeMatch = !1, this.finalType = !1, this.mipmapFilter = null, this.defaultScissor = [
                            0,
                            0,
                            0,
                            0
                        ], this.isBooted = !1, this.renderTarget = null, this.projectionMatrix, this.projectionWidth = 0, this.projectionHeight = 0, this.maskSource = null, this.maskTarget = null, this.spector = null, this._debugCapture = !1, this.init(this.config);
                    },
                    init: function(t) {
                        var e, i = this.game, s = this.canvas, n = t.backgroundColor;
                        if (!(e = i.config.context ? i.config.context : s.getContext("webgl", t.contextCreation) || s.getContext("experimental-webgl", t.contextCreation)) || e.isContextLost()) throw this.contextLost = !0, new Error("WebGL unsupported");
                        this.gl = e;
                        var r = this;
                        this.contextLostHandler = function(t) {
                            r.contextLost = !0, console && console.warn("WebGL Context lost. Renderer disabled"), t.preventDefault();
                        }, s.addEventListener("webglcontextlost", this.contextLostHandler, !1), i.context = e;
                        for(var a = 0; a <= 27; a++)this.blendModes.push({
                            func: [
                                e.ONE,
                                e.ONE_MINUS_SRC_ALPHA
                            ],
                            equation: e.FUNC_ADD
                        });
                        this.blendModes[1].func = [
                            e.ONE,
                            e.DST_ALPHA
                        ], this.blendModes[2].func = [
                            e.DST_COLOR,
                            e.ONE_MINUS_SRC_ALPHA
                        ], this.blendModes[3].func = [
                            e.ONE,
                            e.ONE_MINUS_SRC_COLOR
                        ], this.blendModes[17] = {
                            func: [
                                e.ZERO,
                                e.ONE_MINUS_SRC_ALPHA
                            ],
                            equation: e.FUNC_REVERSE_SUBTRACT
                        }, this.glFormats = [
                            e.BYTE,
                            e.SHORT,
                            e.UNSIGNED_BYTE,
                            e.UNSIGNED_SHORT,
                            e.FLOAT
                        ], this.glFuncMap = {
                            mat2: {
                                func: e.uniformMatrix2fv,
                                length: 1,
                                matrix: !0
                            },
                            mat3: {
                                func: e.uniformMatrix3fv,
                                length: 1,
                                matrix: !0
                            },
                            mat4: {
                                func: e.uniformMatrix4fv,
                                length: 1,
                                matrix: !0
                            },
                            "1f": {
                                func: e.uniform1f,
                                length: 1
                            },
                            "1fv": {
                                func: e.uniform1fv,
                                length: 1
                            },
                            "1i": {
                                func: e.uniform1i,
                                length: 1
                            },
                            "1iv": {
                                func: e.uniform1iv,
                                length: 1
                            },
                            "2f": {
                                func: e.uniform2f,
                                length: 2
                            },
                            "2fv": {
                                func: e.uniform2fv,
                                length: 1
                            },
                            "2i": {
                                func: e.uniform2i,
                                length: 2
                            },
                            "2iv": {
                                func: e.uniform2iv,
                                length: 1
                            },
                            "3f": {
                                func: e.uniform3f,
                                length: 3
                            },
                            "3fv": {
                                func: e.uniform3fv,
                                length: 1
                            },
                            "3i": {
                                func: e.uniform3i,
                                length: 3
                            },
                            "3iv": {
                                func: e.uniform3iv,
                                length: 1
                            },
                            "4f": {
                                func: e.uniform4f,
                                length: 4
                            },
                            "4fv": {
                                func: e.uniform4fv,
                                length: 1
                            },
                            "4i": {
                                func: e.uniform4i,
                                length: 4
                            },
                            "4iv": {
                                func: e.uniform4iv,
                                length: 1
                            }
                        };
                        var h = e.getSupportedExtensions();
                        t.maxTextures && -1 !== t.maxTextures || (t.maxTextures = e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS)), t.maxTextureSize || (t.maxTextureSize = e.getParameter(e.MAX_TEXTURE_SIZE)), this.compression = this.getCompressedTextures(), this.supportedExtensions = h;
                        var l = "ANGLE_instanced_arrays";
                        this.instancedArraysExtension = h.indexOf(l) > -1 ? e.getExtension(l) : null;
                        var c = "OES_vertex_array_object";
                        this.vaoExtension = h.indexOf(c) > -1 ? e.getExtension(c) : null, e.disable(e.DEPTH_TEST), e.disable(e.CULL_FACE), e.enable(e.BLEND), e.clearColor(n.redGL, n.greenGL, n.blueGL, n.alphaGL), "" !== t.mipmapFilter && (this.mipmapFilter = e[t.mipmapFilter]), this.maxTextures = g.checkShaderMax(e, t.maxTextures), this.textureIndexes = [];
                        for(var f = 0; f < this.maxTextures; f++){
                            var p = e.createTexture();
                            e.activeTexture(e.TEXTURE0 + f), e.bindTexture(e.TEXTURE_2D, p), e.texImage2D(e.TEXTURE_2D, 0, e.RGBA, 1, 1, 0, e.RGBA, e.UNSIGNED_BYTE, new Uint8Array([
                                0,
                                0,
                                255,
                                255
                            ])), this.textureIndexes.push(f);
                        }
                        return this.pipelines = new d(this), this.setBlendMode(o.BlendModes.NORMAL), this.projectionMatrix = (new u).identity(), i.textures.once(v.READY, this.boot, this), this;
                    },
                    boot: function() {
                        var t = this.game, e = this.pipelines, i = t.scale.baseSize, s = i.width, n = i.height;
                        this.width = s, this.height = n, this.isBooted = !0, this.renderTarget = new f(this, s, n, 1, 0, !0, !0), this.maskTarget = new f(this, s, n, 1, 0, !0, !0), this.maskSource = new f(this, s, n, 1, 0, !0, !0);
                        var r = t.config;
                        e.boot(r.pipeline, r.defaultPipeline, r.autoMobilePipeline), this.blankTexture = t.textures.getFrame("__DEFAULT").glTexture, this.whiteTexture = t.textures.getFrame("__WHITE").glTexture;
                        var o = this.gl;
                        o.bindFramebuffer(o.FRAMEBUFFER, null), o.enable(o.SCISSOR_TEST), t.scale.on(p.RESIZE, this.onResize, this), this.resize(s, n);
                    },
                    captureFrame: function(t, e) {
                        void 0 === t && (t = !1), void 0 === e && (e = !1);
                    },
                    captureNextFrame: function() {
                        y;
                    },
                    getFps: function() {
                        y;
                    },
                    log: function() {},
                    startCapture: function(t, e, i) {
                        void 0 === t && (t = 0), void 0 === e && (e = !1), void 0 === i && (i = !1);
                    },
                    stopCapture: function() {
                        y;
                    },
                    onCapture: function(t) {},
                    onResize: function(t, e) {
                        e.width === this.width && e.height === this.height || this.resize(e.width, e.height);
                    },
                    beginCapture: function(t, e) {
                        void 0 === t && (t = this.width), void 0 === e && (e = this.height), this.renderTarget.bind(!0, t, e), this.setProjectionMatrix(t, e);
                    },
                    endCapture: function() {
                        return this.renderTarget.unbind(!0), this.resetProjectionMatrix(), this.renderTarget;
                    },
                    resize: function(t, e) {
                        var i = this.gl;
                        return this.width = t, this.height = e, this.setProjectionMatrix(t, e), i.viewport(0, 0, t, e), this.drawingBufferHeight = i.drawingBufferHeight, i.scissor(0, i.drawingBufferHeight - e, t, e), this.defaultScissor[2] = t, this.defaultScissor[3] = e, this.emit(h.RESIZE, t, e), this;
                    },
                    getCompressedTextures: function() {
                        var t = "WEBGL_compressed_texture_", e = "WEBKIT_" + t, i = function(i, s) {
                            var n = i.getExtension(t + s) || i.getExtension(e + s);
                            if (n) {
                                var r = {};
                                for(var o in n)r[n[o]] = o;
                                return r;
                            }
                        }, s = this.gl;
                        return {
                            ETC: i(s, "etc"),
                            ETC1: i(s, "etc1"),
                            ATC: i(s, "atc"),
                            ASTC: i(s, "astc"),
                            BPTC: i(s, "bptc"),
                            RGTC: i(s, "rgtc"),
                            PVRTC: i(s, "pvrtc"),
                            S3TC: i(s, "s3tc"),
                            S3TCSRGB: i(s, "s3tc_srgb"),
                            IMG: !0
                        };
                    },
                    getCompressedTextureName: function(t, e) {
                        var i = this.compression[t.toUpperCase()];
                        if (e in i) return i[e];
                    },
                    supportsCompressedTexture: function(t, e) {
                        var i = this.compression[t.toUpperCase()];
                        return !!i && (!e || e in i);
                    },
                    getAspectRatio: function() {
                        return this.width / this.height;
                    },
                    setProjectionMatrix: function(t, e) {
                        return t === this.projectionWidth && e === this.projectionHeight || (this.projectionWidth = t, this.projectionHeight = e, this.projectionMatrix.ortho(0, t, e, 0, -1000, 1e3)), this;
                    },
                    resetProjectionMatrix: function() {
                        return this.setProjectionMatrix(this.width, this.height);
                    },
                    hasExtension: function(t) {
                        return !!this.supportedExtensions && this.supportedExtensions.indexOf(t);
                    },
                    getExtension: function(t) {
                        return this.hasExtension(t) ? (t in this.extensions || (this.extensions[t] = this.gl.getExtension(t)), this.extensions[t]) : null;
                    },
                    flush: function() {
                        this.pipelines.flush();
                    },
                    pushScissor: function(t, e, i, s, n) {
                        void 0 === n && (n = this.drawingBufferHeight);
                        var r = [
                            t,
                            e,
                            i,
                            s
                        ];
                        return this.scissorStack.push(r), this.setScissor(t, e, i, s, n), this.currentScissor = r, r;
                    },
                    setScissor: function(t, e, i, s, n) {
                        void 0 === n && (n = this.drawingBufferHeight);
                        var r = this.gl, o = this.currentScissor, a = i > 0 && s > 0;
                        if (o && a) {
                            var h = o[0], l = o[1], u = o[2], c = o[3];
                            a = h !== t || l !== e || u !== i || c !== s;
                        }
                        a && (this.flush(), r.scissor(t, n - e - s, i, s));
                    },
                    resetScissor: function() {
                        var t = this.gl;
                        t.enable(t.SCISSOR_TEST);
                        var e = this.currentScissor;
                        if (e) {
                            var i = e[0], s = e[1], n = e[2], r = e[3];
                            n > 0 && r > 0 && t.scissor(i, this.drawingBufferHeight - s - r, n, r);
                        }
                    },
                    popScissor: function() {
                        var t = this.scissorStack;
                        t.pop();
                        var e = t[t.length - 1];
                        e && this.setScissor(e[0], e[1], e[2], e[3]), this.currentScissor = e;
                    },
                    hasActiveStencilMask: function() {
                        var t = this.currentMask.mask, e = this.currentCameraMask.mask;
                        return t && t.isStencil || e && e.isStencil;
                    },
                    resetViewport: function() {
                        var t = this.gl;
                        t.viewport(0, 0, this.width, this.height), this.drawingBufferHeight = t.drawingBufferHeight;
                    },
                    setBlendMode: function(t, e) {
                        void 0 === e && (e = !1);
                        var i = this.gl, s = this.blendModes[t];
                        return !!(e || t !== o.BlendModes.SKIP_CHECK && this.currentBlendMode !== t) && (this.flush(), i.enable(i.BLEND), i.blendEquation(s.equation), s.func.length > 2 ? i.blendFuncSeparate(s.func[0], s.func[1], s.func[2], s.func[3]) : i.blendFunc(s.func[0], s.func[1]), this.currentBlendMode = t, !0);
                    },
                    addBlendMode: function(t, e) {
                        return this.blendModes.push({
                            func: t,
                            equation: e
                        }) - 1;
                    },
                    updateBlendMode: function(t, e, i) {
                        return this.blendModes[t] && (this.blendModes[t].func = e, i && (this.blendModes[t].equation = i)), this;
                    },
                    removeBlendMode: function(t) {
                        return t > 17 && this.blendModes[t] && this.blendModes.splice(t, 1), this;
                    },
                    pushFramebuffer: function(t, e, i, s, n) {
                        return t === this.currentFramebuffer ? this : (this.fboStack.push(t), this.setFramebuffer(t, e, i, s, n));
                    },
                    setFramebuffer: function(t, e, i, s, n) {
                        if (void 0 === e && (e = !1), void 0 === i && (i = !0), void 0 === s && (s = null), void 0 === n && (n = !1), t === this.currentFramebuffer) return this;
                        var r = this.gl, o = this.width, a = this.height;
                        return t && t.renderTexture && i ? (o = t.renderTexture.width, a = t.renderTexture.height) : this.flush(), r.bindFramebuffer(r.FRAMEBUFFER, t), i && r.viewport(0, 0, o, a), s && r.framebufferTexture2D(r.FRAMEBUFFER, r.COLOR_ATTACHMENT0, r.TEXTURE_2D, s, 0), n && (r.clearColor(0, 0, 0, 0), r.clear(r.COLOR_BUFFER_BIT)), e && (t ? (this.drawingBufferHeight = a, this.pushScissor(0, 0, o, a)) : (this.drawingBufferHeight = this.height, this.popScissor())), this.currentFramebuffer = t, this;
                    },
                    popFramebuffer: function(t, e) {
                        void 0 === t && (t = !1), void 0 === e && (e = !0);
                        var i = this.fboStack;
                        i.pop();
                        var s = i[i.length - 1];
                        return s || (s = null), this.setFramebuffer(s, t, e), s;
                    },
                    restoreFramebuffer: function(t, e) {
                        void 0 === t && (t = !1), void 0 === e && (e = !0);
                        var i = this.fboStack, s = i[i.length - 1];
                        s || (s = null), this.currentFramebuffer = null, this.setFramebuffer(s, t, e);
                    },
                    setProgram: function(t) {
                        return t !== this.currentProgram && (this.flush(), this.gl.useProgram(t), this.currentProgram = t, !0);
                    },
                    resetProgram: function() {
                        return this.gl.useProgram(this.currentProgram), this;
                    },
                    createTextureFromSource: function(t, e, i, s, n) {
                        void 0 === n && (n = !1);
                        var r = this.gl, a = r.NEAREST, h = r.NEAREST, u = r.CLAMP_TO_EDGE;
                        e = t ? t.width : e, i = t ? t.height : i;
                        var c = l(e, i);
                        return c && !n && (u = r.REPEAT), s === o.ScaleModes.LINEAR && this.config.antialias && (a = c && this.mipmapFilter ? this.mipmapFilter : r.LINEAR, h = r.LINEAR), t && t.compressed && (a = r.LINEAR, h = r.LINEAR), t || "number" != typeof e || "number" != typeof i ? this.createTexture2D(0, a, h, u, u, r.RGBA, t) : this.createTexture2D(0, a, h, u, u, r.RGBA, null, e, i);
                    },
                    createTexture2D: function(t, e, i, s, n, r, o, a, h, u, c, d) {
                        u = null == u || u, void 0 === c && (c = !1), void 0 === d && (d = !1);
                        var f = this.gl, p = f.createTexture();
                        f.activeTexture(f.TEXTURE0);
                        var v = f.getParameter(f.TEXTURE_BINDING_2D);
                        f.bindTexture(f.TEXTURE_2D, p), f.texParameteri(f.TEXTURE_2D, f.TEXTURE_MIN_FILTER, e), f.texParameteri(f.TEXTURE_2D, f.TEXTURE_MAG_FILTER, i), f.texParameteri(f.TEXTURE_2D, f.TEXTURE_WRAP_S, n), f.texParameteri(f.TEXTURE_2D, f.TEXTURE_WRAP_T, s), f.pixelStorei(f.UNPACK_PREMULTIPLY_ALPHA_WEBGL, u), d && f.pixelStorei(f.UNPACK_FLIP_Y_WEBGL, !0);
                        var g = !1;
                        if (null == o) f.texImage2D(f.TEXTURE_2D, t, r, a, h, 0, r, f.UNSIGNED_BYTE, null), g = l(a, h);
                        else if (o.compressed) {
                            a = o.width, h = o.height, g = o.generateMipmap;
                            for(var m = 0; m < o.mipmaps.length; m++)f.compressedTexImage2D(f.TEXTURE_2D, m, o.internalFormat, o.mipmaps[m].width, o.mipmaps[m].height, 0, o.mipmaps[m].data);
                        } else c || (a = o.width, h = o.height), f.texImage2D(f.TEXTURE_2D, t, r, r, f.UNSIGNED_BYTE, o), g = l(a, h);
                        return g && f.generateMipmap(f.TEXTURE_2D), v && f.bindTexture(f.TEXTURE_2D, v), p.isAlphaPremultiplied = u, p.isRenderTexture = !1, p.width = a, p.height = h, p;
                    },
                    createFramebuffer: function(t, e, i, s) {
                        void 0 === s && (s = !0);
                        var n, r = this.gl, o = r.createFramebuffer();
                        if (this.setFramebuffer(o), i.isRenderTexture = !0, i.isAlphaPremultiplied = !1, r.framebufferTexture2D(r.FRAMEBUFFER, r.COLOR_ATTACHMENT0, r.TEXTURE_2D, i, 0), (n = r.checkFramebufferStatus(r.FRAMEBUFFER)) !== r.FRAMEBUFFER_COMPLETE) throw new Error("Framebuffer status: " + (({
                            36054: "Incomplete Attachment",
                            36055: "Missing Attachment",
                            36057: "Incomplete Dimensions",
                            36061: "Framebuffer Unsupported"
                        })[n] || n));
                        if (o.renderTexture = i, s) {
                            var a = r.createRenderbuffer();
                            r.bindRenderbuffer(r.RENDERBUFFER, a), r.renderbufferStorage(r.RENDERBUFFER, r.DEPTH_STENCIL, t, e), r.framebufferRenderbuffer(r.FRAMEBUFFER, r.DEPTH_STENCIL_ATTACHMENT, r.RENDERBUFFER, a);
                        }
                        return this.setFramebuffer(null), o;
                    },
                    beginBitmapMask: function(t, e) {
                        this.gl && (this.flush(), this.maskTarget.bind(), this.currentCameraMask.mask !== t && (this.currentMask.mask = t, this.currentMask.camera = e));
                    },
                    drawBitmapMask: function(t, e, i) {
                        this.flush(), this.maskSource.bind(), this.setBlendMode(0, !0), t.renderWebGL(this, t, e), this.maskSource.unbind(!0), this.maskTarget.unbind();
                        var s = this.gl, n = this.getCurrentStencilMask();
                        n ? (s.enable(s.STENCIL_TEST), n.mask.applyStencil(this, n.camera, !0)) : this.currentMask.mask = null, this.pipelines.set(i), s.activeTexture(s.TEXTURE0), s.bindTexture(s.TEXTURE_2D, this.maskTarget.texture), s.activeTexture(s.TEXTURE1), s.bindTexture(s.TEXTURE_2D, this.maskSource.texture);
                    },
                    createProgram: function(t, e) {
                        var i = this.gl, s = i.createProgram(), n = i.createShader(i.VERTEX_SHADER), r = i.createShader(i.FRAGMENT_SHADER);
                        i.shaderSource(n, t), i.shaderSource(r, e), i.compileShader(n), i.compileShader(r);
                        var o = "Shader failed:\n";
                        if (!i.getShaderParameter(n, i.COMPILE_STATUS)) throw new Error("Vertex " + o + i.getShaderInfoLog(n));
                        if (!i.getShaderParameter(r, i.COMPILE_STATUS)) throw new Error("Fragment " + o + i.getShaderInfoLog(r));
                        if (i.attachShader(s, n), i.attachShader(s, r), i.linkProgram(s), !i.getProgramParameter(s, i.LINK_STATUS)) throw new Error("Link " + o + i.getProgramInfoLog(s));
                        return i.useProgram(s), s;
                    },
                    createVertexBuffer: function(t, e) {
                        var i = this.gl, s = i.createBuffer();
                        return i.bindBuffer(i.ARRAY_BUFFER, s), i.bufferData(i.ARRAY_BUFFER, t, e), i.bindBuffer(i.ARRAY_BUFFER, null), s;
                    },
                    createIndexBuffer: function(t, e) {
                        var i = this.gl, s = i.createBuffer();
                        return i.bindBuffer(i.ELEMENT_ARRAY_BUFFER, s), i.bufferData(i.ELEMENT_ARRAY_BUFFER, t, e), i.bindBuffer(i.ELEMENT_ARRAY_BUFFER, null), s;
                    },
                    deleteTexture: function(t) {
                        return t && this.gl.deleteTexture(t), this;
                    },
                    deleteFramebuffer: function(t) {
                        if (t) {
                            var e = this.gl;
                            e.bindFramebuffer(e.FRAMEBUFFER, t);
                            var i = e.getParameter(e.RENDERBUFFER_BINDING);
                            i && e.deleteRenderbuffer(i), e.bindFramebuffer(e.FRAMEBUFFER, null), e.deleteFramebuffer(t), s(this.fboStack, t), this.currentFramebuffer === t && (this.currentFramebuffer = null);
                        }
                        return this;
                    },
                    deleteProgram: function(t) {
                        return t && this.gl.deleteProgram(t), this;
                    },
                    deleteBuffer: function(t) {
                        return this.gl.deleteBuffer(t), this;
                    },
                    preRenderCamera: function(t) {
                        var e = t.x, i = t.y, s = t.width, r = t.height, o = t.backgroundColor;
                        (t.emit(n.PRE_RENDER, t), this.pipelines.preBatchCamera(t), this.pushScissor(e, i, s, r), t.mask && (this.currentCameraMask.mask = t.mask, this.currentCameraMask.camera = t._maskCamera, t.mask.preRenderWebGL(this, t, t._maskCamera)), o.alphaGL > 0) && this.pipelines.setMulti().drawFillRect(e, i, s, r, g.getTintFromFloats(o.blueGL, o.greenGL, o.redGL, 1), o.alphaGL);
                    },
                    getCurrentStencilMask: function() {
                        var t = null, e = this.maskStack, i = this.currentCameraMask;
                        return e.length > 0 ? t = e[e.length - 1] : i.mask && i.mask.isStencil && (t = i), t;
                    },
                    postRenderCamera: function(t) {
                        var e = t.flashEffect, i = t.fadeEffect;
                        if (e.isRunning || i.isRunning || i.isComplete) {
                            var s = this.pipelines.setMulti();
                            e.postRenderWebGL(s, g.getTintFromFloats), i.postRenderWebGL(s, g.getTintFromFloats);
                        }
                        t.dirty = !1, this.popScissor(), t.mask && (this.currentCameraMask.mask = null, t.mask.postRenderWebGL(this, t._maskCamera)), this.pipelines.postBatchCamera(t), t.emit(n.POST_RENDER, t);
                    },
                    preRender: function() {
                        if (!this.contextLost) {
                            var t = this.gl;
                            if (t.bindFramebuffer(t.FRAMEBUFFER, null), this.config.clearBeforeRender) {
                                var e = this.config.backgroundColor;
                                t.clearColor(e.redGL, e.greenGL, e.blueGL, e.alphaGL), t.clear(t.COLOR_BUFFER_BIT | t.DEPTH_BUFFER_BIT | t.STENCIL_BUFFER_BIT);
                            }
                            t.enable(t.SCISSOR_TEST), this.currentScissor = this.defaultScissor, this.scissorStack.length = 0, this.scissorStack.push(this.currentScissor), this.game.scene.customViewports && t.scissor(0, this.drawingBufferHeight - this.height, this.width, this.height), this.currentMask.mask = null, this.currentCameraMask.mask = null, this.maskStack.length = 0, this.emit(h.PRE_RENDER);
                        }
                    },
                    render: function(t, e, i) {
                        if (!this.contextLost) {
                            var s = e.length;
                            if (this.emit(h.RENDER, t, i), this.preRenderCamera(i), 0 === s) return this.setBlendMode(o.BlendModes.NORMAL), void this.postRenderCamera(i);
                            this.currentType = "";
                            for(var n = this.currentMask, r = 0; r < s; r++){
                                this.finalType = r === s - 1;
                                var a = e[r], l = a.mask;
                                (n = this.currentMask).mask && n.mask !== l && n.mask.postRenderWebGL(this, n.camera), l && n.mask !== l && l.preRenderWebGL(this, a, i), a.blendMode !== this.currentBlendMode && this.setBlendMode(a.blendMode);
                                var u = a.type;
                                u !== this.currentType && (this.newType = !0, this.currentType = u), this.finalType ? this.nextTypeMatch = !1 : this.nextTypeMatch = e[r + 1].type === this.currentType, a.renderWebGL(this, a, i), this.newType = !1;
                            }
                            (n = this.currentMask).mask && n.mask.postRenderWebGL(this, n.camera), this.setBlendMode(o.BlendModes.NORMAL), this.postRenderCamera(i);
                        }
                    },
                    postRender: function() {
                        if (!this.contextLost) {
                            this.flush(), this.emit(h.POST_RENDER);
                            var t = this.snapshotState;
                            t.callback && (m(this.gl, t), t.callback = null);
                        }
                    },
                    clearStencilMask: function() {
                        this.gl.disable(this.gl.STENCIL_TEST);
                    },
                    restoreStencilMask: function() {
                        var t = this.gl, e = this.getCurrentStencilMask();
                        if (e) {
                            var i = e.mask;
                            t.enable(t.STENCIL_TEST), i.invertAlpha ? t.stencilFunc(t.NOTEQUAL, i.level, 255) : t.stencilFunc(t.EQUAL, i.level, 255);
                        }
                    },
                    snapshot: function(t, e, i) {
                        return this.snapshotArea(0, 0, this.gl.drawingBufferWidth, this.gl.drawingBufferHeight, t, e, i);
                    },
                    snapshotArea: function(t, e, i, s, n, r, o) {
                        var a = this.snapshotState;
                        return a.callback = n, a.type = r, a.encoder = o, a.getPixel = !1, a.x = t, a.y = e, a.width = i, a.height = s, this;
                    },
                    snapshotPixel: function(t, e, i) {
                        return this.snapshotArea(t, e, 1, 1, i), this.snapshotState.getPixel = !0, this;
                    },
                    snapshotFramebuffer: function(t, e, i, s, n, r, o, a, h, l, u) {
                        void 0 === n && (n = !1), void 0 === r && (r = 0), void 0 === o && (o = 0), void 0 === a && (a = e), void 0 === h && (h = i), "pixel" === l && (n = !0, l = "image/png");
                        var c = this.currentFramebuffer;
                        this.snapshotArea(r, o, a, h, s, l, u);
                        var d = this.snapshotState;
                        return d.getPixel = n, d.isFramebuffer = !0, d.bufferWidth = e, d.bufferHeight = i, d.width = Math.min(d.width, e), d.height = Math.min(d.height, i), this.setFramebuffer(t), m(this.gl, d), this.setFramebuffer(c), d.callback = null, d.isFramebuffer = !1, this;
                    },
                    canvasToTexture: function(t, e, i, s) {
                        return void 0 === i && (i = !1), void 0 === s && (s = !1), e ? this.updateCanvasTexture(t, e, s) : this.createCanvasTexture(t, i, s);
                    },
                    createCanvasTexture: function(t, e, i) {
                        void 0 === e && (e = !1), void 0 === i && (i = !1);
                        var s = this.gl, n = s.NEAREST, r = s.NEAREST, o = t.width, a = t.height, h = s.CLAMP_TO_EDGE, u = l(o, a);
                        return !e && u && (h = s.REPEAT), this.config.antialias && (n = u && this.mipmapFilter ? this.mipmapFilter : s.LINEAR, r = s.LINEAR), this.createTexture2D(0, n, r, h, h, s.RGBA, t, o, a, !0, !1, i);
                    },
                    updateCanvasTexture: function(t, e, i) {
                        void 0 === i && (i = !1);
                        var s = this.gl, n = t.width, r = t.height;
                        if (n > 0 && r > 0) {
                            s.activeTexture(s.TEXTURE0);
                            var o = s.getParameter(s.TEXTURE_BINDING_2D);
                            s.bindTexture(s.TEXTURE_2D, e), i && s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL, !0), s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !0), s.texImage2D(s.TEXTURE_2D, 0, s.RGBA, s.RGBA, s.UNSIGNED_BYTE, t), e.width = n, e.height = r, o && s.bindTexture(s.TEXTURE_2D, o);
                        }
                        return e;
                    },
                    createVideoTexture: function(t, e, i) {
                        void 0 === e && (e = !1), void 0 === i && (i = !1);
                        var s = this.gl, n = s.NEAREST, r = s.NEAREST, o = t.videoWidth, a = t.videoHeight, h = s.CLAMP_TO_EDGE, u = l(o, a);
                        return !e && u && (h = s.REPEAT), this.config.antialias && (n = u && this.mipmapFilter ? this.mipmapFilter : s.LINEAR, r = s.LINEAR), this.createTexture2D(0, n, r, h, h, s.RGBA, t, o, a, !0, !0, i);
                    },
                    updateVideoTexture: function(t, e, i) {
                        void 0 === i && (i = !1);
                        var s = this.gl, n = t.videoWidth, r = t.videoHeight;
                        if (n > 0 && r > 0) {
                            s.activeTexture(s.TEXTURE0);
                            var o = s.getParameter(s.TEXTURE_BINDING_2D);
                            s.bindTexture(s.TEXTURE_2D, e), s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL, i), s.texImage2D(s.TEXTURE_2D, 0, s.RGBA, s.RGBA, s.UNSIGNED_BYTE, t), e.width = n, e.height = r, o && s.bindTexture(s.TEXTURE_2D, o);
                        }
                        return e;
                    },
                    setTextureFilter: function(t, e) {
                        var i = this.gl, s = [
                            i.LINEAR,
                            i.NEAREST
                        ][e];
                        i.activeTexture(i.TEXTURE0);
                        var n = i.getParameter(i.TEXTURE_BINDING_2D);
                        return i.bindTexture(i.TEXTURE_2D, t), i.texParameteri(i.TEXTURE_2D, i.TEXTURE_MIN_FILTER, s), i.texParameteri(i.TEXTURE_2D, i.TEXTURE_MAG_FILTER, s), n && i.bindTexture(i.TEXTURE_2D, n), this;
                    },
                    getMaxTextureSize: function() {
                        return this.config.maxTextureSize;
                    },
                    destroy: function() {
                        this.canvas.removeEventListener("webglcontextlost", this.contextLostHandler, !1), this.maskTarget.destroy(), this.maskSource.destroy(), this.pipelines.destroy(), this.removeAllListeners(), this.fboStack = [], this.maskStack = [], this.extensions = {}, this.textureIndexes = [], this.gl = null, this.game = null, this.canvas = null, this.contextLost = !0, this.currentMask = null, this.currentCameraMask = null;
                    }
                });
                t.exports = x;
            },
            71305: (t, e, i)=>{
                var s = i(56694), n = i(72632), r = i(71402), o = new s({
                    initialize: function(t, e, i, s, n) {
                        this.pipeline = t, this.name = e, this.renderer = t.renderer, this.gl = this.renderer.gl, this.fragSrc = s, this.vertSrc = i, this.program = this.renderer.createProgram(i, s), this.attributes, this.vertexComponentCount = 0, this.vertexSize = 0, this.uniforms = {}, this.createAttributes(n), this.createUniforms();
                    },
                    createAttributes: function(t) {
                        var e = 0, i = 0, s = [];
                        this.vertexComponentCount = 0;
                        for(var o = 0; o < t.length; o++){
                            var a = t[o], h = a.name, l = n(a, "size", 1), u = n(a, "type", r.FLOAT), c = u.enum, d = u.size, f = !!a.normalized;
                            s.push({
                                name: h,
                                size: l,
                                type: c,
                                normalized: f,
                                offset: i,
                                enabled: !1,
                                location: -1
                            }), 4 === d ? e += l : e++, i += l * d;
                        }
                        this.vertexSize = i, this.vertexComponentCount = e, this.attributes = s;
                    },
                    bind: function(t, e) {
                        return void 0 === t && (t = !1), void 0 === e && (e = !1), e && this.pipeline.flush(), this.renderer.setProgram(this.program), t && this.setAttribPointers(), this;
                    },
                    rebind: function() {
                        return this.renderer.setProgram(this.program), this.setAttribPointers(!0), this;
                    },
                    setAttribPointers: function(t) {
                        void 0 === t && (t = !1);
                        for(var e = this.gl, i = this.vertexSize, s = this.attributes, n = this.program, r = 0; r < s.length; r++){
                            var o = s[r], a = o.size, h = o.type, l = o.offset, u = o.enabled, c = o.location, d = !!o.normalized;
                            if (t) {
                                var f = e.getAttribLocation(n, o.name);
                                f >= 0 ? (e.enableVertexAttribArray(f), e.vertexAttribPointer(f, a, h, d, i, l), o.enabled = !0, o.location = f) : -1 !== f && e.disableVertexAttribArray(f);
                            } else u ? e.vertexAttribPointer(c, a, h, d, i, l) : !u && c > -1 && (e.disableVertexAttribArray(c), o.location = -1);
                        }
                        return this;
                    },
                    createUniforms: function() {
                        var t, e, i, s = this.gl, n = this.program, r = this.uniforms, o = s.getProgramParameter(n, s.ACTIVE_UNIFORMS);
                        for(t = 0; t < o; t++){
                            var a = s.getActiveUniform(n, t);
                            if (a) {
                                e = a.name, null !== (i = s.getUniformLocation(n, e)) && (r[e] = {
                                    name: e,
                                    location: i,
                                    value1: null,
                                    value2: null,
                                    value3: null,
                                    value4: null
                                });
                                var h = e.indexOf("[");
                                h > 0 && (e = e.substr(0, h), r.hasOwnProperty(e) || null !== (i = s.getUniformLocation(n, e)) && (r[e] = {
                                    name: e,
                                    location: i,
                                    value1: null,
                                    value2: null,
                                    value3: null,
                                    value4: null
                                }));
                            }
                        }
                        return this;
                    },
                    hasUniform: function(t) {
                        return this.uniforms.hasOwnProperty(t);
                    },
                    resetUniform: function(t) {
                        var e = this.uniforms[t];
                        return e && (e.value1 = null, e.value2 = null, e.value3 = null, e.value4 = null), this;
                    },
                    setUniform1: function(t, e, i, s) {
                        var n = this.uniforms[e];
                        return n ? ((s || n.value1 !== i) && (n.value1 = i, this.renderer.setProgram(this.program), t.call(this.gl, n.location, i), this.pipeline.currentShader = this), this) : this;
                    },
                    setUniform2: function(t, e, i, s, n) {
                        var r = this.uniforms[e];
                        return r ? ((n || r.value1 !== i || r.value2 !== s) && (r.value1 = i, r.value2 = s, this.renderer.setProgram(this.program), t.call(this.gl, r.location, i, s), this.pipeline.currentShader = this), this) : this;
                    },
                    setUniform3: function(t, e, i, s, n, r) {
                        var o = this.uniforms[e];
                        return o ? ((r || o.value1 !== i || o.value2 !== s || o.value3 !== n) && (o.value1 = i, o.value2 = s, o.value3 = n, this.renderer.setProgram(this.program), t.call(this.gl, o.location, i, s, n), this.pipeline.currentShader = this), this) : this;
                    },
                    setUniform4: function(t, e, i, s, n, r, o) {
                        var a = this.uniforms[e];
                        return a ? ((o || a.value1 !== i || a.value2 !== s || a.value3 !== n || a.value4 !== r) && (a.value1 = i, a.value2 = s, a.value3 = n, a.value4 = r, this.renderer.setProgram(this.program), t.call(this.gl, a.location, i, s, n, r), this.pipeline.currentShader = this), this) : this;
                    },
                    setBoolean: function(t, e) {
                        return this.setUniform1(this.gl.uniform1i, t, Number(e));
                    },
                    set1f: function(t, e) {
                        return this.setUniform1(this.gl.uniform1f, t, e);
                    },
                    set2f: function(t, e, i) {
                        return this.setUniform2(this.gl.uniform2f, t, e, i);
                    },
                    set3f: function(t, e, i, s) {
                        return this.setUniform3(this.gl.uniform3f, t, e, i, s);
                    },
                    set4f: function(t, e, i, s, n) {
                        return this.setUniform4(this.gl.uniform4f, t, e, i, s, n);
                    },
                    set1fv: function(t, e) {
                        return this.setUniform1(this.gl.uniform1fv, t, e, !0);
                    },
                    set2fv: function(t, e) {
                        return this.setUniform1(this.gl.uniform2fv, t, e, !0);
                    },
                    set3fv: function(t, e) {
                        return this.setUniform1(this.gl.uniform3fv, t, e, !0);
                    },
                    set4fv: function(t, e) {
                        return this.setUniform1(this.gl.uniform4fv, t, e, !0);
                    },
                    set1iv: function(t, e) {
                        return this.setUniform1(this.gl.uniform1iv, t, e, !0);
                    },
                    set2iv: function(t, e) {
                        return this.setUniform1(this.gl.uniform2iv, t, e, !0);
                    },
                    set3iv: function(t, e) {
                        return this.setUniform1(this.gl.uniform3iv, t, e, !0);
                    },
                    set4iv: function(t, e) {
                        return this.setUniform1(this.gl.uniform4iv, t, e, !0);
                    },
                    set1i: function(t, e) {
                        return this.setUniform1(this.gl.uniform1i, t, e);
                    },
                    set2i: function(t, e, i) {
                        return this.setUniform2(this.gl.uniform2i, t, e, i);
                    },
                    set3i: function(t, e, i, s) {
                        return this.setUniform3(this.gl.uniform3i, t, e, i, s);
                    },
                    set4i: function(t, e, i, s, n) {
                        return this.setUniform4(this.gl.uniform4i, t, e, i, s, n);
                    },
                    setMatrix2fv: function(t, e, i) {
                        return this.setUniform2(this.gl.uniformMatrix2fv, t, e, i, !0);
                    },
                    setMatrix3fv: function(t, e, i) {
                        return this.setUniform2(this.gl.uniformMatrix3fv, t, e, i, !0);
                    },
                    setMatrix4fv: function(t, e, i) {
                        return this.setUniform2(this.gl.uniformMatrix4fv, t, e, i, !0);
                    },
                    createProgram: function(t, e) {
                        void 0 === t && (t = this.vertSrc), void 0 === e && (e = this.fragSrc);
                        var i = this.gl;
                        return this.program && i.deleteProgram(this.program), this.vertSrc = t, this.fragSrc = e, this.program = this.renderer.createProgram(t, e), this.createUniforms(), this.rebind();
                    },
                    destroy: function() {
                        this.gl.deleteProgram(this.program), this.pipeline = null, this.renderer = null, this.gl = null, this.program = null, this.attributes = null, this.uniforms = null;
                    }
                });
                t.exports = o;
            },
            71402: (t)=>{
                t.exports = {
                    BYTE: {
                        enum: 5120,
                        size: 1
                    },
                    UNSIGNED_BYTE: {
                        enum: 5121,
                        size: 1
                    },
                    SHORT: {
                        enum: 5122,
                        size: 2
                    },
                    UNSIGNED_SHORT: {
                        enum: 5123,
                        size: 2
                    },
                    INT: {
                        enum: 5124,
                        size: 4
                    },
                    UNSIGNED_INT: {
                        enum: 5125,
                        size: 4
                    },
                    FLOAT: {
                        enum: 5126,
                        size: 4
                    }
                };
            },
            55478: (t, e, i)=>{
                var s = i(71402), n = i(98611), r = {
                    PipelineManager: i(35217),
                    Pipelines: i(62253),
                    RenderTarget: i(37410),
                    Utils: i(75512),
                    WebGLPipeline: i(44775),
                    WebGLRenderer: i(11857),
                    WebGLShader: i(71305)
                };
                r = n(!1, r, s), t.exports = r;
            },
            5583: (t, e, i)=>{
                var s = i(56694), n = i(72632), r = i(91679), o = i(89053), a = i(71402), h = i(44775), l = new s({
                    Extends: h,
                    initialize: function(t) {
                        t.fragShader = n(t, "fragShader", r), t.vertShader = n(t, "vertShader", o), t.batchSize = n(t, "batchSize", 1), t.vertices = n(t, "vertices", [
                            -1,
                            1,
                            -1,
                            -7,
                            7,
                            1
                        ]), t.attributes = n(t, "attributes", [
                            {
                                name: "inPosition",
                                size: 2,
                                type: a.FLOAT
                            }
                        ]), h.call(this, t);
                    },
                    boot: function() {
                        h.prototype.boot.call(this), this.set1i("uMainSampler", 0), this.set1i("uMaskSampler", 1);
                    },
                    resize: function(t, e) {
                        h.prototype.resize.call(this, t, e), this.set2f("uResolution", t, e);
                    },
                    beginMask: function(t, e, i) {
                        this.renderer.beginBitmapMask(t, i);
                    },
                    endMask: function(t, e, i) {
                        var s = this.gl, n = this.renderer, r = t.bitmapMask;
                        r && s && (n.drawBitmapMask(r, e, this), i && this.set2f("uResolution", i.width, i.height), this.set1i("uInvertMaskAlpha", t.invertAlpha), s.drawArrays(this.topology, 0, 3), i && this.set2f("uResolution", this.width, this.height), s.bindTexture(s.TEXTURE_2D, null));
                    }
                });
                t.exports = l;
            },
            81828: (t, e, i)=>{
                var s = i(56694), n = i(58136), r = i(47406), o = i(72632), a = i(87228), h = i(92462), l = i(75512), u = new s({
                    Extends: a,
                    initialize: function(t) {
                        t.shaders = [
                            l.setGlowQuality(h.FXGlowFrag, t.game),
                            h.FXShadowFrag,
                            h.FXPixelateFrag,
                            h.FXVignetteFrag,
                            h.FXShineFrag,
                            h.FXBlurLowFrag,
                            h.FXBlurMedFrag,
                            h.FXBlurHighFrag,
                            h.FXGradientFrag,
                            h.FXBloomFrag,
                            h.ColorMatrixFrag,
                            h.FXCircleFrag,
                            h.FXBarrelFrag,
                            h.FXDisplacementFrag,
                            h.FXWipeFrag,
                            h.FXBokehFrag
                        ], a.call(this, t);
                        var e = this.game;
                        this.glow = new n.Glow(e), this.shadow = new n.Shadow(e), this.pixelate = new n.Pixelate(e), this.vignette = new n.Vignette(e), this.shine = new n.Shine(e), this.gradient = new n.Gradient(e), this.circle = new n.Circle(e), this.barrel = new n.Barrel(e), this.wipe = new n.Wipe(e), this.bokeh = new n.Bokeh(e);
                        var i = [];
                        i[r.GLOW] = this.onGlow, i[r.SHADOW] = this.onShadow, i[r.PIXELATE] = this.onPixelate, i[r.VIGNETTE] = this.onVignette, i[r.SHINE] = this.onShine, i[r.BLUR] = this.onBlur, i[r.GRADIENT] = this.onGradient, i[r.BLOOM] = this.onBloom, i[r.COLOR_MATRIX] = this.onColorMatrix, i[r.CIRCLE] = this.onCircle, i[r.BARREL] = this.onBarrel, i[r.DISPLACEMENT] = this.onDisplacement, i[r.WIPE] = this.onWipe, i[r.BOKEH] = this.onBokeh, this.fxHandlers = i, this.source, this.target, this.swap;
                    },
                    onDraw: function(t, e, i) {
                        this.source = t, this.target = e, this.swap = i;
                        var s = t.width, n = t.height, r = this.tempSprite, o = this.fxHandlers;
                        if (r && r.preFX) for(var a = r.preFX.list, h = 0; h < a.length; h++){
                            var l = a[h];
                            l.active && o[l.type].call(this, l, s, n);
                        }
                        this.drawToGame(this.source);
                    },
                    runDraw: function() {
                        var t = this.source, e = this.target;
                        this.copy(t, e), this.source = e, this.target = t;
                    },
                    onGlow: function(t, e, i) {
                        var s = this.shaders[r.GLOW];
                        this.setShader(s), this.glow.onPreRender(t, s, e, i), this.runDraw();
                    },
                    onShadow: function(t) {
                        var e = this.shaders[r.SHADOW];
                        this.setShader(e), this.shadow.onPreRender(t, e), this.runDraw();
                    },
                    onPixelate: function(t, e, i) {
                        var s = this.shaders[r.PIXELATE];
                        this.setShader(s), this.pixelate.onPreRender(t, s, e, i), this.runDraw();
                    },
                    onVignette: function(t) {
                        var e = this.shaders[r.VIGNETTE];
                        this.setShader(e), this.vignette.onPreRender(t, e), this.runDraw();
                    },
                    onShine: function(t, e, i) {
                        var s = this.shaders[r.SHINE];
                        this.setShader(s), this.shine.onPreRender(t, s, e, i), this.runDraw();
                    },
                    onBlur: function(t, e, i) {
                        var s = o(t, "quality"), n = this.shaders[r.BLUR + s];
                        this.setShader(n), this.set1i("uMainSampler", 0), this.set2f("resolution", e, i), this.set1f("strength", o(t, "strength")), this.set3fv("color", o(t, "glcolor"));
                        for(var a = o(t, "x"), h = o(t, "y"), l = o(t, "steps"), u = 0; u < l; u++)this.set2f("offset", a, 0), this.runDraw(), this.set2f("offset", 0, h), this.runDraw();
                    },
                    onGradient: function(t) {
                        var e = this.shaders[r.GRADIENT];
                        this.setShader(e), this.gradient.onPreRender(t, e), this.runDraw();
                    },
                    onBloom: function(t, e, i) {
                        var s = this.shaders[r.BLOOM];
                        this.copySprite(this.source, this.swap), this.setShader(s), this.set1i("uMainSampler", 0), this.set1f("strength", o(t, "blurStrength")), this.set3fv("color", o(t, "glcolor"));
                        for(var n = 2 / e * o(t, "offsetX"), a = 2 / i * o(t, "offsetY"), h = o(t, "steps"), l = 0; l < h; l++)this.set2f("offset", n, 0), this.runDraw(), this.set2f("offset", 0, a), this.runDraw();
                        this.blendFrames(this.swap, this.source, this.target, o(t, "strength")), this.copySprite(this.target, this.source);
                    },
                    onColorMatrix: function(t) {
                        this.setShader(this.colorMatrixShader), this.set1fv("uColorMatrix", t.getData()), this.set1f("uAlpha", t.alpha), this.runDraw();
                    },
                    onCircle: function(t, e, i) {
                        var s = this.shaders[r.CIRCLE];
                        this.setShader(s), this.circle.onPreRender(t, s, e, i), this.runDraw();
                    },
                    onBarrel: function(t) {
                        var e = this.shaders[r.BARREL];
                        this.setShader(e), this.barrel.onPreRender(t, e), this.runDraw();
                    },
                    onDisplacement: function(t) {
                        this.setShader(this.shaders[r.DISPLACEMENT]), this.set1i("uDisplacementSampler", 1), this.set2f("amount", t.x, t.y), this.bindTexture(t.glTexture, 1), this.runDraw();
                    },
                    onWipe: function(t) {
                        var e = this.shaders[r.WIPE];
                        this.setShader(e), this.wipe.onPreRender(t, e), this.runDraw();
                    },
                    onBokeh: function(t, e, i) {
                        var s = this.shaders[r.BOKEH];
                        this.setShader(s), this.bokeh.onPreRender(t, s, e, i), this.runDraw();
                    },
                    destroy: function() {
                        return this.glow.destroy(), this.shadow.destroy(), this.pixelate.destroy(), this.vignette.destroy(), this.shine.destroy(), this.gradient.destroy(), this.circle.destroy(), this.barrel.destroy(), this.wipe.destroy(), this.bokeh.destroy(), this.fxHandlers = null, this.source = null, this.target = null, this.swap = null, a.prototype.destroy.call(this), this;
                    }
                });
                t.exports = u;
            },
            66901: (t, e, i)=>{
                var s = i(56694), n = i(72632), r = i(65045), o = i(77310), a = i(69360), h = i(93736), l = i(44775), u = new s({
                    Extends: o,
                    initialize: function(t) {
                        var e = n(t, "fragShader", r);
                        t.fragShader = e.replace("%LIGHT_COUNT%", t.game.renderer.config.maxLights), o.call(this, t), this.inverseRotationMatrix = new Float32Array([
                            1,
                            0,
                            0,
                            0,
                            1,
                            0,
                            0,
                            0,
                            1
                        ]), this.defaultNormalMap, this.currentNormalMap, this.lightsActive = !0, this.tempVec2 = new h, this._tempMatrix = new a, this._tempMatrix2 = new a;
                    },
                    boot: function() {
                        l.prototype.boot.call(this);
                        var t = this.gl, e = t.createTexture();
                        t.activeTexture(t.TEXTURE0), t.bindTexture(t.TEXTURE_2D, e), t.texImage2D(t.TEXTURE_2D, 0, t.RGBA, 1, 1, 0, t.RGBA, t.UNSIGNED_BYTE, new Uint8Array([
                            127,
                            127,
                            255,
                            255
                        ])), this.defaultNormalMap = {
                            glTexture: e
                        };
                    },
                    onRender: function(t, e) {
                        var i = t.sys.lights;
                        if (this.lightsActive = !1, i && i.active) {
                            var s, n = i.getLights(e), r = n.length;
                            this.lightsActive = !0;
                            var o = this.renderer.height, a = e.matrix, h = this.tempVec2;
                            for(this.set1i("uMainSampler", 0), this.set1i("uNormSampler", 1), this.set2f("uResolution", this.width / 2, this.height / 2), this.set4f("uCamera", e.x, e.y, e.rotation, e.zoom), this.set3f("uAmbientLightColor", i.ambientColor.r, i.ambientColor.g, i.ambientColor.b), this.set1i("uLightCount", r), s = 0; s < r; s++){
                                var l = n[s].light, u = l.color, c = "uLights[" + s + "].";
                                a.transformPoint(l.x, l.y, h), this.set2f(c + "position", h.x - e.scrollX * l.scrollFactorX * e.zoom, o - (h.y - e.scrollY * l.scrollFactorY * e.zoom)), this.set3f(c + "color", u.r, u.g, u.b), this.set1f(c + "intensity", l.intensity), this.set1f(c + "radius", l.radius);
                            }
                            this.currentNormalMapRotation = null;
                        }
                    },
                    setNormalMapRotation: function(t) {
                        if (t !== this.currentNormalMapRotation || 0 === this.vertexCount) {
                            this.vertexCount > 0 && this.flush();
                            var e = this.inverseRotationMatrix;
                            if (t) {
                                var i = -t, s = Math.cos(i), n = Math.sin(i);
                                e[1] = n, e[3] = -n, e[0] = e[4] = s;
                            } else e[0] = e[4] = 1, e[1] = e[3] = 0;
                            this.setMatrix3fv("uInverseRotationMatrix", !1, e), this.currentNormalMapRotation = t;
                        }
                    },
                    setTexture2D: function(t, e) {
                        var i = this.renderer;
                        void 0 === t && (t = i.whiteTexture);
                        var s = this.getNormalMap(e);
                        this.isNewNormalMap(t, s) && (this.flush(), this.createBatch(t), this.addTextureToBatch(s), this.currentNormalMap = s);
                        var n = 0;
                        e && e.parentContainer ? n = e.getWorldTransformMatrix(this._tempMatrix, this._tempMatrix2).rotationNormalized : e && (n = e.rotation);
                        return this.setNormalMapRotation(n), 0;
                    },
                    setGameObject: function(t, e) {
                        void 0 === e && (e = t.frame);
                        var i = e.glTexture, s = this.getNormalMap(t);
                        if (this.isNewNormalMap(i, s) && (this.flush(), this.createBatch(i), this.addTextureToBatch(s), this.currentNormalMap = s), t.parentContainer) {
                            var n = t.getWorldTransformMatrix(this._tempMatrix, this._tempMatrix2);
                            this.setNormalMapRotation(n.rotationNormalized);
                        } else this.setNormalMapRotation(t.rotation);
                        return 0;
                    },
                    isNewNormalMap: function(t, e) {
                        return this.currentTexture !== t || this.currentNormalMap !== e;
                    },
                    getNormalMap: function(t) {
                        var e;
                        return t ? t.displayTexture ? e = t.displayTexture.dataSource[t.displayFrame.sourceIndex] : t.texture ? e = t.texture.dataSource[t.frame.sourceIndex] : t.tileset && (e = Array.isArray(t.tileset) ? t.tileset[0].image.dataSource[0] : t.tileset.image.dataSource[0]) : e = this.defaultNormalMap, e || (e = this.defaultNormalMap), e.glTexture;
                    },
                    batchSprite: function(t, e, i) {
                        this.lightsActive && o.prototype.batchSprite.call(this, t, e, i);
                    },
                    batchTexture: function(t, e, i, s, n, r, a, h, l, u, c, d, f, p, v, g, m, y, x, T, w, b, S, E, A, C, _, M, P, R, O, L) {
                        this.lightsActive && o.prototype.batchTexture.call(this, t, e, i, s, n, r, a, h, l, u, c, d, f, p, v, g, m, y, x, T, w, b, S, E, A, C, _, M, P, R, O, L);
                    },
                    batchTextureFrame: function(t, e, i, s, n, r, a) {
                        this.lightsActive && o.prototype.batchTextureFrame.call(this, t, e, i, s, n, r, a);
                    }
                });
                t.exports = u;
            },
            71264: (t, e, i)=>{
                var s = i(56694), n = i(72632), r = i(77310), o = i(85060), a = i(18166), h = i(71402), l = i(44775), u = new s({
                    Extends: r,
                    initialize: function(t) {
                        t.fragShader = n(t, "fragShader", o), t.vertShader = n(t, "vertShader", a), t.attributes = n(t, "attributes", [
                            {
                                name: "inPosition",
                                size: 2
                            },
                            {
                                name: "inTexCoord",
                                size: 2
                            },
                            {
                                name: "inTexId"
                            },
                            {
                                name: "inTintEffect"
                            },
                            {
                                name: "inTint",
                                size: 4,
                                type: h.UNSIGNED_BYTE,
                                normalized: !0
                            }
                        ]), t.forceZero = !0, r.call(this, t);
                    },
                    boot: function() {
                        l.prototype.boot.call(this), this.set1i("uMainSampler", 0);
                    }
                });
                t.exports = u;
            },
            77310: (t, e, i)=>{
                var s = i(56694), n = i(11117), r = i(72632), o = i(53787), a = i(15968), h = i(69360), l = i(75512), u = i(71402), c = i(44775), d = new s({
                    Extends: c,
                    initialize: function(t) {
                        var e = t.game.renderer, i = r(t, "fragShader", o);
                        t.fragShader = l.parseFragmentShaderMaxTextures(i, e.maxTextures), t.vertShader = r(t, "vertShader", a), t.attributes = r(t, "attributes", [
                            {
                                name: "inPosition",
                                size: 2
                            },
                            {
                                name: "inTexCoord",
                                size: 2
                            },
                            {
                                name: "inTexId"
                            },
                            {
                                name: "inTintEffect"
                            },
                            {
                                name: "inTint",
                                size: 4,
                                type: u.UNSIGNED_BYTE,
                                normalized: !0
                            }
                        ]), c.call(this, t), this._tempMatrix1 = new h, this._tempMatrix2 = new h, this._tempMatrix3 = new h, this.calcMatrix = new h, this.tempTriangle = [
                            {
                                x: 0,
                                y: 0,
                                width: 0
                            },
                            {
                                x: 0,
                                y: 0,
                                width: 0
                            },
                            {
                                x: 0,
                                y: 0,
                                width: 0
                            },
                            {
                                x: 0,
                                y: 0,
                                width: 0
                            }
                        ], this.strokeTint = {
                            TL: 0,
                            TR: 0,
                            BL: 0,
                            BR: 0
                        }, this.fillTint = {
                            TL: 0,
                            TR: 0,
                            BL: 0,
                            BR: 0
                        }, this.currentFrame = {
                            u0: 0,
                            v0: 0,
                            u1: 1,
                            v1: 1
                        }, this.firstQuad = [
                            0,
                            0,
                            0,
                            0,
                            0
                        ], this.prevQuad = [
                            0,
                            0,
                            0,
                            0,
                            0
                        ], this.polygonCache = [];
                    },
                    boot: function() {
                        c.prototype.boot.call(this), this.currentShader.set1iv("uMainSampler", this.renderer.textureIndexes);
                    },
                    batchSprite: function(t, e, i) {
                        this.manager.set(this, t);
                        var s = this._tempMatrix1, n = this._tempMatrix2, r = this._tempMatrix3, o = t.frame, a = o.glTexture, h = o.u0, u = o.v0, c = o.u1, d = o.v1, f = o.x, p = o.y, v = o.cutWidth, g = o.cutHeight, m = o.customPivot, y = t.displayOriginX, x = t.displayOriginY, T = -y + f, w = -x + p;
                        if (t.isCropped) {
                            var b = t._crop;
                            b.flipX === t.flipX && b.flipY === t.flipY || o.updateCropUVs(b, t.flipX, t.flipY), h = b.u0, u = b.v0, c = b.u1, d = b.v1, v = b.width, g = b.height, T = -y + (f = b.x), w = -x + (p = b.y);
                        }
                        var S = 1, E = 1;
                        t.flipX && (m || (T += -o.realWidth + 2 * y), S = -1), (t.flipY || o.source.isGLTexture && !a.flipY) && (m || (w += -o.realHeight + 2 * x), E = -1);
                        var A = t.x, C = t.y;
                        n.applyITRS(A, C, t.rotation, t.scaleX * S, t.scaleY * E), s.copyFrom(e.matrix), i ? (s.multiplyWithOffset(i, -e.scrollX * t.scrollFactorX, -e.scrollY * t.scrollFactorY), n.e = A, n.f = C) : (n.e -= e.scrollX * t.scrollFactorX, n.f -= e.scrollY * t.scrollFactorY), s.multiply(n, r);
                        var _ = r.setQuad(T, w, T + v, w + g, e.roundPixels), M = l.getTintAppendFloatAlpha, P = e.alpha, R = M(t.tintTopLeft, P * t._alphaTL), O = M(t.tintTopRight, P * t._alphaTR), L = M(t.tintBottomLeft, P * t._alphaBL), F = M(t.tintBottomRight, P * t._alphaBR);
                        this.shouldFlush(6) && this.flush();
                        var D = this.setGameObject(t, o);
                        this.manager.preBatch(t), this.batchQuad(t, _[0], _[1], _[2], _[3], _[4], _[5], _[6], _[7], h, u, c, d, R, O, L, F, t.tintFill, a, D), this.manager.postBatch(t);
                    },
                    batchTexture: function(t, e, i, s, n, r, o, a, h, l, u, c, d, f, p, v, g, m, y, x, T, w, b, S, E, A, C, _, M, P, R, O) {
                        this.manager.set(this, t);
                        var L = this._tempMatrix1, F = this._tempMatrix2, D = this._tempMatrix3, I = m / i + C, k = y / s + _, B = (m + x) / i + C, N = (y + T) / s + _, X = o, U = a, Y = -v, z = -g;
                        if (t.isCropped) {
                            var G = t._crop, V = G.width, W = G.height;
                            X = V, U = W, o = V, a = W;
                            var H = m = G.x, j = y = G.y;
                            c && (H = x - G.x - V), d && (j = T - G.y - W), I = H / i + C, k = j / s + _, B = (H + V) / i + C, N = (j + W) / s + _, Y = -v + m, z = -g + y;
                        }
                        c && (X *= -1, Y += o), (d ^= !R && e.isRenderTexture ? 1 : 0) && (U *= -1, z += a), F.applyITRS(n, r, u, h, l), L.copyFrom(M.matrix), P ? (L.multiplyWithOffset(P, -M.scrollX * f, -M.scrollY * p), F.e = n, F.f = r) : (F.e -= M.scrollX * f, F.f -= M.scrollY * p), L.multiply(F, D);
                        var q = D.setQuad(Y, z, Y + X, z + U, M.roundPixels);
                        void 0 === O && (O = this.setTexture2D(e)), t && this.manager.preBatch(t), this.batchQuad(t, q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], I, k, B, N, w, b, S, E, A, e, O), t && this.manager.postBatch(t);
                    },
                    batchTextureFrame: function(t, e, i, s, n, r, o) {
                        this.manager.set(this);
                        var a = this._tempMatrix1.copyFrom(r), h = this._tempMatrix2;
                        o ? a.multiply(o, h) : h = a;
                        var u = h.setQuad(e, i, e + t.width, i + t.height, !1), c = this.setTexture2D(t.source.glTexture);
                        s = l.getTintAppendFloatAlpha(s, n), this.batchQuad(null, u[0], u[1], u[2], u[3], u[4], u[5], u[6], u[7], t.u0, t.v0, t.u1, t.v1, s, s, s, s, 0, t.glTexture, c);
                    },
                    batchFillRect: function(t, e, i, s, n, r) {
                        this.renderer.pipelines.set(this);
                        var o = this.calcMatrix;
                        r && r.multiply(n, o);
                        var a = o.setQuad(t, e, t + i, e + s, !1), h = this.fillTint;
                        this.batchQuad(null, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], 0, 0, 1, 1, h.TL, h.TR, h.BL, h.BR, 2);
                    },
                    batchFillTriangle: function(t, e, i, s, n, r, o, a) {
                        this.renderer.pipelines.set(this);
                        var h = this.calcMatrix;
                        a && a.multiply(o, h);
                        var l = h.getX(t, e), u = h.getY(t, e), c = h.getX(i, s), d = h.getY(i, s), f = h.getX(n, r), p = h.getY(n, r), v = this.fillTint;
                        this.batchTri(null, l, u, c, d, f, p, 0, 0, 1, 1, v.TL, v.TR, v.BL, 2);
                    },
                    batchStrokeTriangle: function(t, e, i, s, n, r, o, a, h) {
                        var l = this.tempTriangle;
                        l[0].x = t, l[0].y = e, l[0].width = o, l[1].x = i, l[1].y = s, l[1].width = o, l[2].x = n, l[2].y = r, l[2].width = o, l[3].x = t, l[3].y = e, l[3].width = o, this.batchStrokePath(l, o, !1, a, h);
                    },
                    batchFillPath: function(t, e, i) {
                        this.renderer.pipelines.set(this);
                        var s = this.calcMatrix;
                        i && i.multiply(e, s);
                        for(var r, o, a = t.length, h = this.polygonCache, l = this.fillTint.TL, u = this.fillTint.TR, c = this.fillTint.BL, d = 0; d < a; ++d)o = t[d], h.push(o.x, o.y);
                        a = (r = n(h)).length;
                        for(var f = 0; f < a; f += 3){
                            var p = 2 * r[f + 0], v = 2 * r[f + 1], g = 2 * r[f + 2], m = h[p + 0], y = h[p + 1], x = h[v + 0], T = h[v + 1], w = h[g + 0], b = h[g + 1], S = s.getX(m, y), E = s.getY(m, y), A = s.getX(x, T), C = s.getY(x, T), _ = s.getX(w, b), M = s.getY(w, b);
                            this.batchTri(null, S, E, A, C, _, M, 0, 0, 1, 1, l, u, c, 2);
                        }
                        h.length = 0;
                    },
                    batchStrokePath: function(t, e, i, s, n) {
                        this.renderer.pipelines.set(this), this.prevQuad[4] = 0, this.firstQuad[4] = 0;
                        for(var r = t.length - 1, o = 0; o < r; o++){
                            var a = t[o], h = t[o + 1];
                            this.batchLine(a.x, a.y, h.x, h.y, a.width / 2, h.width / 2, e, o, !i && o === r - 1, s, n);
                        }
                    },
                    batchLine: function(t, e, i, s, n, r, o, a, h, l, u) {
                        this.renderer.pipelines.set(this);
                        var c = this.calcMatrix;
                        u && u.multiply(l, c);
                        var d = i - t, f = s - e, p = Math.sqrt(d * d + f * f);
                        if (0 !== p) {
                            var v = n * (s - e) / p, g = n * (t - i) / p, m = r * (s - e) / p, y = r * (t - i) / p, x = i - m, T = s - y, w = t - v, b = e - g, S = i + m, E = s + y, A = t + v, C = e + g, _ = c.getX(x, T), M = c.getY(x, T), P = c.getX(w, b), R = c.getY(w, b), O = c.getX(S, E), L = c.getY(S, E), F = c.getX(A, C), D = c.getY(A, C), I = this.strokeTint, k = I.TL, B = I.TR, N = I.BL, X = I.BR;
                            if (this.batchQuad(null, F, D, P, R, _, M, O, L, 0, 0, 1, 1, k, B, N, X, 2), !(o <= 2)) {
                                var U = this.prevQuad, Y = this.firstQuad;
                                a > 0 && U[4] ? this.batchQuad(null, F, D, P, R, U[0], U[1], U[2], U[3], 0, 0, 1, 1, k, B, N, X, 2) : (Y[0] = F, Y[1] = D, Y[2] = P, Y[3] = R, Y[4] = 1), h && Y[4] ? this.batchQuad(null, _, M, O, L, Y[0], Y[1], Y[2], Y[3], 0, 0, 1, 1, k, B, N, X, 2) : (U[0] = _, U[1] = M, U[2] = O, U[3] = L, U[4] = 1);
                            }
                        }
                    },
                    destroy: function() {
                        return this._tempMatrix1.destroy(), this._tempMatrix2.destroy(), this._tempMatrix3.destroy(), this._tempMatrix1 = null, this._tempMatrix1 = null, this._tempMatrix1 = null, c.prototype.destroy.call(this), this;
                    }
                });
                t.exports = d;
            },
            10919: (t, e, i)=>{
                var s = i(56694), n = i(72632), r = i(83327), o = i(54677), a = i(44775), h = new s({
                    Extends: a,
                    initialize: function(t) {
                        t.vertShader = n(t, "vertShader", o), t.fragShader = n(t, "fragShader", r), t.attributes = n(t, "attributes", [
                            {
                                name: "inPosition",
                                size: 2
                            },
                            {
                                name: "inLightPosition",
                                size: 2
                            },
                            {
                                name: "inLightRadius"
                            },
                            {
                                name: "inLightAttenuation"
                            },
                            {
                                name: "inLightColor",
                                size: 4
                            }
                        ]), a.call(this, t);
                    },
                    onRender: function(t, e) {
                        this.set2f("uResolution", this.width, this.height), this.set1f("uCameraZoom", e.zoom);
                    },
                    batchPointLight: function(t, e, i, s, n, r, o, a, h, l, u, c) {
                        var d = t.color, f = t.intensity, p = t.radius, v = t.attenuation, g = d.r * f, m = d.g * f, y = d.b * f, x = e.alpha * t.alpha;
                        this.shouldFlush(6) && this.flush(), this.currentBatch || this.setTexture2D(), this.batchLightVert(i, s, u, c, p, v, g, m, y, x), this.batchLightVert(n, r, u, c, p, v, g, m, y, x), this.batchLightVert(o, a, u, c, p, v, g, m, y, x), this.batchLightVert(i, s, u, c, p, v, g, m, y, x), this.batchLightVert(o, a, u, c, p, v, g, m, y, x), this.batchLightVert(h, l, u, c, p, v, g, m, y, x), this.currentBatch.count = this.vertexCount - this.currentBatch.start;
                    },
                    batchLightVert: function(t, e, i, s, n, r, o, a, h, l) {
                        var u = this.vertexViewF32, c = this.vertexCount * this.currentShader.vertexComponentCount - 1;
                        u[++c] = t, u[++c] = e, u[++c] = i, u[++c] = s, u[++c] = n, u[++c] = r, u[++c] = o, u[++c] = a, u[++c] = h, u[++c] = l, this.vertexCount++;
                    }
                });
                t.exports = h;
            },
            80486: (t, e, i)=>{
                var s = i(56694), n = i(65246), r = i(72632), o = i(12569), a = i(99365), h = i(44775), l = new s({
                    Extends: h,
                    initialize: function(t) {
                        t.renderTarget = r(t, "renderTarget", 1), t.fragShader = r(t, "fragShader", o), t.vertShader = r(t, "vertShader", a), t.attributes = r(t, "attributes", [
                            {
                                name: "inPosition",
                                size: 2
                            },
                            {
                                name: "inTexCoord",
                                size: 2
                            }
                        ]), t.batchSize = 1, t.vertices = [
                            -1,
                            -1,
                            0,
                            0,
                            -1,
                            1,
                            0,
                            1,
                            1,
                            1,
                            1,
                            1,
                            -1,
                            -1,
                            0,
                            0,
                            1,
                            1,
                            1,
                            1,
                            1,
                            -1,
                            1,
                            0
                        ], h.call(this, t), this.isPostFX = !0, this.gameObject, this.controller, this.colorMatrix = new n, this.fullFrame1, this.fullFrame2, this.halfFrame1, this.halfFrame2, this.renderer.isBooted && (this.manager = this.renderer.pipelines, this.boot());
                    },
                    boot: function() {
                        h.prototype.boot.call(this);
                        var t = this.manager.UTILITY_PIPELINE;
                        this.fullFrame1 = t.fullFrame1, this.fullFrame2 = t.fullFrame2, this.halfFrame1 = t.halfFrame1, this.halfFrame2 = t.halfFrame2, this.set1i("uMainSampler", 0);
                    },
                    onDraw: function(t) {
                        this.bindAndDraw(t);
                    },
                    getController: function(t) {
                        return void 0 !== t ? t : this.controller ? this.controller : this;
                    },
                    copySprite: function(t, e, i) {
                        void 0 === i && (i = !1);
                        var s = this.gl;
                        s.activeTexture(s.TEXTURE0), s.bindTexture(s.TEXTURE_2D, t.texture);
                        var n = s.getParameter(s.FRAMEBUFFER_BINDING);
                        s.bindFramebuffer(s.FRAMEBUFFER, e.framebuffer), s.framebufferTexture2D(s.FRAMEBUFFER, s.COLOR_ATTACHMENT0, s.TEXTURE_2D, e.texture, 0), s.clearColor(0, 0, 0, 0), s.clear(s.COLOR_BUFFER_BIT), s.bufferData(s.ARRAY_BUFFER, this.vertexData, s.STATIC_DRAW), s.drawArrays(s.TRIANGLES, 0, 6), i && (s.bindTexture(s.TEXTURE_2D, null), s.bindFramebuffer(s.FRAMEBUFFER, n));
                    },
                    copyFrame: function(t, e, i, s, n) {
                        this.manager.copyFrame(t, e, i, s, n);
                    },
                    copyToGame: function(t) {
                        this.manager.copyToGame(t);
                    },
                    drawFrame: function(t, e, i) {
                        this.manager.drawFrame(t, e, i, this.colorMatrix);
                    },
                    blendFrames: function(t, e, i, s, n) {
                        this.manager.blendFrames(t, e, i, s, n);
                    },
                    blendFramesAdditive: function(t, e, i, s, n) {
                        this.manager.blendFramesAdditive(t, e, i, s, n);
                    },
                    clearFrame: function(t, e) {
                        this.manager.clearFrame(t, e);
                    },
                    blitFrame: function(t, e, i, s, n, r) {
                        this.manager.blitFrame(t, e, i, s, n, r);
                    },
                    copyFrameRect: function(t, e, i, s, n, r, o, a) {
                        this.manager.copyFrameRect(t, e, i, s, n, r, o, a);
                    },
                    bindAndDraw: function(t, e, i, s, n) {
                        void 0 === i && (i = !0), void 0 === s && (s = !0);
                        var r = this.gl, o = this.renderer;
                        this.bind(n), this.set1i("uMainSampler", 0), e ? (r.viewport(0, 0, e.width, e.height), r.bindFramebuffer(r.FRAMEBUFFER, e.framebuffer), r.framebufferTexture2D(r.FRAMEBUFFER, r.COLOR_ATTACHMENT0, r.TEXTURE_2D, e.texture, 0), i && (s ? r.clearColor(0, 0, 0, 0) : r.clearColor(0, 0, 0, 1), r.clear(r.COLOR_BUFFER_BIT))) : (o.popFramebuffer(!1, !1), o.currentFramebuffer || r.viewport(0, 0, o.width, o.height)), o.restoreStencilMask(), r.activeTexture(r.TEXTURE0), r.bindTexture(r.TEXTURE_2D, t.texture), r.bufferData(r.ARRAY_BUFFER, this.vertexData, r.STATIC_DRAW), r.drawArrays(r.TRIANGLES, 0, 6), e && (r.bindTexture(r.TEXTURE_2D, null), r.bindFramebuffer(r.FRAMEBUFFER, o.currentFramebuffer));
                    },
                    destroy: function() {
                        return this.controller && this.controller.destroy(), this.gameObject = null, this.controller = null, this.colorMatrix = null, this.fullFrame1 = null, this.fullFrame2 = null, this.halfFrame1 = null, this.halfFrame2 = null, h.prototype.destroy.call(this), this;
                    }
                });
                t.exports = l;
            },
            87228: (t, e, i)=>{
                var s = i(95723), n = i(79993), r = i(56694), o = i(37486), a = i(72632), h = i(77310), l = i(12569), u = i(74118), c = i(37410), d = i(85060), f = i(18166), p = i(44775), v = new r({
                    Extends: h,
                    initialize: function(t) {
                        var e = a(t, "fragShader", l), i = a(t, "vertShader", f), s = a(t, "drawShader", l), n = [
                            {
                                name: "DrawSprite",
                                fragShader: d,
                                vertShader: f
                            },
                            {
                                name: "CopySprite",
                                fragShader: e,
                                vertShader: i
                            },
                            {
                                name: "DrawGame",
                                fragShader: s,
                                vertShader: f
                            },
                            {
                                name: "ColorMatrix",
                                fragShader: o
                            }
                        ], r = a(t, "shaders", []);
                        t.shaders = n.concat(r), t.vertShader || (t.vertShader = i), t.batchSize = 1, h.call(this, t), this.isPreFX = !0, this.customMainSampler = null, this.drawSpriteShader, this.copyShader, this.gameShader, this.colorMatrixShader, this.quadVertexData, this.quadVertexBuffer, this.quadVertexViewF32, this.spriteBounds = new u, this.targetBounds = new u, this.fsTarget, this.tempSprite, this.renderer.isBooted && (this.manager = this.renderer.pipelines, this.boot());
                    },
                    boot: function() {
                        p.prototype.boot.call(this);
                        var t = this.shaders, e = this.renderer;
                        this.drawSpriteShader = t[0], this.copyShader = t[1], this.gameShader = t[2], this.colorMatrixShader = t[3], this.fsTarget = new c(e, e.width, e.height, 1, 0, !0, !0), this.renderTargets = this.manager.renderTargets.concat(this.fsTarget);
                        var i = new ArrayBuffer(168);
                        this.quadVertexData = i, this.quadVertexViewF32 = new Float32Array(i), this.quadVertexBuffer = e.createVertexBuffer(i, this.gl.STATIC_DRAW), this.onResize(e.width, e.height), this.currentShader = this.copyShader;
                    },
                    onResize: function(t, e) {
                        var i = this.quadVertexViewF32;
                        i[1] = e, i[22] = e, i[14] = t, i[28] = t, i[35] = t, i[36] = e;
                    },
                    batchQuad: function(t, e, i, s, r, o, a, h, l, u, c, d, f, p, v, g, m, y, x) {
                        var T = Math.min(e, s, o, h), w = Math.min(i, r, a, l), b = Math.max(e, s, o, h) - T, S = Math.max(i, r, a, l) - w, E = this.spriteBounds.setTo(T, w, b, S), A = t ? t.preFX.padding : 0, C = b + 2 * A, _ = S + 2 * A, M = Math.abs(Math.max(C, _)), P = this.manager.getRenderTarget(M), R = this.targetBounds.setTo(0, 0, P.width, P.height);
                        n(R, E.centerX, E.centerY), this.tempSprite = t;
                        var O = this.gl, L = this.renderer;
                        L.clearStencilMask(), this.setShader(this.drawSpriteShader), this.set1i("uMainSampler", 0), this.flipProjectionMatrix(!0), t && (this.onDrawSprite(t, P), t.preFX.onFX(this));
                        var F = this.fsTarget;
                        return this.flush(), O.viewport(0, 0, L.width, L.height), O.bindFramebuffer(O.FRAMEBUFFER, F.framebuffer), O.framebufferTexture2D(O.FRAMEBUFFER, O.COLOR_ATTACHMENT0, O.TEXTURE_2D, F.texture, 0), O.clearColor(0, 0, 0, 0), O.clear(O.COLOR_BUFFER_BIT), this.setTexture2D(x), this.batchVert(e, i, u, c, 0, y, p), this.batchVert(s, r, u, f, 0, y, g), this.batchVert(o, a, d, f, 0, y, m), this.batchVert(e, i, u, c, 0, y, p), this.batchVert(o, a, d, f, 0, y, m), this.batchVert(h, l, d, c, 0, y, v), this.flush(), this.flipProjectionMatrix(!1), O.activeTexture(O.TEXTURE0), O.bindTexture(O.TEXTURE_2D, P.texture), O.copyTexSubImage2D(O.TEXTURE_2D, 0, 0, 0, R.x, R.y, R.width, R.height), O.bindFramebuffer(O.FRAMEBUFFER, null), O.bindTexture(O.TEXTURE_2D, null), this.onBatch(t), this.currentShader = this.copyShader, this.onDraw(P, this.manager.getSwapRenderTarget(), this.manager.getAltSwapRenderTarget()), !0;
                    },
                    onDrawSprite: function() {},
                    onCopySprite: function() {},
                    copySprite: function(t, e, i, n, r, o, a) {
                        void 0 === i && (i = !0), void 0 === n && (n = !0), void 0 === r && (r = !1), void 0 === a && (a = this.copyShader);
                        var h = this.gl, l = this.tempSprite;
                        o && (a = this.colorMatrixShader), this.currentShader = a;
                        var u = this.setVertexBuffer(this.quadVertexBuffer);
                        if (a.bind(u, !1), this.set1i("uMainSampler", 0), l.preFX.onFXCopy(this), this.onCopySprite(t, e, l), o && (this.set1fv("uColorMatrix", o.getData()), this.set1f("uAlpha", o.alpha)), h.activeTexture(h.TEXTURE0), h.bindTexture(h.TEXTURE_2D, t.texture), t.height > e.height) h.viewport(0, 0, t.width, t.height), this.setTargetUVs(t, e);
                        else {
                            var c = e.height - t.height;
                            h.viewport(0, c, t.width, t.height), this.resetUVs();
                        }
                        if (h.bindFramebuffer(h.FRAMEBUFFER, e.framebuffer), h.framebufferTexture2D(h.FRAMEBUFFER, h.COLOR_ATTACHMENT0, h.TEXTURE_2D, e.texture, 0), i && (h.clearColor(0, 0, 0, Number(!n)), h.clear(h.COLOR_BUFFER_BIT)), r) {
                            var d = this.renderer.currentBlendMode;
                            this.renderer.setBlendMode(s.ERASE);
                        }
                        h.bufferData(h.ARRAY_BUFFER, this.quadVertexData, h.STATIC_DRAW), h.drawArrays(h.TRIANGLES, 0, 6), r && this.renderer.setBlendMode(d), h.bindFramebuffer(h.FRAMEBUFFER, null);
                    },
                    copy: function(t, e) {
                        var i = this.gl;
                        this.set1i("uMainSampler", 0), i.activeTexture(i.TEXTURE0), i.bindTexture(i.TEXTURE_2D, t.texture), i.viewport(0, 0, t.width, t.height), this.setUVs(0, 0, 0, 1, 1, 1, 1, 0), i.bindFramebuffer(i.FRAMEBUFFER, e.framebuffer), i.framebufferTexture2D(i.FRAMEBUFFER, i.COLOR_ATTACHMENT0, i.TEXTURE_2D, e.texture, 0), i.clearColor(0, 0, 0, 0), i.clear(i.COLOR_BUFFER_BIT), i.bufferData(i.ARRAY_BUFFER, this.quadVertexData, i.STATIC_DRAW), i.drawArrays(i.TRIANGLES, 0, 6), i.bindFramebuffer(i.FRAMEBUFFER, null);
                    },
                    blendFrames: function(t, e, i, s, n) {
                        this.manager.blendFrames(t, e, i, s, n);
                    },
                    blendFramesAdditive: function(t, e, i, s, n) {
                        this.manager.blendFramesAdditive(t, e, i, s, n);
                    },
                    drawToGame: function(t) {
                        this.currentShader = null, this.setShader(this.copyShader), this.bindAndDraw(t);
                    },
                    copyToGame: function(t) {
                        this.currentShader = null, this.setShader(this.gameShader), this.bindAndDraw(t);
                    },
                    bindAndDraw: function(t) {
                        var e = this.gl, i = this.renderer;
                        this.set1i("uMainSampler", 0), this.customMainSampler ? this.setTexture2D(this.customMainSampler) : this.setTexture2D(t.texture);
                        var s = this._tempMatrix1.loadIdentity(), n = this.targetBounds.x, r = this.targetBounds.y, o = n + t.width, a = r + t.height, h = s.getX(n, r), l = s.getX(n, a), u = s.getX(o, a), c = s.getX(o, r), d = s.getY(n, r), f = s.getY(n, a), p = s.getY(o, a), v = s.getY(o, r), g = 16777215;
                        this.batchVert(h, d, 0, 0, 0, 0, g), this.batchVert(l, f, 0, 1, 0, 0, g), this.batchVert(u, p, 1, 1, 0, 0, g), this.batchVert(h, d, 0, 0, 0, 0, g), this.batchVert(u, p, 1, 1, 0, 0, g), this.batchVert(c, v, 1, 0, 0, 0, g), i.restoreFramebuffer(!1, !0), i.currentFramebuffer || e.viewport(0, 0, i.width, i.height), i.restoreStencilMask(), this.flush(), this.tempSprite = null;
                    },
                    onDraw: function(t) {
                        this.drawToGame(t);
                    },
                    setUVs: function(t, e, i, s, n, r, o, a) {
                        var h = this.quadVertexViewF32;
                        h[2] = t, h[3] = e, h[9] = i, h[10] = s, h[16] = n, h[17] = r, h[23] = t, h[24] = e, h[30] = n, h[31] = r, h[37] = o, h[38] = a;
                    },
                    setTargetUVs: function(t, e) {
                        var i = e.height / t.height;
                        i = i > .5 ? .5 - (i - .5) : .5 - i + .5, this.setUVs(0, i, 0, 1 + i, 1, 1 + i, 1, i);
                    },
                    resetUVs: function() {
                        this.setUVs(0, 0, 0, 1, 1, 1, 1, 0);
                    },
                    destroy: function() {
                        return this.gl.deleteBuffer(this.quadVertexBuffer), this.drawSpriteShader = null, this.copyShader = null, this.gameShader = null, this.colorMatrixShader = null, this.quadVertexData = null, this.quadVertexBuffer = null, this.quadVertexViewF32 = null, this.fsTarget = null, this.tempSprite = null, h.prototype.destroy.call(this), this;
                    }
                });
                t.exports = v;
            },
            21213: (t, e, i)=>{
                var s = i(56694), n = i(72632), r = i(77310), o = new s({
                    Extends: r,
                    initialize: function(t) {
                        t.topology = 5, t.batchSize = n(t, "batchSize", 256), r.call(this, t);
                    }
                });
                t.exports = o;
            },
            51212: (t, e, i)=>{
                var s = i(56694), n = i(72632), r = i(77310), o = i(85060), a = i(18166), h = i(44775), l = new s({
                    Extends: r,
                    initialize: function(t) {
                        t.fragShader = n(t, "fragShader", o), t.vertShader = n(t, "vertShader", a), t.forceZero = !0, r.call(this, t);
                    },
                    boot: function() {
                        h.prototype.boot.call(this), this.set1i("uMainSampler", 0);
                    }
                });
                t.exports = l;
            },
            60848: (t, e, i)=>{
                var s = i(2529), n = i(95723), r = i(56694), o = i(65246), a = i(37486), h = i(79060), l = i(72632), u = i(98921), c = i(99365), d = i(44775), f = new r({
                    Extends: d,
                    initialize: function(t) {
                        t.renderTarget = l(t, "renderTarget", [
                            {
                                scale: 1
                            },
                            {
                                scale: 1
                            },
                            {
                                scale: .5
                            },
                            {
                                scale: .5
                            }
                        ]), t.vertShader = l(t, "vertShader", c), t.shaders = l(t, "shaders", [
                            {
                                name: "Copy",
                                fragShader: h
                            },
                            {
                                name: "AddBlend",
                                fragShader: s
                            },
                            {
                                name: "LinearBlend",
                                fragShader: u
                            },
                            {
                                name: "ColorMatrix",
                                fragShader: a
                            }
                        ]), t.attributes = l(t, "attributes", [
                            {
                                name: "inPosition",
                                size: 2
                            },
                            {
                                name: "inTexCoord",
                                size: 2
                            }
                        ]), t.vertices = [
                            -1,
                            -1,
                            0,
                            0,
                            -1,
                            1,
                            0,
                            1,
                            1,
                            1,
                            1,
                            1,
                            -1,
                            -1,
                            0,
                            0,
                            1,
                            1,
                            1,
                            1,
                            1,
                            -1,
                            1,
                            0
                        ], t.batchSize = 1, d.call(this, t), this.colorMatrix = new o, this.copyShader, this.addShader, this.linearShader, this.colorMatrixShader, this.fullFrame1, this.fullFrame2, this.halfFrame1, this.halfFrame2;
                    },
                    boot: function() {
                        d.prototype.boot.call(this);
                        var t = this.shaders, e = this.renderTargets;
                        this.copyShader = t[0], this.addShader = t[1], this.linearShader = t[2], this.colorMatrixShader = t[3], this.fullFrame1 = e[0], this.fullFrame2 = e[1], this.halfFrame1 = e[2], this.halfFrame2 = e[3];
                    },
                    copyFrame: function(t, e, i, s, n) {
                        void 0 === i && (i = 1), void 0 === s && (s = !0), void 0 === n && (n = !0);
                        var r = this.gl;
                        this.setShader(this.copyShader), this.set1i("uMainSampler", 0), this.set1f("uBrightness", i), r.activeTexture(r.TEXTURE0), r.bindTexture(r.TEXTURE_2D, t.texture), e ? (r.viewport(0, 0, e.width, e.height), r.bindFramebuffer(r.FRAMEBUFFER, e.framebuffer), r.framebufferTexture2D(r.FRAMEBUFFER, r.COLOR_ATTACHMENT0, r.TEXTURE_2D, e.texture, 0)) : r.viewport(0, 0, t.width, t.height), s && (n ? r.clearColor(0, 0, 0, 0) : r.clearColor(0, 0, 0, 1), r.clear(r.COLOR_BUFFER_BIT)), r.bufferData(r.ARRAY_BUFFER, this.vertexData, r.STATIC_DRAW), r.drawArrays(r.TRIANGLES, 0, 6), r.bindFramebuffer(r.FRAMEBUFFER, null), r.bindTexture(r.TEXTURE_2D, null);
                    },
                    blitFrame: function(t, e, i, s, r, o, a) {
                        void 0 === i && (i = 1), void 0 === s && (s = !0), void 0 === r && (r = !0), void 0 === o && (o = !1), void 0 === a && (a = !1);
                        var h = this.gl;
                        if (this.setShader(this.copyShader), this.set1i("uMainSampler", 0), this.set1f("uBrightness", i), h.activeTexture(h.TEXTURE0), h.bindTexture(h.TEXTURE_2D, t.texture), t.height > e.height) h.viewport(0, 0, t.width, t.height), this.setTargetUVs(t, e);
                        else {
                            var l = e.height - t.height;
                            h.viewport(0, l, t.width, t.height);
                        }
                        if (h.bindFramebuffer(h.FRAMEBUFFER, e.framebuffer), h.framebufferTexture2D(h.FRAMEBUFFER, h.COLOR_ATTACHMENT0, h.TEXTURE_2D, e.texture, 0), s && (r ? h.clearColor(0, 0, 0, 0) : h.clearColor(0, 0, 0, 1), h.clear(h.COLOR_BUFFER_BIT)), o) {
                            var u = this.renderer.currentBlendMode;
                            this.renderer.setBlendMode(n.ERASE);
                        }
                        a && this.flipY(), h.bufferData(h.ARRAY_BUFFER, this.vertexData, h.STATIC_DRAW), h.drawArrays(h.TRIANGLES, 0, 6), o && this.renderer.setBlendMode(u), h.bindFramebuffer(h.FRAMEBUFFER, null), h.bindTexture(h.TEXTURE_2D, null), this.resetUVs();
                    },
                    copyFrameRect: function(t, e, i, s, n, r, o, a) {
                        void 0 === o && (o = !0), void 0 === a && (a = !0);
                        var h = this.gl;
                        h.bindFramebuffer(h.FRAMEBUFFER, t.framebuffer), h.framebufferTexture2D(h.FRAMEBUFFER, h.COLOR_ATTACHMENT0, h.TEXTURE_2D, t.texture, 0), o && (a ? h.clearColor(0, 0, 0, 0) : h.clearColor(0, 0, 0, 1), h.clear(h.COLOR_BUFFER_BIT)), h.activeTexture(h.TEXTURE0), h.bindTexture(h.TEXTURE_2D, e.texture), h.copyTexSubImage2D(h.TEXTURE_2D, 0, 0, 0, i, s, n, r), h.bindFramebuffer(h.FRAMEBUFFER, null), h.bindTexture(h.TEXTURE_2D, null);
                    },
                    copyToGame: function(t) {
                        var e = this.gl;
                        this.setShader(this.copyShader), this.set1i("uMainSampler", 0), this.set1f("uBrightness", 1), this.renderer.popFramebuffer(), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, t.texture), e.bufferData(e.ARRAY_BUFFER, this.vertexData, e.STATIC_DRAW), e.drawArrays(e.TRIANGLES, 0, 6);
                    },
                    drawFrame: function(t, e, i, s) {
                        void 0 === i && (i = !0), void 0 === s && (s = this.colorMatrix);
                        var n = this.gl;
                        this.setShader(this.colorMatrixShader), this.set1i("uMainSampler", 0), this.set1fv("uColorMatrix", s.getData()), this.set1f("uAlpha", s.alpha), n.activeTexture(n.TEXTURE0), n.bindTexture(n.TEXTURE_2D, t.texture), e ? (n.viewport(0, 0, e.width, e.height), n.bindFramebuffer(n.FRAMEBUFFER, e.framebuffer), n.framebufferTexture2D(n.FRAMEBUFFER, n.COLOR_ATTACHMENT0, n.TEXTURE_2D, e.texture, 0)) : n.viewport(0, 0, t.width, t.height), i ? n.clearColor(0, 0, 0, 0) : n.clearColor(0, 0, 0, 1), n.clear(n.COLOR_BUFFER_BIT), n.bufferData(n.ARRAY_BUFFER, this.vertexData, n.STATIC_DRAW), n.drawArrays(n.TRIANGLES, 0, 6), n.bindFramebuffer(n.FRAMEBUFFER, null), n.bindTexture(n.TEXTURE_2D, null);
                    },
                    blendFrames: function(t, e, i, s, n, r) {
                        void 0 === s && (s = 1), void 0 === n && (n = !0), void 0 === r && (r = this.linearShader);
                        var o = this.gl;
                        this.setShader(r), this.set1i("uMainSampler1", 0), this.set1i("uMainSampler2", 1), this.set1f("uStrength", s), o.activeTexture(o.TEXTURE0), o.bindTexture(o.TEXTURE_2D, t.texture), o.activeTexture(o.TEXTURE1), o.bindTexture(o.TEXTURE_2D, e.texture), i ? (o.bindFramebuffer(o.FRAMEBUFFER, i.framebuffer), o.framebufferTexture2D(o.FRAMEBUFFER, o.COLOR_ATTACHMENT0, o.TEXTURE_2D, i.texture, 0), o.viewport(0, 0, i.width, i.height)) : o.viewport(0, 0, t.width, t.height), n ? o.clearColor(0, 0, 0, 0) : o.clearColor(0, 0, 0, 1), o.clear(o.COLOR_BUFFER_BIT), o.bufferData(o.ARRAY_BUFFER, this.vertexData, o.STATIC_DRAW), o.drawArrays(o.TRIANGLES, 0, 6), o.bindFramebuffer(o.FRAMEBUFFER, null), o.bindTexture(o.TEXTURE_2D, null);
                    },
                    blendFramesAdditive: function(t, e, i, s, n) {
                        this.blendFrames(t, e, i, s, n, this.addShader);
                    },
                    clearFrame: function(t, e) {
                        void 0 === e && (e = !0);
                        var i = this.gl;
                        i.viewport(0, 0, t.width, t.height), i.bindFramebuffer(i.FRAMEBUFFER, t.framebuffer), e ? i.clearColor(0, 0, 0, 0) : i.clearColor(0, 0, 0, 1), i.clear(i.COLOR_BUFFER_BIT);
                        var s = this.renderer.currentFramebuffer;
                        i.bindFramebuffer(i.FRAMEBUFFER, s);
                    },
                    setUVs: function(t, e, i, s, n, r, o, a) {
                        var h = this.vertexViewF32;
                        h[2] = t, h[3] = e, h[6] = i, h[7] = s, h[10] = n, h[11] = r, h[14] = t, h[15] = e, h[18] = n, h[19] = r, h[22] = o, h[23] = a;
                    },
                    setTargetUVs: function(t, e) {
                        var i = e.height / t.height;
                        i = i > .5 ? .5 - (i - .5) : .5 - i + .5, this.setUVs(0, i, 0, 1 + i, 1, 1 + i, 1, i);
                    },
                    flipX: function() {
                        this.setUVs(1, 0, 1, 1, 0, 1, 0, 0);
                    },
                    flipY: function() {
                        this.setUVs(0, 1, 0, 0, 1, 0, 1, 1);
                    },
                    resetUVs: function() {
                        this.setUVs(0, 0, 0, 1, 1, 1, 1, 0);
                    }
                });
                t.exports = f;
            },
            65641: (t)=>{
                t.exports = {
                    BITMAPMASK_PIPELINE: "BitmapMaskPipeline",
                    LIGHT_PIPELINE: "Light2D",
                    POINTLIGHT_PIPELINE: "PointLightPipeline",
                    SINGLE_PIPELINE: "SinglePipeline",
                    MULTI_PIPELINE: "MultiPipeline",
                    ROPE_PIPELINE: "RopePipeline",
                    GRAPHICS_PIPELINE: "GraphicsPipeline",
                    POSTFX_PIPELINE: "PostFXPipeline",
                    UTILITY_PIPELINE: "UtilityPipeline",
                    MOBILE_PIPELINE: "MobilePipeline",
                    FX_PIPELINE: "FxPipeline"
                };
            },
            68726: (t)=>{
                t.exports = "pipelineafterflush";
            },
            67186: (t)=>{
                t.exports = "pipelinebeforeflush";
            },
            22709: (t)=>{
                t.exports = "pipelinebind";
            },
            74469: (t)=>{
                t.exports = "pipelineboot";
            },
            93953: (t)=>{
                t.exports = "pipelinedestroy";
            },
            51687: (t)=>{
                t.exports = "pipelinerebind";
            },
            25034: (t)=>{
                t.exports = "pipelineresize";
            },
            18970: (t, e, i)=>{
                t.exports = {
                    AFTER_FLUSH: i(68726),
                    BEFORE_FLUSH: i(67186),
                    BIND: i(22709),
                    BOOT: i(74469),
                    DESTROY: i(93953),
                    REBIND: i(51687),
                    RESIZE: i(25034)
                };
            },
            32469: (t, e, i)=>{
                var s = i(56694), n = i(87751), r = i(80486), o = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this, {
                            game: t,
                            fragShader: n
                        }), this.amount = 1;
                    },
                    onPreRender: function(t, e) {
                        t = this.getController(t), this.set1f("amount", t.amount, e);
                    }
                });
                t.exports = o;
            },
            2134: (t, e, i)=>{
                var s = i(56694), n = i(88222), r = i(80486), o = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this, {
                            game: t,
                            fragShader: n
                        }), this.steps = 4, this.offsetX = 1, this.offsetY = 1, this.blurStrength = 1, this.strength = 1, this.glcolor = [
                            1,
                            1,
                            1
                        ];
                    },
                    onPreRender: function(t) {
                        t = this.getController(t), this.set1f("strength", t.blurStrength), this.set3fv("color", t.glcolor);
                    },
                    onDraw: function(t) {
                        var e = this.getController(), i = this.fullFrame1, s = this.fullFrame2;
                        this.copyFrame(t, s);
                        for(var n = 2 / t.width * e.offsetX, r = 2 / t.height * e.offsetY, o = 0; o < e.steps; o++)this.set2f("offset", n, 0), this.copySprite(t, i), this.set2f("offset", 0, r), this.copySprite(i, t);
                        this.blendFrames(s, t, i, e.strength), this.copyToGame(i);
                    }
                });
                t.exports = o;
            },
            63377: (t, e, i)=>{
                var s = i(56694), n = i(35491), r = i(75568), o = i(44481), a = i(80486), h = new s({
                    Extends: a,
                    initialize: function(t) {
                        a.call(this, {
                            game: t,
                            shaders: [
                                {
                                    name: "Gaussian5",
                                    fragShader: n
                                },
                                {
                                    name: "Gaussian9",
                                    fragShader: r
                                },
                                {
                                    name: "Gaussian13",
                                    fragShader: o
                                }
                            ]
                        }), this.activeShader = this.shaders[0], this.x = 2, this.y = 2, this.steps = 4, this.strength = 1, this.glcolor = [
                            1,
                            1,
                            1
                        ];
                    },
                    setQualityLow: function() {
                        return this.activeShader = this.shaders[0], this;
                    },
                    setQualityMedium: function() {
                        return this.activeShader = this.shaders[1], this;
                    },
                    setQualityHigh: function() {
                        return this.activeShader = this.shaders[2], this;
                    },
                    onDraw: function(t) {
                        var e = this.getController(), i = this.gl, s = this.fullFrame1, n = i.getParameter(i.FRAMEBUFFER_BINDING);
                        this.bind(this.activeShader), i.activeTexture(i.TEXTURE0), i.viewport(0, 0, t.width, t.height), this.set1i("uMainSampler", 0), this.set2f("resolution", t.width, t.height), this.set1f("strength", e.strength), this.set3fv("color", e.glcolor);
                        for(var r = 0; r < e.steps; r++)this.set2f("offset", e.x, 0), this.copySprite(t, s), this.set2f("offset", 0, e.y), this.copySprite(s, t);
                        i.bindFramebuffer(i.FRAMEBUFFER, n), i.bindTexture(i.TEXTURE_2D, null), this.copyToGame(t);
                    }
                });
                t.exports = h;
            },
            49745: (t, e, i)=>{
                var s = i(56694), n = i(69960), r = i(80486), o = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this, {
                            game: t,
                            fragShader: n
                        }), this.isTiltShift = !1, this.strength = 1, this.blurX = 1, this.blurY = 1, this.radius = .5, this.amount = 1, this.contrast = .2;
                    },
                    onPreRender: function(t, e, i, s) {
                        t = this.getController(t), this.set1f("radius", t.radius, e), this.set1f("amount", t.amount, e), this.set1f("contrast", t.contrast, e), this.set1f("strength", t.strength, e), this.set2f("blur", t.blurX, t.blurY, e), this.setBoolean("isTiltShift", t.isTiltShift, e), i && s && this.set2f("resolution", i, s, e);
                    },
                    onDraw: function(t) {
                        this.set2f("resolution", t.width, t.height), this.bindAndDraw(t);
                    }
                });
                t.exports = o;
            },
            4323: (t, e, i)=>{
                var s = i(56694), n = i(33754), r = i(80486), o = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this, {
                            game: t,
                            fragShader: n
                        }), this.scale = 1, this.feather = .005, this.thickness = 8, this.glcolor = [
                            1,
                            .2,
                            .7
                        ], this.glcolor2 = [
                            1,
                            0,
                            0,
                            .4
                        ];
                    },
                    onPreRender: function(t, e, i, s) {
                        t = this.getController(t), this.set1f("scale", t.scale, e), this.set1f("feather", t.feather, e), this.set1f("thickness", t.thickness, e), this.set3fv("color", t.glcolor, e), this.set4fv("backgroundColor", t.glcolor2, e), i && s && this.set2f("resolution", i, s, e);
                    },
                    onDraw: function(t) {
                        this.set2f("resolution", t.width, t.height), this.bindAndDraw(t);
                    }
                });
                t.exports = o;
            },
            92066: (t, e, i)=>{
                var s = i(56694), n = i(80486), r = new s({
                    Extends: n,
                    initialize: function(t) {
                        n.call(this, {
                            game: t
                        });
                    },
                    onDraw: function(t) {
                        var e = this.fullFrame1;
                        this.controller ? this.manager.drawFrame(t, e, !0, this.controller) : this.drawFrame(t, e), this.copyToGame(e);
                    }
                });
                t.exports = r;
            },
            89581: (t, e, i)=>{
                var s = i(56694), n = i(35668), r = i(80486), o = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this, {
                            game: t,
                            fragShader: n
                        }), this.x = .005, this.y = .005, this.glTexture;
                    },
                    onBoot: function() {
                        this.setTexture("__WHITE");
                    },
                    setTexture: function(t) {
                        var e = this.game.textures.getFrame(t);
                        e && (this.glTexture = e.glTexture);
                    },
                    onDraw: function(t) {
                        var e = this.getController(), i = this.fullFrame1;
                        this.bind(), this.set1i("uMainSampler", 0), this.set1i("uDisplacementSampler", 1), this.set2f("amount", e.x, e.y), this.bindTexture(e.glTexture, 1), this.copySprite(t, i), this.copyToGame(i);
                    }
                });
                t.exports = o;
            },
            55084: (t, e, i)=>{
                var s = i(56694), n = i(72632), r = i(69675), o = i(80486), a = i(75512), h = new s({
                    Extends: o,
                    initialize: function(t, e) {
                        var i = n(e, "quality", .1), s = n(e, "distance", 10);
                        o.call(this, {
                            game: t,
                            fragShader: a.setGlowQuality(r, t, i, s)
                        }), this.outerStrength = 4, this.innerStrength = 0, this.knockout = !1, this.glcolor = [
                            1,
                            1,
                            1,
                            1
                        ];
                    },
                    onPreRender: function(t, e, i, s) {
                        t = this.getController(t), this.set1f("outerStrength", t.outerStrength, e), this.set1f("innerStrength", t.innerStrength, e), this.set4fv("glowColor", t.glcolor, e), this.setBoolean("knockout", t.knockout, e), i && s && this.set2f("resolution", i, s, e);
                    },
                    onDraw: function(t) {
                        this.set2f("resolution", t.width, t.height), this.bindAndDraw(t);
                    }
                });
                t.exports = h;
            },
            41653: (t, e, i)=>{
                var s = i(56694), n = i(90993), r = i(80486), o = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this, {
                            game: t,
                            fragShader: n
                        }), this.alpha = .2, this.size = 0, this.fromX = 0, this.fromY = 0, this.toX = 0, this.toY = 1, this.glcolor1 = [
                            255,
                            0,
                            0
                        ], this.glcolor2 = [
                            0,
                            255,
                            0
                        ];
                    },
                    onPreRender: function(t, e) {
                        t = this.getController(t), this.set1f("alpha", t.alpha, e), this.set1i("size", t.size, e), this.set3fv("color1", t.glcolor1, e), this.set3fv("color2", t.glcolor2, e), this.set2f("positionFrom", t.fromX, t.fromY, e), this.set2f("positionTo", t.toX, t.toY, e);
                    }
                });
                t.exports = o;
            },
            73416: (t, e, i)=>{
                var s = i(56694), n = i(37945), r = i(80486), o = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this, {
                            game: t,
                            fragShader: n
                        }), this.amount = 1;
                    },
                    onPreRender: function(t, e, i, s) {
                        t = this.getController(t), this.set1f("amount", t.amount, e), i && s && this.set2f("resolution", i, s, e);
                    },
                    onDraw: function(t) {
                        this.set2f("resolution", t.width, t.height), this.bindAndDraw(t);
                    }
                });
                t.exports = o;
            },
            58049: (t, e, i)=>{
                var s = i(56694), n = i(85718), r = i(80486), o = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this, {
                            game: t,
                            fragShader: n
                        }), this.x = 0, this.y = 0, this.decay = .1, this.power = 1, this.glcolor = [
                            0,
                            0,
                            0,
                            1
                        ], this.samples = 6, this.intensity = 1;
                    },
                    onPreRender: function(t, e) {
                        var i = (t = this.getController(t)).samples;
                        this.set1i("samples", i, e), this.set1f("intensity", t.intensity, e), this.set1f("decay", t.decay, e), this.set1f("power", t.power / i, e), this.set2f("lightPosition", t.x, t.y, e), this.set4fv("color", t.glcolor, e);
                    }
                });
                t.exports = o;
            },
            18026: (t, e, i)=>{
                var s = i(56694), n = i(13740), r = i(80486), o = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this, {
                            game: t,
                            fragShader: n
                        }), this.speed = .5, this.lineWidth = .5, this.gradient = 3, this.reveal = !1;
                    },
                    onPreRender: function(t, e, i, s) {
                        t = this.getController(t), this.setTime("time", e), this.set1f("speed", t.speed, e), this.set1f("lineWidth", t.lineWidth, e), this.set1f("gradient", t.gradient, e), this.setBoolean("reveal", t.reveal, e), i && s && this.set2f("resolution", i, s, e);
                    },
                    onDraw: function(t) {
                        this.set2f("resolution", t.width, t.height), this.bindAndDraw(t);
                    }
                });
                t.exports = o;
            },
            72381: (t, e, i)=>{
                var s = i(56694), n = i(80617), r = i(80486), o = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this, {
                            game: t,
                            fragShader: n
                        }), this.x = .5, this.y = .5, this.radius = .5, this.strength = .5;
                    },
                    onPreRender: function(t, e) {
                        t = this.getController(t), this.set1f("radius", t.radius, e), this.set1f("strength", t.strength, e), this.set2f("position", t.x, t.y, e);
                    }
                });
                t.exports = o;
            },
            80542: (t, e, i)=>{
                var s = i(56694), n = i(62879), r = i(80486), o = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this, {
                            game: t,
                            fragShader: n
                        }), this.progress = 0, this.wipeWidth = .1, this.direction = 0, this.axis = 0, this.reveal = !1;
                    },
                    onPreRender: function(t, e) {
                        var i = (t = this.getController(t)).progress, s = t.wipeWidth, n = t.direction, r = t.axis;
                        this.set4f("config", i, s, n, r, e), this.setBoolean("reveal", t.reveal, e);
                    }
                });
                t.exports = o;
            },
            58136: (t, e, i)=>{
                var s = {
                    Barrel: i(32469),
                    Bloom: i(2134),
                    Blur: i(63377),
                    Bokeh: i(49745),
                    Circle: i(4323),
                    ColorMatrix: i(92066),
                    Displacement: i(89581),
                    Glow: i(55084),
                    Gradient: i(41653),
                    Pixelate: i(73416),
                    Shadow: i(58049),
                    Shine: i(18026),
                    Vignette: i(72381),
                    Wipe: i(80542)
                };
                t.exports = s;
            },
            62253: (t, e, i)=>{
                var s = i(65641), n = i(98611), r = {
                    FX: i(58136),
                    BitmapMaskPipeline: i(5583),
                    Events: i(18970),
                    FXPipeline: i(81828),
                    LightPipeline: i(66901),
                    MobilePipeline: i(71264),
                    MultiPipeline: i(77310),
                    PointLightPipeline: i(10919),
                    PostFXPipeline: i(80486),
                    PreFXPipeline: i(87228),
                    RopePipeline: i(21213),
                    SinglePipeline: i(51212),
                    UtilityPipeline: i(60848)
                };
                r = n(!1, r, s), t.exports = r;
            },
            2529: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_ADD_BLEND_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler1;",
                    "uniform sampler2D uMainSampler2;",
                    "uniform float uStrength;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    vec4 frame1 = texture2D(uMainSampler1, outTexCoord);",
                    "    vec4 frame2 = texture2D(uMainSampler2, outTexCoord);",
                    "    gl_FragColor = frame1 + frame2 * uStrength;",
                    "}"
                ].join("\n");
            },
            91679: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_BITMAP_MASK_FS",
                    "precision mediump float;",
                    "uniform vec2 uResolution;",
                    "uniform sampler2D uMainSampler;",
                    "uniform sampler2D uMaskSampler;",
                    "uniform bool uInvertMaskAlpha;",
                    "void main ()",
                    "{",
                    "    vec2 uv = gl_FragCoord.xy / uResolution;",
                    "    vec4 mainColor = texture2D(uMainSampler, uv);",
                    "    vec4 maskColor = texture2D(uMaskSampler, uv);",
                    "    if (!uInvertMaskAlpha)",
                    "    {",
                    "        mainColor *= maskColor.a;",
                    "    }",
                    "    else",
                    "    {",
                    "        mainColor *= (1.0 - maskColor.a);",
                    "    }",
                    "    gl_FragColor = mainColor;",
                    "}"
                ].join("\n");
            },
            89053: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_BITMAP_MASK_VS",
                    "precision mediump float;",
                    "attribute vec2 inPosition;",
                    "void main ()",
                    "{",
                    "    gl_Position = vec4(inPosition, 0.0, 1.0);",
                    "}"
                ].join("\n");
            },
            37486: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_COLORMATRIX_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform float uColorMatrix[20];",
                    "uniform float uAlpha;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    vec4 c = texture2D(uMainSampler, outTexCoord);",
                    "    if (uAlpha == 0.0)",
                    "    {",
                    "        gl_FragColor = c;",
                    "        return;",
                    "    }",
                    "    if (c.a > 0.0)",
                    "    {",
                    "        c.rgb /= c.a;",
                    "    }",
                    "    vec4 result;",
                    "    result.r = (uColorMatrix[0] * c.r) + (uColorMatrix[1] * c.g) + (uColorMatrix[2] * c.b) + (uColorMatrix[3] * c.a) + uColorMatrix[4];",
                    "    result.g = (uColorMatrix[5] * c.r) + (uColorMatrix[6] * c.g) + (uColorMatrix[7] * c.b) + (uColorMatrix[8] * c.a) + uColorMatrix[9];",
                    "    result.b = (uColorMatrix[10] * c.r) + (uColorMatrix[11] * c.g) + (uColorMatrix[12] * c.b) + (uColorMatrix[13] * c.a) + uColorMatrix[14];",
                    "    result.a = (uColorMatrix[15] * c.r) + (uColorMatrix[16] * c.g) + (uColorMatrix[17] * c.b) + (uColorMatrix[18] * c.a) + uColorMatrix[19];",
                    "    vec3 rgb = mix(c.rgb, result.rgb, uAlpha);",
                    "    rgb *= result.a;",
                    "    gl_FragColor = vec4(rgb, result.a);",
                    "}"
                ].join("\n");
            },
            79060: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_COPY_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform float uBrightness;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    gl_FragColor = texture2D(uMainSampler, outTexCoord) * uBrightness;",
                    "}"
                ].join("\n");
            },
            87751: (t)=>{
                t.exports = [
                    "#define SHADER_NAME BARREL_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform float amount;",
                    "varying vec2 outTexCoord;",
                    "vec2 Distort(vec2 p)",
                    "{",
                    "    float theta  = atan(p.y, p.x);",
                    "    float radius = length(p);",
                    "    radius = pow(radius, amount);",
                    "    p.x = radius * cos(theta);",
                    "    p.y = radius * sin(theta);",
                    "    return 0.5 * (p + 1.0);",
                    "}",
                    "void main()",
                    "{",
                    "    vec2 xy = 2.0 * outTexCoord - 1.0;",
                    "    vec2 texCoord = outTexCoord;",
                    "    if (length(xy) < 1.0)",
                    "    {",
                    "        texCoord = Distort(xy);",
                    "    }",
                    "    gl_FragColor = texture2D(uMainSampler, texCoord);",
                    "}"
                ].join("\n");
            },
            88222: (t)=>{
                t.exports = [
                    "#define SHADER_NAME BLOOM_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform vec2 offset;",
                    "uniform float strength;",
                    "uniform vec3 color;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    vec4 sum = texture2D(uMainSampler, outTexCoord) * 0.204164 * strength;",
                    "    sum = sum + texture2D(uMainSampler, outTexCoord + offset * 1.407333) * 0.304005;",
                    "    sum = sum + texture2D(uMainSampler, outTexCoord - offset * 1.407333) * 0.304005;",
                    "    sum = sum + texture2D(uMainSampler, outTexCoord + offset * 3.294215) * 0.093913;",
                    "    gl_FragColor = (sum + texture2D(uMainSampler, outTexCoord - offset * 3.294215) * 0.093913) * vec4(color, 1);",
                    "}"
                ].join("\n");
            },
            44481: (t)=>{
                t.exports = [
                    "#define SHADER_NAME BLUR_HIGH_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform vec2 resolution;",
                    "uniform vec2 offset;",
                    "uniform float strength;",
                    "uniform vec3 color;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    vec2 uv = outTexCoord;",
                    "    vec4 col = vec4(0.0);",
                    "    vec2 off1 = vec2(1.411764705882353) * offset * strength;",
                    "    vec2 off2 = vec2(3.2941176470588234) * offset * strength;",
                    "    vec2 off3 = vec2(5.176470588235294) * offset * strength;",
                    "    col += texture2D(uMainSampler, uv) * 0.1964825501511404;",
                    "    col += texture2D(uMainSampler, uv + (off1 / resolution)) * 0.2969069646728344;",
                    "    col += texture2D(uMainSampler, uv - (off1 / resolution)) * 0.2969069646728344;",
                    "    col += texture2D(uMainSampler, uv + (off2 / resolution)) * 0.09447039785044732;",
                    "    col += texture2D(uMainSampler, uv - (off2 / resolution)) * 0.09447039785044732;",
                    "    col += texture2D(uMainSampler, uv + (off3 / resolution)) * 0.010381362401148057;",
                    "    col += texture2D(uMainSampler, uv - (off3 / resolution)) * 0.010381362401148057;",
                    "    gl_FragColor = col * vec4(color, 1.0);",
                    "}"
                ].join("\n");
            },
            35491: (t)=>{
                t.exports = [
                    "#define SHADER_NAME BLUR_LOW_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform vec2 resolution;",
                    "uniform float strength;",
                    "uniform vec3 color;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    vec2 uv = outTexCoord;",
                    "    vec4 col = vec4(0.0);",
                    "    vec2 offset = vec2(1.333) * strength;",
                    "    col += texture2D(uMainSampler, uv) * 0.29411764705882354;",
                    "    col += texture2D(uMainSampler, uv + (offset / resolution)) * 0.35294117647058826;",
                    "    col += texture2D(uMainSampler, uv - (offset / resolution)) * 0.35294117647058826;",
                    "    gl_FragColor = col * vec4(color, 1.0);",
                    "}"
                ].join("\n");
            },
            75568: (t)=>{
                t.exports = [
                    "#define SHADER_NAME BLUR_MED_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform vec2 resolution;",
                    "uniform vec2 offset;",
                    "uniform float strength;",
                    "uniform vec3 color;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    vec2 uv = outTexCoord;",
                    "    vec4 col = vec4(0.0);",
                    "    vec2 off1 = vec2(1.3846153846) * offset * strength;",
                    "    vec2 off2 = vec2(3.2307692308) * offset * strength;",
                    "    col += texture2D(uMainSampler, uv) * 0.2270270270;",
                    "    col += texture2D(uMainSampler, uv + (off1 / resolution)) * 0.3162162162;",
                    "    col += texture2D(uMainSampler, uv - (off1 / resolution)) * 0.3162162162;",
                    "    col += texture2D(uMainSampler, uv + (off2 / resolution)) * 0.0702702703;",
                    "    col += texture2D(uMainSampler, uv - (off2 / resolution)) * 0.0702702703;",
                    "    gl_FragColor = col * vec4(color, 1.0);",
                    "}"
                ].join("\n");
            },
            69960: (t)=>{
                t.exports = [
                    "#define SHADER_NAME BOKEH_FS",
                    "precision mediump float;",
                    "#define ITERATIONS 100.0",
                    "#define ONEOVER_ITR 1.0 / ITERATIONS",
                    "#define PI 3.141596",
                    "#define GOLDEN_ANGLE 2.39996323",
                    "uniform sampler2D uMainSampler;",
                    "uniform vec2 resolution;",
                    "uniform float radius;",
                    "uniform float amount;",
                    "uniform float contrast;",
                    "uniform bool isTiltShift;",
                    "uniform float strength;",
                    "uniform vec2 blur;",
                    "varying vec2 outTexCoord;",
                    "vec2 Sample (in float theta, inout float r)",
                    "{",
                    "    r += 1.0 / r;",
                    "    return (r - 1.0) * vec2(cos(theta), sin(theta)) * 0.06;",
                    "}",
                    "vec3 Bokeh (sampler2D tex, vec2 uv, float radius)",
                    "{",
                    "    vec3 acc = vec3(0.0);",
                    "    vec3 div = vec3(0.0);",
                    "    vec2 pixel = vec2(resolution.y / resolution.x, 1.0) * radius * .025;",
                    "    float r = 1.0;",
                    "    for (float j = 0.0; j < GOLDEN_ANGLE * ITERATIONS; j += GOLDEN_ANGLE)",
                    "    {",
                    "        vec3 col = texture2D(tex, uv + pixel * Sample(j, r)).xyz;",
                    "        col = contrast > 0.0 ? col * col * (1.0 + contrast) : col;",
                    "        vec3 bokeh = vec3(0.5) + pow(col, vec3(10.0)) * amount;",
                    "        acc += col * bokeh;",
                    "        div += bokeh;",
                    "    }",
                    "    return acc / div;",
                    "}",
                    "void main ()",
                    "{",
                    "    float shift = 1.0;",
                    "    if (isTiltShift)",
                    "    {",
                    "        vec2 uv = vec2(gl_FragCoord.xy / resolution + vec2(-0.5, -0.5)) * 2.0;",
                    "        float centerStrength = 1.0;",
                    "        shift = length(uv * blur * strength) * centerStrength;",
                    "    }",
                    "    gl_FragColor = vec4(Bokeh(uMainSampler, outTexCoord * vec2(1.0, 1.0), radius * shift), 0.0);",
                    "}"
                ].join("\n");
            },
            33754: (t)=>{
                t.exports = [
                    "#define SHADER_NAME CIRCLE_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform vec2 resolution;",
                    "uniform vec3 color;",
                    "uniform vec4 backgroundColor;",
                    "uniform float thickness;",
                    "uniform float scale;",
                    "uniform float feather;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    vec4 texture = texture2D(uMainSampler, outTexCoord);",
                    "    vec2 position = (gl_FragCoord.xy / resolution.xy) * 2.0 - 1.0;",
                    "    float aspectRatio = resolution.x / resolution.y;",
                    "    position.x *= aspectRatio;",
                    "    float grad = length(position);",
                    "    float outer = aspectRatio;",
                    "    float inner = outer - (thickness * 2.0 / resolution.y);",
                    "    if (aspectRatio >= 1.0)",
                    "    {",
                    "        float f = 2.0 + (resolution.y / resolution.x);",
                    "        outer = 1.0;",
                    "        inner = 1.0 - (thickness * f / resolution.x);",
                    "    }",
                    "    outer *= scale;",
                    "    inner *= scale;",
                    "    float circle = smoothstep(outer, outer - 0.01, grad);",
                    "    float ring = circle - smoothstep(inner, inner - feather, grad);",
                    "    texture = mix(backgroundColor * backgroundColor.a, texture, texture.a);",
                    "    texture = (texture * (circle - ring));",
                    "    gl_FragColor = vec4(texture.rgb + (ring * color), texture.a);",
                    "}"
                ].join("\n");
            },
            35668: (t)=>{
                t.exports = [
                    "#define SHADER_NAME DISPLACEMENT_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform sampler2D uDisplacementSampler;",
                    "uniform vec2 amount;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    vec2 disp = (-vec2(0.5, 0.5) + texture2D(uDisplacementSampler, outTexCoord).rr) * amount;",
                    "    gl_FragColor = texture2D(uMainSampler, outTexCoord + disp).rgba;",
                    "}"
                ].join("\n");
            },
            69675: (t)=>{
                t.exports = [
                    "#define SHADER_NAME GLOW_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "varying vec2 outTexCoord;",
                    "uniform float outerStrength;",
                    "uniform float innerStrength;",
                    "uniform vec2 resolution;",
                    "uniform vec4 glowColor;",
                    "uniform bool knockout;",
                    "const float PI = 3.14159265358979323846264;",
                    "const float DIST = __DIST__;",
                    "const float SIZE = min(__SIZE__, PI * 2.0);",
                    "const float STEP = ceil(PI * 2.0 / SIZE);",
                    "const float MAX_ALPHA = STEP * DIST * (DIST + 1.0) / 2.0;",
                    "void main ()",
                    "{",
                    "    vec2 px = vec2(1.0 / resolution.x, 1.0 / resolution.y);",
                    "    float totalAlpha = 0.0;",
                    "    vec2 direction;",
                    "    vec2 displaced;",
                    "    vec4 color;",
                    "    for (float angle = 0.0; angle < PI * 2.0; angle += SIZE)",
                    "    {",
                    "        direction = vec2(cos(angle), sin(angle)) * px;",
                    "        for (float curDistance = 0.0; curDistance < DIST; curDistance++)",
                    "        {",
                    "            displaced = outTexCoord + direction * (curDistance + 1.0);",
                    "            color = texture2D(uMainSampler, displaced);",
                    "            totalAlpha += (DIST - curDistance) * color.a;",
                    "        }",
                    "    }",
                    "    color = texture2D(uMainSampler, outTexCoord);",
                    "    float alphaRatio = (totalAlpha / MAX_ALPHA);",
                    "    float innerGlowAlpha = (1.0 - alphaRatio) * innerStrength * color.a;",
                    "    float innerGlowStrength = min(1.0, innerGlowAlpha);",
                    "    vec4 innerColor = mix(color, glowColor, innerGlowStrength);",
                    "    float outerGlowAlpha = alphaRatio * outerStrength * (1.0 - color.a);",
                    "    float outerGlowStrength = min(1.0 - innerColor.a, outerGlowAlpha);",
                    "    vec4 outerGlowColor = outerGlowStrength * glowColor.rgba;",
                    "    if (knockout)",
                    "    {",
                    "        float resultAlpha = outerGlowAlpha + innerGlowAlpha;",
                    "        gl_FragColor = vec4(glowColor.rgb * resultAlpha, resultAlpha);",
                    "    }",
                    "    else",
                    "    {",
                    "        gl_FragColor = innerColor + outerGlowColor;",
                    "    }",
                    "}"
                ].join("\n");
            },
            90993: (t)=>{
                t.exports = [
                    "#define SHADER_NAME GRADIENT_FS",
                    "#define SRGB_TO_LINEAR(c) pow((c), vec3(2.2))",
                    "#define LINEAR_TO_SRGB(c) pow((c), vec3(1.0 / 2.2))",
                    "#define SRGB(r, g, b) SRGB_TO_LINEAR(vec3(float(r), float(g), float(b)) / 255.0)",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform vec2 positionFrom;",
                    "uniform vec2 positionTo;",
                    "uniform vec3 color1;",
                    "uniform vec3 color2;",
                    "uniform float alpha;",
                    "uniform int size;",
                    "varying vec2 outTexCoord;",
                    "float gradientNoise(in vec2 uv)",
                    "{",
                    "    const vec3 magic = vec3(0.06711056, 0.00583715, 52.9829189);",
                    "    return fract(magic.z * fract(dot(uv, magic.xy)));",
                    "}",
                    "float stepped (in float s, in float scale, in int steps)",
                    "{",
                    "    return steps > 0 ? floor( s / ((1.0 * scale) / float(steps))) * 1.0 / float(steps - 1) : s;",
                    "}",
                    "void main ()",
                    "{",
                    "    vec2 a = positionFrom;",
                    "    vec2 b = positionTo;",
                    "    vec2 ba = b - a;",
                    "    float d = dot(outTexCoord - a, ba) / dot(ba, ba);",
                    "    float t = size > 0 ? stepped(d, 1.0, size) : d;",
                    "    t = smoothstep(0.0, 1.0, clamp(t, 0.0, 1.0));",
                    "    vec3 color = mix(SRGB(color1.r, color1.g, color1.b), SRGB(color2.r, color2.g, color2.b), t);",
                    "    color = LINEAR_TO_SRGB(color);",
                    "    color += (1.0 / 255.0) * gradientNoise(outTexCoord) - (0.5 / 255.0);",
                    "    vec4 texture = texture2D(uMainSampler, outTexCoord);",
                    "    gl_FragColor = vec4(mix(color.rgb, texture.rgb, alpha), 1.0) * texture.a;",
                    "}"
                ].join("\n");
            },
            37945: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PIXELATE_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform vec2 resolution;",
                    "uniform float amount;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    float pixelSize = floor(2.0 + amount);",
                    "    vec2 center = pixelSize * floor(outTexCoord * resolution / pixelSize) + pixelSize * vec2(0.5, 0.5);",
                    "    vec2 corner1 = center + pixelSize * vec2(-0.5, -0.5);",
                    "    vec2 corner2 = center + pixelSize * vec2(+0.5, -0.5);",
                    "    vec2 corner3 = center + pixelSize * vec2(+0.5, +0.5);",
                    "    vec2 corner4 = center + pixelSize * vec2(-0.5, +0.5);",
                    "    vec4 pixel = 0.4 * texture2D(uMainSampler, center / resolution);",
                    "    pixel += 0.15 * texture2D(uMainSampler, corner1 / resolution);",
                    "    pixel += 0.15 * texture2D(uMainSampler, corner2 / resolution);",
                    "    pixel += 0.15 * texture2D(uMainSampler, corner3 / resolution);",
                    "    pixel += 0.15 * texture2D(uMainSampler, corner4 / resolution);",
                    "    gl_FragColor = pixel;",
                    "}"
                ].join("\n");
            },
            85718: (t)=>{
                t.exports = [
                    "#define SHADER_NAME SHADOW_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "varying vec2 outTexCoord;",
                    "uniform vec2 lightPosition;",
                    "uniform vec4 color;",
                    "uniform float decay;",
                    "uniform float power;",
                    "uniform float intensity;",
                    "uniform int samples;",
                    "const int MAX = 12;",
                    "void main ()",
                    "{",
                    "    vec4 texture = texture2D(uMainSampler, outTexCoord);",
                    "    vec2 pc = (lightPosition - outTexCoord) * intensity;",
                    "    float shadow = 0.0;",
                    "    float limit = max(float(MAX), float(samples));",
                    "    for (int i = 0; i < MAX; ++i)",
                    "    {",
                    "        if (i >= samples)",
                    "        {",
                    "            break;",
                    "        }",
                    "        shadow += texture2D(uMainSampler, outTexCoord + float(i) * decay / limit * pc).a * power;",
                    "    }",
                    "    float mask = 1.0 - texture.a;",
                    "    gl_FragColor = mix(texture, color, shadow * mask);",
                    "}"
                ].join("\n");
            },
            13740: (t)=>{
                t.exports = [
                    "#define SHADER_NAME SHINE_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform vec2 resolution;",
                    "uniform bool reveal;",
                    "uniform float speed;",
                    "uniform float time;",
                    "uniform float lineWidth;",
                    "uniform float gradient;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "	vec2 uv = gl_FragCoord.xy / resolution.xy;",
                    "    vec4 tex = texture2D(uMainSampler, outTexCoord);",
                    "    vec4 col1 = vec4(0.3, 0.0, 0.0, 1.0);",
                    "    vec4 col2 = vec4(0.85, 0.85, 0.85, 1.0);",
                    "    uv.x = uv.x - mod(time * speed, 2.0) + 0.5;",
                    "    float y = uv.x * gradient;",
                    "    float s = smoothstep(y - lineWidth, y, uv.y) - smoothstep(y, y + lineWidth, uv.y);",
                    "    gl_FragColor = (((s * col1) + (s * col2)) * tex);",
                    "    if (!reveal)",
                    "    {",
                    "        gl_FragColor += tex;",
                    "    }",
                    "}"
                ].join("\n");
            },
            80617: (t)=>{
                t.exports = [
                    "#define SHADER_NAME VIGNETTE_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform float radius;",
                    "uniform float strength;",
                    "uniform vec2 position;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    vec4 col = vec4(1.0);",
                    "    float d = length(outTexCoord - position);",
                    "    if (d <= radius)",
                    "    {",
                    "        float g = d / radius;",
                    "        g = sin(g * 3.14 * strength);",
                    "    	col = vec4(g * g * g);",
                    "    }",
                    "    vec4 texture = texture2D(uMainSampler, outTexCoord);",
                    "    gl_FragColor = texture * (1.0 - col);",
                    "}"
                ].join("\n");
            },
            62879: (t)=>{
                t.exports = [
                    "#define SHADER_NAME WIPE_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "uniform vec4 config;",
                    "uniform bool reveal;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    vec2 uv = outTexCoord;",
                    "    vec4 color0;",
                    "    vec4 color1;",
                    "    if (reveal)",
                    "    {",
                    "        color0 = vec4(0);",
                    "        color1 = texture2D(uMainSampler, uv);",
                    "    }",
                    "    else",
                    "    {",
                    "        color0 = texture2D(uMainSampler, uv);",
                    "        color1 = vec4(0);",
                    "    }",
                    "    float distance = config.x;",
                    "    float width = config.y;",
                    "    float direction = config.z;",
                    "    float axis = uv.x;",
                    "    if (config.w == 1.0)",
                    "    {",
                    "        axis = uv.y;",
                    "    }",
                    "    float adjust = mix(width, -width, distance);",
                    "    float value = smoothstep(distance - width, distance + width, abs(direction - axis) + adjust);",
                    "    gl_FragColor = mix(color1, color0, value);",
                    "}"
                ].join("\n");
            },
            65045: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_LIGHT_FS",
                    "precision mediump float;",
                    "struct Light",
                    "{",
                    "    vec2 position;",
                    "    vec3 color;",
                    "    float intensity;",
                    "    float radius;",
                    "};",
                    "const int kMaxLights = %LIGHT_COUNT%;",
                    "uniform vec4 uCamera; /* x, y, rotation, zoom */",
                    "uniform vec2 uResolution;",
                    "uniform sampler2D uMainSampler;",
                    "uniform sampler2D uNormSampler;",
                    "uniform vec3 uAmbientLightColor;",
                    "uniform Light uLights[kMaxLights];",
                    "uniform mat3 uInverseRotationMatrix;",
                    "uniform int uLightCount;",
                    "varying vec2 outTexCoord;",
                    "varying float outTexId;",
                    "varying float outTintEffect;",
                    "varying vec4 outTint;",
                    "void main ()",
                    "{",
                    "    vec3 finalColor = vec3(0.0, 0.0, 0.0);",
                    "    vec4 texel = vec4(outTint.bgr * outTint.a, outTint.a);",
                    "    vec4 texture = texture2D(uMainSampler, outTexCoord);",
                    "    vec4 color = texture * texel;",
                    "    if (outTintEffect == 1.0)",
                    "    {",
                    "        color.rgb = mix(texture.rgb, outTint.bgr * outTint.a, texture.a);",
                    "    }",
                    "    else if (outTintEffect == 2.0)",
                    "    {",
                    "        color = texel;",
                    "    }",
                    "    vec3 normalMap = texture2D(uNormSampler, outTexCoord).rgb;",
                    "    vec3 normal = normalize(uInverseRotationMatrix * vec3(normalMap * 2.0 - 1.0));",
                    "    vec2 res = vec2(min(uResolution.x, uResolution.y)) * uCamera.w;",
                    "    for (int index = 0; index < kMaxLights; ++index)",
                    "    {",
                    "        if (index < uLightCount)",
                    "        {",
                    "            Light light = uLights[index];",
                    "            vec3 lightDir = vec3((light.position.xy / res) - (gl_FragCoord.xy / res), 0.1);",
                    "            vec3 lightNormal = normalize(lightDir);",
                    "            float distToSurf = length(lightDir) * uCamera.w;",
                    "            float diffuseFactor = max(dot(normal, lightNormal), 0.0);",
                    "            float radius = (light.radius / res.x * uCamera.w) * uCamera.w;",
                    "            float attenuation = clamp(1.0 - distToSurf * distToSurf / (radius * radius), 0.0, 1.0);",
                    "            vec3 diffuse = light.color * diffuseFactor;",
                    "            finalColor += (attenuation * diffuse) * light.intensity;",
                    "        }",
                    "    }",
                    "    vec4 colorOutput = vec4(uAmbientLightColor + finalColor, 1.0);",
                    "    gl_FragColor = color * vec4(colorOutput.rgb * colorOutput.a, colorOutput.a);",
                    "}"
                ].join("\n");
            },
            98921: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_LINEAR_BLEND_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler1;",
                    "uniform sampler2D uMainSampler2;",
                    "uniform float uStrength;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    vec4 frame1 = texture2D(uMainSampler1, outTexCoord);",
                    "    vec4 frame2 = texture2D(uMainSampler2, outTexCoord);",
                    "    gl_FragColor = mix(frame1, frame2 * uStrength, 0.5);",
                    "}"
                ].join("\n");
            },
            25005: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_MESH_FS",
                    "precision mediump float;",
                    "uniform vec3 uLightPosition;",
                    "uniform vec3 uLightAmbient;",
                    "uniform vec3 uLightDiffuse;",
                    "uniform vec3 uLightSpecular;",
                    "uniform vec3 uFogColor;",
                    "uniform float uFogNear;",
                    "uniform float uFogFar;",
                    "uniform vec3 uMaterialAmbient;",
                    "uniform vec3 uMaterialDiffuse;",
                    "uniform vec3 uMaterialSpecular;",
                    "uniform float uMaterialShine;",
                    "uniform vec3 uCameraPosition;",
                    "uniform sampler2D uTexture;",
                    "varying vec2 vTextureCoord;",
                    "varying vec3 vNormal;",
                    "varying vec3 vPosition;",
                    "void main (void)",
                    "{",
                    "    vec4 color = texture2D(uTexture, vTextureCoord);",
                    "    vec3 ambient = uLightAmbient * uMaterialAmbient;",
                    "    vec3 norm = normalize(vNormal);",
                    "    vec3 lightDir = normalize(uLightPosition - vPosition);",
                    "    float diff = max(dot(norm, lightDir), 0.0);",
                    "    vec3 diffuse = uLightDiffuse * (diff * uMaterialDiffuse);",
                    "    vec3 viewDir = normalize(uCameraPosition - vPosition);",
                    "    vec3 reflectDir = reflect(-lightDir, norm);",
                    "    float spec = pow(max(dot(viewDir, reflectDir), 0.0), uMaterialShine);",
                    "    vec3 specular = uLightSpecular * (spec * uMaterialSpecular);",
                    "    vec3 result = (ambient + diffuse + specular) * color.rgb;",
                    "    float depth = gl_FragCoord.z / gl_FragCoord.w;",
                    "    float fogFactor = smoothstep(uFogNear, uFogFar, depth);",
                    "    gl_FragColor.rgb = mix(result.rgb, uFogColor, fogFactor);",
                    "    gl_FragColor.a = color.a;",
                    "}"
                ].join("\n");
            },
            94914: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_MESH_VS",
                    "precision mediump float;",
                    "attribute vec3 aVertexPosition;",
                    "attribute vec3 aVertexNormal;",
                    "attribute vec2 aTextureCoord;",
                    "uniform mat4 uViewProjectionMatrix;",
                    "uniform mat4 uModelMatrix;",
                    "uniform mat4 uNormalMatrix;",
                    "varying vec2 vTextureCoord;",
                    "varying vec3 vNormal;",
                    "varying vec3 vPosition;",
                    "void main ()",
                    "{",
                    "    vTextureCoord = aTextureCoord;",
                    "    vPosition = vec3(uModelMatrix * vec4(aVertexPosition, 1.0));",
                    "    vNormal = vec3(uNormalMatrix * vec4(aVertexNormal, 1.0));",
                    "    gl_Position = uViewProjectionMatrix * uModelMatrix * vec4(aVertexPosition, 1.0);",
                    "}"
                ].join("\n");
            },
            11263: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_MOBILE_FS",
                    "#ifdef GL_FRAGMENT_PRECISION_HIGH",
                    "precision highp float;",
                    "#else",
                    "precision mediump float;",
                    "#endif",
                    "uniform sampler2D uMainSampler;",
                    "varying vec2 outTexCoord;",
                    "varying float outTintEffect;",
                    "varying vec4 outTint;",
                    "void main ()",
                    "{",
                    "    vec4 texel = vec4(outTint.bgr * outTint.a, outTint.a);",
                    "    vec4 texture = texture2D(uMainSampler, outTexCoord);",
                    "    vec4 color = texture * texel;",
                    "    if (outTintEffect == 1.0)",
                    "    {",
                    "        color.rgb = mix(texture.rgb, outTint.bgr * outTint.a, texture.a);",
                    "    }",
                    "    else if (outTintEffect == 2.0)",
                    "    {",
                    "        color = texel;",
                    "    }",
                    "    gl_FragColor = color;",
                    "}"
                ].join("\n");
            },
            51852: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_MOBILE_VS",
                    "#ifdef GL_FRAGMENT_PRECISION_HIGH",
                    "precision highp float;",
                    "#else",
                    "precision mediump float;",
                    "#endif",
                    "uniform mat4 uProjectionMatrix;",
                    "attribute vec2 inPosition;",
                    "attribute vec2 inTexCoord;",
                    "attribute float inTexId;",
                    "attribute float inTintEffect;",
                    "attribute vec4 inTint;",
                    "varying vec2 outTexCoord;",
                    "varying float outTintEffect;",
                    "varying vec4 outTint;",
                    "void main ()",
                    "{",
                    "    gl_Position = uProjectionMatrix * vec4(inPosition, 1.0, 1.0);",
                    "    outTexCoord = inTexCoord;",
                    "    outTint = inTint;",
                    "    outTintEffect = inTintEffect;",
                    "}"
                ].join("\n");
            },
            53787: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_MULTI_FS",
                    "#ifdef GL_FRAGMENT_PRECISION_HIGH",
                    "precision highp float;",
                    "#else",
                    "precision mediump float;",
                    "#endif",
                    "uniform sampler2D uMainSampler[%count%];",
                    "varying vec2 outTexCoord;",
                    "varying float outTexId;",
                    "varying float outTintEffect;",
                    "varying vec4 outTint;",
                    "void main ()",
                    "{",
                    "    vec4 texture;",
                    "    %forloop%",
                    "    vec4 texel = vec4(outTint.bgr * outTint.a, outTint.a);",
                    "    vec4 color = texture * texel;",
                    "    if (outTintEffect == 1.0)",
                    "    {",
                    "        color.rgb = mix(texture.rgb, outTint.bgr * outTint.a, texture.a);",
                    "    }",
                    "    else if (outTintEffect == 2.0)",
                    "    {",
                    "        color = texel;",
                    "    }",
                    "    gl_FragColor = color;",
                    "}"
                ].join("\n");
            },
            15968: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_MULTI_VS",
                    "#ifdef GL_FRAGMENT_PRECISION_HIGH",
                    "precision highp float;",
                    "#else",
                    "precision mediump float;",
                    "#endif",
                    "uniform mat4 uProjectionMatrix;",
                    "attribute vec2 inPosition;",
                    "attribute vec2 inTexCoord;",
                    "attribute float inTexId;",
                    "attribute float inTintEffect;",
                    "attribute vec4 inTint;",
                    "varying vec2 outTexCoord;",
                    "varying float outTexId;",
                    "varying float outTintEffect;",
                    "varying vec4 outTint;",
                    "void main ()",
                    "{",
                    "    gl_Position = uProjectionMatrix * vec4(inPosition, 1.0, 1.0);",
                    "    outTexCoord = inTexCoord;",
                    "    outTexId = inTexId;",
                    "    outTint = inTint;",
                    "    outTintEffect = inTintEffect;",
                    "}"
                ].join("\n");
            },
            83327: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_POINTLIGHT_FS",
                    "precision mediump float;",
                    "uniform vec2 uResolution;",
                    "uniform float uCameraZoom;",
                    "varying vec4 lightPosition;",
                    "varying vec4 lightColor;",
                    "varying float lightRadius;",
                    "varying float lightAttenuation;",
                    "void main ()",
                    "{",
                    "    vec2 center = (lightPosition.xy + 1.0) * (uResolution.xy * 0.5);",
                    "    float distToSurf = length(center - gl_FragCoord.xy);",
                    "    float radius = 1.0 - distToSurf / (lightRadius * uCameraZoom);",
                    "    float intensity = smoothstep(0.0, 1.0, radius * lightAttenuation);",
                    "    vec4 color = vec4(intensity, intensity, intensity, 0.0) * lightColor;",
                    "    gl_FragColor = vec4(color.rgb * lightColor.a, color.a);",
                    "}"
                ].join("\n");
            },
            54677: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_POINTLIGHT_VS",
                    "precision mediump float;",
                    "uniform mat4 uProjectionMatrix;",
                    "attribute vec2 inPosition;",
                    "attribute vec2 inLightPosition;",
                    "attribute vec4 inLightColor;",
                    "attribute float inLightRadius;",
                    "attribute float inLightAttenuation;",
                    "varying vec4 lightPosition;",
                    "varying vec4 lightColor;",
                    "varying float lightRadius;",
                    "varying float lightAttenuation;",
                    "void main ()",
                    "{",
                    "    lightColor = inLightColor;",
                    "    lightRadius = inLightRadius;",
                    "    lightAttenuation = inLightAttenuation;",
                    "    lightPosition = uProjectionMatrix * vec4(inLightPosition, 1.0, 1.0);",
                    "    gl_Position = uProjectionMatrix * vec4(inPosition, 1.0, 1.0);",
                    "}"
                ].join("\n");
            },
            12569: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_POSTFX_FS",
                    "precision mediump float;",
                    "uniform sampler2D uMainSampler;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    gl_FragColor = texture2D(uMainSampler, outTexCoord);",
                    "}"
                ].join("\n");
            },
            99365: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_QUAD_VS",
                    "precision mediump float;",
                    "attribute vec2 inPosition;",
                    "attribute vec2 inTexCoord;",
                    "varying vec2 outFragCoord;",
                    "varying vec2 outTexCoord;",
                    "void main ()",
                    "{",
                    "    outFragCoord = inPosition.xy * 0.5 + 0.5;",
                    "    outTexCoord = inTexCoord;",
                    "    gl_Position = vec4(inPosition, 0, 1);",
                    "}"
                ].join("\n");
            },
            85060: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_SINGLE_FS",
                    "#ifdef GL_FRAGMENT_PRECISION_HIGH",
                    "precision highp float;",
                    "#else",
                    "precision mediump float;",
                    "#endif",
                    "uniform sampler2D uMainSampler;",
                    "varying vec2 outTexCoord;",
                    "varying float outTintEffect;",
                    "varying vec4 outTint;",
                    "void main ()",
                    "{",
                    "    vec4 texture = texture2D(uMainSampler, outTexCoord);",
                    "    vec4 texel = vec4(outTint.bgr * outTint.a, outTint.a);",
                    "    vec4 color = texture * texel;",
                    "    if (outTintEffect == 1.0)",
                    "    {",
                    "        color.rgb = mix(texture.rgb, outTint.bgr * outTint.a, texture.a);",
                    "    }",
                    "    else if (outTintEffect == 2.0)",
                    "    {",
                    "        color = texel;",
                    "    }",
                    "    gl_FragColor = color;",
                    "}"
                ].join("\n");
            },
            18166: (t)=>{
                t.exports = [
                    "#define SHADER_NAME PHASER_SINGLE_VS",
                    "precision mediump float;",
                    "uniform mat4 uProjectionMatrix;",
                    "attribute vec2 inPosition;",
                    "attribute vec2 inTexCoord;",
                    "attribute float inTexId;",
                    "attribute float inTintEffect;",
                    "attribute vec4 inTint;",
                    "varying vec2 outTexCoord;",
                    "varying float outTintEffect;",
                    "varying vec4 outTint;",
                    "void main ()",
                    "{",
                    "    gl_Position = uProjectionMatrix * vec4(inPosition, 1.0, 1.0);",
                    "    outTexCoord = inTexCoord;",
                    "    outTint = inTint;",
                    "    outTintEffect = inTintEffect;",
                    "}"
                ].join("\n");
            },
            92462: (t, e, i)=>{
                t.exports = {
                    AddBlendFrag: i(2529),
                    BitmapMaskFrag: i(91679),
                    BitmapMaskVert: i(89053),
                    ColorMatrixFrag: i(37486),
                    CopyFrag: i(79060),
                    FXBarrelFrag: i(87751),
                    FXBloomFrag: i(88222),
                    FXBlurHighFrag: i(44481),
                    FXBlurLowFrag: i(35491),
                    FXBlurMedFrag: i(75568),
                    FXBokehFrag: i(69960),
                    FXCircleFrag: i(33754),
                    FXDisplacementFrag: i(35668),
                    FXGlowFrag: i(69675),
                    FXGradientFrag: i(90993),
                    FXPixelateFrag: i(37945),
                    FXShadowFrag: i(85718),
                    FXShineFrag: i(13740),
                    FXVignetteFrag: i(80617),
                    FXWipeFrag: i(62879),
                    LightFrag: i(65045),
                    LinearBlendFrag: i(98921),
                    MeshFrag: i(25005),
                    MeshVert: i(94914),
                    MobileFrag: i(11263),
                    MobileVert: i(51852),
                    MultiFrag: i(53787),
                    MultiVert: i(15968),
                    PointLightFrag: i(83327),
                    PointLightVert: i(54677),
                    PostFXFrag: i(12569),
                    QuadVert: i(99365),
                    SingleFrag: i(85060),
                    SingleVert: i(18166)
                };
            },
            756: (t, e, i)=>{
                var s = i(55301), n = i(56694), r = i(6659), o = i(40444), a = i(97081), h = i(74181), l = i(2893), u = i(9229), c = i(72283), d = i(74118), f = i(90881), p = i(84314), v = i(93736), g = i(47751), m = new n({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this), this.game = t, this.canvas, this.canvasBounds = new d, this.parent = null, this.parentIsWindow = !1, this.parentSize = new f, this.gameSize = new f, this.baseSize = new f, this.displaySize = new f, this.scaleMode = s.SCALE_MODE.NONE, this.zoom = 1, this._resetZoom = !1, this.displayScale = new v(1, 1), this.autoRound = !1, this.autoCenter = s.CENTER.NO_CENTER, this.orientation = s.ORIENTATION.LANDSCAPE, this.fullscreen, this.fullscreenTarget = null, this._createdFullscreenTarget = !1, this.dirty = !1, this.resizeInterval = 500, this._lastCheck = 0, this._checkOrientation = !1, this.domlisteners = {
                            orientationChange: c,
                            windowResize: c,
                            fullScreenChange: c,
                            fullScreenError: c
                        };
                    },
                    preBoot: function() {
                        this.parseConfig(this.game.config), this.game.events.once(a.BOOT, this.boot, this);
                    },
                    boot: function() {
                        var t = this.game;
                        this.canvas = t.canvas, this.fullscreen = t.device.fullscreen, this.scaleMode !== s.SCALE_MODE.RESIZE && this.displaySize.setAspectMode(this.scaleMode), this.scaleMode === s.SCALE_MODE.NONE ? this.resize(this.width, this.height) : (this.getParentBounds(), this.parentSize.width > 0 && this.parentSize.height > 0 && this.displaySize.setParent(this.parentSize), this.refresh()), t.events.on(a.PRE_STEP, this.step, this), t.events.once(a.READY, this.refresh, this), t.events.once(a.DESTROY, this.destroy, this), this.startListeners();
                    },
                    parseConfig: function(t) {
                        this.getParent(t), this.getParentBounds();
                        var e = t.width, i = t.height, n = t.scaleMode, r = t.zoom, o = t.autoRound;
                        if ("string" == typeof e) {
                            var a = this.parentSize.width;
                            0 === a && (a = window.innerWidth);
                            var h = parseInt(e, 10) / 100;
                            e = Math.floor(a * h);
                        }
                        if ("string" == typeof i) {
                            var l = this.parentSize.height;
                            0 === l && (l = window.innerHeight);
                            var c = parseInt(i, 10) / 100;
                            i = Math.floor(l * c);
                        }
                        this.scaleMode = n, this.autoRound = o, this.autoCenter = t.autoCenter, this.resizeInterval = t.resizeInterval, o && (e = Math.floor(e), i = Math.floor(i)), this.gameSize.setSize(e, i), r === s.ZOOM.MAX_ZOOM && (r = this.getMaxZoom()), this.zoom = r, 1 !== r && (this._resetZoom = !0), this.baseSize.setSize(e, i), o && (this.baseSize.width = Math.floor(this.baseSize.width), this.baseSize.height = Math.floor(this.baseSize.height)), t.minWidth > 0 && this.displaySize.setMin(t.minWidth * r, t.minHeight * r), t.maxWidth > 0 && this.displaySize.setMax(t.maxWidth * r, t.maxHeight * r), this.displaySize.setSize(e, i), this.orientation = u(e, i);
                    },
                    getParent: function(t) {
                        var e = t.parent;
                        if (null !== e) {
                            if (this.parent = l(e), this.parentIsWindow = this.parent === document.body, t.expandParent && t.scaleMode !== s.SCALE_MODE.NONE) {
                                var i = this.parent.getBoundingClientRect();
                                (this.parentIsWindow || 0 === i.height) && (document.documentElement.style.height = "100%", document.body.style.height = "100%", i = this.parent.getBoundingClientRect(), this.parentIsWindow || 0 !== i.height || (this.parent.style.overflow = "hidden", this.parent.style.width = "100%", this.parent.style.height = "100%"));
                            }
                            t.fullscreenTarget && !this.fullscreenTarget && (this.fullscreenTarget = l(t.fullscreenTarget));
                        }
                    },
                    getParentBounds: function() {
                        if (!this.parent) return !1;
                        var t = this.parentSize, e = this.parent.getBoundingClientRect();
                        this.parentIsWindow && this.game.device.os.iOS && (e.height = h(!0));
                        var i = e.width, s = e.height;
                        if (t.width !== i || t.height !== s) return t.setSize(i, s), !0;
                        if (this.canvas) {
                            var n = this.canvasBounds, r = this.canvas.getBoundingClientRect();
                            if (r.x !== n.x || r.y !== n.y) return !0;
                        }
                        return !1;
                    },
                    lockOrientation: function(t) {
                        var e = screen.lockOrientation || screen.mozLockOrientation || screen.msLockOrientation;
                        return !!e && e.call(screen, t);
                    },
                    setParentSize: function(t, e) {
                        return this.parentSize.setSize(t, e), this.refresh();
                    },
                    setGameSize: function(t, e) {
                        var i = this.autoRound;
                        i && (t = Math.floor(t), e = Math.floor(e));
                        var s = this.width, n = this.height;
                        return this.gameSize.resize(t, e), this.baseSize.resize(t, e), i && (this.baseSize.width = Math.floor(this.baseSize.width), this.baseSize.height = Math.floor(this.baseSize.height)), this.displaySize.setAspectRatio(t / e), this.canvas.width = this.baseSize.width, this.canvas.height = this.baseSize.height, this.refresh(s, n);
                    },
                    resize: function(t, e) {
                        var i = this.zoom, s = this.autoRound;
                        s && (t = Math.floor(t), e = Math.floor(e));
                        var n = this.width, r = this.height;
                        this.gameSize.resize(t, e), this.baseSize.resize(t, e), s && (this.baseSize.width = Math.floor(this.baseSize.width), this.baseSize.height = Math.floor(this.baseSize.height)), this.displaySize.setSize(t * i, e * i), this.canvas.width = this.baseSize.width, this.canvas.height = this.baseSize.height;
                        var o = this.canvas.style, a = t * i, h = e * i;
                        return s && (a = Math.floor(a), h = Math.floor(h)), a === t && h === e || (o.width = a + "px", o.height = h + "px"), this.refresh(n, r);
                    },
                    setZoom: function(t) {
                        return this.zoom = t, this._resetZoom = !0, this.refresh();
                    },
                    setMaxZoom: function() {
                        return this.zoom = this.getMaxZoom(), this._resetZoom = !0, this.refresh();
                    },
                    refresh: function(t, e) {
                        void 0 === t && (t = this.width), void 0 === e && (e = this.height), this.updateScale(), this.updateBounds(), this.updateOrientation(), this.displayScale.set(this.baseSize.width / this.canvasBounds.width, this.baseSize.height / this.canvasBounds.height);
                        var i = this.game.domContainer;
                        if (i) {
                            this.baseSize.setCSS(i);
                            var s = this.canvas.style, n = i.style;
                            n.transform = "scale(" + this.displaySize.width / this.baseSize.width + "," + this.displaySize.height / this.baseSize.height + ")", n.marginLeft = s.marginLeft, n.marginTop = s.marginTop;
                        }
                        return this.emit(o.RESIZE, this.gameSize, this.baseSize, this.displaySize, t, e), this;
                    },
                    updateOrientation: function() {
                        if (this._checkOrientation) {
                            this._checkOrientation = !1;
                            var t = u(this.width, this.height);
                            t !== this.orientation && (this.orientation = t, this.emit(o.ORIENTATION_CHANGE, t));
                        }
                    },
                    updateScale: function() {
                        var t, e, i = this.canvas.style, n = this.gameSize.width, r = this.gameSize.height, o = this.zoom, a = this.autoRound;
                        this.scaleMode === s.SCALE_MODE.NONE ? (this.displaySize.setSize(n * o, r * o), t = this.displaySize.width, e = this.displaySize.height, a && (t = Math.floor(t), e = Math.floor(e)), this._resetZoom && (i.width = t + "px", i.height = e + "px", this._resetZoom = !1)) : this.scaleMode === s.SCALE_MODE.RESIZE ? (this.displaySize.setSize(this.parentSize.width, this.parentSize.height), this.gameSize.setSize(this.displaySize.width, this.displaySize.height), this.baseSize.setSize(this.displaySize.width, this.displaySize.height), t = this.displaySize.width, e = this.displaySize.height, a && (t = Math.floor(t), e = Math.floor(e)), this.canvas.width = t, this.canvas.height = e) : (this.displaySize.setSize(this.parentSize.width, this.parentSize.height), t = this.displaySize.width, e = this.displaySize.height, a && (t = Math.floor(t), e = Math.floor(e)), i.width = t + "px", i.height = e + "px"), this.getParentBounds(), this.updateCenter();
                    },
                    getMaxZoom: function() {
                        var t = p(this.parentSize.width, this.gameSize.width, 0, !0), e = p(this.parentSize.height, this.gameSize.height, 0, !0);
                        return Math.max(Math.min(t, e), 1);
                    },
                    updateCenter: function() {
                        var t = this.autoCenter;
                        if (t !== s.CENTER.NO_CENTER) {
                            var e = this.canvas, i = e.style, n = e.getBoundingClientRect(), r = n.width, o = n.height, a = Math.floor((this.parentSize.width - r) / 2), h = Math.floor((this.parentSize.height - o) / 2);
                            t === s.CENTER.CENTER_HORIZONTALLY ? h = 0 : t === s.CENTER.CENTER_VERTICALLY && (a = 0), i.marginLeft = a + "px", i.marginTop = h + "px";
                        }
                    },
                    updateBounds: function() {
                        var t = this.canvasBounds, e = this.canvas.getBoundingClientRect();
                        t.x = e.left + (window.pageXOffset || 0) - (document.documentElement.clientLeft || 0), t.y = e.top + (window.pageYOffset || 0) - (document.documentElement.clientTop || 0), t.width = e.width, t.height = e.height;
                    },
                    transformX: function(t) {
                        return (t - this.canvasBounds.left) * this.displayScale.x;
                    },
                    transformY: function(t) {
                        return (t - this.canvasBounds.top) * this.displayScale.y;
                    },
                    startFullscreen: function(t) {
                        void 0 === t && (t = {
                            navigationUI: "hide"
                        });
                        var e = this.fullscreen;
                        if (e.available) {
                            if (!e.active) {
                                var i = this.getFullscreenTarget();
                                e.keyboard ? i[e.request](Element.ALLOW_KEYBOARD_INPUT) : i[e.request](t);
                            }
                        } else this.emit(o.FULLSCREEN_UNSUPPORTED);
                    },
                    fullscreenSuccessHandler: function() {
                        this.getParentBounds(), this.refresh(), this.emit(o.ENTER_FULLSCREEN);
                    },
                    fullscreenErrorHandler: function(t) {
                        this.removeFullscreenTarget(), this.emit(o.FULLSCREEN_FAILED, t);
                    },
                    getFullscreenTarget: function() {
                        if (!this.fullscreenTarget) {
                            var t = document.createElement("div");
                            t.style.margin = "0", t.style.padding = "0", t.style.width = "100%", t.style.height = "100%", this.fullscreenTarget = t, this._createdFullscreenTarget = !0;
                        }
                        this._createdFullscreenTarget && (this.canvas.parentNode.insertBefore(this.fullscreenTarget, this.canvas), this.fullscreenTarget.appendChild(this.canvas));
                        return this.fullscreenTarget;
                    },
                    removeFullscreenTarget: function() {
                        if (this._createdFullscreenTarget) {
                            var t = this.fullscreenTarget;
                            if (t && t.parentNode) {
                                var e = t.parentNode;
                                e.insertBefore(this.canvas, t), e.removeChild(t);
                            }
                        }
                    },
                    stopFullscreen: function() {
                        var t = this.fullscreen;
                        if (!t.available) return this.emit(o.FULLSCREEN_UNSUPPORTED), !1;
                        t.active && document[t.cancel](), this.removeFullscreenTarget(), this.getParentBounds(), this.emit(o.LEAVE_FULLSCREEN), this.refresh();
                    },
                    toggleFullscreen: function(t) {
                        this.fullscreen.active ? this.stopFullscreen() : this.startFullscreen(t);
                    },
                    startListeners: function() {
                        var t = this, e = this.domlisteners;
                        if (e.orientationChange = function() {
                            t.updateBounds(), t._checkOrientation = !0, t.dirty = !0;
                        }, e.windowResize = function() {
                            t.updateBounds(), t.dirty = !0;
                        }, window.addEventListener("orientationchange", e.orientationChange, !1), window.addEventListener("resize", e.windowResize, !1), this.fullscreen.available) {
                            e.fullScreenChange = function(e) {
                                return t.onFullScreenChange(e);
                            }, e.fullScreenError = function(e) {
                                return t.onFullScreenError(e);
                            };
                            [
                                "webkit",
                                "moz",
                                ""
                            ].forEach(function(t) {
                                document.addEventListener(t + "fullscreenchange", e.fullScreenChange, !1), document.addEventListener(t + "fullscreenerror", e.fullScreenError, !1);
                            }), document.addEventListener("MSFullscreenChange", e.fullScreenChange, !1), document.addEventListener("MSFullscreenError", e.fullScreenError, !1);
                        }
                    },
                    onFullScreenChange: function() {
                        document.fullscreenElement || document.webkitFullscreenElement || document.msFullscreenElement || document.mozFullScreenElement ? this.fullscreenSuccessHandler() : this.stopFullscreen();
                    },
                    onFullScreenError: function() {
                        this.removeFullscreenTarget();
                    },
                    getViewPort: function(t, e) {
                        t instanceof g || (e = t, t = void 0), void 0 === e && (e = new d);
                        var i, s, n = this.baseSize, r = this.parentSize, o = this.canvasBounds, a = this.displayScale, h = o.x >= 0 ? 0 : -o.x * a.x, l = o.y >= 0 ? 0 : -o.y * a.y;
                        return i = r.width >= o.width ? n.width : n.width - (o.width - r.width) * a.x, s = r.height >= o.height ? n.height : n.height - (o.height - r.height) * a.y, e.setTo(h, l, i, s), t && (e.width /= t.zoomX, e.height /= t.zoomY, e.centerX = t.centerX + t.scrollX, e.centerY = t.centerY + t.scrollY), e;
                    },
                    step: function(t, e) {
                        this.parent && (this._lastCheck += e, (this.dirty || this._lastCheck > this.resizeInterval) && (this.getParentBounds() && this.refresh(), this.dirty = !1, this._lastCheck = 0));
                    },
                    stopListeners: function() {
                        var t = this.domlisteners;
                        window.removeEventListener("orientationchange", t.orientationChange, !1), window.removeEventListener("resize", t.windowResize, !1);
                        [
                            "webkit",
                            "moz",
                            ""
                        ].forEach(function(e) {
                            document.removeEventListener(e + "fullscreenchange", t.fullScreenChange, !1), document.removeEventListener(e + "fullscreenerror", t.fullScreenError, !1);
                        }), document.removeEventListener("MSFullscreenChange", t.fullScreenChange, !1), document.removeEventListener("MSFullscreenError", t.fullScreenError, !1);
                    },
                    destroy: function() {
                        this.removeAllListeners(), this.stopListeners(), this.game = null, this.canvas = null, this.canvasBounds = null, this.parent = null, this.fullscreenTarget = null, this.parentSize.destroy(), this.gameSize.destroy(), this.baseSize.destroy(), this.displaySize.destroy();
                    },
                    isFullscreen: {
                        get: function() {
                            return this.fullscreen.active;
                        }
                    },
                    width: {
                        get: function() {
                            return this.gameSize.width;
                        }
                    },
                    height: {
                        get: function() {
                            return this.gameSize.height;
                        }
                    },
                    isPortrait: {
                        get: function() {
                            return this.orientation === s.ORIENTATION.PORTRAIT;
                        }
                    },
                    isLandscape: {
                        get: function() {
                            return this.orientation === s.ORIENTATION.LANDSCAPE;
                        }
                    },
                    isGamePortrait: {
                        get: function() {
                            return this.height > this.width;
                        }
                    },
                    isGameLandscape: {
                        get: function() {
                            return this.width > this.height;
                        }
                    }
                });
                t.exports = m;
            },
            35098: (t)=>{
                t.exports = {
                    NO_CENTER: 0,
                    CENTER_BOTH: 1,
                    CENTER_HORIZONTALLY: 2,
                    CENTER_VERTICALLY: 3
                };
            },
            53539: (t)=>{
                t.exports = {
                    LANDSCAPE: "landscape-primary",
                    PORTRAIT: "portrait-primary"
                };
            },
            12637: (t)=>{
                t.exports = {
                    NONE: 0,
                    WIDTH_CONTROLS_HEIGHT: 1,
                    HEIGHT_CONTROLS_WIDTH: 2,
                    FIT: 3,
                    ENVELOP: 4,
                    RESIZE: 5
                };
            },
            10217: (t)=>{
                t.exports = {
                    NO_ZOOM: 1,
                    ZOOM_2X: 2,
                    ZOOM_4X: 4,
                    MAX_ZOOM: -1
                };
            },
            55301: (t, e, i)=>{
                var s = {
                    CENTER: i(35098),
                    ORIENTATION: i(53539),
                    SCALE_MODE: i(12637),
                    ZOOM: i(10217)
                };
                t.exports = s;
            },
            82085: (t)=>{
                t.exports = "enterfullscreen";
            },
            11826: (t)=>{
                t.exports = "fullscreenfailed";
            },
            56691: (t)=>{
                t.exports = "fullscreenunsupported";
            },
            34739: (t)=>{
                t.exports = "leavefullscreen";
            },
            26681: (t)=>{
                t.exports = "orientationchange";
            },
            11428: (t)=>{
                t.exports = "resize";
            },
            40444: (t, e, i)=>{
                t.exports = {
                    ENTER_FULLSCREEN: i(82085),
                    FULLSCREEN_FAILED: i(11826),
                    FULLSCREEN_UNSUPPORTED: i(56691),
                    LEAVE_FULLSCREEN: i(34739),
                    ORIENTATION_CHANGE: i(26681),
                    RESIZE: i(11428)
                };
            },
            86754: (t, e, i)=>{
                var s = i(98611), n = i(55301), r = {
                    Center: i(35098),
                    Events: i(40444),
                    Orientation: i(53539),
                    ScaleManager: i(756),
                    ScaleModes: i(12637),
                    Zoom: i(10217)
                };
                r = s(!1, r, n.CENTER), r = s(!1, r, n.ORIENTATION), r = s(!1, r, n.SCALE_MODE), r = s(!1, r, n.ZOOM), t.exports = r;
            },
            47736: (t, e, i)=>{
                var s = i(72632), n = i(40587);
                t.exports = function(t) {
                    var e = t.game.config.defaultPhysicsSystem, i = s(t.settings, "physics", !1);
                    if (e || i) {
                        var r = [];
                        if (e && r.push(n(e + "Physics")), i) for(var o in i)o = n(o.concat("Physics")), -1 === r.indexOf(o) && r.push(o);
                        return r;
                    }
                };
            },
            91088: (t, e, i)=>{
                var s = i(72632);
                t.exports = function(t) {
                    var e = t.plugins.getDefaultScenePlugins(), i = s(t.settings, "plugins", !1);
                    return Array.isArray(i) ? i : e || [];
                };
            },
            90415: (t)=>{
                t.exports = {
                    game: "game",
                    renderer: "renderer",
                    anims: "anims",
                    cache: "cache",
                    plugins: "plugins",
                    registry: "registry",
                    scale: "scale",
                    sound: "sound",
                    textures: "textures",
                    events: "events",
                    cameras: "cameras",
                    add: "add",
                    make: "make",
                    scenePlugin: "scene",
                    displayList: "children",
                    lights: "lights",
                    data: "data",
                    input: "input",
                    load: "load",
                    time: "time",
                    tweens: "tweens",
                    arcadePhysics: "physics",
                    impactPhysics: "impact",
                    matterPhysics: "matter"
                };
            },
            87157: (t, e, i)=>{
                var s = i(56694), n = i(63946), r = new s({
                    initialize: function(t) {
                        this.sys = new n(this, t), this.game, this.anims, this.cache, this.registry, this.sound, this.textures, this.events, this.cameras, this.add, this.make, this.scene, this.children, this.lights, this.data, this.input, this.load, this.time, this.tweens, this.physics, this.matter, this.scale, this.plugins, this.renderer;
                    },
                    update: function() {}
                });
                t.exports = r;
            },
            13553: (t, e, i)=>{
                var s = i(56694), n = i(92980), r = i(7599), o = i(97081), a = i(10850), h = i(683), l = i(72283), u = i(87157), c = i(63946), d = new s({
                    initialize: function(t, e) {
                        if (this.game = t, this.keys = {}, this.scenes = [], this._pending = [], this._start = [], this._queue = [], this._data = {}, this.isProcessing = !1, this.isBooted = !1, this.customViewports = 0, this.systemScene, e) {
                            Array.isArray(e) || (e = [
                                e
                            ]);
                            for(var i = 0; i < e.length; i++)this._pending.push({
                                key: "default",
                                scene: e[i],
                                autoStart: 0 === i,
                                data: {}
                            });
                        }
                        t.events.once(o.READY, this.bootQueue, this);
                    },
                    bootQueue: function() {
                        if (!this.isBooted) {
                            var t, e, i, s;
                            for(this.systemScene = this.createSceneFromInstance("__SYSTEM", new u), t = 0; t < this._pending.length; t++){
                                var n;
                                i = (e = this._pending[t]).key, (s = e.scene) instanceof u ? n = this.createSceneFromInstance(i, s) : "object" == typeof s ? n = this.createSceneFromObject(i, s) : "function" == typeof s && (n = this.createSceneFromFunction(i, s)), i = n.sys.settings.key, this.keys[i] = n, this.scenes.push(n), this._data[i] && (n.sys.settings.data = this._data[i].data, this._data[i].autoStart && (e.autoStart = !0)), (e.autoStart || n.sys.settings.active) && this._start.push(i);
                            }
                            for(this._pending.length = 0, this._data = {}, this.isBooted = !0, t = 0; t < this._start.length; t++)e = this._start[t], this.start(e);
                            this._start.length = 0;
                        }
                    },
                    processQueue: function() {
                        var t = this._pending.length, e = this._queue.length;
                        if (0 !== t || 0 !== e) {
                            var i, s;
                            if (t) {
                                for(i = 0; i < t; i++)s = this._pending[i], this.add(s.key, s.scene, s.autoStart, s.data);
                                for(i = 0; i < this._start.length; i++)s = this._start[i], this.start(s);
                                this._start.length = 0, this._pending.length = 0;
                            }
                            for(i = 0; i < this._queue.length; i++)this[(s = this._queue[i]).op](s.keyA, s.keyB);
                            this._queue.length = 0;
                        }
                    },
                    add: function(t, e, i, s) {
                        var n;
                        return void 0 === i && (i = !1), void 0 === s && (s = {}), this.isProcessing || !this.isBooted ? (this._pending.push({
                            key: t,
                            scene: e,
                            autoStart: i,
                            data: s
                        }), this.isBooted || (this._data[t] = {
                            data: s
                        }), null) : (t = this.getKey(t, e), e instanceof u ? n = this.createSceneFromInstance(t, e) : "object" == typeof e ? (e.key = t, n = this.createSceneFromObject(t, e)) : "function" == typeof e && (n = this.createSceneFromFunction(t, e)), n.sys.settings.data = s, t = n.sys.settings.key, this.keys[t] = n, this.scenes.push(n), (i || n.sys.settings.active) && (this._pending.length ? this._start.push(t) : this.start(t)), n);
                    },
                    remove: function(t) {
                        if (this.isProcessing) this._queue.push({
                            op: "remove",
                            keyA: t,
                            keyB: null
                        });
                        else {
                            var e = this.getScene(t);
                            if (!e || e.sys.isTransitioning()) return this;
                            var i = this.scenes.indexOf(e), s = e.sys.settings.key;
                            i > -1 && (delete this.keys[s], this.scenes.splice(i, 1), this._start.indexOf(s) > -1 && (i = this._start.indexOf(s), this._start.splice(i, 1)), e.sys.destroy());
                        }
                        return this;
                    },
                    bootScene: function(t) {
                        var e, i = t.sys, s = i.settings;
                        i.sceneUpdate = l, t.init && (t.init.call(t, s.data), s.status = n.INIT, s.isTransition && i.events.emit(r.TRANSITION_INIT, s.transitionFrom, s.transitionDuration)), i.load && (e = i.load).reset(), e && t.preload ? (t.preload.call(t), s.status = n.LOADING, e.once(h.COMPLETE, this.loadComplete, this), e.start()) : this.create(t);
                    },
                    loadComplete: function(t) {
                        this.game.sound && this.game.sound.onBlurPausedSounds && this.game.sound.unlock(), this.create(t.scene);
                    },
                    payloadComplete: function(t) {
                        this.bootScene(t.scene);
                    },
                    update: function(t, e) {
                        this.processQueue(), this.isProcessing = !0;
                        for(var i = this.scenes.length - 1; i >= 0; i--){
                            var s = this.scenes[i].sys;
                            s.settings.status > n.START && s.settings.status <= n.RUNNING && s.step(t, e), s.scenePlugin._target && s.scenePlugin.step(t, e);
                        }
                    },
                    render: function(t) {
                        for(var e = 0; e < this.scenes.length; e++){
                            var i = this.scenes[e].sys;
                            i.settings.visible && i.settings.status >= n.LOADING && i.settings.status < n.SLEEPING && i.render(t);
                        }
                        this.isProcessing = !1;
                    },
                    create: function(t) {
                        var e = t.sys, i = e.settings;
                        t.create && (i.status = n.CREATING, t.create.call(t, i.data), i.status === n.DESTROYED) || (i.isTransition && e.events.emit(r.TRANSITION_START, i.transitionFrom, i.transitionDuration), t.update && (e.sceneUpdate = t.update), i.status = n.RUNNING, e.events.emit(r.CREATE, t));
                    },
                    createSceneFromFunction: function(t, e) {
                        var i = new e;
                        if (i instanceof u) {
                            var s = i.sys.settings.key;
                            if ("" !== s && (t = s), this.keys.hasOwnProperty(t)) throw new Error("Cannot add a Scene with duplicate key: " + t);
                            return this.createSceneFromInstance(t, i);
                        }
                        return i.sys = new c(i), i.sys.settings.key = t, i.sys.init(this.game), i;
                    },
                    createSceneFromInstance: function(t, e) {
                        return "" === e.sys.settings.key && (e.sys.settings.key = t), e.sys.init(this.game), e;
                    },
                    createSceneFromObject: function(t, e) {
                        var i = new u(e), s = i.sys.settings.key;
                        "" !== s ? t = s : i.sys.settings.key = t, i.sys.init(this.game);
                        for(var n = [
                            "init",
                            "preload",
                            "create",
                            "update",
                            "render"
                        ], r = 0; r < n.length; r++){
                            var o = a(e, n[r], null);
                            o && (i[n[r]] = o);
                        }
                        if (e.hasOwnProperty("extend")) {
                            for(var h in e.extend)if (e.extend.hasOwnProperty(h)) {
                                var l = e.extend[h];
                                "data" === h && i.hasOwnProperty("data") && "object" == typeof l ? i.data.merge(l) : "sys" !== h && (i[h] = l);
                            }
                        }
                        return i;
                    },
                    getKey: function(t, e) {
                        if (t || (t = "default"), "function" == typeof e) return t;
                        if (e instanceof u ? t = e.sys.settings.key : "object" == typeof e && e.hasOwnProperty("key") && (t = e.key), this.keys.hasOwnProperty(t)) throw new Error("Cannot add a Scene with duplicate key: " + t);
                        return t;
                    },
                    getScenes: function(t, e) {
                        void 0 === t && (t = !0), void 0 === e && (e = !1);
                        for(var i = [], s = this.scenes, n = 0; n < s.length; n++){
                            var r = s[n];
                            r && (!t || t && r.sys.isActive()) && i.push(r);
                        }
                        return e ? i.reverse() : i;
                    },
                    getScene: function(t) {
                        if ("string" == typeof t) {
                            if (this.keys[t]) return this.keys[t];
                        } else for(var e = 0; e < this.scenes.length; e++)if (t === this.scenes[e]) return t;
                        return null;
                    },
                    isActive: function(t) {
                        var e = this.getScene(t);
                        return e ? e.sys.isActive() : null;
                    },
                    isPaused: function(t) {
                        var e = this.getScene(t);
                        return e ? e.sys.isPaused() : null;
                    },
                    isVisible: function(t) {
                        var e = this.getScene(t);
                        return e ? e.sys.isVisible() : null;
                    },
                    isSleeping: function(t) {
                        var e = this.getScene(t);
                        return e ? e.sys.isSleeping() : null;
                    },
                    pause: function(t, e) {
                        var i = this.getScene(t);
                        return i && i.sys.pause(e), this;
                    },
                    resume: function(t, e) {
                        var i = this.getScene(t);
                        return i && i.sys.resume(e), this;
                    },
                    sleep: function(t, e) {
                        var i = this.getScene(t);
                        return i && !i.sys.isTransitioning() && i.sys.sleep(e), this;
                    },
                    wake: function(t, e) {
                        var i = this.getScene(t);
                        return i && i.sys.wake(e), this;
                    },
                    run: function(t, e) {
                        var i = this.getScene(t);
                        if (!i) {
                            for(var s = 0; s < this._pending.length; s++)if (this._pending[s].key === t) {
                                this.queueOp("start", t, e);
                                break;
                            }
                            return this;
                        }
                        i.sys.isSleeping() ? i.sys.wake(e) : i.sys.isPaused() ? i.sys.resume(e) : this.start(t, e);
                    },
                    start: function(t, e) {
                        if (!this.isBooted) return this._data[t] = {
                            autoStart: !0,
                            data: e
                        }, this;
                        var i = this.getScene(t);
                        if (!i) return console.warn("Scene not found for key: " + t), this;
                        var s, r = i.sys, o = r.settings.status;
                        if (o >= n.START && o <= n.CREATING) return this;
                        if (o >= n.RUNNING && o <= n.SLEEPING) r.shutdown(), r.sceneUpdate = l, r.start(e);
                        else if (r.sceneUpdate = l, r.start(e), r.load && (s = r.load), s && r.settings.hasOwnProperty("pack") && (s.reset(), s.addPack({
                            payload: r.settings.pack
                        }))) return r.settings.status = n.LOADING, s.once(h.COMPLETE, this.payloadComplete, this), s.start(), this;
                        return this.bootScene(i), this;
                    },
                    stop: function(t, e) {
                        var i = this.getScene(t);
                        if (i && !i.sys.isTransitioning() && i.sys.settings.status !== n.SHUTDOWN) {
                            var s = i.sys.load;
                            s && (s.off(h.COMPLETE, this.loadComplete, this), s.off(h.COMPLETE, this.payloadComplete, this)), i.sys.shutdown(e);
                        }
                        return this;
                    },
                    switch: function(t, e) {
                        var i = this.getScene(t), s = this.getScene(e);
                        return i && s && i !== s && (this.sleep(t), this.isSleeping(e) ? this.wake(e) : this.start(e)), this;
                    },
                    getAt: function(t) {
                        return this.scenes[t];
                    },
                    getIndex: function(t) {
                        var e = this.getScene(t);
                        return this.scenes.indexOf(e);
                    },
                    bringToTop: function(t) {
                        if (this.isProcessing) this._queue.push({
                            op: "bringToTop",
                            keyA: t,
                            keyB: null
                        });
                        else {
                            var e = this.getIndex(t);
                            if (-1 !== e && e < this.scenes.length) {
                                var i = this.getScene(t);
                                this.scenes.splice(e, 1), this.scenes.push(i);
                            }
                        }
                        return this;
                    },
                    sendToBack: function(t) {
                        if (this.isProcessing) this._queue.push({
                            op: "sendToBack",
                            keyA: t,
                            keyB: null
                        });
                        else {
                            var e = this.getIndex(t);
                            if (-1 !== e && e > 0) {
                                var i = this.getScene(t);
                                this.scenes.splice(e, 1), this.scenes.unshift(i);
                            }
                        }
                        return this;
                    },
                    moveDown: function(t) {
                        if (this.isProcessing) this._queue.push({
                            op: "moveDown",
                            keyA: t,
                            keyB: null
                        });
                        else {
                            var e = this.getIndex(t);
                            if (e > 0) {
                                var i = e - 1, s = this.getScene(t), n = this.getAt(i);
                                this.scenes[e] = n, this.scenes[i] = s;
                            }
                        }
                        return this;
                    },
                    moveUp: function(t) {
                        if (this.isProcessing) this._queue.push({
                            op: "moveUp",
                            keyA: t,
                            keyB: null
                        });
                        else {
                            var e = this.getIndex(t);
                            if (e < this.scenes.length - 1) {
                                var i = e + 1, s = this.getScene(t), n = this.getAt(i);
                                this.scenes[e] = n, this.scenes[i] = s;
                            }
                        }
                        return this;
                    },
                    moveAbove: function(t, e) {
                        if (t === e) return this;
                        if (this.isProcessing) this._queue.push({
                            op: "moveAbove",
                            keyA: t,
                            keyB: e
                        });
                        else {
                            var i = this.getIndex(t), s = this.getIndex(e);
                            if (-1 !== i && -1 !== s && s < i) {
                                var n = this.getAt(s);
                                this.scenes.splice(s, 1), this.scenes.splice(i + (s > i), 0, n);
                            }
                        }
                        return this;
                    },
                    moveBelow: function(t, e) {
                        if (t === e) return this;
                        if (this.isProcessing) this._queue.push({
                            op: "moveBelow",
                            keyA: t,
                            keyB: e
                        });
                        else {
                            var i = this.getIndex(t), s = this.getIndex(e);
                            if (-1 !== i && -1 !== s && s > i) {
                                var n = this.getAt(s);
                                this.scenes.splice(s, 1), 0 === i ? this.scenes.unshift(n) : this.scenes.splice(i - (s < i), 0, n);
                            }
                        }
                        return this;
                    },
                    queueOp: function(t, e, i) {
                        return this._queue.push({
                            op: t,
                            keyA: e,
                            keyB: i
                        }), this;
                    },
                    swapPosition: function(t, e) {
                        if (t === e) return this;
                        if (this.isProcessing) this._queue.push({
                            op: "swapPosition",
                            keyA: t,
                            keyB: e
                        });
                        else {
                            var i = this.getIndex(t), s = this.getIndex(e);
                            if (i !== s && -1 !== i && -1 !== s) {
                                var n = this.getAt(i);
                                this.scenes[i] = this.scenes[s], this.scenes[s] = n;
                            }
                        }
                        return this;
                    },
                    dump: function() {
                        for(var t = [], e = [
                            "pending",
                            "init",
                            "start",
                            "loading",
                            "creating",
                            "running",
                            "paused",
                            "sleeping",
                            "shutdown",
                            "destroyed"
                        ], i = 0; i < this.scenes.length; i++){
                            var s = this.scenes[i].sys, r = !s.settings.visible || s.settings.status !== n.RUNNING && s.settings.status !== n.PAUSED ? "[-] " : "[*] ";
                            r += s.settings.key + " (" + e[s.settings.status] + ")", t.push(r);
                        }
                        console.log(t.join("\n"));
                    },
                    destroy: function() {
                        for(var t = 0; t < this.scenes.length; t++)this.scenes[t].sys.destroy();
                        this.systemScene.sys.destroy(), this.update = l, this.scenes = [], this._pending = [], this._start = [], this._queue = [], this.game = null, this.systemScene = null;
                    }
                });
                t.exports = d;
            },
            64051: (t, e, i)=>{
                var s = i(82897), n = i(56694), r = i(7599), o = i(72632), a = i(91963), h = new n({
                    initialize: function(t) {
                        this.scene = t, this.systems = t.sys, this.settings = t.sys.settings, this.key = t.sys.settings.key, this.manager = t.sys.game.scene, this.transitionProgress = 0, this._elapsed = 0, this._target = null, this._duration = 0, this._onUpdate, this._onUpdateScope, this._willSleep = !1, this._willRemove = !1, t.sys.events.once(r.BOOT, this.boot, this), t.sys.events.on(r.START, this.pluginStart, this);
                    },
                    boot: function() {
                        this.systems.events.once(r.DESTROY, this.destroy, this);
                    },
                    pluginStart: function() {
                        this._target = null, this.systems.events.once(r.SHUTDOWN, this.shutdown, this);
                    },
                    start: function(t, e) {
                        return void 0 === t && (t = this.key), this.manager.queueOp("stop", this.key), this.manager.queueOp("start", t, e), this;
                    },
                    restart: function(t) {
                        var e = this.key;
                        return this.manager.queueOp("stop", e), this.manager.queueOp("start", e, t), this;
                    },
                    transition: function(t) {
                        void 0 === t && (t = {});
                        var e = o(t, "target", !1), i = this.manager.getScene(e);
                        if (!e || !this.checkValidTransition(i)) return !1;
                        var s = o(t, "duration", 1e3);
                        this._elapsed = 0, this._target = i, this._duration = s, this._willSleep = o(t, "sleep", !1), this._willRemove = o(t, "remove", !1);
                        var n = o(t, "onUpdate", null);
                        n && (this._onUpdate = n, this._onUpdateScope = o(t, "onUpdateScope", this.scene));
                        var a = o(t, "allowInput", !1);
                        this.settings.transitionAllowInput = a;
                        var h = i.sys.settings;
                        h.isTransition = !0, h.transitionFrom = this.scene, h.transitionDuration = s, h.transitionAllowInput = a, o(t, "moveAbove", !1) ? this.manager.moveAbove(this.key, e) : o(t, "moveBelow", !1) && this.manager.moveBelow(this.key, e), i.sys.isSleeping() ? i.sys.wake(o(t, "data")) : this.manager.start(e, o(t, "data"));
                        var l = o(t, "onStart", null), u = o(t, "onStartScope", this.scene);
                        return l && l.call(u, this.scene, i, s), this.systems.events.emit(r.TRANSITION_OUT, i, s), !0;
                    },
                    checkValidTransition: function(t) {
                        return !(!t || t.sys.isActive() || t.sys.isTransitioning() || t === this.scene || this.systems.isTransitioning());
                    },
                    step: function(t, e) {
                        this._elapsed += e, this.transitionProgress = s(this._elapsed / this._duration, 0, 1), this._onUpdate && this._onUpdate.call(this._onUpdateScope, this.transitionProgress), this._elapsed >= this._duration && this.transitionComplete();
                    },
                    transitionComplete: function() {
                        var t = this._target.sys, e = this._target.sys.settings;
                        t.events.emit(r.TRANSITION_COMPLETE, this.scene), e.isTransition = !1, e.transitionFrom = null, this._duration = 0, this._target = null, this._onUpdate = null, this._onUpdateScope = null, this._willRemove ? this.manager.remove(this.key) : this._willSleep ? this.systems.sleep() : this.manager.stop(this.key);
                    },
                    add: function(t, e, i, s) {
                        return this.manager.add(t, e, i, s);
                    },
                    launch: function(t, e) {
                        return t && t !== this.key && this.manager.queueOp("start", t, e), this;
                    },
                    run: function(t, e) {
                        return t && t !== this.key && this.manager.queueOp("run", t, e), this;
                    },
                    pause: function(t, e) {
                        return void 0 === t && (t = this.key), this.manager.queueOp("pause", t, e), this;
                    },
                    resume: function(t, e) {
                        return void 0 === t && (t = this.key), this.manager.queueOp("resume", t, e), this;
                    },
                    sleep: function(t, e) {
                        return void 0 === t && (t = this.key), this.manager.queueOp("sleep", t, e), this;
                    },
                    wake: function(t, e) {
                        return void 0 === t && (t = this.key), this.manager.queueOp("wake", t, e), this;
                    },
                    switch: function(t) {
                        return t !== this.key && this.manager.queueOp("switch", this.key, t), this;
                    },
                    stop: function(t, e) {
                        return void 0 === t && (t = this.key), this.manager.queueOp("stop", t, e), this;
                    },
                    setActive: function(t, e, i) {
                        void 0 === e && (e = this.key);
                        var s = this.manager.getScene(e);
                        return s && s.sys.setActive(t, i), this;
                    },
                    setVisible: function(t, e) {
                        void 0 === e && (e = this.key);
                        var i = this.manager.getScene(e);
                        return i && i.sys.setVisible(t), this;
                    },
                    isSleeping: function(t) {
                        return void 0 === t && (t = this.key), this.manager.isSleeping(t);
                    },
                    isActive: function(t) {
                        return void 0 === t && (t = this.key), this.manager.isActive(t);
                    },
                    isPaused: function(t) {
                        return void 0 === t && (t = this.key), this.manager.isPaused(t);
                    },
                    isVisible: function(t) {
                        return void 0 === t && (t = this.key), this.manager.isVisible(t);
                    },
                    swapPosition: function(t, e) {
                        return void 0 === e && (e = this.key), t !== e && this.manager.swapPosition(t, e), this;
                    },
                    moveAbove: function(t, e) {
                        return void 0 === e && (e = this.key), t !== e && this.manager.moveAbove(t, e), this;
                    },
                    moveBelow: function(t, e) {
                        return void 0 === e && (e = this.key), t !== e && this.manager.moveBelow(t, e), this;
                    },
                    remove: function(t) {
                        return void 0 === t && (t = this.key), this.manager.remove(t), this;
                    },
                    moveUp: function(t) {
                        return void 0 === t && (t = this.key), this.manager.moveUp(t), this;
                    },
                    moveDown: function(t) {
                        return void 0 === t && (t = this.key), this.manager.moveDown(t), this;
                    },
                    bringToTop: function(t) {
                        return void 0 === t && (t = this.key), this.manager.bringToTop(t), this;
                    },
                    sendToBack: function(t) {
                        return void 0 === t && (t = this.key), this.manager.sendToBack(t), this;
                    },
                    get: function(t) {
                        return this.manager.getScene(t);
                    },
                    getStatus: function(t) {
                        var e = this.manager.getScene(t);
                        if (e) return e.sys.getStatus();
                    },
                    getIndex: function(t) {
                        return void 0 === t && (t = this.key), this.manager.getIndex(t);
                    },
                    shutdown: function() {
                        var t = this.systems.events;
                        t.off(r.SHUTDOWN, this.shutdown, this), t.off(r.TRANSITION_OUT);
                    },
                    destroy: function() {
                        this.shutdown(), this.scene.sys.events.off(r.START, this.start, this), this.scene = null, this.systems = null, this.settings = null, this.manager = null;
                    }
                });
                a.register("ScenePlugin", h, "scenePlugin"), t.exports = h;
            },
            36765: (t, e, i)=>{
                var s = i(92980), n = i(10850), r = i(30657), o = i(90415), a = {
                    create: function(t) {
                        return "string" == typeof t ? t = {
                            key: t
                        } : void 0 === t && (t = {}), {
                            status: s.PENDING,
                            key: n(t, "key", ""),
                            active: n(t, "active", !1),
                            visible: n(t, "visible", !0),
                            isBooted: !1,
                            isTransition: !1,
                            transitionFrom: null,
                            transitionDuration: 0,
                            transitionAllowInput: !0,
                            data: {},
                            pack: n(t, "pack", !1),
                            cameras: n(t, "cameras", null),
                            map: n(t, "map", r(o, n(t, "mapAdd", {}))),
                            physics: n(t, "physics", {}),
                            loader: n(t, "loader", {}),
                            plugins: n(t, "plugins", !1),
                            input: n(t, "input", {})
                        };
                    }
                };
                t.exports = a;
            },
            63946: (t, e, i)=>{
                var s = i(56694), n = i(92980), r = i(18360), o = i(7599), a = i(47736), h = i(91088), l = i(72283), u = i(36765), c = new s({
                    initialize: function(t, e) {
                        this.scene = t, this.game, this.renderer, this.config = e, this.settings = u.create(e), this.canvas, this.context, this.anims, this.cache, this.plugins, this.registry, this.scale, this.sound, this.textures, this.add, this.cameras, this.displayList, this.events, this.make, this.scenePlugin, this.updateList, this.sceneUpdate = l;
                    },
                    init: function(t) {
                        this.settings.status = n.INIT, this.sceneUpdate = l, this.game = t, this.renderer = t.renderer, this.canvas = t.canvas, this.context = t.context;
                        var e = t.plugins;
                        this.plugins = e, e.addToScene(this, r.Global, [
                            r.CoreScene,
                            h(this),
                            a(this)
                        ]), this.events.emit(o.BOOT, this), this.settings.isBooted = !0;
                    },
                    step: function(t, e) {
                        var i = this.events;
                        i.emit(o.PRE_UPDATE, t, e), i.emit(o.UPDATE, t, e), this.sceneUpdate.call(this.scene, t, e), i.emit(o.POST_UPDATE, t, e);
                    },
                    render: function(t) {
                        var e = this.displayList;
                        e.depthSort(), this.events.emit(o.PRE_RENDER, t), this.cameras.render(t, e), this.events.emit(o.RENDER, t);
                    },
                    queueDepthSort: function() {
                        this.displayList.queueDepthSort();
                    },
                    depthSort: function() {
                        this.displayList.depthSort();
                    },
                    pause: function(t) {
                        var e = this.settings, i = this.getStatus();
                        return i !== n.CREATING && i !== n.RUNNING ? console.warn("Cannot pause non-running Scene", e.key) : this.settings.active && (e.status = n.PAUSED, e.active = !1, this.events.emit(o.PAUSE, this, t)), this;
                    },
                    resume: function(t) {
                        var e = this.events, i = this.settings;
                        return this.settings.active || (i.status = n.RUNNING, i.active = !0, e.emit(o.RESUME, this, t)), this;
                    },
                    sleep: function(t) {
                        var e = this.settings, i = this.getStatus();
                        return i !== n.CREATING && i !== n.RUNNING ? console.warn("Cannot sleep non-running Scene", e.key) : (e.status = n.SLEEPING, e.active = !1, e.visible = !1, this.events.emit(o.SLEEP, this, t)), this;
                    },
                    wake: function(t) {
                        var e = this.events, i = this.settings;
                        return i.status = n.RUNNING, i.active = !0, i.visible = !0, e.emit(o.WAKE, this, t), i.isTransition && e.emit(o.TRANSITION_WAKE, i.transitionFrom, i.transitionDuration), this;
                    },
                    getData: function() {
                        return this.settings.data;
                    },
                    getStatus: function() {
                        return this.settings.status;
                    },
                    canInput: function() {
                        var t = this.settings.status;
                        return t > n.PENDING && t <= n.RUNNING;
                    },
                    isSleeping: function() {
                        return this.settings.status === n.SLEEPING;
                    },
                    isActive: function() {
                        return this.settings.status === n.RUNNING;
                    },
                    isPaused: function() {
                        return this.settings.status === n.PAUSED;
                    },
                    isTransitioning: function() {
                        return this.settings.isTransition || null !== this.scenePlugin._target;
                    },
                    isTransitionOut: function() {
                        return null !== this.scenePlugin._target && this.scenePlugin._duration > 0;
                    },
                    isTransitionIn: function() {
                        return this.settings.isTransition;
                    },
                    isVisible: function() {
                        return this.settings.visible;
                    },
                    setVisible: function(t) {
                        return this.settings.visible = t, this;
                    },
                    setActive: function(t, e) {
                        return t ? this.resume(e) : this.pause(e);
                    },
                    start: function(t) {
                        var e = this.events, i = this.settings;
                        t && (i.data = t), i.status = n.START, i.active = !0, i.visible = !0, e.emit(o.START, this), e.emit(o.READY, this, t);
                    },
                    shutdown: function(t) {
                        var e = this.events, i = this.settings;
                        e.off(o.TRANSITION_INIT), e.off(o.TRANSITION_START), e.off(o.TRANSITION_COMPLETE), e.off(o.TRANSITION_OUT), i.status = n.SHUTDOWN, i.active = !1, i.visible = !1, e.emit(o.SHUTDOWN, this, t);
                    },
                    destroy: function() {
                        var t = this.events, e = this.settings;
                        e.status = n.DESTROYED, e.active = !1, e.visible = !1, t.emit(o.DESTROY, this), t.removeAllListeners();
                        for(var i = [
                            "scene",
                            "game",
                            "anims",
                            "cache",
                            "plugins",
                            "registry",
                            "sound",
                            "textures",
                            "add",
                            "camera",
                            "displayList",
                            "events",
                            "make",
                            "scenePlugin",
                            "updateList"
                        ], s = 0; s < i.length; s++)this[i[s]] = null;
                    }
                });
                t.exports = c;
            },
            92980: (t)=>{
                t.exports = {
                    PENDING: 0,
                    INIT: 1,
                    START: 2,
                    LOADING: 3,
                    CREATING: 4,
                    RUNNING: 5,
                    PAUSED: 6,
                    SLEEPING: 7,
                    SHUTDOWN: 8,
                    DESTROYED: 9
                };
            },
            31803: (t)=>{
                t.exports = "addedtoscene";
            },
            94817: (t)=>{
                t.exports = "boot";
            },
            28977: (t)=>{
                t.exports = "create";
            },
            91959: (t)=>{
                t.exports = "destroy";
            },
            363: (t)=>{
                t.exports = "pause";
            },
            15643: (t)=>{
                t.exports = "postupdate";
            },
            17058: (t)=>{
                t.exports = "prerender";
            },
            77125: (t)=>{
                t.exports = "preupdate";
            },
            76018: (t)=>{
                t.exports = "ready";
            },
            28620: (t)=>{
                t.exports = "removedfromscene";
            },
            41538: (t)=>{
                t.exports = "render";
            },
            34268: (t)=>{
                t.exports = "resume";
            },
            2342: (t)=>{
                t.exports = "shutdown";
            },
            96541: (t)=>{
                t.exports = "sleep";
            },
            74244: (t)=>{
                t.exports = "start";
            },
            17046: (t)=>{
                t.exports = "transitioncomplete";
            },
            13637: (t)=>{
                t.exports = "transitioninit";
            },
            14733: (t)=>{
                t.exports = "transitionout";
            },
            33899: (t)=>{
                t.exports = "transitionstart";
            },
            52418: (t)=>{
                t.exports = "transitionwake";
            },
            31735: (t)=>{
                t.exports = "update";
            },
            8470: (t)=>{
                t.exports = "wake";
            },
            7599: (t, e, i)=>{
                t.exports = {
                    ADDED_TO_SCENE: i(31803),
                    BOOT: i(94817),
                    CREATE: i(28977),
                    DESTROY: i(91959),
                    PAUSE: i(363),
                    POST_UPDATE: i(15643),
                    PRE_RENDER: i(17058),
                    PRE_UPDATE: i(77125),
                    READY: i(76018),
                    REMOVED_FROM_SCENE: i(28620),
                    RENDER: i(41538),
                    RESUME: i(34268),
                    SHUTDOWN: i(2342),
                    SLEEP: i(96541),
                    START: i(74244),
                    TRANSITION_COMPLETE: i(17046),
                    TRANSITION_INIT: i(13637),
                    TRANSITION_OUT: i(14733),
                    TRANSITION_START: i(33899),
                    TRANSITION_WAKE: i(52418),
                    UPDATE: i(31735),
                    WAKE: i(8470)
                };
            },
            20436: (t, e, i)=>{
                var s = i(92980), n = i(98611), r = {
                    Events: i(7599),
                    GetPhysicsPlugins: i(47736),
                    GetScenePlugins: i(91088),
                    SceneManager: i(13553),
                    ScenePlugin: i(64051),
                    Settings: i(36765),
                    Systems: i(63946)
                };
                r = n(!1, r, s), t.exports = r;
            },
            25798: (t, e, i)=>{
                var s = i(56694), n = i(6659), r = i(76038), o = i(98611), a = i(72283), h = new s({
                    Extends: n,
                    initialize: function(t, e, i) {
                        n.call(this), this.manager = t, this.key = e, this.isPlaying = !1, this.isPaused = !1, this.totalRate = 1, this.duration = this.duration || 0, this.totalDuration = this.totalDuration || 0, this.config = {
                            mute: !1,
                            volume: 1,
                            rate: 1,
                            detune: 0,
                            seek: 0,
                            loop: !1,
                            delay: 0,
                            pan: 0
                        }, this.currentConfig = this.config, this.config = o(this.config, i), this.markers = {}, this.currentMarker = null, this.pendingRemove = !1;
                    },
                    addMarker: function(t) {
                        return !(!t || !t.name || "string" != typeof t.name) && (this.markers[t.name] ? (console.error("addMarker " + t.name + " already exists in Sound"), !1) : (t = o(!0, {
                            name: "",
                            start: 0,
                            duration: this.totalDuration - (t.start || 0),
                            config: {
                                mute: !1,
                                volume: 1,
                                rate: 1,
                                detune: 0,
                                seek: 0,
                                loop: !1,
                                delay: 0,
                                pan: 0
                            }
                        }, t), this.markers[t.name] = t, !0));
                    },
                    updateMarker: function(t) {
                        return !(!t || !t.name || "string" != typeof t.name) && (this.markers[t.name] ? (this.markers[t.name] = o(!0, this.markers[t.name], t), !0) : (console.warn("Audio Marker: " + t.name + " missing in Sound: " + this.key), !1));
                    },
                    removeMarker: function(t) {
                        var e = this.markers[t];
                        return e ? (this.markers[t] = null, e) : null;
                    },
                    play: function(t, e) {
                        if (void 0 === t && (t = ""), "object" == typeof t && (e = t, t = ""), "string" != typeof t) return !1;
                        if (t) {
                            if (!this.markers[t]) return console.warn("Marker: " + t + " missing in Sound: " + this.key), !1;
                            this.currentMarker = this.markers[t], this.currentConfig = this.currentMarker.config, this.duration = this.currentMarker.duration;
                        } else this.currentMarker = null, this.currentConfig = this.config, this.duration = this.totalDuration;
                        return this.resetConfig(), this.currentConfig = o(this.currentConfig, e), this.isPlaying = !0, this.isPaused = !1, !0;
                    },
                    pause: function() {
                        return !(this.isPaused || !this.isPlaying) && (this.isPlaying = !1, this.isPaused = !0, !0);
                    },
                    resume: function() {
                        return !(!this.isPaused || this.isPlaying) && (this.isPlaying = !0, this.isPaused = !1, !0);
                    },
                    stop: function() {
                        return !(!this.isPaused && !this.isPlaying) && (this.isPlaying = !1, this.isPaused = !1, this.resetConfig(), !0);
                    },
                    applyConfig: function() {
                        this.mute = this.currentConfig.mute, this.volume = this.currentConfig.volume, this.rate = this.currentConfig.rate, this.detune = this.currentConfig.detune, this.loop = this.currentConfig.loop, this.pan = this.currentConfig.pan;
                    },
                    resetConfig: function() {
                        this.currentConfig.seek = 0, this.currentConfig.delay = 0;
                    },
                    update: a,
                    calculateRate: function() {
                        var t = this.currentConfig.detune + this.manager.detune, e = Math.pow(1.0005777895065548, t);
                        this.totalRate = this.currentConfig.rate * this.manager.rate * e;
                    },
                    destroy: function() {
                        this.pendingRemove || (this.emit(r.DESTROY, this), this.removeAllListeners(), this.pendingRemove = !0, this.manager = null, this.config = null, this.currentConfig = null, this.markers = null, this.currentMarker = null);
                    }
                });
                t.exports = h;
            },
            12486: (t, e, i)=>{
                var s = i(56694), n = i(32742), r = i(6659), o = i(76038), a = i(97081), h = i(71608), l = i(51463), u = i(72283), c = i(93736), d = new s({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this), this.game = t, this.jsonCache = t.cache.json, this.sounds = [], this.mute = !1, this.volume = 1, this.pauseOnBlur = !0, this._rate = 1, this._detune = 0, this.locked = this.locked || !1, this.unlocked = !1, this.gameLostFocus = !1, this.listenerPosition = new c, t.events.on(a.BLUR, this.onGameBlur, this), t.events.on(a.FOCUS, this.onGameFocus, this), t.events.on(a.PRE_STEP, this.update, this), t.events.once(a.DESTROY, this.destroy, this);
                    },
                    add: u,
                    addAudioSprite: function(t, e) {
                        void 0 === e && (e = {});
                        var i = this.add(t, e);
                        for(var s in i.spritemap = this.jsonCache.get(t).spritemap, i.spritemap)if (i.spritemap.hasOwnProperty(s)) {
                            var r = n(e), o = i.spritemap[s];
                            r.loop = !!o.hasOwnProperty("loop") && o.loop, i.addMarker({
                                name: s,
                                start: o.start,
                                duration: o.end - o.start,
                                config: r
                            });
                        }
                        return i;
                    },
                    get: function(t) {
                        return l(this.sounds, "key", t);
                    },
                    getAll: function(t) {
                        return t ? h(this.sounds, "key", t) : h(this.sounds);
                    },
                    getAllPlaying: function() {
                        return h(this.sounds, "isPlaying", !0);
                    },
                    play: function(t, e) {
                        var i = this.add(t);
                        return i.once(o.COMPLETE, i.destroy, i), e ? e.name ? (i.addMarker(e), i.play(e.name)) : i.play(e) : i.play();
                    },
                    playAudioSprite: function(t, e, i) {
                        var s = this.addAudioSprite(t);
                        return s.once(o.COMPLETE, s.destroy, s), s.play(e, i);
                    },
                    remove: function(t) {
                        var e = this.sounds.indexOf(t);
                        return -1 !== e && (t.destroy(), this.sounds.splice(e, 1), !0);
                    },
                    removeAll: function() {
                        this.sounds.forEach(function(t) {
                            t.destroy();
                        }), this.sounds.length = 0;
                    },
                    removeByKey: function(t) {
                        for(var e = 0, i = this.sounds.length - 1; i >= 0; i--){
                            var s = this.sounds[i];
                            s.key === t && (s.destroy(), this.sounds.splice(i, 1), e++);
                        }
                        return e;
                    },
                    pauseAll: function() {
                        this.forEachActiveSound(function(t) {
                            t.pause();
                        }), this.emit(o.PAUSE_ALL, this);
                    },
                    resumeAll: function() {
                        this.forEachActiveSound(function(t) {
                            t.resume();
                        }), this.emit(o.RESUME_ALL, this);
                    },
                    setListenerPosition: u,
                    stopAll: function() {
                        this.forEachActiveSound(function(t) {
                            t.stop();
                        }), this.emit(o.STOP_ALL, this);
                    },
                    stopByKey: function(t) {
                        var e = 0;
                        return this.getAll(t).forEach(function(t) {
                            t.stop() && e++;
                        }), e;
                    },
                    unlock: u,
                    onBlur: u,
                    onFocus: u,
                    onGameBlur: function() {
                        this.gameLostFocus = !0, this.pauseOnBlur && this.onBlur();
                    },
                    onGameFocus: function() {
                        this.gameLostFocus = !1, this.pauseOnBlur && this.onFocus();
                    },
                    update: function(t, e) {
                        this.unlocked && (this.unlocked = !1, this.locked = !1, this.emit(o.UNLOCKED, this));
                        for(var i = this.sounds.length - 1; i >= 0; i--)this.sounds[i].pendingRemove && this.sounds.splice(i, 1);
                        this.sounds.forEach(function(i) {
                            i.update(t, e);
                        });
                    },
                    destroy: function() {
                        this.game.events.off(a.BLUR, this.onGameBlur, this), this.game.events.off(a.FOCUS, this.onGameFocus, this), this.game.events.off(a.PRE_STEP, this.update, this), this.removeAllListeners(), this.removeAll(), this.sounds.length = 0, this.sounds = null, this.listenerPosition = null, this.game = null;
                    },
                    forEachActiveSound: function(t, e) {
                        var i = this;
                        this.sounds.forEach(function(s, n) {
                            s && !s.pendingRemove && t.call(e || i, s, n, i.sounds);
                        });
                    },
                    setRate: function(t) {
                        return this.rate = t, this;
                    },
                    rate: {
                        get: function() {
                            return this._rate;
                        },
                        set: function(t) {
                            this._rate = t, this.forEachActiveSound(function(t) {
                                t.calculateRate();
                            }), this.emit(o.GLOBAL_RATE, this, t);
                        }
                    },
                    setDetune: function(t) {
                        return this.detune = t, this;
                    },
                    detune: {
                        get: function() {
                            return this._detune;
                        },
                        set: function(t) {
                            this._detune = t, this.forEachActiveSound(function(t) {
                                t.calculateRate();
                            }), this.emit(o.GLOBAL_DETUNE, this, t);
                        }
                    }
                });
                t.exports = d;
            },
            84191: (t, e, i)=>{
                var s = i(27622), n = i(17546), r = i(55491), o = {
                    create: function(t) {
                        var e = t.config.audio, i = t.device.audio;
                        return e.noAudio || !i.webAudio && !i.audioData ? new n(t) : i.webAudio && !e.disableWebAudio ? new r(t) : new s(t);
                    }
                };
                t.exports = o;
            },
            77578: (t)=>{
                t.exports = "complete";
            },
            19679: (t)=>{
                t.exports = "decodedall";
            },
            56951: (t)=>{
                t.exports = "decoded";
            },
            16436: (t)=>{
                t.exports = "destroy";
            },
            55154: (t)=>{
                t.exports = "detune";
            },
            57818: (t)=>{
                t.exports = "detune";
            },
            57890: (t)=>{
                t.exports = "mute";
            },
            83022: (t)=>{
                t.exports = "rate";
            },
            99170: (t)=>{
                t.exports = "volume";
            },
            64289: (t)=>{
                t.exports = "looped";
            },
            67214: (t)=>{
                t.exports = "loop";
            },
            53128: (t)=>{
                t.exports = "mute";
            },
            73078: (t)=>{
                t.exports = "pan";
            },
            76763: (t)=>{
                t.exports = "pauseall";
            },
            88426: (t)=>{
                t.exports = "pause";
            },
            13765: (t)=>{
                t.exports = "play";
            },
            80291: (t)=>{
                t.exports = "rate";
            },
            11124: (t)=>{
                t.exports = "resumeall";
            },
            55382: (t)=>{
                t.exports = "resume";
            },
            71157: (t)=>{
                t.exports = "seek";
            },
            31776: (t)=>{
                t.exports = "stopall";
            },
            39450: (t)=>{
                t.exports = "stop";
            },
            21939: (t)=>{
                t.exports = "unlocked";
            },
            33019: (t)=>{
                t.exports = "volume";
            },
            76038: (t, e, i)=>{
                t.exports = {
                    COMPLETE: i(77578),
                    DECODED: i(56951),
                    DECODED_ALL: i(19679),
                    DESTROY: i(16436),
                    DETUNE: i(55154),
                    GLOBAL_DETUNE: i(57818),
                    GLOBAL_MUTE: i(57890),
                    GLOBAL_RATE: i(83022),
                    GLOBAL_VOLUME: i(99170),
                    LOOP: i(67214),
                    LOOPED: i(64289),
                    MUTE: i(53128),
                    PAN: i(73078),
                    PAUSE_ALL: i(76763),
                    PAUSE: i(88426),
                    PLAY: i(13765),
                    RATE: i(80291),
                    RESUME_ALL: i(11124),
                    RESUME: i(55382),
                    SEEK: i(71157),
                    STOP_ALL: i(31776),
                    STOP: i(39450),
                    UNLOCKED: i(21939),
                    VOLUME: i(33019)
                };
            },
            34350: (t, e, i)=>{
                var s = i(25798), n = i(56694), r = i(76038), o = i(82897), a = new n({
                    Extends: s,
                    initialize: function(t, e, i) {
                        if (void 0 === i && (i = {}), this.tags = t.game.cache.audio.get(e), !this.tags) throw new Error('No cached audio asset with key "' + e);
                        this.audio = null, this.startTime = 0, this.previousTime = 0, this.duration = this.tags[0].duration, this.totalDuration = this.tags[0].duration, s.call(this, t, e, i);
                    },
                    play: function(t, e) {
                        return !this.manager.isLocked(this, "play", [
                            t,
                            e
                        ]) && !!s.prototype.play.call(this, t, e) && !!this.pickAndPlayAudioTag() && (this.emit(r.PLAY, this), !0);
                    },
                    pause: function() {
                        return !this.manager.isLocked(this, "pause") && !(this.startTime > 0) && !!s.prototype.pause.call(this) && (this.currentConfig.seek = this.audio.currentTime - (this.currentMarker ? this.currentMarker.start : 0), this.stopAndReleaseAudioTag(), this.emit(r.PAUSE, this), !0);
                    },
                    resume: function() {
                        return !this.manager.isLocked(this, "resume") && !(this.startTime > 0) && !!s.prototype.resume.call(this) && !!this.pickAndPlayAudioTag() && (this.emit(r.RESUME, this), !0);
                    },
                    stop: function() {
                        return !this.manager.isLocked(this, "stop") && !!s.prototype.stop.call(this) && (this.stopAndReleaseAudioTag(), this.emit(r.STOP, this), !0);
                    },
                    pickAndPlayAudioTag: function() {
                        if (!this.pickAudioTag()) return this.reset(), !1;
                        var t = this.currentConfig.seek, e = this.currentConfig.delay, i = (this.currentMarker ? this.currentMarker.start : 0) + t;
                        return this.previousTime = i, this.audio.currentTime = i, this.applyConfig(), 0 === e ? (this.startTime = 0, this.audio.paused && this.playCatchPromise()) : (this.startTime = window.performance.now() + 1e3 * e, this.audio.paused || this.audio.pause()), this.resetConfig(), !0;
                    },
                    pickAudioTag: function() {
                        if (this.audio) return !0;
                        for(var t = 0; t < this.tags.length; t++){
                            var e = this.tags[t];
                            if ("false" === e.dataset.used) return e.dataset.used = "true", this.audio = e, !0;
                        }
                        if (!this.manager.override) return !1;
                        var i = [];
                        this.manager.forEachActiveSound(function(t) {
                            t.key === this.key && t.audio && i.push(t);
                        }, this), i.sort(function(t, e) {
                            return t.loop === e.loop ? e.seek / e.duration - t.seek / t.duration : t.loop ? 1 : -1;
                        });
                        var s = i[0];
                        return this.audio = s.audio, s.reset(), s.audio = null, s.startTime = 0, s.previousTime = 0, !0;
                    },
                    playCatchPromise: function() {
                        var t = this.audio.play();
                        t && t.catch(function(t) {
                            console.warn(t);
                        });
                    },
                    stopAndReleaseAudioTag: function() {
                        this.startTime = 0, this.previousTime = 0, this.audio && (this.audio.pause(), this.audio.dataset.used = "false", this.audio = null);
                    },
                    reset: function() {
                        s.prototype.stop.call(this);
                    },
                    onBlur: function() {
                        this.isPlaying = !1, this.isPaused = !0, this.currentConfig.seek = this.audio.currentTime - (this.currentMarker ? this.currentMarker.start : 0), this.currentConfig.delay = Math.max(0, (this.startTime - window.performance.now()) / 1e3), this.stopAndReleaseAudioTag();
                    },
                    onFocus: function() {
                        this.isPlaying = !0, this.isPaused = !1, this.pickAndPlayAudioTag();
                    },
                    update: function(t) {
                        if (this.isPlaying) {
                            if (this.startTime > 0) this.startTime < t - this.manager.audioPlayDelay && (this.audio.currentTime += Math.max(0, t - this.startTime) / 1e3, this.startTime = 0, this.previousTime = this.audio.currentTime, this.playCatchPromise());
                            else {
                                var e = this.currentMarker ? this.currentMarker.start : 0, i = e + this.duration, s = this.audio.currentTime;
                                if (this.currentConfig.loop) s >= i - this.manager.loopEndOffset ? (this.audio.currentTime = e + Math.max(0, s - i), s = this.audio.currentTime) : s < e && (this.audio.currentTime += e, s = this.audio.currentTime), s < this.previousTime && this.emit(r.LOOPED, this);
                                else if (s >= i) return this.reset(), this.stopAndReleaseAudioTag(), void this.emit(r.COMPLETE, this);
                                this.previousTime = s;
                            }
                        }
                    },
                    destroy: function() {
                        s.prototype.destroy.call(this), this.tags = null, this.audio && this.stopAndReleaseAudioTag();
                    },
                    updateMute: function() {
                        this.audio && (this.audio.muted = this.currentConfig.mute || this.manager.mute);
                    },
                    updateVolume: function() {
                        this.audio && (this.audio.volume = o(this.currentConfig.volume * this.manager.volume, 0, 1));
                    },
                    calculateRate: function() {
                        s.prototype.calculateRate.call(this), this.audio && (this.audio.playbackRate = this.totalRate);
                    },
                    mute: {
                        get: function() {
                            return this.currentConfig.mute;
                        },
                        set: function(t) {
                            this.currentConfig.mute = t, this.manager.isLocked(this, "mute", t) || (this.updateMute(), this.emit(r.MUTE, this, t));
                        }
                    },
                    setMute: function(t) {
                        return this.mute = t, this;
                    },
                    volume: {
                        get: function() {
                            return this.currentConfig.volume;
                        },
                        set: function(t) {
                            this.currentConfig.volume = t, this.manager.isLocked(this, "volume", t) || (this.updateVolume(), this.emit(r.VOLUME, this, t));
                        }
                    },
                    setVolume: function(t) {
                        return this.volume = t, this;
                    },
                    rate: {
                        get: function() {
                            return this.currentConfig.rate;
                        },
                        set: function(t) {
                            this.currentConfig.rate = t, this.manager.isLocked(this, r.RATE, t) || (this.calculateRate(), this.emit(r.RATE, this, t));
                        }
                    },
                    setRate: function(t) {
                        return this.rate = t, this;
                    },
                    detune: {
                        get: function() {
                            return this.currentConfig.detune;
                        },
                        set: function(t) {
                            this.currentConfig.detune = t, this.manager.isLocked(this, r.DETUNE, t) || (this.calculateRate(), this.emit(r.DETUNE, this, t));
                        }
                    },
                    setDetune: function(t) {
                        return this.detune = t, this;
                    },
                    seek: {
                        get: function() {
                            return this.isPlaying ? this.audio.currentTime - (this.currentMarker ? this.currentMarker.start : 0) : this.isPaused ? this.currentConfig.seek : 0;
                        },
                        set: function(t) {
                            this.manager.isLocked(this, "seek", t) || this.startTime > 0 || (this.isPlaying || this.isPaused) && (t = Math.min(Math.max(0, t), this.duration), this.isPlaying ? (this.previousTime = t, this.audio.currentTime = t) : this.isPaused && (this.currentConfig.seek = t), this.emit(r.SEEK, this, t));
                        }
                    },
                    setSeek: function(t) {
                        return this.seek = t, this;
                    },
                    loop: {
                        get: function() {
                            return this.currentConfig.loop;
                        },
                        set: function(t) {
                            this.currentConfig.loop = t, this.manager.isLocked(this, "loop", t) || (this.audio && (this.audio.loop = t), this.emit(r.LOOP, this, t));
                        }
                    },
                    setLoop: function(t) {
                        return this.loop = t, this;
                    },
                    pan: {
                        get: function() {
                            return this.currentConfig.pan;
                        },
                        set: function(t) {
                            this.currentConfig.pan = t, this.emit(r.PAN, this, t);
                        }
                    },
                    setPan: function(t) {
                        return this.pan = t, this;
                    }
                });
                t.exports = a;
            },
            27622: (t, e, i)=>{
                var s = i(12486), n = i(56694), r = i(76038), o = i(34350), a = new n({
                    Extends: s,
                    initialize: function(t) {
                        this.override = !0, this.audioPlayDelay = .1, this.loopEndOffset = .05, this.onBlurPausedSounds = [], this.locked = "ontouchstart" in window, this.lockedActionsQueue = this.locked ? [] : null, this._mute = !1, this._volume = 1, s.call(this, t);
                    },
                    add: function(t, e) {
                        var i = new o(this, t, e);
                        return this.sounds.push(i), i;
                    },
                    unlock: function() {
                        this.locked = !1;
                        var t = this;
                        if (this.game.cache.audio.entries.each(function(e, i) {
                            for(var s = 0; s < i.length; s++)if ("true" === i[s].dataset.locked) return t.locked = !0, !1;
                            return !0;
                        }), this.locked) {
                            var e = !1, i = function() {
                                e = !0;
                            }, s = function() {
                                if (e) e = !1;
                                else {
                                    document.body.removeEventListener("touchmove", i), document.body.removeEventListener("touchend", s);
                                    var n = [];
                                    if (t.game.cache.audio.entries.each(function(t, e) {
                                        for(var i = 0; i < e.length; i++){
                                            var s = e[i];
                                            "true" === s.dataset.locked && n.push(s);
                                        }
                                        return !0;
                                    }), 0 !== n.length) {
                                        var r = n[n.length - 1];
                                        r.oncanplaythrough = function() {
                                            r.oncanplaythrough = null, n.forEach(function(t) {
                                                t.dataset.locked = "false";
                                            }), t.unlocked = !0;
                                        }, n.forEach(function(t) {
                                            t.load();
                                        });
                                    }
                                }
                            };
                            this.once(r.UNLOCKED, function() {
                                for(this.forEachActiveSound(function(t) {
                                    null === t.currentMarker && 0 === t.duration && (t.duration = t.tags[0].duration), t.totalDuration = t.tags[0].duration;
                                }); this.lockedActionsQueue.length;){
                                    var t = this.lockedActionsQueue.shift();
                                    t.sound[t.prop].apply ? t.sound[t.prop].apply(t.sound, t.value || []) : t.sound[t.prop] = t.value;
                                }
                            }, this), document.body.addEventListener("touchmove", i, !1), document.body.addEventListener("touchend", s, !1);
                        }
                    },
                    onBlur: function() {
                        this.forEachActiveSound(function(t) {
                            t.isPlaying && (this.onBlurPausedSounds.push(t), t.onBlur());
                        });
                    },
                    onFocus: function() {
                        this.onBlurPausedSounds.forEach(function(t) {
                            t.onFocus();
                        }), this.onBlurPausedSounds.length = 0;
                    },
                    destroy: function() {
                        s.prototype.destroy.call(this), this.onBlurPausedSounds.length = 0, this.onBlurPausedSounds = null;
                    },
                    isLocked: function(t, e, i) {
                        return "true" === t.tags[0].dataset.locked && (this.lockedActionsQueue.push({
                            sound: t,
                            prop: e,
                            value: i
                        }), !0);
                    },
                    setMute: function(t) {
                        return this.mute = t, this;
                    },
                    mute: {
                        get: function() {
                            return this._mute;
                        },
                        set: function(t) {
                            this._mute = t, this.forEachActiveSound(function(t) {
                                t.updateMute();
                            }), this.emit(r.GLOBAL_MUTE, this, t);
                        }
                    },
                    setVolume: function(t) {
                        return this.volume = t, this;
                    },
                    volume: {
                        get: function() {
                            return this._volume;
                        },
                        set: function(t) {
                            this._volume = t, this.forEachActiveSound(function(t) {
                                t.updateVolume();
                            }), this.emit(r.GLOBAL_VOLUME, this, t);
                        }
                    }
                });
                t.exports = a;
            },
            56751: (t, e, i)=>{
                t.exports = {
                    SoundManagerCreator: i(84191),
                    Events: i(76038),
                    BaseSound: i(25798),
                    BaseSoundManager: i(12486),
                    WebAudioSound: i(96008),
                    WebAudioSoundManager: i(55491),
                    HTML5AudioSound: i(34350),
                    HTML5AudioSoundManager: i(27622),
                    NoAudioSound: i(38662),
                    NoAudioSoundManager: i(17546)
                };
            },
            38662: (t, e, i)=>{
                var s = i(25798), n = i(56694), r = i(6659), o = i(98611), a = i(72283), h = function() {
                    return !1;
                }, l = function() {
                    return null;
                }, u = function() {
                    return this;
                }, c = new n({
                    Extends: r,
                    initialize: function(t, e, i) {
                        void 0 === i && (i = {}), r.call(this), this.manager = t, this.key = e, this.isPlaying = !1, this.isPaused = !1, this.totalRate = 1, this.duration = 0, this.totalDuration = 0, this.config = o({
                            mute: !1,
                            volume: 1,
                            rate: 1,
                            detune: 0,
                            seek: 0,
                            loop: !1,
                            delay: 0,
                            pan: 0
                        }, i), this.currentConfig = this.config, this.mute = !1, this.volume = 1, this.rate = 1, this.detune = 0, this.seek = 0, this.loop = !1, this.pan = 0, this.markers = {}, this.currentMarker = null, this.pendingRemove = !1;
                    },
                    addMarker: h,
                    updateMarker: h,
                    removeMarker: l,
                    play: h,
                    pause: h,
                    resume: h,
                    stop: h,
                    setMute: u,
                    setVolume: u,
                    setRate: u,
                    setDetune: u,
                    setSeek: u,
                    setLoop: u,
                    setPan: u,
                    applyConfig: l,
                    resetConfig: l,
                    update: a,
                    calculateRate: l,
                    destroy: function() {
                        s.prototype.destroy.call(this);
                    }
                });
                t.exports = c;
            },
            17546: (t, e, i)=>{
                var s = i(12486), n = i(56694), r = i(6659), o = i(38662), a = i(72283), h = new n({
                    Extends: r,
                    initialize: function(t) {
                        r.call(this), this.game = t, this.sounds = [], this.mute = !1, this.volume = 1, this.rate = 1, this.detune = 0, this.pauseOnBlur = !0, this.locked = !1;
                    },
                    add: function(t, e) {
                        var i = new o(this, t, e);
                        return this.sounds.push(i), i;
                    },
                    addAudioSprite: function(t, e) {
                        var i = this.add(t, e);
                        return i.spritemap = {}, i;
                    },
                    get: function(t) {
                        return s.prototype.get.call(this, t);
                    },
                    getAll: function(t) {
                        return s.prototype.getAll.call(this, t);
                    },
                    play: function(t, e) {
                        return !1;
                    },
                    playAudioSprite: function(t, e, i) {
                        return !1;
                    },
                    remove: function(t) {
                        return s.prototype.remove.call(this, t);
                    },
                    removeAll: function() {
                        return s.prototype.removeAll.call(this);
                    },
                    removeByKey: function(t) {
                        return s.prototype.removeByKey.call(this, t);
                    },
                    stopByKey: function(t) {
                        return s.prototype.stopByKey.call(this, t);
                    },
                    onBlur: a,
                    onFocus: a,
                    onGameBlur: a,
                    onGameFocus: a,
                    pauseAll: a,
                    resumeAll: a,
                    stopAll: a,
                    update: a,
                    setRate: a,
                    setDetune: a,
                    setMute: a,
                    setVolume: a,
                    unlock: a,
                    forEachActiveSound: function(t, e) {
                        s.prototype.forEachActiveSound.call(this, t, e);
                    },
                    destroy: function() {
                        s.prototype.destroy.call(this);
                    }
                });
                t.exports = h;
            },
            96008: (t, e, i)=>{
                var s = i(25798), n = i(56694), r = i(76038), o = i(72632), a = new n({
                    Extends: s,
                    initialize: function(t, e, i) {
                        if (void 0 === i && (i = {}), this.audioBuffer = t.game.cache.audio.get(e), !this.audioBuffer) throw new Error('Audio key "' + e + '" missing from cache');
                        this.source = null, this.loopSource = null, this.muteNode = t.context.createGain(), this.volumeNode = t.context.createGain(), this.pannerNode = null, this.spatialNode = null, this.spatialSource = null, this.playTime = 0, this.startTime = 0, this.loopTime = 0, this.rateUpdates = [], this.hasEnded = !1, this.hasLooped = !1, this.muteNode.connect(this.volumeNode), t.context.createPanner && (this.spatialNode = t.context.createPanner(), this.volumeNode.connect(this.spatialNode)), t.context.createStereoPanner ? (this.pannerNode = t.context.createStereoPanner(), t.context.createPanner ? this.spatialNode.connect(this.pannerNode) : this.volumeNode.connect(this.pannerNode), this.pannerNode.connect(t.destination)) : t.context.createPanner ? this.spatialNode.connect(t.destination) : this.volumeNode.connect(t.destination), this.duration = this.audioBuffer.duration, this.totalDuration = this.audioBuffer.duration, s.call(this, t, e, i);
                    },
                    play: function(t, e) {
                        return !!s.prototype.play.call(this, t, e) && (this.stopAndRemoveBufferSource(), this.createAndStartBufferSource(), this.emit(r.PLAY, this), !0);
                    },
                    pause: function() {
                        return !(this.manager.context.currentTime < this.startTime) && !!s.prototype.pause.call(this) && (this.currentConfig.seek = this.getCurrentTime(), this.stopAndRemoveBufferSource(), this.emit(r.PAUSE, this), !0);
                    },
                    resume: function() {
                        return !(this.manager.context.currentTime < this.startTime) && !!s.prototype.resume.call(this) && (this.createAndStartBufferSource(), this.emit(r.RESUME, this), !0);
                    },
                    stop: function() {
                        return !!s.prototype.stop.call(this) && (this.stopAndRemoveBufferSource(), this.emit(r.STOP, this), !0);
                    },
                    createAndStartBufferSource: function() {
                        var t = this.currentConfig.seek, e = this.currentConfig.delay, i = this.manager.context.currentTime + e, s = (this.currentMarker ? this.currentMarker.start : 0) + t, n = this.duration - t;
                        this.playTime = i - t, this.startTime = i, this.source = this.createBufferSource(), this.applyConfig(), this.source.start(Math.max(0, i), Math.max(0, s), Math.max(0, n)), this.resetConfig();
                    },
                    createAndStartLoopBufferSource: function() {
                        var t = this.getLoopTime(), e = this.currentMarker ? this.currentMarker.start : 0, i = this.duration;
                        this.loopTime = t, this.loopSource = this.createBufferSource(), this.loopSource.playbackRate.setValueAtTime(this.totalRate, 0), this.loopSource.start(Math.max(0, t), Math.max(0, e), Math.max(0, i));
                    },
                    createBufferSource: function() {
                        var t = this, e = this.manager.context.createBufferSource();
                        return e.buffer = this.audioBuffer, e.connect(this.muteNode), e.onended = function(e) {
                            e.target === t.source && (t.currentConfig.loop ? t.hasLooped = !0 : t.hasEnded = !0);
                        }, e;
                    },
                    stopAndRemoveBufferSource: function() {
                        this.source && (this.source.stop(), this.source.disconnect(), this.source = null), this.playTime = 0, this.startTime = 0, this.stopAndRemoveLoopBufferSource();
                    },
                    stopAndRemoveLoopBufferSource: function() {
                        this.loopSource && (this.loopSource.stop(), this.loopSource.disconnect(), this.loopSource = null), this.loopTime = 0;
                    },
                    applyConfig: function() {
                        this.rateUpdates.length = 0, this.rateUpdates.push({
                            time: 0,
                            rate: 1
                        });
                        var t = this.currentConfig.source;
                        if (t && this.manager.context.createPanner) {
                            var e = this.spatialNode;
                            e.panningModel = o(t, "panningModel", "equalpower"), e.distanceModel = o(t, "distanceModel", "inverse"), e.orientationX.value = o(t, "orientationX", 0), e.orientationY.value = o(t, "orientationY", 0), e.orientationZ.value = o(t, "orientationZ", -1), e.refDistance = o(t, "refDistance", 1), e.maxDistance = o(t, "maxDistance", 1e4), e.rolloffFactor = o(t, "rolloffFactor", 1), e.coneInnerAngle = o(t, "coneInnerAngle", 360), e.coneOuterAngle = o(t, "coneOuterAngle", 0), e.coneOuterGain = o(t, "coneOuterGain", 0), this.spatialSource = o(t, "follow", null), this.spatialSource || (e.positionX.value = o(t, "x", 0), e.positionY.value = o(t, "y", 0), e.positionZ.value = o(t, "z", 0));
                        }
                        s.prototype.applyConfig.call(this);
                    },
                    x: {
                        get: function() {
                            return this.spatialNode ? this.spatialNode.positionX : 0;
                        },
                        set: function(t) {
                            this.spatialNode && (this.spatialNode.positionX.value = t);
                        }
                    },
                    y: {
                        get: function() {
                            return this.spatialNode ? this.spatialNode.positionY : 0;
                        },
                        set: function(t) {
                            this.spatialNode && (this.spatialNode.positionY.value = t);
                        }
                    },
                    update: function() {
                        if (this.isPlaying && this.spatialSource) {
                            var t = o(this.spatialSource, "x", null), e = o(this.spatialSource, "y", null);
                            t && t !== this._spatialx && (this._spatialx = this.spatialNode.positionX.value = t), e && e !== this._spatialy && (this._spatialy = this.spatialNode.positionY.value = e);
                        }
                        this.hasEnded ? (this.hasEnded = !1, s.prototype.stop.call(this), this.stopAndRemoveBufferSource(), this.emit(r.COMPLETE, this)) : this.hasLooped && (this.hasLooped = !1, this.source = this.loopSource, this.loopSource = null, this.playTime = this.startTime = this.loopTime, this.rateUpdates.length = 0, this.rateUpdates.push({
                            time: 0,
                            rate: this.totalRate
                        }), this.createAndStartLoopBufferSource(), this.emit(r.LOOPED, this));
                    },
                    destroy: function() {
                        this.pendingRemove || (s.prototype.destroy.call(this), this.audioBuffer = null, this.stopAndRemoveBufferSource(), this.muteNode.disconnect(), this.muteNode = null, this.volumeNode.disconnect(), this.volumeNode = null, this.pannerNode && (this.pannerNode.disconnect(), this.pannerNode = null), this.spatialNode && (this.spatialNode.disconnect(), this.spatialNode = null, this.spatialSource = null), this.rateUpdates.length = 0, this.rateUpdates = null);
                    },
                    calculateRate: function() {
                        s.prototype.calculateRate.call(this);
                        var t = this.manager.context.currentTime;
                        this.source && "number" == typeof this.totalRate && this.source.playbackRate.setValueAtTime(this.totalRate, t), this.isPlaying && (this.rateUpdates.push({
                            time: Math.max(this.startTime, t) - this.playTime,
                            rate: this.totalRate
                        }), this.loopSource && (this.stopAndRemoveLoopBufferSource(), this.createAndStartLoopBufferSource()));
                    },
                    getCurrentTime: function() {
                        for(var t = 0, e = 0; e < this.rateUpdates.length; e++)t += ((e < this.rateUpdates.length - 1 ? this.rateUpdates[e + 1].time : this.manager.context.currentTime - this.playTime) - this.rateUpdates[e].time) * this.rateUpdates[e].rate;
                        return t;
                    },
                    getLoopTime: function() {
                        for(var t = 0, e = 0; e < this.rateUpdates.length - 1; e++)t += (this.rateUpdates[e + 1].time - this.rateUpdates[e].time) * this.rateUpdates[e].rate;
                        var i = this.rateUpdates[this.rateUpdates.length - 1];
                        return this.playTime + i.time + (this.duration - t) / i.rate;
                    },
                    rate: {
                        get: function() {
                            return this.currentConfig.rate;
                        },
                        set: function(t) {
                            this.currentConfig.rate = t, this.calculateRate(), this.emit(r.RATE, this, t);
                        }
                    },
                    setRate: function(t) {
                        return this.rate = t, this;
                    },
                    detune: {
                        get: function() {
                            return this.currentConfig.detune;
                        },
                        set: function(t) {
                            this.currentConfig.detune = t, this.calculateRate(), this.emit(r.DETUNE, this, t);
                        }
                    },
                    setDetune: function(t) {
                        return this.detune = t, this;
                    },
                    mute: {
                        get: function() {
                            return 0 === this.muteNode.gain.value;
                        },
                        set: function(t) {
                            this.currentConfig.mute = t, this.muteNode.gain.setValueAtTime(t ? 0 : 1, 0), this.emit(r.MUTE, this, t);
                        }
                    },
                    setMute: function(t) {
                        return this.mute = t, this;
                    },
                    volume: {
                        get: function() {
                            return this.volumeNode.gain.value;
                        },
                        set: function(t) {
                            this.currentConfig.volume = t, this.volumeNode.gain.setValueAtTime(t, 0), this.emit(r.VOLUME, this, t);
                        }
                    },
                    setVolume: function(t) {
                        return this.volume = t, this;
                    },
                    seek: {
                        get: function() {
                            return this.isPlaying ? this.manager.context.currentTime < this.startTime ? this.startTime - this.playTime : this.getCurrentTime() : this.isPaused ? this.currentConfig.seek : 0;
                        },
                        set: function(t) {
                            this.manager.context.currentTime < this.startTime || (this.isPlaying || this.isPaused) && (t = Math.min(Math.max(0, t), this.duration), this.currentConfig.seek = t, this.isPlaying && (this.stopAndRemoveBufferSource(), this.createAndStartBufferSource()), this.emit(r.SEEK, this, t));
                        }
                    },
                    setSeek: function(t) {
                        return this.seek = t, this;
                    },
                    loop: {
                        get: function() {
                            return this.currentConfig.loop;
                        },
                        set: function(t) {
                            this.currentConfig.loop = t, this.isPlaying && (this.stopAndRemoveLoopBufferSource(), t && this.createAndStartLoopBufferSource()), this.emit(r.LOOP, this, t);
                        }
                    },
                    setLoop: function(t) {
                        return this.loop = t, this;
                    },
                    pan: {
                        get: function() {
                            return this.pannerNode ? this.pannerNode.pan.value : 0;
                        },
                        set: function(t) {
                            this.currentConfig.pan = t, this.pannerNode && this.pannerNode.pan.setValueAtTime(t, this.manager.context.currentTime), this.emit(r.PAN, this, t);
                        }
                    },
                    setPan: function(t) {
                        return this.pan = t, this;
                    }
                });
                t.exports = a;
            },
            55491: (t, e, i)=>{
                var s = i(82329), n = i(12486), r = i(56694), o = i(76038), a = i(97081), h = i(96008), l = i(72632), u = new r({
                    Extends: n,
                    initialize: function(t) {
                        this.context = this.createAudioContext(t), this.masterMuteNode = this.context.createGain(), this.masterVolumeNode = this.context.createGain(), this.masterMuteNode.connect(this.masterVolumeNode), this.masterVolumeNode.connect(this.context.destination), this.destination = this.masterMuteNode, this.locked = "suspended" === this.context.state && ("ontouchstart" in window || "onclick" in window), n.call(this, t), this.locked && t.isBooted ? this.unlock() : t.events.once(a.BOOT, this.unlock, this);
                    },
                    createAudioContext: function(t) {
                        var e = t.config.audio;
                        return e.context ? (e.context.resume(), e.context) : window.hasOwnProperty("AudioContext") ? new AudioContext : window.hasOwnProperty("webkitAudioContext") ? new window.webkitAudioContext : void 0;
                    },
                    setAudioContext: function(t) {
                        return this.context && this.context.close(), this.masterMuteNode && this.masterMuteNode.disconnect(), this.masterVolumeNode && this.masterVolumeNode.disconnect(), this.context = t, this.masterMuteNode = t.createGain(), this.masterVolumeNode = t.createGain(), this.masterMuteNode.connect(this.masterVolumeNode), this.masterVolumeNode.connect(t.destination), this.destination = this.masterMuteNode, this;
                    },
                    add: function(t, e) {
                        var i = new h(this, t, e);
                        return this.sounds.push(i), i;
                    },
                    decodeAudio: function(t, e) {
                        var i;
                        i = Array.isArray(t) ? t : [
                            {
                                key: t,
                                data: e
                            }
                        ];
                        for(var n = this.game.cache.audio, r = i.length, a = 0; a < i.length; a++){
                            var h = i[a], l = h.key, u = h.data;
                            "string" == typeof u && (u = s(u));
                            var c = (function(t, e) {
                                n.add(t, e), this.emit(o.DECODED, t), 0 === --r && this.emit(o.DECODED_ALL);
                            }).bind(this, l), d = (function(t, e) {
                                console.error("Error decoding audio: " + t + " - ", e ? e.message : ""), 0 === --r && this.emit(o.DECODED_ALL);
                            }).bind(this, l);
                            this.context.decodeAudioData(u, c, d);
                        }
                    },
                    setListenerPosition: function(t, e) {
                        return void 0 === t && (t = this.game.scale.width / 2), void 0 === e && (e = this.game.scale.height / 2), this.listenerPosition.set(t, e), this;
                    },
                    unlock: function() {
                        var t = this, e = document.body, i = function i() {
                            if (t.context && e) {
                                var s = e.removeEventListener;
                                t.context.resume().then(function() {
                                    s("touchstart", i), s("touchend", i), s("click", i), s("keydown", i), t.unlocked = !0;
                                }, function() {
                                    s("touchstart", i), s("touchend", i), s("click", i), s("keydown", i);
                                });
                            }
                        };
                        e && (e.addEventListener("touchstart", i, !1), e.addEventListener("touchend", i, !1), e.addEventListener("click", i, !1), e.addEventListener("keydown", i, !1));
                    },
                    onBlur: function() {
                        this.locked || this.context.suspend();
                    },
                    onFocus: function() {
                        var t = this.context;
                        !t || this.locked || "suspended" !== t.state && "interrupted" !== t.state || t.resume();
                    },
                    update: function(t, e) {
                        var i = this.context.listener;
                        if (i && void 0 !== i.positionX) {
                            var s = l(this.listenerPosition, "x", null), r = l(this.listenerPosition, "y", null);
                            s && s !== this._spatialx && (this._spatialx = i.positionX.value = s), r && r !== this._spatialy && (this._spatialy = i.positionY.value = r);
                        }
                        n.prototype.update.call(this, t, e), this.gameLostFocus || this.onFocus();
                    },
                    destroy: function() {
                        if (this.destination = null, this.masterVolumeNode.disconnect(), this.masterVolumeNode = null, this.masterMuteNode.disconnect(), this.masterMuteNode = null, this.game.config.audio.context) this.context.suspend();
                        else {
                            var t = this;
                            this.context.close().then(function() {
                                t.context = null;
                            });
                        }
                        n.prototype.destroy.call(this);
                    },
                    setMute: function(t) {
                        return this.mute = t, this;
                    },
                    mute: {
                        get: function() {
                            return 0 === this.masterMuteNode.gain.value;
                        },
                        set: function(t) {
                            this.masterMuteNode.gain.setValueAtTime(t ? 0 : 1, 0), this.emit(o.GLOBAL_MUTE, this, t);
                        }
                    },
                    setVolume: function(t) {
                        return this.volume = t, this;
                    },
                    volume: {
                        get: function() {
                            return this.masterVolumeNode.gain.value;
                        },
                        set: function(t) {
                            this.masterVolumeNode.gain.setValueAtTime(t, 0), this.emit(o.GLOBAL_VOLUME, this, t);
                        }
                    }
                });
                t.exports = u;
            },
            71207: (t, e, i)=>{
                var s = i(59959), n = i(56694), r = i(72283), o = i(17922), a = new n({
                    initialize: function(t) {
                        this.parent = t, this.list = [], this.position = 0, this.addCallback = r, this.removeCallback = r, this._sortKey = "";
                    },
                    add: function(t, e) {
                        return e ? s.Add(this.list, t) : s.Add(this.list, t, 0, this.addCallback, this);
                    },
                    addAt: function(t, e, i) {
                        return i ? s.AddAt(this.list, t, e) : s.AddAt(this.list, t, e, 0, this.addCallback, this);
                    },
                    getAt: function(t) {
                        return this.list[t];
                    },
                    getIndex: function(t) {
                        return this.list.indexOf(t);
                    },
                    sort: function(t, e) {
                        return t ? (void 0 === e && (e = function(e, i) {
                            return e[t] - i[t];
                        }), o(this.list, e), this) : this;
                    },
                    getByName: function(t) {
                        return s.GetFirst(this.list, "name", t);
                    },
                    getRandom: function(t, e) {
                        return s.GetRandom(this.list, t, e);
                    },
                    getFirst: function(t, e, i, n) {
                        return s.GetFirst(this.list, t, e, i, n);
                    },
                    getAll: function(t, e, i, n) {
                        return s.GetAll(this.list, t, e, i, n);
                    },
                    count: function(t, e) {
                        return s.CountAllMatching(this.list, t, e);
                    },
                    swap: function(t, e) {
                        s.Swap(this.list, t, e);
                    },
                    moveTo: function(t, e) {
                        return s.MoveTo(this.list, t, e);
                    },
                    moveAbove: function(t, e) {
                        return s.MoveAbove(this.list, t, e);
                    },
                    moveBelow: function(t, e) {
                        return s.MoveBelow(this.list, t, e);
                    },
                    remove: function(t, e) {
                        return e ? s.Remove(this.list, t) : s.Remove(this.list, t, this.removeCallback, this);
                    },
                    removeAt: function(t, e) {
                        return e ? s.RemoveAt(this.list, t) : s.RemoveAt(this.list, t, this.removeCallback, this);
                    },
                    removeBetween: function(t, e, i) {
                        return i ? s.RemoveBetween(this.list, t, e) : s.RemoveBetween(this.list, t, e, this.removeCallback, this);
                    },
                    removeAll: function(t) {
                        for(var e = this.list.length; e--;)this.remove(this.list[e], t);
                        return this;
                    },
                    bringToTop: function(t) {
                        return s.BringToTop(this.list, t);
                    },
                    sendToBack: function(t) {
                        return s.SendToBack(this.list, t);
                    },
                    moveUp: function(t) {
                        return s.MoveUp(this.list, t), t;
                    },
                    moveDown: function(t) {
                        return s.MoveDown(this.list, t), t;
                    },
                    reverse: function() {
                        return this.list.reverse(), this;
                    },
                    shuffle: function() {
                        return s.Shuffle(this.list), this;
                    },
                    replace: function(t, e) {
                        return s.Replace(this.list, t, e);
                    },
                    exists: function(t) {
                        return this.list.indexOf(t) > -1;
                    },
                    setAll: function(t, e, i, n) {
                        return s.SetAll(this.list, t, e, i, n), this;
                    },
                    each: function(t, e) {
                        for(var i = [
                            null
                        ], s = 2; s < arguments.length; s++)i.push(arguments[s]);
                        for(s = 0; s < this.list.length; s++)i[0] = this.list[s], t.apply(e, i);
                    },
                    shutdown: function() {
                        this.removeAll(), this.list = [];
                    },
                    destroy: function() {
                        this.removeAll(), this.parent = null, this.addCallback = null, this.removeCallback = null;
                    },
                    length: {
                        get: function() {
                            return this.list.length;
                        }
                    },
                    first: {
                        get: function() {
                            return this.position = 0, this.list.length > 0 ? this.list[0] : null;
                        }
                    },
                    last: {
                        get: function() {
                            return this.list.length > 0 ? (this.position = this.list.length - 1, this.list[this.position]) : null;
                        }
                    },
                    next: {
                        get: function() {
                            return this.position < this.list.length ? (this.position++, this.list[this.position]) : null;
                        }
                    },
                    previous: {
                        get: function() {
                            return this.position > 0 ? (this.position--, this.list[this.position]) : null;
                        }
                    }
                });
                t.exports = a;
            },
            33885: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t) {
                        if (this.entries = {}, this.size = 0, Array.isArray(t)) for(var e = 0; e < t.length; e++)this.set(t[e][0], t[e][1]);
                    },
                    set: function(t, e) {
                        return this.has(t) || this.size++, this.entries[t] = e, this;
                    },
                    get: function(t) {
                        if (this.has(t)) return this.entries[t];
                    },
                    getArray: function() {
                        var t = [], e = this.entries;
                        for(var i in e)t.push(e[i]);
                        return t;
                    },
                    has: function(t) {
                        return this.entries.hasOwnProperty(t);
                    },
                    delete: function(t) {
                        return this.has(t) && (delete this.entries[t], this.size--), this;
                    },
                    clear: function() {
                        return Object.keys(this.entries).forEach(function(t) {
                            delete this.entries[t];
                        }, this), this.size = 0, this;
                    },
                    keys: function() {
                        return Object.keys(this.entries);
                    },
                    values: function() {
                        var t = [], e = this.entries;
                        for(var i in e)t.push(e[i]);
                        return t;
                    },
                    dump: function() {
                        var t = this.entries;
                        for(var e in console.group("Map"), t)console.log(e, t[e]);
                        console.groupEnd();
                    },
                    each: function(t) {
                        var e = this.entries;
                        for(var i in e)if (!1 === t(i, e[i])) break;
                        return this;
                    },
                    contains: function(t) {
                        var e = this.entries;
                        for(var i in e)if (e[i] === t) return !0;
                        return !1;
                    },
                    merge: function(t, e) {
                        void 0 === e && (e = !1);
                        var i = this.entries, s = t.entries;
                        for(var n in s)i.hasOwnProperty(n) && e ? i[n] = s[n] : this.set(n, s[n]);
                        return this;
                    }
                });
                t.exports = s;
            },
            74623: (t, e, i)=>{
                var s = i(56694), n = i(6659), r = i(36716), o = new s({
                    Extends: n,
                    initialize: function() {
                        n.call(this), this._pending = [], this._active = [], this._destroy = [], this._toProcess = 0, this.checkQueue = !1;
                    },
                    isActive: function(t) {
                        return this._active.indexOf(t) > -1;
                    },
                    isPending: function(t) {
                        return this._toProcess > 0 && this._pending.indexOf(t) > -1;
                    },
                    isDestroying: function(t) {
                        return this._destroy.indexOf(t) > -1;
                    },
                    add: function(t) {
                        return this.checkQueue && this.isActive() && !this.isDestroying() || this.isPending() || (this._pending.push(t), this._toProcess++), t;
                    },
                    remove: function(t) {
                        if (this.isPending(t)) {
                            var e = this._pending, i = e.indexOf(t);
                            -1 !== i && e.splice(i, 1);
                        } else this.isActive(t) && (this._destroy.push(t), this._toProcess++);
                        return t;
                    },
                    removeAll: function() {
                        for(var t = this._active, e = this._destroy, i = t.length; i--;)e.push(t[i]), this._toProcess++;
                        return this;
                    },
                    update: function() {
                        if (0 === this._toProcess) return this._active;
                        var t, e, i = this._destroy, s = this._active;
                        for(t = 0; t < i.length; t++){
                            e = i[t];
                            var n = s.indexOf(e);
                            -1 !== n && (s.splice(n, 1), this.emit(r.PROCESS_QUEUE_REMOVE, e));
                        }
                        for(i.length = 0, i = this._pending, t = 0; t < i.length; t++)e = i[t], (!this.checkQueue || this.checkQueue && -1 === s.indexOf(e)) && (s.push(e), this.emit(r.PROCESS_QUEUE_ADD, e));
                        return i.length = 0, this._toProcess = 0, s;
                    },
                    getActive: function() {
                        return this._active;
                    },
                    length: {
                        get: function() {
                            return this._active.length;
                        }
                    },
                    destroy: function() {
                        this._toProcess = 0, this._pending = [], this._active = [], this._destroy = [];
                    }
                });
                t.exports = o;
            },
            68687: (t, e, i)=>{
                var s = i(53466);
                function n(t) {
                    if (!(this instanceof n)) return new n(t, [
                        ".left",
                        ".top",
                        ".right",
                        ".bottom"
                    ]);
                    this._maxEntries = Math.max(4, t || 9), this._minEntries = Math.max(2, Math.ceil(.4 * this._maxEntries)), this.clear();
                }
                function r(t, e, i) {
                    if (!i) return e.indexOf(t);
                    for(var s = 0; s < e.length; s++)if (i(t, e[s])) return s;
                    return -1;
                }
                function o(t, e) {
                    a(t, 0, t.children.length, e, t);
                }
                function a(t, e, i, s, n) {
                    n || (n = v(null)), n.minX = 1 / 0, n.minY = 1 / 0, n.maxX = -1 / 0, n.maxY = -1 / 0;
                    for(var r, o = e; o < i; o++)r = t.children[o], h(n, t.leaf ? s(r) : r);
                    return n;
                }
                function h(t, e) {
                    return t.minX = Math.min(t.minX, e.minX), t.minY = Math.min(t.minY, e.minY), t.maxX = Math.max(t.maxX, e.maxX), t.maxY = Math.max(t.maxY, e.maxY), t;
                }
                function l(t, e) {
                    return t.minX - e.minX;
                }
                function u(t, e) {
                    return t.minY - e.minY;
                }
                function c(t) {
                    return (t.maxX - t.minX) * (t.maxY - t.minY);
                }
                function d(t) {
                    return t.maxX - t.minX + (t.maxY - t.minY);
                }
                function f(t, e) {
                    return t.minX <= e.minX && t.minY <= e.minY && e.maxX <= t.maxX && e.maxY <= t.maxY;
                }
                function p(t, e) {
                    return e.minX <= t.maxX && e.minY <= t.maxY && e.maxX >= t.minX && e.maxY >= t.minY;
                }
                function v(t) {
                    return {
                        children: t,
                        height: 1,
                        leaf: !0,
                        minX: 1 / 0,
                        minY: 1 / 0,
                        maxX: -1 / 0,
                        maxY: -1 / 0
                    };
                }
                function g(t, e, i, n, r) {
                    for(var o, a = [
                        e,
                        i
                    ]; a.length;)(i = a.pop()) - (e = a.pop()) <= n || (o = e + Math.ceil((i - e) / n / 2) * n, s(t, o, e, i, r), a.push(e, o, o, i));
                }
                n.prototype = {
                    all: function() {
                        return this._all(this.data, []);
                    },
                    search: function(t) {
                        var e = this.data, i = [], s = this.toBBox;
                        if (!p(t, e)) return i;
                        for(var n, r, o, a, h = []; e;){
                            for(n = 0, r = e.children.length; n < r; n++)o = e.children[n], p(t, a = e.leaf ? s(o) : o) && (e.leaf ? i.push(o) : f(t, a) ? this._all(o, i) : h.push(o));
                            e = h.pop();
                        }
                        return i;
                    },
                    collides: function(t) {
                        var e = this.data, i = this.toBBox;
                        if (!p(t, e)) return !1;
                        for(var s, n, r, o, a = []; e;){
                            for(s = 0, n = e.children.length; s < n; s++)if (r = e.children[s], p(t, o = e.leaf ? i(r) : r)) {
                                if (e.leaf || f(t, o)) return !0;
                                a.push(r);
                            }
                            e = a.pop();
                        }
                        return !1;
                    },
                    load: function(t) {
                        if (!t || !t.length) return this;
                        if (t.length < this._minEntries) {
                            for(var e = 0, i = t.length; e < i; e++)this.insert(t[e]);
                            return this;
                        }
                        var s = this._build(t.slice(), 0, t.length - 1, 0);
                        if (this.data.children.length) {
                            if (this.data.height === s.height) this._splitRoot(this.data, s);
                            else {
                                if (this.data.height < s.height) {
                                    var n = this.data;
                                    this.data = s, s = n;
                                }
                                this._insert(s, this.data.height - s.height - 1, !0);
                            }
                        } else this.data = s;
                        return this;
                    },
                    insert: function(t) {
                        return t && this._insert(t, this.data.height - 1), this;
                    },
                    clear: function() {
                        return this.data = v([]), this;
                    },
                    remove: function(t, e) {
                        if (!t) return this;
                        for(var i, s, n, o, a = this.data, h = this.toBBox(t), l = [], u = []; a || l.length;){
                            if (a || (a = l.pop(), s = l[l.length - 1], i = u.pop(), o = !0), a.leaf && -1 !== (n = r(t, a.children, e))) return a.children.splice(n, 1), l.push(a), this._condense(l), this;
                            o || a.leaf || !f(a, h) ? s ? (i++, a = s.children[i], o = !1) : a = null : (l.push(a), u.push(i), i = 0, s = a, a = a.children[0]);
                        }
                        return this;
                    },
                    toBBox: function(t) {
                        return t;
                    },
                    compareMinX: l,
                    compareMinY: u,
                    toJSON: function() {
                        return this.data;
                    },
                    fromJSON: function(t) {
                        return this.data = t, this;
                    },
                    _all: function(t, e) {
                        for(var i = []; t;)t.leaf ? e.push.apply(e, t.children) : i.push.apply(i, t.children), t = i.pop();
                        return e;
                    },
                    _build: function(t, e, i, s) {
                        var n, r = i - e + 1, a = this._maxEntries;
                        if (r <= a) return o(n = v(t.slice(e, i + 1)), this.toBBox), n;
                        s || (s = Math.ceil(Math.log(r) / Math.log(a)), a = Math.ceil(r / Math.pow(a, s - 1))), (n = v([])).leaf = !1, n.height = s;
                        var h, l, u, c, d = Math.ceil(r / a), f = d * Math.ceil(Math.sqrt(a));
                        for(g(t, e, i, f, this.compareMinX), h = e; h <= i; h += f)for(g(t, h, u = Math.min(h + f - 1, i), d, this.compareMinY), l = h; l <= u; l += d)c = Math.min(l + d - 1, u), n.children.push(this._build(t, l, c, s - 1));
                        return o(n, this.toBBox), n;
                    },
                    _chooseSubtree: function(t, e, i, s) {
                        for(var n, r, o, a, h, l, u, d, f, p; s.push(e), !e.leaf && s.length - 1 !== i;){
                            for(u = d = 1 / 0, n = 0, r = e.children.length; n < r; n++)h = c(o = e.children[n]), f = t, p = o, (l = (Math.max(p.maxX, f.maxX) - Math.min(p.minX, f.minX)) * (Math.max(p.maxY, f.maxY) - Math.min(p.minY, f.minY)) - h) < d ? (d = l, u = h < u ? h : u, a = o) : l === d && h < u && (u = h, a = o);
                            e = a || e.children[0];
                        }
                        return e;
                    },
                    _insert: function(t, e, i) {
                        var s = this.toBBox, n = i ? t : s(t), r = [], o = this._chooseSubtree(n, this.data, e, r);
                        for(o.children.push(t), h(o, n); e >= 0 && r[e].children.length > this._maxEntries;)this._split(r, e), e--;
                        this._adjustParentBBoxes(n, r, e);
                    },
                    _split: function(t, e) {
                        var i = t[e], s = i.children.length, n = this._minEntries;
                        this._chooseSplitAxis(i, n, s);
                        var r = this._chooseSplitIndex(i, n, s), a = v(i.children.splice(r, i.children.length - r));
                        a.height = i.height, a.leaf = i.leaf, o(i, this.toBBox), o(a, this.toBBox), e ? t[e - 1].children.push(a) : this._splitRoot(i, a);
                    },
                    _splitRoot: function(t, e) {
                        this.data = v([
                            t,
                            e
                        ]), this.data.height = t.height + 1, this.data.leaf = !1, o(this.data, this.toBBox);
                    },
                    _chooseSplitIndex: function(t, e, i) {
                        var s, n, r, o, h, l, u, d, f, p, v, g, m, y;
                        for(l = u = 1 / 0, s = e; s <= i - e; s++)n = a(t, 0, s, this.toBBox), r = a(t, s, i, this.toBBox), f = n, p = r, v = void 0, g = void 0, m = void 0, y = void 0, v = Math.max(f.minX, p.minX), g = Math.max(f.minY, p.minY), m = Math.min(f.maxX, p.maxX), y = Math.min(f.maxY, p.maxY), o = Math.max(0, m - v) * Math.max(0, y - g), h = c(n) + c(r), o < l ? (l = o, d = s, u = h < u ? h : u) : o === l && h < u && (u = h, d = s);
                        return d;
                    },
                    _chooseSplitAxis: function(t, e, i) {
                        var s = t.leaf ? this.compareMinX : l, n = t.leaf ? this.compareMinY : u;
                        this._allDistMargin(t, e, i, s) < this._allDistMargin(t, e, i, n) && t.children.sort(s);
                    },
                    _allDistMargin: function(t, e, i, s) {
                        t.children.sort(s);
                        var n, r, o = this.toBBox, l = a(t, 0, e, o), u = a(t, i - e, i, o), c = d(l) + d(u);
                        for(n = e; n < i - e; n++)r = t.children[n], h(l, t.leaf ? o(r) : r), c += d(l);
                        for(n = i - e - 1; n >= e; n--)r = t.children[n], h(u, t.leaf ? o(r) : r), c += d(u);
                        return c;
                    },
                    _adjustParentBBoxes: function(t, e, i) {
                        for(var s = i; s >= 0; s--)h(e[s], t);
                    },
                    _condense: function(t) {
                        for(var e, i = t.length - 1; i >= 0; i--)0 === t[i].children.length ? i > 0 ? (e = t[i - 1].children).splice(e.indexOf(t[i]), 1) : this.clear() : o(t[i], this.toBBox);
                    },
                    compareMinX: function(t, e) {
                        return t.left - e.left;
                    },
                    compareMinY: function(t, e) {
                        return t.top - e.top;
                    },
                    toBBox: function(t) {
                        return {
                            minX: t.left,
                            minY: t.top,
                            maxX: t.right,
                            maxY: t.bottom
                        };
                    }
                }, t.exports = n;
            },
            58403: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t) {
                        if (this.entries = [], Array.isArray(t)) for(var e = 0; e < t.length; e++)this.set(t[e]);
                    },
                    set: function(t) {
                        return -1 === this.entries.indexOf(t) && this.entries.push(t), this;
                    },
                    get: function(t, e) {
                        for(var i = 0; i < this.entries.length; i++){
                            var s = this.entries[i];
                            if (s[t] === e) return s;
                        }
                    },
                    getArray: function() {
                        return this.entries.slice(0);
                    },
                    delete: function(t) {
                        var e = this.entries.indexOf(t);
                        return e > -1 && this.entries.splice(e, 1), this;
                    },
                    dump: function() {
                        console.group("Set");
                        for(var t = 0; t < this.entries.length; t++){
                            var e = this.entries[t];
                            console.log(e);
                        }
                        console.groupEnd();
                    },
                    each: function(t, e) {
                        var i, s = this.entries.slice(), n = s.length;
                        if (e) for(i = 0; i < n && !1 !== t.call(e, s[i], i); i++);
                        else for(i = 0; i < n && !1 !== t(s[i], i); i++);
                        return this;
                    },
                    iterate: function(t, e) {
                        var i, s = this.entries.length;
                        if (e) for(i = 0; i < s && !1 !== t.call(e, this.entries[i], i); i++);
                        else for(i = 0; i < s && !1 !== t(this.entries[i], i); i++);
                        return this;
                    },
                    iterateLocal: function(t) {
                        var e, i = [];
                        for(e = 1; e < arguments.length; e++)i.push(arguments[e]);
                        var s = this.entries.length;
                        for(e = 0; e < s; e++){
                            var n = this.entries[e];
                            n[t].apply(n, i);
                        }
                        return this;
                    },
                    clear: function() {
                        return this.entries.length = 0, this;
                    },
                    contains: function(t) {
                        return this.entries.indexOf(t) > -1;
                    },
                    union: function(t) {
                        var e = new s;
                        return t.entries.forEach(function(t) {
                            e.set(t);
                        }), this.entries.forEach(function(t) {
                            e.set(t);
                        }), e;
                    },
                    intersect: function(t) {
                        var e = new s;
                        return this.entries.forEach(function(i) {
                            t.contains(i) && e.set(i);
                        }), e;
                    },
                    difference: function(t) {
                        var e = new s;
                        return this.entries.forEach(function(i) {
                            t.contains(i) || e.set(i);
                        }), e;
                    },
                    size: {
                        get: function() {
                            return this.entries.length;
                        },
                        set: function(t) {
                            return t < this.entries.length ? this.entries.length = t : this.entries.length;
                        }
                    }
                });
                t.exports = s;
            },
            90881: (t, e, i)=>{
                var s = i(82897), n = i(56694), r = i(84314), o = i(93736), a = new n({
                    initialize: function(t, e, i, s) {
                        void 0 === t && (t = 0), void 0 === e && (e = t), void 0 === i && (i = 0), void 0 === s && (s = null), this._width = t, this._height = e, this._parent = s, this.aspectMode = i, this.aspectRatio = 0 === e ? 1 : t / e, this.minWidth = 0, this.minHeight = 0, this.maxWidth = Number.MAX_VALUE, this.maxHeight = Number.MAX_VALUE, this.snapTo = new o;
                    },
                    setAspectMode: function(t) {
                        return void 0 === t && (t = 0), this.aspectMode = t, this.setSize(this._width, this._height);
                    },
                    setSnap: function(t, e) {
                        return void 0 === t && (t = 0), void 0 === e && (e = t), this.snapTo.set(t, e), this.setSize(this._width, this._height);
                    },
                    setParent: function(t) {
                        return this._parent = t, this.setSize(this._width, this._height);
                    },
                    setMin: function(t, e) {
                        return void 0 === t && (t = 0), void 0 === e && (e = t), this.minWidth = s(t, 0, this.maxWidth), this.minHeight = s(e, 0, this.maxHeight), this.setSize(this._width, this._height);
                    },
                    setMax: function(t, e) {
                        return void 0 === t && (t = Number.MAX_VALUE), void 0 === e && (e = t), this.maxWidth = s(t, this.minWidth, Number.MAX_VALUE), this.maxHeight = s(e, this.minHeight, Number.MAX_VALUE), this.setSize(this._width, this._height);
                    },
                    setSize: function(t, e) {
                        switch(void 0 === t && (t = 0), void 0 === e && (e = t), this.aspectMode){
                            case a.NONE:
                                this._width = this.getNewWidth(r(t, this.snapTo.x)), this._height = this.getNewHeight(r(e, this.snapTo.y)), this.aspectRatio = 0 === this._height ? 1 : this._width / this._height;
                                break;
                            case a.WIDTH_CONTROLS_HEIGHT:
                                this._width = this.getNewWidth(r(t, this.snapTo.x)), this._height = this.getNewHeight(this._width * (1 / this.aspectRatio), !1);
                                break;
                            case a.HEIGHT_CONTROLS_WIDTH:
                                this._height = this.getNewHeight(r(e, this.snapTo.y)), this._width = this.getNewWidth(this._height * this.aspectRatio, !1);
                                break;
                            case a.FIT:
                                this.constrain(t, e, !0);
                                break;
                            case a.ENVELOP:
                                this.constrain(t, e, !1);
                        }
                        return this;
                    },
                    setAspectRatio: function(t) {
                        return this.aspectRatio = t, this.setSize(this._width, this._height);
                    },
                    resize: function(t, e) {
                        return this._width = this.getNewWidth(r(t, this.snapTo.x)), this._height = this.getNewHeight(r(e, this.snapTo.y)), this.aspectRatio = 0 === this._height ? 1 : this._width / this._height, this;
                    },
                    getNewWidth: function(t, e) {
                        return void 0 === e && (e = !0), t = s(t, this.minWidth, this.maxWidth), e && this._parent && t > this._parent.width && (t = Math.max(this.minWidth, this._parent.width)), t;
                    },
                    getNewHeight: function(t, e) {
                        return void 0 === e && (e = !0), t = s(t, this.minHeight, this.maxHeight), e && this._parent && t > this._parent.height && (t = Math.max(this.minHeight, this._parent.height)), t;
                    },
                    constrain: function(t, e, i) {
                        void 0 === t && (t = 0), void 0 === e && (e = t), void 0 === i && (i = !0), t = this.getNewWidth(t), e = this.getNewHeight(e);
                        var s = this.snapTo, n = 0 === e ? 1 : t / e;
                        return i && this.aspectRatio > n || !i && this.aspectRatio < n ? (e = (t = r(t, s.x)) / this.aspectRatio, s.y > 0 && (t = (e = r(e, s.y)) * this.aspectRatio)) : (i && this.aspectRatio < n || !i && this.aspectRatio > n) && (t = (e = r(e, s.y)) * this.aspectRatio, s.x > 0 && (e = (t = r(t, s.x)) * (1 / this.aspectRatio))), this._width = t, this._height = e, this;
                    },
                    fitTo: function(t, e) {
                        return this.constrain(t, e, !0);
                    },
                    envelop: function(t, e) {
                        return this.constrain(t, e, !1);
                    },
                    setWidth: function(t) {
                        return this.setSize(t, this._height);
                    },
                    setHeight: function(t) {
                        return this.setSize(this._width, t);
                    },
                    toString: function() {
                        return "[{ Size (width=" + this._width + " height=" + this._height + " aspectRatio=" + this.aspectRatio + " aspectMode=" + this.aspectMode + ") }]";
                    },
                    setCSS: function(t) {
                        t && t.style && (t.style.width = this._width + "px", t.style.height = this._height + "px");
                    },
                    copy: function(t) {
                        return t.setAspectMode(this.aspectMode), t.aspectRatio = this.aspectRatio, t.setSize(this.width, this.height);
                    },
                    destroy: function() {
                        this._parent = null, this.snapTo = null;
                    },
                    width: {
                        get: function() {
                            return this._width;
                        },
                        set: function(t) {
                            this.setSize(t, this._height);
                        }
                    },
                    height: {
                        get: function() {
                            return this._height;
                        },
                        set: function(t) {
                            this.setSize(this._width, t);
                        }
                    }
                });
                a.NONE = 0, a.WIDTH_CONTROLS_HEIGHT = 1, a.HEIGHT_CONTROLS_WIDTH = 2, a.FIT = 3, a.ENVELOP = 4, t.exports = a;
            },
            94160: (t)=>{
                t.exports = "add";
            },
            95393: (t)=>{
                t.exports = "remove";
            },
            36716: (t, e, i)=>{
                t.exports = {
                    PROCESS_QUEUE_ADD: i(94160),
                    PROCESS_QUEUE_REMOVE: i(95393)
                };
            },
            20010: (t, e, i)=>{
                t.exports = {
                    Events: i(36716),
                    List: i(71207),
                    Map: i(33885),
                    ProcessQueue: i(74623),
                    RTree: i(68687),
                    Set: i(58403),
                    Size: i(90881)
                };
            },
            17487: (t, e, i)=>{
                var s = i(56694), n = i(82897), r = i(27119), o = i(86459), a = i(28621), h = i(31673), l = new s({
                    Extends: h,
                    initialize: function(t, e, i, s, n) {
                        h.call(this, t, e, i, s, n), this.add("__BASE", 0, 0, 0, s, n), this._source = this.frames.__BASE.source, this.canvas = this._source.image, this.context = this.canvas.getContext("2d", {
                            willReadFrequently: !0
                        }), this.width = s, this.height = n, this.imageData = this.context.getImageData(0, 0, s, n), this.data = null, this.imageData && (this.data = this.imageData.data), this.pixels = null, this.buffer, this.data && (this.imageData.data.buffer ? (this.buffer = this.imageData.data.buffer, this.pixels = new Uint32Array(this.buffer)) : window.ArrayBuffer ? (this.buffer = new ArrayBuffer(this.imageData.data.length), this.pixels = new Uint32Array(this.buffer)) : this.pixels = this.imageData.data);
                    },
                    update: function() {
                        return this.imageData = this.context.getImageData(0, 0, this.width, this.height), this.data = this.imageData.data, this.imageData.data.buffer ? (this.buffer = this.imageData.data.buffer, this.pixels = new Uint32Array(this.buffer)) : window.ArrayBuffer ? (this.buffer = new ArrayBuffer(this.imageData.data.length), this.pixels = new Uint32Array(this.buffer)) : this.pixels = this.imageData.data, this.manager.game.config.renderType === o.WEBGL && this.refresh(), this;
                    },
                    draw: function(t, e, i, s) {
                        return void 0 === s && (s = !0), this.context.drawImage(i, t, e), s && this.update(), this;
                    },
                    drawFrame: function(t, e, i, s, n) {
                        void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === n && (n = !0);
                        var r = this.manager.getFrame(t, e);
                        if (r) {
                            var o = r.canvasData, a = r.cutWidth, h = r.cutHeight, l = r.source.resolution;
                            this.context.drawImage(r.source.image, o.x, o.y, a, h, i, s, a / l, h / l), n && this.update();
                        }
                        return this;
                    },
                    setPixel: function(t, e, i, s, n, r) {
                        if (void 0 === r && (r = 255), t = Math.abs(Math.floor(t)), e = Math.abs(Math.floor(e)), this.getIndex(t, e) > -1) {
                            var o = this.context.getImageData(t, e, 1, 1);
                            o.data[0] = i, o.data[1] = s, o.data[2] = n, o.data[3] = r, this.context.putImageData(o, t, e);
                        }
                        return this;
                    },
                    putData: function(t, e, i, s, n, r, o) {
                        return void 0 === s && (s = 0), void 0 === n && (n = 0), void 0 === r && (r = t.width), void 0 === o && (o = t.height), this.context.putImageData(t, e, i, s, n, r, o), this;
                    },
                    getData: function(t, e, i, s) {
                        return t = n(Math.floor(t), 0, this.width - 1), e = n(Math.floor(e), 0, this.height - 1), i = n(i, 1, this.width - t), s = n(s, 1, this.height - e), this.context.getImageData(t, e, i, s);
                    },
                    getPixel: function(t, e, i) {
                        i || (i = new r);
                        var s = this.getIndex(t, e);
                        if (s > -1) {
                            var n = this.data, o = n[s + 0], a = n[s + 1], h = n[s + 2], l = n[s + 3];
                            i.setTo(o, a, h, l);
                        }
                        return i;
                    },
                    getPixels: function(t, e, i, s) {
                        void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = this.width), void 0 === s && (s = i), t = Math.abs(Math.round(t)), e = Math.abs(Math.round(e));
                        for(var o = n(t, 0, this.width), a = n(t + i, 0, this.width), h = n(e, 0, this.height), l = n(e + s, 0, this.height), u = new r, c = [], d = h; d < l; d++){
                            for(var f = [], p = o; p < a; p++)u = this.getPixel(p, d, u), f.push({
                                x: p,
                                y: d,
                                color: u.color,
                                alpha: u.alphaGL
                            });
                            c.push(f);
                        }
                        return c;
                    },
                    getIndex: function(t, e) {
                        return t = Math.abs(Math.round(t)), e = Math.abs(Math.round(e)), t < this.width && e < this.height ? 4 * (t + e * this.width) : -1;
                    },
                    refresh: function() {
                        return this._source.update(), this;
                    },
                    getCanvas: function() {
                        return this.canvas;
                    },
                    getContext: function() {
                        return this.context;
                    },
                    clear: function(t, e, i, s, n) {
                        return void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = this.width), void 0 === s && (s = this.height), void 0 === n && (n = !0), this.context.clearRect(t, e, i, s), n && this.update(), this;
                    },
                    setSize: function(t, e) {
                        return void 0 === e && (e = t), t === this.width && e === this.height || (this.canvas.width = t, this.canvas.height = e, this._source.width = t, this._source.height = e, this._source.isPowerOf2 = a(t, e), this.frames.__BASE.setSize(t, e, 0, 0), this.width = t, this.height = e, this.refresh()), this;
                    },
                    destroy: function() {
                        h.prototype.destroy.call(this), this._source = null, this.canvas = null, this.context = null, this.imageData = null, this.data = null, this.pixels = null, this.buffer = null;
                    }
                });
                t.exports = l;
            },
            845: (t, e, i)=>{
                var s = i(95723), n = i(51052), r = i(61068), o = i(56694), a = i(86459), h = i(82047), l = i(72632), u = i(65641), c = i(37410), d = i(31673), f = i(75512), p = new o({
                    Extends: d,
                    initialize: function(t, e, i, s) {
                        void 0 === i && (i = 256), void 0 === s && (s = 256), this.type = "DynamicTexture";
                        var o = t.game.renderer, h = o && o.type === a.CANVAS, l = h ? r.create2D(this, i, s) : [
                            this
                        ];
                        d.call(this, t, e, l, i, s), this.add("__BASE", 0, 0, 0, i, s), this.renderer = o, this.isDrawing = !1, this.canvas = h ? l : null, this.context = h ? l.getContext("2d", {
                            willReadFrequently: !0
                        }) : null, this.dirty = !1, this.isSpriteTexture = !0, this._eraseMode = !1, this.camera = new n(0, 0, i, s).setScene(t.game.scene.systemScene, !1), this.renderTarget = h ? null : new c(o, i, s, 1, 0, !1, !0, !0, !1), this.pipeline = h ? null : o.pipelines.get(u.SINGLE_PIPELINE), this.setSize(i, s);
                    },
                    setSize: function(t, e) {
                        void 0 === e && (e = t);
                        var i = this.get(), s = i.source;
                        if (t !== this.width || e !== this.height) {
                            this.canvas && (this.canvas.width = t, this.canvas.height = e);
                            var n = this.renderTarget;
                            n && (n.resize(t, e), i.glTexture = n.texture, s.isRenderTexture = !0, s.isGLTexture = !0, s.glTexture = n.texture, s.glTexture.flipY = !0), this.camera.setSize(t, e), s.width = t, s.height = e, i.setSize(t, e), this.width = t, this.height = e;
                        } else {
                            var r = this.getSourceImage();
                            i.cutX + t > r.width && (t = r.width - i.cutX), i.cutY + e > r.height && (e = r.height - i.cutY), i.setSize(t, e, i.cutX, i.cutY);
                        }
                        return this;
                    },
                    setIsSpriteTexture: function(t) {
                        return this.isSpriteTexture = t, this;
                    },
                    fill: function(t, e, i, s, n, r) {
                        var o = this.camera, a = this.renderer;
                        void 0 === e && (e = 1), void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === n && (n = this.width), void 0 === r && (r = this.height);
                        var h = t >> 16 & 255, l = t >> 8 & 255, u = 255 & t, c = this.renderTarget;
                        if (o.preRender(), c) {
                            c.bind(!0);
                            var d = this.pipeline.manager.set(this.pipeline), p = a.width / c.width, v = a.height / c.height;
                            d.drawFillRect(i * p, s * v, n * p, r * v, f.getTintFromFloats(u / 255, l / 255, h / 255, 1), e), c.unbind(!0);
                        } else {
                            var g = this.context;
                            a.setContext(g), g.globalCompositeOperation = "source-over", g.fillStyle = "rgba(" + h + "," + l + "," + u + "," + e + ")", g.fillRect(i, s, n, r), a.setContext();
                        }
                        return this.dirty = !0, this;
                    },
                    clear: function() {
                        if (this.dirty) {
                            var t = this.context, e = this.renderTarget;
                            e ? e.clear() : t && (t.save(), t.setTransform(1, 0, 0, 1, 0, 0), t.clearRect(0, 0, this.width, this.height), t.restore()), this.dirty = !1;
                        }
                        return this;
                    },
                    stamp: function(t, e, i, s, n) {
                        void 0 === i && (i = 0), void 0 === s && (s = 0);
                        var r = l(n, "alpha", 1), o = l(n, "tint", 16777215), a = l(n, "angle", 0), h = l(n, "rotation", 0), u = l(n, "scale", 1), c = l(n, "scaleX", u), d = l(n, "scaleY", u), f = l(n, "originX", .5), p = l(n, "originY", .5), v = l(n, "blendMode", 0), g = l(n, "erase", !1), m = l(n, "skipBatch", !1), y = this.manager.resetStamp(r, o);
                        return y.setAngle(0), 0 !== a ? y.setAngle(a) : 0 !== h && y.setRotation(h), y.setScale(c, d), y.setTexture(t, e), y.setOrigin(f, p), y.setBlendMode(v), g && (this._eraseMode = !0), m ? this.batchGameObject(y, i, s) : this.draw(y, i, s), g && (this._eraseMode = !1), this;
                    },
                    erase: function(t, e, i) {
                        return this._eraseMode = !0, this.draw(t, e, i), this._eraseMode = !1, this;
                    },
                    draw: function(t, e, i, s, n) {
                        return this.beginDraw(), this.batchDraw(t, e, i, s, n), this.endDraw(), this;
                    },
                    drawFrame: function(t, e, i, s, n, r) {
                        return this.beginDraw(), this.batchDrawFrame(t, e, i, s, n, r), this.endDraw(), this;
                    },
                    repeat: function(t, e, i, s, n, r, o, a, l) {
                        if (void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === n && (n = this.width), void 0 === r && (r = this.height), void 0 === o && (o = 1), void 0 === a && (a = 16777215), void 0 === l && (l = !1), !(e = t instanceof h ? t : this.manager.getFrame(t, e))) return this;
                        var u = this.manager.resetStamp(o, a);
                        u.setFrame(e), u.setOrigin(0);
                        var c = e.width, d = e.height;
                        n = Math.floor(n), r = Math.floor(r);
                        var f = Math.ceil(n / c), p = Math.ceil(r / d), v = f * c - n, g = p * d - r;
                        v > 0 && (v = c - v), g > 0 && (g = d - g), i < 0 && (f += Math.ceil(Math.abs(i) / c)), s < 0 && (p += Math.ceil(Math.abs(s) / d));
                        var m = i, y = s, x = !1, T = this.manager.stampCrop.setTo(0, 0, c, d);
                        l || this.beginDraw();
                        for(var w = 0; w < p; w++)if (y + d < 0) y += d;
                        else {
                            for(var b = 0; b < f; b++)x = !1, m + c < 0 || (m < 0 && (x = !0, T.width = c + m, T.x = c - T.width), y < 0 && (x = !0, T.height = d + y, T.y = d - T.height), v > 0 && b === f - 1 && (x = !0, T.width = v), g > 0 && w === p - 1 && (x = !0, T.height = g), x && u.setCrop(T), this.batchGameObject(u, m, y), u.isCropped = !1, T.setTo(0, 0, c, d)), m += c;
                            m = i, y += d;
                        }
                        return l || this.endDraw(), this;
                    },
                    beginDraw: function() {
                        if (!this.isDrawing) {
                            var t = this.camera, e = this.renderer, i = this.renderTarget;
                            t.preRender(), i ? e.beginCapture(i.width, i.height) : e.setContext(this.context), this.isDrawing = !0;
                        }
                        return this;
                    },
                    batchDraw: function(t, e, i, s, n) {
                        return Array.isArray(t) || (t = [
                            t
                        ]), this.batchList(t, e, i, s, n), this;
                    },
                    batchDrawFrame: function(t, e, i, s, n, r) {
                        void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === n && (n = 1), void 0 === r && (r = 16777215);
                        var o = this.manager.getFrame(t, e);
                        return o && (this.renderTarget ? this.pipeline.batchTextureFrame(o, i, s, r, n, this.camera.matrix, null) : this.batchTextureFrame(o, i, s, n, r)), this;
                    },
                    endDraw: function(t) {
                        if (void 0 === t && (t = this._eraseMode), this.isDrawing) {
                            var e = this.renderer, i = this.renderTarget;
                            if (i) {
                                var s = e.endCapture();
                                e.pipelines.setUtility().blitFrame(s, i, 1, !1, !1, t, this.isSpriteTexture), e.resetScissor(), e.resetViewport();
                            } else e.setContext();
                            this.dirty = !0, this.isDrawing = !1;
                        }
                        return this;
                    },
                    batchList: function(t, e, i, s, n) {
                        var r = t.length;
                        if (0 !== r) for(var o = 0; o < r; o++){
                            var a = t[o];
                            a && a !== this && (a.renderWebGL || a.renderCanvas ? this.batchGameObject(a, e, i) : a.isParent || a.list ? this.batchGroup(a.getChildren(), e, i) : "string" == typeof a ? this.batchTextureFrameKey(a, null, e, i, s, n) : a instanceof h ? this.batchTextureFrame(a, e, i, s, n) : Array.isArray(a) && this.batchList(a, e, i, s, n));
                        }
                    },
                    batchGroup: function(t, e, i) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0);
                        for(var s = 0; s < t.length; s++){
                            var n = t[s];
                            n.willRender(this.camera) && this.batchGameObject(n, n.x + e, n.y + i);
                        }
                    },
                    batchGameObject: function(t, e, i) {
                        void 0 === e && (e = t.x), void 0 === i && (i = t.y);
                        var n = t.x, r = t.y, o = this.camera, a = this.renderer, h = this._eraseMode, l = t.mask;
                        if (t.setPosition(e, i), this.canvas) {
                            if (h) {
                                var u = t.blendMode;
                                t.blendMode = s.ERASE;
                            }
                            l && l.preRenderCanvas(a, t, o), t.renderCanvas(a, t, o, null), l && l.postRenderCanvas(a, t, o), h && (t.blendMode = u);
                        } else a && (l && l.preRenderWebGL(a, t, o), h || a.setBlendMode(t.blendMode), t.renderWebGL(a, t, o), l && l.postRenderWebGL(a, o, this.renderTarget));
                        t.setPosition(n, r);
                    },
                    batchTextureFrameKey: function(t, e, i, s, n, r) {
                        var o = this.manager.getFrame(t, e);
                        o && this.batchTextureFrame(o, i, s, n, r);
                    },
                    batchTextureFrame: function(t, e, i, s, n) {
                        void 0 === e && (e = 0), void 0 === i && (i = 0), void 0 === s && (s = 1), void 0 === n && (n = 16777215);
                        var r = this.camera.matrix;
                        if (this.renderTarget) this.pipeline.batchTextureFrame(t, e, i, n, s, r, null);
                        else {
                            var o = this.context, a = t.canvasData, h = t.source.image;
                            o.save(), o.globalCompositeOperation = this._eraseMode ? "destination-out" : "source-over", o.globalAlpha = s, r.setToContext(o), a.width > 0 && a.height > 0 && o.drawImage(h, a.x, a.y, a.width, a.height, e, i, a.width, a.height), o.restore();
                        }
                    },
                    snapshotArea: function(t, e, i, s, n, r, o) {
                        return this.renderTarget ? this.renderer.snapshotFramebuffer(this.renderTarget.framebuffer, this.width, this.height, n, !1, t, e, i, s, r, o) : this.renderer.snapshotCanvas(this.canvas, n, !1, t, e, i, s, r, o), this;
                    },
                    snapshot: function(t, e, i) {
                        return this.snapshotArea(0, 0, this.width, this.height, t, e, i);
                    },
                    snapshotPixel: function(t, e, i) {
                        return this.snapshotArea(t, e, 1, 1, i, "pixel");
                    },
                    getWebGLTexture: function() {
                        if (this.renderTarget) return this.renderTarget.texture;
                    },
                    renderWebGL: function(t, e, i, s) {
                        var n = this.manager.resetStamp();
                        n.setTexture(this), n.setOrigin(0), n.renderWebGL(t, n, i, s);
                    },
                    renderCanvas: function() {},
                    preDestroy: function() {
                        r.remove(this.canvas), this.renderTarget && this.renderTarget.destroy(), this.camera.destroy(), this.stamp.destroy(), this.canvas = null, this.context = null, this.renderer = null, this.scene = null;
                    }
                });
                t.exports = p;
            },
            82047: (t, e, i)=>{
                var s = i(56694), n = i(82897), r = i(98611), o = new s({
                    initialize: function(t, e, i, s, n, r, o) {
                        this.texture = t, this.name = e, this.source = t.source[i], this.sourceIndex = i, this.glTexture = this.source.glTexture, this.cutX, this.cutY, this.cutWidth, this.cutHeight, this.x = 0, this.y = 0, this.width, this.height, this.halfWidth, this.halfHeight, this.centerX, this.centerY, this.pivotX = 0, this.pivotY = 0, this.customPivot = !1, this.rotated = !1, this.autoRound = -1, this.customData = {}, this.u0 = 0, this.v0 = 0, this.u1 = 0, this.v1 = 0, this.data = {
                            cut: {
                                x: 0,
                                y: 0,
                                w: 0,
                                h: 0,
                                r: 0,
                                b: 0
                            },
                            trim: !1,
                            sourceSize: {
                                w: 0,
                                h: 0
                            },
                            spriteSourceSize: {
                                x: 0,
                                y: 0,
                                w: 0,
                                h: 0,
                                r: 0,
                                b: 0
                            },
                            radius: 0,
                            drawImage: {
                                x: 0,
                                y: 0,
                                width: 0,
                                height: 0
                            }
                        }, this.setSize(r, o, s, n);
                    },
                    setSize: function(t, e, i, s) {
                        void 0 === i && (i = 0), void 0 === s && (s = 0), this.cutX = i, this.cutY = s, this.cutWidth = t, this.cutHeight = e, this.width = t, this.height = e, this.halfWidth = Math.floor(.5 * t), this.halfHeight = Math.floor(.5 * e), this.centerX = Math.floor(t / 2), this.centerY = Math.floor(e / 2);
                        var n = this.data, r = n.cut;
                        r.x = i, r.y = s, r.w = t, r.h = e, r.r = i + t, r.b = s + e, n.sourceSize.w = t, n.sourceSize.h = e, n.spriteSourceSize.w = t, n.spriteSourceSize.h = e, n.radius = .5 * Math.sqrt(t * t + e * e);
                        var o = n.drawImage;
                        return o.x = i, o.y = s, o.width = t, o.height = e, this.updateUVs();
                    },
                    setTrim: function(t, e, i, s, n, r) {
                        var o = this.data, a = o.spriteSourceSize;
                        return o.trim = !0, o.sourceSize.w = t, o.sourceSize.h = e, a.x = i, a.y = s, a.w = n, a.h = r, a.r = i + n, a.b = s + r, this.x = i, this.y = s, this.width = n, this.height = r, this.halfWidth = .5 * n, this.halfHeight = .5 * r, this.centerX = Math.floor(n / 2), this.centerY = Math.floor(r / 2), this.updateUVs();
                    },
                    setCropUVs: function(t, e, i, s, r, o, a) {
                        var h = this.cutX, l = this.cutY, u = this.cutWidth, c = this.cutHeight, d = this.realWidth, f = this.realHeight, p = h + (e = n(e, 0, d)), v = l + (i = n(i, 0, f)), g = s = n(s, 0, d - e), m = r = n(r, 0, f - i), y = this.data;
                        if (y.trim) {
                            var x = y.spriteSourceSize, T = e + (s = n(s, 0, u - e)), w = i + (r = n(r, 0, c - i));
                            if (!(x.r < e || x.b < i || x.x > T || x.y > w)) {
                                var b = Math.max(x.x, e), S = Math.max(x.y, i), E = Math.min(x.r, T) - b, A = Math.min(x.b, w) - S;
                                g = E, m = A, p = o ? h + (u - (b - x.x) - E) : h + (b - x.x), v = a ? l + (c - (S - x.y) - A) : l + (S - x.y), e = b, i = S, s = E, r = A;
                            } else p = 0, v = 0, g = 0, m = 0;
                        } else o && (p = h + (u - e - s)), a && (v = l + (c - i - r));
                        var C = this.source.width, _ = this.source.height;
                        return t.u0 = Math.max(0, p / C), t.v0 = Math.max(0, v / _), t.u1 = Math.min(1, (p + g) / C), t.v1 = Math.min(1, (v + m) / _), t.x = e, t.y = i, t.cx = p, t.cy = v, t.cw = g, t.ch = m, t.width = s, t.height = r, t.flipX = o, t.flipY = a, t;
                    },
                    updateCropUVs: function(t, e, i) {
                        return this.setCropUVs(t, t.x, t.y, t.width, t.height, e, i);
                    },
                    setUVs: function(t, e, i, s, n, r) {
                        var o = this.data.drawImage;
                        return o.width = t, o.height = e, this.u0 = i, this.v0 = s, this.u1 = n, this.v1 = r, this;
                    },
                    updateUVs: function() {
                        var t = this.cutX, e = this.cutY, i = this.cutWidth, s = this.cutHeight, n = this.data.drawImage;
                        n.width = i, n.height = s;
                        var r = this.source.width, o = this.source.height;
                        return this.u0 = t / r, this.v0 = e / o, this.u1 = (t + i) / r, this.v1 = (e + s) / o, this;
                    },
                    updateUVsInverted: function() {
                        var t = this.source.width, e = this.source.height;
                        return this.u0 = (this.cutX + this.cutHeight) / t, this.v0 = this.cutY / e, this.u1 = this.cutX / t, this.v1 = (this.cutY + this.cutWidth) / e, this;
                    },
                    clone: function() {
                        var t = new o(this.texture, this.name, this.sourceIndex);
                        return t.cutX = this.cutX, t.cutY = this.cutY, t.cutWidth = this.cutWidth, t.cutHeight = this.cutHeight, t.x = this.x, t.y = this.y, t.width = this.width, t.height = this.height, t.halfWidth = this.halfWidth, t.halfHeight = this.halfHeight, t.centerX = this.centerX, t.centerY = this.centerY, t.rotated = this.rotated, t.data = r(!0, t.data, this.data), t.updateUVs(), t;
                    },
                    destroy: function() {
                        this.source = null, this.texture = null, this.glTexture = null, this.customData = null, this.data = null;
                    },
                    realWidth: {
                        get: function() {
                            return this.data.sourceSize.w;
                        }
                    },
                    realHeight: {
                        get: function() {
                            return this.data.sourceSize.h;
                        }
                    },
                    radius: {
                        get: function() {
                            return this.data.radius;
                        }
                    },
                    trimmed: {
                        get: function() {
                            return this.data.trim;
                        }
                    },
                    canvasData: {
                        get: function() {
                            return this.data.drawImage;
                        }
                    }
                });
                t.exports = o;
            },
            31673: (t, e, i)=>{
                var s = i(56694), n = i(82047), r = i(32547), o = 'Texture "%s" has no frame "%s"', a = new s({
                    initialize: function(t, e, i, s, n) {
                        Array.isArray(i) || (i = [
                            i
                        ]), this.manager = t, this.key = e, this.source = [], this.dataSource = [], this.frames = {}, this.customData = {}, this.firstFrame = "__BASE", this.frameTotal = 0;
                        for(var o = 0; o < i.length; o++)this.source.push(new r(this, i[o], s, n));
                    },
                    add: function(t, e, i, s, r, o) {
                        if (this.has(t)) return null;
                        var a = new n(this, t, e, i, s, r, o);
                        return this.frames[t] = a, "__BASE" === this.firstFrame && (this.firstFrame = t), this.frameTotal++, a;
                    },
                    remove: function(t) {
                        return !!this.has(t) && (this.get(t).destroy(), delete this.frames[t], !0);
                    },
                    has: function(t) {
                        return this.frames.hasOwnProperty(t);
                    },
                    get: function(t) {
                        t || (t = this.firstFrame);
                        var e = this.frames[t];
                        return e || (console.warn(o, this.key, t), e = this.frames[this.firstFrame]), e;
                    },
                    getTextureSourceIndex: function(t) {
                        for(var e = 0; e < this.source.length; e++)if (this.source[e] === t) return e;
                        return -1;
                    },
                    getFramesFromTextureSource: function(t, e) {
                        void 0 === e && (e = !1);
                        var i = [];
                        for(var s in this.frames)if ("__BASE" !== s || e) {
                            var n = this.frames[s];
                            n.sourceIndex === t && i.push(n);
                        }
                        return i;
                    },
                    getFrameNames: function(t) {
                        void 0 === t && (t = !1);
                        var e = Object.keys(this.frames);
                        if (!t) {
                            var i = e.indexOf("__BASE");
                            -1 !== i && e.splice(i, 1);
                        }
                        return e;
                    },
                    getSourceImage: function(t) {
                        null != t && 1 !== this.frameTotal || (t = "__BASE");
                        var e = this.frames[t];
                        return e ? e.source.image : (console.warn(o, this.key, t), this.frames.__BASE.source.image);
                    },
                    getDataSourceImage: function(t) {
                        null != t && 1 !== this.frameTotal || (t = "__BASE");
                        var e, i = this.frames[t];
                        return i ? e = i.sourceIndex : (console.warn(o, this.key, t), e = this.frames.__BASE.sourceIndex), this.dataSource[e].image;
                    },
                    setDataSource: function(t) {
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var e = 0; e < t.length; e++){
                            var i = this.source[e];
                            this.dataSource.push(new r(this, t[e], i.width, i.height));
                        }
                    },
                    setFilter: function(t) {
                        var e;
                        for(e = 0; e < this.source.length; e++)this.source[e].setFilter(t);
                        for(e = 0; e < this.dataSource.length; e++)this.dataSource[e].setFilter(t);
                    },
                    destroy: function() {
                        var t, e = this.source, i = this.dataSource;
                        for(t = 0; t < e.length; t++)e[t] && e[t].destroy();
                        for(t = 0; t < i.length; t++)i[t] && i[t].destroy();
                        for(var s in this.frames){
                            var n = this.frames[s];
                            n && n.destroy();
                        }
                        this.source = [], this.dataSource = [], this.frames = {}, this.manager.removeKey(this.key), this.manager = null;
                    }
                });
                t.exports = a;
            },
            6237: (t, e, i)=>{
                var s = i(61068), n = i(17487), r = i(56694), o = i(27119), a = i(86459), h = i(845), l = i(6659), u = i(38203), c = i(82047), d = i(97081), f = i(52780), p = i(10850), v = i(1539), g = i(42911), m = i(69150), y = i(74118), x = i(31673), T = new r({
                    Extends: l,
                    initialize: function(t) {
                        l.call(this), this.game = t, this.name = "TextureManager", this.list = {}, this._tempCanvas = s.create2D(this), this._tempContext = this._tempCanvas.getContext("2d", {
                            willReadFrequently: !0
                        }), this._pending = 0, this.stamp, this.stampCrop = new y, this.silentWarnings = !1, t.events.once(d.BOOT, this.boot, this);
                    },
                    boot: function() {
                        this._pending = 3, this.on(u.LOAD, this.updatePending, this), this.on(u.ERROR, this.updatePending, this);
                        var t = this.game.config;
                        this.addBase64("__DEFAULT", t.defaultImage), this.addBase64("__MISSING", t.missingImage), this.addBase64("__WHITE", t.whiteImage), this.game.events.once(d.DESTROY, this.destroy, this);
                    },
                    updatePending: function() {
                        this._pending--, 0 === this._pending && (this.off(u.LOAD), this.off(u.ERROR), this.emit(u.READY), this.stamp = new v(this.game.scene.systemScene).setOrigin(0));
                    },
                    checkKey: function(t) {
                        return !this.exists(t) || (this.silentWarnings || console.error("Texture key already in use: " + t), !1);
                    },
                    remove: function(t) {
                        if ("string" == typeof t) {
                            if (!this.exists(t)) return this.silentWarnings || console.warn("No texture found matching key: " + t), this;
                            t = this.get(t);
                        }
                        return this.list.hasOwnProperty(t.key) && (t.destroy(), this.emit(u.REMOVE, t.key), this.emit(u.REMOVE_KEY + t.key)), this;
                    },
                    removeKey: function(t) {
                        return this.list.hasOwnProperty(t) && delete this.list[t], this;
                    },
                    addBase64: function(t, e) {
                        if (this.checkKey(t)) {
                            var i = this, s = new Image;
                            s.onerror = function() {
                                i.emit(u.ERROR, t);
                            }, s.onload = function() {
                                var e = i.create(t, s);
                                m.Image(e, 0), i.emit(u.ADD, t, e), i.emit(u.ADD_KEY + t, e), i.emit(u.LOAD, t, e);
                            }, s.src = e;
                        }
                        return this;
                    },
                    getBase64: function(t, e, i, n) {
                        void 0 === i && (i = "image/png"), void 0 === n && (n = .92);
                        var r = "", o = this.getFrame(t, e);
                        if (o && (o.source.isRenderTexture || o.source.isGLTexture)) this.silentWarnings || console.warn("Cannot getBase64 from WebGL Texture");
                        else if (o) {
                            var a = o.canvasData, h = s.create2D(this, a.width, a.height), l = h.getContext("2d", {
                                willReadFrequently: !0
                            });
                            a.width > 0 && a.height > 0 && l.drawImage(o.source.image, a.x, a.y, a.width, a.height, 0, 0, a.width, a.height), r = h.toDataURL(i, n), s.remove(h);
                        }
                        return r;
                    },
                    addImage: function(t, e, i) {
                        var s = null;
                        return this.checkKey(t) && (s = this.create(t, e), m.Image(s, 0), i && s.setDataSource(i), this.emit(u.ADD, t, s), this.emit(u.ADD_KEY + t, s)), s;
                    },
                    addGLTexture: function(t, e, i, s) {
                        var n = null;
                        return this.checkKey(t) && (void 0 === i && (i = e.width), void 0 === s && (s = e.height), (n = this.create(t, e, i, s)).add("__BASE", 0, 0, 0, i, s), this.emit(u.ADD, t, n), this.emit(u.ADD_KEY + t, n)), n;
                    },
                    addCompressedTexture: function(t, e, i) {
                        var s = null;
                        if (this.checkKey(t)) {
                            if ((s = this.create(t, e)).add("__BASE", 0, 0, 0, e.width, e.height), i) {
                                if (Array.isArray(i)) for(var n = 0; n < i.length; n++)m.JSONHash(s, n, i[n]);
                                else m.JSONHash(s, 0, i);
                            }
                            this.emit(u.ADD, t, s), this.emit(u.ADD_KEY + t, s);
                        }
                        return s;
                    },
                    addRenderTexture: function(t, e) {
                        var i = null;
                        return this.checkKey(t) && ((i = this.create(t, e)).add("__BASE", 0, 0, 0, e.width, e.height), this.emit(u.ADD, t, i), this.emit(u.ADD_KEY + t, i)), i;
                    },
                    generate: function(t, e) {
                        if (this.checkKey(t)) {
                            var i = s.create(this, 1, 1);
                            return e.canvas = i, f(e), this.addCanvas(t, i);
                        }
                        return null;
                    },
                    createCanvas: function(t, e, i) {
                        if (void 0 === e && (e = 256), void 0 === i && (i = 256), this.checkKey(t)) {
                            var n = s.create(this, e, i, a.CANVAS, !0);
                            return this.addCanvas(t, n);
                        }
                        return null;
                    },
                    addCanvas: function(t, e, i) {
                        void 0 === i && (i = !1);
                        var s = null;
                        return i ? s = new n(this, t, e, e.width, e.height) : this.checkKey(t) && (s = new n(this, t, e, e.width, e.height), this.list[t] = s, this.emit(u.ADD, t, s), this.emit(u.ADD_KEY + t, s)), s;
                    },
                    addDynamicTexture: function(t, e, i) {
                        var s = null;
                        return "string" != typeof t || this.exists(t) ? t = (s = t).key : s = new h(this, t, e, i), this.checkKey(t) ? (this.list[t] = s, this.emit(u.ADD, t, s), this.emit(u.ADD_KEY + t, s)) : s = null, s;
                    },
                    addAtlas: function(t, e, i, s) {
                        return Array.isArray(i.textures) || Array.isArray(i.frames) ? this.addAtlasJSONArray(t, e, i, s) : this.addAtlasJSONHash(t, e, i, s);
                    },
                    addAtlasJSONArray: function(t, e, i, s) {
                        var n = null;
                        if (e instanceof x ? (t = n.key, n = e) : this.checkKey(t) && (n = this.create(t, e)), n) {
                            if (Array.isArray(i)) for(var r = 1 === i.length, o = 0; o < n.source.length; o++){
                                var a = r ? i[0] : i[o];
                                m.JSONArray(n, o, a);
                            }
                            else m.JSONArray(n, 0, i);
                            s && n.setDataSource(s), this.emit(u.ADD, t, n), this.emit(u.ADD_KEY + t, n);
                        }
                        return n;
                    },
                    addAtlasJSONHash: function(t, e, i, s) {
                        var n = null;
                        if (e instanceof x ? (t = n.key, n = e) : this.checkKey(t) && (n = this.create(t, e)), n) {
                            if (Array.isArray(i)) for(var r = 0; r < i.length; r++)m.JSONHash(n, r, i[r]);
                            else m.JSONHash(n, 0, i);
                            s && n.setDataSource(s), this.emit(u.ADD, t, n), this.emit(u.ADD_KEY + t, n);
                        }
                        return n;
                    },
                    addAtlasXML: function(t, e, i, s) {
                        var n = null;
                        return e instanceof x ? (t = n.key, n = e) : this.checkKey(t) && (n = this.create(t, e)), n && (m.AtlasXML(n, 0, i), s && n.setDataSource(s), this.emit(u.ADD, t, n), this.emit(u.ADD_KEY + t, n)), n;
                    },
                    addUnityAtlas: function(t, e, i, s) {
                        var n = null;
                        return e instanceof x ? (t = n.key, n = e) : this.checkKey(t) && (n = this.create(t, e)), n && (m.UnityYAML(n, 0, i), s && n.setDataSource(s), this.emit(u.ADD, t, n), this.emit(u.ADD_KEY + t, n)), n;
                    },
                    addSpriteSheet: function(t, e, i, s) {
                        var n = null;
                        if (e instanceof x ? (t = n.key, n = e) : this.checkKey(t) && (n = this.create(t, e)), n) {
                            var r = n.source[0].width, o = n.source[0].height;
                            m.SpriteSheet(n, 0, 0, 0, r, o, i), s && n.setDataSource(s), this.emit(u.ADD, t, n), this.emit(u.ADD_KEY + t, n);
                        }
                        return n;
                    },
                    addSpriteSheetFromAtlas: function(t, e) {
                        if (!this.checkKey(t)) return null;
                        var i = p(e, "atlas", null), s = p(e, "frame", null);
                        if (i && s) {
                            var n = this.get(i).get(s);
                            if (n) {
                                var r = this.create(t, n.source.image);
                                return n.trimmed ? m.SpriteSheetFromAtlas(r, n, e) : m.SpriteSheet(r, 0, n.cutX, n.cutY, n.cutWidth, n.cutHeight, e), this.emit(u.ADD, t, r), this.emit(u.ADD_KEY + t, r), r;
                            }
                        }
                    },
                    create: function(t, e, i, s) {
                        var n = null;
                        return this.checkKey(t) && (n = new x(this, t, e, i, s), this.list[t] = n), n;
                    },
                    exists: function(t) {
                        return this.list.hasOwnProperty(t);
                    },
                    get: function(t) {
                        return void 0 === t && (t = "__DEFAULT"), this.list[t] ? this.list[t] : t instanceof x ? t : t instanceof c ? t.texture : this.list.__MISSING;
                    },
                    cloneFrame: function(t, e) {
                        if (this.list[t]) return this.list[t].get(e).clone();
                    },
                    getFrame: function(t, e) {
                        if (this.list[t]) return this.list[t].get(e);
                    },
                    parseFrame: function(t) {
                        if (t) return "string" == typeof t ? this.getFrame(t) : Array.isArray(t) && 2 === t.length ? this.getFrame(t[0], t[1]) : g(t) ? this.getFrame(t.key, t.frame) : t instanceof x ? t.get() : t instanceof c ? t : void 0;
                    },
                    getTextureKeys: function() {
                        var t = [];
                        for(var e in this.list)"__DEFAULT" !== e && "__MISSING" !== e && "__WHITE" !== e && t.push(e);
                        return t;
                    },
                    getPixel: function(t, e, i, s) {
                        var n = this.getFrame(i, s);
                        if (n) {
                            t -= n.x, e -= n.y;
                            var r = n.data.cut;
                            if (t += r.x, e += r.y, t >= r.x && t < r.r && e >= r.y && e < r.b) {
                                var a = this._tempContext;
                                a.clearRect(0, 0, 1, 1), a.drawImage(n.source.image, t, e, 1, 1, 0, 0, 1, 1);
                                var h = a.getImageData(0, 0, 1, 1);
                                return new o(h.data[0], h.data[1], h.data[2], h.data[3]);
                            }
                        }
                        return null;
                    },
                    getPixelAlpha: function(t, e, i, s) {
                        var n = this.getFrame(i, s);
                        if (n) {
                            t -= n.x, e -= n.y;
                            var r = n.data.cut;
                            if (t += r.x, e += r.y, t >= r.x && t < r.r && e >= r.y && e < r.b) {
                                var o = this._tempContext;
                                return o.clearRect(0, 0, 1, 1), o.drawImage(n.source.image, t, e, 1, 1, 0, 0, 1, 1), o.getImageData(0, 0, 1, 1).data[3];
                            }
                        }
                        return null;
                    },
                    setTexture: function(t, e, i) {
                        return this.list[e] && (t.texture = this.list[e], t.frame = t.texture.get(i)), t;
                    },
                    renameTexture: function(t, e) {
                        var i = this.get(t);
                        return !(!i || t === e) && (i.key = e, this.list[e] = i, delete this.list[t], !0);
                    },
                    each: function(t, e) {
                        for(var i = [
                            null
                        ], s = 1; s < arguments.length; s++)i.push(arguments[s]);
                        for(var n in this.list)i[0] = this.list[n], t.apply(e, i);
                    },
                    resetStamp: function(t, e) {
                        void 0 === t && (t = 1), void 0 === e && (e = 16777215);
                        var i = this.stamp;
                        return i.setCrop(), i.setPosition(0), i.setAngle(0), i.setScale(1), i.setAlpha(t), i.setTint(e), i;
                    },
                    destroy: function() {
                        for(var t in this.list)this.list[t].destroy();
                        this.list = {}, this.stamp.destroy(), this.game = null, this.stamp = null, s.remove(this._tempCanvas);
                    }
                });
                t.exports = T;
            },
            32547: (t, e, i)=>{
                var s = i(61068), n = i(56694), r = i(28621), o = i(27394), a = new n({
                    initialize: function(t, e, i, s, n) {
                        void 0 === n && (n = !1);
                        var a = t.manager.game;
                        this.renderer = a.renderer, this.texture = t, this.source = e, this.image = e.compressed ? null : e, this.compressionAlgorithm = e.compressed ? e.format : null, this.resolution = 1, this.width = i || e.naturalWidth || e.videoWidth || e.width || 0, this.height = s || e.naturalHeight || e.videoHeight || e.height || 0, this.scaleMode = o.DEFAULT, this.isCanvas = e instanceof HTMLCanvasElement, this.isVideo = window.hasOwnProperty("HTMLVideoElement") && e instanceof HTMLVideoElement, this.isRenderTexture = "RenderTexture" === e.type || "DynamicTexture" === e.type, this.isGLTexture = window.hasOwnProperty("WebGLTexture") && e instanceof WebGLTexture, this.isPowerOf2 = r(this.width, this.height), this.glTexture = null, this.flipY = n, this.init(a);
                    },
                    init: function(t) {
                        var e = this.renderer;
                        if (e) {
                            var i = this.source;
                            if (e.gl) {
                                var s = this.image, n = this.flipY, r = this.width, o = this.height, a = this.scaleMode;
                                this.isCanvas ? this.glTexture = e.createCanvasTexture(s, !1, n) : this.isVideo ? this.glTexture = e.createVideoTexture(s, !1, n) : this.isRenderTexture ? this.glTexture = e.createTextureFromSource(null, r, o, a) : this.isGLTexture ? this.glTexture = i : this.compressionAlgorithm ? this.glTexture = e.createTextureFromSource(i) : this.glTexture = e.createTextureFromSource(s, r, o, a);
                            } else this.isRenderTexture && (this.image = i.canvas);
                        }
                        t.config.antialias || this.setFilter(1);
                    },
                    setFilter: function(t) {
                        this.renderer.gl && this.renderer.setTextureFilter(this.glTexture, t), this.scaleMode = t;
                    },
                    setFlipY: function(t) {
                        return void 0 === t && (t = !0), this.flipY = t, this;
                    },
                    update: function() {
                        var t = this.renderer, e = this.image, i = this.flipY, s = t.gl;
                        s && this.isCanvas ? this.glTexture = t.updateCanvasTexture(e, this.glTexture, i) : s && this.isVideo && (this.glTexture = t.updateVideoTexture(e, this.glTexture, i));
                    },
                    destroy: function() {
                        this.glTexture && this.renderer.deleteTexture(this.glTexture, !0), this.isCanvas && s.remove(this.image), this.renderer = null, this.texture = null, this.source = null, this.image = null, this.glTexture = null;
                    }
                });
                t.exports = a;
            },
            65154: (t)=>{
                t.exports = {
                    LINEAR: 0,
                    NEAREST: 1
                };
            },
            49644: (t)=>{
                t.exports = "addtexture";
            },
            29569: (t)=>{
                t.exports = "addtexture-";
            },
            60079: (t)=>{
                t.exports = "onerror";
            },
            72665: (t)=>{
                t.exports = "onload";
            },
            93006: (t)=>{
                t.exports = "ready";
            },
            69018: (t)=>{
                t.exports = "removetexture";
            },
            85549: (t)=>{
                t.exports = "removetexture-";
            },
            38203: (t, e, i)=>{
                t.exports = {
                    ADD: i(49644),
                    ADD_KEY: i(29569),
                    ERROR: i(60079),
                    LOAD: i(72665),
                    READY: i(93006),
                    REMOVE: i(69018),
                    REMOVE_KEY: i(85549)
                };
            },
            87499: (t, e, i)=>{
                var s = i(98611), n = i(65154), r = {
                    CanvasTexture: i(17487),
                    DynamicTexture: i(845),
                    Events: i(38203),
                    FilterMode: n,
                    Frame: i(82047),
                    Parsers: i(69150),
                    Texture: i(31673),
                    TextureManager: i(6237),
                    TextureSource: i(32547)
                };
                r = s(!1, r, n), t.exports = r;
            },
            35082: (t)=>{
                t.exports = function(t, e, i) {
                    if (i.getElementsByTagName("TextureAtlas")) {
                        var s = t.source[e];
                        t.add("__BASE", e, 0, 0, s.width, s.height);
                        for(var n, r = i.getElementsByTagName("SubTexture"), o = 0; o < r.length; o++){
                            var a = r[o].attributes, h = a.name.value, l = parseInt(a.x.value, 10), u = parseInt(a.y.value, 10), c = parseInt(a.width.value, 10), d = parseInt(a.height.value, 10);
                            if (n = t.add(h, e, l, u, c, d), a.frameX) {
                                var f = Math.abs(parseInt(a.frameX.value, 10)), p = Math.abs(parseInt(a.frameY.value, 10)), v = parseInt(a.frameWidth.value, 10), g = parseInt(a.frameHeight.value, 10);
                                n.setTrim(c, d, f, p, v, g);
                            }
                        }
                        return t;
                    }
                    console.warn("Invalid Texture Atlas XML given");
                };
            },
            83332: (t)=>{
                t.exports = function(t, e) {
                    var i = t.source[e];
                    return t.add("__BASE", e, 0, 0, i.width, i.height), t;
                };
            },
            21560: (t)=>{
                t.exports = function(t, e) {
                    var i = t.source[e];
                    return t.add("__BASE", e, 0, 0, i.width, i.height), t;
                };
            },
            64423: (t, e, i)=>{
                var s = i(32742);
                t.exports = function(t, e, i) {
                    if (i.frames || i.textures) {
                        var n = t.source[e];
                        t.add("__BASE", e, 0, 0, n.width, n.height);
                        for(var r, o = Array.isArray(i.textures) ? i.textures[e].frames : i.frames, a = 0; a < o.length; a++){
                            var h = o[a];
                            if (r = t.add(h.filename, e, h.frame.x, h.frame.y, h.frame.w, h.frame.h)) {
                                h.trimmed && r.setTrim(h.sourceSize.w, h.sourceSize.h, h.spriteSourceSize.x, h.spriteSourceSize.y, h.spriteSourceSize.w, h.spriteSourceSize.h), h.rotated && (r.rotated = !0, r.updateUVsInverted());
                                var l = h.anchor || h.pivot;
                                l && (r.customPivot = !0, r.pivotX = l.x, r.pivotY = l.y), r.customData = s(h);
                            } else console.warn("Invalid atlas json, frame already exists: " + h.filename);
                        }
                        for(var u in i)"frames" !== u && (Array.isArray(i[u]) ? t.customData[u] = i[u].slice(0) : t.customData[u] = i[u]);
                        return t;
                    }
                    console.warn("Invalid Texture Atlas JSON Array");
                };
            },
            17264: (t, e, i)=>{
                var s = i(32742);
                t.exports = function(t, e, i) {
                    if (i.frames) {
                        var n = t.source[e];
                        t.add("__BASE", e, 0, 0, n.width, n.height);
                        var r, o = i.frames;
                        for(var a in o)if (o.hasOwnProperty(a)) {
                            var h = o[a];
                            if (r = t.add(a, e, h.frame.x, h.frame.y, h.frame.w, h.frame.h)) {
                                h.trimmed && r.setTrim(h.sourceSize.w, h.sourceSize.h, h.spriteSourceSize.x, h.spriteSourceSize.y, h.spriteSourceSize.w, h.spriteSourceSize.h), h.rotated && (r.rotated = !0, r.updateUVsInverted());
                                var l = h.anchor || h.pivot;
                                l && (r.customPivot = !0, r.pivotX = l.x, r.pivotY = l.y), r.customData = s(h);
                            } else console.warn("Invalid atlas json, frame already exists: " + a);
                        }
                        for(var u in i)"frames" !== u && (Array.isArray(i[u]) ? t.customData[u] = i[u].slice(0) : t.customData[u] = i[u]);
                        return t;
                    }
                    console.warn("Invalid Texture Atlas JSON Hash given, missing 'frames' Object");
                };
            },
            67409: (t)=>{
                t.exports = function(t) {
                    var e, i = [
                        171,
                        75,
                        84,
                        88,
                        32,
                        49,
                        49,
                        187,
                        13,
                        10,
                        26,
                        10
                    ], s = new Uint8Array(t, 0, 12);
                    for(e = 0; e < s.length; e++)if (s[e] !== i[e]) return void console.warn("KTXParser - Invalid file format");
                    var n = Uint32Array.BYTES_PER_ELEMENT, r = new DataView(t, 12, 13 * n), o = 67305985 === r.getUint32(0, !0);
                    if (0 === r.getUint32(1 * n, o)) {
                        var a = r.getUint32(4 * n, o), h = r.getUint32(6 * n, o), l = r.getUint32(7 * n, o), u = Math.max(1, r.getUint32(11 * n, o)), c = r.getUint32(12 * n, o), d = new Array(u), f = 64 + c, p = h, v = l;
                        for(e = 0; e < u; e++){
                            var g = new Int32Array(t, f, 1)[0];
                            f += 4, d[e] = {
                                data: new Uint8Array(t, f, g),
                                width: p,
                                height: v
                            }, p = Math.max(1, p >> 1), v = Math.max(1, v >> 1), f += g;
                        }
                        return {
                            mipmaps: d,
                            width: h,
                            height: l,
                            internalFormat: a,
                            compressed: !0,
                            generateMipmap: !1
                        };
                    }
                    console.warn("KTXParser - Only compressed formats supported");
                };
            },
            24904: (t)=>{
                function e(t, e, i, s, n, r, o) {
                    return void 0 === o && (o = 16), Math.floor((t + i) / n) * Math.floor((e + s) / r) * o;
                }
                function i(t, e) {
                    return (t = Math.max(t, 16)) * (e = Math.max(e, 8)) / 4;
                }
                function s(t, e) {
                    return (t = Math.max(t, 8)) * (e = Math.max(e, 8)) / 2;
                }
                function n(t, i) {
                    return e(t, i, 3, 3, 4, 4, 8);
                }
                function r(t, i) {
                    return e(t, i, 3, 3, 4, 4);
                }
                var o = {
                    0: {
                        sizeFunc: i,
                        glFormat: 35841
                    },
                    1: {
                        sizeFunc: i,
                        glFormat: 35843
                    },
                    2: {
                        sizeFunc: s,
                        glFormat: 35840
                    },
                    3: {
                        sizeFunc: s,
                        glFormat: 35842
                    },
                    6: {
                        sizeFunc: n,
                        glFormat: 36196
                    },
                    7: {
                        sizeFunc: n,
                        glFormat: 33776
                    },
                    8: {
                        sizeFunc: r,
                        glFormat: 33777
                    },
                    9: {
                        sizeFunc: r,
                        glFormat: 33778
                    },
                    11: {
                        sizeFunc: r,
                        glFormat: 33779
                    },
                    22: {
                        sizeFunc: n,
                        glFormat: 37492
                    },
                    23: {
                        sizeFunc: r,
                        glFormat: 37496
                    },
                    24: {
                        sizeFunc: n,
                        glFormat: 37494
                    },
                    25: {
                        sizeFunc: n,
                        glFormat: 37488
                    },
                    26: {
                        sizeFunc: r,
                        glFormat: 37490
                    },
                    27: {
                        sizeFunc: r,
                        glFormat: 37808
                    },
                    28: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 4, 3, 5, 4);
                        },
                        glFormat: 37809
                    },
                    29: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 4, 4, 5, 5);
                        },
                        glFormat: 37810
                    },
                    30: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 5, 4, 6, 5);
                        },
                        glFormat: 37811
                    },
                    31: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 5, 5, 6, 6);
                        },
                        glFormat: 37812
                    },
                    32: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 7, 4, 8, 5);
                        },
                        glFormat: 37813
                    },
                    33: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 7, 5, 8, 6);
                        },
                        glFormat: 37814
                    },
                    34: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 7, 7, 8, 8);
                        },
                        glFormat: 37815
                    },
                    35: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 9, 4, 10, 5);
                        },
                        glFormat: 37816
                    },
                    36: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 9, 5, 10, 6);
                        },
                        glFormat: 37817
                    },
                    37: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 9, 7, 10, 8);
                        },
                        glFormat: 37818
                    },
                    38: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 9, 9, 10, 10);
                        },
                        glFormat: 37819
                    },
                    39: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 11, 9, 12, 10);
                        },
                        glFormat: 37820
                    },
                    40: {
                        sizeFunc: function(t, i) {
                            return e(t, i, 11, 11, 12, 12);
                        },
                        glFormat: 37821
                    }
                };
                t.exports = function(t) {
                    for(var e = new Uint32Array(t, 0, 13), i = e[2], s = o[i].glFormat, n = o[i].sizeFunc, r = e[11], a = e[7], h = e[6], l = 52 + e[12], u = new Uint8Array(t, l), c = new Array(r), d = 0, f = a, p = h, v = 0; v < r; v++){
                        var g = n(f, p);
                        c[v] = {
                            data: new Uint8Array(u.buffer, u.byteOffset + d, g),
                            width: f,
                            height: p
                        }, f = Math.max(1, f >> 1), p = Math.max(1, p >> 1), d += g;
                    }
                    return {
                        mipmaps: c,
                        width: a,
                        height: h,
                        internalFormat: s,
                        compressed: !0,
                        generateMipmap: !1
                    };
                };
            },
            6143: (t, e, i)=>{
                var s = i(72632);
                t.exports = function(t, e, i, n, r, o, a) {
                    var h = s(a, "frameWidth", null), l = s(a, "frameHeight", h);
                    if (null === h) throw new Error("TextureManager.SpriteSheet: Invalid frameWidth given.");
                    var u = t.source[e];
                    t.add("__BASE", e, 0, 0, u.width, u.height);
                    var c = s(a, "startFrame", 0), d = s(a, "endFrame", -1), f = s(a, "margin", 0), p = s(a, "spacing", 0), v = Math.floor((r - f + p) / (h + p)) * Math.floor((o - f + p) / (l + p));
                    0 === v && console.warn("SpriteSheet frame dimensions will result in zero frames for texture:", t.key), (c > v || c < -v) && (c = 0), c < 0 && (c = v + c), (-1 === d || d > v || d < c) && (d = v);
                    for(var g = f, m = f, y = 0, x = 0, T = 0, w = 0; w < v; w++){
                        y = 0, x = 0;
                        var b = g + h, S = m + l;
                        b > r && (y = b - r), S > o && (x = S - o), w >= c && w <= d && (t.add(T, e, i + g, n + m, h - y, l - x), T++), (g += h + p) + h > r && (g = f, m += l + p);
                    }
                    return t;
                };
            },
            20030: (t, e, i)=>{
                var s = i(72632);
                t.exports = function(t, e, i) {
                    var n = s(i, "frameWidth", null), r = s(i, "frameHeight", n);
                    if (!n) throw new Error("TextureManager.SpriteSheetFromAtlas: Invalid frameWidth given.");
                    var o = t.source[0];
                    t.add("__BASE", 0, 0, 0, o.width, o.height);
                    var a, h = s(i, "startFrame", 0), l = s(i, "endFrame", -1), u = s(i, "margin", 0), c = s(i, "spacing", 0), d = e.cutX, f = e.cutY, p = e.cutWidth, v = e.cutHeight, g = e.realWidth, m = e.realHeight, y = Math.floor((g - u + c) / (n + c)), x = Math.floor((m - u + c) / (r + c)), T = y * x, w = e.x, b = n - w, S = n - (g - p - w), E = e.y, A = r - E, C = r - (m - v - E);
                    (h > T || h < -T) && (h = 0), h < 0 && (h = T + h), -1 !== l && (T = h + (l + 1));
                    for(var _ = u, M = u, P = 0, R = 0; R < x; R++){
                        for(var O = 0 === R, L = R === x - 1, F = 0; F < y; F++){
                            var D = 0 === F, I = F === y - 1;
                            if (a = t.add(P, 0, d + _, f + M, n, r), D || O || I || L) {
                                var k = D ? w : 0, B = O ? E : 0, N = 0, X = 0;
                                D && (N += n - b), I && (N += n - S), O && (X += r - A), L && (X += r - C);
                                var U = n - N, Y = r - X;
                                a.cutWidth = U, a.cutHeight = Y, a.setTrim(n, r, k, B, U, Y);
                            }
                            _ += c, _ += D ? b : I ? S : n, P++;
                        }
                        _ = u, M += c, M += O ? A : L ? C : r;
                    }
                    return t;
                };
            },
            89187: (t)=>{
                var e = 0, i = function(t, i, s, n) {
                    var r = e - n.y - n.height;
                    t.add(s, i, n.x, r, n.width, n.height);
                };
                t.exports = function(t, s, n) {
                    var r = t.source[s];
                    t.add("__BASE", s, 0, 0, r.width, r.height), e = r.height;
                    for(var o = n.split("\n"), a = /^[ ]*(- )*(\w+)+[: ]+(.*)/, h = "", l = "", u = {
                        x: 0,
                        y: 0,
                        width: 0,
                        height: 0
                    }, c = 0; c < o.length; c++){
                        var d = o[c].match(a);
                        if (d) {
                            var f = "- " === d[1], p = d[2], v = d[3];
                            if (f && (l !== h && (i(t, s, l, u), h = l), u = {
                                x: 0,
                                y: 0,
                                width: 0,
                                height: 0
                            }), "name" !== p) switch(p){
                                case "x":
                                case "y":
                                case "width":
                                case "height":
                                    u[p] = parseInt(v, 10);
                            }
                            else l = v;
                        }
                    }
                    return l !== h && i(t, s, l, u), t;
                };
            },
            69150: (t, e, i)=>{
                t.exports = {
                    AtlasXML: i(35082),
                    Canvas: i(83332),
                    Image: i(21560),
                    JSONArray: i(64423),
                    JSONHash: i(17264),
                    KTXParser: i(67409),
                    PVRParser: i(24904),
                    SpriteSheet: i(6143),
                    SpriteSheetFromAtlas: i(20030),
                    UnityYAML: i(89187)
                };
            },
            93560: (t)=>{
                t.exports = {
                    CSV: 0,
                    TILED_JSON: 1,
                    ARRAY_2D: 2,
                    WELTMEISTER: 3
                };
            },
            97042: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t, e, i, s, n, r, o) {
                        (void 0 === i || i <= 0) && (i = 32), (void 0 === s || s <= 0) && (s = 32), void 0 === n && (n = 0), void 0 === r && (r = 0), this.name = t, this.firstgid = 0 | e, this.imageWidth = 0 | i, this.imageHeight = 0 | s, this.imageMargin = 0 | n, this.imageSpacing = 0 | r, this.properties = o || {}, this.images = [], this.total = 0;
                    },
                    containsImageIndex: function(t) {
                        return t >= this.firstgid && t < this.firstgid + this.total;
                    },
                    addImage: function(t, e) {
                        return this.images.push({
                            gid: t,
                            image: e
                        }), this.total++, this;
                    }
                });
                t.exports = s;
            },
            46422: (t, e, i)=>{
                var s = new (i(56694))({
                    initialize: function(t) {
                        if (this.gids = [], void 0 !== t) for(var e = 0; e < t.length; ++e)for(var i = t[e], s = 0; s < i.total; ++s)this.gids[i.firstgid + s] = i;
                        this._gids = this.gids;
                    },
                    enabled: {
                        get: function() {
                            return !!this.gids;
                        },
                        set: function(t) {
                            this.gids = t ? this._gids : void 0;
                        }
                    },
                    getTypeIncludingTile: function(t) {
                        if (void 0 !== t.type && "" !== t.type) return t.type;
                        if (this.gids && void 0 !== t.gid) {
                            var e = this.gids[t.gid];
                            if (e) {
                                var i = e.getTileData(t.gid);
                                if (i) return i.type;
                            }
                        }
                    },
                    setTextureAndFrame: function(t, e, i, s) {
                        if (null === e && this.gids && void 0 !== s.gid) {
                            var n = this.gids[s.gid];
                            n && (null === e && void 0 !== n.image && (e = n.image.key), null === i && (i = s.gid - n.firstgid), t.scene.textures.getFrame(e, i) || (e = null, i = null));
                        }
                        t.setTexture(e, i);
                    },
                    setPropertiesFromTiledObject: function(t, e) {
                        if (void 0 !== this.gids && void 0 !== e.gid) {
                            var i = this.gids[e.gid];
                            void 0 !== i && this.setFromJSON(t, i.getTileProperties(e.gid));
                        }
                        this.setFromJSON(t, e.properties);
                    },
                    setFromJSON: function(t, e) {
                        if (e) {
                            if (Array.isArray(e)) e.forEach(function(e) {
                                t.setData(e.name, e.value);
                            });
                            else for(var i in e)void 0 !== t[i] ? t[i] = e[i] : t.setData(i, e[i]);
                        }
                    }
                });
                t.exports = s;
            },
            15043: (t, e, i)=>{
                var s = i(93560), n = i(16586), r = i(90715), o = i(89797);
                t.exports = function(t, e, i, a, h, l, u, c) {
                    void 0 === i && (i = 32), void 0 === a && (a = 32), void 0 === h && (h = 10), void 0 === l && (l = 10), void 0 === c && (c = !1);
                    var d = null;
                    if (Array.isArray(u)) d = r(void 0 !== e ? e : "map", s.ARRAY_2D, u, i, a, c);
                    else if (void 0 !== e) {
                        var f = t.cache.tilemap.get(e);
                        f ? d = r(e, f.format, f.data, i, a, c) : console.warn("No map data found for key " + e);
                    }
                    return null === d && (d = new n({
                        tileWidth: i,
                        tileHeight: a,
                        width: h,
                        height: l
                    })), new o(t, d);
                };
            },
            29633: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(12920), o = i(28699), a = i(66658), h = new s({
                    Mixins: [
                        n.Alpha,
                        n.Flip,
                        n.Visible
                    ],
                    initialize: function(t, e, i, s, n, r, o, a) {
                        this.layer = t, this.index = e, this.x = i, this.y = s, this.width = n, this.height = r, this.right, this.bottom, this.baseWidth = void 0 !== o ? o : n, this.baseHeight = void 0 !== a ? a : r, this.pixelX = 0, this.pixelY = 0, this.updatePixelXY(), this.properties = {}, this.rotation = 0, this.collideLeft = !1, this.collideRight = !1, this.collideUp = !1, this.collideDown = !1, this.faceLeft = !1, this.faceRight = !1, this.faceTop = !1, this.faceBottom = !1, this.collisionCallback = void 0, this.collisionCallbackContext = this, this.tint = 16777215, this.physics = {};
                    },
                    containsPoint: function(t, e) {
                        return !(t < this.pixelX || e < this.pixelY || t > this.right || e > this.bottom);
                    },
                    copy: function(t) {
                        return this.index = t.index, this.alpha = t.alpha, this.properties = o(t.properties), this.visible = t.visible, this.setFlip(t.flipX, t.flipY), this.tint = t.tint, this.rotation = t.rotation, this.collideUp = t.collideUp, this.collideDown = t.collideDown, this.collideLeft = t.collideLeft, this.collideRight = t.collideRight, this.collisionCallback = t.collisionCallback, this.collisionCallbackContext = t.collisionCallbackContext, this;
                    },
                    getCollisionGroup: function() {
                        return this.tileset ? this.tileset.getTileCollisionGroup(this.index) : null;
                    },
                    getTileData: function() {
                        return this.tileset ? this.tileset.getTileData(this.index) : null;
                    },
                    getLeft: function(t) {
                        var e = this.tilemapLayer;
                        return e ? e.tileToWorldXY(this.x, this.y, void 0, t).x : this.x * this.baseWidth;
                    },
                    getRight: function(t) {
                        var e = this.tilemapLayer;
                        return e ? this.getLeft(t) + this.width * e.scaleX : this.getLeft(t) + this.width;
                    },
                    getTop: function(t) {
                        var e = this.tilemapLayer;
                        return e ? e.tileToWorldXY(this.x, this.y, void 0, t).y : this.y * this.baseWidth - (this.height - this.baseHeight);
                    },
                    getBottom: function(t) {
                        var e = this.tilemapLayer;
                        return e ? this.getTop(t) + this.height * e.scaleY : this.getTop(t) + this.height;
                    },
                    getBounds: function(t, e) {
                        return void 0 === e && (e = new a), e.x = this.getLeft(t), e.y = this.getTop(t), e.width = this.getRight(t) - e.x, e.height = this.getBottom(t) - e.y, e;
                    },
                    getCenterX: function(t) {
                        return (this.getLeft(t) + this.getRight(t)) / 2;
                    },
                    getCenterY: function(t) {
                        return (this.getTop(t) + this.getBottom(t)) / 2;
                    },
                    intersects: function(t, e, i, s) {
                        return !(i <= this.pixelX || s <= this.pixelY || t >= this.right || e >= this.bottom);
                    },
                    isInteresting: function(t, e) {
                        return t && e ? this.canCollide || this.hasInterestingFace : t ? this.collides : !!e && this.hasInterestingFace;
                    },
                    resetCollision: function(t) {
                        (void 0 === t && (t = !0), this.collideLeft = !1, this.collideRight = !1, this.collideUp = !1, this.collideDown = !1, this.faceTop = !1, this.faceBottom = !1, this.faceLeft = !1, this.faceRight = !1, t) && this.tilemapLayer && this.tilemapLayer.calculateFacesAt(this.x, this.y);
                        return this;
                    },
                    resetFaces: function() {
                        return this.faceTop = !1, this.faceBottom = !1, this.faceLeft = !1, this.faceRight = !1, this;
                    },
                    setCollision: function(t, e, i, s, n) {
                        (void 0 === e && (e = t), void 0 === i && (i = t), void 0 === s && (s = t), void 0 === n && (n = !0), this.collideLeft = t, this.collideRight = e, this.collideUp = i, this.collideDown = s, this.faceLeft = t, this.faceRight = e, this.faceTop = i, this.faceBottom = s, n) && this.tilemapLayer && this.tilemapLayer.calculateFacesAt(this.x, this.y);
                        return this;
                    },
                    setCollisionCallback: function(t, e) {
                        return null === t ? (this.collisionCallback = void 0, this.collisionCallbackContext = void 0) : (this.collisionCallback = t, this.collisionCallbackContext = e), this;
                    },
                    setSize: function(t, e, i, s) {
                        return void 0 !== t && (this.width = t), void 0 !== e && (this.height = e), void 0 !== i && (this.baseWidth = i), void 0 !== s && (this.baseHeight = s), this.updatePixelXY(), this;
                    },
                    updatePixelXY: function() {
                        var t = this.layer.orientation;
                        if (t === r.ORTHOGONAL) this.pixelX = this.x * this.baseWidth, this.pixelY = this.y * this.baseHeight;
                        else if (t === r.ISOMETRIC) this.pixelX = (this.x - this.y) * this.baseWidth * .5, this.pixelY = (this.x + this.y) * this.baseHeight * .5;
                        else if (t === r.STAGGERED) this.pixelX = this.x * this.baseWidth + this.y % 2 * (this.baseWidth / 2), this.pixelY = this.y * (this.baseHeight / 2);
                        else if (t === r.HEXAGONAL) {
                            var e, i, s = this.layer.staggerAxis, n = this.layer.staggerIndex, o = this.layer.hexSideLength;
                            "y" === s ? (i = (this.baseHeight - o) / 2 + o, this.pixelX = "odd" === n ? this.x * this.baseWidth + this.y % 2 * (this.baseWidth / 2) : this.x * this.baseWidth - this.y % 2 * (this.baseWidth / 2), this.pixelY = this.y * i) : "x" === s && (e = (this.baseWidth - o) / 2 + o, this.pixelX = this.x * e, this.pixelY = "odd" === n ? this.y * this.baseHeight + this.x % 2 * (this.baseHeight / 2) : this.y * this.baseHeight - this.x % 2 * (this.baseHeight / 2));
                        }
                        return this.right = this.pixelX + this.baseWidth, this.bottom = this.pixelY + this.baseHeight, this;
                    },
                    destroy: function() {
                        this.collisionCallback = void 0, this.collisionCallbackContext = void 0, this.properties = void 0;
                    },
                    canCollide: {
                        get: function() {
                            return this.collideLeft || this.collideRight || this.collideUp || this.collideDown || void 0 !== this.collisionCallback;
                        }
                    },
                    collides: {
                        get: function() {
                            return this.collideLeft || this.collideRight || this.collideUp || this.collideDown;
                        }
                    },
                    hasInterestingFace: {
                        get: function() {
                            return this.faceTop || this.faceBottom || this.faceLeft || this.faceRight;
                        }
                    },
                    tileset: {
                        get: function() {
                            var t = this.layer.tilemapLayer;
                            if (t) {
                                var e = t.gidMap[this.index];
                                if (e) return e;
                            }
                            return null;
                        }
                    },
                    tilemapLayer: {
                        get: function() {
                            return this.layer.tilemapLayer;
                        }
                    },
                    tilemap: {
                        get: function() {
                            var t = this.tilemapLayer;
                            return t ? t.tilemap : null;
                        }
                    }
                });
                t.exports = h;
            },
            89797: (t, e, i)=>{
                var s = i(14556), n = i(56694), r = i(75606), o = i(93560), a = i(72632), h = i(94990), l = i(46422), u = i(12920), c = i(52257), d = i(72677), f = i(13747), p = i(29633), v = i(5047), g = i(87177), m = i(47975), y = new n({
                    initialize: function(t, e) {
                        this.scene = t, this.tileWidth = e.tileWidth, this.tileHeight = e.tileHeight, this.width = e.width, this.height = e.height, this.orientation = e.orientation, this.renderOrder = e.renderOrder, this.format = e.format, this.version = e.version, this.properties = e.properties, this.widthInPixels = e.widthInPixels, this.heightInPixels = e.heightInPixels, this.imageCollections = e.imageCollections, this.images = e.images, this.layers = e.layers, this.tiles = e.tiles, this.tilesets = e.tilesets, this.objects = e.objects, this.currentLayerIndex = 0, this.hexSideLength = e.hexSideLength;
                        var i = this.orientation;
                        this._convert = {
                            WorldToTileXY: v.GetWorldToTileXYFunction(i),
                            WorldToTileX: v.GetWorldToTileXFunction(i),
                            WorldToTileY: v.GetWorldToTileYFunction(i),
                            TileToWorldXY: v.GetTileToWorldXYFunction(i),
                            TileToWorldX: v.GetTileToWorldXFunction(i),
                            TileToWorldY: v.GetTileToWorldYFunction(i),
                            GetTileCorners: v.GetTileCornersFunction(i)
                        };
                    },
                    setRenderOrder: function(t) {
                        var e = [
                            "right-down",
                            "left-down",
                            "right-up",
                            "left-up"
                        ];
                        return "number" == typeof t && (t = e[t]), e.indexOf(t) > -1 && (this.renderOrder = t), this;
                    },
                    addTilesetImage: function(t, e, i, n, r, a, h, l) {
                        if (void 0 === t) return null;
                        if (null == e && (e = t), !this.scene.sys.textures.exists(e)) return console.warn("Invalid Tileset Image: " + e), null;
                        var u = this.scene.sys.textures.get(e), c = this.getTilesetIndex(t);
                        if (null === c && this.format === o.TILED_JSON) return console.warn("No data found for Tileset: " + t), null;
                        var d = this.tilesets[c];
                        return d ? (d.setTileSize(i, n), d.setSpacing(r, a), d.setImage(u), d) : (void 0 === i && (i = this.tileWidth), void 0 === n && (n = this.tileHeight), void 0 === r && (r = 0), void 0 === a && (a = 0), void 0 === h && (h = 0), void 0 === l && (l = {
                            x: 0,
                            y: 0
                        }), (d = new m(t, h, i, n, r, a, void 0, void 0, l)).setImage(u), this.tilesets.push(d), this.tiles = s(this), d);
                    },
                    copy: function(t, e, i, s, n, r, o, a) {
                        return null !== (a = this.getLayer(a)) ? (v.Copy(t, e, i, s, n, r, o, a), this) : null;
                    },
                    createBlankLayer: function(t, e, i, s, n, r, o, a) {
                        if (void 0 === i && (i = 0), void 0 === s && (s = 0), void 0 === n && (n = this.width), void 0 === r && (r = this.height), void 0 === o && (o = this.tileWidth), void 0 === a && (a = this.tileHeight), null !== this.getLayerIndex(t)) return console.warn("Invalid Tilemap Layer ID: " + t), null;
                        for(var l, u = new h({
                            name: t,
                            tileWidth: o,
                            tileHeight: a,
                            width: n,
                            height: r,
                            orientation: this.orientation
                        }), c = 0; c < r; c++){
                            l = [];
                            for(var d = 0; d < n; d++)l.push(new p(u, -1, d, c, o, a, this.tileWidth, this.tileHeight));
                            u.data.push(l);
                        }
                        this.layers.push(u), this.currentLayerIndex = this.layers.length - 1;
                        var f = new g(this.scene, this, this.currentLayerIndex, e, i, s);
                        return f.setRenderOrder(this.renderOrder), this.scene.sys.displayList.add(f), f;
                    },
                    createLayer: function(t, e, i, s) {
                        var n = this.getLayerIndex(t);
                        if (null === n) return console.warn("Invalid Tilemap Layer ID: " + t), "string" == typeof t && console.warn("Valid tilelayer names: %o", this.getTileLayerNames()), null;
                        var r = this.layers[n];
                        if (r.tilemapLayer) return console.warn("Tilemap Layer ID already exists:" + t), null;
                        this.currentLayerIndex = n, void 0 === i && (i = r.x), void 0 === s && (s = r.y);
                        var o = new g(this.scene, this, n, e, i, s);
                        return o.setRenderOrder(this.renderOrder), this.scene.sys.displayList.add(o), o;
                    },
                    createFromObjects: function(t, e, i) {
                        void 0 === i && (i = !0);
                        var s = [], n = this.getObjectLayer(t);
                        if (!n) return console.warn("createFromObjects: Invalid objectLayerName given: " + t), s;
                        var o = new l(i ? this.tilesets : void 0);
                        Array.isArray(e) || (e = [
                            e
                        ]);
                        for(var h = n.objects, d = 0; d < e.length; d++){
                            var p, v = e[d], g = a(v, "id", null), m = a(v, "gid", null), y = a(v, "name", null), x = a(v, "type", null);
                            o.enabled = !a(v, "ignoreTileset", null);
                            for(var T = [], w = 0; w < h.length; w++)p = h[w], (null === g && null === m && null === y && null === x || null !== g && p.id === g || null !== m && p.gid === m || null !== y && p.name === y || null !== x && o.getTypeIncludingTile(p) === x) && T.push(p);
                            for(var b = a(v, "classType", f), S = a(v, "scene", this.scene), E = a(v, "container", null), A = a(v, "key", null), C = a(v, "frame", null), _ = 0; _ < T.length; _++){
                                p = T[_];
                                var M = new b(S);
                                if (M.setName(p.name), M.setPosition(p.x, p.y), o.setTextureAndFrame(M, A, C, p), p.width && (M.displayWidth = p.width), p.height && (M.displayHeight = p.height), this.orientation === u.ISOMETRIC) {
                                    var P = this.tileWidth / this.tileHeight, R = {
                                        x: M.x - M.y,
                                        y: (M.x + M.y) / P
                                    };
                                    M.x = R.x, M.y = R.y;
                                }
                                var O = {
                                    x: M.originX * p.width,
                                    y: (M.originY - (p.gid ? 1 : 0)) * p.height
                                };
                                if (p.rotation) {
                                    var L = r(p.rotation);
                                    c(O, L), M.rotation = L;
                                }
                                M.x += O.x, M.y += O.y, void 0 === p.flippedHorizontal && void 0 === p.flippedVertical || M.setFlip(p.flippedHorizontal, p.flippedVertical), p.visible || (M.visible = !1), o.setPropertiesFromTiledObject(M, p), E ? E.add(M) : S.add.existing(M), s.push(M);
                            }
                        }
                        return s;
                    },
                    createFromTiles: function(t, e, i, s, n, r) {
                        return null === (r = this.getLayer(r)) ? null : v.CreateFromTiles(t, e, i, s, n, r);
                    },
                    fill: function(t, e, i, s, n, r, o) {
                        return void 0 === r && (r = !0), null === (o = this.getLayer(o)) ? null : (v.Fill(t, e, i, s, n, r, o), this);
                    },
                    filterObjects: function(t, e, i) {
                        if ("string" == typeof t) {
                            var s = t;
                            if (!(t = this.getObjectLayer(t))) return console.warn("No object layer found with the name: " + s), null;
                        }
                        return t.objects.filter(e, i);
                    },
                    filterTiles: function(t, e, i, s, n, r, o, a) {
                        return null === (a = this.getLayer(a)) ? null : v.FilterTiles(t, e, i, s, n, r, o, a);
                    },
                    findByIndex: function(t, e, i, s) {
                        return null === (s = this.getLayer(s)) ? null : v.FindByIndex(t, e, i, s);
                    },
                    findObject: function(t, e, i) {
                        if ("string" == typeof t) {
                            var s = t;
                            if (!(t = this.getObjectLayer(t))) return console.warn("No object layer found with the name: " + s), null;
                        }
                        return t.objects.find(e, i) || null;
                    },
                    findTile: function(t, e, i, s, n, r, o, a) {
                        return null === (a = this.getLayer(a)) ? null : v.FindTile(t, e, i, s, n, r, o, a);
                    },
                    forEachTile: function(t, e, i, s, n, r, o, a) {
                        return null === (a = this.getLayer(a)) ? null : (v.ForEachTile(t, e, i, s, n, r, o, a), this);
                    },
                    getImageIndex: function(t) {
                        return this.getIndex(this.images, t);
                    },
                    getImageLayerNames: function() {
                        return this.images && Array.isArray(this.images) ? this.images.map(function(t) {
                            return t.name;
                        }) : [];
                    },
                    getIndex: function(t, e) {
                        for(var i = 0; i < t.length; i++)if (t[i].name === e) return i;
                        return null;
                    },
                    getLayer: function(t) {
                        var e = this.getLayerIndex(t);
                        return null !== e ? this.layers[e] : null;
                    },
                    getObjectLayer: function(t) {
                        var e = this.getIndex(this.objects, t);
                        return null !== e ? this.objects[e] : null;
                    },
                    getObjectLayerNames: function() {
                        return this.objects && Array.isArray(this.objects) ? this.objects.map(function(t) {
                            return t.name;
                        }) : [];
                    },
                    getLayerIndex: function(t) {
                        return void 0 === t ? this.currentLayerIndex : "string" == typeof t ? this.getLayerIndexByName(t) : "number" == typeof t && t < this.layers.length ? t : t instanceof g && t.tilemap === this ? t.layerIndex : null;
                    },
                    getLayerIndexByName: function(t) {
                        return this.getIndex(this.layers, t);
                    },
                    getTileAt: function(t, e, i, s) {
                        return null === (s = this.getLayer(s)) ? null : v.GetTileAt(t, e, i, s);
                    },
                    getTileAtWorldXY: function(t, e, i, s, n) {
                        return null === (n = this.getLayer(n)) ? null : v.GetTileAtWorldXY(t, e, i, s, n);
                    },
                    getTileLayerNames: function() {
                        return this.layers && Array.isArray(this.layers) ? this.layers.map(function(t) {
                            return t.name;
                        }) : [];
                    },
                    getTilesWithin: function(t, e, i, s, n, r) {
                        return null === (r = this.getLayer(r)) ? null : v.GetTilesWithin(t, e, i, s, n, r);
                    },
                    getTilesWithinShape: function(t, e, i, s) {
                        return null === (s = this.getLayer(s)) ? null : v.GetTilesWithinShape(t, e, i, s);
                    },
                    getTilesWithinWorldXY: function(t, e, i, s, n, r, o) {
                        return null === (o = this.getLayer(o)) ? null : v.GetTilesWithinWorldXY(t, e, i, s, n, r, o);
                    },
                    getTileset: function(t) {
                        var e = this.getIndex(this.tilesets, t);
                        return null !== e ? this.tilesets[e] : null;
                    },
                    getTilesetIndex: function(t) {
                        return this.getIndex(this.tilesets, t);
                    },
                    hasTileAt: function(t, e, i) {
                        return null === (i = this.getLayer(i)) ? null : v.HasTileAt(t, e, i);
                    },
                    hasTileAtWorldXY: function(t, e, i, s) {
                        return null === (s = this.getLayer(s)) ? null : v.HasTileAtWorldXY(t, e, i, s);
                    },
                    layer: {
                        get: function() {
                            return this.layers[this.currentLayerIndex];
                        },
                        set: function(t) {
                            this.setLayer(t);
                        }
                    },
                    putTileAt: function(t, e, i, s, n) {
                        return void 0 === s && (s = !0), null === (n = this.getLayer(n)) ? null : v.PutTileAt(t, e, i, s, n);
                    },
                    putTileAtWorldXY: function(t, e, i, s, n, r) {
                        return void 0 === s && (s = !0), null === (r = this.getLayer(r)) ? null : v.PutTileAtWorldXY(t, e, i, s, n, r);
                    },
                    putTilesAt: function(t, e, i, s, n) {
                        return void 0 === s && (s = !0), null === (n = this.getLayer(n)) ? null : (v.PutTilesAt(t, e, i, s, n), this);
                    },
                    randomize: function(t, e, i, s, n, r) {
                        return null === (r = this.getLayer(r)) ? null : (v.Randomize(t, e, i, s, n, r), this);
                    },
                    calculateFacesAt: function(t, e, i) {
                        return null === (i = this.getLayer(i)) ? null : (v.CalculateFacesAt(t, e, i), this);
                    },
                    calculateFacesWithin: function(t, e, i, s, n) {
                        return null === (n = this.getLayer(n)) ? null : (v.CalculateFacesWithin(t, e, i, s, n), this);
                    },
                    removeLayer: function(t) {
                        var e = this.getLayerIndex(t);
                        if (null !== e) {
                            d(this.layers, e);
                            for(var i = e; i < this.layers.length; i++)this.layers[i].tilemapLayer && this.layers[i].tilemapLayer.layerIndex--;
                            return this.currentLayerIndex === e && (this.currentLayerIndex = 0), this;
                        }
                        return null;
                    },
                    destroyLayer: function(t) {
                        var e = this.getLayerIndex(t);
                        return null !== e ? ((t = this.layers[e]).tilemapLayer.destroy(), d(this.layers, e), this.currentLayerIndex === e && (this.currentLayerIndex = 0), this) : null;
                    },
                    removeAllLayers: function() {
                        for(var t = this.layers, e = 0; e < t.length; e++)t[e].tilemapLayer && t[e].tilemapLayer.destroy(!1);
                        return t.length = 0, this.currentLayerIndex = 0, this;
                    },
                    removeTile: function(t, e, i) {
                        void 0 === e && (e = -1), void 0 === i && (i = !0);
                        var s = [];
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var n = 0; n < t.length; n++){
                            var r = t[n];
                            s.push(this.removeTileAt(r.x, r.y, !0, i, r.tilemapLayer)), e > -1 && this.putTileAt(e, r.x, r.y, i, r.tilemapLayer);
                        }
                        return s;
                    },
                    removeTileAt: function(t, e, i, s, n) {
                        return void 0 === i && (i = !0), void 0 === s && (s = !0), null === (n = this.getLayer(n)) ? null : v.RemoveTileAt(t, e, i, s, n);
                    },
                    removeTileAtWorldXY: function(t, e, i, s, n, r) {
                        return void 0 === i && (i = !0), void 0 === s && (s = !0), null === (r = this.getLayer(r)) ? null : v.RemoveTileAtWorldXY(t, e, i, s, n, r);
                    },
                    renderDebug: function(t, e, i) {
                        return null === (i = this.getLayer(i)) ? null : (this.orientation === u.ORTHOGONAL && v.RenderDebug(t, e, i), this);
                    },
                    renderDebugFull: function(t, e) {
                        for(var i = this.layers, s = 0; s < i.length; s++)v.RenderDebug(t, e, i[s]);
                        return this;
                    },
                    replaceByIndex: function(t, e, i, s, n, r, o) {
                        return null === (o = this.getLayer(o)) ? null : (v.ReplaceByIndex(t, e, i, s, n, r, o), this);
                    },
                    setCollision: function(t, e, i, s, n) {
                        return void 0 === e && (e = !0), void 0 === i && (i = !0), void 0 === n && (n = !0), null === (s = this.getLayer(s)) ? null : (v.SetCollision(t, e, i, s, n), this);
                    },
                    setCollisionBetween: function(t, e, i, s, n) {
                        return void 0 === i && (i = !0), void 0 === s && (s = !0), null === (n = this.getLayer(n)) ? null : (v.SetCollisionBetween(t, e, i, s, n), this);
                    },
                    setCollisionByProperty: function(t, e, i, s) {
                        return void 0 === e && (e = !0), void 0 === i && (i = !0), null === (s = this.getLayer(s)) ? null : (v.SetCollisionByProperty(t, e, i, s), this);
                    },
                    setCollisionByExclusion: function(t, e, i, s) {
                        return void 0 === e && (e = !0), void 0 === i && (i = !0), null === (s = this.getLayer(s)) ? null : (v.SetCollisionByExclusion(t, e, i, s), this);
                    },
                    setCollisionFromCollisionGroup: function(t, e, i) {
                        return void 0 === t && (t = !0), void 0 === e && (e = !0), null === (i = this.getLayer(i)) ? null : (v.SetCollisionFromCollisionGroup(t, e, i), this);
                    },
                    setTileIndexCallback: function(t, e, i, s) {
                        return null === (s = this.getLayer(s)) ? null : (v.SetTileIndexCallback(t, e, i, s), this);
                    },
                    setTileLocationCallback: function(t, e, i, s, n, r, o) {
                        return null === (o = this.getLayer(o)) ? null : (v.SetTileLocationCallback(t, e, i, s, n, r, o), this);
                    },
                    setLayer: function(t) {
                        var e = this.getLayerIndex(t);
                        return null !== e && (this.currentLayerIndex = e), this;
                    },
                    setBaseTileSize: function(t, e) {
                        this.tileWidth = t, this.tileHeight = e, this.widthInPixels = this.width * t, this.heightInPixels = this.height * e;
                        for(var i = 0; i < this.layers.length; i++){
                            this.layers[i].baseTileWidth = t, this.layers[i].baseTileHeight = e;
                            for(var s = this.layers[i].data, n = this.layers[i].width, r = this.layers[i].height, o = 0; o < r; o++)for(var a = 0; a < n; a++){
                                var h = s[o][a];
                                null !== h && h.setSize(void 0, void 0, t, e);
                            }
                        }
                        return this;
                    },
                    setLayerTileSize: function(t, e, i) {
                        if (null === (i = this.getLayer(i))) return this;
                        i.tileWidth = t, i.tileHeight = e;
                        for(var s = i.data, n = i.width, r = i.height, o = 0; o < r; o++)for(var a = 0; a < n; a++){
                            var h = s[o][a];
                            null !== h && h.setSize(t, e);
                        }
                        return this;
                    },
                    shuffle: function(t, e, i, s, n) {
                        return null === (n = this.getLayer(n)) ? null : (v.Shuffle(t, e, i, s, n), this);
                    },
                    swapByIndex: function(t, e, i, s, n, r, o) {
                        return null === (o = this.getLayer(o)) ? null : (v.SwapByIndex(t, e, i, s, n, r, o), this);
                    },
                    tileToWorldX: function(t, e, i) {
                        return null === (i = this.getLayer(i)) ? null : this._convert.TileToWorldX(t, e, i);
                    },
                    tileToWorldY: function(t, e, i) {
                        return null === (i = this.getLayer(i)) ? null : this._convert.TileToWorldY(t, e, i);
                    },
                    tileToWorldXY: function(t, e, i, s, n) {
                        return null === (n = this.getLayer(n)) ? null : this._convert.TileToWorldXY(t, e, i, s, n);
                    },
                    getTileCorners: function(t, e, i, s) {
                        return null === (s = this.getLayer(s)) ? null : this._convert.GetTileCorners(t, e, i, s);
                    },
                    weightedRandomize: function(t, e, i, s, n, r) {
                        return null === (r = this.getLayer(r)) ? null : (v.WeightedRandomize(e, i, s, n, t, r), this);
                    },
                    worldToTileX: function(t, e, i, s) {
                        return null === (s = this.getLayer(s)) ? null : this._convert.WorldToTileX(t, e, i, s);
                    },
                    worldToTileY: function(t, e, i, s) {
                        return null === (s = this.getLayer(s)) ? null : this._convert.WorldToTileY(t, e, i, s);
                    },
                    worldToTileXY: function(t, e, i, s, n, r) {
                        return null === (r = this.getLayer(r)) ? null : this._convert.WorldToTileXY(t, e, i, s, n, r);
                    },
                    destroy: function() {
                        this.removeAllLayers(), this.tiles.length = 0, this.tilesets.length = 0, this.objects.length = 0, this.scene = null;
                    }
                });
                t.exports = y;
            },
            4843: (t, e, i)=>{
                var s = i(99325), n = i(15043);
                s.register("tilemap", function(t) {
                    var e = void 0 !== t ? t : {};
                    return n(this.scene, e.key, e.tileWidth, e.tileHeight, e.width, e.height, e.data, e.insertNull);
                });
            },
            37940: (t, e, i)=>{
                var s = i(61286), n = i(15043);
                s.register("tilemap", function(t, e, i, s, r, o, a) {
                    return null === t && (t = void 0), null === e && (e = void 0), null === i && (i = void 0), null === s && (s = void 0), null === r && (r = void 0), n(this.scene, t, e, i, s, r, o, a);
                });
            },
            87177: (t, e, i)=>{
                var s = i(56694), n = i(64937), r = i(89980), o = i(5047), a = i(96193), h = i(93736), l = new s({
                    Extends: r,
                    Mixins: [
                        n.Alpha,
                        n.BlendMode,
                        n.ComputedSize,
                        n.Depth,
                        n.Flip,
                        n.GetBounds,
                        n.Mask,
                        n.Origin,
                        n.Pipeline,
                        n.PostPipeline,
                        n.Transform,
                        n.Visible,
                        n.ScrollFactor,
                        a
                    ],
                    initialize: function(t, e, i, s, n, a) {
                        r.call(this, t, "TilemapLayer"), this.isTilemap = !0, this.tilemap = e, this.layerIndex = i, this.layer = e.layers[i], this.layer.tilemapLayer = this, this.tileset = [], this.tilesDrawn = 0, this.tilesTotal = this.layer.width * this.layer.height, this.culledTiles = [], this.skipCull = !1, this.cullPaddingX = 1, this.cullPaddingY = 1, this.cullCallback = o.GetCullTilesFunction(this.layer.orientation), this._renderOrder = 0, this.gidMap = [], this.tempVec = new h, this.setTilesets(s), this.setAlpha(this.layer.alpha), this.setPosition(n, a), this.setOrigin(0, 0), this.setSize(e.tileWidth * this.layer.width, e.tileHeight * this.layer.height), this.initPipeline(), this.initPostPipeline(!1);
                    },
                    setTilesets: function(t) {
                        var e = [], i = [], s = this.tilemap;
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var n = 0; n < t.length; n++){
                            var r = t[n];
                            if ("string" == typeof r && (r = s.getTileset(r)), r) {
                                i.push(r);
                                for(var o = r.firstgid, a = 0; a < r.total; a++)e[o + a] = r;
                            }
                        }
                        this.gidMap = e, this.tileset = i;
                    },
                    setRenderOrder: function(t) {
                        return "string" == typeof t && (t = [
                            "right-down",
                            "left-down",
                            "right-up",
                            "left-up"
                        ].indexOf(t)), t >= 0 && t < 4 && (this._renderOrder = t), this;
                    },
                    calculateFacesAt: function(t, e) {
                        return o.CalculateFacesAt(t, e, this.layer), this;
                    },
                    calculateFacesWithin: function(t, e, i, s) {
                        return o.CalculateFacesWithin(t, e, i, s, this.layer), this;
                    },
                    createFromTiles: function(t, e, i, s, n) {
                        return o.CreateFromTiles(t, e, i, s, n, this.layer);
                    },
                    cull: function(t) {
                        return this.cullCallback(this.layer, t, this.culledTiles, this._renderOrder);
                    },
                    copy: function(t, e, i, s, n, r, a) {
                        return o.Copy(t, e, i, s, n, r, a, this.layer), this;
                    },
                    fill: function(t, e, i, s, n, r) {
                        return o.Fill(t, e, i, s, n, r, this.layer), this;
                    },
                    filterTiles: function(t, e, i, s, n, r, a) {
                        return o.FilterTiles(t, e, i, s, n, r, a, this.layer);
                    },
                    findByIndex: function(t, e, i) {
                        return o.FindByIndex(t, e, i, this.layer);
                    },
                    findTile: function(t, e, i, s, n, r, a) {
                        return o.FindTile(t, e, i, s, n, r, a, this.layer);
                    },
                    forEachTile: function(t, e, i, s, n, r, a) {
                        return o.ForEachTile(t, e, i, s, n, r, a, this.layer), this;
                    },
                    setTint: function(t, e, i, s, n, r) {
                        void 0 === t && (t = 16777215);
                        return this.forEachTile(function(e) {
                            e.tint = t;
                        }, this, e, i, s, n, r);
                    },
                    getTileAt: function(t, e, i) {
                        return o.GetTileAt(t, e, i, this.layer);
                    },
                    getTileAtWorldXY: function(t, e, i, s) {
                        return o.GetTileAtWorldXY(t, e, i, s, this.layer);
                    },
                    getIsoTileAtWorldXY: function(t, e, i, s, n) {
                        void 0 === i && (i = !0);
                        var r = this.tempVec;
                        return o.IsometricWorldToTileXY(t, e, !0, r, n, this.layer, i), this.getTileAt(r.x, r.y, s);
                    },
                    getTilesWithin: function(t, e, i, s, n) {
                        return o.GetTilesWithin(t, e, i, s, n, this.layer);
                    },
                    getTilesWithinShape: function(t, e, i) {
                        return o.GetTilesWithinShape(t, e, i, this.layer);
                    },
                    getTilesWithinWorldXY: function(t, e, i, s, n, r) {
                        return o.GetTilesWithinWorldXY(t, e, i, s, n, r, this.layer);
                    },
                    hasTileAt: function(t, e) {
                        return o.HasTileAt(t, e, this.layer);
                    },
                    hasTileAtWorldXY: function(t, e, i) {
                        return o.HasTileAtWorldXY(t, e, i, this.layer);
                    },
                    putTileAt: function(t, e, i, s) {
                        return o.PutTileAt(t, e, i, s, this.layer);
                    },
                    putTileAtWorldXY: function(t, e, i, s, n) {
                        return o.PutTileAtWorldXY(t, e, i, s, n, this.layer);
                    },
                    putTilesAt: function(t, e, i, s) {
                        return o.PutTilesAt(t, e, i, s, this.layer), this;
                    },
                    randomize: function(t, e, i, s, n) {
                        return o.Randomize(t, e, i, s, n, this.layer), this;
                    },
                    removeTileAt: function(t, e, i, s) {
                        return o.RemoveTileAt(t, e, i, s, this.layer);
                    },
                    removeTileAtWorldXY: function(t, e, i, s, n) {
                        return o.RemoveTileAtWorldXY(t, e, i, s, n, this.layer);
                    },
                    renderDebug: function(t, e) {
                        return o.RenderDebug(t, e, this.layer), this;
                    },
                    replaceByIndex: function(t, e, i, s, n, r) {
                        return o.ReplaceByIndex(t, e, i, s, n, r, this.layer), this;
                    },
                    setSkipCull: function(t) {
                        return void 0 === t && (t = !0), this.skipCull = t, this;
                    },
                    setCullPadding: function(t, e) {
                        return void 0 === t && (t = 1), void 0 === e && (e = 1), this.cullPaddingX = t, this.cullPaddingY = e, this;
                    },
                    setCollision: function(t, e, i, s) {
                        return o.SetCollision(t, e, i, this.layer, s), this;
                    },
                    setCollisionBetween: function(t, e, i, s) {
                        return o.SetCollisionBetween(t, e, i, s, this.layer), this;
                    },
                    setCollisionByProperty: function(t, e, i) {
                        return o.SetCollisionByProperty(t, e, i, this.layer), this;
                    },
                    setCollisionByExclusion: function(t, e, i) {
                        return o.SetCollisionByExclusion(t, e, i, this.layer), this;
                    },
                    setCollisionFromCollisionGroup: function(t, e) {
                        return o.SetCollisionFromCollisionGroup(t, e, this.layer), this;
                    },
                    setTileIndexCallback: function(t, e, i) {
                        return o.SetTileIndexCallback(t, e, i, this.layer), this;
                    },
                    setTileLocationCallback: function(t, e, i, s, n, r) {
                        return o.SetTileLocationCallback(t, e, i, s, n, r, this.layer), this;
                    },
                    shuffle: function(t, e, i, s) {
                        return o.Shuffle(t, e, i, s, this.layer), this;
                    },
                    swapByIndex: function(t, e, i, s, n, r) {
                        return o.SwapByIndex(t, e, i, s, n, r, this.layer), this;
                    },
                    tileToWorldX: function(t, e) {
                        return this.tilemap.tileToWorldX(t, e, this);
                    },
                    tileToWorldY: function(t, e) {
                        return this.tilemap.tileToWorldY(t, e, this);
                    },
                    tileToWorldXY: function(t, e, i, s) {
                        return this.tilemap.tileToWorldXY(t, e, i, s, this);
                    },
                    getTileCorners: function(t, e, i) {
                        return this.tilemap.getTileCorners(t, e, i, this);
                    },
                    weightedRandomize: function(t, e, i, s, n) {
                        return o.WeightedRandomize(e, i, s, n, t, this.layer), this;
                    },
                    worldToTileX: function(t, e, i) {
                        return this.tilemap.worldToTileX(t, e, i, this);
                    },
                    worldToTileY: function(t, e, i) {
                        return this.tilemap.worldToTileY(t, e, i, this);
                    },
                    worldToTileXY: function(t, e, i, s, n) {
                        return this.tilemap.worldToTileXY(t, e, i, s, n, this);
                    },
                    destroy: function(t) {
                        void 0 === t && (t = !0), this.tilemap && (this.layer.tilemapLayer === this && (this.layer.tilemapLayer = void 0), t && this.tilemap.removeLayer(this), this.tilemap = void 0, this.layer = void 0, this.culledTiles.length = 0, this.cullCallback = null, this.gidMap = [], this.tileset = [], r.prototype.destroy.call(this));
                    }
                });
                t.exports = l;
            },
            17394: (t, e, i)=>{
                var s = i(69360), n = new s, r = new s, o = new s;
                t.exports = function(t, e, i, s) {
                    var a = e.cull(i), h = a.length, l = i.alpha * e.alpha;
                    if (!(0 === h || l <= 0)) {
                        var u = n, c = r, d = o;
                        c.applyITRS(e.x, e.y, e.rotation, e.scaleX, e.scaleY), u.copyFrom(i.matrix);
                        var f = t.currentContext, p = e.gidMap;
                        f.save(), s ? (u.multiplyWithOffset(s, -i.scrollX * e.scrollFactorX, -i.scrollY * e.scrollFactorY), c.e = e.x, c.f = e.y, u.multiply(c, d), d.copyToContext(f)) : (c.e -= i.scrollX * e.scrollFactorX, c.f -= i.scrollY * e.scrollFactorY, c.copyToContext(f)), (!t.antialias || e.scaleX > 1 || e.scaleY > 1) && (f.imageSmoothingEnabled = !1);
                        for(var v = 0; v < h; v++){
                            var g = a[v], m = p[g.index];
                            if (m) {
                                var y = m.image.getSourceImage(), x = m.getTileTextureCoordinates(g.index), T = m.tileWidth, w = m.tileHeight;
                                if (null !== x && 0 !== T && 0 !== w) {
                                    var b = .5 * T, S = .5 * w;
                                    x.x += m.tileOffset.x, x.y += m.tileOffset.y, f.save(), f.translate(g.pixelX + b, g.pixelY + S), 0 !== g.rotation && f.rotate(g.rotation), (g.flipX || g.flipY) && f.scale(g.flipX ? -1 : 1, g.flipY ? -1 : 1), f.globalAlpha = l * g.alpha, f.drawImage(y, x.x, x.y, T, w, -b, -S, T, w), f.restore();
                                }
                            }
                        }
                        f.restore();
                    }
                };
            },
            96193: (t, e, i)=>{
                var s = i(72283), n = s, r = s;
                n = i(51395), r = i(17394), t.exports = {
                    renderWebGL: n,
                    renderCanvas: r
                };
            },
            51395: (t, e, i)=>{
                var s = i(75512);
                t.exports = function(t, e, i) {
                    var n = e.cull(i), r = n.length, o = i.alpha * e.alpha;
                    if (!(0 === r || o <= 0)) {
                        var a = e.gidMap, h = t.pipelines.set(e.pipeline, e), l = s.getTintAppendFloatAlpha, u = e.scrollFactorX, c = e.scrollFactorY, d = e.x, f = e.y, p = e.scaleX, v = e.scaleY;
                        t.pipelines.preBatch(e);
                        for(var g = 0; g < r; g++){
                            var m = n[g], y = a[m.index];
                            if (y) {
                                var x = y.getTileTextureCoordinates(m.index);
                                if (null !== x) {
                                    var T = y.glTexture, w = h.setTexture2D(T, e), b = y.tileWidth, S = y.tileHeight, E = x.x, A = x.y, C = .5 * y.tileWidth, _ = .5 * y.tileHeight, M = y.tileOffset.x, P = y.tileOffset.y, R = l(m.tint, o * m.alpha);
                                    h.batchTexture(e, T, T.width, T.height, d + m.pixelX * p + (C * p - M), f + m.pixelY * v + (_ * v - P), m.width, m.height, p, v, m.rotation, m.flipX, m.flipY, u, c, C, _, E, A, b, S, R, R, R, R, !1, 0, 0, i, null, !0, w);
                                }
                            }
                        }
                        t.pipelines.postBatch(e);
                    }
                };
            },
            47975: (t, e, i)=>{
                var s = i(56694), n = i(93736), r = new s({
                    initialize: function(t, e, i, s, r, o, a, h, l) {
                        (void 0 === i || i <= 0) && (i = 32), (void 0 === s || s <= 0) && (s = 32), void 0 === r && (r = 0), void 0 === o && (o = 0), void 0 === a && (a = {}), void 0 === h && (h = {}), this.name = t, this.firstgid = e, this.tileWidth = i, this.tileHeight = s, this.tileMargin = r, this.tileSpacing = o, this.tileProperties = a, this.tileData = h, this.tileOffset = new n, void 0 !== l && this.tileOffset.set(l.x, l.y), this.image = null, this.glTexture = null, this.rows = 0, this.columns = 0, this.total = 0, this.texCoordinates = [];
                    },
                    getTileProperties: function(t) {
                        return this.containsTileIndex(t) ? this.tileProperties[t - this.firstgid] : null;
                    },
                    getTileData: function(t) {
                        return this.containsTileIndex(t) ? this.tileData[t - this.firstgid] : null;
                    },
                    getTileCollisionGroup: function(t) {
                        var e = this.getTileData(t);
                        return e && e.objectgroup ? e.objectgroup : null;
                    },
                    containsTileIndex: function(t) {
                        return t >= this.firstgid && t < this.firstgid + this.total;
                    },
                    getTileTextureCoordinates: function(t) {
                        return this.containsTileIndex(t) ? this.texCoordinates[t - this.firstgid] : null;
                    },
                    setImage: function(t) {
                        return this.image = t, this.glTexture = t.get().source.glTexture, this.updateTileData(this.image.source[0].width, this.image.source[0].height), this;
                    },
                    setTileSize: function(t, e) {
                        return void 0 !== t && (this.tileWidth = t), void 0 !== e && (this.tileHeight = e), this.image && this.updateTileData(this.image.source[0].width, this.image.source[0].height), this;
                    },
                    setSpacing: function(t, e) {
                        return void 0 !== t && (this.tileMargin = t), void 0 !== e && (this.tileSpacing = e), this.image && this.updateTileData(this.image.source[0].width, this.image.source[0].height), this;
                    },
                    updateTileData: function(t, e) {
                        var i = (e - 2 * this.tileMargin + this.tileSpacing) / (this.tileHeight + this.tileSpacing), s = (t - 2 * this.tileMargin + this.tileSpacing) / (this.tileWidth + this.tileSpacing);
                        i % 1 == 0 && s % 1 == 0 || console.warn("Image tile area not tile size multiple in: " + this.name), i = Math.floor(i), s = Math.floor(s), this.rows = i, this.columns = s, this.total = i * s, this.texCoordinates.length = 0;
                        for(var n = this.tileMargin, r = this.tileMargin, o = 0; o < this.rows; o++){
                            for(var a = 0; a < this.columns; a++)this.texCoordinates.push({
                                x: n,
                                y: r
                            }), n += this.tileWidth + this.tileSpacing;
                            n = this.tileMargin, r += this.tileHeight + this.tileSpacing;
                        }
                        return this;
                    }
                });
                t.exports = r;
            },
            92839: (t, e, i)=>{
                var s = i(15494);
                t.exports = function(t, e, i) {
                    var n = s(t, e, !0, i), r = s(t, e - 1, !0, i), o = s(t, e + 1, !0, i), a = s(t - 1, e, !0, i), h = s(t + 1, e, !0, i), l = n && n.collides;
                    return l && (n.faceTop = !0, n.faceBottom = !0, n.faceLeft = !0, n.faceRight = !0), r && r.collides && (l && (n.faceTop = !1), r.faceBottom = !l), o && o.collides && (l && (n.faceBottom = !1), o.faceTop = !l), a && a.collides && (l && (n.faceLeft = !1), a.faceRight = !l), h && h.collides && (l && (n.faceRight = !1), h.faceLeft = !l), n && !n.collides && n.resetFaces(), n;
                };
            },
            60386: (t, e, i)=>{
                var s = i(15494), n = i(50811);
                t.exports = function(t, e, i, r, o) {
                    for(var a = null, h = null, l = null, u = null, c = n(t, e, i, r, null, o), d = 0; d < c.length; d++){
                        var f = c[d];
                        f && (f.collides ? (a = s(f.x, f.y - 1, !0, o), h = s(f.x, f.y + 1, !0, o), l = s(f.x - 1, f.y, !0, o), u = s(f.x + 1, f.y, !0, o), f.faceTop = !a || !a.collides, f.faceBottom = !h || !h.collides, f.faceLeft = !l || !l.collides, f.faceRight = !u || !u.collides) : f.resetFaces());
                    }
                };
            },
            13125: (t, e, i)=>{
                var s = new (i(93736));
                t.exports = function(t, e, i, n) {
                    var r = i.tilemapLayer, o = r.cullPaddingX, a = r.cullPaddingY, h = r.tilemap.tileToWorldXY(t, e, s, n, r);
                    return h.x > n.worldView.x + r.scaleX * i.tileWidth * (-o - .5) && h.x < n.worldView.right + r.scaleX * i.tileWidth * (o - .5) && h.y > n.worldView.y + r.scaleY * i.tileHeight * (-a - 1) && h.y < n.worldView.bottom + r.scaleY * i.tileHeight * (a - .5);
                };
            },
            17347: (t, e, i)=>{
                var s = i(60386), n = i(50811), r = i(62839), o = i(29633);
                t.exports = function(t, e, i, a, h, l, u, c) {
                    void 0 === u && (u = !0);
                    var d = n(t, e, i, a, null, c), f = [];
                    d.forEach(function(t) {
                        var e = new o(t.layer, t.index, t.x, t.y, t.width, t.height, t.baseWidth, t.baseHeight);
                        e.copy(t), f.push(e);
                    });
                    for(var p = h - t, v = l - e, g = 0; g < f.length; g++){
                        var m = f[g], y = m.x + p, x = m.y + v;
                        r(y, x, c) && c.data[x][y] && (m.x = y, m.y = x, m.updatePixelXY(), c.data[x][y] = m);
                    }
                    u && s(h - 1, l - 1, i + 2, a + 2, c), d.length = 0, f.length = 0;
                };
            },
            93604: (t, e, i)=>{
                var s = i(50811), n = i(51202);
                t.exports = function(t, e, i, r, o, a) {
                    i || (i = {}), Array.isArray(t) || (t = [
                        t
                    ]);
                    var h = a.tilemapLayer;
                    r || (r = h.scene), o || (o = r.cameras.main);
                    var l, u = s(0, 0, a.width, a.height, null, a), c = [];
                    for(l = 0; l < u.length; l++){
                        var d = u[l];
                        if (-1 !== t.indexOf(d.index)) {
                            var f = h.tileToWorldXY(d.x, d.y, void 0, o, a);
                            i.x = f.x, i.y = f.y, c.push(r.make.sprite(i));
                        }
                    }
                    if ("number" == typeof e) for(l = 0; l < t.length; l++)n(t[l], e, 0, 0, a.width, a.height, a);
                    else if (Array.isArray(e)) for(l = 0; l < t.length; l++)n(t[l], e[l], 0, 0, a.width, a.height, a);
                    return c;
                };
            },
            71586: (t, e, i)=>{
                var s = i(74118), n = i(82127), r = i(84314), o = new s;
                t.exports = function(t, e) {
                    var i = t.tilemapLayer.tilemap, s = t.tilemapLayer, a = Math.floor(i.tileWidth * s.scaleX), h = Math.floor(i.tileHeight * s.scaleY), l = r(e.worldView.x - s.x, a, 0, !0) - s.cullPaddingX, u = n(e.worldView.right - s.x, a, 0, !0) + s.cullPaddingX, c = r(e.worldView.y - s.y, h, 0, !0) - s.cullPaddingY, d = n(e.worldView.bottom - s.y, h, 0, !0) + s.cullPaddingY;
                    return o.setTo(l, c, u - l, d - c);
                };
            },
            381: (t, e, i)=>{
                var s = i(71586), n = i(6987);
                t.exports = function(t, e, i, r) {
                    void 0 === i && (i = []), void 0 === r && (r = 0), i.length = 0;
                    var o = t.tilemapLayer, a = s(t, e);
                    return (o.skipCull || 1 !== o.scrollFactorX || 1 !== o.scrollFactorY) && (a.left = 0, a.right = t.width, a.top = 0, a.bottom = t.height), n(t, a, r, i), i;
                };
            },
            97734: (t, e, i)=>{
                var s = i(50811), n = i(60386), r = i(68234);
                t.exports = function(t, e, i, o, a, h, l) {
                    for(var u = -1 !== l.collideIndexes.indexOf(t), c = s(e, i, o, a, null, l), d = 0; d < c.length; d++)c[d].index = t, r(c[d], u);
                    h && n(e - 1, i - 1, o + 2, a + 2, l);
                };
            },
            63555: (t, e, i)=>{
                var s = i(50811);
                t.exports = function(t, e, i, n, r, o, a, h) {
                    return s(i, n, r, o, a, h).filter(t, e);
                };
            },
            37982: (t)=>{
                t.exports = function(t, e, i, s) {
                    void 0 === e && (e = 0), void 0 === i && (i = !1);
                    var n, r, o, a = 0;
                    if (i) {
                        for(r = s.height - 1; r >= 0; r--)for(n = s.width - 1; n >= 0; n--)if ((o = s.data[r][n]) && o.index === t) {
                            if (a === e) return o;
                            a += 1;
                        }
                    } else for(r = 0; r < s.height; r++)for(n = 0; n < s.width; n++)if ((o = s.data[r][n]) && o.index === t) {
                        if (a === e) return o;
                        a += 1;
                    }
                    return null;
                };
            },
            48297: (t, e, i)=>{
                var s = i(50811);
                t.exports = function(t, e, i, n, r, o, a, h) {
                    return s(i, n, r, o, a, h).find(t, e) || null;
                };
            },
            80916: (t, e, i)=>{
                var s = i(50811);
                t.exports = function(t, e, i, n, r, o, a, h) {
                    s(i, n, r, o, a, h).forEach(t, e);
                };
            },
            31493: (t, e, i)=>{
                var s = i(12920), n = i(381), r = i(37524), o = i(20887), a = i(72283), h = i(19242);
                t.exports = function(t) {
                    return t === s.ORTHOGONAL ? n : t === s.HEXAGONAL ? r : t === s.STAGGERED ? h : t === s.ISOMETRIC ? o : a;
                };
            },
            15494: (t, e, i)=>{
                var s = i(62839);
                t.exports = function(t, e, i, n) {
                    if (void 0 === i && (i = !1), s(t, e, n)) {
                        var r = n.data[e][t] || null;
                        return r ? -1 === r.index ? i ? r : null : r : null;
                    }
                    return null;
                };
            },
            24640: (t, e, i)=>{
                var s = i(15494), n = new (i(93736));
                t.exports = function(t, e, i, r, o) {
                    return o.tilemapLayer.worldToTileXY(t, e, !0, n, r), s(n.x, n.y, i, o);
                };
            },
            48495: (t, e, i)=>{
                var s = i(93736);
                t.exports = function(t, e, i, n) {
                    var r = n.baseTileWidth, o = n.baseTileHeight, a = n.tilemapLayer, h = 0, l = 0;
                    a && (i || (i = a.scene.cameras.main), h = a.x + i.scrollX * (1 - a.scrollFactorX), l = a.y + i.scrollY * (1 - a.scrollFactorY), r *= a.scaleX, o *= a.scaleY);
                    var u = h + t * r, c = l + e * o;
                    return [
                        new s(u, c),
                        new s(u + r, c),
                        new s(u + r, c + o),
                        new s(u, c + o)
                    ];
                };
            },
            7160: (t, e, i)=>{
                var s = i(12920), n = i(63634), r = i(72283), o = i(48495);
                t.exports = function(t) {
                    return t === s.ORTHOGONAL ? o : t === s.ISOMETRIC ? r : t === s.HEXAGONAL ? n : (s.STAGGERED, r);
                };
            },
            16884: (t, e, i)=>{
                var s = i(12920), n = i(72283), r = i(44150);
                t.exports = function(t) {
                    return t === s.ORTHOGONAL ? r : n;
                };
            },
            68182: (t, e, i)=>{
                var s = i(12920), n = i(21715), r = i(21808), o = i(72283), a = i(33388), h = i(46836);
                t.exports = function(t) {
                    return t === s.ORTHOGONAL ? h : t === s.ISOMETRIC ? r : t === s.HEXAGONAL ? n : t === s.STAGGERED ? a : o;
                };
            },
            3752: (t, e, i)=>{
                var s = i(12920), n = i(72283), r = i(84132), o = i(42477);
                t.exports = function(t) {
                    return t === s.ORTHOGONAL ? o : t === s.STAGGERED ? r : n;
                };
            },
            50811: (t, e, i)=>{
                var s = i(72632);
                t.exports = function(t, e, i, n, r, o) {
                    void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === i && (i = o.width), void 0 === n && (n = o.height), r || (r = {});
                    var a = s(r, "isNotEmpty", !1), h = s(r, "isColliding", !1), l = s(r, "hasInterestingFace", !1);
                    t < 0 && (i += t, t = 0), e < 0 && (n += e, e = 0), t + i > o.width && (i = Math.max(o.width - t, 0)), e + n > o.height && (n = Math.max(o.height - e, 0));
                    for(var u = [], c = e; c < e + n; c++)for(var d = t; d < t + i; d++){
                        var f = o.data[c][d];
                        if (null !== f) {
                            if (a && -1 === f.index) continue;
                            if (h && !f.collides) continue;
                            if (l && !f.hasInterestingFace) continue;
                            u.push(f);
                        }
                    }
                    return u;
                };
            },
            31674: (t, e, i)=>{
                var s = i(84068), n = i(50811), r = i(7563), o = i(72283), a = i(93736), h = function(t, e) {
                    return r.RectangleToTriangle(e, t);
                }, l = new a, u = new a, c = new a;
                t.exports = function(t, e, i, a) {
                    if (void 0 === t) return [];
                    var d = o;
                    t instanceof s.Circle ? d = r.CircleToRectangle : t instanceof s.Rectangle ? d = r.RectangleToRectangle : t instanceof s.Triangle ? d = h : t instanceof s.Line && (d = r.LineToRectangle), a.tilemapLayer.worldToTileXY(t.left, t.top, !0, u, i);
                    var f = u.x, p = u.y;
                    a.tilemapLayer.worldToTileXY(t.right, t.bottom, !1, c, i);
                    var v = Math.ceil(c.x), g = Math.ceil(c.y), m = Math.max(v - f, 1), y = Math.max(g - p, 1), x = n(f, p, m, y, e, a), T = a.tileWidth, w = a.tileHeight;
                    a.tilemapLayer && (T *= a.tilemapLayer.scaleX, w *= a.tilemapLayer.scaleY);
                    for(var b = [], S = new s.Rectangle(0, 0, T, w), E = 0; E < x.length; E++){
                        var A = x[E];
                        a.tilemapLayer.tileToWorldXY(A.x, A.y, l, i), S.x = l.x, S.y = l.y, d(t, S) && b.push(A);
                    }
                    return b;
                };
            },
            44662: (t, e, i)=>{
                var s = i(50811), n = i(93736), r = new n, o = new n;
                t.exports = function(t, e, i, n, a, h, l) {
                    var u = l.tilemapLayer.tilemap._convert.WorldToTileXY;
                    u(t, e, !0, r, h, l);
                    var c = r.x, d = r.y;
                    u(t + i, e + n, !1, o, h, l);
                    var f = Math.ceil(o.x), p = Math.ceil(o.y);
                    return s(c, d, f - c, p - d, a, l);
                };
            },
            29296: (t, e, i)=>{
                var s = i(12920), n = i(10618), r = i(806);
                t.exports = function(t) {
                    return t === s.ORTHOGONAL ? r : n;
                };
            },
            32688: (t, e, i)=>{
                var s = i(12920), n = i(11516), r = i(18750), o = i(72283), a = i(90562), h = i(45676);
                t.exports = function(t) {
                    return t === s.ORTHOGONAL ? h : t === s.ISOMETRIC ? r : t === s.HEXAGONAL ? n : t === s.STAGGERED ? a : o;
                };
            },
            74326: (t, e, i)=>{
                var s = i(12920), n = i(10618), r = i(3689), o = i(70520);
                t.exports = function(t) {
                    return t === s.ORTHOGONAL ? o : t === s.STAGGERED ? r : n;
                };
            },
            46598: (t, e, i)=>{
                var s = i(62839);
                t.exports = function(t, e, i) {
                    if (s(t, e, i)) {
                        var n = i.data[e][t];
                        return null !== n && n.index > -1;
                    }
                    return !1;
                };
            },
            28654: (t, e, i)=>{
                var s = i(46598), n = new (i(93736));
                t.exports = function(t, e, i, r) {
                    r.tilemapLayer.worldToTileXY(t, e, !0, n, i);
                    var o = n.x, a = n.y;
                    return s(o, a, r);
                };
            },
            6358: (t, e, i)=>{
                var s = i(82127), n = i(84314);
                t.exports = function(t, e) {
                    var i, r, o, a, h = t.tilemapLayer.tilemap, l = t.tilemapLayer, u = Math.floor(h.tileWidth * l.scaleX), c = Math.floor(h.tileHeight * l.scaleY), d = t.hexSideLength;
                    if ("y" === this.staggerAxis) {
                        var f = (c - d) / 2 + d;
                        i = n(e.worldView.x - l.x, u, 0, !0) - l.cullPaddingX, r = s(e.worldView.right - l.x, u, 0, !0) + l.cullPaddingX, o = n(e.worldView.y - l.y, f, 0, !0) - l.cullPaddingY, a = s(e.worldView.bottom - l.y, f, 0, !0) + l.cullPaddingY;
                    } else {
                        var p = (u - d) / 2 + d;
                        i = n(e.worldView.x - l.x, p, 0, !0) - l.cullPaddingX, r = s(e.worldView.right - l.x, p, 0, !0) + l.cullPaddingX, o = n(e.worldView.y - l.y, c, 0, !0) - l.cullPaddingY, a = s(e.worldView.bottom - l.y, c, 0, !0) + l.cullPaddingY;
                    }
                    return {
                        left: i,
                        right: r,
                        top: o,
                        bottom: a
                    };
                };
            },
            37524: (t, e, i)=>{
                var s = i(6358), n = i(6987);
                t.exports = function(t, e, i, r) {
                    void 0 === i && (i = []), void 0 === r && (r = 0), i.length = 0;
                    var o = t.tilemapLayer, a = s(t, e);
                    return o.skipCull && 1 === o.scrollFactorX && 1 === o.scrollFactorY && (a.left = 0, a.right = t.width, a.top = 0, a.bottom = t.height), n(t, a, r, i), i;
                };
            },
            63634: (t, e, i)=>{
                var s = i(21715), n = i(93736), r = new n;
                t.exports = function(t, e, i, o) {
                    var a = o.baseTileWidth, h = o.baseTileHeight, l = o.tilemapLayer;
                    l && (a *= l.scaleX, h *= l.scaleY);
                    var u, c, d = s(t, e, r, i, o), f = [], p = .5773502691896257;
                    "y" === this.staggerAxis ? (u = p * a, c = h / 2) : (u = a / 2, c = p * h);
                    for(var v = 0; v < 6; v++){
                        var g = 2 * Math.PI * (.5 - v) / 6;
                        f.push(new n(d.x + u * Math.cos(g), d.y + c * Math.sin(g)));
                    }
                    return f;
                };
            },
            21715: (t, e, i)=>{
                var s = i(93736);
                t.exports = function(t, e, i, n, r) {
                    i || (i = new s);
                    var o = r.baseTileWidth, a = r.baseTileHeight, h = r.tilemapLayer, l = 0, u = 0;
                    h && (n || (n = h.scene.cameras.main), l = h.x + n.scrollX * (1 - h.scrollFactorX), u = h.y + n.scrollY * (1 - h.scrollFactorY), o *= h.scaleX, a *= h.scaleY);
                    var c, d, f = o / 2, p = a / 2;
                    return "y" === this.staggerAxis ? (c = l + o * t + o, d = u + 1.5 * e * p + p, e % 2 == 0 && ("odd" === this.staggerIndex ? c -= f : c += f)) : "x" === this.staggerAxis && "odd" === this.staggerIndex && (c = l + 1.5 * t * f + f, d = u + a * t + a, t % 2 == 0 && ("odd" === this.staggerIndex ? d -= p : d += p)), i.set(c, d);
                };
            },
            11516: (t, e, i)=>{
                var s = i(93736);
                t.exports = function(t, e, i, n, r, o) {
                    n || (n = new s);
                    var a = o.baseTileWidth, h = o.baseTileHeight, l = o.tilemapLayer;
                    l && (r || (r = l.scene.cameras.main), t -= l.x + r.scrollX * (1 - l.scrollFactorX), e -= l.y + r.scrollY * (1 - l.scrollFactorY), a *= l.scaleX, h *= l.scaleY);
                    var u, c, d, f, p, v = .5773502691896257, g = -0.3333333333333333, m = .6666666666666666, y = a / 2, x = h / 2;
                    "y" === o.staggerAxis ? (d = v * (u = (t - y) / (v * a)) + g * (c = (e - x) / x), f = 0 * u + m * c) : (d = g * (u = (t - y) / y) + v * (c = (e - x) / (v * h)), f = m * u + 0 * c), p = -d - f;
                    var T, w = Math.round(d), b = Math.round(f), S = Math.round(p), E = Math.abs(w - d), A = Math.abs(b - f), C = Math.abs(S - p);
                    E > A && E > C ? w = -b - S : A > C && (b = -w - S);
                    var _ = b;
                    return T = "odd" === o.staggerIndex ? _ % 2 == 0 ? b / 2 + w : b / 2 + w - .5 : _ % 2 == 0 ? b / 2 + w : b / 2 + w + .5, n.set(T, _);
                };
            },
            62839: (t)=>{
                t.exports = function(t, e, i) {
                    return t >= 0 && t < i.width && e >= 0 && e < i.height;
                };
            },
            20887: (t, e, i)=>{
                var s = i(13125);
                t.exports = function(t, e, i, n) {
                    void 0 === i && (i = []), void 0 === n && (n = 0), i.length = 0;
                    var r, o, a, h = t.tilemapLayer, l = t.data, u = t.width, c = t.height, d = h.skipCull, f = u, p = c;
                    if (0 === n) {
                        for(o = 0; o < p; o++)for(r = 0; r < f; r++)if (d || s(r, o, t, e)) {
                            if (!(a = l[o][r]) || -1 === a.index || !a.visible || 0 === a.alpha) continue;
                            i.push(a);
                        }
                    } else if (1 === n) {
                        for(o = 0; o < p; o++)for(r = f; r >= 0; r--)if (d || s(r, o, t, e)) {
                            if (!(a = l[o][r]) || -1 === a.index || !a.visible || 0 === a.alpha) continue;
                            i.push(a);
                        }
                    } else if (2 === n) {
                        for(o = p; o >= 0; o--)for(r = 0; r < f; r++)if (d || s(r, o, t, e)) {
                            if (!(a = l[o][r]) || -1 === a.index || !a.visible || 0 === a.alpha) continue;
                            i.push(a);
                        }
                    } else if (3 === n) {
                        for(o = p; o >= 0; o--)for(r = f; r >= 0; r--)if (d || s(r, o, t, e)) {
                            if (!(a = l[o][r]) || -1 === a.index || !a.visible || 0 === a.alpha) continue;
                            i.push(a);
                        }
                    }
                    return h.tilesDrawn = i.length, h.tilesTotal = u * c, i;
                };
            },
            21808: (t, e, i)=>{
                var s = i(93736);
                t.exports = function(t, e, i, n, r) {
                    i || (i = new s);
                    var o = r.baseTileWidth, a = r.baseTileHeight, h = r.tilemapLayer, l = 0, u = 0;
                    h && (n || (n = h.scene.cameras.main), l = h.x + n.scrollX * (1 - h.scrollFactorX), o *= h.scaleX, u = h.y + n.scrollY * (1 - h.scrollFactorY), a *= h.scaleY);
                    var c = l + o / 2 * (t - e), d = u + (t + e) * (a / 2);
                    return i.set(c, d);
                };
            },
            18750: (t, e, i)=>{
                var s = i(93736);
                t.exports = function(t, e, i, n, r, o, a) {
                    n || (n = new s);
                    var h = o.baseTileWidth, l = o.baseTileHeight, u = o.tilemapLayer;
                    u && (r || (r = u.scene.cameras.main), e -= u.y + r.scrollY * (1 - u.scrollFactorY), l *= u.scaleY, t -= u.x + r.scrollX * (1 - u.scrollFactorX), h *= u.scaleX);
                    var c = h / 2, d = l / 2;
                    a || (e -= l);
                    var f = .5 * ((t -= c) / c + e / d), p = .5 * (-t / c + e / d);
                    return i && (f = Math.floor(f), p = Math.floor(p)), n.set(f, p);
                };
            },
            29003: (t, e, i)=>{
                var s = i(29633), n = i(62839), r = i(92839), o = i(68234);
                t.exports = function(t, e, i, a, h) {
                    if (void 0 === a && (a = !0), !n(e, i, h)) return null;
                    var l, u = h.data[i][e], c = u && u.collides;
                    t instanceof s ? (null === h.data[i][e] && (h.data[i][e] = new s(h, t.index, e, i, h.tileWidth, h.tileHeight)), h.data[i][e].copy(t)) : (l = t, null === h.data[i][e] ? h.data[i][e] = new s(h, l, e, i, h.tileWidth, h.tileHeight) : h.data[i][e].index = l);
                    var d = h.data[i][e], f = -1 !== h.collideIndexes.indexOf(d.index);
                    if (-1 === (l = t instanceof s ? t.index : t)) d.width = h.tileWidth, d.height = h.tileHeight;
                    else {
                        var p = h.tilemapLayer.tilemap.tiles[l][2], v = h.tilemapLayer.tileset[p];
                        d.width = v.tileWidth, d.height = v.tileHeight;
                    }
                    return o(d, f), a && c !== d.collides && r(e, i, h), d;
                };
            },
            48565: (t, e, i)=>{
                var s = i(29003), n = new (i(93736));
                t.exports = function(t, e, i, r, o, a) {
                    return a.tilemapLayer.worldToTileXY(e, i, !0, n, o, a), s(t, n.x, n.y, r, a);
                };
            },
            56547: (t, e, i)=>{
                var s = i(60386), n = i(29003);
                t.exports = function(t, e, i, r, o) {
                    if (void 0 === r && (r = !0), !Array.isArray(t)) return null;
                    Array.isArray(t[0]) || (t = [
                        t
                    ]);
                    for(var a = t.length, h = t[0].length, l = 0; l < a; l++)for(var u = 0; u < h; u++){
                        var c = t[l][u];
                        n(c, e + u, i + l, !1, o);
                    }
                    r && s(e - 1, i - 1, h + 2, a + 2, o);
                };
            },
            91180: (t, e, i)=>{
                var s = i(50811), n = i(72861);
                t.exports = function(t, e, i, r, o, a) {
                    var h, l = s(t, e, i, r, {}, a);
                    if (!o) for(o = [], h = 0; h < l.length; h++)-1 === o.indexOf(l[h].index) && o.push(l[h].index);
                    for(h = 0; h < l.length; h++)l[h].index = n(o);
                };
            },
            929: (t, e, i)=>{
                var s = i(29633), n = i(62839), r = i(92839);
                t.exports = function(t, e, i, o, a) {
                    if (void 0 === i && (i = !0), void 0 === o && (o = !0), !n(t, e, a)) return null;
                    var h = a.data[e][t];
                    return h ? (a.data[e][t] = i ? null : new s(a, -1, t, e, a.tileWidth, a.tileHeight), o && h && h.collides && r(t, e, a), h) : null;
                };
            },
            17384: (t, e, i)=>{
                var s = i(929), n = new (i(93736));
                t.exports = function(t, e, i, r, o, a) {
                    return a.tilemapLayer.worldToTileXY(t, e, !0, n, o, a), s(n.x, n.y, i, r, a);
                };
            },
            93763: (t, e, i)=>{
                var s = i(50811), n = i(95509), r = new n(105, 210, 231, 150), o = new n(243, 134, 48, 200), a = new n(40, 39, 37, 150);
                t.exports = function(t, e, i) {
                    void 0 === e && (e = {});
                    var n = void 0 !== e.tileColor ? e.tileColor : r, h = void 0 !== e.collidingTileColor ? e.collidingTileColor : o, l = void 0 !== e.faceColor ? e.faceColor : a, u = s(0, 0, i.width, i.height, null, i);
                    t.translateCanvas(i.tilemapLayer.x, i.tilemapLayer.y), t.scaleCanvas(i.tilemapLayer.scaleX, i.tilemapLayer.scaleY);
                    for(var c = 0; c < u.length; c++){
                        var d = u[c], f = d.width, p = d.height, v = d.pixelX, g = d.pixelY, m = d.collides ? h : n;
                        null !== m && (t.fillStyle(m.color, m.alpha / 255), t.fillRect(v, g, f, p)), v += 1, g += 1, f -= 2, p -= 2, null !== l && (t.lineStyle(1, l.color, l.alpha / 255), d.faceTop && t.lineBetween(v, g, v + f, g), d.faceRight && t.lineBetween(v + f, g, v + f, g + p), d.faceBottom && t.lineBetween(v, g + p, v + f, g + p), d.faceLeft && t.lineBetween(v, g, v, g + p));
                    }
                };
            },
            51202: (t, e, i)=>{
                var s = i(50811);
                t.exports = function(t, e, i, n, r, o, a) {
                    for(var h = s(i, n, r, o, null, a), l = 0; l < h.length; l++)h[l] && h[l].index === t && (h[l].index = e);
                };
            },
            6987: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n, r, o, a = t.data, h = t.width, l = t.height, u = t.tilemapLayer, c = Math.max(0, e.left), d = Math.min(h, e.right), f = Math.max(0, e.top), p = Math.min(l, e.bottom);
                    if (0 === i) for(r = f; r < p; r++)for(n = c; a[r] && n < d; n++)(o = a[r][n]) && -1 !== o.index && o.visible && 0 !== o.alpha && s.push(o);
                    else if (1 === i) for(r = f; r < p; r++)for(n = d; a[r] && n >= c; n--)(o = a[r][n]) && -1 !== o.index && o.visible && 0 !== o.alpha && s.push(o);
                    else if (2 === i) for(r = p; r >= f; r--)for(n = c; a[r] && n < d; n++)(o = a[r][n]) && -1 !== o.index && o.visible && 0 !== o.alpha && s.push(o);
                    else if (3 === i) for(r = p; r >= f; r--)for(n = d; a[r] && n >= c; n--)(o = a[r][n]) && -1 !== o.index && o.visible && 0 !== o.alpha && s.push(o);
                    return u.tilesDrawn = s.length, u.tilesTotal = h * l, s;
                };
            },
            51710: (t, e, i)=>{
                var s = i(68234), n = i(60386), r = i(91181);
                t.exports = function(t, e, i, o, a) {
                    void 0 === e && (e = !0), void 0 === i && (i = !0), void 0 === a && (a = !0), Array.isArray(t) || (t = [
                        t
                    ]);
                    for(var h = 0; h < t.length; h++)r(t[h], e, o);
                    if (a) for(var l = 0; l < o.height; l++)for(var u = 0; u < o.width; u++){
                        var c = o.data[l][u];
                        c && -1 !== t.indexOf(c.index) && s(c, e);
                    }
                    i && n(0, 0, o.width, o.height, o);
                };
            },
            15216: (t, e, i)=>{
                var s = i(68234), n = i(60386), r = i(91181);
                t.exports = function(t, e, i, o, a, h) {
                    if (void 0 === i && (i = !0), void 0 === o && (o = !0), void 0 === h && (h = !0), !(t > e)) {
                        for(var l = t; l <= e; l++)r(l, i, a);
                        if (h) for(var u = 0; u < a.height; u++)for(var c = 0; c < a.width; c++){
                            var d = a.data[u][c];
                            d && d.index >= t && d.index <= e && s(d, i);
                        }
                        o && n(0, 0, a.width, a.height, a);
                    }
                };
            },
            33158: (t, e, i)=>{
                var s = i(68234), n = i(60386), r = i(91181);
                t.exports = function(t, e, i, o) {
                    void 0 === e && (e = !0), void 0 === i && (i = !0), Array.isArray(t) || (t = [
                        t
                    ]);
                    for(var a = 0; a < o.height; a++)for(var h = 0; h < o.width; h++){
                        var l = o.data[a][h];
                        l && -1 === t.indexOf(l.index) && (s(l, e), r(l.index, e, o));
                    }
                    i && n(0, 0, o.width, o.height, o);
                };
            },
            4180: (t, e, i)=>{
                var s = i(68234), n = i(60386), r = i(19256);
                t.exports = function(t, e, i, o) {
                    void 0 === e && (e = !0), void 0 === i && (i = !0);
                    for(var a = 0; a < o.height; a++)for(var h = 0; h < o.width; h++){
                        var l = o.data[a][h];
                        if (l) {
                            for(var u in t)if (r(l.properties, u)) {
                                var c = t[u];
                                Array.isArray(c) || (c = [
                                    c
                                ]);
                                for(var d = 0; d < c.length; d++)l.properties[u] === c[d] && s(l, e);
                            }
                        }
                    }
                    i && n(0, 0, o.width, o.height, o);
                };
            },
            18625: (t, e, i)=>{
                var s = i(68234), n = i(60386);
                t.exports = function(t, e, i) {
                    void 0 === t && (t = !0), void 0 === e && (e = !0);
                    for(var r = 0; r < i.height; r++)for(var o = 0; o < i.width; o++){
                        var a = i.data[r][o];
                        if (a) {
                            var h = a.getCollisionGroup();
                            h && h.objects && h.objects.length > 0 && s(a, t);
                        }
                    }
                    e && n(0, 0, i.width, i.height, i);
                };
            },
            91181: (t)=>{
                t.exports = function(t, e, i) {
                    var s = i.collideIndexes.indexOf(t);
                    e && -1 === s ? i.collideIndexes.push(t) : e || -1 === s || i.collideIndexes.splice(s, 1);
                };
            },
            68234: (t)=>{
                t.exports = function(t, e) {
                    e ? t.setCollision(!0, !0, !0, !0, !1) : t.resetCollision(!1);
                };
            },
            11628: (t)=>{
                t.exports = function(t, e, i, s) {
                    if ("number" == typeof t) s.callbacks[t] = null !== e ? {
                        callback: e,
                        callbackContext: i
                    } : void 0;
                    else for(var n = 0, r = t.length; n < r; n++)s.callbacks[t[n]] = null !== e ? {
                        callback: e,
                        callbackContext: i
                    } : void 0;
                };
            },
            72732: (t, e, i)=>{
                var s = i(50811);
                t.exports = function(t, e, i, n, r, o, a) {
                    for(var h = s(t, e, i, n, null, a), l = 0; l < h.length; l++)h[l].setCollisionCallback(r, o);
                };
            },
            34397: (t, e, i)=>{
                var s = i(50811), n = i(18592);
                t.exports = function(t, e, i, r, o) {
                    var a = s(t, e, i, r, null, o), h = a.map(function(t) {
                        return t.index;
                    });
                    n(h);
                    for(var l = 0; l < a.length; l++)a[l].index = h[l];
                };
            },
            53945: (t, e, i)=>{
                var s = i(82127), n = i(84314);
                t.exports = function(t, e) {
                    var i = t.tilemapLayer.tilemap, r = t.tilemapLayer, o = Math.floor(i.tileWidth * r.scaleX), a = Math.floor(i.tileHeight * r.scaleY);
                    return {
                        left: n(e.worldView.x - r.x, o, 0, !0) - r.cullPaddingX,
                        right: s(e.worldView.right - r.x, o, 0, !0) + r.cullPaddingX,
                        top: n(e.worldView.y - r.y, a / 2, 0, !0) - r.cullPaddingY,
                        bottom: s(e.worldView.bottom - r.y, a / 2, 0, !0) + r.cullPaddingY
                    };
                };
            },
            19242: (t, e, i)=>{
                var s = i(53945), n = i(6987);
                t.exports = function(t, e, i, r) {
                    void 0 === i && (i = []), void 0 === r && (r = 0), i.length = 0;
                    var o = t.tilemapLayer, a = s(t, e);
                    return o.skipCull && 1 === o.scrollFactorX && 1 === o.scrollFactorY && (a.left = 0, a.right = t.width, a.top = 0, a.bottom = t.height), n(t, a, r, i), i;
                };
            },
            33388: (t, e, i)=>{
                var s = i(93736);
                t.exports = function(t, e, i, n, r) {
                    i || (i = new s);
                    var o = r.baseTileWidth, a = r.baseTileHeight, h = r.tilemapLayer, l = 0, u = 0;
                    h && (n || (n = h.scene.cameras.main), l = h.x + n.scrollX * (1 - h.scrollFactorX), o *= h.scaleX, u = h.y + n.scrollY * (1 - h.scrollFactorY), a *= h.scaleY);
                    var c = l + t * o + e % 2 * (o / 2), d = u + e * (a / 2);
                    return i.set(c, d);
                };
            },
            84132: (t)=>{
                t.exports = function(t, e, i) {
                    var s = i.baseTileHeight, n = i.tilemapLayer, r = 0;
                    return n && (void 0 === e && (e = n.scene.cameras.main), r = n.y + e.scrollY * (1 - n.scrollFactorY), s *= n.scaleY), r + t * (s / 2) + s;
                };
            },
            90562: (t, e, i)=>{
                var s = i(93736);
                t.exports = function(t, e, i, n, r, o) {
                    n || (n = new s);
                    var a = o.baseTileWidth, h = o.baseTileHeight, l = o.tilemapLayer;
                    l && (r || (r = l.scene.cameras.main), e -= l.y + r.scrollY * (1 - l.scrollFactorY), h *= l.scaleY, t -= l.x + r.scrollX * (1 - l.scrollFactorX), a *= l.scaleX);
                    var u = i ? Math.floor(e / (h / 2)) : e / (h / 2), c = i ? Math.floor((t + u % 2 * .5 * a) / a) : (t + u % 2 * .5 * a) / a;
                    return n.set(c, u);
                };
            },
            3689: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n = s.baseTileHeight, r = s.tilemapLayer;
                    return r && (i || (i = r.scene.cameras.main), t -= r.y + i.scrollY * (1 - r.scrollFactorY), n *= r.scaleY), e ? Math.floor(t / (n / 2)) : t / (n / 2);
                };
            },
            55217: (t, e, i)=>{
                var s = i(50811);
                t.exports = function(t, e, i, n, r, o, a) {
                    for(var h = s(i, n, r, o, null, a), l = 0; l < h.length; l++)h[l] && (h[l].index === t ? h[l].index = e : h[l].index === e && (h[l].index = t));
                };
            },
            44150: (t)=>{
                t.exports = function(t, e, i) {
                    var s = i.baseTileWidth, n = i.tilemapLayer, r = 0;
                    return n && (e || (e = n.scene.cameras.main), r = n.x + e.scrollX * (1 - n.scrollFactorX), s *= n.scaleX), r + t * s;
                };
            },
            46836: (t, e, i)=>{
                var s = i(44150), n = i(42477), r = i(93736);
                t.exports = function(t, e, i, o, a) {
                    return i || (i = new r(0, 0)), i.x = s(t, o, a), i.y = n(e, o, a), i;
                };
            },
            42477: (t)=>{
                t.exports = function(t, e, i) {
                    var s = i.baseTileHeight, n = i.tilemapLayer, r = 0;
                    return n && (e || (e = n.scene.cameras.main), r = n.y + e.scrollY * (1 - n.scrollFactorY), s *= n.scaleY), r + t * s;
                };
            },
            39677: (t, e, i)=>{
                var s = i(50811);
                t.exports = function(t, e, i, n, r, o) {
                    if (r) {
                        var a, h = s(t, e, i, n, null, o), l = 0;
                        for(a = 0; a < r.length; a++)l += r[a].weight;
                        if (!(l <= 0)) for(a = 0; a < h.length; a++){
                            for(var u = Math.random() * l, c = 0, d = -1, f = 0; f < r.length; f++)if (u <= (c += r[f].weight)) {
                                var p = r[f].index;
                                d = Array.isArray(p) ? p[Math.floor(Math.random() * p.length)] : p;
                                break;
                            }
                            h[a].index = d;
                        }
                    }
                };
            },
            806: (t, e, i)=>{
                var s = i(45676), n = new (i(93736));
                t.exports = function(t, e, i, r) {
                    return s(t, 0, e, n, i, r), n.x;
                };
            },
            45676: (t, e, i)=>{
                var s = i(93736);
                t.exports = function(t, e, i, n, r, o) {
                    void 0 === i && (i = !0), n || (n = new s);
                    var a = o.baseTileWidth, h = o.baseTileHeight, l = o.tilemapLayer;
                    l && (r || (r = l.scene.cameras.main), t -= l.x + r.scrollX * (1 - l.scrollFactorX), e -= l.y + r.scrollY * (1 - l.scrollFactorY), a *= l.scaleX, h *= l.scaleY);
                    var u = t / a, c = e / h;
                    return i && (u = Math.floor(u), c = Math.floor(c)), n.set(u, c);
                };
            },
            70520: (t, e, i)=>{
                var s = i(45676), n = new (i(93736));
                t.exports = function(t, e, i, r) {
                    return s(0, t, e, n, i, r), n.y;
                };
            },
            5047: (t, e, i)=>{
                t.exports = {
                    CalculateFacesAt: i(92839),
                    CalculateFacesWithin: i(60386),
                    CheckIsoBounds: i(13125),
                    Copy: i(17347),
                    CreateFromTiles: i(93604),
                    CullBounds: i(71586),
                    CullTiles: i(381),
                    Fill: i(97734),
                    FilterTiles: i(63555),
                    FindByIndex: i(37982),
                    FindTile: i(48297),
                    ForEachTile: i(80916),
                    GetCullTilesFunction: i(31493),
                    GetTileAt: i(15494),
                    GetTileAtWorldXY: i(24640),
                    GetTileCorners: i(48495),
                    GetTileCornersFunction: i(7160),
                    GetTilesWithin: i(50811),
                    GetTilesWithinShape: i(31674),
                    GetTilesWithinWorldXY: i(44662),
                    GetTileToWorldXFunction: i(16884),
                    GetTileToWorldXYFunction: i(68182),
                    GetTileToWorldYFunction: i(3752),
                    GetWorldToTileXFunction: i(29296),
                    GetWorldToTileXYFunction: i(32688),
                    GetWorldToTileYFunction: i(74326),
                    HasTileAt: i(46598),
                    HasTileAtWorldXY: i(28654),
                    HexagonalCullBounds: i(6358),
                    HexagonalCullTiles: i(37524),
                    HexagonalGetTileCorners: i(63634),
                    HexagonalTileToWorldXY: i(21715),
                    HexagonalWorldToTileXY: i(11516),
                    IsInLayerBounds: i(62839),
                    IsometricCullTiles: i(20887),
                    IsometricTileToWorldXY: i(21808),
                    IsometricWorldToTileXY: i(18750),
                    PutTileAt: i(29003),
                    PutTileAtWorldXY: i(48565),
                    PutTilesAt: i(56547),
                    Randomize: i(91180),
                    RemoveTileAt: i(929),
                    RemoveTileAtWorldXY: i(17384),
                    RenderDebug: i(93763),
                    ReplaceByIndex: i(51202),
                    RunCull: i(6987),
                    SetCollision: i(51710),
                    SetCollisionBetween: i(15216),
                    SetCollisionByExclusion: i(33158),
                    SetCollisionByProperty: i(4180),
                    SetCollisionFromCollisionGroup: i(18625),
                    SetLayerCollisionIndex: i(91181),
                    SetTileCollision: i(68234),
                    SetTileIndexCallback: i(11628),
                    SetTileLocationCallback: i(72732),
                    Shuffle: i(34397),
                    StaggeredCullBounds: i(53945),
                    StaggeredCullTiles: i(19242),
                    StaggeredTileToWorldXY: i(33388),
                    StaggeredTileToWorldY: i(84132),
                    StaggeredWorldToTileXY: i(90562),
                    StaggeredWorldToTileY: i(3689),
                    SwapByIndex: i(55217),
                    TileToWorldX: i(44150),
                    TileToWorldXY: i(46836),
                    TileToWorldY: i(42477),
                    WeightedRandomize: i(39677),
                    WorldToTileX: i(806),
                    WorldToTileXY: i(45676),
                    WorldToTileY: i(70520)
                };
            },
            12920: (t)=>{
                t.exports = {
                    ORTHOGONAL: 0,
                    ISOMETRIC: 1,
                    STAGGERED: 2,
                    HEXAGONAL: 3
                };
            },
            84758: (t, e, i)=>{
                var s = {
                    ORIENTATION: i(12920)
                };
                t.exports = s;
            },
            52678: (t, e, i)=>{
                var s = i(98611), n = i(84758), r = {
                    Components: i(5047),
                    Parsers: i(34124),
                    Formats: i(93560),
                    ImageCollection: i(97042),
                    ParseToTilemap: i(15043),
                    Tile: i(29633),
                    Tilemap: i(89797),
                    TilemapCreator: i(4843),
                    TilemapFactory: i(37940),
                    Tileset: i(47975),
                    TilemapLayer: i(87177),
                    Orientation: i(12920),
                    LayerData: i(94990),
                    MapData: i(16586),
                    ObjectLayer: i(15256)
                };
                r = s(!1, r, n.ORIENTATION), t.exports = r;
            },
            94990: (t, e, i)=>{
                var s = i(56694), n = i(12920), r = i(72632), o = new s({
                    initialize: function(t) {
                        void 0 === t && (t = {}), this.name = r(t, "name", "layer"), this.x = r(t, "x", 0), this.y = r(t, "y", 0), this.width = r(t, "width", 0), this.height = r(t, "height", 0), this.tileWidth = r(t, "tileWidth", 0), this.tileHeight = r(t, "tileHeight", 0), this.baseTileWidth = r(t, "baseTileWidth", this.tileWidth), this.baseTileHeight = r(t, "baseTileHeight", this.tileHeight), this.orientation = r(t, "orientation", n.ORTHOGONAL), this.widthInPixels = r(t, "widthInPixels", this.width * this.baseTileWidth), this.heightInPixels = r(t, "heightInPixels", this.height * this.baseTileHeight), this.alpha = r(t, "alpha", 1), this.visible = r(t, "visible", !0), this.properties = r(t, "properties", []), this.indexes = r(t, "indexes", []), this.collideIndexes = r(t, "collideIndexes", []), this.callbacks = r(t, "callbacks", []), this.bodies = r(t, "bodies", []), this.data = r(t, "data", []), this.tilemapLayer = r(t, "tilemapLayer", null), this.hexSideLength = r(t, "hexSideLength", 0), this.staggerAxis = r(t, "staggerAxis", "y"), this.staggerIndex = r(t, "staggerIndex", "odd");
                    }
                });
                t.exports = o;
            },
            16586: (t, e, i)=>{
                var s = i(56694), n = i(12920), r = i(72632), o = new s({
                    initialize: function(t) {
                        void 0 === t && (t = {}), this.name = r(t, "name", "map"), this.width = r(t, "width", 0), this.height = r(t, "height", 0), this.infinite = r(t, "infinite", !1), this.tileWidth = r(t, "tileWidth", 0), this.tileHeight = r(t, "tileHeight", 0), this.widthInPixels = r(t, "widthInPixels", this.width * this.tileWidth), this.heightInPixels = r(t, "heightInPixels", this.height * this.tileHeight), this.format = r(t, "format", null), this.orientation = r(t, "orientation", n.ORTHOGONAL), this.renderOrder = r(t, "renderOrder", "right-down"), this.version = r(t, "version", "1"), this.properties = r(t, "properties", {}), this.layers = r(t, "layers", []), this.images = r(t, "images", []), this.objects = r(t, "objects", []), Array.isArray(this.objects) || (this.objects = []), this.collision = r(t, "collision", {}), this.tilesets = r(t, "tilesets", []), this.imageCollections = r(t, "imageCollections", []), this.tiles = r(t, "tiles", []), this.hexSideLength = r(t, "hexSideLength", 0), this.staggerAxis = r(t, "staggerAxis", "y"), this.staggerIndex = r(t, "staggerIndex", "odd");
                    }
                });
                t.exports = o;
            },
            15256: (t, e, i)=>{
                var s = i(56694), n = i(72632), r = new s({
                    initialize: function(t) {
                        void 0 === t && (t = {}), this.name = n(t, "name", "object layer"), this.opacity = n(t, "opacity", 1), this.properties = n(t, "properties", {}), this.propertyTypes = n(t, "propertytypes", {}), this.type = n(t, "type", "objectgroup"), this.visible = n(t, "visible", !0), this.objects = n(t, "objects", []), Array.isArray(this.objects) || (this.objects = []);
                    }
                });
                t.exports = r;
            },
            21394: (t, e, i)=>{
                var s = i(12920);
                t.exports = function(t) {
                    return "isometric" === (t = t.toLowerCase()) ? s.ISOMETRIC : "staggered" === t ? s.STAGGERED : "hexagonal" === t ? s.HEXAGONAL : s.ORTHOGONAL;
                };
            },
            90715: (t, e, i)=>{
                var s = i(93560), n = i(84346), r = i(96097), o = i(2378), a = i(44909);
                t.exports = function(t, e, i, h, l, u) {
                    var c;
                    switch(e){
                        case s.ARRAY_2D:
                            c = n(t, i, h, l, u);
                            break;
                        case s.CSV:
                            c = r(t, i, h, l, u);
                            break;
                        case s.TILED_JSON:
                            c = o(t, i, u);
                            break;
                        case s.WELTMEISTER:
                            c = a(t, i, u);
                            break;
                        default:
                            console.warn("Unrecognized tilemap data format: " + e), c = null;
                    }
                    return c;
                };
            },
            84346: (t, e, i)=>{
                var s = i(93560), n = i(94990), r = i(16586), o = i(29633);
                t.exports = function(t, e, i, a, h) {
                    for(var l = new n({
                        tileWidth: i,
                        tileHeight: a
                    }), u = new r({
                        name: t,
                        tileWidth: i,
                        tileHeight: a,
                        format: s.ARRAY_2D,
                        layers: [
                            l
                        ]
                    }), c = [], d = e.length, f = 0, p = 0; p < e.length; p++){
                        c[p] = [];
                        for(var v = e[p], g = 0; g < v.length; g++){
                            var m = parseInt(v[g], 10);
                            isNaN(m) || -1 === m ? c[p][g] = h ? null : new o(l, -1, g, p, i, a) : c[p][g] = new o(l, m, g, p, i, a);
                        }
                        0 === f && (f = v.length);
                    }
                    return u.width = l.width = f, u.height = l.height = d, u.widthInPixels = l.widthInPixels = f * i, u.heightInPixels = l.heightInPixels = d * a, l.data = c, u;
                };
            },
            96097: (t, e, i)=>{
                var s = i(93560), n = i(84346);
                t.exports = function(t, e, i, r, o) {
                    var a = e.trim().split("\n").map(function(t) {
                        return t.split(",");
                    }), h = n(t, a, i, r, o);
                    return h.format = s.CSV, h;
                };
            },
            30951: (t, e, i)=>{
                var s = i(94990), n = i(29633);
                t.exports = function(t, e) {
                    for(var i = [], r = 0; r < t.layer.length; r++){
                        for(var o = t.layer[r], a = new s({
                            name: o.name,
                            width: o.width,
                            height: o.height,
                            tileWidth: o.tilesize,
                            tileHeight: o.tilesize,
                            visible: 1 === o.visible
                        }), h = [], l = [], u = 0; u < o.data.length; u++){
                            for(var c = 0; c < o.data[u].length; c++){
                                var d, f = o.data[u][c] - 1;
                                d = f > -1 ? new n(a, f, c, u, o.tilesize, o.tilesize) : e ? null : new n(a, -1, c, u, o.tilesize, o.tilesize), h.push(d);
                            }
                            l.push(h), h = [];
                        }
                        a.data = l, i.push(a);
                    }
                    return i;
                };
            },
            47488: (t, e, i)=>{
                var s = i(47975);
                t.exports = function(t) {
                    for(var e = [], i = [], n = 0; n < t.layer.length; n++){
                        var r = t.layer[n], o = r.tilesetName;
                        "" !== o && -1 === i.indexOf(o) && (i.push(o), e.push(new s(o, 0, r.tilesize, r.tilesize, 0, 0)));
                    }
                    return e;
                };
            },
            44909: (t, e, i)=>{
                var s = i(93560), n = i(16586), r = i(30951), o = i(47488);
                t.exports = function(t, e, i) {
                    if (0 === e.layer.length) return console.warn("No layers found in the Weltmeister map: " + t), null;
                    for(var a = 0, h = 0, l = 0; l < e.layer.length; l++)e.layer[l].width > a && (a = e.layer[l].width), e.layer[l].height > h && (h = e.layer[l].height);
                    var u = new n({
                        width: a,
                        height: h,
                        name: t,
                        tileWidth: e.layer[0].tilesize,
                        tileHeight: e.layer[0].tilesize,
                        format: s.WELTMEISTER
                    });
                    return u.layers = r(e, i), u.tilesets = o(e), u;
                };
            },
            24507: (t, e, i)=>{
                t.exports = {
                    ParseTileLayers: i(30951),
                    ParseTilesets: i(47488),
                    ParseWeltmeister: i(44909)
                };
            },
            34124: (t, e, i)=>{
                t.exports = {
                    FromOrientationString: i(21394),
                    Parse: i(90715),
                    Parse2DArray: i(84346),
                    ParseCSV: i(96097),
                    Impact: i(24507),
                    Tiled: i(50044)
                };
            },
            48646: (t, e, i)=>{
                var s = i(98611);
                t.exports = function(t) {
                    for(var e, i, n, r, o, a = 0; a < t.layers.length; a++){
                        e = t.layers[a], r = null;
                        for(var h = 0; h < e.data.length; h++){
                            o = e.data[h];
                            for(var l = 0; l < o.length; l++)null === (i = o[l]) || i.index < 0 || (n = t.tiles[i.index][2], r = t.tilesets[n], i.width = r.tileWidth, i.height = r.tileHeight, r.tileProperties && r.tileProperties[i.index - r.firstgid] && (i.properties = s(i.properties, r.tileProperties[i.index - r.firstgid])));
                        }
                    }
                };
            },
            43908: (t)=>{
                t.exports = function(t) {
                    for(var e = window.atob(t), i = e.length, s = new Array(i / 4), n = 0; n < i; n += 4)s[n / 4] = (e.charCodeAt(n) | e.charCodeAt(n + 1) << 8 | e.charCodeAt(n + 2) << 16 | e.charCodeAt(n + 3) << 24) >>> 0;
                    return s;
                };
            },
            14556: (t, e, i)=>{
                var s = i(47975);
                t.exports = function(t) {
                    var e, i, n = [];
                    for(e = 0; e < t.imageCollections.length; e++)for(var r = t.imageCollections[e], o = r.images, a = 0; a < o.length; a++){
                        var h = o[a];
                        (i = new s(h.image, h.gid, r.imageWidth, r.imageHeight, 0, 0)).updateTileData(r.imageWidth, r.imageHeight), t.tilesets.push(i);
                    }
                    for(e = 0; e < t.tilesets.length; e++)for(var l = (i = t.tilesets[e]).tileMargin, u = i.tileMargin, c = 0, d = 0, f = 0, p = i.firstgid; p < i.firstgid + i.total && (n[p] = [
                        l,
                        u,
                        e
                    ], l += i.tileWidth + i.tileSpacing, ++c !== i.total) && (++d !== i.columns || (l = i.tileMargin, u += i.tileHeight + i.tileSpacing, d = 0, ++f !== i.rows)); p++);
                    return n;
                };
            },
            92044: (t, e, i)=>{
                var s = i(72632);
                t.exports = function(t, e, i) {
                    if (!e) return {
                        i: 0,
                        layers: t.layers,
                        name: "",
                        opacity: 1,
                        visible: !0,
                        x: 0,
                        y: 0
                    };
                    var n = e.x + s(e, "startx", 0) * t.tilewidth + s(e, "offsetx", 0), r = e.y + s(e, "starty", 0) * t.tileheight + s(e, "offsety", 0);
                    return {
                        i: 0,
                        layers: e.layers,
                        name: i.name + e.name + "/",
                        opacity: i.opacity * e.opacity,
                        visible: i.visible && e.visible,
                        x: i.x + n,
                        y: i.y + r
                    };
                };
            },
            8847: (t)=>{
                var e = 2147483648, i = 1073741824, s = 536870912;
                t.exports = function(t) {
                    var n = Boolean(t & e), r = Boolean(t & i), o = Boolean(t & s);
                    t &= 536870911;
                    var a = 0, h = !1;
                    return n && r && o ? (a = Math.PI / 2, h = !0) : n && r && !o ? (a = Math.PI, h = !1) : n && !r && o ? (a = Math.PI / 2, h = !1) : !n || r || o ? !n && r && o ? (a = 3 * Math.PI / 2, h = !1) : n || !r || o ? n || r || !o ? n || r || o || (a = 0, h = !1) : (a = 3 * Math.PI / 2, h = !0) : (a = Math.PI, h = !0) : (a = 0, h = !0), {
                        gid: t,
                        flippedHorizontal: n,
                        flippedVertical: r,
                        flippedAntiDiagonal: o,
                        rotation: a,
                        flipped: h
                    };
                };
            },
            78339: (t, e, i)=>{
                var s = i(72632), n = i(92044);
                t.exports = function(t) {
                    for(var e = [], i = [], r = n(t); r.i < r.layers.length || i.length > 0;)if (r.i >= r.layers.length) {
                        if (i.length < 1) {
                            console.warn("TilemapParser.parseTiledJSON - Invalid layer group hierarchy");
                            break;
                        }
                        r = i.pop();
                    } else {
                        var o = r.layers[r.i];
                        if (r.i++, "imagelayer" === o.type) {
                            var a = s(o, "offsetx", 0) + s(o, "startx", 0), h = s(o, "offsety", 0) + s(o, "starty", 0);
                            e.push({
                                name: r.name + o.name,
                                image: o.image,
                                x: r.x + a + o.x,
                                y: r.y + h + o.y,
                                alpha: r.opacity * o.opacity,
                                visible: r.visible && o.visible,
                                properties: s(o, "properties", {})
                            });
                        } else if ("group" === o.type) {
                            var l = n(t, o, r);
                            i.push(r), r = l;
                        }
                    }
                    return e;
                };
            },
            2378: (t, e, i)=>{
                var s = i(48646), n = i(14556), r = i(12920), o = i(28699), a = i(93560), h = i(21394), l = i(16586), u = i(78339), c = i(61136), d = i(95925), f = i(93392);
                t.exports = function(t, e, i) {
                    var p = o(e), v = new l({
                        width: p.width,
                        height: p.height,
                        name: t,
                        tileWidth: p.tilewidth,
                        tileHeight: p.tileheight,
                        orientation: h(p.orientation),
                        format: a.TILED_JSON,
                        version: p.version,
                        properties: p.properties,
                        renderOrder: p.renderorder,
                        infinite: p.infinite
                    });
                    v.orientation === r.HEXAGONAL && (v.hexSideLength = p.hexsidelength, v.staggerAxis = p.staggeraxis, v.staggerIndex = p.staggerindex), v.layers = d(p, i), v.images = u(p);
                    var g = f(p);
                    return v.tilesets = g.tilesets, v.imageCollections = g.imageCollections, v.objects = c(p), v.tiles = n(v), s(v), v;
                };
            },
            4281: (t, e, i)=>{
                var s = i(28820), n = i(8847), r = function(t) {
                    return {
                        x: t.x,
                        y: t.y
                    };
                }, o = [
                    "id",
                    "name",
                    "type",
                    "rotation",
                    "properties",
                    "visible",
                    "x",
                    "y",
                    "width",
                    "height"
                ];
                t.exports = function(t, e, i) {
                    void 0 === e && (e = 0), void 0 === i && (i = 0);
                    var a = s(t, o);
                    if (a.x += e, a.y += i, t.gid) {
                        var h = n(t.gid);
                        a.gid = h.gid, a.flippedHorizontal = h.flippedHorizontal, a.flippedVertical = h.flippedVertical, a.flippedAntiDiagonal = h.flippedAntiDiagonal;
                    } else t.polyline ? a.polyline = t.polyline.map(r) : t.polygon ? a.polygon = t.polygon.map(r) : t.ellipse ? a.ellipse = t.ellipse : t.text ? a.text = t.text : t.point ? a.point = !0 : a.rectangle = !0;
                    return a;
                };
            },
            61136: (t, e, i)=>{
                var s = i(72632), n = i(4281), r = i(15256), o = i(92044);
                t.exports = function(t) {
                    for(var e = [], i = [], a = o(t); a.i < a.layers.length || i.length > 0;)if (a.i >= a.layers.length) {
                        if (i.length < 1) {
                            console.warn("TilemapParser.parseTiledJSON - Invalid layer group hierarchy");
                            break;
                        }
                        a = i.pop();
                    } else {
                        var h = a.layers[a.i];
                        if (a.i++, h.opacity *= a.opacity, h.visible = a.visible && h.visible, "objectgroup" === h.type) {
                            h.name = a.name + h.name;
                            for(var l = a.x + s(h, "startx", 0) + s(h, "offsetx", 0), u = a.y + s(h, "starty", 0) + s(h, "offsety", 0), c = [], d = 0; d < h.objects.length; d++){
                                var f = n(h.objects[d], l, u);
                                c.push(f);
                            }
                            var p = new r(h);
                            p.objects = c, e.push(p);
                        } else if ("group" === h.type) {
                            var v = o(t, h, a);
                            i.push(a), a = v;
                        }
                    }
                    return e;
                };
            },
            95925: (t, e, i)=>{
                var s = i(43908), n = i(12920), r = i(92044), o = i(21394), a = i(72632), h = i(94990), l = i(8847), u = i(29633);
                t.exports = function(t, e) {
                    for(var i = a(t, "infinite", !1), c = [], d = [], f = r(t); f.i < f.layers.length || d.length > 0;)if (f.i >= f.layers.length) {
                        if (d.length < 1) {
                            console.warn("TilemapParser.parseTiledJSON - Invalid layer group hierarchy");
                            break;
                        }
                        f = d.pop();
                    } else {
                        var p = f.layers[f.i];
                        if (f.i++, "tilelayer" === p.type) {
                            if (p.compression) console.warn("TilemapParser.parseTiledJSON - Layer compression is unsupported, skipping layer '" + p.name + "'");
                            else {
                                if (p.encoding && "base64" === p.encoding) {
                                    if (p.chunks) for(var v = 0; v < p.chunks.length; v++)p.chunks[v].data = s(p.chunks[v].data);
                                    p.data && (p.data = s(p.data)), delete p.encoding;
                                }
                                var g, m, y, x, T = [], w = 0;
                                if (i) {
                                    var b = a(p, "startx", 0) + p.x, S = a(p, "starty", 0) + p.y;
                                    (g = new h({
                                        name: f.name + p.name,
                                        x: f.x + a(p, "offsetx", 0) + b * t.tilewidth,
                                        y: f.y + a(p, "offsety", 0) + S * t.tileheight,
                                        width: p.width,
                                        height: p.height,
                                        tileWidth: t.tilewidth,
                                        tileHeight: t.tileheight,
                                        alpha: f.opacity * p.opacity,
                                        visible: f.visible && p.visible,
                                        properties: a(p, "properties", []),
                                        orientation: o(t.orientation)
                                    })).orientation === n.HEXAGONAL && (g.hexSideLength = t.hexsidelength, g.staggerAxis = t.staggeraxis, g.staggerIndex = t.staggerindex);
                                    for(var E = 0; E < p.height; E++){
                                        T[E] = [
                                            null
                                        ];
                                        for(var A = 0; A < p.width; A++)T[E][A] = null;
                                    }
                                    for(E = 0, k = p.chunks.length; E < k; E++)for(var C = p.chunks[E], _ = C.x - b, M = C.y - S, P = 0, R = 0, O = C.data.length; R < O; R++){
                                        var L = w + _, F = P + M;
                                        (m = l(C.data[R])).gid > 0 ? ((y = new u(g, m.gid, L, F, t.tilewidth, t.tileheight)).rotation = m.rotation, y.flipX = m.flipped, T[F][L] = y) : (x = e ? null : new u(g, -1, L, F, t.tilewidth, t.tileheight), T[F][L] = x), ++w === C.width && (P++, w = 0);
                                    }
                                } else {
                                    (g = new h({
                                        name: f.name + p.name,
                                        x: f.x + a(p, "offsetx", 0) + p.x,
                                        y: f.y + a(p, "offsety", 0) + p.y,
                                        width: p.width,
                                        height: p.height,
                                        tileWidth: t.tilewidth,
                                        tileHeight: t.tileheight,
                                        alpha: f.opacity * p.opacity,
                                        visible: f.visible && p.visible,
                                        properties: a(p, "properties", []),
                                        orientation: o(t.orientation)
                                    })).orientation === n.HEXAGONAL && (g.hexSideLength = t.hexsidelength, g.staggerAxis = t.staggeraxis, g.staggerIndex = t.staggerindex);
                                    for(var D = [], I = 0, k = p.data.length; I < k; I++)(m = l(p.data[I])).gid > 0 ? ((y = new u(g, m.gid, w, T.length, t.tilewidth, t.tileheight)).rotation = m.rotation, y.flipX = m.flipped, D.push(y)) : (x = e ? null : new u(g, -1, w, T.length, t.tilewidth, t.tileheight), D.push(x)), ++w === p.width && (T.push(D), w = 0, D = []);
                                }
                                g.data = T, c.push(g);
                            }
                        } else if ("group" === p.type) {
                            var B = r(t, p, f);
                            d.push(f), f = B;
                        }
                    }
                    return c;
                };
            },
            93392: (t, e, i)=>{
                var s = i(47975), n = i(97042), r = i(4281), o = i(39642);
                t.exports = function(t) {
                    for(var e, i = [], a = [], h = null, l = 0; l < t.tilesets.length; l++){
                        var u = t.tilesets[l];
                        if (u.source) console.warn("External tilesets unsupported. Use Embed Tileset and re-export");
                        else if (u.image) {
                            var c = new s(u.name, u.firstgid, u.tilewidth, u.tileheight, u.margin, u.spacing, void 0, void 0, u.tileoffset);
                            if (t.version > 1) {
                                var d = void 0, f = void 0;
                                if (Array.isArray(u.tiles)) {
                                    d = d || {}, f = f || {};
                                    for(var p = 0; p < u.tiles.length; p++){
                                        var v = u.tiles[p];
                                        if (v.properties) {
                                            var g = {};
                                            v.properties.forEach(function(t) {
                                                g[t.name] = t.value;
                                            }), f[v.id] = g;
                                        }
                                        if (v.objectgroup && ((d[v.id] || (d[v.id] = {})).objectgroup = v.objectgroup, v.objectgroup.objects)) {
                                            var m = v.objectgroup.objects.map(function(t) {
                                                return r(t);
                                            });
                                            d[v.id].objectgroup.objects = m;
                                        }
                                        v.animation && ((d[v.id] || (d[v.id] = {})).animation = v.animation), v.type && ((d[v.id] || (d[v.id] = {})).type = v.type);
                                    }
                                }
                                Array.isArray(u.wangsets) && (d = d || {}, f = f || {}, o(u.wangsets, d)), d && (c.tileData = d, c.tileProperties = f);
                            } else if (u.tileproperties && (c.tileProperties = u.tileproperties), u.tiles) for(e in c.tileData = u.tiles, c.tileData){
                                var y = c.tileData[e].objectgroup;
                                if (y && y.objects) {
                                    var x = y.objects.map(function(t) {
                                        return r(t);
                                    });
                                    c.tileData[e].objectgroup.objects = x;
                                }
                            }
                            c.updateTileData(u.imagewidth, u.imageheight), i.push(c);
                        } else {
                            var T = new n(u.name, u.firstgid, u.tilewidth, u.tileheight, u.margin, u.spacing, u.properties), w = 0;
                            for(p = 0; p < u.tiles.length; p++){
                                var b = (v = u.tiles[p]).image, S = parseInt(v.id, 10), E = u.firstgid + S;
                                T.addImage(E, b), w = Math.max(S, w);
                            }
                            T.maxId = w, a.push(T);
                        }
                        h && (h.lastgid = u.firstgid - 1), h = u;
                    }
                    return {
                        tilesets: i,
                        imageCollections: a
                    };
                };
            },
            39642: (t)=>{
                t.exports = function(t, e) {
                    for(var i = 0; i < t.length; i++){
                        var s = t[i], n = i;
                        if (s.name && "" !== s.name && (n = s.name), Array.isArray(s.wangtiles) && s.wangtiles.length > 0) {
                            var r, o, a, h = {}, l = {};
                            if (Array.isArray(s.edgecolors)) for(r = 0; r < s.edgecolors.length; r++)a = 1 + r, "" !== (o = s.edgecolors[r]).name && (h[a] = o.name);
                            if (Array.isArray(s.cornercolors)) for(r = 0; r < s.cornercolors.length; r++)a = 1 + r, "" !== (o = s.cornercolors[r]).name && (l[a] = o.name);
                            if (Array.isArray(s.colors)) for(r = 0; r < s.colors.length; r++)a = 1 + r, "" !== (o = s.colors[r]).name && (h[a] = l[a] = o.name);
                            for(var u = [
                                h,
                                l,
                                h,
                                l,
                                h,
                                l,
                                h,
                                l
                            ], c = 0; c < s.wangtiles.length; c++){
                                var d = s.wangtiles[c], f = e[d.tileid] || (e[d.tileid] = {});
                                f = f.wangid || (f.wangid = {});
                                for(var p = [], v = 0; v < Math.min(u.length, d.wangid.length); v++)if (0 !== (o = d.wangid[v])) {
                                    var g = u[v][o];
                                    void 0 === g ? p.push(o) : p.push(g);
                                } else p.push(void 0);
                                f[n] = p;
                            }
                        }
                    }
                };
            },
            50044: (t, e, i)=>{
                t.exports = {
                    AssignTileProperties: i(48646),
                    Base64Decode: i(43908),
                    BuildTilesetIndex: i(14556),
                    CreateGroupLayer: i(92044),
                    ParseGID: i(8847),
                    ParseImageLayers: i(78339),
                    ParseJSONTiled: i(2378),
                    ParseObject: i(4281),
                    ParseObjectLayers: i(61136),
                    ParseTileLayers: i(95925),
                    ParseTilesets: i(93392)
                };
            },
            73779: (t, e, i)=>{
                var s = i(56694), n = i(91963), r = i(7599), o = i(57911), a = i(66458), h = new s({
                    initialize: function(t) {
                        this.scene = t, this.systems = t.sys, this.now = 0, this.startTime = 0, this.timeScale = 1, this.paused = !1, this._active = [], this._pendingInsertion = [], this._pendingRemoval = [], t.sys.events.once(r.BOOT, this.boot, this), t.sys.events.on(r.START, this.start, this);
                    },
                    boot: function() {
                        this.now = this.systems.game.loop.time, this.systems.events.once(r.DESTROY, this.destroy, this);
                    },
                    start: function() {
                        this.startTime = this.systems.game.loop.time;
                        var t = this.systems.events;
                        t.on(r.PRE_UPDATE, this.preUpdate, this), t.on(r.UPDATE, this.update, this), t.once(r.SHUTDOWN, this.shutdown, this);
                    },
                    addEvent: function(t) {
                        var e;
                        return t instanceof o ? (e = t, this.removeEvent(e), e.elapsed = e.startAt, e.hasDispatched = !1, e.repeatCount = -1 === e.repeat || e.loop ? 999999999999 : e.repeat) : e = new o(t), this._pendingInsertion.push(e), e;
                    },
                    delayedCall: function(t, e, i, s) {
                        return this.addEvent({
                            delay: t,
                            callback: e,
                            args: i,
                            callbackScope: s
                        });
                    },
                    clearPendingEvents: function() {
                        return this._pendingInsertion = [], this;
                    },
                    removeEvent: function(t) {
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var e = 0; e < t.length; e++){
                            var i = t[e];
                            a(this._pendingRemoval, i), a(this._pendingInsertion, i), a(this._active, i);
                        }
                        return this;
                    },
                    removeAllEvents: function() {
                        return this._pendingRemoval = this._pendingRemoval.concat(this._active), this;
                    },
                    preUpdate: function() {
                        var t = this._pendingRemoval.length, e = this._pendingInsertion.length;
                        if (0 !== t || 0 !== e) {
                            var i, s;
                            for(i = 0; i < t; i++){
                                s = this._pendingRemoval[i];
                                var n = this._active.indexOf(s);
                                n > -1 && this._active.splice(n, 1), s.destroy();
                            }
                            for(i = 0; i < e; i++)s = this._pendingInsertion[i], this._active.push(s);
                            this._pendingRemoval.length = 0, this._pendingInsertion.length = 0;
                        }
                    },
                    update: function(t, e) {
                        if (this.now = t, !this.paused) {
                            e *= this.timeScale;
                            for(var i = 0; i < this._active.length; i++){
                                var s = this._active[i];
                                if (!s.paused && (s.elapsed += e * s.timeScale, s.elapsed >= s.delay)) {
                                    var n = s.elapsed - s.delay;
                                    if (s.elapsed = s.delay, !s.hasDispatched && s.callback && (s.hasDispatched = !0, s.callback.apply(s.callbackScope, s.args)), s.repeatCount > 0) {
                                        if (s.repeatCount--, n >= s.delay) for(; n >= s.delay && s.repeatCount > 0;)s.callback && s.callback.apply(s.callbackScope, s.args), n -= s.delay, s.repeatCount--;
                                        s.elapsed = n, s.hasDispatched = !1;
                                    } else s.hasDispatched && this._pendingRemoval.push(s);
                                }
                            }
                        }
                    },
                    shutdown: function() {
                        var t;
                        for(t = 0; t < this._pendingInsertion.length; t++)this._pendingInsertion[t].destroy();
                        for(t = 0; t < this._active.length; t++)this._active[t].destroy();
                        for(t = 0; t < this._pendingRemoval.length; t++)this._pendingRemoval[t].destroy();
                        this._active.length = 0, this._pendingRemoval.length = 0, this._pendingInsertion.length = 0;
                        var e = this.systems.events;
                        e.off(r.PRE_UPDATE, this.preUpdate, this), e.off(r.UPDATE, this.update, this), e.off(r.SHUTDOWN, this.shutdown, this);
                    },
                    destroy: function() {
                        this.shutdown(), this.scene.sys.events.off(r.START, this.start, this), this.scene = null, this.systems = null;
                    }
                });
                n.register("Clock", h, "time"), t.exports = h;
            },
            20517: (t, e, i)=>{
                var s = i(56694), n = i(6659), r = i(61286), o = i(72632), a = i(7599), h = new s({
                    Extends: n,
                    initialize: function(t, e) {
                        n.call(this), this.scene = t, this.systems = t.sys, this.elapsed = 0, this.paused = !0, this.complete = !1, this.totalComplete = 0, this.events = [];
                        var i = this.systems.events;
                        i.on(a.PRE_UPDATE, this.preUpdate, this), i.on(a.UPDATE, this.update, this), i.once(a.SHUTDOWN, this.destroy, this), e && this.add(e);
                    },
                    preUpdate: function(t, e) {
                        this.paused || (this.elapsed += e);
                    },
                    update: function() {
                        if (!this.paused) {
                            var t, e, i = this.events, s = !1, n = this.systems;
                            for(t = 0; t < i.length; t++){
                                var r = i[t];
                                if (!r.complete && r.time <= this.elapsed) {
                                    if (r.complete = !0, this.totalComplete++, r.once && (s = !0), r.set && r.target) for(var o in r.set)r.target[o] = r.set[o];
                                    r.tween && n.tweens.add(r.tween), r.sound && ("string" == typeof r.sound ? n.sound.play(r.sound) : n.sound.play(r.sound.key, r.sound.config)), e = r.target ? r.target : this, r.event && this.emit(r.event, e), r.run && r.run.call(e), r.stop && this.stop();
                                }
                            }
                            if (s) for(t = 0; t < i.length; t++)i[t].complete && i[t].once && (i.splice(t, 1), t--);
                            this.totalComplete >= i.length && (this.complete = !0);
                        }
                    },
                    play: function(t) {
                        return void 0 === t && (t = !0), this.paused = !1, this.complete = !1, this.totalComplete = 0, t && this.reset(), this;
                    },
                    pause: function() {
                        return this.paused = !0, this;
                    },
                    resume: function() {
                        return this.paused = !1, this;
                    },
                    stop: function() {
                        return this.paused = !0, this.complete = !0, this;
                    },
                    reset: function() {
                        this.elapsed = 0;
                        for(var t = 0; t < this.events.length; t++)this.events[t].complete = !1;
                        return this.play(!1);
                    },
                    add: function(t) {
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        var e = this.events, i = 0;
                        e.length > 0 && (i = e[e.length - 1].time);
                        for(var s = 0; s < t.length; s++){
                            var n = t[s], r = o(n, "at", 0), a = o(n, "in", null);
                            null !== a && (r = this.elapsed + a);
                            var h = o(n, "from", null);
                            null !== h && (r = i + h), e.push({
                                complete: !1,
                                time: r,
                                run: o(n, "run", null),
                                event: o(n, "event", null),
                                target: o(n, "target", null),
                                set: o(n, "set", null),
                                tween: o(n, "tween", null),
                                sound: o(n, "sound", null),
                                once: o(n, "once", !1),
                                stop: o(n, "stop", !1)
                            }), i = r;
                        }
                        return this.complete = !1, this;
                    },
                    clear: function() {
                        return this.events = [], this.elapsed = 0, this.paused = !0, this;
                    },
                    isPlaying: function() {
                        return !this.paused && !this.complete;
                    },
                    getProgress: function() {
                        return Math.min(this.totalComplete, this.events.length) / this.events.length;
                    },
                    destroy: function() {
                        var t = this.systems.events;
                        t.off(a.PRE_UPDATE, this.preUpdate, this), t.off(a.UPDATE, this.update, this), t.off(a.SHUTDOWN, this.destroy, this), this.scene = null, this.systems = null, this.events = [];
                    }
                });
                r.register("timeline", function(t) {
                    return new h(this.scene, t);
                }), t.exports = h;
            },
            57911: (t, e, i)=>{
                var s = i(56694), n = i(72632), r = new s({
                    initialize: function(t) {
                        this.delay = 0, this.repeat = 0, this.repeatCount = 0, this.loop = !1, this.callback, this.callbackScope, this.args, this.timeScale = 1, this.startAt = 0, this.elapsed = 0, this.paused = !1, this.hasDispatched = !1, this.reset(t);
                    },
                    reset: function(t) {
                        if (this.delay = n(t, "delay", 0), this.repeat = n(t, "repeat", 0), this.loop = n(t, "loop", !1), this.callback = n(t, "callback", void 0), this.callbackScope = n(t, "callbackScope", this), this.args = n(t, "args", []), this.timeScale = n(t, "timeScale", 1), this.startAt = n(t, "startAt", 0), this.paused = n(t, "paused", !1), this.elapsed = this.startAt, this.hasDispatched = !1, this.repeatCount = -1 === this.repeat || this.loop ? 999999999999 : this.repeat, 0 === this.delay && (this.repeat > 0 || this.loop)) throw new Error("TimerEvent infinite loop created via zero delay");
                        return this;
                    },
                    getProgress: function() {
                        return this.elapsed / this.delay;
                    },
                    getOverallProgress: function() {
                        if (this.repeat > 0) {
                            var t = this.delay + this.delay * this.repeat;
                            return (this.elapsed + this.delay * (this.repeat - this.repeatCount)) / t;
                        }
                        return this.getProgress();
                    },
                    getRepeatCount: function() {
                        return this.repeatCount;
                    },
                    getElapsed: function() {
                        return this.elapsed;
                    },
                    getElapsedSeconds: function() {
                        return .001 * this.elapsed;
                    },
                    getRemaining: function() {
                        return this.delay - this.elapsed;
                    },
                    getRemainingSeconds: function() {
                        return .001 * this.getRemaining();
                    },
                    getOverallRemaining: function() {
                        return this.delay * (1 + this.repeatCount) - this.elapsed;
                    },
                    getOverallRemainingSeconds: function() {
                        return .001 * this.getOverallRemaining();
                    },
                    remove: function(t) {
                        void 0 === t && (t = !1), this.elapsed = this.delay, this.hasDispatched = !t, this.repeatCount = 0;
                    },
                    destroy: function() {
                        this.callback = void 0, this.callbackScope = void 0, this.args = [];
                    }
                });
                t.exports = r;
            },
            97121: (t, e, i)=>{
                t.exports = {
                    Clock: i(73779),
                    Timeline: i(20517),
                    TimerEvent: i(57911)
                };
            },
            64532: (t, e, i)=>{
                var s = i(66458), n = i(56694), r = i(5454), o = i(68710), a = i(91963), h = i(7599), l = i(91944), u = i(39366), c = i(68061), d = i(45641), f = i(56034), p = new n({
                    initialize: function(t) {
                        this.scene = t, this.events = t.sys.events, this.timeScale = 1, this.paused = !1, this.processing = !1, this.tweens = [], this.time = 0, this.startTime = 0, this.nextTime = 0, this.prevTime = 0, this.maxLag = 500, this.lagSkip = 33, this.gap = 1e3 / 240, this.events.once(h.BOOT, this.boot, this), this.events.on(h.START, this.start, this);
                    },
                    boot: function() {
                        this.events.once(h.DESTROY, this.destroy, this);
                    },
                    start: function() {
                        this.timeScale = 1, this.paused = !1, this.startTime = Date.now(), this.prevTime = this.startTime, this.nextTime = this.gap, this.events.on(h.UPDATE, this.update, this), this.events.once(h.SHUTDOWN, this.shutdown, this);
                    },
                    create: function(t) {
                        Array.isArray(t) || (t = [
                            t
                        ]);
                        for(var e = [], i = 0; i < t.length; i++){
                            var s = t[i];
                            s instanceof u || s instanceof d ? e.push(s) : Array.isArray(s.tweens) ? e.push(f(this, s)) : e.push(c(this, s));
                        }
                        return 1 === e.length ? e[0] : e;
                    },
                    add: function(t) {
                        var e = t, i = this.tweens;
                        return e instanceof u || e instanceof d || (e = Array.isArray(e.tweens) ? f(this, e) : c(this, e)), i.push(e.reset()), e;
                    },
                    addMultiple: function(t) {
                        for(var e, i = [], s = this.tweens, n = 0; n < t.length; n++)(e = t[n]) instanceof u || e instanceof d || (e = Array.isArray(e.tweens) ? f(this, e) : c(this, e)), s.push(e.reset()), i.push(e);
                        return i;
                    },
                    chain: function(t) {
                        var e = f(this, t);
                        return this.tweens.push(e.init()), e;
                    },
                    getChainedTweens: function(t) {
                        return t.getChainedTweens();
                    },
                    has: function(t) {
                        return this.tweens.indexOf(t) > -1;
                    },
                    existing: function(t) {
                        return this.has(t) || this.tweens.push(t.reset()), this;
                    },
                    addCounter: function(t) {
                        var e = o(this, t);
                        return this.tweens.push(e.reset()), e;
                    },
                    stagger: function(t, e) {
                        return l(t, e);
                    },
                    setLagSmooth: function(t, e) {
                        return void 0 === t && (t = 1 / 1e-8), void 0 === e && (e = 0), this.maxLag = t, this.lagSkip = Math.min(e, this.maxLag), this;
                    },
                    setFps: function(t) {
                        return void 0 === t && (t = 240), this.gap = 1e3 / t, this.nextTime = 1e3 * this.time + this.gap, this;
                    },
                    getDelta: function(t) {
                        var e = Date.now() - this.prevTime;
                        e > this.maxLag && (this.startTime += e - this.lagSkip), this.prevTime += e;
                        var i = this.prevTime - this.startTime, s = i - this.nextTime, n = i - 1e3 * this.time;
                        return s > 0 || t ? (i /= 1e3, this.time = i, this.nextTime += s + (s >= this.gap ? 4 : this.gap - s)) : n = 0, n;
                    },
                    tick: function() {
                        return this.step(!0), this;
                    },
                    update: function() {
                        this.paused || this.step(!1);
                    },
                    step: function(t) {
                        void 0 === t && (t = !1);
                        var e = this.getDelta(t);
                        if (!(e <= 0)) {
                            var i, s;
                            this.processing = !0;
                            var n = [], r = this.tweens;
                            for(i = 0; i < r.length; i++)(s = r[i]).update(e) && n.push(s);
                            var o = n.length;
                            if (o && r.length > 0) {
                                for(i = 0; i < o; i++){
                                    s = n[i];
                                    var a = r.indexOf(s);
                                    a > -1 && (s.isPendingRemove() || s.isDestroyed()) && (r.splice(a, 1), s.destroy());
                                }
                                n.length = 0;
                            }
                            this.processing = !1;
                        }
                    },
                    remove: function(t) {
                        return this.processing ? t.setPendingRemoveState() : (s(this.tweens, t), t.setRemovedState()), this;
                    },
                    reset: function(t) {
                        return this.existing(t), t.seek(), t.setActiveState(), this;
                    },
                    makeActive: function(t) {
                        return this.existing(t), t.setActiveState(), this;
                    },
                    each: function(t, e) {
                        var i, s = [
                            null
                        ];
                        for(i = 1; i < arguments.length; i++)s.push(arguments[i]);
                        return this.tweens.forEach(function(i) {
                            s[0] = i, t.apply(e, s);
                        }), this;
                    },
                    getTweens: function() {
                        return this.tweens.slice();
                    },
                    getTweensOf: function(t) {
                        for(var e = [], i = this.tweens, s = (t = Array.isArray(t) ? r(t) : [
                            t
                        ]).length, n = 0; n < i.length; n++)for(var o = i[n], a = 0; a < s; a++)!o.isDestroyed() && o.hasTarget(t[a]) && e.push(o);
                        return e;
                    },
                    getGlobalTimeScale: function() {
                        return this.timeScale;
                    },
                    setGlobalTimeScale: function(t) {
                        return this.timeScale = t, this;
                    },
                    isTweening: function(t) {
                        for(var e, i = this.tweens, s = 0; s < i.length; s++)if ((e = i[s]).isPlaying() && e.hasTarget(t)) return !0;
                        return !1;
                    },
                    killAll: function() {
                        for(var t = this.processing ? this.getTweens() : this.tweens, e = 0; e < t.length; e++)t[e].destroy();
                        return this.processing || (t.length = 0), this;
                    },
                    killTweensOf: function(t) {
                        for(var e = this.getTweensOf(t), i = 0; i < e.length; i++)e[i].destroy();
                        return this;
                    },
                    pauseAll: function() {
                        return this.paused = !0, this;
                    },
                    resumeAll: function() {
                        return this.paused = !1, this;
                    },
                    shutdown: function() {
                        this.killAll(), this.tweens = [], this.events.off(h.UPDATE, this.update, this), this.events.off(h.SHUTDOWN, this.shutdown, this);
                    },
                    destroy: function() {
                        this.shutdown(), this.events.off(h.START, this.start, this), this.scene = null, this.events = null;
                    }
                });
                a.register("TweenManager", p, "tweens"), t.exports = p;
            },
            63130: (t)=>{
                t.exports = function(t, e, i) {
                    return t && t.hasOwnProperty(e) ? t[e] : i;
                };
            },
            21902: (t, e, i)=>{
                var s = i(35060), n = i(40587);
                t.exports = function(t, e) {
                    var i = s.Power0;
                    if ("string" == typeof t) {
                        if (s.hasOwnProperty(t)) i = s[t];
                        else {
                            var r = "";
                            if (t.indexOf(".")) {
                                var o = (r = t.substring(t.indexOf(".") + 1)).toLowerCase();
                                "in" === o ? r = "easeIn" : "out" === o ? r = "easeOut" : "inout" === o && (r = "easeInOut");
                            }
                            t = n(t.substring(0, t.indexOf(".") + 1) + r), s.hasOwnProperty(t) && (i = s[t]);
                        }
                    } else "function" == typeof t && (i = t);
                    if (!e) return i;
                    var a = e.slice(0);
                    return a.unshift(0), function(t) {
                        return a[0] = t, i.apply(this, a);
                    };
                };
            },
            4840: (t, e, i)=>{
                var s = i(63210), n = i(88332), r = {
                    bezier: s,
                    catmull: n,
                    catmullrom: n,
                    linear: i(47614)
                };
                t.exports = function(t) {
                    if (null === t) return null;
                    var e = r.linear;
                    return "string" == typeof t ? r.hasOwnProperty(t) && (e = r[t]) : "function" == typeof t && (e = t), e;
                };
            },
            28348: (t)=>{
                t.exports = function(t, e, i) {
                    var s;
                    t.hasOwnProperty(e) ? s = "function" === typeof t[e] ? function(i, s, n, r, o, a) {
                        return t[e](i, s, n, r, o, a);
                    } : function() {
                        return t[e];
                    } : s = "function" == typeof i ? i : function() {
                        return i;
                    };
                    return s;
                };
            },
            92407: (t, e, i)=>{
                var s = i(53709);
                t.exports = function(t) {
                    var e, i = [];
                    if (t.hasOwnProperty("props")) for(e in t.props)"_" !== e.substring(0, 1) && i.push({
                        key: e,
                        value: t.props[e]
                    });
                    else for(e in t)-1 === s.indexOf(e) && "_" !== e.substring(0, 1) && i.push({
                        key: e,
                        value: t[e]
                    });
                    return i;
                };
            },
            65868: (t, e, i)=>{
                var s = i(10850);
                t.exports = function(t) {
                    var e = s(t, "targets", null);
                    return null === e || ("function" == typeof e && (e = e.call()), Array.isArray(e) || (e = [
                        e
                    ])), e;
                };
            },
            9744: (t, e, i)=>{
                var s = i(17489), n = i(61616);
                function r(t) {
                    return !!t.getActive && "function" == typeof t.getActive;
                }
                function o(t) {
                    return !!t.getStart && "function" == typeof t.getStart;
                }
                function a(t) {
                    return !!t.getEnd && "function" == typeof t.getEnd;
                }
                var h = function(t, e) {
                    var i, l, u = function(t, e, i) {
                        return i;
                    }, c = function(t, e, i) {
                        return i;
                    }, d = null, f = typeof e;
                    if ("number" === f) u = function() {
                        return e;
                    };
                    else if (Array.isArray(e)) c = function() {
                        return e[0];
                    }, u = function() {
                        return e[e.length - 1];
                    };
                    else if ("string" === f) {
                        var p = e.toLowerCase(), v = "random" === p.substring(0, 6), g = "int" === p.substring(0, 3);
                        if (v || g) {
                            var m = p.indexOf("("), y = p.indexOf(")"), x = p.indexOf(",");
                            if (!(m && y && x)) throw new Error("invalid random() format");
                            var T = parseFloat(p.substring(m + 1, x)), w = parseFloat(p.substring(x + 1, y));
                            u = v ? function() {
                                return n(T, w);
                            } : function() {
                                return s(T, w);
                            };
                        } else {
                            p = p[0];
                            var b = parseFloat(e.substr(2));
                            switch(p){
                                case "+":
                                    u = function(t, e, i) {
                                        return i + b;
                                    };
                                    break;
                                case "-":
                                    u = function(t, e, i) {
                                        return i - b;
                                    };
                                    break;
                                case "*":
                                    u = function(t, e, i) {
                                        return i * b;
                                    };
                                    break;
                                case "/":
                                    u = function(t, e, i) {
                                        return i / b;
                                    };
                                    break;
                                default:
                                    u = function() {
                                        return parseFloat(e);
                                    };
                            }
                        }
                    } else if ("function" === f) u = e;
                    else if ("object" === f) {
                        if (o(l = e) || a(l) || r(l)) r(e) && (d = e.getActive), a(e) && (u = e.getEnd), o(e) && (c = e.getStart);
                        else if (e.hasOwnProperty("value")) i = h(t, e.value);
                        else {
                            var S = e.hasOwnProperty("to"), E = e.hasOwnProperty("from"), A = e.hasOwnProperty("start");
                            if (S && (E || A)) {
                                if (i = h(t, e.to), A) {
                                    var C = h(t, e.start);
                                    i.getActive = C.getEnd;
                                }
                                if (E) {
                                    var _ = h(t, e.from);
                                    i.getStart = _.getEnd;
                                }
                            }
                        }
                    }
                    return i || (i = {
                        getActive: d,
                        getEnd: u,
                        getStart: c
                    }), i;
                };
                t.exports = h;
            },
            68710: (t, e, i)=>{
                var s = i(502), n = i(99730), r = i(20494), o = i(63130), a = i(21902), h = i(28348), l = i(10850), u = i(9744), c = i(72066), d = i(39366);
                t.exports = function(t, e, i) {
                    if (e instanceof d) return e.parent = t, e;
                    i = void 0 === i ? n : c(n, i);
                    var f = l(e, "from", 0), p = l(e, "to", 1), v = [
                        {
                            value: f
                        }
                    ], g = l(e, "delay", i.delay), m = l(e, "easeParams", i.easeParams), y = l(e, "ease", i.ease), x = u("value", p), T = new d(t, v), w = T.add(0, "value", x.getEnd, x.getStart, x.getActive, a(l(e, "ease", y), l(e, "easeParams", m)), h(e, "delay", g), l(e, "duration", i.duration), o(e, "yoyo", i.yoyo), l(e, "hold", i.hold), l(e, "repeat", i.repeat), l(e, "repeatDelay", i.repeatDelay), !1, !1);
                    w.start = f, w.current = f, T.completeDelay = r(e, "completeDelay", 0), T.loop = Math.round(r(e, "loop", 0)), T.loopDelay = Math.round(r(e, "loopDelay", 0)), T.paused = o(e, "paused", !1), T.persist = o(e, "persist", !1), T.callbackScope = l(e, "callbackScope", T);
                    for(var b = s.TYPES, S = 0; S < b.length; S++){
                        var E = b[S], A = l(e, E, !1);
                        if (A) {
                            var C = l(e, E + "Params", []);
                            T.setCallback(E, A, C);
                        }
                    }
                    return T;
                };
            },
            91944: (t, e, i)=>{
                var s = i(21902), n = i(10850), r = i(83392);
                t.exports = function(t, e) {
                    var i;
                    void 0 === e && (e = {});
                    var o = n(e, "start", 0), a = n(e, "ease", null), h = n(e, "grid", null), l = n(e, "from", 0), u = "first" === l, c = "center" === l, d = "last" === l, f = "number" == typeof l, p = Array.isArray(t), v = p ? parseFloat(t[0]) : parseFloat(t), g = p ? parseFloat(t[1]) : 0, m = Math.max(v, g);
                    if (p && (o += v), h) {
                        var y = h[0], x = h[1], T = 0, w = 0, b = 0, S = 0, E = [];
                        d ? (T = y - 1, w = x - 1) : f ? (T = l % y, w = Math.floor(l / y)) : c && (T = (y - 1) / 2, w = (x - 1) / 2);
                        for(var A = r.MIN_SAFE_INTEGER, C = 0; C < x; C++){
                            E[C] = [];
                            for(var _ = 0; _ < y; _++){
                                b = T - _, S = w - C;
                                var M = Math.sqrt(b * b + S * S);
                                M > A && (A = M), E[C][_] = M;
                            }
                        }
                    }
                    var P = a ? s(a) : null;
                    return i = h ? function(t, e, i, s) {
                        var n, r = 0, a = s % y, h = Math.floor(s / y);
                        if (a >= 0 && a < y && h >= 0 && h < x && (r = E[h][a]), p) {
                            var l = g - v;
                            n = P ? r / A * l * P(r / A) : r / A * l;
                        } else n = P ? r * v * P(r / A) : r * v;
                        return n + o;
                    } : function(t, e, i, s, n) {
                        var r, a, h;
                        (n--, u ? r = s : c ? r = Math.abs(n / 2 - s) : d ? r = n - s : f && (r = Math.abs(l - s)), p) ? (h = c ? (g - v) / n * (2 * r) : (g - v) / n * r, a = P ? h * P(r / n) : h) : a = P ? n * m * P(r / n) : r * v;
                        return a + o;
                    }, i;
                };
            },
            68061: (t, e, i)=>{
                var s = i(502), n = i(99730), r = i(20494), o = i(63130), a = i(21902), h = i(4840), l = i(28348), u = i(92407), c = i(65868), d = i(10850), f = i(9744), p = i(72066), v = i(39366);
                t.exports = function(t, e, i) {
                    if (e instanceof v) return e.parent = t, e;
                    i = void 0 === i ? n : p(n, i);
                    var g = c(e);
                    !g && i.targets && (g = i.targets);
                    for(var m = u(e), y = d(e, "delay", i.delay), x = d(e, "duration", i.duration), T = d(e, "easeParams", i.easeParams), w = d(e, "ease", i.ease), b = d(e, "hold", i.hold), S = d(e, "repeat", i.repeat), E = d(e, "repeatDelay", i.repeatDelay), A = o(e, "yoyo", i.yoyo), C = o(e, "flipX", i.flipX), _ = o(e, "flipY", i.flipY), M = d(e, "interpolation", i.interpolation), P = function(t, e, i, s) {
                        if ("texture" === i) {
                            var n = s, r = void 0;
                            Array.isArray(s) ? (n = s[0], r = s[1]) : s.hasOwnProperty("value") ? (n = s.value, Array.isArray(s.value) ? (n = s.value[0], r = s.value[1]) : "string" == typeof s.value && (n = s.value)) : "string" == typeof s && (n = s), t.addFrame(e, n, r, l(s, "delay", y), d(s, "duration", x), d(s, "hold", b), d(s, "repeat", S), d(s, "repeatDelay", E), o(s, "flipX", C), o(s, "flipY", _));
                        } else {
                            var u = f(i, s), c = h(d(s, "interpolation", M));
                            t.add(e, i, u.getEnd, u.getStart, u.getActive, a(d(s, "ease", w), d(s, "easeParams", T)), l(s, "delay", y), d(s, "duration", x), o(s, "yoyo", A), d(s, "hold", b), d(s, "repeat", S), d(s, "repeatDelay", E), o(s, "flipX", C), o(s, "flipY", _), c, c ? s : null);
                        }
                    }, R = new v(t, g), O = 0; O < m.length; O++)for(var L = m[O].key, F = m[O].value, D = 0; D < g.length; D++)"scale" !== L || g[D].hasOwnProperty("scale") ? P(R, D, L, F) : (P(R, D, "scaleX", F), P(R, D, "scaleY", F));
                    R.completeDelay = r(e, "completeDelay", 0), R.loop = Math.round(r(e, "loop", 0)), R.loopDelay = Math.round(r(e, "loopDelay", 0)), R.paused = o(e, "paused", !1), R.persist = o(e, "persist", !1), R.callbackScope = d(e, "callbackScope", R);
                    for(var I = s.TYPES, k = 0; k < I.length; k++){
                        var B = I[k], N = d(e, B, !1);
                        if (N) {
                            var X = d(e, B + "Params", []);
                            R.setCallback(B, N, X);
                        }
                    }
                    return R;
                };
            },
            56034: (t, e, i)=>{
                var s = i(502), n = i(20494), r = i(63130), o = i(65868), a = i(10850), h = i(68061), l = i(45641);
                t.exports = function(t, e) {
                    if (e instanceof l) return e.parent = t, e;
                    var i, u = new l(t);
                    u.startDelay = a(e, "delay", 0), u.completeDelay = n(e, "completeDelay", 0), u.loop = Math.round(n(e, "loop", a(e, "repeat", 0))), u.loopDelay = Math.round(n(e, "loopDelay", a(e, "repeatDelay", 0))), u.paused = r(e, "paused", !1), u.persist = r(e, "persist", !0), u.callbackScope = a(e, "callbackScope", u);
                    var c = s.TYPES;
                    for(i = 0; i < c.length; i++){
                        var d = c[i], f = a(e, d, !1);
                        if (f) {
                            var p = a(e, d + "Params", []);
                            u.setCallback(d, f, p);
                        }
                    }
                    var v = a(e, "tweens", null);
                    if (Array.isArray(v)) {
                        var g = [], m = o(e), y = void 0;
                        for(m && (y = {
                            targets: m
                        }), i = 0; i < v.length; i++)g.push(h(u, v[i], y));
                        u.add(g);
                    }
                    return u;
                };
            },
            79619: (t, e, i)=>{
                t.exports = {
                    GetBoolean: i(63130),
                    GetEaseFunction: i(21902),
                    GetInterpolationFunction: i(4840),
                    GetNewValue: i(28348),
                    GetProps: i(92407),
                    GetTargets: i(65868),
                    GetValueOp: i(9744),
                    NumberTweenBuilder: i(68710),
                    StaggerBuilder: i(91944),
                    TweenBuilder: i(68061)
                };
            },
            5570: (t)=>{
                t.exports = "active";
            },
            6383: (t)=>{
                t.exports = "complete";
            },
            72582: (t)=>{
                t.exports = "loop";
            },
            90281: (t)=>{
                t.exports = "pause";
            },
            80803: (t)=>{
                t.exports = "repeat";
            },
            13640: (t)=>{
                t.exports = "resume";
            },
            10472: (t)=>{
                t.exports = "start";
            },
            5379: (t)=>{
                t.exports = "stop";
            },
            43449: (t)=>{
                t.exports = "update";
            },
            61541: (t)=>{
                t.exports = "yoyo";
            },
            54272: (t, e, i)=>{
                t.exports = {
                    TWEEN_ACTIVE: i(5570),
                    TWEEN_COMPLETE: i(6383),
                    TWEEN_LOOP: i(72582),
                    TWEEN_PAUSE: i(90281),
                    TWEEN_RESUME: i(13640),
                    TWEEN_REPEAT: i(80803),
                    TWEEN_START: i(10472),
                    TWEEN_STOP: i(5379),
                    TWEEN_UPDATE: i(43449),
                    TWEEN_YOYO: i(61541)
                };
            },
            75193: (t, e, i)=>{
                var s = {
                    States: i(55303),
                    Builders: i(79619),
                    Events: i(54272),
                    TweenManager: i(64532),
                    Tween: i(39366),
                    TweenData: i(15718),
                    TweenFrameData: i(96490),
                    BaseTween: i(502),
                    TweenChain: i(45641)
                };
                t.exports = s;
            },
            502: (t, e, i)=>{
                var s = i(56694), n = i(6659), r = i(54272), o = i(55303), a = new s({
                    Extends: n,
                    initialize: function(t) {
                        n.call(this), this.parent = t, this.data = [], this.totalData = 0, this.startDelay = 0, this.hasStarted = !1, this.timeScale = 1, this.loop = 0, this.loopDelay = 0, this.loopCounter = 0, this.completeDelay = 0, this.countdown = 0, this.state = o.PENDING, this.paused = !1, this.callbacks = {
                            onActive: null,
                            onComplete: null,
                            onLoop: null,
                            onPause: null,
                            onRepeat: null,
                            onResume: null,
                            onStart: null,
                            onStop: null,
                            onUpdate: null,
                            onYoyo: null
                        }, this.callbackScope, this.persist = !1;
                    },
                    setTimeScale: function(t) {
                        return this.timeScale = t, this;
                    },
                    getTimeScale: function() {
                        return this.timeScale;
                    },
                    isPlaying: function() {
                        return !this.paused && this.isActive();
                    },
                    isPaused: function() {
                        return this.paused;
                    },
                    pause: function() {
                        return this.paused || (this.paused = !0, this.dispatchEvent(r.TWEEN_PAUSE, "onPause")), this;
                    },
                    resume: function() {
                        return this.paused && (this.paused = !1, this.dispatchEvent(r.TWEEN_RESUME, "onResume")), this;
                    },
                    makeActive: function() {
                        this.parent.makeActive(this), this.dispatchEvent(r.TWEEN_ACTIVE, "onActive");
                    },
                    onCompleteHandler: function() {
                        this.setPendingRemoveState(), this.dispatchEvent(r.TWEEN_COMPLETE, "onComplete");
                    },
                    complete: function(t) {
                        return void 0 === t && (t = 0), t ? (this.setCompleteDelayState(), this.countdown = t) : this.onCompleteHandler(), this;
                    },
                    completeAfterLoop: function(t) {
                        return void 0 === t && (t = 0), this.loopCounter > t && (this.loopCounter = t), this;
                    },
                    remove: function() {
                        return this.parent.remove(this), this;
                    },
                    stop: function() {
                        return this.isRemoved() || this.isPendingRemove() || this.isDestroyed() || (this.dispatchEvent(r.TWEEN_STOP, "onStop"), this.setPendingRemoveState()), this;
                    },
                    updateLoopCountdown: function(t) {
                        this.countdown -= t, this.countdown <= 0 && (this.setActiveState(), this.dispatchEvent(r.TWEEN_LOOP, "onLoop"));
                    },
                    updateStartCountdown: function(t) {
                        return this.countdown -= t, this.countdown <= 0 && (this.hasStarted = !0, this.setActiveState(), this.dispatchEvent(r.TWEEN_START, "onStart"), t = 0), t;
                    },
                    updateCompleteDelay: function(t) {
                        this.countdown -= t, this.countdown <= 0 && this.onCompleteHandler();
                    },
                    setCallback: function(t, e, i) {
                        return void 0 === i && (i = []), this.callbacks.hasOwnProperty(t) && (this.callbacks[t] = {
                            func: e,
                            params: i
                        }), this;
                    },
                    setPendingState: function() {
                        this.state = o.PENDING;
                    },
                    setActiveState: function() {
                        this.state = o.ACTIVE;
                    },
                    setLoopDelayState: function() {
                        this.state = o.LOOP_DELAY;
                    },
                    setCompleteDelayState: function() {
                        this.state = o.COMPLETE_DELAY;
                    },
                    setStartDelayState: function() {
                        this.state = o.START_DELAY, this.countdown = this.startDelay, this.hasStarted = !1;
                    },
                    setPendingRemoveState: function() {
                        this.state = o.PENDING_REMOVE;
                    },
                    setRemovedState: function() {
                        this.state = o.REMOVED;
                    },
                    setFinishedState: function() {
                        this.state = o.FINISHED;
                    },
                    setDestroyedState: function() {
                        this.state = o.DESTROYED;
                    },
                    isPending: function() {
                        return this.state === o.PENDING;
                    },
                    isActive: function() {
                        return this.state === o.ACTIVE;
                    },
                    isLoopDelayed: function() {
                        return this.state === o.LOOP_DELAY;
                    },
                    isCompleteDelayed: function() {
                        return this.state === o.COMPLETE_DELAY;
                    },
                    isStartDelayed: function() {
                        return this.state === o.START_DELAY;
                    },
                    isPendingRemove: function() {
                        return this.state === o.PENDING_REMOVE;
                    },
                    isRemoved: function() {
                        return this.state === o.REMOVED;
                    },
                    isFinished: function() {
                        return this.state === o.FINISHED;
                    },
                    isDestroyed: function() {
                        return this.state === o.DESTROYED;
                    },
                    destroy: function() {
                        this.data && this.data.forEach(function(t) {
                            t.destroy();
                        }), this.removeAllListeners(), this.callbacks = null, this.data = null, this.parent = null, this.setDestroyedState();
                    }
                });
                a.TYPES = [
                    "onActive",
                    "onComplete",
                    "onLoop",
                    "onPause",
                    "onRepeat",
                    "onResume",
                    "onStart",
                    "onStop",
                    "onUpdate",
                    "onYoyo"
                ], t.exports = a;
            },
            65521: (t, e, i)=>{
                var s = i(56694), n = i(54272), r = i(55303), o = new s({
                    initialize: function(t, e, i, s, n, r, o, a, h, l) {
                        this.tween = t, this.targetIndex = e, this.duration = s, this.totalDuration = 0, this.delay = 0, this.getDelay = i, this.yoyo = n, this.hold = r, this.repeat = o, this.repeatDelay = a, this.repeatCounter = 0, this.flipX = h, this.flipY = l, this.progress = 0, this.elapsed = 0, this.state = 0, this.isCountdown = !1;
                    },
                    getTarget: function() {
                        return this.tween.targets[this.targetIndex];
                    },
                    setTargetValue: function(t) {
                        void 0 === t && (t = this.current), this.tween.targets[this.targetIndex][this.key] = t;
                    },
                    setCreatedState: function() {
                        this.state = r.CREATED, this.isCountdown = !1;
                    },
                    setDelayState: function() {
                        this.state = r.DELAY, this.isCountdown = !0;
                    },
                    setPendingRenderState: function() {
                        this.state = r.PENDING_RENDER, this.isCountdown = !1;
                    },
                    setPlayingForwardState: function() {
                        this.state = r.PLAYING_FORWARD, this.isCountdown = !1;
                    },
                    setPlayingBackwardState: function() {
                        this.state = r.PLAYING_BACKWARD, this.isCountdown = !1;
                    },
                    setHoldState: function() {
                        this.state = r.HOLD_DELAY, this.isCountdown = !0;
                    },
                    setRepeatState: function() {
                        this.state = r.REPEAT_DELAY, this.isCountdown = !0;
                    },
                    setCompleteState: function() {
                        this.state = r.COMPLETE, this.isCountdown = !1;
                    },
                    isCreated: function() {
                        return this.state === r.CREATED;
                    },
                    isDelayed: function() {
                        return this.state === r.DELAY;
                    },
                    isPendingRender: function() {
                        return this.state === r.PENDING_RENDER;
                    },
                    isPlayingForward: function() {
                        return this.state === r.PLAYING_FORWARD;
                    },
                    isPlayingBackward: function() {
                        return this.state === r.PLAYING_BACKWARD;
                    },
                    isHolding: function() {
                        return this.state === r.HOLD_DELAY;
                    },
                    isRepeating: function() {
                        return this.state === r.REPEAT_DELAY;
                    },
                    isComplete: function() {
                        return this.state === r.COMPLETE;
                    },
                    setStateFromEnd: function(t) {
                        this.yoyo ? this.onRepeat(t, !0, !0) : this.repeatCounter > 0 ? this.onRepeat(t, !0, !1) : this.setCompleteState();
                    },
                    setStateFromStart: function(t) {
                        this.repeatCounter > 0 ? this.onRepeat(t, !1) : this.setCompleteState();
                    },
                    reset: function() {
                        var t = this.tween, e = t.totalTargets, i = this.targetIndex, s = t.targets[i], n = this.key;
                        this.progress = 0, this.elapsed = 0, this.delay = this.getDelay(s, n, 0, i, e, t), this.repeatCounter = -1 === this.repeat ? r.MAX : this.repeat, this.setPendingRenderState();
                        var o = this.duration + this.hold;
                        this.yoyo && (o += this.duration);
                        var a = o + this.repeatDelay;
                        this.totalDuration = this.delay + o, -1 === this.repeat ? (this.totalDuration += a * r.MAX, t.isInfinite = !0) : this.repeat > 0 && (this.totalDuration += a * this.repeat), this.totalDuration > t.duration && (t.duration = this.totalDuration), this.delay < t.startDelay && (t.startDelay = this.delay), this.delay > 0 && (this.elapsed = this.delay, this.setDelayState());
                    },
                    onRepeat: function(t, e, i) {
                        var s = this.tween, r = s.totalTargets, o = this.targetIndex, a = s.targets[o], h = this.key, l = "texture" !== h;
                        if (this.elapsed = t, this.progress = t / this.duration, this.flipX && a.toggleFlipX(), this.flipY && a.toggleFlipY(), l && (e || i) && (this.start = this.getStartValue(a, h, this.start, o, r, s)), i) return this.setPlayingBackwardState(), void this.dispatchEvent(n.TWEEN_YOYO, "onYoyo");
                        this.repeatCounter--, l && (this.end = this.getEndValue(a, h, this.start, o, r, s)), this.repeatDelay > 0 ? (this.elapsed = this.repeatDelay - t, l && (this.current = this.start, a[h] = this.current), this.setRepeatState()) : (this.setPlayingForwardState(), this.dispatchEvent(n.TWEEN_REPEAT, "onRepeat"));
                    },
                    destroy: function() {
                        this.tween = null, this.getDelay = null, this.setCompleteState();
                    }
                });
                t.exports = o;
            },
            99730: (t)=>{
                t.exports = {
                    targets: null,
                    delay: 0,
                    duration: 1e3,
                    ease: "Power0",
                    easeParams: null,
                    hold: 0,
                    repeat: 0,
                    repeatDelay: 0,
                    yoyo: !1,
                    flipX: !1,
                    flipY: !1,
                    persist: !1,
                    interpolation: null
                };
            },
            53709: (t)=>{
                t.exports = [
                    "callbackScope",
                    "completeDelay",
                    "delay",
                    "duration",
                    "ease",
                    "easeParams",
                    "flipX",
                    "flipY",
                    "hold",
                    "interpolation",
                    "loop",
                    "loopDelay",
                    "onActive",
                    "onActiveParams",
                    "onComplete",
                    "onCompleteParams",
                    "onLoop",
                    "onLoopParams",
                    "onPause",
                    "onPauseParams",
                    "onRepeat",
                    "onRepeatParams",
                    "onResume",
                    "onResumeParams",
                    "onStart",
                    "onStartParams",
                    "onStop",
                    "onStopParams",
                    "onUpdate",
                    "onUpdateParams",
                    "onYoyo",
                    "onYoyoParams",
                    "paused",
                    "persist",
                    "props",
                    "repeat",
                    "repeatDelay",
                    "targets",
                    "yoyo"
                ];
            },
            39366: (t, e, i)=>{
                var s = i(502), n = i(56694), r = i(54272), o = i(99325), a = i(61286), h = i(83392), l = i(55303), u = i(15718), c = i(96490), d = new n({
                    Extends: s,
                    initialize: function(t, e) {
                        s.call(this, t), this.targets = e, this.totalTargets = e.length, this.isSeeking = !1, this.isInfinite = !1, this.elapsed = 0, this.totalElapsed = 0, this.duration = 0, this.progress = 0, this.totalDuration = 0, this.totalProgress = 0;
                    },
                    add: function(t, e, i, s, n, r, o, a, h, l, c, d, f, p, v, g) {
                        var m = new u(this, t, e, i, s, n, r, o, a, h, l, c, d, f, p, v, g);
                        return this.totalData = this.data.push(m), m;
                    },
                    addFrame: function(t, e, i, s, n, r, o, a, h, l) {
                        var u = new c(this, t, e, i, s, n, r, o, a, h, l);
                        return this.totalData = this.data.push(u), u;
                    },
                    getValue: function(t) {
                        void 0 === t && (t = 0);
                        var e = null;
                        return this.data && (e = this.data[t].current), e;
                    },
                    hasTarget: function(t) {
                        return this.targets && -1 !== this.targets.indexOf(t);
                    },
                    updateTo: function(t, e, i) {
                        if (void 0 === i && (i = !1), "texture" !== t) for(var s = 0; s < this.totalData; s++){
                            var n = this.data[s];
                            n.key === t && (n.isPlayingForward() || n.isPlayingBackward()) && (n.end = e, i && (n.start = n.current));
                        }
                        return this;
                    },
                    restart: function() {
                        switch(this.state){
                            case l.REMOVED:
                            case l.FINISHED:
                                this.seek(), this.parent.makeActive(this);
                                break;
                            case l.PENDING:
                            case l.PENDING_REMOVE:
                                this.parent.reset(this);
                                break;
                            case l.DESTROYED:
                                console.warn("Cannot restart destroyed Tween", this);
                                break;
                            default:
                                this.seek();
                        }
                        return this.paused = !1, this.hasStarted = !1, this;
                    },
                    nextState: function() {
                        if (this.loopCounter > 0) this.elapsed = 0, this.progress = 0, this.loopCounter--, this.initTweenData(!0), this.loopDelay > 0 ? (this.countdown = this.loopDelay, this.setLoopDelayState()) : (this.setActiveState(), this.dispatchEvent(r.TWEEN_LOOP, "onLoop"));
                        else {
                            if (!(this.completeDelay > 0)) return this.onCompleteHandler(), !0;
                            this.countdown = this.completeDelay, this.setCompleteDelayState();
                        }
                        return !1;
                    },
                    onCompleteHandler: function() {
                        this.progress = 1, this.totalProgress = 1, s.prototype.onCompleteHandler.call(this);
                    },
                    play: function() {
                        return this.isDestroyed() ? (console.warn("Cannot play destroyed Tween", this), this) : ((this.isPendingRemove() || this.isFinished()) && this.seek(), this.paused = !1, this.setActiveState(), this);
                    },
                    seek: function(t, e, i) {
                        if (void 0 === t && (t = 0), void 0 === e && (e = 16.6), void 0 === i && (i = !1), this.isDestroyed()) return console.warn("Cannot seek destroyed Tween", this), this;
                        i || (this.isSeeking = !0), this.reset(!0), this.initTweenData(!0), this.setActiveState(), this.dispatchEvent(r.TWEEN_ACTIVE, "onActive");
                        var s = this.paused;
                        if (this.paused = !1, t > 0) {
                            for(var n = Math.floor(t / e), o = t - n * e, a = 0; a < n; a++)this.update(e);
                            o > 0 && this.update(o);
                        }
                        return this.paused = s, this.isSeeking = !1, this;
                    },
                    initTweenData: function(t) {
                        void 0 === t && (t = !1), this.duration = 0, this.startDelay = h.MAX_SAFE_INTEGER;
                        for(var e = this.data, i = 0; i < this.totalData; i++)e[i].reset(t);
                        this.duration = Math.max(this.duration, .01);
                        var s = this.duration, n = this.completeDelay, r = this.loopCounter, o = this.loopDelay;
                        this.totalDuration = r > 0 ? s + n + (s + o) * r : s + n;
                    },
                    reset: function(t) {
                        return void 0 === t && (t = !1), this.elapsed = 0, this.totalElapsed = 0, this.progress = 0, this.totalProgress = 0, this.loopCounter = this.loop, -1 === this.loop && (this.isInfinite = !0, this.loopCounter = l.MAX), t || (this.initTweenData(), this.setActiveState(), this.dispatchEvent(r.TWEEN_ACTIVE, "onActive")), this;
                    },
                    update: function(t) {
                        if (this.isPendingRemove() || this.isDestroyed()) return !0;
                        if (this.paused || this.isFinished()) return !1;
                        if (t *= this.timeScale * this.parent.timeScale, this.isLoopDelayed()) return this.updateLoopCountdown(t), !1;
                        if (this.isCompleteDelayed()) return this.updateCompleteDelay(t), !1;
                        this.hasStarted || (this.startDelay -= t, this.startDelay <= 0 && (this.hasStarted = !0, this.dispatchEvent(r.TWEEN_START, "onStart"), t = 0));
                        var e = !1;
                        if (this.isActive()) for(var i = this.data, s = 0; s < this.totalData; s++)i[s].update(t) && (e = !0);
                        this.elapsed += t, this.progress = Math.min(this.elapsed / this.duration, 1), this.totalElapsed += t, this.totalProgress = Math.min(this.totalElapsed / this.totalDuration, 1), e || this.nextState();
                        var n = this.isPendingRemove();
                        return n && this.persist && (this.setFinishedState(), n = !1), n;
                    },
                    forward: function(t) {
                        return this.update(t), this;
                    },
                    rewind: function(t) {
                        return this.update(-t), this;
                    },
                    dispatchEvent: function(t, e) {
                        if (!this.isSeeking) {
                            this.emit(t, this, this.targets);
                            var i = this.callbacks[e];
                            i && i.func.apply(this.callbackScope, [
                                this,
                                this.targets
                            ].concat(i.params));
                        }
                    },
                    destroy: function() {
                        s.prototype.destroy.call(this), this.targets = null;
                    }
                });
                a.register("tween", function(t) {
                    return this.scene.sys.tweens.add(t);
                }), o.register("tween", function(t) {
                    return this.scene.sys.tweens.create(t);
                }), t.exports = d;
            },
            45641: (t, e, i)=>{
                var s = i(66458), n = i(502), r = i(56694), o = i(54272), a = i(99325), h = i(61286), l = i(55303), u = new r({
                    Extends: n,
                    initialize: function(t) {
                        n.call(this, t), this.currentTween = null, this.currentIndex = 0;
                    },
                    init: function() {
                        return this.loopCounter = -1 === this.loop ? l.MAX : this.loop, this.setCurrentTween(0), this.startDelay > 0 && !this.isStartDelayed() ? this.setStartDelayState() : this.setActiveState(), this.dispatchEvent(o.TWEEN_ACTIVE, "onActive"), this;
                    },
                    add: function(t) {
                        var e = this.parent.create(t);
                        Array.isArray(e) || (e = [
                            e
                        ]);
                        for(var i = this.data, s = 0; s < e.length; s++){
                            var n = e[s];
                            n.parent = this, i.push(n.reset());
                        }
                        return this.totalData = i.length, this;
                    },
                    remove: function(t) {
                        return s(this.data, t), t.setRemovedState(), t === this.currentTween && this.nextTween(), this.totalData = this.data.length, this;
                    },
                    hasTarget: function(t) {
                        for(var e = this.data, i = 0; i < this.totalData; i++)if (e[i].hasTarget(t)) return !0;
                        return !1;
                    },
                    restart: function() {
                        return this.isDestroyed() ? (console.warn("Cannot restart destroyed TweenChain", this), this) : (this.isRemoved() && this.parent.makeActive(this), this.resetTweens(), this.paused = !1, this.init());
                    },
                    reset: function(t) {
                        return t.seek(), t.setActiveState(), this;
                    },
                    makeActive: function(t) {
                        return t.reset(), t.setActiveState(), this;
                    },
                    nextState: function() {
                        if (this.loopCounter > 0) this.loopCounter--, this.resetTweens(), this.loopDelay > 0 ? (this.countdown = this.loopDelay, this.setLoopDelayState()) : (this.setActiveState(), this.dispatchEvent(o.TWEEN_LOOP, "onLoop"));
                        else {
                            if (!(this.completeDelay > 0)) return this.onCompleteHandler(), !0;
                            this.countdown = this.completeDelay, this.setCompleteDelayState();
                        }
                        return !1;
                    },
                    play: function() {
                        return this.isDestroyed() ? (console.warn("Cannot play destroyed TweenChain", this), this) : ((this.isPendingRemove() || this.isPending()) && this.resetTweens(), this.paused = !1, this.startDelay > 0 && !this.isStartDelayed() ? this.setStartDelayState() : this.setActiveState(), this);
                    },
                    resetTweens: function() {
                        for(var t = this.data, e = this.totalData, i = 0; i < e; i++)t[i].reset(!1);
                        this.currentIndex = 0, this.currentTween = t[0];
                    },
                    update: function(t) {
                        if (this.isPendingRemove() || this.isDestroyed()) return !0;
                        if (this.isFinished() || this.paused) return !1;
                        t *= this.parent.timeScale, this.isLoopDelayed() ? this.updateLoopCountdown(t) : this.isCompleteDelayed() ? this.updateCompleteDelay(t) : this.isStartDelayed() && (t = this.updateStartCountdown(t));
                        var e = !1;
                        return this.isActive() && this.currentTween && (this.currentTween.update(t) && this.nextTween() && this.nextState(), (e = this.isPendingRemove()) && this.persist && (this.setFinishedState(), e = !1)), e;
                    },
                    nextTween: function() {
                        return this.currentIndex++, this.currentIndex === this.totalData || (this.setCurrentTween(this.currentIndex), !1);
                    },
                    setCurrentTween: function(t) {
                        this.currentIndex = t, this.currentTween = this.data[t], this.currentTween.setActiveState(), this.currentTween.dispatchEvent(o.TWEEN_ACTIVE, "onActive");
                    },
                    dispatchEvent: function(t, e) {
                        this.emit(t, this);
                        var i = this.callbacks[e];
                        i && i.func.apply(this.callbackScope, [
                            this
                        ].concat(i.params));
                    },
                    destroy: function() {
                        n.prototype.destroy.call(this), this.currentTween = null;
                    }
                });
                h.register("tweenchain", function(t) {
                    return this.scene.sys.tweens.chain(t);
                }), a.register("tweenchain", function(t) {
                    return this.scene.sys.tweens.create(t);
                }), t.exports = u;
            },
            15718: (t, e, i)=>{
                var s = i(65521), n = i(82897), r = i(56694), o = i(54272), a = new r({
                    Extends: s,
                    initialize: function(t, e, i, n, r, o, a, h, l, u, c, d, f, p, v, g, m) {
                        s.call(this, t, e, h, l, u, c, d, f, p, v), this.key = i, this.getActiveValue = o, this.getEndValue = n, this.getStartValue = r, this.ease = a, this.start = 0, this.previous = 0, this.current = 0, this.end = 0, this.interpolation = g, this.interpolationData = m;
                    },
                    reset: function(t) {
                        s.prototype.reset.call(this);
                        var e = this.tween.targets[this.targetIndex], i = this.key;
                        t && (e[i] = this.start), this.start = 0, this.previous = 0, this.current = 0, this.end = 0, this.getActiveValue && (e[i] = this.getActiveValue(e, i, 0));
                    },
                    update: function(t) {
                        var e = this.tween, i = e.totalTargets, s = this.targetIndex, r = e.targets[s], a = this.key;
                        if (!r) return this.setCompleteState(), !1;
                        if (this.isCountdown && (this.elapsed -= t, this.elapsed <= 0 && (this.elapsed = 0, t = 0, this.isDelayed() ? this.setPendingRenderState() : this.isRepeating() ? (this.setPlayingForwardState(), this.dispatchEvent(o.TWEEN_REPEAT, "onRepeat")) : this.isHolding() && this.setStateFromEnd(0))), this.isPendingRender()) return this.start = this.getStartValue(r, a, r[a], s, i, e), this.end = this.getEndValue(r, a, this.start, s, i, e), this.current = this.start, r[a] = this.start, this.setPlayingForwardState(), !0;
                        var h = this.isPlayingForward(), l = this.isPlayingBackward();
                        if (h || l) {
                            var u = this.elapsed, c = this.duration, d = 0, f = !1;
                            (u += t) >= c ? (d = u - c, u = c, f = !0) : u < 0 && (u = 0);
                            var p = n(u / c, 0, 1);
                            if (this.elapsed = u, this.progress = p, this.previous = this.current, f) h ? (this.current = this.end, r[a] = this.end, this.hold > 0 ? (this.elapsed = this.hold, this.setHoldState()) : this.setStateFromEnd(d)) : (this.current = this.start, r[a] = this.start, this.setStateFromStart(d));
                            else {
                                h || (p = 1 - p);
                                var v = this.ease(p);
                                this.interpolation ? this.current = this.interpolation(this.interpolationData, v) : this.current = this.start + (this.end - this.start) * v, r[a] = this.current;
                            }
                            this.dispatchEvent(o.TWEEN_UPDATE, "onUpdate");
                        }
                        return !this.isComplete();
                    },
                    dispatchEvent: function(t, e) {
                        var i = this.tween;
                        if (!i.isSeeking) {
                            var s = i.targets[this.targetIndex], n = this.key, r = this.current, o = this.previous;
                            i.emit(t, i, n, s, r, o);
                            var a = i.callbacks[e];
                            a && a.func.apply(i.callbackScope, [
                                i,
                                s,
                                n,
                                r,
                                o
                            ].concat(a.params));
                        }
                    },
                    destroy: function() {
                        s.prototype.destroy.call(this), this.getActiveValue = null, this.getEndValue = null, this.getStartValue = null, this.ease = null;
                    }
                });
                t.exports = a;
            },
            96490: (t, e, i)=>{
                var s = i(65521), n = i(82897), r = i(56694), o = i(54272), a = new r({
                    Extends: s,
                    initialize: function(t, e, i, n, r, o, a, h, l, u, c) {
                        s.call(this, t, e, r, o, !1, a, h, l, u, c), this.key = "texture", this.startTexture = null, this.endTexture = i, this.startFrame = null, this.endFrame = n, this.yoyo = 0 !== h;
                    },
                    reset: function(t) {
                        s.prototype.reset.call(this);
                        var e = this.tween.targets[this.targetIndex];
                        this.startTexture || (this.startTexture = e.texture.key, this.startFrame = e.frame.name), t && e.setTexture(this.startTexture, this.startFrame);
                    },
                    update: function(t) {
                        var e = this.tween, i = this.targetIndex, s = e.targets[i];
                        if (!s) return this.setCompleteState(), !1;
                        if (this.isCountdown && (this.elapsed -= t, this.elapsed <= 0 && (this.elapsed = 0, t = 0, this.isDelayed() ? this.setPendingRenderState() : this.isRepeating() ? (this.setPlayingForwardState(), this.dispatchEvent(o.TWEEN_REPEAT, "onRepeat")) : this.isHolding() && this.setStateFromEnd(0))), this.isPendingRender()) return this.startTexture && s.setTexture(this.startTexture, this.startFrame), this.setPlayingForwardState(), !0;
                        var r = this.isPlayingForward(), a = this.isPlayingBackward();
                        if (r || a) {
                            var h = this.elapsed, l = this.duration, u = 0, c = !1;
                            (h += t) >= l ? (u = h - l, h = l, c = !0) : h < 0 && (h = 0);
                            var d = n(h / l, 0, 1);
                            this.elapsed = h, this.progress = d, c && (r ? (s.setTexture(this.endTexture, this.endFrame), this.hold > 0 ? (this.elapsed = this.hold, this.setHoldState()) : this.setStateFromEnd(u)) : (s.setTexture(this.startTexture, this.startFrame), this.setStateFromStart(u))), this.dispatchEvent(o.TWEEN_UPDATE, "onUpdate");
                        }
                        return !this.isComplete();
                    },
                    dispatchEvent: function(t, e) {
                        var i = this.tween;
                        if (!i.isSeeking) {
                            var s = i.targets[this.targetIndex], n = this.key;
                            i.emit(t, i, n, s);
                            var r = i.callbacks[e];
                            r && r.func.apply(i.callbackScope, [
                                i,
                                s,
                                n
                            ].concat(r.params));
                        }
                    },
                    destroy: function() {
                        s.prototype.destroy.call(this), this.startTexture = null, this.endTexture = null, this.startFrame = null, this.endFrame = null;
                    }
                });
                t.exports = a;
            },
            55303: (t)=>{
                t.exports = {
                    CREATED: 0,
                    DELAY: 2,
                    PENDING_RENDER: 4,
                    PLAYING_FORWARD: 5,
                    PLAYING_BACKWARD: 6,
                    HOLD_DELAY: 7,
                    REPEAT_DELAY: 8,
                    COMPLETE: 9,
                    PENDING: 20,
                    ACTIVE: 21,
                    LOOP_DELAY: 22,
                    COMPLETE_DELAY: 23,
                    START_DELAY: 24,
                    PENDING_REMOVE: 25,
                    REMOVED: 26,
                    FINISHED: 27,
                    DESTROYED: 28,
                    MAX: 999999999999
                };
            },
            56694: (t)=>{
                function e(t, e, i) {
                    var s = i ? t[e] : Object.getOwnPropertyDescriptor(t, e);
                    return !i && s.value && "object" == typeof s.value && (s = s.value), !(!s || !function(t) {
                        return !!t.get && "function" == typeof t.get || !!t.set && "function" == typeof t.set;
                    }(s)) && (void 0 === s.enumerable && (s.enumerable = !0), void 0 === s.configurable && (s.configurable = !0), s);
                }
                function i(t, e) {
                    var i = Object.getOwnPropertyDescriptor(t, e);
                    return !!i && (i.value && "object" == typeof i.value && (i = i.value), !1 === i.configurable);
                }
                function s(t, s, n, o) {
                    for(var a in s)if (s.hasOwnProperty(a)) {
                        var h = e(s, a, n);
                        if (!1 !== h) {
                            if (i((o || t).prototype, a)) {
                                if (r.ignoreFinals) continue;
                                throw new Error("cannot override final property '" + a + "', set Class.ignoreFinals = true to skip");
                            }
                            Object.defineProperty(t.prototype, a, h);
                        } else t.prototype[a] = s[a];
                    }
                }
                function n(t, e) {
                    if (e) {
                        Array.isArray(e) || (e = [
                            e
                        ]);
                        for(var i = 0; i < e.length; i++)s(t, e[i].prototype || e[i]);
                    }
                }
                function r(t) {
                    var e, i;
                    if (t || (t = {}), t.initialize) {
                        if ("function" != typeof t.initialize) throw new Error("initialize must be a function");
                        e = t.initialize, delete t.initialize;
                    } else if (t.Extends) {
                        var r = t.Extends;
                        e = function() {
                            r.apply(this, arguments);
                        };
                    } else e = function() {};
                    t.Extends ? (e.prototype = Object.create(t.Extends.prototype), e.prototype.constructor = e, i = t.Extends, delete t.Extends) : e.prototype.constructor = e;
                    var o = null;
                    return t.Mixins && (o = t.Mixins, delete t.Mixins), n(e, o), s(e, t, !0, i), e;
                }
                r.extend = s, r.mixin = n, r.ignoreFinals = !1, t.exports = r;
            },
            72283: (t)=>{
                t.exports = function() {};
            },
            10618: (t)=>{
                t.exports = function() {
                    return null;
                };
            },
            78991: (t)=>{
                t.exports = function(t, e, i, s, n) {
                    if (void 0 === n && (n = t), i > 0) {
                        var r = i - t.length;
                        if (r <= 0) return null;
                    }
                    if (!Array.isArray(e)) return -1 === t.indexOf(e) ? (t.push(e), s && s.call(n, e), e) : null;
                    for(var o = e.length - 1; o >= 0;)-1 !== t.indexOf(e[o]) && e.splice(o, 1), o--;
                    if (0 === (o = e.length)) return null;
                    i > 0 && o > r && (e.splice(r), o = r);
                    for(var a = 0; a < o; a++){
                        var h = e[a];
                        t.push(h), s && s.call(n, h);
                    }
                    return e;
                };
            },
            48522: (t)=>{
                t.exports = function(t, e, i, s, n, r) {
                    if (void 0 === i && (i = 0), void 0 === r && (r = t), s > 0) {
                        var o = s - t.length;
                        if (o <= 0) return null;
                    }
                    if (!Array.isArray(e)) return -1 === t.indexOf(e) ? (t.splice(i, 0, e), n && n.call(r, e), e) : null;
                    for(var a = e.length - 1; a >= 0;)-1 !== t.indexOf(e[a]) && e.pop(), a--;
                    if (0 === (a = e.length)) return null;
                    s > 0 && a > o && (e.splice(o), a = o);
                    for(var h = a - 1; h >= 0; h--){
                        var l = e[h];
                        t.splice(i, 0, l), n && n.call(r, l);
                    }
                    return e;
                };
            },
            58742: (t)=>{
                t.exports = function(t, e) {
                    var i = t.indexOf(e);
                    return -1 !== i && i < t.length && (t.splice(i, 1), t.push(e)), e;
                };
            },
            30164: (t, e, i)=>{
                var s = i(45838);
                t.exports = function(t, e, i, n, r) {
                    void 0 === n && (n = 0), void 0 === r && (r = t.length);
                    var o = 0;
                    if (s(t, n, r)) for(var a = n; a < r; a++)t[a][e] === i && o++;
                    return o;
                };
            },
            36337: (t)=>{
                t.exports = function(t, e, i) {
                    var s, n = [
                        null
                    ];
                    for(s = 3; s < arguments.length; s++)n.push(arguments[s]);
                    for(s = 0; s < t.length; s++)n[0] = t[s], e.apply(i, n);
                    return t;
                };
            },
            46208: (t, e, i)=>{
                var s = i(45838);
                t.exports = function(t, e, i, n, r) {
                    if (void 0 === n && (n = 0), void 0 === r && (r = t.length), s(t, n, r)) {
                        var o, a = [
                            null
                        ];
                        for(o = 5; o < arguments.length; o++)a.push(arguments[o]);
                        for(o = n; o < r; o++)a[0] = t[o], e.apply(i, a);
                    }
                    return t;
                };
            },
            2406: (t)=>{
                t.exports = function(t, e, i) {
                    if (!e.length) return NaN;
                    if (1 === e.length) return e[0];
                    var s, n, r = 1;
                    if (i) {
                        if (t < e[0][i]) return e[0];
                        for(; e[r][i] < t;)r++;
                    } else for(; e[r] < t;)r++;
                    return r > e.length && (r = e.length), i ? (s = e[r - 1][i], (n = e[r][i]) - t <= t - s ? e[r] : e[r - 1]) : (s = e[r - 1], (n = e[r]) - t <= t - s ? n : s);
                };
            },
            5454: (t)=>{
                var e = function(t, i) {
                    void 0 === i && (i = []);
                    for(var s = 0; s < t.length; s++)Array.isArray(t[s]) ? e(t[s], i) : i.push(t[s]);
                    return i;
                };
                t.exports = e;
            },
            71608: (t, e, i)=>{
                var s = i(45838);
                t.exports = function(t, e, i, n, r) {
                    void 0 === n && (n = 0), void 0 === r && (r = t.length);
                    var o = [];
                    if (s(t, n, r)) for(var a = n; a < r; a++){
                        var h = t[a];
                        (!e || e && void 0 === i && h.hasOwnProperty(e) || e && void 0 !== i && h[e] === i) && o.push(h);
                    }
                    return o;
                };
            },
            51463: (t, e, i)=>{
                var s = i(45838);
                t.exports = function(t, e, i, n, r) {
                    if (void 0 === n && (n = 0), void 0 === r && (r = t.length), s(t, n, r)) for(var o = n; o < r; o++){
                        var a = t[o];
                        if (!e || e && void 0 === i && a.hasOwnProperty(e) || e && void 0 !== i && a[e] === i) return a;
                    }
                    return null;
                };
            },
            72861: (t)=>{
                t.exports = function(t, e, i) {
                    void 0 === e && (e = 0), void 0 === i && (i = t.length);
                    var s = e + Math.floor(Math.random() * i);
                    return void 0 === t[s] ? null : t[s];
                };
            },
            24218: (t)=>{
                t.exports = function(t, e, i) {
                    if (e === i) return t;
                    var s = t.indexOf(e), n = t.indexOf(i);
                    if (s < 0 || n < 0) throw new Error("Supplied items must be elements of the same array");
                    return s > n || (t.splice(s, 1), n === t.length - 1 ? t.push(e) : t.splice(n, 0, e)), t;
                };
            },
            58258: (t)=>{
                t.exports = function(t, e, i) {
                    if (e === i) return t;
                    var s = t.indexOf(e), n = t.indexOf(i);
                    if (s < 0 || n < 0) throw new Error("Supplied items must be elements of the same array");
                    return s < n || (t.splice(s, 1), 0 === n ? t.unshift(e) : t.splice(n, 0, e)), t;
                };
            },
            51172: (t)=>{
                t.exports = function(t, e) {
                    var i = t.indexOf(e);
                    if (i > 0) {
                        var s = t[i - 1], n = t.indexOf(s);
                        t[i] = s, t[n] = e;
                    }
                    return t;
                };
            },
            68396: (t)=>{
                t.exports = function(t, e, i) {
                    var s = t.indexOf(e);
                    if (-1 === s || i < 0 || i >= t.length) throw new Error("Supplied index out of bounds");
                    return s !== i && (t.splice(s, 1), t.splice(i, 0, e)), e;
                };
            },
            27555: (t)=>{
                t.exports = function(t, e) {
                    var i = t.indexOf(e);
                    if (-1 !== i && i < t.length - 1) {
                        var s = t[i + 1], n = t.indexOf(s);
                        t[i] = s, t[n] = e;
                    }
                    return t;
                };
            },
            13401: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n, r = [], o = !1;
                    if ((i || s) && (o = !0, i || (i = ""), s || (s = "")), e < t) for(n = t; n >= e; n--)o ? r.push(i + n.toString() + s) : r.push(n);
                    else for(n = t; n <= e; n++)o ? r.push(i + n.toString() + s) : r.push(n);
                    return r;
                };
            },
            89955: (t, e, i)=>{
                var s = i(67233);
                t.exports = function(t, e, i) {
                    void 0 === t && (t = 0), void 0 === e && (e = null), void 0 === i && (i = 1), null === e && (e = t, t = 0);
                    for(var n = [], r = Math.max(s((e - t) / (i || 1)), 0), o = 0; o < r; o++)n.push(t), t += i;
                    return n;
                };
            },
            53466: (t)=>{
                function e(t, e, i) {
                    var s = t[e];
                    t[e] = t[i], t[i] = s;
                }
                function i(t, e) {
                    return t < e ? -1 : t > e ? 1 : 0;
                }
                var s = function(t, n, r, o, a) {
                    for(void 0 === r && (r = 0), void 0 === o && (o = t.length - 1), void 0 === a && (a = i); o > r;){
                        if (o - r > 600) {
                            var h = o - r + 1, l = n - r + 1, u = Math.log(h), c = .5 * Math.exp(2 * u / 3), d = .5 * Math.sqrt(u * c * (h - c) / h) * (l - h / 2 < 0 ? -1 : 1), f = Math.max(r, Math.floor(n - l * c / h + d)), p = Math.min(o, Math.floor(n + (h - l) * c / h + d));
                            s(t, n, f, p, a);
                        }
                        var v = t[n], g = r, m = o;
                        for(e(t, r, n), a(t[o], v) > 0 && e(t, r, o); g < m;){
                            for(e(t, g, m), g++, m--; a(t[g], v) < 0;)g++;
                            for(; a(t[m], v) > 0;)m--;
                        }
                        0 === a(t[r], v) ? e(t, r, m) : e(t, ++m, o), m <= n && (r = m + 1), n <= m && (o = m - 1);
                    }
                };
                t.exports = s;
            },
            75757: (t, e, i)=>{
                var s = i(10850), n = i(18592), r = function(t, e, i) {
                    for(var s = [], n = 0; n < t.length; n++)for(var r = 0; r < e.length; r++)for(var o = 0; o < i; o++)s.push({
                        a: t[n],
                        b: e[r]
                    });
                    return s;
                };
                t.exports = function(t, e, i) {
                    var o = s(i, "max", 0), a = s(i, "qty", 1), h = s(i, "random", !1), l = s(i, "randomB", !1), u = s(i, "repeat", 0), c = s(i, "yoyo", !1), d = [];
                    if (l && n(e), -1 === u) {
                        if (0 === o) u = 0;
                        else {
                            var f = t.length * e.length * a;
                            c && (f *= 2), u = Math.ceil(o / f);
                        }
                    }
                    for(var p = 0; p <= u; p++){
                        var v = r(t, e, a);
                        h && n(v), d = d.concat(v), c && (v.reverse(), d = d.concat(v));
                    }
                    return o && d.splice(o), d;
                };
            },
            66458: (t, e, i)=>{
                var s = i(72677);
                t.exports = function(t, e, i, n) {
                    var r;
                    if (void 0 === n && (n = t), !Array.isArray(e)) return -1 !== (r = t.indexOf(e)) ? (s(t, r), i && i.call(n, e), e) : null;
                    for(var o = e.length - 1, a = []; o >= 0;){
                        var h = e[o];
                        -1 !== (r = t.indexOf(h)) && (s(t, r), a.push(h), i && i.call(n, h)), o--;
                    }
                    return a;
                };
            },
            8324: (t, e, i)=>{
                var s = i(72677);
                t.exports = function(t, e, i, n) {
                    if (void 0 === n && (n = t), e < 0 || e > t.length - 1) throw new Error("Index out of bounds");
                    var r = s(t, e);
                    return i && i.call(n, r), r;
                };
            },
            47427: (t, e, i)=>{
                var s = i(45838);
                t.exports = function(t, e, i, n, r) {
                    if (void 0 === e && (e = 0), void 0 === i && (i = t.length), void 0 === r && (r = t), s(t, e, i)) {
                        var o = i - e, a = t.splice(e, o);
                        if (n) for(var h = 0; h < a.length; h++){
                            var l = a[h];
                            n.call(r, l);
                        }
                        return a;
                    }
                    return [];
                };
            },
            50147: (t, e, i)=>{
                var s = i(72677);
                t.exports = function(t, e, i) {
                    void 0 === e && (e = 0), void 0 === i && (i = t.length);
                    var n = e + Math.floor(Math.random() * i);
                    return s(t, n);
                };
            },
            80402: (t)=>{
                t.exports = function(t, e, i) {
                    var s = t.indexOf(e), n = t.indexOf(i);
                    return -1 !== s && -1 === n && (t[s] = i, !0);
                };
            },
            77640: (t)=>{
                t.exports = function(t, e) {
                    void 0 === e && (e = 1);
                    for(var i = null, s = 0; s < e; s++)i = t.shift(), t.push(i);
                    return i;
                };
            },
            38487: (t)=>{
                t.exports = function(t, e) {
                    void 0 === e && (e = 1);
                    for(var i = null, s = 0; s < e; s++)i = t.pop(), t.unshift(i);
                    return i;
                };
            },
            45838: (t)=>{
                t.exports = function(t, e, i, s) {
                    var n = t.length;
                    if (e < 0 || e > n || e >= i || i > n) {
                        if (s) throw new Error("Range Error: Values outside acceptable range");
                        return !1;
                    }
                    return !0;
                };
            },
            27847: (t)=>{
                t.exports = function(t, e) {
                    var i = t.indexOf(e);
                    return -1 !== i && i > 0 && (t.splice(i, 1), t.unshift(e)), e;
                };
            },
            6034: (t, e, i)=>{
                var s = i(45838);
                t.exports = function(t, e, i, n, r) {
                    if (void 0 === n && (n = 0), void 0 === r && (r = t.length), s(t, n, r)) for(var o = n; o < r; o++){
                        var a = t[o];
                        a.hasOwnProperty(e) && (a[e] = i);
                    }
                    return t;
                };
            },
            18592: (t)=>{
                t.exports = function(t) {
                    for(var e = t.length - 1; e > 0; e--){
                        var i = Math.floor(Math.random() * (e + 1)), s = t[e];
                        t[e] = t[i], t[i] = s;
                    }
                    return t;
                };
            },
            28834: (t)=>{
                t.exports = function(t) {
                    var e = /\D/g;
                    return t.sort(function(t, i) {
                        return parseInt(t.replace(e, ""), 10) - parseInt(i.replace(e, ""), 10);
                    }), t;
                };
            },
            72677: (t)=>{
                t.exports = function(t, e) {
                    if (!(e >= t.length)) {
                        for(var i = t.length - 1, s = t[e], n = e; n < i; n++)t[n] = t[n + 1];
                        return t.length = i, s;
                    }
                };
            },
            17922: (t, e, i)=>{
                var s = i(77290);
                function n(t, e) {
                    return String(t).localeCompare(e);
                }
                function r(t, e, i, s) {
                    var n, r, o, a, h, l = t.length, u = 0, c = 2 * i;
                    for(n = 0; n < l; n += c)for(o = (r = n + i) + i, r > l && (r = l), o > l && (o = l), a = n, h = r;;)if (a < r && h < o) e(t[a], t[h]) <= 0 ? s[u++] = t[a++] : s[u++] = t[h++];
                    else if (a < r) s[u++] = t[a++];
                    else {
                        if (!(h < o)) break;
                        s[u++] = t[h++];
                    }
                }
                t.exports = function(t, e) {
                    if (void 0 === e && (e = n), !t || t.length < 2) return t;
                    if (s.features.stableSort) return t.sort(e);
                    var i = function(t, e) {
                        var i = t.length;
                        if (i <= 1) return t;
                        for(var s = new Array(i), n = 1; n < i; n *= 2){
                            r(t, e, n, s);
                            var o = t;
                            t = s, s = o;
                        }
                        return t;
                    }(t, e);
                    return i !== t && r(i, null, t.length, t), t;
                };
            },
            96928: (t)=>{
                t.exports = function(t, e, i) {
                    if (e === i) return t;
                    var s = t.indexOf(e), n = t.indexOf(i);
                    if (s < 0 || n < 0) throw new Error("Supplied items must be elements of the same array");
                    return t[s] = i, t[n] = e, t;
                };
            },
            59959: (t, e, i)=>{
                t.exports = {
                    Matrix: i(13515),
                    Add: i(78991),
                    AddAt: i(48522),
                    BringToTop: i(58742),
                    CountAllMatching: i(30164),
                    Each: i(36337),
                    EachInRange: i(46208),
                    FindClosestInSorted: i(2406),
                    Flatten: i(5454),
                    GetAll: i(71608),
                    GetFirst: i(51463),
                    GetRandom: i(72861),
                    MoveDown: i(51172),
                    MoveTo: i(68396),
                    MoveUp: i(27555),
                    MoveAbove: i(24218),
                    MoveBelow: i(58258),
                    NumberArray: i(13401),
                    NumberArrayStep: i(89955),
                    QuickSelect: i(53466),
                    Range: i(75757),
                    Remove: i(66458),
                    RemoveAt: i(8324),
                    RemoveBetween: i(47427),
                    RemoveRandomElement: i(50147),
                    Replace: i(80402),
                    RotateLeft: i(77640),
                    RotateRight: i(38487),
                    SafeRange: i(45838),
                    SendToBack: i(27847),
                    SetAll: i(6034),
                    Shuffle: i(18592),
                    SortByDigits: i(28834),
                    SpliceOne: i(72677),
                    StableSort: i(17922),
                    Swap: i(96928)
                };
            },
            97494: (t)=>{
                t.exports = function(t) {
                    if (!Array.isArray(t) || !Array.isArray(t[0])) return !1;
                    for(var e = t[0].length, i = 1; i < t.length; i++)if (t[i].length !== e) return !1;
                    return !0;
                };
            },
            68428: (t, e, i)=>{
                var s = i(76400), n = i(97494);
                t.exports = function(t) {
                    var e = "";
                    if (!n(t)) return e;
                    for(var i = 0; i < t.length; i++){
                        for(var r = 0; r < t[i].length; r++){
                            var o = t[i][r].toString();
                            e += "undefined" !== o ? s(o, 2) : "?", r < t[i].length - 1 && (e += " |");
                        }
                        if (i < t.length - 1) {
                            e += "\n";
                            for(var a = 0; a < t[i].length; a++)e += "---", a < t[i].length - 1 && (e += "+");
                            e += "\n";
                        }
                    }
                    return e;
                };
            },
            59521: (t)=>{
                t.exports = function(t) {
                    return t.reverse();
                };
            },
            51995: (t)=>{
                t.exports = function(t) {
                    for(var e = 0; e < t.length; e++)t[e].reverse();
                    return t;
                };
            },
            89011: (t, e, i)=>{
                var s = i(63515);
                t.exports = function(t) {
                    return s(t, 180);
                };
            },
            42549: (t, e, i)=>{
                var s = i(63515);
                t.exports = function(t) {
                    return s(t, 90);
                };
            },
            63515: (t, e, i)=>{
                var s = i(97494), n = i(78581);
                t.exports = function(t, e) {
                    if (void 0 === e && (e = 90), !s(t)) return null;
                    if ("string" != typeof e && (e = (e % 360 + 360) % 360), 90 === e || -270 === e || "rotateLeft" === e) (t = n(t)).reverse();
                    else if (-90 === e || 270 === e || "rotateRight" === e) t.reverse(), t = n(t);
                    else if (180 === Math.abs(e) || "rotate180" === e) {
                        for(var i = 0; i < t.length; i++)t[i].reverse();
                        t.reverse();
                    }
                    return t;
                };
            },
            14305: (t, e, i)=>{
                var s = i(63515);
                t.exports = function(t) {
                    return s(t, -90);
                };
            },
            27365: (t, e, i)=>{
                var s = i(77640), n = i(38487);
                t.exports = function(t, e, i) {
                    if (void 0 === e && (e = 0), void 0 === i && (i = 0), 0 !== i && (i < 0 ? s(t, Math.abs(i)) : n(t, i)), 0 !== e) for(var r = 0; r < t.length; r++){
                        var o = t[r];
                        e < 0 ? s(o, Math.abs(e)) : n(o, e);
                    }
                    return t;
                };
            },
            78581: (t)=>{
                t.exports = function(t) {
                    for(var e = t.length, i = t[0].length, s = new Array(i), n = 0; n < i; n++){
                        s[n] = new Array(e);
                        for(var r = e - 1; r > -1; r--)s[n][r] = t[r][n];
                    }
                    return s;
                };
            },
            13515: (t, e, i)=>{
                t.exports = {
                    CheckMatrix: i(97494),
                    MatrixToString: i(68428),
                    ReverseColumns: i(59521),
                    ReverseRows: i(51995),
                    Rotate180: i(89011),
                    RotateLeft: i(42549),
                    RotateMatrix: i(63515),
                    RotateRight: i(14305),
                    Translate: i(27365),
                    TransposeMatrix: i(78581)
                };
            },
            40581: (t)=>{
                var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
                t.exports = function(t, i) {
                    for(var s = new Uint8Array(t), n = s.length, r = i ? "data:" + i + ";base64," : "", o = 0; o < n; o += 3)r += e[s[o] >> 2], r += e[(3 & s[o]) << 4 | s[o + 1] >> 4], r += e[(15 & s[o + 1]) << 2 | s[o + 2] >> 6], r += e[63 & s[o + 2]];
                    return n % 3 == 2 ? r = r.substring(0, r.length - 1) + "=" : n % 3 == 1 && (r = r.substring(0, r.length - 2) + "=="), r;
                };
            },
            82329: (t)=>{
                for(var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", i = new Uint8Array(256), s = 0; s < e.length; s++)i[e.charCodeAt(s)] = s;
                t.exports = function(t) {
                    var e, s, n, r, o = (t = t.substr(t.indexOf(",") + 1)).length, a = .75 * o, h = 0;
                    "=" === t[o - 1] && (a--, "=" === t[o - 2] && a--);
                    for(var l = new ArrayBuffer(a), u = new Uint8Array(l), c = 0; c < o; c += 4)e = i[t.charCodeAt(c)], s = i[t.charCodeAt(c + 1)], n = i[t.charCodeAt(c + 2)], r = i[t.charCodeAt(c + 3)], u[h++] = e << 2 | s >> 4, u[h++] = (15 & s) << 4 | n >> 2, u[h++] = (3 & n) << 6 | 63 & r;
                    return l;
                };
            },
            78417: (t, e, i)=>{
                t.exports = {
                    ArrayBufferToBase64: i(40581),
                    Base64ToArrayBuffer: i(82329)
                };
            },
            22178: (t, e, i)=>{
                t.exports = {
                    Array: i(59959),
                    Base64: i(78417),
                    Objects: i(64615),
                    String: i(50379),
                    NOOP: i(72283),
                    NULL: i(10618)
                };
            },
            32742: (t)=>{
                t.exports = function(t) {
                    var e = {};
                    for(var i in t)Array.isArray(t[i]) ? e[i] = t[i].slice(0) : e[i] = t[i];
                    return e;
                };
            },
            28699: (t)=>{
                var e = function(t) {
                    var i, s, n;
                    if ("object" != typeof t || null === t) return t;
                    for(n in i = Array.isArray(t) ? [] : {}, t)s = t[n], i[n] = e(s);
                    return i;
                };
                t.exports = e;
            },
            98611: (t, e, i)=>{
                var s = i(42911), n = function() {
                    var t, e, i, r, o, a, h = arguments[0] || {}, l = 1, u = arguments.length, c = !1;
                    for("boolean" == typeof h && (c = h, h = arguments[1] || {}, l = 2), u === l && (h = this, --l); l < u; l++)if (null != (t = arguments[l])) for(e in t)i = h[e], h !== (r = t[e]) && (c && r && (s(r) || (o = Array.isArray(r))) ? (o ? (o = !1, a = i && Array.isArray(i) ? i : []) : a = i && s(i) ? i : {}, h[e] = n(c, a, r)) : void 0 !== r && (h[e] = r));
                    return h;
                };
                t.exports = n;
            },
            20494: (t, e, i)=>{
                var s = i(5923), n = i(10850);
                t.exports = function(t, e, i) {
                    var r = n(t, e, null);
                    if (null === r) return i;
                    if (Array.isArray(r)) return s.RND.pick(r);
                    if ("object" == typeof r) {
                        if (r.hasOwnProperty("randInt")) return s.RND.integerInRange(r.randInt[0], r.randInt[1]);
                        if (r.hasOwnProperty("randFloat")) return s.RND.realInRange(r.randFloat[0], r.randFloat[1]);
                    } else if ("function" == typeof r) return r(e);
                    return r;
                };
            },
            72632: (t)=>{
                t.exports = function(t, e, i) {
                    var s = typeof t;
                    return t && "number" !== s && "string" !== s && t.hasOwnProperty(e) && void 0 !== t[e] ? t[e] : i;
                };
            },
            94324: (t, e, i)=>{
                var s = i(10850), n = i(82897);
                t.exports = function(t, e, i, r, o) {
                    void 0 === o && (o = i);
                    var a = s(t, e, o);
                    return n(a, i, r);
                };
            },
            10850: (t)=>{
                t.exports = function(t, e, i, s) {
                    if (!t && !s || "number" == typeof t) return i;
                    if (t && t.hasOwnProperty(e)) return t[e];
                    if (s && s.hasOwnProperty(e)) return s[e];
                    if (-1 !== e.indexOf(".")) {
                        for(var n = e.split("."), r = t, o = s, a = i, h = i, l = !0, u = !0, c = 0; c < n.length; c++)r && r.hasOwnProperty(n[c]) ? (a = r[n[c]], r = r[n[c]]) : l = !1, o && o.hasOwnProperty(n[c]) ? (h = o[n[c]], o = o[n[c]]) : u = !1;
                        return l ? a : u ? h : i;
                    }
                    return i;
                };
            },
            87701: (t)=>{
                t.exports = function(t, e) {
                    for(var i = 0; i < e.length; i++)if (!t.hasOwnProperty(e[i])) return !1;
                    return !0;
                };
            },
            53523: (t)=>{
                t.exports = function(t, e) {
                    for(var i = 0; i < e.length; i++)if (t.hasOwnProperty(e[i])) return !0;
                    return !1;
                };
            },
            19256: (t)=>{
                t.exports = function(t, e) {
                    return t.hasOwnProperty(e);
                };
            },
            42911: (t)=>{
                t.exports = function(t) {
                    if (!t || "object" != typeof t || t.nodeType || t === t.window) return !1;
                    try {
                        if (t.constructor && !({}).hasOwnProperty.call(t.constructor.prototype, "isPrototypeOf")) return !1;
                    } catch (t) {
                        return !1;
                    }
                    return !0;
                };
            },
            30657: (t, e, i)=>{
                var s = i(32742);
                t.exports = function(t, e) {
                    var i = s(t);
                    for(var n in e)i.hasOwnProperty(n) || (i[n] = e[n]);
                    return i;
                };
            },
            72066: (t, e, i)=>{
                var s = i(32742);
                t.exports = function(t, e) {
                    var i = s(t);
                    for(var n in e)i.hasOwnProperty(n) && (i[n] = e[n]);
                    return i;
                };
            },
            28820: (t, e, i)=>{
                var s = i(19256);
                t.exports = function(t, e) {
                    for(var i = {}, n = 0; n < e.length; n++){
                        var r = e[n];
                        s(t, r) && (i[r] = t[r]);
                    }
                    return i;
                };
            },
            22440: (t)=>{
                t.exports = function(t, e, i) {
                    if (!t || "number" == typeof t) return !1;
                    if (t.hasOwnProperty(e)) return t[e] = i, !0;
                    if (-1 !== e.indexOf(".")) {
                        for(var s = e.split("."), n = t, r = t, o = 0; o < s.length; o++){
                            if (!n.hasOwnProperty(s[o])) return !1;
                            r = n, n = n[s[o]];
                        }
                        return r[s[s.length - 1]] = i, !0;
                    }
                    return !1;
                };
            },
            64615: (t, e, i)=>{
                t.exports = {
                    Clone: i(32742),
                    DeepCopy: i(28699),
                    Extend: i(98611),
                    GetAdvancedValue: i(20494),
                    GetFastValue: i(72632),
                    GetMinMaxValue: i(94324),
                    GetValue: i(10850),
                    HasAll: i(87701),
                    HasAny: i(53523),
                    HasValue: i(19256),
                    IsPlainObject: i(42911),
                    Merge: i(30657),
                    MergeRight: i(72066),
                    Pick: i(28820),
                    SetValue: i(22440)
                };
            },
            69429: (t)=>{
                t.exports = function(t, e) {
                    return t.replace(/%([0-9]+)/g, function(t, i) {
                        return e[Number(i) - 1];
                    });
                };
            },
            76400: (t)=>{
                t.exports = function(t, e, i, s) {
                    void 0 === e && (e = 0), void 0 === i && (i = " "), void 0 === s && (s = 3);
                    var n = 0;
                    if (e + 1 >= (t = t.toString()).length) switch(s){
                        case 1:
                            t = new Array(e + 1 - t.length).join(i) + t;
                            break;
                        case 3:
                            var r = Math.ceil((n = e - t.length) / 2);
                            t = new Array(n - r + 1).join(i) + t + new Array(r + 1).join(i);
                            break;
                        default:
                            t += new Array(e + 1 - t.length).join(i);
                    }
                    return t;
                };
            },
            76872: (t)=>{
                t.exports = function(t, e) {
                    return 0 === e ? t.slice(1) : t.slice(0, e - 1) + t.slice(e);
                };
            },
            8051: (t)=>{
                t.exports = function(t) {
                    return t.split("").reverse().join("");
                };
            },
            76583: (t)=>{
                t.exports = function() {
                    return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(t) {
                        var e = 16 * Math.random() | 0;
                        return ("x" === t ? e : 3 & e | 8).toString(16);
                    });
                };
            },
            40587: (t)=>{
                t.exports = function(t) {
                    return t && t[0].toUpperCase() + t.slice(1);
                };
            },
            50379: (t, e, i)=>{
                t.exports = {
                    Format: i(69429),
                    Pad: i(76400),
                    RemoveAt: i(76872),
                    Reverse: i(8051),
                    UppercaseFirst: i(40587),
                    UUID: i(76583)
                };
            }
        }, e = {};
        function i(s) {
            var n = e[s];
            if (void 0 !== n) return n.exports;
            var r = e[s] = {
                exports: {}
            };
            return t[s](r, r.exports, i), r.exports;
        }
        return i.g = function() {
            if ("object" == typeof globalThis) return globalThis;
            try {
                return this || new Function("return this")();
            } catch (t) {
                if ("object" == typeof window) return window;
            }
        }(), i(92491);
    })());

//# sourceMappingURL=index.b38e0ef7.js.map
