(()=>{ var e, t, n, i, r = { 5: (e,t,n)=>{ var i, r, o; !function(n, a) { if (n) { var s = {} , d = n.TraceKit , c = [].slice , l = "?" , A = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/; s.noConflict = function() { return n.TraceKit = d, s } , s.wrap = function(e) { return function() { try { return e.apply(this, arguments) } catch (e) { throw s.report(e), e } } } , s.report = function() { var e, t, i, r, o = [], a = null, d = null; function c(e, t, n) { var i = null; if (!t || s.collectWindowErrors) { for (var r in o) if (u(o, r)) try { o[r](e, t, n) } catch (e) { i = e } if (i) throw i } } function l(t, n, i, r, o) { if (d) s.computeStackTrace.augmentStackTraceWithInitialElement(d, n, i, t), h(); else if (o) c(s.computeStackTrace(o), !0, o); else { var a, l = { url: n, line: i, column: r }, u = t; if ("[object String]" === {}.toString.call(t)) { var p = t.match(A); p && (a = p[1], u = p[2]) } l.func = s.computeStackTrace.guessFunctionName(l.url, l.line), l.context = s.computeStackTrace.gatherContext(l.url, l.line), c({ name: a, message: u, mode: "onerror", stack: [l] }, !0, null) } return !!e && e.apply(this, arguments) } function p(e) { c(s.computeStackTrace(e.reason), !0, e.reason) } function h() { var e = d , t = a; d = null, a = null, c(e, !1, t) } function m(e) { if (d) { if (a === e) return; h() } var t = s.computeStackTrace(e); throw d = t, a = e, setTimeout((function() { a === e && h() } ), t.incomplete ? 2e3 : 0), e } return m.subscribe = function(a) { !function() { if (!0 === t) return; e = n.onerror, n.onerror = l, t = !0 }(), function() { if (!0 === r) return; i = n.onunhandledrejection, n.onunhandledrejection = p, r = !0 }(), o.push(a) } , m.unsubscribe = function(a) { for (var s = o.length - 1; s >= 0; --s) o[s] === a && o.splice(s, 1); 0 === o.length && (t && (n.onerror = e, t = !1), r && (n.onunhandledrejection = i, r = !1)) } , m }(), s.computeStackTrace = function() { var e = !1 , t = {}; function i(e) { if ("string" != typeof e) return []; if (!u(t, e)) { var i = "" , r = ""; try { r = n.document.domain } catch (e) {} var o = /(.*)\:\/\/([^:\/]+)([:\d]*)\/{0,1}([\s\S]*)/.exec(e); o && o[2] === r && (i = function(e) { if (!s.remoteFetching) return ""; try { var t = function() { try { return new n.XMLHttpRequest } catch (e) { return new n.ActiveXObject("Microsoft.XMLHTTP") } }(); return t.open("GET", e, !1), t.send(""), t.responseText } catch (e) { return "" } }(e)), t[e] = i ? i.split("\n") : [] } return t[e] } function r(e, t) { var n, r = /function ([^(]*)\(([^)]*)\)/, o = /['"]?([0-9A-Za-z$_]+)['"]?\s*[:=]\s*(function|eval|new Function)/, a = "", s = i(e); if (!s.length) return l; for (var d = 0; d < 10; ++d) if (!p(a = s[t - d] + a)) { if (n = o.exec(a)) return n[1]; if (n = r.exec(a)) return n[1] } return l } function o(e, t) { var n = i(e); if (!n.length) return null; var r = [] , o = Math.floor(s.linesOfContext / 2) , a = o + s.linesOfContext % 2 , d = Math.max(0, t - o - 1) , c = Math.min(n.length, t + a - 1); t -= 1; for (var l = d; l < c; ++l) p(n[l]) || r.push(n[l]); return r.length > 0 ? r : null } function a(e) { return e.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g, "\\$&") } function d(e) { return a(e).replace("<", "(?:<|<)").replace(">", "(?:>|>)").replace("&", "(?:&|&)").replace('"', '(?:"|")').replace(/\s+/g, "\\s+") } function c(e, t) { for (var n, r, o = 0, a = t.length; o < a; ++o) if ((n = i(t[o])).length && (n = n.join("\n"), r = e.exec(n))) return { url: t[o], line: n.substring(0, r.index).split("\n").length, column: r.index - n.lastIndexOf("\n", r.index) - 1 }; return null } function A(e, t, n) { var r, o = i(t), s = new RegExp("\\b" + a(e) + "\\b"); return n -= 1, o && o.length > n && (r = s.exec(o[n])) ? r.index : null } function h(e) { if (!p(n && n.document)) { for (var t, i, r, o, s = [n.location.href], l = n.document.getElementsByTagName("script"), A = "" + e, u = 0; u < l.length; ++u) { var h = l[u]; h.src && s.push(h.src) } if (r = /^function(?:\s+([\w$]+))?\s*\(([\w\s,]*)\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/.exec(A)) { var m = r[1] ? "\\s+" + r[1] : "" , g = r[2].split(",").join("\\s*,\\s*"); t = a(r[3]).replace(/;$/, ";?"), i = new RegExp("function" + m + "\\s*\\(\\s*" + g + "\\s*\\)\\s*{\\s*" + t + "\\s*}") } else i = new RegExp(a(A).replace(/\s+/g, "\\s+")); if (o = c(i, s)) return o; if (r = /^function on([\w$]+)\s*\(event\)\s*\{\s*(\S[\s\S]*\S)\s*\}\s*$/.exec(A)) { var f = r[1]; if (t = d(r[2]), o = c(i = new RegExp("on" + f + "=[\\'\"]\\s*" + t + "\\s*[\\'\"]","i"), s[0])) return o; if (o = c(i = new RegExp(t), s)) return o } return null } } function m(e) { if (!e.stack) return null; for (var t, n, i, a = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, s = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i, d = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i, c = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i, u = /\((\S*)(?::(\d+))(?::(\d+))\)/, h = e.stack.split("\n"), m = [], g = /^(.*) is undefined$/.exec(e.message), f = 0, v = h.length; f < v; ++f) { if (n = a.exec(h[f])) { var b = n[2] && 0 === n[2].indexOf("native"); n[2] && 0 === n[2].indexOf("eval") && (t = u.exec(n[2])) && (n[2] = t[1], n[3] = t[2], n[4] = t[3]), i = { url: b ? null : n[2], func: n[1] || l, args: b ? [n[2]] : [], line: n[3] ? +n[3] : null, column: n[4] ? +n[4] : null } } else if (n = d.exec(h[f])) i = { url: n[2], func: n[1] || l, args: [], line: +n[3], column: n[4] ? +n[4] : null }; else { if (!(n = s.exec(h[f]))) continue; n[3] && n[3].indexOf(" > eval") > -1 && (t = c.exec(n[3])) ? (n[3] = t[1], n[4] = t[2], n[5] = null) : 0 !== f || n[5] || p(e.columnNumber) || (m[0].column = e.columnNumber + 1), i = { url: n[3], func: n[1] || l, args: n[2] ? n[2].split(",") : [], line: n[4] ? +n[4] : null, column: n[5] ? +n[5] : null } } !i.func && i.line && (i.func = r(i.url, i.line)), i.context = i.line ? o(i.url, i.line) : null, m.push(i) } return m.length ? (m[0] && m[0].line && !m[0].column && g && (m[0].column = A(g[1], m[0].url, m[0].line)), { mode: "stack", name: e.name, message: e.message, stack: m }) : null } function g(e, t, n, i) { var a = { url: t, line: n }; if (a.url && a.line) { e.incomplete = !1, a.func || (a.func = r(a.url, a.line)), a.context || (a.context = o(a.url, a.line)); var s = / '([^']+)' /.exec(i); if (s && (a.column = A(s[1], a.url, a.line)), e.stack.length > 0 && e.stack[0].url === a.url) { if (e.stack[0].line === a.line) return !1; if (!e.stack[0].line && e.stack[0].func === a.func) return e.stack[0].line = a.line, e.stack[0].context = a.context, !1 } return e.stack.unshift(a), e.partial = !0, !0 } return e.incomplete = !0, !1 } function f(e, t) { for (var n, i, o, a = /function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i, d = [], c = {}, u = !1, p = f.caller; p && !u; p = p.caller) if (p !== v && p !== s.report) { if (i = { url: null, func: l, args: [], line: null, column: null }, p.name ? i.func = p.name : (n = a.exec(p.toString())) && (i.func = n[1]), void 0 === i.func) try { i.func = n.input.substring(0, n.input.indexOf("{")) } catch (e) {} if (o = h(p)) { i.url = o.url, i.line = o.line, i.func === l && (i.func = r(i.url, i.line)); var m = / '([^']+)' /.exec(e.message || e.description); m && (i.column = A(m[1], o.url, o.line)) } c["" + p] ? u = !0 : c["" + p] = !0, d.push(i) } t && d.splice(0, t); var b = { mode: "callers", name: e.name, message: e.message, stack: d }; return g(b, e.sourceURL || e.fileName, e.line || e.lineNumber, e.message || e.description), b } function v(t, a) { var s = null; a = null == a ? 0 : +a; try { if (s = function(e) { var t = e.stacktrace; if (t) { for (var n, i = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i, a = / line (\d+), column (\d+)\s*(?:in (?:]+)>|([^\)]+))\((.*)\))? in (.*):\s*$/i, s = t.split("\n"), d = [], c = 0; c < s.length; c += 2) { var l = null; if ((n = i.exec(s[c])) ? l = { url: n[2], line: +n[1], column: null, func: n[3], args: [] } : (n = a.exec(s[c])) && (l = { url: n[6], line: +n[1], column: +n[2], func: n[3] || n[4], args: n[5] ? n[5].split(",") : [] }), l) { if (!l.func && l.line && (l.func = r(l.url, l.line)), l.line) try { l.context = o(l.url, l.line) } catch (e) {} l.context || (l.context = [s[c + 1]]), d.push(l) } } return d.length ? { mode: "stacktrace", name: e.name, message: e.message, stack: d } : null } }(t), s) return s } catch (t) { e } try { if (s = m(t)) return s } catch (t) { e } try { if (s = function(e) { var t = e.message.split("\n"); if (t.length < 4) return null; var a, s = /^\s*Line (\d+) of linked script ((?:file|https?|blob)\S+)(?:: in function (\S+))?\s*$/i, l = /^\s*Line (\d+) of inline#(\d+) script in ((?:file|https?|blob)\S+)(?:: in function (\S+))?\s*$/i, A = /^\s*Line (\d+) of function script\s*$/i, p = [], h = n && n.document && n.document.getElementsByTagName("script"), m = []; for (var g in h) u(h, g) && !h[g].src && m.push(h[g]); for (var f = 2; f < t.length; f += 2) { var v = null; if (a = s.exec(t[f])) v = { url: a[2], func: a[3], args: [], line: +a[1], column: null }; else if (a = l.exec(t[f])) { v = { url: a[3], func: a[4], args: [], line: +a[1], column: null }; var b = +a[1] , y = m[a[2] - 1]; if (y) { var k = i(v.url); if (k) { var w = (k = k.join("\n")).indexOf(y.innerText); w >= 0 && (v.line = b + k.substring(0, w).split("\n").length) } } } else if (a = A.exec(t[f])) { var x = n.location.href.replace(/#.*$/, "") , E = c(new RegExp(d(t[f + 1])), [x]); v = { url: x, func: "", args: [], line: E ? E.line : a[1], column: null } } if (v) { v.func || (v.func = r(v.url, v.line)); var I = o(v.url, v.line) , S = I ? I[Math.floor(I.length / 2)] : null; I && S.replace(/^\s*/, "") === t[f + 1].replace(/^\s*/, "") ? v.context = I : v.context = [t[f + 1]], p.push(v) } } return p.length ? { mode: "multiline", name: e.name, message: t[0], stack: p } : null }(t), s) return s } catch (t) { e } try { if (s = f(t, a + 1)) return s } catch (t) { e } return { name: t.name, message: t.message, mode: "failed" } } return v.augmentStackTraceWithInitialElement = g, v.computeStackTraceFromStackProp = m, v.guessFunctionName = r, v.gatherContext = o, v.ofCaller = function(e) { e = 1 + (null == e ? 0 : +e); try { throw new Error } catch (t) { return v(t, e + 1) } } , v.getSource = i, v }(), s.extendToAsynchronousCallbacks = function() { var e = function(e) { var t = n[e]; n[e] = function() { var e = c.call(arguments) , n = e[0]; return "function" == typeof n && (e[0] = s.wrap(n)), t.apply ? t.apply(this, e) : t(e[0], e[1]) } }; e("setTimeout"), e("setInterval") } , s.remoteFetching || (s.remoteFetching = !0), s.collectWindowErrors || (s.collectWindowErrors = !0), (!s.linesOfContext || s.linesOfContext < 1) && (s.linesOfContext = 11), r = [], void 0 === (o = "function" == typeof (i = s) ? i.apply(t, r) : i) || (e.exports = o) } function u(e, t) { return Object.prototype.hasOwnProperty.call(e, t) } function p(e) { return void 0 === e } }("undefined" != typeof window ? window : n.g) } , 583: (e,t,n)=>{ "use strict"; n.d(t, { Z: ()=>i }); const i = { ready: "pokiAppReady", adblocked: "pokiAppAdblocked", ads: { completed: "pokiAdsCompleted", error: "pokiAdsError", impression: "pokiAdsImpression", durationChange: "pokiAdsDurationChange", limit: "pokiAdsLimit", ready: "pokiAdsReady", requested: "pokiAdsRequested", prebidRequested: "pokiAdsPrebidRequested", skipped: "pokiAdsSkipped", started: "pokiAdsStarted", stopped: "pokiAdsStopped", busy: "pokiAdsBusy", position: { preroll: "PP", midroll: "PM", rewarded: "PR", display: "DP" }, video: { clicked: "pokiVideoAdsClicked", firstQuartile: "pokiVideoAdsFirstQuartile", midPoint: "pokiVideoAdsMidPoint", thirdQuartile: "pokiVideoAdsThirdQuartile", error: "pokiVideoAdsError", loaderError: "pokiVideoAdsLoaderError", paused: "pokiVideoAdsPauseTriggered", resumed: "pokiVideoAdsResumedTriggered", progress: "pokiVideoAdsProgress", buffering: "pokiVideoAdsBuffering" } }, info: { messages: { timeLimit: "The ad-request was not processed, because of a time constraint", prerollLimit: "The ad-request was cancelled, because we're not allowed to show a preroll", disabled: "The ad-request was cancelled, because we've disabled this format for this specific configuration" } }, message: { event: "pokiMessageEvent", sdkDetails: "pokiMessageSdkDetails", setPokiURLParams: "pokiMessageSetPokiURLParams", sendGameScreenshot: "pokiMessageSendScreenshot", sendCommand: "pokiMessageSendCommand" }, tracking: { custom: "pokiTrackingCustom", debugTrueInProduction: "pokiMessageDebugTrueProduction", screen: { gameplayStart: "pokiTrackingScreenGameplayStart", gameplayStop: "pokiTrackingScreenGameplayStop", gameLoadingFinished: "pokiTrackingScreenGameLoadingFinished", commercialBreak: "pokiTrackingScreenCommercialBreak", rewardedBreak: "pokiTrackingScreenRewardedBreak", firstRound: "pokiTrackingScreenFirstRound", roundStart: "pokiTrackingScreenRoundStart", roundEnd: "pokiTrackingScreenRoundEnd", displayAd: "pokiTrackingScreenDisplayAdRequest", destroyAd: "pokiTrackingScreenDisplayAdDestroy", playerActive: "pokiTrackingScreenPlayerActive" }, playtest: { showModal: "pokiTrackingPlaytestShowModal", accepted: "pokiTrackingPlaytestAccepted", rejected: "pokiTrackingPlaytestRejected", noCanvas: "pokiTrackingPlaytestNoCanvas", starting: "pokiTrackingPlaytestStarting", connected: "pokiTrackingPlaytestConnected" }, sdk: { status: { initialized: "pokiTrackingSdkStatusInitialized", failed: "pokiTrackingSdkStatusFailed" } }, ads: { status: { busy: "pokiTrackingAdsStatusBusy", completed: "pokiTrackingAdsStatusCompleted", error: "pokiTrackingAdsStatusError", displayError: "pokiTrackingAdsStatusDisplayError", impression: "pokiTrackingAdsStatusImpression", limit: "pokiTrackingAdsStatusLimit", ready: "pokiTrackingAdsStatusReady", requested: "pokiTrackingAdsStatusRequested", prebidRequested: "pokiTrackingAdsStatusPrebidRequested", skipped: "pokiTrackingAdsStatusSkipped", started: "pokiTrackingAdsStatusStarted", buffering: "pokiTrackingAdsStatusBuffering" }, video: { clicked: "pokiTrackingAdsVideoClicked", error: "pokiTrackingAdsVideoError", loaderError: "pokiTrackingAdsVideoLoaderError", progress: "pokiTrackingAdsVideoProgress", paused: "pokiTrackingAdsVideoPaused", resumed: "pokiTrackingAdsVideoResumed" }, display: { requested: "pokiTrackingScreenDisplayAdRequested", impression: "pokiTrackingScreenDisplayAdImpression" } } } } } , 84: (e,t,n)=>{ "use strict"; n.d(t, { Z: ()=>a }); var i = n(583) , r = n(992) , o = n(855); const a = function() { function e() {} return e.sendMessage = function(e, t) { var n = window.parent; if (!(0, r.Z)(e, i.Z.message)) { var a = Object.keys(i.Z.message).map((function(e) { return "poki.message." + e } )); throw new TypeError("Argument 'type' must be one of " + a.join(", ")) } var s = t || {}; o.Z.gameID && o.Z.versionID && (s.pokifordevs = { game_id: o.Z.gameID, game_version_id: o.Z.versionID }), n.postMessage({ type: e, content: s }, "*") } , e }() } , 662: (e,t,n)=>{ "use strict"; n.d(t, { D: ()=>r, M: ()=>o }); var i = ["AT", "BE", "BG", "HR", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "GR", "GB", "HU", "IE", "IT", "LV", "LT", "LU", "MT", "NL", "PL", "PT", "RO", "SK", "SI", "ES", "SE", "IS", "LI", "NO"] , r = "ZZ"; function o(e) { return i.includes(e) } } , 906: (e,t,n)=>{ "use strict"; n.d(t, { Z: ()=>i }); const i = function(e, t) { var n; if ("undefined" == typeof window && !t) return ""; e = e.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var i = new RegExp("(?:[\\?&]|^)" + e + "=([^&#]*)").exec(t || (null === (n = null === window || void 0 === window ? void 0 : window.location) || void 0 === n ? void 0 : n.search) || ""); return null === i ? "" : decodeURIComponent(i[1].replace(/\+/g, " ")) } } , 893: (e,t,n)=>{ "use strict"; n.d(t, { Z: ()=>i }); const i = function() { return "undefined" != typeof navigator && /(?:phone|windows\s+phone|ipod|blackberry|(?:android|bb\d+|meego|silk|googlebot) .+? mobile|palm|windows\s+ce|opera\smini|avantgo|mobilesafari|docomo)/i.test(navigator.userAgent) } } , 573: (e,t,n)=>{ "use strict"; n.d(t, { Z: ()=>i }); const i = function() { return "undefined" != typeof navigator && /(?:ipad|playbook|(?:android|bb\d+|meego|silk)(?! .+? mobile))/i.test(navigator.userAgent) } } , 855: (e,t,n)=>{ "use strict"; n.d(t, { w: ()=>c, Z: ()=>l }); var i = n(662) , r = n(906) , o = n(893) , a = n(573) , s = "desktop"; (0, o.Z)() ? s = "mobile" : (0, a.Z)() && (s = "tablet"); var d = { bot: "1" === (0, r.Z)("bot"), categories: (0, r.Z)("categories") || "", device: s, experiment: (0, r.Z)("experiment") || "", forceAd: (0, r.Z)("force_ad") || !1, isPokiIframe: (parseInt((0, r.Z)("site_id"), 10) || 0) > 0, referrer: (0, r.Z)("url_referrer") || "", siteID: parseInt((0, r.Z)("site_id"), 10) || 0, tag: (0, r.Z)("tag") || "", versionID: (0, r.Z)("game_version_id"), debugMode: "true" === (0, r.Z)("pokiDebug"), logMode: "" !== (0, r.Z)("pokiLogging"), playtest: (0, r.Z)("playtest"), ccpaApplies: (0, r.Z)("ccpaApplies"), childDirected: !1, country: ((0, r.Z)("country") || "").toUpperCase(), gameID: (0, r.Z)("game_id"), gdprApplies: (0, i.M)(((0, r.Z)("country") || "").toUpperCase()), nonPersonalized: !1, contentGameID: void 0 } , c = function(e, t) { d[e] = t }; const l = d } , 992: (e,t,n)=>{ "use strict"; n.d(t, { Z: ()=>i }); const i = function(e, t) { var n = !1; return Object.keys(t).forEach((function(i) { t[i] === e && (n = !0) } )), n } } }, o = {}; function a(e) { if (o[e]) return o[e].exports; var t = o[e] = { exports: {} }; return r[e].call(t.exports, t, t.exports, a), t.exports } a.m = r, a.n = e=>{ var t = e && e.__esModule ? ()=>e.default : ()=>e; return a.d(t, { a: t }), t } , t = Object.getPrototypeOf ? e=>Object.getPrototypeOf(e) : e=>e.__proto__, a.t = function(n, i) { if (1 & i && (n = this(n)), 8 & i) return n; if ("object" == typeof n && n) { if (4 & i && n.__esModule) return n; if (16 & i && "function" == typeof n.then) return n } var r = Object.create(null); a.r(r); var o = {}; e = e || [null, t({}), t([]), t(t)]; for (var s = 2 & i && n; "object" == typeof s && !~e.indexOf(s); s = t(s)) Object.getOwnPropertyNames(s).forEach((e=>o[e] = ()=>n[e])); return o.default = ()=>n, a.d(r, o), r } , a.d = (e,t)=>{ for (var n in t) a.o(t, n) && !a.o(e, n) && Object.defineProperty(e, n, { enumerable: !0, get: t[n] }) } , a.f = {}, a.e = e=>Promise.all(Object.keys(a.f).reduce(((t,n)=>(a.f[n](e, t), t)), [])), a.u = e=>e + "-v2.313.0.js", a.g = function() { if ("object" == typeof globalThis) return globalThis; try { return this || new Function("return this")() } catch (e) { if ("object" == typeof window) return window } }(), a.o = (e,t)=>Object.prototype.hasOwnProperty.call(e, t), n = {}, i = "@poki/poki-sdk:", a.l = (e,t,r,o)=>{ if (n[e]) n[e].push(t); else { var s, d; if (void 0 !== r) for (var c = document.getElementsByTagName("script"), l = 0; l < c.length; l++) { var A = c[l]; if (A.getAttribute("src") == e || A.getAttribute("data-webpack") == i + r) { s = A; break } } s || (d = !0, (s = document.createElement("script")).charset = "utf-8", s.timeout = 120, a.nc && s.setAttribute("nonce", a.nc), s.setAttribute("data-webpack", i + r), s.src = e), n[e] = [t]; var u = (t,i)=>{ s.onerror = s.onload = null, clearTimeout(p); var r = n[e]; if (delete n[e], s.parentNode && s.parentNode.removeChild(s), r && r.forEach((e=>e(i))), t) return t(i) } , p = setTimeout(u.bind(null, void 0, { type: "timeout", target: s }), 12e4); s.onerror = u.bind(null, s.onerror), s.onload = u.bind(null, s.onload), d && document.head.appendChild(s) } } , a.r = e=>{ "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) } , (()=>{ var e; a.g.importScripts && (e = a.g.location + ""); var t = a.g.document; if (!e && t && (t.currentScript && (e = t.currentScript.src), !e)) { var n = t.getElementsByTagName("script"); n.length && (e = n[n.length - 1].src) } if (!e) throw new Error("Automatic publicPath is not supported in this browser"); e = e.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"), a.p = e } )(), (()=>{ var e = { 702: 0 }; a.f.j = (t,n)=>{ var i = a.o(e, t) ? e[t] : void 0; if (0 !== i) if (i) n.push(i[2]); else { var r = new Promise(((n,r)=>{ i = e[t] = [n, r] } )); n.push(i[2] = r); var o = a.p + a.u(t) , s = new Error; a.l(o, (n=>{ if (a.o(e, t) && (0 !== (i = e[t]) && (e[t] = void 0), i)) { var r = n && ("load" === n.type ? "missing" : n.type) , o = n && n.target && n.target.src; s.message = "Loading chunk " + t + " failed.\n(" + r + ": " + o + ")", s.name = "ChunkLoadError", s.type = r, s.request = o, i[1](s) } } ), "chunk-" + t, t) } } ; var t = (t,n)=>{ for (var i, r, [o,s,d] = n, c = 0, l = []; c < o.length; c++) r = o[c], a.o(e, r) && e[r] && l.push(e[r][0]), e[r] = 0; for (i in s) a.o(s, i) && (a.m[i] = s[i]); for (d && d(a), t && t(n); l.length; ) l.shift()() } , n = self.webpackChunk_poki_poki_sdk = self.webpackChunk_poki_poki_sdk || []; n.forEach(t.bind(null, 0)), n.push = t.bind(null, n.push.bind(n)) } )(), (()=>{ "use strict"; var e = a(5) , t = a.n(e) , n = a(583); function i(e) { var t = new RegExp("".concat(e, "=([^;]+)(?:;|$)")).exec(document.cookie); return t ? t[1] : "" } function r(e, t, n) { document.cookie = "".concat(e, "=").concat(t, "; path=/; samesite=lax; max-age=").concat(Math.min(n || 15552e3, 15552e3)) } function o() { for (var e = Math.floor(Date.now() / 1e3), t = "", n = 0; n < 4; n++) t = String.fromCharCode(255 & e) + t, e >>= 8; if (window.crypto && crypto.getRandomValues && Uint32Array) { var i = new Uint32Array(12); crypto.getRandomValues(i); for (var r = 0; r < 12; r++) t += String.fromCharCode(255 & i[r]) } else for (var o = 0; o < 12; o++) t += String.fromCharCode(Math.floor(256 * Math.random())); return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "") } function s(e, t) { var n; console.error(e), n = e.name && e.message ? "".concat(e.name, ": ").concat(e.message) : JSON.stringify(e), function(e, t) { if (!navigator.sendBeacon || !navigator.sendBeacon(e, t)) try { var n = "XMLHttpRequest"in window ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP"); n.open("POST", e, !0), n.setRequestHeader("Content-Type", "text/plain"), n.send(t) } catch (e) {} }("https://t.poki.io/l", JSON.stringify({ c: "observer-error", ve: 7, d: [{ k: "where", v: t }, { k: "error", v: n }] })) } window._pokiUserGlobalName = window._pokiUserGlobalName || "user"; var d = "poki_session"; function c(e) { return !(!e || !(e && e.page && e.landing_page && e.previous_page) || !e.tab_id || !e.expire || Date.now() > e.expire || e.expire > Date.now() + 18e5) } function l() { var e = null; c(window[window._pokiSessionGlobalName]) && (e = window[window._pokiSessionGlobalName]); try { var t = JSON.parse(sessionStorage.getItem(d)); c(t) && (!e || t.depth > e.depth) && (e = t) } catch (e) { s(e, "getTabSession") } return e } function A() { var e = l(); return e ? e.tab_id : o() } function u() { var e = 0 , t = l(); t && (e = t.depth); try { var n = JSON.parse(i(d) || null); c(n) && (e = Math.max(e, n.depth)) } catch (e) { s(e, "getSessionDepth") } return e } window._pokiSessionGlobalName = window._pokiSessionGlobalName || "session"; var p = a(84) , h = a(855); const m = function() { function e() {} return e.debug = !1, e.log = !1, e.init = function(t, n) { var i, r, o = window.location.hostname; void 0 === t && ("test" === (null === (r = null === (i = null === window || void 0 === window ? void 0 : window.process) || void 0 === i ? void 0 : i.env) || void 0 === r ? void 0 : r.NODE_ENV) ? (t = !1, void 0 === n && (n = !1)) : "localhost" === o || "127.0.0.1" === o || "[::1]" === o ? (t = !0, void 0 === n && (n = !1)) : (t = !1, void 0 === n && (n = !1))), o.endsWith(".poki-gdn.com") ? (t = !1, n = !1) : "qa-files.poki.com" === o && (t = !0, n = !0), h.Z.debugMode && (t = !0), h.Z.logMode && (n = !0), void 0 === n && (n = t), e.debug = t, e.log = n } , e }(); var g = function(e) { var t = new Array; return Object.keys(e).forEach((function(n) { "object" == typeof e[n] ? t = t.concat(g(e[n])) : t.push(e[n]) } )), t }; const f = g; var v = function() { return v = Object.assign || function(e) { for (var t, n = 1, i = arguments.length; n < i; n++) for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); return e } , v.apply(this, arguments) } , b = function() { function e() {} return e.clearEventListeners = function() { this.listeners = {} } , e.removeEventListener = function(e, t) { if (Object.prototype.hasOwnProperty.call(this.listeners, e)) { var n = this.listeners[e].indexOf(t); -1 !== n && this.listeners[e].splice(n, 1) } } , e.addEventListener = function(e, t, n) { var i = this; if (void 0 === n && (n = !1), n = !!n, Object.prototype.hasOwnProperty.call(this.listeners, e) || (this.listeners[e] = []), n) { var r = function(n) { i.removeEventListener.bind(i)(e, r), t(n) }; this.listeners[e].push(r) } else this.listeners[e].push(t) } , e.dispatchEvent = function(e, t) { void 0 === t && (t = {}), !m.debug || window.process && window.process.env && "test" === window.process.env.NODE_ENV || console.info(e, t); for (var n = Object.keys(this.listeners), i = 0; i < n.length; i++) { var r = n[i]; if (e === r) for (var o = this.listeners[r], a = 0; a < o.length; a++) o[a](v(v({}, this.dataAnnotations), t)) } } , e.setDataAnnotations = function(e) { this.dataAnnotations = v(v({}, this.dataAnnotations), e) } , e.getDataAnnotations = function() { return this.dataAnnotations } , e.clearAnnotations = function() { this.dataAnnotations = {} } , e.listeners = {}, e.dataAnnotations = {}, e }(); const y = b; var k = function() { return k = Object.assign || function(e) { for (var t, n = 1, i = arguments.length; n < i; n++) for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); return e } , k.apply(this, arguments) }; const w = function(e) { var t; if ("undefined" != typeof window && "undefined" != typeof fetch) { var n = y.getDataAnnotations() , i = e.size; (null === (t = e.event) || void 0 === t ? void 0 : t.startsWith("video-")) && (i = "640x360v"); var r = k(k({}, e), { size: i, opportunity_id: e.opportunityId || n.opportunityId, ad_unit_path: e.adUnitPath || n.adUnitPath, p4d_game_id: h.Z.gameID, p4d_version_id: h.Z.versionID, bidder: e.bidder || n.bidder, bid: e.bid || n.bid || 0, error_code: e.errorCode, creative_id: e.creativeId || n.creativeId }); m.debug ? console.log("PokiAdServer Tracking: ", r) : fetch("https://t.poki.io/adserver", { method: "POST", mode: "no-cors", body: JSON.stringify(r) }) } }; var x = a(893) , E = a(573); var I = "MacIntel" === window.navigator.platform && void 0 !== window.navigator.standalone && navigator.maxTouchPoints > 1 , S = function(e, t, n, i) { return new (n || (n = Promise))((function(r, o) { function a(e) { try { d(i.next(e)) } catch (e) { o(e) } } function s(e) { try { d(i.throw(e)) } catch (e) { o(e) } } function d(e) { var t; e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) { e(t) } ))).then(a, s) } d((i = i.apply(e, t || [])).next()) } )) } , Z = function(e, t) { var n, i, r, o, a = { label: 0, sent: function() { if (1 & r[0]) throw r[1]; return r[1] }, trys: [], ops: [] }; return o = { next: s(0), throw: s(1), return: s(2) }, "function" == typeof Symbol && (o[Symbol.iterator] = function() { return this } ), o; function s(o) { return function(s) { return function(o) { if (n) throw new TypeError("Generator is already executing."); for (; a; ) try { if (n = 1, i && (r = 2 & o[0] ? i.return : o[0] ? i.throw || ((r = i.return) && r.call(i), 0) : i.next) && !(r = r.call(i, o[1])).done) return r; switch (i = 0, r && (o = [2 & o[0], r.value]), o[0]) { case 0: case 1: r = o; break; case 4: return a.label++, { value: o[1], done: !1 }; case 5: a.label++, i = o[1], o = [0]; continue; case 7: o = a.ops.pop(), a.trys.pop(); continue; default: if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== o[0] && 2 !== o[0])) { a = 0; continue } if (3 === o[0] && (!r || o[1] > r[0] && o[1] < r[3])) { a.label = o[1]; break } if (6 === o[0] && a.label < r[1]) { a.label = r[1], r = o; break } if (r && a.label < r[2]) { a.label = r[2], a.ops.push(o); break } r[2] && a.ops.pop(), a.trys.pop(); continue } o = t.call(e, a) } catch (e) { o = [6, e], i = 0 } finally { n = r = 0 } if (5 & o[0]) throw o[1]; return { value: o[0] ? o[1] : void 0, done: !0 } }([o, s]) } } } , C = function(e, t, n) { if (n || 2 === arguments.length) for (var i, r = 0, o = t.length; r < o; r++) !i && r in t || (i || (i = Array.prototype.slice.call(t, 0, r)), i[r] = t[r]); return e.concat(i || Array.prototype.slice.call(t)) } , _ = null , T = function(e) {}; var P = C(C([], Object.values(n.Z.tracking.screen), !0), ["pokiTrackingAdsStatusCompleted", "pokiTrackingAdsStatusError", "pokiTrackingAdsStatusLimit", "pokiTrackingAdsVideoProgress"], !1); function B(e, t, i) { if (i) { a.e(591).then(a.t.bind(a, 591, 23)).then((function(r) { var o, a = new r.Network(e), s = function() {}; a.on("ready", (function() { m.log && console.info("%cPOKI_PLAYTEST:%c network ready", "font-weight: bold", ""), a.join(t) } )), a.on("signalingerror", (function(e) { m.log && console.error("%cPOKI_PLAYTEST:%c signalingerror: " + e, "font-weight: bold", "") } )), a.on("rtcerror", (function(e) { m.log && console.error("%cPOKI_PLAYTEST:%c rtcerror: " + e, "font-weight: bold", "") } )), a.on("connecting", (function(e) { m.log && console.info("%cPOKI_PLAYTEST:%c peer connecting " + e.id, "font-weight: bold", "") } )), a.on("disconnected", (function(e) { o === e.id && (s(), s = function() {} , a.close("developer disconnected")) } )), a.on("connected", (function(e) { m.log && console.info("%cPOKI_PLAYTEST:%c peer connected " + e.id, "font-weight: bold", ""), L.track(n.Z.tracking.playtest.connected, { peer: e.id }), setTimeout((function() { o || (s(), s = function() {} , a.close("timed out")) } ), 5e3) } )), a.on("message", (function(e, t, n) { switch (JSON.parse(n).type) { case "start": o = e.id, function(e) { if (i) { var t = e.conn; t.getSenders().forEach((function(e) { var t = e.getParameters(); t.encodings[0].maxBitrate = 10485760, e.setParameters(t) } )); var n = i.captureStream(24); n.getTracks().forEach((function(e) { t.addTrack(e, n) } )) } }(e), s = function(e, t) { if (!i) return function() {} ; var n = [-1, -1] , r = [-1, -1] , o = setInterval((function() { if (i && (n[0] !== r[0] || n[1] !== r[1])) { var o = { type: "mousemove", x: n[0] / i.clientWidth, y: n[1] / i.clientHeight }; e.send("unreliable", t.id, JSON.stringify(o)), r[0] = n[0], r[1] = n[1] } } ), 50) , a = function(e) { var t = e.clientX , i = e.clientY; n[0] = t, n[1] = i } , s = function(e) { var t = e.clientX , r = e.clientY; n[0] = t - i.offsetLeft, n[1] = r - i.offsetTop } , d = function() { var n = { type: "visibilitychange", hidden: document.hidden }; e.send("reliable", t.id, JSON.stringify(n)) } , c = function(n) { i && e.send("reliable", t.id, JSON.stringify({ type: "mousedown", button: n.button })) } , l = function(n) { i && e.send("reliable", t.id, JSON.stringify({ type: "mouseup", button: n.button })) }; i.addEventListener("pointermove", a), window.addEventListener("pointermove", s), window.addEventListener("mousedown", c), window.addEventListener("mouseup", l), document.addEventListener("visibilitychange", d); var A = function() { if (i) { var n = { type: "resize", width: i.width, height: i.height }; e.send("reliable", t.id, JSON.stringify(n)) } }; A(), window.addEventListener("resize", A); var u = {} , p = !1 , h = function(e) { u[e.code] = !0, p = !0 } , m = function(e) { delete u[e.code], p = !0 }; document.addEventListener("keydown", h), document.addEventListener("keyup", m); var g = setInterval((function() { var n = Object.keys(u); if (p && n.length > 0) { var i = { type: "keydown", keys: Object.keys(u) }; e.send("reliable", t.id, JSON.stringify(i)) } p = !1 } ), 50); return T = function(n) { var i = { type: "sdk-event", offset: performance.now(), event: n }; e.send("reliable", t.id, JSON.stringify(i)) } , function() { T = function() {} , i && i.removeEventListener("pointermove", a), window.removeEventListener("pointermove", s), window.removeEventListener("mousedown", c), window.removeEventListener("mouseup", l), document.removeEventListener("keydown", h), document.removeEventListener("keyup", m), window.removeEventListener("resize", A), document.removeEventListener("visibilitychange", d), clearInterval(g), clearInterval(o) } }(a, e); break; case "stop": s(), s = function() {} , a.close("stop") } } )) } )) } } function D(e) { var t, i, r = h.Z.playtest, o = !1; r ? o = !0 : (r = null == e ? void 0 : e.playtestLobbyID) && (o = "4g" === (null === (t = navigator.connection) || void 0 === t ? void 0 : t.effectiveType) && !(0, x.Z)() && !(0, E.Z)() && h.Z.isPokiIframe && !I, L.track(n.Z.tracking.playtest.showModal, { show: o })), o && (i = (null == e ? void 0 : e.gameTitle) || "the game", new Promise((function(e, t) { return S(void 0, void 0, void 0, (function() { var n, r, o, a, s, d, c, l, A, u, p, h, m, g, f, v; return Z(this, (function(b) { switch (b.label) { case 0: return (n = document.createElement("div")).classList.add("poki-stream-bg"), (r = document.createElement("div")).classList.add("poki-stream-consent"), (o = document.createElement("div")).classList.add("consent-content"), a = new FontFace("ProximaNova","url(fonts/proxima-nova-regular-latin.woff2)").load(), s = new FontFace("ProximaNovaBold","url(fonts/proxima-nova-bold-latin.woff2)").load(), d = new FontFace("Torus","url(fonts/torus-bold-latin.woff2)").load(), [4, Promise.all([a, s, d])]; case 1: return c = b.sent(), l = c[0], A = c[1], u = c[2], document.fonts.add(l), document.fonts.add(A), document.fonts.add(u), o.innerHTML = "\n

You have been randomly selected for a Play Test

\n

\tWe offer this feature to our developers to enable them to analyze and improve their game. If you consent to the Play Test, the\ndeveloper can see your activity in " + i + " while you play. This will enable the developer to determine\nwhere tweaks and improvements can be made.

\n

The information is only shared real time with the\ndeveloper of " + i + ' during this session. The information with regard to your gameplay activity is not\nrecorded or stored. For more information, please download our Play Test Privacy Statement.

\n

Do you consent to the Play Test to help improve this game?

\nPlease note that you will be able to play the game normally if you refuse the Play Test.', r.appendChild(o), (p = document.createElement("style")).textContent = "\n.poki-stream-consent h2, .poki-stream-consent h1, .poki-stream-consent b, .poki-stream-consent a, .poki-stream-consent button, .poki-stream-consent svg {\n\tall: revert;\n}\n\n.poki-stream-consent {\n\tall: revert;\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n\tbackground-color: #fff;\n\tborder-radius: 12px;\n\tpadding: 16px;\n\tcolor: #5d6b84;\n\tfont: 700 14px/20px ProximaNova, sans-serif;\n\tbox-shadow: rgb(9 30 66 / 7%) 0px 16px 16px, rgb(9 30 66 / 7%) 0px 0px 8px, rgb(9 30 66 / 7%) 0px 16px 32px;\n\twidth: 600px;\n\tborder-radius: 8px;\n\toverflow: hidden;\n\tbox-sizing: border-box;\n\tz-index: 99999;\n}\n.poki-stream-bg{\n\tall: revert;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tbackground: #002B50AF;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: 99998;\n}\n.poki-stream-consent .consent-content{\n\tmargin-bottom: 10px;\n}\n.poki-stream-consent h1 {\n\tfont: 700 21px/24px Torus, sans-serif;\n\tcolor: #002B50;\n\tmargin-top: 0;\n}\n.poki-stream-consent h2 {\n\tfont: 700 16px/24px ProximaNovaBold, sans-serif;\n\tcolor: #002B50;\n\tmargin-bottom: 0;\n}\n.poki-stream-consent b{\n\tfont: 700 14px/20px ProximaNovaBold, sans-serif;\n}\n.poki-stream-consent a{\n\tcolor: #009CFF;\n}\n.poki-stream-consent .poki-stream-close{\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\twidth: 32px;\n\theight: 32px;\n\tpadding: 4px;\n\tcursor: pointer;\n\tfill: #009cff;\n\tborder-radius: 50%;\n\tbox-sizing: border-box;\n\tmargin: 8px;\n}\n\n@media only screen and (max-width: 835px) {\n\t.poki-stream-consent {\n\t\ttransform: translate(-50%, -50%) scale(0.9);\n\t}\n}\n\n.poki-stream-consent .poki-stream-close:hover{\n\tbackground-color: #ffc9dd;\n\tfill: #ff7690;\n}\n.poki-stream-consent button {\n\tfont: 700 16px / 24px Torus, sans-serif;\n\tcolor: rgb(255, 255, 255);\n\tpadding: 6px 24px;\n\tborder-radius: 30px;\n\tbackground-color: #009cff;\n\tborder: none;\n\tmargin: 16px 16px 0 0;\n\tcursor: pointer;\n}\n.poki-stream-consent .poki-stream-star{\n\tposition:absolute;\n\tbottom:0;\n\tright:0;\n\twidth: 121.3px;\n\theight: 90.9px;\n}\n", document.head.appendChild(p), h = function() { n.remove(), r.remove() } , (m = document.createElement("button")).innerText = "I refuse", m.addEventListener("click", (function() { h(), t() } )), r.appendChild(m), (g = document.createElement("button")).innerText = "I consent", g.addEventListener("click", (function() { h(), e() } )), r.appendChild(g), (f = document.createElementNS("http://www.w3.org/2000/svg", "svg")).classList.add("poki-stream-close"), f.innerHTML = '', f.setAttribute("viewBox", "0 0 36 36"), f.addEventListener("click", (function() { h(), t() } )), r.appendChild(f), (v = document.createElementNS("http://www.w3.org/2000/svg", "svg")).innerHTML = '', v.setAttribute("viewBox", "0 0 121.3 90.9"), v.classList.add("poki-stream-star"), r.appendChild(v), document.body.appendChild(n), document.body.appendChild(r), [2] } } )) } )) } ))).then((function() { L.track(n.Z.tracking.playtest.accepted); var e = 240 , t = setInterval((function() { var i = function() { if (_) return _; var e = null , t = 0; return Array.from(document.querySelectorAll("canvas")).forEach((function(n) { var i = getComputedStyle(n) , r = i.width , o = i.height , a = i.display , s = i.visibility , d = parseInt(r, 10) * parseInt(o, 10); "none" !== a && "visible" === s && d > t && (t = d, e = n) } )), e }(); if (i) { clearInterval(t), L.track(n.Z.tracking.playtest.starting); try { B("31883e18-b86f-45c1-b551-c60590728d39", r, i) } catch (e) {} } 0 == --e && (L.track(n.Z.tracking.playtest.noCanvas), clearInterval(t)) } ), 500) } )).catch((function(e) { L.track(n.Z.tracking.playtest.rejected) } )) } const z = function(e) { return new Promise((function(t, n) { var i = document.createElement("script"); i.type = "text/javascript", i.async = !0, i.src = e; var r = function() { i.readyState && "loaded" !== i.readyState && "complete" !== i.readyState || (t(), i.onload = null, i.onreadystatechange = null) }; i.onload = r, i.onreadystatechange = r, i.onerror = n, document.head.appendChild(i) } )) }; var j = f(n.Z.tracking) , O = window , M = function() { function e() {} return e.track = function(t, i) { if (void 0 === i && (i = {}), -1 === j.indexOf(t)) throw new TypeError("Invalid 'event', must be one of " + j.join(", ")); if ("object" != typeof i) throw new TypeError("Invalid data, must be an object"); var r = y.getDataAnnotations(); if (null == r ? void 0 : r.pokiAdServer) switch (t) { case n.Z.tracking.ads.status.impression: w({ event: "video-impression", creativeId: null == i ? void 0 : i.creativeId }); break; case n.Z.tracking.ads.video.error: w({ event: "video-error", errorCode: null == i ? void 0 : i.errorCode }); break; case n.Z.tracking.ads.video.loaderError: w({ event: "video-adsloader-error", errorCode: null == i ? void 0 : i.errorCode }); break; case n.Z.tracking.ads.status.completed: w({ event: "video-complete" }) } if (m.log) { if (window.process && window.process.env && "test" === window.process.env.NODE_ENV) return; Object.keys(i).length ? console.info("%cPOKI_TRACKER:%c Tracked event '" + t + "' with data:", "font-weight: bold", "", i) : console.info("%cPOKI_TRACKER:%c Tracked event '" + t + "'", "font-weight: bold", "") } !function(e) { P.includes(e.event) && T(e) }({ event: t, data: i }), e.logToObserver ? e.pushEvent("sdk", "message", { content: { event: t, data: i, pokifordevs: { game_id: h.Z.gameID, game_version_id: void 0 } }, type: n.Z.message.event, origin: "game" }) : p.Z.sendMessage(n.Z.message.event, { event: t, data: i }) } , e.setupDefaultEvents = function() { var t, i = ((t = {})[n.Z.ready] = n.Z.tracking.sdk.status.initialized, t[n.Z.adblocked] = n.Z.tracking.sdk.status.failed, t[n.Z.ads.busy] = n.Z.tracking.ads.status.busy, t[n.Z.ads.completed] = n.Z.tracking.ads.status.completed, t[n.Z.ads.error] = n.Z.tracking.ads.status.error, t[n.Z.ads.displayError] = n.Z.tracking.ads.status.displayError, t[n.Z.ads.impression] = n.Z.tracking.ads.status.impression, t[n.Z.ads.limit] = n.Z.tracking.ads.status.limit, t[n.Z.ads.ready] = n.Z.tracking.ads.status.ready, t[n.Z.ads.requested] = n.Z.tracking.ads.status.requested, t[n.Z.ads.prebidRequested] = n.Z.tracking.ads.status.prebidRequested, t[n.Z.ads.skipped] = n.Z.tracking.ads.status.skipped, t[n.Z.ads.started] = n.Z.tracking.ads.status.started, t[n.Z.ads.video.clicked] = n.Z.tracking.ads.video.clicked, t[n.Z.ads.video.error] = n.Z.tracking.ads.video.error, t[n.Z.ads.video.loaderError] = n.Z.tracking.ads.video.loaderError, t[n.Z.ads.video.buffering] = n.Z.tracking.ads.status.buffering, t[n.Z.ads.video.progress] = n.Z.tracking.ads.video.progress, t[n.Z.ads.video.paused] = n.Z.tracking.ads.video.paused, t[n.Z.ads.video.resumed] = n.Z.tracking.ads.video.resumed, t[n.Z.tracking.screen.gameplayStart] = n.Z.tracking.screen.gameplayStart, t[n.Z.tracking.screen.gameplayStop] = n.Z.tracking.screen.gameplayStop, t[n.Z.tracking.screen.commercialBreak] = n.Z.tracking.screen.commercialBreak, t[n.Z.tracking.screen.rewardedBreak] = n.Z.tracking.screen.rewardedBreak, t); Object.keys(i).forEach((function(t) { y.addEventListener(t, (function(n) { e.track(i[t], n) } )) } )) } , e.pushEvent = function(e, t, n) { O.pokiGTM.push({ event: e + "-" + t, eventNoun: e, eventVerb: t, eventData: n || {} }) } , e.setRequireConsent = function(t) { e.cmpRequired = t, e.setupObserverIfCMP() } , e.setupObserverWithCMP = function(t) { e.cmpIndex = t, e.setupObserverIfCMP() } , e.setupObserverIfCMP = function() { if (void 0 !== e.cmpRequired && void 0 !== e.cmpIndex) if (e.cmpRequired) { if (!window.__tcfapi) return void console.error("POKI-SDK: enableEventTracking: a CMP is required but no CMP is present."); window.__tcfapi("addEventListener", 2, (function(t, n) { !n || "tcloaded" !== t.eventStatus && "useractioncomplete" !== t.eventStatus || (window.__tcfapi("getNonIABVendorConsents", 2, (function(t) { t && t.nonIabVendorConsents && t.nonIabVendorConsents[e.cmpIndex || 0] && e.setupObserver() } )), window.__tcfapi("removeEventListener", 2, (function() {} ), t.listenerId)) } )) } else e.setupObserver() } , e.setupObserver = function() { O._pokiSessionGlobalName = "pokiSession", O._pokiUserGlobalName = "pokiUser", O._pokiContextGlobalName = "pokiContext", O._pokiTrackerGlobalName = "pokiTracker", function(e, t, n) { var a = l(); c(a) ? (a.previous_page.path = a.page.path, a.previous_page.type = a.page.type, a.previous_page.id = a.page.id, a.previous_page.start = a.page.start, a.page.path = e, a.page.type = t, a.page.id = n, a.page.start = Date.now(), a.depth = u() + 1, a.expire = Date.now() + 18e5) : a = function(e, t, n) { try { var a = JSON.parse(i(d) || null); if (c(a)) return a.previous_page.path = a.page.path, a.previous_page.type = a.page.type, a.previous_page.id = a.page.id, a.previous_page.start = a.page.start, a.page.path = e, a.page.type = t, a.page.id = n, a.page.start = Date.now(), a.depth = u() + 1, a.expire = Date.now() + 18e5, a.previous_tab_id = a.tab_id, a.tab_id = A(), r(d, JSON.stringify(a)), a } catch (e) { s(e, "newSession") } return { id: o(), expire: Date.now() + 18e5, tab_id: A(), depth: 1, count: (l = i("ses_cnt"), (l && parseInt(l, 10) || 0) + 1), page: { path: e, type: t, id: n, start: Date.now() }, previous_page: {}, landing_page: { path: e, type: t, id: n, start: Date.now() } }; var l }(e, t, n), r("ses_cnt", a.count), a.count > 1 && function() { r("uid_new", "0"); try { sessionStorage.setItem("uid_new", "0") } catch (e) {} window[window._pokiUserGlobalName] && (window[window._pokiUserGlobalName].is_new = !1) }(); var p = JSON.stringify(a); try { sessionStorage.setItem(d, p) } catch (e) { s(e, "updateSession") } window[window._pokiSessionGlobalName] = a, r(d, p) }(window.location.pathname, "external", h.Z.contentGameID), function() { var e, t, n = null === (e = window[window._pokiUserGlobalName]) || void 0 === e ? void 0 : e.id, a = (null === (t = window[window._pokiUserGlobalName]) || void 0 === t ? void 0 : t.is_new) || !1; if (!n) try { n = sessionStorage.getItem("uid"), a = "1" === sessionStorage.getItem("uid_new") } catch (e) {} n || (n = i("uid"), a = "1" === i("uid_new")), n || (n = o(), a = !0), r("uid", n), r("uid_new", a ? "1" : "0"); try { sessionStorage.setItem("uid", n), sessionStorage.setItem("uid_new", a ? "1" : "0") } catch (e) {} window[window._pokiUserGlobalName] = { id: n, is_new: a } }(), O[O._pokiContextGlobalName] = { tag: null, site: { id: null, domain: window.location.hostname, prefix: "" }, page: { id: h.Z.contentGameID, type: "external", path: window.location.pathname }, user: O[O._pokiUserGlobalName], session: O[O._pokiSessionGlobalName] }, O.pokiGTM = O.pokiGTM || [], z("https://a.poki.com/observer/t2.js"), e.logToObserver = !0 } , e.logToObserver = !1, e.cmpRequired = void 0, e.cmpIndex = void 0, e }(); const L = M; var R = window.location.hostname; function N(e) { var t = new RegExp(e + "=([^;]+)(?:;|$)").exec(document.cookie); return t ? t[1] : "" } function G(e, t) { document.cookie = e + "=" + t + "; path=/; samesite=none; secure; max-age=15552000; domain=" + R } R.endsWith("poki-gdn.com") && (R = "poki-gdn.com"); var q = function(e, t, n, i) { return new (n || (n = Promise))((function(r, o) { function a(e) { try { d(i.next(e)) } catch (e) { o(e) } } function s(e) { try { d(i.throw(e)) } catch (e) { o(e) } } function d(e) { var t; e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) { e(t) } ))).then(a, s) } d((i = i.apply(e, t || [])).next()) } )) } , U = function(e, t) { var n, i, r, o, a = { label: 0, sent: function() { if (1 & r[0]) throw r[1]; return r[1] }, trys: [], ops: [] }; return o = { next: s(0), throw: s(1), return: s(2) }, "function" == typeof Symbol && (o[Symbol.iterator] = function() { return this } ), o; function s(o) { return function(s) { return function(o) { if (n) throw new TypeError("Generator is already executing."); for (; a; ) try { if (n = 1, i && (r = 2 & o[0] ? i.return : o[0] ? i.throw || ((r = i.return) && r.call(i), 0) : i.next) && !(r = r.call(i, o[1])).done) return r; switch (i = 0, r && (o = [2 & o[0], r.value]), o[0]) { case 0: case 1: r = o; break; case 4: return a.label++, { value: o[1], done: !1 }; case 5: a.label++, i = o[1], o = [0]; continue; case 7: o = a.ops.pop(), a.trys.pop(); continue; default: if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== o[0] && 2 !== o[0])) { a = 0; continue } if (3 === o[0] && (!r || o[1] > r[0] && o[1] < r[3])) { a.label = o[1]; break } if (6 === o[0] && a.label < r[1]) { a.label = r[1], r = o; break } if (r && a.label < r[2]) { a.label = r[2], a.ops.push(o); break } r[2] && a.ops.pop(), a.trys.pop(); continue } o = t.call(e, a) } catch (e) { o = [6, e], i = 0 } finally { n = r = 0 } if (5 & o[0]) throw o[1]; return { value: o[0] ? o[1] : void 0, done: !0 } }([o, s]) } } } , Q = function(e, t, n) { if (n || 2 === arguments.length) for (var i, r = 0, o = t.length; r < o; r++) !i && r in t || (i || (i = Array.prototype.slice.call(t, 0, r)), i[r] = t[r]); return e.concat(i || Array.prototype.slice.call(t)) } , F = "poki_gcuid" , X = N(F) , H = function() { function e() {} return e.collectAndLog = function() { return q(this, void 0, void 0, (function() { var e, t, n, i, r; return U(this, (function(o) { switch (o.label) { case 0: return o.trys.push([0, 5, , 6]), [4, window.cookieStore.getAll()]; case 1: return e = o.sent(), window.indexedDB.databases ? [4, window.indexedDB.databases()] : [3, 3]; case 2: return n = o.sent(), [3, 4]; case 3: n = [], o.label = 4; case 4: return t = n, i = Q(Q(Q([], e.map((function(e) { return { name: e.name, expire_seconds: Math.round((e.expires - Date.now()) / 1e3), type: "cookie", domain: e.domain } } )), !0), Object.keys(window.localStorage).map((function(e) { return { name: e, expire_seconds: 15552e3, type: "localStorage" } } )), !0), t.map((function(e) { return { name: e.name, expire_seconds: 0, type: "idb" } } )), !0), r = { cookies: i, p4d_game_id: h.Z.gameID, user_id: X }, window.fetch("https://t.poki.io/game-cookies", { method: "post", body: JSON.stringify(r) }).catch(), [3, 6]; case 5: return o.sent(), [3, 6]; case 6: return [2] } } )) } )) } , e.trackSavegames = function() { window.cookieStore && window.cookieStore.getAll && h.Z.gameID && (Math.random() > .01 || navigator.userAgent.indexOf("Safari") > -1 && navigator.userAgent.indexOf("Chrome") <= -1 || (X || (X = Math.random().toString(36).substr(2, 9), G(F, X)), e.collectAndLog(), setInterval(e.collectAndLog, 12e4))) } , e }(); const V = H; function K() { if (document.body && document.body.appendChild) { var e = document.createElement("iframe"); e.style.display = "none", document.body.appendChild(e), e.contentWindow && (window.pokiKeysChanged = new Map, e.contentWindow.document.open(), e.contentWindow.document.write("