! function(t) { var e = {}; function n(r) { if (e[r]) return e[r].exports; var i = e[r] = { i: r, l: !1, exports: {} }; return t[r].call(i.exports, i, i.exports, n), i.l = !0, i.exports } n.m = t, n.c = e, n.d = function(t, e, r) { n.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: r }) }, n.r = function(t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }) }, n.t = function(t, e) { if (1 & e && (t = n(t)), 8 & e) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var r = Object.create(null); if (n.r(r), Object.defineProperty(r, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var i in t) n.d(r, i, function(e) { return t[e] }.bind(null, i)); return r }, n.n = function(t) { var e = t && t.__esModule ? function() { return t.default } : function() { return t }; return n.d(e, "a", e), e }, n.o = function(t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, n.p = "", n(n.s = 125) }([function(t, e) { function n(e) { return t.exports = n = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) { return t.__proto__ || Object.getPrototypeOf(t) }, n(e) } t.exports = n }, function(t, e, n) { var r = n(17), i = n(7); t.exports = function(t, e) { return !e || "object" !== r(e) && "function" != typeof e ? i(t) : e } }, function(t, e) { t.exports = function(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") } }, function(t, e, n) { var r = n(128); t.exports = function(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), e && r(t, e) } }, function(t, e) { function n(t, e) { for (var n = 0; n < e.length; n++) { var r = e[n]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r) } } t.exports = function(t, e, r) { return e && n(t.prototype, e), r && n(t, r), t } }, function(t, e, n) { var r = n(141); function i(e, n, o) { return "undefined" != typeof Reflect && Reflect.get ? t.exports = i = Reflect.get : t.exports = i = function(t, e, n) { var i = r(t, e); if (i) { var o = Object.getOwnPropertyDescriptor(i, e); return o.get ? o.get.call(n) : o.value } }, i(e, n, o || e) } t.exports = i }, function(t, e, n) { var r = n(162), i = n(163), o = n(164); t.exports = function(t) { return r(t) || i(t) || o() } }, function(t, e) { t.exports = function(t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t } }, function(t, e, n) { var r = n(127); t.exports = function(t) { for (var e = 1; e < arguments.length; e++) { var n = null != arguments[e] ? arguments[e] : {}, i = Object.keys(n); "function" == typeof Object.getOwnPropertySymbols && (i = i.concat(Object.getOwnPropertySymbols(n).filter(function(t) { return Object.getOwnPropertyDescriptor(n, t).enumerable }))), i.forEach(function(e) { r(t, e, n[e]) }) } return t } }, function(t, e, n) { var r, i, o; ! function(n) { var a = /iPhone/i, s = /iPod/i, A = /iPad/i, h = /\bAndroid(?:.+)Mobile\b/i, c = /Android/i, u = /\bAndroid(?:.+)SD4930UR\b/i, l = /\bAndroid(?:.+)(?:KF[A-Z]{2,4})\b/i, d = /Windows Phone/i, p = /\bWindows(?:.+)ARM\b/i, f = /BlackBerry/i, y = /BB10/i, x = /Opera Mini/i, m = /\b(CriOS|Chrome)(?:.+)Mobile/i, g = /Mobile(?:.+)Firefox\b/i; function w(t, e) { return t.test(e) } function v(t) { var e = t || ("undefined" != typeof navigator ? navigator.userAgent : ""), n = e.split("[FBAN"); void 0 !== n[1] && (e = n[0]), void 0 !== (n = e.split("Twitter"))[1] && (e = n[0]); var r = { apple: { phone: w(a, e) && !w(d, e), ipod: w(s, e), tablet: !w(a, e) && w(A, e) && !w(d, e), device: (w(a, e) || w(s, e) || w(A, e)) && !w(d, e) }, amazon: { phone: w(u, e), tablet: !w(u, e) && w(l, e), device: w(u, e) || w(l, e) }, android: { phone: !w(d, e) && w(u, e) || !w(d, e) && w(h, e), tablet: !w(d, e) && !w(u, e) && !w(h, e) && (w(l, e) || w(c, e)), device: !w(d, e) && (w(u, e) || w(l, e) || w(h, e) || w(c, e)) || w(/\bokhttp\b/i, e) }, windows: { phone: w(d, e), tablet: w(p, e), device: w(d, e) || w(p, e) }, other: { blackberry: w(f, e), blackberry10: w(y, e), opera: w(x, e), firefox: w(g, e), chrome: w(m, e), device: w(f, e) || w(y, e) || w(x, e) || w(g, e) || w(m, e) } }; return r.any = r.apple.device || r.android.device || r.windows.device || r.other.device, r.phone = r.apple.phone || r.android.phone || r.windows.phone, r.tablet = r.apple.tablet || r.android.tablet || r.windows.tablet, r } t.exports && "undefined" == typeof window ? t.exports = v : t.exports && "undefined" != typeof window ? (t.exports = v(), t.exports.isMobile = v) : (i = [], r = n.isMobile = v(), void 0 === (o = "function" == typeof r ? r.apply(e, i) : r) || (t.exports = o)) }(this) }, function(t, e, n) { t.exports = n(126) }, function(t, e) { var n; n = function() { return this }(); try { n = n || new Function("return this")() } catch (t) { "object" == typeof window && (n = window) } t.exports = n }, function(t, e, n) { "use strict"; var r = n(133), i = n(135); function o() { this.protocol = null, this.slashes = null, this.auth = null, this.host = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.query = null, this.pathname = null, this.path = null, this.href = null } e.parse = g, e.resolve = function(t, e) { return g(t, !1, !0).resolve(e) }, e.resolveObject = function(t, e) { return t ? g(t, !1, !0).resolveObject(e) : e }, e.format = function(t) { i.isString(t) && (t = g(t)); return t instanceof o ? t.format() : o.prototype.format.call(t) }, e.Url = o; var a = /^([a-z0-9.+-]+:)/i, s = /:[0-9]*$/, A = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, h = ["{", "}", "|", "\\", "^", "`"].concat(["<", ">", '"', "`", " ", "\r", "\n", "\t"]), c = ["'"].concat(h), u = ["%", "/", "?", ";", "#"].concat(c), l = ["/", "?", "#"], d = /^[+a-z0-9A-Z_-]{0,63}$/, p = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, f = { javascript: !0, "javascript:": !0 }, y = { javascript: !0, "javascript:": !0 }, x = { http: !0, https: !0, ftp: !0, gopher: !0, file: !0, "http:": !0, "https:": !0, "ftp:": !0, "gopher:": !0, "file:": !0 }, m = n(136); function g(t, e, n) { if (t && i.isObject(t) && t instanceof o) return t; var r = new o; return r.parse(t, e, n), r } o.prototype.parse = function(t, e, n) { if (!i.isString(t)) throw new TypeError("Parameter 'url' must be a string, not " + typeof t); var o = t.indexOf("?"), s = -1 !== o && o < t.indexOf("#") ? "?" : "#", h = t.split(s); h[0] = h[0].replace(/\\/g, "/"); var g = t = h.join(s); if (g = g.trim(), !n && 1 === t.split("#").length) { var w = A.exec(g); if (w) return this.path = g, this.href = g, this.pathname = w[1], w[2] ? (this.search = w[2], this.query = e ? m.parse(this.search.substr(1)) : this.search.substr(1)) : e && (this.search = "", this.query = {}), this } var v = a.exec(g); if (v) { var b = (v = v[0]).toLowerCase(); this.protocol = b, g = g.substr(v.length) } if (n || v || g.match(/^\/\/[^@\/]+@[^@\/]+/)) { var _ = "//" === g.substr(0, 2); !_ || v && y[v] || (g = g.substr(2), this.slashes = !0) } if (!y[v] && (_ || v && !x[v])) { for (var S, E, C = -1, T = 0; T < l.length; T++) { -1 !== (k = g.indexOf(l[T])) && (-1 === C || k < C) && (C = k) } - 1 !== (E = -1 === C ? g.lastIndexOf("@") : g.lastIndexOf("@", C)) && (S = g.slice(0, E), g = g.slice(E + 1), this.auth = decodeURIComponent(S)), C = -1; for (T = 0; T < u.length; T++) { var k; - 1 !== (k = g.indexOf(u[T])) && (-1 === C || k < C) && (C = k) } - 1 === C && (C = g.length), this.host = g.slice(0, C), g = g.slice(C), this.parseHost(), this.hostname = this.hostname || ""; var I = "[" === this.hostname[0] && "]" === this.hostname[this.hostname.length - 1]; if (!I) for (var D = this.hostname.split(/\./), P = (T = 0, D.length); T < P; T++) { var R = D[T]; if (R && !R.match(d)) { for (var B = "", M = 0, O = R.length; M < O; M++) R.charCodeAt(M) > 127 ? B += "x" : B += R[M]; if (!B.match(d)) { var L = D.slice(0, T), H = D.slice(T + 1), z = R.match(p); z && (L.push(z[1]), H.unshift(z[2])), H.length && (g = "/" + H.join(".") + g), this.hostname = L.join("."); break } } } this.hostname.length > 255 ? this.hostname = "" : this.hostname = this.hostname.toLowerCase(), I || (this.hostname = r.toASCII(this.hostname)); var F = this.port ? ":" + this.port : "", N = this.hostname || ""; this.host = N + F, this.href += this.host, I && (this.hostname = this.hostname.substr(1, this.hostname.length - 2), "/" !== g[0] && (g = "/" + g)) } if (!f[b]) for (T = 0, P = c.length; T < P; T++) { var U = c[T]; if (-1 !== g.indexOf(U)) { var Q = encodeURIComponent(U); Q === U && (Q = escape(U)), g = g.split(U).join(Q) } } var j = g.indexOf("#"); - 1 !== j && (this.hash = g.substr(j), g = g.slice(0, j)); var X = g.indexOf("?"); if (-1 !== X ? (this.search = g.substr(X), this.query = g.substr(X + 1), e && (this.query = m.parse(this.query)), g = g.slice(0, X)) : e && (this.search = "", this.query = {}), g && (this.pathname = g), x[b] && this.hostname && !this.pathname && (this.pathname = "/"), this.pathname || this.search) { F = this.pathname || ""; var G = this.search || ""; this.path = F + G } return this.href = this.format(), this }, o.prototype.format = function() { var t = this.auth || ""; t && (t = (t = encodeURIComponent(t)).replace(/%3A/i, ":"), t += "@"); var e = this.protocol || "", n = this.pathname || "", r = this.hash || "", o = !1, a = ""; this.host ? o = t + this.host : this.hostname && (o = t + (-1 === this.hostname.indexOf(":") ? this.hostname : "[" + this.hostname + "]"), this.port && (o += ":" + this.port)), this.query && i.isObject(this.query) && Object.keys(this.query).length && (a = m.stringify(this.query)); var s = this.search || a && "?" + a || ""; return e && ":" !== e.substr(-1) && (e += ":"), this.slashes || (!e || x[e]) && !1 !== o ? (o = "//" + (o || ""), n && "/" !== n.charAt(0) && (n = "/" + n)) : o || (o = ""), r && "#" !== r.charAt(0) && (r = "#" + r), s && "?" !== s.charAt(0) && (s = "?" + s), e + o + (n = n.replace(/[?#]/g, function(t) { return encodeURIComponent(t) })) + (s = s.replace("#", "%23")) + r }, o.prototype.resolve = function(t) { return this.resolveObject(g(t, !1, !0)).format() }, o.prototype.resolveObject = function(t) { if (i.isString(t)) { var e = new o; e.parse(t, !1, !0), t = e } for (var n = new o, r = Object.keys(this), a = 0; a < r.length; a++) { var s = r[a]; n[s] = this[s] } if (n.hash = t.hash, "" === t.href) return n.href = n.format(), n; if (t.slashes && !t.protocol) { for (var A = Object.keys(t), h = 0; h < A.length; h++) { var c = A[h]; "protocol" !== c && (n[c] = t[c]) } return x[n.protocol] && n.hostname && !n.pathname && (n.path = n.pathname = "/"), n.href = n.format(), n } if (t.protocol && t.protocol !== n.protocol) { if (!x[t.protocol]) { for (var u = Object.keys(t), l = 0; l < u.length; l++) { var d = u[l]; n[d] = t[d] } return n.href = n.format(), n } if (n.protocol = t.protocol, t.host || y[t.protocol]) n.pathname = t.pathname; else { for (var p = (t.pathname || "").split("/"); p.length && !(t.host = p.shift());); t.host || (t.host = ""), t.hostname || (t.hostname = ""), "" !== p[0] && p.unshift(""), p.length < 2 && p.unshift(""), n.pathname = p.join("/") } if (n.search = t.search, n.query = t.query, n.host = t.host || "", n.auth = t.auth, n.hostname = t.hostname || t.host, n.port = t.port, n.pathname || n.search) { var f = n.pathname || "", m = n.search || ""; n.path = f + m } return n.slashes = n.slashes || t.slashes, n.href = n.format(), n } var g = n.pathname && "/" === n.pathname.charAt(0), w = t.host || t.pathname && "/" === t.pathname.charAt(0), v = w || g || n.host && t.pathname, b = v, _ = n.pathname && n.pathname.split("/") || [], S = (p = t.pathname && t.pathname.split("/") || [], n.protocol && !x[n.protocol]); if (S && (n.hostname = "", n.port = null, n.host && ("" === _[0] ? _[0] = n.host : _.unshift(n.host)), n.host = "", t.protocol && (t.hostname = null, t.port = null, t.host && ("" === p[0] ? p[0] = t.host : p.unshift(t.host)), t.host = null), v = v && ("" === p[0] || "" === _[0])), w) n.host = t.host || "" === t.host ? t.host : n.host, n.hostname = t.hostname || "" === t.hostname ? t.hostname : n.hostname, n.search = t.search, n.query = t.query, _ = p; else if (p.length) _ || (_ = []), _.pop(), _ = _.concat(p), n.search = t.search, n.query = t.query; else if (!i.isNullOrUndefined(t.search)) { if (S) n.hostname = n.host = _.shift(), (I = !!(n.host && n.host.indexOf("@") > 0) && n.host.split("@")) && (n.auth = I.shift(), n.host = n.hostname = I.shift()); return n.search = t.search, n.query = t.query, i.isNull(n.pathname) && i.isNull(n.search) || (n.path = (n.pathname ? n.pathname : "") + (n.search ? n.search : "")), n.href = n.format(), n } if (!_.length) return n.pathname = null, n.search ? n.path = "/" + n.search : n.path = null, n.href = n.format(), n; for (var E = _.slice(-1)[0], C = (n.host || t.host || _.length > 1) && ("." === E || ".." === E) || "" === E, T = 0, k = _.length; k >= 0; k--) "." === (E = _[k]) ? _.splice(k, 1) : ".." === E ? (_.splice(k, 1), T++) : T && (_.splice(k, 1), T--); if (!v && !b) for (; T--; T) _.unshift(".."); !v || "" === _[0] || _[0] && "/" === _[0].charAt(0) || _.unshift(""), C && "/" !== _.join("/").substr(-1) && _.push(""); var I, D = "" === _[0] || _[0] && "/" === _[0].charAt(0); S && (n.hostname = n.host = D ? "" : _.length ? _.shift() : "", (I = !!(n.host && n.host.indexOf("@") > 0) && n.host.split("@")) && (n.auth = I.shift(), n.host = n.hostname = I.shift())); return (v = v || n.host && _.length) && !D && _.unshift(""), _.length ? n.pathname = _.join("/") : (n.pathname = null, n.path = null), i.isNull(n.pathname) && i.isNull(n.search) || (n.path = (n.pathname ? n.pathname : "") + (n.search ? n.search : "")), n.auth = t.auth || n.auth, n.slashes = n.slashes || t.slashes, n.href = n.format(), n }, o.prototype.parseHost = function() { var t = this.host, e = s.exec(t); e && (":" !== (e = e[0]) && (this.port = e.substr(1)), t = t.substr(0, t.length - e.length)), t && (this.hostname = t) } }, function(t, e) { t.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAADEklEQVRogc2asW4TQRCG/3VSQAJxOmhQXEOR8ASJhJCoSAr6uKEObxCJGolIPIBFQZ3Q0tgdZUxJgRwKFAokmwREA3wUexdOts+3u7d39idZWXnXN/N7vDNzezGKCLAk6ZqkpqTrklaSv9nxiqSvki4lfTLGfIth28S4SAqwKumGpJvJa9p4/L1fkvqSTowx56G2G6U8n8Qk12xkxmZsPD5/S9ITSW+BV8DdEMPRhACujs+afyjpHfAGaPrYjxmREMfz5h9LOgO2fYzHIkZEsvPrknrAQd1CYkYk69cR0HExHovYEcnSLhKzqBGZVhZmiqkrIuPvFc3n+dUGXk6bWI6lIjGOpB+ShpL+SFpKXsuZ8R1J9yTdl7Sm/Cjl8QzoG2NeZ9+MVtmBZWPMb4/1K5IeSHoq6bYmO4BZv5aRpJYx5nu4x5EBVoEXwEfgC3AB/KWYwkw2F4B94By4dBCR4lwwawV4Dvz0EHI8b5+nAqwB7z2EAGxI8bvfUhhjLiQ9km3rXdmryJ3yAJseETmdt78zAQ49xDSj3iHGBHs/MnJcvrdQeyRLUux6jst3FlZIguum31p0IT3Hda2rpjHJx+3M5Ej2ZONzPL+8cd0jLUlX7UEeu5W5WQDQdE1brjl7bj2Nj5Bjh3XdRRdiAFwuaIypveYAm3LLXCPnrJVctG62HNf1G3LPDDthvpTC1eZZQ+5Fpx3kSjlcO9t+Q+5FZ6vO7IU9YVx3XN7zbZkHVTqfgq0fQx+fGsaYD5LOHG20gMPKFPznSO7ROLka4df7A+xX4r4Ku4xpbGY/vOH5YaigdQEOPH2YLNRAJ0BMtMgE2p9MPvhtsCyl9kxi16VNGif/gA7/0KZ0CUjNwC4wCLA3pOjRHGHfTsop9svIbWeAbWxyCRGQUrw/saE+LWGkatx/ytgiGbJfqsb/4BorZpEiM/UBj4+gzrwVECvNM18xcbsIwlNzKEOq6rax+6Zbg4gOyeOCSsFGZ1CBgAHzOLHBdqrdCAKOywqIcjKCbRfasocFLRXfa/dkb7HT/9Mq/XT2HywGHGG+XJ2rAAAAAElFTkSuQmCC" }, function(t, e, n) { t.exports = n.p + "images/48b008015901097a88b7803f4ad868da-title.png" }, function(t, e) { function n(t, e, n, r, i, o, a) { try { var s = t[o](a), A = s.value } catch (t) { return void n(t) } s.done ? e(A) : Promise.resolve(A).then(r, i) } t.exports = function(t) { return function() { var e = this, r = arguments; return new Promise(function(i, o) { var a = t.apply(e, r); function s(t) { n(a, i, o, s, A, "next", t) } function A(t) { n(a, i, o, s, A, "throw", t) } s(void 0) }) } } }, function(t, e, n) { "use strict"; var r = n(139).Loader, i = n(26).Resource, o = n(25), a = n(140); r.Resource = i, r.async = o, r.encodeBinary = a, r.base64 = a, t.exports = r, t.exports.Loader = r, t.exports.default = r }, function(t, e) { function n(t) { return (n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t })(t) } function r(e) { return "function" == typeof Symbol && "symbol" === n(Symbol.iterator) ? t.exports = r = function(t) { return n(t) } : t.exports = r = function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : n(t) }, r(e) } t.exports = r }, function(t, e) { t.exports = "data:image/png;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAUAAAEDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDPooor+lD+WwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAH7BRS0VnzGdwxRUmKKzAkooorO4DvLop2KKz5iSSinbKKzJDb70VJ5dFZ3AdRRRWYEmKKd5dFZ8wuVDqKkorMNQoqTFFZ3IuO2UU6is+YAoqTFFZXQDtlFOoqBWF2Gin0VF2Go/YKKWiseYi4uw0U/FFRcCSiiiswHeXRTsUVnzE6klFLsNFY8wXH0U7y6Km4rsdRRRWYiTFFO8uis+YB1FO2UVjzE6jqKkxRU3JHbKKdRWdx3YUVJiiseYQ/YKKWipuAuw0U+isronUfsFFLRWXMTckooxRWfMVzElFFFZ8xI7ZRTsUVF0BJRRRWXMTzElFO8uis+Ym46ipKKz5gCineXRWfMA6inbKKyuwHUVJiio5ieYdsop1FZXZIUVJiio5gH7BRSbKKz5gH7DRT6Kz5ieYfsFFLRWNw5hdhop+KKzuSf/Z" }, function(t, e, n) { t.exports = n.p + "images/93ff3fc5d168e31f731739824e0659b3-SHOP_UI0005.png" }, function(t) { t.exports = [{ name: "LEVEL_009", start: "START006", mid: "MIDDLE002", end: "FINISH005" }, { name: "LEVEL_012", start: "START027", mid: "MIDDLE030", end: "FINISH001" }, { name: "LEVEL_013", start: "START011", mid: "MIDDLE021", end: "FINISH000" }, { name: "LEVEL_016", start: "START012", mid: "MIDDLE004", end: "FINISH035" }, { name: "LEVEL_017", start: "START013", mid: "MIDDLE002", end: "FINISH009" }, { name: "LEVEL_018", start: "START002", mid: "MIDDLE008", end: "FINISH004" }, { name: "LEVEL_020", start: "START006", mid: "MIDDLE003", end: "FINISH008" }, { name: "LEVEL_021", start: "START014", mid: "MIDDLE020", end: "FINISH003" }, { name: "LEVEL_023", start: "START007", mid: "MIDDLE038", end: "FINISH032" }, { name: "LEVEL_024", start: "START003", mid: "MIDDLE020", end: "FINISH000" }, { name: "LEVEL_029", start: "START010", mid: "MIDDLE034", end: "FINISH011" }, { name: "LEVEL_031", start: "START006", mid: "MIDDLE039", end: "FINISH016" }, { name: "LEVEL_033", start: "START023", mid: "MIDDLE013", end: "FINISH008" }, { name: "LEVEL_036", start: "START001", mid: "MIDDLE028", end: "FINISH018" }, { name: "LEVEL_037", start: "START020", mid: "MIDDLE021", end: "FINISH030" }, { name: "LEVEL_038", start: "START019", mid: "MIDDLE016", end: "FINISH020" }, { name: "LEVEL_041", start: "START005", mid: "MIDDLE024", end: "FINISH006" }, { name: "LEVEL_046", start: "START001", mid: "MIDDLE011", end: "FINISH014" }, { name: "LEVEL_048", start: "START006", mid: "MIDDLE012", end: "FINISH017" }, { name: "LEVEL_049", start: "START027", mid: "MIDDLE003", end: "FINISH019" }, { name: "LEVEL_050", start: "START030", mid: "MIDDLE029", end: "FINISH009" }, { name: "LEVEL_052", start: "START003", mid: "MIDDLE005", end: "FINISH005" }, { name: "LEVEL_053", start: "START010", mid: "MIDDLE009", end: "FINISH013" }, { name: "LEVEL_054", start: "START026", mid: "MIDDLE019", end: "FINISH001" }, { name: "LEVEL_056", start: "START014", mid: "MIDDLE026", end: "FINISH003" }, { name: "LEVEL_057", start: "START007", mid: "MIDDLE015", end: "FINISH007" }, { name: "LEVEL_058", start: "START011", mid: "MIDDLE027", end: "FINISH004" }, { name: "LEVEL_060", start: "START007", mid: "MIDDLE035", end: "FINISH036" }, { name: "LEVEL_062", start: "START002", mid: "MIDDLE041", end: "FINISH021" }, { name: "LEVEL_063", start: "START007", mid: "MIDDLE035", end: "FINISH036" }] }, function(t, e, n) { "use strict"; var r = Object.prototype.hasOwnProperty, i = "~"; function o() {} function a(t, e, n) { this.fn = t, this.context = e, this.once = n || !1 } function s(t, e, n, r, o) { if ("function" != typeof n) throw new TypeError("The listener must be a function"); var s = new a(n, r || t, o), A = i ? i + e : e; return t._events[A] ? t._events[A].fn ? t._events[A] = [t._events[A], s] : t._events[A].push(s) : (t._events[A] = s, t._eventsCount++), t } function A(t, e) { 0 == --t._eventsCount ? t._events = new o : delete t._events[e] } function h() { this._events = new o, this._eventsCount = 0 } Object.create && (o.prototype = Object.create(null), (new o).__proto__ || (i = !1)), h.prototype.eventNames = function() { var t, e, n = []; if (0 === this._eventsCount) return n; for (e in t = this._events) r.call(t, e) && n.push(i ? e.slice(1) : e); return Object.getOwnPropertySymbols ? n.concat(Object.getOwnPropertySymbols(t)) : n }, h.prototype.listeners = function(t) { var e = i ? i + t : t, n = this._events[e]; if (!n) return []; if (n.fn) return [n.fn]; for (var r = 0, o = n.length, a = new Array(o); r < o; r++) a[r] = n[r].fn; return a }, h.prototype.listenerCount = function(t) { var e = i ? i + t : t, n = this._events[e]; return n ? n.fn ? 1 : n.length : 0 }, h.prototype.emit = function(t, e, n, r, o, a) { var s = i ? i + t : t; if (!this._events[s]) return !1; var A, h, c = this._events[s], u = arguments.length; if (c.fn) { switch (c.once && this.removeListener(t, c.fn, void 0, !0), u) { case 1: return c.fn.call(c.context), !0; case 2: return c.fn.call(c.context, e), !0; case 3: return c.fn.call(c.context, e, n), !0; case 4: return c.fn.call(c.context, e, n, r), !0; case 5: return c.fn.call(c.context, e, n, r, o), !0; case 6: return c.fn.call(c.context, e, n, r, o, a), !0 } for (h = 1, A = new Array(u - 1); h < u; h++) A[h - 1] = arguments[h]; c.fn.apply(c.context, A) } else { var l, d = c.length; for (h = 0; h < d; h++) switch (c[h].once && this.removeListener(t, c[h].fn, void 0, !0), u) { case 1: c[h].fn.call(c[h].context); break; case 2: c[h].fn.call(c[h].context, e); break; case 3: c[h].fn.call(c[h].context, e, n); break; case 4: c[h].fn.call(c[h].context, e, n, r); break; default: if (!A) for (l = 1, A = new Array(u - 1); l < u; l++) A[l - 1] = arguments[l]; c[h].fn.apply(c[h].context, A) } } return !0 }, h.prototype.on = function(t, e, n) { return s(this, t, e, n, !1) }, h.prototype.once = function(t, e, n) { return s(this, t, e, n, !0) }, h.prototype.removeListener = function(t, e, n, r) { var o = i ? i + t : t; if (!this._events[o]) return this; if (!e) return A(this, o), this; var a = this._events[o]; if (a.fn) a.fn !== e || r && !a.once || n && a.context !== n || A(this, o); else { for (var s = 0, h = [], c = a.length; s < c; s++)(a[s].fn !== e || r && !a[s].once || n && a[s].context !== n) && h.push(a[s]); h.length ? this._events[o] = 1 === h.length ? h[0] : h : A(this, o) } return this }, h.prototype.removeAllListeners = function(t) { var e; return t ? (e = i ? i + t : t, this._events[e] && A(this, e)) : (this._events = new o, this._eventsCount = 0), this }, h.prototype.off = h.prototype.removeListener, h.prototype.addListener = h.prototype.on, h.prefixed = i, h.EventEmitter = h, t.exports = h }, function(t, e, n) { "use strict"; function r(t, e, n) { n = n || 2; var r, s, A, h, c, d, f, y = e && e.length, x = y ? e[0] * n : t.length, m = i(t, 0, x, n, !0), g = []; if (!m || m.next === m.prev) return g; if (y && (m = function(t, e, n, r) { var a, s, A, h, c, d = []; for (a = 0, s = e.length; a < s; a++) A = e[a] * r, h = a < s - 1 ? e[a + 1] * r : t.length, (c = i(t, A, h, r, !1)) === c.next && (c.steiner = !0), d.push(p(c)); for (d.sort(u), a = 0; a < d.length; a++) l(d[a], n), n = o(n, n.next); return n }(t, e, m, n)), t.length > 80 * n) { r = A = t[0], s = h = t[1]; for (var w = n; w < x; w += n)(c = t[w]) < r && (r = c), (d = t[w + 1]) < s && (s = d), c > A && (A = c), d > h && (h = d); f = 0 !== (f = Math.max(A - r, h - s)) ? 1 / f : 0 } return a(m, g, n, r, s, f), g } function i(t, e, n, r, i) { var o, a; if (i === E(t, e, n, r) > 0) for (o = e; o < n; o += r) a = b(o, t[o], t[o + 1], a); else for (o = n - r; o >= e; o -= r) a = b(o, t[o], t[o + 1], a); return a && m(a, a.next) && (_(a), a = a.next), a } function o(t, e) { if (!t) return t; e || (e = t); var n, r = t; do { if (n = !1, r.steiner || !m(r, r.next) && 0 !== x(r.prev, r, r.next)) r = r.next; else { if (_(r), (r = e = r.prev) === r.next) break; n = !0 } } while (n || r !== e); return e } function a(t, e, n, r, i, u, l) { if (t) { !l && u && function(t, e, n, r) { var i = t; do { null === i.z && (i.z = d(i.x, i.y, e, n, r)), i.prevZ = i.prev, i.nextZ = i.next, i = i.next } while (i !== t); i.prevZ.nextZ = null, i.prevZ = null, function(t) { var e, n, r, i, o, a, s, A, h = 1; do { for (n = t, t = null, o = null, a = 0; n;) { for (a++, r = n, s = 0, e = 0; e < h && (s++, r = r.nextZ); e++); for (A = h; s > 0 || A > 0 && r;) 0 !== s && (0 === A || !r || n.z <= r.z) ? (i = n, n = n.nextZ, s--) : (i = r, r = r.nextZ, A--), o ? o.nextZ = i : t = i, i.prevZ = o, o = i; n = r } o.nextZ = null, h *= 2 } while (a > 1) }(i) }(t, r, i, u); for (var p, f, y = t; t.prev !== t.next;) if (p = t.prev, f = t.next, u ? A(t, r, i, u) : s(t)) e.push(p.i / n), e.push(t.i / n), e.push(f.i / n), _(t), t = f.next, y = f.next; else if ((t = f) === y) { l ? 1 === l ? a(t = h(t, e, n), e, n, r, i, u, 2) : 2 === l && c(t, e, n, r, i, u) : a(o(t), e, n, r, i, u, 1); break } } } function s(t) { var e = t.prev, n = t, r = t.next; if (x(e, n, r) >= 0) return !1; for (var i = t.next.next; i !== t.prev;) { if (f(e.x, e.y, n.x, n.y, r.x, r.y, i.x, i.y) && x(i.prev, i, i.next) >= 0) return !1; i = i.next } return !0 } function A(t, e, n, r) { var i = t.prev, o = t, a = t.next; if (x(i, o, a) >= 0) return !1; for (var s = i.x < o.x ? i.x < a.x ? i.x : a.x : o.x < a.x ? o.x : a.x, A = i.y < o.y ? i.y < a.y ? i.y : a.y : o.y < a.y ? o.y : a.y, h = i.x > o.x ? i.x > a.x ? i.x : a.x : o.x > a.x ? o.x : a.x, c = i.y > o.y ? i.y > a.y ? i.y : a.y : o.y > a.y ? o.y : a.y, u = d(s, A, e, n, r), l = d(h, c, e, n, r), p = t.prevZ, y = t.nextZ; p && p.z >= u && y && y.z <= l;) { if (p !== t.prev && p !== t.next && f(i.x, i.y, o.x, o.y, a.x, a.y, p.x, p.y) && x(p.prev, p, p.next) >= 0) return !1; if (p = p.prevZ, y !== t.prev && y !== t.next && f(i.x, i.y, o.x, o.y, a.x, a.y, y.x, y.y) && x(y.prev, y, y.next) >= 0) return !1; y = y.nextZ } for (; p && p.z >= u;) { if (p !== t.prev && p !== t.next && f(i.x, i.y, o.x, o.y, a.x, a.y, p.x, p.y) && x(p.prev, p, p.next) >= 0) return !1; p = p.prevZ } for (; y && y.z <= l;) { if (y !== t.prev && y !== t.next && f(i.x, i.y, o.x, o.y, a.x, a.y, y.x, y.y) && x(y.prev, y, y.next) >= 0) return !1; y = y.nextZ } return !0 } function h(t, e, n) { var r = t; do { var i = r.prev, o = r.next.next; !m(i, o) && g(i, r, r.next, o) && w(i, o) && w(o, i) && (e.push(i.i / n), e.push(r.i / n), e.push(o.i / n), _(r), _(r.next), r = t = o), r = r.next } while (r !== t); return r } function c(t, e, n, r, i, s) { var A = t; do { for (var h = A.next.next; h !== A.prev;) { if (A.i !== h.i && y(A, h)) { var c = v(A, h); return A = o(A, A.next), c = o(c, c.next), a(A, e, n, r, i, s), void a(c, e, n, r, i, s) } h = h.next } A = A.next } while (A !== t) } function u(t, e) { return t.x - e.x } function l(t, e) { if (e = function(t, e) { var n, r = e, i = t.x, o = t.y, a = -1 / 0; do { if (o <= r.y && o >= r.next.y && r.next.y !== r.y) { var s = r.x + (o - r.y) * (r.next.x - r.x) / (r.next.y - r.y); if (s <= i && s > a) { if (a = s, s === i) { if (o === r.y) return r; if (o === r.next.y) return r.next } n = r.x < r.next.x ? r : r.next } } r = r.next } while (r !== e); if (!n) return null; if (i === a) return n.prev; var A, h = n, c = n.x, u = n.y, l = 1 / 0; r = n.next; for (; r !== h;) i >= r.x && r.x >= c && i !== r.x && f(o < u ? i : a, o, c, u, o < u ? a : i, o, r.x, r.y) && ((A = Math.abs(o - r.y) / (i - r.x)) < l || A === l && r.x > n.x) && w(r, t) && (n = r, l = A), r = r.next; return n }(t, e)) { var n = v(e, t); o(n, n.next) } } function d(t, e, n, r, i) { return (t = 1431655765 & ((t = 858993459 & ((t = 252645135 & ((t = 16711935 & ((t = 32767 * (t - n) * i) | t << 8)) | t << 4)) | t << 2)) | t << 1)) | (e = 1431655765 & ((e = 858993459 & ((e = 252645135 & ((e = 16711935 & ((e = 32767 * (e - r) * i) | e << 8)) | e << 4)) | e << 2)) | e << 1)) << 1 } function p(t) { var e = t, n = t; do { (e.x < n.x || e.x === n.x && e.y < n.y) && (n = e), e = e.next } while (e !== t); return n } function f(t, e, n, r, i, o, a, s) { return (i - a) * (e - s) - (t - a) * (o - s) >= 0 && (t - a) * (r - s) - (n - a) * (e - s) >= 0 && (n - a) * (o - s) - (i - a) * (r - s) >= 0 } function y(t, e) { return t.next.i !== e.i && t.prev.i !== e.i && ! function(t, e) { var n = t; do { if (n.i !== t.i && n.next.i !== t.i && n.i !== e.i && n.next.i !== e.i && g(n, n.next, t, e)) return !0; n = n.next } while (n !== t); return !1 }(t, e) && w(t, e) && w(e, t) && function(t, e) { var n = t, r = !1, i = (t.x + e.x) / 2, o = (t.y + e.y) / 2; do { n.y > o != n.next.y > o && n.next.y !== n.y && i < (n.next.x - n.x) * (o - n.y) / (n.next.y - n.y) + n.x && (r = !r), n = n.next } while (n !== t); return r }(t, e) } function x(t, e, n) { return (e.y - t.y) * (n.x - e.x) - (e.x - t.x) * (n.y - e.y) } function m(t, e) { return t.x === e.x && t.y === e.y } function g(t, e, n, r) { return !!(m(t, e) && m(n, r) || m(t, r) && m(n, e)) || x(t, e, n) > 0 != x(t, e, r) > 0 && x(n, r, t) > 0 != x(n, r, e) > 0 } function w(t, e) { return x(t.prev, t, t.next) < 0 ? x(t, e, t.next) >= 0 && x(t, t.prev, e) >= 0 : x(t, e, t.prev) < 0 || x(t, t.next, e) < 0 } function v(t, e) { var n = new S(t.i, t.x, t.y), r = new S(e.i, e.x, e.y), i = t.next, o = e.prev; return t.next = e, e.prev = t, n.next = i, i.prev = n, r.next = n, n.prev = r, o.next = r, r.prev = o, r } function b(t, e, n, r) { var i = new S(t, e, n); return r ? (i.next = r.next, i.prev = r, r.next.prev = i, r.next = i) : (i.prev = i, i.next = i), i } function _(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 S(t, e, n) { this.i = t, this.x = e, this.y = n, this.prev = null, this.next = null, this.z = null, this.prevZ = null, this.nextZ = null, this.steiner = !1 } function E(t, e, n, r) { for (var i = 0, o = e, a = n - r; o < n; o += r) i += (t[a] - t[o]) * (t[o + 1] + t[a + 1]), a = o; return i } t.exports = r, t.exports.default = r, r.deviation = function(t, e, n, r) { var i = e && e.length, o = i ? e[0] * n : t.length, a = Math.abs(E(t, 0, o, n)); if (i) for (var s = 0, A = e.length; s < A; s++) { var h = e[s] * n, c = s < A - 1 ? e[s + 1] * n : t.length; a -= Math.abs(E(t, h, c, n)) } var u = 0; for (s = 0; s < r.length; s += 3) { var l = r[s] * n, d = r[s + 1] * n, p = r[s + 2] * n; u += Math.abs((t[l] - t[p]) * (t[d + 1] - t[l + 1]) - (t[l] - t[d]) * (t[p + 1] - t[l + 1])) } return 0 === a && 0 === u ? 0 : Math.abs((u - a) / a) }, r.flatten = function(t) { for (var e = t[0][0].length, n = { vertices: [], holes: [], dimensions: e }, r = 0, i = 0; i < t.length; i++) { for (var o = 0; o < t[i].length; o++) for (var a = 0; a < e; a++) n.vertices.push(t[i][o][a]); i > 0 && (r += t[i - 1].length, n.holes.push(r)) } return n } }, function(t, e, n) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }); var r = function() { function t(t, e) { for (var n = 0; n < e.length; n++) { var r = e[n]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r) } } return function(e, n, r) { return n && t(e.prototype, n), r && t(e, r), e } }(); function i(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") } var o = function() { function t(e, n, r) { void 0 === n && (n = !1), i(this, t), this._fn = e, this._once = n, this._thisArg = r, this._next = this._prev = this._owner = null } return r(t, [{ key: "detach", value: function() { return null !== this._owner && (this._owner.detach(this), !0) } }]), t }(); function a(t, e) { return t._head ? (t._tail._next = e, e._prev = t._tail, t._tail = e) : (t._head = e, t._tail = e), e._owner = t, e } var s = function() { function t() { i(this, t), this._head = this._tail = void 0 } return r(t, [{ key: "handlers", value: function() { var t = !(arguments.length <= 0 || void 0 === arguments[0]) && arguments[0], e = this._head; if (t) return !!e; for (var n = []; e;) n.push(e), e = e._next; return n } }, { key: "has", value: function(t) { if (!(t instanceof o)) throw new Error("MiniSignal#has(): First arg must be a MiniSignalBinding object."); return t._owner === this } }, { key: "dispatch", value: function() { var t = this._head; if (!t) return !1; for (; t;) t._once && this.detach(t), t._fn.apply(t._thisArg, arguments), t = t._next; return !0 } }, { key: "add", value: function(t) { var e = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1]; if ("function" != typeof t) throw new Error("MiniSignal#add(): First arg must be a Function."); return a(this, new o(t, !1, e)) } }, { key: "once", value: function(t) { var e = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1]; if ("function" != typeof t) throw new Error("MiniSignal#once(): First arg must be a Function."); return a(this, new o(t, !0, e)) } }, { key: "detach", value: function(t) { if (!(t instanceof o)) throw new Error("MiniSignal#detach(): First arg must be a MiniSignalBinding object."); return t._owner !== this ? this : (t._prev && (t._prev._next = t._next), t._next && (t._next._prev = t._prev), t === this._head ? (this._head = t._next, null === t._next && (this._tail = null)) : t === this._tail && (this._tail = t._prev, this._tail._next = null), t._owner = null, this) } }, { key: "detachAll", value: function() { var t = this._head; if (!t) return this; for (this._head = this._tail = null; t;) t._owner = null, t = t._next; return this } }]), t }(); s.MiniSignalBinding = o, e.default = s, t.exports = e.default }, function(t, e, n) { "use strict"; t.exports = function(t, e) { e = e || {}; for (var n = { key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"], q: { name: "queryKey", parser: /(?:^|&)([^&=]*)=?([^&]*)/g }, parser: { strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ } }, r = n.parser[e.strictMode ? "strict" : "loose"].exec(t), i = {}, o = 14; o--;) i[n.key[o]] = r[o] || ""; return i[n.q.name] = {}, i[n.key[12]].replace(n.q.parser, function(t, e, r) { e && (i[n.q.name][e] = r) }), i } }, function(t, e, n) { "use strict"; function r() {} function i(t) { return function() { if (null === t) throw new Error("Callback was already called."); var e = t; t = null, e.apply(this, arguments) } } e.__esModule = !0, e.eachSeries = function(t, e, n, r) { var i = 0, o = t.length; ! function a(s) { s || i === o ? n && n(s) : r ? setTimeout(function() { e(t[i++], a) }, 1) : e(t[i++], a) }() }, e.queue = function(t, e) { if (null == e) e = 1; else if (0 === e) throw new Error("Concurrency must not be zero"); var n = 0, o = { _tasks: [], concurrency: e, saturated: r, unsaturated: r, buffer: e / 4, empty: r, drain: r, error: r, started: !1, paused: !1, push: function(t, e) { a(t, !1, e) }, kill: function() { n = 0, o.drain = r, o.started = !1, o._tasks = [] }, unshift: function(t, e) { a(t, !0, e) }, process: function() { for (; !o.paused && n < o.concurrency && o._tasks.length;) { var e = o._tasks.shift(); 0 === o._tasks.length && o.empty(), (n += 1) === o.concurrency && o.saturated(), t(e.data, i(s(e))) } }, length: function() { return o._tasks.length }, running: function() { return n }, idle: function() { return o._tasks.length + n === 0 }, pause: function() { !0 !== o.paused && (o.paused = !0) }, resume: function() { if (!1 !== o.paused) { o.paused = !1; for (var t = 1; t <= o.concurrency; t++) o.process() } } }; function a(t, e, n) { if (null != n && "function" != typeof n) throw new Error("task callback must be a function"); if (o.started = !0, null == t && o.idle()) setTimeout(function() { return o.drain() }, 1); else { var i = { data: t, callback: "function" == typeof n ? n : r }; e ? o._tasks.unshift(i) : o._tasks.push(i), setTimeout(function() { return o.process() }, 1) } } function s(t) { return function() { n -= 1, t.callback.apply(t, arguments), null != arguments[0] && o.error(arguments[0], t.data), n <= o.concurrency - o.buffer && o.unsaturated(), o.idle() && o.drain(), o.process() } } return o } }, function(t, e, n) { "use strict"; e.__esModule = !0, e.Resource = void 0; var r = function() { function t(t, e) { for (var n = 0; n < e.length; n++) { var r = e[n]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r) } } return function(e, n, r) { return n && t(e.prototype, n), r && t(e, r), e } }(), i = a(n(24)), o = a(n(23)); function a(t) { return t && t.__esModule ? t : { default: t } } var s = !(!window.XDomainRequest || "withCredentials" in new XMLHttpRequest), A = null; function h() {} var c = e.Resource = function() { function t(e, n, r) { if (function(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") }(this, t), "string" != typeof e || "string" != typeof n) throw new Error("Both name and url are required for constructing a resource."); r = r || {}, this._flags = 0, this._setFlag(t.STATUS_FLAGS.DATA_URL, 0 === n.indexOf("data:")), this.name = e, this.url = n, this.extension = this._getExtension(), this.data = null, this.crossOrigin = !0 === r.crossOrigin ? "anonymous" : r.crossOrigin, this.timeout = r.timeout || 0, this.loadType = r.loadType || this._determineLoadType(), this.xhrType = r.xhrType, this.metadata = r.metadata || {}, this.error = null, this.xhr = null, this.children = [], this.type = t.TYPE.UNKNOWN, this.progressChunk = 0, this._dequeue = h, this._onLoadBinding = null, this._elementTimer = 0, this._boundComplete = this.complete.bind(this), this._boundOnError = this._onError.bind(this), this._boundOnProgress = this._onProgress.bind(this), this._boundOnTimeout = this._onTimeout.bind(this), this._boundXhrOnError = this._xhrOnError.bind(this), this._boundXhrOnTimeout = this._xhrOnTimeout.bind(this), this._boundXhrOnAbort = this._xhrOnAbort.bind(this), this._boundXhrOnLoad = this._xhrOnLoad.bind(this), this.onStart = new o.default, this.onProgress = new o.default, this.onComplete = new o.default, this.onAfterMiddleware = new o.default } return t.setExtensionLoadType = function(e, n) { u(t._loadTypeMap, e, n) }, t.setExtensionXhrType = function(e, n) { u(t._xhrTypeMap, e, n) }, t.prototype.complete = function() { this._clearEvents(), this._finish() }, t.prototype.abort = function(e) { if (!this.error) { if (this.error = new Error(e), this._clearEvents(), this.xhr) this.xhr.abort(); else if (this.xdr) this.xdr.abort(); else if (this.data) if (this.data.src) this.data.src = t.EMPTY_GIF; else for (; this.data.firstChild;) this.data.removeChild(this.data.firstChild); this._finish() } }, t.prototype.load = function(e) { var n = this; if (!this.isLoading) if (this.isComplete) e && setTimeout(function() { return e(n) }, 1); else switch (e && this.onComplete.once(e), this._setFlag(t.STATUS_FLAGS.LOADING, !0), this.onStart.dispatch(this), !1 !== this.crossOrigin && "string" == typeof this.crossOrigin || (this.crossOrigin = this._determineCrossOrigin(this.url)), this.loadType) { case t.LOAD_TYPE.IMAGE: this.type = t.TYPE.IMAGE, this._loadElement("image"); break; case t.LOAD_TYPE.AUDIO: this.type = t.TYPE.AUDIO, this._loadSourceElement("audio"); break; case t.LOAD_TYPE.VIDEO: this.type = t.TYPE.VIDEO, this._loadSourceElement("video"); break; case t.LOAD_TYPE.XHR: default: s && this.crossOrigin ? this._loadXdr() : this._loadXhr() } }, t.prototype._hasFlag = function(t) { return 0 != (this._flags & t) }, t.prototype._setFlag = function(t, e) { this._flags = e ? this._flags | t : this._flags & ~t }, t.prototype._clearEvents = function() { clearTimeout(this._elementTimer), this.data && this.data.removeEventListener && (this.data.removeEventListener("error", this._boundOnError, !1), this.data.removeEventListener("load", this._boundComplete, !1), this.data.removeEventListener("progress", this._boundOnProgress, !1), this.data.removeEventListener("canplaythrough", this._boundComplete, !1)), this.xhr && (this.xhr.removeEventListener ? (this.xhr.removeEventListener("error", this._boundXhrOnError, !1), this.xhr.removeEventListener("timeout", this._boundXhrOnTimeout, !1), this.xhr.removeEventListener("abort", this._boundXhrOnAbort, !1), this.xhr.removeEventListener("progress", this._boundOnProgress, !1), this.xhr.removeEventListener("load", this._boundXhrOnLoad, !1)) : (this.xhr.onerror = null, this.xhr.ontimeout = null, this.xhr.onprogress = null, this.xhr.onload = null)) }, t.prototype._finish = function() { if (this.isComplete) throw new Error("Complete called again for an already completed resource."); this._setFlag(t.STATUS_FLAGS.COMPLETE, !0), this._setFlag(t.STATUS_FLAGS.LOADING, !1), this.onComplete.dispatch(this) }, t.prototype._loadElement = function(t) { this.metadata.loadElement ? this.data = this.metadata.loadElement : "image" === t && void 0 !== window.Image ? this.data = new Image : this.data = document.createElement(t), this.crossOrigin && (this.data.crossOrigin = this.crossOrigin), this.metadata.skipSource || (this.data.src = this.url), this.data.addEventListener("error", this._boundOnError, !1), this.data.addEventListener("load", this._boundComplete, !1), this.data.addEventListener("progress", this._boundOnProgress, !1), this.timeout && (this._elementTimer = setTimeout(this._boundOnTimeout, this.timeout)) }, t.prototype._loadSourceElement = function(t) { if (this.metadata.loadElement ? this.data = this.metadata.loadElement : "audio" === t && void 0 !== window.Audio ? this.data = new Audio : this.data = document.createElement(t), null !== this.data) { if (this.crossOrigin && (this.data.crossOrigin = this.crossOrigin), !this.metadata.skipSource) if (navigator.isCocoonJS) this.data.src = Array.isArray(this.url) ? this.url[0] : this.url; else if (Array.isArray(this.url)) for (var e = this.metadata.mimeType, n = 0; n < this.url.length; ++n) this.data.appendChild(this._createSource(t, this.url[n], Array.isArray(e) ? e[n] : e)); else { var r = this.metadata.mimeType; this.data.appendChild(this._createSource(t, this.url, Array.isArray(r) ? r[0] : r)) } this.data.addEventListener("error", this._boundOnError, !1), this.data.addEventListener("load", this._boundComplete, !1), this.data.addEventListener("progress", this._boundOnProgress, !1), this.data.addEventListener("canplaythrough", this._boundComplete, !1), this.data.load(), this.timeout && (this._elementTimer = setTimeout(this._boundOnTimeout, this.timeout)) } else this.abort("Unsupported element: " + t) }, t.prototype._loadXhr = function() { "string" != typeof this.xhrType && (this.xhrType = this._determineXhrType()); var e = this.xhr = new XMLHttpRequest; e.open("GET", this.url, !0), e.timeout = this.timeout, this.xhrType === t.XHR_RESPONSE_TYPE.JSON || this.xhrType === t.XHR_RESPONSE_TYPE.DOCUMENT ? e.responseType = t.XHR_RESPONSE_TYPE.TEXT : e.responseType = this.xhrType, e.addEventListener("error", this._boundXhrOnError, !1), e.addEventListener("timeout", this._boundXhrOnTimeout, !1), e.addEventListener("abort", this._boundXhrOnAbort, !1), e.addEventListener("progress", this._boundOnProgress, !1), e.addEventListener("load", this._boundXhrOnLoad, !1), e.send() }, t.prototype._loadXdr = function() { "string" != typeof this.xhrType && (this.xhrType = this._determineXhrType()); var t = this.xhr = new XDomainRequest; t.timeout = this.timeout || 5e3, t.onerror = this._boundXhrOnError, t.ontimeout = this._boundXhrOnTimeout, t.onprogress = this._boundOnProgress, t.onload = this._boundXhrOnLoad, t.open("GET", this.url, !0), setTimeout(function() { return t.send() }, 1) }, t.prototype._createSource = function(t, e, n) { n || (n = t + "/" + this._getExtension(e)); var r = document.createElement("source"); return r.src = e, r.type = n, r }, t.prototype._onError = function(t) { this.abort("Failed to load element using: " + t.target.nodeName) }, t.prototype._onProgress = function(t) { t && t.lengthComputable && this.onProgress.dispatch(this, t.loaded / t.total) }, t.prototype._onTimeout = function() { this.abort("Load timed out.") }, t.prototype._xhrOnError = function() { var t = this.xhr; this.abort(l(t) + " Request failed. Status: " + t.status + ', text: "' + t.statusText + '"') }, t.prototype._xhrOnTimeout = function() { var t = this.xhr; this.abort(l(t) + " Request timed out.") }, t.prototype._xhrOnAbort = function() { var t = this.xhr; this.abort(l(t) + " Request was aborted by the user.") }, t.prototype._xhrOnLoad = function() { var e = this.xhr, n = "", r = void 0 === e.status ? 200 : e.status; if ("" !== e.responseType && "text" !== e.responseType && void 0 !== e.responseType || (n = e.responseText), 0 === r && (n.length > 0 || e.responseType === t.XHR_RESPONSE_TYPE.BUFFER) ? r = 200 : 1223 === r && (r = 204), 2 === (r / 100 | 0)) { if (this.xhrType === t.XHR_RESPONSE_TYPE.TEXT) this.data = n, this.type = t.TYPE.TEXT; else if (this.xhrType === t.XHR_RESPONSE_TYPE.JSON) try { this.data = JSON.parse(n), this.type = t.TYPE.JSON } catch (t) { return void this.abort("Error trying to parse loaded json: " + t) } else if (this.xhrType === t.XHR_RESPONSE_TYPE.DOCUMENT) try { if (window.DOMParser) { var i = new DOMParser; this.data = i.parseFromString(n, "text/xml") } else { var o = document.createElement("div"); o.innerHTML = n, this.data = o } this.type = t.TYPE.XML } catch (t) { return void this.abort("Error trying to parse loaded xml: " + t) } else this.data = e.response || n; this.complete() } else this.abort("[" + e.status + "] " + e.statusText + ": " + e.responseURL) }, t.prototype._determineCrossOrigin = function(t, e) { if (0 === t.indexOf("data:")) return ""; if (window.origin !== window.location.origin) return "anonymous"; e = e || window.location, A || (A = document.createElement("a")), A.href = t; var n = !(t = (0, i.default)(A.href, { strictMode: !0 })).port && "" === e.port || t.port === e.port, r = t.protocol ? t.protocol + ":" : ""; return t.host === e.hostname && n && r === e.protocol ? "" : "anonymous" }, t.prototype._determineXhrType = function() { return t._xhrTypeMap[this.extension] || t.XHR_RESPONSE_TYPE.TEXT }, t.prototype._determineLoadType = function() { return t._loadTypeMap[this.extension] || t.LOAD_TYPE.XHR }, t.prototype._getExtension = function() { var t = this.url, e = ""; if (this.isDataUrl) { var n = t.indexOf("/"); e = t.substring(n + 1, t.indexOf(";", n)) } else { var r = t.indexOf("?"), i = t.indexOf("#"), o = Math.min(r > -1 ? r : t.length, i > -1 ? i : t.length); e = (t = t.substring(0, o)).substring(t.lastIndexOf(".") + 1) } return e.toLowerCase() }, t.prototype._getMimeFromXhrType = function(e) { switch (e) { case t.XHR_RESPONSE_TYPE.BUFFER: return "application/octet-binary"; case t.XHR_RESPONSE_TYPE.BLOB: return "application/blob"; case t.XHR_RESPONSE_TYPE.DOCUMENT: return "application/xml"; case t.XHR_RESPONSE_TYPE.JSON: return "application/json"; case t.XHR_RESPONSE_TYPE.DEFAULT: case t.XHR_RESPONSE_TYPE.TEXT: default: return "text/plain" } }, r(t, [{ key: "isDataUrl", get: function() { return this._hasFlag(t.STATUS_FLAGS.DATA_URL) } }, { key: "isComplete", get: function() { return this._hasFlag(t.STATUS_FLAGS.COMPLETE) } }, { key: "isLoading", get: function() { return this._hasFlag(t.STATUS_FLAGS.LOADING) } }]), t }(); function u(t, e, n) { e && 0 === e.indexOf(".") && (e = e.substring(1)), e && (t[e] = n) } function l(t) { return t.toString().replace("object ", "") } c.STATUS_FLAGS = { NONE: 0, DATA_URL: 1, COMPLETE: 2, LOADING: 4 }, c.TYPE = { UNKNOWN: 0, JSON: 1, XML: 2, IMAGE: 3, AUDIO: 4, VIDEO: 5, TEXT: 6 }, c.LOAD_TYPE = { XHR: 1, IMAGE: 2, AUDIO: 3, VIDEO: 4 }, c.XHR_RESPONSE_TYPE = { DEFAULT: "text", BUFFER: "arraybuffer", BLOB: "blob", DOCUMENT: "document", JSON: "json", TEXT: "text" }, c._loadTypeMap = { gif: c.LOAD_TYPE.IMAGE, png: c.LOAD_TYPE.IMAGE, bmp: c.LOAD_TYPE.IMAGE, jpg: c.LOAD_TYPE.IMAGE, jpeg: c.LOAD_TYPE.IMAGE, tif: c.LOAD_TYPE.IMAGE, tiff: c.LOAD_TYPE.IMAGE, webp: c.LOAD_TYPE.IMAGE, tga: c.LOAD_TYPE.IMAGE, svg: c.LOAD_TYPE.IMAGE, "svg+xml": c.LOAD_TYPE.IMAGE, mp3: c.LOAD_TYPE.AUDIO, ogg: c.LOAD_TYPE.AUDIO, wav: c.LOAD_TYPE.AUDIO, mp4: c.LOAD_TYPE.VIDEO, webm: c.LOAD_TYPE.VIDEO }, c._xhrTypeMap = { xhtml: c.XHR_RESPONSE_TYPE.DOCUMENT, html: c.XHR_RESPONSE_TYPE.DOCUMENT, htm: c.XHR_RESPONSE_TYPE.DOCUMENT, xml: c.XHR_RESPONSE_TYPE.DOCUMENT, tmx: c.XHR_RESPONSE_TYPE.DOCUMENT, svg: c.XHR_RESPONSE_TYPE.DOCUMENT, tsx: c.XHR_RESPONSE_TYPE.DOCUMENT, gif: c.XHR_RESPONSE_TYPE.BLOB, png: c.XHR_RESPONSE_TYPE.BLOB, bmp: c.XHR_RESPONSE_TYPE.BLOB, jpg: c.XHR_RESPONSE_TYPE.BLOB, jpeg: c.XHR_RESPONSE_TYPE.BLOB, tif: c.XHR_RESPONSE_TYPE.BLOB, tiff: c.XHR_RESPONSE_TYPE.BLOB, webp: c.XHR_RESPONSE_TYPE.BLOB, tga: c.XHR_RESPONSE_TYPE.BLOB, json: c.XHR_RESPONSE_TYPE.JSON, text: c.XHR_RESPONSE_TYPE.TEXT, txt: c.XHR_RESPONSE_TYPE.TEXT, ttf: c.XHR_RESPONSE_TYPE.BUFFER, otf: c.XHR_RESPONSE_TYPE.BUFFER }, c.EMPTY_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==", t.exports.default = c }, function(t, e, n) { (function(r, i) { var o; ! function(r) { var a = r.Promise, s = a && "resolve" in a && "reject" in a && "all" in a && "race" in a && function() { var t; return new a(function(e) { t = e }), "function" == typeof t }(); e ? (e.Promise = s ? a : T, e.Polyfill = T) : void 0 === (o = function() { return s ? a : T }.call(e, n, e, t)) || (t.exports = o); var A = "pending", h = "sealed", c = "fulfilled", u = "rejected", l = function() {}; function d(t) { return "[object Array]" === Object.prototype.toString.call(t) } var p, f = void 0 !== i ? i : setTimeout, y = []; function x() { for (var t = 0; t < y.length; t++) y[t][0](y[t][1]); y = [], p = !1 } function m(t, e) { y.push([t, e]), p || (p = !0, f(x, 0)) } function g(t) { var e = t.owner, n = e.state_, r = e.data_, i = t[n], o = t.then; if ("function" == typeof i) { n = c; try { r = i(r) } catch (t) { _(o, t) } } w(o, r) || (n === c && v(o, r), n === u && _(o, r)) } function w(t, e) { var n; try { if (t === e) throw new TypeError("A promises callback cannot return that same promise."); if (e && ("function" == typeof e || "object" == typeof e)) { var r = e.then; if ("function" == typeof r) return r.call(e, function(r) { n || (n = !0, e !== r ? v(t, r) : b(t, r)) }, function(e) { n || (n = !0, _(t, e)) }), !0 } } catch (e) { return n || _(t, e), !0 } return !1 } function v(t, e) { t !== e && w(t, e) || b(t, e) } function b(t, e) { t.state_ === A && (t.state_ = h, t.data_ = e, m(E, t)) } function _(t, e) { t.state_ === A && (t.state_ = h, t.data_ = e, m(C, t)) } function S(t) { var e = t.then_; t.then_ = void 0; for (var n = 0; n < e.length; n++) g(e[n]) } function E(t) { t.state_ = c, S(t) } function C(t) { t.state_ = u, S(t) } function T(t) { if ("function" != typeof t) throw new TypeError("Promise constructor takes a function argument"); if (this instanceof T == !1) throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."); this.then_ = [], function(t, e) { function n(t) { _(e, t) } try { t(function(t) { v(e, t) }, n) } catch (t) { n(t) } }(t, this) } T.prototype = { constructor: T, state_: A, then_: null, data_: void 0, then: function(t, e) { var n = { owner: this, then: new this.constructor(l), fulfilled: t, rejected: e }; return this.state_ === c || this.state_ === u ? m(g, n) : this.then_.push(n), n.then }, catch: function(t) { return this.then(null, t) } }, T.all = function(t) { if (!d(t)) throw new TypeError("You must pass an array to Promise.all()."); return new this(function(e, n) { var r = [], i = 0; function o(t) { return i++, function(n) { r[t] = n, --i || e(r) } } for (var a, s = 0; s < t.length; s++)(a = t[s]) && "function" == typeof a.then ? a.then(o(s), n) : r[s] = a; i || e(r) }) }, T.race = function(t) { if (!d(t)) throw new TypeError("You must pass an array to Promise.race()."); return new this(function(e, n) { for (var r, i = 0; i < t.length; i++)(r = t[i]) && "function" == typeof r.then ? r.then(e, n) : e(r) }) }, T.resolve = function(t) { return t && "object" == typeof t && t.constructor === this ? t : new this(function(e) { e(t) }) }, T.reject = function(t) { return new this(function(e, n) { n(t) }) } }("undefined" != typeof window ? window : void 0 !== r ? r : "undefined" != typeof self ? self : this) }).call(this, n(11), n(130).setImmediate) }, function(t, e, n) { "use strict"; /* object-assign (c) Sindre Sorhus @license MIT */ var r = Object.getOwnPropertySymbols, i = Object.prototype.hasOwnProperty, o = Object.prototype.propertyIsEnumerable; t.exports = function() { try { if (!Object.assign) return !1; var t = new String("abc"); if (t[5] = "de", "5" === Object.getOwnPropertyNames(t)[0]) return !1; for (var e = {}, n = 0; n < 10; n++) e["_" + String.fromCharCode(n)] = n; if ("0123456789" !== Object.getOwnPropertyNames(e).map(function(t) { return e[t] }).join("")) return !1; var r = {}; return "abcdefghijklmnopqrst".split("").forEach(function(t) { r[t] = t }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, r)).join("") } catch (t) { return !1 } }() ? Object.assign : function(t, e) { for (var n, a, s = function(t) { if (null == t) throw new TypeError("Object.assign cannot be called with null or undefined"); return Object(t) }(t), A = 1; A < arguments.length; A++) { for (var h in n = Object(arguments[A])) i.call(n, h) && (s[h] = n[h]); if (r) { a = r(n); for (var c = 0; c < a.length; c++) o.call(n, a[c]) && (s[a[c]] = n[a[c]]) } } return s } }, function(t, e) { t.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAARUSURBVHhe7Z2NcdpAEIVFGohdAXQAHUAHwRUYVxA6YFwBSQXEFdipAFyBQwXgCrArIPvQZgYTQHsSp9uV95vZkcxwup93q7tbHXLmOI7jOI7jRKDFR/Vst9suHXpkHT5ekZ3jD9kb2YJs3Wq1XvGhdtQKQgJ8pcOQbUBWJEARa7InsgWJ83v3iVMMPIFsRhaTFdmUDKI7x0DjkMUW4pAN2YTMhdmHGuQ7N04q4DHfuDifF2oEeMUcLaIEeGhSb0k2qHPFMQPCjEkTKNOQBv73/M96SSIIidGmAyqOKaxGMGUepBCldkEUe8YhSURJIcicDlhXVAWinuMSefwiQe74vHmQGJhNlQWD/y0Zbnci8F1OU2XicMuXaxZUMSz4ykxtMfMRi3AKXIOvFQrKXDl/dVClQnspvn/xhsA1+doh4DbbHKhC/bxeYqacNBrII89KTJ+T2ocqE9IjJ5wsOsgrz1LEjJPZhioS4h3RPeMQ5JlnLcJ+zIsqIR1IX8hqrzDy5Lwl1Oa9UaAKoLJSkt2jkXdehEJWnMQmVAGsASRsOEkyqAyI+ErAk8tofOFjLPC0T8IPPqZEWoYRH21BPSnkdpV8sEQZ8qIU8sJJohDTQ6SxJMSLkoS69+EyFMXHQNSgaExBpAXHxgMtiMpCXhJtApJcEOqZmnaAIOQuIZqXxBREsm1H2gC1QJ3jmU+LqLol6SSpxxDsldKGpEyXeNZylJiCSFDlIUzSTpJaEOcAF0QZLogyXBBluCDKcEGU4YIoo9JGuW3+bODUqlUSqPvFpgmE4YtCI1g/jfPT/3ijFf+Sz4MpJQgH1yQF/8yMSZiffC6mrCB4lKl1o7QmOiRK0G8bg8cQ9g4XQ0ZwO/mgrgwXRBkuiDJcEGW4IMpwQZThgijDBVFG8EqdF4aSOFVU1ut1tlgsstfXjwvhbrebDQaD7Ooq2saQEPArXulOlnJAELJkbDab7XA43FJFTxqJsR2Px5wiKfF39COTPK/6Wa1Wu8Y+JsIx6/V6nDIZwYKYGkNubm6y93f5NuDlcpnd3dn6mbkZQe7v73cNHMrDw0P29KRp+/B5zAzq19fXQd6xT7vdzuh2x3/VSvCgbsJDMJsqKwbATAzXsIAJQZ6fq88cL3GNOvCFoTJcEGWYEASDclUucY06MCEILfD4rDwIp1jAjCBVeni/3886HRv7MsyMIZNJ+bdaVEmrHiwMd1GaBIxGo6Mxq3M2m9X9buYPNDu4CKbT6dGGPzQEIefzKm/2uwjNFwQ8Pj4eFWHf8B0FNDva+w/Jw6cygUgNmBSkyZgURBKXshJMPMQ9RBkmBZH0fivR3UPcQ5TR2DEEWBxH3EOUYU6QkF5vcRxxD1GGOUFCer3FMcTs3l4jNHMb0GfCBVGGC6IMF0QZLogyXBBluCDKcEGU4YIoo4wgGl8PrpXgtgoWpJW/kAv/ZeZt94FzDLTNiNvKcRzHcRzHcRxHMVn2F2PX8gL1dlaqAAAAAElFTkSuQmCC" }, function(t, e, n) { t.exports = n.p + "images/04184d3d7203cb3de14a0a404a84bf97-CHAR_Classic_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/a5940ffe13ef294f944076aa73ef715a-CHAR_StickPlant_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/42d5a0d39256b37cf6708139269f3c03-CHAR_Momie_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/8fa30d5272fb19c67d5e279222f7b794-CHAR_Burger_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/77faf6c9730991489534659f010dfa9b-CHAR_Cactus_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/e05408b9bd045ed3e43a969146823019-CHAR_AngelStick_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/a05fd91e4801f756cf9f0dcb4e5517f8-CHAR_Harry_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/28506e14838e4d45f80d079fe1d2b110-CHAR_Unicorn_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/2d47eed71e4381405080714e00ec6ad9-CHAR_EvilStick_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/8e1269876513676187aec62722d9c236-CHAR_RainbowStick_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/3f8e3b577ebcb0720aa183ffa614f39f-CHAR_StickOuech_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/61f8a43a4891731ae3b68bb41346767f-CHAR_KingStick_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/3a44cbb3a12ca246c94cc8a421f62a9a-CHAR_Banana_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/c40aa8ce16dc9ca63a65736aa1123119-CHAR_Ninja_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/95eae8386a9fa35681d9259a90cfe08e-CHAR_Sheep_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/fcd3dbdb6348beb40a3122f7eeae8cbd-CHAR_Panda_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/01434c96a36c2c33d787073809c13b8b-CHAR_SuperStick_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/4ad6740ee1c9057ba7ed74460be8950a-CHAR_RobotMan_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/601a0de398a32bd53366c6fee57ea531-CHAR_Dragon_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/44c268a5c1540584f0d010b1c5ef9a7d-CHAR_TikiMan_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/040f73e99e3473c54f2c9a9f1d88ec9f-CHAR_HotDog_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/b5716296e3556e7ba7293148c682d305-CHAR_LemonMan_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/fac3f46ae48d845f47e31b60b8ea3127-CHAR_Plant_Miniature.png" }, function(t, e, n) { t.exports = n.p + "images/27f62cb7fcc15256d379f7e940d7fc35-titlepow2.png" }, function(t, e) { t.exports = "data:image/png;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAUAAAEDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDw+iiiv3w/QAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKCeYKKKKCQop+wUVfKiLsWinYWimRzDaKfsFFaGfMLRTt9FPlZnzDcUVJRVk3CipKKfKzHmCijFFWSLuNFPop8rM7hRTt3tRVk8w2ipKKfKzPmCipMUVZnzBRRRVcpIUVJiiqIuwop2yiq5SOYbuoqTFFUZ8wUUUVXKZ8xJiiiiqJCinbKKrlIux1FO8uiqMribjRS7KK0M7jqKdu9qKfKyeYNlFOoqzPmCineXRVcpF0OoooqiAop3l0VXKZ3HUU7ZRVE8w2ineXRVcpF0OopdhoqjLmH0UUVoSFFO2UUGfMOop3l0VoZibjRS7KKDO46iiitBXQ/YKKWinyszugop3l0VZndDqKKKfKyAop3l0VZncdRTtlFPlYrobRTvLoqzO6HUU7ZRT5WZcw6iiirJuFFO2UVXKZXQ6ineXRVEH//2Q==" }, function(t, e, n) { t.exports = n.p + "images/43373af2c85cc40390455124c8916b67-BumperLarge.png" }, function(t) { t.exports = { frames: { "AN_Grap1_BumperLarge0001.png": { frame: { x: 1, y: 1, w: 298, h: 148 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 107, y: 24, w: 298, h: 148 }, sourceSize: { w: 512, h: 256 } }, "AN_Grap1_BumperLarge0002.png": { frame: { x: 1, y: 151, w: 289, h: 118 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 107, y: 64, w: 289, h: 118 }, sourceSize: { w: 512, h: 256 } }, "AN_Grap1_BumperLarge0003.png": { frame: { x: 121, y: 151, w: 289, h: 99 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 107, y: 133, w: 289, h: 99 }, sourceSize: { w: 512, h: 256 } }, "AN_Grap1_BumperLarge0004.png": { frame: { x: 222, y: 151, w: 289, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 107, y: 116, w: 289, h: 79 }, sourceSize: { w: 512, h: 256 } }, "AN_Grap1_BumperLarge0005.png": { frame: { x: 1, y: 442, w: 289, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 107, y: 127, w: 289, h: 68 }, sourceSize: { w: 512, h: 256 } } }, animations: { AN_Grap1_BumperLarge: ["AN_Grap1_BumperLarge0001.png", "AN_Grap1_BumperLarge0002.png", "AN_Grap1_BumperLarge0003.png", "AN_Grap1_BumperLarge0004.png", "AN_Grap1_BumperLarge0005.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "BumperLarge.png", format: "RGBA8888", size: { w: 512, h: 512 }, scale: "1", smartupdate: "$TexturePacker:SmartUpdate:af42770b6235e059ec0191895ee89693:b2e89c7355bcdaca7e03849c9c7c8348:6f5f9da7d046efa3243906aeb729a0f3$" } } }, function(t, e) { t.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAABd2lDQ1BIRCA3MDktQQAAKM+t0TFLw0AUB/B/a7VKC4qIdhA5UMQhkVqH2uqStmArDqUqqFuapq2QtCG5Uv0Abi46iC6K+hVEFwdHcdBBEITiZxAKBZES75Ihi+jig4TfPR7vHvcAP5UNQwsA0GvULCynyObWNgm2EEIYw0hiTFYsQ8rnV/Fz+IDOK/8DLyLvVc59vi3tN8+v+1ZOJ5JUwO8RKqmWwtr0MyslS9GZNWZBMUzKfMIsNqnB/cA8YrIBmVvcFdcf3EXH/oBTs15IM0eYh4quZ7grrhe4lapcYs7yu9wZnBjIZkg8mhAl/HPoWkPx3gxhtbaxxudg3ziyyIAgjigSECFRdZfywnTd2DN3KlVKJPayKknXdaNBVVMguZoyK5BYdC7K6/jO3NbtgtPdN/rs5eoXQGIS6DnwcsVj4PYOiDx6uakzYHARuHkyZFP2NtwJ/HW2yvMx1+EU0Ptu2+1pIHgEdA9t++vStrtX7H62s3vtGyaoaeFFp28gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF12lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDctMDRUMTQ6Mzk6MzErMDI6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA3LTA0VDE0OjQxOjU0KzAyOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA3LTA0VDE0OjQxOjU0KzAyOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpiZGFmOTM4ZC1kNjExLTQ5YmQtYWM1YS03YzRjNDgxYzhjZmYiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo1Y2I2ZjI5ZS1mYzcxLThkNGQtYjIwMC04ZGZlMzdkZWY2M2QiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpiYWQ1MGE0MS1hMGYxLTRiMDMtYTg3NS1kYzI3NDlhNzAwMTUiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmJhZDUwYTQxLWEwZjEtNGIwMy1hODc1LWRjMjc0OWE3MDAxNSIgc3RFdnQ6d2hlbj0iMjAxOS0wNy0wNFQxNDozOTozMSswMjowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmJkYWY5MzhkLWQ2MTEtNDliZC1hYzVhLTdjNGM0ODFjOGNmZiIgc3RFdnQ6d2hlbj0iMjAxOS0wNy0wNFQxNDo0MTo1NCswMjowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRv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" }, function(t, e) { t.exports = "data:image/png;base64,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" }, function(t, e) { t.exports = "data:image/png;base64,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" }, function(t, e) { t.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAP0lEQVRYhe3VMQoAMQwDQTnc/7/sPEKBa0b9wuDGk2RTbLfKc6r6wQAAAAAAAAC+9p/PTNX/fgEAAAAAAACAC8kBBz5A2Qw/AAAAAElFTkSuQmCC" }, function(t, e) { t.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAMSURBVBhXY/j//z8ABf4C/qc1gYQAAAAASUVORK5CYII=" }, function(t, e) { t.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJFSURBVHhe7ZuBUcIwFIYpDCAbgBPIJriBuoFu4Aa6gbiBI7gBOgE6gTpAwf+Xx51XCyZtwrXJ/929SwJpc/kuta+xDIQQQgghhBBCCCGEEEK4UVjZKzabzRmK8bb1w2dRFK9WF/uAuPl6vV4iNjWx5PfWVVQpy/KuRtqfYD87ROzAyrqok7Uv2N8OFZAxgZSPqqT/QhIN10u3LiQRQMSqKsYnYkvsfBpDCVZtDFKcS8SjNYMytDJpsAoXsVZiFgJJLInZCCQxJGYlkISWmJ1AElJilgJJKInZCiQhJLbKAzH4bltpahEcjHFr1Wi0yRMbCcSk5jax2faT/tNUordAPptioGtrJkUTiV4C+fcCsbBmkvhKdBYIcRPEC6q/t9JThP8emCHerX0Q57swHup52aYuj4xtrk44r0CcdIUiyp22g7wNh8NTqx/ER2DrbaU+AYFObrJOpEPgI/DNyhxwnquzQNyBn62aPD5z9U1jsliFSGGmwdMYnhAC762ZLJyjqzzivAJ3pPwoB3mL0Wh0ZU0nvO/CGOAGAi9RTepybiKPeK/AHRjwBMU5ImpyjXGib2c1lUcaCzwWsRP4NvJI1ol0W3kkW4Eh5JEsBYaSR7ITGFIeyUpgaHkkG4Ex5JEsBMaSR/ogsNUTT0x5pPMCIaDxNlpseb0AEviSee3ru4eiLMsHO4XwfdFc8mpwlch+doiogsuZP7jZ99b+it9b16PR+d2YKpBUt43GO/VTURRf26YQQgghhBBCCCGEEEKIjjEYfAP1gM+qU/LzAwAAAABJRU5ErkJggg==" }, function(t, e) { t.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAADkElEQVR4nO3d4W3aQBjG8edYIGxQNigbhE7QbhAyQRkhG5QN4k5QRqAbkAlKNnAmePvBZ2SMARuIjf3+fxISMcScdI/f89mWTgIAAAAAAAAAAAAAAAAAAADQb+Gzdmxmj5Im8ZUbS5p+1m8OQCppU9q2lrQNIbx/xg/eLABm9kXSXNIsvnBbW2VhWIcQft9qp1cHwMy+S1qITm9TKmkpKbm2MlwcADN7kvSi/RKP9iWSXi4NQuMAmNmDpJU44u9JKmlxydDQKADxqE+a/ghas5E0CyF81P2HUd0vmtkv0fn3bippY2Zf6/5DrQpgZq/KzvDRD6mySvB27otnA0DZ761aw8HJAND5vXc2BEcDEMeR8lUp9E8SQng+9mFlAOJUbyPm+EMxPzZFPBaAP5J+fGqT0KZU0rTqYtHBNDCO+3T+sIx15FzuoAKY2T9R+odqFkL4W9ywVwHM7Kfo/CF7KW/YqwAc/S7sVYFdBYhj/6SLFqFV8+IfxSFg1moz0JW9E/zRsQ8wWOP4EI+kGID4/N64syahbbP8zai8AS7sHswdlTfAhVn+Jg/ApJNmoDPxfg8VwLGp1OCRMAwTAXCOADhHAJwjAM4RAOcIgHMEwDkC4BwBcI4AOEcAnCMAzhEA5wiAcwTAOQLgHAFwjgA4RwCcIwDOEQDnCIBzBMA5AuAcAXCOADhHAJwjAM4RAOcIgHMEwDkC4BwBcI4AOEcAnCMAzhEA5wiAcwTAuTwA6y4bgfbli0bkAUg7bAvat+vvPAAsEOnLrr8ZAnw6CAAVwJd1/mYkSXFx4VVXrUHr1vmbUdVGDNqquJp4MQCJmA14sFfpdwGIqUjabg1atS2vIl5eOfRB0lasIDZUB8vI710KjlVg2WqT0JaDo1+qvhewFNPCIZpXbTwIQKwClV9Gby3Ly8bnKu8GhhDeRAiGYqOKZeNz4dgHkmRmryIIfZZKmhTn/WUnnwcIITyLqWFfpZJmpzpfqvFASAzB4latQis2kqZxKD/p5BBQZGZPohr0wUY1jvxc7UfC4hxyruxCEe7TSg06X2pQAXLxauFKLDl/T1JJi6oLPec0fig0hPARQvgmqsG9SJSN9407X7qgAhTFajBXdpI4uWZfaCyRlBy7wFPXVQEoMrNHZWGY32qfOLBVdqk+aTLOn3KzABTFMMyUrVHPncXrbOJrHUJ477oxAAAAAAAAAAAAAAAAuHP/AV7pyirlIjGbAAAAAElFTkSuQmCC" }, function(t, e, n) { t.exports = n.p + "images/b6a61ef922faf37de190abe915c17dec-FX_Spawn.png" }, function(t) { t.exports = { frames: { "FX_Spawn0.png": { frame: { x: 409, y: 1, w: 102, h: 101 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 64, y: 65, w: 102, h: 101 }, sourceSize: { w: 230, h: 232 }, anchor: { x: 0, y: 0 } }, "FX_Spawn1.png": { frame: { x: 280, y: 141, w: 126, h: 126 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 52, y: 52, w: 126, h: 126 }, sourceSize: { w: 230, h: 232 }, anchor: { x: 0, y: 0 } }, "FX_Spawn2.png": { frame: { x: 277, y: 285, w: 130, h: 130 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 50, y: 50, w: 130, h: 130 }, sourceSize: { w: 230, h: 232 }, anchor: { x: 0, y: 0 } }, "FX_Spawn3.png": { frame: { x: 141, y: 285, w: 134, h: 134 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 48, y: 48, w: 134, h: 134 }, sourceSize: { w: 230, h: 232 }, anchor: { x: 0, y: 0 } }, "FX_Spawn4.png": { frame: { x: 141, y: 145, w: 138, h: 137 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 46, y: 47, w: 138, h: 137 }, sourceSize: { w: 230, h: 232 }, anchor: { x: 0, y: 0 } }, "FX_Spawn5.png": { frame: { x: 1, y: 145, w: 138, h: 138 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 46, y: 46, w: 138, h: 138 }, sourceSize: { w: 230, h: 232 }, anchor: { x: 0, y: 0 } }, "FX_Spawn6.png": { frame: { x: 1, y: 285, w: 138, h: 138 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 46, y: 46, w: 138, h: 138 }, sourceSize: { w: 230, h: 232 }, anchor: { x: 0, y: 0 } }, "FX_Spawn7.png": { frame: { x: 1, y: 1, w: 142, h: 142 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 44, y: 44, w: 142, h: 142 }, sourceSize: { w: 230, h: 232 }, anchor: { x: 0, y: 0 } }, "FX_Spawn8.png": { frame: { x: 145, y: 1, w: 138, h: 137 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 46, y: 45, w: 138, h: 137 }, sourceSize: { w: 230, h: 232 }, anchor: { x: 0, y: 0 } }, "FX_Spawn9.png": { frame: { x: 1, y: 425, w: 35, h: 33 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 98, y: 97, w: 35, h: 33 }, sourceSize: { w: 230, h: 232 }, anchor: { x: 0, y: 0 } }, "FX_Spawn10.png": { frame: { x: 1, y: 462, w: 18, h: 17 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 106, y: 105, w: 18, h: 17 }, sourceSize: { w: 230, h: 232 }, anchor: { x: 0, y: 0 } }, "FX_Spawn11.png": { frame: { x: 1, y: 482, w: 18, h: 17 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 106, y: 105, w: 18, h: 17 }, sourceSize: { w: 230, h: 232 }, anchor: { x: 0, y: 0 } } }, animations: { FX_Spawn: ["FX_Spawn0.png", "FX_Spawn1.png", "FX_Spawn2.png", "FX_Spawn3.png", "FX_Spawn4.png", "FX_Spawn5.png", "FX_Spawn6.png", "FX_Spawn7.png", "FX_Spawn8.png", "FX_Spawn9.png", "FX_Spawn10.png", "FX_Spawn11.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "FX_Spawn.png", format: "RGBA8888", size: { w: 512, h: 512 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:44932692ac093b888582b49c07a9d87d:1963e090ffb365b35fbb53ec1a9a12c3:226385ad2ec5f3823e5a224f072dea7f$" } } }, function(t, e, n) { t.exports = n.p + "images/50a9bb3e272fc5be76bc8968f704e959-FinishPlatform.png" }, function(t) { t.exports = { frames: { "AN_Grap1_FinishPlatform0001.png": { frame: { x: 1, y: 1, w: 401, h: 90 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 30, y: 70, w: 401, h: 90 }, sourceSize: { w: 461, h: 230 }, anchor: { x: 0, y: 0 } }, "AN_Grap1_FinishPlatform0002.png": { frame: { x: 404, y: 1, w: 401, h: 90 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 30, y: 70, w: 401, h: 90 }, sourceSize: { w: 461, h: 230 }, anchor: { x: 0, y: 0 } }, "AN_Grap1_FinishPlatform0003.png": { frame: { x: 1, y: 93, w: 401, h: 90 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 30, y: 70, w: 401, h: 90 }, sourceSize: { w: 461, h: 230 }, anchor: { x: 0, y: 0 } }, "AN_Grap1_FinishPlatform0004.png": { frame: { x: 1, y: 185, w: 401, h: 90 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 30, y: 70, w: 401, h: 90 }, sourceSize: { w: 461, h: 230 }, anchor: { x: 0, y: 0 } }, "AN_Grap1_FinishPlatform0005.png": { frame: { x: 1, y: 277, w: 401, h: 90 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 30, y: 70, w: 401, h: 90 }, sourceSize: { w: 461, h: 230 }, anchor: { x: 0, y: 0 } }, "AN_Grap1_FinishPlatform0006.png": { frame: { x: 1, y: 369, w: 401, h: 90 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 30, y: 70, w: 401, h: 90 }, sourceSize: { w: 461, h: 230 }, anchor: { x: 0, y: 0 } }, "AN_Grap1_FinishPlatform0007.png": { frame: { x: 404, y: 404, w: 401, h: 90 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 30, y: 70, w: 401, h: 90 }, sourceSize: { w: 461, h: 230 }, anchor: { x: 0, y: 0 } }, "AN_Grap1_FinishPlatform0008.png": { frame: { x: 1, y: 461, w: 401, h: 90 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 30, y: 70, w: 401, h: 90 }, sourceSize: { w: 461, h: 230 }, anchor: { x: 0, y: 0 } }, "AN_Grap1_FinishPlatform0009.png": { frame: { x: 1, y: 553, w: 401, h: 90 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 30, y: 70, w: 401, h: 90 }, sourceSize: { w: 461, h: 230 }, anchor: { x: 0, y: 0 } }, "AN_Grap1_FinishPlatform0010.png": { frame: { x: 1, y: 645, w: 401, h: 90 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 30, y: 70, w: 401, h: 90 }, sourceSize: { w: 461, h: 230 }, anchor: { x: 0, y: 0 } }, "AN_Grap1_FinishPlatform0011.png": { frame: { x: 1, y: 1, w: 401, h: 90 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 30, y: 70, w: 401, h: 90 }, sourceSize: { w: 461, h: 230 }, anchor: { x: 0, y: 0 } } }, animations: { AN_Grap1_FinishPlatform: ["AN_Grap1_FinishPlatform0001.png", "AN_Grap1_FinishPlatform0002.png", "AN_Grap1_FinishPlatform0003.png", "AN_Grap1_FinishPlatform0004.png", "AN_Grap1_FinishPlatform0005.png", "AN_Grap1_FinishPlatform0006.png", "AN_Grap1_FinishPlatform0007.png", "AN_Grap1_FinishPlatform0008.png", "AN_Grap1_FinishPlatform0009.png", "AN_Grap1_FinishPlatform0010.png", "AN_Grap1_FinishPlatform0011.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "FinishPlatform.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:559aeaf7c71f2b3a700807c357268d12:f538649b2256b93d6a79b0760f45a380:ba6f222996ca712253595af3802d04ac$" } } }, function(t, e) { t.exports = "data:image/png;base64,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" }, function(t, e) { t.exports = "data:image/png;base64,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" }, function(t, e) { t.exports = "data:image/png;base64,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" }, function(t, e) { t.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAPhElEQVR4nO3d7XEbR5cG0Mdb+x/OAMqA2giADOiNANoI5AywGWg3AigDaSMAHYHkCEBHQDsC7Y8RTYqWXpEiZm7P9DlVXf4qu7tRrrq3b39MAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5/RT9QAAKLNO8uKZ/40/k/z+/KEwNQkAwHxtPv/x5yQv7/39h3+dJNuRx/I+ydsk/zdyP5yJBACgPbcr8+3nv36Ru5X6ywwBvlXXSX6NRKB5EgCA6d0vvb/83F5k/FX6lN4neZXkr+Jx8A0SAIDxbPLlin2b9lfw5/QxyX9UD4KvkwAAPN8qQ2Df5m41/3APvldvk/xX9SD4JwkAwNPdBvyHja/7Ncn/Vg+CL0kAAL5vk2FV/0vuVvg8zcu4LtgUCQDAl1a5K+XfBnyez3mAxkgAgN6tc7d//0us7se0TfJb9SAYSACA3qxyt7Lfxgp/Su+T/Gf1IBhIAIAeXGQI9q8i4Ff7Od4GaMK/Vw8AYATr3JX0f6kdCg+8jG2AJkgAgKW4yF3At8pvlwSgERIAYM6U9uenl1cQmycBAObmMk7sw7NJAIA52OSuvP+idiiwDBIAoFWrDE/I2tNflj+rB8BAAgC0ZJVhP/9VBP2l+lg9AAbeAQBacJlhpf+qeByMT9xphAoAUGWdu9X+i8qBMJn31QPgjgQAmNouQ9Df1g6DAhIAgM6sMgT+mySftC7bMQB0Y53kEIFfG65yArBwmyTvUh90tDbaPgAs1irJ6ySn1AccrZ12CACLtMqwwlPm1x62fQBYnHXs72vfbrsAsCjrDIG/OsBobbZTHPgDWJRNHOzTvt1OGVb9qzALnmQEvuciyX9neKqXZbn+3J7z710nuUryx/OHw5QkAMC3bDIE/m3tMPgXrh7x58kQpAVoviABAB5aZwj8r2qH0b2r/HOlfZ3kt4rBsDwSAOCWwD+dj0n+vPfn15//KLgzGQkAIPCP5zp3e+S3gf73stHAPRIA6Ncqya8Zgj/ncZ0vA/7H2HsHoCGv4wGfc7RjkjcZDky6/gZAszYZglZ14Jxju8nwANLrDNsmANC8dQT+Hwn47zI8bnPx9J8cAOqsMpSoq4PpXNoxVvgAzNwuPs37vfYhQ4K0iz18AGZunSGwVQfXVtu7WOUDsDCH1AfYFtsxyWWs8gFYmF2U+++3+wf4BH0AFmcdn+i9326D/vo5PyoAtMxjPkP78Pm3sNIHYNEu4k7/TZJ93M8HoBP79L3qf5fhNUMA6MJF+r3ad4prewB0aJ/6IGy1DwATWaW/vf7bD+7Y2wegS72d8P8Qd/YB6Ngqfd3rP0aZH4DOXaaPVf9tmX99np8NAOZplT4O+p0+z1OZH4Du9XC9T+AHgHuWftDvlOFgHwCQYSV8SH2AHjPwX57t1wKABbjIcj/ba8UPAF+xyzJL/jcR+AHgH5Za8rfiB4BvWGV5p/xvMhxgBAC+YpfllfzfxHU+APimfeqD9TnbMV7uA4BvWtp+/zHe6geAf2md5ez32+cHgEdY0od87PMDwCPsUx+0z9GOUe4HgO9ayn6/h3wA4JGWcr//EOV+AHiUdeYf/E9R7geAR7vI/A/7OeQHAE+wy7yD/yke8wGAJ9mnPoA/p+3P/5MAwLIdUh/An7Pq35z/JwGA5Zr7Nb93sdcPAE8y52t+N7HqB4Anm3PwP8aqHwCebJ35nvT38R4A+AFzveN/+jx2AOCJ5hr8D1HyB4AfMsdP+d5EyR8Aftgu9cH8R4K/kj8A/KA5Bn93+wHgGeYY/Pej/BIA0Im5BX8P+wDAM71OfUB/SvsQX/ADgGeZW/C33w8Az7RLfUB/Snszzs8AAP2YU/C/yfAuAQDwDHMK/qe43w8Azzan4P8h9vsB4NnmFPyPI/0GANCVOQX/w0i/AQB0ZU7B38d8AOAMLlMf1B/TbjIkKgDAM11kHp/09SU/ADgTwR8AOjOX4O9NfwA4k1XmE/zd8QeAM1hlCKzVwf177RjBHwDOZg7B39f8AOCMDqkP7t9rh9FmDwAdEvwBoDP71Ad3wR8AJrRLfXAX/AFgQhepD+7fa29Gmz0AdGgOD/3sR5s9AHRoDnf9BX8AOLPWg/9hvKkDQJ8OqQ/wgj8ATOh16gO84A8AE7pMfYAX/AFgQq2f+Bf8AeDMWj/xL/gDwAiOqQ/ygj8ATOhN6oO84A8AE9qlPsh/qx1HnDcAdKvlQ38fMpxLAADO7JT6QC/4A8CEDqkP9II/AExol/pA/7V2E8EfAEZxkfpA/63gfzHivAGgW6u0u++/GXHeANC1d6kP9F9ruzEnDQA926U+0H+t7cecNAD0rNX7/ocxJw0APWv1Iz/HMScNAL07pD7YP2zu+gPAiC5TH+wftlMEfwAYzSrt7fu76w8AIzumPuA/bJejzhgAOvc69cH+YXsz6owBoHMtXvl7N+qMAYDmrvw58Q8AI9unPuDfbw79AcDI1qkP+A+bQ38AMLJj6gP+/bYfd7oAQGulf4f+AGBkrZX+HfoDgAm0Vvp36A8ARtbagz+vx50uALBOWw/+HMadLgCQDAftqoP+bbPvDwAT2KQ+6N82j/0AwARa+8yvfX8AmMCb1Af92+a+PwBM4CL1Qf+2nWLfHwAmcUx94L9t3vkHgAnsUh/0b9ubkecKAGQotZ9SH/g/ZbjyBwBMoKWDf678AcAEWjr4tx95rgDAZ8fUB/7b0r9T/wAwgU3qA7/SPwBM7JT6wP8pTv0DwGR2qQ/8n+LBHwCYTEvv/W9GnisA8Nk+9YH/U5LD2BMFAAbrtLH6v4nSPwBM5pD64P8pPvMLAJNZpz7wf8rw9gAAMJFWVv/u/APARDapD/yf4s4/AEzqmPrg7+AfAEyoldW/g38AMKEWVv/H0WcJAPytldX/ZuyJAgB3Wlj9H0afJQDwt1ZW/+uxJwoA3Glh9b8ffZYAwN9aWP279gcAE7P6B4DOrFMf/E+x+geASR1SnwDsRp8lAPC3Vlb/AMCE3qQ+AbD6B4AJrTKcvLf6B4CO7FO/+t+MPksA4Aun1Ab/4/hTBADu28XqHwC68yH2/gGgKxepX/3vRp8lAPCFQ6z+AaAr61j9A0B39rH6B4DunGL1DwBduUxt8L+JL/4BNOnfqgfAqF4V9/82yV/FYwCArqxTf/hvPfosAfghKgDL9aq4/7dJ/igeAwB0p/rw32b8KQIA921SG/yP408RgOewBbBMr4r7f1vcPwB0Z5X6q38ANE4FYHl+Ke7/f4r7B4AuHePqHwB0ZZ3a4P9u/CkCcA62AJblVXH/b4v7B4AunVK3+j9NMD8A4IGL1Jb/X48/RQDgoTdx+A8AulNZ/nf4DwAKbFK7+r8cf4oAwEOV5f/TBPMD4MxcA1yGytf/3hf2DQDdqj79fzH+FAE4NxWA+XtV2PfHJL8X9g8A3ao8/e/uPwAUqC7/r8afIgBjsAUwb9vCvt8n+auwfwDo1ofUrf53E8wPAHhgnbrgfxPlf4BZswUwX9vCvpX/AWZOAjBfHv8BgA7dxOl/AOjKJnXB35f/ABbAFsA8Kf8DQIcqr/8p/wNAgcrrf8r/AAthC2B+toV9XxX2DcAZSQDmZ1vYt/1/AChySk35/8MUkwNgGioA87JO8qKo76uifgEYgQRgXraFfSv/A0CRQ2rK/zdTTA6A6agAzMu2qN+ron4BGIkEYD4q9/+V/wEWRgIwH9vCvq8K+wZgBBKA+dgW9Xud5I+ivgEYiQRgPl4W9XtV1C8AI5IAzMMqEgAAzkgCMA/bwr6vCvsGYCQSgHmoWv1fx/4/wCJJAOZhW9TvVVG/AIxMAjAP9v8BoDMXqXn+91OGx4cAWCAVgPa9KOr3Ovb/ARZLAtC+bVG/H4v6BWACEoD22f8HgA5V7f9vppgcAPBP69QlAAAsmC2AtlWV/+3/AyycBKBt9v8BGIUEoG0qAACMQgLQNgkAAKP4qXoA/EtVh/H8fwGwcCoA7aq6hmf1D9ABCUC7XhT1e13ULwATkgC060VRvyoAAB2QALRrW9TvVVG/AExIAtCun4v6vS7qF4AJOe3dLjcAABiNCkCbLor6tf8P0AkJQJuU/wEYlQSgTduiflUAADohAeC+6+oBADANCUCbtkX9Xhf1C8DEJABtqjoDYAsAoBOufLXJFUAARqUC0J5VUb9XRf0CUEAC0J6X1QMAYPkkAO2p2v+/KuoXgAISgPaoAAAwOgkAt9wAAOiIBKA926J+/yzqF4ACEgBuXVcPAAB6dsrwDsDUDYCOePilPR4BAmB0tgBIXAEE6I4EoC2b6gEA0AcJAIkDgADdkQCQSAAAuiMBaMu2egAA9EECQKICANAdCQCJBACgOxKAtmyrBwBAHyQAANAhCQBJ8lv1AACYlgSgLT9XDwCAPnj/vS2+AwDAJFQAAKBDEgA+Vg8AgOlJAPizegAATE8C0I6L6gEA0A8JQDvcAABgMhIAAOiQBAAAOiQBwC0AgA5JAHALAKBDEgAA6JAEoB3b6gEA0A8JAAB0SAIAAB2SAABAhyQAANAhCQAAdEgCAAAdkgAAQIckAADQIQkAAHRIAgAAHZIAtKPqozw+BgTQIQlAO6o+y+tzwAAd+ql6APxtlZrVuP8HADqkAtCOv5JcTdzn+4n7A6AREoC2vJ24PwkAADRgleSU5NME7TjRnACAR9hlmgRgM9WEAIDHeZdxg/9+uqkAAI+1SvIh4wT/w4TzAACeaJXzVwKs/AFgJg45T/DfTT1wAOB5LvPjtwNOceAPAGZrleR1Hp8InDKs+lcVgwWgbZ6Bnad1km2SF1/5Z9cZXhT8Y7LRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ37f+XDbNT30DsHAAAAAElFTkSuQmCC" }, function(t, e) { t.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAMp0lEQVR4nO3dPXYcaRUG4NeQTNYOydo7kEOyFisQIZmGFRhWIHag2YFmB4YMImlCIjklkrwC2RlEIiiZY3nMuPVTfb/q+zzn3KNo/P30mXPf+qq6OgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPi6F9UTAJ7VOsmrzypJDh/x71zc/b3+rN4/elbAcAQAWKZVktd3dZip2b/ewbjv7uo6U0h4l+TjDsYFgLY2SU6TXCa5Hagu7+a1mW/pANDLUZKzJDepb/Tb1M3dfI/m2AwA2GcHma6ol9L0vxUGnAwAwC/YJDlPfeOeoy6THD/fVgHA8m2SXKW+Se+irpK8eZ5tA4BlWmd/r/i3CQKbp28hACzHKslJ6pvwCPU2UxACgL12lD7H/Q+pk6dsKgCM7DT1jXbkusz0DQgA2AvrjPfynlHrJr4tAMAe2GT53+evqNPHbDYAjOA49Y10yXWe6YFJAFgMzf956jJCAAALcZL6xrlPdRUhAIDBvUl9w9zHchIAwLCOU98o97mEAACGc5T6BtmhLrf9QIBf9uvqCcAeWCf5e5LvqifSwG+SvEzyj+qJwNIJAPA0q0zN/1XxPDr5bZIPSf5ZPREA+jpL/bF41/LaYABKuO9fW1fxUCA8mlsA8DirJBdx37/Sy0zPBPyteiIA9HGW+itgNdXmG58V8BUvqicAC7TJdPXPGD5kegjzY/E8YFHcAoCHu8h0/MwYvkvy7yQ/VU8EgP11kvojb/X1Wv/C5wZ8wS0A2N4qyXVc/Y/qIsnvqicBS/Gr6gnAgvwpmv/IDuOBQNiaEwDY3k2WFQA+JHl3Vx+y/YOLh5nW+fqulrTmH5P8sXoSAOyPdervcW9TbzP9JPFzviXv4O7fPB9gfd+qq2dcNwAM/b3/q0wNehdvxVtlehDyZofre2gdzbZ6AFpZp76pfa1uMjXjitfhjhwEzmdcNwCNnKa+qX1ZpxnjPfirjHk6splz0QD0MNJV7k3G/BW8o4y1T2/nXS4A++449c3sU11m7JfdHGSsEDDyXgEwuPPUN7JPzX+EI/9vWWeaa/V+3WZ6RgEAHmyd+ia2pOb/yTpjnARczb1QAPbTm9Q3sZssq/l/cpD6vbuNrwQC8AgjHGWP+MDfto5Tv39ns68SgL2yTn3zOpl9lfN7m9o9vJl/iQDsk+rj//P5l7gTq9Q/D+A2AHyFXwOErzssHv8vxeM/l49Jfiiew++LxwdgQSqvWK92sL5dWmVak/0EYGib1AaA4/mXuHPHqd3T9fxLBGDpTuJqdQ6VzwLsY6iCJ/EMAPzc68Kxfywce26VzwIcFo4NwEJcxVH1HNap29fLHawPgAVbRZOaU+XLlYDPuAUA9zn+n9ePhWNvCseG4QgAcF9lAPhr4di7UrnGV4Vjw3AEALjvZdG410neF429S+8zrbXCq6JxYUgCANxXdQLwrmjcClVrrTzdgeEIAHBf1QmAADC/qs8WhiQAwH1VTeKiaNwKF9UTAAQA+JJj4v11WD0BGMmL6gnAYKq+L97t/0X7DMWcAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAADQkAABAQwIAjGFTPYEdqlrrh6JxYUgCANx3UT0BZvOuegIwEgEAxnBYPYEdOqyeACAAwCheVU9gh14VjXtdNC4MSQCA+y6Kxn1dNG6Fw6Jxr4vGhSEJAHBf1YNir5OsisbepXWcAMAQBAC4r/JBsd8Xjr0rh4VjXxeODcMRAOC+68KxDwvH3pXKkPNT4dgALMBNktuCusl+3wZYpWZfb5Nc7WB9sChOAODnqm4DvMx+3wb4vnDsi8KxYUgCAPzcReHY3xeOPbc/FY7tJUAAfNNR6o6qb5MczL/EnbOnAAyv8l71bZKz+Ze4U6sk56nbz5v5lwjAvrhMbQg4mX+JO1PZ/PcxUAEwo5PUNq19+UbAJrX7eJvp9gMAbOUg9Y3rdPZVzq/6JOU2+xGkANihq9Q3r83sq5zPSer37+3sqwRg75ymvoEt9VbACCcot0mO514oAPtnlCZ2mWWFgHXq3qb4ZXgCgEe5Sn0ju830JP0SQsA64+zZ2cxrBWCPvUl9I1tKCBip+d/Gy38AeIJ16hvZ53V5N6fRbDLGsf/nYQkAnuQs9Q3tyzqedcXbW2WMp/1H3R8AFmyT+ob2tbpM7TH3UcY68v9UV3MuGoBezlPf2P5fnWe37wvYZMzG/6mO51s6AN0cp76xbXPle5J5TgU2d//2yI3/0x4AW3hRPQFYkKskr6onsaXrJO+SXNz9vU7yfsv/9iDJyySHSV7f/X35vNObzQ9J/lw9CVgCAQC2t8nUUBnTh0wB7WPxPGARflU9AViQnyIAjOyHaP6wNScA8DBOAcbk6h8eyAkAPIxTgDG5+ocHcgIAD7fK9FDdUh6M23cXSX5XPQlYml9XTwAW6D9Jvsv0dDz1vs/233AAgCc7T/333rvXyTc/JQB4ZuuM9QM43ery2x8RAMzjKPWNsGPdZMxfRYTF8AwAPM2/Mj0M+NvqiTTzhyT/rJ4EAFym/qq4S51u+ZkAwOxWGf+Hcvah3m77gQDArhzEQ4Fz1mWmoAUAwxECNH8AmhICNH8AmhICNH8AmlrHtwOeUufR/AFYqFWEgMfU2WM2GwBGc5r6prqUevPIPQaAIR3FcwG/VFeZnp0AgL2zil8R/FqdPWVTAWApjuLNgbeZno/YPHEvAWBRVpl+z77jbYGbJMdP30IAWK51piPw6qa8qzqJr/cBwP8cZAoC+3gicJOp8a+fbbcAYM98ujVwlfrG/dS6zPS1Plf8APAAR1neqcBVpvce+EofADyDTabGOuKbBc8zXelr+rAQL6onADzKOsnruzq8q135kORdkovP/n7c4fjAMxAAYH+sk7zKFAZeZgoHyePDwcXd33dJrj/7+/6R/x4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAP8Fo6OEf4axxXgAAAAASUVORK5CYII=" }, function(t, e) { t.exports = "data:image/png;base64,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" }, function(t, e) { t.exports = "data:image/png;base64,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" }, function(t) { t.exports = { A_Wall45: [{ shape: [316, 323, 301, 323, 190, 212, 207, 188, 212, 190, 322, 300, 324, 305, 323, 315] }, { shape: [200, 188, 207, 188, 190, 212, 188, 207, 188, 199, 193, 191] }, { shape: [301, 323, 316, 323, 313, 324, 304, 324] }], A_WallCurve: [{ shape: [406, 128, 349, 132, 350, 102, 402, 98, 409, 101, 414, 117] }, { shape: [99, 403, 105, 329, 129, 376, 129, 402, 121, 413, 109, 414] }, { shape: [105, 329, 139, 323, 129, 376] }, { shape: [105, 329, 133, 255, 154, 283, 139, 323] }, { shape: [133, 255, 174, 198, 173, 248, 154, 283] }, { shape: [174, 198, 225, 152, 215, 200, 173, 248] }, { shape: [225, 152, 282, 121, 259, 166, 215, 200] }, { shape: [282, 121, 350, 102, 302, 145, 259, 166] }, { shape: [350, 102, 349, 132, 302, 145] }], A_WallAngle: [{ shape: [270, 292, 264, 286, 263, 249, 294, 244, 294, 282, 286, 293] }, { shape: [227, 220, 268, 218, 279, 221, 294, 244, 263, 249, 229, 249, 219, 241, 218, 229] }], A_WallCircleChelou: [{ shape: [196, 327, 196, 185, 206, 159, 307, 161, 315, 186, 287, 370, 243, 376, 210, 358] }, { shape: [307, 161, 206, 159, 238, 138, 273, 137] }, { shape: [287, 370, 315, 186, 316, 326, 308, 349] }], A_WallTransition: [{ shape: [334, 309, 268, 249, 295, 230, 350, 283, 352, 302] }, { shape: [167, 205, 231, 204, 263, 211, 216, 234, 169, 234, 159, 226, 158, 214] }, { shape: [263, 211, 295, 230, 268, 249, 216, 234] }], C_Wall: [{ shape: [336, 271, 176, 271, 166, 253, 174, 242, 336, 241, 346, 259] }] } }, function(t, e, n) { t.exports = n.p + "images/3e903b257d861f09cba9b42a601309c2-CHAR_Classic.png" }, function(t) { t.exports = { frames: { "CHAR_Classic0001.png": { frame: { x: 301, y: 723, w: 180, h: 190 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 93, y: 135, w: 180, h: 190 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "CHAR_Classic0005.png": { frame: { x: 363, y: 449, w: 174, h: 188 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 172, y: 129, w: 174, h: 188 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "CHAR_Classic0008.png": { frame: { x: 483, y: 639, w: 140, h: 109 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 160, y: 227, w: 140, h: 109 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "CHAR_Classic0010.png": { frame: { x: 143, y: 1, w: 137, h: 223 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 158, y: 107, w: 137, h: 223 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "CHAR_Classic0011.png": { frame: { x: 130, y: 541, w: 127, h: 233 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 163, y: 97, w: 127, h: 233 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "CHAR_Classic0015.png": { frame: { x: 1, y: 785, w: 169, h: 233 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 142, y: 119, w: 169, h: 233 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "CHAR_Classic0020.png": { frame: { x: 1, y: 272, w: 136, h: 267 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 164, y: 97, w: 136, h: 267 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "CHAR_Classic0022.png": { frame: { x: 259, y: 499, w: 102, h: 222 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 163, y: 155, w: 102, h: 222 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "CHAR_Classic0023.png": { frame: { x: 272, y: 226, w: 107, h: 221 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 163, y: 155, w: 107, h: 221 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Classic0026.png": { frame: { x: 282, y: 1, w: 182, h: 191 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 163, y: 167, w: 182, h: 191 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "CHAR_Classic0028.png": { frame: { x: 1, y: 1, w: 140, h: 269 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 161, y: 102, w: 140, h: 269 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "CHAR_Classic0032.png": { frame: { x: 381, y: 194, w: 169, h: 178 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 152, y: 144, w: 169, h: 178 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "CHAR_Classic0033.png": { frame: { x: 466, y: 1, w: 169, h: 178 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 152, y: 144, w: 169, h: 178 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "CHAR_Classic0036.png": { frame: { x: 483, y: 781, w: 134, h: 134 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 164, y: 163, w: 134, h: 134 }, sourceSize: { w: 461, h: 461 }, anchor: { x: .5, y: .5 } }, "dance01.png": { frame: { x: 381, y: 194, w: 169, h: 178 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 152, y: 144, w: 169, h: 178 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance02.png": { frame: { x: 466, y: 1, w: 169, h: 178 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 152, y: 144, w: 169, h: 178 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance03.png": { frame: { x: 381, y: 194, w: 169, h: 178 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 152, y: 144, w: 169, h: 178 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance04.png": { frame: { x: 466, y: 1, w: 169, h: 178 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 152, y: 144, w: 169, h: 178 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance05.png": { frame: { x: 483, y: 639, w: 140, h: 109 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 160, y: 227, w: 140, h: 109 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance06.png": { frame: { x: 130, y: 541, w: 127, h: 233 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 163, y: 97, w: 127, h: 233 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 139, y: 272, w: 131, h: 225 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 161, y: 105, w: 131, h: 225 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 1, y: 541, w: 127, h: 242 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 163, y: 89, w: 127, h: 242 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 172, y: 776, w: 127, h: 233 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 163, y: 97, w: 127, h: 233 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_Classic: ["CHAR_Classic0001.png", "CHAR_Classic0005.png", "CHAR_Classic0008.png", "CHAR_Classic0010.png", "CHAR_Classic0011.png", "CHAR_Classic0015.png", "CHAR_Classic0020.png", "CHAR_Classic0022.png", "CHAR_Classic0023.png", "CHAR_Classic0026.png", "CHAR_Classic0028.png", "CHAR_Classic0032.png", "CHAR_Classic0033.png", "CHAR_Classic0036.png"], dance: ["dance01.png", "dance02.png", "dance03.png", "dance04.png", "dance05.png", "dance06.png", "dance07.png", "dance08.png", "dance09.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_Classic.png", format: "RGBA8888", size: { w: 1024, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:1af05ca90866c2db3d5264f09bcf9024:19ea02995edd2e8186f070b5e3ce4163:746d1e1ccaadc67beb27a9eb7dfaf923$" } } }, function(t, e, n) { t.exports = n.p + "images/93b6dcc1155241b085d711c509eaeafa-CHAR_StickPlant.png" }, function(t) { t.exports = { frames: { "CHAR_StickPlant0001.png": { frame: { x: 285, y: 142, w: 143, h: 217 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 140, y: 130, w: 143, h: 217 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_StickPlant0002.png": { frame: { x: 1, y: 676, w: 180, h: 211 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 115, y: 125, w: 180, h: 211 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_StickPlant0003.png": { frame: { x: 255, y: 667, w: 182, h: 229 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 127, y: 142, w: 182, h: 229 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_StickPlant0004.png": { frame: { x: 285, y: 1, w: 139, h: 220 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 161, y: 125, w: 139, h: 220 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_StickPlant0005.png": { frame: { x: 1, y: 1, w: 145, h: 282 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 159, y: 77, w: 145, h: 282 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_StickPlant0006.png": { frame: { x: 1, y: 858, w: 124, h: 123 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 168, y: 169, w: 124, h: 123 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 263, y: 287, w: 188, h: 247 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 129, y: 82, w: 188, h: 247 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 1, y: 508, w: 166, h: 252 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 129, y: 78, w: 166, h: 252 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 1, y: 318, w: 188, h: 257 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 129, y: 70, w: 188, h: 257 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 1, y: 148, w: 168, h: 260 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 163, y: 71, w: 168, h: 260 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 260, y: 477, w: 188, h: 244 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 129, y: 85, w: 188, h: 244 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_StickPlant: ["CHAR_StickPlant0001.png", "CHAR_StickPlant0002.png", "CHAR_StickPlant0003.png", "CHAR_StickPlant0004.png", "CHAR_StickPlant0005.png", "CHAR_StickPlant0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_StickPlant.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:2a2d86683a5e183bd10b948b3f888e38:39a6de9ebc9ef19d9f88cdaac8e2d87b:8a82dd896013b0bc4d764af393a5dae6$" } } }, function(t, e, n) { t.exports = n.p + "images/857eb4f13173bab620d058806de00f44-CHAR_Momie.png" }, function(t) { t.exports = { frames: { "CHAR_Momie0001.png": { frame: { x: 242, y: 141, w: 160, h: 203 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 107, y: 124, w: 160, h: 203 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Momie0002.png": { frame: { x: 1, y: 335, w: 185, h: 185 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 160, y: 130, w: 185, h: 185 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Momie0003.png": { frame: { x: 188, y: 492, w: 165, h: 158 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 149, y: 181, w: 165, h: 158 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Momie0004.png": { frame: { x: 242, y: 1, w: 138, h: 220 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 161, y: 126, w: 138, h: 220 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Momie0005.png": { frame: { x: 1, y: 1, w: 142, h: 239 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 150, y: 115, w: 142, h: 239 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Momie0006.png": { frame: { x: 355, y: 492, w: 124, h: 124 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 168, y: 171, w: 124, h: 124 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 1, y: 145, w: 188, h: 197 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 125, y: 130, w: 188, h: 197 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 200, y: 303, w: 187, h: 197 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 125, y: 130, w: 187, h: 197 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_Momie: ["CHAR_Momie0001.png", "CHAR_Momie0002.png", "CHAR_Momie0003.png", "CHAR_Momie0004.png", "CHAR_Momie0005.png", "CHAR_Momie0006.png"], dance: ["dance07.png", "dance08.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_Momie.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:9acb8d7c7cb7e8f8e8b649d5dec61f31:34a24bc154407eb8cf94c787a090c9e9:947f771e8315da983c1fd5b1b2f41b65$" } } }, function(t, e, n) { t.exports = n.p + "images/7b99e73b8249767bd829cd4c07f9d0ac-CHAR_Burger.png" }, function(t) { t.exports = { frames: { "CHAR_Burger0001.png": { frame: { x: 303, y: 201, w: 175, h: 199 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 110, y: 127, w: 175, h: 199 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Burger0002.png": { frame: { x: 303, y: 1, w: 205, h: 198 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 167, y: 135, w: 205, h: 198 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Burger0003.png": { frame: { x: 1, y: 1, w: 250, h: 300 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 93, y: 88, w: 250, h: 300 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Burger0004.png": { frame: { x: 1, y: 590, w: 215, h: 188 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 115, y: 129, w: 215, h: 188 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Burger0005.png": { frame: { x: 1, y: 421, w: 167, h: 224 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 147, y: 115, w: 167, h: 224 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Burger0006.png": { frame: { x: 337, y: 697, w: 120, h: 120 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 170, y: 170, w: 120, h: 120 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance007.png": { frame: { x: 227, y: 547, w: 222, h: 148 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 118, y: 180, w: 222, h: 148 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 252, y: 378, w: 234, h: 167 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 112, y: 161, w: 234, h: 167 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 1, y: 253, w: 166, h: 249 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 147, y: 79, w: 166, h: 249 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 1, y: 780, w: 166, h: 211 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 147, y: 60, w: 166, h: 211 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 169, y: 780, w: 166, h: 184 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 147, y: 72, w: 166, h: 184 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_Burger: ["CHAR_Burger0001.png", "CHAR_Burger0002.png", "CHAR_Burger0003.png", "CHAR_Burger0004.png", "CHAR_Burger0005.png", "CHAR_Burger0006.png"], dance: ["dance007.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_Burger.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:357f386976177e4aaaad28e5a9dfd85d:db55230cf10a7a0aab8a5de5c4e350c9:d279cd81b82a7af1b65cf1ac7b4b23eb$" } } }, function(t, e, n) { t.exports = n.p + "images/c8266212e222c99b3f36be97519fe984-CHAR_Cactus.png" }, function(t) { t.exports = { frames: { "CHAR_Cactus0007.png": { frame: { x: 1, y: 200, w: 186, h: 272 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 94, y: 112, w: 186, h: 272 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Cactus0008.png": { frame: { x: 1, y: 615, w: 196, h: 257 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 153, y: 121, w: 196, h: 257 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Cactus0009.png": { frame: { x: 1, y: 388, w: 225, h: 265 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 108, y: 106, w: 225, h: 265 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Cactus0010.png": { frame: { x: 268, y: 448, w: 221, h: 230 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 122, y: 151, w: 221, h: 230 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Cactus0011.png": { frame: { x: 1, y: 1, w: 197, h: 292 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 139, y: 77, w: 197, h: 292 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Cactus0012.png": { frame: { x: 257, y: 813, w: 161, h: 143 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 150, y: 159, w: 161, h: 143 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance01.png": { frame: { x: 295, y: 1, w: 232, h: 211 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 109, y: 118, w: 232, h: 211 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance02.png": { frame: { x: 1, y: 813, w: 254, h: 196 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 98, y: 133, w: 254, h: 196 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance03.png": { frame: { x: 275, y: 235, w: 232, h: 211 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 109, y: 118, w: 232, h: 211 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance04.png": { frame: { x: 275, y: 235, w: 232, h: 211 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 109, y: 118, w: 232, h: 211 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance05.png": { frame: { x: 1, y: 813, w: 254, h: 196 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 98, y: 133, w: 254, h: 196 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance06.png": { frame: { x: 295, y: 1, w: 232, h: 211 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 109, y: 118, w: 232, h: 211 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_Cactus: ["CHAR_Cactus0007.png", "CHAR_Cactus0008.png", "CHAR_Cactus0009.png", "CHAR_Cactus0010.png", "CHAR_Cactus0011.png", "CHAR_Cactus0012.png"], dance: ["dance01.png", "dance02.png", "dance03.png", "dance04.png", "dance05.png", "dance06.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_Cactus.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:6cd2efad49e244d3d36cf956c0a955b3:6d6167b66ee30b5bb2b8fd761e9d92c0:c7bb3c34b28ae2c5cae96e2dd301e6a0$" } } }, function(t, e, n) { t.exports = n.p + "images/1f8794216bbd48e1185deeeafd38e37f-CHAR_AngelStick.png" }, function(t) { t.exports = { frames: { "CHAR_AngelStick0001.png": { frame: { x: 409, y: 743, w: 174, h: 217 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 107, y: 130, w: 174, h: 217 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_AngelStick0002.png": { frame: { x: 426, y: 477, w: 212, h: 211 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 88, y: 125, w: 212, h: 211 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_AngelStick0003.png": { frame: { x: 446, y: 248, w: 199, h: 206 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 126, y: 166, w: 199, h: 206 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_AngelStick0004.png": { frame: { x: 224, y: 248, w: 227, h: 220 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 109, y: 126, w: 227, h: 220 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_AngelStick0005.png": { frame: { x: 223, y: 1, w: 241, h: 245 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 110, y: 114, w: 241, h: 245 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_AngelStick0006.png": { frame: { x: 832, y: 1, w: 123, h: 123 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 169, y: 169, w: 123, h: 123 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 466, y: 1, w: 204, h: 177 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 125, y: 155, w: 204, h: 177 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 645, y: 1, w: 202, h: 185 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 126, y: 144, w: 202, h: 185 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 222, y: 498, w: 202, h: 243 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 126, y: 84, w: 202, h: 243 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 1, y: 250, w: 221, h: 246 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 115, y: 81, w: 221, h: 246 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 1, y: 498, w: 219, h: 243 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 118, y: 84, w: 219, h: 243 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance12.png": { frame: { x: 1, y: 1, w: 220, h: 247 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 121, y: 80, w: 220, h: 247 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance13.png": { frame: { x: 1, y: 743, w: 219, h: 243 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 119, y: 84, w: 219, h: 243 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance14.png": { frame: { x: 222, y: 743, w: 219, h: 185 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 117, y: 144, w: 219, h: 185 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_AngelStick: ["CHAR_AngelStick0001.png", "CHAR_AngelStick0002.png", "CHAR_AngelStick0003.png", "CHAR_AngelStick0004.png", "CHAR_AngelStick0005.png", "CHAR_AngelStick0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png", "dance12.png", "dance13.png", "dance14.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_AngelStick.png", format: "RGBA8888", size: { w: 1024, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:48da29bac8ac09a3245e4ff8ba7461d4:bd93f33a5a1d3ff6c8c694c254ed9922:5e7aeaef887c163adc17e5a1d67ab082$" } } }, function(t, e, n) { t.exports = n.p + "images/8d8328c8a5f7e4e701d5a1c98ff4660b-CHAR_Corgi.png" }, function(t) { t.exports = { frames: { "CHAR_Corgi0001.png": { frame: { x: 234, y: 1, w: 232, h: 186 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 126, y: 60, w: 232, h: 186 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Corgi0002.png": { frame: { x: 1, y: 342, w: 267, h: 183 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 116, y: 60, w: 267, h: 183 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Corgi0003.png": { frame: { x: 1, y: 1, w: 231, h: 339 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 116, y: 62, w: 231, h: 339 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Corgi0004.png": { frame: { x: 1, y: 611, w: 244, h: 207 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 106, y: 68, w: 244, h: 207 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Corgi0005.png": { frame: { x: 186, y: 342, w: 229, h: 242 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 128, y: 83, w: 229, h: 242 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Corgi0006.png": { frame: { x: 1, y: 857, w: 126, h: 125 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 167, y: 168, w: 126, h: 125 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 210, y: 818, w: 224, h: 200 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 120, y: 132, w: 224, h: 200 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 405, y: 586, w: 227, h: 197 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 118, y: 135, w: 227, h: 197 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 210, y: 586, w: 230, h: 193 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 117, y: 139, w: 230, h: 193 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 436, y: 815, w: 224, h: 200 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 120, y: 132, w: 224, h: 200 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_Corgi: ["CHAR_Corgi0001.png", "CHAR_Corgi0002.png", "CHAR_Corgi0003.png", "CHAR_Corgi0004.png", "CHAR_Corgi0005.png", "CHAR_Corgi0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_Corgi.png", format: "RGBA8888", size: { w: 1024, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:72dd58e9adf8dd1556532c49c9845c20:57370081ee294a6870bf01bd39d37774:36c470e8e48e3af7296107d5ebf71b73$" } } }, function(t, e, n) { t.exports = n.p + "images/8bcf52d4fa476d7409be921ceabea58b-CHAR_Unicorn.png" }, function(t) { t.exports = { frames: { "CHAR_Unicorn0002.png": { frame: { x: 669, y: 1, w: 193, h: 260 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 161, y: 97, w: 193, h: 260 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Unicorn0003.png": { frame: { x: 1, y: 1, w: 235, h: 317 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 117, y: 43, w: 235, h: 317 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Unicorn0004.png": { frame: { x: 1, y: 634, w: 227, h: 300 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 109, y: 60, w: 227, h: 300 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Unicorn0005.png": { frame: { x: 1, y: 320, w: 192, h: 312 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 121, y: 102, w: 192, h: 312 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Unicorn0006.png": { frame: { x: 195, y: 320, w: 212, h: 291 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 109, y: 89, w: 212, h: 291 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Unicorn0012.png": { frame: { x: 669, y: 196, w: 127, h: 126 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 166, y: 168, w: 127, h: 126 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 409, y: 293, w: 215, h: 260 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 103, y: 65, w: 215, h: 260 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 238, y: 1, w: 212, h: 290 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 86, y: 33, w: 212, h: 290 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 452, y: 1, w: 215, h: 260 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 130, y: 65, w: 215, h: 260 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 230, y: 613, w: 212, h: 290 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 156, y: 34, w: 212, h: 290 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_Unicorn: ["CHAR_Unicorn0002.png", "CHAR_Unicorn0003.png", "CHAR_Unicorn0004.png", "CHAR_Unicorn0005.png", "CHAR_Unicorn0006.png", "CHAR_Unicorn0012.png"], dance: ["dance08.png", "dance09.png", "dance10.png", "dance11.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_Unicorn.png", format: "RGBA8888", size: { w: 1024, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:c0338af825d7ba8ba182d88ea514deda:4fbf28755864ce3ee4c4f89848192668:d30df2019f154b3aa69b18c314351869$" } } }, function(t, e, n) { t.exports = n.p + "images/03b7dd5d1ae7134731c278c21bb06289-CHAR_EvilStick.png" }, function(t) { t.exports = { frames: { "CHAR_EvilStick0001.png": { frame: { x: 228, y: 817, w: 166, h: 217 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 116, y: 136, w: 166, h: 217 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_EvilStick0002.png": { frame: { x: 1, y: 681, w: 225, h: 211 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 75, y: 128, w: 225, h: 211 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_EvilStick0003.png": { frame: { x: 1, y: 222, w: 267, h: 205 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 77, y: 161, w: 267, h: 205 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_EvilStick0004.png": { frame: { x: 1, y: 1, w: 269, h: 219 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 93, y: 134, w: 269, h: 219 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_EvilStick0005.png": { frame: { x: 1, y: 429, w: 265, h: 250 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 80, y: 104, w: 265, h: 250 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_EvilStick0006.png": { frame: { x: 1, y: 894, w: 123, h: 123 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 169, y: 169, w: 123, h: 123 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 272, y: 1, w: 198, h: 236 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 145, y: 88, w: 198, h: 236 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 270, y: 401, w: 234, h: 206 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 128, y: 118, w: 234, h: 206 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 268, y: 609, w: 234, h: 206 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 128, y: 118, w: 234, h: 206 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 272, y: 201, w: 198, h: 236 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 145, y: 88, w: 198, h: 236 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 268, y: 609, w: 234, h: 206 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 128, y: 118, w: 234, h: 206 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_EvilStick: ["CHAR_EvilStick0001.png", "CHAR_EvilStick0002.png", "CHAR_EvilStick0003.png", "CHAR_EvilStick0004.png", "CHAR_EvilStick0005.png", "CHAR_EvilStick0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_EvilStick.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:b39c74389f942dc47bc5c51af712d951:8a97e025228d320d4dfd8d71ac56a9f3:3e371dcf4c1fc24a52deecaee4dcbcf9$" } } }, function(t, e, n) { t.exports = n.p + "images/5eb119962664142b51b839f8ffc53e15-CHAR_RainbowStick.png" }, function(t) { t.exports = { frames: { "CHAR_RainbowStick0001.png": { frame: { x: 1, y: 421, w: 166, h: 197 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 94, y: 129, w: 166, h: 197 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_RainbowStick0002.png": { frame: { x: 200, y: 447, w: 156, h: 187 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 188, y: 131, w: 156, h: 187 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_RainbowStick0003.png": { frame: { x: 244, y: 1, w: 143, h: 240 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 125, y: 136, w: 143, h: 240 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_RainbowStick0004.png": { frame: { x: 1, y: 131, w: 137, h: 219 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 158, y: 127, w: 137, h: 219 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_RainbowStick0005.png": { frame: { x: 1, y: 1, w: 128, h: 241 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 161, y: 111, w: 128, h: 241 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_RainbowStick0006.png": { frame: { x: 1, y: 771, w: 123, h: 123 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 169, y: 169, w: 123, h: 123 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 1, y: 589, w: 180, h: 185 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 99, y: 139, w: 180, h: 185 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 1, y: 270, w: 149, h: 205 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 158, y: 86, w: 149, h: 205 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 222, y: 146, w: 145, h: 215 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 185, y: 98, w: 145, h: 215 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 208, y: 293, w: 152, h: 202 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 199, y: 122, w: 152, h: 202 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 1, y: 270, w: 149, h: 205 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 158, y: 86, w: 149, h: 205 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_RainbowStick: ["CHAR_RainbowStick0001.png", "CHAR_RainbowStick0002.png", "CHAR_RainbowStick0003.png", "CHAR_RainbowStick0004.png", "CHAR_RainbowStick0005.png", "CHAR_RainbowStick0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_RainbowStick.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:6d64e3a16c56f156b32f98f61d4e5ea0:f163e283a6a20e2189850b290bac4507:8d2ffb189c8192ad26276715f5aeec83$" } } }, function(t, e, n) { t.exports = n.p + "images/dc7ebdf3f8d4dcb71c7a59bbf3d11619-CHAR_StickOuech.png" }, function(t) { t.exports = { frames: { "CHAR_StickOuech0001.png": { frame: { x: 1, y: 332, w: 147, h: 218 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 140, y: 136, w: 147, h: 218 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_StickOuech0002.png": { frame: { x: 221, y: 336, w: 181, h: 212 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 116, y: 126, w: 181, h: 212 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_StickOuech0003.png": { frame: { x: 1, y: 646, w: 180, h: 205 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 123, y: 151, w: 180, h: 205 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_StickOuech0004.png": { frame: { x: 244, y: 167, w: 167, h: 219 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 130, y: 130, w: 167, h: 219 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_StickOuech0005.png": { frame: { x: 1, y: 167, w: 163, h: 241 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 130, y: 111, w: 163, h: 241 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_StickOuech0006.png": { frame: { x: 1, y: 828, w: 124, h: 124 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 167, y: 167, w: 124, h: 124 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 1, y: 1, w: 164, h: 242 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 166, y: 82, w: 164, h: 242 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 1, y: 481, w: 163, h: 206 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 166, y: 129, w: 163, h: 206 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 209, y: 519, w: 163, h: 206 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 150, y: 129, w: 163, h: 206 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 245, y: 1, w: 164, h: 242 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 180, y: 82, w: 164, h: 242 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 209, y: 519, w: 163, h: 206 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 150, y: 129, w: 163, h: 206 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance12.png": { frame: { x: 1, y: 481, w: 163, h: 206 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 166, y: 129, w: 163, h: 206 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_StickOuech: ["CHAR_StickOuech0001.png", "CHAR_StickOuech0002.png", "CHAR_StickOuech0003.png", "CHAR_StickOuech0004.png", "CHAR_StickOuech0005.png", "CHAR_StickOuech0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png", "dance12.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_StickOuech.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:1d8e9749efea7242939747a0e231605d:bdbc699cbd5c033f5f739e8fa737f505:820e835350ee70019519a98ae9678ac0$" } } }, function(t, e, n) { t.exports = n.p + "images/325db0a37f265c4934bbe2dd1e2f3d3f-CHAR_KingStick.png" }, function(t) { t.exports = { frames: { "CHAR_KingStick0001.png": { frame: { x: 214, y: 499, w: 175, h: 194 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 87, y: 132, w: 175, h: 194 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_KingStick0002.png": { frame: { x: 1, y: 637, w: 172, h: 169 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 198, y: 136, w: 172, h: 169 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_KingStick0003.png": { frame: { x: 1, y: 1, w: 133, h: 305 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 158, y: 83, w: 133, h: 305 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_KingStick0004.png": { frame: { x: 227, y: 360, w: 137, h: 219 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 159, y: 129, w: 137, h: 219 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_KingStick0005.png": { frame: { x: 1, y: 136, w: 143, h: 241 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 137, y: 94, w: 143, h: 241 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_KingStick0006.png": { frame: { x: 1, y: 808, w: 123, h: 123 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 169, y: 169, w: 123, h: 123 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 244, y: 159, w: 199, h: 226 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 87, y: 101, w: 199, h: 226 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 308, y: 1, w: 156, h: 200 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 124, y: 127, w: 156, h: 200 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 1, y: 281, w: 192, h: 224 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 153, y: 103, w: 192, h: 224 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 1, y: 475, w: 160, h: 211 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 161, y: 127, w: 160, h: 211 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_KingStick: ["CHAR_KingStick0001.png", "CHAR_KingStick0002.png", "CHAR_KingStick0003.png", "CHAR_KingStick0004.png", "CHAR_KingStick0005.png", "CHAR_KingStick0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_KingStick.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:578074550b8ead7c4480e14f2d60ecc7:681575d41300280a8101cbd0b2e76937:ad4479df57aeaac8f083b1e2f2a78345$" } } }, function(t, e, n) { t.exports = n.p + "images/78696f12a3c6e8ed46cc5184cc505bcb-CHAR_Banana.png" }, function(t) { t.exports = { frames: { "CHAR_Banana0001.png": { frame: { x: 1, y: 1, w: 179, h: 278 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 79, y: 128, w: 179, h: 278 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Banana0002.png": { frame: { x: 1, y: 281, w: 169, h: 271 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 187, y: 128, w: 169, h: 271 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Banana0003.png": { frame: { x: 172, y: 281, w: 251, h: 183 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 107, y: 140, w: 251, h: 183 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Banana0004.png": { frame: { x: 248, y: 784, w: 191, h: 227 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 130, y: 136, w: 191, h: 227 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Banana0005.png": { frame: { x: 1, y: 810, w: 213, h: 245 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 142, y: 129, w: 213, h: 245 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Banana0006.png": { frame: { x: 546, y: 228, w: 124, h: 125 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 168, y: 168, w: 124, h: 125 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 367, y: 1, w: 183, h: 225 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 138, y: 106, w: 183, h: 225 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 186, y: 534, w: 183, h: 248 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 138, y: 83, w: 183, h: 248 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 1, y: 554, w: 183, h: 254 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 138, y: 77, w: 183, h: 254 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 1, y: 554, w: 183, h: 254 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 138, y: 77, w: 183, h: 254 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 182, y: 1, w: 183, h: 248 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 138, y: 83, w: 183, h: 248 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance12.png": { frame: { x: 357, y: 251, w: 187, h: 244 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 134, y: 87, w: 187, h: 244 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance13.png": { frame: { x: 371, y: 497, w: 183, h: 225 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 138, y: 106, w: 183, h: 225 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_Banana: ["CHAR_Banana0001.png", "CHAR_Banana0002.png", "CHAR_Banana0003.png", "CHAR_Banana0004.png", "CHAR_Banana0005.png", "CHAR_Banana0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png", "dance12.png", "dance13.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_Banana.png", format: "RGBA8888", size: { w: 1024, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:aa03b60acff5d367c9358a891a893475:5a0af2ca3b4a00d9ed66927d3fdb705c:736b432be3da8a6dd0bd5b380d329bef$" } } }, function(t, e, n) { t.exports = n.p + "images/3de7d310811b58b61509ccdbc6d52797-CHAR_Ninja.png" }, function(t) { t.exports = { frames: { "CHAR_Ninja0001.png": { frame: { x: 261, y: 442, w: 184, h: 173 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 107, y: 138, w: 184, h: 173 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Ninja0002.png": { frame: { x: 801, y: 1, w: 200, h: 162 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 127, y: 138, w: 200, h: 162 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Ninja0003.png": { frame: { x: 1, y: 1, w: 271, h: 244 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 113, y: 100, w: 271, h: 244 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Ninja0004.png": { frame: { x: 1, y: 499, w: 181, h: 164 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 110, y: 133, w: 181, h: 164 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Ninja0005.png": { frame: { x: 793, y: 421, w: 134, h: 186 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 170, y: 133, w: 134, h: 186 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Ninja0006.png": { frame: { x: 447, y: 486, w: 117, h: 117 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 171, y: 171, w: 117, h: 117 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 274, y: 1, w: 264, h: 196 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 114, y: 152, w: 264, h: 196 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 801, y: 165, w: 254, h: 194 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 109, y: 133, w: 254, h: 194 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 540, y: 1, w: 259, h: 251 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 110, y: 76, w: 259, h: 251 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 1, y: 247, w: 258, h: 250 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 110, y: 77, w: 258, h: 250 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 274, y: 199, w: 259, h: 241 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 110, y: 86, w: 259, h: 241 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance12.png": { frame: { x: 535, y: 254, w: 256, h: 230 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 110, y: 97, w: 256, h: 230 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_Ninja: ["CHAR_Ninja0001.png", "CHAR_Ninja0002.png", "CHAR_Ninja0003.png", "CHAR_Ninja0004.png", "CHAR_Ninja0005.png", "CHAR_Ninja0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png", "dance12.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_Ninja.png", format: "RGBA8888", size: { w: 1024, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:3bffb7c1fc2bde452c565c2dd7e5aa8f:83fb9dcb602bce456b1c3cc0aec0be09:f236ea6efd8139a222f4aeb41cf66a42$" } } }, function(t, e, n) { t.exports = n.p + "images/2c29c41a85e52e34092591b37aaaa278-CHAR_Sheep.png" }, function(t) { t.exports = { frames: { "AN_Sheep0001.png": { frame: { x: 1, y: 185, w: 262, h: 210 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 60, y: 127, w: 262, h: 210 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "AN_Sheep0002.png": { frame: { x: 531, y: 169, w: 247, h: 248 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 126, y: 119, w: 247, h: 248 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "AN_Sheep0003.png": { frame: { x: 1, y: 586, w: 181, h: 243 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 154, y: 134, w: 181, h: 243 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "AN_Sheep0004.png": { frame: { x: 267, y: 1, w: 246, h: 262 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 101, y: 126, w: 246, h: 262 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "AN_Sheep0005.png": { frame: { x: 1, y: 1, w: 264, h: 182 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 111, y: 148, w: 264, h: 182 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "AN_Sheep0006.png": { frame: { x: 1, y: 769, w: 131, h: 131 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 165, y: 165, w: 131, h: 131 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 531, y: 1, w: 260, h: 166 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 107, y: 171, w: 260, h: 166 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 1, y: 397, w: 244, h: 187 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 115, y: 150, w: 244, h: 187 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 265, y: 249, w: 244, h: 207 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 115, y: 130, w: 244, h: 207 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 793, y: 1, w: 244, h: 211 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 115, y: 126, w: 244, h: 211 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 511, y: 418, w: 244, h: 175 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 115, y: 122, w: 244, h: 175 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance12.png": { frame: { x: 247, y: 458, w: 244, h: 171 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 115, y: 119, w: 244, h: 171 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance13.png": { frame: { x: 781, y: 247, w: 237, h: 181 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 118, y: 119, w: 237, h: 181 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { AN_Sheep: ["AN_Sheep0001.png", "AN_Sheep0002.png", "AN_Sheep0003.png", "AN_Sheep0004.png", "AN_Sheep0005.png", "AN_Sheep0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png", "dance12.png", "dance13.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_Sheep.png", format: "RGBA8888", size: { w: 1024, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:3f4e0a3d5745781cda06e6fd35456c4d:0d2449d6b45dc28e3000e7775d4df053:930e65e6c0f80ce30763c17f918bb6b1$" } } }, function(t, e, n) { t.exports = n.p + "images/b29eb22ba46e706f4964c7becd276ae2-CHAR_Panda.png" }, function(t) { t.exports = { frames: { "dance07.png": { frame: { x: 250, y: 547, w: 255, h: 192 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 97, y: 143, w: 255, h: 192 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 490, y: 1, w: 233, h: 223 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 108, y: 102, w: 233, h: 223 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 1, y: 824, w: 247, h: 198 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 101, y: 93, w: 247, h: 198 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 250, y: 804, w: 247, h: 197 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 101, y: 89, w: 247, h: 197 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 435, y: 258, w: 238, h: 233 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 106, y: 93, w: 238, h: 233 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "v03_CHAR_Panda0001.png": { frame: { x: 1, y: 1, w: 245, h: 278 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 48, y: 128, w: 245, h: 278 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "v03_CHAR_Panda0002.png": { frame: { x: 1, y: 557, w: 247, h: 265 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 156, y: 132, w: 247, h: 265 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "v03_CHAR_Panda0003.png": { frame: { x: 236, y: 281, w: 197, h: 264 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 127, y: 110, w: 197, h: 264 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "v03_CHAR_Panda0004.png": { frame: { x: 248, y: 1, w: 240, h: 255 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 106, y: 137, w: 240, h: 255 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "v03_CHAR_Panda0005.png": { frame: { x: 1, y: 281, w: 274, h: 233 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 89, y: 137, w: 274, h: 233 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "v03_CHAR_Panda0006.png": { frame: { x: 444, y: 498, w: 157, h: 157 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 152, y: 152, w: 157, h: 157 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png"], v03_CHAR_Panda: ["v03_CHAR_Panda0001.png", "v03_CHAR_Panda0002.png", "v03_CHAR_Panda0003.png", "v03_CHAR_Panda0004.png", "v03_CHAR_Panda0005.png", "v03_CHAR_Panda0006.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_Panda.png", format: "RGBA8888", size: { w: 1024, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:70eaaf2e2fcca05d30011a47e875de3a:0ba21fc9622ea342de2c4ee66e2a2e95:8e0c513b69bf9225ef04e50006dc9e1e$" } } }, function(t, e, n) { t.exports = n.p + "images/49e3dae36bca650873d849bb87b3890b-CHAR_SuperStick.png" }, function(t) { t.exports = { frames: { "CHAR_SuperStick0001.png": { frame: { x: 259, y: 1, w: 154, h: 241 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 113, y: 122, w: 154, h: 241 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_SuperStick0002.png": { frame: { x: 1, y: 363, w: 199, h: 225 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 114, y: 122, w: 199, h: 225 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_SuperStick0003.png": { frame: { x: 259, y: 157, w: 232, h: 223 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 99, y: 122, w: 232, h: 223 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_SuperStick0004.png": { frame: { x: 1, y: 178, w: 183, h: 232 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 130, y: 122, w: 183, h: 232 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_SuperStick0005.png": { frame: { x: 1, y: 1, w: 175, h: 256 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 123, y: 102, w: 175, h: 256 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_SuperStick0006.png": { frame: { x: 359, y: 741, w: 123, h: 123 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 169, y: 169, w: 123, h: 123 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 228, y: 382, w: 185, h: 223 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 106, y: 106, w: 185, h: 223 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 1, y: 564, w: 178, h: 223 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 113, y: 106, w: 178, h: 223 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 181, y: 744, w: 176, h: 223 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 115, y: 106, w: 176, h: 223 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 1, y: 744, w: 178, h: 223 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 113, y: 106, w: 178, h: 223 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 226, y: 569, w: 170, h: 223 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 121, y: 106, w: 170, h: 223 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_SuperStick: ["CHAR_SuperStick0001.png", "CHAR_SuperStick0002.png", "CHAR_SuperStick0003.png", "CHAR_SuperStick0004.png", "CHAR_SuperStick0005.png", "CHAR_SuperStick0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_SuperStick.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:4869fdb089eea373a27bf289609014ca:d552bc41c5038d15cfb6797c90d46ac2:908efdd5771351a0acbc3de0ce9ef13a$" } } }, function(t, e, n) { t.exports = n.p + "images/82d481b0f0594b10f47878452ccb3f6e-CHAR_RobotMan.png" }, function(t) { t.exports = { frames: { "CHAR_RobotMan0002.png": { frame: { x: 380, y: 1, w: 176, h: 183 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 150, y: 126, w: 176, h: 183 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_RobotMan0003.png": { frame: { x: 1, y: 1, w: 206, h: 309 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 124, y: 75, w: 206, h: 309 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_RobotMan0004.png": { frame: { x: 345, y: 192, w: 167, h: 188 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 136, y: 135, w: 167, h: 188 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_RobotMan0005.png": { frame: { x: 1, y: 555, w: 172, h: 239 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 147, y: 116, w: 172, h: 239 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_RobotMan0006.png": { frame: { x: 345, y: 382, w: 122, h: 122 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 169, y: 170, w: 122, h: 122 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_RobotMan0007.png": { frame: { x: 328, y: 525, w: 168, h: 190 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 146, y: 136, w: 168, h: 190 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance06.png": { frame: { x: 1, y: 312, w: 170, h: 241 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 145, y: 85, w: 170, h: 241 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 1, y: 796, w: 180, h: 220 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 140, y: 107, w: 180, h: 220 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 183, y: 733, w: 156, h: 205 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 152, y: 86, w: 156, h: 205 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 341, y: 717, w: 168, h: 190 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 146, y: 80, w: 168, h: 190 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 173, y: 312, w: 170, h: 211 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 146, y: 102, w: 170, h: 211 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 514, y: 186, w: 175, h: 178 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 143, y: 149, w: 175, h: 178 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance12.png": { frame: { x: 498, y: 382, w: 182, h: 168 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 140, y: 159, w: 182, h: 168 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance13.png": { frame: { x: 175, y: 525, w: 151, h: 206 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 157, y: 90, w: 151, h: 206 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance14.png": { frame: { x: 209, y: 1, w: 169, h: 189 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 158, y: 58, w: 169, h: 189 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_RobotMan: ["CHAR_RobotMan0002.png", "CHAR_RobotMan0003.png", "CHAR_RobotMan0004.png", "CHAR_RobotMan0005.png", "CHAR_RobotMan0006.png", "CHAR_RobotMan0007.png"], dance: ["dance06.png", "dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png", "dance12.png", "dance13.png", "dance14.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_RobotMan.png", format: "RGBA8888", size: { w: 1024, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:0a3738ad22d5c2022387651c4024147e:64011f7f3e1b9748bec1f16a79b7b761:acca6aa8199e7e3ba6b541afadb8ea53$" } } }, function(t, e, n) { t.exports = n.p + "images/8aca225d45e83ac265aec132085a8b71-CHAR_Dragon.png" }, function(t) { t.exports = { frames: { "CHAR_Dragon0001.png": { frame: { x: 1, y: 822, w: 197, h: 212 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 113, y: 124, w: 197, h: 212 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Dragon0002.png": { frame: { x: 253, y: 689, w: 213, h: 238 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 128, y: 125, w: 213, h: 238 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Dragon0003.png": { frame: { x: 1, y: 1, w: 193, h: 330 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 125, y: 53, w: 193, h: 330 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Dragon0004.png": { frame: { x: 333, y: 1, w: 172, h: 236 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 137, y: 125, w: 172, h: 236 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Dragon0005.png": { frame: { x: 1, y: 595, w: 225, h: 250 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 130, y: 107, w: 225, h: 250 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Dragon0006.png": { frame: { x: 320, y: 565, w: 122, h: 122 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 170, y: 170, w: 122, h: 122 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 321, y: 239, w: 186, h: 161 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 134, y: 169, w: 186, h: 161 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 320, y: 402, w: 186, h: 161 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 134, y: 169, w: 186, h: 161 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 320, y: 402, w: 186, h: 161 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 134, y: 169, w: 186, h: 161 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 1, y: 196, w: 318, h: 186 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 144, w: 318, h: 186 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 1, y: 384, w: 317, h: 209 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 141, w: 317, h: 209 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance12.png": { frame: { x: 1, y: 196, w: 318, h: 186 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 144, w: 318, h: 186 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance13.png": { frame: { x: 1, y: 384, w: 317, h: 209 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 141, w: 317, h: 209 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_Dragon: ["CHAR_Dragon0001.png", "CHAR_Dragon0002.png", "CHAR_Dragon0003.png", "CHAR_Dragon0004.png", "CHAR_Dragon0005.png", "CHAR_Dragon0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png", "dance12.png", "dance13.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_Dragon.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:98847550a9cca2d6a79d5a2ede4c0888:2f17ff6b997f73b02003da29821cd59d:e5475727f7d2590ce3a1968c0fed681e$" } } }, function(t, e, n) { t.exports = n.p + "images/34b2b8621726d53802db6f864b49cd90-CHAR_TikiMan.png" }, function(t) { t.exports = { frames: { "CHAR_TikiMan0001.png": { frame: { x: 457, y: 241, w: 186, h: 221 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 133, y: 133, w: 186, h: 221 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_TikiMan0002.png": { frame: { x: 258, y: 818, w: 226, h: 201 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 148, y: 129, w: 226, h: 201 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_TikiMan0003.png": { frame: { x: 1, y: 828, w: 190, h: 255 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 114, y: 112, w: 190, h: 255 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_TikiMan0004.png": { frame: { x: 486, y: 758, w: 183, h: 225 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 152, y: 138, w: 183, h: 225 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_TikiMan0005.png": { frame: { x: 215, y: 1, w: 198, h: 276 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 121, y: 93, w: 198, h: 276 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_TikiMan0006.png": { frame: { x: 629, y: 1, w: 123, h: 123 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 169, y: 169, w: 123, h: 123 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 1, y: 285, w: 214, h: 279 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 122, y: 46, w: 214, h: 279 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 1, y: 1, w: 212, h: 282 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 88, y: 42, w: 212, h: 282 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 427, y: 522, w: 234, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 57, y: 90, w: 234, h: 234 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 415, y: 1, w: 212, h: 238 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 105, y: 88, w: 212, h: 238 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 212, y: 566, w: 213, h: 250 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 129, y: 73, w: 213, h: 250 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance12.png": { frame: { x: 1, y: 566, w: 209, h: 260 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 169, y: 64, w: 209, h: 260 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance13.png": { frame: { x: 217, y: 279, w: 241, h: 238 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 176, y: 86, w: 241, h: 238 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_TikiMan: ["CHAR_TikiMan0001.png", "CHAR_TikiMan0002.png", "CHAR_TikiMan0003.png", "CHAR_TikiMan0004.png", "CHAR_TikiMan0005.png", "CHAR_TikiMan0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png", "dance12.png", "dance13.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_TikiMan.png", format: "RGBA8888", size: { w: 1024, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:49672ab79a6546aea1c6df89e344f26c:1805cf34d5a6c59fb8ab22fbb5a77d65:44ea73fa0733ce658c31873c9f1452a6$" } } }, function(t, e, n) { t.exports = n.p + "images/cb00f3da7bca38a121a28feac4b4d9ea-CHAR_HotDog.png" }, function(t) { t.exports = { frames: { "CHAR_HotDog0001.png": { frame: { x: 254, y: 472, w: 164, h: 244 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 110, y: 128, w: 164, h: 244 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_HotDog0002.png": { frame: { x: 291, y: 1, w: 189, h: 215 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 181, y: 124, w: 189, h: 215 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_HotDog0003.png": { frame: { x: 1, y: 267, w: 251, h: 231 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 107, y: 102, w: 251, h: 231 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_HotDog0004.png": { frame: { x: 1, y: 1, w: 123, h: 288 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 170, y: 124, w: 123, h: 288 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_HotDog0005.png": { frame: { x: 1, y: 126, w: 139, h: 281 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 152, y: 105, w: 139, h: 281 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_HotDog0006.png": { frame: { x: 1, y: 741, w: 120, h: 120 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 170, y: 169, w: 120, h: 120 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 284, y: 192, w: 150, h: 213 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 144, y: 116, w: 150, h: 213 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 1, y: 500, w: 115, h: 203 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 161, y: 127, w: 115, h: 203 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 1, y: 617, w: 122, h: 189 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 169, y: 140, w: 122, h: 189 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 254, y: 344, w: 126, h: 249 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 168, y: 80, w: 126, h: 249 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_HotDog: ["CHAR_HotDog0001.png", "CHAR_HotDog0002.png", "CHAR_HotDog0003.png", "CHAR_HotDog0004.png", "CHAR_HotDog0005.png", "CHAR_HotDog0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_HotDog.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:88b212705996733daa95d75a40df6bc2:b7a96caf52b96edd55127e4d71d60b6b:d973817f9a8271d27ed3158c08ce58a5$" } } }, function(t, e, n) { t.exports = n.p + "images/4f337cbf23b4fd91307352b5f9a2d5de-CHAR_LemonMan.png" }, function(t) { t.exports = { frames: { "CHAR_LemonMan0001.png": { frame: { x: 1, y: 308, w: 194, h: 248 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 101, y: 127, w: 194, h: 248 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_LemonMan0002.png": { frame: { x: 279, y: 1, w: 186, h: 230 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 160, y: 127, w: 186, h: 230 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_LemonMan0003.png": { frame: { x: 1, y: 1, w: 162, h: 276 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 143, y: 107, w: 162, h: 276 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_LemonMan0004.png": { frame: { x: 268, y: 189, w: 243, h: 237 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 106, y: 125, w: 243, h: 237 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_LemonMan0005.png": { frame: { x: 251, y: 428, w: 242, h: 218 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 113, y: 172, w: 242, h: 218 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_LemonMan0006.png": { frame: { x: 1, y: 656, w: 120, h: 121 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 170, y: 170, w: 120, h: 121 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 1, y: 504, w: 150, h: 227 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 170, y: 100, w: 150, h: 227 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 230, y: 648, w: 163, h: 205 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 168, y: 122, w: 163, h: 205 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 1, y: 813, w: 180, h: 193 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 140, y: 134, w: 180, h: 193 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 1, y: 165, w: 141, h: 265 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 170, y: 62, w: 141, h: 265 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_LemonMan: ["CHAR_LemonMan0001.png", "CHAR_LemonMan0002.png", "CHAR_LemonMan0003.png", "CHAR_LemonMan0004.png", "CHAR_LemonMan0005.png", "CHAR_LemonMan0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_LemonMan.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:129e8244eb9391dc079f7f34ff1f4011:2fb427124d6721cf6fa8a6c951cfea60:79a9da5c65abb02a8af58c7b2d94b5fc$" } } }, function(t, e, n) { t.exports = n.p + "images/368f37cb016283b9e9dee8c14fab9ad4-CHAR_Plant.png" }, function(t) { t.exports = { frames: { "CHAR_Plant0001.png": { frame: { x: 251, y: 392, w: 174, h: 232 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 171, y: 131, w: 174, h: 232 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Plant0002.png": { frame: { x: 293, y: 1, w: 219, h: 201 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 71, y: 132, w: 219, h: 201 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Plant0003.png": { frame: { x: 231, y: 568, w: 152, h: 220 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 143, y: 162, w: 152, h: 220 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Plant0004.png": { frame: { x: 265, y: 222, w: 168, h: 237 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 153, y: 125, w: 168, h: 237 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Plant0005.png": { frame: { x: 1, y: 518, w: 167, h: 228 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 161, y: 122, w: 167, h: 228 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "CHAR_Plant0006.png": { frame: { x: 197, y: 848, w: 120, h: 121 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 170, y: 170, w: 120, h: 121 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance07.png": { frame: { x: 1, y: 848, w: 163, h: 194 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 166, y: 122, w: 163, h: 194 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance08.png": { frame: { x: 1, y: 687, w: 159, h: 200 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 169, y: 116, w: 159, h: 200 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance09.png": { frame: { x: 1, y: 352, w: 164, h: 248 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 175, y: 68, w: 164, h: 248 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance10.png": { frame: { x: 1, y: 1, w: 174, h: 290 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 156, y: 26, w: 174, h: 290 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } }, "dance11.png": { frame: { x: 1, y: 177, w: 173, h: 262 }, rotated: !0, trimmed: !0, spriteSourceSize: { x: 156, y: 33, w: 173, h: 262 }, sourceSize: { w: 461, h: 461 }, anchor: { x: 0, y: 0 } } }, animations: { CHAR_Plant: ["CHAR_Plant0001.png", "CHAR_Plant0002.png", "CHAR_Plant0003.png", "CHAR_Plant0004.png", "CHAR_Plant0005.png", "CHAR_Plant0006.png"], dance: ["dance07.png", "dance08.png", "dance09.png", "dance10.png", "dance11.png"] }, meta: { app: "https://www.codeandweb.com/texturepacker", version: "1.0", image: "CHAR_Plant.png", format: "RGBA8888", size: { w: 512, h: 1024 }, scale: "0.9", smartupdate: "$TexturePacker:SmartUpdate:cda33cf86640ea24f55a3da48dfd378c:f7cb6c1f577ea74e77a9ee2981486c71:89b95b3ae613f373b99f985dcfa16794$" } } }, function(t, e, n) { t.exports = n.p + "images/1635fd44544c14a10472da2ec5d39197-madbox_blackBG.png" }, function(t, e) { t.exports = "data:image/png;base64,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" }, function(t, e) { function n() { return t.exports = n = Object.assign || function(t) { for (var e = 1; e < arguments.length; e++) { var n = arguments[e]; for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (t[r] = n[r]) } return t }, n.apply(this, arguments) } t.exports = n }, function(t, e, n) { n(284), t.exports = n(283) }, function(t, e, n) { var r = function(t) { "use strict"; var e, n = Object.prototype, r = n.hasOwnProperty, i = "function" == typeof Symbol ? Symbol : {}, o = i.iterator || "@@iterator", a = i.asyncIterator || "@@asyncIterator", s = i.toStringTag || "@@toStringTag"; function A(t, e, n, r) { var i = e && e.prototype instanceof f ? e : f, o = Object.create(i.prototype), a = new T(r || []); return o._invoke = function(t, e, n) { var r = c; return function(i, o) { if (r === l) throw new Error("Generator is already running"); if (r === d) { if ("throw" === i) throw o; return I() } for (n.method = i, n.arg = o;;) { var a = n.delegate; if (a) { var s = S(a, n); if (s) { if (s === p) continue; return s } } if ("next" === n.method) n.sent = n._sent = n.arg; else if ("throw" === n.method) { if (r === c) throw r = d, n.arg; n.dispatchException(n.arg) } else "return" === n.method && n.abrupt("return", n.arg); r = l; var A = h(t, e, n); if ("normal" === A.type) { if (r = n.done ? d : u, A.arg === p) continue; return { value: A.arg, done: n.done } } "throw" === A.type && (r = d, n.method = "throw", n.arg = A.arg) } } }(t, n, a), o } function h(t, e, n) { try { return { type: "normal", arg: t.call(e, n) } } catch (t) { return { type: "throw", arg: t } } } t.wrap = A; var c = "suspendedStart", u = "suspendedYield", l = "executing", d = "completed", p = {}; function f() {} function y() {} function x() {} var m = {}; m[o] = function() { return this }; var g = Object.getPrototypeOf, w = g && g(g(k([]))); w && w !== n && r.call(w, o) && (m = w); var v = x.prototype = f.prototype = Object.create(m); function b(t) { ["next", "throw", "return"].forEach(function(e) { t[e] = function(t) { return this._invoke(e, t) } }) } function _(t) { var e; this._invoke = function(n, i) { function o() { return new Promise(function(e, o) { ! function e(n, i, o, a) { var s = h(t[n], t, i); if ("throw" !== s.type) { var A = s.arg, c = A.value; return c && "object" == typeof c && r.call(c, "__await") ? Promise.resolve(c.__await).then(function(t) { e("next", t, o, a) }, function(t) { e("throw", t, o, a) }) : Promise.resolve(c).then(function(t) { A.value = t, o(A) }, function(t) { return e("throw", t, o, a) }) } a(s.arg) }(n, i, e, o) }) } return e = e ? e.then(o, o) : o() } } function S(t, n) { var r = t.iterator[n.method]; if (r === e) { if (n.delegate = null, "throw" === n.method) { if (t.iterator.return && (n.method = "return", n.arg = e, S(t, n), "throw" === n.method)) return p; n.method = "throw", n.arg = new TypeError("The iterator does not provide a 'throw' method") } return p } var i = h(r, t.iterator, n.arg); if ("throw" === i.type) return n.method = "throw", n.arg = i.arg, n.delegate = null, p; var o = i.arg; return o ? o.done ? (n[t.resultName] = o.value, n.next = t.nextLoc, "return" !== n.method && (n.method = "next", n.arg = e), n.delegate = null, p) : o : (n.method = "throw", n.arg = new TypeError("iterator result is not an object"), n.delegate = null, p) } function E(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e) } function C(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e } function T(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(E, this), this.reset(!0) } function k(t) { if (t) { var n = t[o]; if (n) return n.call(t); if ("function" == typeof t.next) return t; if (!isNaN(t.length)) { var i = -1, a = function n() { for (; ++i < t.length;) if (r.call(t, i)) return n.value = t[i], n.done = !1, n; return n.value = e, n.done = !0, n }; return a.next = a } } return { next: I } } function I() { return { value: e, done: !0 } } return y.prototype = v.constructor = x, x.constructor = y, x[s] = y.displayName = "GeneratorFunction", t.isGeneratorFunction = function(t) { var e = "function" == typeof t && t.constructor; return !!e && (e === y || "GeneratorFunction" === (e.displayName || e.name)) }, t.mark = function(t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, x) : (t.__proto__ = x, s in t || (t[s] = "GeneratorFunction")), t.prototype = Object.create(v), t }, t.awrap = function(t) { return { __await: t } }, b(_.prototype), _.prototype[a] = function() { return this }, t.AsyncIterator = _, t.async = function(e, n, r, i) { var o = new _(A(e, n, r, i)); return t.isGeneratorFunction(n) ? o : o.next().then(function(t) { return t.done ? t.value : o.next() }) }, b(v), v[s] = "Generator", v[o] = function() { return this }, v.toString = function() { return "[object Generator]" }, t.keys = function(t) { var e = []; for (var n in t) e.push(n); return e.reverse(), function n() { for (; e.length;) { var r = e.pop(); if (r in t) return n.value = r, n.done = !1, n } return n.done = !0, n } }, t.values = k, T.prototype = { constructor: T, reset: function(t) { if (this.prev = 0, this.next = 0, this.sent = this._sent = e, this.done = !1, this.delegate = null, this.method = "next", this.arg = e, this.tryEntries.forEach(C), !t) for (var n in this) "t" === n.charAt(0) && r.call(this, n) && !isNaN(+n.slice(1)) && (this[n] = e) }, stop: function() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval }, dispatchException: function(t) { if (this.done) throw t; var n = this; function i(r, i) { return s.type = "throw", s.arg = t, n.next = r, i && (n.method = "next", n.arg = e), !!i } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var a = this.tryEntries[o], s = a.completion; if ("root" === a.tryLoc) return i("end"); if (a.tryLoc <= this.prev) { var A = r.call(a, "catchLoc"), h = r.call(a, "finallyLoc"); if (A && h) { if (this.prev < a.catchLoc) return i(a.catchLoc, !0); if (this.prev < a.finallyLoc) return i(a.finallyLoc) } else if (A) { if (this.prev < a.catchLoc) return i(a.catchLoc, !0) } else { if (!h) throw new Error("try statement without catch or finally"); if (this.prev < a.finallyLoc) return i(a.finallyLoc) } } } }, abrupt: function(t, e) { for (var n = this.tryEntries.length - 1; n >= 0; --n) { var i = this.tryEntries[n]; if (i.tryLoc <= this.prev && r.call(i, "finallyLoc") && this.prev < i.finallyLoc) { var o = i; break } } o && ("break" === t || "continue" === t) && o.tryLoc <= e && e <= o.finallyLoc && (o = null); var a = o ? o.completion : {}; return a.type = t, a.arg = e, o ? (this.method = "next", this.next = o.finallyLoc, p) : this.complete(a) }, complete: function(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), p }, finish: function(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var n = this.tryEntries[e]; if (n.finallyLoc === t) return this.complete(n.completion, n.afterLoc), C(n), p } }, catch: function(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var n = this.tryEntries[e]; if (n.tryLoc === t) { var r = n.completion; if ("throw" === r.type) { var i = r.arg; C(n) } return i } } throw new Error("illegal catch attempt") }, delegateYield: function(t, n, r) { return this.delegate = { iterator: k(t), resultName: n, nextLoc: r }, "next" === this.method && (this.arg = e), p } }, t }(t.exports); try { regeneratorRuntime = r } catch (t) { Function("r", "regeneratorRuntime = r")(r) } }, function(t, e) { t.exports = function(t, e, n) { return e in t ? Object.defineProperty(t, e, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = n, t } }, function(t, e) { function n(e, r) { return t.exports = n = Object.setPrototypeOf || function(t, e) { return t.__proto__ = e, t }, n(e, r) } t.exports = n }, function(t, e, n) { "use strict"; (function(t) { var e = n(27), r = n(28), i = n.n(r); /*! * @pixi/polyfill - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/polyfill is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ window.Promise || (window.Promise = e.Polyfill), Object.assign || (Object.assign = i.a); var o = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : void 0 !== t ? t : "undefined" != typeof self ? self : {}; if (Date.now && Date.prototype.getTime || (Date.now = function() { return (new Date).getTime() }), !o.performance || !o.performance.now) { var a = Date.now(); o.performance || (o.performance = {}), o.performance.now = function() { return Date.now() - a } } for (var s = Date.now(), A = ["ms", "moz", "webkit", "o"], h = 0; h < A.length && !o.requestAnimationFrame; ++h) { var c = A[h]; o.requestAnimationFrame = o[c + "RequestAnimationFrame"], o.cancelAnimationFrame = o[c + "CancelAnimationFrame"] || o[c + "CancelRequestAnimationFrame"] } o.requestAnimationFrame || (o.requestAnimationFrame = function(t) { if ("function" != typeof t) throw new TypeError(t + "is not a function"); var e = Date.now(), n = 16 + s - e; return n < 0 && (n = 0), s = e, setTimeout(function() { s = Date.now(), t(performance.now()) }, n) }), o.cancelAnimationFrame || (o.cancelAnimationFrame = function(t) { return clearTimeout(t) }), Math.sign || (Math.sign = function(t) { return 0 === (t = Number(t)) || isNaN(t) ? t : t > 0 ? 1 : -1 }), Number.isInteger || (Number.isInteger = function(t) { return "number" == typeof t && isFinite(t) && Math.floor(t) === t }), window.ArrayBuffer || (window.ArrayBuffer = Array), window.Float32Array || (window.Float32Array = Array), window.Uint32Array || (window.Uint32Array = Array), window.Uint16Array || (window.Uint16Array = Array), window.Uint8Array || (window.Uint8Array = Array), window.Int32Array || (window.Int32Array = Array) }).call(this, n(11)) }, function(t, e, n) { (function(t) { var r = void 0 !== t && t || "undefined" != typeof self && self || window, i = Function.prototype.apply; function o(t, e) { this._id = t, this._clearFn = e } e.setTimeout = function() { return new o(i.call(setTimeout, r, arguments), clearTimeout) }, e.setInterval = function() { return new o(i.call(setInterval, r, arguments), clearInterval) }, e.clearTimeout = e.clearInterval = function(t) { t && t.close() }, o.prototype.unref = o.prototype.ref = function() {}, o.prototype.close = function() { this._clearFn.call(r, this._id) }, e.enroll = function(t, e) { clearTimeout(t._idleTimeoutId), t._idleTimeout = e }, e.unenroll = function(t) { clearTimeout(t._idleTimeoutId), t._idleTimeout = -1 }, e._unrefActive = e.active = function(t) { clearTimeout(t._idleTimeoutId); var e = t._idleTimeout; e >= 0 && (t._idleTimeoutId = setTimeout(function() { t._onTimeout && t._onTimeout() }, e)) }, n(131), e.setImmediate = "undefined" != typeof self && self.setImmediate || void 0 !== t && t.setImmediate || this && this.setImmediate, e.clearImmediate = "undefined" != typeof self && self.clearImmediate || void 0 !== t && t.clearImmediate || this && this.clearImmediate }).call(this, n(11)) }, function(t, e, n) { (function(t, e) { ! function(t, n) { "use strict"; if (!t.setImmediate) { var r, i, o, a, s, A = 1, h = {}, c = !1, u = t.document, l = Object.getPrototypeOf && Object.getPrototypeOf(t); l = l && l.setTimeout ? l : t, "[object process]" === {}.toString.call(t.process) ? r = function(t) { e.nextTick(function() { p(t) }) } : ! function() { if (t.postMessage && !t.importScripts) { var e = !0, n = t.onmessage; return t.onmessage = function() { e = !1 }, t.postMessage("", "*"), t.onmessage = n, e } }() ? t.MessageChannel ? ((o = new MessageChannel).port1.onmessage = function(t) { p(t.data) }, r = function(t) { o.port2.postMessage(t) }) : u && "onreadystatechange" in u.createElement("script") ? (i = u.documentElement, r = function(t) { var e = u.createElement("script"); e.onreadystatechange = function() { p(t), e.onreadystatechange = null, i.removeChild(e), e = null }, i.appendChild(e) }) : r = function(t) { setTimeout(p, 0, t) } : (a = "setImmediate$" + Math.random() + "$", s = function(e) { e.source === t && "string" == typeof e.data && 0 === e.data.indexOf(a) && p(+e.data.slice(a.length)) }, t.addEventListener ? t.addEventListener("message", s, !1) : t.attachEvent("onmessage", s), r = function(e) { t.postMessage(a + e, "*") }), l.setImmediate = function(t) { "function" != typeof t && (t = new Function("" + t)); for (var e = new Array(arguments.length - 1), n = 0; n < e.length; n++) e[n] = arguments[n + 1]; var i = { callback: t, args: e }; return h[A] = i, r(A), A++ }, l.clearImmediate = d } function d(t) { delete h[t] } function p(t) { if (c) setTimeout(p, 0, t); else { var e = h[t]; if (e) { c = !0; try { ! function(t) { var e = t.callback, r = t.args; switch (r.length) { case 0: e(); break; case 1: e(r[0]); break; case 2: e(r[0], r[1]); break; case 3: e(r[0], r[1], r[2]); break; default: e.apply(n, r) } }(e) } finally { d(t), c = !1 } } } } }("undefined" == typeof self ? void 0 === t ? this : t : self) }).call(this, n(11), n(132)) }, function(t, e) { var n, r, i = t.exports = {}; function o() { throw new Error("setTimeout has not been defined") } function a() { throw new Error("clearTimeout has not been defined") } function s(t) { if (n === setTimeout) return setTimeout(t, 0); if ((n === o || !n) && setTimeout) return n = setTimeout, setTimeout(t, 0); try { return n(t, 0) } catch (e) { try { return n.call(null, t, 0) } catch (e) { return n.call(this, t, 0) } } }! function() { try { n = "function" == typeof setTimeout ? setTimeout : o } catch (t) { n = o } try { r = "function" == typeof clearTimeout ? clearTimeout : a } catch (t) { r = a } }(); var A, h = [], c = !1, u = -1; function l() { c && A && (c = !1, A.length ? h = A.concat(h) : u = -1, h.length && d()) } function d() { if (!c) { var t = s(l); c = !0; for (var e = h.length; e;) { for (A = h, h = []; ++u < e;) A && A[u].run(); u = -1, e = h.length } A = null, c = !1, function(t) { if (r === clearTimeout) return clearTimeout(t); if ((r === a || !r) && clearTimeout) return r = clearTimeout, clearTimeout(t); try { r(t) } catch (e) { try { return r.call(null, t) } catch (e) { return r.call(this, t) } } }(t) } } function p(t, e) { this.fun = t, this.array = e } function f() {} i.nextTick = function(t) { var e = new Array(arguments.length - 1); if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; h.push(new p(t, e)), 1 !== h.length || c || s(d) }, p.prototype.run = function() { this.fun.apply(null, this.array) }, i.title = "browser", i.browser = !0, i.env = {}, i.argv = [], i.version = "", i.versions = {}, i.on = f, i.addListener = f, i.once = f, i.off = f, i.removeListener = f, i.removeAllListeners = f, i.emit = f, i.prependListener = f, i.prependOnceListener = f, i.listeners = function(t) { return [] }, i.binding = function(t) { throw new Error("process.binding is not supported") }, i.cwd = function() { return "/" }, i.chdir = function(t) { throw new Error("process.chdir is not supported") }, i.umask = function() { return 0 } }, function(t, e, n) { (function(t, r) { var i; /*! https://mths.be/punycode v1.4.1 by @mathias */ ! function(o) { e && e.nodeType, t && t.nodeType; var a = "object" == typeof r && r; a.global !== a && a.window !== a && a.self; var s, A = 2147483647, h = 36, c = 1, u = 26, l = 38, d = 700, p = 72, f = 128, y = "-", x = /^xn--/, m = /[^\x20-\x7E]/, g = /[\x2E\u3002\uFF0E\uFF61]/g, w = { overflow: "Overflow: input needs wider integers to process", "not-basic": "Illegal input >= 0x80 (not a basic code point)", "invalid-input": "Invalid input" }, v = h - c, b = Math.floor, _ = String.fromCharCode; function S(t) { throw new RangeError(w[t]) } function E(t, e) { for (var n = t.length, r = []; n--;) r[n] = e(t[n]); return r } function C(t, e) { var n = t.split("@"), r = ""; return n.length > 1 && (r = n[0] + "@", t = n[1]), r + E((t = t.replace(g, ".")).split("."), e).join(".") } function T(t) { for (var e, n, r = [], i = 0, o = t.length; i < o;)(e = t.charCodeAt(i++)) >= 55296 && e <= 56319 && i < o ? 56320 == (64512 & (n = t.charCodeAt(i++))) ? r.push(((1023 & e) << 10) + (1023 & n) + 65536) : (r.push(e), i--) : r.push(e); return r } function k(t) { return E(t, function(t) { var e = ""; return t > 65535 && (e += _((t -= 65536) >>> 10 & 1023 | 55296), t = 56320 | 1023 & t), e += _(t) }).join("") } function I(t, e) { return t + 22 + 75 * (t < 26) - ((0 != e) << 5) } function D(t, e, n) { var r = 0; for (t = n ? b(t / d) : t >> 1, t += b(t / e); t > v * u >> 1; r += h) t = b(t / v); return b(r + (v + 1) * t / (t + l)) } function P(t) { var e, n, r, i, o, a, s, l, d, x, m, g = [], w = t.length, v = 0, _ = f, E = p; for ((n = t.lastIndexOf(y)) < 0 && (n = 0), r = 0; r < n; ++r) t.charCodeAt(r) >= 128 && S("not-basic"), g.push(t.charCodeAt(r)); for (i = n > 0 ? n + 1 : 0; i < w;) { for (o = v, a = 1, s = h; i >= w && S("invalid-input"), ((l = (m = t.charCodeAt(i++)) - 48 < 10 ? m - 22 : m - 65 < 26 ? m - 65 : m - 97 < 26 ? m - 97 : h) >= h || l > b((A - v) / a)) && S("overflow"), v += l * a, !(l < (d = s <= E ? c : s >= E + u ? u : s - E)); s += h) a > b(A / (x = h - d)) && S("overflow"), a *= x; E = D(v - o, e = g.length + 1, 0 == o), b(v / e) > A - _ && S("overflow"), _ += b(v / e), v %= e, g.splice(v++, 0, _) } return k(g) } function R(t) { var e, n, r, i, o, a, s, l, d, x, m, g, w, v, E, C = []; for (g = (t = T(t)).length, e = f, n = 0, o = p, a = 0; a < g; ++a)(m = t[a]) < 128 && C.push(_(m)); for (r = i = C.length, i && C.push(y); r < g;) { for (s = A, a = 0; a < g; ++a)(m = t[a]) >= e && m < s && (s = m); for (s - e > b((A - n) / (w = r + 1)) && S("overflow"), n += (s - e) * w, e = s, a = 0; a < g; ++a) if ((m = t[a]) < e && ++n > A && S("overflow"), m == e) { for (l = n, d = h; !(l < (x = d <= o ? c : d >= o + u ? u : d - o)); d += h) E = l - x, v = h - x, C.push(_(I(x + E % v, 0))), l = b(E / v); C.push(_(I(l, 0))), o = D(n, w, r == i), n = 0, ++r }++ n, ++e } return C.join("") } s = { version: "1.4.1", ucs2: { decode: T, encode: k }, decode: P, encode: R, toASCII: function(t) { return C(t, function(t) { return m.test(t) ? "xn--" + R(t) : t }) }, toUnicode: function(t) { return C(t, function(t) { return x.test(t) ? P(t.slice(4).toLowerCase()) : t }) } }, void 0 === (i = function() { return s }.call(e, n, e, t)) || (t.exports = i) }() }).call(this, n(134)(t), n(11)) }, function(t, e) { t.exports = function(t) { return t.webpackPolyfill || (t.deprecate = function() {}, t.paths = [], t.children || (t.children = []), Object.defineProperty(t, "loaded", { enumerable: !0, get: function() { return t.l } }), Object.defineProperty(t, "id", { enumerable: !0, get: function() { return t.i } }), t.webpackPolyfill = 1), t } }, function(t, e, n) { "use strict"; t.exports = { isString: function(t) { return "string" == typeof t }, isObject: function(t) { return "object" == typeof t && null !== t }, isNull: function(t) { return null === t }, isNullOrUndefined: function(t) { return null == t } } }, function(t, e, n) { "use strict"; e.decode = e.parse = n(137), e.encode = e.stringify = n(138) }, function(t, e, n) { "use strict"; function r(t, e) { return Object.prototype.hasOwnProperty.call(t, e) } t.exports = function(t, e, n, o) { e = e || "&", n = n || "="; var a = {}; if ("string" != typeof t || 0 === t.length) return a; var s = /\+/g; t = t.split(e); var A = 1e3; o && "number" == typeof o.maxKeys && (A = o.maxKeys); var h = t.length; A > 0 && h > A && (h = A); for (var c = 0; c < h; ++c) { var u, l, d, p, f = t[c].replace(s, "%20"), y = f.indexOf(n); y >= 0 ? (u = f.substr(0, y), l = f.substr(y + 1)) : (u = f, l = ""), d = decodeURIComponent(u), p = decodeURIComponent(l), r(a, d) ? i(a[d]) ? a[d].push(p) : a[d] = [a[d], p] : a[d] = p } return a }; var i = Array.isArray || function(t) { return "[object Array]" === Object.prototype.toString.call(t) } }, function(t, e, n) { "use strict"; var r = function(t) { switch (typeof t) { case "string": return t; case "boolean": return t ? "true" : "false"; case "number": return isFinite(t) ? t : ""; default: return "" } }; t.exports = function(t, e, n, s) { return e = e || "&", n = n || "=", null === t && (t = void 0), "object" == typeof t ? o(a(t), function(a) { var s = encodeURIComponent(r(a)) + n; return i(t[a]) ? o(t[a], function(t) { return s + encodeURIComponent(r(t)) }).join(e) : s + encodeURIComponent(r(t[a])) }).join(e) : s ? encodeURIComponent(r(s)) + n + encodeURIComponent(r(t)) : "" }; var i = Array.isArray || function(t) { return "[object Array]" === Object.prototype.toString.call(t) }; function o(t, e) { if (t.map) return t.map(e); for (var n = [], r = 0; r < t.length; r++) n.push(e(t[r], r)); return n } var a = Object.keys || function(t) { var e = []; for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e.push(n); return e } }, function(t, e, n) { "use strict"; e.__esModule = !0, e.Loader = void 0; var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t }, i = function() { function t(t, e) { for (var n = 0; n < e.length; n++) { var r = e[n]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r) } } return function(e, n, r) { return n && t(e.prototype, n), r && t(e, r), e } }(), o = h(n(23)), a = h(n(24)), s = function(t) { if (t && t.__esModule) return t; var e = {}; if (null != t) for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]); return e.default = t, e }(n(25)), A = n(26); function h(t) { return t && t.__esModule ? t : { default: t } } var c = /(#[\w-]+)?$/, u = e.Loader = function() { function t() { var e = this, n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "", r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 10; ! function(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") }(this, t), this.baseUrl = n, this.progress = 0, this.loading = !1, this.defaultQueryString = "", this._beforeMiddleware = [], this._afterMiddleware = [], this._resourcesParsing = [], this._boundLoadResource = function(t, n) { return e._loadResource(t, n) }, this._queue = s.queue(this._boundLoadResource, r), this._queue.pause(), this.resources = {}, this.onProgress = new o.default, this.onError = new o.default, this.onLoad = new o.default, this.onStart = new o.default, this.onComplete = new o.default; for (var i = 0; i < t._defaultBeforeMiddleware.length; ++i) this.pre(t._defaultBeforeMiddleware[i]); for (var a = 0; a < t._defaultAfterMiddleware.length; ++a) this.use(t._defaultAfterMiddleware[a]) } return t.prototype.add = function(t, e, n, i) { if (Array.isArray(t)) { for (var o = 0; o < t.length; ++o) this.add(t[o]); return this } if ("object" === (void 0 === t ? "undefined" : r(t)) && (i = e || t.callback || t.onComplete, n = t, e = t.url, t = t.name || t.key || t.url), "string" != typeof e && (i = n, n = e, e = t), "string" != typeof e) throw new Error("No url passed to add resource to loader."); if ("function" == typeof n && (i = n, n = null), this.loading && (!n || !n.parentResource)) throw new Error("Cannot add resources while the loader is running."); if (this.resources[t]) throw new Error('Resource named "' + t + '" already exists.'); if (e = this._prepareUrl(e), this.resources[t] = new A.Resource(t, e, n), "function" == typeof i && this.resources[t].onAfterMiddleware.once(i), this.loading) { for (var a = n.parentResource, s = [], h = 0; h < a.children.length; ++h) a.children[h].isComplete || s.push(a.children[h]); var c = a.progressChunk * (s.length + 1) / (s.length + 2); a.children.push(this.resources[t]), a.progressChunk = c; for (var u = 0; u < s.length; ++u) s[u].progressChunk = c; this.resources[t].progressChunk = c } return this._queue.push(this.resources[t]), this }, t.prototype.pre = function(t) { return this._beforeMiddleware.push(t), this }, t.prototype.use = function(t) { return this._afterMiddleware.push(t), this }, t.prototype.reset = function() { for (var t in this.progress = 0, this.loading = !1, this._queue.kill(), this._queue.pause(), this.resources) { var e = this.resources[t]; e._onLoadBinding && e._onLoadBinding.detach(), e.isLoading && e.abort() } return this.resources = {}, this }, t.prototype.load = function(t) { if ("function" == typeof t && this.onComplete.once(t), this.loading) return this; if (this._queue.idle()) this._onStart(), this._onComplete(); else { for (var e = 100 / this._queue._tasks.length, n = 0; n < this._queue._tasks.length; ++n) this._queue._tasks[n].data.progressChunk = e; this._onStart(), this._queue.resume() } return this }, t.prototype._prepareUrl = function(t) { var e = (0, a.default)(t, { strictMode: !0 }), n = void 0; if (n = e.protocol || !e.path || 0 === t.indexOf("//") ? t : this.baseUrl.length && this.baseUrl.lastIndexOf("/") !== this.baseUrl.length - 1 && "/" !== t.charAt(0) ? this.baseUrl + "/" + t : this.baseUrl + t, this.defaultQueryString) { var r = c.exec(n)[0]; - 1 !== (n = n.substr(0, n.length - r.length)).indexOf("?") ? n += "&" + this.defaultQueryString : n += "?" + this.defaultQueryString, n += r } return n }, t.prototype._loadResource = function(t, e) { var n = this; t._dequeue = e, s.eachSeries(this._beforeMiddleware, function(e, r) { e.call(n, t, function() { r(t.isComplete ? {} : null) }) }, function() { t.isComplete ? n._onLoad(t) : (t._onLoadBinding = t.onComplete.once(n._onLoad, n), t.load()) }, !0) }, t.prototype._onStart = function() { this.progress = 0, this.loading = !0, this.onStart.dispatch(this) }, t.prototype._onComplete = function() { this.progress = 100, this.loading = !1, this.onComplete.dispatch(this, this.resources) }, t.prototype._onLoad = function(t) { var e = this; t._onLoadBinding = null, this._resourcesParsing.push(t), t._dequeue(), s.eachSeries(this._afterMiddleware, function(n, r) { n.call(e, t, r) }, function() { t.onAfterMiddleware.dispatch(t), e.progress = Math.min(100, e.progress + t.progressChunk), e.onProgress.dispatch(e, t), t.error ? e.onError.dispatch(t.error, e, t) : e.onLoad.dispatch(e, t), e._resourcesParsing.splice(e._resourcesParsing.indexOf(t), 1), e._queue.idle() && 0 === e._resourcesParsing.length && e._onComplete() }, !0) }, i(t, [{ key: "concurrency", get: function() { return this._queue.concurrency }, set: function(t) { this._queue.concurrency = t } }]), t }(); u._defaultBeforeMiddleware = [], u._defaultAfterMiddleware = [], u.pre = function(t) { return u._defaultBeforeMiddleware.push(t), u }, u.use = function(t) { return u._defaultAfterMiddleware.push(t), u } }, function(t, e, n) { "use strict"; e.__esModule = !0, e.encodeBinary = i; var r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; function i(t) { for (var e = "", n = 0; n < t.length;) { for (var i = [0, 0, 0], o = [0, 0, 0, 0], a = 0; a < i.length; ++a) n < t.length ? i[a] = 255 & t.charCodeAt(n++) : i[a] = 0; switch (o[0] = i[0] >> 2, o[1] = (3 & i[0]) << 4 | i[1] >> 4, o[2] = (15 & i[1]) << 2 | i[2] >> 6, o[3] = 63 & i[2], n - (t.length - 1)) { case 2: o[3] = 64, o[2] = 64; break; case 1: o[3] = 64 } for (var s = 0; s < o.length; ++s) e += r.charAt(o[s]) } return e } t.exports.default = i }, function(t, e, n) { var r = n(0); t.exports = function(t, e) { for (; !Object.prototype.hasOwnProperty.call(t, e) && null !== (t = r(t));); return t } }, function(t, e, n) { var r = n(143); "string" == typeof r && (r = [ [t.i, r, ""] ]); var i = { hmr: !0, transform: void 0, insertInto: void 0 }; n(160)(r, i); r.locals && (t.exports = r.locals) }, function(t, e, n) { e = t.exports = n(144)(!1); var r = n(145), i = r(n(146)), o = r(n(147)), a = r(n(148)), s = r(n(149)), A = r(n(150)), h = r(n(151)), c = r(n(152)), u = r(n(153)), l = r(n(154)), d = r(n(155)), p = r(n(18)), f = r(n(19)), y = r(n(156)), x = r(n(157)), m = r(n(158)), g = r(n(159)); e.push([t.i, '@font-face {\r\n font-family: "JUNEGULL";\r\n font-style: normal;\r\n font-weight: 400;\r\n src: url(' + i + ') format("truetype");\r\n}\r\n\r\n@font-face {\r\n font-family: "Odin";\r\n font-style: normal;\r\n font-weight: 400;\r\n src: url(' + o + ') format("truetype");\r\n}\r\n\r\n@keyframes spin {\r\n from {\r\n transform: rotate(0deg);\r\n }\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n}\r\n\r\n@keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\nbody {\r\n font-family: JUNEGULL;\r\n}\r\n\r\n.odin-font-loader {\r\n font-family: Odin;\r\n opacity: 0;\r\n}\r\n\r\nbutton,\r\ninput[type="button"],\r\n.clickable {\r\n outline: none;\r\n pointer-events: all;\r\n -webkit-touch-callout: none;\r\n -webkit-user-select: none;\r\n -khtml-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\nbutton::-moz-focus-inner,\r\ninput[type="button"]::-moz-focus-inner {\r\n border: 0;\r\n -webkit-touch-callout: none;\r\n -webkit-user-select: none;\r\n -khtml-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n -webkit-tap-highlight-color: transparent;\r\n}\r\n\r\n.ui {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n -webkit-touch-callout: none;\r\n -webkit-user-select: none;\r\n -khtml-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n text-shadow: rgba(0, 6, 95, 0.5) 0 3px 0;\r\n pointer-events: none;\r\n}\r\n\r\n.button {\r\n display: block;\r\n background-color: transparent;\r\n filter: drop-shadow(0px 5px 0px rgba(0, 6, 95, 0.5));\r\n font-weight: bold;\r\n text-shadow: rgba(0, 6, 95, 0.5) 0 3px 0;\r\n font-family: JUNEGULL;\r\n cursor: pointer;\r\n border: none;\r\n}\r\n\r\n.play-button {\r\n background-image: url(' + a + ");\r\n background-size: 178px 80px;\r\n width: 178px;\r\n height: 80px;\r\n padding: 16px 25px 16px 54px;\r\n color: white;\r\n font-size: 18px;\r\n display: inline-block;\r\n margin: 5px;\r\n}\r\n\r\n.continue-button {\r\n background-image: url(" + s + ");\r\n background-size: 100px 100px;\r\n width: 100px;\r\n height: 100px;\r\n position: absolute;\r\n margin: auto;\r\n left: 0;\r\n right: 0;\r\n bottom: 10px;\r\n}\r\n\r\n.level-progress {\r\n text-align: center;\r\n margin-top: 45px;\r\n}\r\n\r\n.level-progressbar-container {\r\n display: inline-block;\r\n width: 100px;\r\n height: 15px;\r\n background-color: #666666;\r\n box-shadow: rgba(0, 6, 95, 0.5) 0 3px 0;\r\n}\r\n\r\n.level-progressbar {\r\n height: 100%;\r\n background-color: #ffffff;\r\n}\r\n\r\n.level-progress .lvl {\r\n width: 50px;\r\n display: inline-block;\r\n color: white;\r\n font-weight: bold;\r\n}\r\n\r\n.level-progress .lvl.current {\r\n text-align: right;\r\n padding-right: 10px;\r\n}\r\n\r\n.level-progress .lvl.next {\r\n text-align: left;\r\n padding-left: 10px;\r\n}\r\n\r\n.title {\r\n width: 80%;\r\n max-width: 500px;\r\n display: block;\r\n margin: auto;\r\n margin-top: 50px;\r\n filter: drop-shadow(0px 7px 0px rgba(0, 6, 95, 0.5));\r\n}\r\n\r\n.level-cleared {\r\n text-align: center;\r\n color: white;\r\n margin-top: 25px;\r\n font-size: 1.5em;\r\n}\r\n\r\n.pause-button {\r\n width: 30px;\r\n height: 30px;\r\n background-image: url(" + A + ");\r\n background-size: 30px 30px;\r\n position: absolute;\r\n left: 10px;\r\n top: 10px;\r\n}\r\n\r\n.back-button {\r\n background-image: url(" + s + ");\r\n transform: rotateZ(-90deg);\r\n width: 30px;\r\n height: 30px;\r\n background-size: 30px 30px;\r\n position: absolute;\r\n left: 10px;\r\n top: 10px;\r\n filter: drop-shadow(-5px 0px 0px rgba(0, 6, 95, 0.5));\r\n}\r\n\r\n.shop-button {\r\n width: 80px;\r\n height: 80px;\r\n color: #0171a3;\r\n font-size: 14px;\r\n display: inline-block;\r\n margin: 5px;\r\n text-shadow: none;\r\n background-image: url(" + h + ");\r\n background-size: 80px 80px;\r\n position: relative;\r\n}\r\n\r\n.shop-button.selected {\r\n background-image: url(" + c + ");\r\n}\r\n\r\n.shop-button.locked {\r\n color: white;\r\n background-image: url(" + u + ");\r\n}\r\n\r\n.shop-button.type-rewarded.locked {\r\n background-image: url(" + l + ");\r\n}\r\n\r\n.shop-button.type-rewarded.locked.loading,\r\n.shop-button.type-rewarded.locked.disabled {\r\n background-image: url(" + d + ");\r\n}\r\n\r\n.shop-button > .load-icon {\r\n position: absolute;\r\n width: 20px;\r\n height: 20px;\r\n top: 7px;\r\n right: 7px;\r\n animation-name: spin;\r\n animation-duration: 1s;\r\n animation-iteration-count: infinite;\r\n animation-timing-function: linear;\r\n}\r\n\r\n.shop-button > .text {\r\n position: absolute;\r\n top: 55px;\r\n left: 6px;\r\n right: 6px;\r\n bottom: 4px;\r\n}\r\n\r\n.shop-button > .image {\r\n width: 80px;\r\n position: absolute;\r\n top: -6px;\r\n left: 0;\r\n}\r\n\r\n.shop-button > .lock {\r\n position: absolute;\r\n top: 6px;\r\n left: 6px;\r\n width: 16px;\r\n height: 16px;\r\n}\r\n\r\n.shop-button.type-rewarded.locked > .text,\r\n.shop-button.type-rewarded.locked > .lock {\r\n display: none;\r\n}\r\n\r\n.row {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin: 15px 0;\r\n}\r\n\r\n.title-buttons {\r\n position: absolute;\r\n bottom: 50px;\r\n left: 0;\r\n right: 0;\r\n}\r\n\r\n.title-buttons .button {\r\n margin: 5px;\r\n}\r\n\r\n.shop-content {\r\n background-image: url(" + p + ');\r\n background-size: 100% 100%;\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n top: 33%;\r\n}\r\n\r\n.skins-lists-container {\r\n position: relative;\r\n height: calc(100% - 68px);\r\n left: 0%;\r\n transition: ease 0.5s;\r\n}\r\n\r\n.skins-list {\r\n text-align: center;\r\n overflow: auto;\r\n height: 100%;\r\n display: inline-block;\r\n}\r\n\r\n.shop-progress {\r\n position: absolute;\r\n top: 10px;\r\n right: 10px;\r\n color: white;\r\n font-size: 20px;\r\n}\r\n\r\n.shop .shop-button {\r\n text-shadow: none;\r\n}\r\n\r\n.shop-category-name {\r\n background-color: white;\r\n color: #00b9dc;\r\n text-align: center;\r\n text-shadow: none;\r\n padding: 5px;\r\n line-height: 25px;\r\n}\r\n\r\n.shop-category-name > span {\r\n width: 200px;\r\n display: inline-block;\r\n}\r\n\r\n.clicked-skin-info {\r\n color: white;\r\n background-color: #00b9dc;\r\n text-align: center;\r\n padding: 5px;\r\n filter: drop-shadow(0px 3px 0px rgba(0, 6, 95, 0.5));\r\n margin-bottom: 10px;\r\n}\r\n\r\n.red-arrow {\r\n cursor: pointer;\r\n width: 25px;\r\n vertical-align: middle;\r\n}\r\n\r\n.red-arrow.orientation-left {\r\n transform: scaleX(-1);\r\n}\r\n\r\n.red-arrow.disabled {\r\n opacity: 0.5;\r\n}\r\n\r\n.level-debug-infos {\r\n font-size: 10px;\r\n font-family: Arial, Helvetica, sans-serif;\r\n text-shadow: none;\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n}\r\n\r\n.popup-container {\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n background-color: rgba(0, 6, 95, 0.5);\r\n}\r\n\r\n.popup-container > div {\r\n position: absolute;\r\n top: 0;\r\n bottom: 50px;\r\n left: 0;\r\n right: 0;\r\n}\r\n\r\n.skin-unlocked-popup {\r\n color: white;\r\n border: 10px solid white;\r\n border-radius: 4px;\r\n width: 250px;\r\n height: 250px;\r\n text-align: center;\r\n position: absolute;\r\n margin: auto;\r\n left: 0;\r\n right: 0;\r\n top: 0;\r\n bottom: 0;\r\n overflow: hidden;\r\n}\r\n\r\n.skin-unlocked-popup::before {\r\n content: "";\r\n position: absolute;\r\n width: 200%;\r\n height: 200%;\r\n top: -50%;\r\n left: -50%;\r\n z-index: -1;\r\n background-color: #438dbe;\r\n background-image: url(' + f + ");\r\n background-position: 50% 50%;\r\n animation-name: spin;\r\n animation-duration: 5s;\r\n animation-iteration-count: infinite;\r\n animation-timing-function: linear;\r\n}\r\n\r\n.skin-unlocked-popup img {\r\n width: 200px;\r\n height: 200px;\r\n margin-top: 25px;\r\n}\r\n\r\n.skin-unlocked-popup > p {\r\n text-shadow: rgba(0, 6, 95, 0.5) 0 2px 0;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n}\r\n\r\n.skin-unlocked-popup .equip-skin-button {\r\n background-color: #0171a3;\r\n padding: 7px 12px;\r\n border-radius: 15px;\r\n border: 4px solid #00b9dc;\r\n color: white;\r\n filter: none;\r\n text-shadow: rgba(0, 6, 95, 0.5) 0 2px 0;\r\n margin: auto;\r\n position: absolute;\r\n bottom: 10px;\r\n left: 0;\r\n right: 0;\r\n width: 125px;\r\n}\r\n\r\n.share-button {\r\n color: white;\r\n padding: 9px 12px;\r\n font-size: 18px;\r\n font-weight: normal;\r\n width: 100px;\r\n height: 50px;\r\n background-image: url(" + y + ");\r\n background-size: 100px 50px;\r\n}\r\n\r\n.victory {\r\n margin: auto;\r\n width: 300px;\r\n}\r\n\r\n.victory .shop-button {\r\n position: absolute;\r\n bottom: 15px;\r\n right: 4%;\r\n}\r\n\r\n.victory .share-button {\r\n position: absolute;\r\n bottom: 125px;\r\n left: 4%;\r\n font-size: 12px;\r\n}\r\n\r\n.leaderboard-button {\r\n color: white;\r\n padding: 10px 20px;\r\n font-size: 12px;\r\n font-weight: normal;\r\n width: 123px;\r\n height: 50px;\r\n background-image: url(" + x + ');\r\n background-size: 123px 50px;\r\n}\r\n\r\n.victory .leaderboard-button {\r\n position: absolute;\r\n bottom: 65px;\r\n left: 4%;\r\n width: 100px;\r\n height: 50px;\r\n background-size: 100px 50px;\r\n font-size: 10px;\r\n padding: 10px 10px;\r\n}\r\n\r\n.leaderboard {\r\n height: 100%;\r\n overflow: auto;\r\n pointer-events: all;\r\n color: white;\r\n}\r\n\r\n.leaderboard h2,\r\n.leaderboard h3 {\r\n text-align: center;\r\n}\r\n\r\n.leaderboard .leaderboard-button {\r\n display: inline-block;\r\n margin: 0 5px 15px;\r\n}\r\n\r\n.leaderboard-entries {\r\n display: table;\r\n width: 100%;\r\n border-collapse: separate;\r\n border-spacing: 0 5px;\r\n}\r\n\r\n.leaderboard-row {\r\n display: table-row;\r\n background-color: rgba(0, 6, 95, 0.5);\r\n}\r\n\r\n.leaderboard-row.current {\r\n background-color: rgba(86, 255, 128, 0.5);\r\n}\r\n\r\n.leaderboard-col {\r\n display: table-cell;\r\n vertical-align: middle;\r\n padding: 5px;\r\n}\r\n\r\n.leaderboard-col.photo,\r\n.leaderboard-col.photo img {\r\n width: 50px;\r\n height: 50px;\r\n}\r\n\r\n.leaderboard-col.photo img {\r\n display: block;\r\n word-break: break-word;\r\n}\r\n\r\n.pagination {\r\n text-align: center;\r\n}\r\n\r\n.pagination .page-number {\r\n display: inline-block;\r\n width: 200px;\r\n margin: 20px 0;\r\n}\r\n\r\n.center {\r\n text-align: center;\r\n}\r\n\r\n.loading-ui {\r\n color: white;\r\n text-align: center;\r\n height: 100%;\r\n margin: 0;\r\n}\r\n\r\n.loading-ui > img {\r\n text-align: center;\r\n position: absolute;\r\n margin: auto;\r\n left: 0;\r\n right: 0;\r\n top: 0;\r\n bottom: 0;\r\n overflow: hidden;\r\n max-width: 100%;\r\n animation-name: fadeIn;\r\n animation-duration: 1s;\r\n animation-timing-function: ease-in;\r\n}\r\n\r\n.loading-ui > img.fade-out {\r\n opacity: 0;\r\n transition: 1s ease-in;\r\n}\r\n\r\n.loading-ui > img::before {\r\n content: "";\r\n position: absolute;\r\n width: 200%;\r\n height: 200%;\r\n top: -50%;\r\n left: -50%;\r\n}\r\n\r\n.loading-ui .title {\r\n margin-top: 0;\r\n padding-top: 100px;\r\n}\r\n\r\n.loading-ui .loading-bg {\r\n background-image: url(' + p + ");\r\n background-size: 100% 100%;\r\n height: 100%;\r\n}\r\n\r\n.loading-text {\r\n filter: drop-shadow(0px 5px 0px rgba(0, 6, 95, 0.5));\r\n text-shadow: none;\r\n text-align: center;\r\n color: white;\r\n margin-top: 100px;\r\n}\r\n\r\n.loading-text > .load-icon {\r\n width: 14px;\r\n height: 14px;\r\n animation-name: spin;\r\n animation-duration: 1s;\r\n animation-iteration-count: infinite;\r\n animation-timing-function: linear;\r\n}\r\n\r\n.present-button {\r\n width: 50px;\r\n height: 50px;\r\n background-image: url(" + m + ");\r\n background-size: 50px 50px;\r\n}\r\n\r\n.add-button {\r\n width: 65px;\r\n height: 65px;\r\n background-image: url(" + g + ");\r\n background-size: 65px 65px;\r\n}\r\n\r\n.present-row {\r\n background: rgba(0, 6, 95, 0.5);\r\n padding: 0;\r\n color: white;\r\n}\r\n\r\n.present-row .present-button {\r\n margin-right: 15px;\r\n flex: 0 0 50px;\r\n}\r\n\r\n.present-row .add-button {\r\n margin-left: 15px;\r\n flex: 0 0 65px;\r\n filter: none;\r\n}\r\n\r\n.leaderboard-col.share {\r\n text-align: right;\r\n}\r\n\r\n.leaderboard-col.share .share-button {\r\n display: inline-block;\r\n padding: 10px;\r\n font-size: 12px;\r\n}\r\n\r\n.title-buttons .share-button {\r\n font-size: 12px;\r\n}\r\n\r\n.leaderboard .center .share-button {\r\n display: inline-block;\r\n margin: 0 5px 15px;\r\n vertical-align: bottom;\r\n}\r\n\r\n.store-links {\r\n color: white;\r\n text-align: center;\r\n max-width: 140px;\r\n display: block;\r\n position: fixed;\r\n top: 5px;\r\n right: 5px;\r\n}\r\n\r\n.store-links img {\r\n display: block;\r\n max-width: 140px;\r\n}\r\n\r\n@media (max-height: 420px) {\r\n .victory .title {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (max-height: 525px) {\r\n .victory .level-cleared {\r\n margin-top: 10px;\r\n font-size: 1em;\r\n }\r\n\r\n .title-buttons {\r\n bottom: 20px;\r\n }\r\n}\r\n\r\n@media (max-width: 600px) {\r\n .store-links {\r\n display: none;\r\n }\r\n}\r\n", ""]) }, function(t, e, n) { "use strict"; t.exports = function(t) { var e = []; return e.toString = function() { return this.map(function(e) { var n = function(t, e) { var n = t[1] || "", r = t[3]; if (!r) return n; if (e && "function" == typeof btoa) { var i = (a = r, s = btoa(unescape(encodeURIComponent(JSON.stringify(a)))), A = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s), "/*# ".concat(A, " */")), o = r.sources.map(function(t) { return "/*# sourceURL=".concat(r.sourceRoot).concat(t, " */") }); return [n].concat(o).concat([i]).join("\n") } var a, s, A; return [n].join("\n") }(e, t); return e[2] ? "@media ".concat(e[2], "{").concat(n, "}") : n }).join("") }, e.i = function(t, n) { "string" == typeof t && (t = [ [null, t, ""] ]); for (var r = {}, i = 0; i < this.length; i++) { var o = this[i][0]; null != o && (r[o] = !0) } for (var a = 0; a < t.length; a++) { var s = t[a]; null != s[0] && r[s[0]] || (n && !s[2] ? s[2] = n : n && (s[2] = "(".concat(s[2], ") and (").concat(n, ")")), e.push(s)) } }, e } }, function(t, e, n) { "use strict"; t.exports = function(t, e) { return "string" != typeof t ? t : (/^['"].*['"]$/.test(t) && (t = t.slice(1, -1)), /["'() \t\n]/.test(t) || e ? '"'.concat(t.replace(/"/g, '\\"').replace(/\n/g, "\\n"), '"') : t) } }, function(t, e, n) { t.exports = n.p + "fonts/JUNEGULL.ttf" }, function(t, e, n) { t.exports = n.p + "fonts/Odin-Rounded-Bold.ttf" }, function(t, e, n) { t.exports = n.p + "images/54e99c08dfada2fdd1e3b94b699360a4-btn_play.png" }, function(t, e, n) { t.exports = n.p + "images/8c92b88b23a65aece8ad09c9fb12a398-B_PlayButton.png" }, function(t, e) { t.exports = "data:image/png;base64,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" }, function(t, e) { t.exports = "data:image/png;base64,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" }, function(t, e) { t.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM8AAADPCAYAAABSgYVfAAAKOUlEQVR4nO3cP2wTaRrH8d8zXAMCgRSaoKCkMiXJpmIbfKIFbbZZabfZnFiCrsstV51OOiNdedzlqhNmVwoNK1EFLS2Sqai8mDKpvArKNkEKCgrV+r1iHMj88dh+YhMn+X6kldbOeGaKfHlnXr8TCYCLHdSBw62Zq8k3wjlF0fQBnQ5GWbAtqdWQJHvw8vlBn86uoccTbs5MysK0oqisYNMylYd9TBwHoalgTVloqNWqKTpRs2r97ac8g6HEE27PXFaweUlzkk0N4xhARlBD0rJarRX78eWvwz7cQOMJC7PfKmie0QUjYEWt35fth8aTYR1gIPHE0YQlmZ3r+UMTJenUmY+vT56WLl4axOngqFlfld6/k95sSG9+6/PDoSlZxar1h4M+rX3FE9/0R0syFd/oT5Sk0qx0aVYaGycS7N9qXXq9Kq2vSWv1HqIafETueMLCZ/9Q0GLH0aY0K125Lk2XkyMMMAw721KjJr14GsfUSVBNrdb8IO6J+o4nLMyeVdBKx/uaK9ela18zuuDgbG5Ir2rSs5/yR6QQtmS2uN9RqK94ws2ZSUXRSu5lWmlW+up7osHo2NyQnlbj0SjfilXrX3p333M84ebMpE5YLTP1fPK0dGNBuvaN9xyA4drckB7ezb+cC2rIVPZ8R9RTPO1LtVpmxBkbl76/L52/0O9xgU/v2SPp8b+z7zsD6i2eW7MvM+FMlKQ79/czGdBs/7drS1LDuzMcaeU9/39O6jK7W2R9Vbp3O5763ssRUNd4wsJn/5FsMfFmaVb687/6DWdFUk1Szcxe9fNBIC2EMClpTnFIc4qj6s3OdhzQ67XUTtWwB/WZXndTGE/4bvoLRSdWEm/2N+I0JS1JWjGzoS+XwPEVQvhWcURzPX2gU0AKFav+creXXXSMJyzMnpVCIzFBcPK09PdHvdzjbEmqmNl/ezkJYFBCCFclLUua6rrxzrb0z2+y09mhVe5l9XZUcBqVzMzafKWXcGqSpggHB8HMniu+lKt03fjUmXjC6+Tp9E6W48GjWG484ebMZOY+Z3e1QLFlM/ujmX3SpeHAXmb21szuKo6oWbjx+QvxoJDcw5QUFjPbpuSPPCdsPvF6bFz66k63fS2b2Z+6bQR8Ku2JqWl1m8WdLkuXk89mKmix2+jT6bJtPvHq+kK3CYIVwsEoal8FldUtoK/uJC/fzM51G30y8cQrpW3qwxtj49LnN4r20VQ6NmCE7Aloq+NG5y9kV8l0GX2yI49FqXudwnAkaZ57HIy69u9o8TT2ta/THzpX9JlEPPFEQWrjK9eLDrfcnt0ARl77d7XScYNTZ/J+33uLR1GU3HCi1G1qeqnoh8AIWlLRDFx69JHmOl26pS/b5rvsaK8my2xw2LQv3zr/o3/xUnyfv1fr93Leph/iCQuzZzOLP0uzRedR6XKewKhaVtHkQfr3PorKeZt9HHnSdY2NF12ybSle6AkcOu3Rp9Zxg/RigGC5q7g/xpOu63JqB0k1ZthwyHX+x3+ilHzd4U8OfIwnXdelwks2Rh0cdrWOPzl/IbPerT0TnfAxnnRd6fp6PTBwCLQfkel835P+WxxRdpV2JO0+fpBScL/Dszk4Ijov2cmstI6m0pvEI09oZf82geeAwOHS+Xc581egwlR6kziedFVj/EEPHAudL9t60L7nSVVVfL+zrwMCR0X+IwnFjx9w2Qao8DFsAEWIB3AiHsCJeAAn4gGciAdwIh7AiXgAJ+IBnIgHcCIewIl4ACfiAZyIB3AiHsCJeAAn4gGciAdwIh7AiXgAJ+IBnIgHcCIewIl4ACfiAZyIB3AiHsCJeAAn4gGciAdwIh7AiXgAJ+IBnIgHcCIewIl4ACfiAZyIB3AiHsCJeAAn4gGciAdwIh7AiXgAJ+IBnIgHcCIewIl4ACfiAZyIB3AiHsCJeAAn4gGciAdwIh7AiXgAJ+IBnIgHcCIewIl4ACfiAZyIB3AiHsCJeAAn4gGciAdwIh7AiXgAJ+IBnIgHcCIewIl4ACfiAZyIB3AiHsCJeAAn4gGciAdwIh7AiXgAJ+IBnIgHcCIewIl4ACfiAZyIB3AiHsCJeAAn4gGciAdwIh7AiXgAJ+IBnIgHcCIewIl4ACfiAZz+4PhMOYQw8BMBDkB5Px92xbPfgwJHAZdtgBPxAE7EAzgRD+BEPIAT8QBOxAM4EQ/gRDyAE/EATsQDOBEP4EQ8gBPxAE7EAzgRD+BEPIAT8QBOxAM4EQ/gRDyAE/EATsQDOBEP4EQ8gBPxAE7EAzgRD+BEPIAT8QBOxAM4EQ/gRDyAE/EATsQDOBEP4EQ8gFMcT7CtxLtvNg7iXIBDpT3ytBqJd9/8dgCnAoyQ9dXk61aqEXHZBuR7/y752lJXZ+oUT7o64LhZqydft9RMbxJJkj14+Tzx7vt30s728E4MGGWbqXv+ELbsx5e/pjfbM/KEZuIn62vDOC1g9KVHHVnmfkfaG0+wZvEOgGMi/btvoZa3WdRxA+LBcdWoJV+HbvGkN1irc9+D42e1npxpC2ErMyfQ9iGe3A3SBQJH3Yuf0++sdNo0PVWd3PDF08GcEHAY7GznXLK1nPGs1bPTdsBR9eLn1JejoWk/NJ502jwRj1XrDxVC8pvUp9XBniAwina2pWc/pd9dLvpIdoWBaSnx+sVTRh8cfY/v5azptKXcbdtylufYUmb0eXh3v6cGjK7NjZz7+7Bk1frboo9l4rFq/a0sNVyt1Zl5w9H1+F7qjdC06i9/6faxDquqrZJZrrNc4fINR8+zR9Kr9Lc0Vunlo7nxWLX+Vq3WYuLN9++k//2VL05xdKyvSj+nJ8RC06r1h718vOPzPPZD44lCWE68+XotHoEICIfdznY8GGSe2wlzve6i+GE4s0UFJVeUvnpOQDjcdrale7dzZtdCxe6/fNXrbqzbBmFh9qxCaMrsXOIHEyXpzn3p1JlejwUcvN1wXmceuVmxav3LfnbV9TFsq9bfKgrlzPT16zXpbzfihXTAYbC+mh9OfHU13+/uuo48H/Z/e+ayWlbLjECSdH1BuvY1oxBGV6MW326k73GCGjKVu32nk6fneCQp3JyZVBStyDSd+eHYeBzR5zf6PQdgeDY34u9xMtPR2lc4Up/xSB/ugZZkNp+7QWlWmr4qXS5L5y94zgnYv91VA88eZUcbSQqqyTTnDUdyxPPh2N9NfyGLlnMv43ZduR6PRkSET2V9NV7gWfg4TahY9Zd9rzlzxyP1MArtGhuXrtyIR6WLJe6NMDibG/EEwGpdelXr8gc7Q1MhzHd6MrRf+4pnV7g5M6kTtqig+cKRaNdEKQ7q4qVBHB7Hzc52HMybjd7+um0IW/HTAtZ1sWc/BhLPXuHWzFUpqshUHvS+gb4MKZpdA49nV7g1c1Vmcz2PRsDgrCj+0rOnNWpeQ4tnr48hWTl3mhvYj6CGLNTUatUUnagNY5TJ80ni2SueZGhNS9G0LDAiwcmaslajn7VoAAAAAIDe/R/at7UdBVJHxwAAAABJRU5ErkJggg==" }, function(t, e) { t.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM8AAADPCAYAAABSgYVfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOZSURBVHhe7drLceJAFEBRM3k6CEfiIBwoU0zBVPnDR1ctGcQ5G7EQDQtdvUb2CwCsanc8rm739rE/voSb7d9ff+2a/WqVLyIU1rB2WIt8mFj4bWuENPQDRMO9WTKiIQuLhnu3RESzFxQOj2RkRLMWEg6PaFRAaRHR8OhGBDR5AeGwFXMDmvRm4bA1cwK6+Y3CYatqQH+OR3hadTDcVNzoqTPqaQfPZ8kd0NTr8urJo76sYFjKyKCmXKcXT5z7pQTD2kaEdOt1u1g8wuE3rXHjP3tC/XDRcC+WvvkPjUc43KOlBsGPj6rnjjy4J0vd1If9ncfUYWuuDZFv8diusUVLXKP+w4CnMTqg2fGYOmzZpZ3Yp3g8KGDrRt7sbdsgmhWPLRvPzOTh6Yy66YsHrjj3LEA8EP2PZ+qTNr93eHYmD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EO2Ox5fd28f++BL4Yv/++r+VE5MHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IxAOReCASD0TigUg8EIkHIvFAJB6IdsfjP7u3j/3xJXC0f3/91MmJyQOReCASD0TigQvO/d45+BTPpROBz0weiMQDZ1zbiX2Lx9YNbmPywA9uGSI/xmP6wHUmD3xx6/A4G4/pA5ddDcQ/i/JMpgwN2zY4mrrbuhqP7Rv87OYwbN/YsjIkJr1BQGxR3V1Nr01AbMicnyWtOAGxAXN/z897s4h4UCMehM1fQEA8mBHhHAxZ5EBE3LtR0ZwMXexARNyb0dGcLLLogYj4bUtFc7Lo4idCYk1LR3Oyyod8JSZGWisWAAAAgCteXv4C/ujMgms5yHkAAAAASUVORK5CYII=" }, function(t, e, n) { t.exports = n.p + "images/71b76f184e6da03830b954235e33ae9c-ShopRewarded.png" }, function(t, e, n) { t.exports = n.p + "images/081cbab0a3ae7cc413d3a7b6f0de1d27-ShopRewardedLoading.png" }, function(t, e, n) { t.exports = n.p + "images/9fbf958a795fda3dfcc89826130fcad7-btn_share.png" }, function(t, e, n) { t.exports = n.p + "images/7d2f8caa50780cb5b5d660370723475e-btn_leaderboard.png" }, function(t, e, n) { t.exports = n.p + "images/b68d68a916728e64ff5eada6ad5eedd3-Present.png" }, function(t, e, n) { t.exports = n.p + "images/ce2c2a7333996ccaa789a1f4a1434e1a-AddButton.png" }, function(t, e, n) { var r, i, o = {}, a = (r = function() { return window && document && document.all && !window.atob }, function() { return void 0 === i && (i = r.apply(this, arguments)), i }), s = function(t) { var e = {}; return function(t, n) { if ("function" == typeof t) return t(); if (void 0 === e[t]) { var r = function(t, e) { return e ? e.querySelector(t) : document.querySelector(t) }.call(this, t, n); if (window.HTMLIFrameElement && r instanceof window.HTMLIFrameElement) try { r = r.contentDocument.head } catch (t) { r = null } e[t] = r } return e[t] } }(), A = null, h = 0, c = [], u = n(161); function l(t, e) { for (var n = 0; n < t.length; n++) { var r = t[n], i = o[r.id]; if (i) { i.refs++; for (var a = 0; a < i.parts.length; a++) i.parts[a](r.parts[a]); for (; a < r.parts.length; a++) i.parts.push(m(r.parts[a], e)) } else { var s = []; for (a = 0; a < r.parts.length; a++) s.push(m(r.parts[a], e)); o[r.id] = { id: r.id, refs: 1, parts: s } } } } function d(t, e) { for (var n = [], r = {}, i = 0; i < t.length; i++) { var o = t[i], a = e.base ? o[0] + e.base : o[0], s = { css: o[1], media: o[2], sourceMap: o[3] }; r[a] ? r[a].parts.push(s) : n.push(r[a] = { id: a, parts: [s] }) } return n } function p(t, e) { var n = s(t.insertInto); if (!n) throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid."); var r = c[c.length - 1]; if ("top" === t.insertAt) r ? r.nextSibling ? n.insertBefore(e, r.nextSibling) : n.appendChild(e) : n.insertBefore(e, n.firstChild), c.push(e); else if ("bottom" === t.insertAt) n.appendChild(e); else { if ("object" != typeof t.insertAt || !t.insertAt.before) throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n"); var i = s(t.insertAt.before, n); n.insertBefore(e, i) } } function f(t) { if (null === t.parentNode) return !1; t.parentNode.removeChild(t); var e = c.indexOf(t); e >= 0 && c.splice(e, 1) } function y(t) { var e = document.createElement("style"); if (void 0 === t.attrs.type && (t.attrs.type = "text/css"), void 0 === t.attrs.nonce) { var r = function() { 0; return n.nc }(); r && (t.attrs.nonce = r) } return x(e, t.attrs), p(t, e), e } function x(t, e) { Object.keys(e).forEach(function(n) { t.setAttribute(n, e[n]) }) } function m(t, e) { var n, r, i, o; if (e.transform && t.css) { if (!(o = "function" == typeof e.transform ? e.transform(t.css) : e.transform.default(t.css))) return function() {}; t.css = o } if (e.singleton) { var a = h++; n = A || (A = y(e)), r = v.bind(null, n, a, !1), i = v.bind(null, n, a, !0) } else t.sourceMap && "function" == typeof URL && "function" == typeof URL.createObjectURL && "function" == typeof URL.revokeObjectURL && "function" == typeof Blob && "function" == typeof btoa ? (n = function(t) { var e = document.createElement("link"); return void 0 === t.attrs.type && (t.attrs.type = "text/css"), t.attrs.rel = "stylesheet", x(e, t.attrs), p(t, e), e }(e), r = function(t, e, n) { var r = n.css, i = n.sourceMap, o = void 0 === e.convertToAbsoluteUrls && i; (e.convertToAbsoluteUrls || o) && (r = u(r)); i && (r += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(i)))) + " */"); var a = new Blob([r], { type: "text/css" }), s = t.href; t.href = URL.createObjectURL(a), s && URL.revokeObjectURL(s) }.bind(null, n, e), i = function() { f(n), n.href && URL.revokeObjectURL(n.href) }) : (n = y(e), r = function(t, e) { var n = e.css, r = e.media; r && t.setAttribute("media", r); if (t.styleSheet) t.styleSheet.cssText = n; else { for (; t.firstChild;) t.removeChild(t.firstChild); t.appendChild(document.createTextNode(n)) } }.bind(null, n), i = function() { f(n) }); return r(t), function(e) { if (e) { if (e.css === t.css && e.media === t.media && e.sourceMap === t.sourceMap) return; r(t = e) } else i() } } t.exports = function(t, e) { if ("undefined" != typeof DEBUG && DEBUG && "object" != typeof document) throw new Error("The style-loader cannot be used in a non-browser environment"); (e = e || {}).attrs = "object" == typeof e.attrs ? e.attrs : {}, e.singleton || "boolean" == typeof e.singleton || (e.singleton = a()), e.insertInto || (e.insertInto = "head"), e.insertAt || (e.insertAt = "bottom"); var n = d(t, e); return l(n, e), function(t) { for (var r = [], i = 0; i < n.length; i++) { var a = n[i]; (s = o[a.id]).refs--, r.push(s) } t && l(d(t, e), e); for (i = 0; i < r.length; i++) { var s; if (0 === (s = r[i]).refs) { for (var A = 0; A < s.parts.length; A++) s.parts[A](); delete o[s.id] } } } }; var g, w = (g = [], function(t, e) { return g[t] = e, g.filter(Boolean).join("\n") }); function v(t, e, n, r) { var i = n ? "" : r.css; if (t.styleSheet) t.styleSheet.cssText = w(e, i); else { var o = document.createTextNode(i), a = t.childNodes; a[e] && t.removeChild(a[e]), a.length ? t.insertBefore(o, a[e]) : t.appendChild(o) } } }, function(t, e) { t.exports = function(t) { var e = "undefined" != typeof window && window.location; if (!e) throw new Error("fixUrls requires window.location"); if (!t || "string" != typeof t) return t; var n = e.protocol + "//" + e.host, r = n + e.pathname.replace(/\/[^\/]*$/, "/"); return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(t, e) { var i, o = e.trim().replace(/^"(.*)"$/, function(t, e) { return e }).replace(/^'(.*)'$/, function(t, e) { return e }); return /^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(o) ? t : (i = 0 === o.indexOf("//") ? o : 0 === o.indexOf("/") ? n + o : r + o.replace(/^\.\//, ""), "url(" + JSON.stringify(i) + ")") }) } }, function(t, e) { t.exports = function(t) { if (Array.isArray(t)) { for (var e = 0, n = new Array(t.length); e < t.length; e++) n[e] = t[e]; return n } } }, function(t, e) { t.exports = function(t) { if (Symbol.iterator in Object(t) || "[object Arguments]" === Object.prototype.toString.call(t)) return Array.from(t) } }, function(t, e) { t.exports = function() { throw new TypeError("Invalid attempt to spread non-iterable instance") } }, function(t, e, n) { var r = { "./LEVEL000.json": 166, "./LEVEL001.json": 167, "./LEVEL002.json": 168, "./LEVEL003.json": 169, "./LEVEL004.json": 170, "./LEVEL005.json": 171, "./LEVEL006.json": 172, "./LEVEL007.json": 173, "./LEVEL008.json": 174 }; function i(t) { var e = o(t); return n(e) } function o(t) { if (!n.o(r, t)) { var e = new Error("Cannot find module '" + t + "'"); throw e.code = "MODULE_NOT_FOUND", e } return r[t] } i.keys = function() { return Object.keys(r) }, i.resolve = o, t.exports = i, i.id = 165 }, function(t) { t.exports = { spawnPoint: { x: .10152838427947594, y: .3026200873362445 }, background: "background_0", hooks: [{ x: .4628820960698688, y: .13864628820960687 }], bumpers: [{ x: .5895196506550213, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .09170305676855864, y: .5447598253275107, w: .15, h: .04, rotation: 0, bounce: { bounce: 1 } }, { x: .06113537117903899, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .19432314410480317, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .32532751091703027, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .4585152838427944, y: .8635371179039298, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: .658296943231441 } }, function(t) { t.exports = { spawnPoint: { x: .10152838427947594, y: .3026200873362445 }, background: "background_0", hooks: [{ x: .9050829694323137, y: .05676855895196491 }, { x: .4628820960698688, y: .13864628820960687 }], bumpers: [{ x: 1.2445414847161569, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .09170305676855864, y: .5447598253275107, w: .15, h: .04, rotation: 0, bounce: { bounce: 1 } }, { x: .7161572052401745, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .8493449781659386, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .9803493449781655, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: 1.1135371179039302, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .5895196506550213, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .06113537117903899, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .19432314410480317, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .32532751091703027, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .4585152838427944, y: .8635371179039298, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: 1.3045851528384274 } }, function(t) { t.exports = { spawnPoint: { x: .10152838427947594, y: .3026200873362445 }, background: "background_0", hooks: [{ x: 1.3668733624454144, y: .13864628820960687 }, { x: .4628820960698688, y: .13864628820960687 }, { x: .9138165938864625, y: .13864628820960687 }], bumpers: [{ x: .09170305676855864, y: .5447598253275107, w: .15, h: .04, rotation: 0, bounce: { bounce: 1 } }, { x: 1.5775196506550224, y: .9589650655021833, w: .15, h: .04, rotation: 0 }, { x: 1.2885764192139737, y: .9589650655021833, w: .15, h: .04, rotation: 0 }, { x: 1.144655021834061, y: .9589650655021833, w: .15, h: .04, rotation: 0 }, { x: 1.0005502183406116, y: .9589650655021833, w: .15, h: .04, rotation: 0 }, { x: .8557117903930128, y: .9589650655021833, w: .15, h: .04, rotation: 0 }, { x: .711606986899563, y: .9589650655021833, w: .15, h: .04, rotation: 0 }, { x: .5676855895196504, y: .9589650655021833, w: .15, h: .04, rotation: 0 }, { x: .4235807860262007, y: .9589650655021833, w: .15, h: .04, rotation: 0 }, { x: 1.4326812227074237, y: .9589650655021833, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: 1.7259825327510907 } }, function(t) { t.exports = { spawnPoint: { x: .13427947598253268, y: .26877729257641914 }, background: "background_0", hooks: [{ x: .3449213973799123, y: .5366593886462878 }, { x: 1.633668122270742, y: .30676855895196503 }], bumpers: [{ x: 1.981825327510916, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .13318777292576386, y: .8635371179039298, w: .15, h: .04, rotation: 0, bounce: { bounce: 1 } }, { x: 1.8398209606986886, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .3282707423580783, y: .7827510917030565, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { force: 1.5 } }, { x: .3610218340611351, y: .7827510917030565, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: .3610218340611351, y: .6331877729257638, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: .3282707423580783, y: .6331877729257638, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { force: 1.5 } }, { x: 2.0268384279476113, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.6964410480349335, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: 1.5544366812227073, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .8419039301310038, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .6998995633187769, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .5565196506550213, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .41451528384279435, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: 1.4116812227074222, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: 1.269676855895195, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: 1.1262969432314398, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: .9842925764192136, y: .8635371179039298, w: .15, h: .04, rotation: 0 }, { x: 1.4512358078602745, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.5964323144104928, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.7394454148471734, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.8827336244541608, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .5877903930130999, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .012187772925763757, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .15738427947598205, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .30039737991266324, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .4436855895196501, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.3074061135371302, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .7318034934497811, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .8769999999999994, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.0200131004366932, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.1633013100436802, y: .04558515283842797, w: .15, h: .04, rotation: 3.141592653589793 }], obstacles: [], finishLine: 2.042606986899554 } }, function(t) { t.exports = { spawnPoint: { x: .1801310043668122, y: .12685589519650647 }, background: "background_0", hooks: [{ x: 1.073144104803493, y: .26091703056768556 }], bumpers: [], obstacles: [{ name: "A_Wall45", x: .5106419213973798, y: .4190439811293335, rotation: -.4363323129985824 }, { name: "A_Wall45", x: .17139737991266363, y: .2946871988598884, rotation: -.4363323129985824 }, { name: "A_Wall45", x: .23908296943231427, y: .3196199859696655, rotation: -.4363323129985824 }, { name: "A_Wall45", x: .30786026200873357, y: .34458010856493, rotation: -.4363323129985824 }, { name: "A_Wall45", x: .3750873362445413, y: .3691673103006023, rotation: -.4363323129985824 }, { name: "A_Wall45", x: .4431397379912661, y: .3942600317505997, rotation: -.4363323129985824 }, { name: "A_WallTransition", x: .10462008733624456, y: .24698597253249893, rotation: 3.5779249665883754 }, { name: "A_Wall45", x: .013283842794759804, y: .04025838770233575, rotation: .4363323129985824 }, { name: "A_Wall45", x: .06222707423580781, y: .17759593344759045, rotation: .4363323129985824 }, { name: "A_Wall45", x: .03730131004366807, y: .10823780963126522, rotation: .4363323129985824 }], finishLine: 1.4181222707423577 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.480349344978165, y: .22161572052401735 }, { x: .5655021834061132, y: .22161572052401735 }, { x: 1.1233624454148468, y: .22161572052401735 }, { x: 1.69650655021834, y: .22161572052401735 }], bumpers: [{ x: 1.5046419213973796, y: .7674672489082969, w: .15, h: .04, rotation: 0 }, { x: 1.964192139737991, y: .7674672489082969, w: .15, h: .04, rotation: 0 }, { x: 1.3613537117903927, y: .7674672489082969, w: .15, h: .04, rotation: 0 }, { x: 2.2504934497816587, y: .7674672489082969, w: .15, h: .04, rotation: 0 }, { x: 2.1072052401746717, y: .7674672489082969, w: .15, h: .04, rotation: 0 }, { x: .9707991266375544, y: .7674672489082969, w: .15, h: .04, rotation: 0 }, { x: .8275109170305674, y: .7674672489082969, w: .15, h: .04, rotation: 0 }, { x: .09716157205240157, y: .7674672489082969, w: .15, h: .04, rotation: 0, bounce: { bounce: 1 } }, { x: .38346288209606966, y: .7674672489082969, w: .15, h: .04, rotation: 0, bounce: { bounce: 1 } }, { x: .24017467248908278, y: .7674672489082969, w: .15, h: .04, rotation: 0, bounce: { bounce: 1 } }], obstacles: [], finishLine: 2.3122270742358078 } }, function(t) { t.exports = { spawnPoint: { x: .24017467248908292, y: .23820960698689952 }, background: "background_0", hooks: [{ x: .41593886462882074, y: .23580786026200873 }, { x: 1.9513755458515278, y: .3504366812227071 }], bumpers: [{ x: .24615720524017437, y: .5393013100436681, w: .15, h: .04, rotation: 0, bounce: { bounce: 1 } }], obstacles: [{ name: "A_Wall45", x: .4389563318777288, y: 1.0159645144697023, rotation: .9599310885968813 }, { name: "A_Wall45", x: 1.2111484716157197, y: .268408241232876, rotation: .9599310885968813 }, { name: "A_Wall45", x: 1.247816593886462, y: .059864101703261785, rotation: .9599310885968813 }, { name: "A_Wall45", x: 1.259458515283842, y: -.009861546423560574, rotation: .9599310885968813 }, { name: "A_Wall45", x: 1.2237991266375534, y: .19878363756629164, rotation: .9599310885968813 }, { name: "A_Wall45", x: 1.2354410480349336, y: .12905798943946917, rotation: .9599310885968813 }, { name: "A_Wall45", x: .45205676855895144, y: .9462846302486653, rotation: .9599310885968813 }, { name: "A_Wall45", x: 1.5538515283842769, y: .9921223399766588, rotation: -.4363323129985824 }, { name: "A_Wall45", x: .5568602620087337, y: .560184381243246, rotation: -.7853981633974483 }, { name: "A_Wall45", x: .6289126637554586, y: .560184381243246, rotation: -.7853981633974483 }, { name: "A_Wall45", x: .31695196506550166, y: -.0010156219138579134, rotation: 0 }, { name: "A_Wall45", x: .4207641921397375, y: .10221145232194992, rotation: 0 }, { name: "A_Wall45", x: .47298253275109103, y: .1546131990468406, rotation: 0 }, { name: "A_Wall45", x: 1.4159388646288198, y: .9411708858457554, rotation: -.4363323129985824 }, { name: "A_Wall45", x: 1.2084235807860253, y: .8642173720312409, rotation: -.4363323129985824 }, { name: "A_Wall45", x: 1.1397379912663748, y: .8385567460061981, rotation: -.4363323129985824 }, { name: "A_Wall45", x: 1.1096200873362436, y: .6377080884810213, rotation: -.4363323129985824 }, { name: "A_Wall45", x: 1.0409344978165933, y: .6120474624559785, rotation: -.4363323129985824 }, { name: "A_Wall45", x: .9708820960698681, y: .5858618973395805, rotation: -.4363323129985824 }, { name: "A_Wall45", x: .9021965065502175, y: .5602012713145377, rotation: -.4363323129985824 }, { name: "A_Wall45", x: 1.27847598253275, y: .890402937147639, rotation: -.4363323129985824 }, { name: "A_Wall45", x: 1.3471615720524004, y: .9160635631726818, rotation: -.4363323129985824 }, { name: "A_Wall45", x: 1.48462445414847, y: .9668315118707982, rotation: -.4363323129985824 }, { name: "A_Wall45", x: .7993100436681221, y: .6941896182608146, rotation: 0 }, { name: "A_Wall45", x: .6945982532751092, y: .5891110156407274, rotation: 0 }, { name: "A_Wall45", x: .7470917030567685, y: .6417878715359239, rotation: 0 }, { name: "A_Wall45", x: .8397030567685585, y: .5217005352913823, rotation: 0 }, { name: "A_Wall45", x: .5253842794759822, y: .2071066488285003, rotation: 0 }, { name: "A_Wall45", x: .787484716157205, y: .46929878856649154, rotation: 0 }, { name: "A_Wall45", x: .5778777292576415, y: .2590498802695483, rotation: 0 }, { name: "A_Wall45", x: .6303711790393008, y: .3117267361647447, rotation: 0 }, { name: "A_Wall45", x: .6825895196506544, y: .3641284828896354, rotation: 0 }, { name: "A_Wall45", x: .7349912663755456, y: .4166219326712951, rotation: 0 }, { name: "A_Wall45", x: .3682707423580781, y: .04953459642675348, rotation: 0 }, { name: "A_Wall45", x: 1.0699606986899552, y: .812508623207131, rotation: -.4363323129985824 }, { name: "A_Wall45", x: 1.001275109170305, y: .7868479971820882, rotation: -.4363323129985824 }, { name: "A_Wall45", x: .9312227074235799, y: .7606624320656902, rotation: -.4363323129985824 }, { name: "A_Wall45", x: .8625371179039295, y: .7350018060406474, rotation: -.4363323129985824 }, { name: "A_Wall45", x: .4636986899563315, y: .8765589821218429, rotation: .9599310885968813 }, { name: "A_Wall45", x: .5003668122270738, y: .6680148425922289, rotation: .9599310885968813 }, { name: "A_Wall45", x: .5120087336244539, y: .5982891944654065, rotation: .9599310885968813 }, { name: "A_Wall45", x: .4763493449781654, y: .8069343784552586, rotation: .9599310885968813 }, { name: "A_Wall45", x: .48799126637554546, y: .7372087303284363, rotation: .9599310885968813 }, { name: "A_Wall45", x: 1.1510131004366804, y: .6130487851400336, rotation: .9599310885968813 }, { name: "A_Wall45", x: 1.1876812227074227, y: .4045046456104197, rotation: .9599310885968813 }, { name: "A_Wall45", x: 1.1993231441048027, y: .33477899748359735, rotation: .9599310885968813 }, { name: "A_Wall45", x: 1.163663755458514, y: .5434241814734496, rotation: .9599310885968813 }, { name: "A_Wall45", x: 1.1753056768558943, y: .4736985333466271, rotation: .9599310885968813 }], finishLine: 2.3784716157205232 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .637554585152838, y: .16593886462882088 }, { x: 2.006266375545852, y: .3820960698689956 }], bumpers: [{ x: .2489082969432312, y: .5753275109170305, w: .15, h: .04, rotation: 0, bounce: { bounce: 1 } }, { x: 2.2693668122270707, y: .9454148471615719, w: .15, h: .04, rotation: 0 }, { x: 1.2183406113537114, y: .9454148471615719, w: .15, h: .04, rotation: 0 }, { x: 1.3679039301310036, y: .9454148471615719, w: .15, h: .04, rotation: 0 }, { x: 1.5183755458515273, y: .9454148471615719, w: .15, h: .04, rotation: 0 }, { x: 1.668847161572051, y: .9454148471615719, w: .15, h: .04, rotation: 0 }, { x: 1.8189519650655002, y: .9454148471615719, w: .15, h: .04, rotation: 0 }, { x: 1.9694235807860236, y: .9454148471615719, w: .15, h: .04, rotation: 0 }, { x: 2.119170305676853, y: .9454148471615719, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: 2.3392576419213973 } }, function(t) { t.exports = { spawnPoint: { x: .6441048034934498, y: .38886462882096057 }, background: "background_0", hooks: [{ x: 2.448689956331877, y: .32423580786026185 }, { x: 1.0032751091703056, y: .5272925764192139 }, { x: 1.388646288209607, y: .21943231441048025 }, { x: 1.7609170305676853, y: .5272925764192139 }, { x: 2.1539301310043664, y: .32423580786026185 }], bumpers: [{ x: 2.518668122270729, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 2.224991266375532, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 2.3717379912663623, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .7553100436681216, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .46163318777292467, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .6083799126637549, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.1960829694323034, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .9024061135371187, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.0491528384279434, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.6367554585152724, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.3430786026200758, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.4898253275109052, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 2.077803493449767, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.7841266375545732, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.930873362445403, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .46163318777292467, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 2.518668122270729, y: .0381441048034932, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 2.526746724890816, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: 2.233069868995619, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: 2.3798165938864493, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: .7633886462882096, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: .4697117903930129, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: .6164585152838427, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: 1.2041615720523902, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: .9104847161572067, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: 1.05723144104803, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: 1.6448340611353587, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: 1.3511572052401626, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: 1.497903930130992, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: 2.0858820960698563, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: 1.7922052401746595, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: 1.9389519650654894, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: .4697117903930129, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: 2.526746724890816, y: .9694323144104802, w: .15, h: .04, rotation: 0 }, { x: 2.846231441048023, y: .7079619703610497, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 2.6378995633187654, y: .915244498941789, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 2.7427030567685473, y: .8109613768585792, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 2.846436681222695, y: .290682078736433, w: .15, h: .04, rotation: 3.9269908169872414 }, { x: 2.639930131004356, y: .08431133703038114, w: .15, h: .04, rotation: 3.9269908169872414 }, { x: 2.743999999999988, y: .18745346068051033, w: .15, h: .04, rotation: 3.9269908169872414 }, { x: .14228820960698674, y: .715574828297082, w: .15, h: .04, rotation: .7853981633974483 }, { x: .3495283842794759, y: .9222222411301897, w: .15, h: .04, rotation: .7853981633974483 }, { x: .24563318777292562, y: .8185945200620808, w: .15, h: .04, rotation: .7853981633974483 }, { x: .09606986899563298, y: .42537991266375524, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: .0958864628820959, y: .5763362445414845, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: .13546288209606977, y: .29046089992945645, w: .15, h: .04, rotation: 2.356194490192345 }, { x: .3427947598253275, y: .08274333320831158, w: .15, h: .04, rotation: 2.356194490192345 }, { x: .23908296943231433, y: .18673941141801198, w: .15, h: .04, rotation: 2.356194490192345 }], finishLine: 2.8889519650655022 } }, function(t, e, n) { var r = { "./START000.json": 176, "./START001.json": 177, "./START002.json": 178, "./START003.json": 179, "./START004.json": 180, "./START005.json": 181, "./START006.json": 182, "./START007.json": 183, "./START008.json": 184, "./START009.json": 185, "./START010.json": 186, "./START011.json": 187, "./START012.json": 188, "./START013.json": 189, "./START014.json": 190, "./START015.json": 191, "./START016.json": 192, "./START017.json": 193, "./START018.json": 194, "./START019.json": 195, "./START020.json": 196, "./START021.json": 197, "./START022.json": 198, "./START023.json": 199, "./START024.json": 200, "./START025.json": 201, "./START026.json": 202, "./START027.json": 203, "./START028.json": 204, "./START029.json": 205, "./START030.json": 206 }; function i(t) { var e = o(t); return n(e) } function o(t) { if (!n.o(r, t)) { var e = new Error("Cannot find module '" + t + "'"); throw e.code = "MODULE_NOT_FOUND", e } return r[t] } i.keys = function() { return Object.keys(r) }, i.resolve = o, t.exports = i, i.id = 175 }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_1", hooks: [{ x: 1.4918033620698856, y: .1765027072260288 }, { x: .5868852542397753, y: .1765027072260288 }], bumpers: [{ x: .2641066416522581, y: .5238373603729081, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: 1.9843710355913189 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_1", hooks: [{ x: .9245901472581535, y: .2508196700466135 }, { x: 1.6437159470521683, y: .23661204895686577 }], bumpers: [{ x: 2.1164017778173556, y: .859356494394104, w: .15, h: .04, rotation: 0 }, { x: .4329655536566567, y: .7124838948808015, w: .15, h: .04, rotation: .7853981633974483 }, { x: .22640818077654434, y: .508222811131203, w: .15, h: .04, rotation: .7853981633974483 }, { x: .3291404170446348, y: .6097054652910173, w: .15, h: .04, rotation: .7853981633974483 }, { x: .5579865022853162, y: .7697390414078508, w: .15, h: .04, rotation: 0 }, { x: .6989701255189654, y: .7697390414078508, w: .15, h: .04, rotation: 0 }, { x: .8410465865605252, y: .7697390414078508, w: .15, h: .04, rotation: 0 }, { x: .9831230892927656, y: .7697390414078508, w: .15, h: .04, rotation: 0 }, { x: 1.9754182379650678, y: .8582636148955128, w: .15, h: .04, rotation: 0 }], finishLine: 2.583716013757258 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_1", hooks: [{ x: 1.7899179994343404, y: .2081966504373184 }, { x: .5704917699261437, y: .2081966504373184 }, { x: 1.198907070472592, y: .2081966504373184 }], bumpers: [{ x: .2488061410639193, y: .7719248004050332, w: .15, h: .04, rotation: 0 }], finishLine: 2.103715846994535 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_1", hooks: [{ x: 1.7975682393058392, y: .08251359032802874 }, { x: .5781420097976425, y: .08251359032802874 }, { x: 1.2065573103440907, y: .08251359032802874 }], bumpers: [{ x: .23350559878489988, y: .9566242706332181, w: .15, h: .04, rotation: 0 }], finishLine: 2.103715846994535 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_1", hooks: [{ x: 1.5746174029574356, y: .5163933383962493 }, { x: .49945351856002296, y: .10437147213461595 }, { x: 1.0874316939890698, y: .2584698682274321 }], bumpers: [{ x: 2.0768389529635733, y: .9347663471359502, w: .15, h: .04, rotation: 0 }, { x: .22148382007369538, y: .9347663471359502, w: .15, h: .04, rotation: 0 }, { x: 1.7863470829797963, y: .9347663471359502, w: .15, h: .04, rotation: 0 }, { x: 1.9325765244714288, y: .9347663471359502, w: .15, h: .04, rotation: 0 }], finishLine: 2.2119125016009216 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_1", hooks: [{ x: 1.3571310474833482, y: .5284151796434743 }], bumpers: [{ x: .32438631451491023, y: .7116449252868131, w: .15, h: .04, rotation: .7853981633974483 }, { x: .9939972728224787, y: .8923757081644387, w: .15, h: .04, rotation: 0 }, { x: .2358314962044159, y: .5992611524195086, w: .15, h: .04, rotation: 1.0471975511965976 }, { x: .4359734801706425, y: .7980225487498659, w: .15, h: .04, rotation: .5235987755982988 }, { x: .5677542027868118, y: .854912937147257, w: .15, h: .04, rotation: .2617993877991494 }, { x: .7083479576962035, y: .8821146428791935, w: .15, h: .04, rotation: .08726646259971647 }, { x: .8513192662700502, y: .8911630874765134, w: .15, h: .04, rotation: .03490658503988659 }, { x: .1793676198230326, y: .46811981654889806, w: .15, h: .04, rotation: 1.3089969389957472 }], finishLine: 2.2119125016009216 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_1", hooks: [{ x: 1.783196921426741, y: .047540956507615 }, { x: .530054686499423, y: .047540956507615 }, { x: 1.161748667232325, y: .047540956507615 }], bumpers: [{ x: .9650992924718618, y: 1.159288644254342, w: .15, h: .04, rotation: .5235987755982988 }, { x: .20990803147219259, y: .7233523253696674, w: .15, h: .04, rotation: .5235987755982988 }, { x: .33559111242682255, y: .7952147874036217, w: .15, h: .04, rotation: .5235987755982988 }, { x: .46018125134684046, y: .8679641388052293, w: .15, h: .04, rotation: .5235987755982988 }, { x: .5869572326454018, y: .939739233757989, w: .15, h: .04, rotation: .5235987755982988 }, { x: .7137331722532827, y: 1.0107496995844418, w: .15, h: .04, rotation: .5235987755982988 }, { x: .8383233528639811, y: 1.0858654724515486, w: .15, h: .04, rotation: .5235987755982988 }], finishLine: 1.99065575438119 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.55847001206028, y: .45191255162973853 }, { x: .7180328786047429, y: .45191255162973853 }], bumpers: [{ x: 1.9537240696241032, y: .842790259562045, w: .15, h: .04, rotation: 0 }, { x: .3586762799839374, y: -.30146714968488547, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: 1.8094618078946805, y: .842790259562045, w: .15, h: .04, rotation: 0 }, { x: 1.317658529206156, y: .842790259562045, w: .15, h: .04, rotation: 0 }, { x: 1.1733962674767333, y: .842790259562045, w: .15, h: .04, rotation: 0 }, { x: .23296554114945256, y: .6780583677089722, w: .15, h: .04, rotation: .7853981633974483 }, { x: .3586762799839374, y: -.15611191465284016, w: .15, h: .04, rotation: 1.5707963267948966 }], obstacles: [{ name: "A_Wall45", x: .4596986899563314, y: -.04731602051639594, rotation: .7853981633974483 }, { name: "A_Wall45", x: .37563755458515236, y: .11472022640281188, rotation: .7853981633974483 }, { name: "A_Wall45", x: .37563755458515236, y: .040371368989500445, rotation: .7853981633974483 }, { name: "A_Wall45", x: .37563755458515236, y: .18772075651059317, rotation: .7853981633974483 }, { name: "A_Wall45", x: .37563755458515236, y: .4808439385682698, rotation: .7853981633974483 }, { name: "A_Wall45", x: .37563755458515236, y: .40649508115495847, rotation: .7853981633974483 }, { name: "A_Wall45", x: .37563755458515236, y: .3343027189060036, rotation: .7853981633974483 }, { name: "A_Wall45", x: .37563755458515236, y: .2609538614926923, rotation: .7853981633974483 }], finishLine: 2.3311476577175116 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_1", hooks: [{ x: 1.7822677595628411, y: .3590163142303298 }, { x: .5628415300546444, y: .3590163142303298 }, { x: 1.1912568306010927, y: .3590163142303298 }], bumpers: [{ x: .2488061410639193, y: .607990374175525, w: .15, h: .04, rotation: 0 }], finishLine: 2.103715846994535 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.3886462882096064, y: .2106986899563318 }, { x: .43122270742358054, y: .2106986899563318 }, { x: .7543668122270739, y: .2106986899563318 }, { x: 1.0611353711790388, y: .2106986899563318 }], bumpers: [{ x: 1.5906113537117903, y: .9104803493449781, w: .15, h: .04, rotation: 0 }, { x: .2751091703056767, y: .9104803493449781, w: .15, h: .04, rotation: 0 }, { x: .6113537117903928, y: .9104803493449781, w: .15, h: .04, rotation: 0 }, { x: .9388646288209603, y: .9104803493449781, w: .15, h: .04, rotation: 0 }, { x: 1.2707423580786024, y: .9104803493449781, w: .15, h: .04, rotation: 0 }], obstacles: [{ name: "A_WallCircleChelou", x: 1.4223973799126628, y: .8766375545851527, rotation: 0 }, { name: "A_WallCircleChelou", x: 1.095978165938864, y: .8766375545851527, rotation: 0 }, { name: "A_WallCircleChelou", x: .44432314410480317, y: .8766375545851527, rotation: 0 }, { name: "A_WallCircleChelou", x: .7696506550218332, y: .8766375545851527, rotation: 0 }, { name: "A_WallCircleChelou", x: 1.2313493449781652, y: .06768558951965062, rotation: 0 }, { name: "A_WallCircleChelou", x: .9049301310043663, y: .06768558951965062, rotation: 0 }, { name: "A_WallCircleChelou", x: .2532751091703054, y: .06768558951965062, rotation: 0 }, { name: "A_WallCircleChelou", x: .5786026200873359, y: .06768558951965062, rotation: 0 }], finishLine: 1.7085152838427946 } }, function(t) { t.exports = { spawnPoint: { x: .23579235806491203, y: .08743169190453702 }, background: "background_1", hooks: [{ x: 1.6828141409451836, y: .453995514554149 }, { x: 1.066666733371755, y: .453995514554149 }], bumpers: [{ x: .6804866412547027, y: .9998125080851676, w: .15, h: .04, rotation: .2617993877991494 }, { x: .627687315106686, y: .9040718468743079, w: .15, h: .04, rotation: 1.8325957145940461 }, { x: .23567782721114697, y: .2348351274325184, w: .15, h: .04, rotation: .2617993877991494 }, { x: .2954468404266035, y: .32888363110443014, w: .15, h: .04, rotation: 1.8325957145940461 }, { x: .35589642729145987, y: .42350962228821304, w: .15, h: .04, rotation: .2617993877991494 }, { x: .41566544050691645, y: .5175581259601248, w: .15, h: .04, rotation: 1.8325957145940461 }, { x: .46627896596707036, y: .6189186811943879, w: .15, h: .04, rotation: .2617993877991494 }, { x: .526047979182527, y: .7129671848662996, w: .15, h: .04, rotation: 1.8325957145940461 }, { x: .8181915009205368, y: 1.0362113535344575, w: .15, h: .04, rotation: .2617993877991494 }, { x: .5679183018912294, y: .810023343202396, w: .15, h: .04, rotation: .2617993877991494 }], obstacles: [], finishLine: 1.9454189037630942 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.5868852959304554, y: .09672131564447782 }, { x: 2.1825137946123627, y: .09672131564447782 }], bumpers: [{ x: .4606818442009179, y: .6170269367094467, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .6755884294331038, y: .7448154847646485, w: .15, h: .04, rotation: .7853981633974483 }, { x: .4606818442009179, y: .2832186477011458, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .6755884294331038, y: .11407536208468781, w: .15, h: .04, rotation: .7853981633974483 }, { x: .244987340705997, y: .46296138185887514, w: .15, h: .04, rotation: .7853981633974483 }, { x: .244987340705997, y: .7846351050958817, w: .15, h: .04, rotation: .7853981633974483 }, { x: .6755884294331038, y: .4357490853216945, w: .15, h: .04, rotation: .7853981633974483 }], finishLine: 2.49844270633218 } }, function(t) { t.exports = { spawnPoint: { x: .24125682851655883, y: .35628412382198804 }, background: "background_0", hooks: [{ x: 2.1706559211439105, y: .30109292952740757 }, { x: 1.2721312475986166, y: .30109292952740757 }], bumpers: [{ x: .22630147409514306, y: .8320289842261154, w: .15, h: .04, rotation: .5235987755982988 }], finishLine: 2.779071255042904 } }, function(t) { t.exports = { spawnPoint: { x: .264207652357758, y: .3322404621728781 }, background: "background_0", hooks: [{ x: 2.180655804410007, y: .09672130522180754 }, { x: 1.2721312475986166, y: .30109292952740757 }], bumpers: [{ x: .23846446937977211, y: .8991260508466576, w: .15, h: .04, rotation: .4363323129985824 }, { x: .37465709920914403, y: .45447255162973993, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { force: 1, angle: 3.9269908169872414 } }, { x: .37465709920914403, y: .777969886094391, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { force: 1, angle: 3.9269908169872414 } }, { x: .37465709920914403, y: .6140354598648826, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { force: 1, angle: 3.9269908169872414 } }, { x: .639718503297899, y: .05960684160662395, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .16195499977653766, y: .7149264597007877, w: .15, h: .04, rotation: 1.5707963267948966, bounce: { force: 1, angle: -.7853981633974483 } }, { x: .16195499977653766, y: .5509920334712795, w: .15, h: .04, rotation: 1.5707963267948966, bounce: { force: 1, angle: -.7853981633974483 } }, { x: .16195499977653766, y: .3968936582238035, w: .15, h: .04, rotation: 1.5707963267948966, bounce: { force: 1, angle: -.7853981633974483 } }, { x: .21691380505972252, y: .2388895096410333, w: .15, h: .04, rotation: 2.356194490192345 }, { x: .33276080376430967, y: .12189935147668328, w: .15, h: .04, rotation: 2.356194490192345 }, { x: 1.2673854469107533, y: .7641121676144044, w: .15, h: .04, rotation: 0 }, { x: .4801556784441166, y: .06069972110521514, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .4095327510917026, y: .777969886094391, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: .4095327510917026, y: .45447255162973993, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: .4095327510917026, y: .6140354598648826, w: .15, h: .04, rotation: 1.5707963267948966 }], finishLine: 2.779071255042904 } }, function(t) { t.exports = { spawnPoint: { x: .264207652357758, y: .3322404621728781 }, background: "background_0", hooks: [{ x: 2.299781420765026, y: .510081903634827 }, { x: 1.6134426729796365, y: .510081903634827 }], bumpers: [{ x: 1.6134548467117054, y: .10827038147139513, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .23846446937977211, y: .8991260508466576, w: .15, h: .04, rotation: .4363323129985824 }, { x: 1.6134548467117054, y: .3989807160407736, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: 1.6134548467117054, y: .2536255539674193, w: .15, h: .04, rotation: -1.5707963267948966 }], finishLine: 2.779071255042904 } }, function(t) { t.exports = { spawnPoint: { x: .264207652357758, y: .3322404621728781 }, background: "background_0", hooks: [{ x: .65606555709422, y: .10024583806105605 }, { x: .65606555709422, y: .8281146738438007 }, { x: .65606555709422, y: .7013387342359196 }, { x: .65606555709422, y: .5865846358752638 }, { x: .65606555709422, y: .46308737645383696 }, { x: .65606555709422, y: .3428687972188644 }, { x: .65606555709422, y: .22155735933064072 }], bumpers: [{ x: .24552746087746521, y: .9018269550367205, w: .15, h: .04, rotation: 0 }], finishLine: 1.4085794142426031 } }, function(t) { t.exports = { spawnPoint: { x: .264207652357758, y: .3322404621728781 }, background: "background_0", hooks: [{ x: 1.6309289534104994, y: .291502679084819 }, { x: .5128961748633882, y: .09150265615494477 }, { x: .7085245651495264, y: .291502679084819 }, { x: 1.1893988820894181, y: .291502679084819 }], bumpers: [{ x: .24552746087746521, y: .9018269550367205, w: .15, h: .04, rotation: 0 }], finishLine: 1.9230057104558884 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.7901639677787733, y: .3240437325232667 }, { x: 1.5781420931790042, y: .3240437325232667 }, { x: 2.2393442789713536, y: .3240437325232667 }], bumpers: [{ x: 1.3165657330889255, y: .9131527710978581, w: .15, h: .04, rotation: 0 }, { x: .8384300178547014, y: .6586401528520804, w: .15, h: .04, rotation: .7853981633974483 }, { x: .9433480339653145, y: .761391835738583, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.0471731705773362, y: .8619479842053466, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.173396267476733, y: .9131527710978581, w: .15, h: .04, rotation: 0 }, { x: .23952292236770087, y: .3508845968207471, w: .15, h: .04, rotation: .7853981633974483 }, { x: .3444409384783139, y: .45363627970724973, w: .15, h: .04, rotation: .7853981633974483 }, { x: .4482660750903357, y: .5541924281740132, w: .15, h: .04, rotation: .7853981633974483 }, { x: .5723033713018697, y: .6071418004454291, w: .15, h: .04, rotation: 0 }, { x: .7154728369140622, y: .6071418004454291, w: .15, h: .04, rotation: 0 }], finishLine: 3.1156010762199013 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.4404371501318087, y: .30546453611446844 }, { x: .5366120051816506, y: .30546453611446844 }], bumpers: [{ x: 1.1823073891094595, y: .8031065158347882, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .6773892646030774, y: .09163105492763887, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .2214836741563138, y: .8617865174691013, w: .15, h: .04, rotation: 0 }, { x: .6773892646030774, y: .8031065158347882, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .6773892646030774, y: .3867130481974288, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .6773892646030774, y: .24135784443339403, w: .15, h: .04, rotation: -1.5707963267948966 }], obstacles: [], finishLine: 1.6172403537771076 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 3.059016285046853, y: .6081966129157059 }, { x: 1.4950820005656584, y: .4551912735068731 }, { x: 2.4928961164964347, y: .5021857589971823 }], bumpers: [{ x: .8294509042234234, y: .7297835959182594, w: .15, h: .04, rotation: .17453292519943295 }, { x: .2165720568358208, y: .4099559505824018, w: .15, h: .04, rotation: .7853981633974483 }, { x: .321490093791774, y: .5110635507833469, w: .15, h: .04, rotation: .7853981633974483 }, { x: .42750103109165877, y: .6129834585951947, w: .15, h: .04, rotation: .7853981633974483 }, { x: .5507623796332597, y: .6781754784699264, w: .15, h: .04, rotation: .17453292519943295 }, { x: .6895601604883655, y: .7035941812796099, w: .15, h: .04, rotation: .17453292519943295 }, { x: 2.1065384356989627, y: .9675531906911714, w: .15, h: .04, rotation: 0 }, { x: 1.819106708357347, y: .9675531906911714, w: .15, h: .04, rotation: 0 }, { x: 1.9622760905881786, y: .9675531906911714, w: .15, h: .04, rotation: 0 }], finishLine: 3.4701640845126764 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.1071037334171139, y: .44863374637124287 }, { x: .3759562174479159, y: .3655738205206197 }, { x: 1.9169398656959733, y: .35245897470276205 }], bumpers: [{ x: 2.0574674078702655, y: .8221979660817963, w: .15, h: .04, rotation: 0 }, { x: 1.7700356805286506, y: .8221979660817963, w: .15, h: .04, rotation: 0 }, { x: 1.9144658194486686, y: .4753195190663161, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: 1.9132050627594823, y: .8221979660817963, w: .15, h: .04, rotation: 0 }, { x: 1.9144658194486686, y: .7354288420363467, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: 1.9144658194486686, y: .6053741805513314, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: .5197624814993439, y: .8462417319576072, w: .15, h: .04, rotation: 0 }, { x: .2323307541577277, y: .8462417319576072, w: .15, h: .04, rotation: 0, bounce: { bounce: 1 } }, { x: .37676089307774585, y: .49936328494212695, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: .3755001363885595, y: .8462417319576072, w: .15, h: .04, rotation: 0 }, { x: .37676089307774585, y: .7594726079121576, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: .37676089307774585, y: .6294179464271423, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: 1.2530958398470853, y: .38285369544857817, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.3 } }, { x: .9656641125054691, y: .38285369544857817, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.3 } }, { x: 1.1100942514254872, y: .0359752484330979, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: 1.108833494736301, y: .38285369544857817, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.3 } }, { x: 1.1100942514254872, y: .29608457140312855, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: 1.1100942514254872, y: .16602990991811323, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }], obstacles: [], finishLine: 2.2177051264861865 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 3.4229506195568637, y: .6551911400966957 }, { x: 3.099453368473573, y: .6551911400966957 }, { x: 2.7672129980201925, y: .3830600175701204 }, { x: 2.4437157469369017, y: .3830600175701204 }], bumpers: [{ x: 1.2920162110162874, y: .856190822713968, w: .15, h: .04, rotation: .4363323129985824 }, { x: .23518570581195705, y: .3561091504547458, w: .15, h: .04, rotation: .4363323129985824 }, { x: .3575900648894523, y: .41268021160496327, w: .15, h: .04, rotation: .4363323129985824 }, { x: .4789015236230162, y: .4702190812143976, w: .15, h: .04, rotation: .4363323129985824 }, { x: .596934302170126, y: .5257593431009675, w: .15, h: .04, rotation: .4363323129985824 }, { x: .7127813217200534, y: .5800285665113516, w: .15, h: .04, rotation: .4363323129985824 }, { x: .827535420080709, y: .6356503409559483, w: .15, h: .04, rotation: .4363323129985824 }, { x: .9422895184413645, y: .6896144981012875, w: .15, h: .04, rotation: .4363323129985824 }, { x: 1.0581364963006115, y: .7453445498887772, w: .15, h: .04, rotation: .4363323129985824 }, { x: 1.173983474159858, y: .8001798097459317, w: .15, h: .04, rotation: .4363323129985824 }, { x: 3.32599183752508, y: .6560778225457861, w: .15, h: .04, rotation: 0 }, { x: 3.195937176040065, y: .6560778225457862, w: .15, h: .04, rotation: 0 }, { x: 1.5664291210670676, y: .8866789404563694, w: .15, h: .04, rotation: 0 }, { x: 1.4243526183348272, y: .8866789404563694, w: .15, h: .04, rotation: 0 }, { x: 2.670254215988409, y: .3839467000192109, w: .15, h: .04, rotation: 0 }, { x: 2.5401995545033937, y: .38394670001921094, w: .15, h: .04, rotation: 0 }], finishLine: 3.66918041125021 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.3455196506550218, y: .6573886462882096 }, { x: .5365676855895195, y: .6595720524017468 }, { x: .9219388646288208, y: .23599126637554585 }, { x: 1.9255021834061135, y: .48362445414847155 }], bumpers: [{ x: .2532751091703054, y: .7849344978165939, w: .15, h: .04, rotation: 0, bounce: { force: 1 } }, { x: 1.9255021834061135, y: .872270742358079, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: 1.9255021834061135, y: .5829694323144109, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: 1.9255021834061135, y: .725982532751092, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }], obstacles: [{ name: "A_WallCurve", x: 1.2707423580786021, y: .7315938864628824, rotation: -1.5707963267948966 }, { name: "A_WallCurve", x: 1.2707423580786021, y: .588655021834061, rotation: 0 }, { name: "A_WallCurve", x: 1.4161834061135363, y: .7315938864628824, rotation: 3.141592653589793 }, { name: "A_WallCurve", x: 1.4161834061135363, y: .588655021834061, rotation: 1.5707963267948966 }, { name: "A_WallCurve", x: .46179039301310004, y: .7337772925764195, rotation: -1.5707963267948966 }, { name: "A_WallCurve", x: .46179039301310004, y: .5908384279475982, rotation: 0 }, { name: "A_WallCurve", x: .6072314410480342, y: .7337772925764195, rotation: 3.141592653589793 }, { name: "A_WallCurve", x: .6072314410480342, y: .5908384279475982, rotation: 1.5707963267948966 }, { name: "A_WallCurve", x: .8471615720524014, y: .31019650655021863, rotation: -1.5707963267948966 }, { name: "A_WallCurve", x: .8471615720524014, y: .1672576419213973, rotation: 0 }, { name: "A_WallCurve", x: .9926026200873355, y: .31019650655021863, rotation: 3.141592653589793 }, { name: "A_WallCurve", x: .9926026200873355, y: .1672576419213973, rotation: 1.5707963267948966 }], finishLine: 2.1484716157205237 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.7836064823338234, y: .4683060411547049 }, { x: .6819671881003451, y: .25737706689886686 }, { x: .6775955450339387, y: .6759563560694292 }, { x: 1.297267601138255, y: .4661202404668421 }], bumpers: [{ x: 1.6867129054068462, y: .46632666681508605, w: .15, h: .04, rotation: 3.141592653589793, bounce: { bounce: 1.5 } }, { x: .6817608659788031, y: .0194999240629276, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: .2171120727805879, y: .969983255456849, w: .15, h: .04, rotation: 0, bounce: { bounce: 1 } }, { x: .6773892646030774, y: .911303253822536, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: .6773892646030774, y: .7703196045322115, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: .6817608659788031, y: .16157649975385924, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: 1.3938167805722752, y: .46632666681508605, w: .15, h: .04, rotation: 3.141592653589793, bounce: { bounce: 1.5 } }, { x: 1.5402648846802411, y: .46632666681508605, w: .15, h: .04, rotation: 3.141592653589793, bounce: { bounce: 1.5 } }], obstacles: [], finishLine: 1.9013933592415884 } }, function(t) { t.exports = { spawnPoint: { x: .26637554585152834, y: .06244541484716157 }, background: "background_0", hooks: [{ x: 1.8689956331877724, y: .2991266375545851 }, { x: .5906113537117901, y: .14410480349344967 }, { x: 1.3744541484716153, y: .3013100436681222 }], bumpers: [{ x: .2685589519650653, y: .4061135371179037, w: .15, h: .04, rotation: 0 }], obstacles: [{ name: "A_Wall45", x: 1.2279737991266346, y: .7176546976375175, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .8666288209606979, y: .6525782852262147, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.0023231441048033, y: .1402580502518178, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9293624454148471, y: .1274223473444968, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9395895196506542, y: .6654139881335357, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.061008733624453, y: .28088937736607433, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9153624454148469, y: .2548728373892443, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9883231441048032, y: .2677085402965653, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.0122751091703046, y: .6785948252030447, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.1189694323144086, y: .42027359972168654, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9012707423580782, y: .38101894467797737, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9742314410480345, y: .3938546475852983, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.0469170305676845, y: .4070354846548073, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.0843275109170287, y: .6918329402699239, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.17447161572052, y: .5659405976677667, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .8850873362445408, y: .5138828872369468, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9580480349344971, y: .5267185901442679, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.0307336244541472, y: .5398994272137769, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.1027860262008713, y: .5531375422806559, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.1560131004366783, y: .7046359956570347, rotation: -.6108652381980153 }], finishLine: 2.1083842794759824 } }, function(t) { t.exports = { spawnPoint: { x: .26637554585152834, y: .06244541484716157 }, background: "background_0", hooks: [{ x: 2.5491266375545845, y: .2554585152838427 }, { x: .5906113537117901, y: .14410480349344967 }, { x: 2.0545851528384276, y: .25764192139737985 }], bumpers: [{ x: .2685589519650653, y: .4061135371179037, w: .15, h: .04, rotation: 0 }], obstacles: [{ name: "A_Wall45", x: 1.6271703056768525, y: .5127029726986173, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .8666288209606979, y: .6525782852262147, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.0023231441048033, y: .1402580502518178, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9293624454148471, y: .1274223473444968, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9395895196506542, y: .6654139881335357, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.061008733624453, y: .28088937736607433, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9153624454148469, y: .2548728373892443, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9883231441048032, y: .2677085402965653, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.0747772925764183, y: .15299802217218894, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.1189694323144086, y: .42027359972168654, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9012707423580782, y: .38101894467797737, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9742314410480345, y: .3938546475852983, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.0469170305676845, y: .4070354846548073, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.4091048034934472, y: .4731874720264972, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.1896637554585108, y: .4329738445660136, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .8850873362445408, y: .5138828872369468, rotation: -.6108652381980153 }, { name: "A_Wall45", x: .9580480349344971, y: .5267185901442679, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.0307336244541472, y: .5398994272137769, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.1027860262008713, y: .5531375422806559, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.4807903930130968, y: .485990527413608, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.5527510917030531, y: .499009229394091, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.3361441048034903, y: .45962190056703855, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.1345458515283822, y: .29436974068420846, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.261724890829691, y: .44592815726251245, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.6119781659388617, y: .6456697258003703, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.3939126637554564, y: .6061542251282505, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.17447161572052, y: .5659405976677667, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.465598253275106, y: .6189572805153613, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.5375589519650623, y: .6319759824958441, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.3209519650654995, y: .5925886536687918, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.2465327510917001, y: .5788949103642655, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.2062314410480317, y: .30717279607131925, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.6436375545851496, y: .38696631348790683, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.4255720524017443, y: .34745081281578694, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.4972576419213939, y: .36025386820289773, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.5692183406113502, y: .3732725701833805, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.3526113537117874, y: .33388524135632824, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.278192139737988, y: .32019149805180214, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.1468296943231424, y: .16623613723906816, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.218515283842792, y: .17903919262617896, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.6559213973799098, y: .2588327100427664, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.4378558951965046, y: .2193172093706468, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.5095414847161541, y: .23212026475775757, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.5815021834061105, y: .2451389667382404, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.3648951965065477, y: .20575163791118806, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.2904759825327483, y: .19205789460666178, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.0122751091703046, y: .6785948252030447, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.0843275109170287, y: .6918329402699239, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.1560131004366783, y: .7046359956570347, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.5934192139737962, y: .7844295130736223, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.375353711790391, y: .7449140124015025, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.4470393013100404, y: .7577170677886133, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.5189999999999968, y: .7707357697690961, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.302393013100434, y: .7313484409420438, rotation: -.6108652381980153 }, { name: "A_Wall45", x: 1.2279737991266346, y: .7176546976375175, rotation: -.6108652381980153 }], finishLine: 2.9148034934497815 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .6294866382704326, y: .03980154321272183 }, { x: 1.594911301443456, y: .03980154321272183 }], bumpers: [{ x: .24005795927603094, y: .5230056890600311, w: .15, h: .04, rotation: 0 }, { x: 1.4937751138695503, y: .40376555608586506, w: .15, h: .04, rotation: .9948376736367679 }, { x: 1.3991587333189033, y: .40517329191617363, w: .15, h: .04, rotation: -.9948376736367679 }, { x: 1.4455038513717966, y: .47662669258919965, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .859635380748586, y: .8736483647785245, w: .15, h: .04, rotation: .9948376736367679 }, { x: .7650190001979389, y: .8750561006088331, w: .15, h: .04, rotation: -.9948376736367679 }, { x: .8113641182508325, y: .9465095012818594, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.4795616550845716, y: .8679560466665595, w: .15, h: .04, rotation: .9948376736367679 }, { x: 1.3849452745339246, y: .8693637824968681, w: .15, h: .04, rotation: -.9948376736367679 }, { x: 1.431290392586818, y: .9408171831698943, w: .15, h: .04, rotation: 3.141592653589793 }], finishLine: 1.9013933592415884 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.615074467395065, y: -.10571284370375421 }, { x: 1.6117944095700727, y: .43439926579136423 }], bumpers: [{ x: .4543738931980575, y: .6515486925473084, w: .15, h: .04, rotation: .3490658503988659 }, { x: .19612713407134108, y: .03450943241009647, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: .19612713407134108, y: .17992421884861026, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: .21015859431793954, y: .32346839147730083, w: .15, h: .04, rotation: 1.3962634015954636 }, { x: .25242478411070157, y: .46159703223151255, w: .15, h: .04, rotation: 1.1344640137963142 }, { x: .3349527954173825, y: .5759874733346747, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.5042733474472454, y: .9972098557751765, w: .15, h: .04, rotation: 0 }, { x: .5916491858149251, y: .6880716568864463, w: .15, h: .04, rotation: .17453292519943295 }, { x: .7277100433076056, y: .7256570143716721, w: .15, h: .04, rotation: .3490658503988659 }, { x: .8530318411377604, y: .7898616803012329, w: .15, h: .04, rotation: .6108652381980153 }, { x: .9667729505083346, y: .8771312990448188, w: .15, h: .04, rotation: .6981317007977318 }, { x: 1.0850194505932327, y: .9543058137663359, w: .15, h: .04, rotation: .4363323129985824 }, { x: 1.2196007142009255, y: .9925051964816447, w: .15, h: .04, rotation: .08726646259971647 }, { x: 1.3610452318164796, y: .9983032334081714, w: .15, h: .04, rotation: 0 }, { x: 1.6126400368523226, y: .04554218824473371, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: 1.6126400368523226, y: .3352783834887662, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: 1.6126400368523226, y: .18877032264399757, w: .15, h: .04, rotation: -1.5707963267948966 }], finishLine: 2.5036989286640923 } }, function(t) { t.exports = { spawnPoint: { x: .17358078602620086, y: .043886462882096036 }, background: "background_0", hooks: [{ x: 1.2019650655021827, y: .14737991266375539 }], bumpers: [{ x: .5294759825327517, y: .771153473704679, w: .15, h: .04, rotation: .4363323129985824 }, { x: .4028384279475982, y: .7114625891244315, w: .15, h: .04, rotation: .4363323129985824 }], obstacles: [{ name: "A_Wall45", x: .325685589519651, y: .6417294031588363, rotation: .4363323129985824 }, { name: "A_Wall45", x: .1797641921397375, y: .2410681369792534, rotation: .4363323129985824 }, { name: "A_Wall45", x: .30148471615720485, y: .5747452946868141, rotation: .4363323129985824 }, { name: "A_Wall45", x: .15538864628820914, y: .17545699955699756, rotation: .4363323129985824 }, { name: "A_Wall45", x: .10589519650654988, y: .0401110486035654, rotation: .4363323129985824 }, { name: "A_Wall45", x: .13118777292576378, y: .1084728910849751, rotation: .4363323129985824 }, { name: "A_Wall45", x: .22925764192139741, y: .37641408793268566, rotation: .4363323129985824 }, { name: "A_Wall45", x: .20505676855895155, y: .3094299794606637, rotation: .4363323129985824 }, { name: "A_Wall45", x: .4001965065502184, y: .5020410807217699, rotation: .4363323129985824 }, { name: "A_Wall45", x: .3031266375545847, y: .23560894871505916, rotation: .4363323129985824 }, { name: "A_Wall45", x: .3759956331877725, y: .43505697224974726, rotation: .4363323129985824 }, { name: "A_Wall45", x: .27875109170305634, y: .16999781129280334, rotation: .4363323129985824 }, { name: "A_Wall45", x: .22925764192139708, y: .03465186033937118, rotation: .4363323129985824 }, { name: "A_Wall45", x: .254550218340611, y: .10301370282078087, rotation: .4363323129985824 }, { name: "A_Wall45", x: .3526200873362446, y: .37095489966849116, rotation: .4363323129985824 }, { name: "A_Wall45", x: .3284192139737987, y: .30397079119646897, rotation: .4363323129985824 }, { name: "A_Wall45", x: .2768340611353714, y: .5075002689859645, rotation: .4363323129985824 }, { name: "A_Wall45", x: .25263318777292537, y: .44051616051394205, rotation: .4363323129985824 }], finishLine: 1.784934497816593 } }, function(t) { t.exports = { spawnPoint: { x: .22925764192139725, y: .03834497816593885 }, background: "background_0", hooks: [{ x: 1.4235807860262002, y: .14628820960698663 }], bumpers: [{ x: .33508733624454146, y: .780104125045365, w: .15, h: .04, rotation: .7853981633974483, bounce: { force: 1.5, angle: -.4363323129985824 } }], obstacles: [{ name: "A_Wall45", x: .33524454148471494, y: .5610858550435991, rotation: 1.7453292519943295 }, { name: "A_Wall45", x: .503366812227074, y: .23501722057338192, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .5677772925764188, y: .2723288121025308, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .6311877729257639, y: .30896419687780047, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .4399563318777291, y: .19831038457147387, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .12117903930130983, y: .014265883731005513, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .31141048034934454, y: .12458299817360582, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .37482096069868964, y: .1612183829488754, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .7614672489082969, y: .303609005258436, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .4554235807860255, y: .4759612766147669, rotation: 1.7453292519943295 }, { name: "A_Wall45", x: .39401310043668025, y: .5194660272267495, rotation: 1.7453292519943295 }, { name: "A_Wall45", x: .6330960698689952, y: .34969636839188595, rotation: 1.7453292519943295 }, { name: "A_Wall45", x: .57168558951965, y: .39320111900386884, rotation: 1.7453292519943295 }, { name: "A_Wall45", x: .5129170305676847, y: .4348209468207183, rotation: 1.7453292519943295 }, { name: "A_Wall45", x: .5705109170305676, y: .19354787513539096, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .6349213973799124, y: .23085946666453983, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .6983318777292574, y: .2674948514398095, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .5071004366812226, y: .1568410391334829, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .25064192139737973, y: .008536190369901428, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .37855458515283813, y: .08311365273561486, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .4439650655021832, y: .12072688531485648, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .46561572052401656, y: .555505295371745, rotation: 1.7453292519943295 }, { name: "A_Wall45", x: .5857947598253271, y: .4703807169429124, rotation: 1.7453292519943295 }, { name: "A_Wall45", x: .5243842794759819, y: .5138854675548954, rotation: 1.7453292519943295 }, { name: "A_Wall45", x: .7020567685589516, y: .38762055933201495, rotation: 1.7453292519943295 }, { name: "A_Wall45", x: .6432882096069863, y: .4292403871488644, rotation: 1.7453292519943295 }, { name: "A_Wall45", x: .7634672489082969, y: .34411580872003206, rotation: 1.7453292519943295 }, { name: "A_Wall45", x: .3058689956331879, y: .6226038445085056, rotation: .7853981633974483 }, { name: "A_Wall45", x: .24699999999999972, y: .08727140664445693, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .31614410480349325, y: .04680206120646604, rotation: -.2617993877991494 }, { name: "A_Wall45", x: .18477292576419188, y: .05110076008048267, rotation: -.2617993877991494 }], finishLine: 1.9892576419213965 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.1291801919972344, y: .12856349065493497 }, { x: .729465686380497, y: .12856349065493497 }, { x: 1.4565395153463259, y: .12856349065493497 }], bumpers: [{ x: .08695925151042384, y: .17290334162574303, w: .15, h: .04, rotation: 1.2217304763960306 }, { x: .13834642370734113, y: .31010745196630674, w: .15, h: .04, rotation: 1.2217304763960306 }, { x: .18973363344125488, y: .4449753842233706, w: .15, h: .04, rotation: 1.2217304763960306 }, { x: 1.4761645694789685, y: .9142075752890791, w: .15, h: .04, rotation: 1.9198621771937625 }, { x: .3393262684123659, y: .6899820434236297, w: .15, h: .04, rotation: .7853981633974483 }, { x: .4529260420572367, y: .7756997548931718, w: .15, h: .04, rotation: .5235987755982988 }, { x: 1.3760632727505442, y: .6937602043402668, w: .15, h: .04, rotation: .3490658503988659 }, { x: .7195705776387062, y: .8741353059219965, w: .15, h: .04, rotation: .17453292519943295 }, { x: .8661828568018374, y: .8790476679146653, w: .15, h: .04, rotation: -.08726646259971647 }, { x: 1.2402818627411334, y: .6949116697393136, w: .15, h: .04, rotation: -.3490658503988659 }, { x: 1.122544532982965, y: .7705628391167949, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.0063062563835072, y: .8495400460891467, w: .15, h: .04, rotation: -.3490658503988659 }, { x: .3393262684123659, y: .6899820434236297, w: .15, h: .04, rotation: .7853981633974483 }, { x: .4529260420572367, y: .7756997548931718, w: .15, h: .04, rotation: .5235987755982988 }, { x: .5822952850218388, y: .8367741978968822, w: .15, h: .04, rotation: .3490658503988659 }, { x: .25401616284484896, y: .5738063487216031, w: .15, h: .04, rotation: 1.0471975511965976 }, { x: 1.4747839850891855, y: .7821809533089547, w: .15, h: .04, rotation: 1.1344640137963142 }], obstacles: [], finishLine: 2.1984223260445495 } }, function(t, e, n) { var r = { "./MIDDLE000.json": 208, "./MIDDLE001.json": 209, "./MIDDLE002.json": 210, "./MIDDLE003.json": 211, "./MIDDLE004.json": 212, "./MIDDLE005.json": 213, "./MIDDLE006.json": 214, "./MIDDLE007.json": 215, "./MIDDLE008.json": 216, "./MIDDLE009.json": 217, "./MIDDLE010.json": 218, "./MIDDLE011.json": 219, "./MIDDLE012.json": 220, "./MIDDLE013.json": 221, "./MIDDLE014.json": 222, "./MIDDLE015.json": 223, "./MIDDLE016.json": 224, "./MIDDLE017.json": 225, "./MIDDLE018.json": 226, "./MIDDLE019.json": 227, "./MIDDLE020.json": 228, "./MIDDLE021.json": 229, "./MIDDLE022.json": 230, "./MIDDLE024.json": 231, "./MIDDLE025.json": 232, "./MIDDLE026.json": 233, "./MIDDLE027.json": 234, "./MIDDLE028.json": 235, "./MIDDLE029.json": 236, "./MIDDLE030.json": 237, "./MIDDLE033.json": 238, "./MIDDLE034.json": 239, "./MIDDLE035.json": 240, "./MIDDLE036.json": 241, "./MIDDLE037.json": 242, "./MIDDLE038.json": 243, "./MIDDLE039.json": 244, "./MIDDLE040.json": 245, "./MIDDLE041.json": 246, "./MIDDLE042.json": 247, "./MIDDLE043.json": 248, "./MIDDLE044.json": 249, "./MIDDLE045.json": 250 }; function i(t) { var e = o(t); return n(e) } function o(t) { if (!n.o(r, t)) { var e = new Error("Cannot find module '" + t + "'"); throw e.code = "MODULE_NOT_FOUND", e } return r[t] } i.keys = function() { return Object.keys(r) }, i.resolve = o, t.exports = i, i.id = 207 }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.612021920459516, y: .23224045800381005 }, { x: .4185791849438606, y: .24098363990992133 }, { x: .8754098819253219, y: .08251362680737427 }, { x: 1.3704917991096202, y: .24098363990992133 }, { x: 1.930054774049852, y: .24098363990992133 }], bumpers: [{ x: 1.315326786354264, y: .637346410398011, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 2.219844471642333, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: 1.4367842706332181, y: .5839467333717552, w: .15, h: .04, rotation: 0 }, { x: 1.5821395369332736, y: .5839467333717552, w: .15, h: .04, rotation: 0 }, { x: 1.7242159562841528, y: .5839467333717552, w: .15, h: .04, rotation: 0 }, { x: 2.0963537485902712, y: .7353133822021279, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.2147802882380159, y: .7376127195396985, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.0903362999354291, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: 2.6515384190226903, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: 2.5094619996718115, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: 2.3641067333717563, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: 1.8684783847762976, y: .5839467333717552, w: .15, h: .04, rotation: 0 }, { x: 1.9947143709754322, y: .6344023156807309, w: .15, h: .04, rotation: .7853981633974483 }, { x: .5143799240629268, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: .6586421857923496, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: .8039974520924049, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: .9460738714432844, y: .7872253635293927, w: .15, h: .04, rotation: 0 }], finishLine: 2.8580327702089736 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.302486468038921, y: .24098363990992133 }, { x: .4185791849438606, y: .24098363990992133 }, { x: 1.0666666291450537, y: .24098363990992133 }, { x: 1.66885257158123, y: .24098363990992133 }], bumpers: [{ x: 2.219844471642333, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: 2.6515384190226903, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: 2.5094619996718115, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: 2.3641067333717563, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: .5143799240629268, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: .6586421857923496, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: .8039974520924049, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: .9460738714432844, y: .7872253635293927, w: .15, h: .04, rotation: 0 }], finishLine: 2.8580327702089736 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .07257918494386029, y: .24098363990992133 }, { x: .7206666291450607, y: .24098363990992133 }], bumpers: [{ x: .16837992406292646, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: .31264218579234926, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: .4579974520924046, y: .7872253635293927, w: .15, h: .04, rotation: 0 }, { x: .6000738714432841, y: .7872253635293927, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: .909816427562858 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .4393442289425371, y: .06502735158784781 }, { x: 1.0349726233977432, y: .06502735158784781 }], bumpers: [{ x: .5121941650657443, y: .8374985708968362, w: .15, h: .04, rotation: 0 }, { x: .6564564267951671, y: .8374985708968362, w: .15, h: .04, rotation: 0 }, { x: .8018116930952225, y: .8374985708968362, w: .15, h: .04, rotation: 0 }, { x: .9438881124461019, y: .8374985708968362, w: .15, h: .04, rotation: 0 }], finishLine: 1.2919124974318537 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .33989067286090074, y: .10765032950646225 }, { x: 1.0207651065346968, y: .10765032950646225 }], bumpers: [{ x: 1.2890972614812706, y: .547796178977993, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.4127405881387685, y: .4921433546255973, w: .15, h: .04, rotation: 0 }, { x: 1.1885507633650225, y: .6480624881196806, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .8641068250912521, y: .8997935778208245, w: .15, h: .04, rotation: 0 }, { x: .4324127109481727, y: .8997935778208245, w: .15, h: .04, rotation: 0 }, { x: .577767977248228, y: .8997935778208245, w: .15, h: .04, rotation: 0 }, { x: .7198443965991075, y: .8997935778208245, w: .15, h: .04, rotation: 0 }, { x: 1.089097311510087, y: .7499146246894428, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .9885508133938389, y: .8501809338311304, w: .15, h: .04, rotation: -.7853981633974483 }], obstacles: [], finishLine: 1.87620961030257 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .176519092330515, y: .108743255907069 }, { x: 1.3863552704691402, y: .25081971173729384 }, { x: 1.0071203311440888, y: .10218581736413491 }], bumpers: [{ x: .8745057321950807, y: .9249302231952268, w: .15, h: .04, rotation: 0 }, { x: .1848881374605102, y: .9249302231952268, w: .15, h: .04, rotation: 0 }, { x: .35538000744428744, y: .4954220348120513, w: .15, h: .04, rotation: 0 }, { x: .5193143502924346, y: .9249302231952268, w: .15, h: .04, rotation: 0 }, { x: .7051068250912517, y: .4954220348120513, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: 1.7023078793792965 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: .22076493143383827, y: .2256831758009278 }, { x: 1.5224044674732624, y: .2256831758009278 }, { x: 1.1322404830182171, y: .2256831758009278 }], bumpers: [{ x: 1.4018117097714944, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .6100147006319812, y: .7532017684547311, w: .15, h: .04, rotation: .7853981633974483 }, { x: .9788608400705469, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: 1.120937217730746, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: 1.2619209243457556, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .27394272390230073, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .3972938743969775, y: .8531776681218489, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .7116540782468205, y: .8533399138691234, w: .15, h: .04, rotation: .7853981633974483 }, { x: .5011190110089992, y: .7531691342154251, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .8345984532690828, y: .9085367805722759, w: .15, h: .04, rotation: 0 }], finishLine: 2.8580327702089736 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: .7027321695630006, y: .06393452941394225 }, { x: 1.4655738997329104, y: .06393452941394225 }, { x: 1.1420765652682596, y: .06393452941394225 }, { x: .22076493143383827, y: .2256831758009278 }], bumpers: [{ x: 1.1648930453935438, y: .5801809937425145, w: .15, h: .04, rotation: -.5235987755982988, bounce: { bounce: 1.3 } }, { x: .4182050690130843, y: .9085367805722759, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.3 } }, { x: 1.2948957478186423, y: .5278464606919282, w: .15, h: .04, rotation: -.2617993877991494, bounce: { bounce: 1.3 } }, { x: .27394272390230073, y: .9085367805722759, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.3 } }, { x: 1.4356912660625853, y: .5107225145550498, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.3 } }, { x: 1.0463047827426255, y: .658411276885837, w: .15, h: .04, rotation: -.6981317007977318, bounce: { bounce: 1.3 } }, { x: .5602815300546445, y: .9085367805722759, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.3 } }, { x: .8304668325616195, y: .8402349725862107, w: .15, h: .04, rotation: -.5235987755982988, bounce: { bounce: 1.3 } }, { x: .700360295398048, y: .8926347846454339, w: .15, h: .04, rotation: -.2617993877991494, bounce: { bounce: 1.3 } }, { x: .9426489989487188, y: .7547749127625837, w: .15, h: .04, rotation: -.7853981633974483, bounce: { bounce: 1.3 } }], obstacles: [], finishLine: 1.859124473265742 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: .7027321695630006, y: .06393452941394225 }, { x: 2.2633881073831836, y: .06393452941394225 }, { x: 1.1420765652682596, y: .06393452941394225 }, { x: .22076493143383827, y: .2256831758009278 }, { x: 1.4655738997329104, y: .06393452941394225 }], bumpers: [{ x: 1.7049903030272746, y: .585960695316951, w: .15, h: .04, rotation: .5235987755982988 }, { x: 2.4450630508773052, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: 1.576661327457288, y: .5314671428598337, w: .15, h: .04, rotation: .2617993877991494 }, { x: 2.300800705766522, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: 1.4356912660625853, y: .5107225145550498, w: .15, h: .04, rotation: 0 }, { x: 1.8164397280371347, y: .6606118837935958, w: .15, h: .04, rotation: .6981317007977318 }, { x: 2.587139511918865, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: 2.032858988723568, y: .8350683533973812, w: .15, h: .04, rotation: .5235987755982988 }, { x: 2.161360989462602, y: .889164346762682, w: .15, h: .04, rotation: .2617993877991494 }, { x: 1.9214902355400878, y: .7526457238528993, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.2948957478186423, y: .5278464606919282, w: .15, h: .04, rotation: -.2617993877991494 }, { x: 1.1648930453935438, y: .5801809937425145, w: .15, h: .04, rotation: -.5235987755982988 }, { x: 1.0463047827426255, y: .658411276885837, w: .15, h: .04, rotation: -.6981317007977318 }, { x: .9426489989487188, y: .7547749127625837, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .8304668325616195, y: .8402349725862107, w: .15, h: .04, rotation: -.5235987755982988 }, { x: .700360295398048, y: .8926347846454339, w: .15, h: .04, rotation: -.2617993877991494 }, { x: .5602815300546445, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .4182050690130843, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .27394272390230073, y: .9085367805722759, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: 2.8580327702089736 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: .7027321695630006, y: .06393452941394225 }, { x: 2.2633881073831836, y: .06393452941394225 }, { x: .22076493143383827, y: .2256831758009278 }, { x: 1.4655738997329104, y: .06393452941394225 }], bumpers: [{ x: 2.4450630508773052, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: 2.300800705766522, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: 2.587139511918865, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .5602815300546445, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .4182050690130843, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .27394272390230073, y: .9085367805722759, w: .15, h: .04, rotation: 0 }], finishLine: 2.8580327702089736 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.0469451754148897, y: .6869619446926893 }, { x: 1.7244087397539023, y: .6858686421336871 }, { x: .5118901251573553, y: .6957084777756958 }, { x: .19591365499836655, y: .6957084777756958 }, { x: .8901872247787422, y: .41143892670616183 }, { x: .5742107546197536, y: .41143892670616183 }, { x: 1.275044364976121, y: .1545029437263369 }, { x: .9590678948171321, y: .1545029437263369 }, { x: 1.6730215863254825, y: .4059721511521758 }, { x: 1.3570451161664936, y: .4059721511521758 }], bumpers: [{ x: 1.9525444384345223, y: .6911217884667128, w: .15, h: .04, rotation: 0 }, { x: 1.8202497613007391, y: .6911217884667128, w: .15, h: .04, rotation: 0 }, { x: .42076922078000095, y: .6987751316017066, w: .15, h: .04, rotation: 0 }, { x: .28847454364621783, y: .6987751316017066, w: .15, h: .04, rotation: 0 }, { x: .799066320401388, y: .4145055805321727, w: .15, h: .04, rotation: 0 }, { x: .666771643267605, y: .4145055805321727, w: .15, h: .04, rotation: 0 }, { x: 1.1839234605987667, y: .15756959755234773, w: .15, h: .04, rotation: 0 }, { x: 1.0516287834649838, y: .15756959755234773, w: .15, h: .04, rotation: 0 }, { x: 1.5819006819481283, y: .4090388049781866, w: .15, h: .04, rotation: 0 }, { x: 1.4496060048143453, y: .4090388049781866, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: 2.2680343191795687 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.0163318591804096, y: .46501307939104813 }, { x: .24183429563177528, y: .2365038919859415 }, { x: .8748806323512462, y: .05610203948261435 }, { x: 2.7980732935381125, y: .04954196606175076 }, { x: 2.9912320873452867, y: .5984007212508652 }, { x: 1.8752906489636194, y: .05610203948261435 }, { x: 2.3924425038317776, y: .04954196606175076 }], bumpers: [{ x: 1.7918229938787684, y: .8726169200684195, w: .15, h: .04, rotation: 0 }, { x: 2.1806956077269763, y: .8769902804524135, w: .15, h: .04, rotation: 0 }, { x: 2.5589927073483634, y: .5927207293828796, w: .15, h: .04, rotation: 0 }, { x: 2.943849847545742, y: .33578474640305506, w: .15, h: .04, rotation: 0 }, { x: 1.4211792373923746, y: .5905339365798933, w: .15, h: .04, rotation: 0 }, { x: .26004777622424713, y: .8802702632034133, w: .15, h: .04, rotation: 0 }, { x: .6383448758456343, y: .5960007121338794, w: .15, h: .04, rotation: 0 }, { x: 1.023202016043013, y: .33906472915405445, w: .15, h: .04, rotation: 0 }], finishLine: 3.3813476051996822 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .7272789311145065, y: .7022687060366699 }, { x: .5140767865808543, y: .5470138118129229 }, { x: .23527399229680793, y: .4497061678990814 }], bumpers: [], finishLine: 1.310509863521487 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .9481345689311387, y: .6082410448738279 }, { x: .5917042712297244, y: .6082410448738279 }, { x: .23527399229680793, y: .4497061678990814 }], bumpers: [], finishLine: 1.310509863521487 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.0028018740270412, y: .8192565092154832 }, { x: .6234112466246737, y: .8192565092154832 }, { x: .2407407115452993, y: .36223862238622395 }], bumpers: [], finishLine: 1.310509863521487 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .739305784781481, y: .5076533055979982 }, { x: .2604209083472676, y: .5076534932829797 }], bumpers: [{ x: .6445979673926625, y: .5096265817910134, w: .15, h: .04, rotation: 0 }, { x: .3548617533801317, y: .5096265817910134, w: .15, h: .04, rotation: 0 }, { x: .49918320910689606, y: .5096265817910134, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: .9109465447441941 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.7484627098468253, y: .5786282170707456 }, { x: .265887627595759, y: .3544927841880958 }, { x: .739305784781481, y: .4266533055979981 }, { x: 1.266297738050623, y: .5786282170707456 }], bumpers: [], obstacles: [], finishLine: 1.9085692608635072 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.2687433124087115, y: .2343172868679379 }, { x: .265887627595759, y: .4354927841880959 }, { x: .9076808352312048, y: .06375554214984364 }, { x: 1.5888343050910985, y: .14138304087508738 }], bumpers: [{ x: 2.2863690116298634, y: .4457063150080713, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 2 } }, { x: .6328780627546512, y: .9305641328413283, w: .15, h: .04, rotation: 0 }, { x: .49292992987488476, y: .9305641328413283, w: .15, h: .04, rotation: 0 }, { x: .3529819096061078, y: .9305641328413283, w: .15, h: .04, rotation: 0 }, { x: .7728260830234281, y: .9305641328413283, w: .15, h: .04, rotation: 0 }, { x: 2.2863690116298634, y: .8764839269223743, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 2 } }, { x: 2.2863690116298634, y: .7332558112916082, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 2 } }, { x: 2.2863690116298634, y: .5911209606828483, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 2 } }], obstacles: [], finishLine: 2.8109069508907987 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.1842968179437663, y: .35862994467347015 }, { x: .5829573627767537, y: .5193515487614592 }], bumpers: [{ x: 1.184277953182658, y: .45644495150820535, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: 1.184277953182658, y: .7439944477917423, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: 1.184277953182658, y: .6018595971829824, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: .5862186309146306, y: .1339083938519794, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: .5862186309146306, y: .42145789013551627, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: .5862186309146306, y: .2793230395267563, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }], obstacles: [], finishLine: 1.7120959127315891 } }, function(t) { t.exports = { spawnPoint: { x: .19785430706093446, y: .11899405217947662 }, background: "background_0", hooks: [{ x: .557226143887416, y: .679632442235067 }, { x: .5594127490054204, y: .26853504823729263 }], bumpers: [{ x: .5572072791263076, y: .7774474490698022, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .5572072791263076, y: .9228620947445793, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .5626740171432972, y: .17064138961134986, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .5626740171432972, y: .028506539002589898, w: .15, h: .04, rotation: -1.5707963267948966 }], obstacles: [], finishLine: 1.1236679651333357 } }, function(t) { t.exports = { spawnPoint: { x: .42056173064172053, y: .05349186877336309 }, background: "background_0", hooks: [{ x: .21192806785367735, y: .1952809802779119 }, { x: 1.0250695098088791, y: .9617153318811023 }, { x: 1.0250695098088791, y: .7321129920649794 }, { x: 1.0250695098088791, y: .6249652779029014 }, { x: 1.0250695098088791, y: .509070758514592 }, { x: 1.0250695098088791, y: .3888028975107867 }, { x: 1.0250695098088791, y: .27290837812247754 }, { x: 1.0250695098088791, y: .1657606639603995 }, { x: 1.0250695098088791, y: .04986614457209035 }, { x: 1.0250695098088791, y: .8480075114532886 }], bumpers: [], obstacles: [], finishLine: 1.3343666550896671 } }, function(t) { t.exports = { spawnPoint: { x: .42056173064172053, y: .05349186877336309 }, background: "background_0", hooks: [{ x: .28478115180321817, y: .2051211349843907 }, { x: 1.087295822762916, y: .526564343160369 }, { x: .6073177188436933, y: .526564343160369 }, { x: 1.9969582360374392, y: .7255531039830359 }, { x: 1.5169801321182166, y: .7255531039830359 }], bumpers: [{ x: 2.7000852681763146, y: .9097907460913477, w: .15, h: .04, rotation: 0 }, { x: 2.411442356722786, y: .9097907460913477, w: .15, h: .04, rotation: 0 }, { x: 2.5557637749125544, y: .9097907460913477, w: .15, h: .04, rotation: 0 }, { x: .9922814317150987, y: .5271200984009841, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: .7036385202615699, y: .5271200984009841, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: .847959938451338, y: .5271200984009841, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: 1.901943844989622, y: .7261088592236509, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: 1.6133009335360933, y: .7261088592236509, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: 1.7576223517258613, y: .7261088592236509, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }], obstacles: [], finishLine: 2.884545637180006 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.4510727960978347, y: .09983599992402523 }, { x: .2374606161833106, y: .29226458879121275 }, { x: .6933851441480727, y: .09983599992402523 }, { x: 1.0891757603794308, y: .09983599992402523 }], bumpers: [{ x: .3625328746902165, y: .8326422449762166, w: .15, h: .04, rotation: .3490658503988659 }, { x: .9093831915068041, y: .877799270461669, w: .15, h: .04, rotation: -.4363323129985824 }, { x: .2269581960369359, y: .7819568065816301, w: .15, h: .04, rotation: .3490658503988659 }, { x: .49701425078449507, y: .8822220488821731, w: .15, h: .04, rotation: .3490658503988659 }, { x: .633196203305364, y: .9204868557515715, w: .15, h: .04, rotation: .17453292519943295 }, { x: 1.45785001865111, y: .8611205029802318, w: .15, h: .04, rotation: .4363323129985824 }, { x: .7747721442103156, y: .9214553183237318, w: .15, h: .04, rotation: -.17453292519943295 }, { x: 1.0452550242575673, y: .8281758528831594, w: .15, h: .04, rotation: -.2617993877991494 }, { x: 1.1843460071528238, y: .8022694561344446, w: .15, h: .04, rotation: -.08726646259971647 }, { x: 1.3238598469533505, y: .8147926781501473, w: .15, h: .04, rotation: .2617993877991494 }], finishLine: 1.7161405781538286 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.793699783006134, y: .44533278874658866 }, { x: 1.9682247448084833, y: .44533278874658866 }, { x: 2.3782288948988146, y: .44533278874658866 }, { x: 1.3985924527214024, y: .2747710956418647 }, { x: .5731174145237546, y: .2747710956418647 }, { x: .9831215646140838, y: .2747710956418647 }], bumpers: [], finishLine: 2.89747580815652 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.5615007651541388, y: .5284269363384552 }, { x: .7360257269564883, y: .5284269363384552 }, { x: 1.1460298770468196, y: .5284269363384552 }, { x: 1.7276890603378692, y: .8072298620019893 }, { x: .5742107921567495, y: .8072298620019893 }, { x: .9842149422470787, y: .8072298620019893 }, { x: 1.3985924527214024, y: .2747710956418647 }, { x: .5731174145237546, y: .2747710956418647 }, { x: .9831215646140838, y: .2747710956418647 }, { x: 1.3996858303543973, y: .8072298620019893 }], bumpers: [], finishLine: 1.8905057885051515 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .5425038167618006, y: .6596284235242257 }, { x: .9525079668521298, y: .6596284235242257 }, { x: 1.3668854773264534, y: .1271696571641011 }, { x: .5414104391288057, y: .1271696571641011 }, { x: .9514145892191349, y: .1271696571641011 }, { x: 1.3679788549594485, y: .6596284235242257 }], bumpers: [{ x: 2.0170518043944123, y: .9272841500903292, w: .15, h: .04, rotation: 0 }, { x: .7159722103465179, y: .38061200001921913, w: .15, h: .04, rotation: 0 }, { x: 1.151123220181812, y: .38061200001921913, w: .15, h: .04, rotation: 0 }, { x: 1.5665940332151376, y: .38061200001921913, w: .15, h: .04, rotation: 0 }, { x: 1.7295022705738785, y: .9272841500903292, w: .15, h: .04, rotation: 0 }, { x: 1.8727303111306512, y: .9272841500903292, w: .15, h: .04, rotation: 0 }], finishLine: 2.4084830849285064 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .36428866791109327, y: .40378573371915366 }, { x: 2.274360985187001, y: .21901054429245484 }, { x: 1.1974169741697418, y: .4628262865880613 }, { x: 1.7517424673758462, y: .4693863647010495 }], bumpers: [{ x: .46669149485076494, y: .031681856227666484, w: .15, h: .04, rotation: -1.3089969389957472, bounce: { bounce: 1.5 } }, { x: .39125072793088866, y: .3064349826731215, w: .15, h: .04, rotation: -1.3089969389957472, bounce: { bounce: 1.5 } }, { x: .4295178189758226, y: .17174603177254932, w: .15, h: .04, rotation: -1.3089969389957472, bounce: { bounce: 1.5 } }, { x: 1.753715968790842, y: -.05832567923795919, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .2844194176554272, y: .791002391305774, w: .15, h: .04, rotation: .17453292519943295 }, { x: .42546085309419573, y: .8178082426847012, w: .15, h: .04, rotation: .17453292519943295 }, { x: .5643156083409668, y: .8434908117929204, w: .15, h: .04, rotation: .17453292519943295 }, { x: .7031703260507416, y: .8680639998022712, w: .15, h: .04, rotation: .17453292519943295 }, { x: .8273417686384279, y: .8331604437263769, w: .15, h: .04, rotation: -.7853981633974483, bounce: { bounce: 1.5 } }, { x: .9290228104732606, y: .7347721798771547, w: .15, h: .04, rotation: -.7853981633974483, bounce: { bounce: 1.5 } }, { x: 1.0296104746750983, y: .6342846507390785, w: .15, h: .04, rotation: -.7853981633974483, bounce: { bounce: 1.5 } }, { x: 1.1291048363179335, y: .5361601458664785, w: .15, h: .04, rotation: -.7853981633974483, bounce: { bounce: 1.5 } }, { x: 1.753715968790842, y: .08490224870782452, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: 1.753715968790842, y: .22703716969845283, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }, { x: 1.753715968790842, y: .37026509764423654, w: .15, h: .04, rotation: -1.5707963267948966, bounce: { bounce: 1.5 } }], obstacles: [], finishLine: 2.4960626273254927 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.3231516294960315, y: .5185868754744677 }, { x: .332581692516144, y: .10530275201738835 }, { x: .8781605212597537, y: .10530275201738835 }, { x: 1.374538801692949, y: .10530275201738835 }], bumpers: [{ x: 1.804943112567748, y: .8331639368431512, w: .15, h: .04, rotation: 0 }, { x: .26391809184404874, y: .7128858436073917, w: .15, h: .04, rotation: .4363323129985824 }, { x: .3992206532532322, y: .7575301324121736, w: .15, h: .04, rotation: .17453292519943295 }, { x: .5404355779636184, y: .7707435695395723, w: .15, h: .04, rotation: .03490658503988659 }, { x: .6842651974145721, y: .773030043878245, w: .15, h: .04, rotation: 0 }, { x: 1.521767014205201, y: .8331639368431512, w: .15, h: .04, rotation: 0 }, { x: 1.662808374569977, y: .8331639368431512, w: .15, h: .04, rotation: 0 }], finishLine: 2.073050355430312 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.4328959184672416, y: .3296557014946779 }, { x: .2527674713697822, y: .3318423816866752 }, { x: .8606668545017973, y: .3296557014946779 }, { x: 1.5287001681357149, y: .3296557014946779 }], bumpers: [{ x: 1.925399682985333, y: .9208512808069631, w: .15, h: .04, rotation: -2.356194490192345 }, { x: 2.031823005696634, y: .8138173059404538, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.9228726738986528, y: .811323794786312, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 2.034350127394304, y: .9189895278894429, w: .15, h: .04, rotation: 2.356194490192345 }, { x: 1.9428932371323, y: .20846256150515471, w: .15, h: .04, rotation: -2.356194490192345 }, { x: 2.0493165598436027, y: .1014285866386452, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.9403662280456198, y: .09893507548450343, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 2.0518436815412726, y: .20660080858763435, w: .15, h: .04, rotation: 2.356194490192345 }, { x: 1.041977582162762, y: .9233700378715902, w: .15, h: .04, rotation: -2.356194490192345 }, { x: 1.1484009048740629, y: .8163360630050809, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.0394505730760817, y: .8138425518509391, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.1509280265717325, y: .92150828495407, w: .15, h: .04, rotation: 2.356194490192345 }, { x: 1.0518176805637458, y: .20649529600835295, w: .15, h: .04, rotation: -2.356194490192345 }, { x: 1.1582410032750468, y: .09946132114184358, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.0492906714770656, y: .09696780998770183, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.1607681249727164, y: .20463354309083268, w: .15, h: .04, rotation: 2.356194490192345 }], finishLine: 2.6618661352629154 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.33955174970451, y: .6618150098737317 }, { x: .250580791177785, y: .3272515891662824 }, { x: .5906108560597326, y: .4562662084750732 }, { x: .8705070842822691, y: .6618150098737317 }], bumpers: [], finishLine: 1 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.298319737433216, y: .40050563835716485 }, { x: .2516742438847731, y: .40269235608615855 }, { x: .9044008900172015, y: .4026923560861586 }, { x: 1.5702475985331148, y: .39831903323916057 }], bumpers: [{ x: .5317549135850487, y: .009017245884590519, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.266866251468706, y: .010927142859974728, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .7373036023727179, y: .2160860657772138, w: .15, h: .04, rotation: .7853981633974483 }, { x: .6334359178828847, y: .11421967542487081, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.1556855902755572, y: .984817141746802, w: .15, h: .04, rotation: -2.356194490192345 }, { x: .960729823405206, y: .3202190115898054, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.0645975454320358, y: .21532911637250177, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.1651852096338733, y: .11040367523943238, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .8389846066705537, y: .31926331412213893, w: .15, h: .04, rotation: .7853981633974483 }, { x: .8404182381242384, y: .775939742347744, w: .15, h: .04, rotation: 2.356194490192345 }, { x: .7387373464373916, y: .877606270254059, w: .15, h: .04, rotation: 2.356194490192345 }, { x: .6392429847945564, y: .9784293847940156, w: .15, h: .04, rotation: 2.356194490192345 }, { x: .9534168842388874, y: .7773293360952173, w: .15, h: .04, rotation: -2.356194490192345 }, { x: 1.0561912286327217, y: .8791472031926992, w: .15, h: .04, rotation: -2.356194490192345 }], finishLine: 2.44243260757803 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .7535191684924663, y: .1851168511685117 }, { x: .427702543626999, y: .3021046731158231 }], bumpers: [{ x: .9783748093480937, y: .5107199594240083, w: .15, h: .04, rotation: 0 }, { x: .5858642134047319, y: .8256031833294896, w: .15, h: .04, rotation: 0 }], finishLine: 1.1902419274436886 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.0716823000749542, y: .33490495106977475 }, { x: .3380483554591406, y: .0790623644914433 }, { x: .6343445349736703, y: .33490495106977475 }], bumpers: [{ x: .9084006678342178, y: .5905341242648757, w: .15, h: .04, rotation: 0 }, { x: 1.2823244821456028, y: .9633644107952803, w: .15, h: .04, rotation: 0 }, { x: .4918366648528791, y: .9633644107952803, w: .15, h: .04, rotation: 0 }, { x: .7618926445264453, y: .9633644107952803, w: .15, h: .04, rotation: 0 }, { x: 1.0242952435280213, y: .9633644107952803, w: .15, h: .04, rotation: 0 }], finishLine: 1.5193385350601551 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.2619242275186426, y: .3359982630130262 }, { x: .3380483554591406, y: .0790623644914433 }, { x: .5632772035117816, y: .654161497822254 }, { x: .8519201525023067, y: .0790623644914433 }], bumpers: [{ x: .814373306967347, y: .958991050411286, w: .15, h: .04, rotation: 0 }], finishLine: 1.5193385350601551 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.298319737433216, y: .40050563835716485 }, { x: .5643706749872678, y: .06256955902987872 }, { x: 1.14165655419982, y: .06256955902987872 }, { x: 1.7091023537798862, y: .06256955902987872 }], bumpers: [{ x: .9548790697533683, y: .7714122748238486, w: .15, h: .04, rotation: .7853981633974483 }, { x: .8510113852635351, y: .6695458844715056, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.1783052907858567, y: .8755452206364402, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.2821730128126876, y: .7706553254191366, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.382760677014525, y: .6657298842860672, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.0565600740512044, y: .8745895231687737, w: .15, h: .04, rotation: .7853981633974483 }, { x: .23271401106530606, y: .9141639938643528, w: .15, h: .04, rotation: 0 }], finishLine: 2.44243260757803 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .48274484286713015, y: .13363694210513768 }, { x: .9856833327928184, y: .29107849775238365 }], bumpers: [{ x: 1.052003908988718, y: .8835502459544128, w: .15, h: .04, rotation: 0 }, { x: .8070947890600976, y: .8835502459544128, w: .15, h: .04, rotation: 0 }, { x: .5632789716904982, y: .8835502459544128, w: .15, h: .04, rotation: 0 }, { x: .3183698517618965, y: .8835502459544128, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: 1.4095973259244505 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .2483941485227844, y: .11067672501517384 }, { x: 1.873103893697629, y: .30747865549785763 }, { x: .7721061753464225, y: .30747865549785763 }, { x: 1.2805113094465912, y: .30747865549785763 }], bumpers: [{ x: 1.4758464674142837, y: .8835502459544128, w: .15, h: .04, rotation: 0 }, { x: .9750947890600977, y: .8835502459544128, w: .15, h: .04, rotation: 0 }, { x: .4863698517618967, y: .8835502459544128, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: 2.0865374110714794 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .5009566866603731, y: .10630331770993383 }, { x: .9874949625350756, y: .10630331770993383 }, { x: .9874949625350756, y: .5687879519404314 }], bumpers: [{ x: .9750947890600977, y: .8835502459544128, w: .15, h: .04, rotation: 0 }, { x: .7312789716904984, y: .8835502459544128, w: .15, h: .04, rotation: 0 }, { x: .4863698517618967, y: .8835502459544128, w: .15, h: .04, rotation: 0 }], finishLine: 1.577597325924432 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .24511410946629064, y: .6584422057980335 }, { x: 1.7353424410098608, y: .3676125859997603 }, { x: .7108789047485212, y: .4933472225575517 }, { x: 1.0170151826640348, y: .3676125859997603 }], bumpers: [{ x: 1.2232839668136921, y: .7250152939056737, w: .15, h: .04, rotation: 0 }, { x: 1.0778692085279256, y: .7250152939056737, w: .15, h: .04, rotation: 0 }, { x: .6317846100476633, y: .8835502459544128, w: .15, h: .04, rotation: 0 }, { x: .4863698517618967, y: .8835502459544128, w: .15, h: .04, rotation: 0 }, { x: .9324543751681661, y: .7938959827125617, w: .15, h: .04, rotation: 0 }, { x: .7870396168823995, y: .7938959827125617, w: .15, h: .04, rotation: 0 }], finishLine: 1.577597325924432 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .2833811629742281, y: .16753058830783518 }, { x: .9393877730891578, y: .16753058830783518 }], bumpers: [{ x: .6306912511831665, y: .8835502459544128, w: .15, h: .04, rotation: 0 }, { x: 1.2089189073163082, y: .5381908308512383, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .3420483584981361, y: .8835502459544128, w: .15, h: .04, rotation: 0 }, { x: .4863698517618967, y: .8835502459544128, w: .15, h: .04, rotation: 0 }, { x: 1.3337115980370258, y: .4833862318020643, w: .15, h: .04, rotation: 0 }, { x: .9016891766938067, y: .8361566032150677, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.0033702185286393, y: .7366454980420449, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.1061445629224735, y: .6371426520231264, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .775012744446927, y: .8835502459544128, w: .15, h: .04, rotation: 0 }], finishLine: 1.577597325924432 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .24730080842678687, y: .3577724219090325 }, { x: 1.605234556679065, y: .5578544665222034 }, { x: .8016264705493753, y: .5578544665222034 }], bumpers: [], finishLine: 1.9209072421778917 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .5359438137228071, y: .12817013839840444 }, { x: 1.23349749763367, y: .3643325563275156 }, { x: .5359438137228071, y: .6682823041990178 }], bumpers: [{ x: 1.5984738394521645, y: .829976543713484, w: .15, h: .04, rotation: 0 }, { x: .2547537376698475, y: .829976543713484, w: .15, h: .04, rotation: 0 }, { x: .7992391887804622, y: .829976543713484, w: .15, h: .04, rotation: 0 }, { x: .9402805491452377, y: .829976543713484, w: .15, h: .04, rotation: 0 }, { x: 1.0813219845840063, y: .829976543713484, w: .15, h: .04, rotation: 0 }], finishLine: 1.9209072421778917 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .7174389453245136, y: .23859801361221544 }, { x: 1.8348370278746757, y: .23859801361221544 }, { x: .39599571838003733, y: .23859801361221544 }, { x: 1.0738692430259285, y: .23859801361221544 }, { x: 1.4652864988732917, y: .23859801361221544 }], bumpers: [{ x: 1.9133568381356671, y: .8562168561654367, w: .15, h: .04, rotation: 0 }, { x: .4799826044909865, y: .8562168561654367, w: .15, h: .04, rotation: 0 }, { x: .8298527865424165, y: .6769083296817344, w: .15, h: .04, rotation: 0 }, { x: 1.1917497471868277, y: .5850673862478859, w: .15, h: .04, rotation: 0 }, { x: 1.5766070375321921, y: .6769083296817344, w: .15, h: .04, rotation: 0 }], finishLine: 1.9209072421778917 } }, function(t, e, n) { var r = { "./FINISH000.json": 252, "./FINISH001.json": 253, "./FINISH002.json": 254, "./FINISH003.json": 255, "./FINISH004.json": 256, "./FINISH005.json": 257, "./FINISH006.json": 258, "./FINISH007.json": 259, "./FINISH008.json": 260, "./FINISH009.json": 261, "./FINISH010.json": 262, "./FINISH011.json": 263, "./FINISH012.json": 264, "./FINISH013.json": 265, "./FINISH014.json": 266, "./FINISH015.json": 267, "./FINISH016.json": 268, "./FINISH017.json": 269, "./FINISH018.json": 270, "./FINISH019.json": 271, "./FINISH020.json": 272, "./FINISH021.json": 273, "./FINISH022.json": 274, "./FINISH028.json": 275, "./FINISH029.json": 276, "./FINISH030.json": 277, "./FINISH031.json": 278, "./FINISH032.json": 279, "./FINISH033.json": 280, "./FINISH035.json": 281, "./FINISH036.json": 282 }; function i(t) { var e = o(t); return n(e) } function o(t) { if (!n.o(r, t)) { var e = new Error("Cannot find module '" + t + "'"); throw e.code = "MODULE_NOT_FOUND", e } return r[t] } i.keys = function() { return Object.keys(r) }, i.resolve = o, t.exports = i, i.id = 251 }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: .6579234639152141, y: .45409846696697276 }, { x: .242622854931106, y: .14371592620682827 }, { x: 1.5147542067564226, y: .45409846696697276 }, { x: .9737706001990454, y: .14371592620682827 }], bumpers: [{ x: 1.4947077804081814, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: 1.2728498652490494, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: 1.128587520138266, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .5602815300546445, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .4182050690130843, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .27394272390230073, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .9876039385952972, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .845527477553737, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .7012651324429535, y: .9085367805722759, w: .15, h: .04, rotation: 0 }], finishLine: 1.6700546197943344 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: .8021856839539565, y: .3437159908273829 }, { x: .242622854931106, y: .14371592620682827 }, { x: 1.3978142660172233, y: .5098361968994137 }], bumpers: [{ x: .5602815300546445, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .4182050690130843, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .27394272390230073, y: .9085367805722759, w: .15, h: .04, rotation: 0 }, { x: .7012651324429535, y: .9085367805722759, w: .15, h: .04, rotation: 0 }], finishLine: 1.7389071121632724 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: .6120217745421352, y: .08251380399276613 }, { x: .24699443546149147, y: .08251380399276613 }, { x: 1.1912569556731318, y: .08251380399276613 }], bumpers: [{ x: .7652060074913983, y: .8345265070727389, w: .15, h: .04, rotation: .7853981633974483 }, { x: .4389701130117608, y: .5839465666090331, w: .15, h: .04, rotation: 0 }, { x: .2936148258663653, y: .5839465666090331, w: .15, h: .04, rotation: 0 }, { x: 1.318751471240768, y: .8877717365735993, w: .15, h: .04, rotation: 0 }, { x: .5608343727631283, y: .6361693124846226, w: .15, h: .04, rotation: .7853981633974483 }, { x: .6624737086872873, y: .7354582090247279, w: .15, h: .04, rotation: .7853981633974483 }, { x: .8892433245482727, y: .8877717365735993, w: .15, h: .04, rotation: 0 }, { x: 1.0324127067791042, y: .8877717365735993, w: .15, h: .04, rotation: 0 }, { x: 1.173396330012754, y: .8877717365735993, w: .15, h: .04, rotation: 0 }], finishLine: 1.4514753848216566 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: .6896173862811636, y: .08251380399276613 }, { x: .24699443546149147, y: .08251380399276613 }, { x: 1.5071040502662842, y: .22786907029282158 }, { x: 1.1322406289355977, y: .22786907029282158 }], bumpers: [{ x: .4378772335131692, y: .8145476428289358, w: .15, h: .04, rotation: 0 }, { x: .2958006265542282, y: .8145476428289358, w: .15, h: .04, rotation: 0 }], finishLine: 1.5716939640566292 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: .6404371001029916, y: .31007394729835014 }, { x: .19781410759263898, y: .31007394729835014 }, { x: 1.4437160387716632, y: .8377051066831157 }, { x: 1.0382515745736187, y: .5710385692575585 }], bumpers: [{ x: .4345985533267151, y: .931487500186774, w: .15, h: .04, rotation: 0 }, { x: .40817059397013467, y: .1103575216438114, w: .15, h: .04, rotation: 2.356194490192345 }, { x: .2958006265542282, y: .931487500186774, w: .15, h: .04, rotation: 0 }, { x: .30653125804597564, y: .21239933212899298, w: .15, h: .04, rotation: 2.356194490192345 }], finishLine: 1.522513636187777 } }, function(t) { t.exports = { spawnPoint: { x: .24125682851655883, y: .35628412382198804 }, background: "background_0", hooks: [{ x: 1.3562841363291918, y: .40054638138234283 }, { x: .256830601092896, y: .20273223209902227 }, { x: .7344261961556522, y: .20273223209902227 }], bumpers: [{ x: 1.5001722195918192, y: .8506133750240137, w: .15, h: .04, rotation: 0 }, { x: .8805000801061409, y: .8506133750240137, w: .15, h: .04, rotation: 0 }, { x: 1.0236694831823137, y: .8506133750240137, w: .15, h: .04, rotation: 0 }, { x: .530773324995197, y: .8506133750240137, w: .15, h: .04, rotation: 0 }, { x: .24552739834144444, y: .8506133750240137, w: .15, h: .04, rotation: 0 }, { x: .3886968014176163, y: .8506133750240137, w: .15, h: .04, rotation: 0 }, { x: 1.1657460067598948, y: .8506133750240137, w: .15, h: .04, rotation: 0 }], finishLine: 1.5715848161874568 } }, function(t) { t.exports = { spawnPoint: { x: .24125682851655883, y: .35628412382198804 }, background: "background_0", hooks: [{ x: 1.2021857923497261, y: .26939886124407647 }, { x: .2502732407199878, y: .26939886124407647 }, { x: .7278688357827441, y: .03551910483771965 }, { x: .7278688357827441, y: .5131147415911564 }], bumpers: [{ x: 1.5001722195918192, y: .8506133750240137, w: .15, h: .04, rotation: 0 }, { x: .8805000801061409, y: .8506133750240137, w: .15, h: .04, rotation: 0 }, { x: 1.0236694831823137, y: .8506133750240137, w: .15, h: .04, rotation: 0 }, { x: .530773324995197, y: .8506133750240137, w: .15, h: .04, rotation: 0 }, { x: .24552739834144444, y: .8506133750240137, w: .15, h: .04, rotation: 0 }, { x: .3886968014176163, y: .8506133750240137, w: .15, h: .04, rotation: 0 }, { x: 1.1657460067598948, y: .8506133750240137, w: .15, h: .04, rotation: 0 }], finishLine: 1.5715848161874568 } }, function(t) { t.exports = { spawnPoint: { x: .24125682851655883, y: .35628412382198804 }, background: "background_0", hooks: [{ x: 1.347541016959101, y: .42677596879135704 }, { x: .25901642262609903, y: .04863384642887626 }, { x: .7289617986626963, y: .42677596879135704 }], bumpers: [{ x: 1.4958006599067726, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: 1.6389700629829451, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: .5318662044937882, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: .2466202778400356, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: .38978968091620747, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: 1.7810465865605263, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: .881592959604732, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: 1.0247623626809048, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: 1.166838886258486, y: .929301866261633, w: .15, h: .04, rotation: 0 }], finishLine: 1.5486340965729586 } }, function(t) { t.exports = { spawnPoint: { x: .24125682851655883, y: .35628412382198804 }, background: "background_0", hooks: [{ x: 1.3540983773320088, y: .38415300129541263 }, { x: .23936576760426484, y: .2757080822367365 }, { x: .8579235806491203, y: .38415300129541263 }], bumpers: [{ x: .6563102553323965, y: .8798258677623326, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.2291339974091753, y: .9371898082597966, w: .15, h: .04, rotation: 0 }, { x: .5318662044937882, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: .2466202778400356, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: .38978968091620747, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: 1.5111011813404536, y: .9371898082597966, w: .15, h: .04, rotation: 0 }, { x: 1.085964594333003, y: .9371898082597966, w: .15, h: .04, rotation: 0 }, { x: .9662988578065133, y: .8802231363385544, w: .15, h: .04, rotation: .7853981633974483 }, { x: .8668453225702173, y: .7801634418129603, w: .15, h: .04, rotation: .7853981633974483 }, { x: .7568566700672834, y: .7780780168591607, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.3712105209867564, y: .9371898082597966, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: 1.5486340965729586 } }, function(t) { t.exports = { spawnPoint: { x: .24125682851655883, y: .35628412382198804 }, background: "background_0", hooks: [{ x: 1.8578415800834605, y: .2737705251558229 }, { x: .9092896883604953, y: .07377045532393314 }, { x: 2.420710582628928, y: .3808743002636183 }, { x: 1.3573772659718664, y: .17322402703957462 }], bumpers: [{ x: .8160192933396311, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: .5318662044937882, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: .2466202778400356, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: .38978968091620747, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: 2.7543963136125664, y: .8247933463694401, w: .15, h: .04, rotation: .17453292519943295 }, { x: .6728498068820977, y: .929301866261633, w: .15, h: .04, rotation: 0 }, { x: 1.6231766552984754, y: .6621111659036858, w: .15, h: .04, rotation: -.3490658503988659 }, { x: 2.32781164751156, y: .7504780063626951, w: .15, h: .04, rotation: .17453292519943295 }, { x: 2.4698880668624397, y: .7758106407158611, w: .15, h: .04, rotation: .17453292519943295 }, { x: 2.613057449093271, y: .800205550585046, w: .15, h: .04, rotation: .17453292519943295 }, { x: .9554170674425359, y: .9074051794506804, w: .15, h: .04, rotation: -.3490658503988659 }, { x: 1.0898432886125966, y: .8557703132195867, w: .15, h: .04, rotation: -.3490658503988659 }, { x: 1.2231765885933858, y: .8068388338237436, w: .15, h: .04, rotation: -.3490658503988659 }, { x: 1.3586957309527183, y: .7589711241849504, w: .15, h: .04, rotation: -.3490658503988659 }, { x: 1.4920291143148685, y: .7089144514121085, w: .15, h: .04, rotation: -.3490658503988659 }, { x: 2.187183265563557, y: .7248799434627281, w: .15, h: .04, rotation: .17453292519943295 }, { x: 2.0458444010442616, y: .700292147678334, w: .15, h: .04, rotation: .17453292519943295 }, { x: 1.9026750188134296, y: .6758972378091491, w: .15, h: .04, rotation: .17453292519943295 }, { x: 1.7605985994625502, y: .6505646034559831, w: .15, h: .04, rotation: .17453292519943295 }], finishLine: 2.828497567932461 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .4021858257022708, y: .3120218704307014 }, { x: 1.2612022024686218, y: .3120218704307014 }, { x: .8284153338989921, y: .04972676761814802 }], bumpers: [{ x: 1.1114888502132398, y: .8732718389291029, w: .15, h: .04, rotation: .6108652381980153 }, { x: .7520766916831416, y: .7087754454535663, w: .15, h: .04, rotation: -.6108652381980153 }, { x: .5192897939300358, y: .8720934549958147, w: .15, h: .04, rotation: -.6108652381980153 }, { x: .6340438922906916, y: .7904781028418125, w: .15, h: .04, rotation: -.6108652381980153 }, { x: .8743303719297498, y: .7096868048352312, w: .15, h: .04, rotation: .6108652381980153 }, { x: .9934560299754507, y: .7909889934191533, w: .15, h: .04, rotation: .6108652381980153 }, { x: 1.5427952079331024, y: .9183728211316382, w: .15, h: .04, rotation: 0 }], finishLine: 1.6153004964192708 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .5217303174008322, y: .29873194411411813 }, { x: 1.1766435874197627, y: .1872108601837964 }, { x: 3.3752638610614647, y: .49006724919080197 }, { x: 1.9243960732698169, y: .08443648763721452 }, { x: 2.478721566475921, y: .34683909602303964 }], bumpers: [{ x: .46686244826501017, y: .9229108647803277, w: .15, h: .04, rotation: 0 }, { x: .5924456154898844, y: .8746176209532946, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .7139582483856091, y: .8212298229454954, w: .15, h: .04, rotation: 0 }, { x: .9773028307612558, y: .7644925951040776, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .856093098994369, y: .8212298229454954, w: .15, h: .04, rotation: 0 }, { x: 1.0999088037529794, y: .7108019852686812, w: .15, h: .04, rotation: 0 }, { x: 1.363253386128626, y: .6540647574272634, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.2420436543617392, y: .7108019852686812, w: .15, h: .04, rotation: 0 }, { x: 1.4814860362733515, y: .5960008247448692, w: .15, h: .04, rotation: 0 }, { x: 1.7448306186489981, y: .5392635969034514, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.6236208868821114, y: .5960008247448692, w: .15, h: .04, rotation: 0 }, { x: 1.863063118645738, y: .47901302156605613, w: .15, h: .04, rotation: 0 }, { x: 2.1264077010213844, y: .42227579372463836, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 2.005197969254498, y: .47901302156605613, w: .15, h: .04, rotation: 0 }, { x: 2.2468268812101218, y: .3685852214262384, w: .15, h: .04, rotation: 0 }, { x: 2.482408964121974, y: .7288169695311567, w: .15, h: .04, rotation: 1.3089969389957472 }, { x: 2.3889617318188816, y: .3685852214262384, w: .15, h: .04, rotation: 0 }, { x: 2.4638959199867396, y: .4408743634085765, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: 2.4638959199867396, y: .5851958191353408, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: 3.813589169621581, y: .9523256749904366, w: .15, h: .04, rotation: 0 }, { x: 2.5480543137738745, y: .854552016490573, w: .15, h: .04, rotation: .7853981633974483 }, { x: 2.6699393471587527, y: .9222759732005164, w: .15, h: .04, rotation: .2617993877991494 }, { x: 2.8084028230594154, y: .9474571528995805, w: .15, h: .04, rotation: .08726646259971647 }, { x: 3.524946408316038, y: .9523256749904366, w: .15, h: .04, rotation: 0 }, { x: 3.094168683790745, y: .9523256749904366, w: .15, h: .04, rotation: 0 }, { x: 2.949847265600977, y: .9523256749904366, w: .15, h: .04, rotation: 0 }, { x: 3.380624915052277, y: .9523256749904366, w: .15, h: .04, rotation: 0 }, { x: 3.236303496862509, y: .9523256749904366, w: .15, h: .04, rotation: 0 }, { x: 3.669267826505806, y: .9523256749904366, w: .15, h: .04, rotation: 0 }], finishLine: 3.8657425613684886 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.6773950780889646, y: .18511681363151533 }, { x: .995148268133072, y: .18511681363151533 }, { x: .3489817564191266, y: .18511681363151533 }], bumpers: [{ x: 1.5479469692764458, y: .6826405649186689, w: .15, h: .04, rotation: -.9599310885968813 }, { x: 1.5913942300171051, y: .75261705455369, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.636624915341628, y: .6818294074393193, w: .15, h: .04, rotation: .9599310885968813 }, { x: .42726905412327093, y: .6827995651125383, w: .15, h: .04, rotation: -.9599310885968813 }, { x: .47071631486393034, y: .7527760547475595, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .515947000188453, y: .6819884076331887, w: .15, h: .04, rotation: .9599310885968813 }, { x: .6831116876228481, y: .19063864140277573, w: .15, h: .04, rotation: -.9599310885968813 }, { x: .7265589483635074, y: .2606151310377968, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .7717896336880301, y: .18982748392342622, w: .15, h: .04, rotation: .9599310885968813 }, { x: .9509810246414138, y: .6807510463426336, w: .15, h: .04, rotation: -.9599310885968813 }, { x: .9944282853820731, y: .7507275359776546, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.0396589707065957, y: .679939888863284, w: .15, h: .04, rotation: .9599310885968813 }, { x: 1.2439972964789368, y: .18231883388805337, w: .15, h: .04, rotation: -.9599310885968813 }, { x: 1.287444557219596, y: .2522953235230744, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.3326752425441188, y: .18150767640870386, w: .15, h: .04, rotation: .9599310885968813 }], finishLine: 1.7740878660007304 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.60851435174508, y: .25727757903189397 }, { x: .4145824624750154, y: .25727757903189397 }, { x: 1.0563755387309735, y: .25727757903189397 }], bumpers: [{ x: 1.5906475904010995, y: .8638701617634341, w: .15, h: .04, rotation: 0 }, { x: .23599401258480363, y: .8638701617634341, w: .15, h: .04, rotation: 0 }, { x: .5749307373707526, y: .8638701617634341, w: .15, h: .04, rotation: 0 }, { x: .9116808007332027, y: .8638701617634341, w: .15, h: .04, rotation: 0 }, { x: 1.26373766297663, y: .8638701617634341, w: .15, h: .04, rotation: 0 }], finishLine: 1.6953669286448725 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 1.6358481919780137, y: .5682280593252713 }, { x: .3828754870800661, y: .32397160641528305 }, { x: .8311465780673436, y: .5682280593252713 }, { x: .8409866764683275, y: .12542363128099077 }, { x: 1.2652042853436352, y: .3462791189496375 }, { x: 1.6358481919780137, y: .13446005282806803 }], bumpers: [{ x: 1.6346709700941264, y: .052245578574244236, w: .15, h: .04, rotation: 0 }, { x: 1.6310442305576387, y: .21011433635791577, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.71397861248847, y: .13230991929245586, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: 1.5517366257002914, y: .13046001225207662, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .3825021109665687, y: .7053351346407022, w: .15, h: .04, rotation: 0 }, { x: .37887537143008165, y: .8632038924243737, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .46180975336091257, y: .7853994753589139, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: .2995677665727342, y: .7835495683185346, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .3825021109665688, y: .2450372087549492, w: .15, h: .04, rotation: 0 }, { x: .3788753714300817, y: .40290596653862054, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .4618097533609126, y: .32510154947316083, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: .29956776657273426, y: .3232516424327816, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .8318665420498448, y: .49038707683492905, w: .15, h: .04, rotation: 0 }, { x: .8282398025133577, y: .6482558346186005, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .9111741844441886, y: .5704514175531407, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: .74893219765601, y: .5686015105127614, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .842800018083824, y: .048675960733899945, w: .15, h: .04, rotation: 0 }, { x: .8391732785473369, y: .20654471851757147, w: .15, h: .04, rotation: 3.141592653589793 }, { x: .9221076604781677, y: .12874030145211157, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: .7598656736899893, y: .12689039441173233, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: 1.268110854444141, y: .26515804109730673, w: .15, h: .04, rotation: 0 }, { x: 1.2644841149076538, y: .4230267988809782, w: .15, h: .04, rotation: 3.141592653589793 }, { x: 1.3474184968384848, y: .34522238181551834, w: .15, h: .04, rotation: 1.5707963267948966 }, { x: 1.1851765100503062, y: .3433724747751391, w: .15, h: .04, rotation: -1.5707963267948966 }], finishLine: 1.7731111893882614 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .9186141611171972, y: .2966380101728264 }, { x: 1.3570452287774832, y: .4245593081541168 }, { x: .45066279825395916, y: .4201859102331259 }], bumpers: [{ x: .9194939470662284, y: .20079710123697914, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .9194939470662284, y: .058662288165215674, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .9194939470662284, y: -.08237910973655627, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .45263596183598565, y: .5145868536669741, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .45263596183598565, y: .9398978026382803, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .45263596183598565, y: .7977629895665168, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .45263596183598565, y: .6567215916647449, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: 1.3590183923595096, y: .518960251587965, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: 1.3590183923595096, y: .9442712005592712, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: 1.3590183923595096, y: .8021363874875077, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: 1.3590183923595096, y: .6610949895857358, w: .15, h: .04, rotation: -1.5707963267948966 }], finishLine: 1.7478477036967637 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: 2.317001811985894, y: .17965013192002044 }, { x: 1.3625121544794552, y: .17965013192002044 }, { x: .8595736457852861, y: .17965013192002044 }, { x: .3752221064080759, y: .17965013192002044 }, { x: 1.8468636938566654, y: .17965013192002044 }], bumpers: [{ x: 2.0083051211634197, y: .9130706537683542, w: .15, h: .04, rotation: 0 }, { x: 1.6485948594795035, y: .9130706537683542, w: .15, h: .04, rotation: 0 }, { x: .5967976519017144, y: .9130706537683542, w: .15, h: .04, rotation: 0 }, { x: .23708739021779873, y: .9130706537683542, w: .15, h: .04, rotation: 0 }, { x: 1.3194981580205454, y: .9130706537683542, w: .15, h: .04, rotation: 0 }, { x: .9597878963366295, y: .9130706537683542, w: .15, h: .04, rotation: 0 }], finishLine: 2.391827309996733 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .8606669483442885, y: .2769578743684773 }, { x: .8606669483442885, y: .6454148708967559 }, { x: .35554187206911153, y: .6935219477316842 }, { x: .35554187206911153, y: .22447728230944403 }], bumpers: [{ x: .8626401119263148, y: .1854903445851228, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .8626401119263148, y: .043355531513359365, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .9194939470662284, y: -.08237910973655627, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .357515035651138, y: .3188782257432922, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .357515035651138, y: .6020543616428348, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .357515035651138, y: .461012963741063, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .8626401119263148, y: .7398158143306041, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .8626401119263147, y: 1.0481388475121078, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .8626401119263148, y: 1.0229919502301468, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .8626401119263148, y: .8819505523283748, w: .15, h: .04, rotation: -1.5707963267948966 }], obstacles: [], finishLine: 1.7478477036967637 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .9448545486431431, y: .5448269063989476 }, { x: .3380483554591409, y: .4748530651810423 }, { x: 1.5964875731520993, y: .4693862896270573 }], bumpers: [{ x: .9457343345921746, y: .9289642139933119, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .9457343345921746, y: .6425080202687764, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .9457343345921746, y: .7857361171310439, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .33674146121617493, y: .3757320984202028, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .3367414424476768, y: .09194225214771651, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .33674146121617493, y: .23250400155793538, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: 1.5951806789091334, y: .3702653228662172, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: 1.5951806789091334, y: .08380912914168187, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: 1.5951806789091334, y: .22703722600394932, w: .15, h: .04, rotation: -1.5707963267948966 }], obstacles: [], finishLine: 2.042687576875769 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .5526118512405831, y: .36944565795796025 }, { x: 1.2859780099265838, y: .36725894022896644 }, { x: 1.6631818069889688, y: .37335382752686025 }, { x: 1.9835317689114396, y: .36288557984497205 }, { x: .9098675529601982, y: .3821005858318457 }], bumpers: [{ x: .8522794422260404, y: .9906625608706067, w: .15, h: .04, rotation: -2.356194490192345 }, { x: 1.0616638270601695, y: .7785224165670822, w: .15, h: .04, rotation: .7853981633974483 }, { x: .9599828602993308, y: .6771739758079837, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.065377516338847, y: .8882731654727373, w: .15, h: .04, rotation: 2.356194490192345 }, { x: .8488457356983624, y: .6786426587733972, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .7495050227582128, y: .8913343872175158, w: .15, h: .04, rotation: -2.356194490192345 }, { x: .747257996422532, y: .7797473155884086, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .9626031719450132, y: .985753313532093, w: .15, h: .04, rotation: 2.356194490192345 }, { x: .4994923375056271, y: .29376146874279185, w: .15, h: .04, rotation: -2.356194490192345 }, { x: .7088767223397567, y: .08162132443926738, w: .15, h: .04, rotation: .7853981633974483 }, { x: .6071957555789173, y: -.01972711631983127, w: .15, h: .04, rotation: .7853981633974483 }, { x: .49605863097794894, y: -.01825843335441758, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .3967179180377996, y: .1944332950897009, w: .15, h: .04, rotation: -2.356194490192345 }, { x: .39447089170211874, y: .08284622346059377, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .6098160672245997, y: .28885222140427813, w: .15, h: .04, rotation: 2.356194490192345 }, { x: .7125904116184343, y: .19137207334492237, w: .15, h: .04, rotation: 2.356194490192345 }, { x: 1.2320329044884453, y: .28239012491191595, w: .15, h: .04, rotation: -2.356194490192345 }, { x: 1.4414172893225747, y: .07024998060839144, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.3397363225617354, y: -.031098460150707226, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.228599197960767, y: -.029629777185293537, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.1292584850206178, y: .18306195125882493, w: .15, h: .04, rotation: -2.356194490192345 }, { x: 1.127011458684937, y: .07147487962971781, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.3423566342074178, y: .27748087757340223, w: .15, h: .04, rotation: 2.356194490192345 }, { x: 1.4451309786012523, y: .18000072951404641, w: .15, h: .04, rotation: 2.356194490192345 }, { x: 1.9259436769457796, y: .28217117224496935, w: .15, h: .04, rotation: -2.356194490192345 }, { x: 2.135328061779909, y: .07003102794144489, w: .15, h: .04, rotation: .7853981633974483 }, { x: 2.0336470950190697, y: -.031317412817653774, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.9225099704181017, y: -.029848729852240085, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.823169257477952, y: .18284299859187833, w: .15, h: .04, rotation: -2.356194490192345 }, { x: 1.8209222311422713, y: .07125592696277126, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 2.036267406664752, y: .2772619249064556, w: .15, h: .04, rotation: 2.356194490192345 }, { x: 2.1390417510585866, y: .1797817768470998, w: .15, h: .04, rotation: 2.356194490192345 }, { x: 1.608873622700316, y: .9824593916444728, w: .15, h: .04, rotation: -2.356194490192345 }, { x: 1.818258007534445, y: .7703192473409484, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.716577040773606, y: .6689708065818498, w: .15, h: .04, rotation: .7853981633974483 }, { x: 1.605439916172638, y: .6704394895472634, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.5060992032324885, y: .883131217991382, w: .15, h: .04, rotation: -2.356194490192345 }, { x: 1.5038521768968076, y: .7715441463622748, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 1.7191973524192885, y: .9775501443059591, w: .15, h: .04, rotation: 2.356194490192345 }, { x: 1.8219716968131225, y: .8800699962466034, w: .15, h: .04, rotation: 2.356194490192345 }], finishLine: 2.2648482484336565 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .748052392938481, y: .8651770935433968 }, { x: .4320759415479899, y: .5371737509489357 }, { x: 1.0607488615779719, y: .5393604311409329 }, { x: .750239148204471, y: .2157305427729571 }], bumpers: [{ x: 1.2200039089886996, y: .8671502195884263, w: .15, h: .04, rotation: 0 }, { x: .7489323102669996, y: .7660559954030692, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .674425267930072, y: .5391469896049549, w: .15, h: .04, rotation: 0 }, { x: .531197039688317, y: .5391469896049549, w: .15, h: .04, rotation: 0 }, { x: .9608814241176107, y: .5391469896049549, w: .15, h: .04, rotation: 0 }, { x: .8176531958758556, y: .5391469896049549, w: .15, h: .04, rotation: 0 }, { x: .7489323102669996, y: .4588262647805673, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .7489323102669996, y: .3177848668787953, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .7489323102669996, y: .6228278797723033, w: .15, h: .04, rotation: -1.5707963267948966 }, { x: .23599408765879656, y: .8671502195884263, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: 1.641793076255958 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .5315703782648182, y: .34037165154976756 }, { x: .8890939409882381, y: .026581922580395247 }, { x: 1.2225639840626923, y: .028768619194828433 }, { x: 1.4762198622962794, y: .505466756785488 }, { x: 1.139469836470826, y: .5032800765934908 }, { x: .5293836980728209, y: .6607215383982454 }, { x: 1.2225639840626925, y: .9777914424957239 }, { x: .885813958237239, y: .9756047623037267 }], bumpers: [{ x: 1.3796321635964408, y: .5074400142100055, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: .5955529926207839, y: .26791460188394206, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .9827482448060809, y: .030741782776854906, w: .15, h: .04, rotation: 0 }, { x: 1.1270696629958488, y: .030741782776854906, w: .15, h: .04, rotation: 0 }, { x: 1.236404123039668, y: .5074400142100055, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: .8018108932586143, y: .9343345067393553, w: .15, h: .04, rotation: .7853981633974483 }, { x: .7001300015717676, y: .8303208526610234, w: .15, h: .04, rotation: .7853981633974483, bounce: { bounce: 1.5 } }, { x: .597355657177933, y: .7287450036710265, w: .15, h: .04, rotation: .7853981633974483, bounce: { bounce: 1.5 } }, { x: .802195059041448, y: .06723330008265924, w: .15, h: .04, rotation: -.7853981633974483 }, { x: .6983273370146184, y: .16822050817760925, w: .15, h: .04, rotation: -.7853981633974483, bounce: { bounce: 1.5 } }, { x: .5955529926207839, y: .26791460188394206, w: .15, h: .04, rotation: -.7853981633974483, bounce: { bounce: 1.5 } }, { x: 1.1259762853628539, y: .9797646999202414, w: .15, h: .04, rotation: 0 }, { x: .9827482448060809, y: .9797646999202414, w: .15, h: .04, rotation: 0 }], obstacles: [], finishLine: 1.8779554378795742 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .5807711142602157, y: .5087467583049858 }, { x: .24402108843476217, y: .5065600781129886 }, { x: 1.800943259676738, y: .5065601344184831 }, { x: 1.4641932338512846, y: .5043734542264859 }, { x: 1.1482167073868013, y: .21682390163745416 }, { x: .8114666815613478, y: .21463722144545697 }, { x: 1.1307232658508235, y: .7798961906855402 }, { x: .79397324002537, y: .777709510493543 }], bumpers: [{ x: .48418341556037686, y: .5107200157295034, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: .3409553750036041, y: .5107200157295034, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: 1.7043555609768994, y: .5085333918430007, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: 1.5611275204201267, y: .5085333918430007, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: 1.0516290086869626, y: .21879715906197172, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: .9084009681301898, y: .21879715906197172, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: 1.0341355671509846, y: .7818694481100577, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }, { x: .8909075265942119, y: .7818694481100577, w: .15, h: .04, rotation: 0, bounce: { bounce: 1.5 } }], obstacles: [], finishLine: 2.1022080973007 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: .45315857693871675, y: .15902275324055276 }, { x: 1.4502470284815152, y: .3589775407821251 }, { x: .9147300097931415, y: .16120941466405173 }], bumpers: [{ x: 1.3890948654964987, y: .9030700425552863, w: .15, h: .04, rotation: 0 }, { x: 1.5814073255885182, y: .9030700425552863, w: .15, h: .04, rotation: 0 }, { x: .609540449163761, y: .9030700425552863, w: .15, h: .04, rotation: 0 }, { x: .8018529092557806, y: .9030700425552863, w: .15, h: .04, rotation: 0 }, { x: 1.0009576674741278, y: .9030700425552863, w: .15, h: .04, rotation: 0 }, { x: 1.193270127566147, y: .9030700425552863, w: .15, h: .04, rotation: 0 }], finishLine: 1.6514676504773758 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: .36551816304678486, y: .16011603703105678 }, { x: 1.2807787505467825, y: .15902265939806162 }, { x: .8250757465512905, y: .15902265939806162 }], bumpers: [{ x: 1.5837101533241815, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: 1.776022613416201, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: .804155736991444, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: .9964681970834631, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: 1.1955729553018106, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: 1.3878854153938296, y: .9008832872892962, w: .15, h: .04, rotation: 0 }], finishLine: 1.847176240864061 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: .5325879920702703, y: .320837650503295 }, { x: 1.5716081920443226, y: .18088957392902352 }, { x: 1.0153176739949794, y: .18088957392902352 }, { x: 1.0153176739949794, y: .4651590686930629 }], bumpers: [{ x: 1.5837101533241815, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: 1.776022613416201, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: .804155736991444, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: .9964681970834631, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: 1.1955729553018106, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: 1.3878854153938296, y: .9008832872892962, w: .15, h: .04, rotation: 0 }], finishLine: 1.847176240864061 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: 1.5716081920443226, y: .18088957392902352 }, { x: 1.1027851819708405, y: .4465722495240901 }], bumpers: [{ x: 1.5837101533241815, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: 1.776022613416201, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: .5614333723288328, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: .9964681970834631, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: 1.1955729553018106, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: 1.3878854153938296, y: .9008832872892962, w: .15, h: .04, rotation: 0 }, { x: .783382162556481, y: .9008832872892962, w: .15, h: .04, rotation: 0 }], finishLine: 1.847176240864061 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: 1.652515734518185, y: .48374590663053413 }, { x: .6129669045766412, y: .06062170354096917 }, { x: 1.077638247151883, y: .057341678560848756 }], bumpers: [{ x: 1.5170161447092911, y: .8287224655834232, w: .15, h: .04, rotation: 0 }, { x: 1.925927179925601, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 2.210080470840478, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 1.2349333489057472, y: .8287224655834232, w: .15, h: .04, rotation: 0 }, { x: 1.3758586368008487, y: .8287224655834232, w: .15, h: .04, rotation: 0 }, { x: 2.068061842849377, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: .5614333723288333, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: .8455866632437112, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: .7035680352526108, y: .955550442237213, w: .15, h: .04, rotation: 0 }], finishLine: 1.9805641079458571 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: 2.6365254995425937, y: .057341678560848756 }, { x: 1.8791762790361088, y: .057341678560848756 }, { x: 1.1421455568062786, y: .057341678560848756 }, { x: 1.4786739460514724, y: .3765981267787122 }, { x: 2.2451082436952308, y: .3765981267787122 }], bumpers: [{ x: 1.2710136846846911, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 1.4153354407074277, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 1.6994887316223046, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: .9889308888811471, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 1.1298561767762487, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 1.5574701036312035, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: .5614333723288333, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: .8455866632437112, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: .7035680352526108, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 1.8406461269197585, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 2.977607845821259, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 2.8355892178301576, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 2.1247994178346357, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 1.9827807898435343, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 2.4101622714631716, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 2.26814364347207, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 2.6922451423407088, y: .955550442237213, w: .15, h: .04, rotation: 0 }, { x: 2.5502265143496072, y: .955550442237213, w: .15, h: .04, rotation: 0 }], finishLine: 3.030174579026154 } }, function(t) { t.exports = { spawnPoint: { x: .25, y: .2 }, background: "background_0", hooks: [{ x: .371272283462582, y: .1326630204766832 }, { x: 2.573267757701992, y: .1326630204766832 }, { x: 2.118436475990738, y: .1326630204766832 }, { x: 1.568484343168628, y: .1326630204766832 }, { x: .9562114870416294, y: .1326630204766832 }], bumpers: [{ x: 2.190036544500445, y: .8409571924836732, w: .15, h: .04, rotation: -.5235987755982988 }, { x: 2.761467830785278, y: .7039716122598761, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 2.0664885881346513, y: .9103847569400134, w: .15, h: .04, rotation: -.5235987755982988 }, { x: 2.314891282498215, y: .8409897426798404, w: .15, h: .04, rotation: .5235987755982988 }, { x: .6845013765389022, y: .8291791937023983, w: .15, h: .04, rotation: -.5235987755982988 }, { x: .9339974109984657, y: .901527887325317, w: .15, h: .04, rotation: .5235987755982988 }, { x: .560953420173108, y: .8986067581587386, w: .15, h: .04, rotation: -.5235987755982988 }, { x: .8093561145366728, y: .8292117438985656, w: .15, h: .04, rotation: .5235987755982988 }, { x: 1.1874398101590788, y: .833572003723965, w: .15, h: .04, rotation: -.5235987755982988 }, { x: 1.4369358446186427, y: .9059206973468836, w: .15, h: .04, rotation: .5235987755982988 }, { x: 1.0638918537932842, y: .9029995681803052, w: .15, h: .04, rotation: -.5235987755982988 }, { x: 1.3122945481568498, y: .8336045539201322, w: .15, h: .04, rotation: .5235987755982988 }, { x: 1.6881915260502611, y: .8368272957330857, w: .15, h: .04, rotation: -.5235987755982988 }, { x: 1.937687560509825, y: .9091759893560043, w: .15, h: .04, rotation: .5235987755982988 }, { x: 1.5646435696844665, y: .9062548601894259, w: .15, h: .04, rotation: -.5235987755982988 }, { x: 1.813046264048032, y: .8368598459292529, w: .15, h: .04, rotation: .5235987755982988 }, { x: 2.4395325789600073, y: .9133058861065918, w: .15, h: .04, rotation: .5235987755982988 }, { x: 2.5591992748965944, y: .9013103191410847, w: .15, h: .04, rotation: -.7853981633974483 }, { x: 2.6608802416574338, y: .8024004702014387, w: .15, h: .04, rotation: -.7853981633974483 }], finishLine: 2.640094250893681 } }, function(t) { t.exports = { spawnPoint: { x: .2849726859337645, y: .3234973011121073 }, background: "background_0", hooks: [{ x: 3.0388761751184417, y: .3394245447462612 }, { x: 2.2442366152534845, y: .3394245447462612 }, { x: 1.0172827363752155, y: .3394245447462612 }, { x: .6107802994586365, y: .34051780976826695 }, { x: 1.8121440078944249, y: .3394245447462612 }, { x: 1.4056415709778458, y: .3394245447462612 }, { x: 2.6507390521700636, y: .3394245447462612 }], bumpers: [{ x: 3.0258313517273274, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: 3.4433725472609984, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: 2.0035545707319793, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: 2.43858939548661, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: 2.637694153704957, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: 2.830006613796976, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: 2.2255033609596273, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: 1.582616813228183, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: 1.7749292733202024, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: .5603400322328341, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: .9953748569874646, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: 1.1944796152058121, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: 1.386792075297831, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: .7822888224604823, y: .8298158807534144, w: .15, h: .04, rotation: 0 }, { x: 3.2181438118193473, y: .8298158807534144, w: .15, h: .04, rotation: 0 }], finishLine: 3.1537226104659406 } }, function(t, e) { var n = ["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", "", "charCodeAt", "charAt", "_keyStr", "length", "replace", "indexOf", "fromCharCode", "n", "bG9jYWxob3N0Lw==", "cWEtZmlsZXMucG9raS5jb20=", "Z2FtZS1jZG4ucG9raS5jb20=", "bG9jYWxob3N0Og==", "decode", "href", "location", "www", "//", "split", "substr", "aHR0cDovL3BvLmtpL3NpdGVsb2NrcmVkaXJlY3Q=", "top"]; ! function() { for (var t = { _keyStr: n[0], encode: function(e) { var r, i, o, a, s, A, h, c = n[1], u = 0; for (e = t._utf8_encode(e); u < e[n[5]];) a = (r = e[n[2]](u++)) >> 2, s = (3 & r) << 4 | (i = e[n[2]](u++)) >> 4, A = (15 & i) << 2 | (o = e[n[2]](u++)) >> 6, h = 63 & o, isNaN(i) ? A = h = 64 : isNaN(o) && (h = 64), c = c + this[n[4]][n[3]](a) + this[n[4]][n[3]](s) + this[n[4]][n[3]](A) + this[n[4]][n[3]](h); return c }, decode: function(e) { var r, i, o, a, s, A, h = n[1], c = 0; for (e = e[n[6]](/[^A-Za-z0-9+\/=]/g, n[1]); c < e[n[5]];) r = this[n[4]][n[7]](e[n[3]](c++)) << 2 | (a = this[n[4]][n[7]](e[n[3]](c++))) >> 4, i = (15 & a) << 4 | (s = this[n[4]][n[7]](e[n[3]](c++))) >> 2, o = (3 & s) << 6 | (A = this[n[4]][n[7]](e[n[3]](c++))), h += String[n[8]](r), 64 != s && (h += String[n[8]](i)), 64 != A && (h += String[n[8]](o)); return h = t._utf8_decode(h) }, _utf8_encode: function(t) { t = t[n[6]](/rn/g, n[9]); for (var e = n[1], r = 0; r < t[n[5]]; r++) { var i = t[n[2]](r); i < 128 ? e += String[n[8]](i) : i > 127 && i < 2048 ? (e += String[n[8]](i >> 6 | 192), e += String[n[8]](63 & i | 128)) : (e += String[n[8]](i >> 12 | 224), e += String[n[8]](i >> 6 & 63 | 128), e += String[n[8]](63 & i | 128)) } return e }, _utf8_decode: function(t) { for (var e = n[1], r = 0, i = c1 = c2 = 0; r < t[n[5]];)(i = t[n[2]](r)) < 128 ? (e += String[n[8]](i), r++) : i > 191 && i < 224 ? (c2 = t[n[2]](r + 1), e += String[n[8]]((31 & i) << 6 | 63 & c2), r += 2) : (c2 = t[n[2]](r + 1), c3 = t[n[2]](r + 2), e += String[n[8]]((15 & i) << 12 | (63 & c2) << 6 | 63 & c3), r += 3); return e } }, e = [n[10], n[11], n[12], n[13]], r = !1, i = 0; i < e[n[5]]; i++) { var o = t[n[14]](e[i]), a = window[n[16]][n[15]]; if ((a = a[n[19]](n[18])[1][n[6]](n[17], n[1]))[n[5]] > o[n[5]] && (a = a[n[20]](0, o[n[5]])), o === a) { r = !0; break } } }() }, function(t, e, n) { "use strict"; n.r(e); var r = {}; n.r(r), n.d(r, "isMobile", function() { return E.a }), n.d(r, "EventEmitter", function() { return k.a }), n.d(r, "earcut", function() { return D.a }), n.d(r, "url", function() { return R.a }), n.d(r, "BaseTextureCache", function() { return yt }), n.d(r, "CanvasRenderTarget", function() { return wt }), n.d(r, "DATA_URI", function() { return _t }), n.d(r, "ProgramCache", function() { return pt }), n.d(r, "TextureCache", function() { return ft }), n.d(r, "clearTextureCache", function() { return mt }), n.d(r, "correctBlendMode", function() { return nt }), n.d(r, "createIndicesForQuads", function() { return at }), n.d(r, "decomposeDataUri", function() { return St }), n.d(r, "deprecation", function() { return kt }), n.d(r, "destroyTextureCache", function() { return xt }), n.d(r, "determineCrossOrigin", function() { return Et }), n.d(r, "getResolutionOfUrl", function() { return Ct }), n.d(r, "hex2rgb", function() { return J }), n.d(r, "hex2string", function() { return Z }), n.d(r, "isPow2", function() { return lt }), n.d(r, "isWebGLSupported", function() { return q }), n.d(r, "log2", function() { return dt }), n.d(r, "nextPow2", function() { return ut }), n.d(r, "premultiplyBlendMode", function() { return et }), n.d(r, "premultiplyRgba", function() { return rt }), n.d(r, "premultiplyTint", function() { return it }), n.d(r, "premultiplyTintToRgba", function() { return ot }), n.d(r, "removeItems", function() { return st }), n.d(r, "rgb2hex", function() { return tt }), n.d(r, "sayHello", function() { return V }), n.d(r, "sign", function() { return ct }), n.d(r, "skipHello", function() { return K }), n.d(r, "string2hex", function() { return $ }), n.d(r, "trimCanvas", function() { return gt }), n.d(r, "uid", function() { return ht }); var i = n(10), o = n.n(i), a = n(15), s = n.n(a), A = n(8), h = n.n(A), c = n(17), u = n.n(c), l = n(2), d = n.n(l), p = n(4), f = n.n(p), y = n(1), x = n.n(y), m = n(0), g = n.n(m), w = n(7), v = n.n(w), b = n(3), _ = n.n(b), S = (n(129), n(9)), E = n.n(S); var C = { MIPMAP_TEXTURES: 1, RESOLUTION: 1, FILTER_RESOLUTION: 1, SPRITE_MAX_TEXTURES: /*! * @pixi/settings - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/settings is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ function(t) { var e = !0; if (E.a.tablet || E.a.phone) { if (e = !1, E.a.apple.device) { var n = navigator.userAgent.match(/OS (\d+)_(\d+)?/); n && parseInt(n[1], 10) >= 11 && (e = !0) } if (E.a.android.device) { var r = navigator.userAgent.match(/Android\s([0-9.]*)/); r && parseInt(r[1], 10) >= 7 && (e = !0) } } return e ? t : 4 }(32), SPRITE_BATCH_SIZE: 4096, RENDER_OPTIONS: { view: null, antialias: !1, forceFXAA: !1, autoDensity: !1, transparent: !1, backgroundColor: 0, clearBeforeRender: !0, preserveDrawingBuffer: !1, width: 800, height: 600, legacy: !1 }, GC_MODE: 0, GC_MAX_IDLE: 3600, GC_MAX_CHECK_COUNT: 600, WRAP_MODE: 33071, SCALE_MODE: 1, PRECISION_VERTEX: "highp", PRECISION_FRAGMENT: E.a.apple.device ? "highp" : "mediump", CAN_UPLOAD_SAME_BUFFER: !E.a.apple.device, CREATE_IMAGE_BITMAP: !1, ROUND_PIXELS: !1 }, T = n(21), k = n.n(T), I = n(22), D = n.n(I), P = n(12), R = n.n(P), B = { WEBGL_LEGACY: 0, WEBGL: 1, WEBGL2: 2 }, M = { UNKNOWN: 0, WEBGL: 1, CANVAS: 2 }, O = { 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, NORMAL_NPM: 17, ADD_NPM: 18, SCREEN_NPM: 19, NONE: 20, SRC_OVER: 0, SRC_IN: 21, SRC_OUT: 22, SRC_ATOP: 23, DST_OVER: 24, DST_IN: 25, DST_OUT: 26, DST_ATOP: 27, ERASE: 26, SUBTRACT: 28 }, L = { POINTS: 0, LINES: 1, LINE_LOOP: 2, LINE_STRIP: 3, TRIANGLES: 4, TRIANGLE_STRIP: 5, TRIANGLE_FAN: 6 }, H = { RGBA: 6408, RGB: 6407, ALPHA: 6406, LUMINANCE: 6409, LUMINANCE_ALPHA: 6410, DEPTH_COMPONENT: 6402, DEPTH_STENCIL: 34041 }, z = { TEXTURE_2D: 3553, TEXTURE_CUBE_MAP: 34067, TEXTURE_2D_ARRAY: 35866, TEXTURE_CUBE_MAP_POSITIVE_X: 34069, TEXTURE_CUBE_MAP_NEGATIVE_X: 34070, TEXTURE_CUBE_MAP_POSITIVE_Y: 34071, TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072, TEXTURE_CUBE_MAP_POSITIVE_Z: 34073, TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074 }, F = { UNSIGNED_BYTE: 5121, UNSIGNED_SHORT: 5123, UNSIGNED_SHORT_5_6_5: 33635, UNSIGNED_SHORT_4_4_4_4: 32819, UNSIGNED_SHORT_5_5_5_1: 32820, FLOAT: 5126, HALF_FLOAT: 36193 }, N = 33071, U = 10497, Q = 1, j = 1, X = { LOW: "lowp", MEDIUM: "mediump", HIGH: "highp" }; /*! * @pixi/utils - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/utils is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ C.RETINA_PREFIX = /@([0-9\.]+)x/; var G, W = !1, Y = "5.0.4"; function K() { W = !0 } function V(t) { if (!W) { if (navigator.userAgent.toLowerCase().indexOf("chrome") > -1) { var e = ["\n %c %c %c PixiJS " + Y + " - ✰ " + t + " ✰ %c %c http://www.pixijs.com/ %c %c ♥%c♥%c♥ \n\n", "background: #ff66a5; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "color: #ff66a5; background: #030307; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "background: #ffc3dc; padding:5px 0;", "background: #ff66a5; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;", "color: #ff2424; background: #fff; padding:5px 0;"]; window.console.log.apply(console, e) } else window.console && window.console.log("PixiJS " + Y + " - " + t + " - http://www.pixijs.com/"); W = !0 } } function q() { return void 0 === G && (G = function() { var t = { stencil: !0, failIfMajorPerformanceCaveat: !0 }; try { if (!window.WebGLRenderingContext) return !1; var e = document.createElement("canvas"), n = e.getContext("webgl", t) || e.getContext("experimental-webgl", t), r = !(!n || !n.getContextAttributes().stencil); if (n) { var i = n.getExtension("WEBGL_lose_context"); i && i.loseContext() } return n = null, r } catch (t) { return !1 } }()), G } function J(t, e) { return (e = e || [])[0] = (t >> 16 & 255) / 255, e[1] = (t >> 8 & 255) / 255, e[2] = (255 & t) / 255, e } function Z(t) { return t = t.toString(16), "#" + (t = "000000".substr(0, 6 - t.length) + t) } function $(t) { return "string" == typeof t && "#" === t[0] && (t = t.substr(1)), parseInt(t, 16) } function tt(t) { return (255 * t[0] << 16) + (255 * t[1] << 8) + (255 * t[2] | 0) } var et = function() { for (var t = [], e = [], n = 0; n < 32; n++) t[n] = n, e[n] = n; t[O.NORMAL_NPM] = O.NORMAL, t[O.ADD_NPM] = O.ADD, t[O.SCREEN_NPM] = O.SCREEN, e[O.NORMAL] = O.NORMAL_NPM, e[O.ADD] = O.ADD_NPM, e[O.SCREEN] = O.SCREEN_NPM; var r = []; return r.push(e), r.push(t), r }(); function nt(t, e) { return et[e ? 1 : 0][t] } function rt(t, e, n, r) { return n = n || new Float32Array(4), r || void 0 === r ? (n[0] = t[0] * e, n[1] = t[1] * e, n[2] = t[2] * e) : (n[0] = t[0], n[1] = t[1], n[2] = t[2]), n[3] = e, n } function it(t, e) { if (1 === e) return (255 * e << 24) + t; if (0 === e) return 0; var n = t >> 16 & 255, r = t >> 8 & 255, i = 255 & t; return (255 * e << 24) + ((n = n * e + .5 | 0) << 16) + ((r = r * e + .5 | 0) << 8) + (i = i * e + .5 | 0) } function ot(t, e, n, r) { return (n = n || new Float32Array(4))[0] = (t >> 16 & 255) / 255, n[1] = (t >> 8 & 255) / 255, n[2] = (255 & t) / 255, (r || void 0 === r) && (n[0] *= e, n[1] *= e, n[2] *= e), n[3] = e, n } function at(t) { for (var e = 6 * t, n = new Uint16Array(e), r = 0, i = 0; r < e; r += 6, i += 4) n[r + 0] = i + 0, n[r + 1] = i + 1, n[r + 2] = i + 2, n[r + 3] = i + 0, n[r + 4] = i + 2, n[r + 5] = i + 3; return n } function st(t, e, n) { var r, i = t.length; if (!(e >= i || 0 === n)) { var o = i - (n = e + n > i ? i - e : n); for (r = e; r < o; ++r) t[r] = t[r + n]; t.length = o } } var At = 0; function ht() { return ++At } function ct(t) { return 0 === t ? 0 : t < 0 ? -1 : 1 } function ut(t) { return t += 0 === t, --t, t |= t >>> 1, t |= t >>> 2, t |= t >>> 4, t |= t >>> 8, (t |= t >>> 16) + 1 } function lt(t) { return !(t & t - 1 || !t) } function dt(t) { var e = (t > 65535) << 4, n = ((t >>>= e) > 255) << 3; return e |= n, e |= n = ((t >>>= n) > 15) << 2, (e |= n = ((t >>>= n) > 3) << 1) | (t >>>= n) >> 1 } var pt = {}, ft = Object.create(null), yt = Object.create(null); function xt() { var t; for (t in ft) ft[t].destroy(); for (t in yt) yt[t].destroy() } function mt() { var t; for (t in ft) delete ft[t]; for (t in yt) delete yt[t] } function gt(t) { var e, n, r, i = t.width, o = t.height, a = t.getContext("2d"), s = a.getImageData(0, 0, i, o).data, A = s.length, h = { top: null, left: null, right: null, bottom: null }, c = null; for (e = 0; e < A; e += 4) 0 !== s[e + 3] && (n = e / 4 % i, r = ~~(e / 4 / i), null === h.top && (h.top = r), null === h.left ? h.left = n : n < h.left && (h.left = n), null === h.right ? h.right = n + 1 : h.right < n && (h.right = n + 1), null === h.bottom ? h.bottom = r : h.bottom < r && (h.bottom = r)); return null !== h.top && (i = h.right - h.left, o = h.bottom - h.top + 1, c = a.getImageData(h.left, h.top, i, o)), { height: o, width: i, data: c } } var wt = function(t, e, n) { this.canvas = document.createElement("canvas"), this.context = this.canvas.getContext("2d"), this.resolution = n || C.RESOLUTION, this.resize(t, e) }, vt = { width: { configurable: !0 }, height: { configurable: !0 } }; wt.prototype.clear = function() { this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.clearRect(0, 0, this.canvas.width, this.canvas.height) }, wt.prototype.resize = function(t, e) { this.canvas.width = t * this.resolution, this.canvas.height = e * this.resolution }, wt.prototype.destroy = function() { this.context = null, this.canvas = null }, vt.width.get = function() { return this.canvas.width }, vt.width.set = function(t) { this.canvas.width = t }, vt.height.get = function() { return this.canvas.height }, vt.height.set = function(t) { this.canvas.height = t }, Object.defineProperties(wt.prototype, vt); var bt, _t = /^\s*data:(?:([\w-]+)\/([\w+.-]+))?(?:;charset=([\w-]+))?(?:;(base64))?,(.*)/i; function St(t) { var e = _t.exec(t); if (e) return { mediaType: e[1] ? e[1].toLowerCase() : void 0, subType: e[2] ? e[2].toLowerCase() : void 0, charset: e[3] ? e[3].toLowerCase() : void 0, encoding: e[4] ? e[4].toLowerCase() : void 0, data: e[5] } } function Et(t, e) { if (void 0 === e && (e = window.location), 0 === t.indexOf("data:")) return ""; e = e || window.location, bt || (bt = document.createElement("a")), bt.href = t; var n = !(t = R.a.parse(bt.href)).port && "" === e.port || t.port === e.port; return t.hostname === e.hostname && n && t.protocol === e.protocol ? "" : "anonymous" } function Ct(t, e) { var n = C.RETINA_PREFIX.exec(t); return n ? parseFloat(n[1]) : void 0 !== e ? e : 1 } var Tt = {}; function kt(t, e, n) { if (void 0 === n && (n = 3), !Tt[e]) { var r = (new Error).stack; void 0 === r ? console.warn("PixiJS Deprecation Warning: ", e + "\nDeprecated since v" + t) : (r = r.split("\n").splice(n).join("\n"), console.groupCollapsed ? (console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s", "color:#614108;background:#fffbe6", "font-weight:normal;color:#614108;background:#fffbe6", e + "\nDeprecated since v" + t), console.warn(r), console.groupEnd()) : (console.warn("PixiJS Deprecation Warning: ", e + "\nDeprecated since v" + t), console.warn(r))), Tt[e] = !0 } } /*! * @pixi/math - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/math is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ var It = function(t, e) { void 0 === t && (t = 0), void 0 === e && (e = 0), this.x = t, this.y = e }; It.prototype.clone = function() { return new It(this.x, this.y) }, It.prototype.copyFrom = function(t) { return this.set(t.x, t.y), this }, It.prototype.copyTo = function(t) { return t.set(this.x, this.y), t }, It.prototype.equals = function(t) { return t.x === this.x && t.y === this.y }, It.prototype.set = function(t, e) { this.x = t || 0, this.y = e || (0 !== e ? this.x : 0) }; var Dt = function(t, e, n, r) { void 0 === n && (n = 0), void 0 === r && (r = 0), this._x = n, this._y = r, this.cb = t, this.scope = e }, Pt = { x: { configurable: !0 }, y: { configurable: !0 } }; Dt.prototype.clone = function(t, e) { void 0 === t && (t = null), void 0 === e && (e = null); var n = t || this.cb, r = e || this.scope; return new Dt(n, r, this._x, this._y) }, Dt.prototype.set = function(t, e) { var n = t || 0, r = e || (0 !== e ? n : 0); this._x === n && this._y === r || (this._x = n, this._y = r, this.cb.call(this.scope)) }, Dt.prototype.copyFrom = function(t) { return this._x === t.x && this._y === t.y || (this._x = t.x, this._y = t.y, this.cb.call(this.scope)), this }, Dt.prototype.copyTo = function(t) { return t.set(this._x, this._y), t }, Dt.prototype.equals = function(t) { return t.x === this._x && t.y === this._y }, Pt.x.get = function() { return this._x }, Pt.x.set = function(t) { this._x !== t && (this._x = t, this.cb.call(this.scope)) }, Pt.y.get = function() { return this._y }, Pt.y.set = function(t) { this._y !== t && (this._y = t, this.cb.call(this.scope)) }, Object.defineProperties(Dt.prototype, Pt); var Rt = 2 * Math.PI, Bt = 180 / Math.PI, Mt = Math.PI / 180, Ot = { POLY: 0, RECT: 1, CIRC: 2, ELIP: 3, RREC: 4 }, Lt = function(t, e, n, r, i, o) { void 0 === t && (t = 1), void 0 === e && (e = 0), void 0 === n && (n = 0), void 0 === r && (r = 1), void 0 === i && (i = 0), void 0 === o && (o = 0), this.a = t, this.b = e, this.c = n, this.d = r, this.tx = i, this.ty = o, this.array = null }, Ht = { IDENTITY: { configurable: !0 }, TEMP_MATRIX: { configurable: !0 } }; Lt.prototype.fromArray = function(t) { this.a = t[0], this.b = t[1], this.c = t[3], this.d = t[4], this.tx = t[2], this.ty = t[5] }, Lt.prototype.set = function(t, e, n, r, i, o) { return this.a = t, this.b = e, this.c = n, this.d = r, this.tx = i, this.ty = o, this }, Lt.prototype.toArray = function(t, e) { this.array || (this.array = new Float32Array(9)); var n = e || this.array; return t ? (n[0] = this.a, n[1] = this.b, n[2] = 0, n[3] = this.c, n[4] = this.d, n[5] = 0, n[6] = this.tx, n[7] = this.ty, n[8] = 1) : (n[0] = this.a, n[1] = this.c, n[2] = this.tx, n[3] = this.b, n[4] = this.d, n[5] = this.ty, n[6] = 0, n[7] = 0, n[8] = 1), n }, Lt.prototype.apply = function(t, e) { e = e || new It; var n = t.x, r = t.y; return e.x = this.a * n + this.c * r + this.tx, e.y = this.b * n + this.d * r + this.ty, e }, Lt.prototype.applyInverse = function(t, e) { e = e || new It; var n = 1 / (this.a * this.d + this.c * -this.b), r = t.x, i = t.y; return e.x = this.d * n * r + -this.c * n * i + (this.ty * this.c - this.tx * this.d) * n, e.y = this.a * n * i + -this.b * n * r + (-this.ty * this.a + this.tx * this.b) * n, e }, Lt.prototype.translate = function(t, e) { return this.tx += t, this.ty += e, this }, Lt.prototype.scale = function(t, e) { return this.a *= t, this.d *= e, this.c *= t, this.b *= e, this.tx *= t, this.ty *= e, this }, Lt.prototype.rotate = function(t) { var e = Math.cos(t), n = Math.sin(t), r = this.a, i = this.c, o = this.tx; return this.a = r * e - this.b * n, this.b = r * n + this.b * e, this.c = i * e - this.d * n, this.d = i * n + this.d * e, this.tx = o * e - this.ty * n, this.ty = o * n + this.ty * e, this }, Lt.prototype.append = function(t) { var e = this.a, n = this.b, r = this.c, i = this.d; return this.a = t.a * e + t.b * r, this.b = t.a * n + t.b * i, this.c = t.c * e + t.d * r, this.d = t.c * n + t.d * i, this.tx = t.tx * e + t.ty * r + this.tx, this.ty = t.tx * n + t.ty * i + this.ty, this }, Lt.prototype.setTransform = function(t, e, n, r, i, o, a, s, A) { return this.a = Math.cos(a + A) * i, this.b = Math.sin(a + A) * i, this.c = -Math.sin(a - s) * o, this.d = Math.cos(a - s) * o, this.tx = t - (n * this.a + r * this.c), this.ty = e - (n * this.b + r * this.d), this }, Lt.prototype.prepend = function(t) { var e = this.tx; if (1 !== t.a || 0 !== t.b || 0 !== t.c || 1 !== t.d) { var n = this.a, r = this.c; this.a = n * t.a + this.b * t.c, this.b = n * t.b + this.b * t.d, this.c = r * t.a + this.d * t.c, this.d = r * t.b + this.d * t.d } return this.tx = e * t.a + this.ty * t.c + t.tx, this.ty = e * t.b + this.ty * t.d + t.ty, this }, Lt.prototype.decompose = function(t) { var e = this.a, n = this.b, r = this.c, i = this.d, o = -Math.atan2(-r, i), a = Math.atan2(n, e), s = Math.abs(o + a); return s < 1e-5 || Math.abs(Rt - s) < 1e-5 ? (t.rotation = a, t.skew.x = t.skew.y = 0) : (t.rotation = 0, t.skew.x = o, t.skew.y = a), t.scale.x = Math.sqrt(e * e + n * n), t.scale.y = Math.sqrt(r * r + i * i), t.position.x = this.tx, t.position.y = this.ty, t }, Lt.prototype.invert = function() { var t = this.a, e = this.b, n = this.c, r = this.d, i = this.tx, o = t * r - e * n; return this.a = r / o, this.b = -e / o, this.c = -n / o, this.d = t / o, this.tx = (n * this.ty - r * i) / o, this.ty = -(t * this.ty - e * i) / o, this }, Lt.prototype.identity = function() { return this.a = 1, this.b = 0, this.c = 0, this.d = 1, this.tx = 0, this.ty = 0, this }, Lt.prototype.clone = function() { var t = new Lt; return t.a = this.a, t.b = this.b, t.c = this.c, t.d = this.d, t.tx = this.tx, t.ty = this.ty, t }, Lt.prototype.copyTo = function(t) { return t.a = this.a, t.b = this.b, t.c = this.c, t.d = this.d, t.tx = this.tx, t.ty = this.ty, t }, Lt.prototype.copyFrom = function(t) { return this.a = t.a, this.b = t.b, this.c = t.c, this.d = t.d, this.tx = t.tx, this.ty = t.ty, this }, Ht.IDENTITY.get = function() { return new Lt }, Ht.TEMP_MATRIX.get = function() { return new Lt }, Object.defineProperties(Lt, Ht); var zt = [1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1, 0, 1], Ft = [0, 1, 1, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, -1, -1, -1], Nt = [0, -1, -1, -1, 0, 1, 1, 1, 0, 1, 1, 1, 0, -1, -1, -1], Ut = [1, 1, 0, -1, -1, -1, 0, 1, -1, -1, 0, 1, 1, 1, 0, -1], Qt = [], jt = []; function Xt(t) { return t < 0 ? -1 : t > 0 ? 1 : 0 }! function() { for (var t = 0; t < 16; t++) { var e = []; jt.push(e); for (var n = 0; n < 16; n++) for (var r = Xt(zt[t] * zt[n] + Nt[t] * Ft[n]), i = Xt(Ft[t] * zt[n] + Ut[t] * Ft[n]), o = Xt(zt[t] * Nt[n] + Nt[t] * Ut[n]), a = Xt(Ft[t] * Nt[n] + Ut[t] * Ut[n]), s = 0; s < 16; s++) if (zt[s] === r && Ft[s] === i && Nt[s] === o && Ut[s] === a) { e.push(s); break } } for (var A = 0; A < 16; A++) { var h = new Lt; h.set(zt[A], Ft[A], Nt[A], Ut[A], 0, 0), Qt.push(h) } }(); var Gt = { E: 0, SE: 1, S: 2, SW: 3, W: 4, NW: 5, N: 6, NE: 7, MIRROR_VERTICAL: 8, MIRROR_HORIZONTAL: 12, uX: function(t) { return zt[t] }, uY: function(t) { return Ft[t] }, vX: function(t) { return Nt[t] }, vY: function(t) { return Ut[t] }, inv: function(t) { return 8 & t ? 15 & t : 7 & -t }, add: function(t, e) { return jt[t][e] }, sub: function(t, e) { return jt[t][Gt.inv(e)] }, rotate180: function(t) { return 4 ^ t }, isVertical: function(t) { return 2 == (3 & t) }, byDirection: function(t, e) { return 2 * Math.abs(t) <= Math.abs(e) ? e >= 0 ? Gt.S : Gt.N : 2 * Math.abs(e) <= Math.abs(t) ? t > 0 ? Gt.E : Gt.W : e > 0 ? t > 0 ? Gt.SE : Gt.SW : t > 0 ? Gt.NE : Gt.NW }, matrixAppendRotationInv: function(t, e, n, r) { void 0 === n && (n = 0), void 0 === r && (r = 0); var i = Qt[Gt.inv(e)]; i.tx = n, i.ty = r, t.append(i) } }, Wt = function() { this.worldTransform = new Lt, this.localTransform = new Lt, this.position = new Dt(this.onChange, this, 0, 0), this.scale = new Dt(this.onChange, this, 1, 1), this.pivot = new Dt(this.onChange, this, 0, 0), this.skew = new Dt(this.updateSkew, this, 0, 0), this._rotation = 0, this._cx = 1, this._sx = 0, this._cy = 0, this._sy = 1, this._localID = 0, this._currentLocalID = 0, this._worldID = 0, this._parentID = 0 }, Yt = { rotation: { configurable: !0 } }; Wt.prototype.onChange = function() { this._localID++ }, Wt.prototype.updateSkew = function() { this._cx = Math.cos(this._rotation + this.skew._y), this._sx = Math.sin(this._rotation + this.skew._y), this._cy = -Math.sin(this._rotation - this.skew._x), this._sy = Math.cos(this._rotation - this.skew._x), this._localID++ }, Wt.prototype.updateLocalTransform = function() { var t = this.localTransform; this._localID !== this._currentLocalID && (t.a = this._cx * this.scale._x, t.b = this._sx * this.scale._x, t.c = this._cy * this.scale._y, t.d = this._sy * this.scale._y, t.tx = this.position._x - (this.pivot._x * t.a + this.pivot._y * t.c), t.ty = this.position._y - (this.pivot._x * t.b + this.pivot._y * t.d), this._currentLocalID = this._localID, this._parentID = -1) }, Wt.prototype.updateTransform = function(t) { var e = this.localTransform; if (this._localID !== this._currentLocalID && (e.a = this._cx * this.scale._x, e.b = this._sx * this.scale._x, e.c = this._cy * this.scale._y, e.d = this._sy * this.scale._y, e.tx = this.position._x - (this.pivot._x * e.a + this.pivot._y * e.c), e.ty = this.position._y - (this.pivot._x * e.b + this.pivot._y * e.d), this._currentLocalID = this._localID, this._parentID = -1), this._parentID !== t._worldID) { var n = t.worldTransform, r = this.worldTransform; r.a = e.a * n.a + e.b * n.c, r.b = e.a * n.b + e.b * n.d, r.c = e.c * n.a + e.d * n.c, r.d = e.c * n.b + e.d * n.d, r.tx = e.tx * n.a + e.ty * n.c + n.tx, r.ty = e.tx * n.b + e.ty * n.d + n.ty, this._parentID = t._worldID, this._worldID++ } }, Wt.prototype.setFromMatrix = function(t) { t.decompose(this), this._localID++ }, Yt.rotation.get = function() { return this._rotation }, Yt.rotation.set = function(t) { this._rotation !== t && (this._rotation = t, this.updateSkew()) }, Object.defineProperties(Wt.prototype, Yt), Wt.IDENTITY = new Wt; var Kt = function(t, e, n, r) { void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === n && (n = 0), void 0 === r && (r = 0), this.x = Number(t), this.y = Number(e), this.width = Number(n), this.height = Number(r), this.type = Ot.RECT }, Vt = { left: { configurable: !0 }, right: { configurable: !0 }, top: { configurable: !0 }, bottom: { configurable: !0 } }, qt = { EMPTY: { configurable: !0 } }; Vt.left.get = function() { return this.x }, Vt.right.get = function() { return this.x + this.width }, Vt.top.get = function() { return this.y }, Vt.bottom.get = function() { return this.y + this.height }, qt.EMPTY.get = function() { return new Kt(0, 0, 0, 0) }, Kt.prototype.clone = function() { return new Kt(this.x, this.y, this.width, this.height) }, Kt.prototype.copyFrom = function(t) { return this.x = t.x, this.y = t.y, this.width = t.width, this.height = t.height, this }, Kt.prototype.copyTo = function(t) { return t.x = this.x, t.y = this.y, t.width = this.width, t.height = this.height, t }, Kt.prototype.contains = function(t, e) { return !(this.width <= 0 || this.height <= 0) && (t >= this.x && t < this.x + this.width && e >= this.y && e < this.y + this.height) }, Kt.prototype.pad = function(t, e) { t = t || 0, e = e || (0 !== e ? t : 0), this.x -= t, this.y -= e, this.width += 2 * t, this.height += 2 * e }, Kt.prototype.fit = function(t) { var e = Math.max(this.x, t.x), n = Math.min(this.x + this.width, t.x + t.width), r = Math.max(this.y, t.y), i = Math.min(this.y + this.height, t.y + t.height); this.x = e, this.width = Math.max(n - e, 0), this.y = r, this.height = Math.max(i - r, 0) }, Kt.prototype.ceil = function(t, e) { void 0 === t && (t = 1), void 0 === e && (e = .001); var n = Math.ceil((this.x + this.width - e) * t) / t, r = Math.ceil((this.y + this.height - e) * t) / t; this.x = Math.floor((this.x + e) * t) / t, this.y = Math.floor((this.y + e) * t) / t, this.width = n - this.x, this.height = r - this.y }, Kt.prototype.enlarge = function(t) { var e = Math.min(this.x, t.x), n = Math.max(this.x + this.width, t.x + t.width), r = Math.min(this.y, t.y), i = Math.max(this.y + this.height, t.y + t.height); this.x = e, this.width = n - e, this.y = r, this.height = i - r }, Object.defineProperties(Kt.prototype, Vt), Object.defineProperties(Kt, qt); var Jt = function(t, e, n) { void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === n && (n = 0), this.x = t, this.y = e, this.radius = n, this.type = Ot.CIRC }; Jt.prototype.clone = function() { return new Jt(this.x, this.y, this.radius) }, Jt.prototype.contains = function(t, e) { if (this.radius <= 0) return !1; var n = this.radius * this.radius, r = this.x - t, i = this.y - e; return (r *= r) + (i *= i) <= n }, Jt.prototype.getBounds = function() { return new Kt(this.x - this.radius, this.y - this.radius, 2 * this.radius, 2 * this.radius) }; var Zt = function(t, e, n, r) { void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === n && (n = 0), void 0 === r && (r = 0), this.x = t, this.y = e, this.width = n, this.height = r, this.type = Ot.ELIP }; Zt.prototype.clone = function() { return new Zt(this.x, this.y, this.width, this.height) }, Zt.prototype.contains = function(t, e) { if (this.width <= 0 || this.height <= 0) return !1; var n = (t - this.x) / this.width, r = (e - this.y) / this.height; return (n *= n) + (r *= r) <= 1 }, Zt.prototype.getBounds = function() { return new Kt(this.x - this.width, this.y - this.height, this.width, this.height) }; var $t = function() { for (var t = [], e = arguments.length; e--;) t[e] = arguments[e]; if (Array.isArray(t[0]) && (t = t[0]), t[0] instanceof It) { for (var n = [], r = 0, i = t.length; r < i; r++) n.push(t[r].x, t[r].y); t = n } this.points = t, this.type = Ot.POLY, this.closeStroke = !0 }; $t.prototype.clone = function() { var t = new $t(this.points.slice()); return t.closeStroke = this.closeStroke, t }, $t.prototype.contains = function(t, e) { for (var n = !1, r = this.points.length / 2, i = 0, o = r - 1; i < r; o = i++) { var a = this.points[2 * i], s = this.points[2 * i + 1], A = this.points[2 * o], h = this.points[2 * o + 1]; s > e != h > e && t < (e - s) / (h - s) * (A - a) + a && (n = !n) } return n }; var te = function(t, e, n, r, i) { void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === n && (n = 0), void 0 === r && (r = 0), void 0 === i && (i = 20), this.x = t, this.y = e, this.width = n, this.height = r, this.radius = i, this.type = Ot.RREC }; te.prototype.clone = function() { return new te(this.x, this.y, this.width, this.height, this.radius) }, te.prototype.contains = function(t, e) { if (this.width <= 0 || this.height <= 0) return !1; if (t >= this.x && t <= this.x + this.width && e >= this.y && e <= this.y + this.height) { if (e >= this.y + this.radius && e <= this.y + this.height - this.radius || t >= this.x + this.radius && t <= this.x + this.width - this.radius) return !0; var n = t - (this.x + this.radius), r = e - (this.y + this.radius), i = this.radius * this.radius; if (n * n + r * r <= i) return !0; if ((n = t - (this.x + this.width - this.radius)) * n + r * r <= i) return !0; if (n * n + (r = e - (this.y + this.height - this.radius)) * r <= i) return !0; if ((n = t - (this.x + this.radius)) * n + r * r <= i) return !0 } return !1 }, /*! * @pixi/display - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/display is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ C.SORTABLE_CHILDREN = !1; var ee = function() { this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0, this.rect = null }; ee.prototype.isEmpty = function() { return this.minX > this.maxX || this.minY > this.maxY }, ee.prototype.clear = function() { this.updateID++, this.minX = 1 / 0, this.minY = 1 / 0, this.maxX = -1 / 0, this.maxY = -1 / 0 }, ee.prototype.getRectangle = function(t) { return this.minX > this.maxX || this.minY > this.maxY ? Kt.EMPTY : ((t = t || new Kt(0, 0, 1, 1)).x = this.minX, t.y = this.minY, t.width = this.maxX - this.minX, t.height = this.maxY - this.minY, t) }, ee.prototype.addPoint = function(t) { this.minX = Math.min(this.minX, t.x), this.maxX = Math.max(this.maxX, t.x), this.minY = Math.min(this.minY, t.y), this.maxY = Math.max(this.maxY, t.y) }, ee.prototype.addQuad = function(t) { var e = this.minX, n = this.minY, r = this.maxX, i = this.maxY, o = t[0], a = t[1]; e = o < e ? o : e, n = a < n ? a : n, r = o > r ? o : r, i = a > i ? a : i, e = (o = t[2]) < e ? o : e, n = (a = t[3]) < n ? a : n, r = o > r ? o : r, i = a > i ? a : i, e = (o = t[4]) < e ? o : e, n = (a = t[5]) < n ? a : n, r = o > r ? o : r, i = a > i ? a : i, e = (o = t[6]) < e ? o : e, n = (a = t[7]) < n ? a : n, r = o > r ? o : r, i = a > i ? a : i, this.minX = e, this.minY = n, this.maxX = r, this.maxY = i }, ee.prototype.addFrame = function(t, e, n, r, i) { var o = t.worldTransform, a = o.a, s = o.b, A = o.c, h = o.d, c = o.tx, u = o.ty, l = this.minX, d = this.minY, p = this.maxX, f = this.maxY, y = a * e + A * n + c, x = s * e + h * n + u; l = y < l ? y : l, d = x < d ? x : d, p = y > p ? y : p, f = x > f ? x : f, l = (y = a * r + A * n + c) < l ? y : l, d = (x = s * r + h * n + u) < d ? x : d, p = y > p ? y : p, f = x > f ? x : f, l = (y = a * e + A * i + c) < l ? y : l, d = (x = s * e + h * i + u) < d ? x : d, p = y > p ? y : p, f = x > f ? x : f, l = (y = a * r + A * i + c) < l ? y : l, d = (x = s * r + h * i + u) < d ? x : d, p = y > p ? y : p, f = x > f ? x : f, this.minX = l, this.minY = d, this.maxX = p, this.maxY = f }, ee.prototype.addVertexData = function(t, e, n) { for (var r = this.minX, i = this.minY, o = this.maxX, a = this.maxY, s = e; s < n; s += 2) { var A = t[s], h = t[s + 1]; r = A < r ? A : r, i = h < i ? h : i, o = A > o ? A : o, a = h > a ? h : a } this.minX = r, this.minY = i, this.maxX = o, this.maxY = a }, ee.prototype.addVertices = function(t, e, n, r) { for (var i = t.worldTransform, o = i.a, a = i.b, s = i.c, A = i.d, h = i.tx, c = i.ty, u = this.minX, l = this.minY, d = this.maxX, p = this.maxY, f = n; f < r; f += 2) { var y = e[f], x = e[f + 1], m = o * y + s * x + h, g = A * x + a * y + c; u = m < u ? m : u, l = g < l ? g : l, d = m > d ? m : d, p = g > p ? g : p } this.minX = u, this.minY = l, this.maxX = d, this.maxY = p }, ee.prototype.addBounds = function(t) { var e = this.minX, n = this.minY, r = this.maxX, i = this.maxY; this.minX = t.minX < e ? t.minX : e, this.minY = t.minY < n ? t.minY : n, this.maxX = t.maxX > r ? t.maxX : r, this.maxY = t.maxY > i ? t.maxY : i }, ee.prototype.addBoundsMask = function(t, e) { var n = t.minX > e.minX ? t.minX : e.minX, r = t.minY > e.minY ? t.minY : e.minY, i = t.maxX < e.maxX ? t.maxX : e.maxX, o = t.maxY < e.maxY ? t.maxY : e.maxY; if (n <= i && r <= o) { var a = this.minX, s = this.minY, A = this.maxX, h = this.maxY; this.minX = n < a ? n : a, this.minY = r < s ? r : s, this.maxX = i > A ? i : A, this.maxY = o > h ? o : h } }, ee.prototype.addBoundsArea = function(t, e) { var n = t.minX > e.x ? t.minX : e.x, r = t.minY > e.y ? t.minY : e.y, i = t.maxX < e.x + e.width ? t.maxX : e.x + e.width, o = t.maxY < e.y + e.height ? t.maxY : e.y + e.height; if (n <= i && r <= o) { var a = this.minX, s = this.minY, A = this.maxX, h = this.maxY; this.minX = n < a ? n : a, this.minY = r < s ? r : s, this.maxX = i > A ? i : A, this.maxY = o > h ? o : h } }; var ne = function(t) { function e() { t.call(this), this.tempDisplayObjectParent = null, this.transform = new Wt, this.alpha = 1, this.visible = !0, this.renderable = !0, this.parent = null, this.worldAlpha = 1, this._lastSortedIndex = 0, this._zIndex = 0, this.filterArea = null, this.filters = null, this._enabledFilters = null, this._bounds = new ee, this._boundsID = 0, this._lastBoundsID = -1, this._boundsRect = null, this._localBoundsRect = null, this._mask = null, this._destroyed = !1, this.isSprite = !1 } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { _tempDisplayObjectParent: { configurable: !0 }, x: { configurable: !0 }, y: { configurable: !0 }, worldTransform: { configurable: !0 }, localTransform: { configurable: !0 }, position: { configurable: !0 }, scale: { configurable: !0 }, pivot: { configurable: !0 }, skew: { configurable: !0 }, rotation: { configurable: !0 }, angle: { configurable: !0 }, zIndex: { configurable: !0 }, worldVisible: { configurable: !0 }, mask: { configurable: !0 } }; return e.mixin = function(t) { for (var n = Object.keys(t), r = 0; r < n.length; ++r) { var i = n[r]; Object.defineProperty(e.prototype, i, Object.getOwnPropertyDescriptor(t, i)) } }, n._tempDisplayObjectParent.get = function() { return null === this.tempDisplayObjectParent && (this.tempDisplayObjectParent = new e), this.tempDisplayObjectParent }, e.prototype.updateTransform = function() { this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha, this._bounds.updateID++ }, e.prototype._recursivePostUpdateTransform = function() { this.parent ? (this.parent._recursivePostUpdateTransform(), this.transform.updateTransform(this.parent.transform)) : this.transform.updateTransform(this._tempDisplayObjectParent.transform) }, e.prototype.getBounds = function(t, e) { return t || (this.parent ? (this._recursivePostUpdateTransform(), this.updateTransform()) : (this.parent = this._tempDisplayObjectParent, this.updateTransform(), this.parent = null)), this._boundsID !== this._lastBoundsID && this.calculateBounds(), e || (this._boundsRect || (this._boundsRect = new Kt), e = this._boundsRect), this._bounds.getRectangle(e) }, e.prototype.getLocalBounds = function(t) { var e = this.transform, n = this.parent; this.parent = null, this.transform = this._tempDisplayObjectParent.transform, t || (this._localBoundsRect || (this._localBoundsRect = new Kt), t = this._localBoundsRect); var r = this.getBounds(!1, t); return this.parent = n, this.transform = e, r }, e.prototype.toGlobal = function(t, e, n) { return void 0 === n && (n = !1), n || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.apply(t, e) }, e.prototype.toLocal = function(t, e, n, r) { return e && (t = e.toGlobal(t, n, r)), r || (this._recursivePostUpdateTransform(), this.parent ? this.displayObjectUpdateTransform() : (this.parent = this._tempDisplayObjectParent, this.displayObjectUpdateTransform(), this.parent = null)), this.worldTransform.applyInverse(t, n) }, e.prototype.render = function(t) {}, e.prototype.setParent = function(t) { if (!t || !t.addChild) throw new Error("setParent: Argument must be a Container"); return t.addChild(this), t }, e.prototype.setTransform = function(t, e, n, r, i, o, a, s, A) { return void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === n && (n = 1), void 0 === r && (r = 1), void 0 === i && (i = 0), void 0 === o && (o = 0), void 0 === a && (a = 0), void 0 === s && (s = 0), void 0 === A && (A = 0), this.position.x = t, this.position.y = e, this.scale.x = n || 1, this.scale.y = r || 1, this.rotation = i, this.skew.x = o, this.skew.y = a, this.pivot.x = s, this.pivot.y = A, this }, e.prototype.destroy = function() { this.removeAllListeners(), this.parent && this.parent.removeChild(this), this.transform = null, this.parent = null, this._bounds = null, this._currentBounds = null, this._mask = null, this.filterArea = null, this.interactive = !1, this.interactiveChildren = !1, this._destroyed = !0 }, n.x.get = function() { return this.position.x }, n.x.set = function(t) { this.transform.position.x = t }, n.y.get = function() { return this.position.y }, n.y.set = function(t) { this.transform.position.y = t }, n.worldTransform.get = function() { return this.transform.worldTransform }, n.localTransform.get = function() { return this.transform.localTransform }, n.position.get = function() { return this.transform.position }, n.position.set = function(t) { this.transform.position.copyFrom(t) }, n.scale.get = function() { return this.transform.scale }, n.scale.set = function(t) { this.transform.scale.copyFrom(t) }, n.pivot.get = function() { return this.transform.pivot }, n.pivot.set = function(t) { this.transform.pivot.copyFrom(t) }, n.skew.get = function() { return this.transform.skew }, n.skew.set = function(t) { this.transform.skew.copyFrom(t) }, n.rotation.get = function() { return this.transform.rotation }, n.rotation.set = function(t) { this.transform.rotation = t }, n.angle.get = function() { return this.transform.rotation * Bt }, n.angle.set = function(t) { this.transform.rotation = t * Mt }, n.zIndex.get = function() { return this._zIndex }, n.zIndex.set = function(t) { this._zIndex = t, this.parent && (this.parent.sortDirty = !0) }, n.worldVisible.get = function() { var t = this; do { if (!t.visible) return !1; t = t.parent } while (t); return !0 }, n.mask.get = function() { return this._mask }, n.mask.set = function(t) { this._mask && (this._mask.renderable = !0, this._mask.isMask = !1), this._mask = t, this._mask && (this._mask.renderable = !1, this._mask.isMask = !0) }, Object.defineProperties(e.prototype, n), e }(k.a); function re(t, e) { return t.zIndex === e.zIndex ? t._lastSortedIndex - e._lastSortedIndex : t.zIndex - e.zIndex } ne.prototype.displayObjectUpdateTransform = ne.prototype.updateTransform; var ie = function(t) { function e() { t.call(this), this.children = [], this.sortableChildren = C.SORTABLE_CHILDREN, this.sortDirty = !1 } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { width: { configurable: !0 }, height: { configurable: !0 } }; return e.prototype.onChildrenChange = function() {}, e.prototype.addChild = function(t) { var e = arguments, n = arguments.length; if (n > 1) for (var r = 0; r < n; r++) this.addChild(e[r]); else t.parent && t.parent.removeChild(t), t.parent = this, this.sortDirty = !0, t.transform._parentID = -1, this.children.push(t), this._boundsID++, this.onChildrenChange(this.children.length - 1), this.emit("childAdded", t, this, this.children.length - 1), t.emit("added", this); return t }, e.prototype.addChildAt = function(t, e) { if (e < 0 || e > this.children.length) throw new Error(t + "addChildAt: The index " + e + " supplied is out of bounds " + this.children.length); return t.parent && t.parent.removeChild(t), t.parent = this, this.sortDirty = !0, t.transform._parentID = -1, this.children.splice(e, 0, t), this._boundsID++, this.onChildrenChange(e), t.emit("added", this), this.emit("childAdded", t, this, e), t }, e.prototype.swapChildren = function(t, e) { if (t !== e) { var n = this.getChildIndex(t), r = this.getChildIndex(e); this.children[n] = e, this.children[r] = t, this.onChildrenChange(n < r ? n : r) } }, e.prototype.getChildIndex = function(t) { var e = this.children.indexOf(t); if (-1 === e) throw new Error("The supplied DisplayObject must be a child of the caller"); return e }, e.prototype.setChildIndex = function(t, e) { if (e < 0 || e >= this.children.length) throw new Error("The index " + e + " supplied is out of bounds " + this.children.length); var n = this.getChildIndex(t); st(this.children, n, 1), this.children.splice(e, 0, t), this.onChildrenChange(e) }, e.prototype.getChildAt = function(t) { if (t < 0 || t >= this.children.length) throw new Error("getChildAt: Index (" + t + ") does not exist."); return this.children[t] }, e.prototype.removeChild = function(t) { var e = arguments, n = arguments.length; if (n > 1) for (var r = 0; r < n; r++) this.removeChild(e[r]); else { var i = this.children.indexOf(t); if (-1 === i) return null; t.parent = null, t.transform._parentID = -1, st(this.children, i, 1), this._boundsID++, this.onChildrenChange(i), t.emit("removed", this), this.emit("childRemoved", t, this, i) } return t }, e.prototype.removeChildAt = function(t) { var e = this.getChildAt(t); return e.parent = null, e.transform._parentID = -1, st(this.children, t, 1), this._boundsID++, this.onChildrenChange(t), e.emit("removed", this), this.emit("childRemoved", e, this, t), e }, e.prototype.removeChildren = function(t, e) { void 0 === t && (t = 0); var n, r = t, i = "number" == typeof e ? e : this.children.length, o = i - r; if (o > 0 && o <= i) { n = this.children.splice(r, o); for (var a = 0; a < n.length; ++a) n[a].parent = null, n[a].transform && (n[a].transform._parentID = -1); this._boundsID++, this.onChildrenChange(t); for (var s = 0; s < n.length; ++s) n[s].emit("removed", this), this.emit("childRemoved", n[s], this, s); return n } if (0 === o && 0 === this.children.length) return []; throw new RangeError("removeChildren: numeric values are outside the acceptable range.") }, e.prototype.sortChildren = function() { for (var t = !1, e = 0, n = this.children.length; e < n; ++e) { var r = this.children[e]; r._lastSortedIndex = e, t || 0 === r.zIndex || (t = !0) } t && this.children.length > 1 && this.children.sort(re), this.sortDirty = !1 }, e.prototype.updateTransform = function() { this.sortableChildren && this.sortDirty && this.sortChildren(), this._boundsID++, this.transform.updateTransform(this.parent.transform), this.worldAlpha = this.alpha * this.parent.worldAlpha; for (var t = 0, e = this.children.length; t < e; ++t) { var n = this.children[t]; n.visible && n.updateTransform() } }, e.prototype.calculateBounds = function() { this._bounds.clear(), this._calculateBounds(); for (var t = 0; t < this.children.length; t++) { var e = this.children[t]; e.visible && e.renderable && (e.calculateBounds(), e._mask ? (e._mask.calculateBounds(), this._bounds.addBoundsMask(e._bounds, e._mask._bounds)) : e.filterArea ? this._bounds.addBoundsArea(e._bounds, e.filterArea) : this._bounds.addBounds(e._bounds)) } this._lastBoundsID = this._boundsID }, e.prototype._calculateBounds = function() {}, e.prototype.render = function(t) { if (this.visible && !(this.worldAlpha <= 0) && this.renderable) if (this._mask || this.filters) this.renderAdvanced(t); else { this._render(t); for (var e = 0, n = this.children.length; e < n; ++e) this.children[e].render(t) } }, e.prototype.renderAdvanced = function(t) { t.batch.flush(); var e = this.filters, n = this._mask; if (e) { this._enabledFilters || (this._enabledFilters = []), this._enabledFilters.length = 0; for (var r = 0; r < e.length; r++) e[r].enabled && this._enabledFilters.push(e[r]); this._enabledFilters.length && t.filter.push(this, this._enabledFilters) } n && t.mask.push(this, this._mask), this._render(t); for (var i = 0, o = this.children.length; i < o; i++) this.children[i].render(t); t.batch.flush(), n && t.mask.pop(this, this._mask), e && this._enabledFilters && this._enabledFilters.length && t.filter.pop() }, e.prototype._render = function(t) {}, e.prototype.destroy = function(e) { t.prototype.destroy.call(this), this.sortDirty = !1; var n = "boolean" == typeof e ? e : e && e.children, r = this.removeChildren(0, this.children.length); if (n) for (var i = 0; i < r.length; ++i) r[i].destroy(e) }, n.width.get = function() { return this.scale.x * this.getLocalBounds().width }, n.width.set = function(t) { var e = this.getLocalBounds().width; this.scale.x = 0 !== e ? t / e : 1, this._width = t }, n.height.get = function() { return this.scale.y * this.getLocalBounds().height }, n.height.set = function(t) { var e = this.getLocalBounds().height; this.scale.y = 0 !== e ? t / e : 1, this._height = t }, Object.defineProperties(e.prototype, n), e }(ne); ie.prototype.containerUpdateTransform = ie.prototype.updateTransform; ne.mixin({ accessible: !1, accessibleTitle: null, accessibleHint: null, tabIndex: 0, _accessibleActive: !1, _accessibleDiv: !1 }); var oe = function(t) { this._hookDiv = null, (E.a.tablet || E.a.phone) && this.createTouchHook(); var e = document.createElement("div"); e.style.width = "100px", e.style.height = "100px", e.style.position = "absolute", e.style.top = "0px", e.style.left = "0px", e.style.zIndex = 2, this.div = e, this.pool = [], this.renderId = 0, this.debug = !1, this.renderer = t, this.children = [], this._onKeyDown = this._onKeyDown.bind(this), this._onMouseMove = this._onMouseMove.bind(this), this.isActive = !1, this.isMobileAccessibility = !1, window.addEventListener("keydown", this._onKeyDown, !1) }; oe.prototype.createTouchHook = function() { var t = this, e = document.createElement("button"); e.style.width = "1px", e.style.height = "1px", e.style.position = "absolute", e.style.top = "-1000px", e.style.left = "-1000px", e.style.zIndex = 2, e.style.backgroundColor = "#FF0000", e.title = "HOOK DIV", e.addEventListener("focus", function() { t.isMobileAccessibility = !0, t.activate(), t.destroyTouchHook() }), document.body.appendChild(e), this._hookDiv = e }, oe.prototype.destroyTouchHook = function() { this._hookDiv && (document.body.removeChild(this._hookDiv), this._hookDiv = null) }, oe.prototype.activate = function() { this.isActive || (this.isActive = !0, window.document.addEventListener("mousemove", this._onMouseMove, !0), window.removeEventListener("keydown", this._onKeyDown, !1), this.renderer.on("postrender", this.update, this), this.renderer.view.parentNode && this.renderer.view.parentNode.appendChild(this.div)) }, oe.prototype.deactivate = function() { this.isActive && !this.isMobileAccessibility && (this.isActive = !1, window.document.removeEventListener("mousemove", this._onMouseMove, !0), window.addEventListener("keydown", this._onKeyDown, !1), this.renderer.off("postrender", this.update), this.div.parentNode && this.div.parentNode.removeChild(this.div)) }, oe.prototype.updateAccessibleObjects = function(t) { if (t.visible) { t.accessible && t.interactive && (t._accessibleActive || this.addChild(t), t.renderId = this.renderId); for (var e = t.children, n = 0; n < e.length; n++) this.updateAccessibleObjects(e[n]) } }, oe.prototype.update = function() { if (this.renderer.renderingToScreen) { this.updateAccessibleObjects(this.renderer._lastObjectRendered); var t = this.renderer.view.getBoundingClientRect(), e = t.width / this.renderer.width, n = t.height / this.renderer.height, r = this.div; r.style.left = t.left + "px", r.style.top = t.top + "px", r.style.width = this.renderer.width + "px", r.style.height = this.renderer.height + "px"; for (var i = 0; i < this.children.length; i++) { var o = this.children[i]; if (o.renderId !== this.renderId) o._accessibleActive = !1, st(this.children, i, 1), this.div.removeChild(o._accessibleDiv), this.pool.push(o._accessibleDiv), o._accessibleDiv = null, i--, 0 === this.children.length && this.deactivate(); else { r = o._accessibleDiv; var a = o.hitArea, s = o.worldTransform; o.hitArea ? (r.style.left = (s.tx + a.x * s.a) * e + "px", r.style.top = (s.ty + a.y * s.d) * n + "px", r.style.width = a.width * s.a * e + "px", r.style.height = a.height * s.d * n + "px") : (a = o.getBounds(), this.capHitArea(a), r.style.left = a.x * e + "px", r.style.top = a.y * n + "px", r.style.width = a.width * e + "px", r.style.height = a.height * n + "px", r.title !== o.accessibleTitle && null !== o.accessibleTitle && (r.title = o.accessibleTitle), r.getAttribute("aria-label") !== o.accessibleHint && null !== o.accessibleHint && r.setAttribute("aria-label", o.accessibleHint)) } } this.renderId++ } }, oe.prototype.capHitArea = function(t) { t.x < 0 && (t.width += t.x, t.x = 0), t.y < 0 && (t.height += t.y, t.y = 0), t.x + t.width > this.renderer.width && (t.width = this.renderer.width - t.x), t.y + t.height > this.renderer.height && (t.height = this.renderer.height - t.y) }, oe.prototype.addChild = function(t) { var e = this.pool.pop(); e || ((e = document.createElement("button")).style.width = "100px", e.style.height = "100px", e.style.backgroundColor = this.debug ? "rgba(255,0,0,0.5)" : "transparent", e.style.position = "absolute", e.style.zIndex = 2, e.style.borderStyle = "none", navigator.userAgent.toLowerCase().indexOf("chrome") > -1 ? e.setAttribute("aria-live", "off") : e.setAttribute("aria-live", "polite"), navigator.userAgent.match(/rv:.*Gecko\//) ? e.setAttribute("aria-relevant", "additions") : e.setAttribute("aria-relevant", "text"), e.addEventListener("click", this._onClick.bind(this)), e.addEventListener("focus", this._onFocus.bind(this)), e.addEventListener("focusout", this._onFocusOut.bind(this))), t.accessibleTitle && null !== t.accessibleTitle ? e.title = t.accessibleTitle : t.accessibleHint && null !== t.accessibleHint || (e.title = "displayObject " + t.tabIndex), t.accessibleHint && null !== t.accessibleHint && e.setAttribute("aria-label", t.accessibleHint), t._accessibleActive = !0, t._accessibleDiv = e, e.displayObject = t, this.children.push(t), this.div.appendChild(t._accessibleDiv), t._accessibleDiv.tabIndex = t.tabIndex }, oe.prototype._onClick = function(t) { var e = this.renderer.plugins.interaction; e.dispatchEvent(t.target.displayObject, "click", e.eventData) }, oe.prototype._onFocus = function(t) { t.target.getAttribute("aria-live", "off") || t.target.setAttribute("aria-live", "assertive"); var e = this.renderer.plugins.interaction; e.dispatchEvent(t.target.displayObject, "mouseover", e.eventData) }, oe.prototype._onFocusOut = function(t) { t.target.getAttribute("aria-live", "off") || t.target.setAttribute("aria-live", "polite"); var e = this.renderer.plugins.interaction; e.dispatchEvent(t.target.displayObject, "mouseout", e.eventData) }, oe.prototype._onKeyDown = function(t) { 9 === t.keyCode && this.activate() }, oe.prototype._onMouseMove = function(t) { 0 === t.movementX && 0 === t.movementY || this.deactivate() }, oe.prototype.destroy = function() { this.destroyTouchHook(), this.div = null; for (var t = 0; t < this.children.length; t++) this.children[t].div = null; window.document.removeEventListener("mousemove", this._onMouseMove, !0), window.removeEventListener("keydown", this._onKeyDown), this.pool = null, this.children = null, this.renderer = null }; /*! * @pixi/runner - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/runner is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ var ae = function(t) { this.items = [], this._name = t }, se = { empty: { configurable: !0 }, name: { configurable: !0 } }; ae.prototype.emit = function(t, e, n, r, i, o, a, s) { if (arguments.length > 8) throw new Error("max arguments reached"); for (var A = this.name, h = this.items, c = 0, u = h.length; c < u; c++) h[c][A](t, e, n, r, i, o, a, s); return this }, ae.prototype.add = function(t) { return t[this._name] && (this.remove(t), this.items.push(t)), this }, ae.prototype.remove = function(t) { var e = this.items.indexOf(t); return -1 !== e && this.items.splice(e, 1), this }, ae.prototype.contains = function(t) { return -1 !== this.items.indexOf(t) }, ae.prototype.removeAll = function() { return this.items.length = 0, this }, ae.prototype.destroy = function() { this.removeAll(), this.items = null, this._name = null }, se.empty.get = function() { return 0 === this.items.length }, se.name.get = function() { return this._name }, Object.defineProperties(ae.prototype, se), ae.prototype.dispatch = ae.prototype.emit, ae.prototype.run = ae.prototype.emit, /*! * @pixi/ticker - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/ticker is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ C.TARGET_FPMS = .06; var Ae = 50, he = 25, ce = 0, ue = -25, le = -50, de = function(t, e, n, r) { void 0 === e && (e = null), void 0 === n && (n = 0), void 0 === r && (r = !1), this.fn = t, this.context = e, this.priority = n, this.once = r, this.next = null, this.previous = null, this._destroyed = !1 }; de.prototype.match = function(t, e) { return e = e || null, this.fn === t && this.context === e }, de.prototype.emit = function(t) { this.fn && (this.context ? this.fn.call(this.context, t) : this.fn(t)); var e = this.next; return this.once && this.destroy(!0), this._destroyed && (this.next = null), e }, de.prototype.connect = function(t) { this.previous = t, t.next && (t.next.previous = this), this.next = t.next, t.next = this }, de.prototype.destroy = function(t) { void 0 === t && (t = !1), this._destroyed = !0, this.fn = null, this.context = null, this.previous && (this.previous.next = this.next), this.next && (this.next.previous = this.previous); var e = this.next; return this.next = t ? null : e, this.previous = null, e }; var pe = function() { var t = this; this._head = new de(null, null, 1 / 0), this._requestId = null, this._maxElapsedMS = 100, this._minElapsedMS = 0, this.autoStart = !1, this.deltaTime = 1, this.deltaMS = 1 / C.TARGET_FPMS, this.elapsedMS = 1 / C.TARGET_FPMS, this.lastTime = -1, this.speed = 1, this.started = !1, this._protected = !1, this._tick = function(e) { t._requestId = null, t.started && (t.update(e), t.started && null === t._requestId && t._head.next && (t._requestId = requestAnimationFrame(t._tick))) } }, fe = { FPS: { configurable: !0 }, minFPS: { configurable: !0 }, maxFPS: { configurable: !0 } }, ye = { shared: { configurable: !0 }, system: { configurable: !0 } }; pe.prototype._requestIfNeeded = function() { null === this._requestId && this._head.next && (this.lastTime = performance.now(), this._requestId = requestAnimationFrame(this._tick)) }, pe.prototype._cancelIfNeeded = function() { null !== this._requestId && (cancelAnimationFrame(this._requestId), this._requestId = null) }, pe.prototype._startIfPossible = function() { this.started ? this._requestIfNeeded() : this.autoStart && this.start() }, pe.prototype.add = function(t, e, n) { return void 0 === n && (n = ce), this._addListener(new de(t, e, n)) }, pe.prototype.addOnce = function(t, e, n) { return void 0 === n && (n = ce), this._addListener(new de(t, e, n, !0)) }, pe.prototype._addListener = function(t) { var e = this._head.next, n = this._head; if (e) { for (; e;) { if (t.priority > e.priority) { t.connect(n); break } n = e, e = e.next } t.previous || t.connect(n) } else t.connect(n); return this._startIfPossible(), this }, pe.prototype.remove = function(t, e) { for (var n = this._head.next; n;) n = n.match(t, e) ? n.destroy() : n.next; return this._head.next || this._cancelIfNeeded(), this }, pe.prototype.start = function() { this.started || (this.started = !0, this._requestIfNeeded()) }, pe.prototype.stop = function() { this.started && (this.started = !1, this._cancelIfNeeded()) }, pe.prototype.destroy = function() { if (!this._protected) { this.stop(); for (var t = this._head.next; t;) t = t.destroy(!0); this._head.destroy(), this._head = null } }, pe.prototype.update = function(t) { var e; if (void 0 === t && (t = performance.now()), t > this.lastTime) { if ((e = this.elapsedMS = t - this.lastTime) > this._maxElapsedMS && (e = this._maxElapsedMS), e *= this.speed, this._minElapsedMS && e + 1 < this._minElapsedMS) return; this.deltaMS = e, this.deltaTime = this.deltaMS * C.TARGET_FPMS; for (var n = this._head, r = n.next; r;) r = r.emit(this.deltaTime); n.next || this._cancelIfNeeded() } else this.deltaTime = this.deltaMS = this.elapsedMS = 0; this.lastTime = t }, fe.FPS.get = function() { return 1e3 / this.elapsedMS }, fe.minFPS.get = function() { return 1e3 / this._maxElapsedMS }, fe.minFPS.set = function(t) { var e = Math.min(this.maxFPS, t), n = Math.min(Math.max(0, e) / 1e3, C.TARGET_FPMS); this._maxElapsedMS = 1 / n }, fe.maxFPS.get = function() { return this._minElapsedMS ? 1e3 / this._minElapsedMS : 1e3 * C.TARGET_FPMS }, fe.maxFPS.set = function(t) { if (t / 1e3 >= C.TARGET_FPMS) this._minElapsedMS = 0; else { var e = Math.max(this.minFPS, t), n = Math.min(Math.max(1, e) / 1e3, C.TARGET_FPMS); this._minElapsedMS = 1 / n } }, ye.shared.get = function() { if (!pe._shared) { var t = pe._shared = new pe; t.autoStart = !0, t._protected = !0 } return pe._shared }, ye.system.get = function() { if (!pe._system) { var t = pe._system = new pe; t.autoStart = !0, t._protected = !0 } return pe._system }, Object.defineProperties(pe.prototype, fe), Object.defineProperties(pe, ye); var xe = function() {}; xe.init = function(t) { var e = this; t = Object.assign({ autoStart: !0, sharedTicker: !1 }, t), Object.defineProperty(this, "ticker", { set: function(t) { this._ticker && this._ticker.remove(this.render, this), this._ticker = t, t && t.add(this.render, this, ue) }, get: function() { return this._ticker } }), this.stop = function() { e._ticker.stop() }, this.start = function() { e._ticker.start() }, this._ticker = null, this.ticker = t.sharedTicker ? pe.shared : new pe, t.autoStart && this.start() }, xe.destroy = function() { if (this._ticker) { var t = this._ticker; this.ticker = null, t.destroy() } }; /*! * @pixi/core - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/core is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ var me = function(t, e) { void 0 === t && (t = 0), void 0 === e && (e = 0), this._width = t, this._height = e, this.destroyed = !1, this.internal = !1, this.onResize = new ae("setRealSize", 2), this.onUpdate = new ae("update") }, ge = { valid: { configurable: !0 }, width: { configurable: !0 }, height: { configurable: !0 } }; me.prototype.bind = function(t) { this.onResize.add(t), this.onUpdate.add(t), (this._width || this._height) && this.onResize.run(this._width, this._height) }, me.prototype.unbind = function(t) { this.onResize.remove(t), this.onUpdate.remove(t) }, me.prototype.resize = function(t, e) { t === this._width && e === this._height || (this._width = t, this._height = e, this.onResize.run(t, e)) }, ge.valid.get = function() { return !!this._width && !!this._height }, me.prototype.update = function() { this.destroyed || this.onUpdate.run() }, me.prototype.load = function() { return Promise.resolve() }, ge.width.get = function() { return this._width }, ge.height.get = function() { return this._height }, me.prototype.upload = function(t, e, n) { return !1 }, me.prototype.style = function(t, e, n) { return !1 }, me.prototype.dispose = function() {}, me.prototype.destroy = function() { this.destroyed || (this.onResize.removeAll(), this.onResize = null, this.onUpdate.removeAll(), this.onUpdate = null, this.destroyed = !0, this.dispose()) }, Object.defineProperties(me.prototype, ge); var we = function(t) { function e(e) { var n = e.naturalWidth || e.videoWidth || e.width, r = e.naturalHeight || e.videoHeight || e.height; t.call(this, n, r), this.source = e } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.crossOrigin = function(t, e, n) { void 0 === n && 0 !== e.indexOf("data:") ? t.crossOrigin = Et(e) : !1 !== n && (t.crossOrigin = "string" == typeof n ? n : "anonymous") }, e.prototype.upload = function(t, e, n, r) { var i = t.gl, o = e.realWidth, a = e.realHeight; return r = r || this.source, i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL, e.premultiplyAlpha), e.target === i.TEXTURE_2D && n.width === o && n.height === a ? i.texSubImage2D(i.TEXTURE_2D, 0, 0, 0, e.format, e.type, r) : (n.width = o, n.height = a, i.texImage2D(e.target, 0, e.format, e.format, e.type, r)), !0 }, e.prototype.update = function() { if (!this.destroyed) { var e = this.source.naturalWidth || this.source.videoWidth || this.source.width, n = this.source.naturalHeight || this.source.videoHeight || this.source.height; this.resize(e, n), t.prototype.update.call(this) } }, e.prototype.dispose = function() { this.source = null }, e }(me), ve = function(t) { function e(e, n) { if (n = n || {}, !(e instanceof HTMLImageElement)) { var r = new Image; t.crossOrigin(r, e, n.crossorigin), r.src = e, e = r } t.call(this, e), this.url = e.src, this._process = null, this.preserveBitmap = !1, this.createBitmap = (void 0 !== n.createBitmap ? n.createBitmap : C.CREATE_IMAGE_BITMAP) && !!window.createImageBitmap, this.premultiplyAlpha = !1 !== n.premultiplyAlpha, this.bitmap = null, this._load = null, !1 !== n.autoLoad && this.load() } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.load = function(t) { var e = this; return void 0 !== t && (this.createBitmap = t), this._load ? this._load : (this._load = new Promise(function(t) { e.url = e.source.src; var n = e.source, r = function() { e.destroyed || (n.onload = null, n.onerror = null, e.resize(n.width, n.height), e._load = null, e.createBitmap ? t(e.process()) : t(e)) }; n.complete && n.src ? r() : n.onload = r }), this._load) }, e.prototype.process = function() { var t = this; return null !== this._process ? this._process : null === this.bitmap && window.createImageBitmap ? (this._process = window.createImageBitmap(this.source, 0, 0, this.source.width, this.source.height, { premultiplyAlpha: this.premultiplyAlpha ? "premultiply" : "none" }).then(function(e) { return t.destroyed ? Promise.reject() : (t.bitmap = e, t.update(), t._process = null, Promise.resolve(t)) }), this._process) : Promise.resolve(this) }, e.prototype.upload = function(e, n, r) { if (n.premultiplyAlpha = this.premultiplyAlpha, !this.createBitmap) return t.prototype.upload.call(this, e, n, r); if (!this.bitmap && (this.process(), !this.bitmap)) return !1; if (t.prototype.upload.call(this, e, n, r, this.bitmap), !this.preserveBitmap) { var i = !0; for (var o in n._glTextures) { var a = n._glTextures[o]; if (a !== r && a.dirtyId !== n.dirtyId) { i = !1; break } } i && (this.bitmap.close && this.bitmap.close(), this.bitmap = null) } return !0 }, e.prototype.dispose = function() { t.prototype.dispose.call(this), this.bitmap && (this.bitmap.close(), this.bitmap = null), this._process = null, this._load = null }, e }(we), be = []; function _e(t, e) { if (!t) return null; var n = ""; if ("string" == typeof t) { var r = /\.(\w{3,4})(?:$|\?|#)/i.exec(t); r && (n = r[1].toLowerCase()) } for (var i = be.length - 1; i >= 0; --i) { var o = be[i]; if (o.test && o.test(t, n)) return new o(t, e) } return new ve(t, e) } var Se = function(t) { function e(e, n) { var r = n || {}, i = r.width, o = r.height; if (!i || !o) throw new Error("BufferResource width or height invalid"); t.call(this, i, o), this.data = e } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.upload = function(t, e, n) { var r = t.gl; if (r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL, e.premultiplyAlpha), n.width === e.width && n.height === e.height) r.texSubImage2D(e.target, 0, 0, 0, e.width, e.height, e.format, e.type, this.data); else { n.width = e.width, n.height = e.height; var i = e.format; 2 === t.context.webGLVersion && e.type === t.gl.FLOAT && e.format === t.gl.RGBA && (i = t.gl.RGBA32F), r.texImage2D(e.target, 0, i, e.width, e.height, 0, e.format, e.type, this.data) } return !0 }, e.prototype.dispose = function() { this.data = null }, e.test = function(t) { return t instanceof Float32Array || t instanceof Uint8Array || t instanceof Uint32Array }, e }(me), Ee = { scaleMode: 0, format: H.RGBA, premultiplyAlpha: !1 }, Ce = function(t) { function e(e, n) { void 0 === e && (e = null), void 0 === n && (n = null), t.call(this); var r = (n = n || {}).premultiplyAlpha, i = n.mipmap, o = n.scaleMode, a = n.width, s = n.height, A = n.wrapMode, h = n.format, c = n.type, u = n.target, l = n.resolution, d = n.resourceOptions; !e || e instanceof me || ((e = _e(e, d)).internal = !0), this.width = a || 0, this.height = s || 0, this.resolution = l || C.RESOLUTION, this.mipmap = void 0 !== i ? i : C.MIPMAP_TEXTURES, this.wrapMode = A || C.WRAP_MODE, this.scaleMode = void 0 !== o ? o : C.SCALE_MODE, this.format = h || H.RGBA, this.type = c || F.UNSIGNED_BYTE, this.target = u || z.TEXTURE_2D, this.premultiplyAlpha = !1 !== r, this.uid = ht(), this.touched = 0, this.isPowerOfTwo = !1, this._refreshPOT(), this._glTextures = {}, this.dirtyId = 0, this.dirtyStyleId = 0, this.cacheId = null, this.valid = a > 0 && s > 0, this.textureCacheIds = [], this.destroyed = !1, this.resource = null, this._batchEnabled = 0, this.setResource(e) } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { realWidth: { configurable: !0 }, realHeight: { configurable: !0 } }; return n.realWidth.get = function() { return this.width * this.resolution }, n.realHeight.get = function() { return this.height * this.resolution }, e.prototype.setStyle = function(t, e) { var n; return void 0 !== t && t !== this.scaleMode && (this.scaleMode = t, n = !0), void 0 !== e && e !== this.mipmap && (this.mipmap = e, n = !0), n && this.dirtyStyleId++, this }, e.prototype.setSize = function(t, e, n) { return this.resolution = n || this.resolution, this.width = t, this.height = e, this._refreshPOT(), this.update(), this }, e.prototype.setRealSize = function(t, e, n) { return this.resolution = n || this.resolution, this.width = t / this.resolution, this.height = e / this.resolution, this._refreshPOT(), this.update(), this }, e.prototype._refreshPOT = function() { this.isPowerOfTwo = lt(this.realWidth) && lt(this.realHeight) }, e.prototype.setResolution = function(t) { var e = this.resolution; return e === t ? this : (this.resolution = t, this.valid && (this.width = this.width * e / t, this.height = this.height * e / t, this.emit("update", this)), this._refreshPOT(), this) }, e.prototype.setResource = function(t) { if (this.resource === t) return this; if (this.resource) throw new Error("Resource can be set only once"); return t.bind(this), this.resource = t, this }, e.prototype.update = function() { this.valid ? (this.dirtyId++, this.dirtyStyleId++, this.emit("update", this)) : this.width > 0 && this.height > 0 && (this.valid = !0, this.emit("loaded", this), this.emit("update", this)) }, e.prototype.destroy = function() { this.resource && (this.resource.unbind(this), this.resource.internal && this.resource.destroy(), this.resource = null), this.cacheId && (delete yt[this.cacheId], delete ft[this.cacheId], this.cacheId = null), this.dispose(), e.removeFromCache(this), this.textureCacheIds = null, this.destroyed = !0 }, e.prototype.dispose = function() { this.emit("dispose", this) }, e.from = function(t, n) { var r = null; "string" == typeof t ? r = t : (t._pixiId || (t._pixiId = "pixiid_" + ht()), r = t._pixiId); var i = yt[r]; return i || ((i = new e(t, n)).cacheId = r, e.addToCache(i, r)), i }, e.fromBuffer = function(t, n, r, i) { t = t || new Float32Array(n * r * 4); var o = new Se(t, { width: n, height: r }), a = t instanceof Float32Array ? F.FLOAT : F.UNSIGNED_BYTE; return new e(o, Object.assign(Ee, i || { width: n, height: r, type: a })) }, e.addToCache = function(t, e) { e && (-1 === t.textureCacheIds.indexOf(e) && t.textureCacheIds.push(e), yt[e] && console.warn("BaseTexture added to the cache with an id [" + e + "] that already had an entry"), yt[e] = t) }, e.removeFromCache = function(t) { if ("string" == typeof t) { var e = yt[t]; if (e) { var n = e.textureCacheIds.indexOf(t); return n > -1 && e.textureCacheIds.splice(n, 1), delete yt[t], e } } else if (t && t.textureCacheIds) { for (var r = 0; r < t.textureCacheIds.length; ++r) delete yt[t.textureCacheIds[r]]; return t.textureCacheIds.length = 0, t } return null }, Object.defineProperties(e.prototype, n), e }(k.a); Ce._globalBatch = 0; var Te = function(t) { function e(e, n) { var r; n = n || {}; var i = e; Array.isArray(e) && (r = e, i = e.length), t.call(this, n.width, n.height), this.items = [], this.itemDirtyIds = []; for (var o = 0; o < i; o++) { var a = new Ce; this.items.push(a), this.itemDirtyIds.push(-1) } if (this.length = i, this._load = null, r) for (var s = 0; s < i; s++) this.addResourceAt(_e(r[s], n), s) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.dispose = function() { for (var t = 0, e = this.length; t < e; t++) this.items[t].destroy(); this.items = null, this.itemDirtyIds = null, this._load = null }, e.prototype.addResourceAt = function(t, e) { if (!this.items[e]) throw new Error("Index " + e + " is out of bounds"); return t.valid && !this.valid && this.resize(t.width, t.height), this.items[e].setResource(t), this }, e.prototype.bind = function(e) { t.prototype.bind.call(this, e), e.target = z.TEXTURE_2D_ARRAY; for (var n = 0; n < this.length; n++) this.items[n].on("update", e.update, e) }, e.prototype.unbind = function(e) { t.prototype.unbind.call(this, e); for (var n = 0; n < this.length; n++) this.items[n].off("update", e.update, e) }, e.prototype.load = function() { var t = this; if (this._load) return this._load; var e = this.items.map(function(t) { return t.resource }), n = e.map(function(t) { return t.load() }); return this._load = Promise.all(n).then(function() { var n = e[0], r = n.width, i = n.height; return t.resize(r, i), Promise.resolve(t) }), this._load }, e.prototype.upload = function(t, e, n) { var r = this.length, i = this.itemDirtyIds, o = this.items, a = t.gl; n.dirtyId < 0 && a.texImage3D(a.TEXTURE_2D_ARRAY, 0, e.format, this._width, this._height, r, 0, e.format, e.type, null); for (var s = 0; s < r; s++) { var A = o[s]; i[s] < A.dirtyId && (i[s] = A.dirtyId, A.valid && a.texSubImage3D(a.TEXTURE_2D_ARRAY, 0, 0, 0, s, A.resource.width, A.resource.height, 1, e.format, e.type, A.resource.source)) } return !0 }, e }(me), ke = function(t) { function e() { t.apply(this, arguments) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.test = function(t) { return t instanceof HTMLCanvasElement }, e }(we), Ie = function(t) { function e(n, r) { if (r = r || {}, t.call(this, n, r), this.length !== e.SIDES) throw new Error("Invalid length. Got " + this.length + ", expected 6"); for (var i = 0; i < e.SIDES; i++) this.items[i].target = z.TEXTURE_CUBE_MAP_POSITIVE_X + i; !1 !== r.autoLoad && this.load() } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.bind = function(e) { t.prototype.bind.call(this, e), e.target = z.TEXTURE_CUBE_MAP }, e.prototype.upload = function(t, n, r) { for (var i = this.itemDirtyIds, o = 0; o < e.SIDES; o++) { var a = this.items[o]; i[o] < a.dirtyId && (i[o] = a.dirtyId, a.valid && a.resource.upload(t, a, r)) } return !0 }, e }(Te); Ie.SIDES = 6; var De = function(t) { function e(e, n) { n = n || {}, t.call(this, document.createElement("canvas")), this.svg = e, this.scale = n.scale || 1, this._resolve = null, this._crossorigin = n.crossorigin, this._load = null, !1 !== n.autoLoad && this.load() } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.load = function() { var t = this; return this._load ? this._load : (this._load = new Promise(function(e) { if (t._resolve = function() { t.resize(t.source.width, t.source.height), e(t) }, /^\]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i; var Pe = function(t) { function e(e, n) { if (n = n || {}, !(e instanceof HTMLVideoElement)) { var r = document.createElement("video"); r.setAttribute("webkit-playsinline", ""), r.setAttribute("playsinline", ""), "string" == typeof e && (e = [e]), t.crossOrigin(r, e[0].src || e[0], n.crossorigin); for (var i = 0; i < e.length; ++i) { var o = document.createElement("source"), a = e[i], s = a.src, A = a.mime, h = (s = s || e[i]).split("?").shift().toLowerCase(), c = h.substr(h.lastIndexOf(".") + 1); A = A || "video/" + c, o.src = s, o.type = A, r.appendChild(o) } e = r } t.call(this, e), this._autoUpdate = !0, this._isAutoUpdating = !1, this._updateFPS = n.updateFPS || 0, this._msToNextUpdate = 0, this.autoPlay = !1 !== n.autoPlay, this._load = null, this._resolve = null, this._onCanPlay = this._onCanPlay.bind(this), !1 !== n.autoLoad && this.load() } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { autoUpdate: { configurable: !0 }, updateFPS: { configurable: !0 } }; return e.prototype.update = function(e) { if (void 0 === e && (e = 0), !this.destroyed) { var n = pe.shared.elapsedMS * this.source.playbackRate; this._msToNextUpdate = Math.floor(this._msToNextUpdate - n), (!this._updateFPS || this._msToNextUpdate <= 0) && (t.prototype.update.call(this, e), this._msToNextUpdate = this._updateFPS ? Math.floor(1e3 / this._updateFPS) : 0) } }, e.prototype.load = function() { var t = this; if (this._load) return this._load; var e = this.source; return (e.readyState === e.HAVE_ENOUGH_DATA || e.readyState === e.HAVE_FUTURE_DATA) && e.width && e.height && (e.complete = !0), e.addEventListener("play", this._onPlayStart.bind(this)), e.addEventListener("pause", this._onPlayStop.bind(this)), this._isSourceReady() ? this._onCanPlay() : (e.addEventListener("canplay", this._onCanPlay), e.addEventListener("canplaythrough", this._onCanPlay)), this._load = new Promise(function(n) { t.valid ? n(t) : (t._resolve = n, e.load()) }), this._load }, e.prototype._isSourcePlaying = function() { var t = this.source; return t.currentTime > 0 && !1 === t.paused && !1 === t.ended && t.readyState > 2 }, e.prototype._isSourceReady = function() { return 3 === this.source.readyState || 4 === this.source.readyState }, e.prototype._onPlayStart = function() { this.valid || this._onCanPlay(), !this._isAutoUpdating && this.autoUpdate && (pe.shared.add(this.update, this), this._isAutoUpdating = !0) }, e.prototype._onPlayStop = function() { this._isAutoUpdating && (pe.shared.remove(this.update, this), this._isAutoUpdating = !1) }, e.prototype._onCanPlay = function() { var t = this.source; t.removeEventListener("canplay", this._onCanPlay), t.removeEventListener("canplaythrough", this._onCanPlay); var e = this.valid; this.resize(t.videoWidth, t.videoHeight), !e && this._resolve && (this._resolve(this), this._resolve = null), this._isSourcePlaying() ? this._onPlayStart() : this.autoPlay && t.play() }, e.prototype.dispose = function() { this._isAutoUpdating && pe.shared.remove(this.update, this), this.source && (this.source.pause(), this.source.src = "", this.source.load()), t.prototype.dispose.call(this) }, n.autoUpdate.get = function() { return this._autoUpdate }, n.autoUpdate.set = function(t) { t !== this._autoUpdate && (this._autoUpdate = t, !this._autoUpdate && this._isAutoUpdating ? (pe.shared.remove(this.update, this), this._isAutoUpdating = !1) : this._autoUpdate && !this._isAutoUpdating && (pe.shared.add(this.update, this), this._isAutoUpdating = !0)) }, n.updateFPS.get = function() { return this._updateFPS }, n.updateFPS.set = function(t) { t !== this._updateFPS && (this._updateFPS = t) }, e.test = function(t, n) { return t instanceof HTMLVideoElement || e.TYPES.indexOf(n) > -1 }, Object.defineProperties(e.prototype, n), e }(we); Pe.TYPES = ["mp4", "m4v", "webm", "ogg", "ogv", "h264", "avi", "mov"], be.push(ve, ke, Pe, De, Se, Ie, Te); var Re = function(t) { this.renderer = t, this.renderer.runners.contextChange.add(this) }; Re.prototype.contextChange = function(t) {}, Re.prototype.destroy = function() { this.renderer.runners.contextChange.remove(this), this.renderer = null }; var Be = function(t) { function e() { t.apply(this, arguments) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.upload = function(t, e, n) { var r = t.gl; return r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL, e.premultiplyAlpha), n.width === e.width && n.height === e.height ? r.texSubImage2D(e.target, 0, 0, 0, e.width, e.height, e.format, e.type, this.data) : (n.width = e.width, n.height = e.height, r.texImage2D(e.target, 0, r.DEPTH_COMPONENT16, e.width, e.height, 0, e.format, e.type, this.data)), !0 }, e }(Se), Me = function(t, e) { this.width = Math.ceil(t || 100), this.height = Math.ceil(e || 100), this.stencil = !1, this.depth = !1, this.dirtyId = 0, this.dirtyFormat = 0, this.dirtySize = 0, this.depthTexture = null, this.colorTextures = [], this.glFramebuffers = {}, this.disposeRunner = new ae("disposeFramebuffer", 2) }, Oe = { colorTexture: { configurable: !0 } }; Oe.colorTexture.get = function() { return this.colorTextures[0] }, Me.prototype.addColorTexture = function(t, e) { return void 0 === t && (t = 0), this.colorTextures[t] = e || new Ce(null, { scaleMode: 0, resolution: 1, mipmap: !1, width: this.width, height: this.height }), this.dirtyId++, this.dirtyFormat++, this }, Me.prototype.addDepthTexture = function(t) { return this.depthTexture = t || new Ce(new Be(null, { width: this.width, height: this.height }), { scaleMode: 0, resolution: 1, width: this.width, height: this.height, mipmap: !1, format: H.DEPTH_COMPONENT, type: F.UNSIGNED_SHORT }), this.dirtyId++, this.dirtyFormat++, this }, Me.prototype.enableDepth = function() { return this.depth = !0, this.dirtyId++, this.dirtyFormat++, this }, Me.prototype.enableStencil = function() { return this.stencil = !0, this.dirtyId++, this.dirtyFormat++, this }, Me.prototype.resize = function(t, e) { if (t = Math.ceil(t), e = Math.ceil(e), t !== this.width || e !== this.height) { this.width = t, this.height = e, this.dirtyId++, this.dirtySize++; for (var n = 0; n < this.colorTextures.length; n++) { var r = this.colorTextures[n], i = r.resolution; r.setSize(t / i, e / i) } if (this.depthTexture) { var o = this.depthTexture.resolution; this.depthTexture.setSize(t / o, e / o) } } }, Me.prototype.dispose = function() { this.disposeRunner.run(this, !1) }, Object.defineProperties(Me.prototype, Oe); var Le = function(t) { function e(e) { "number" == typeof e && (e = { width: arguments[0], height: arguments[1], scaleMode: arguments[2], resolution: arguments[3] }); t.call(this, null, e); var n = e || {}, r = n.width, i = n.height; this.mipmap = !1, this.width = Math.ceil(r) || 100, this.height = Math.ceil(i) || 100, this.valid = !0, this._canvasRenderTarget = null, this.clearColor = [0, 0, 0, 0], this.framebuffer = new Me(this.width * this.resolution, this.height * this.resolution).addColorTexture(0, this).enableStencil(), this.stencilMaskStack = [], this.filterStack = [{}] } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.resize = function(t, e) { t = Math.ceil(t), e = Math.ceil(e), this.framebuffer.resize(t * this.resolution, e * this.resolution) }, e.prototype.dispose = function() { this.framebuffer.dispose(), t.prototype.dispose.call(this) }, e.prototype.destroy = function() { t.prototype.destroy.call(this, !0), this.framebuffer = null, this.renderer = null }, e }(Ce), He = function() { this.x0 = 0, this.y0 = 0, this.x1 = 1, this.y1 = 0, this.x2 = 1, this.y2 = 1, this.x3 = 0, this.y3 = 1, this.uvsFloat32 = new Float32Array(8) }; He.prototype.set = function(t, e, n) { var r = e.width, i = e.height; if (n) { var o = t.width / 2 / r, a = t.height / 2 / i, s = t.x / r + o, A = t.y / i + a; n = Gt.add(n, Gt.NW), this.x0 = s + o * Gt.uX(n), this.y0 = A + a * Gt.uY(n), n = Gt.add(n, 2), this.x1 = s + o * Gt.uX(n), this.y1 = A + a * Gt.uY(n), n = Gt.add(n, 2), this.x2 = s + o * Gt.uX(n), this.y2 = A + a * Gt.uY(n), n = Gt.add(n, 2), this.x3 = s + o * Gt.uX(n), this.y3 = A + a * Gt.uY(n) } else this.x0 = t.x / r, this.y0 = t.y / i, this.x1 = (t.x + t.width) / r, this.y1 = t.y / i, this.x2 = (t.x + t.width) / r, this.y2 = (t.y + t.height) / i, this.x3 = t.x / r, this.y3 = (t.y + t.height) / i; this.uvsFloat32[0] = this.x0, this.uvsFloat32[1] = this.y0, this.uvsFloat32[2] = this.x1, this.uvsFloat32[3] = this.y1, this.uvsFloat32[4] = this.x2, this.uvsFloat32[5] = this.y2, this.uvsFloat32[6] = this.x3, this.uvsFloat32[7] = this.y3 }; var ze = new He, Fe = function(t) { function e(n, r, i, o, a, s) { if (t.call(this), this.noFrame = !1, r || (this.noFrame = !0, r = new Kt(0, 0, 1, 1)), n instanceof e && (n = n.baseTexture), this.baseTexture = n, this._frame = r, this.trim = o, this.valid = !1, this.requiresUpdate = !1, this._uvs = ze, this.uvMatrix = null, this.orig = i || r, this._rotate = Number(a || 0), !0 === a) this._rotate = 2; else if (this._rotate % 2 != 0) throw new Error("attempt to use diamond-shaped UVs. If you are sure, set rotation manually"); this.defaultAnchor = s ? new It(s.x, s.y) : new It(0, 0), this._updateID = 0, this.textureCacheIds = [], n.valid ? this.noFrame ? n.valid && this.onBaseTextureUpdated(n) : this.frame = r : n.once("loaded", this.onBaseTextureUpdated, this), this.noFrame && n.on("update", this.onBaseTextureUpdated, this) } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { frame: { configurable: !0 }, rotate: { configurable: !0 }, width: { configurable: !0 }, height: { configurable: !0 } }; return e.prototype.update = function() { this.baseTexture.resource && this.baseTexture.resource.update() }, e.prototype.onBaseTextureUpdated = function(t) { if (this.noFrame) { if (!this.baseTexture.valid) return; this._frame.width = t.width, this._frame.height = t.height, this.valid = !0, this.updateUvs() } else this.frame = this._frame; this.emit("update", this) }, e.prototype.destroy = function(t) { if (this.baseTexture) { if (t) { var n = this.baseTexture.resource; n && ft[n.url] && e.removeFromCache(n.url), this.baseTexture.destroy() } this.baseTexture.off("update", this.onBaseTextureUpdated, this), this.baseTexture = null } this._frame = null, this._uvs = null, this.trim = null, this.orig = null, this.valid = !1, e.removeFromCache(this), this.textureCacheIds = null }, e.prototype.clone = function() { return new e(this.baseTexture, this.frame, this.orig, this.trim, this.rotate, this.defaultAnchor) }, e.prototype.updateUvs = function() { this._uvs === ze && (this._uvs = new He), this._uvs.set(this._frame, this.baseTexture, this.rotate), this._updateID++ }, e.from = function(t, n) { void 0 === n && (n = {}); var r = null; "string" == typeof t ? r = t : (t._pixiId || (t._pixiId = "pixiid_" + ht()), r = t._pixiId); var i = ft[r]; return i || (n.resolution || (n.resolution = Ct(t)), (i = new e(new Ce(t, n))).baseTexture.cacheId = r, Ce.addToCache(i.baseTexture, r), e.addToCache(i, r)), i }, e.fromBuffer = function(t, n, r, i) { return new e(Ce.fromBuffer(t, n, r, i)) }, e.fromLoader = function(t, n, r) { var i = new ve(t); i.url = n; var o = new e(new Ce(i, { scaleMode: C.SCALE_MODE, resolution: Ct(n) })); return r || (r = n), Ce.addToCache(o.baseTexture, r), e.addToCache(o, r), r !== n && (Ce.addToCache(o.baseTexture, n), e.addToCache(o, n)), o }, e.addToCache = function(t, e) { e && (-1 === t.textureCacheIds.indexOf(e) && t.textureCacheIds.push(e), ft[e] && console.warn("Texture added to the cache with an id [" + e + "] that already had an entry"), ft[e] = t) }, e.removeFromCache = function(t) { if ("string" == typeof t) { var e = ft[t]; if (e) { var n = e.textureCacheIds.indexOf(t); return n > -1 && e.textureCacheIds.splice(n, 1), delete ft[t], e } } else if (t && t.textureCacheIds) { for (var r = 0; r < t.textureCacheIds.length; ++r) ft[t.textureCacheIds[r]] === t && delete ft[t.textureCacheIds[r]]; return t.textureCacheIds.length = 0, t } return null }, n.frame.get = function() { return this._frame }, n.frame.set = function(t) { this._frame = t, this.noFrame = !1; var e = t.x, n = t.y, r = t.width, i = t.height, o = e + r > this.baseTexture.width, a = n + i > this.baseTexture.height; if (o || a) { var s = o && a ? "and" : "or", A = "X: " + e + " + " + r + " = " + (e + r) + " > " + this.baseTexture.width, h = "Y: " + n + " + " + i + " = " + (n + i) + " > " + this.baseTexture.height; throw new Error("Texture Error: frame does not fit inside the base Texture dimensions: " + A + " " + s + " " + h) } this.valid = r && i && this.baseTexture.valid, this.trim || this.rotate || (this.orig = t), this.valid && this.updateUvs() }, n.rotate.get = function() { return this._rotate }, n.rotate.set = function(t) { this._rotate = t, this.valid && this.updateUvs() }, n.width.get = function() { return this.orig.width }, n.height.get = function() { return this.orig.height }, Object.defineProperties(e.prototype, n), e }(k.a); function Ne(t) { t.destroy = function() {}, t.on = function() {}, t.once = function() {}, t.emit = function() {} } Fe.EMPTY = new Fe(new Ce), Ne(Fe.EMPTY), Ne(Fe.EMPTY.baseTexture), Fe.WHITE = function() { var t = document.createElement("canvas"); t.width = 16, t.height = 16; var e = t.getContext("2d"); return e.fillStyle = "white", e.fillRect(0, 0, 16, 16), new Fe(new Ce(new ke(t))) }(), Ne(Fe.WHITE), Ne(Fe.WHITE.baseTexture); var Ue = function(t) { function e(e, n) { var r = null; if (!(e instanceof Le)) { var i = arguments[1], o = arguments[2], a = arguments[3], s = arguments[4]; console.warn("Please use RenderTexture.create(" + i + ", " + o + ") instead of the ctor directly."), r = arguments[0], n = null, e = new Le({ width: i, height: o, scaleMode: a, resolution: s }) } t.call(this, e, n), this.legacyRenderer = r, this.valid = !0, this.filterFrame = null, this.filterPoolKey = null, this.updateUvs() } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.resize = function(t, e, n) { void 0 === n && (n = !0), t = Math.ceil(t), e = Math.ceil(e), this.valid = t > 0 && e > 0, this._frame.width = this.orig.width = t, this._frame.height = this.orig.height = e, n && this.baseTexture.resize(t, e), this.updateUvs() }, e.prototype.setResolution = function(t) { var e = this.baseTexture; e.resolution !== t && (e.setResolution(t), this.resize(e.width, e.height, !1)) }, e.create = function(t) { return "number" == typeof t && (t = { width: t, height: arguments[1], scaleMode: arguments[2], resolution: arguments[3] }), new e(new Le(t)) }, e }(Fe), Qe = function(t, e, n, r, i, o, a) { void 0 === n && (n = !1), void 0 === r && (r = 5126), this.buffer = t, this.size = e, this.normalized = n, this.type = r, this.stride = i, this.start = o, this.instance = a }; Qe.prototype.destroy = function() { this.buffer = null }, Qe.from = function(t, e, n, r, i) { return new Qe(t, e, n, r, i) }; var je = 0, Xe = function(t, e, n) { void 0 === e && (e = !0), void 0 === n && (n = !1), this.data = t || new Float32Array(1), this._glBuffers = {}, this._updateID = 0, this.index = n, this.static = e, this.id = je++, this.disposeRunner = new ae("disposeBuffer", 2) }; function Ge(t) { if (4 === t.BYTES_PER_ELEMENT) return t instanceof Float32Array ? "Float32Array" : t instanceof Uint32Array ? "Uint32Array" : "Int32Array"; if (2 === t.BYTES_PER_ELEMENT) { if (t instanceof Uint16Array) return "Uint16Array" } else if (1 === t.BYTES_PER_ELEMENT && t instanceof Uint8Array) return "Uint8Array"; return null } Xe.prototype.update = function(t) { this.data = t || this.data, this._updateID++ }, Xe.prototype.dispose = function() { this.disposeRunner.run(this, !1) }, Xe.prototype.destroy = function() { this.dispose(), this.data = null }, Xe.from = function(t) { return t instanceof Array && (t = new Float32Array(t)), new Xe(t) }; var We = { Float32Array: Float32Array, Uint32Array: Uint32Array, Int32Array: Int32Array, Uint8Array: Uint8Array }; var Ye = { 5126: 4, 5123: 2, 5121: 1 }, Ke = 0, Ve = { Float32Array: Float32Array, Uint32Array: Uint32Array, Int32Array: Int32Array, Uint8Array: Uint8Array, Uint16Array: Uint16Array }, qe = function(t, e) { void 0 === t && (t = []), void 0 === e && (e = {}), this.buffers = t, this.indexBuffer = null, this.attributes = e, this.glVertexArrayObjects = {}, this.id = Ke++, this.instanced = !1, this.instanceCount = 1, this._size = null, this.disposeRunner = new ae("disposeGeometry", 2), this.refCount = 0 }; qe.prototype.addAttribute = function(t, e, n, r, i, o, a, s) { if (void 0 === r && (r = !1), void 0 === s && (s = !1), !e) throw new Error("You must pass a buffer when creating an attribute"); e.data || (e instanceof Array && (e = new Float32Array(e)), e = new Xe(e)); var A = t.split("|"); if (A.length > 1) { for (var h = 0; h < A.length; h++) this.addAttribute(A[h], e, n, r, i); return this } var c = this.buffers.indexOf(e); return -1 === c && (this.buffers.push(e), c = this.buffers.length - 1), this.attributes[t] = new Qe(c, n, r, i, o, a, s), this.instanced = this.instanced || s, this }, qe.prototype.getAttribute = function(t) { return this.attributes[t] }, qe.prototype.getBuffer = function(t) { return this.buffers[this.getAttribute(t).buffer] }, qe.prototype.addIndex = function(t) { return t.data || (t instanceof Array && (t = new Uint16Array(t)), t = new Xe(t)), t.index = !0, this.indexBuffer = t, -1 === this.buffers.indexOf(t) && this.buffers.push(t), this }, qe.prototype.getIndex = function() { return this.indexBuffer }, qe.prototype.interleave = function() { if (1 === this.buffers.length || 2 === this.buffers.length && this.indexBuffer) return this; var t, e = [], n = [], r = new Xe; for (t in this.attributes) { var i = this.attributes[t], o = this.buffers[i.buffer]; e.push(o.data), n.push(i.size * Ye[i.type] / 4), i.buffer = 0 } for (r.data = function(t, e) { for (var n = 0, r = 0, i = {}, o = 0; o < t.length; o++) r += e[o], n += t[o].length; for (var a = new ArrayBuffer(4 * n), s = null, A = 0, h = 0; h < t.length; h++) { var c = e[h], u = t[h], l = Ge(u); i[l] || (i[l] = new We[l](a)), s = i[l]; for (var d = 0; d < u.length; d++) s[(d / c | 0) * r + A + d % c] = u[d]; A += c } return new Float32Array(a) }(e, n), t = 0; t < this.buffers.length; t++) this.buffers[t] !== this.indexBuffer && this.buffers[t].destroy(); return this.buffers = [r], this.indexBuffer && this.buffers.push(this.indexBuffer), this }, qe.prototype.getSize = function() { for (var t in this.attributes) { var e = this.attributes[t]; return this.buffers[e.buffer].data.length / (e.stride / 4 || e.size) } return 0 }, qe.prototype.dispose = function() { this.disposeRunner.run(this, !1) }, qe.prototype.destroy = function() { this.dispose(), this.buffers = null, this.indexBuffer.destroy(), this.attributes = null }, qe.prototype.clone = function() { for (var t = new qe, e = 0; e < this.buffers.length; e++) t.buffers[e] = new Xe(this.buffers[e].data.slice()); for (var n in this.attributes) { var r = this.attributes[n]; t.attributes[n] = new Qe(r.buffer, r.size, r.normalized, r.type, r.stride, r.start, r.instance) } return this.indexBuffer && (t.indexBuffer = t.buffers[this.buffers.indexOf(this.indexBuffer)], t.indexBuffer.index = !0), t }, qe.merge = function(t) { for (var e, n = new qe, r = [], i = [], o = [], a = 0; a < t.length; a++) { e = t[a]; for (var s = 0; s < e.buffers.length; s++) i[s] = i[s] || 0, i[s] += e.buffers[s].data.length, o[s] = 0 } for (var A = 0; A < e.buffers.length; A++) r[A] = new(Ve[Ge(e.buffers[A].data)])(i[A]), n.buffers[A] = new Xe(r[A]); for (var h = 0; h < t.length; h++) { e = t[h]; for (var c = 0; c < e.buffers.length; c++) r[c].set(e.buffers[c].data, o[c]), o[c] += e.buffers[c].data.length } if (n.attributes = e.attributes, e.indexBuffer) { n.indexBuffer = n.buffers[e.buffers.indexOf(e.indexBuffer)], n.indexBuffer.index = !0; for (var u = 0, l = 0, d = 0, p = 0, f = 0; f < e.buffers.length; f++) if (e.buffers[f] !== e.indexBuffer) { p = f; break } for (var y in e.attributes) { var x = e.attributes[y]; (0 | x.buffer) === p && (l += x.size * Ye[x.type] / 4) } for (var m = 0; m < t.length; m++) { for (var g = t[m].indexBuffer.data, w = 0; w < g.length; w++) n.indexBuffer.data[w + d] += u; u += e.buffers[p].data.length / l, d += g.length } } return n }; var Je = function(t) { function e() { t.call(this), this.addAttribute("aVertexPosition", [0, 0, 1, 0, 1, 1, 0, 1]).addIndex([0, 1, 3, 2]) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e }(qe), Ze = function(t) { function e() { t.call(this), this.vertices = new Float32Array([-1, -1, 1, -1, 1, 1, -1, 1]), this.uvs = new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]), this.vertexBuffer = new Xe(this.vertices), this.uvBuffer = new Xe(this.uvs), this.addAttribute("aVertexPosition", this.vertexBuffer).addAttribute("aTextureCoord", this.uvBuffer).addIndex([0, 1, 2, 0, 2, 3]) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.map = function(t, e) { var n = 0, r = 0; return this.uvs[0] = n, this.uvs[1] = r, this.uvs[2] = n + e.width / t.width, this.uvs[3] = r, this.uvs[4] = n + e.width / t.width, this.uvs[5] = r + e.height / t.height, this.uvs[6] = n, this.uvs[7] = r + e.height / t.height, n = e.x, r = e.y, this.vertices[0] = n, this.vertices[1] = r, this.vertices[2] = n + e.width, this.vertices[3] = r, this.vertices[4] = n + e.width, this.vertices[5] = r + e.height, this.vertices[6] = n, this.vertices[7] = r + e.height, this.invalidate(), this }, e.prototype.invalidate = function() { return this.vertexBuffer._updateID++, this.uvBuffer._updateID++, this }, e }(qe), $e = 0, tn = function(t, e) { this.uniforms = t, this.group = !0, this.syncUniforms = {}, this.dirtyId = 0, this.id = $e++, this.static = !!e }; tn.prototype.update = function() { this.dirtyId++ }, tn.prototype.add = function(t, e, n) { this.uniforms[t] = new tn(e, n) }, tn.from = function(t, e) { return new tn(t, e) }; var en = function() { this.renderTexture = null, this.target = null, this.legacy = !1, this.resolution = 1, this.sourceFrame = new Kt, this.destinationFrame = new Kt, this.filters = [] }; en.prototype.clear = function() { this.target = null, this.filters = null, this.renderTexture = null }; var nn = function(t) { function e(e) { t.call(this, e), this.defaultFilterStack = [{}], this.texturePool = {}, this.statePool = [], this.quad = new Je, this.quadUv = new Ze, this.tempRect = new Kt, this.activeState = {}, this.globalUniforms = new tn({ outputFrame: this.tempRect, inputSize: new Float32Array(4), inputPixel: new Float32Array(4), inputClamp: new Float32Array(4), resolution: 1, filterArea: new Float32Array(4), filterClamp: new Float32Array(4) }, !0), this._pixelsWidth = e.view.width, this._pixelsHeight = e.view.height } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.push = function(t, e) { for (var n = this.renderer, r = this.defaultFilterStack, i = this.statePool.pop() || new en, o = e[0].resolution, a = e[0].padding, s = e[0].autoFit, A = e[0].legacy, h = 1; h < e.length; h++) { var c = e[h]; o = Math.min(o, c.resolution), a = Math.max(a, c.padding), s = s || c.autoFit, A = A || c.legacy } 1 === r.length && (this.defaultFilterStack[0].renderTexture = n.renderTexture.current), r.push(i), i.resolution = o, i.legacy = A, i.target = t, i.sourceFrame.copyFrom(t.filterArea || t.getBounds(!0)), i.sourceFrame.pad(a), s && i.sourceFrame.fit(this.renderer.renderTexture.sourceFrame), i.sourceFrame.ceil(o), i.renderTexture = this.getOptimalFilterTexture(i.sourceFrame.width, i.sourceFrame.height, o), i.filters = e, i.destinationFrame.width = i.renderTexture.width, i.destinationFrame.height = i.renderTexture.height, i.renderTexture.filterFrame = i.sourceFrame, n.renderTexture.bind(i.renderTexture, i.sourceFrame), n.renderTexture.clear() }, e.prototype.pop = function() { var t = this.defaultFilterStack, e = t.pop(), n = e.filters; this.activeState = e; var r = this.globalUniforms.uniforms; r.outputFrame = e.sourceFrame, r.resolution = e.resolution; var i = r.inputSize, o = r.inputPixel, a = r.inputClamp; if (i[0] = e.destinationFrame.width, i[1] = e.destinationFrame.height, i[2] = 1 / i[0], i[3] = 1 / i[1], o[0] = i[0] * e.resolution, o[1] = i[1] * e.resolution, o[2] = 1 / o[0], o[3] = 1 / o[1], a[0] = .5 * o[2], a[1] = .5 * o[3], a[2] = e.sourceFrame.width * i[2] - .5 * o[2], a[3] = e.sourceFrame.height * i[3] - .5 * o[3], e.legacy) { var s = r.filterArea; s[0] = e.destinationFrame.width, s[1] = e.destinationFrame.height, s[2] = e.sourceFrame.x, s[3] = e.sourceFrame.y, r.filterClamp = r.inputClamp } this.globalUniforms.update(); var A = t[t.length - 1]; if (1 === n.length) n[0].apply(this, e.renderTexture, A.renderTexture, !1, e), this.returnFilterTexture(e.renderTexture); else { var h = e.renderTexture, c = this.getOptimalFilterTexture(h.width, h.height, e.resolution); c.filterFrame = h.filterFrame; var u = 0; for (u = 0; u < n.length - 1; ++u) { n[u].apply(this, h, c, !0, e); var l = h; h = c, c = l } n[u].apply(this, h, A.renderTexture, !1, e), this.returnFilterTexture(h), this.returnFilterTexture(c) } e.clear(), this.statePool.push(e) }, e.prototype.applyFilter = function(t, e, n, r) { var i = this.renderer; i.renderTexture.bind(n, n ? n.filterFrame : null), r && i.renderTexture.clear(), t.uniforms.uSampler = e, t.uniforms.filterGlobals = this.globalUniforms, i.state.setState(t.state), i.shader.bind(t), t.legacy ? (this.quadUv.map(e._frame, e.filterFrame), i.geometry.bind(this.quadUv), i.geometry.draw(L.TRIANGLES)) : (i.geometry.bind(this.quad), i.geometry.draw(L.TRIANGLE_STRIP)) }, e.prototype.calculateSpriteMatrix = function(t, e) { var n = this.activeState, r = n.sourceFrame, i = n.destinationFrame, o = e._texture.orig, a = t.set(i.width, 0, 0, i.height, r.x, r.y), s = e.worldTransform.copyTo(Lt.TEMP_MATRIX); return s.invert(), a.prepend(s), a.scale(1 / o.width, 1 / o.height), a.translate(e.anchor.x, e.anchor.y), a }, e.prototype.destroy = function(t) { void 0 === t && (t = !1), t ? this.texturePool = {} : this.emptyPool() }, e.prototype.getOptimalFilterTexture = function(t, e, n) { void 0 === n && (n = 1); var r = "screen"; e *= n, (t *= n) === this._pixelsWidth && e === this._pixelsHeight || (r = (65535 & (t = ut(t))) << 16 | 65535 & (e = ut(e))), this.texturePool[r] || (this.texturePool[r] = []); var i = this.texturePool[r].pop(); return i || (i = Ue.create({ width: t, height: e })), i.filterPoolKey = r, i.setResolution(n), i }, e.prototype.getFilterTexture = function(t) { var e = this.activeState.renderTexture, n = this.getOptimalFilterTexture(e.width, e.height, t || e.baseTexture.resolution); return n.filterFrame = e.filterFrame, n }, e.prototype.returnFilterTexture = function(t) { var e = t.filterPoolKey; t.filterFrame = null, this.texturePool[e].push(t) }, e.prototype.emptyPool = function() { for (var t in this.texturePool) { var e = this.texturePool[t]; if (e) for (var n = 0; n < e.length; n++) e[n].destroy(!0) } this.texturePool = {} }, e.prototype.resize = function() { var t = this.texturePool.screen; if (t) for (var e = 0; e < t.length; e++) t[e].destroy(!0); this.texturePool.screen = [], this._pixelsWidth = this.renderer.view.width, this._pixelsHeight = this.renderer.view.height }, e }(Re), rn = function(t) { function e() { t.apply(this, arguments) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.start = function() {}, e.prototype.stop = function() { this.flush() }, e.prototype.flush = function() {}, e.prototype.render = function(t) {}, e }(Re), on = function(t) { function e(e) { t.call(this, e), this.emptyRenderer = new rn(e), this.currentRenderer = this.emptyRenderer } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.setObjectRenderer = function(t) { this.currentRenderer !== t && (this.currentRenderer.stop(), this.currentRenderer = t, this.currentRenderer.start()) }, e.prototype.flush = function() { this.setObjectRenderer(this.emptyRenderer) }, e.prototype.reset = function() { this.setObjectRenderer(this.emptyRenderer) }, e }(Re); C.PREFER_ENV = E.a.any ? B.WEBGL : B.WEBGL2; var an = 0, sn = function(t) { function e(e) { t.call(this, e), this.webGLVersion = 1, this.extensions = {}, this.handleContextLost = this.handleContextLost.bind(this), this.handleContextRestored = this.handleContextRestored.bind(this), e.view.addEventListener("webglcontextlost", this.handleContextLost, !1), e.view.addEventListener("webglcontextrestored", this.handleContextRestored, !1) } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { isLost: { configurable: !0 } }; return n.isLost.get = function() { return !this.gl || this.gl.isContextLost() }, e.prototype.contextChange = function(t) { this.gl = t, t.isContextLost() && t.getExtension("WEBGL_lose_context") && t.getExtension("WEBGL_lose_context").restoreContext() }, e.prototype.initFromContext = function(t) { this.gl = t, this.validateContext(t), this.renderer.gl = t, this.renderer.CONTEXT_UID = an++, this.renderer.runners.contextChange.run(t) }, e.prototype.initFromOptions = function(t) { var e = this.createContext(this.renderer.view, t); this.initFromContext(e) }, e.prototype.createContext = function(t, e) { var n; if (C.PREFER_ENV >= B.WEBGL2 && (n = t.getContext("webgl2", e)), n) this.webGLVersion = 2; else if (this.webGLVersion = 1, !(n = t.getContext("webgl", e) || t.getContext("experimental-webgl", e))) throw new Error("This browser does not support WebGL. Try using the canvas renderer"); return this.gl = n, this.getExtensions(), n }, e.prototype.getExtensions = function() { var t = this.gl; 1 === this.webGLVersion && Object.assign(this.extensions, { drawBuffers: t.getExtension("WEBGL_draw_buffers"), depthTexture: t.getExtension("WEBKIT_WEBGL_depth_texture"), floatTexture: t.getExtension("OES_texture_float"), loseContext: t.getExtension("WEBGL_lose_context"), vertexArrayObject: t.getExtension("OES_vertex_array_object") || t.getExtension("MOZ_OES_vertex_array_object") || t.getExtension("WEBKIT_OES_vertex_array_object"), uint32ElementIndex: t.getExtension("OES_element_index_uint") }) }, e.prototype.handleContextLost = function(t) { t.preventDefault() }, e.prototype.handleContextRestored = function() { this.renderer.runners.contextChange.run(this.gl) }, e.prototype.destroy = function() { var t = this.renderer.view; t.removeEventListener("webglcontextlost", this.handleContextLost), t.removeEventListener("webglcontextrestored", this.handleContextRestored), this.gl.useProgram(null), this.extensions.loseContext && this.extensions.loseContext.loseContext() }, e.prototype.postrender = function() { this.gl.flush() }, e.prototype.validateContext = function(t) { t.getContextAttributes().stencil || console.warn("Provided WebGL context does not have a stencil buffer, masks may not render correctly") }, Object.defineProperties(e.prototype, n), e }(Re), An = function(t) { function e(e) { t.call(this, e), this.managedFramebuffers = [], this.unknownFramebuffer = new Me(10, 10) } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { size: { configurable: !0 } }; return e.prototype.contextChange = function() { var t = this.gl = this.renderer.gl; if (this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.current = this.unknownFramebuffer, this.viewport = new Kt, this.hasMRT = !0, this.writeDepthTexture = !0, this.disposeAll(!0), 1 === this.renderer.context.webGLVersion) { var e = this.renderer.context.extensions.drawBuffers, n = this.renderer.context.extensions.depthTexture; C.PREFER_ENV === B.WEBGL_LEGACY && (e = null, n = null), e ? t.drawBuffers = function(t) { return e.drawBuffersWEBGL(t) } : (this.hasMRT = !1, t.drawBuffers = function() {}), n || (this.writeDepthTexture = !1) } }, e.prototype.bind = function(t, e) { var n = this.gl; if (t) { var r = t.glFramebuffers[this.CONTEXT_UID] || this.initFramebuffer(t); this.current !== t && (this.current = t, n.bindFramebuffer(n.FRAMEBUFFER, r.framebuffer)), r.dirtyId !== t.dirtyId && (r.dirtyId = t.dirtyId, r.dirtyFormat !== t.dirtyFormat ? (r.dirtyFormat = t.dirtyFormat, this.updateFramebuffer(t)) : r.dirtySize !== t.dirtySize && (r.dirtySize = t.dirtySize, this.resizeFramebuffer(t))); for (var i = 0; i < t.colorTextures.length; i++) t.colorTextures[i].texturePart ? this.renderer.texture.unbind(t.colorTextures[i].texture) : this.renderer.texture.unbind(t.colorTextures[i]); t.depthTexture && this.renderer.texture.unbind(t.depthTexture), e ? this.setViewport(e.x, e.y, e.width, e.height) : this.setViewport(0, 0, t.width, t.height) } else this.current && (this.current = null, n.bindFramebuffer(n.FRAMEBUFFER, null)), e ? this.setViewport(e.x, e.y, e.width, e.height) : this.setViewport(0, 0, this.renderer.width, this.renderer.height) }, e.prototype.setViewport = function(t, e, n, r) { var i = this.viewport; i.width === n && i.height === r && i.x === t && i.y === e || (i.x = t, i.y = e, i.width = n, i.height = r, this.gl.viewport(t, e, n, r)) }, n.size.get = function() { return this.current ? { x: 0, y: 0, width: this.current.width, height: this.current.height } : { x: 0, y: 0, width: this.renderer.width, height: this.renderer.height } }, e.prototype.clear = function(t, e, n, r) { var i = this.gl; i.clearColor(t, e, n, r), i.clear(i.COLOR_BUFFER_BIT | i.DEPTH_BUFFER_BIT) }, e.prototype.initFramebuffer = function(t) { var e = { framebuffer: this.gl.createFramebuffer(), stencil: null, dirtyId: 0, dirtyFormat: 0, dirtySize: 0 }; return t.glFramebuffers[this.CONTEXT_UID] = e, this.managedFramebuffers.push(t), t.disposeRunner.add(this), e }, e.prototype.resizeFramebuffer = function(t) { var e = this.gl, n = t.glFramebuffers[this.CONTEXT_UID]; n.stencil && (e.bindRenderbuffer(e.RENDERBUFFER, n.stencil), e.renderbufferStorage(e.RENDERBUFFER, e.DEPTH_STENCIL, t.width, t.height)); for (var r = t.colorTextures, i = 0; i < r.length; i++) this.renderer.texture.bind(r[i], 0); t.depthTexture && this.renderer.texture.bind(t.depthTexture, 0) }, e.prototype.updateFramebuffer = function(t) { var e = this.gl, n = t.glFramebuffers[this.CONTEXT_UID], r = t.colorTextures.length; e.drawBuffers || (r = Math.min(r, 1)); for (var i = [], o = 0; o < r; o++) { var a = t.colorTextures[o]; a.texturePart ? (this.renderer.texture.bind(a.texture, 0), e.framebufferTexture2D(e.FRAMEBUFFER, e.COLOR_ATTACHMENT0 + o, e.TEXTURE_CUBE_MAP_NEGATIVE_X + a.side, a.texture._glTextures[this.CONTEXT_UID].texture, 0)) : (this.renderer.texture.bind(a, 0), e.framebufferTexture2D(e.FRAMEBUFFER, e.COLOR_ATTACHMENT0 + o, e.TEXTURE_2D, a._glTextures[this.CONTEXT_UID].texture, 0)), i.push(e.COLOR_ATTACHMENT0 + o) } if ((i.length > 1 && e.drawBuffers(i), t.depthTexture) && this.writeDepthTexture) { var s = t.depthTexture; this.renderer.texture.bind(s, 0), e.framebufferTexture2D(e.FRAMEBUFFER, e.DEPTH_ATTACHMENT, e.TEXTURE_2D, s._glTextures[this.CONTEXT_UID].texture, 0) } n.stencil || !t.stencil && !t.depth || (n.stencil = e.createRenderbuffer(), e.bindRenderbuffer(e.RENDERBUFFER, n.stencil), t.depthTexture || e.framebufferRenderbuffer(e.FRAMEBUFFER, e.DEPTH_STENCIL_ATTACHMENT, e.RENDERBUFFER, n.stencil), e.renderbufferStorage(e.RENDERBUFFER, e.DEPTH_STENCIL, t.width, t.height)) }, e.prototype.disposeFramebuffer = function(t, e) { var n = t.glFramebuffers[this.CONTEXT_UID], r = this.gl; if (n) { delete t.glFramebuffers[this.CONTEXT_UID]; var i = this.managedFramebuffers.indexOf(t); i >= 0 && this.managedFramebuffers.splice(i, 1), t.disposeRunner.remove(this), e || (r.deleteFramebuffer(n.framebuffer), n.stencil && r.deleteRenderbuffer(n.stencil)) } }, e.prototype.disposeAll = function(t) { var e = this.managedFramebuffers; this.managedFramebuffers = []; for (var n = 0; n < e.count; n++) this.disposeFramebuffer(e[n], t) }, e.prototype.reset = function() { this.current = this.unknownFramebuffer, this.viewport = new Kt }, Object.defineProperties(e.prototype, n), e }(Re), hn = function(t) { this.buffer = t, this.updateID = -1, this.byteLength = -1, this.refCount = 0 }, cn = { 5126: 4, 5123: 2, 5121: 1 }, un = function(t) { function e(e) { t.call(this, e), this._activeGeometry = null, this._activeVao = null, this.hasVao = !0, this.hasInstance = !0, this.canUseUInt32ElementIndex = !1, this.boundBuffers = {}, this.managedGeometries = {}, this.managedBuffers = {} } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.contextChange = function() { this.disposeAll(!0); var t = this.gl = this.renderer.gl, e = this.renderer.context; if (this.CONTEXT_UID = this.renderer.CONTEXT_UID, !t.createVertexArray) { var n = this.renderer.context.extensions.vertexArrayObject; C.PREFER_ENV === B.WEBGL_LEGACY && (n = null), n ? (t.createVertexArray = function() { return n.createVertexArrayOES() }, t.bindVertexArray = function(t) { return n.bindVertexArrayOES(t) }, t.deleteVertexArray = function(t) { return n.deleteVertexArrayOES(t) }) : (this.hasVao = !1, t.createVertexArray = function() {}, t.bindVertexArray = function() {}, t.deleteVertexArray = function() {}) } if (!t.vertexAttribDivisor) { var r = t.getExtension("ANGLE_instanced_arrays"); r ? (t.vertexAttribDivisor = function(t, e) { return r.vertexAttribDivisorANGLE(t, e) }, t.drawElementsInstanced = function(t, e, n, i, o) { return r.drawElementsInstancedANGLE(t, e, n, i, o) }, t.drawArraysInstanced = function(t, e, n, i) { return r.drawArraysInstancedANGLE(t, e, n, i) }) : this.hasInstance = !1 } this.canUseUInt32ElementIndex = 2 === e.webGLVersion || !!e.extensions.uint32ElementIndex }, e.prototype.bind = function(t, e) { e = e || this.renderer.shader.shader; var n = this.gl, r = t.glVertexArrayObjects[this.CONTEXT_UID]; r || (this.managedGeometries[t.id] = t, t.disposeRunner.add(this), t.glVertexArrayObjects[this.CONTEXT_UID] = r = {}); var i = r[e.program.id] || this.initGeometryVao(t, e.program); this._activeGeometry = t, this._activeVao !== i && (this._activeVao = i, this.hasVao ? n.bindVertexArray(i) : this.activateVao(t, e.program)), this.updateBuffers() }, e.prototype.reset = function() { this.unbind() }, e.prototype.updateBuffers = function() { for (var t = this._activeGeometry, e = this.gl, n = 0; n < t.buffers.length; n++) { var r = t.buffers[n], i = r._glBuffers[this.CONTEXT_UID]; if (r._updateID !== i.updateID) { i.updateID = r._updateID; var o = r.index ? e.ELEMENT_ARRAY_BUFFER : e.ARRAY_BUFFER; if (e.bindBuffer(o, i.buffer), this._boundBuffer = i, i.byteLength >= r.data.byteLength) e.bufferSubData(o, 0, r.data); else { var a = r.static ? e.STATIC_DRAW : e.DYNAMIC_DRAW; i.byteLength = r.data.byteLength, e.bufferData(o, r.data, a) } } } }, e.prototype.checkCompatibility = function(t, e) { var n = t.attributes, r = e.attributeData; for (var i in r) if (!n[i]) throw new Error('shader and geometry incompatible, geometry missing the "' + i + '" attribute') }, e.prototype.getSignature = function(t, e) { var n = t.attributes, r = e.attributeData, i = ["g", t.id]; for (var o in n) r[o] && i.push(o); return i.join("-") }, e.prototype.initGeometryVao = function(t, e) { this.checkCompatibility(t, e); var n = this.gl, r = this.CONTEXT_UID, i = this.getSignature(t, e), o = t.glVertexArrayObjects[this.CONTEXT_UID], a = o[i]; if (a) return o[e.id] = a, a; var s = t.buffers, A = t.attributes, h = {}, c = {}; for (var u in s) h[u] = 0, c[u] = 0; for (var l in A) !A[l].size && e.attributeData[l] ? A[l].size = e.attributeData[l].size : A[l].size || console.warn("PIXI Geometry attribute '" + l + "' size cannot be determined (likely the bound shader does not have the attribute)"), h[A[l].buffer] += A[l].size * cn[A[l].type]; for (var d in A) { var p = A[d], f = p.size; void 0 === p.stride && (h[p.buffer] === f * cn[p.type] ? p.stride = 0 : p.stride = h[p.buffer]), void 0 === p.start && (p.start = c[p.buffer], c[p.buffer] += f * cn[p.type]) } a = n.createVertexArray(), n.bindVertexArray(a); for (var y = 0; y < s.length; y++) { var x = s[y]; x._glBuffers[r] || (x._glBuffers[r] = new hn(n.createBuffer()), this.managedBuffers[x.id] = x, x.disposeRunner.add(this)), x._glBuffers[r].refCount++ } return this.activateVao(t, e), this._activeVao = a, o[e.id] = a, o[i] = a, a }, e.prototype.disposeBuffer = function(t, e) { if (this.managedBuffers[t.id]) { delete this.managedBuffers[t.id]; var n = t._glBuffers[this.CONTEXT_UID], r = this.gl; t.disposeRunner.remove(this), n && (e || r.deleteBuffer(n.buffer), delete t._glBuffers[this.CONTEXT_UID]) } }, e.prototype.disposeGeometry = function(t, e) { if (this.managedGeometries[t.id]) { delete this.managedGeometries[t.id]; var n = t.glVertexArrayObjects[this.CONTEXT_UID], r = this.gl, i = t.buffers; if (t.disposeRunner.remove(this), n) { for (var o = 0; o < i.length; o++) { var a = i[o]._glBuffers[this.CONTEXT_UID]; a.refCount--, 0 !== a.refCount || e || this.disposeBuffer(i[o], e) } if (!e) for (var s in n) if ("g" === s[0]) { var A = n[s]; this._activeVao === A && this.unbind(), r.deleteVertexArray(A) } delete t.glVertexArrayObjects[this.CONTEXT_UID] } } }, e.prototype.disposeAll = function(t) { for (var e = Object.keys(this.managedGeometries), n = 0; n < e.length; n++) this.disposeGeometry(this.managedGeometries[e[n]], t); e = Object.keys(this.managedBuffers); for (var r = 0; r < e.length; r++) this.disposeBuffer(this.managedBuffers[e[r]], t) }, e.prototype.activateVao = function(t, e) { var n = this.gl, r = this.CONTEXT_UID, i = t.buffers, o = t.attributes; t.indexBuffer && n.bindBuffer(n.ELEMENT_ARRAY_BUFFER, t.indexBuffer._glBuffers[r].buffer); var a = null; for (var s in o) { var A = o[s], h = i[A.buffer]._glBuffers[r]; if (e.attributeData[s]) { a !== h && (n.bindBuffer(n.ARRAY_BUFFER, h.buffer), a = h); var c = e.attributeData[s].location; if (n.enableVertexAttribArray(c), n.vertexAttribPointer(c, A.size, A.type || n.FLOAT, A.normalized, A.stride, A.start), A.instance) { if (!this.hasInstance) throw new Error("geometry error, GPU Instancing is not supported on this device"); n.vertexAttribDivisor(c, 1) } } } }, e.prototype.draw = function(t, e, n, r) { var i = this.gl, o = this._activeGeometry; if (o.indexBuffer) { var a = o.indexBuffer.data.BYTES_PER_ELEMENT, s = 2 === a ? i.UNSIGNED_SHORT : i.UNSIGNED_INT; 2 === a || 4 === a && this.canUseUInt32ElementIndex ? o.instanced ? i.drawElementsInstanced(t, e || o.indexBuffer.data.length, s, (n || 0) * a, r || 1) : i.drawElements(t, e || o.indexBuffer.data.length, s, (n || 0) * a) : console.warn("unsupported index buffer type: uint32") } else o.instanced ? i.drawArraysInstanced(t, n, e || o.getSize(), r || 1) : i.drawArrays(t, n, e || o.getSize()); return this }, e.prototype.unbind = function() { this.gl.bindVertexArray(null), this._activeVao = null, this._activeGeometry = null }, e }(Re); function ln(t, e, n, r) { var i = dn(t, t.VERTEX_SHADER, e), o = dn(t, t.FRAGMENT_SHADER, n), a = t.createProgram(); if (t.attachShader(a, i), t.attachShader(a, o), r) for (var s in r) t.bindAttribLocation(a, r[s], s); return t.linkProgram(a), t.getProgramParameter(a, t.LINK_STATUS) || (console.error("Pixi.js Error: Could not initialize shader."), console.error("gl.VALIDATE_STATUS", t.getProgramParameter(a, t.VALIDATE_STATUS)), console.error("gl.getError()", t.getError()), "" !== t.getProgramInfoLog(a) && console.warn("Pixi.js Warning: gl.getProgramInfoLog()", t.getProgramInfoLog(a)), t.deleteProgram(a), a = null), t.deleteShader(i), t.deleteShader(o), a } function dn(t, e, n) { var r = t.createShader(e); return t.shaderSource(r, n), t.compileShader(r), t.getShaderParameter(r, t.COMPILE_STATUS) ? r : (console.warn(n), console.error(t.getShaderInfoLog(r)), null) } function pn(t, e) { switch (t) { case "float": return 0; case "vec2": return new Float32Array(2 * e); case "vec3": return new Float32Array(3 * e); case "vec4": return new Float32Array(4 * e); case "int": case "sampler2D": case "sampler2DArray": return 0; case "ivec2": return new Int32Array(2 * e); case "ivec3": return new Int32Array(3 * e); case "ivec4": return new Int32Array(4 * e); case "bool": return !1; case "bvec2": return fn(2 * e); case "bvec3": return fn(3 * e); case "bvec4": return fn(4 * e); case "mat2": return new Float32Array([1, 0, 0, 1]); case "mat3": return new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]); case "mat4": return new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]) } return null } function fn(t) { for (var e = new Array(t), n = 0; n < e.length; n++) e[n] = !1; return e } var yn, xn = null; function mn() { if (!xn) { var t, e = document.createElement("canvas"); if (C.PREFER_ENV >= B.WEBGL2 && (t = e.getContext("webgl2", {})), !t) { if (!(t = e.getContext("webgl", {}) || e.getContext("experimental-webgl", {}))) throw new Error("This browser does not support WebGL. Try using the canvas renderer"); t.getExtension("WEBGL_draw_buffers") } return xn = t, t } return xn } function gn(t, e, n) { if ("precision" !== t.substring(0, 9)) { var r = e; return e === X.HIGH && n !== X.HIGH && (r = X.MEDIUM), "precision " + r + " float;\n" + t } return n !== X.HIGH && "precision highp" === t.substring(0, 15) ? t.replace("precision highp", "precision mediump") : t } var wn = { float: 1, vec2: 2, vec3: 3, vec4: 4, int: 1, ivec2: 2, ivec3: 3, ivec4: 4, bool: 1, bvec2: 2, bvec3: 3, bvec4: 4, mat2: 4, mat3: 9, mat4: 16, sampler2D: 1 }; function vn(t) { return wn[t] } var bn = null, _n = { FLOAT: "float", FLOAT_VEC2: "vec2", FLOAT_VEC3: "vec3", FLOAT_VEC4: "vec4", INT: "int", INT_VEC2: "ivec2", INT_VEC3: "ivec3", INT_VEC4: "ivec4", BOOL: "bool", BOOL_VEC2: "bvec2", BOOL_VEC3: "bvec3", BOOL_VEC4: "bvec4", FLOAT_MAT2: "mat2", FLOAT_MAT3: "mat3", FLOAT_MAT4: "mat4", SAMPLER_2D: "sampler2D", SAMPLER_CUBE: "samplerCube", SAMPLER_2D_ARRAY: "sampler2DArray" }; function Sn(t, e) { if (!bn) { var n = Object.keys(_n); bn = {}; for (var r = 0; r < n.length; ++r) { var i = n[r]; bn[t[i]] = _n[i] } } return bn[e] } var En = { float: "\n if(cv !== v)\n {\n cv.v = v;\n gl.uniform1f(location, v)\n }", vec2: "\n if(cv[0] !== v[0] || cv[1] !== v[1])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2f(location, v[0], v[1])\n }", vec3: "\n if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n\n gl.uniform3f(location, v[0], v[1], v[2])\n }", vec4: "gl.uniform4f(location, v[0], v[1], v[2], v[3])", int: "gl.uniform1i(location, v)", ivec2: "gl.uniform2i(location, v[0], v[1])", ivec3: "gl.uniform3i(location, v[0], v[1], v[2])", ivec4: "gl.uniform4i(location, v[0], v[1], v[2], v[3])", bool: "gl.uniform1i(location, v)", bvec2: "gl.uniform2i(location, v[0], v[1])", bvec3: "gl.uniform3i(location, v[0], v[1], v[2])", bvec4: "gl.uniform4i(location, v[0], v[1], v[2], v[3])", mat2: "gl.uniformMatrix2fv(location, false, v)", mat3: "gl.uniformMatrix3fv(location, false, v)", mat4: "gl.uniformMatrix4fv(location, false, v)", sampler2D: "gl.uniform1i(location, v)", samplerCube: "gl.uniform1i(location, v)", sampler2DArray: "gl.uniform1i(location, v)" }, Cn = { float: "gl.uniform1fv(location, v)", vec2: "gl.uniform2fv(location, v)", vec3: "gl.uniform3fv(location, v)", vec4: "gl.uniform4fv(location, v)", mat4: "gl.uniformMatrix4fv(location, false, v)", mat3: "gl.uniformMatrix3fv(location, false, v)", mat2: "gl.uniformMatrix2fv(location, false, v)", int: "gl.uniform1iv(location, v)", ivec2: "gl.uniform2iv(location, v)", ivec3: "gl.uniform3iv(location, v)", ivec4: "gl.uniform4iv(location, v)", bool: "gl.uniform1iv(location, v)", bvec2: "gl.uniform2iv(location, v)", bvec3: "gl.uniform3iv(location, v)", bvec4: "gl.uniform4iv(location, v)", sampler2D: "gl.uniform1iv(location, v)", samplerCube: "gl.uniform1iv(location, v)", sampler2DArray: "gl.uniform1iv(location, v)" }; var Tn, kn = ["precision mediump float;", "void main(void){", "float test = 0.1;", "%forloop%", "gl_FragColor = vec4(0.0);", "}"].join("\n"); function In(t) { for (var e = "", n = 0; n < t; ++n) n > 0 && (e += "\nelse "), n < t - 1 && (e += "if(test == " + n + ".0){}"); return e } var Dn = 0, Pn = {}, Rn = function t(e, n, r) { void 0 === r && (r = "pixi-shader"), this.id = Dn++, this.vertexSrc = e || t.defaultVertexSrc, this.fragmentSrc = n || t.defaultFragmentSrc, this.vertexSrc = this.vertexSrc.trim(), this.fragmentSrc = this.fragmentSrc.trim(), "#version" !== this.vertexSrc.substring(0, 8) && (r = r.replace(/\s+/g, "-"), Pn[r] ? (Pn[r]++, r += "-" + Pn[r]) : Pn[r] = 1, this.vertexSrc = "#define SHADER_NAME " + r + "\n" + this.vertexSrc, this.fragmentSrc = "#define SHADER_NAME " + r + "\n" + this.fragmentSrc, this.vertexSrc = gn(this.vertexSrc, C.PRECISION_VERTEX, X.HIGH), this.fragmentSrc = gn(this.fragmentSrc, C.PRECISION_FRAGMENT, function() { if (!yn) { yn = X.MEDIUM; var t = mn(); if (t && t.getShaderPrecisionFormat) { var e = t.getShaderPrecisionFormat(t.FRAGMENT_SHADER, t.HIGH_FLOAT); yn = e.precision ? X.HIGH : X.MEDIUM } } return yn }())), this.extractData(this.vertexSrc, this.fragmentSrc), this.glPrograms = {}, this.syncUniforms = null }, Bn = { defaultVertexSrc: { configurable: !0 }, defaultFragmentSrc: { configurable: !0 } }; Rn.prototype.extractData = function(t, e) { var n = mn(); if (n) { var r = ln(n, t, e); this.attributeData = this.getAttributeData(r, n), this.uniformData = this.getUniformData(r, n), n.deleteProgram(r) } else this.uniformData = {}, this.attributeData = {} }, Rn.prototype.getAttributeData = function(t, e) { for (var n = {}, r = [], i = e.getProgramParameter(t, e.ACTIVE_ATTRIBUTES), o = 0; o < i; o++) { var a = e.getActiveAttrib(t, o), s = Sn(e, a.type), A = { type: s, name: a.name, size: vn(s), location: 0 }; n[a.name] = A, r.push(A) } r.sort(function(t, e) { return t.name > e.name ? 1 : -1 }); for (var h = 0; h < r.length; h++) r[h].location = h; return n }, Rn.prototype.getUniformData = function(t, e) { for (var n = {}, r = e.getProgramParameter(t, e.ACTIVE_UNIFORMS), i = 0; i < r; i++) { var o = e.getActiveUniform(t, i), a = o.name.replace(/\[.*?\]/, ""), s = o.name.match(/\[.*?\]/, ""), A = Sn(e, o.type); n[a] = { type: A, size: o.size, isArray: s, value: pn(A, o.size) } } return n }, Bn.defaultVertexSrc.get = function() { return "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}\n" }, Bn.defaultFragmentSrc.get = function() { return "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n gl_FragColor *= texture2D(uSampler, vTextureCoord);\n}" }, Rn.from = function(t, e, n) { var r = t + e, i = pt[r]; return i || (pt[r] = i = new Rn(t, e, n)), i }, Object.defineProperties(Rn, Bn); var Mn = function(t, e) { for (var n in this.program = t, this.uniformGroup = e ? e instanceof tn ? e : new tn(e) : new tn({}), t.uniformData) this.uniformGroup.uniforms[n] instanceof Array && (this.uniformGroup.uniforms[n] = new Float32Array(this.uniformGroup.uniforms[n])) }, On = { uniforms: { configurable: !0 } }; Mn.prototype.checkUniformExists = function(t, e) { if (e.uniforms[t]) return !0; for (var n in e.uniforms) { var r = e.uniforms[n]; if (r.group && this.checkUniformExists(t, r)) return !0 } return !1 }, Mn.prototype.destroy = function() { this.uniformGroup = null }, On.uniforms.get = function() { return this.uniformGroup.uniforms }, Mn.from = function(t, e, n) { var r = Rn.from(t, e); return new Mn(r, n) }, Object.defineProperties(Mn.prototype, On); var Ln = function() { this.data = 0, this.blendMode = O.NORMAL, this.polygonOffset = 0, this.blend = !0 }, Hn = { blend: { configurable: !0 }, offsets: { configurable: !0 }, culling: { configurable: !0 }, depthTest: { configurable: !0 }, clockwiseFrontFace: { configurable: !0 }, blendMode: { configurable: !0 }, polygonOffset: { configurable: !0 } }; Hn.blend.get = function() { return !!(1 & this.data) }, Hn.blend.set = function(t) { !!(1 & this.data) !== t && (this.data ^= 1) }, Hn.offsets.get = function() { return !!(2 & this.data) }, Hn.offsets.set = function(t) { !!(2 & this.data) !== t && (this.data ^= 2) }, Hn.culling.get = function() { return !!(4 & this.data) }, Hn.culling.set = function(t) { !!(4 & this.data) !== t && (this.data ^= 4) }, Hn.depthTest.get = function() { return !!(8 & this.data) }, Hn.depthTest.set = function(t) { !!(8 & this.data) !== t && (this.data ^= 8) }, Hn.clockwiseFrontFace.get = function() { return !!(16 & this.data) }, Hn.clockwiseFrontFace.set = function(t) { !!(16 & this.data) !== t && (this.data ^= 16) }, Hn.blendMode.get = function() { return this._blendMode }, Hn.blendMode.set = function(t) { this.blend = t !== O.NONE, this._blendMode = t }, Hn.polygonOffset.get = function() { return this._polygonOffset }, Hn.polygonOffset.set = function(t) { this.offsets = !!t, this._polygonOffset = t }, Ln.for2d = function() { var t = new Ln; return t.depthTest = !1, t.blend = !0, t }, Object.defineProperties(Ln.prototype, Hn); var zn = function(t) { function e(n, r, i) { var o = Rn.from(n || e.defaultVertexSrc, r || e.defaultFragmentSrc); t.call(this, o, i), this.padding = 0, this.resolution = C.FILTER_RESOLUTION, this.enabled = !0, this.autoFit = !0, this.legacy = !!this.program.attributeData.aTextureCoord, this.state = new Ln } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { blendMode: { configurable: !0 } }, r = { defaultVertexSrc: { configurable: !0 }, defaultFragmentSrc: { configurable: !0 } }; return e.prototype.apply = function(t, e, n, r, i) { t.applyFilter(this, e, n, r, i) }, n.blendMode.get = function() { return this.state.blendMode }, n.blendMode.set = function(t) { this.state.blendMode = t }, r.defaultVertexSrc.get = function() { return "attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n gl_Position = filterVertexPosition();\n vTextureCoord = filterTextureCoord();\n}\n" }, r.defaultFragmentSrc.get = function() { return "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n}\n" }, Object.defineProperties(e.prototype, n), Object.defineProperties(e, r), e }(Mn); zn.SOURCE_KEY_MAP = {}; var Fn = "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 otherMatrix;\n\nvarying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0) ).xy;\n}\n", Nn = "varying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform sampler2D mask;\nuniform float alpha;\nuniform float npmAlpha;\nuniform vec4 maskClamp;\n\nvoid main(void)\n{\n float clip = step(3.5,\n step(maskClamp.x, vMaskCoord.x) +\n step(maskClamp.y, vMaskCoord.y) +\n step(vMaskCoord.x, maskClamp.z) +\n step(vMaskCoord.y, maskClamp.w));\n\n vec4 original = texture2D(uSampler, vTextureCoord);\n vec4 masky = texture2D(mask, vMaskCoord);\n float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);\n\n original *= (alphaMul * masky.r * alpha * clip);\n\n gl_FragColor = original;\n}\n", Un = new Lt, Qn = function(t, e) { this._texture = t, this.mapCoord = new Lt, this.uClampFrame = new Float32Array(4), this.uClampOffset = new Float32Array(2), this._updateID = -1, this.clampOffset = 0, this.clampMargin = void 0 === e ? .5 : e, this.isSimple = !1 }, jn = { texture: { configurable: !0 } }; jn.texture.get = function() { return this._texture }, jn.texture.set = function(t) { this._texture = t, this._updateID = -1 }, Qn.prototype.multiplyUvs = function(t, e) { void 0 === e && (e = t); for (var n = this.mapCoord, r = 0; r < t.length; r += 2) { var i = t[r], o = t[r + 1]; e[r] = i * n.a + o * n.c + n.tx, e[r + 1] = i * n.b + o * n.d + n.ty } return e }, Qn.prototype.update = function(t) { var e = this._texture; if (!e || !e.valid) return !1; if (!t && this._updateID === e._updateID) return !1; this._updateID = e._updateID; var n = e._uvs; this.mapCoord.set(n.x1 - n.x0, n.y1 - n.y0, n.x3 - n.x0, n.y3 - n.y0, n.x0, n.y0); var r = e.orig, i = e.trim; i && (Un.set(r.width / i.width, 0, 0, r.height / i.height, -i.x / i.width, -i.y / i.height), this.mapCoord.append(Un)); var o = e.baseTexture, a = this.uClampFrame, s = this.clampMargin / o.resolution, A = this.clampOffset; return a[0] = (e._frame.x + s + A) / o.width, a[1] = (e._frame.y + s + A) / o.height, a[2] = (e._frame.x + e._frame.width - s + A) / o.width, a[3] = (e._frame.y + e._frame.height - s + A) / o.height, this.uClampOffset[0] = A / o.realWidth, this.uClampOffset[1] = A / o.realHeight, this.isSimple = e._frame.width === o.width && e._frame.height === o.height && 0 === e.rotate, !0 }, Object.defineProperties(Qn.prototype, jn); var Xn = function(t) { function e(e) { var n = new Lt; t.call(this, Fn, Nn), e.renderable = !1, this.maskSprite = e, this.maskMatrix = n } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.apply = function(t, e, n, r) { var i = this.maskSprite, o = this.maskSprite.texture; o.valid && (o.transform || (o.transform = new Qn(o, 0)), o.transform.update(), this.uniforms.npmAlpha = o.baseTexture.premultiplyAlpha ? 0 : 1, this.uniforms.mask = o, this.uniforms.otherMatrix = t.calculateSpriteMatrix(this.maskMatrix, i).prepend(o.transform.mapCoord), this.uniforms.alpha = i.worldAlpha, this.uniforms.maskClamp = o.transform.uClampFrame, t.applyFilter(this, e, n, r)) }, e }(zn), Gn = function(t) { function e(e) { t.call(this, e), this.scissor = !1, this.scissorData = null, this.scissorRenderTarget = null, this.enableScissor = !1, this.alphaMaskPool = [], this.alphaMaskIndex = 0 } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.push = function(t, e) { if (e.isSprite) this.pushSpriteMask(t, e); else if (this.enableScissor && !this.scissor && this.renderer._activeRenderTarget.root && !this.renderer.stencil.stencilMaskStack.length && e.isFastRect()) { var n = e.worldTransform, r = Math.atan2(n.b, n.a); (r = Math.round(r * (180 / Math.PI))) % 90 ? this.pushStencilMask(e) : this.pushScissorMask(t, e) } else this.pushStencilMask(e) }, e.prototype.pop = function(t, e) { e.isSprite ? this.popSpriteMask(t, e) : this.enableScissor && !this.renderer.stencil.stencilMaskStack.length ? this.popScissorMask(t, e) : this.popStencilMask(t, e) }, e.prototype.pushSpriteMask = function(t, e) { var n = this.alphaMaskPool[this.alphaMaskIndex]; n || (n = this.alphaMaskPool[this.alphaMaskIndex] = [new Xn(e)]), n[0].resolution = this.renderer.resolution, n[0].maskSprite = e; var r = t.filterArea; t.filterArea = e.getBounds(!0), this.renderer.filter.push(t, n), t.filterArea = r, this.alphaMaskIndex++ }, e.prototype.popSpriteMask = function() { this.renderer.filter.pop(), this.alphaMaskIndex-- }, e.prototype.pushStencilMask = function(t) { this.renderer.batch.flush(), this.renderer.stencil.pushStencil(t) }, e.prototype.popStencilMask = function() { this.renderer.stencil.popStencil() }, e.prototype.pushScissorMask = function(t, e) { e.renderable = !0; var n = this.renderer._activeRenderTarget, r = e.getBounds(); r.fit(n.size), e.renderable = !1, this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST); var i = this.renderer.resolution; this.renderer.gl.scissor(r.x * i, (n.root ? n.size.height - r.y - r.height : r.y) * i, r.width * i, r.height * i), this.scissorRenderTarget = n, this.scissorData = e, this.scissor = !0 }, e.prototype.popScissorMask = function() { this.scissorRenderTarget = null, this.scissorData = null, this.scissor = !1; var t = this.renderer.gl; t.disable(t.SCISSOR_TEST) }, e }(Re), Wn = function(t) { function e(e) { t.call(this, e), this.stencilMaskStack = [] } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.setMaskStack = function(t) { var e = this.renderer.gl; t.length !== this.stencilMaskStack.length && (0 === t.length ? e.disable(e.STENCIL_TEST) : e.enable(e.STENCIL_TEST)), this.stencilMaskStack = t }, e.prototype.pushStencil = function(t) { var e = this.renderer.gl, n = this.stencilMaskStack.length; 0 === n && e.enable(e.STENCIL_TEST), this.stencilMaskStack.push(t), e.colorMask(!1, !1, !1, !1), e.stencilFunc(e.EQUAL, n, this._getBitwiseMask()), e.stencilOp(e.KEEP, e.KEEP, e.INCR), t.renderable = !0, t.render(this.renderer), this.renderer.batch.flush(), t.renderable = !1, this._useCurrent() }, e.prototype.popStencil = function() { var t = this.renderer.gl, e = this.stencilMaskStack.pop(); 0 === this.stencilMaskStack.length ? (t.disable(t.STENCIL_TEST), t.clear(t.STENCIL_BUFFER_BIT), t.clearStencil(0)) : (t.colorMask(!1, !1, !1, !1), t.stencilOp(t.KEEP, t.KEEP, t.DECR), e.renderable = !0, e.render(this.renderer), this.renderer.batch.flush(), e.renderable = !1, this._useCurrent()) }, e.prototype._useCurrent = function() { var t = this.renderer.gl; t.colorMask(!0, !0, !0, !0), t.stencilFunc(t.EQUAL, this.stencilMaskStack.length, this._getBitwiseMask()), t.stencilOp(t.KEEP, t.KEEP, t.KEEP) }, e.prototype._getBitwiseMask = function() { return (1 << this.stencilMaskStack.length) - 1 }, e.prototype.destroy = function() { t.prototype.destroy.call(this, this), this.stencilMaskStack = null }, e }(Re), Yn = function(t) { function e(e) { t.call(this, e), this.destinationFrame = null, this.sourceFrame = null, this.defaultFrame = null, this.projectionMatrix = new Lt, this.transform = null } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.update = function(t, e, n, r) { this.destinationFrame = t || this.destinationFrame || this.defaultFrame, this.sourceFrame = e || this.sourceFrame || t, this.calculateProjection(this.destinationFrame, this.sourceFrame, n, r), this.transform && this.projectionMatrix.append(this.transform); var i = this.renderer; i.globalUniforms.uniforms.projectionMatrix = this.projectionMatrix, i.globalUniforms.update(), i.shader.shader && i.shader.syncUniformGroup(i.shader.shader.uniforms.globals) }, e.prototype.calculateProjection = function(t, e, n, r) { var i = this.projectionMatrix; r ? (i.a = 1 / t.width * 2 * n, i.d = -1 / t.height * 2 * n, i.tx = -1 - e.x * i.a, i.ty = 1 - e.y * i.d) : (i.a = 1 / t.width * 2 * n, i.d = 1 / t.height * 2 * n, i.tx = -1 - e.x * i.a, i.ty = -1 - e.y * i.d) }, e.prototype.setTransform = function() {}, e }(Re), Kn = new Kt, Vn = function(t) { function e(e) { t.call(this, e), this.clearColor = e._backgroundColorRgba, this.defaultMaskStack = [], this.current = null, this.sourceFrame = new Kt, this.destinationFrame = new Kt } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.bind = function(t, e, n) { void 0 === t && (t = null), this.current = t; var r, i = this.renderer; if (t) { var o = t.baseTexture; r = o.resolution, n || (Kn.width = o.realWidth, Kn.height = o.realHeight, n = Kn), e || (e = n), this.renderer.framebuffer.bind(o.framebuffer, n), this.renderer.projection.update(n, e, r, !1), this.renderer.stencil.setMaskStack(o.stencilMaskStack) } else r = this.renderer.resolution, n || (Kn.width = i.width, Kn.height = i.height, n = Kn), e || (e = n), i.framebuffer.bind(null, n), this.renderer.projection.update(n, e, r, !0), this.renderer.stencil.setMaskStack(this.defaultMaskStack); this.sourceFrame.copyFrom(e), this.destinationFrame.x = n.x / r, this.destinationFrame.y = n.y / r, this.destinationFrame.width = n.width / r, this.destinationFrame.height = n.height / r, e === n && this.sourceFrame.copyFrom(this.destinationFrame) }, e.prototype.clear = function(t) { t = this.current ? t || this.current.baseTexture.clearColor : t || this.clearColor, this.renderer.framebuffer.clear(t[0], t[1], t[2], t[3]) }, e.prototype.resize = function() { this.bind(null) }, e.prototype.reset = function() { this.bind(null) }, e }(Re), qn = function(t, e) { this.program = t, this.uniformData = e, this.uniformGroups = {} }; qn.prototype.destroy = function() { this.uniformData = null, this.uniformGroups = null, this.program = null }; var Jn = 0, Zn = function(t) { function e(e) { t.call(this, e), this.systemCheck(), this.gl = null, this.shader = null, this.program = null, this.cache = {}, this.id = Jn++ } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.systemCheck = function() { if (! function() { if ("boolean" == typeof Tn) return Tn; try { var t = new Function("param1", "param2", "param3", "return param1[param2] === param3;"); Tn = !0 === t({ a: "b" }, "a", "b") } catch (t) { Tn = !1 } return Tn }()) throw new Error("Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.") }, e.prototype.contextChange = function(t) { this.gl = t }, e.prototype.bind = function(t, e) { t.uniforms.globals = this.renderer.globalUniforms; var n = t.program, r = n.glPrograms[this.renderer.CONTEXT_UID] || this.generateShader(t); return this.shader = t, this.program !== n && (this.program = n, this.gl.useProgram(r.program)), e || this.syncUniformGroup(t.uniformGroup), r }, e.prototype.setUniforms = function(t) { var e = this.shader.program, n = e.glPrograms[this.renderer.CONTEXT_UID]; e.syncUniforms(n.uniformData, t, this.renderer) }, e.prototype.syncUniformGroup = function(t) { var e = this.getglProgram(); t.static && t.dirtyId === e.uniformGroups[t.id] || (e.uniformGroups[t.id] = t.dirtyId, this.syncUniforms(t, e)) }, e.prototype.syncUniforms = function(t, e) { (t.syncUniforms[this.shader.program.id] || this.createSyncGroups(t))(e.uniformData, t.uniforms, this.renderer) }, e.prototype.createSyncGroups = function(t) { var e = this.getSignature(t, this.shader.program.uniformData); return this.cache[e] || (this.cache[e] = function(t, e) { var n = 0, r = "var v = null;\n var cv = null\n var gl = renderer.gl"; for (var i in t.uniforms) { var o = e[i]; o ? "float" === o.type && 1 === o.size ? r += "\n if(uv." + i + " !== ud." + i + ".value)\n {\n ud." + i + ".value = uv." + i + "\n gl.uniform1f(ud." + i + ".location, uv." + i + ")\n }\n" : "sampler2D" !== o.type && "samplerCube" !== o.type && "sampler2DArray" !== o.type || 1 !== o.size || o.isArray ? "mat3" === o.type && 1 === o.size ? void 0 !== t.uniforms[i].a ? r += "\n gl.uniformMatrix3fv(ud." + i + ".location, false, uv." + i + ".toArray(true));\n \n" : r += "\n gl.uniformMatrix3fv(ud." + i + ".location, false, uv." + i + ");\n \n" : "vec2" === o.type && 1 === o.size ? void 0 !== t.uniforms[i].x ? r += "\n cv = ud." + i + ".value;\n v = uv." + i + ";\n\n if(cv[0] !== v.x || cv[1] !== v.y)\n {\n cv[0] = v.x;\n cv[1] = v.y;\n gl.uniform2f(ud." + i + ".location, v.x, v.y);\n }\n" : r += "\n cv = ud." + i + ".value;\n v = uv." + i + ";\n\n if(cv[0] !== v[0] || cv[1] !== v[1])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2f(ud." + i + ".location, v[0], v[1]);\n }\n \n" : "vec4" === o.type && 1 === o.size ? void 0 !== t.uniforms[i].width ? r += "\n cv = ud." + i + ".value;\n v = uv." + i + ";\n\n if(cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height)\n {\n cv[0] = v.x;\n cv[1] = v.y;\n cv[2] = v.width;\n cv[3] = v.height;\n gl.uniform4f(ud." + i + ".location, v.x, v.y, v.width, v.height)\n }\n" : r += "\n cv = ud." + i + ".value;\n v = uv." + i + ";\n\n if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n\n gl.uniform4f(ud." + i + ".location, v[0], v[1], v[2], v[3])\n }\n \n" : r += "\n cv = ud." + i + ".value;\n v = uv." + i + ";\n " + (1 === o.size ? En : Cn)[o.type].replace("location", "ud." + i + ".location") + ";\n" : (r += "\n renderer.texture.bind(uv." + i + ", " + n + ");\n\n if(ud." + i + ".value !== " + n + ")\n {\n ud." + i + ".value = " + n + ";\n gl.uniform1i(ud." + i + ".location, " + n + ");\n; // eslint-disable-line max-len\n }\n", n++) : t.uniforms[i].group && (r += "\n renderer.shader.syncUniformGroup(uv." + i + ");\n ") } return new Function("ud", "uv", "renderer", r) }(t, this.shader.program.uniformData)), t.syncUniforms[this.shader.program.id] = this.cache[e], t.syncUniforms[this.shader.program.id] }, e.prototype.getSignature = function(t, e) { var n = t.uniforms, r = []; for (var i in n) r.push(i), e[i] && r.push(e[i].type); return r.join("-") }, e.prototype.getglProgram = function() { return this.shader ? this.shader.program.glPrograms[this.renderer.CONTEXT_UID] : null }, e.prototype.generateShader = function(t) { var e = this.gl, n = t.program, r = {}; for (var i in n.attributeData) r[i] = n.attributeData[i].location; var o = ln(e, n.vertexSrc, n.fragmentSrc, r), a = {}; for (var s in n.uniformData) { var A = n.uniformData[s]; a[s] = { location: e.getUniformLocation(o, s), value: pn(A.type, A.size) } } var h = new qn(o, a); return n.glPrograms[this.renderer.CONTEXT_UID] = h, h }, e.prototype.reset = function() { this.program = null, this.shader = null }, e.prototype.destroy = function() { this.destroyed = !0 }, e }(Re); var $n = 0, tr = 1, er = 2, nr = 3, rr = 4, ir = function(t) { function e(e) { t.call(this, e), this.gl = null, this.stateId = 0, this.polygonOffset = 0, this.blendMode = O.NONE, this._blendEq = !1, this.map = [], this.map[$n] = this.setBlend, this.map[tr] = this.setOffset, this.map[er] = this.setCullFace, this.map[nr] = this.setDepthTest, this.map[rr] = this.setFrontFace, this.checks = [], this.defaultState = new Ln, this.defaultState.blend = !0, this.defaultState.depth = !0 } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.contextChange = function(t) { this.gl = t, this.blendModes = function(t, e) { return void 0 === e && (e = []), e[O.NORMAL] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.ADD] = [t.ONE, t.ONE], e[O.MULTIPLY] = [t.DST_COLOR, t.ONE_MINUS_SRC_ALPHA, t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.SCREEN] = [t.ONE, t.ONE_MINUS_SRC_COLOR, t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.OVERLAY] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.DARKEN] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.LIGHTEN] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.COLOR_DODGE] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.COLOR_BURN] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.HARD_LIGHT] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.SOFT_LIGHT] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.DIFFERENCE] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.EXCLUSION] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.HUE] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.SATURATION] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.COLOR] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.LUMINOSITY] = [t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.NONE] = [0, 0], e[O.NORMAL_NPM] = [t.SRC_ALPHA, t.ONE_MINUS_SRC_ALPHA, t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.ADD_NPM] = [t.SRC_ALPHA, t.ONE, t.ONE, t.ONE], e[O.SCREEN_NPM] = [t.SRC_ALPHA, t.ONE_MINUS_SRC_COLOR, t.ONE, t.ONE_MINUS_SRC_ALPHA], e[O.SRC_IN] = [t.DST_ALPHA, t.ZERO], e[O.SRC_OUT] = [t.ONE_MINUS_DST_ALPHA, t.ZERO], e[O.SRC_ATOP] = [t.DST_ALPHA, t.ONE_MINUS_SRC_ALPHA], e[O.DST_OVER] = [t.ONE_MINUS_DST_ALPHA, t.ONE], e[O.DST_IN] = [t.ZERO, t.SRC_ALPHA], e[O.DST_OUT] = [t.ZERO, t.ONE_MINUS_SRC_ALPHA], e[O.DST_ATOP] = [t.ONE_MINUS_DST_ALPHA, t.SRC_ALPHA], e[O.SUBTRACT] = [t.ONE, t.ONE, t.ONE, t.ONE, t.FUNC_REVERSE_SUBTRACT, t.FUNC_ADD], e }(t), this.setState(this.defaultState), this.reset() }, e.prototype.setState = function(t) { if (t = t || this.defaultState, this.stateId !== t.data) { for (var e = this.stateId ^ t.data, n = 0; e;) 1 & e && this.map[n].call(this, !!(t.data & 1 << n)), e >>= 1, n++; this.stateId = t.data } for (var r = 0; r < this.checks.length; r++) this.checks[r](this, t) }, e.prototype.forceState = function(t) { t = t || this.defaultState; for (var e = 0; e < this.map.length; e++) this.map[e].call(this, !!(t.data & 1 << e)); for (var n = 0; n < this.checks.length; n++) this.checks[n](this, t); this.stateId = t.data }, e.prototype.setBlend = function(t) { this.updateCheck(e.checkBlendMode, t), this.gl[t ? "enable" : "disable"](this.gl.BLEND) }, e.prototype.setOffset = function(t) { this.updateCheck(e.checkPolygonOffset, t), this.gl[t ? "enable" : "disable"](this.gl.POLYGON_OFFSET_FILL) }, e.prototype.setDepthTest = function(t) { this.gl[t ? "enable" : "disable"](this.gl.DEPTH_TEST) }, e.prototype.setCullFace = function(t) { this.gl[t ? "enable" : "disable"](this.gl.CULL_FACE) }, e.prototype.setFrontFace = function(t) { this.gl.frontFace(this.gl[t ? "CW" : "CCW"]) }, e.prototype.setBlendMode = function(t) { if (t !== this.blendMode) { this.blendMode = t; var e = this.blendModes[t], n = this.gl; 2 === e.length ? n.blendFunc(e[0], e[1]) : n.blendFuncSeparate(e[0], e[1], e[2], e[3]), 6 === e.length ? (this._blendEq = !0, n.blendEquationSeparate(e[4], e[5])) : this._blendEq && (this._blendEq = !1, n.blendEquationSeparate(n.FUNC_ADD, n.FUNC_ADD)) } }, e.prototype.setPolygonOffset = function(t, e) { this.gl.polygonOffset(t, e) }, e.prototype.reset = function() { this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL, !1), this.forceState(0), this._blendEq = !0, this.blendMode = -1, this.setBlendMode(0) }, e.prototype.updateCheck = function(t, e) { var n = this.checks.indexOf(t); e && -1 === n ? this.checks.push(t) : e || -1 === n || this.checks.splice(n, 1) }, e.checkBlendMode = function(t, e) { t.setBlendMode(e.blendMode) }, e.checkPolygonOffset = function(t, e) { t.setPolygonOffset(e.polygonOffset, 0) }, e }(Re), or = function(t) { function e(e) { t.call(this, e), this.count = 0, this.checkCount = 0, this.maxIdle = C.GC_MAX_IDLE, this.checkCountMax = C.GC_MAX_CHECK_COUNT, this.mode = C.GC_MODE } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.postrender = function() { this.count++, this.mode !== j && (this.checkCount++, this.checkCount > this.checkCountMax && (this.checkCount = 0, this.run())) }, e.prototype.run = function() { for (var t = this.renderer.texture, e = t.managedTextures, n = !1, r = 0; r < e.length; r++) { var i = e[r]; !i.framebuffer && this.count - i.touched > this.maxIdle && (t.destroyTexture(i, !0), e[r] = null, n = !0) } if (n) { for (var o = 0, a = 0; a < e.length; a++) null !== e[a] && (e[o++] = e[a]); e.length = o } }, e.prototype.unload = function(t) { var e = this.renderer.textureSystem; t._texture && t._texture._glRenderTargets && e.destroyTexture(t._texture); for (var n = t.children.length - 1; n >= 0; n--) this.unload(t.children[n]) }, e }(Re), ar = function(t) { this.texture = t, this.width = -1, this.height = -1, this.dirtyId = -1, this.dirtyStyleId = -1, this.mipmap = !1, this.wrapMode = 33071 }, sr = function(t) { function e(e) { t.call(this, e), this.boundTextures = [], this.currentLocation = -1, this.managedTextures = [], this._unknownBoundTextures = !1, this.unknownTexture = new Ce } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.contextChange = function() { var t = this.gl = this.renderer.gl; this.CONTEXT_UID = this.renderer.CONTEXT_UID, this.webGLVersion = this.renderer.context.webGLVersion; var e = t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS); this.boundTextures.length = e; for (var n = 0; n < e; n++) this.boundTextures[n] = null; this.emptyTextures = {}; var r = new ar(t.createTexture()); t.bindTexture(t.TEXTURE_2D, r.texture), t.texImage2D(t.TEXTURE_2D, 0, t.RGBA, 1, 1, 0, t.RGBA, t.UNSIGNED_BYTE, new Uint8Array(4)), this.emptyTextures[t.TEXTURE_2D] = r, this.emptyTextures[t.TEXTURE_CUBE_MAP] = new ar(t.createTexture()), t.bindTexture(t.TEXTURE_CUBE_MAP, this.emptyTextures[t.TEXTURE_CUBE_MAP].texture); for (var i = 0; i < 6; i++) t.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, t.RGBA, 1, 1, 0, t.RGBA, t.UNSIGNED_BYTE, null); t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MAG_FILTER, t.LINEAR), t.texParameteri(t.TEXTURE_CUBE_MAP, t.TEXTURE_MIN_FILTER, t.LINEAR); for (var o = 0; o < this.boundTextures.length; o++) this.bind(null, o) }, e.prototype.bind = function(t, e) { void 0 === e && (e = 0); var n = this.gl; if (t) { if ((t = t.baseTexture || t).valid) { t.touched = this.renderer.textureGC.count; var r = t._glTextures[this.CONTEXT_UID] || this.initTexture(t); this.currentLocation !== e && (this.currentLocation = e, n.activeTexture(n.TEXTURE0 + e)), this.boundTextures[e] !== t && n.bindTexture(t.target, r.texture), r.dirtyId !== t.dirtyId && this.updateTexture(t), this.boundTextures[e] = t } } else this.currentLocation !== e && (this.currentLocation = e, n.activeTexture(n.TEXTURE0 + e)), n.bindTexture(n.TEXTURE_2D, this.emptyTextures[n.TEXTURE_2D].texture), this.boundTextures[e] = null }, e.prototype.reset = function() { this._unknownBoundTextures = !0, this.currentLocation = -1; for (var t = 0; t < this.boundTextures.length; t++) this.boundTextures[t] = this.unknownTexture }, e.prototype.unbind = function(t) { var e = this.gl, n = this.boundTextures; if (this._unknownBoundTextures) { this._unknownBoundTextures = !1; for (var r = 0; r < n.length; r++) n[r] === this.unknownTexture && this.bind(null, r) } for (var i = 0; i < n.length; i++) n[i] === t && (this.currentLocation !== i && (e.activeTexture(e.TEXTURE0 + i), this.currentLocation = i), e.bindTexture(e.TEXTURE_2D, this.emptyTextures[t.target].texture), n[i] = null) }, e.prototype.initTexture = function(t) { var e = new ar(this.gl.createTexture()); return e.dirtyId = -1, t._glTextures[this.CONTEXT_UID] = e, this.managedTextures.push(t), t.on("dispose", this.destroyTexture, this), e }, e.prototype.updateTexture = function(t) { var e = t._glTextures[this.CONTEXT_UID], n = this.renderer; if (t.resource && t.resource.upload(n, t, e)); else { var r = t.realWidth, i = t.realHeight, o = n.gl; (e.width !== r || e.height !== i || e.dirtyId < 0) && (e.width = r, e.height = i, o.texImage2D(t.target, 0, t.format, r, i, 0, t.format, t.type, null)) } t.dirtyStyleId !== e.dirtyStyleId && this.updateTextureStyle(t), e.dirtyId = t.dirtyId }, e.prototype.destroyTexture = function(t, e) { var n = this.gl; if ((t = t.baseTexture || t)._glTextures[this.CONTEXT_UID] && (this.unbind(t), n.deleteTexture(t._glTextures[this.CONTEXT_UID].texture), t.off("dispose", this.destroyTexture, this), delete t._glTextures[this.CONTEXT_UID], !e)) { var r = this.managedTextures.indexOf(t); - 1 !== r && st(this.managedTextures, r, 1) } }, e.prototype.updateTextureStyle = function(t) { var e = t._glTextures[this.CONTEXT_UID]; e && (t.mipmap !== Q && 2 === this.webGLVersion || t.isPowerOfTwo ? (e.mipmap = t.mipmap >= 1, e.wrapMode = t.wrapMode) : (e.mipmap = 0, e.wrapMode = N), t.resource && t.resource.style(this.renderer, t, e) || this.setStyle(t, e), e.dirtyStyleId = t.dirtyStyleId) }, e.prototype.setStyle = function(t, e) { var n = this.gl; e.mipmap && n.generateMipmap(t.target), n.texParameteri(t.target, n.TEXTURE_WRAP_S, e.wrapMode), n.texParameteri(t.target, n.TEXTURE_WRAP_T, e.wrapMode), e.mipmap ? n.texParameteri(t.target, n.TEXTURE_MIN_FILTER, t.scaleMode ? n.LINEAR_MIPMAP_LINEAR : n.NEAREST_MIPMAP_NEAREST) : n.texParameteri(t.target, n.TEXTURE_MIN_FILTER, t.scaleMode ? n.LINEAR : n.NEAREST), n.texParameteri(t.target, n.TEXTURE_MAG_FILTER, t.scaleMode ? n.LINEAR : n.NEAREST) }, e }(Re), Ar = new Lt, hr = function(t) { function e(n) { void 0 === n && (n = {}), t.call(this, "WebGL", n), n = this.options, this.type = M.WEBGL, this.gl = null, this.CONTEXT_UID = 0, this.runners = { destroy: new ae("destroy"), contextChange: new ae("contextChange", 1), reset: new ae("reset"), update: new ae("update"), postrender: new ae("postrender"), prerender: new ae("prerender"), resize: new ae("resize", 2) }, this.globalUniforms = new tn({ projectionMatrix: new Lt }, !0), this.addSystem(Gn, "mask").addSystem(sn, "context").addSystem(ir, "state").addSystem(Zn, "shader").addSystem(sr, "texture").addSystem(un, "geometry").addSystem(An, "framebuffer").addSystem(Wn, "stencil").addSystem(Yn, "projection").addSystem(or, "textureGC").addSystem(nn, "filter").addSystem(Vn, "renderTexture").addSystem(on, "batch"), this.initPlugins(e.__plugins), n.context ? this.context.initFromContext(n.context) : this.context.initFromOptions({ alpha: this.transparent, antialias: n.antialias, premultipliedAlpha: this.transparent && "notMultiplied" !== this.transparent, stencil: !0, preserveDrawingBuffer: n.preserveDrawingBuffer, powerPreference: this.options.powerPreference }), this.renderingToScreen = !0, V(2 === this.context.webGLVersion ? "WebGL 2" : "WebGL 1"), this.resize(this.options.width, this.options.height) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.create = function(t) { if (q()) return new e(t); throw new Error('WebGL unsupported in this browser, use "pixi.js-legacy" for fallback canvas2d support.') }, e.prototype.addSystem = function(t, e) { e || (e = t.name); var n = new t(this); if (this[e]) throw new Error('Whoops! The name "' + e + '" is already in use'); for (var r in this[e] = n, this.runners) this.runners[r].add(n); return this }, e.prototype.render = function(t, e, n, r, i) { if (this.renderingToScreen = !e, this.runners.prerender.run(), this.emit("prerender"), this.projection.transform = r, !this.context.isLost) { if (e || (this._lastObjectRendered = t), !i) { var o = t.parent; t.parent = this._tempDisplayObjectParent, t.updateTransform(), t.parent = o } this.renderTexture.bind(e), this.batch.currentRenderer.start(), (void 0 !== n ? n : this.clearBeforeRender) && this.renderTexture.clear(), t.render(this), this.batch.currentRenderer.flush(), e && e.baseTexture.update(), this.runners.postrender.run(), this.projection.transform = null, this.emit("postrender") } }, e.prototype.resize = function(e, n) { t.prototype.resize.call(this, e, n), this.runners.resize.run(e, n) }, e.prototype.reset = function() { return this.runners.reset.run(), this }, e.prototype.clear = function() { this.framebuffer.bind(), this.framebuffer.clear() }, e.prototype.destroy = function(e) { this.runners.destroy.run(), t.prototype.destroy.call(this, e), this.gl = null }, e.registerPlugin = function(t, n) { e.__plugins = e.__plugins || {}, e.__plugins[t] = n }, e }(function(t) { function e(e, n) { t.call(this), (n = Object.assign({}, C.RENDER_OPTIONS, n)).roundPixels && (C.ROUND_PIXELS = n.roundPixels, kt("5.0.0", "Renderer roundPixels option is deprecated, please use PIXI.settings.ROUND_PIXELS", 2)), this.options = n, this.type = M.UNKNOWN, this.screen = new Kt(0, 0, n.width, n.height), this.view = n.view || document.createElement("canvas"), this.resolution = n.resolution || C.RESOLUTION, this.transparent = n.transparent, this.autoDensity = n.autoDensity || n.autoResize || !1, this.preserveDrawingBuffer = n.preserveDrawingBuffer, this.clearBeforeRender = n.clearBeforeRender, this._backgroundColor = 0, this._backgroundColorRgba = [0, 0, 0, 0], this._backgroundColorString = "#000000", this.backgroundColor = n.backgroundColor || this._backgroundColor, this._tempDisplayObjectParent = new ie, this._lastObjectRendered = this._tempDisplayObjectParent, this.plugins = {} } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { width: { configurable: !0 }, height: { configurable: !0 }, backgroundColor: { configurable: !0 } }; return e.prototype.initPlugins = function(t) { for (var e in t) this.plugins[e] = new t[e](this) }, n.width.get = function() { return this.view.width }, n.height.get = function() { return this.view.height }, e.prototype.resize = function(t, e) { this.screen.width = t, this.screen.height = e, this.view.width = t * this.resolution, this.view.height = e * this.resolution, this.autoDensity && (this.view.style.width = t + "px", this.view.style.height = e + "px") }, e.prototype.generateTexture = function(t, e, n, r) { 0 === (r = r || t.getLocalBounds()).width && (r.width = 1), 0 === r.height && (r.height = 1); var i = Ue.create(0 | r.width, 0 | r.height, e, n); return Ar.tx = -r.x, Ar.ty = -r.y, this.render(t, i, !1, Ar, !!t.parent), i }, e.prototype.destroy = function(t) { for (var e in this.plugins) this.plugins[e].destroy(), this.plugins[e] = null; t && this.view.parentNode && this.view.parentNode.removeChild(this.view), this.plugins = null, this.type = M.UNKNOWN, this.view = null, this.screen = null, this.resolution = 0, this.transparent = !1, this.autoDensity = !1, this.blendModes = null, this.options = null, this.preserveDrawingBuffer = !1, this.clearBeforeRender = !1, this._backgroundColor = 0, this._backgroundColorRgba = null, this._backgroundColorString = null, this._tempDisplayObjectParent = null, this._lastObjectRendered = null }, n.backgroundColor.get = function() { return this._backgroundColor }, n.backgroundColor.set = function(t) { this._backgroundColor = t, this._backgroundColorString = Z(t), J(t, this._backgroundColorRgba) }, Object.defineProperties(e.prototype, n), e }(k.a)); var cr = "attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n gl_Position = filterVertexPosition();\n vTextureCoord = filterTextureCoord();\n}\n", ur = function(t) { function e(e) { void 0 === e && (e = !1), t.call(this), this._buffer = new Xe(null, e, !1), this._indexBuffer = new Xe(null, e, !0), this.addAttribute("aVertexPosition", this._buffer, 2, !1, F.FLOAT).addAttribute("aTextureCoord", this._buffer, 2, !1, F.FLOAT).addAttribute("aColor", this._buffer, 4, !0, F.UNSIGNED_BYTE).addAttribute("aTextureId", this._buffer, 1, !0, F.FLOAT).addIndex(this._indexBuffer) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e }(qe), lr = function() { this.textures = [], this.ids = [], this.blend = 0, this.textureCount = 0, this.start = 0, this.size = 0, this.type = 4 }, dr = function(t) { this.vertices = new ArrayBuffer(t), this.float32View = new Float32Array(this.vertices), this.uint32View = new Uint32Array(this.vertices) }; dr.prototype.destroy = function() { this.vertices = null, this.float32View = null, this.uint32View = null }; var pr = "precision highp float;\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform vec4 tint;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying float vTextureId;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vTextureId = aTextureId;\n vColor = aColor * tint;\n}\n", fr = ["varying vec2 vTextureCoord;", "varying vec4 vColor;", "varying float vTextureId;", "uniform sampler2D uSamplers[%count%];", "void main(void){", "vec4 color;", "%forloop%", "gl_FragColor = color * vColor;", "}"].join("\n"), yr = {}, xr = {}; var mr = function(t) { function e(e) { t.call(this, e), this.vertSize = 6, this.vertByteSize = 4 * this.vertSize, this.size = 8e3, this.currentSize = 0, this.currentIndexSize = 0, this.attributeBuffers = {}, this.aBuffers = {}, this.iBuffers = {}, this.onlySprites = !1, this.shader = null, this.currentIndex = 0, this.groups = []; for (var n = 0; n < this.size / 4; n++) this.groups[n] = new lr; this.elements = [], this.vaos = [], this.vaoMax = 2, this.vertexCount = 0, this.renderer.on("prerender", this.onPrerender, this), this.state = Ln.for2d() } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.contextChange = function() { var t = this.renderer.gl; C.PREFER_ENV === B.WEBGL_LEGACY ? this.MAX_TEXTURES = 1 : (this.MAX_TEXTURES = Math.min(t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS), C.SPRITE_MAX_TEXTURES), this.MAX_TEXTURES = function(t, e) { if (0 === t) throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`"); for (var n = e.createShader(e.FRAGMENT_SHADER);;) { var r = kn.replace(/%forloop%/gi, In(t)); if (e.shaderSource(n, r), e.compileShader(n), e.getShaderParameter(n, e.COMPILE_STATUS)) break; t = t / 2 | 0 } return t }(this.MAX_TEXTURES, t)), this.shader = function(t, e) { if (!xr[e]) { for (var n = new Int32Array(e), r = 0; r < e; r++) n[r] = r; yr[e] = tn.from({ uSamplers: n }, !0); var i = fr; i = (i = i.replace(/%count%/gi, e)).replace(/%forloop%/gi, function(t) { var e = ""; e += "\n", e += "\n"; for (var n = 0; n < t; n++) n > 0 && (e += "\nelse "), n < t - 1 && (e += "if(vTextureId < " + n + ".5)"), e += "\n{", e += "\n\tcolor = texture2D(uSamplers[" + n + "], vTextureCoord);", e += "\n}"; return e += "\n", e += "\n" }(e)), xr[e] = new Rn(pr, i) } var o = { tint: new Float32Array([1, 1, 1, 1]), translationMatrix: new Lt, default: yr[e] }; return new Mn(xr[e], o) }(0, this.MAX_TEXTURES); for (var e = 0; e < this.vaoMax; e++) this.vaos[e] = new ur }, e.prototype.onPrerender = function() { this.vertexCount = 0 }, e.prototype.render = function(t) { t._texture.valid && (this.currentSize + t.vertexData.length / 2 > this.size && this.flush(), this.elements[this.currentIndex++] = t, this.currentSize += t.vertexData.length / 2, this.currentIndexSize += t.indices.length) }, e.prototype.getIndexBuffer = function(t) { var e = ut(Math.ceil(t / 12)), n = dt(e), r = 12 * e; this.iBuffers.length <= n && (this.iBuffers.length = n + 1); var i = this.iBuffers[n]; return i || (this.iBuffers[n] = i = new Uint16Array(r)), i }, e.prototype.getAttributeBuffer = function(t) { var e = ut(Math.ceil(t / 8)), n = dt(e), r = 8 * e; this.aBuffers.length <= n && (this.iBuffers.length = n + 1); var i = this.aBuffers[r]; return i || (this.aBuffers[r] = i = new dr(r * this.vertByteSize)), i }, e.prototype.flush = function() { if (0 !== this.currentSize) { var t, e, n = this.renderer.gl, r = this.MAX_TEXTURES, i = this.getAttributeBuffer(this.currentSize), o = this.getIndexBuffer(this.currentIndexSize), a = this.elements, s = this.groups, A = i.float32View, h = i.uint32View, c = this.renderer.textureGC.count, u = 0, l = 0, d = 0, p = 0, f = s[0], y = -1; f.textureCount = 0, f.start = 0, f.blend = y; var x, m = ++Ce._globalBatch; for (x = 0; x < this.currentIndex; ++x) { var g = a[x]; a[x] = null, t = g._texture.baseTexture; var w = et[t.premultiplyAlpha ? 1 : 0][g.blendMode]; y !== w && (y = w, e = null, p = r, m++), e !== t && (e = t, t._batchEnabled !== m && (p === r && (m++, p = 0, f.size = l - f.start, (f = s[d++]).textureCount = 0, f.blend = y, f.start = l), t.touched = c, t._batchEnabled = m, t._id = p, f.textures[f.textureCount++] = t, p++)), this.packGeometry(g, A, h, o, u, l), u += g.vertexData.length / 2 * this.vertSize, l += g.indices.length } Ce._globalBatch = m, f.size = l - f.start, C.CAN_UPLOAD_SAME_BUFFER ? (this.vaos[this.vertexCount]._buffer.update(i.vertices, 0), this.vaos[this.vertexCount]._indexBuffer.update(o, 0), this.renderer.geometry.updateBuffers()) : (this.vaoMax <= this.vertexCount && (this.vaoMax++, this.vaos[this.vertexCount] = new ur), this.vaos[this.vertexCount]._buffer.update(i.vertices, 0), this.vaos[this.vertexCount]._indexBuffer.update(o, 0), this.renderer.geometry.bind(this.vaos[this.vertexCount]), this.renderer.geometry.updateBuffers(), this.vertexCount++); var v = this.renderer.texture, b = this.renderer.state; for (x = 0; x < d; x++) { for (var _ = s[x], S = _.textureCount, E = 0; E < S; E++) v.bind(_.textures[E], E), _.textures[E] = null; b.setBlendMode(_.blend), n.drawElements(_.type, _.size, n.UNSIGNED_SHORT, 2 * _.start) } this.currentIndex = 0, this.currentSize = 0, this.currentIndexSize = 0 } }, e.prototype.packGeometry = function(t, e, n, r, i, o) { for (var a = i / this.vertSize, s = t.uvs, A = t.indices, h = t.vertexData, c = t._texture.baseTexture._id, u = Math.min(t.worldAlpha, 1), l = u < 1 && t._texture.baseTexture.premultiplyAlpha ? it(t._tintRGB, u) : t._tintRGB + (255 * u << 24), d = 0; d < h.length; d += 2) e[i++] = h[d], e[i++] = h[d + 1], e[i++] = s[d], e[i++] = s[d + 1], n[i++] = l, e[i++] = c; for (var p = 0; p < A.length; p++) r[o++] = a + A[p] }, e.prototype.start = function() { this.renderer.state.setState(this.state), this.renderer.shader.bind(this.shader), C.CAN_UPLOAD_SAME_BUFFER && this.renderer.geometry.bind(this.vaos[this.vertexCount]) }, e.prototype.stop = function() { this.flush() }, e.prototype.destroy = function() { for (var e = 0; e < this.vaoMax; e++) this.vaos[e] && this.vaos[e].destroy(); this.indexBuffer && this.indexBuffer.destroy(), this.renderer.off("prerender", this.onPrerender, this), this.shader && (this.shader.destroy(), this.shader = null), this.vaos = null, this.indexBuffer = null, this.indices = null, this.sprites = null, t.prototype.destroy.call(this) }, e }(rn), gr = new Kt, wr = function(t) { this.renderer = t, t.extract = this }; /*! * @pixi/extract - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/extract is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ wr.prototype.image = function(t, e, n) { var r = new Image; return r.src = this.base64(t, e, n), r }, wr.prototype.base64 = function(t, e, n) { return this.canvas(t).toDataURL(e, n) }, wr.prototype.canvas = function(t) { var e, n, r, i = this.renderer, o = !1, a = !1; t && (t instanceof Ue ? r = t : (r = this.renderer.generateTexture(t), a = !0)), r ? (e = r.baseTexture.resolution, n = r.frame, o = !1, i.renderTexture.bind(r)) : (e = this.renderer.resolution, o = !0, (n = gr).width = this.renderer.width, n.height = this.renderer.height, i.renderTexture.bind(null)); var s = n.width * e, A = n.height * e, h = new wt(s, A, 1), c = new Uint8Array(4 * s * A), u = i.gl; u.readPixels(n.x * e, n.y * e, s, A, u.RGBA, u.UNSIGNED_BYTE, c); var l = h.context.getImageData(0, 0, s, A); return l.data.set(c), h.context.putImageData(l, 0, 0), o && (h.context.scale(1, -1), h.context.drawImage(h.canvas, 0, -A)), a && r.destroy(!0), h.canvas }, wr.prototype.pixels = function(t) { var e, n, r, i = this.renderer, o = !1; t && (t instanceof Ue ? r = t : (r = this.renderer.generateTexture(t), o = !0)), r ? (e = r.baseTexture.resolution, n = r.frame, i.renderTexture.bind(r)) : (e = i.resolution, (n = gr).width = i.width, n.height = i.height, i.renderTexture.bind(null)); var a = n.width * e, s = n.height * e, A = new Uint8Array(4 * a * s), h = i.gl; return h.readPixels(n.x * e, n.y * e, a, s, h.RGBA, h.UNSIGNED_BYTE, A), o && r.destroy(!0), A }, wr.prototype.destroy = function() { this.renderer.extract = null, this.renderer = null }; /*! * @pixi/interaction - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/interaction is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ var vr = function() { this.global = new It, this.target = null, this.originalEvent = null, this.identifier = null, this.isPrimary = !1, this.button = 0, this.buttons = 0, this.width = 0, this.height = 0, this.tiltX = 0, this.tiltY = 0, this.pointerType = null, this.pressure = 0, this.rotationAngle = 0, this.twist = 0, this.tangentialPressure = 0 }, br = { pointerId: { configurable: !0 } }; br.pointerId.get = function() { return this.identifier }, vr.prototype.getLocalPosition = function(t, e, n) { return t.worldTransform.applyInverse(n || this.global, e) }, vr.prototype.copyEvent = function(t) { t.isPrimary && (this.isPrimary = !0), this.button = t.button, this.buttons = Number.isInteger(t.buttons) ? t.buttons : t.which, this.width = t.width, this.height = t.height, this.tiltX = t.tiltX, this.tiltY = t.tiltY, this.pointerType = t.pointerType, this.pressure = t.pressure, this.rotationAngle = t.rotationAngle, this.twist = t.twist || 0, this.tangentialPressure = t.tangentialPressure || 0 }, vr.prototype.reset = function() { this.isPrimary = !1 }, Object.defineProperties(vr.prototype, br); var _r = function() { this.stopped = !1, this.target = null, this.currentTarget = null, this.type = null, this.data = null }; _r.prototype.stopPropagation = function() { this.stopped = !0 }, _r.prototype.reset = function() { this.stopped = !1, this.currentTarget = null, this.target = null }; var Sr = function t(e) { this._pointerId = e, this._flags = t.FLAGS.NONE }, Er = { pointerId: { configurable: !0 }, flags: { configurable: !0 }, none: { configurable: !0 }, over: { configurable: !0 }, rightDown: { configurable: !0 }, leftDown: { configurable: !0 } }; Sr.prototype._doSet = function(t, e) { this._flags = e ? this._flags | t : this._flags & ~t }, Er.pointerId.get = function() { return this._pointerId }, Er.flags.get = function() { return this._flags }, Er.flags.set = function(t) { this._flags = t }, Er.none.get = function() { return this._flags === this.constructor.FLAGS.NONE }, Er.over.get = function() { return 0 != (this._flags & this.constructor.FLAGS.OVER) }, Er.over.set = function(t) { this._doSet(this.constructor.FLAGS.OVER, t) }, Er.rightDown.get = function() { return 0 != (this._flags & this.constructor.FLAGS.RIGHT_DOWN) }, Er.rightDown.set = function(t) { this._doSet(this.constructor.FLAGS.RIGHT_DOWN, t) }, Er.leftDown.get = function() { return 0 != (this._flags & this.constructor.FLAGS.LEFT_DOWN) }, Er.leftDown.set = function(t) { this._doSet(this.constructor.FLAGS.LEFT_DOWN, t) }, Object.defineProperties(Sr.prototype, Er), Sr.FLAGS = Object.freeze({ NONE: 0, OVER: 1, LEFT_DOWN: 2, RIGHT_DOWN: 4 }); var Cr = { interactive: !1, interactiveChildren: !0, hitArea: null, get buttonMode() { return "pointer" === this.cursor }, set buttonMode(t) { t ? this.cursor = "pointer" : "pointer" === this.cursor && (this.cursor = null) }, cursor: null, get trackedPointers() { return void 0 === this._trackedPointers && (this._trackedPointers = {}), this._trackedPointers }, _trackedPointers: void 0 }; ne.mixin(Cr); var Tr = 1, kr = { target: null, data: { global: null } }, Ir = function(t) { function e(e, n) { t.call(this), n = n || {}, this.renderer = e, this.autoPreventDefault = void 0 === n.autoPreventDefault || n.autoPreventDefault, this.interactionFrequency = n.interactionFrequency || 10, this.mouse = new vr, this.mouse.identifier = Tr, this.mouse.global.set(-999999), this.activeInteractionData = {}, this.activeInteractionData[Tr] = this.mouse, this.interactionDataPool = [], this.eventData = new _r, this.interactionDOMElement = null, this.moveWhenInside = !1, this.eventsAdded = !1, this.mouseOverRenderer = !1, this.supportsTouchEvents = "ontouchstart" in window, this.supportsPointerEvents = !!window.PointerEvent, this.onPointerUp = this.onPointerUp.bind(this), this.processPointerUp = this.processPointerUp.bind(this), this.onPointerCancel = this.onPointerCancel.bind(this), this.processPointerCancel = this.processPointerCancel.bind(this), this.onPointerDown = this.onPointerDown.bind(this), this.processPointerDown = this.processPointerDown.bind(this), this.onPointerMove = this.onPointerMove.bind(this), this.processPointerMove = this.processPointerMove.bind(this), this.onPointerOut = this.onPointerOut.bind(this), this.processPointerOverOut = this.processPointerOverOut.bind(this), this.onPointerOver = this.onPointerOver.bind(this), this.cursorStyles = { default: "inherit", pointer: "pointer" }, this.currentCursorMode = null, this.cursor = null, this._tempPoint = new It, this.resolution = 1, this.setTargetElement(this.renderer.view, this.renderer.resolution) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.hitTest = function(t, e) { return kr.target = null, kr.data.global = t, e || (e = this.renderer._lastObjectRendered), this.processInteractive(kr, e, null, !0), kr.target }, e.prototype.setTargetElement = function(t, e) { void 0 === e && (e = 1), this.removeEvents(), this.interactionDOMElement = t, this.resolution = e, this.addEvents() }, e.prototype.addEvents = function() { this.interactionDOMElement && (pe.system.add(this.update, this, Ae), window.navigator.msPointerEnabled ? (this.interactionDOMElement.style["-ms-content-zooming"] = "none", this.interactionDOMElement.style["-ms-touch-action"] = "none") : this.supportsPointerEvents && (this.interactionDOMElement.style["touch-action"] = "none"), this.supportsPointerEvents ? (window.document.addEventListener("pointermove", this.onPointerMove, !0), this.interactionDOMElement.addEventListener("pointerdown", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("pointerleave", this.onPointerOut, !0), this.interactionDOMElement.addEventListener("pointerover", this.onPointerOver, !0), window.addEventListener("pointercancel", this.onPointerCancel, !0), window.addEventListener("pointerup", this.onPointerUp, !0)) : (window.document.addEventListener("mousemove", this.onPointerMove, !0), this.interactionDOMElement.addEventListener("mousedown", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("mouseout", this.onPointerOut, !0), this.interactionDOMElement.addEventListener("mouseover", this.onPointerOver, !0), window.addEventListener("mouseup", this.onPointerUp, !0)), this.supportsTouchEvents && (this.interactionDOMElement.addEventListener("touchstart", this.onPointerDown, !0), this.interactionDOMElement.addEventListener("touchcancel", this.onPointerCancel, !0), this.interactionDOMElement.addEventListener("touchend", this.onPointerUp, !0), this.interactionDOMElement.addEventListener("touchmove", this.onPointerMove, !0)), this.eventsAdded = !0) }, e.prototype.removeEvents = function() { this.interactionDOMElement && (pe.system.remove(this.update, this), window.navigator.msPointerEnabled ? (this.interactionDOMElement.style["-ms-content-zooming"] = "", this.interactionDOMElement.style["-ms-touch-action"] = "") : this.supportsPointerEvents && (this.interactionDOMElement.style["touch-action"] = ""), this.supportsPointerEvents ? (window.document.removeEventListener("pointermove", this.onPointerMove, !0), this.interactionDOMElement.removeEventListener("pointerdown", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("pointerleave", this.onPointerOut, !0), this.interactionDOMElement.removeEventListener("pointerover", this.onPointerOver, !0), window.removeEventListener("pointercancel", this.onPointerCancel, !0), window.removeEventListener("pointerup", this.onPointerUp, !0)) : (window.document.removeEventListener("mousemove", this.onPointerMove, !0), this.interactionDOMElement.removeEventListener("mousedown", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("mouseout", this.onPointerOut, !0), this.interactionDOMElement.removeEventListener("mouseover", this.onPointerOver, !0), window.removeEventListener("mouseup", this.onPointerUp, !0)), this.supportsTouchEvents && (this.interactionDOMElement.removeEventListener("touchstart", this.onPointerDown, !0), this.interactionDOMElement.removeEventListener("touchcancel", this.onPointerCancel, !0), this.interactionDOMElement.removeEventListener("touchend", this.onPointerUp, !0), this.interactionDOMElement.removeEventListener("touchmove", this.onPointerMove, !0)), this.interactionDOMElement = null, this.eventsAdded = !1) }, e.prototype.update = function(t) { if (this._deltaTime += t, !(this._deltaTime < this.interactionFrequency) && (this._deltaTime = 0, this.interactionDOMElement)) if (this.didMove) this.didMove = !1; else { for (var e in this.cursor = null, this.activeInteractionData) if (this.activeInteractionData.hasOwnProperty(e)) { var n = this.activeInteractionData[e]; if (n.originalEvent && "touch" !== n.pointerType) { var r = this.configureInteractionEventForDOMEvent(this.eventData, n.originalEvent, n); this.processInteractive(r, this.renderer._lastObjectRendered, this.processPointerOverOut, !0) } } this.setCursorMode(this.cursor) } }, e.prototype.setCursorMode = function(t) { if (t = t || "default", this.currentCursorMode !== t) { this.currentCursorMode = t; var e = this.cursorStyles[t]; if (e) switch (typeof e) { case "string": this.interactionDOMElement.style.cursor = e; break; case "function": e(t); break; case "object": Object.assign(this.interactionDOMElement.style, e) } else "string" != typeof t || Object.prototype.hasOwnProperty.call(this.cursorStyles, t) || (this.interactionDOMElement.style.cursor = t) } }, e.prototype.dispatchEvent = function(t, e, n) { n.stopped || (n.currentTarget = t, n.type = e, t.emit(e, n), t[e] && t[e](n)) }, e.prototype.mapPositionToPoint = function(t, e, n) { var r; r = this.interactionDOMElement.parentElement ? this.interactionDOMElement.getBoundingClientRect() : { x: 0, y: 0, width: 0, height: 0 }; var i = 1 / this.resolution; t.x = (e - r.left) * (this.interactionDOMElement.width / r.width) * i, t.y = (n - r.top) * (this.interactionDOMElement.height / r.height) * i }, e.prototype.processInteractive = function(t, e, n, r, i) { if (!e || !e.visible) return !1; var o = t.data.global, a = !1, s = i = e.interactive || i, A = !0; if (e.hitArea ? (r && (e.worldTransform.applyInverse(o, this._tempPoint), e.hitArea.contains(this._tempPoint.x, this._tempPoint.y) ? a = !0 : (r = !1, A = !1)), s = !1) : e._mask && r && (e._mask.containsPoint && e._mask.containsPoint(o) || (r = !1)), A && e.interactiveChildren && e.children) for (var h = e.children, c = h.length - 1; c >= 0; c--) { var u = h[c], l = this.processInteractive(t, u, n, r, s); if (l) { if (!u.parent) continue; s = !1, l && (t.target && (r = !1), a = !0) } } return i && (r && !t.target && !e.hitArea && e.containsPoint && e.containsPoint(o) && (a = !0), e.interactive && (a && !t.target && (t.target = e), n && n(t, e, !!a))), a }, e.prototype.onPointerDown = function(t) { if (!this.supportsTouchEvents || "touch" !== t.pointerType) { var e = this.normalizeToPointerData(t); if (this.autoPreventDefault && e[0].isNormalized)(t.cancelable || !("cancelable" in t)) && t.preventDefault(); for (var n = e.length, r = 0; r < n; r++) { var i = e[r], o = this.getInteractionDataForPointerId(i), a = this.configureInteractionEventForDOMEvent(this.eventData, i, o); if (a.data.originalEvent = t, this.processInteractive(a, this.renderer._lastObjectRendered, this.processPointerDown, !0), this.emit("pointerdown", a), "touch" === i.pointerType) this.emit("touchstart", a); else if ("mouse" === i.pointerType || "pen" === i.pointerType) { var s = 2 === i.button; this.emit(s ? "rightdown" : "mousedown", this.eventData) } } } }, e.prototype.processPointerDown = function(t, e, n) { var r = t.data, i = t.data.identifier; if (n) if (e.trackedPointers[i] || (e.trackedPointers[i] = new Sr(i)), this.dispatchEvent(e, "pointerdown", t), "touch" === r.pointerType) this.dispatchEvent(e, "touchstart", t); else if ("mouse" === r.pointerType || "pen" === r.pointerType) { var o = 2 === r.button; o ? e.trackedPointers[i].rightDown = !0 : e.trackedPointers[i].leftDown = !0, this.dispatchEvent(e, o ? "rightdown" : "mousedown", t) } }, e.prototype.onPointerComplete = function(t, e, n) { for (var r = this.normalizeToPointerData(t), i = r.length, o = t.target !== this.interactionDOMElement ? "outside" : "", a = 0; a < i; a++) { var s = r[a], A = this.getInteractionDataForPointerId(s), h = this.configureInteractionEventForDOMEvent(this.eventData, s, A); if (h.data.originalEvent = t, this.processInteractive(h, this.renderer._lastObjectRendered, n, e || !o), this.emit(e ? "pointercancel" : "pointerup" + o, h), "mouse" === s.pointerType || "pen" === s.pointerType) { var c = 2 === s.button; this.emit(c ? "rightup" + o : "mouseup" + o, h) } else "touch" === s.pointerType && (this.emit(e ? "touchcancel" : "touchend" + o, h), this.releaseInteractionDataForPointerId(s.pointerId, A)) } }, e.prototype.onPointerCancel = function(t) { this.supportsTouchEvents && "touch" === t.pointerType || this.onPointerComplete(t, !0, this.processPointerCancel) }, e.prototype.processPointerCancel = function(t, e) { var n = t.data, r = t.data.identifier; void 0 !== e.trackedPointers[r] && (delete e.trackedPointers[r], this.dispatchEvent(e, "pointercancel", t), "touch" === n.pointerType && this.dispatchEvent(e, "touchcancel", t)) }, e.prototype.onPointerUp = function(t) { this.supportsTouchEvents && "touch" === t.pointerType || this.onPointerComplete(t, !1, this.processPointerUp) }, e.prototype.processPointerUp = function(t, e, n) { var r = t.data, i = t.data.identifier, o = e.trackedPointers[i], a = "touch" === r.pointerType, s = "mouse" === r.pointerType || "pen" === r.pointerType, A = !1; if (s) { var h = 2 === r.button, c = Sr.FLAGS, u = h ? c.RIGHT_DOWN : c.LEFT_DOWN, l = void 0 !== o && o.flags & u; n ? (this.dispatchEvent(e, h ? "rightup" : "mouseup", t), l && (this.dispatchEvent(e, h ? "rightclick" : "click", t), A = !0)) : l && this.dispatchEvent(e, h ? "rightupoutside" : "mouseupoutside", t), o && (h ? o.rightDown = !1 : o.leftDown = !1) } n ? (this.dispatchEvent(e, "pointerup", t), a && this.dispatchEvent(e, "touchend", t), o && (s && !A || this.dispatchEvent(e, "pointertap", t), a && (this.dispatchEvent(e, "tap", t), o.over = !1))) : o && (this.dispatchEvent(e, "pointerupoutside", t), a && this.dispatchEvent(e, "touchendoutside", t)), o && o.none && delete e.trackedPointers[i] }, e.prototype.onPointerMove = function(t) { if (!this.supportsTouchEvents || "touch" !== t.pointerType) { var e = this.normalizeToPointerData(t); "mouse" !== e[0].pointerType && "pen" !== e[0].pointerType || (this.didMove = !0, this.cursor = null); for (var n = e.length, r = 0; r < n; r++) { var i = e[r], o = this.getInteractionDataForPointerId(i), a = this.configureInteractionEventForDOMEvent(this.eventData, i, o); a.data.originalEvent = t; var s = "touch" !== i.pointerType || this.moveWhenInside; this.processInteractive(a, this.renderer._lastObjectRendered, this.processPointerMove, s), this.emit("pointermove", a), "touch" === i.pointerType && this.emit("touchmove", a), "mouse" !== i.pointerType && "pen" !== i.pointerType || this.emit("mousemove", a) } "mouse" === e[0].pointerType && this.setCursorMode(this.cursor) } }, e.prototype.processPointerMove = function(t, e, n) { var r = t.data, i = "touch" === r.pointerType, o = "mouse" === r.pointerType || "pen" === r.pointerType; o && this.processPointerOverOut(t, e, n), this.moveWhenInside && !n || (this.dispatchEvent(e, "pointermove", t), i && this.dispatchEvent(e, "touchmove", t), o && this.dispatchEvent(e, "mousemove", t)) }, e.prototype.onPointerOut = function(t) { if (!this.supportsTouchEvents || "touch" !== t.pointerType) { var e = this.normalizeToPointerData(t)[0]; "mouse" === e.pointerType && (this.mouseOverRenderer = !1, this.setCursorMode(null)); var n = this.getInteractionDataForPointerId(e), r = this.configureInteractionEventForDOMEvent(this.eventData, e, n); r.data.originalEvent = e, this.processInteractive(r, this.renderer._lastObjectRendered, this.processPointerOverOut, !1), this.emit("pointerout", r), "mouse" === e.pointerType || "pen" === e.pointerType ? this.emit("mouseout", r) : this.releaseInteractionDataForPointerId(n.identifier) } }, e.prototype.processPointerOverOut = function(t, e, n) { var r = t.data, i = t.data.identifier, o = "mouse" === r.pointerType || "pen" === r.pointerType, a = e.trackedPointers[i]; n && !a && (a = e.trackedPointers[i] = new Sr(i)), void 0 !== a && (n && this.mouseOverRenderer ? (a.over || (a.over = !0, this.dispatchEvent(e, "pointerover", t), o && this.dispatchEvent(e, "mouseover", t)), o && null === this.cursor && (this.cursor = e.cursor)) : a.over && (a.over = !1, this.dispatchEvent(e, "pointerout", this.eventData), o && this.dispatchEvent(e, "mouseout", t), a.none && delete e.trackedPointers[i])) }, e.prototype.onPointerOver = function(t) { var e = this.normalizeToPointerData(t)[0], n = this.getInteractionDataForPointerId(e), r = this.configureInteractionEventForDOMEvent(this.eventData, e, n); r.data.originalEvent = e, "mouse" === e.pointerType && (this.mouseOverRenderer = !0), this.emit("pointerover", r), "mouse" !== e.pointerType && "pen" !== e.pointerType || this.emit("mouseover", r) }, e.prototype.getInteractionDataForPointerId = function(t) { var e, n = t.pointerId; return n === Tr || "mouse" === t.pointerType ? e = this.mouse : this.activeInteractionData[n] ? e = this.activeInteractionData[n] : ((e = this.interactionDataPool.pop() || new vr).identifier = n, this.activeInteractionData[n] = e), e.copyEvent(t), e }, e.prototype.releaseInteractionDataForPointerId = function(t) { var e = this.activeInteractionData[t]; e && (delete this.activeInteractionData[t], e.reset(), this.interactionDataPool.push(e)) }, e.prototype.configureInteractionEventForDOMEvent = function(t, e, n) { return t.data = n, this.mapPositionToPoint(n.global, e.clientX, e.clientY), "touch" === e.pointerType && (e.globalX = n.global.x, e.globalY = n.global.y), n.originalEvent = e, t.reset(), t }, e.prototype.normalizeToPointerData = function(t) { var e = []; if (this.supportsTouchEvents && t instanceof TouchEvent) for (var n = 0, r = t.changedTouches.length; n < r; n++) { var i = t.changedTouches[n]; void 0 === i.button && (i.button = t.touches.length ? 1 : 0), void 0 === i.buttons && (i.buttons = t.touches.length ? 1 : 0), void 0 === i.isPrimary && (i.isPrimary = 1 === t.touches.length && "touchstart" === t.type), void 0 === i.width && (i.width = i.radiusX || 1), void 0 === i.height && (i.height = i.radiusY || 1), void 0 === i.tiltX && (i.tiltX = 0), void 0 === i.tiltY && (i.tiltY = 0), void 0 === i.pointerType && (i.pointerType = "touch"), void 0 === i.pointerId && (i.pointerId = i.identifier || 0), void 0 === i.pressure && (i.pressure = i.force || .5), void 0 === i.twist && (i.twist = 0), void 0 === i.tangentialPressure && (i.tangentialPressure = 0), void 0 === i.layerX && (i.layerX = i.offsetX = i.clientX), void 0 === i.layerY && (i.layerY = i.offsetY = i.clientY), i.isNormalized = !0, e.push(i) } else !(t instanceof MouseEvent) || this.supportsPointerEvents && t instanceof window.PointerEvent ? e.push(t) : (void 0 === t.isPrimary && (t.isPrimary = !0), void 0 === t.width && (t.width = 1), void 0 === t.height && (t.height = 1), void 0 === t.tiltX && (t.tiltX = 0), void 0 === t.tiltY && (t.tiltY = 0), void 0 === t.pointerType && (t.pointerType = "mouse"), void 0 === t.pointerId && (t.pointerId = Tr), void 0 === t.pressure && (t.pressure = .5), void 0 === t.twist && (t.twist = 0), void 0 === t.tangentialPressure && (t.tangentialPressure = 0), t.isNormalized = !0, e.push(t)); return e }, e.prototype.destroy = function() { this.removeEvents(), this.removeAllListeners(), this.renderer = null, this.mouse = null, this.eventData = null, this.interactionDOMElement = null, this.onPointerDown = null, this.processPointerDown = null, this.onPointerUp = null, this.processPointerUp = null, this.onPointerCancel = null, this.processPointerCancel = null, this.onPointerMove = null, this.processPointerMove = null, this.onPointerOut = null, this.processPointerOverOut = null, this.onPointerOver = null, this._tempPoint = null }, e }(k.a), Dr = { adaptive: !0, maxLength: 10, minSegments: 8, maxSegments: 2048, _segmentsCount: function(t, e) { if (void 0 === e && (e = 20), !this.adaptive) return e; var n = Math.ceil(t / this.maxLength); return n < this.minSegments ? n = this.minSegments : n > this.maxSegments && (n = this.maxSegments), n } }, Pr = function() { this.reset() }; Pr.prototype.clone = function() { var t = new Pr; return t.color = this.color, t.alpha = this.alpha, t.texture = this.texture, t.matrix = this.matrix, t.visible = this.visible, t }, Pr.prototype.reset = function() { this.color = 16777215, this.alpha = 1, this.texture = Fe.WHITE, this.matrix = null, this.visible = !1 }, Pr.prototype.destroy = function() { this.texture = null, this.matrix = null }; var Rr = function(t, e, n, r) { void 0 === e && (e = null), void 0 === n && (n = null), void 0 === r && (r = null), this.shape = t, this.lineStyle = n, this.fillStyle = e, this.matrix = r, this.type = t.type, this.points = [], this.holes = [] }; Rr.prototype.clone = function() { return new Rr(this.shape, this.fillStyle, this.lineStyle, this.matrix) }, Rr.prototype.destroy = function() { this.shape = null, this.holes.length = 0, this.holes = null, this.points.length = 0, this.points = null, this.lineStyle = null, this.fillStyle = null }; var Br = { build: function(t) { var e, n, r = t.shape, i = t.points, o = r.x, a = r.y; if (i.length = 0, t.type === Ot.CIRC ? (e = r.radius, n = r.radius) : (e = r.width, n = r.height), 0 !== e && 0 !== n) { var s = Math.floor(30 * Math.sqrt(r.radius)) || Math.floor(15 * Math.sqrt(r.width + r.height)); s /= 2.3; for (var A = 2 * Math.PI / s, h = 0; h < s; h++) i.push(o + Math.sin(-A * h) * e, a + Math.cos(-A * h) * n); i.push(i[0], i[1]) } }, triangulate: function(t, e) { var n = t.points, r = e.points, i = e.indices, o = r.length / 2, a = o; r.push(t.shape.x, t.shape.y); for (var s = 0; s < n.length; s += 2) r.push(n[s], n[s + 1]), i.push(o++, a, o) } }; function Mr(t, e) { t.lineStyle.native ? function(t, e) { var n = 0, r = t.points || t.shape.points; if (0 === r.length) return; var i = e.points, o = e.indices, a = r.length / 2, s = i.length / 2; for (n = 1; n < a; n++) { var A = r[2 * (n - 1)], h = r[2 * (n - 1) + 1], c = r[2 * n], u = r[2 * n + 1]; i.push(A, h), i.push(c, u), o.push(s++, s++) } }(t, e) : function(t, e) { var n = t.shape, r = t.points || n.points.slice(); if (0 === r.length) return; var i = t.lineStyle, o = new It(r[0], r[1]), a = new It(r[r.length - 2], r[r.length - 1]), s = n.type !== Ot.POLY || n.closeStroke, A = o.x === a.x && o.y === a.y; if (s) { r = r.slice(), A && (r.pop(), r.pop(), a.set(r[r.length - 2], r[r.length - 1])); var h = a.x + .5 * (o.x - a.x), c = a.y + .5 * (o.y - a.y); r.unshift(h, c), r.push(h, c) } var u = e.points, l = r.length / 2, d = r.length, p = u.length / 2, f = i.width / 2, y = r[0], x = r[1], m = r[2], g = r[3], w = 0, v = 0, b = -(x - g), _ = y - m, S = 0, E = 0, C = 0, T = 0, k = Math.sqrt(b * b + _ * _); b /= k, _ /= k, b *= f, _ *= f; var I = i.alignment, D = 2 * (1 - I), P = 2 * I; u.push(y - b * D, x - _ * D), u.push(y + b * P, x + _ * P); for (var R = 1; R < l - 1; ++R) { y = r[2 * (R - 1)], x = r[2 * (R - 1) + 1], m = r[2 * R], g = r[2 * R + 1], w = r[2 * (R + 1)], v = r[2 * (R + 1) + 1], b = -(x - g), _ = y - m, k = Math.sqrt(b * b + _ * _), b /= k, _ /= k, b *= f, _ *= f, S = -(g - v), E = m - w, k = Math.sqrt(S * S + E * E), S /= k, E /= k; var B = -_ + x - (-_ + g), M = -b + m - (-b + y), O = (-b + y) * (-_ + g) - (-b + m) * (-_ + x), L = -(E *= f) + v - (-E + g), H = -(S *= f) + m - (-S + w), z = (-S + w) * (-E + g) - (-S + m) * (-E + v), F = B * H - L * M; if (Math.abs(F) < .1) F += 10.1, u.push(m - b * D, g - _ * D), u.push(m + b * P, g + _ * P); else { var N = (M * z - H * O) / F, U = (L * O - B * z) / F, Q = (N - m) * (N - m) + (U - g) * (U - g); Q > 196 * f * f ? (C = b - S, T = _ - E, k = Math.sqrt(C * C + T * T), C /= k, T /= k, C *= f, T *= f, u.push(m - C * D, g - T * D), u.push(m + C * P, g + T * P), u.push(m - C * P * D, g - T * D), d++) : (u.push(m + (N - m) * D, g + (U - g) * D), u.push(m - (N - m) * P, g - (U - g) * P)) } } y = r[2 * (l - 2)], x = r[2 * (l - 2) + 1], m = r[2 * (l - 1)], g = r[2 * (l - 1) + 1], b = -(x - g), _ = y - m, k = Math.sqrt(b * b + _ * _), b /= k, _ /= k, b *= f, _ *= f, u.push(m - b * D, g - _ * D), u.push(m + b * P, g + _ * P); for (var j = e.indices, X = 0; X < d - 2; ++X) j.push(p, p + 1, p + 2), p++ }(t, e) } var Or = { build: function(t) { t.points = t.shape.points.slice() }, triangulate: function(t, e) { var n = t.points, r = t.holes, i = e.points, o = e.indices; if (n.length >= 6) { for (var a = [], s = 0; s < r.length; s++) { var A = r[s]; a.push(n.length / 2), n = n.concat(A.points) } var h = D()(n, a, 2); if (!h) return; for (var c = i.length / 2, u = 0; u < h.length; u += 3) o.push(h[u] + c), o.push(h[u + 1] + c), o.push(h[u + 2] + c); for (var l = 0; l < n.length; l++) i.push(n[l]) } } }, Lr = { build: function(t) { var e = t.shape, n = t.points, r = e.x, i = e.y, o = e.width, a = e.height, s = e.radius; n.length = 0, zr(r, i + s, r, i, r + s, i, n), zr(r + o - s, i, r + o, i, r + o, i + s, n), zr(r + o, i + a - s, r + o, i + a, r + o - s, i + a, n), zr(r + s, i + a, r, i + a, r, i + a - s, n) }, triangulate: function(t, e) { for (var n = t.points, r = e.points, i = e.indices, o = r.length / 2, a = D()(n, null, 2), s = 0, A = a.length; s < A; s += 3) i.push(a[s] + o), i.push(a[s + 1] + o), i.push(a[s + 2] + o); for (var h = 0, c = n.length; h < c; h++) r.push(n[h], n[++h]) } }; function Hr(t, e, n) { return t + (e - t) * n } function zr(t, e, n, r, i, o, a) { void 0 === a && (a = []); for (var s = a, A = 0, h = 0, c = 0, u = 0, l = 0, d = 0, p = 0, f = 0; p <= 20; ++p) A = Hr(t, n, f = p / 20), h = Hr(e, r, f), c = Hr(n, i, f), u = Hr(r, o, f), l = Hr(A, c, f), d = Hr(h, u, f), s.push(l, d); return s } var Fr = [], Nr = [], Ur = {}; Ur[Ot.POLY] = Or, Ur[Ot.CIRC] = Br, Ur[Ot.ELIP] = Br, Ur[Ot.RECT] = { build: function(t) { var e = t.shape, n = e.x, r = e.y, i = e.width, o = e.height, a = t.points; a.length = 0, a.push(n, r, n + i, r, n + i, r + o, n, r + o) }, triangulate: function(t, e) { var n = t.points, r = e.points, i = r.length / 2; r.push(n[0], n[1], n[2], n[3], n[6], n[7], n[4], n[5]), e.indices.push(i, i + 1, i + 2, i + 1, i + 2, i + 3) } }, Ur[Ot.RREC] = Lr; var Qr = function() { this.style = null, this.size = 0, this.start = 0, this.attribStart = 0, this.attribSize = 0 }, jr = function(t) { function e() { t.call(this), this.points = [], this.colors = [], this.uvs = [], this.indices = [], this.textureIds = [], this.graphicsData = [], this.dirty = 0, this.batchDirty = -1, this.cacheDirty = -1, this.clearDirty = 0, this.drawCalls = [], this.batches = [], this.shapeIndex = 0, this._bounds = new ee, this.boundsDirty = -1, this.boundsPadding = 0, this.batchable = !1, this.indicesUint16 = null, this.uvsFloat32 = null } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { bounds: { configurable: !0 } }; return n.bounds.get = function() { return this.boundsDirty !== this.dirty && (this.boundsDirty = this.dirty, this.calculateBounds()), this._bounds }, e.prototype.clear = function() { if (this.graphicsData.length > 0) { this.boundsDirty = -1, this.dirty++, this.clearDirty++, this.batchDirty++, this.graphicsData.length = 0, this.shapeIndex = 0, this.points.length = 0, this.colors.length = 0, this.uvs.length = 0, this.indices.length = 0, this.textureIds.length = 0; for (var t = 0; t < this.drawCalls.length; t++) this.drawCalls[t].textures.length = 0, Nr.push(this.drawCalls[t]); this.drawCalls.length = 0; for (var e = 0; e < this.batches.length; e++) { var n = this.batches[e]; n.start = 0, n.attribStart = 0, n.style = null, Fr.push(n) } this.batches.length = 0 } return this }, e.prototype.drawShape = function(t, e, n, r) { var i = new Rr(t, e, n, r); return this.graphicsData.push(i), this.dirty++, this }, e.prototype.drawHole = function(t, e) { if (!this.graphicsData.length) return null; var n = new Rr(t, null, null, e), r = this.graphicsData[this.graphicsData.length - 1]; return n.lineStyle = r.lineStyle, r.holes.push(n), this.dirty++, n }, e.prototype.destroy = function(e) { t.prototype.destroy.call(this, e); for (var n = 0; n < this.graphicsData.length; ++n) this.graphicsData[n].destroy(); this.points.length = 0, this.points = null, this.colors.length = 0, this.colors = null, this.uvs.length = 0, this.uvs = null, this.indices.length = 0, this.indices = null, this.indexBuffer.destroy(), this.indexBuffer = null, this.graphicsData.length = 0, this.graphicsData = null, this.drawCalls.length = 0, this.drawCalls = null, this.batches.length = 0, this.batches = null, this._bounds = null }, e.prototype.containsPoint = function(t) { for (var e = this.graphicsData, n = 0; n < e.length; ++n) { var r = e[n]; if (r.fillStyle.visible && (r.shape && r.shape.contains(t.x, t.y))) { if (r.holes) for (var i = 0; i < r.holes.length; i++) { if (r.holes[i].shape.contains(t.x, t.y)) return !1 } return !0 } } return !1 }, e.prototype.updateBatches = function() { if (this.dirty !== this.cacheDirty && 0 !== this.graphicsData.length) { if (this.dirty !== this.cacheDirty) for (var t = 0; t < this.graphicsData.length; t++) { var e = this.graphicsData[t]; if (e.fillStyle && !e.fillStyle.texture.baseTexture.valid) return; if (e.lineStyle && !e.lineStyle.texture.baseTexture.valid) return } this.cacheDirty = this.dirty; var n = this.uvs, r = this.batches.pop() || Fr.pop() || new Qr; r.style = r.style || this.graphicsData[0].fillStyle || this.graphicsData[0].lineStyle; var i = r.style.texture.baseTexture, o = r.style.color + r.style.alpha; this.batches.push(r); for (var a = this.shapeIndex; a < this.graphicsData.length; a++) { this.shapeIndex++; var s = this.graphicsData[a], A = Ur[s.type], h = s.fillStyle, c = s.lineStyle; A.build(s), s.matrix && this.transformPoints(s.points, s.matrix); for (var u = 0; u < 2; u++) { var l = 0 === u ? h : c; if (l.visible) { var d = l.texture.baseTexture; if (i !== d || l.color + l.alpha !== o) { d.wrapMode = 10497, i = d, o = l.color + l.alpha; var p = this.indices.length, f = this.points.length / 2; r.size = p - r.start, r.attribSize = f - r.attribStart, r.size > 0 && (r = Fr.pop() || new Qr, this.batches.push(r)), r.style = l, r.start = p, r.attribStart = f } var y = this.points.length / 2; if (0 === u) s.holes.length ? (this.processHoles(s.holes), Or.triangulate(s, this)) : A.triangulate(s, this); else { Mr(s, this); for (var x = 0; x < s.holes.length; x++) Mr(s.holes[x], this) } var m = this.points.length / 2 - y; this.addUvs(this.points, n, l.texture, y, m, l.matrix) } } } var g = this.indices.length, w = this.points.length / 2; if (r.size = g - r.start, r.attribSize = w - r.attribStart, this.indicesUint16 = new Uint16Array(this.indices), this.batchable = this.isBatchable(), this.batchable) { this.batchDirty++, this.uvsFloat32 = new Float32Array(this.uvs); for (var v = 0; v < this.batches.length; v++) for (var b = this.batches[v], _ = 0; _ < b.size; _++) { var S = b.start + _; this.indicesUint16[S] = this.indicesUint16[S] - b.attribStart } } else this.buildDrawCalls() } }, e.prototype.isBatchable = function() { for (var t = this.batches, n = 0; n < t.length; n++) if (t[n].style.native) return !1; return this.points.length < 2 * e.BATCHABLE_SIZE }, e.prototype.buildDrawCalls = function() { for (var t = ++Ce._globalBatch, e = 0; e < this.drawCalls.length; e++) this.drawCalls[e].textures.length = 0, Nr.push(this.drawCalls[e]); this.drawCalls.length = 0; var n = this.uvs, r = this.colors, i = this.textureIds, o = Nr.pop() || new lr; o.textureCount = 0, o.start = 0, o.size = 0, o.type = L.TRIANGLES; var a = 0, s = null, A = 0, h = !1, c = L.TRIANGLES, u = 0; this.drawCalls.push(o); for (var l = 0; l < this.batches.length; l++) { var d = this.batches[l], p = d.style, f = p.texture.baseTexture; h !== p.native && (c = (h = p.native) ? L.LINES : L.TRIANGLES, s = null, a = 8, t++), s !== f && (s = f, f._batchEnabled !== t && (8 === a && (t++, a = 0, o.size > 0 && (o = Nr.pop() || new lr, this.drawCalls.push(o)), o.start = u, o.size = 0, o.textureCount = 0, o.type = c), f.touched = 1, f._batchEnabled = t, f._id = a, f.wrapMode = 10497, o.textures[o.textureCount++] = f, a++)), o.size += d.size, u += d.size, A = f._id, this.addColors(r, p.color, p.alpha, d.attribSize), this.addTextureIds(i, A, d.attribSize) } Ce._globalBatch = t; for (var y = this.points, x = new ArrayBuffer(3 * y.length * 4), m = new Float32Array(x), g = new Uint32Array(x), w = 0, v = 0; v < y.length / 2; v++) m[w++] = y[2 * v], m[w++] = y[2 * v + 1], m[w++] = n[2 * v], m[w++] = n[2 * v + 1], g[w++] = r[v], m[w++] = i[v]; this._buffer.update(x), this._indexBuffer.update(this.indicesUint16) }, e.prototype.processHoles = function(t) { for (var e = 0; e < t.length; e++) { var n = t[e]; Ur[n.type].build(n), n.matrix && this.transformPoints(n.points, n.matrix) } }, e.prototype.calculateBounds = function() { var t = 1 / 0, e = -1 / 0, n = 1 / 0, r = -1 / 0; if (this.graphicsData.length) for (var i = null, o = 0, a = 0, s = 0, A = 0, h = 0; h < this.graphicsData.length; h++) { var c = this.graphicsData[h], u = c.type, l = c.lineStyle ? c.lineStyle.width : 0; if (i = c.shape, u === Ot.RECT || u === Ot.RREC) o = i.x - l / 2, a = i.y - l / 2, t = o < t ? o : t, e = o + (s = i.width + l) > e ? o + s : e, n = a < n ? a : n, r = a + (A = i.height + l) > r ? a + A : r; else if (u === Ot.CIRC) o = i.x, a = i.y, t = o - (s = i.radius + l / 2) < t ? o - s : t, e = o + s > e ? o + s : e, n = a - (A = i.radius + l / 2) < n ? a - A : n, r = a + A > r ? a + A : r; else if (u === Ot.ELIP) o = i.x, a = i.y, t = o - (s = i.width + l / 2) < t ? o - s : t, e = o + s > e ? o + s : e, n = a - (A = i.height + l / 2) < n ? a - A : n, r = a + A > r ? a + A : r; else for (var d = i.points, p = 0, f = 0, y = 0, x = 0, m = 0, g = 0, w = 0, v = 0, b = 0; b + 2 < d.length; b += 2) o = d[b], a = d[b + 1], p = d[b + 2], f = d[b + 3], y = Math.abs(p - o), x = Math.abs(f - a), A = l, (s = Math.sqrt(y * y + x * x)) < 1e-9 || (t = (w = (p + o) / 2) - (m = (A / s * x + y) / 2) < t ? w - m : t, e = w + m > e ? w + m : e, n = (v = (f + a) / 2) - (g = (A / s * y + x) / 2) < n ? v - g : n, r = v + g > r ? v + g : r) } else t = 0, e = 0, n = 0, r = 0; var _ = this.boundsPadding; this._bounds.minX = t - _, this._bounds.maxX = e + _, this._bounds.minY = n - _, this._bounds.maxY = r + _ }, e.prototype.transformPoints = function(t, e) { for (var n = 0; n < t.length / 2; n++) { var r = t[2 * n], i = t[2 * n + 1]; t[2 * n] = e.a * r + e.c * i + e.tx, t[2 * n + 1] = e.b * r + e.d * i + e.ty } }, e.prototype.addColors = function(t, e, n, r) { for (var i = it((e >> 16) + (65280 & e) + ((255 & e) << 16), n); r-- > 0;) t.push(i) }, e.prototype.addTextureIds = function(t, e, n) { for (; n-- > 0;) t.push(e) }, e.prototype.addUvs = function(t, e, n, r, i, o) { for (var a = 0, s = e.length, A = n.frame; a < i;) { var h = t[2 * (r + a)], c = t[2 * (r + a) + 1]; if (o) { var u = o.a * h + o.c * c + o.tx; c = o.b * h + o.d * c + o.ty, h = u } a++, e.push(h / A.width, c / A.height) } var l = n.baseTexture; (A.width < l.width || A.height < l.height) && this.adjustUvs(e, n, s, i) }, e.prototype.adjustUvs = function(t, e, n, r) { for (var i = e.baseTexture, o = n + 2 * r, a = e.frame, s = a.width / i.width, A = a.height / i.height, h = a.x / a.width, c = a.y / a.height, u = Math.floor(t[n] + 1e-6), l = Math.floor(t[n + 1] + 1e-6), d = n + 2; d < o; d += 2) u = Math.min(u, Math.floor(t[d] + 1e-6)), l = Math.min(l, Math.floor(t[d + 1] + 1e-6)); h -= u, c -= l; for (var p = n; p < o; p += 2) t[p] = (t[p] + h) * s, t[p + 1] = (t[p + 1] + c) * A }, Object.defineProperties(e.prototype, n), e }(ur); jr.BATCHABLE_SIZE = 100; var Xr = function(t) { function e() { t.apply(this, arguments) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.clone = function() { var t = new e; return t.color = this.color, t.alpha = this.alpha, t.texture = this.texture, t.matrix = this.matrix, t.visible = this.visible, t.width = this.width, t.alignment = this.alignment, t.native = this.native, t }, e.prototype.reset = function() { t.prototype.reset.call(this), this.color = 0, this.width = 0, this.alignment = .5, this.native = !1 }, e }(Pr), Gr = function() {}; Gr.curveLength = function(t, e, n, r, i, o, a, s) { for (var A = 0, h = 0, c = 0, u = 0, l = 0, d = 0, p = 0, f = 0, y = 0, x = 0, m = 0, g = t, w = e, v = 1; v <= 10; ++v) x = g - (f = (p = (d = (l = 1 - (h = v / 10)) * l) * l) * t + 3 * d * h * n + 3 * l * (c = h * h) * i + (u = c * h) * a), m = w - (y = p * e + 3 * d * h * r + 3 * l * c * o + u * s), g = f, w = y, A += Math.sqrt(x * x + m * m); return A }, Gr.curveTo = function(t, e, n, r, i, o, a) { var s = a[a.length - 2], A = a[a.length - 1]; a.length -= 2; var h = Dr._segmentsCount(Gr.curveLength(s, A, t, e, n, r, i, o)), c = 0, u = 0, l = 0, d = 0, p = 0; a.push(s, A); for (var f = 1, y = 0; f <= h; ++f) l = (u = (c = 1 - (y = f / h)) * c) * c, p = (d = y * y) * y, a.push(l * s + 3 * u * y * t + 3 * c * d * n + p * i, l * A + 3 * u * y * e + 3 * c * d * r + p * o) }; var Wr = function() {}; Wr.curveLength = function(t, e, n, r, i, o) { var a = t - 2 * n + i, s = e - 2 * r + o, A = 2 * n - 2 * t, h = 2 * r - 2 * e, c = 4 * (a * a + s * s), u = 4 * (a * A + s * h), l = A * A + h * h, d = 2 * Math.sqrt(c + u + l), p = Math.sqrt(c), f = 2 * c * p, y = 2 * Math.sqrt(l), x = u / p; return (f * d + p * u * (d - y) + (4 * l * c - u * u) * Math.log((2 * p + x + d) / (x + y))) / (4 * f) }, Wr.curveTo = function(t, e, n, r, i) { for (var o = i[i.length - 2], a = i[i.length - 1], s = Dr._segmentsCount(Wr.curveLength(o, a, t, e, n, r)), A = 0, h = 0, c = 1; c <= s; ++c) { var u = c / s; A = o + (t - o) * u, h = a + (e - a) * u, i.push(A + (t + (n - t) * u - A) * u, h + (e + (r - e) * u - h) * u) } }; var Yr = function() {}; Yr.curveTo = function(t, e, n, r, i, o) { var a = o[o.length - 2], s = o[o.length - 1] - e, A = a - t, h = r - e, c = n - t, u = Math.abs(s * c - A * h); if (u < 1e-8 || 0 === i) return o[o.length - 2] === t && o[o.length - 1] === e || o.push(t, e), null; var l = s * s + A * A, d = h * h + c * c, p = s * h + A * c, f = i * Math.sqrt(l) / u, y = i * Math.sqrt(d) / u, x = f * p / l, m = y * p / d, g = f * c + y * A, w = f * h + y * s, v = A * (y + x), b = s * (y + x), _ = c * (f + m), S = h * (f + m); return { cx: g + t, cy: w + e, radius: i, startAngle: Math.atan2(b - w, v - g), endAngle: Math.atan2(S - w, _ - g), anticlockwise: A * h > c * s } }, Yr.arc = function(t, e, n, r, i, o, a, s, A) { for (var h = a - o, c = Dr._segmentsCount(Math.abs(h) * i, 40 * Math.ceil(Math.abs(h) / Rt)), u = h / (2 * c), l = 2 * u, d = Math.cos(u), p = Math.sin(u), f = c - 1, y = f % 1 / f, x = 0; x <= f; ++x) { var m = u + o + l * (x + y * x), g = Math.cos(m), w = -Math.sin(m); A.push((d * g + p * w) * i + n, (d * -w + p * g) * i + r) } }; var Kr = function(t) { function e(e, n, r, i, o, a) { o = o || i / 2; for (var s = -1 * Math.PI / 2 + a, A = 2 * r, h = Rt / A, c = [], u = 0; u < A; u++) { var l = u % 2 ? o : i, d = u * h + s; c.push(e + l * Math.cos(d), n + l * Math.sin(d)) } t.call(this, c) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e }($t), Vr = new Float32Array(3), qr = null, Jr = function(t) { function e(e) { void 0 === e && (e = null), t.call(this), this.geometry = e || new jr, this.geometry.refCount++, this.shader = null, this.state = Ln.for2d(), this._fillStyle = new Pr, this._lineStyle = new Xr, this._matrix = null, this._holeMode = !1, this.currentPath = null, this.batches = [], this.batchTint = -1, this.vertexData = null, this._transformID = -1, this.batchDirty = -1, this.tint = 16777215, this.blendMode = O.NORMAL } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { blendMode: { configurable: !0 }, tint: { configurable: !0 }, fill: { configurable: !0 }, line: { configurable: !0 } }; return e.prototype.clone = function() { return this.finishPoly(), new e(this.geometry) }, n.blendMode.set = function(t) { this.state.blendMode = t }, n.blendMode.get = function() { return this.state.blendMode }, n.tint.get = function() { return this._tint }, n.tint.set = function(t) { this._tint = t }, n.fill.get = function() { return this._fillStyle }, n.line.get = function() { return this._lineStyle }, e.prototype.lineStyle = function(t, e, n, r, i) { return void 0 === t && (t = 0), void 0 === e && (e = 0), void 0 === n && (n = 1), void 0 === r && (r = .5), void 0 === i && (i = !1), this.lineTextureStyle(t, Fe.WHITE, e, n, null, r, i), this }, e.prototype.lineTextureStyle = function(t, e, n, r, i, o, a) { void 0 === t && (t = 0), void 0 === e && (e = Fe.WHITE), void 0 === n && (n = 16777215), void 0 === r && (r = 1), void 0 === i && (i = null), void 0 === o && (o = .5), void 0 === a && (a = !1), this.currentPath && this.startPoly(); var s = t > 0 && r > 0; return s ? (i && (i = i.clone()).invert(), Object.assign(this._lineStyle, { color: n, width: t, alpha: r, matrix: i, texture: e, alignment: o, native: a, visible: s })) : this._lineStyle.reset(), this }, e.prototype.startPoly = function() { if (this.currentPath) { var t = this.currentPath.points, e = this.currentPath.points.length; e > 2 && (this.drawShape(this.currentPath), this.currentPath = new $t, this.currentPath.closeStroke = !1, this.currentPath.points.push(t[e - 2], t[e - 1])) } else this.currentPath = new $t, this.currentPath.closeStroke = !1 }, e.prototype.finishPoly = function() { this.currentPath && (this.currentPath.points.length > 2 ? (this.drawShape(this.currentPath), this.currentPath = null) : this.currentPath.points.length = 0) }, e.prototype.moveTo = function(t, e) { return this.startPoly(), this.currentPath.points[0] = t, this.currentPath.points[1] = e, this }, e.prototype.lineTo = function(t, e) { this.currentPath || this.moveTo(0, 0); var n = this.currentPath.points, r = n[n.length - 2], i = n[n.length - 1]; return r === t && i === e || n.push(t, e), this }, e.prototype._initCurve = function(t, e) { void 0 === t && (t = 0), void 0 === e && (e = 0), this.currentPath ? 0 === this.currentPath.points.length && (this.currentPath.points = [t, e]) : this.moveTo(t, e) }, e.prototype.quadraticCurveTo = function(t, e, n, r) { this._initCurve(); var i = this.currentPath.points; return 0 === i.length && this.moveTo(0, 0), Wr.curveTo(t, e, n, r, i), this }, e.prototype.bezierCurveTo = function(t, e, n, r, i, o) { return this._initCurve(), Gr.curveTo(t, e, n, r, i, o, this.currentPath.points), this }, e.prototype.arcTo = function(t, e, n, r, i) { this._initCurve(t, e); var o = this.currentPath.points, a = Yr.curveTo(t, e, n, r, i, o); if (a) { var s = a.cx, A = a.cy, h = a.radius, c = a.startAngle, u = a.endAngle, l = a.anticlockwise; this.arc(s, A, h, c, u, l) } return this }, e.prototype.arc = function(t, e, n, r, i, o) { if (void 0 === o && (o = !1), r === i) return this; if (!o && i <= r ? i += Rt : o && r <= i && (r += Rt), 0 === i - r) return this; var a = t + Math.cos(r) * n, s = e + Math.sin(r) * n, A = this.currentPath ? this.currentPath.points : null; if (A) { var h = Math.abs(A[A.length - 2] - a), c = Math.abs(A[A.length - 1] - s); h < .001 && c < .001 || A.push(a, s) } else this.moveTo(a, s), A = this.currentPath.points; return Yr.arc(a, s, t, e, n, r, i, o, A), this }, e.prototype.beginFill = function(t, e) { return void 0 === t && (t = 0), void 0 === e && (e = 1), this.beginTextureFill(Fe.WHITE, t, e) }, e.prototype.beginTextureFill = function(t, e, n, r) { void 0 === t && (t = Fe.WHITE), void 0 === e && (e = 16777215), void 0 === n && (n = 1), void 0 === r && (r = null), this.currentPath && this.startPoly(); var i = n > 0; return i ? (r && (r = r.clone()).invert(), Object.assign(this._fillStyle, { color: e, alpha: n, texture: t, matrix: r, visible: i })) : this._fillStyle.reset(), this }, e.prototype.endFill = function() { return this.finishPoly(), this._fillStyle.reset(), this }, e.prototype.drawRect = function(t, e, n, r) { return this.drawShape(new Kt(t, e, n, r)) }, e.prototype.drawRoundedRect = function(t, e, n, r, i) { return this.drawShape(new te(t, e, n, r, i)) }, e.prototype.drawCircle = function(t, e, n) { return this.drawShape(new Jt(t, e, n)) }, e.prototype.drawEllipse = function(t, e, n, r) { return this.drawShape(new Zt(t, e, n, r)) }, e.prototype.drawPolygon = function(t) { var e = arguments, n = t, r = !0; if (n.points && (r = n.closeStroke, n = n.points), !Array.isArray(n)) { n = new Array(arguments.length); for (var i = 0; i < n.length; ++i) n[i] = e[i] } var o = new $t(n); return o.closeStroke = r, this.drawShape(o), this }, e.prototype.drawShape = function(t) { return this._holeMode ? this.geometry.drawHole(t, this._matrix) : this.geometry.drawShape(t, this._fillStyle.clone(), this._lineStyle.clone(), this._matrix), this }, e.prototype.drawStar = function(t, e, n, r, i, o) { return void 0 === o && (o = 0), this.drawPolygon(new Kr(t, e, n, r, i, o)) }, e.prototype.clear = function() { return this.geometry.clear(), this._matrix = null, this._holeMode = !1, this.currentPath = null, this._spriteRect = null, this }, e.prototype.isFastRect = function() { return !1 }, e.prototype._render = function(t) { this.finishPoly(); var e = this.geometry; if (e.updateBatches(), e.batchable) { if (this.batchDirty !== e.batchDirty) { this.batches = [], this.batchTint = -1, this._transformID = -1, this.batchDirty = e.batchDirty, this.vertexData = new Float32Array(e.points); for (var n = this.blendMode, r = 0; r < e.batches.length; r++) { var i = e.batches[r], o = i.style.color, a = new Float32Array(this.vertexData.buffer, 4 * i.attribStart * 2, 2 * i.attribSize), s = new Float32Array(e.uvsFloat32.buffer, 4 * i.attribStart * 2, 2 * i.attribSize), A = { vertexData: a, blendMode: n, indices: new Uint16Array(e.indicesUint16.buffer, 2 * i.start, i.size), uvs: s, _batchRGB: J(o), _tintRGB: o, _texture: i.style.texture, alpha: i.style.alpha, worldAlpha: 1 }; this.batches[r] = A } } if (t.batch.setObjectRenderer(t.plugins.batch), this.batches.length) { this.calculateVertices(), this.calculateTints(); for (var h = 0; h < this.batches.length; h++) { var c = this.batches[h]; c.worldAlpha = this.worldAlpha * c.alpha, t.plugins.batch.render(c) } } } else { if (t.batch.flush(), !this.shader) { if (!qr) { for (var u = new Int32Array(16), l = 0; l < 16; l++) u[l] = l; var d = { tint: new Float32Array([1, 1, 1, 1]), translationMatrix: new Lt, default: tn.from({ uSamplers: u }, !0) }, p = t.plugins.batch.shader.program; qr = new Mn(p, d) } this.shader = qr } var f = this.shader.uniforms; f.translationMatrix = this.transform.worldTransform; var y = this.tint, x = this.worldAlpha; f.tint[0] = (y >> 16 & 255) / 255 * x, f.tint[1] = (y >> 8 & 255) / 255 * x, f.tint[2] = (255 & y) / 255 * x, f.tint[3] = x, t.shader.bind(this.shader), t.geometry.bind(e, this.shader), t.state.setState(this.state); for (var m = 0; m < e.drawCalls.length; m++) { for (var g = e.drawCalls[m], w = g.textureCount, v = 0; v < w; v++) t.texture.bind(g.textures[v], v); t.geometry.draw(g.type, g.size, g.start) } } }, e.prototype._calculateBounds = function() { this.finishPoly(); var t = this.geometry.bounds; this._bounds.addFrame(this.transform, t.minX, t.minY, t.maxX, t.maxY) }, e.prototype.containsPoint = function(t) { return this.worldTransform.applyInverse(t, e._TEMP_POINT), this.geometry.containsPoint(e._TEMP_POINT) }, e.prototype.calculateTints = function() { if (this.batchTint !== this.tint) { this.batchTint = this.tint; for (var t = J(this.tint, Vr), e = 0; e < this.batches.length; e++) { var n = this.batches[e], r = n._batchRGB, i = (t[0] * r[0] * 255 << 16) + (t[1] * r[1] * 255 << 8) + (0 | t[2] * r[2] * 255); n._tintRGB = (i >> 16) + (65280 & i) + ((255 & i) << 16) } } }, e.prototype.calculateVertices = function() { if (this._transformID !== this.transform._worldID) { this._transformID = this.transform._worldID; for (var t = this.transform.worldTransform, e = t.a, n = t.b, r = t.c, i = t.d, o = t.tx, a = t.ty, s = this.geometry.points, A = this.vertexData, h = 0, c = 0; c < s.length; c += 2) { var u = s[c], l = s[c + 1]; A[h++] = e * u + r * l + o, A[h++] = i * l + n * u + a } } }, e.prototype.closePath = function() { var t = this.currentPath; return t && (t.closeStroke = !0), this }, e.prototype.setMatrix = function(t) { return this._matrix = t, this }, e.prototype.beginHole = function() { return this.finishPoly(), this._holeMode = !0, this }, e.prototype.endHole = function() { return this.finishPoly(), this._holeMode = !1, this }, e.prototype.destroy = function(e) { t.prototype.destroy.call(this, e), this.geometry.refCount--, 0 === this.geometry.refCount && this.geometry.dispose(), this._matrix = null, this.currentPath = null, this._lineStyle.destroy(), this._lineStyle = null, this._fillStyle.destroy(), this._fillStyle = null, this.geometry = null, this.shader = null, this.vertexData = null, this.batches.length = 0, this.batches = null, t.prototype.destroy.call(this, e) }, Object.defineProperties(e.prototype, n), e }(ie); Jr._TEMP_POINT = new It; /*! * @pixi/sprite - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/sprite is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ var Zr = new It, $r = new Uint16Array([0, 1, 2, 0, 2, 3]), ti = function(t) { function e(e) { t.call(this), this._anchor = new Dt(this._onAnchorUpdate, this, e ? e.defaultAnchor.x : 0, e ? e.defaultAnchor.y : 0), this._texture = null, this._width = 0, this._height = 0, this._tint = null, this._tintRGB = null, this.tint = 16777215, this.blendMode = O.NORMAL, this.shader = null, this._cachedTint = 16777215, this.uvs = null, this.texture = e || Fe.EMPTY, this.vertexData = new Float32Array(8), this.vertexTrimmedData = null, this._transformID = -1, this._textureID = -1, this._transformTrimmedID = -1, this._textureTrimmedID = -1, this.indices = $r, this.size = 4, this.start = 0, this.pluginName = "batch", this.isSprite = !0, this._roundPixels = C.ROUND_PIXELS } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { roundPixels: { configurable: !0 }, width: { configurable: !0 }, height: { configurable: !0 }, anchor: { configurable: !0 }, tint: { configurable: !0 }, texture: { configurable: !0 } }; return e.prototype._onTextureUpdate = function() { this._textureID = -1, this._textureTrimmedID = -1, this._cachedTint = 16777215, this.uvs = this._texture._uvs.uvsFloat32, this._width && (this.scale.x = ct(this.scale.x) * this._width / this._texture.orig.width), this._height && (this.scale.y = ct(this.scale.y) * this._height / this._texture.orig.height) }, e.prototype._onAnchorUpdate = function() { this._transformID = -1, this._transformTrimmedID = -1 }, e.prototype.calculateVertices = function() { var t = this._texture; if (this._transformID !== this.transform._worldID || this._textureID !== t._updateID) { this._transformID = this.transform._worldID, this._textureID = t._updateID; var e = this.transform.worldTransform, n = e.a, r = e.b, i = e.c, o = e.d, a = e.tx, s = e.ty, A = this.vertexData, h = t.trim, c = t.orig, u = this._anchor, l = 0, d = 0, p = 0, f = 0; if (h ? (l = (d = h.x - u._x * c.width) + h.width, p = (f = h.y - u._y * c.height) + h.height) : (l = (d = -u._x * c.width) + c.width, p = (f = -u._y * c.height) + c.height), A[0] = n * d + i * f + a, A[1] = o * f + r * d + s, A[2] = n * l + i * f + a, A[3] = o * f + r * l + s, A[4] = n * l + i * p + a, A[5] = o * p + r * l + s, A[6] = n * d + i * p + a, A[7] = o * p + r * d + s, this._roundPixels) for (var y = 0; y < 8; y++) A[y] = Math.round(A[y]) } }, e.prototype.calculateTrimmedVertices = function() { if (this.vertexTrimmedData) { if (this._transformTrimmedID === this.transform._worldID && this._textureTrimmedID === this._texture._updateID) return } else this.vertexTrimmedData = new Float32Array(8); this._transformTrimmedID = this.transform._worldID, this._textureTrimmedID = this._texture._updateID; var t = this._texture, e = this.vertexTrimmedData, n = t.orig, r = this._anchor, i = this.transform.worldTransform, o = i.a, a = i.b, s = i.c, A = i.d, h = i.tx, c = i.ty, u = -r._x * n.width, l = u + n.width, d = -r._y * n.height, p = d + n.height; e[0] = o * u + s * d + h, e[1] = A * d + a * u + c, e[2] = o * l + s * d + h, e[3] = A * d + a * l + c, e[4] = o * l + s * p + h, e[5] = A * p + a * l + c, e[6] = o * u + s * p + h, e[7] = A * p + a * u + c }, e.prototype._render = function(t) { this.calculateVertices(), t.batch.setObjectRenderer(t.plugins[this.pluginName]), t.plugins[this.pluginName].render(this) }, e.prototype._calculateBounds = function() { var t = this._texture.trim, e = this._texture.orig; !t || t.width === e.width && t.height === e.height ? (this.calculateVertices(), this._bounds.addQuad(this.vertexData)) : (this.calculateTrimmedVertices(), this._bounds.addQuad(this.vertexTrimmedData)) }, e.prototype.getLocalBounds = function(e) { return 0 === this.children.length ? (this._bounds.minX = this._texture.orig.width * -this._anchor._x, this._bounds.minY = this._texture.orig.height * -this._anchor._y, this._bounds.maxX = this._texture.orig.width * (1 - this._anchor._x), this._bounds.maxY = this._texture.orig.height * (1 - this._anchor._y), e || (this._localBoundsRect || (this._localBoundsRect = new Kt), e = this._localBoundsRect), this._bounds.getRectangle(e)) : t.prototype.getLocalBounds.call(this, e) }, e.prototype.containsPoint = function(t) { this.worldTransform.applyInverse(t, Zr); var e = this._texture.orig.width, n = this._texture.orig.height, r = -e * this.anchor.x, i = 0; return Zr.x >= r && Zr.x < r + e && (i = -n * this.anchor.y, Zr.y >= i && Zr.y < i + n) }, e.prototype.destroy = function(e) { if (t.prototype.destroy.call(this, e), this._texture.off("update", this._onTextureUpdate, this), this._anchor = null, "boolean" == typeof e ? e : e && e.texture) { var n = "boolean" == typeof e ? e : e && e.baseTexture; this._texture.destroy(!!n) } this._texture = null, this.shader = null }, e.from = function(t, n) { return new e(t instanceof Fe ? t : Fe.from(t, n)) }, n.roundPixels.set = function(t) { this._roundPixels !== t && (this._transformID = -1), this._roundPixels = t }, n.roundPixels.get = function() { return this._roundPixels }, n.width.get = function() { return Math.abs(this.scale.x) * this._texture.orig.width }, n.width.set = function(t) { var e = ct(this.scale.x) || 1; this.scale.x = e * t / this._texture.orig.width, this._width = t }, n.height.get = function() { return Math.abs(this.scale.y) * this._texture.orig.height }, n.height.set = function(t) { var e = ct(this.scale.y) || 1; this.scale.y = e * t / this._texture.orig.height, this._height = t }, n.anchor.get = function() { return this._anchor }, n.anchor.set = function(t) { this._anchor.copyFrom(t) }, n.tint.get = function() { return this._tint }, n.tint.set = function(t) { this._tint = t, this._tintRGB = (t >> 16) + (65280 & t) + ((255 & t) << 16) }, n.texture.get = function() { return this._texture }, n.texture.set = function(t) { this._texture !== t && (this._texture = t || Fe.EMPTY, this._cachedTint = 16777215, this._textureID = -1, this._textureTrimmedID = -1, t && (t.baseTexture.valid ? this._onTextureUpdate() : t.once("update", this._onTextureUpdate, this))) }, Object.defineProperties(e.prototype, n), e }(ie), ei = 0, ni = { align: "left", breakWords: !1, dropShadow: !1, dropShadowAlpha: 1, dropShadowAngle: Math.PI / 6, dropShadowBlur: 0, dropShadowColor: "black", dropShadowDistance: 5, fill: "black", fillGradientType: ei, fillGradientStops: [], fontFamily: "Arial", fontSize: 26, fontStyle: "normal", fontVariant: "normal", fontWeight: "normal", letterSpacing: 0, lineHeight: 0, lineJoin: "miter", miterLimit: 10, padding: 0, stroke: "black", strokeThickness: 0, textBaseline: "alphabetic", trim: !1, whiteSpace: "pre", wordWrap: !1, wordWrapWidth: 100, leading: 0 }, ri = ["serif", "sans-serif", "monospace", "cursive", "fantasy", "system-ui"], ii = function(t) { this.styleID = 0, this.reset(), Ai(this, t, t) }, oi = { align: { configurable: !0 }, breakWords: { configurable: !0 }, dropShadow: { configurable: !0 }, dropShadowAlpha: { configurable: !0 }, dropShadowAngle: { configurable: !0 }, dropShadowBlur: { configurable: !0 }, dropShadowColor: { configurable: !0 }, dropShadowDistance: { configurable: !0 }, fill: { configurable: !0 }, fillGradientType: { configurable: !0 }, fillGradientStops: { configurable: !0 }, fontFamily: { configurable: !0 }, fontSize: { configurable: !0 }, fontStyle: { configurable: !0 }, fontVariant: { configurable: !0 }, fontWeight: { configurable: !0 }, letterSpacing: { configurable: !0 }, lineHeight: { configurable: !0 }, leading: { configurable: !0 }, lineJoin: { configurable: !0 }, miterLimit: { configurable: !0 }, padding: { configurable: !0 }, stroke: { configurable: !0 }, strokeThickness: { configurable: !0 }, textBaseline: { configurable: !0 }, trim: { configurable: !0 }, whiteSpace: { configurable: !0 }, wordWrap: { configurable: !0 }, wordWrapWidth: { configurable: !0 } }; function ai(t) { return "number" == typeof t ? Z(t) : ("string" == typeof t && 0 === t.indexOf("0x") && (t = t.replace("0x", "#")), t) } function si(t) { if (Array.isArray(t)) { for (var e = 0; e < t.length; ++e) t[e] = ai(t[e]); return t } return ai(t) } function Ai(t, e, n) { for (var r in n) Array.isArray(e[r]) ? t[r] = e[r].slice() : t[r] = e[r] } ii.prototype.clone = function() { var t = {}; return Ai(t, this, ni), new ii(t) }, ii.prototype.reset = function() { Ai(this, ni, ni) }, oi.align.get = function() { return this._align }, oi.align.set = function(t) { this._align !== t && (this._align = t, this.styleID++) }, oi.breakWords.get = function() { return this._breakWords }, oi.breakWords.set = function(t) { this._breakWords !== t && (this._breakWords = t, this.styleID++) }, oi.dropShadow.get = function() { return this._dropShadow }, oi.dropShadow.set = function(t) { this._dropShadow !== t && (this._dropShadow = t, this.styleID++) }, oi.dropShadowAlpha.get = function() { return this._dropShadowAlpha }, oi.dropShadowAlpha.set = function(t) { this._dropShadowAlpha !== t && (this._dropShadowAlpha = t, this.styleID++) }, oi.dropShadowAngle.get = function() { return this._dropShadowAngle }, oi.dropShadowAngle.set = function(t) { this._dropShadowAngle !== t && (this._dropShadowAngle = t, this.styleID++) }, oi.dropShadowBlur.get = function() { return this._dropShadowBlur }, oi.dropShadowBlur.set = function(t) { this._dropShadowBlur !== t && (this._dropShadowBlur = t, this.styleID++) }, oi.dropShadowColor.get = function() { return this._dropShadowColor }, oi.dropShadowColor.set = function(t) { var e = si(t); this._dropShadowColor !== e && (this._dropShadowColor = e, this.styleID++) }, oi.dropShadowDistance.get = function() { return this._dropShadowDistance }, oi.dropShadowDistance.set = function(t) { this._dropShadowDistance !== t && (this._dropShadowDistance = t, this.styleID++) }, oi.fill.get = function() { return this._fill }, oi.fill.set = function(t) { var e = si(t); this._fill !== e && (this._fill = e, this.styleID++) }, oi.fillGradientType.get = function() { return this._fillGradientType }, oi.fillGradientType.set = function(t) { this._fillGradientType !== t && (this._fillGradientType = t, this.styleID++) }, oi.fillGradientStops.get = function() { return this._fillGradientStops }, oi.fillGradientStops.set = function(t) { (function(t, e) { if (!Array.isArray(t) || !Array.isArray(e)) return !1; if (t.length !== e.length) return !1; for (var n = 0; n < t.length; ++n) if (t[n] !== e[n]) return !1; return !0 })(this._fillGradientStops, t) || (this._fillGradientStops = t, this.styleID++) }, oi.fontFamily.get = function() { return this._fontFamily }, oi.fontFamily.set = function(t) { this.fontFamily !== t && (this._fontFamily = t, this.styleID++) }, oi.fontSize.get = function() { return this._fontSize }, oi.fontSize.set = function(t) { this._fontSize !== t && (this._fontSize = t, this.styleID++) }, oi.fontStyle.get = function() { return this._fontStyle }, oi.fontStyle.set = function(t) { this._fontStyle !== t && (this._fontStyle = t, this.styleID++) }, oi.fontVariant.get = function() { return this._fontVariant }, oi.fontVariant.set = function(t) { this._fontVariant !== t && (this._fontVariant = t, this.styleID++) }, oi.fontWeight.get = function() { return this._fontWeight }, oi.fontWeight.set = function(t) { this._fontWeight !== t && (this._fontWeight = t, this.styleID++) }, oi.letterSpacing.get = function() { return this._letterSpacing }, oi.letterSpacing.set = function(t) { this._letterSpacing !== t && (this._letterSpacing = t, this.styleID++) }, oi.lineHeight.get = function() { return this._lineHeight }, oi.lineHeight.set = function(t) { this._lineHeight !== t && (this._lineHeight = t, this.styleID++) }, oi.leading.get = function() { return this._leading }, oi.leading.set = function(t) { this._leading !== t && (this._leading = t, this.styleID++) }, oi.lineJoin.get = function() { return this._lineJoin }, oi.lineJoin.set = function(t) { this._lineJoin !== t && (this._lineJoin = t, this.styleID++) }, oi.miterLimit.get = function() { return this._miterLimit }, oi.miterLimit.set = function(t) { this._miterLimit !== t && (this._miterLimit = t, this.styleID++) }, oi.padding.get = function() { return this._padding }, oi.padding.set = function(t) { this._padding !== t && (this._padding = t, this.styleID++) }, oi.stroke.get = function() { return this._stroke }, oi.stroke.set = function(t) { var e = si(t); this._stroke !== e && (this._stroke = e, this.styleID++) }, oi.strokeThickness.get = function() { return this._strokeThickness }, oi.strokeThickness.set = function(t) { this._strokeThickness !== t && (this._strokeThickness = t, this.styleID++) }, oi.textBaseline.get = function() { return this._textBaseline }, oi.textBaseline.set = function(t) { this._textBaseline !== t && (this._textBaseline = t, this.styleID++) }, oi.trim.get = function() { return this._trim }, oi.trim.set = function(t) { this._trim !== t && (this._trim = t, this.styleID++) }, oi.whiteSpace.get = function() { return this._whiteSpace }, oi.whiteSpace.set = function(t) { this._whiteSpace !== t && (this._whiteSpace = t, this.styleID++) }, oi.wordWrap.get = function() { return this._wordWrap }, oi.wordWrap.set = function(t) { this._wordWrap !== t && (this._wordWrap = t, this.styleID++) }, oi.wordWrapWidth.get = function() { return this._wordWrapWidth }, oi.wordWrapWidth.set = function(t) { this._wordWrapWidth !== t && (this._wordWrapWidth = t, this.styleID++) }, ii.prototype.toFontString = function() { var t = "number" == typeof this.fontSize ? this.fontSize + "px" : this.fontSize, e = this.fontFamily; Array.isArray(this.fontFamily) || (e = this.fontFamily.split(",")); for (var n = e.length - 1; n >= 0; n--) { var r = e[n].trim(); !/([\"\'])[^\'\"]+\1/.test(r) && ri.indexOf(r) < 0 && (r = '"' + r + '"'), e[n] = r } return this.fontStyle + " " + this.fontVariant + " " + this.fontWeight + " " + t + " " + e.join(",") }, Object.defineProperties(ii.prototype, oi); var hi = function(t, e, n, r, i, o, a, s, A) { this.text = t, this.style = e, this.width = n, this.height = r, this.lines = i, this.lineWidths = o, this.lineHeight = a, this.maxLineWidth = s, this.fontProperties = A }; hi.measureText = function(t, e, n, r) { void 0 === r && (r = hi._canvas), n = null == n ? e.wordWrap : n; var i = e.toFontString(), o = hi.measureFont(i); 0 === o.fontSize && (o.fontSize = e.fontSize, o.ascent = e.fontSize); var a = r.getContext("2d"); a.font = i; for (var s = (n ? hi.wordWrap(t, e, r) : t).split(/(?:\r\n|\r|\n)/), A = new Array(s.length), h = 0, c = 0; c < s.length; c++) { var u = a.measureText(s[c]).width + (s[c].length - 1) * e.letterSpacing; A[c] = u, h = Math.max(h, u) } var l = h + e.strokeThickness; e.dropShadow && (l += e.dropShadowDistance); var d = e.lineHeight || o.fontSize + e.strokeThickness, p = Math.max(d, o.fontSize + e.strokeThickness) + (s.length - 1) * (d + e.leading); return e.dropShadow && (p += e.dropShadowDistance), new hi(t, e, l, p, s, A, d + e.leading, h, o) }, hi.wordWrap = function(t, e, n) { void 0 === n && (n = hi._canvas); for (var r = n.getContext("2d"), i = 0, o = "", a = "", s = {}, A = e.letterSpacing, h = e.whiteSpace, c = hi.collapseSpaces(h), u = hi.collapseNewlines(h), l = !c, d = e.wordWrapWidth + A, p = hi.tokenize(t), f = 0; f < p.length; f++) { var y = p[f]; if (hi.isNewline(y)) { if (!u) { a += hi.addLine(o), l = !c, o = "", i = 0; continue } y = " " } if (c) { var x = hi.isBreakingSpace(y), m = hi.isBreakingSpace(o[o.length - 1]); if (x && m) continue } var g = hi.getFromCache(y, A, s, r); if (g > d) if ("" !== o && (a += hi.addLine(o), o = "", i = 0), hi.canBreakWords(y, e.breakWords)) for (var w = y.split(""), v = 0; v < w.length; v++) { for (var b = w[v], _ = 1; w[v + _];) { var S = w[v + _], E = b[b.length - 1]; if (hi.canBreakChars(E, S, y, v, e.breakWords)) break; b += S, _++ } v += b.length - 1; var C = hi.getFromCache(b, A, s, r); C + i > d && (a += hi.addLine(o), l = !1, o = "", i = 0), o += b, i += C } else { o.length > 0 && (a += hi.addLine(o), o = "", i = 0); var T = f === p.length - 1; a += hi.addLine(y, !T), l = !1, o = "", i = 0 } else g + i > d && (l = !1, a += hi.addLine(o), o = "", i = 0), (o.length > 0 || !hi.isBreakingSpace(y) || l) && (o += y, i += g) } return a += hi.addLine(o, !1) }, hi.addLine = function(t, e) { return void 0 === e && (e = !0), t = hi.trimRight(t), t = e ? t + "\n" : t }, hi.getFromCache = function(t, e, n, r) { var i = n[t]; if (void 0 === i) { var o = t.length * e; i = r.measureText(t).width + o, n[t] = i } return i }, hi.collapseSpaces = function(t) { return "normal" === t || "pre-line" === t }, hi.collapseNewlines = function(t) { return "normal" === t }, hi.trimRight = function(t) { if ("string" != typeof t) return ""; for (var e = t.length - 1; e >= 0; e--) { var n = t[e]; if (!hi.isBreakingSpace(n)) break; t = t.slice(0, -1) } return t }, hi.isNewline = function(t) { return "string" == typeof t && hi._newlines.indexOf(t.charCodeAt(0)) >= 0 }, hi.isBreakingSpace = function(t) { return "string" == typeof t && hi._breakingSpaces.indexOf(t.charCodeAt(0)) >= 0 }, hi.tokenize = function(t) { var e = [], n = ""; if ("string" != typeof t) return e; for (var r = 0; r < t.length; r++) { var i = t[r]; hi.isBreakingSpace(i) || hi.isNewline(i) ? ("" !== n && (e.push(n), n = ""), e.push(i)) : n += i } return "" !== n && e.push(n), e }, hi.canBreakWords = function(t, e) { return e }, hi.canBreakChars = function(t, e, n, r, i) { return !0 }, hi.measureFont = function(t) { if (hi._fonts[t]) return hi._fonts[t]; var e = {}, n = hi._canvas, r = hi._context; r.font = t; var i = hi.METRICS_STRING + hi.BASELINE_SYMBOL, o = Math.ceil(r.measureText(i).width), a = Math.ceil(r.measureText(hi.BASELINE_SYMBOL).width), s = 2 * a; a = a * hi.BASELINE_MULTIPLIER | 0, n.width = o, n.height = s, r.fillStyle = "#f00", r.fillRect(0, 0, o, s), r.font = t, r.textBaseline = "alphabetic", r.fillStyle = "#000", r.fillText(i, 0, a); var A = r.getImageData(0, 0, o, s).data, h = A.length, c = 4 * o, u = 0, l = 0, d = !1; for (u = 0; u < a; ++u) { for (var p = 0; p < c; p += 4) if (255 !== A[l + p]) { d = !0; break } if (d) break; l += c } for (e.ascent = a - u, l = h - c, d = !1, u = s; u > a; --u) { for (var f = 0; f < c; f += 4) if (255 !== A[l + f]) { d = !0; break } if (d) break; l -= c } return e.descent = u - a, e.fontSize = e.ascent + e.descent, hi._fonts[t] = e, e }, hi.clearMetrics = function(t) { void 0 === t && (t = ""), t ? delete hi._fonts[t] : hi._fonts = {} }; var ci = document.createElement("canvas"); ci.width = ci.height = 10, hi._canvas = ci, hi._context = ci.getContext("2d"), hi._fonts = {}, hi.METRICS_STRING = "|ÉqÅ", hi.BASELINE_SYMBOL = "M", hi.BASELINE_MULTIPLIER = 1.4, hi._newlines = [10, 13], hi._breakingSpaces = [9, 32, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8200, 8201, 8202, 8287, 12288]; var ui = { texture: !0, children: !1, baseTexture: !0 }, li = function(t) { function e(e, n, r) { (r = r || document.createElement("canvas")).width = 3, r.height = 3; var i = Fe.from(r); i.orig = new Kt, i.trim = new Kt, t.call(this, i), this.canvas = r, this.context = this.canvas.getContext("2d"), this._resolution = C.RESOLUTION, this._autoResolution = !0, this._text = null, this._style = null, this._styleListener = null, this._font = "", this.text = e, this.style = n, this.localStyleID = -1 } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { width: { configurable: !0 }, height: { configurable: !0 }, style: { configurable: !0 }, text: { configurable: !0 }, resolution: { configurable: !0 } }; return e.prototype.updateText = function(t) { var e = this._style; if (this.localStyleID !== e.styleID && (this.dirty = !0, this.localStyleID = e.styleID), this.dirty || !t) { this._font = this._style.toFontString(); var n, r, i = this.context, o = hi.measureText(this._text || " ", this._style, this._style.wordWrap, this.canvas), a = o.width, s = o.height, A = o.lines, h = o.lineHeight, c = o.lineWidths, u = o.maxLineWidth, l = o.fontProperties; if (this.canvas.width = Math.ceil((Math.max(1, a) + 2 * e.padding) * this._resolution), this.canvas.height = Math.ceil((Math.max(1, s) + 2 * e.padding) * this._resolution), i.scale(this._resolution, this._resolution), i.clearRect(0, 0, this.canvas.width, this.canvas.height), i.font = this._font, i.strokeStyle = e.stroke, i.lineWidth = e.strokeThickness, i.textBaseline = e.textBaseline, i.lineJoin = e.lineJoin, i.miterLimit = e.miterLimit, e.dropShadow) { var d = e.dropShadowColor, p = J("number" == typeof d ? d : $(d)); i.shadowColor = "rgba(" + 255 * p[0] + "," + 255 * p[1] + "," + 255 * p[2] + "," + e.dropShadowAlpha + ")", i.shadowBlur = e.dropShadowBlur, i.shadowOffsetX = Math.cos(e.dropShadowAngle) * e.dropShadowDistance, i.shadowOffsetY = Math.sin(e.dropShadowAngle) * e.dropShadowDistance } else i.shadowColor = 0, i.shadowBlur = 0, i.shadowOffsetX = 0, i.shadowOffsetY = 0; i.fillStyle = this._generateFillStyle(e, A); for (var f = 0; f < A.length; f++) n = e.strokeThickness / 2, r = e.strokeThickness / 2 + f * h + l.ascent, "right" === e.align ? n += u - c[f] : "center" === e.align && (n += (u - c[f]) / 2), e.stroke && e.strokeThickness && this.drawLetterSpacing(A[f], n + e.padding, r + e.padding, !0), e.fill && this.drawLetterSpacing(A[f], n + e.padding, r + e.padding); this.updateTexture() } }, e.prototype.drawLetterSpacing = function(t, e, n, r) { void 0 === r && (r = !1); var i = this._style.letterSpacing; if (0 !== i) for (var o = e, a = Array.from ? Array.from(t) : t.split(""), s = 0; s < a.length; ++s) { var A = a[s]; r ? this.context.strokeText(A, o, n) : this.context.fillText(A, o, n), o += this.context.measureText(A).width + i } else r ? this.context.strokeText(t, e, n) : this.context.fillText(t, e, n) }, e.prototype.updateTexture = function() { var t = this.canvas; if (this._style.trim) { var e = gt(t); e.data && (t.width = e.width, t.height = e.height, this.context.putImageData(e.data, 0, 0)) } var n = this._texture, r = this._style, i = r.trim ? 0 : r.padding, o = n.baseTexture; n.trim.width = n._frame.width = t.width / this._resolution, n.trim.height = n._frame.height = t.height / this._resolution, n.trim.x = -i, n.trim.y = -i, n.orig.width = n._frame.width - 2 * i, n.orig.height = n._frame.height - 2 * i, this._onTextureUpdate(), o.setRealSize(t.width, t.height, this._resolution), this.dirty = !1 }, e.prototype.render = function(e) { this._autoResolution && this._resolution !== e.resolution && (this._resolution = e.resolution, this.dirty = !0), this.updateText(!0), t.prototype.render.call(this, e) }, e.prototype._renderCanvas = function(e) { this._autoResolution && this._resolution !== e.resolution && (this._resolution = e.resolution, this.dirty = !0), this.updateText(!0), t.prototype._renderCanvas.call(this, e) }, e.prototype.getLocalBounds = function(e) { return this.updateText(!0), t.prototype.getLocalBounds.call(this, e) }, e.prototype._calculateBounds = function() { this.updateText(!0), this.calculateVertices(), this._bounds.addQuad(this.vertexData) }, e.prototype._onStyleChange = function() { this.dirty = !0 }, e.prototype._generateFillStyle = function(t, e) { if (!Array.isArray(t.fill)) return t.fill; var n, r, i, o, a = this.canvas.width / this._resolution, s = this.canvas.height / this._resolution, A = t.fill.slice(), h = t.fillGradientStops.slice(); if (!h.length) for (var c = A.length + 1, u = 1; u < c; ++u) h.push(u / c); if (A.unshift(t.fill[0]), h.unshift(0), A.push(t.fill[t.fill.length - 1]), h.push(1), t.fillGradientType === ei) { n = this.context.createLinearGradient(a / 2, 0, a / 2, s), r = (A.length + 1) * e.length, i = 0; for (var l = 0; l < e.length; l++) { i += 1; for (var d = 0; d < A.length; d++) o = "number" == typeof h[d] ? h[d] / e.length + l / e.length : i / r, n.addColorStop(o, A[d]), i++ } } else { n = this.context.createLinearGradient(0, s / 2, a, s / 2), r = A.length + 1, i = 1; for (var p = 0; p < A.length; p++) o = "number" == typeof h[p] ? h[p] : i / r, n.addColorStop(o, A[p]), i++ } return n }, e.prototype.destroy = function(e) { "boolean" == typeof e && (e = { children: e }), e = Object.assign({}, ui, e), t.prototype.destroy.call(this, e), this.context = null, this.canvas = null, this._style = null }, n.width.get = function() { return this.updateText(!0), Math.abs(this.scale.x) * this._texture.orig.width }, n.width.set = function(t) { this.updateText(!0); var e = ct(this.scale.x) || 1; this.scale.x = e * t / this._texture.orig.width, this._width = t }, n.height.get = function() { return this.updateText(!0), Math.abs(this.scale.y) * this._texture.orig.height }, n.height.set = function(t) { this.updateText(!0); var e = ct(this.scale.y) || 1; this.scale.y = e * t / this._texture.orig.height, this._height = t }, n.style.get = function() { return this._style }, n.style.set = function(t) { t = t || {}, this._style = t instanceof ii ? t : new ii(t), this.localStyleID = -1, this.dirty = !0 }, n.text.get = function() { return this._text }, n.text.set = function(t) { t = String(null == t ? "" : t), this._text !== t && (this._text = t, this.dirty = !0) }, n.resolution.get = function() { return this._resolution }, n.resolution.set = function(t) { this._autoResolution = !1, this._resolution !== t && (this._resolution = t, this.dirty = !0) }, Object.defineProperties(e.prototype, n), e }(ti); /*! * @pixi/prepare - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/prepare is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ C.UPLOADS_PER_FRAME = 4; var di = function(t) { this.maxItemsPerFrame = t, this.itemsLeft = 0 }; di.prototype.beginFrame = function() { this.itemsLeft = this.maxItemsPerFrame }, di.prototype.allowedToUpload = function() { return this.itemsLeft-- > 0 }; var pi = function(t) { var e = this; this.limiter = new di(C.UPLOADS_PER_FRAME), this.renderer = t, this.uploadHookHelper = null, this.queue = [], this.addHooks = [], this.uploadHooks = [], this.completes = [], this.ticking = !1, this.delayedTick = function() { e.queue && e.prepareItems() }, this.registerFindHook(wi), this.registerFindHook(vi), this.registerFindHook(fi), this.registerFindHook(yi), this.registerFindHook(xi), this.registerUploadHook(mi), this.registerUploadHook(gi) }; function fi(t, e) { var n = !1; if (t && t._textures && t._textures.length) for (var r = 0; r < t._textures.length; r++) if (t._textures[r] instanceof Fe) { var i = t._textures[r].baseTexture; - 1 === e.indexOf(i) && (e.push(i), n = !0) } return n } function yi(t, e) { return t instanceof Ce && (-1 === e.indexOf(t) && e.push(t), !0) } function xi(t, e) { if (t._texture && t._texture instanceof Fe) { var n = t._texture.baseTexture; return -1 === e.indexOf(n) && e.push(n), !0 } return !1 } function mi(t, e) { return e instanceof li && (e.updateText(!0), !0) } function gi(t, e) { if (e instanceof ii) { var n = e.toFontString(); return hi.measureFont(n), !0 } return !1 } function wi(t, e) { if (t instanceof li) { -1 === e.indexOf(t.style) && e.push(t.style), -1 === e.indexOf(t) && e.push(t); var n = t._texture.baseTexture; return -1 === e.indexOf(n) && e.push(n), !0 } return !1 } function vi(t, e) { return t instanceof ii && (-1 === e.indexOf(t) && e.push(t), !0) } pi.prototype.upload = function(t, e) { "function" == typeof t && (e = t, t = null), t && this.add(t), this.queue.length ? (e && this.completes.push(e), this.ticking || (this.ticking = !0, pe.system.addOnce(this.tick, this, le))) : e && e() }, pi.prototype.tick = function() { setTimeout(this.delayedTick, 0) }, pi.prototype.prepareItems = function() { for (this.limiter.beginFrame(); this.queue.length && this.limiter.allowedToUpload();) { var t = this.queue[0], e = !1; if (t && !t._destroyed) for (var n = 0, r = this.uploadHooks.length; n < r; n++) if (this.uploadHooks[n](this.uploadHookHelper, t)) { this.queue.shift(), e = !0; break } e || this.queue.shift() } if (this.queue.length) pe.system.addOnce(this.tick, this, le); else { this.ticking = !1; var i = this.completes.slice(0); this.completes.length = 0; for (var o = 0, a = i.length; o < a; o++) i[o]() } }, pi.prototype.registerFindHook = function(t) { return t && this.addHooks.push(t), this }, pi.prototype.registerUploadHook = function(t) { return t && this.uploadHooks.push(t), this }, pi.prototype.add = function(t) { for (var e = 0, n = this.addHooks.length; e < n && !this.addHooks[e](t, this.queue); e++); if (t instanceof ie) for (var r = t.children.length - 1; r >= 0; r--) this.add(t.children[r]); return this }, pi.prototype.destroy = function() { this.ticking && pe.system.remove(this.tick, this), this.ticking = !1, this.addHooks = null, this.uploadHooks = null, this.renderer = null, this.completes = null, this.queue = null, this.limiter = null, this.uploadHookHelper = null }; var bi = function(t) { function e(e) { t.call(this, e), this.uploadHookHelper = this.renderer, this.registerFindHook(Ei), this.registerUploadHook(_i), this.registerUploadHook(Si) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e }(pi); function _i(t, e) { return e instanceof Ce && (e._glTextures[t.CONTEXT_UID] || t.textureManager.updateTexture(e), !0) } function Si(t, e) { return e instanceof Jr && ((e.dirty || e.clearDirty || !e._webGL[t.plugins.graphics.CONTEXT_UID]) && t.plugins.graphics.updateGraphics(e), !0) } function Ei(t, e) { return t instanceof Jr && (e.push(t), !0) } var Ci = function(t) { this.maxMilliseconds = t, this.frameStart = 0 }; Ci.prototype.beginFrame = function() { this.frameStart = Date.now() }, Ci.prototype.allowedToUpload = function() { return Date.now() - this.frameStart < this.maxMilliseconds }; /*! * @pixi/app - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/app is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ var Ti = function t(e) { var n = this; e = Object.assign({ forceCanvas: !1 }, e), this.renderer = function(t) { return hr.create(t) }(e), this.stage = new ie, t._plugins.forEach(function(t) { t.init.call(n, e) }) }, ki = { view: { configurable: !0 }, screen: { configurable: !0 } }; Ti.registerPlugin = function(t) { Ti._plugins.push(t) }, Ti.prototype.render = function() { this.renderer.render(this.stage) }, ki.view.get = function() { return this.renderer.view }, ki.screen.get = function() { return this.renderer.screen }, Ti.prototype.destroy = function(t) { var e = this, n = Ti._plugins.slice(0); n.reverse(), n.forEach(function(t) { t.destroy.call(e) }), this.stage.destroy(), this.stage = null, this.renderer.destroy(t), this.renderer = null, this._options = null }, Object.defineProperties(Ti.prototype, ki), Ti._plugins = []; var Ii = function() {}; Ii.init = function(t) { var e = this; Object.defineProperty(this, "resizeTo", { set: function(t) { window.removeEventListener("resize", this.resize), this._resizeTo = t, t && (window.addEventListener("resize", this.resize), this.resize()) }, get: function() { return this._resizeTo } }), this.resize = function() { e._resizeTo && (e._resizeTo === window ? e.renderer.resize(window.innerWidth, window.innerHeight) : e.renderer.resize(e._resizeTo.clientWidth, e._resizeTo.clientHeight)) }, this._resizeTo = null, this.resizeTo = t.resizeTo || null }, Ii.destroy = function() { this.resizeTo = null, this.resize = null }, Ti.registerPlugin(Ii); var Di = n(16), Pi = n.n(Di); /*! * @pixi/loaders - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/loaders is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ function Ri(t) { return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t } function Bi(t, e) { return t(e = { exports: {} }, e.exports), e.exports } var Mi = function(t, e) { e = e || {}; for (var n = { key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"], q: { name: "queryKey", parser: /(?:^|&)([^&=]*)=?([^&]*)/g }, parser: { strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ } }, r = n.parser[e.strictMode ? "strict" : "loose"].exec(t), i = {}, o = 14; o--;) i[n.key[o]] = r[o] || ""; return i[n.q.name] = {}, i[n.key[12]].replace(n.q.parser, function(t, e, r) { e && (i[n.q.name][e] = r) }), i }, Oi = Bi(function(t, e) { Object.defineProperty(e, "__esModule", { value: !0 }); var n = function() { function t(t, e) { for (var n = 0; n < e.length; n++) { var r = e[n]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r) } } return function(e, n, r) { return n && t(e.prototype, n), r && t(e, r), e } }(); function r(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") } var i = function() { function t(e, n, i) { void 0 === n && (n = !1), r(this, t), this._fn = e, this._once = n, this._thisArg = i, this._next = this._prev = this._owner = null } return n(t, [{ key: "detach", value: function() { return null !== this._owner && (this._owner.detach(this), !0) } }]), t }(); function o(t, e) { return t._head ? (t._tail._next = e, e._prev = t._tail, t._tail = e) : (t._head = e, t._tail = e), e._owner = t, e } var a = function() { function t() { r(this, t), this._head = this._tail = void 0 } return n(t, [{ key: "handlers", value: function() { var t = !(arguments.length <= 0 || void 0 === arguments[0]) && arguments[0], e = this._head; if (t) return !!e; for (var n = []; e;) n.push(e), e = e._next; return n } }, { key: "has", value: function(t) { if (!(t instanceof i)) throw new Error("MiniSignal#has(): First arg must be a MiniSignalBinding object."); return t._owner === this } }, { key: "dispatch", value: function() { var t = arguments, e = this._head; if (!e) return !1; for (; e;) e._once && this.detach(e), e._fn.apply(e._thisArg, t), e = e._next; return !0 } }, { key: "add", value: function(t) { var e = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1]; if ("function" != typeof t) throw new Error("MiniSignal#add(): First arg must be a Function."); return o(this, new i(t, !1, e)) } }, { key: "once", value: function(t) { var e = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1]; if ("function" != typeof t) throw new Error("MiniSignal#once(): First arg must be a Function."); return o(this, new i(t, !0, e)) } }, { key: "detach", value: function(t) { if (!(t instanceof i)) throw new Error("MiniSignal#detach(): First arg must be a MiniSignalBinding object."); return t._owner !== this ? this : (t._prev && (t._prev._next = t._next), t._next && (t._next._prev = t._prev), t === this._head ? (this._head = t._next, null === t._next && (this._tail = null)) : t === this._tail && (this._tail = t._prev, this._tail._next = null), t._owner = null, this) } }, { key: "detachAll", value: function() { var t = this._head; if (!t) return this; for (this._head = this._tail = null; t;) t._owner = null, t = t._next; return this } }]), t }(); a.MiniSignalBinding = i, e.default = a, t.exports = e.default }); Ri(Oi); var Li = Bi(function(t, e) { e.__esModule = !0, e.Resource = void 0; var n = function() { function t(t, e) { for (var n = 0; n < e.length; n++) { var r = e[n]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r) } } return function(e, n, r) { return n && t(e.prototype, n), r && t(e, r), e } }(), r = o(Mi), i = o(Oi); function o(t) { return t && t.__esModule ? t : { default: t } } var a = !(!window.XDomainRequest || "withCredentials" in new XMLHttpRequest), s = null; function A() {} var h = e.Resource = function() { function t(e, n, r) { if (function(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") }(this, t), "string" != typeof e || "string" != typeof n) throw new Error("Both name and url are required for constructing a resource."); r = r || {}, this._flags = 0, this._setFlag(t.STATUS_FLAGS.DATA_URL, 0 === n.indexOf("data:")), this.name = e, this.url = n, this.extension = this._getExtension(), this.data = null, this.crossOrigin = !0 === r.crossOrigin ? "anonymous" : r.crossOrigin, this.timeout = r.timeout || 0, this.loadType = r.loadType || this._determineLoadType(), this.xhrType = r.xhrType, this.metadata = r.metadata || {}, this.error = null, this.xhr = null, this.children = [], this.type = t.TYPE.UNKNOWN, this.progressChunk = 0, this._dequeue = A, this._onLoadBinding = null, this._elementTimer = 0, this._boundComplete = this.complete.bind(this), this._boundOnError = this._onError.bind(this), this._boundOnProgress = this._onProgress.bind(this), this._boundOnTimeout = this._onTimeout.bind(this), this._boundXhrOnError = this._xhrOnError.bind(this), this._boundXhrOnTimeout = this._xhrOnTimeout.bind(this), this._boundXhrOnAbort = this._xhrOnAbort.bind(this), this._boundXhrOnLoad = this._xhrOnLoad.bind(this), this.onStart = new i.default, this.onProgress = new i.default, this.onComplete = new i.default, this.onAfterMiddleware = new i.default } return t.setExtensionLoadType = function(e, n) { c(t._loadTypeMap, e, n) }, t.setExtensionXhrType = function(e, n) { c(t._xhrTypeMap, e, n) }, t.prototype.complete = function() { this._clearEvents(), this._finish() }, t.prototype.abort = function(e) { if (!this.error) { if (this.error = new Error(e), this._clearEvents(), this.xhr) this.xhr.abort(); else if (this.xdr) this.xdr.abort(); else if (this.data) if (this.data.src) this.data.src = t.EMPTY_GIF; else for (; this.data.firstChild;) this.data.removeChild(this.data.firstChild); this._finish() } }, t.prototype.load = function(e) { var n = this; if (!this.isLoading) if (this.isComplete) e && setTimeout(function() { return e(n) }, 1); else switch (e && this.onComplete.once(e), this._setFlag(t.STATUS_FLAGS.LOADING, !0), this.onStart.dispatch(this), !1 !== this.crossOrigin && "string" == typeof this.crossOrigin || (this.crossOrigin = this._determineCrossOrigin(this.url)), this.loadType) { case t.LOAD_TYPE.IMAGE: this.type = t.TYPE.IMAGE, this._loadElement("image"); break; case t.LOAD_TYPE.AUDIO: this.type = t.TYPE.AUDIO, this._loadSourceElement("audio"); break; case t.LOAD_TYPE.VIDEO: this.type = t.TYPE.VIDEO, this._loadSourceElement("video"); break; case t.LOAD_TYPE.XHR: default: a && this.crossOrigin ? this._loadXdr() : this._loadXhr() } }, t.prototype._hasFlag = function(t) { return 0 != (this._flags & t) }, t.prototype._setFlag = function(t, e) { this._flags = e ? this._flags | t : this._flags & ~t }, t.prototype._clearEvents = function() { clearTimeout(this._elementTimer), this.data && this.data.removeEventListener && (this.data.removeEventListener("error", this._boundOnError, !1), this.data.removeEventListener("load", this._boundComplete, !1), this.data.removeEventListener("progress", this._boundOnProgress, !1), this.data.removeEventListener("canplaythrough", this._boundComplete, !1)), this.xhr && (this.xhr.removeEventListener ? (this.xhr.removeEventListener("error", this._boundXhrOnError, !1), this.xhr.removeEventListener("timeout", this._boundXhrOnTimeout, !1), this.xhr.removeEventListener("abort", this._boundXhrOnAbort, !1), this.xhr.removeEventListener("progress", this._boundOnProgress, !1), this.xhr.removeEventListener("load", this._boundXhrOnLoad, !1)) : (this.xhr.onerror = null, this.xhr.ontimeout = null, this.xhr.onprogress = null, this.xhr.onload = null)) }, t.prototype._finish = function() { if (this.isComplete) throw new Error("Complete called again for an already completed resource."); this._setFlag(t.STATUS_FLAGS.COMPLETE, !0), this._setFlag(t.STATUS_FLAGS.LOADING, !1), this.onComplete.dispatch(this) }, t.prototype._loadElement = function(t) { this.metadata.loadElement ? this.data = this.metadata.loadElement : "image" === t && void 0 !== window.Image ? this.data = new Image : this.data = document.createElement(t), this.crossOrigin && (this.data.crossOrigin = this.crossOrigin), this.metadata.skipSource || (this.data.src = this.url), this.data.addEventListener("error", this._boundOnError, !1), this.data.addEventListener("load", this._boundComplete, !1), this.data.addEventListener("progress", this._boundOnProgress, !1), this.timeout && (this._elementTimer = setTimeout(this._boundOnTimeout, this.timeout)) }, t.prototype._loadSourceElement = function(t) { if (this.metadata.loadElement ? this.data = this.metadata.loadElement : "audio" === t && void 0 !== window.Audio ? this.data = new Audio : this.data = document.createElement(t), null !== this.data) { if (this.crossOrigin && (this.data.crossOrigin = this.crossOrigin), !this.metadata.skipSource) if (navigator.isCocoonJS) this.data.src = Array.isArray(this.url) ? this.url[0] : this.url; else if (Array.isArray(this.url)) for (var e = this.metadata.mimeType, n = 0; n < this.url.length; ++n) this.data.appendChild(this._createSource(t, this.url[n], Array.isArray(e) ? e[n] : e)); else { var r = this.metadata.mimeType; this.data.appendChild(this._createSource(t, this.url, Array.isArray(r) ? r[0] : r)) } this.data.addEventListener("error", this._boundOnError, !1), this.data.addEventListener("load", this._boundComplete, !1), this.data.addEventListener("progress", this._boundOnProgress, !1), this.data.addEventListener("canplaythrough", this._boundComplete, !1), this.data.load(), this.timeout && (this._elementTimer = setTimeout(this._boundOnTimeout, this.timeout)) } else this.abort("Unsupported element: " + t) }, t.prototype._loadXhr = function() { "string" != typeof this.xhrType && (this.xhrType = this._determineXhrType()); var e = this.xhr = new XMLHttpRequest; e.open("GET", this.url, !0), e.timeout = this.timeout, this.xhrType === t.XHR_RESPONSE_TYPE.JSON || this.xhrType === t.XHR_RESPONSE_TYPE.DOCUMENT ? e.responseType = t.XHR_RESPONSE_TYPE.TEXT : e.responseType = this.xhrType, e.addEventListener("error", this._boundXhrOnError, !1), e.addEventListener("timeout", this._boundXhrOnTimeout, !1), e.addEventListener("abort", this._boundXhrOnAbort, !1), e.addEventListener("progress", this._boundOnProgress, !1), e.addEventListener("load", this._boundXhrOnLoad, !1), e.send() }, t.prototype._loadXdr = function() { "string" != typeof this.xhrType && (this.xhrType = this._determineXhrType()); var t = this.xhr = new XDomainRequest; t.timeout = this.timeout || 5e3, t.onerror = this._boundXhrOnError, t.ontimeout = this._boundXhrOnTimeout, t.onprogress = this._boundOnProgress, t.onload = this._boundXhrOnLoad, t.open("GET", this.url, !0), setTimeout(function() { return t.send() }, 1) }, t.prototype._createSource = function(t, e, n) { n || (n = t + "/" + this._getExtension(e)); var r = document.createElement("source"); return r.src = e, r.type = n, r }, t.prototype._onError = function(t) { this.abort("Failed to load element using: " + t.target.nodeName) }, t.prototype._onProgress = function(t) { t && t.lengthComputable && this.onProgress.dispatch(this, t.loaded / t.total) }, t.prototype._onTimeout = function() { this.abort("Load timed out.") }, t.prototype._xhrOnError = function() { var t = this.xhr; this.abort(u(t) + " Request failed. Status: " + t.status + ', text: "' + t.statusText + '"') }, t.prototype._xhrOnTimeout = function() { var t = this.xhr; this.abort(u(t) + " Request timed out.") }, t.prototype._xhrOnAbort = function() { var t = this.xhr; this.abort(u(t) + " Request was aborted by the user.") }, t.prototype._xhrOnLoad = function() { var e = this.xhr, n = "", r = void 0 === e.status ? 200 : e.status; if ("" !== e.responseType && "text" !== e.responseType && void 0 !== e.responseType || (n = e.responseText), 0 === r && (n.length > 0 || e.responseType === t.XHR_RESPONSE_TYPE.BUFFER) ? r = 200 : 1223 === r && (r = 204), 2 === (r / 100 | 0)) { if (this.xhrType === t.XHR_RESPONSE_TYPE.TEXT) this.data = n, this.type = t.TYPE.TEXT; else if (this.xhrType === t.XHR_RESPONSE_TYPE.JSON) try { this.data = JSON.parse(n), this.type = t.TYPE.JSON } catch (t) { return void this.abort("Error trying to parse loaded json: " + t) } else if (this.xhrType === t.XHR_RESPONSE_TYPE.DOCUMENT) try { if (window.DOMParser) { var i = new DOMParser; this.data = i.parseFromString(n, "text/xml") } else { var o = document.createElement("div"); o.innerHTML = n, this.data = o } this.type = t.TYPE.XML } catch (t) { return void this.abort("Error trying to parse loaded xml: " + t) } else this.data = e.response || n; this.complete() } else this.abort("[" + e.status + "] " + e.statusText + ": " + e.responseURL) }, t.prototype._determineCrossOrigin = function(t, e) { if (0 === t.indexOf("data:")) return ""; if (window.origin !== window.location.origin) return "anonymous"; e = e || window.location, s || (s = document.createElement("a")), s.href = t; var n = !(t = (0, r.default)(s.href, { strictMode: !0 })).port && "" === e.port || t.port === e.port, i = t.protocol ? t.protocol + ":" : ""; return t.host === e.hostname && n && i === e.protocol ? "" : "anonymous" }, t.prototype._determineXhrType = function() { return t._xhrTypeMap[this.extension] || t.XHR_RESPONSE_TYPE.TEXT }, t.prototype._determineLoadType = function() { return t._loadTypeMap[this.extension] || t.LOAD_TYPE.XHR }, t.prototype._getExtension = function() { var t = this.url, e = ""; if (this.isDataUrl) { var n = t.indexOf("/"); e = t.substring(n + 1, t.indexOf(";", n)) } else { var r = t.indexOf("?"), i = t.indexOf("#"), o = Math.min(r > -1 ? r : t.length, i > -1 ? i : t.length); e = (t = t.substring(0, o)).substring(t.lastIndexOf(".") + 1) } return e.toLowerCase() }, t.prototype._getMimeFromXhrType = function(e) { switch (e) { case t.XHR_RESPONSE_TYPE.BUFFER: return "application/octet-binary"; case t.XHR_RESPONSE_TYPE.BLOB: return "application/blob"; case t.XHR_RESPONSE_TYPE.DOCUMENT: return "application/xml"; case t.XHR_RESPONSE_TYPE.JSON: return "application/json"; case t.XHR_RESPONSE_TYPE.DEFAULT: case t.XHR_RESPONSE_TYPE.TEXT: default: return "text/plain" } }, n(t, [{ key: "isDataUrl", get: function() { return this._hasFlag(t.STATUS_FLAGS.DATA_URL) } }, { key: "isComplete", get: function() { return this._hasFlag(t.STATUS_FLAGS.COMPLETE) } }, { key: "isLoading", get: function() { return this._hasFlag(t.STATUS_FLAGS.LOADING) } }]), t }(); function c(t, e, n) { e && 0 === e.indexOf(".") && (e = e.substring(1)), e && (t[e] = n) } function u(t) { return t.toString().replace("object ", "") } h.STATUS_FLAGS = { NONE: 0, DATA_URL: 1, COMPLETE: 2, LOADING: 4 }, h.TYPE = { UNKNOWN: 0, JSON: 1, XML: 2, IMAGE: 3, AUDIO: 4, VIDEO: 5, TEXT: 6 }, h.LOAD_TYPE = { XHR: 1, IMAGE: 2, AUDIO: 3, VIDEO: 4 }, h.XHR_RESPONSE_TYPE = { DEFAULT: "text", BUFFER: "arraybuffer", BLOB: "blob", DOCUMENT: "document", JSON: "json", TEXT: "text" }, h._loadTypeMap = { gif: h.LOAD_TYPE.IMAGE, png: h.LOAD_TYPE.IMAGE, bmp: h.LOAD_TYPE.IMAGE, jpg: h.LOAD_TYPE.IMAGE, jpeg: h.LOAD_TYPE.IMAGE, tif: h.LOAD_TYPE.IMAGE, tiff: h.LOAD_TYPE.IMAGE, webp: h.LOAD_TYPE.IMAGE, tga: h.LOAD_TYPE.IMAGE, svg: h.LOAD_TYPE.IMAGE, "svg+xml": h.LOAD_TYPE.IMAGE, mp3: h.LOAD_TYPE.AUDIO, ogg: h.LOAD_TYPE.AUDIO, wav: h.LOAD_TYPE.AUDIO, mp4: h.LOAD_TYPE.VIDEO, webm: h.LOAD_TYPE.VIDEO }, h._xhrTypeMap = { xhtml: h.XHR_RESPONSE_TYPE.DOCUMENT, html: h.XHR_RESPONSE_TYPE.DOCUMENT, htm: h.XHR_RESPONSE_TYPE.DOCUMENT, xml: h.XHR_RESPONSE_TYPE.DOCUMENT, tmx: h.XHR_RESPONSE_TYPE.DOCUMENT, svg: h.XHR_RESPONSE_TYPE.DOCUMENT, tsx: h.XHR_RESPONSE_TYPE.DOCUMENT, gif: h.XHR_RESPONSE_TYPE.BLOB, png: h.XHR_RESPONSE_TYPE.BLOB, bmp: h.XHR_RESPONSE_TYPE.BLOB, jpg: h.XHR_RESPONSE_TYPE.BLOB, jpeg: h.XHR_RESPONSE_TYPE.BLOB, tif: h.XHR_RESPONSE_TYPE.BLOB, tiff: h.XHR_RESPONSE_TYPE.BLOB, webp: h.XHR_RESPONSE_TYPE.BLOB, tga: h.XHR_RESPONSE_TYPE.BLOB, json: h.XHR_RESPONSE_TYPE.JSON, text: h.XHR_RESPONSE_TYPE.TEXT, txt: h.XHR_RESPONSE_TYPE.TEXT, ttf: h.XHR_RESPONSE_TYPE.BUFFER, otf: h.XHR_RESPONSE_TYPE.BUFFER }, h.EMPTY_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==", t.exports.default = h }); Ri(Li); Li.Resource; var Hi = Bi(function(t, e) { e.__esModule = !0, e.encodeBinary = r; var n = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; function r(t) { for (var e = "", r = 0; r < t.length;) { for (var i = [0, 0, 0], o = [0, 0, 0, 0], a = 0; a < i.length; ++a) r < t.length ? i[a] = 255 & t.charCodeAt(r++) : i[a] = 0; switch (o[0] = i[0] >> 2, o[1] = (3 & i[0]) << 4 | i[1] >> 4, o[2] = (15 & i[1]) << 2 | i[2] >> 6, o[3] = 63 & i[2], r - (t.length - 1)) { case 2: o[3] = 64, o[2] = 64; break; case 1: o[3] = 64 } for (var s = 0; s < o.length; ++s) e += n.charAt(o[s]) } return e } t.exports.default = r }); Ri(Hi); Hi.encodeBinary; var zi = Bi(function(t, e) { e.__esModule = !0, e.blobMiddlewareFactory = function() { return function(t, e) { if (t.data) { if (t.xhr && t.xhrType === Li.Resource.XHR_RESPONSE_TYPE.BLOB) if (window.Blob && "string" != typeof t.data) { if (0 === t.data.type.indexOf("image")) { var r = n.createObjectURL(t.data); return t.blob = t.data, t.data = new Image, t.data.src = r, t.type = Li.Resource.TYPE.IMAGE, void(t.data.onload = function() { n.revokeObjectURL(r), t.data.onload = null, e() }) } } else { var i = t.xhr.getResponseHeader("content-type"); if (i && 0 === i.indexOf("image")) return t.data = new Image, t.data.src = "data:" + i + ";base64," + (0, Hi.encodeBinary)(t.xhr.responseText), t.type = Li.Resource.TYPE.IMAGE, void(t.data.onload = function() { t.data.onload = null, e() }) } e() } else e() } }; var n = window.URL || window.webkitURL }); Ri(zi); var Fi = zi.blobMiddlewareFactory, Ni = function() {}; Ni.use = function(t, e) { t.data && t.type === Di.Resource.TYPE.IMAGE && (t.texture = Fe.fromLoader(t.data, t.url, t.name)), e() }; var Ui = function(t) { function e(n, r) { var i = this; t.call(this, n, r), k.a.call(this); for (var o = 0; o < e._plugins.length; ++o) { var a = e._plugins[o], s = a.pre, A = a.use; s && this.pre(s), A && this.use(A) } this.onStart.add(function(t) { return i.emit("start", t) }), this.onProgress.add(function(t, e) { return i.emit("progress", t, e) }), this.onError.add(function(t, e, n) { return i.emit("error", t, e, n) }), this.onLoad.add(function(t, e) { return i.emit("load", t, e) }), this.onComplete.add(function(t, e) { return i.emit("complete", t, e) }), this._protected = !1 } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { shared: { configurable: !0 } }; return e.prototype.destroy = function() { this._protected || (this.removeAllListeners(), this.reset()) }, n.shared.get = function() { var t = e._shared; return t || ((t = new e)._protected = !0, e._shared = t), t }, Object.defineProperties(e, n), e }(Pi.a); Object.assign(Ui.prototype, k.a.prototype), Ui._plugins = [], Ui.registerPlugin = function(t) { return Ui._plugins.push(t), t.add && t.add(), Ui }, Ui.registerPlugin({ use: Fi() }), Ui.registerPlugin(Ni); var Qi = function() {}; Qi.init = function(t) { t = Object.assign({ sharedLoader: !1 }, t), this.loader = t.sharedLoader ? Ui.shared : new Ui }, Qi.destroy = function() { this.loader && (this.loader.destroy(), this.loader = null) }; var ji = Di.Resource, Xi = function(t, e, n) { this.geometry = new qe, this.indexBuffer = null, this.size = n, this.dynamicProperties = [], this.staticProperties = []; for (var r = 0; r < t.length; ++r) { var i = t[r]; i = { attributeName: i.attributeName, size: i.size, uploadFunction: i.uploadFunction, type: i.type || F.FLOAT, offset: i.offset }, e[r] ? this.dynamicProperties.push(i) : this.staticProperties.push(i) } this.staticStride = 0, this.staticBuffer = null, this.staticData = null, this.staticDataUint32 = null, this.dynamicStride = 0, this.dynamicBuffer = null, this.dynamicData = null, this.dynamicDataUint32 = null, this._updateID = 0, this.initBuffers() }; /*! * @pixi/particles - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/particles is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ Xi.prototype.initBuffers = function() { var t = this.geometry, e = 0; this.indexBuffer = new Xe(at(this.size), !0, !0), t.addIndex(this.indexBuffer), this.dynamicStride = 0; for (var n = 0; n < this.dynamicProperties.length; ++n) { var r = this.dynamicProperties[n]; r.offset = e, e += r.size, this.dynamicStride += r.size } var i = new ArrayBuffer(this.size * this.dynamicStride * 4 * 4); this.dynamicData = new Float32Array(i), this.dynamicDataUint32 = new Uint32Array(i), this.dynamicBuffer = new Xe(this.dynamicData, !1, !1); var o = 0; this.staticStride = 0; for (var a = 0; a < this.staticProperties.length; ++a) { var s = this.staticProperties[a]; s.offset = o, o += s.size, this.staticStride += s.size } var A = new ArrayBuffer(this.size * this.staticStride * 4 * 4); this.staticData = new Float32Array(A), this.staticDataUint32 = new Uint32Array(A), this.staticBuffer = new Xe(this.staticData, !0, !1); for (var h = 0; h < this.dynamicProperties.length; ++h) { var c = this.dynamicProperties[h]; t.addAttribute(c.attributeName, this.dynamicBuffer, 0, c.type === F.UNSIGNED_BYTE, c.type, 4 * this.dynamicStride, 4 * c.offset) } for (var u = 0; u < this.staticProperties.length; ++u) { var l = this.staticProperties[u]; t.addAttribute(l.attributeName, this.staticBuffer, 0, l.type === F.UNSIGNED_BYTE, l.type, 4 * this.staticStride, 4 * l.offset) } }, Xi.prototype.uploadDynamic = function(t, e, n) { for (var r = 0; r < this.dynamicProperties.length; r++) { var i = this.dynamicProperties[r]; i.uploadFunction(t, e, n, i.type === F.UNSIGNED_BYTE ? this.dynamicDataUint32 : this.dynamicData, this.dynamicStride, i.offset) } this.dynamicBuffer._updateID++ }, Xi.prototype.uploadStatic = function(t, e, n) { for (var r = 0; r < this.staticProperties.length; r++) { var i = this.staticProperties[r]; i.uploadFunction(t, e, n, i.type === F.UNSIGNED_BYTE ? this.staticDataUint32 : this.staticData, this.staticStride, i.offset) } this.staticBuffer._updateID++ }, Xi.prototype.destroy = function() { this.indexBuffer = null, this.dynamicProperties = null, this.dynamicBuffer = null, this.dynamicData = null, this.dynamicDataUint32 = null, this.staticProperties = null, this.staticBuffer = null, this.staticData = null, this.staticDataUint32 = null, this.geometry.destroy() }; var Gi = "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nattribute vec2 aPositionCoord;\nattribute float aRotation;\n\nuniform mat3 translationMatrix;\nuniform vec4 uColor;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nvoid main(void){\n float x = (aVertexPosition.x) * cos(aRotation) - (aVertexPosition.y) * sin(aRotation);\n float y = (aVertexPosition.x) * sin(aRotation) + (aVertexPosition.y) * cos(aRotation);\n\n vec2 v = vec2(x, y);\n v = v + aPositionCoord;\n\n gl_Position = vec4((translationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vColor = aColor * uColor;\n}\n", Wi = "varying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n vec4 color = texture2D(uSampler, vTextureCoord) * vColor;\n gl_FragColor = color;\n}", Yi = function(t) { function e(e) { t.call(this, e), this.shader = null, this.properties = null, this.tempMatrix = new Lt, this.properties = [{ attributeName: "aVertexPosition", size: 2, uploadFunction: this.uploadVertices, offset: 0 }, { attributeName: "aPositionCoord", size: 2, uploadFunction: this.uploadPosition, offset: 0 }, { attributeName: "aRotation", size: 1, uploadFunction: this.uploadRotation, offset: 0 }, { attributeName: "aTextureCoord", size: 2, uploadFunction: this.uploadUvs, offset: 0 }, { attributeName: "aColor", size: 1, type: F.UNSIGNED_BYTE, uploadFunction: this.uploadTint, offset: 0 }], this.shader = Mn.from(Gi, Wi, {}) } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.render = function(t) { var e = t.children, n = t._maxSize, r = t._batchSize, i = this.renderer, o = e.length; if (0 !== o) { o > n && !t.autoResize && (o = n); var a = t._buffers; a || (a = t._buffers = this.generateBuffers(t)); var s = e[0]._texture.baseTexture; this.renderer.state.setBlendMode(nt(t.blendMode, s.premultiplyAlpha)); var A = i.gl, h = t.worldTransform.copyTo(this.tempMatrix); h.prepend(i.globalUniforms.uniforms.projectionMatrix), this.shader.uniforms.translationMatrix = h.toArray(!0), this.shader.uniforms.uColor = rt(t.tintRgb, t.worldAlpha, this.shader.uniforms.uColor, s.premultiplyAlpha), this.shader.uniforms.uSampler = s, this.renderer.shader.bind(this.shader); for (var c = !1, u = 0, l = 0; u < o; u += r, l += 1) { var d = o - u; d > r && (d = r), l >= a.length && a.push(this._generateOneMoreBuffer(t)); var p = a[l]; p.uploadDynamic(e, u, d); var f = t._bufferUpdateIDs[l] || 0; (c = c || p._updateID < f) && (p._updateID = t._updateID, p.uploadStatic(e, u, d)), i.geometry.bind(p.geometry), A.drawElements(A.TRIANGLES, 6 * d, A.UNSIGNED_SHORT, 0) } } }, e.prototype.generateBuffers = function(t) { for (var e = [], n = t._maxSize, r = t._batchSize, i = t._properties, o = 0; o < n; o += r) e.push(new Xi(this.properties, i, r)); return e }, e.prototype._generateOneMoreBuffer = function(t) { var e = t._batchSize, n = t._properties; return new Xi(this.properties, n, e) }, e.prototype.uploadVertices = function(t, e, n, r, i, o) { for (var a = 0, s = 0, A = 0, h = 0, c = 0; c < n; ++c) { var u = t[e + c], l = u._texture, d = u.scale.x, p = u.scale.y, f = l.trim, y = l.orig; f ? (a = (s = f.x - u.anchor.x * y.width) + f.width, A = (h = f.y - u.anchor.y * y.height) + f.height) : (a = y.width * (1 - u.anchor.x), s = y.width * -u.anchor.x, A = y.height * (1 - u.anchor.y), h = y.height * -u.anchor.y), r[o] = s * d, r[o + 1] = h * p, r[o + i] = a * d, r[o + i + 1] = h * p, r[o + 2 * i] = a * d, r[o + 2 * i + 1] = A * p, r[o + 3 * i] = s * d, r[o + 3 * i + 1] = A * p, o += 4 * i } }, e.prototype.uploadPosition = function(t, e, n, r, i, o) { for (var a = 0; a < n; a++) { var s = t[e + a].position; r[o] = s.x, r[o + 1] = s.y, r[o + i] = s.x, r[o + i + 1] = s.y, r[o + 2 * i] = s.x, r[o + 2 * i + 1] = s.y, r[o + 3 * i] = s.x, r[o + 3 * i + 1] = s.y, o += 4 * i } }, e.prototype.uploadRotation = function(t, e, n, r, i, o) { for (var a = 0; a < n; a++) { var s = t[e + a].rotation; r[o] = s, r[o + i] = s, r[o + 2 * i] = s, r[o + 3 * i] = s, o += 4 * i } }, e.prototype.uploadUvs = function(t, e, n, r, i, o) { for (var a = 0; a < n; ++a) { var s = t[e + a]._texture._uvs; s ? (r[o] = s.x0, r[o + 1] = s.y0, r[o + i] = s.x1, r[o + i + 1] = s.y1, r[o + 2 * i] = s.x2, r[o + 2 * i + 1] = s.y2, r[o + 3 * i] = s.x3, r[o + 3 * i + 1] = s.y3, o += 4 * i) : (r[o] = 0, r[o + 1] = 0, r[o + i] = 0, r[o + i + 1] = 0, r[o + 2 * i] = 0, r[o + 2 * i + 1] = 0, r[o + 3 * i] = 0, r[o + 3 * i + 1] = 0, o += 4 * i) } }, e.prototype.uploadTint = function(t, e, n, r, i, o) { for (var a = 0; a < n; ++a) { var s = t[e + a], A = s._texture.baseTexture.premultiplyAlpha, h = s.alpha, c = h < 1 && A ? it(s._tintRGB, h) : s._tintRGB + (255 * h << 24); r[o] = c, r[o + i] = c, r[o + 2 * i] = c, r[o + 3 * i] = c, o += 4 * i } }, e.prototype.destroy = function() { t.prototype.destroy.call(this), this.shader && (this.shader.destroy(), this.shader = null), this.tempMatrix = null }, e }(rn), Ki = function(t, e, n) { void 0 === n && (n = null), this.baseTexture = t, this.textures = {}, this.animations = {}, this.data = e, this.resolution = this._updateResolution(n || (this.baseTexture.resource ? this.baseTexture.resource.url : null)), this._frames = this.data.frames, this._frameKeys = Object.keys(this._frames), this._batchIndex = 0, this._callback = null }, Vi = { BATCH_SIZE: { configurable: !0 } }; Vi.BATCH_SIZE.get = function() { return 1e3 }, Ki.prototype._updateResolution = function(t) { var e = this.data.meta.scale, n = Ct(t, null); return null === n && (n = void 0 !== e ? parseFloat(e) : 1), 1 !== n && this.baseTexture.setResolution(n), n }, Ki.prototype.parse = function(t) { this._batchIndex = 0, this._callback = t, this._frameKeys.length <= Ki.BATCH_SIZE ? (this._processFrames(0), this._processAnimations(), this._parseComplete()) : this._nextBatch() }, Ki.prototype._processFrames = function(t) { for (var e = t, n = Ki.BATCH_SIZE; e - t < n && e < this._frameKeys.length;) { var r = this._frameKeys[e], i = this._frames[r], o = i.frame; if (o) { var a = null, s = null, A = !1 !== i.trimmed && i.sourceSize ? i.sourceSize : i.frame, h = new Kt(0, 0, Math.floor(A.w) / this.resolution, Math.floor(A.h) / this.resolution); a = i.rotated ? new Kt(Math.floor(o.x) / this.resolution, Math.floor(o.y) / this.resolution, Math.floor(o.h) / this.resolution, Math.floor(o.w) / this.resolution) : new Kt(Math.floor(o.x) / this.resolution, Math.floor(o.y) / this.resolution, Math.floor(o.w) / this.resolution, Math.floor(o.h) / this.resolution), !1 !== i.trimmed && i.spriteSourceSize && (s = new Kt(Math.floor(i.spriteSourceSize.x) / this.resolution, Math.floor(i.spriteSourceSize.y) / this.resolution, Math.floor(o.w) / this.resolution, Math.floor(o.h) / this.resolution)), this.textures[r] = new Fe(this.baseTexture, a, h, s, i.rotated ? 2 : 0, i.anchor), Fe.addToCache(this.textures[r], r) } e++ } }, Ki.prototype._processAnimations = function() { var t = this.data.animations || {}; for (var e in t) { this.animations[e] = []; for (var n = 0; n < t[e].length; n++) { var r = t[e][n]; this.animations[e].push(this.textures[r]) } } }, Ki.prototype._parseComplete = function() { var t = this._callback; this._callback = null, this._batchIndex = 0, t.call(this, this.textures) }, Ki.prototype._nextBatch = function() { var t = this; this._processFrames(this._batchIndex * Ki.BATCH_SIZE), this._batchIndex++, setTimeout(function() { t._batchIndex * Ki.BATCH_SIZE < t._frameKeys.length ? t._nextBatch() : (t._processAnimations(), t._parseComplete()) }, 0) }, Ki.prototype.destroy = function(t) { for (var e in void 0 === t && (t = !1), this.textures) this.textures[e].destroy(); this._frames = null, this._frameKeys = null, this.data = null, this.textures = null, t && this.baseTexture.destroy(), this.baseTexture = null }, Object.defineProperties(Ki, Vi); var qi = function() {}; qi.use = function(t, e) { var n = t.name + "_image"; if (t.data && t.type === ji.TYPE.JSON && t.data.frames && !this.resources[n]) { var r = { crossOrigin: t.crossOrigin, metadata: t.metadata.imageMetadata, parentResource: t }, i = qi.getResourcePath(t, this.baseUrl); this.add(n, i, r, function(n) { if (n.error) e(n.error); else { var r = new Ki(n.texture.baseTexture, t.data, t.url); r.parse(function() { t.spritesheet = r, t.textures = r.textures, e() }) } }) } else e() }, qi.getResourcePath = function(t, e) { return t.isDataUrl ? t.data.meta.image : R.a.resolve(t.url.replace(e, ""), t.data.meta.image) }; /*! * @pixi/sprite-tiling - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/sprite-tiling is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ var Ji = new It, Zi = function(t) { function e(e, n, r) { void 0 === n && (n = 100), void 0 === r && (r = 100), t.call(this, e), this.tileTransform = new Wt, this._width = n, this._height = r, this._canvasPattern = null, this.uvMatrix = e.uvMatrix || new Qn(e), this.pluginName = "tilingSprite", this.uvRespectAnchor = !1 } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { clampMargin: { configurable: !0 }, tileScale: { configurable: !0 }, tilePosition: { configurable: !0 }, width: { configurable: !0 }, height: { configurable: !0 } }; return n.clampMargin.get = function() { return this.uvMatrix.clampMargin }, n.clampMargin.set = function(t) { this.uvMatrix.clampMargin = t, this.uvMatrix.update(!0) }, n.tileScale.get = function() { return this.tileTransform.scale }, n.tileScale.set = function(t) { this.tileTransform.scale.copyFrom(t) }, n.tilePosition.get = function() { return this.tileTransform.position }, n.tilePosition.set = function(t) { this.tileTransform.position.copyFrom(t) }, e.prototype._onTextureUpdate = function() { this.uvMatrix && (this.uvMatrix.texture = this._texture), this._cachedTint = 16777215 }, e.prototype._render = function(t) { var e = this._texture; e && e.valid && (this.tileTransform.updateLocalTransform(), this.uvMatrix.update(), t.batch.setObjectRenderer(t.plugins[this.pluginName]), t.plugins[this.pluginName].render(this)) }, e.prototype._calculateBounds = function() { var t = this._width * -this._anchor._x, e = this._height * -this._anchor._y, n = this._width * (1 - this._anchor._x), r = this._height * (1 - this._anchor._y); this._bounds.addFrame(this.transform, t, e, n, r) }, e.prototype.getLocalBounds = function(e) { return 0 === this.children.length ? (this._bounds.minX = this._width * -this._anchor._x, this._bounds.minY = this._height * -this._anchor._y, this._bounds.maxX = this._width * (1 - this._anchor._x), this._bounds.maxY = this._height * (1 - this._anchor._y), e || (this._localBoundsRect || (this._localBoundsRect = new Kt), e = this._localBoundsRect), this._bounds.getRectangle(e)) : t.prototype.getLocalBounds.call(this, e) }, e.prototype.containsPoint = function(t) { this.worldTransform.applyInverse(t, Ji); var e = this._width, n = this._height, r = -e * this.anchor._x; if (Ji.x >= r && Ji.x < r + e) { var i = -n * this.anchor._y; if (Ji.y >= i && Ji.y < i + n) return !0 } return !1 }, e.prototype.destroy = function(e) { t.prototype.destroy.call(this, e), this.tileTransform = null, this.uvMatrix = null }, e.from = function(t, n, r) { return new e(Fe.from(t), n, r) }, e.fromFrame = function(t, n, r) { var i = ft[t]; if (!i) throw new Error('The frameId "' + t + '" does not exist in the texture cache ' + this); return new e(i, n, r) }, e.fromImage = function(t, n, r, i) { return i && "object" != typeof i && (i = { scaleMode: arguments[4], resourceOptions: { crossorigin: arguments[3] } }), new e(Fe.from(t, i), n, r) }, n.width.get = function() { return this._width }, n.width.set = function(t) { this._width = t }, n.height.get = function() { return this._height }, n.height.set = function(t) { this._height = t }, Object.defineProperties(e.prototype, n), e }(ti), $i = "attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n", to = "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\nuniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;\n\nvoid main(void)\n{\n vec2 coord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset;\n coord = (uMapCoord * vec3(coord, 1.0)).xy;\n coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n\n vec4 sample = texture2D(uSampler, coord);\n gl_FragColor = sample * uColor;\n}\n", eo = "varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\n\nvoid main(void)\n{\n vec4 sample = texture2D(uSampler, vTextureCoord);\n gl_FragColor = sample * uColor;\n}\n", no = new Lt, ro = function(t) { function e(e) { t.call(this, e); var n = { globals: this.renderer.globalUniforms }; this.shader = Mn.from($i, to, n), this.simpleShader = Mn.from($i, eo, n), this.quad = new Ze } return t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e, e.prototype.render = function(t) { var e = this.renderer, n = this.quad, r = n.vertices; r[0] = r[6] = t._width * -t.anchor.x, r[1] = r[3] = t._height * -t.anchor.y, r[2] = r[4] = t._width * (1 - t.anchor.x), r[5] = r[7] = t._height * (1 - t.anchor.y), t.uvRespectAnchor && ((r = n.uvs)[0] = r[6] = -t.anchor.x, r[1] = r[3] = -t.anchor.y, r[2] = r[4] = 1 - t.anchor.x, r[5] = r[7] = 1 - t.anchor.y), n.invalidate(); var i = t._texture, o = i.baseTexture, a = t.tileTransform.localTransform, s = t.uvMatrix, A = o.isPowerOfTwo && i.frame.width === o.width && i.frame.height === o.height; A && (o._glTextures[e.CONTEXT_UID] ? A = o.wrapMode !== N : o.wrapMode === N && (o.wrapMode = U)); var h = A ? this.simpleShader : this.shader, c = i.width, u = i.height, l = t._width, d = t._height; no.set(a.a * c / l, a.b * c / d, a.c * u / l, a.d * u / d, a.tx / l, a.ty / d), no.invert(), A ? no.prepend(s.mapCoord) : (h.uniforms.uMapCoord = s.mapCoord.toArray(!0), h.uniforms.uClampFrame = s.uClampFrame, h.uniforms.uClampOffset = s.uClampOffset), h.uniforms.uTransform = no.toArray(!0), h.uniforms.uColor = ot(t.tint, t.worldAlpha, h.uniforms.uColor, o.premultiplyAlpha), h.uniforms.translationMatrix = t.transform.worldTransform.toArray(!0), h.uniforms.uSampler = i, e.shader.bind(h), e.geometry.bind(n), e.state.setBlendMode(nt(t.blendMode, o.premultiplyAlpha)), e.geometry.draw(this.renderer.gl.TRIANGLES, 6, 0) }, e }(rn), io = function(t) { function e(e, n) { var r = this; void 0 === n && (n = {}), t.call(this), this._textWidth = 0, this._textHeight = 0, this._glyphs = [], this._font = { tint: void 0 !== n.tint ? n.tint : 16777215, align: n.align || "left", name: null, size: 0 }, this.font = n.font, this._text = e, this._maxWidth = 0, this._maxLineHeight = 0, this._letterSpacing = 0, this._anchor = new Dt(function() { r.dirty = !0 }, this, 0, 0), this.dirty = !1, this.roundPixels = C.ROUND_PIXELS, this.updateText() } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { tint: { configurable: !0 }, align: { configurable: !0 }, anchor: { configurable: !0 }, font: { configurable: !0 }, text: { configurable: !0 }, maxWidth: { configurable: !0 }, maxLineHeight: { configurable: !0 }, textWidth: { configurable: !0 }, letterSpacing: { configurable: !0 }, textHeight: { configurable: !0 } }; return e.prototype.updateText = function() { for (var t = e.fonts[this._font.name], n = this._font.size / t.size, r = new It, i = [], o = [], a = this._text.replace(/(?:\r\n|\r)/g, "\n") || " ", s = a.length, A = this._maxWidth * t.size / this._font.size, h = null, c = 0, u = 0, l = 0, d = -1, p = 0, f = 0, y = 0, x = 0; x < s; x++) { var m = a.charCodeAt(x), g = a.charAt(x); if (/(?:\s)/.test(g) && (d = x, p = c), "\r" !== g && "\n" !== g) { var w = t.chars[m]; w && (h && w.kerning[h] && (r.x += w.kerning[h]), i.push({ texture: w.texture, line: l, charCode: m, position: new It(r.x + w.xOffset + this._letterSpacing / 2, r.y + w.yOffset) }), r.x += w.xAdvance + this._letterSpacing, c = r.x, y = Math.max(y, w.yOffset + w.texture.height), h = m, -1 !== d && A > 0 && r.x > A && (st(i, 1 + d - ++f, 1 + x - d), x = d, d = -1, o.push(p), u = Math.max(u, p), l++, r.x = 0, r.y += t.lineHeight, h = null)) } else o.push(c), u = Math.max(u, c), ++l, ++f, r.x = 0, r.y += t.lineHeight, h = null } var v = a.charAt(a.length - 1); "\r" !== v && "\n" !== v && (/(?:\s)/.test(v) && (c = p), o.push(c), u = Math.max(u, c)); for (var b = [], _ = 0; _ <= l; _++) { var S = 0; "right" === this._font.align ? S = u - o[_] : "center" === this._font.align && (S = (u - o[_]) / 2), b.push(S) } for (var E = i.length, C = this.tint, T = 0; T < E; T++) { var k = this._glyphs[T]; k ? k.texture = i[T].texture : ((k = new ti(i[T].texture)).roundPixels = this.roundPixels, this._glyphs.push(k)), k.position.x = (i[T].position.x + b[i[T].line]) * n, k.position.y = i[T].position.y * n, k.scale.x = k.scale.y = n, k.tint = C, k.parent || this.addChild(k) } for (var I = E; I < this._glyphs.length; ++I) this.removeChild(this._glyphs[I]); if (this._textWidth = u * n, this._textHeight = (r.y + t.lineHeight) * n, 0 !== this.anchor.x || 0 !== this.anchor.y) for (var D = 0; D < E; D++) this._glyphs[D].x -= this._textWidth * this.anchor.x, this._glyphs[D].y -= this._textHeight * this.anchor.y; this._maxLineHeight = y * n }, e.prototype.updateTransform = function() { this.validate(), this.containerUpdateTransform() }, e.prototype.getLocalBounds = function() { return this.validate(), t.prototype.getLocalBounds.call(this) }, e.prototype.validate = function() { this.dirty && (this.updateText(), this.dirty = !1) }, n.tint.get = function() { return this._font.tint }, n.tint.set = function(t) { this._font.tint = "number" == typeof t && t >= 0 ? t : 16777215, this.dirty = !0 }, n.align.get = function() { return this._font.align }, n.align.set = function(t) { this._font.align = t || "left", this.dirty = !0 }, n.anchor.get = function() { return this._anchor }, n.anchor.set = function(t) { "number" == typeof t ? this._anchor.set(t) : this._anchor.copyFrom(t) }, n.font.get = function() { return this._font }, n.font.set = function(t) { t && ("string" == typeof t ? (t = t.split(" "), this._font.name = 1 === t.length ? t[0] : t.slice(1).join(" "), this._font.size = t.length >= 2 ? parseInt(t[0], 10) : e.fonts[this._font.name].size) : (this._font.name = t.name, this._font.size = "number" == typeof t.size ? t.size : parseInt(t.size, 10)), this.dirty = !0) }, n.text.get = function() { return this._text }, n.text.set = function(t) { t = String(null == t ? "" : t), this._text !== t && (this._text = t, this.dirty = !0) }, n.maxWidth.get = function() { return this._maxWidth }, n.maxWidth.set = function(t) { this._maxWidth !== t && (this._maxWidth = t, this.dirty = !0) }, n.maxLineHeight.get = function() { return this.validate(), this._maxLineHeight }, n.textWidth.get = function() { return this.validate(), this._textWidth }, n.letterSpacing.get = function() { return this._letterSpacing }, n.letterSpacing.set = function(t) { this._letterSpacing !== t && (this._letterSpacing = t, this.dirty = !0) }, n.textHeight.get = function() { return this.validate(), this._textHeight }, e.registerFont = function(t, n) { var r = {}, i = t.getElementsByTagName("info")[0], o = t.getElementsByTagName("common")[0], a = t.getElementsByTagName("page"), s = Ct(a[0].getAttribute("file"), C.RESOLUTION), A = {}; r.font = i.getAttribute("face"), r.size = parseInt(i.getAttribute("size"), 10), r.lineHeight = parseInt(o.getAttribute("lineHeight"), 10) / s, r.chars = {}, n instanceof Fe && (n = [n]); for (var h = 0; h < a.length; h++) { var c = a[h].getAttribute("id"), u = a[h].getAttribute("file"); A[c] = n instanceof Array ? n[h] : n[u] } for (var l = t.getElementsByTagName("char"), d = 0; d < l.length; d++) { var p = l[d], f = parseInt(p.getAttribute("id"), 10), y = p.getAttribute("page") || 0, x = new Kt(parseInt(p.getAttribute("x"), 10) / s + A[y].frame.x / s, parseInt(p.getAttribute("y"), 10) / s + A[y].frame.y / s, parseInt(p.getAttribute("width"), 10) / s, parseInt(p.getAttribute("height"), 10) / s); r.chars[f] = { xOffset: parseInt(p.getAttribute("xoffset"), 10) / s, yOffset: parseInt(p.getAttribute("yoffset"), 10) / s, xAdvance: parseInt(p.getAttribute("xadvance"), 10) / s, kerning: {}, texture: new Fe(A[y].baseTexture, x), page: y } } for (var m = t.getElementsByTagName("kerning"), g = 0; g < m.length; g++) { var w = m[g], v = parseInt(w.getAttribute("first"), 10) / s, b = parseInt(w.getAttribute("second"), 10) / s, _ = parseInt(w.getAttribute("amount"), 10) / s; r.chars[b] && (r.chars[b].kerning[v] = _) } return e.fonts[r.font] = r, r }, Object.defineProperties(e.prototype, n), e }(ie); io.fonts = {}; var oo = function() {}; oo.parse = function(t, e) { t.bitmapFont = io.registerFont(t.data, e) }, oo.add = function() { ji.setExtensionXhrType("fnt", ji.XHR_RESPONSE_TYPE.DOCUMENT) }, oo.dirname = function(t) { var e = t.replace(/\/$/, "").replace(/\/[^\/]*$/, ""); return e === t ? "." : "" === e ? "/" : e }, oo.use = function(t, e) { if (t.data && t.type === ji.TYPE.XML) if (0 !== t.data.getElementsByTagName("page").length && 0 !== t.data.getElementsByTagName("info").length && null !== t.data.getElementsByTagName("info")[0].getAttribute("face")) { var n = t.isDataUrl ? "" : oo.dirname(t.url); t.isDataUrl && ("." === n && (n = ""), this.baseUrl && n && "/" === this.baseUrl.charAt(this.baseUrl.length - 1) && (n += "/")), (n = n.replace(this.baseUrl, "")) && "/" !== n.charAt(n.length - 1) && (n += "/"); for (var r = t.data.getElementsByTagName("page"), i = {}, o = function(n) { i[n.metadata.pageFile] = n.texture, Object.keys(i).length === r.length && (oo.parse(t, i), e()) }, a = 0; a < r.length; ++a) { var s = r[a].getAttribute("file"), A = n + s, h = !1; for (var c in this.resources) { var u = this.resources[c]; if (u.url === A) { u.metadata.pageFile = s, u.texture ? o(u) : u.onAfterMiddleware.add(o), h = !0; break } } if (!h) { var l = { crossOrigin: t.crossOrigin, loadType: ji.LOAD_TYPE.IMAGE, metadata: Object.assign({ pageFile: s }, t.metadata.imageMetadata), parentResource: t }; this.add(A, l, o) } } } else e(); else e() }; ["varying vec2 vBlurTexCoords[%size%];", "uniform sampler2D uSampler;", "void main(void)", "{", " gl_FragColor = vec4(0.0);", " %blur%", "}"].join("\n"); var ao = "varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform float m[20];\nuniform float uAlpha;\n\nvoid main(void)\n{\n vec4 c = texture2D(uSampler, vTextureCoord);\n\n if (uAlpha == 0.0) {\n gl_FragColor = c;\n return;\n }\n\n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (c.a > 0.0) {\n c.rgb /= c.a;\n }\n\n vec4 result;\n\n result.r = (m[0] * c.r);\n result.r += (m[1] * c.g);\n result.r += (m[2] * c.b);\n result.r += (m[3] * c.a);\n result.r += m[4];\n\n result.g = (m[5] * c.r);\n result.g += (m[6] * c.g);\n result.g += (m[7] * c.b);\n result.g += (m[8] * c.a);\n result.g += m[9];\n\n result.b = (m[10] * c.r);\n result.b += (m[11] * c.g);\n result.b += (m[12] * c.b);\n result.b += (m[13] * c.a);\n result.b += m[14];\n\n result.a = (m[15] * c.r);\n result.a += (m[16] * c.g);\n result.a += (m[17] * c.b);\n result.a += (m[18] * c.a);\n result.a += m[19];\n\n vec3 rgb = mix(c.rgb, result.rgb, uAlpha);\n\n // Premultiply alpha again.\n rgb *= result.a;\n\n gl_FragColor = vec4(rgb, result.a);\n}\n", so = function(t) { function e() { var e = { m: new Float32Array([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]), uAlpha: 1 }; t.call(this, cr, ao, e), this.alpha = 1 } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { matrix: { configurable: !0 }, alpha: { configurable: !0 } }; return e.prototype._loadMatrix = function(t, e) { void 0 === e && (e = !1); var n = t; e && (this._multiply(n, this.uniforms.m, t), n = this._colorMatrix(n)), this.uniforms.m = n }, e.prototype._multiply = function(t, e, n) { return t[0] = e[0] * n[0] + e[1] * n[5] + e[2] * n[10] + e[3] * n[15], t[1] = e[0] * n[1] + e[1] * n[6] + e[2] * n[11] + e[3] * n[16], t[2] = e[0] * n[2] + e[1] * n[7] + e[2] * n[12] + e[3] * n[17], t[3] = e[0] * n[3] + e[1] * n[8] + e[2] * n[13] + e[3] * n[18], t[4] = e[0] * n[4] + e[1] * n[9] + e[2] * n[14] + e[3] * n[19] + e[4], t[5] = e[5] * n[0] + e[6] * n[5] + e[7] * n[10] + e[8] * n[15], t[6] = e[5] * n[1] + e[6] * n[6] + e[7] * n[11] + e[8] * n[16], t[7] = e[5] * n[2] + e[6] * n[7] + e[7] * n[12] + e[8] * n[17], t[8] = e[5] * n[3] + e[6] * n[8] + e[7] * n[13] + e[8] * n[18], t[9] = e[5] * n[4] + e[6] * n[9] + e[7] * n[14] + e[8] * n[19] + e[9], t[10] = e[10] * n[0] + e[11] * n[5] + e[12] * n[10] + e[13] * n[15], t[11] = e[10] * n[1] + e[11] * n[6] + e[12] * n[11] + e[13] * n[16], t[12] = e[10] * n[2] + e[11] * n[7] + e[12] * n[12] + e[13] * n[17], t[13] = e[10] * n[3] + e[11] * n[8] + e[12] * n[13] + e[13] * n[18], t[14] = e[10] * n[4] + e[11] * n[9] + e[12] * n[14] + e[13] * n[19] + e[14], t[15] = e[15] * n[0] + e[16] * n[5] + e[17] * n[10] + e[18] * n[15], t[16] = e[15] * n[1] + e[16] * n[6] + e[17] * n[11] + e[18] * n[16], t[17] = e[15] * n[2] + e[16] * n[7] + e[17] * n[12] + e[18] * n[17], t[18] = e[15] * n[3] + e[16] * n[8] + e[17] * n[13] + e[18] * n[18], t[19] = e[15] * n[4] + e[16] * n[9] + e[17] * n[14] + e[18] * n[19] + e[19], t }, e.prototype._colorMatrix = function(t) { var e = new Float32Array(t); return e[4] /= 255, e[9] /= 255, e[14] /= 255, e[19] /= 255, e }, e.prototype.brightness = function(t, e) { var n = [t, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, t, 0, 0, 0, 0, 0, 1, 0]; this._loadMatrix(n, e) }, e.prototype.greyscale = function(t, e) { var n = [t, t, t, 0, 0, t, t, t, 0, 0, t, t, t, 0, 0, 0, 0, 0, 1, 0]; this._loadMatrix(n, e) }, e.prototype.blackAndWhite = function(t) { this._loadMatrix([.3, .6, .1, 0, 0, .3, .6, .1, 0, 0, .3, .6, .1, 0, 0, 0, 0, 0, 1, 0], t) }, e.prototype.hue = function(t, e) { t = (t || 0) / 180 * Math.PI; var n = Math.cos(t), r = Math.sin(t), i = 1 / 3, o = (0, Math.sqrt)(i), a = [n + (1 - n) * i, i * (1 - n) - o * r, i * (1 - n) + o * r, 0, 0, i * (1 - n) + o * r, n + i * (1 - n), i * (1 - n) - o * r, 0, 0, i * (1 - n) - o * r, i * (1 - n) + o * r, n + i * (1 - n), 0, 0, 0, 0, 0, 1, 0]; this._loadMatrix(a, e) }, e.prototype.contrast = function(t, e) { var n = (t || 0) + 1, r = -.5 * (n - 1), i = [n, 0, 0, 0, r, 0, n, 0, 0, r, 0, 0, n, 0, r, 0, 0, 0, 1, 0]; this._loadMatrix(i, e) }, e.prototype.saturate = function(t, e) { void 0 === t && (t = 0); var n = 2 * t / 3 + 1, r = -.5 * (n - 1), i = [n, r, r, 0, 0, r, n, r, 0, 0, r, r, n, 0, 0, 0, 0, 0, 1, 0]; this._loadMatrix(i, e) }, e.prototype.desaturate = function() { this.saturate(-1) }, e.prototype.negative = function(t) { this._loadMatrix([-1, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0], t) }, e.prototype.sepia = function(t) { this._loadMatrix([.393, .7689999, .18899999, 0, 0, .349, .6859999, .16799999, 0, 0, .272, .5339999, .13099999, 0, 0, 0, 0, 0, 1, 0], t) }, e.prototype.technicolor = function(t) { this._loadMatrix([1.9125277891456083, -.8545344976951645, -.09155508482755585, 0, 11.793603434377337, -.3087833385928097, 1.7658908555458428, -.10601743074722245, 0, -70.35205161461398, -.231103377548616, -.7501899197440212, 1.847597816108189, 0, 30.950940869491138, 0, 0, 0, 1, 0], t) }, e.prototype.polaroid = function(t) { this._loadMatrix([1.438, -.062, -.062, 0, 0, -.122, 1.378, -.122, 0, 0, -.016, -.016, 1.483, 0, 0, 0, 0, 0, 1, 0], t) }, e.prototype.toBGR = function(t) { this._loadMatrix([0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0], t) }, e.prototype.kodachrome = function(t) { this._loadMatrix([1.1285582396593525, -.3967382283601348, -.03992559172921793, 0, 63.72958762196502, -.16404339962244616, 1.0835251566291304, -.05498805115633132, 0, 24.732407896706203, -.16786010706155763, -.5603416277695248, 1.6014850761964943, 0, 35.62982807460946, 0, 0, 0, 1, 0], t) }, e.prototype.browni = function(t) { this._loadMatrix([.5997023498159715, .34553243048391263, -.2708298674538042, 0, 47.43192855600873, -.037703249837783157, .8609577587992641, .15059552388459913, 0, -36.96841498319127, .24113635128153335, -.07441037908422492, .44972182064877153, 0, -7.562075277591283, 0, 0, 0, 1, 0], t) }, e.prototype.vintage = function(t) { this._loadMatrix([.6279345635605994, .3202183420819367, -.03965408211312453, 0, 9.651285835294123, .02578397704808868, .6441188644374771, .03259127616149294, 0, 7.462829176470591, .0466055556782719, -.0851232987247891, .5241648018700465, 0, 5.159190588235296, 0, 0, 0, 1, 0], t) }, e.prototype.colorTone = function(t, e, n, r, i) { var o = ((n = n || 16770432) >> 16 & 255) / 255, a = (n >> 8 & 255) / 255, s = (255 & n) / 255, A = ((r = r || 3375104) >> 16 & 255) / 255, h = (r >> 8 & 255) / 255, c = (255 & r) / 255, u = [.3, .59, .11, 0, 0, o, a, s, t = t || .2, 0, A, h, c, e = e || .15, 0, o - A, a - h, s - c, 0, 0]; this._loadMatrix(u, i) }, e.prototype.night = function(t, e) { var n = [-2 * (t = t || .1), -t, 0, 0, 0, -t, 0, t, 0, 0, 0, t, 2 * t, 0, 0, 0, 0, 0, 1, 0]; this._loadMatrix(n, e) }, e.prototype.predator = function(t, e) { var n = [11.224130630493164 * t, -4.794486999511719 * t, -2.8746118545532227 * t, 0 * t, .40342438220977783 * t, -3.6330697536468506 * t, 9.193157196044922 * t, -2.951810836791992 * t, 0 * t, -1.316135048866272 * t, -3.2184197902679443 * t, -4.2375030517578125 * t, 7.476448059082031 * t, 0 * t, .8044459223747253 * t, 0, 0, 0, 1, 0]; this._loadMatrix(n, e) }, e.prototype.lsd = function(t) { this._loadMatrix([2, -.4, .5, 0, 0, -.5, 2, -.4, 0, 0, -.4, -.5, 3, 0, 0, 0, 0, 0, 1, 0], t) }, e.prototype.reset = function() { this._loadMatrix([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0], !1) }, n.matrix.get = function() { return this.uniforms.m }, n.matrix.set = function(t) { this.uniforms.m = t }, n.alpha.get = function() { return this.uniforms.uAlpha }, n.alpha.set = function(t) { this.uniforms.uAlpha = t }, Object.defineProperties(e.prototype, n), e }(zn); so.prototype.grayscale = so.prototype.greyscale; /*! * @pixi/filter-displacement - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/filter-displacement is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ var Ao = new Lt; ne.prototype._cacheAsBitmap = !1, ne.prototype._cacheData = !1; var ho = function() { this.textureCacheId = null, this.originalRender = null, this.originalRenderCanvas = null, this.originalCalculateBounds = null, this.originalGetLocalBounds = null, this.originalUpdateTransform = null, this.originalHitTest = null, this.originalDestroy = null, this.originalMask = null, this.originalFilterArea = null, this.sprite = null }; Object.defineProperties(ne.prototype, { cacheAsBitmap: { get: function() { return this._cacheAsBitmap }, set: function(t) { var e; this._cacheAsBitmap !== t && (this._cacheAsBitmap = t, t ? (this._cacheData || (this._cacheData = new ho), (e = this._cacheData).originalRender = this.render, e.originalRenderCanvas = this.renderCanvas, e.originalUpdateTransform = this.updateTransform, e.originalCalculateBounds = this.calculateBounds, e.originalGetLocalBounds = this.getLocalBounds, e.originalDestroy = this.destroy, e.originalContainsPoint = this.containsPoint, e.originalMask = this._mask, e.originalFilterArea = this.filterArea, this.render = this._renderCached, this.renderCanvas = this._renderCachedCanvas, this.destroy = this._cacheAsBitmapDestroy) : ((e = this._cacheData).sprite && this._destroyCachedDisplayObject(), this.render = e.originalRender, this.renderCanvas = e.originalRenderCanvas, this.calculateBounds = e.originalCalculateBounds, this.getLocalBounds = e.originalGetLocalBounds, this.destroy = e.originalDestroy, this.updateTransform = e.originalUpdateTransform, this.containsPoint = e.originalContainsPoint, this._mask = e.originalMask, this.filterArea = e.originalFilterArea)) } } }), ne.prototype._renderCached = function(t) { !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObject(t), this._cacheData.sprite.transform._worldID = this.transform._worldID, this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite._render(t)) }, ne.prototype._initCachedDisplayObject = function(t) { if (!this._cacheData || !this._cacheData.sprite) { var e = this.alpha; this.alpha = 1, t.batch.flush(); var n = this.getLocalBounds().clone(); if (this.filters) { var r = this.filters[0].padding; n.pad(r) } n.ceil(C.RESOLUTION); var i = t._activeRenderTarget, o = Ue.create(n.width, n.height), a = "cacheAsBitmap_" + ht(); this._cacheData.textureCacheId = a, Ce.addToCache(o.baseTexture, a), Fe.addToCache(o, a); var s = Ao; s.tx = -n.x, s.ty = -n.y, this.transform.worldTransform.identity(), this.render = this._cacheData.originalRender, t.render(this, o, !0, s, !0), t.renderTexture.bind(i), this.render = this._renderCached, this.updateTransform = this.displayObjectUpdateTransform, this.calculateBounds = this._calculateCachedBounds, this.getLocalBounds = this._getCachedLocalBounds, this._mask = null, this.filterArea = null; var A = new ti(o); A.transform.worldTransform = this.transform.worldTransform, A.anchor.x = -n.x / n.width, A.anchor.y = -n.y / n.height, A.alpha = e, A._bounds = this._bounds, this._cacheData.sprite = A, this.transform._parentID = -1, this.parent ? this.updateTransform() : (this.parent = t._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.containsPoint = A.containsPoint.bind(A) } }, ne.prototype._renderCachedCanvas = function(t) { !this.visible || this.worldAlpha <= 0 || !this.renderable || (this._initCachedDisplayObjectCanvas(t), this._cacheData.sprite.worldAlpha = this.worldAlpha, this._cacheData.sprite._renderCanvas(t)) }, ne.prototype._initCachedDisplayObjectCanvas = function(t) { if (!this._cacheData || !this._cacheData.sprite) { var e = this.getLocalBounds(), n = this.alpha; this.alpha = 1; var r = t.context; e.ceil(C.RESOLUTION); var i = Ue.create(e.width, e.height), o = "cacheAsBitmap_" + ht(); this._cacheData.textureCacheId = o, Ce.addToCache(i.baseTexture, o), Fe.addToCache(i, o); var a = Ao; this.transform.localTransform.copyTo(a), a.invert(), a.tx -= e.x, a.ty -= e.y, this.renderCanvas = this._cacheData.originalRenderCanvas, t.render(this, i, !0, a, !1), t.context = r, this.renderCanvas = this._renderCachedCanvas, this.updateTransform = this.displayObjectUpdateTransform, this.calculateBounds = this._calculateCachedBounds, this.getLocalBounds = this._getCachedLocalBounds, this._mask = null, this.filterArea = null; var s = new ti(i); s.transform.worldTransform = this.transform.worldTransform, s.anchor.x = -e.x / e.width, s.anchor.y = -e.y / e.height, s.alpha = n, s._bounds = this._bounds, this._cacheData.sprite = s, this.transform._parentID = -1, this.parent ? this.updateTransform() : (this.parent = t._tempDisplayObjectParent, this.updateTransform(), this.parent = null), this.containsPoint = s.containsPoint.bind(s) } }, ne.prototype._calculateCachedBounds = function() { this._bounds.clear(), this._cacheData.sprite.transform._worldID = this.transform._worldID, this._cacheData.sprite._calculateBounds(), this._lastBoundsID = this._boundsID }, ne.prototype._getCachedLocalBounds = function() { return this._cacheData.sprite.getLocalBounds() }, ne.prototype._destroyCachedDisplayObject = function() { this._cacheData.sprite._texture.destroy(!0), this._cacheData.sprite = null, Ce.removeFromCache(this._cacheData.textureCacheId), Fe.removeFromCache(this._cacheData.textureCacheId), this._cacheData.textureCacheId = null }, ne.prototype._cacheAsBitmapDestroy = function(t) { this.cacheAsBitmap = !1, this.destroy(t) }, /*! * @pixi/mixin-get-child-by-name - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/mixin-get-child-by-name is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ ne.prototype.name = null, ie.prototype.getChildByName = function(t) { for (var e = 0; e < this.children.length; e++) if (this.children[e].name === t) return this.children[e]; return null }, /*! * @pixi/mixin-get-global-position - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/mixin-get-global-position is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ ne.prototype.getGlobalPosition = function(t, e) { return void 0 === t && (t = new It), void 0 === e && (e = !1), this.parent ? this.parent.toGlobal(this.position, t, e) : (t.x = this.position.x, t.y = this.position.y), t }; /*! * @pixi/mesh - v5.0.4 * Compiled Fri, 07 Jun 2019 17:17:49 UTC * * @pixi/mesh is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license */ var co = function(t, e) { this.uvBuffer = t, this.uvMatrix = e, this.data = null, this._bufferUpdateId = -1, this._textureUpdateId = -1, this._updateID = 0 }; co.prototype.update = function(t) { if (t || this._bufferUpdateId !== this.uvBuffer._updateID || this._textureUpdateId !== this.uvMatrix._updateID) { this._bufferUpdateId = this.uvBuffer._updateID, this._textureUpdateId = this.uvMatrix._updateID; var e = this.uvBuffer.data; this.data && this.data.length === e.length || (this.data = new Float32Array(e.length)), this.uvMatrix.multiplyUvs(e, this.data), this._updateID++ } }; var uo = new It, lo = new $t, po = function(t) { function e(e, n, r, i) { void 0 === i && (i = L.TRIANGLES), t.call(this), this.geometry = e, e.refCount++, this.shader = n, this.state = r || Ln.for2d(), this.drawMode = i, this.start = 0, this.size = 0, this.uvs = null, this.indices = null, this.vertexData = new Float32Array(1), this.vertexDirty = 0, this._transformID = -1, this.tint = 16777215, this.blendMode = O.NORMAL, this._roundPixels = C.ROUND_PIXELS, this.batchUvs = null } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { uvBuffer: { configurable: !0 }, verticesBuffer: { configurable: !0 }, material: { configurable: !0 }, blendMode: { configurable: !0 }, roundPixels: { configurable: !0 }, tint: { configurable: !0 }, texture: { configurable: !0 } }; return n.uvBuffer.get = function() { return this.geometry.buffers[1] }, n.verticesBuffer.get = function() { return this.geometry.buffers[0] }, n.material.set = function(t) { this.shader = t }, n.material.get = function() { return this.shader }, n.blendMode.set = function(t) { this.state.blendMode = t }, n.blendMode.get = function() { return this.state.blendMode }, n.roundPixels.set = function(t) { this._roundPixels !== t && (this._transformID = -1), this._roundPixels = t }, n.roundPixels.get = function() { return this._roundPixels }, n.tint.get = function() { return this.shader.tint }, n.tint.set = function(t) { this.shader.tint = t }, n.texture.get = function() { return this.shader.texture }, n.texture.set = function(t) { this.shader.texture = t }, e.prototype._render = function(t) { var n = this.geometry.buffers[0].data; this.shader.batchable && this.drawMode === L.TRIANGLES && n.length < 2 * e.BATCHABLE_SIZE ? this._renderToBatch(t) : this._renderDefault(t) }, e.prototype._renderDefault = function(t) { var e = this.shader; e.alpha = this.worldAlpha, e.update && e.update(), t.batch.flush(), e.program.uniformData.translationMatrix && (e.uniforms.translationMatrix = this.transform.worldTransform.toArray(!0)), t.shader.bind(e), t.state.setState(this.state), t.geometry.bind(this.geometry, e), t.geometry.draw(this.drawMode, this.size, this.start, this.geometry.instanceCount) }, e.prototype._renderToBatch = function(t) { var e = this.geometry; this.shader.uvMatrix && (this.shader.uvMatrix.update(), this.calculateUvs()), this.calculateVertices(), this.indices = e.indexBuffer.data, this._tintRGB = this.shader._tintRGB, this._texture = this.shader.texture; var n = this.material.pluginName; t.batch.setObjectRenderer(t.plugins[n]), t.plugins[n].render(this) }, e.prototype.calculateVertices = function() { var t = this.geometry, e = t.buffers[0].data; if (t.vertexDirtyId !== this.vertexDirty || this._transformID !== this.transform._worldID) { this._transformID = this.transform._worldID, this.vertexData.length !== e.length && (this.vertexData = new Float32Array(e.length)); for (var n = this.transform.worldTransform, r = n.a, i = n.b, o = n.c, a = n.d, s = n.tx, A = n.ty, h = this.vertexData, c = 0; c < h.length / 2; c++) { var u = e[2 * c], l = e[2 * c + 1]; h[2 * c] = r * u + o * l + s, h[2 * c + 1] = i * u + a * l + A } if (this._roundPixels) for (var d = 0; d < h.length; d++) h[d] = Math.round(h[d]); this.vertexDirty = t.vertexDirtyId } }, e.prototype.calculateUvs = function() { var t = this.geometry.buffers[1]; this.shader.uvMatrix.isSimple ? this.uvs = t.data : (this.batchUvs || (this.batchUvs = new co(t, this.shader.uvMatrix)), this.batchUvs.update(), this.uvs = this.batchUvs.data) }, e.prototype._calculateBounds = function() { this.calculateVertices(), this._bounds.addVertexData(this.vertexData, 0, this.vertexData.length) }, e.prototype.containsPoint = function(t) { if (!this.getBounds().contains(t.x, t.y)) return !1; this.worldTransform.applyInverse(t, uo); for (var e = this.geometry.getBuffer("aVertexPosition").data, n = lo.points, r = this.geometry.getIndex().data, i = r.length, o = 4 === this.drawMode ? 3 : 1, a = 0; a + 2 < i; a += o) { var s = 2 * r[a], A = 2 * r[a + 1], h = 2 * r[a + 2]; if (n[0] = e[s], n[1] = e[s + 1], n[2] = e[A], n[3] = e[A + 1], n[4] = e[h], n[5] = e[h + 1], lo.contains(uo.x, uo.y)) return !0 } return !1 }, e.prototype.destroy = function(e) { t.prototype.destroy.call(this, e), this.geometry.refCount--, 0 === this.geometry.refCount && this.geometry.dispose(), this.geometry = null, this.shader = null, this.state = null, this.uvs = null, this.indices = null, this.vertexData = null }, Object.defineProperties(e.prototype, n), e }(ie); po.BATCHABLE_SIZE = 100; var fo = function(t) { function e(e, n) { t.call(this, e[0] instanceof Fe ? e[0] : e[0].texture), this._textures = null, this._durations = null, this.textures = e, this._autoUpdate = !1 !== n, this.animationSpeed = 1, this.loop = !0, this.updateAnchor = !1, this.onComplete = null, this.onFrameChange = null, this.onLoop = null, this._currentTime = 0, this.playing = !1 } t && (e.__proto__ = t), e.prototype = Object.create(t && t.prototype), e.prototype.constructor = e; var n = { totalFrames: { configurable: !0 }, textures: { configurable: !0 }, currentFrame: { configurable: !0 } }; return e.prototype.stop = function() { this.playing && (this.playing = !1, this._autoUpdate && pe.shared.remove(this.update, this)) }, e.prototype.play = function() { this.playing || (this.playing = !0, this._autoUpdate && pe.shared.add(this.update, this, he)) }, e.prototype.gotoAndStop = function(t) { this.stop(); var e = this.currentFrame; this._currentTime = t, e !== this.currentFrame && this.updateTexture() }, e.prototype.gotoAndPlay = function(t) { var e = this.currentFrame; this._currentTime = t, e !== this.currentFrame && this.updateTexture(), this.play() }, e.prototype.update = function(t) { var e = this.animationSpeed * t, n = this.currentFrame; if (null !== this._durations) { var r = this._currentTime % 1 * this._durations[this.currentFrame]; for (r += e / 60 * 1e3; r < 0;) this._currentTime--, r += this._durations[this.currentFrame]; var i = Math.sign(this.animationSpeed * t); for (this._currentTime = Math.floor(this._currentTime); r >= this._durations[this.currentFrame];) r -= this._durations[this.currentFrame] * i, this._currentTime += i; this._currentTime += r / this._durations[this.currentFrame] } else this._currentTime += e; this._currentTime < 0 && !this.loop ? (this.gotoAndStop(0), this.onComplete && this.onComplete()) : this._currentTime >= this._textures.length && !this.loop ? (this.gotoAndStop(this._textures.length - 1), this.onComplete && this.onComplete()) : n !== this.currentFrame && (this.loop && this.onLoop && (this.animationSpeed > 0 && this.currentFrame < n ? this.onLoop() : this.animationSpeed < 0 && this.currentFrame > n && this.onLoop()), this.updateTexture()) }, e.prototype.updateTexture = function() { this._texture = this._textures[this.currentFrame], this._textureID = -1, this._textureTrimmedID = -1, this._cachedTint = 16777215, this.uvs = this._texture._uvs.uvsFloat32, this.updateAnchor && this._anchor.copy(this._texture.defaultAnchor), this.onFrameChange && this.onFrameChange(this.currentFrame) }, e.prototype.destroy = function(e) { this.stop(), t.prototype.destroy.call(this, e), this.onComplete = null, this.onFrameChange = null, this.onLoop = null }, e.fromFrames = function(t) { for (var n = [], r = 0; r < t.length; ++r) n.push(Fe.from(t[r])); return new e(n) }, e.fromImages = function(t) { for (var n = [], r = 0; r < t.length; ++r) n.push(Fe.from(t[r])); return new e(n) }, n.totalFrames.get = function() { return this._textures.length }, n.textures.get = function() { return this._textures }, n.textures.set = function(t) { if (t[0] instanceof Fe) this._textures = t, this._durations = null; else { this._textures = [], this._durations = []; for (var e = 0; e < t.length; e++) this._textures.push(t[e].texture), this._durations.push(t[e].time) } this.gotoAndStop(0), this.updateTexture() }, n.currentFrame.get = function() { var t = Math.floor(this._currentTime) % this._textures.length; return t < 0 && (t += this._textures.length), t }, Object.defineProperties(e.prototype, n), e }(ti); hr.registerPlugin("accessibility", oe), hr.registerPlugin("extract", wr), hr.registerPlugin("interaction", Ir), hr.registerPlugin("particle", Yi), hr.registerPlugin("prepare", bi), hr.registerPlugin("batch", mr), hr.registerPlugin("tilingSprite", ro), Ui.registerPlugin(oo), Ui.registerPlugin(qi), Ti.registerPlugin(xe), Ti.registerPlugin(Qi); var yo = function() {}, xo = {}, mo = [], go = []; function wo(t, e) { var n, r, i, o, a = go; for (o = arguments.length; o-- > 2;) mo.push(arguments[o]); for (e && null != e.children && (mo.length || mo.push(e.children), delete e.children); mo.length;) if ((r = mo.pop()) && void 0 !== r.pop) for (o = r.length; o--;) mo.push(r[o]); else "boolean" == typeof r && (r = null), (i = "function" != typeof t) && (null == r ? r = "" : "number" == typeof r ? r = String(r) : "string" != typeof r && (i = !1)), i && n ? a[a.length - 1] += r : a === go ? a = [r] : a.push(r), n = i; var s = new yo; return s.nodeName = t, s.children = a, s.attributes = null == e ? void 0 : e, s.key = null == e ? void 0 : e.key, void 0 !== xo.vnode && xo.vnode(s), s } function vo(t, e) { for (var n in e) t[n] = e[n]; return t } function bo(t, e) { null != t && ("function" == typeof t ? t(e) : t.current = e) } var _o = "function" == typeof Promise ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout; var So = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i, Eo = []; function Co(t) { !t._dirty && (t._dirty = !0) && 1 == Eo.push(t) && (xo.debounceRendering || _o)(To) } function To() { for (var t; t = Eo.pop();) t._dirty && Yo(t) } function ko(t, e, n) { return "string" == typeof e || "number" == typeof e ? void 0 !== t.splitText : "string" == typeof e.nodeName ? !t._componentConstructor && Io(t, e.nodeName) : n || t._componentConstructor === e.nodeName } function Io(t, e) { return t.normalizedNodeName === e || t.nodeName.toLowerCase() === e.toLowerCase() } function Do(t) { var e = vo({}, t.attributes); e.children = t.children; var n = t.nodeName.defaultProps; if (void 0 !== n) for (var r in n) void 0 === e[r] && (e[r] = n[r]); return e } function Po(t) { var e = t.parentNode; e && e.removeChild(t) } function Ro(t, e, n, r, i) { if ("className" === e && (e = "class"), "key" === e); else if ("ref" === e) bo(n, null), bo(r, t); else if ("class" !== e || i) if ("style" === e) { if (r && "string" != typeof r && "string" != typeof n || (t.style.cssText = r || ""), r && "object" == typeof r) { if ("string" != typeof n) for (var o in n) o in r || (t.style[o] = ""); for (var o in r) t.style[o] = "number" == typeof r[o] && !1 === So.test(o) ? r[o] + "px" : r[o] } } else if ("dangerouslySetInnerHTML" === e) r && (t.innerHTML = r.__html || ""); else if ("o" == e[0] && "n" == e[1]) { var a = e !== (e = e.replace(/Capture$/, "")); e = e.toLowerCase().substring(2), r ? n || t.addEventListener(e, Bo, a) : t.removeEventListener(e, Bo, a), (t._listeners || (t._listeners = {}))[e] = r } else if ("list" !== e && "type" !== e && !i && e in t) { try { t[e] = null == r ? "" : r } catch (t) {} null != r && !1 !== r || "spellcheck" == e || t.removeAttribute(e) } else { var s = i && e !== (e = e.replace(/^xlink:?/, "")); null == r || !1 === r ? s ? t.removeAttributeNS("http://www.w3.org/1999/xlink", e.toLowerCase()) : t.removeAttribute(e) : "function" != typeof r && (s ? t.setAttributeNS("http://www.w3.org/1999/xlink", e.toLowerCase(), r) : t.setAttribute(e, r)) } else t.className = r || "" } function Bo(t) { return this._listeners[t.type](xo.event && xo.event(t) || t) } var Mo = [], Oo = 0, Lo = !1, Ho = !1; function zo() { for (var t; t = Mo.shift();) xo.afterMount && xo.afterMount(t), t.componentDidMount && t.componentDidMount() } function Fo(t, e, n, r, i, o) { Oo++ || (Lo = null != i && void 0 !== i.ownerSVGElement, Ho = null != t && !("__preactattr_" in t)); var a = No(t, e, n, r, o); return i && a.parentNode !== i && i.appendChild(a), --Oo || (Ho = !1, o || zo()), a } function No(t, e, n, r, i) { var o = t, a = Lo; if (null != e && "boolean" != typeof e || (e = ""), "string" == typeof e || "number" == typeof e) return t && void 0 !== t.splitText && t.parentNode && (!t._component || i) ? t.nodeValue != e && (t.nodeValue = e) : (o = document.createTextNode(e), t && (t.parentNode && t.parentNode.replaceChild(o, t), Uo(t, !0))), o.__preactattr_ = !0, o; var s, A, h = e.nodeName; if ("function" == typeof h) return function(t, e, n, r) { var i = t && t._component, o = i, a = t, s = i && t._componentConstructor === e.nodeName, A = s, h = Do(e); for (; i && !A && (i = i._parentComponent);) A = i.constructor === e.nodeName; i && A && (!r || i._component) ? (Wo(i, h, 3, n, r), t = i.base) : (o && !s && (Ko(o), t = a = null), i = Xo(e.nodeName, h, n), t && !i.nextBase && (i.nextBase = t, a = null), Wo(i, h, 1, n, r), t = i.base, a && t !== a && (a._component = null, Uo(a, !1))); return t }(t, e, n, r); if (Lo = "svg" === h || "foreignObject" !== h && Lo, h = String(h), (!t || !Io(t, h)) && (s = h, (A = Lo ? document.createElementNS("http://www.w3.org/2000/svg", s) : document.createElement(s)).normalizedNodeName = s, o = A, t)) { for (; t.firstChild;) o.appendChild(t.firstChild); t.parentNode && t.parentNode.replaceChild(o, t), Uo(t, !0) } var c = o.firstChild, u = o.__preactattr_, l = e.children; if (null == u) { u = o.__preactattr_ = {}; for (var d = o.attributes, p = d.length; p--;) u[d[p].name] = d[p].value } return !Ho && l && 1 === l.length && "string" == typeof l[0] && null != c && void 0 !== c.splitText && null == c.nextSibling ? c.nodeValue != l[0] && (c.nodeValue = l[0]) : (l && l.length || null != c) && function(t, e, n, r, i) { var o, a, s, A, h, c = t.childNodes, u = [], l = {}, d = 0, p = 0, f = c.length, y = 0, x = e ? e.length : 0; if (0 !== f) for (var m = 0; m < f; m++) { var g = c[m], w = g.__preactattr_, v = x && w ? g._component ? g._component.__key : w.key : null; null != v ? (d++, l[v] = g) : (w || (void 0 !== g.splitText ? !i || g.nodeValue.trim() : i)) && (u[y++] = g) } if (0 !== x) for (var m = 0; m < x; m++) { A = e[m], h = null; var v = A.key; if (null != v) d && void 0 !== l[v] && (h = l[v], l[v] = void 0, d--); else if (p < y) for (o = p; o < y; o++) if (void 0 !== u[o] && ko(a = u[o], A, i)) { h = a, u[o] = void 0, o === y - 1 && y--, o === p && p++; break } h = No(h, A, n, r), s = c[m], h && h !== t && h !== s && (null == s ? t.appendChild(h) : h === s.nextSibling ? Po(s) : t.insertBefore(h, s)) } if (d) for (var m in l) void 0 !== l[m] && Uo(l[m], !1); for (; p <= y;) void 0 !== (h = u[y--]) && Uo(h, !1) }(o, l, n, r, Ho || null != u.dangerouslySetInnerHTML), function(t, e, n) { var r; for (r in n) e && null != e[r] || null == n[r] || Ro(t, r, n[r], n[r] = void 0, Lo); for (r in e) "children" === r || "innerHTML" === r || r in n && e[r] === ("value" === r || "checked" === r ? t[r] : n[r]) || Ro(t, r, n[r], n[r] = e[r], Lo) }(o, e.attributes, u), Lo = a, o } function Uo(t, e) { var n = t._component; n ? Ko(n) : (null != t.__preactattr_ && bo(t.__preactattr_.ref, null), !1 !== e && null != t.__preactattr_ || Po(t), Qo(t)) } function Qo(t) { for (t = t.lastChild; t;) { var e = t.previousSibling; Uo(t, !0), t = e } } var jo = []; function Xo(t, e, n) { var r, i = jo.length; for (t.prototype && t.prototype.render ? (r = new t(e, n), Vo.call(r, e, n)) : ((r = new Vo(e, n)).constructor = t, r.render = Go); i--;) if (jo[i].constructor === t) return r.nextBase = jo[i].nextBase, jo.splice(i, 1), r; return r } function Go(t, e, n) { return this.constructor(t, n) } function Wo(t, e, n, r, i) { t._disable || (t._disable = !0, t.__ref = e.ref, t.__key = e.key, delete e.ref, delete e.key, void 0 === t.constructor.getDerivedStateFromProps && (!t.base || i ? t.componentWillMount && t.componentWillMount() : t.componentWillReceiveProps && t.componentWillReceiveProps(e, r)), r && r !== t.context && (t.prevContext || (t.prevContext = t.context), t.context = r), t.prevProps || (t.prevProps = t.props), t.props = e, t._disable = !1, 0 !== n && (1 !== n && !1 === xo.syncComponentUpdates && t.base ? Co(t) : Yo(t, 1, i)), bo(t.__ref, t)) } function Yo(t, e, n, r) { if (!t._disable) { var i, o, a, s = t.props, A = t.state, h = t.context, c = t.prevProps || s, u = t.prevState || A, l = t.prevContext || h, d = t.base, p = t.nextBase, f = d || p, y = t._component, x = !1, m = l; if (t.constructor.getDerivedStateFromProps && (A = vo(vo({}, A), t.constructor.getDerivedStateFromProps(s, A)), t.state = A), d && (t.props = c, t.state = u, t.context = l, 2 !== e && t.shouldComponentUpdate && !1 === t.shouldComponentUpdate(s, A, h) ? x = !0 : t.componentWillUpdate && t.componentWillUpdate(s, A, h), t.props = s, t.state = A, t.context = h), t.prevProps = t.prevState = t.prevContext = t.nextBase = null, t._dirty = !1, !x) { i = t.render(s, A, h), t.getChildContext && (h = vo(vo({}, h), t.getChildContext())), d && t.getSnapshotBeforeUpdate && (m = t.getSnapshotBeforeUpdate(c, u)); var g, w, v = i && i.nodeName; if ("function" == typeof v) { var b = Do(i); (o = y) && o.constructor === v && b.key == o.__key ? Wo(o, b, 1, h, !1) : (g = o, t._component = o = Xo(v, b, h), o.nextBase = o.nextBase || p, o._parentComponent = t, Wo(o, b, 0, h, !1), Yo(o, 1, n, !0)), w = o.base } else a = f, (g = y) && (a = t._component = null), (f || 1 === e) && (a && (a._component = null), w = Fo(a, i, h, n || !d, f && f.parentNode, !0)); if (f && w !== f && o !== y) { var _ = f.parentNode; _ && w !== _ && (_.replaceChild(w, f), g || (f._component = null, Uo(f, !1))) } if (g && Ko(g), t.base = w, w && !r) { for (var S = t, E = t; E = E._parentComponent;)(S = E).base = w; w._component = S, w._componentConstructor = S.constructor } } for (!d || n ? Mo.push(t) : x || (t.componentDidUpdate && t.componentDidUpdate(c, u, m), xo.afterUpdate && xo.afterUpdate(t)); t._renderCallbacks.length;) t._renderCallbacks.pop().call(t); Oo || r || zo() } } function Ko(t) { xo.beforeUnmount && xo.beforeUnmount(t); var e = t.base; t._disable = !0, t.componentWillUnmount && t.componentWillUnmount(), t.base = null; var n = t._component; n ? Ko(n) : e && (null != e.__preactattr_ && bo(e.__preactattr_.ref, null), t.nextBase = e, Po(e), jo.push(t), Qo(e)), bo(t.__ref, null) } function Vo(t, e) { this._dirty = !0, this.context = e, this.props = t, this.state = this.state || {}, this._renderCallbacks = [] } vo(Vo.prototype, { setState: function(t, e) { this.prevState || (this.prevState = this.state), this.state = vo(vo({}, this.state), "function" == typeof t ? t(this.state, this.props) : t), e && this._renderCallbacks.push(e), Co(this) }, forceUpdate: function(t) { t && this._renderCallbacks.push(t), Yo(this, 2) }, render: function() {} }); var qo = { h: wo, createElement: wo, cloneElement: function(t, e) { return wo(t.nodeName, vo(vo({}, t.attributes), e), arguments.length > 2 ? [].slice.call(arguments, 2) : t.children) }, createRef: function() { return {} }, Component: Vo, render: function(t, e, n) { return Fo(n, t, {}, !1, e, !1) }, rerender: To, options: xo }, Jo = n(5), Zo = n.n(Jo); function $o(t, e) { this.x = t || 0, this.y = e || 0 } Object.defineProperties($o.prototype, { width: { get: function() { return this.x }, set: function(t) { this.x = t } }, height: { get: function() { return this.y }, set: function(t) { this.y = t } } }), Object.assign($o.prototype, { isVector2: !0, set: function(t, e) { return this.x = t, this.y = e, this }, setScalar: function(t) { return this.x = t, this.y = t, this }, setX: function(t) { return this.x = t, this }, setY: function(t) { return this.y = t, this }, setComponent: function(t, e) { switch (t) { case 0: this.x = e; break; case 1: this.y = e; break; default: throw new Error("index is out of range: " + t) } return this }, getComponent: function(t) { switch (t) { case 0: return this.x; case 1: return this.y; default: throw new Error("index is out of range: " + t) } }, clone: function() { return new this.constructor(this.x, this.y) }, copy: function(t) { return this.x = t.x, this.y = t.y, this }, add: function(t, e) { return void 0 !== e ? (console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."), this.addVectors(t, e)) : (this.x += t.x, this.y += t.y, this) }, addScalar: function(t) { return this.x += t, this.y += t, this }, addVectors: function(t, e) { return this.x = t.x + e.x, this.y = t.y + e.y, this }, addScaledVector: function(t, e) { return this.x += t.x * e, this.y += t.y * e, this }, sub: function(t, e) { return void 0 !== e ? (console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."), this.subVectors(t, e)) : (this.x -= t.x, this.y -= t.y, this) }, subScalar: function(t) { return this.x -= t, this.y -= t, this }, subVectors: function(t, e) { return this.x = t.x - e.x, this.y = t.y - e.y, this }, multiply: function(t) { return this.x *= t.x, this.y *= t.y, this }, multiplyScalar: function(t) { return this.x *= t, this.y *= t, this }, divide: function(t) { return this.x /= t.x, this.y /= t.y, this }, divideScalar: function(t) { return this.multiplyScalar(1 / t) }, applyMatrix3: function(t) { var e = this.x, n = this.y, r = t.elements; return this.x = r[0] * e + r[3] * n + r[6], this.y = r[1] * e + r[4] * n + r[7], this }, min: function(t) { return this.x = Math.min(this.x, t.x), this.y = Math.min(this.y, t.y), this }, max: function(t) { return this.x = Math.max(this.x, t.x), this.y = Math.max(this.y, t.y), this }, clamp: function(t, e) { return this.x = Math.max(t.x, Math.min(e.x, this.x)), this.y = Math.max(t.y, Math.min(e.y, this.y)), this }, clampScalar: function(t, e) { return this.x = Math.max(t, Math.min(e, this.x)), this.y = Math.max(t, Math.min(e, this.y)), this }, clampLength: function(t, e) { var n = this.length(); return this.divideScalar(n || 1).multiplyScalar(Math.max(t, Math.min(e, n))) }, floor: function() { return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this }, ceil: function() { return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this }, round: function() { return this.x = Math.round(this.x), this.y = Math.round(this.y), this }, roundToZero: function() { return this.x = this.x < 0 ? Math.ceil(this.x) : Math.floor(this.x), this.y = this.y < 0 ? Math.ceil(this.y) : Math.floor(this.y), this }, negate: function() { return this.x = -this.x, this.y = -this.y, 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 }, lengthSq: function() { return this.x * this.x + this.y * this.y }, length: function() { return Math.sqrt(this.x * this.x + this.y * this.y) }, manhattanLength: function() { return Math.abs(this.x) + Math.abs(this.y) }, normalize: function() { return this.divideScalar(this.length() || 1) }, angle: function() { var t = Math.atan2(this.y, this.x); return t < 0 && (t += 2 * Math.PI), t }, distanceTo: function(t) { return Math.sqrt(this.distanceToSquared(t)) }, distanceToSquared: function(t) { var e = this.x - t.x, n = this.y - t.y; return e * e + n * n }, manhattanDistanceTo: function(t) { return Math.abs(this.x - t.x) + Math.abs(this.y - t.y) }, setLength: function(t) { return this.normalize().multiplyScalar(t) }, lerp: function(t, e) { return this.x += (t.x - this.x) * e, this.y += (t.y - this.y) * e, this }, lerpVectors: function(t, e, n) { return this.subVectors(e, t).multiplyScalar(n).add(t) }, equals: function(t) { return t.x === this.x && t.y === this.y }, fromArray: function(t, e) { return void 0 === e && (e = 0), this.x = t[e], this.y = t[e + 1], this }, toArray: function(t, e) { return void 0 === t && (t = []), void 0 === e && (e = 0), t[e] = this.x, t[e + 1] = this.y, t }, fromBufferAttribute: function(t, e, n) { return void 0 !== n && console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."), this.x = t.getX(e), this.y = t.getY(e), this }, rotateAround: function(t, e) { var n = Math.cos(e), r = Math.sin(e), i = this.x - t.x, o = this.y - t.y; return this.x = i * n - o * r + t.x, this.y = i * r + o * n + t.y, this }, normal: function() { var t = new $o(this.x, this.y); return t.rotateAround({ x: 0, y: 0 }, 90 * Math.PI / 180), t.normalize() } }); var ta = $o, ea = function(t) { function e(t) { var n, r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 65535; return d()(this, e), (n = x()(this, g()(e).call(this))).target = null, n.color = 0, n.lastPositions = [], n.maxLength = 20, n.target = t, n.color = r, n } return _()(e, t), f()(e, [{ key: "render", value: function(t) { var n = this; this.lastPositions.push({ x: this.target.position.x, y: this.target.position.y }), this.clear(), this.lineStyle(Sc.SCALE, this.color, 1), this.moveTo(this.lastPositions[0].x, this.lastPositions[0].y), this.lastPositions.forEach(function(t, e) { n.lineStyle(20 * Sc.SCALE * (e / n.maxLength), n.color, e / n.maxLength), n.lineTo(t.x, t.y) }), this.lastPositions.length > this.maxLength && this.lastPositions.shift(), Zo()(g()(e.prototype), "render", this).call(this, t) } }, { key: "destroy", value: function() { Zo()(g()(e.prototype), "destroy", this).call(this), this.target = null } }]), e }(Jr), na = function(t) { function e(t, n, r, i, o) { var a; return d()(this, e), (a = x()(this, g()(e).call(this, t))).target = n, a.container = r, a.px = i, a.py = o, a.anchor = n.anchor, a.scale = n.scale, a.tint = 0, a.alpha = .5, a } return _()(e, t), f()(e, [{ key: "render", value: function(t) { this.texture !== this.target.texture && (this.texture = this.target.texture), this.scale = this.target.scale, this.target !== this.container && (this.x = this.px * Math.cos(this.container.rotation) + this.py * Math.sin(this.container.rotation), this.y = this.px * Math.sin(this.container.rotation) + this.py * Math.cos(this.container.rotation)), Zo()(g()(e.prototype), "render", this).call(this, t) } }]), e }(ti); function ra(t, e, n, r) { return new na(t.texture, t, e, n, r) } var ia = 1.075, oa = 1.2, aa = {}; function sa(t) { var e = t.id; return aa[e] ? aa[e] : (aa[e] = new Ki(Sc.instance.resources[t.texture].texture.baseTexture, Sc.instance.resources[t.atlas]), aa[e].parse(function() {}), aa[e]) } var Aa = function(t) { function e(t) { var n; return d()(this, e), (n = x()(this, g()(e).call(this))).radius = .017, n.r = 0, n.theta = 0, n.vtheta = 0, n.speed = new ta(0, 0), n.acceleration = new ta(0, 0), n.hook = null, n.rope = null, n.hookPullRemaining = 0, n.applyGravity = !0, n.trail = null, n.sprite = null, n.shadow = null, n.skin = null, n.angularVelocity = 0, n.step = function(t) { if (n.hook) { n.hookPullRemaining > 0 && (n.r -= .3 * Math.min(t, n.hookPullRemaining), n.r < .05 && (n.r = .05, n.hookPullRemaining = 0), n.hookPullRemaining -= t); var e = -Sc.instance.gravity.y * Math.sin(n.theta) / n.r; n.vtheta += e * t, n.theta += n.vtheta * t, n.position.set(n.r * Math.sin(n.theta) + n.hook.position.x, n.r * Math.cos(n.theta) + n.hook.position.y), n.rotation = -n.theta, n.rope.rotation = -n.theta + Math.PI / 2, n.rope.position.set(n.hook.position.x, n.hook.position.y), n.rope.visible = !0, n.rope.scale.x = n.r, n.vtheta > 0 ? n.scale.x = n.scale.y : (n.scale.x = -n.scale.y, n.shadow.x *= -1), Math.abs(n.vtheta) < .5 ? n.gotoFrame("hooked0") : n.theta < 0 && n.vtheta < 0 || n.theta > 0 && n.vtheta > 0 ? n.gotoFrame("hooked1") : n.gotoFrame("hooked2"), n.speed.set(n.r * n.vtheta * Math.cos(n.theta), -n.r * n.vtheta * Math.sin(n.theta), 0) } else { n.acceleration = n.speed.clone().multiplyScalar(-Sc.AIR_FRICTION), n.applyGravity && n.acceleration.add(Sc.instance.gravity), n.speed.add(n.acceleration.clone().multiplyScalar(t)); var r = n.speed.clone().multiplyScalar(t); n.position.set(n.position.x + r.x, n.position.y + r.y), n.rotation += n.angularVelocity * t } }, n.hookTo = function(t) { var e = { x: -1 * (t.position.x - n.position.x), y: 1 * (t.position.y - n.position.y) }; n.theta = Math.atan2(e.x, -e.y), n.r = Math.sqrt(e.x * e.x + e.y * e.y), n.vtheta = -(Math.cos(n.theta) * -n.speed.x + Math.sin(n.theta) * n.speed.y) / n.r, n.vtheta *= ia, n.hook = t, n.hookPullRemaining = .2, n.parent.addChildAt(n.rope, 1), n.gotoFrame("hooked2") }, n.unhook = function() { n.hook && (n.speed.multiplyScalar(oa), n.angularVelocity = 20 * n.speed.x, n.parent.removeChild(n.rope), n.hook = null, n.hookPullRemaining = 0, n.gotoFrame("ball"), n.scale.x = n.scale.y) }, n.onHit = function(t) { n.hookPullRemaining = 0, n.hook || (n.gotoFrame("ball"), n.angularVelocity = 20 * n.speed.x) }, n.skin = t, n.sprite = new fo(sa(n.skin).animations[t.id]), n.sprite.anchor.set(.5, .5), n.rope = new Jr, n.rope.lineStyle(.002, 16777215).moveTo(0, 0).lineTo(1, 0), n.on("added", function(t) { n.trail = new ea(v()(n)); var e = n.parent.getChildIndex(v()(n)); n.parent.addChildAt(n.trail, e) }), n.scale.set(.5 * Sc.SCALE), n.gotoFrame("spawn"), n.shadow = ra(n.sprite, v()(n), 0, 20), n.addChild(n.shadow), n.addChild(n.sprite), n } return _()(e, t), f()(e, [{ key: "gotoFrame", value: function(t) { this.sprite.gotoAndStop(this.skin.frames[t]) } }, { key: "dance", value: function() { this.sprite.textures = sa(this.skin).animations.dance, this.sprite.loop = !0, this.sprite.animationSpeed = .125, this.sprite.play() } }, { key: "destroy", value: function() { Zo()(g()(e.prototype), "destroy", this).call(this), this.trail && (this.trail.destroy(), this.trail = null), this.shadow && (this.shadow.destroy(), this.shadow = null) } }]), e }(ie), ha = n(29), ca = n.n(ha), ua = n(13), la = n.n(ua), da = function(t) { function e() { return d()(this, e), x()(this, g()(e).apply(this, arguments)) } return _()(e, t), f()(e, [{ key: "render", value: function() { var t = this.props, e = t.text, n = t.onClick, r = t.image, i = t.selected, o = t.locked, a = t.type, s = t.loading, A = t.disabled; return qo.h("button", { class: "shop-button button ".concat(i ? "selected" : "", " ").concat(o ? "locked" : "unlocked", " ").concat(s ? "loading" : "", " type-").concat(a, " ").concat(A ? "disabled" : ""), onClick: n }, r ? qo.h("img", { class: "image", src: r }) : null, qo.h("span", { class: "text" }, e), o ? qo.h("img", { class: "lock", src: ca.a }) : null, s ? qo.h("img", { class: "load-icon", src: la.a }) : null) } }]), e }(qo.Component), pa = n(30), fa = n.n(pa), ya = n(31), xa = n.n(ya), ma = n(32), ga = n.n(ma), wa = n(33), va = n.n(wa), ba = n(34), _a = n.n(ba), Sa = n(35), Ea = n.n(Sa), Ca = n(36), Ta = n.n(Ca), ka = n(37), Ia = n.n(ka), Da = n(38), Pa = n.n(Da), Ra = n(39), Ba = n.n(Ra), Ma = n(40), Oa = n.n(Ma), La = n(41), Ha = n.n(La), za = n(42), Fa = n.n(za), Na = n(43), Ua = n.n(Na), Qa = n(44), ja = n.n(Qa), Xa = n(45), Ga = n.n(Xa), Wa = n(46), Ya = n.n(Wa), Ka = n(47), Va = n.n(Ka), qa = n(48), Ja = n.n(qa), Za = n(49), $a = n.n(Za), ts = n(50), es = n.n(ts), ns = n(51), rs = n.n(ns), is = n(52), os = n.n(is); function as(t) { return !t.condition || (t.condition.level <= Sc.instance.level + 1 || !(!t.condition.ad && !t.condition.shortcut) && (Sc.instance.playerInfos && Sc.instance.playerInfos.unlockedSkins && Sc.instance.playerInfos.unlockedSkins.includes(t.id))) } function ss() { return As.reduce(function(t, e) { var n = as(e); return t.unlocked += n ? 1 : 0, t.total += !e.hidden || n ? 1 : 0, t }, { unlocked: 0, total: 0 }) } var As = [{ id: "CHAR_Classic", name: "Classic", type: "level", thumbnail: fa.a, texture: "stickman_classic_texture", atlas: "stickman_classic_json", description: "The Original", frames: { spawn: 6, hooked0: 5, hooked1: 1, hooked2: 0, ball: 13, victory: 8 } }, { id: "CHAR_Dragon", name: "Dragon", type: "rewarded", thumbnail: Ja.a, texture: "stickman_dragon_texture", atlas: "stickman_dragon_json", description: "Watch 1 video", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_StickPlant", name: "Plant", type: "level", thumbnail: xa.a, texture: "stickman_plant_texture", atlas: "stickman_plant_json", condition: { level: 5 }, description: "Finish Level 5", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_Momie", name: "Mummy", type: "level", thumbnail: ga.a, texture: "stickman_momie_texture", atlas: "stickman_momie_json", condition: { level: 10 }, description: "Finish Level 10", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_AngelStick", name: "Angel", type: "level", thumbnail: Ea.a, texture: "stickman_angel_texture", atlas: "stickman_angel_json", condition: { level: 20 }, description: "Finish Level 20", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_EvilStick", name: "Evil", type: "level", thumbnail: Pa.a, texture: "stickman_evil_texture", atlas: "stickman_evil_json", condition: { level: 30 }, description: "Finish Level 30", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_RainbowStick", name: "Rainbow", type: "level", thumbnail: Ba.a, texture: "stickman_rainbow_texture", atlas: "stickman_rainbow_json", condition: { level: 50 }, description: "Finish Level 50", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_StickOuech", name: "Thug", type: "level", thumbnail: Oa.a, texture: "stickman_wesh_texture", atlas: "stickman_wesh_json", condition: { level: 75 }, description: "Finish Level 75", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_KingStick", name: "King", type: "level", thumbnail: Ha.a, texture: "stickman_king_texture", atlas: "stickman_king_json", condition: { level: 100 }, description: "Finish Level 100", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_SuperStick", name: "SuperStick", type: "level", thumbnail: Ya.a, texture: "stickman_super_texture", atlas: "stickman_super_json", condition: { level: 150 }, description: "Finish Level 150", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_Burger", name: "Burger", type: "rewarded", thumbnail: va.a, texture: "stickman_burger_texture", atlas: "stickman_burger_json", description: "Watch 1 video", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_Cactus", name: "Cactus", type: "rewarded", thumbnail: _a.a, texture: "stickman_cactus_texture", atlas: "stickman_cactus_json", description: "Watch 1 video", frames: { spawn: 4, hooked0: 2, hooked1: 1, hooked2: 0, ball: 5, victory: 3 } }, { id: "CHAR_Corgi", name: "Corgi", type: "rewarded", thumbnail: Ta.a, texture: "stickman_corgi_texture", atlas: "stickman_corgi_json", description: "Watch 1 video", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_Unicorn", name: "Unicorn", type: "rewarded", thumbnail: Ia.a, texture: "stickman_unicorn_texture", atlas: "stickman_unicorn_json", description: "Watch 1 video", frames: { spawn: 4, hooked0: 3, hooked1: 0, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_Banana", name: "Banana", type: "rewarded", thumbnail: Fa.a, texture: "stickman_banana_texture", atlas: "stickman_banana_json", description: "Watch 1 video", frames: { spawn: 2, hooked0: 4, hooked1: 1, hooked2: 0, ball: 5, victory: 3 } }, { id: "CHAR_Ninja", name: "Ninja", type: "rewarded", thumbnail: Ua.a, texture: "stickman_ninja_texture", atlas: "stickman_ninja_json", description: "Watch 1 video", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "AN_Sheep", name: "Sheep", type: "rewarded", thumbnail: ja.a, texture: "stickman_sheep_texture", atlas: "stickman_sheep_json", description: "Watch 1 video", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "v03_CHAR_Panda", name: "Panda", type: "rewarded", thumbnail: Ga.a, texture: "stickman_panda_texture", atlas: "stickman_panda_json", description: "Watch 1 video", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_RobotMan", name: "Robot", type: "rewarded", thumbnail: Va.a, texture: "stickman_robot_texture", atlas: "stickman_robot_json", description: "Watch 1 video", frames: { spawn: 3, hooked0: 2, hooked1: 0, hooked2: 5, ball: 4, victory: 1 } }, { id: "CHAR_TikiMan", name: "Tiki", type: "rewarded", thumbnail: $a.a, texture: "stickman_tikiman_texture", atlas: "stickman_tikiman_json", description: "Watch 1 video", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_HotDog", name: "Tiki", type: "rewarded", thumbnail: es.a, texture: "stickman_hotdog_texture", atlas: "stickman_hotdog_json", description: "Watch 1 video", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_LemonMan", name: "LemonMan", type: "rewarded", thumbnail: rs.a, texture: "stickman_lemonman_texture", atlas: "stickman_lemonman_json", description: "Watch 1 video", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }, { id: "CHAR_Plant", name: "PlantMonster", type: "rewarded", thumbnail: os.a, texture: "stickman_plantmonster_texture", atlas: "stickman_plantmonster_json", description: "Watch 1 video", frames: { spawn: 4, hooked0: 3, hooked1: 1, hooked2: 0, ball: 5, victory: 2 } }], hs = As, cs = function(t) { function e() { var t, n, r; d()(this, e); for (var i = arguments.length, o = new Array(i), a = 0; a < i; a++) o[a] = arguments[a]; return x()(r, (n = r = x()(this, (t = g()(e)).call.apply(t, [this].concat(o))), r.state = { skinIndex: 0 }, n)) } return _()(e, t), f()(e, [{ key: "componentDidMount", value: function() { var t = this; this.interval = setInterval(function() { t.setState({ skinIndex: (t.state.skinIndex + 1) % hs.length }) }, 500) } }, { key: "componentWillUnmount", value: function() { clearInterval(this.interval) } }, { key: "render", value: function() { var t = this.props, e = t.text, n = t.onClick, r = hs[this.state.skinIndex].thumbnail; return qo.h(da, { text: e, onClick: n, image: r }) } }]), e }(qo.Component), us = function(t) { function e() { return d()(this, e), x()(this, g()(e).apply(this, arguments)) } return _()(e, t), f()(e, [{ key: "render", value: function() { var t = this.props, e = t.onClick, n = t.children; return qo.h("button", { class: "share-button button", onClick: e }, n && n.length ? n : "SHARE") } }]), e }(qo.Component), ls = function(t) { function e() { var t, n, r; d()(this, e); for (var i = arguments.length, o = new Array(i), a = 0; a < i; a++) o[a] = arguments[a]; return x()(r, (n = r = x()(this, (t = g()(e)).call.apply(t, [this].concat(o))), r.state = {}, r.createShortcutAsync = null, r.onKeyPress = function(t) { 32 === t.keyCode && Sc.instance.gotoNextLevel() }, r.onCanCreateShortcut = function(t) { var e = t.canCreateShortcut, n = t.createShortcutAsync; r.createShortcutAsync = n, r.setState({ canCreateShortcut: e }) }, n)) } return _()(e, t), f()(e, [{ key: "componentDidMount", value: function() { Sc.instance.eventEmitter.addListener("canCreateShortcut", this.onCanCreateShortcut), document.addEventListener("keypress", this.onKeyPress) } }, { key: "componentWillUnmount", value: function() { Sc.instance.eventEmitter.removeListener("canCreateShortcut", this.onCanCreateShortcut), this.createShortcutAsync = null, document.removeEventListener("keypress", this.onKeyPress) } }, { key: "render", value: function() { var t = this, e = ss(), n = e.unlocked, r = e.total; return qo.h("div", { class: "title-buttons" }, this.state.canCreateShortcut ? qo.h("div", { class: "row present-row clickable", onClick: function() { t.createShortcutAsync().then(function() { t.setState({ canCreateShortcut: !1 }) }).catch(function() { t.setState({ canCreateShortcut: !1 }) }) } }, qo.h("button", { class: "present-button button" }), qo.h("span", null, "Add to homescreen"), qo.h("button", { class: "add-button button" })) : null, qo.h("div", { class: "row" }, qo.h("button", { class: "play-button button", onClick: function() { return Sc.instance.gotoNextLevel() } }, "PLAY", qo.h("br", null), Sc.instance.level + 1, " / ", Sc.instance.fakeMaxLevel), qo.h(cs, { onClick: function() { return Sc.instance.gotoShop() }, text: "".concat(n, "/").concat(r) })), qo.h("div", { class: "row" }, Sc.instance.features.share ? qo.h(us, { onClick: function() { return Sc.instance.eventEmitter.emit("playWith", null) } }, "Challenge", qo.h("br", null), "a friend") : null, Sc.instance.features.leaderboard ? qo.h("button", { class: "leaderboard-button button", onClick: function() { return Sc.instance.gotoLeaderboard() } }, "Leaderboard") : null)) } }]), e }(qo.Component), ds = function(t) { function e() { var t; return d()(this, e), (t = x()(this, g()(e).call(this))).uiComponent = ls, t.sceneName = "title", t.onResize = function() { t.bg.width = 100, t.bg.height = 1, t.title.scale.set(1.75 * Sc.SCALE), t.title.x = Sc.instance.width / Sc.instance.height / 2, t.title.y = t.title.height / 2.5, t.shadow.x = t.title.x, t.shadow.y = t.title.y + .008, t.hook.position.x = t.title.x + t.title.width / 13, t.hook.position.y = t.title.y + t.title.height / 6, t.stickman.scale.set(1 * Sc.SCALE) }, t.step = function(e) { t.stickman.step(e) }, t.bg = new ti(Sc.instance.resources.background_1.texture), t.title = new ti(Sc.instance.resources.title.texture), t.title.anchor.set(.5, .5), t.shadow = ra(t.title, t.title, 0, 0), t.stickman = new Aa(Sc.instance.playerSkin), t.addChild(t.bg), t.addChild(t.shadow), t.addChild(t.title), t.addChild(t.stickman), t.hook = { position: { x: 0, y: 0 } }, t.onResize(), t.stickman.position.set(Sc.instance.width / Sc.instance.height * .4, t.hook.position.y + .2), t.stickman.hookTo(t.hook), t } return _()(e, t), f()(e, [{ key: "destroy", value: function() { Zo()(g()(e.prototype), "destroy", this).call(this), this.stickman = null, this.title = null, this.shadow = null, this.bg = null } }]), e }(ie), ps = null; var fs = 1.2, ys = function(t) { function e(t, n, r, i, o) { var a; return d()(this, e), (a = x()(this, g()(e).call(this))).onHit = function(t) { a.sprite.playing || a.sprite.gotoAndPlay(0) }, a.position.set(t.x, t.y), a.rotation = n, a.w = r, a.h = i, a.bounciness = o && o.bounce || fs, a.maxSpeed = 3, a.minSpeed = .1, a.bounceForce = o ? o.force : void 0, a.bounceAngle = o ? o.angle : void 0, a.scale.set(Sc.SCALE), a.sprite = new fo((ps || ((ps = new Ki(Sc.instance.resources.bumper_texture.texture.baseTexture, Sc.instance.resources.bumper_json)).parse(function() {}), ps)).animations.AN_Grap1_BumperLarge), a.sprite.anchor.set(.49, .635), a.addChild(a.sprite), a.radius = Math.sqrt(a.w * a.w, a.h * a.h), a.sprite.animationSpeed = .5, a.sprite.loop = !1, a.sprite.gotoAndStop(4), a.shadow = ra(a.sprite, v()(a), 0, 20), a.addChildAt(a.shadow, 0), a } return _()(e, t), f()(e, [{ key: "destroy", value: function() { Zo()(g()(e.prototype), "destroy", this).call(this), this.sprite.destroy(), this.shadow.destroy(), this.sprite = null, this.shadow = null } }]), e }(ie), xs = function(t) { function e(t) { var n; return d()(this, e), (n = x()(this, g()(e).call(this))).sprite = null, n.nearSprite = null, n.activeSprite = null, n.step = function(t) { n.nearSprite.visible && n.nearSprite.scale.set(Math.min(n.nearSprite.scale.x + 5 * t, 1)) }, n.position.set(t.x, t.y), n.scale.set(Sc.SCALE), n.sprite = new ti(Sc.instance.resources.hook.texture), n.sprite.anchor.set(.5, .5), n.addChild(n.sprite), n.nearSprite = new ti(Sc.instance.resources.hook_near.texture), n.nearSprite.anchor.set(.5), n.addChild(n.nearSprite), n.isNear(!1), n.activeSprite = new ti(Sc.instance.resources.hook_active.texture), n.activeSprite.anchor.set(.5), n.addChild(n.activeSprite), n.isActive(!1), n } return _()(e, t), f()(e, [{ key: "isNear", value: function(t) { this.nearSprite.visible = t, this.nearSprite.scale.set(.4) } }, { key: "isActive", value: function(t) { this.activeSprite.visible = t } }]), e }(ie); var ms = function(t, e, n) { if (0 === n) return !1; var r = e.x - t.x, i = e.y - t.y; return r * r + i * i <= n * n }, gs = { x: 0, y: 0 }; var ws = function(t, e, n, r) { if (ms(t, n, r)) return t; if (ms(e, n, r)) return e; var i = t.x, o = t.y, a = e.x, s = e.y, A = n.x, c = n.y, u = a - i, l = s - o, d = u * u + l * l, p = u, f = l; if (d > 0) { var y = ((A - i) * u + (c - o) * l) / d; p *= y, f *= y } var x = gs; x.x = i + p, x.y = o + f; var m = p * p + f * f; return !!(ms(x, n, r) && m <= d && p * u + f * l >= 0) && h()({}, x) }; function vs(t, e) { var n = function(t, e) { if (!e.w) return !1; var n = { width: e.w, height: e.h }, r = { x: t.position.x - e.position.x, y: t.position.y - e.position.y }, i = r.x * r.x + r.y * r.y, o = t.radius + e.radius; if (i > o * o) return !1; var a = e.rotation, s = bs(r, a); return !(Math.abs(s.x) > n.width / 2 + t.radius || Math.abs(s.y) > n.height / 2 + t.radius) && s }(t, e); if (n) { t.onHit && t.onHit(e), e.onHit && e.onHit(t); var r = e.bounciness || fs; if (t.hook) { if (t.ignoreNextCollision) return; return t.ignoreNextCollision = !0, t.theta -= t.vtheta / 60, void(e.bounceForce ? t.vtheta = e.bounceForce * (t.vtheta > 0 ? -1 : 1) / t.r : (t.vtheta *= -r, t.vtheta * t.r > 3 && (t.vtheta = 3 / t.r))) } var i, o = e.rotation, a = bs(t.speed, o), s = bs(t.position, o), A = bs(e.position, o), h = e.w, c = e.h, u = Math.abs(n.y) - c / 2 > Math.abs(n.x) - h / 2, l = u ? "y" : "x"; i = u ? n.y > 0 ? A.y + c / 2 + t.radius : A.y - c / 2 - t.radius : n.x > 0 ? A.x + h / 2 + t.radius : A.x - h / 2 - t.radius, e.bounceForce ? a[l] = e.bounceForce * (a[l] > 0 ? -1 : 1) : a[l] *= -1 * r; var d = a[l] > 0 ? 1 : -1; e.minSpeed && (a[l] = Math.max(Math.abs(a[l]), e.minSpeed) * d), e.maxSpeed && (a[l] = Math.min(Math.abs(a[l]), e.maxSpeed) * d), s[l] = 2 * i - s[l], t.speed.copy(bs(a, -o)), void 0 !== e.bounceAngle && t.speed.rotateAround({ x: 0, y: 0 }, -t.speed.angle() + e.bounceAngle); var p = bs(s, -o); t.position.x = p.x, t.position.y = p.y } } function bs(t, e) { var n = new ta; return n.set(t.x * Math.cos(e) + t.y * Math.sin(e), -t.x * Math.sin(e) + t.y * Math.cos(e), t.z), n } var _s = function(t) { function e() { var t, n, r; d()(this, e); for (var i = arguments.length, o = new Array(i), a = 0; a < i; a++) o[a] = arguments[a]; return x()(r, (n = r = x()(this, (t = g()(e)).call.apply(t, [this].concat(o))), r.state = { percent: 0 }, r.onProgress = function(t) { r.setState({ percent: t }) }, n)) } return _()(e, t), f()(e, [{ key: "componentDidMount", value: function() { Sc.instance.eventEmitter.addListener("levelProgress", this.onProgress) } }, { key: "componentWillUnmount", value: function() { Sc.instance.eventEmitter.removeListener("levelProgress", this.onProgress) } }, { key: "render", value: function() { return qo.h("div", { class: "level-progressbar", style: { width: "".concat(this.state.percent, "%") } }) } }]), e }(qo.Component), Ss = function(t) { function e() { return d()(this, e), x()(this, g()(e).apply(this, arguments)) } return _()(e, t), f()(e, [{ key: "render", value: function() { return qo.h("span", { class: "level-progressbar-container" }, qo.h(_s, null)) } }]), e }(qo.Component), Es = function(t) { function e() { var t, n, r; d()(this, e); for (var i = arguments.length, o = new Array(i), a = 0; a < i; a++) o[a] = arguments[a]; return x()(r, (n = r = x()(this, (t = g()(e)).call.apply(t, [this].concat(o))), r.state = { complete: !1 }, r.onComplete = function() { r.state.complete || r.setState({ complete: !0 }) }, r.onPause = function() { setTimeout(function() { document.addEventListener("click", r.onClickOutside), document.addEventListener("touchend", r.onClickOutside) }, 0), r.forceUpdate() }, r.onResume = function() { document.removeEventListener("click", r.onClickOutside), document.removeEventListener("touchend", r.onClickOutside), r.forceUpdate() }, r.onClickOutside = function(t) { t.target && t.target.className && t.target.className.includes("button") || Sc.instance.resume() }, n)) } return _()(e, t), f()(e, [{ key: "componentDidMount", value: function() { Sc.instance.eventEmitter.addListener("levelComplete", this.onComplete), Sc.instance.eventEmitter.addListener("pause", this.onPause), Sc.instance.eventEmitter.addListener("resume", this.onResume) } }, { key: "componentWillUnmount", value: function() { Sc.instance.eventEmitter.removeListener("levelComplete", this.onComplete), Sc.instance.eventEmitter.removeListener("pause", this.onPause), Sc.instance.eventEmitter.removeListener("resume", this.onResume), document.removeEventListener("click", this.onClickOutside), document.removeEventListener("touchend", this.onClickOutside) } }, { key: "render", value: function() { var t = this.state.complete, e = Sc.instance.paused; return qo.h("div", null, t ? null : qo.h("button", { class: "button ".concat(e ? "back-button" : "pause-button"), onClick: function(t) { e ? (Sc.instance.eventEmitter.emit("levelAbandon", { level: Sc.instance.level }), Sc.instance.gotoTitle(), Sc.instance.resume()) : Sc.instance.pause() } }), qo.h("div", { class: "level-progress" }, qo.h("span", { class: "lvl current" }, Sc.instance.level + 1), qo.h(Ss, null), qo.h("span", { class: "lvl next" }, Sc.instance.level + 2), t ? qo.h("p", { class: "level-cleared" }, "Level cleared!") : null)) } }]), e }(qo.Component); function Cs(t, e, n, r, i) { return r * ((e = e / i - 1) * e * e + 1) + n } var Ts = null; var ks = function(t) { function e(t) { var n; return d()(this, e), (n = x()(this, g()(e).call(this, (Ts || ((Ts = new Ki(Sc.instance.resources.fxspawn_texture.texture.baseTexture, Sc.instance.resources.fxspawn_json)).parse(function() {}), Ts)).animations.FX_Spawn))).position.set(t.x, t.y), n.scale.set(Sc.SCALE), n.anchor.set(.5, .5), n.loop = !1, n.animationSpeed = .5, n.play(), n.onComplete = n.destroy, n } return _()(e, t), e }(fo), Is = new ta, Ds = function(t) { function e(t, n, r) { var i; return d()(this, e), (i = x()(this, g()(e).call(this, Sc.instance.resources[t].texture))).name = t, i.rawShapes = Sc.instance.resources.obstacles_physics[t], i.scale.set(Sc.SCALE), i.anchor.set(.5, .5), i.position.x = n.x, i.position.y = n.y, i.rotation = r, i.invalidateShapes(), i } return _()(e, t), f()(e, [{ key: "invalidateShapes", value: function() { var t = this.texture.width / 2, e = this.texture.height / 2; this.shapes = [], this.radius = 0; for (var n = 0; n < this.rawShapes.length; n++) { for (var r = [], i = this.rawShapes[n].shape, o = 0; o < i.length; o += 2) { Is.x = i[o] - t, Is.y = i[o + 1] - e, Is.rotateAround({ x: 0, y: 0 }, this.rotation || 0), Is.x *= this.scale.x, Is.y *= this.scale.y; var a = Math.sqrt(Is.x * Is.x + Is.y * Is.y); a > this.radius && (this.radius = a), Is.x += this.position.x, Is.y += this.position.y, r.push({ x: Is.x, y: Is.y }) } this.shapes.push(r) } return this.shapes } }]), e }(ti), Ps = .2, Rs = 4, Bs = "classic", Ms = function(t) { function e(t, n) { var r; if (d()(this, e), (r = x()(this, g()(e).call(this))).uiComponent = Es, r.sceneName = "level", r.id = 0, r.ld = null, r._zoom = 1, r.ratio = 1, r.stickman = null, r.spawnPoint = null, r.bumpers = [], r.hooks = [], r.obstacles = [], r.container = null, r.closestHook = null, r.finishLine = null, r.completed = !1, r.confettis = [], r.progress = 0, r.cameraXOffset = 0, r.attempts = 0, r.spawnTime = 0, r.pausable = !0, r.onResize = function() {}, r.substep = function(t) { r.stickman && r.stickman.step(t), r.bumpers.forEach(function(t) { vs(r.stickman, t) }), r.obstacles.forEach(function(t) { return function(t, e) { var n = t.position.x - e.position.x, r = t.position.y - e.position.y, i = n * n + r * r, o = t.radius + e.radius; if (!(i > o * o)) { var a = e.shapes, s = null, A = null; if (a.some(function(e) { for (var n = 0; n < e.length; n++) { var r = e[n], i = e[n < e.length - 1 ? n + 1 : 0]; if (A = ws(r, i, t.position, t.radius)) return s = A === r || A === i ? new ta(-A.x + t.position.x, -A.y + t.position.y).normal() : new ta(i.x - r.x, i.y - r.y), A } })) { var h = !!t.hookPullRemaining; if (t.onHit(e), t.hook) t.ignoreNextCollision = !0, t.theta -= t.vtheta / 60, h ? t.r += .01 : t.vtheta *= -.1; else { var c = s.clone().normal().setLength(t.radius + 1e-4); t.position.x = A.x - c.x, t.position.y = A.y - c.y; var u = s.angle(), l = bs(t.speed, u), d = bs(s.normal(), u); l[Math.abs(d.y) > Math.abs(d.x) ? "y" : "x"] *= -.1, t.speed = bs(l, -u), t.angularVelocity = 20 * t.speed.x } } } }(r.stickman, t) }) }, r.step = function(t) { var e = r.completed ? t * Ps : t; r.stickman.ignoreNextCollision = !1; for (var n = 0; n < Rs; n++) r.substep(e / Rs); var i = r.findClosestHook(); i !== r.closestHook && (i.isNear(!0), r.closestHook && r.closestHook.isNear(!1), r.closestHook = i), r.closestHook.step(e), !r.completed && r.stickman.x > r.finishLine.x && r.onComplete(), !r.completed && (r.stickman.y > 1.15 || r.stickman.x < 0) && !r.stickman.hook && r.stickman.speed.y > 0 && r.onDead(), r.updateCamera(t), r.confettis.forEach(function(t) { t.x += t.vx * e, t.y += t.vy * e }); var o = (r.stickman.x - r.ld.spawnPoint.x) / (r.finishLine.x - r.ld.spawnPoint.x); o > r.progress && (r.progress = Math.min(1, o), Sc.instance.eventEmitter.emit("levelProgress", 100 * r.progress)) }, r.onMouseDown = function() { Sc.instance.paused || r.completed || r.stickman.hook || !r.closestHook || (r.stickman.hookTo(r.closestHook), r.closestHook.isActive(!0)) }, r.onMouseUp = function() { Sc.instance.paused || r.completed || !r.stickman.hook || (r.stickman.hook.isActive(!1), r.stickman.unhook()) }, r.onKeyDown = function(t) { 32 === t.keyCode && r.onMouseDown(), 82 === t.keyCode && (Sc.instance.paused || r.completed || (r.stickman.hook && r.onMouseUp(), r.onDead())) }, r.onKeyUp = function(t) { 32 === t.keyCode ? r.onMouseUp() : 27 === t.keyCode && (Sc.instance.paused ? Sc.instance.resume() : Sc.instance.pause()) }, r.onDead = function() { r.closestHook = null, Sc.instance.eventEmitter.emit("levelFailed", { mode: Bs, score: r.progress, status: "FAILED", level: r.id + 1, attempt: r.attempts, time: Date.now() - r.spawnTime, completion: r.progress }), r.spawn() }, r.onComplete = function() { r.completed = !0, r.pausable = !1, r.stickman.hook && r.stickman.unhook(), r.gotoVictoryTimeout = setTimeout(function() { Sc.instance.gotoVictory(r.ld.background) }, 2e3); var t = new ie; t.position.x = r.ld.finishLine, t.position.y = r.stickman.position.y, t.scale.set(Sc.SCALE); for (var e = 0; e < 50; e++) { var n = new ti(Sc.instance.resources.confetti.texture); n.anchor.set(.5, .5); var i = 50 * (50 - e); n.vx = (r.stickman.speed.x + .3 * (Math.random() - .5)) * i, n.vy = (r.stickman.speed.y + .3 * (Math.random() - .5)) * i, n.scale.set(.2 * Math.random(), .2 * Math.random()), n.rotation = Math.random(), n.tint = 8947848 * Math.random() + 7829367, n.skew.set(Math.random() - .5, Math.random() - .5), t.addChild(n), r.confettis.push(n) } r.container.addChildAt(t, 1), r.finishLine.y = r.stickman.y - 1, r.stickman.trail.maxLength *= 3, r.stickman.applyGravity = !1, r.stickman.angularVelocity = 0, r.stickman.gotoFrame("victory"), r.stickman.rotation = r.stickman.speed.angle() + Math.PI / 2, Sc.instance.eventEmitter.emit("levelComplete", { mode: Bs, score: 1, status: "COMPLETED", level: r.id + 1, attempt: r.attempts, time: Date.now() - r.spawnTime, completion: 1 }) }, r.id = t, r.ld = n, r.spawnPoint = r.ld.spawnPoint, r.bg = new ti(Sc.instance.resources[r.ld.background].texture), r.bg.width = 100, r.bg.height = 1, r.addChild(r.bg), r.container = new ie, r.addChild(r.container), r.finishLine = new Zi(Sc.instance.resources.finish_line.texture, 32, Sc.instance.height / Sc.SCALE), r.finishLine.scale.set(2 * Sc.SCALE), r.finishLine.x = r.ld.finishLine, r.container.addChild(r.finishLine), r.ld.bumpers.forEach(function(t) { return r.addBumper(t.x, t.y, t.w, t.h, t.rotation, t.bounce) }), r.ld.hooks.forEach(function(t) { return r.addHook(t.x, t.y) }), r.ld.obstacles && r.ld.obstacles.forEach(function(t) { return r.addObstacle(t.name, t.x, t.y, t.rotation) }), r.ld.arrow) { var i = new ti(Sc.instance.resources.arrow_right.texture); i.anchor.set(.5, .5), i.scale.set(2 * Sc.SCALE), i.position.set(r.ld.arrow.x, r.ld.arrow.y), i.rotation = r.ld.arrow.rotation || 0, r.container.addChild(i) } return r.onResize(), r.spawn(), r.interactive = !0, r.on("pointerdown", r.onMouseDown), r.on("pointerup", r.onMouseUp), document.addEventListener("keydown", r.onKeyDown), document.addEventListener("keyup", r.onKeyUp), r.ratio = Sc.instance.width / Sc.instance.height, r } return _()(e, t), f()(e, [{ key: "spawn", value: function() { this.stickman && this.stickman.destroy(), this.stickman = new Aa(Sc.instance.playerSkin), this.stickman.position.set(this.spawnPoint.x, this.spawnPoint.y), this.container.addChild(this.stickman), this.progress = 0, this.attempts++, this.spawnTime = Date.now(), Sc.instance.eventEmitter.emit("levelProgress", 0), Sc.instance.eventEmitter.emit("levelStarted", { mode: Bs, level: this.id + 1, skin: Sc.instance.playerSkin.name, attempt: this.attempts, retry: 0 }); var t = new ks(this.stickman.position); this.container.addChild(t) } }, { key: "addBumper", value: function(t, e) { var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : .15, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : .04, i = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : 0, o = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null, a = new ys({ x: t, y: e }, i, n, r, o); return this.bumpers.push(a), this.container.addChild(a), a } }, { key: "addHook", value: function(t, e) { var n = new xs({ x: t, y: e }); return this.hooks.push(n), this.container.addChild(n), n } }, { key: "addObstacle", value: function(t, e, n) { var r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0, i = new Ds(t, { x: e, y: n }, r); return this.obstacles.push(i), this.container.addChild(i), i } }, { key: "updateCamera", value: function(t) { if (this.completed) { if (this.completeTime = (this.completeTime || 0) + t, this.completeTime < .6) { this.zoom = Cs(this._zoom, this.completeTime, 1, 3, .6); var e = -this._zoom / 2 + .5; this.container.y = Cs(this.container.y, this.completeTime, e, -this.stickman.y * this._zoom + .5 - e, .6) } else this.container.y = -this.stickman.y * this._zoom + .5; this.container.x = Math.min(0, (-this.stickman.x - .05 / this._zoom) * this._zoom + this.ratio / 2) } else { var n = this.stickman.speed, r = n.x > .1 ? .2 : n.x < -.1 ? -.2 : 0; this.cameraXOffset = Math.min(.1, Math.max(-.1, this.cameraXOffset + r * t)), this.container.x = Math.min(0, (-this.stickman.x - this.cameraXOffset / this._zoom) * this._zoom + this.ratio / 2) } } }, { key: "findClosestHook", value: function() { var t = this, e = 1 / 0, n = null; return this.hooks.forEach(function(r) { var i = r.x - t.stickman.position.x, o = r.y - t.stickman.position.y, a = i * i + o * o; a < e && (e = a, n = r) }), n } }, { key: "destroy", value: function() { Zo()(g()(e.prototype), "destroy", this).call(this), this.off("pointerdown", this.onMouseDown), this.off("pointerup", this.onMouseUp), document.removeEventListener("keydown", this.onKeyDown), document.removeEventListener("keyup", this.onKeyUp), this.gotoVictoryTimeout && clearTimeout(this.gotoVictoryTimeout) } }, { key: "zoom", set: function(t) { this._zoom = t, this.container.scale.set(this._zoom) }, get: function() { return this._zoom } }]), e }(ie), Os = n(53), Ls = n.n(Os), Hs = n(54), zs = n.n(Hs), Fs = n(18), Ns = n.n(Fs), Us = n(55), Qs = n.n(Us), js = n(56), Xs = n(57), Gs = n.n(Xs), Ws = n(58), Ys = n.n(Ws), Ks = n(59), Vs = n.n(Ks), qs = n(60), Js = n.n(qs), Zs = n(61), $s = n.n(Zs), tA = n(62), eA = n.n(tA), nA = n(19), rA = n.n(nA), iA = n(63), oA = n.n(iA), aA = n(64), sA = n.n(aA), AA = n(65), hA = n(66), cA = n.n(hA), uA = n(67), lA = n(68), dA = n.n(lA), pA = n(69), fA = n.n(pA), yA = n(70), xA = n.n(yA), mA = n(71), gA = n.n(mA), wA = n(72), vA = n.n(wA), bA = n(73), _A = n.n(bA), SA = n(74), EA = n.n(SA), CA = n(75), TA = n(76), kA = n.n(TA), IA = n(77), DA = n(78), PA = n.n(DA), RA = n(79), BA = n(80), MA = n.n(BA), OA = n(81), LA = n(82), HA = n.n(LA), zA = n(83), FA = n(84), NA = n.n(FA), UA = n(85), QA = n(86), jA = n.n(QA), XA = n(87), GA = n(88), WA = n.n(GA), YA = n(89), KA = n(90), VA = n.n(KA), qA = n(91), JA = n(92), ZA = n.n(JA), $A = n(93), th = n(94), eh = n.n(th), nh = n(95), rh = n(96), ih = n.n(rh), oh = n(97), ah = n(98), sh = n.n(ah), Ah = n(99), hh = n(100), ch = n.n(hh), uh = n(101), lh = n(102), dh = n.n(lh), ph = n(103), fh = n(104), yh = n.n(fh), xh = n(105), mh = n(106), gh = n.n(mh), wh = n(107), vh = n(108), bh = n.n(vh), _h = n(109), Sh = n(110), Eh = n.n(Sh), Ch = n(111), Th = n(112), kh = n.n(Th), Ih = n(113), Dh = n(114), Ph = n.n(Dh), Rh = n(115), Bh = n(116), Mh = n.n(Bh), Oh = n(117), Lh = n(118), Hh = n.n(Lh), zh = n(119), Fh = n(120), Nh = n.n(Fh), Uh = n(121), Qh = { title: Ls.a, background_0: zs.a, background_1: Ns.a, bumper_texture: Qs.a, bumper_json: js, hook: Gs.a, hook_near: Ys.a, hook_active: Vs.a, finish_line: Js.a, particles: $s.a, arrow_right: eA.a, shop_background: rA.a, confetti: oA.a, fxspawn_texture: sA.a, fxspawn_json: AA, finishplatform_texture: cA.a, finishplatform_json: uA, finishlight: dA.a, A_Wall45: fA.a, A_WallAngle: xA.a, A_WallCircleChelou: vA.a, A_WallCurve: gA.a, A_WallTransition: _A.a, C_Wall: EA.a, obstacles_physics: CA, stickman_classic_texture: kA.a, stickman_classic_json: IA, stickman_plant_texture: PA.a, stickman_plant_json: RA, stickman_momie_texture: MA.a, stickman_momie_json: OA, stickman_burger_texture: HA.a, stickman_burger_json: zA, stickman_cactus_texture: NA.a, stickman_cactus_json: UA, stickman_angel_texture: jA.a, stickman_angel_json: XA, stickman_corgi_texture: WA.a, stickman_corgi_json: YA, stickman_unicorn_texture: VA.a, stickman_unicorn_json: qA, stickman_evil_texture: ZA.a, stickman_evil_json: $A, stickman_rainbow_texture: eh.a, stickman_rainbow_json: nh, stickman_wesh_texture: ih.a, stickman_wesh_json: oh, stickman_king_texture: sh.a, stickman_king_json: Ah, stickman_banana_texture: ch.a, stickman_banana_json: uh, stickman_ninja_texture: dh.a, stickman_ninja_json: ph, stickman_sheep_texture: yh.a, stickman_sheep_json: xh, stickman_panda_texture: gh.a, stickman_panda_json: wh, stickman_super_texture: bh.a, stickman_super_json: _h, stickman_robot_texture: Eh.a, stickman_robot_json: Ch, stickman_dragon_texture: kh.a, stickman_dragon_json: Ih, stickman_tikiman_texture: Ph.a, stickman_tikiman_json: Rh, stickman_hotdog_texture: Mh.a, stickman_hotdog_json: Oh, stickman_lemonman_texture: Hh.a, stickman_lemonman_json: zh, stickman_plantmonster_texture: Nh.a, stickman_plantmonster_json: Uh }, jh = n(14), Xh = n.n(jh), Gh = function(t) { function e() { return d()(this, e), x()(this, g()(e).apply(this, arguments)) } return _()(e, t), f()(e, [{ key: "render", value: function() { var t = this.props, e = t.skin, n = t.onClose, r = t.onEquip; return qo.h("div", { class: "popup-container clickable", onClick: n }, qo.h("div", null, qo.h("div", { class: "skin-unlocked-popup clickable", onClick: function(t) { return t.stopImmediatePropagation() } }, qo.h("p", null, "NEW SKIN UNLOCKED!"), qo.h("img", { src: e.thumbnail }), qo.h("button", { class: "equip-skin-button button", onClick: r }, "EQUIP NOW")))) } }]), e }(qo.Component), Wh = function(t) { function e() { var t, n, r; d()(this, e); for (var i = arguments.length, o = new Array(i), a = 0; a < i; a++) o[a] = arguments[a]; return x()(r, (n = r = x()(this, (t = g()(e)).call.apply(t, [this].concat(o))), r.state = { unlockedSkin: hs.find(function(t) { return t.condition && t.condition.level === Sc.instance.level + 1 }) }, r.onKeyPress = function(t) { 32 === t.keyCode ? Sc.instance.gotoNextLevel() : 27 === t.keyCode && Sc.instance.gotoTitle() }, n)) } return _()(e, t), f()(e, [{ key: "componentDidMount", value: function() { this.state.unlockedSkin && Sc.instance.eventEmitter.emit("skinUnlocked", this.state.unlockedSkin), document.addEventListener("keyup", this.onKeyPress) } }, { key: "componentWillUnmount", value: function() { document.removeEventListener("keyup", this.onKeyPress) } }, { key: "render", value: function() { var t = this, e = ss(), n = e.unlocked, r = e.total, i = this.state.unlockedSkin; return qo.h("div", { class: "victory" }, qo.h("button", { class: "back-button button", onClick: function(t) { return Sc.instance.gotoTitle() } }), qo.h("img", { class: "title", src: Xh.a, alt: "Stickman Hook" }), qo.h("p", { class: "level-cleared" }, "Level ", Sc.instance.level, " / ", Sc.instance.fakeMaxLevel), Sc.instance.features.share ? qo.h(us, { onClick: function() { return Sc.instance.eventEmitter.emit("playWith", null) } }, "Challenge", qo.h("br", null), "a friend") : null, Sc.instance.features.leaderboard ? qo.h("button", { class: "leaderboard-button button", onClick: function() { return Sc.instance.gotoLeaderboard() } }, "Leaderboard") : null, qo.h("button", { class: "continue-button button", onClick: function() { return Sc.instance.gotoNextLevel() } }), qo.h(cs, { onClick: function() { return Sc.instance.gotoShop() }, text: "".concat(n, "/").concat(r) }), i ? qo.h(Gh, { skin: i, onClose: function() { return t.setState({ unlockedSkin: null }) }, onEquip: function() { Sc.instance.playerSkin = i, Sc.instance.gotoShop(1) } }) : null) } }]), e }(qo.Component), Yh = null; var Kh = function(t) { function e() { var t; d()(this, e), (t = x()(this, g()(e).call(this))).scale.set(Sc.SCALE); var n = new ti(Sc.instance.resources.finishlight.texture); n.anchor.set(.5, .4), n.scale.set(1.5, 1.5), t.addChild(n); var r = new fo((Yh || ((Yh = new Ki(Sc.instance.resources.finishplatform_texture.texture.baseTexture, Sc.instance.resources.finishplatform_json)).parse(function() {}), Yh)).animations.AN_Grap1_FinishPlatform); return r.anchor.set(.5, -.2), r.loop = !0, r.animationSpeed = .5, r.play(), t.addChild(r), t } return _()(e, t), e }(ie), Vh = function(t) { function e() { var t, n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "background_0"; return d()(this, e), (t = x()(this, g()(e).call(this))).uiComponent = Wh, t.sceneName = "victory", t.onResize = function() { t.bg.width = 100, t.bg.height = 1, Sc.instance.height < 420 ? t.stickman.position.y = .3 : t.stickman.position.y = .5, t.stickman.position.x = Sc.instance.width / Sc.instance.height / 2, t.stickman.scale.set(.5 * Sc.SCALE * 3), t.platform.position.x = t.stickman.position.x, t.platform.position.y = t.stickman.position.y }, t.bg = new ti(Sc.instance.resources[n].texture), t.addChild(t.bg), t.platform = new Kh, t.addChild(t.platform), t.stickman = new Aa(Sc.instance.playerSkin), t.stickman.dance(), t.addChild(t.stickman), t.onResize(), t } return _()(e, t), e }(ie), qh = (n(142), function(t) { function e() { return d()(this, e), x()(this, g()(e).apply(this, arguments)) } return _()(e, t), f()(e, [{ key: "componentDidMount", value: function() { var t = this; Sc.instance.eventEmitter.addListener("sceneChange", function(e) { var n = e.component, r = e.initialState; return t.setState({ component: n, initialState: r }) }) } }, { key: "render", value: function() { var t = this.state.component, e = this.state.initialState; return qo.h("div", { class: "ui" }, t ? qo.h(t, e) : null) } }]), e }(qo.Component)), Jh = n(122), Zh = n.n(Jh), $h = function(t) { function e() { return d()(this, e), x()(this, g()(e).apply(this, arguments)) } return _()(e, t), f()(e, [{ key: "render", value: function() { return qo.h("p", { class: "loading-text" }, qo.h("img", { class: "load-icon", src: la.a }), " Loading") } }]), e }(qo.Component), tc = function(t) { function e() { var t, n, r; d()(this, e); for (var i = arguments.length, o = new Array(i), a = 0; a < i; a++) o[a] = arguments[a]; return x()(r, (n = r = x()(this, (t = g()(e)).call.apply(t, [this].concat(o))), r.state = { step: "fadeIn" }, n)) } return _()(e, t), f()(e, [{ key: "componentDidMount", value: function() { var t = this; setTimeout(function() { return t.setState({ step: "fadeOut" }) }, 1500), setTimeout(function() { return t.setState({ step: "loading" }) }, 2500) } }, { key: "render", value: function() { var t = this.state.step; return qo.h("div", { class: "loading-ui" }, "loading" === t ? qo.h("div", { class: "loading-bg" }, qo.h("img", { class: "title", src: Xh.a, alt: "Stickman Hook" }), qo.h($h, null)) : qo.h("img", { src: Zh.a, class: "fadeOut" === t ? "fade-out" : "" }), qo.h("div", { class: "odin-font-loader" }, "abc")) } }]), e }(qo.Component), ec = n(6), nc = n.n(ec), rc = n(20); function ic(t) { return t.keys().map(function(e, n) { var r = t(e, n); return r.file = e, r }) } var oc = ic(n(165)), ac = { start: ic(n(175)), middle: ic(n(207)), end: ic(n(251)) }; function sc(t, e, n) { var r = [], i = [], o = []; r.push.apply(r, nc()(t.hooks)), i.push.apply(i, nc()(t.bumpers)), o.push.apply(o, nc()(t.obstacles || [])); var a = [t.file], s = t.finishLine; return r.push.apply(r, nc()(e.hooks.map(function(t) { return { x: t.x + s, y: t.y } }))), i.push.apply(i, nc()(e.bumpers.map(function(t) { return h()({}, t, { x: t.x + s, y: t.y }) }))), o.push.apply(o, nc()((e.obstacles || []).map(function(t) { return h()({}, t, { x: t.x + s, y: t.y }) }))), s += e.finishLine, a.push(e.file), r.push.apply(r, nc()(n.hooks.map(function(t) { return { x: t.x + s, y: t.y } }))), i.push.apply(i, nc()(n.bumpers.map(function(t) { return h()({}, t, { x: t.x + s, y: t.y }) }))), o.push.apply(o, nc()((n.obstacles || []).map(function(t) { return h()({}, t, { x: t.x + s, y: t.y }) }))), a.push(n.file), { spawnPoint: t.spawnPoint, finishLine: n.finishLine + s, background: Math.random() > .5 ? "background_1" : "background_0", hooks: r, bumpers: i, obstacles: o, files: a } } var Ac = function(t) { if (t < oc.length) return oc[t]; if (t < oc.length + rc.length) { var e = rc[t - oc.length]; return sc(ac.start.find(function(t) { return t.file.includes(e.start) }), ac.middle.find(function(t) { return t.file.includes(e.mid) }), ac.end.find(function(t) { return t.file.includes(e.end) })) } return function() { var t = Math.floor(Math.random() * ac.start.length), e = ac.start[t], n = Math.floor(Math.random() * ac.middle.length), r = ac.middle[n], i = Math.floor(Math.random() * ac.end.length), o = ac.end[i]; return sc(e, r, o) }() }; function hc(t) { return t.condition && t.condition.level ? "LVL ".concat(t.condition.level) : t.condition && t.condition.ad ? "Video" : t.condition && t.condition.shortcut ? "Add icon" : void 0 } var cc = function(t) { function e() { return d()(this, e), x()(this, g()(e).apply(this, arguments)) } return _()(e, t), f()(e, [{ key: "render", value: function() { var t = this.props, e = t.skins, n = t.onSelectSkin, r = t.width, i = t.rewardedReady; return qo.h("div", { class: "skins-list", style: { width: r } }, e.map(function(t) { var e = as(t); return qo.h(da, { key: t.id, selected: t === Sc.instance.playerSkin, onClick: function() { return n(t) }, text: e ? "SELECT" : hc(t), image: t.thumbnail, locked: !e, type: t.type, loading: !e && "rewarded" === t.type && !i && Sc.instance.features.rewarded, disabled: !e && "rewarded" === t.type && !Sc.instance.features.rewarded }) })) } }]), e }(qo.Component), uc = n(123), lc = n.n(uc), dc = function(t) { function e() { return d()(this, e), x()(this, g()(e).apply(this, arguments)) } return _()(e, t), f()(e, [{ key: "render", value: function() { var t = this.props, e = t.orientation, n = t.disabled, r = t.onClick; return qo.h("img", { src: lc.a, class: "clickable red-arrow orientation-".concat(e, " ").concat(n ? "disabled" : ""), onClick: n ? null : r }) } }]), e }(qo.Component), pc = [{ name: "Watch Videos", filter: function(t) { return "rewarded" === t.type } }, { name: "Finish Levels", filter: function(t) { return "level" === t.type || "shortcut" === t.type && as(t) } }], fc = function(t) { function e() { var t, n, r; d()(this, e); for (var i = arguments.length, o = new Array(i), a = 0; a < i; a++) o[a] = arguments[a]; return x()(r, (n = r = x()(this, (t = g()(e)).call.apply(t, [this].concat(o))), r.state = { clickedSkin: Sc.instance.playerSkin, page: r.props.page || 0, rewardedReady: Sc.instance.isRewardedReady }, r.onRewardedReady = function(t) { r.setState({ rewardedReady: t }) }, r.onTouchStart = function(t) { r.touch = t.touches[0] }, r.onTouchEnd = function(t) { r.touch = null }, r.onTouchMove = function(t) { var e = r.touch.clientX - t.touches[0].clientX; if (Math.abs(e) > 100) { r.touch = t.touches[0]; var n = r.state.page + (e > 0 ? 1 : -1); n >= 0 && n < pc.length && r.setState({ page: n }) } }, n)) } return _()(e, t), f()(e, [{ key: "componentDidMount", value: function() { Sc.instance.eventEmitter.addListener("rewardedReady", this.onRewardedReady) } }, { key: "componentWillUnmount", value: function() { Sc.instance.eventEmitter.removeListener("rewardedReady", this.onRewardedReady) } }, { key: "onSelectSkin", value: function(t) { var e = this; as(t) ? Sc.instance.playerSkin === t ? Sc.instance.gotoNextLevel() : Sc.instance.playerSkin = t : t.condition && t.condition.ad && Sc.instance.eventEmitter.emit("requestRewarded", { skin: t, onComplete: function() { Sc.instance.eventEmitter.emit("skinUnlocked", t), e.forceUpdate() } }), this.setState({ clickedSkin: t }) } }, { key: "render", value: function() { var t = this, e = this.state, n = e.clickedSkin, r = e.page, i = e.rewardedReady, o = pc.length; return qo.h("div", { class: "shop clickable", onTouchStart: this.onTouchStart, onTouchEnd: this.onTouchEnd, onTouchMove: this.onTouchMove }, qo.h("button", { class: "back-button button", onClick: function(t) { return Sc.instance.gotoTitle() } }), qo.h("span", { class: "shop-progress" }, "LEVEL ", Sc.instance.level + 1, " / ", Sc.instance.fakeMaxLevel), qo.h("div", { class: "shop-content" }, qo.h("div", { class: "shop-category-name" }, qo.h(dc, { orientation: "left", disabled: r <= 0, onClick: function() { return t.setState({ page: r - 1 }) } }), " ", qo.h("span", null, pc[r].name), " ", qo.h(dc, { orientation: "right", disabled: r >= o - 1, onClick: function() { return t.setState({ page: r + 1 }) } })), qo.h("div", { class: "clicked-skin-info" }, n.description), qo.h("div", { class: "skins-lists-container", style: { left: "-".concat(100 * r, "%"), width: "".concat(100 * o, "%") } }, pc.map(function(e) { return qo.h(cc, { width: "".concat(1 / o * 100, "%"), skins: hs.filter(e.filter), onSelectSkin: function(e) { return t.onSelectSkin(e) }, rewardedReady: i }) })))) } }]), e }(qo.Component), yc = function(t) { function e() { var t, n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; return d()(this, e), (t = x()(this, g()(e).call(this))).uiComponent = fc, t.sceneName = "shop", t.onResize = function() { t.bg.width = 100, t.bg.height = 1, t.stickman.x = Sc.instance.width / Sc.instance.height / 2, t.stickman.y = .2, t.spinningBg.x = t.stickman.x, t.spinningBg.y = t.stickman.y }, t.onChangeSkin = function(e) { t.stickman && t.stickman.destroy(), t.stickman = new Aa(Sc.instance.playerSkin), t.stickman.dance(), t.stickman.position.y = .5, t.stickman.position.x = Sc.instance.width / Sc.instance.height / 2, t.stickman.scale.set(3 * t.stickman.scale.x), t.addChild(t.stickman), t.onResize() }, t.step = function(e) { t.spinningBg.rotation += e }, t.bg = new ti(Sc.instance.resources.background_1.texture), t.spinningBg = new ti(Sc.instance.resources.shop_background.texture), t.uiInitialState = { page: n }, t.spinningBg.anchor.set(.5, .5), t.spinningBg.scale.set(2 * Sc.SCALE), t.addChild(t.bg), t.addChild(t.spinningBg), t.onChangeSkin(Sc.instance.playerSkin), Sc.instance.eventEmitter.addListener("changeSkin", t.onChangeSkin), t } return _()(e, t), f()(e, [{ key: "destroy", value: function() { Zo()(g()(e.prototype), "destroy", this).call(this), Sc.instance.eventEmitter.removeListener("changeSkin", this.onChangeSkin), this.stickman = null } }]), e }(ie), xc = function(t) { function e(t, n) { var r; return d()(this, e), (r = x()(this, g()(e).call(this))).uiComponent = null, r.sceneName = "empty", r.onResize = function() { r.bg.width = 100, r.bg.height = 1 }, r.sceneName = t, r.uiComponent = n, r.bg = new ti(Sc.instance.resources.background_1.texture), r.addChild(r.bg), r.onResize(), r } return _()(e, t), f()(e, [{ key: "destroy", value: function() { Zo()(g()(e.prototype), "destroy", this).call(this), this.bg = null } }]), e }(ie), mc = n(124), gc = n.n(mc), wc = function(t) { function e() { return d()(this, e), x()(this, g()(e).apply(this, arguments)) } return _()(e, t), f()(e, [{ key: "render", value: function() { var t = this.props, e = t.id, n = t.name, r = t.photo, i = t.rank, o = t.score, a = t.isFriend, s = t.isMe; return qo.h("div", { class: "leaderboard-row ".concat(s ? "current" : "") }, qo.h("div", { class: "leaderboard-col rank" }, "#", i), qo.h("div", { class: "leaderboard-col photo" }, qo.h("img", { src: r })), qo.h("div", { class: "leaderboard-col name" }, n), qo.h("div", { class: "leaderboard-col score" }, o), qo.h("div", { class: "leaderboard-col share" }, a ? qo.h(us, { onClick: function() { Sc.instance.eventEmitter.emit("playWith", e) } }, "Challenge") : null)) } }]), e }(qo.Component), vc = 10, bc = function(t) { function e() { var t, n, r; d()(this, e); for (var i = arguments.length, o = new Array(i), a = 0; a < i; a++) o[a] = arguments[a]; return x()(r, (n = r = x()(this, (t = g()(e)).call.apply(t, [this].concat(o))), r.state = { type: "world", leaderboard: null, page: 0, numPages: 0 }, r.update = function(t) { r.setState({ leaderboard: t, page: Math.floor(t.offset / vc), numPages: Math.ceil(t.total / vc) }) }, n)) } return _()(e, t), f()(e, [{ key: "componentDidMount", value: function() { Sc.instance.eventEmitter.addListener("leaderboard", this.update), this.requestLeaderboard(this.state.type) } }, { key: "componentWillUnmount", value: function() { Sc.instance.eventEmitter.removeListener("leaderboard", this.update) } }, { key: "requestLeaderboard", value: function(t) { var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "auto", n = "auto" === e; Sc.instance.eventEmitter.emit("requestLeaderboard", { count: vc, offset: n ? "auto" : e * vc, type: t }), this.setState({ leaderboard: null, type: t, page: n ? 0 : e }) } }, { key: "render", value: function() { var t = this, e = this.state, n = e.leaderboard, r = e.page, i = e.numPages, o = e.type; return qo.h("div", { class: "leaderboard" }, qo.h("button", { class: "back-button button", onClick: function() { return Sc.instance.gotoTitle() } }), qo.h("h2", null, "Leaderboard"), n ? qo.h("div", null, qo.h("div", { class: "center" }, qo.h("button", { class: "leaderboard-button button", onClick: function() { return t.requestLeaderboard("world") } }, "World"), qo.h("button", { class: "leaderboard-button button", onClick: function() { return t.requestLeaderboard("friends") } }, "Friends"), qo.h(us, { onClick: function() { return Sc.instance.eventEmitter.emit("share") } })), qo.h("h3", null, o), qo.h("div", { class: "leaderboard-entries" }, n.entries.map(function(t) { return qo.h(wc, gc()({}, t, { isMe: t.id === Sc.instance.playerInfos.id, isFriend: Sc.instance.features.share && "friends" === o && t.id !== Sc.instance.playerInfos.id })) })), qo.h("div", { class: "pagination" }, qo.h(dc, { orientation: "left", disabled: r <= 0, onClick: function() { return t.requestLeaderboard(o, r - 1) } }), qo.h("span", { class: "page-number" }, r + 1, " / ", i), qo.h(dc, { orientation: "right", disabled: r >= i - 1, onClick: function() { return t.requestLeaderboard(o, r + 1) } }))) : qo.h($h, null)) } }]), e }(qo.Component); function _c(t, e, n, r) { C.RESOLUTION = window.devicePixelRatio || 1; var i = new Sc(n ? function() { return i.setActiveScene(new ds) } : function() { return setTimeout(function() { return i.setActiveScene(new ds) }, 0) }, t, e, r); return i } var Sc = function(t) { function e(t, n, i, o) { var a; d()(this, e); var s = o && o.width || window.innerWidth, A = o && o.height || window.innerHeight; (a = x()(this, g()(e).call(this, { width: s, height: A, antialias: !0 }))).level = 0, a.resources = null, a.scene = null, a.lastFrame = 0, a.gravity = new ta(0, 1), a.eventEmitter = new r.EventEmitter, a.paused = !1, a._playerSkin = hs[0], a.playerInfos = {}, a.features = {}, a.isRewardedReady = !1, a.interstitialReady = !1, a.lastInterstitialTime = 0, a.playedAtLeastOnce = !1, a.onResize = function() { var t = a._optionsResize ? a._optionsResize() : null, e = t ? t.width : window.innerWidth, n = t ? t.height : window.innerHeight; a.width = e, a.height = n, a.renderer.resize(e, n), a.scene && a.scene.onResize && (a.scene.scale.set(n), a.scene.onResize()) }, a.setActiveScene = function(t) { a.scene && (a.stage.removeChild(a.scene), a.scene.destroy()), a.scene = t, a.scene.scale.set(a.height), a.stage.addChild(t), a.eventEmitter.emit("sceneChange", { component: t.uiComponent, name: t.sceneName, initialState: t.uiInitialState }) }, a.step = function() { var t = (new Date).getTime(); a.scene && a.scene.step && a.scene.step(Math.min((t - a.lastFrame) / 1e3, .025)), a.lastFrame = t }, a.gotoLevel = function(t) { var e = Ac(t), n = new Ms(t, e); a.setActiveScene(n) }, a.gotoVictory = function(t) { a.level++, a.playedAtLeastOnce = !0; var e = new Vh(t); a.setActiveScene(e) }, a.gotoTitle = function() { a.setActiveScene(new ds) }, a.gotoShop = function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; a.setActiveScene(new yc(t)) }, a.gotoLeaderboard = function() { a.setActiveScene(new xc("leaderboard", bc)) }, a.pause = function() { a.paused || (a.ticker.stop(), a.paused = !0, a.eventEmitter.emit("pause")) }, a.resume = function() { a.paused && (a.ticker.start(), a.paused = !1, a.eventEmitter.emit("resume")) }, a.width = s, a.height = A, o && o.onResize && (a._optionsResize = o.onResize), n && (a.playerInfos = n, n.skin && (a._playerSkin = hs.find(function(t) { return t.id === n.skin }) || hs[0]), a.level = parseInt(a.playerInfos.level, 10) || 0), i && (a.features = i), e.instance = v()(a), window.addEventListener("resize", a.onResize); var c = {}; return Object.keys(Qh).forEach(function(t) { "object" === u()(Qh[t]) ? c[t] = Qh[t] : a.loader.add(t, Qh[t]) }), document.body.appendChild(a.view), qo.render(qo.h(qh, null), document.body), a.eventEmitter.emit("sceneChange", { component: tc, name: "loading" }), a.loader.load(function(e, n) { a.resources = h()({}, n, {}, c), a.lastFrame = (new Date).getTime(), a.ticker.add(a.step), t() }), a.eventEmitter.addListener("rewardedReady", function(t) { a.isRewardedReady = t }), a.eventEmitter.addListener("interstitialReady", function(t) { a.interstitialReady = t }), a } return _()(e, t), f()(e, [{ key: "gotoNextLevel", value: function() { var t = this; if (this.interstitialReady && Date.now() - this.lastInterstitialTime > 0) return this.interstitialReady = !1, this.eventEmitter.emit("requestInterstitial"), void this.eventEmitter.once("intersitialWatched", function(e) { t.lastInterstitialTime = Date.now(), t.gotoNextLevel() }); this.gotoLevel(this.level) } }, { key: "fakeMaxLevel", get: function() { return 5 * Math.floor((this.level + 1) / 5 + 1) } }, { key: "playerSkin", get: function() { return this._playerSkin }, set: function(t) { t !== this._playerSkin && (this._playerSkin = t, this.eventEmitter.emit("changeSkin", t)) } }]), e }(Ti); function Ec(t, e, n) { window.FB && window.FB.AppEvents.logEvent(t, e, n) } function Cc(t) { var e = t.mode, n = t.score, r = t.status, i = t.level, o = t.completion, a = t.time, s = t.attempt; Ec("end game", 1, { mode: e, score: n, status: r, level: i, completion: o, time: a / 1e3 }), Ec("game attempt", s, { mode: e, level: i }), Ec("game reached", 1, { mode: e, level: i }), Ec("game time", a / 1e3, { mode: e, level: i }) } Sc.instance = null, Sc.SCALE = 5e-4, Sc.AIR_FRICTION = 0; var Tc = null; function kc(t) { var e = t.ad_type, n = t.success, r = t.location; Ec("shown ".concat(e), 1, { success: n, location: r }) } function Ic(t) { var e = t.ad_type, n = t.error; Ec("failed displaying ".concat(e), 1, { error: n }) } function Dc(t) { try { return JSON.parse(localStorage.getItem(t)) } catch (t) { return console.error(t), null } } function Pc(t, e) { localStorage.setItem(t, JSON.stringify(e)) } function Rc() { var t = {}; if (t.level = Dc("STICKMANHOOK_currentLevel"), t.skin = Dc("STICKMANHOOK_currentSkin"), t.unlockedSkins = Dc("STICKMANHOOK_unlockedSkins"), !t.level) { var e = Dc("Stickman_Hook_NormalCurrentLevel"); e && e.data && e.data.length && (t.level = e.data[0].value) } if (!t.unlockedSkins) { var n = { burger: "CHAR_Burger", cactus: "CHAR_Cactus", unicorn: "CHAR_Unicorn", ninja: "CHAR_Ninja", robot: "CHAR_RobotMan", dragon: "CHAR_Dragon", hotdog: "CHAR_HotDog", lemon: "CHAR_LemonMan", tiki: "CHAR_TikiMan", plant: "CHAR_Plant" }; t.unlockedSkins = Object.keys(n).map(function(t) { var e = Dc("Stickman_Hook_ACHIEVEMENTS_".concat(t)); if (e && e.data && e.data.length && e.data[0].user_value) return n[t] }).filter(function(t) { return t }) } return t } function Bc(t) { Pc("STICKMANHOOK_currentLevel", t) } function Mc(t) { Pc("STICKMANHOOK_currentSkin", t) } var Oc = { mobile: { w: 320, h: 50 }, desktop: { w: 728, h: 90 } }; s()(o.a.mark(function t() { var e, n, r, i, a, A, h, c, u; return o.a.wrap(function(t) { for (;;) switch (t.prev = t.next) { case 0: return e = !1, PokiSDK.setDebug("localhost" === window.location.hostname), t.prev = 2, t.next = 5, PokiSDK.init(); case 5: t.next = 11; break; case 7: t.next = 11; break; case 11: PokiSDK.gameLoadingStart(), n = !1, r = function(t) { n && (t.preventDefault(), t.stopImmediatePropagation()) }, document.addEventListener("keydown", r), document.addEventListener("keyup", r), i = { rewarded: !e, interstitial: !e, share: !1, leaderboard: !1 }, a = Rc(), A = { level: a.level || 0, skin: a.skin || null, unlockedSkins: Array.isArray(a.unlockedSkins) ? a.unlockedSkins : [] }, PokiSDK.gameLoadingFinished(), h = _c(A, i, !1), c = null, (u = document.createElement("div")).style.position = "absolute", u.style.bottom = 0, u.style.left = 0, u.style.right = 0, document.body.appendChild(u), h.eventEmitter.addListener("sceneChange", function(t) { var e; e = t.name, Tc && Ec("close menu", 1, { name: Tc.name, time: (Date.now() - Tc.openTime) / 1e3 }), Tc = { name: e, openTime: Date.now() }, Ec("open menu", 1, { name: e }), "victory" !== t.name && c && (PokiSDK.destroyAd(c), c.remove(), c = null, document.getElementsByClassName("ui")[0].style.bottom = "0px") }), h.eventEmitter.addListener("levelStarted", function(t) { var e, n, r, i, o, a; n = (e = t).mode, r = e.level, i = e.skin, o = e.attempt, a = e.retry, Ec("start game", 1, { mode: n, level: r, attempt: o, "skin name": i.name, retry: a }), PokiSDK.gameplayStart() }), h.eventEmitter.addListener("levelFailed", function(t) { Cc(t), PokiSDK.gameplayStop() }), h.eventEmitter.addListener("levelComplete", function() { var t = s()(o.a.mark(function t(e) { var n; return o.a.wrap(function(t) { for (;;) switch (t.prev = t.next) { case 0: Cc(e), PokiSDK.gameplayStop(), PokiSDK.happyTime(.5), Bc(e.level), n = window.innerWidth < 768 ? Oc.mobile : Oc.desktop, (c = document.createElement("div")).style.width = "".concat(n.w, "px"), c.style.height = "".concat(n.h, "px"), c.style.margin = "auto", u.appendChild(c), PokiSDK.displayAd(c, "".concat(n.w, "x").concat(n.h)), document.getElementsByClassName("ui")[0].style.bottom = "".concat(n.h, "px"); case 13: case "end": return t.stop() } }, t) })); return function(e) { return t.apply(this, arguments) } }()), h.eventEmitter.addListener("levelAbandon", function(t) { PokiSDK.gameplayStop() }), i.rewarded && Sc.instance.eventEmitter.emit("rewardedReady", !0), i.interstitial && Sc.instance.eventEmitter.emit("interstitialReady", !0), h.eventEmitter.addListener("requestRewarded", function(t) { var e, r, o, a = t.skin, s = t.onComplete; i.rewarded && (r = (e = { ad_type: "REWARDED", location: "shop" }).ad_type, o = e.location, Ec("print ".concat(r), 1, { location: o }), n = !0, PokiSDK.rewardedBreak().then(function(t) { t && (Sc.instance.playerSkin = a, A.unlockedSkins.push(a.id), Pc("STICKMANHOOK_unlockedSkins", A.unlockedSkins)), s && s(), kc({ ad_type: "REWARDED", location: "shop", success: !1 }), n = !1 }).catch(function(t) { console.error("error watching rewarded:", t), Ic({ ad_type: "REWARDED", error: t.code }), n = !1 })) }), h.eventEmitter.addListener("requestInterstitial", function() { i.interstitial && (n = !0, PokiSDK.commercialBreak().then(function() { kc({ ad_type: "INTERSTITIAL", location: "menu", success: !1 }), n = !1, h.eventEmitter.emit("intersitialWatched", !0), h.eventEmitter.emit("interstitialReady", !0) }).catch(function(t) { console.error("error watching interstitial:", t), Ic({ ad_type: "INTERSTITIAL", error: t.code }), n = !1, h.eventEmitter.emit("intersitialWatched", !1), h.eventEmitter.emit("interstitialReady", !0) })) }), h.eventEmitter.addListener("changeSkin", function(t) { Mc(t.id) }), h.eventEmitter.addListener("skinUnlocked", function() { var t = s()(o.a.mark(function t(e) { return o.a.wrap(function(t) { for (;;) switch (t.prev = t.next) { case 0: PokiSDK.happyTime(1); case 1: case "end": return t.stop() } }, t) })); return function(e) { return t.apply(this, arguments) } }()); case 39: case "end": return t.stop() } }, t, null, [ [2, 7] ]) }))().catch(function(t) { return console.error(t) }) }]);