One Hat Cyber Team
Your IP :
3.14.254.47
Server IP :
192.145.235.60
Server :
Linux ngx365.inmotionhosting.com 5.14.0-427.33.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 30 09:45:56 EDT 2024 x86_64
Server Software :
Apache
PHP Version :
8.2.27
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
centos12
/
bizcento.com
/
public
/
assets
/
js
/
View File Name :
pusher.min.js
/*! * Pusher JavaScript Library v7.0.6 * https://pusher.com/ * * Copyright 2020, Pusher * Released under the MIT licence. */ !function (t, e) { "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.Pusher = e() : t.Pusher = e() }(window, (function () { return function (t) { var e = {}; function n(o) { if (e[o]) return e[o].exports; var r = e[o] = { i: o, l: !1, exports: {} }; return t[o].call(r.exports, r, r.exports, n), r.l = !0, r.exports } return n.m = t, n.c = e, n.d = function (t, e, o) { n.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: o }) }, 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 o = Object.create(null); if (n.r(o), Object.defineProperty(o, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var r in t) n.d(o, r, function (e) { return t[e] }.bind(null, r)); return o }, 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 = 2) }([function (t, e, n) { "use strict"; var o, r = this && this.__extends || (o = function (t, e) { return (o = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) })(t, e) }, function (t, e) { function n() { this.constructor = t } o(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n) }); Object.defineProperty(e, "__esModule", { value: !0 }); var i = function () { function t(t) { void 0 === t && (t = "="), this._paddingCharacter = t } return t.prototype.encodedLength = function (t) { return this._paddingCharacter ? (t + 2) / 3 * 4 | 0 : (8 * t + 5) / 6 | 0 }, t.prototype.encode = function (t) { for (var e = "", n = 0; n < t.length - 2; n += 3) { var o = t[n] << 16 | t[n + 1] << 8 | t[n + 2]; e += this._encodeByte(o >>> 18 & 63), e += this._encodeByte(o >>> 12 & 63), e += this._encodeByte(o >>> 6 & 63), e += this._encodeByte(o >>> 0 & 63) } var r = t.length - n; if (r > 0) { o = t[n] << 16 | (2 === r ? t[n + 1] << 8 : 0); e += this._encodeByte(o >>> 18 & 63), e += this._encodeByte(o >>> 12 & 63), e += 2 === r ? this._encodeByte(o >>> 6 & 63) : this._paddingCharacter || "", e += this._paddingCharacter || "" } return e }, t.prototype.maxDecodedLength = function (t) { return this._paddingCharacter ? t / 4 * 3 | 0 : (6 * t + 7) / 8 | 0 }, t.prototype.decodedLength = function (t) { return this.maxDecodedLength(t.length - this._getPaddingLength(t)) }, t.prototype.decode = function (t) { if (0 === t.length) return new Uint8Array(0); for (var e = this._getPaddingLength(t), n = t.length - e, o = new Uint8Array(this.maxDecodedLength(n)), r = 0, i = 0, s = 0, c = 0, a = 0, u = 0, h = 0; i < n - 4; i += 4)c = this._decodeChar(t.charCodeAt(i + 0)), a = this._decodeChar(t.charCodeAt(i + 1)), u = this._decodeChar(t.charCodeAt(i + 2)), h = this._decodeChar(t.charCodeAt(i + 3)), o[r++] = c << 2 | a >>> 4, o[r++] = a << 4 | u >>> 2, o[r++] = u << 6 | h, s |= 256 & c, s |= 256 & a, s |= 256 & u, s |= 256 & h; if (i < n - 1 && (c = this._decodeChar(t.charCodeAt(i)), a = this._decodeChar(t.charCodeAt(i + 1)), o[r++] = c << 2 | a >>> 4, s |= 256 & c, s |= 256 & a), i < n - 2 && (u = this._decodeChar(t.charCodeAt(i + 2)), o[r++] = a << 4 | u >>> 2, s |= 256 & u), i < n - 3 && (h = this._decodeChar(t.charCodeAt(i + 3)), o[r++] = u << 6 | h, s |= 256 & h), 0 !== s) throw new Error("Base64Coder: incorrect characters for decoding"); return o }, t.prototype._encodeByte = function (t) { var e = t; return e += 65, e += 25 - t >>> 8 & 6, e += 51 - t >>> 8 & -75, e += 61 - t >>> 8 & -15, e += 62 - t >>> 8 & 3, String.fromCharCode(e) }, t.prototype._decodeChar = function (t) { var e = 256; return e += (42 - t & t - 44) >>> 8 & -256 + t - 43 + 62, e += (46 - t & t - 48) >>> 8 & -256 + t - 47 + 63, e += (47 - t & t - 58) >>> 8 & -256 + t - 48 + 52, e += (64 - t & t - 91) >>> 8 & -256 + t - 65 + 0, e += (96 - t & t - 123) >>> 8 & -256 + t - 97 + 26 }, t.prototype._getPaddingLength = function (t) { var e = 0; if (this._paddingCharacter) { for (var n = t.length - 1; n >= 0 && t[n] === this._paddingCharacter; n--)e++; if (t.length < 4 || e > 2) throw new Error("Base64Coder: incorrect padding") } return e }, t }(); e.Coder = i; var s = new i; e.encode = function (t) { return s.encode(t) }, e.decode = function (t) { return s.decode(t) }; var c = function (t) { function e() { return null !== t && t.apply(this, arguments) || this } return r(e, t), e.prototype._encodeByte = function (t) { var e = t; return e += 65, e += 25 - t >>> 8 & 6, e += 51 - t >>> 8 & -75, e += 61 - t >>> 8 & -13, e += 62 - t >>> 8 & 49, String.fromCharCode(e) }, e.prototype._decodeChar = function (t) { var e = 256; return e += (44 - t & t - 46) >>> 8 & -256 + t - 45 + 62, e += (94 - t & t - 96) >>> 8 & -256 + t - 95 + 63, e += (47 - t & t - 58) >>> 8 & -256 + t - 48 + 52, e += (64 - t & t - 91) >>> 8 & -256 + t - 65 + 0, e += (96 - t & t - 123) >>> 8 & -256 + t - 97 + 26 }, e }(i); e.URLSafeCoder = c; var a = new c; e.encodeURLSafe = function (t) { return a.encode(t) }, e.decodeURLSafe = function (t) { return a.decode(t) }, e.encodedLength = function (t) { return s.encodedLength(t) }, e.maxDecodedLength = function (t) { return s.maxDecodedLength(t) }, e.decodedLength = function (t) { return s.decodedLength(t) } }, function (t, e, n) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }); var o = "utf8: invalid source encoding"; function r(t) { for (var e = 0, n = 0; n < t.length; n++) { var o = t.charCodeAt(n); if (o < 128) e += 1; else if (o < 2048) e += 2; else if (o < 55296) e += 3; else { if (!(o <= 57343)) throw new Error("utf8: invalid string"); if (n >= t.length - 1) throw new Error("utf8: invalid string"); n++, e += 4 } } return e } e.encode = function (t) { for (var e = new Uint8Array(r(t)), n = 0, o = 0; o < t.length; o++) { var i = t.charCodeAt(o); i < 128 ? e[n++] = i : i < 2048 ? (e[n++] = 192 | i >> 6, e[n++] = 128 | 63 & i) : i < 55296 ? (e[n++] = 224 | i >> 12, e[n++] = 128 | i >> 6 & 63, e[n++] = 128 | 63 & i) : (o++, i = (1023 & i) << 10, i |= 1023 & t.charCodeAt(o), i += 65536, e[n++] = 240 | i >> 18, e[n++] = 128 | i >> 12 & 63, e[n++] = 128 | i >> 6 & 63, e[n++] = 128 | 63 & i) } return e }, e.encodedLength = r, e.decode = function (t) { for (var e = [], n = 0; n < t.length; n++) { var r = t[n]; if (128 & r) { var i = void 0; if (r < 224) { if (n >= t.length) throw new Error(o); if (128 != (192 & (s = t[++n]))) throw new Error(o); r = (31 & r) << 6 | 63 & s, i = 128 } else if (r < 240) { if (n >= t.length - 1) throw new Error(o); var s = t[++n], c = t[++n]; if (128 != (192 & s) || 128 != (192 & c)) throw new Error(o); r = (15 & r) << 12 | (63 & s) << 6 | 63 & c, i = 2048 } else { if (!(r < 248)) throw new Error(o); if (n >= t.length - 2) throw new Error(o); s = t[++n], c = t[++n]; var a = t[++n]; if (128 != (192 & s) || 128 != (192 & c) || 128 != (192 & a)) throw new Error(o); r = (15 & r) << 18 | (63 & s) << 12 | (63 & c) << 6 | 63 & a, i = 65536 } if (r < i || r >= 55296 && r <= 57343) throw new Error(o); if (r >= 65536) { if (r > 1114111) throw new Error(o); r -= 65536, e.push(String.fromCharCode(55296 | r >> 10)), r = 56320 | 1023 & r } } e.push(String.fromCharCode(r)) } return e.join("") } }, function (t, e, n) { t.exports = n(3).default }, function (t, e, n) { "use strict"; n.r(e); var o, r = function () { function t(t, e) { this.lastId = 0, this.prefix = t, this.name = e } return t.prototype.create = function (t) { this.lastId++; var e = this.lastId, n = this.prefix + e, o = this.name + "[" + e + "]", r = !1, i = function () { r || (t.apply(null, arguments), r = !0) }; return this[e] = i, { number: e, id: n, name: o, callback: i } }, t.prototype.remove = function (t) { delete this[t.number] }, t }(), i = new r("_pusher_script_", "Pusher.ScriptReceivers"), s = { VERSION: "7.0.6", PROTOCOL: 7, wsPort: 80, wssPort: 443, wsPath: "", httpHost: "sockjs.pusher.com", httpPort: 80, httpsPort: 443, httpPath: "/pusher", stats_host: "stats.pusher.com", authEndpoint: "/pusher/auth", authTransport: "ajax", activityTimeout: 12e4, pongTimeout: 3e4, unavailableTimeout: 1e4, cluster: "mt1", cdn_http: "http://js.pusher.com", cdn_https: "https://js.pusher.com", dependency_suffix: "" }, c = function () { function t(t) { this.options = t, this.receivers = t.receivers || i, this.loading = {} } return t.prototype.load = function (t, e, n) { var o = this; if (o.loading[t] && o.loading[t].length > 0) o.loading[t].push(n); else { o.loading[t] = [n]; var r = _e.createScriptRequest(o.getPath(t, e)), i = o.receivers.create((function (e) { if (o.receivers.remove(i), o.loading[t]) { var n = o.loading[t]; delete o.loading[t]; for (var s = function (t) { t || r.cleanup() }, c = 0; c < n.length; c++)n[c](e, s) } })); r.send(i) } }, t.prototype.getRoot = function (t) { var e = _e.getDocument().location.protocol; return (t && t.useTLS || "https:" === e ? this.options.cdn_https : this.options.cdn_http).replace(/\/*$/, "") + "/" + this.options.version }, t.prototype.getPath = function (t, e) { return this.getRoot(e) + "/" + t + this.options.suffix + ".js" }, t }(), a = new r("_pusher_dependencies", "Pusher.DependenciesReceivers"), u = new c({ cdn_http: s.cdn_http, cdn_https: s.cdn_https, version: s.VERSION, suffix: s.dependency_suffix, receivers: a }), h = { baseUrl: "https://pusher.com", urls: { authenticationEndpoint: { path: "/docs/authenticating_users" }, javascriptQuickStart: { path: "/docs/javascript_quick_start" }, triggeringClientEvents: { path: "/docs/client_api_guide/client_events#trigger-events" }, encryptedChannelSupport: { fullUrl: "https://github.com/pusher/pusher-js/tree/cc491015371a4bde5743d1c87a0fbac0feb53195#encrypted-channel-support" } } }, p = function (t) { var e, n = h.urls[t]; return n ? (n.fullUrl ? e = n.fullUrl : n.path && (e = h.baseUrl + n.path), e ? "See: " + e : "") : "" }, l = (o = function (t, e) { return (o = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) })(t, e) }, function (t, e) { function n() { this.constructor = t } o(t, e), t.prototype = null === e ? Object.create(e) : (n.prototype = e.prototype, new n) }), f = function (t) { function e(e) { var n = this.constructor, o = t.call(this, e) || this; return Object.setPrototypeOf(o, n.prototype), o } return l(e, t), e }(Error), d = function (t) { function e(e) { var n = this.constructor, o = t.call(this, e) || this; return Object.setPrototypeOf(o, n.prototype), o } return l(e, t), e }(Error), y = function (t) { function e(e) { var n = this.constructor, o = t.call(this, e) || this; return Object.setPrototypeOf(o, n.prototype), o } return l(e, t), e }(Error), g = function (t) { function e(e) { var n = this.constructor, o = t.call(this, e) || this; return Object.setPrototypeOf(o, n.prototype), o } return l(e, t), e }(Error), v = function (t) { function e(e) { var n = this.constructor, o = t.call(this, e) || this; return Object.setPrototypeOf(o, n.prototype), o } return l(e, t), e }(Error), b = function (t) { function e(e) { var n = this.constructor, o = t.call(this, e) || this; return Object.setPrototypeOf(o, n.prototype), o } return l(e, t), e }(Error), m = function (t) { function e(e) { var n = this.constructor, o = t.call(this, e) || this; return Object.setPrototypeOf(o, n.prototype), o } return l(e, t), e }(Error), w = function (t) { function e(e, n) { var o = this.constructor, r = t.call(this, n) || this; return r.status = e, Object.setPrototypeOf(r, o.prototype), r } return l(e, t), e }(Error), _ = function (t, e, n) { var o, r = this; for (var i in (o = _e.createXHR()).open("POST", r.options.authEndpoint, !0), o.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), this.authOptions.headers) o.setRequestHeader(i, this.authOptions.headers[i]); return o.onreadystatechange = function () { if (4 === o.readyState) if (200 === o.status) { var t = void 0, e = !1; try { t = JSON.parse(o.responseText), e = !0 } catch (t) { n(new w(200, "JSON returned from auth endpoint was invalid, yet status code was 200. Data was: " + o.responseText), { auth: "" }) } e && n(null, t) } else { var i = p("authenticationEndpoint"); n(new w(o.status, "Unable to retrieve auth string from auth endpoint - received status: " + o.status + " from " + r.options.authEndpoint + ". Clients must be authenticated to join private or presence channels. " + i), { auth: "" }) } }, o.send(this.composeQuery(e)), o }; for (var S = String.fromCharCode, k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", C = {}, T = 0, P = k.length; T < P; T++)C[k.charAt(T)] = T; var O = function (t) { var e = t.charCodeAt(0); return e < 128 ? t : e < 2048 ? S(192 | e >>> 6) + S(128 | 63 & e) : S(224 | e >>> 12 & 15) + S(128 | e >>> 6 & 63) + S(128 | 63 & e) }, E = function (t) { return t.replace(/[^\x00-\x7F]/g, O) }, L = function (t) { var e = [0, 2, 1][t.length % 3], n = t.charCodeAt(0) << 16 | (t.length > 1 ? t.charCodeAt(1) : 0) << 8 | (t.length > 2 ? t.charCodeAt(2) : 0); return [k.charAt(n >>> 18), k.charAt(n >>> 12 & 63), e >= 2 ? "=" : k.charAt(n >>> 6 & 63), e >= 1 ? "=" : k.charAt(63 & n)].join("") }, x = window.btoa || function (t) { return t.replace(/[\s\S]{1,3}/g, L) }, A = function () { function t(t, e, n, o) { var r = this; this.clear = e, this.timer = t((function () { r.timer && (r.timer = o(r.timer)) }), n) } return t.prototype.isRunning = function () { return null !== this.timer }, t.prototype.ensureAborted = function () { this.timer && (this.clear(this.timer), this.timer = null) }, t }(), R = function () { var t = function (e, n) { return (t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) })(e, n) }; return function (e, n) { function o() { this.constructor = e } t(e, n), e.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o) } }(); function j(t) { window.clearTimeout(t) } function D(t) { window.clearInterval(t) } var I = function (t) { function e(e, n) { return t.call(this, setTimeout, j, e, (function (t) { return n(), null })) || this } return R(e, t), e }(A), N = function (t) { function e(e, n) { return t.call(this, setInterval, D, e, (function (t) { return n(), t })) || this } return R(e, t), e }(A), M = { now: function () { return Date.now ? Date.now() : (new Date).valueOf() }, defer: function (t) { return new I(0, t) }, method: function (t) { for (var e = [], n = 1; n < arguments.length; n++)e[n - 1] = arguments[n]; var o = Array.prototype.slice.call(arguments, 1); return function (e) { return e[t].apply(e, o.concat(arguments)) } } }; function H(t) { for (var e = [], n = 1; n < arguments.length; n++)e[n - 1] = arguments[n]; for (var o = 0; o < e.length; o++) { var r = e[o]; for (var i in r) r[i] && r[i].constructor && r[i].constructor === Object ? t[i] = H(t[i] || {}, r[i]) : t[i] = r[i] } return t } function q() { for (var t = ["Pusher"], e = 0; e < arguments.length; e++)"string" == typeof arguments[e] ? t.push(arguments[e]) : t.push(Y(arguments[e])); return t.join(" : ") } function B(t, e) { var n = Array.prototype.indexOf; if (null === t) return -1; if (n && t.indexOf === n) return t.indexOf(e); for (var o = 0, r = t.length; o < r; o++)if (t[o] === e) return o; return -1 } function z(t, e) { for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && e(t[n], n, t) } function U(t) { var e = []; return z(t, (function (t, n) { e.push(n) })), e } function F(t, e, n) { for (var o = 0; o < t.length; o++)e.call(n || window, t[o], o, t) } function X(t, e) { for (var n = [], o = 0; o < t.length; o++)n.push(e(t[o], o, t, n)); return n } function J(t, e) { e = e || function (t) { return !!t }; for (var n = [], o = 0; o < t.length; o++)e(t[o], o, t, n) && n.push(t[o]); return n } function W(t, e) { var n = {}; return z(t, (function (o, r) { (e && e(o, r, t, n) || Boolean(o)) && (n[r] = o) })), n } function G(t, e) { for (var n = 0; n < t.length; n++)if (e(t[n], n, t)) return !0; return !1 } function Q(t) { return e = function (t) { return "object" == typeof t && (t = Y(t)), encodeURIComponent((e = t.toString(), x(E(e)))); var e }, n = {}, z(t, (function (t, o) { n[o] = e(t) })), n; var e, n } function V(t) { var e, n, o = W(t, (function (t) { return void 0 !== t })); return X((e = Q(o), n = [], z(e, (function (t, e) { n.push([e, t]) })), n), M.method("join", "=")).join("&") } function Y(t) { try { return JSON.stringify(t) } catch (o) { return JSON.stringify((e = [], n = [], function t(o, r) { var i, s, c; switch (typeof o) { case "object": if (!o) return null; for (i = 0; i < e.length; i += 1)if (e[i] === o) return { $ref: n[i] }; if (e.push(o), n.push(r), "[object Array]" === Object.prototype.toString.apply(o)) for (c = [], i = 0; i < o.length; i += 1)c[i] = t(o[i], r + "[" + i + "]"); else for (s in c = {}, o) Object.prototype.hasOwnProperty.call(o, s) && (c[s] = t(o[s], r + "[" + JSON.stringify(s) + "]")); return c; case "number": case "string": case "boolean": return o } }(t, "$"))) } var e, n } var $ = new (function () { function t() { this.globalLog = function (t) { window.console && window.console.log && window.console.log(t) } } return t.prototype.debug = function () { for (var t = [], e = 0; e < arguments.length; e++)t[e] = arguments[e]; this.log(this.globalLog, t) }, t.prototype.warn = function () { for (var t = [], e = 0; e < arguments.length; e++)t[e] = arguments[e]; this.log(this.globalLogWarn, t) }, t.prototype.error = function () { for (var t = [], e = 0; e < arguments.length; e++)t[e] = arguments[e]; this.log(this.globalLogError, t) }, t.prototype.globalLogWarn = function (t) { window.console && window.console.warn ? window.console.warn(t) : this.globalLog(t) }, t.prototype.globalLogError = function (t) { window.console && window.console.error ? window.console.error(t) : this.globalLogWarn(t) }, t.prototype.log = function (t) { for (var e = [], n = 1; n < arguments.length; n++)e[n - 1] = arguments[n]; var o = q.apply(this, arguments); if (Ie.log) Ie.log(o); else if (Ie.logToConsole) { var r = t.bind(this); r(o) } }, t }()), K = function (t, e, n) { void 0 !== this.authOptions.headers && $.warn("To send headers with the auth request, you must use AJAX, rather than JSONP."); var o = t.nextAuthCallbackID.toString(); t.nextAuthCallbackID++; var r = t.getDocument(), i = r.createElement("script"); t.auth_callbacks[o] = function (t) { n(null, t) }; var s = "Pusher.auth_callbacks['" + o + "']"; i.src = this.options.authEndpoint + "?callback=" + encodeURIComponent(s) + "&" + this.composeQuery(e); var c = r.getElementsByTagName("head")[0] || r.documentElement; c.insertBefore(i, c.firstChild) }, Z = function () { function t(t) { this.src = t } return t.prototype.send = function (t) { var e = this, n = "Error loading " + e.src; e.script = document.createElement("script"), e.script.id = t.id, e.script.src = e.src, e.script.type = "text/javascript", e.script.charset = "UTF-8", e.script.addEventListener ? (e.script.onerror = function () { t.callback(n) }, e.script.onload = function () { t.callback(null) }) : e.script.onreadystatechange = function () { "loaded" !== e.script.readyState && "complete" !== e.script.readyState || t.callback(null) }, void 0 === e.script.async && document.attachEvent && /opera/i.test(navigator.userAgent) ? (e.errorScript = document.createElement("script"), e.errorScript.id = t.id + "_error", e.errorScript.text = t.name + "('" + n + "');", e.script.async = e.errorScript.async = !1) : e.script.async = !0; var o = document.getElementsByTagName("head")[0]; o.insertBefore(e.script, o.firstChild), e.errorScript && o.insertBefore(e.errorScript, e.script.nextSibling) }, t.prototype.cleanup = function () { this.script && (this.script.onload = this.script.onerror = null, this.script.onreadystatechange = null), this.script && this.script.parentNode && this.script.parentNode.removeChild(this.script), this.errorScript && this.errorScript.parentNode && this.errorScript.parentNode.removeChild(this.errorScript), this.script = null, this.errorScript = null }, t }(), tt = function () { function t(t, e) { this.url = t, this.data = e } return t.prototype.send = function (t) { if (!this.request) { var e = V(this.data), n = this.url + "/" + t.number + "?" + e; this.request = _e.createScriptRequest(n), this.request.send(t) } }, t.prototype.cleanup = function () { this.request && this.request.cleanup() }, t }(), et = { name: "jsonp", getAgent: function (t, e) { return function (n, o) { var r = "http" + (e ? "s" : "") + "://" + (t.host || t.options.host) + t.options.path, s = _e.createJSONPRequest(r, n), c = _e.ScriptReceivers.create((function (e, n) { i.remove(c), s.cleanup(), n && n.host && (t.host = n.host), o && o(e, n) })); s.send(c) } } }; function nt(t, e, n) { return t + (e.useTLS ? "s" : "") + "://" + (e.useTLS ? e.hostTLS : e.hostNonTLS) + n } function ot(t, e) { return "/app/" + t + ("?protocol=" + s.PROTOCOL + "&client=js&version=" + s.VERSION + (e ? "&" + e : "")) } var rt = { getInitial: function (t, e) { return nt("ws", e, (e.httpPath || "") + ot(t, "flash=false")) } }, it = { getInitial: function (t, e) { return nt("http", e, (e.httpPath || "/pusher") + ot(t)) } }, st = { getInitial: function (t, e) { return nt("http", e, e.httpPath || "/pusher") }, getPath: function (t, e) { return ot(t) } }, ct = function () { function t() { this._callbacks = {} } return t.prototype.get = function (t) { return this._callbacks[at(t)] }, t.prototype.add = function (t, e, n) { var o = at(t); this._callbacks[o] = this._callbacks[o] || [], this._callbacks[o].push({ fn: e, context: n }) }, t.prototype.remove = function (t, e, n) { if (t || e || n) { var o = t ? [at(t)] : U(this._callbacks); e || n ? this.removeCallback(o, e, n) : this.removeAllCallbacks(o) } else this._callbacks = {} }, t.prototype.removeCallback = function (t, e, n) { F(t, (function (t) { this._callbacks[t] = J(this._callbacks[t] || [], (function (t) { return e && e !== t.fn || n && n !== t.context })), 0 === this._callbacks[t].length && delete this._callbacks[t] }), this) }, t.prototype.removeAllCallbacks = function (t) { F(t, (function (t) { delete this._callbacks[t] }), this) }, t }(); function at(t) { return "_" + t } var ut = function () { function t(t) { this.callbacks = new ct, this.global_callbacks = [], this.failThrough = t } return t.prototype.bind = function (t, e, n) { return this.callbacks.add(t, e, n), this }, t.prototype.bind_global = function (t) { return this.global_callbacks.push(t), this }, t.prototype.unbind = function (t, e, n) { return this.callbacks.remove(t, e, n), this }, t.prototype.unbind_global = function (t) { return t ? (this.global_callbacks = J(this.global_callbacks || [], (function (e) { return e !== t })), this) : (this.global_callbacks = [], this) }, t.prototype.unbind_all = function () { return this.unbind(), this.unbind_global(), this }, t.prototype.emit = function (t, e, n) { for (var o = 0; o < this.global_callbacks.length; o++)this.global_callbacks[o](t, e); var r = this.callbacks.get(t), i = []; if (n ? i.push(e, n) : e && i.push(e), r && r.length > 0) for (o = 0; o < r.length; o++)r[o].fn.apply(r[o].context || window, i); else this.failThrough && this.failThrough(t, e); return this }, t }(), ht = function () { var t = function (e, n) { return (t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) })(e, n) }; return function (e, n) { function o() { this.constructor = e } t(e, n), e.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o) } }(), pt = function (t) { function e(e, n, o, r, i) { var s = t.call(this) || this; return s.initialize = _e.transportConnectionInitializer, s.hooks = e, s.name = n, s.priority = o, s.key = r, s.options = i, s.state = "new", s.timeline = i.timeline, s.activityTimeout = i.activityTimeout, s.id = s.timeline.generateUniqueID(), s } return ht(e, t), e.prototype.handlesActivityChecks = function () { return Boolean(this.hooks.handlesActivityChecks) }, e.prototype.supportsPing = function () { return Boolean(this.hooks.supportsPing) }, e.prototype.connect = function () { var t = this; if (this.socket || "initialized" !== this.state) return !1; var e = this.hooks.urls.getInitial(this.key, this.options); try { this.socket = this.hooks.getSocket(e, this.options) } catch (e) { return M.defer((function () { t.onError(e), t.changeState("closed") })), !1 } return this.bindListeners(), $.debug("Connecting", { transport: this.name, url: e }), this.changeState("connecting"), !0 }, e.prototype.close = function () { return !!this.socket && (this.socket.close(), !0) }, e.prototype.send = function (t) { var e = this; return "open" === this.state && (M.defer((function () { e.socket && e.socket.send(t) })), !0) }, e.prototype.ping = function () { "open" === this.state && this.supportsPing() && this.socket.ping() }, e.prototype.onOpen = function () { this.hooks.beforeOpen && this.hooks.beforeOpen(this.socket, this.hooks.urls.getPath(this.key, this.options)), this.changeState("open"), this.socket.onopen = void 0 }, e.prototype.onError = function (t) { this.emit("error", { type: "WebSocketError", error: t }), this.timeline.error(this.buildTimelineMessage({ error: t.toString() })) }, e.prototype.onClose = function (t) { t ? this.changeState("closed", { code: t.code, reason: t.reason, wasClean: t.wasClean }) : this.changeState("closed"), this.unbindListeners(), this.socket = void 0 }, e.prototype.onMessage = function (t) { this.emit("message", t) }, e.prototype.onActivity = function () { this.emit("activity") }, e.prototype.bindListeners = function () { var t = this; this.socket.onopen = function () { t.onOpen() }, this.socket.onerror = function (e) { t.onError(e) }, this.socket.onclose = function (e) { t.onClose(e) }, this.socket.onmessage = function (e) { t.onMessage(e) }, this.supportsPing() && (this.socket.onactivity = function () { t.onActivity() }) }, e.prototype.unbindListeners = function () { this.socket && (this.socket.onopen = void 0, this.socket.onerror = void 0, this.socket.onclose = void 0, this.socket.onmessage = void 0, this.supportsPing() && (this.socket.onactivity = void 0)) }, e.prototype.changeState = function (t, e) { this.state = t, this.timeline.info(this.buildTimelineMessage({ state: t, params: e })), this.emit(t, e) }, e.prototype.buildTimelineMessage = function (t) { return H({ cid: this.id }, t) }, e }(ut), lt = function () { function t(t) { this.hooks = t } return t.prototype.isSupported = function (t) { return this.hooks.isSupported(t) }, t.prototype.createConnection = function (t, e, n, o) { return new pt(this.hooks, t, e, n, o) }, t }(), ft = new lt({ urls: rt, handlesActivityChecks: !1, supportsPing: !1, isInitialized: function () { return Boolean(_e.getWebSocketAPI()) }, isSupported: function () { return Boolean(_e.getWebSocketAPI()) }, getSocket: function (t) { return _e.createWebSocket(t) } }), dt = { urls: it, handlesActivityChecks: !1, supportsPing: !0, isInitialized: function () { return !0 } }, yt = H({ getSocket: function (t) { return _e.HTTPFactory.createStreamingSocket(t) } }, dt), gt = H({ getSocket: function (t) { return _e.HTTPFactory.createPollingSocket(t) } }, dt), vt = { isSupported: function () { return _e.isXHRSupported() } }, bt = { ws: ft, xhr_streaming: new lt(H({}, yt, vt)), xhr_polling: new lt(H({}, gt, vt)) }, mt = new lt({ file: "sockjs", urls: st, handlesActivityChecks: !0, supportsPing: !1, isSupported: function () { return !0 }, isInitialized: function () { return void 0 !== window.SockJS }, getSocket: function (t, e) { return new window.SockJS(t, null, { js_path: u.getPath("sockjs", { useTLS: e.useTLS }), ignore_null_origin: e.ignoreNullOrigin }) }, beforeOpen: function (t, e) { t.send(JSON.stringify({ path: e })) } }), wt = { isSupported: function (t) { return _e.isXDRSupported(t.useTLS) } }, _t = new lt(H({}, yt, wt)), St = new lt(H({}, gt, wt)); bt.xdr_streaming = _t, bt.xdr_polling = St, bt.sockjs = mt; var kt = bt, Ct = function () { var t = function (e, n) { return (t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) })(e, n) }; return function (e, n) { function o() { this.constructor = e } t(e, n), e.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o) } }(), Tt = new (function (t) { function e() { var e = t.call(this) || this, n = e; return void 0 !== window.addEventListener && (window.addEventListener("online", (function () { n.emit("online") }), !1), window.addEventListener("offline", (function () { n.emit("offline") }), !1)), e } return Ct(e, t), e.prototype.isOnline = function () { return void 0 === window.navigator.onLine || window.navigator.onLine }, e }(ut)), Pt = function () { function t(t, e, n) { this.manager = t, this.transport = e, this.minPingDelay = n.minPingDelay, this.maxPingDelay = n.maxPingDelay, this.pingDelay = void 0 } return t.prototype.createConnection = function (t, e, n, o) { var r = this; o = H({}, o, { activityTimeout: this.pingDelay }); var i = this.transport.createConnection(t, e, n, o), s = null, c = function () { i.unbind("open", c), i.bind("closed", a), s = M.now() }, a = function (t) { if (i.unbind("closed", a), 1002 === t.code || 1003 === t.code) r.manager.reportDeath(); else if (!t.wasClean && s) { var e = M.now() - s; e < 2 * r.maxPingDelay && (r.manager.reportDeath(), r.pingDelay = Math.max(e / 2, r.minPingDelay)) } }; return i.bind("open", c), i }, t.prototype.isSupported = function (t) { return this.manager.isAlive() && this.transport.isSupported(t) }, t }(), Ot = { decodeMessage: function (t) { try { var e = JSON.parse(t.data), n = e.data; if ("string" == typeof n) try { n = JSON.parse(e.data) } catch (t) { } var o = { event: e.event, channel: e.channel, data: n }; return e.user_id && (o.user_id = e.user_id), o } catch (e) { throw { type: "MessageParseError", error: e, data: t.data } } }, encodeMessage: function (t) { return JSON.stringify(t) }, processHandshake: function (t) { var e = Ot.decodeMessage(t); if ("pusher:connection_established" === e.event) { if (!e.data.activity_timeout) throw "No activity timeout specified in handshake"; return { action: "connected", id: e.data.socket_id, activityTimeout: 1e3 * e.data.activity_timeout } } if ("pusher:error" === e.event) return { action: this.getCloseAction(e.data), error: this.getCloseError(e.data) }; throw "Invalid handshake" }, getCloseAction: function (t) { return t.code < 4e3 ? t.code >= 1002 && t.code <= 1004 ? "backoff" : null : 4e3 === t.code ? "tls_only" : t.code < 4100 ? "refused" : t.code < 4200 ? "backoff" : t.code < 4300 ? "retry" : "refused" }, getCloseError: function (t) { return 1e3 !== t.code && 1001 !== t.code ? { type: "PusherError", data: { code: t.code, message: t.reason || t.message } } : null } }, Et = Ot, Lt = function () { var t = function (e, n) { return (t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) })(e, n) }; return function (e, n) { function o() { this.constructor = e } t(e, n), e.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o) } }(), xt = function (t) { function e(e, n) { var o = t.call(this) || this; return o.id = e, o.transport = n, o.activityTimeout = n.activityTimeout, o.bindListeners(), o } return Lt(e, t), e.prototype.handlesActivityChecks = function () { return this.transport.handlesActivityChecks() }, e.prototype.send = function (t) { return this.transport.send(t) }, e.prototype.send_event = function (t, e, n) { var o = { event: t, data: e }; return n && (o.channel = n), $.debug("Event sent", o), this.send(Et.encodeMessage(o)) }, e.prototype.ping = function () { this.transport.supportsPing() ? this.transport.ping() : this.send_event("pusher:ping", {}) }, e.prototype.close = function () { this.transport.close() }, e.prototype.bindListeners = function () { var t = this, e = { message: function (e) { var n; try { n = Et.decodeMessage(e) } catch (n) { t.emit("error", { type: "MessageParseError", error: n, data: e.data }) } if (void 0 !== n) { switch ($.debug("Event recd", n), n.event) { case "pusher:error": t.emit("error", { type: "PusherError", data: n.data }); break; case "pusher:ping": t.emit("ping"); break; case "pusher:pong": t.emit("pong") }t.emit("message", n) } }, activity: function () { t.emit("activity") }, error: function (e) { t.emit("error", e) }, closed: function (e) { n(), e && e.code && t.handleCloseEvent(e), t.transport = null, t.emit("closed") } }, n = function () { z(e, (function (e, n) { t.transport.unbind(n, e) })) }; z(e, (function (e, n) { t.transport.bind(n, e) })) }, e.prototype.handleCloseEvent = function (t) { var e = Et.getCloseAction(t), n = Et.getCloseError(t); n && this.emit("error", n), e && this.emit(e, { action: e, error: n }) }, e }(ut), At = function () { function t(t, e) { this.transport = t, this.callback = e, this.bindListeners() } return t.prototype.close = function () { this.unbindListeners(), this.transport.close() }, t.prototype.bindListeners = function () { var t = this; this.onMessage = function (e) { var n; t.unbindListeners(); try { n = Et.processHandshake(e) } catch (e) { return t.finish("error", { error: e }), void t.transport.close() } "connected" === n.action ? t.finish("connected", { connection: new xt(n.id, t.transport), activityTimeout: n.activityTimeout }) : (t.finish(n.action, { error: n.error }), t.transport.close()) }, this.onClosed = function (e) { t.unbindListeners(); var n = Et.getCloseAction(e) || "backoff", o = Et.getCloseError(e); t.finish(n, { error: o }) }, this.transport.bind("message", this.onMessage), this.transport.bind("closed", this.onClosed) }, t.prototype.unbindListeners = function () { this.transport.unbind("message", this.onMessage), this.transport.unbind("closed", this.onClosed) }, t.prototype.finish = function (t, e) { this.callback(H({ transport: this.transport, action: t }, e)) }, t }(), Rt = function () { function t(t, e) { this.channel = t; var n = e.authTransport; if (void 0 === _e.getAuthorizers()[n]) throw "'" + n + "' is not a recognized auth transport"; this.type = n, this.options = e, this.authOptions = e.auth || {} } return t.prototype.composeQuery = function (t) { var e = "socket_id=" + encodeURIComponent(t) + "&channel_name=" + encodeURIComponent(this.channel.name); for (var n in this.authOptions.params) e += "&" + encodeURIComponent(n) + "=" + encodeURIComponent(this.authOptions.params[n]); return e }, t.prototype.authorize = function (e, n) { t.authorizers = t.authorizers || _e.getAuthorizers(), t.authorizers[this.type].call(this, _e, e, n) }, t }(), jt = function () { function t(t, e) { this.timeline = t, this.options = e || {} } return t.prototype.send = function (t, e) { this.timeline.isEmpty() || this.timeline.send(_e.TimelineTransport.getAgent(this, t), e) }, t }(), Dt = function () { var t = function (e, n) { return (t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) })(e, n) }; return function (e, n) { function o() { this.constructor = e } t(e, n), e.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o) } }(), It = function (t) { function e(e, n) { var o = t.call(this, (function (t, n) { $.debug("No callbacks on " + e + " for " + t) })) || this; return o.name = e, o.pusher = n, o.subscribed = !1, o.subscriptionPending = !1, o.subscriptionCancelled = !1, o } return Dt(e, t), e.prototype.authorize = function (t, e) { return e(null, { auth: "" }) }, e.prototype.trigger = function (t, e) { if (0 !== t.indexOf("client-")) throw new f("Event '" + t + "' does not start with 'client-'"); if (!this.subscribed) { var n = p("triggeringClientEvents"); $.warn("Client event triggered before channel 'subscription_succeeded' event . " + n) } return this.pusher.send_event(t, e, this.name) }, e.prototype.disconnect = function () { this.subscribed = !1, this.subscriptionPending = !1 }, e.prototype.handleEvent = function (t) { var e = t.event, n = t.data; if ("pusher_internal:subscription_succeeded" === e) this.handleSubscriptionSucceededEvent(t); else if (0 !== e.indexOf("pusher_internal:")) { this.emit(e, n, {}) } }, e.prototype.handleSubscriptionSucceededEvent = function (t) { this.subscriptionPending = !1, this.subscribed = !0, this.subscriptionCancelled ? this.pusher.unsubscribe(this.name) : this.emit("pusher:subscription_succeeded", t.data) }, e.prototype.subscribe = function () { var t = this; this.subscribed || (this.subscriptionPending = !0, this.subscriptionCancelled = !1, this.authorize(this.pusher.connection.socket_id, (function (e, n) { e ? (t.subscriptionPending = !1, $.error(e.toString()), t.emit("pusher:subscription_error", Object.assign({}, { type: "AuthError", error: e.message }, e instanceof w ? { status: e.status } : {}))) : t.pusher.send_event("pusher:subscribe", { auth: n.auth, channel_data: n.channel_data, channel: t.name }) }))) }, e.prototype.unsubscribe = function () { this.subscribed = !1, this.pusher.send_event("pusher:unsubscribe", { channel: this.name }) }, e.prototype.cancelSubscription = function () { this.subscriptionCancelled = !0 }, e.prototype.reinstateSubscription = function () { this.subscriptionCancelled = !1 }, e }(ut), Nt = function () { var t = function (e, n) { return (t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) })(e, n) }; return function (e, n) { function o() { this.constructor = e } t(e, n), e.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o) } }(), Mt = function (t) { function e() { return null !== t && t.apply(this, arguments) || this } return Nt(e, t), e.prototype.authorize = function (t, e) { return Qt.createAuthorizer(this, this.pusher.config).authorize(t, e) }, e }(It), Ht = function () { function t() { this.reset() } return t.prototype.get = function (t) { return Object.prototype.hasOwnProperty.call(this.members, t) ? { id: t, info: this.members[t] } : null }, t.prototype.each = function (t) { var e = this; z(this.members, (function (n, o) { t(e.get(o)) })) }, t.prototype.setMyID = function (t) { this.myID = t }, t.prototype.onSubscription = function (t) { this.members = t.presence.hash, this.count = t.presence.count, this.me = this.get(this.myID) }, t.prototype.addMember = function (t) { return null === this.get(t.user_id) && this.count++, this.members[t.user_id] = t.user_info, this.get(t.user_id) }, t.prototype.removeMember = function (t) { var e = this.get(t.user_id); return e && (delete this.members[t.user_id], this.count--), e }, t.prototype.reset = function () { this.members = {}, this.count = 0, this.myID = null, this.me = null }, t }(), qt = function () { var t = function (e, n) { return (t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) })(e, n) }; return function (e, n) { function o() { this.constructor = e } t(e, n), e.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o) } }(), Bt = function (t) { function e(e, n) { var o = t.call(this, e, n) || this; return o.members = new Ht, o } return qt(e, t), e.prototype.authorize = function (e, n) { var o = this; t.prototype.authorize.call(this, e, (function (t, e) { if (!t) { if (void 0 === (e = e).channel_data) { var r = p("authenticationEndpoint"); return $.error("Invalid auth response for channel '" + o.name + "',expected 'channel_data' field. " + r), void n("Invalid auth response") } var i = JSON.parse(e.channel_data); o.members.setMyID(i.user_id) } n(t, e) })) }, e.prototype.handleEvent = function (t) { var e = t.event; if (0 === e.indexOf("pusher_internal:")) this.handleInternalEvent(t); else { var n = t.data, o = {}; t.user_id && (o.user_id = t.user_id), this.emit(e, n, o) } }, e.prototype.handleInternalEvent = function (t) { var e = t.event, n = t.data; switch (e) { case "pusher_internal:subscription_succeeded": this.handleSubscriptionSucceededEvent(t); break; case "pusher_internal:member_added": var o = this.members.addMember(n); this.emit("pusher:member_added", o); break; case "pusher_internal:member_removed": var r = this.members.removeMember(n); r && this.emit("pusher:member_removed", r) } }, e.prototype.handleSubscriptionSucceededEvent = function (t) { this.subscriptionPending = !1, this.subscribed = !0, this.subscriptionCancelled ? this.pusher.unsubscribe(this.name) : (this.members.onSubscription(t.data), this.emit("pusher:subscription_succeeded", this.members)) }, e.prototype.disconnect = function () { this.members.reset(), t.prototype.disconnect.call(this) }, e }(Mt), zt = n(1), Ut = n(0), Ft = function () { var t = function (e, n) { return (t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) })(e, n) }; return function (e, n) { function o() { this.constructor = e } t(e, n), e.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o) } }(), Xt = function (t) { function e(e, n, o) { var r = t.call(this, e, n) || this; return r.key = null, r.nacl = o, r } return Ft(e, t), e.prototype.authorize = function (e, n) { var o = this; t.prototype.authorize.call(this, e, (function (t, e) { if (t) n(t, e); else { var r = e.shared_secret; r ? (o.key = Object(Ut.decode)(r), delete e.shared_secret, n(null, e)) : n(new Error("No shared_secret key in auth payload for encrypted channel: " + o.name), null) } })) }, e.prototype.trigger = function (t, e) { throw new v("Client events are not currently supported for encrypted channels") }, e.prototype.handleEvent = function (e) { var n = e.event, o = e.data; 0 !== n.indexOf("pusher_internal:") && 0 !== n.indexOf("pusher:") ? this.handleEncryptedEvent(n, o) : t.prototype.handleEvent.call(this, e) }, e.prototype.handleEncryptedEvent = function (t, e) { var n = this; if (this.key) if (e.ciphertext && e.nonce) { var o = Object(Ut.decode)(e.ciphertext); if (o.length < this.nacl.secretbox.overheadLength) $.error("Expected encrypted event ciphertext length to be " + this.nacl.secretbox.overheadLength + ", got: " + o.length); else { var r = Object(Ut.decode)(e.nonce); if (r.length < this.nacl.secretbox.nonceLength) $.error("Expected encrypted event nonce length to be " + this.nacl.secretbox.nonceLength + ", got: " + r.length); else { var i = this.nacl.secretbox.open(o, r, this.key); if (null === i) return $.debug("Failed to decrypt an event, probably because it was encrypted with a different key. Fetching a new key from the authEndpoint..."), void this.authorize(this.pusher.connection.socket_id, (function (e, s) { e ? $.error("Failed to make a request to the authEndpoint: " + s + ". Unable to fetch new key, so dropping encrypted event") : null !== (i = n.nacl.secretbox.open(o, r, n.key)) ? n.emit(t, n.getDataToEmit(i)) : $.error("Failed to decrypt event with new key. Dropping encrypted event") })); this.emit(t, this.getDataToEmit(i)) } } } else $.error("Unexpected format for encrypted event, expected object with `ciphertext` and `nonce` fields, got: " + e); else $.debug("Received encrypted event before key has been retrieved from the authEndpoint") }, e.prototype.getDataToEmit = function (t) { var e = Object(zt.decode)(t); try { return JSON.parse(e) } catch (t) { return e } }, e }(Mt), Jt = function () { var t = function (e, n) { return (t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) })(e, n) }; return function (e, n) { function o() { this.constructor = e } t(e, n), e.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o) } }(), Wt = function (t) { function e(e, n) { var o = t.call(this) || this; o.state = "initialized", o.connection = null, o.key = e, o.options = n, o.timeline = o.options.timeline, o.usingTLS = o.options.useTLS, o.errorCallbacks = o.buildErrorCallbacks(), o.connectionCallbacks = o.buildConnectionCallbacks(o.errorCallbacks), o.handshakeCallbacks = o.buildHandshakeCallbacks(o.errorCallbacks); var r = _e.getNetwork(); return r.bind("online", (function () { o.timeline.info({ netinfo: "online" }), "connecting" !== o.state && "unavailable" !== o.state || o.retryIn(0) })), r.bind("offline", (function () { o.timeline.info({ netinfo: "offline" }), o.connection && o.sendActivityCheck() })), o.updateStrategy(), o } return Jt(e, t), e.prototype.connect = function () { this.connection || this.runner || (this.strategy.isSupported() ? (this.updateState("connecting"), this.startConnecting(), this.setUnavailableTimer()) : this.updateState("failed")) }, e.prototype.send = function (t) { return !!this.connection && this.connection.send(t) }, e.prototype.send_event = function (t, e, n) { return !!this.connection && this.connection.send_event(t, e, n) }, e.prototype.disconnect = function () { this.disconnectInternally(), this.updateState("disconnected") }, e.prototype.isUsingTLS = function () { return this.usingTLS }, e.prototype.startConnecting = function () { var t = this, e = function (n, o) { n ? t.runner = t.strategy.connect(0, e) : "error" === o.action ? (t.emit("error", { type: "HandshakeError", error: o.error }), t.timeline.error({ handshakeError: o.error })) : (t.abortConnecting(), t.handshakeCallbacks[o.action](o)) }; this.runner = this.strategy.connect(0, e) }, e.prototype.abortConnecting = function () { this.runner && (this.runner.abort(), this.runner = null) }, e.prototype.disconnectInternally = function () { (this.abortConnecting(), this.clearRetryTimer(), this.clearUnavailableTimer(), this.connection) && this.abandonConnection().close() }, e.prototype.updateStrategy = function () { this.strategy = this.options.getStrategy({ key: this.key, timeline: this.timeline, useTLS: this.usingTLS }) }, e.prototype.retryIn = function (t) { var e = this; this.timeline.info({ action: "retry", delay: t }), t > 0 && this.emit("connecting_in", Math.round(t / 1e3)), this.retryTimer = new I(t || 0, (function () { e.disconnectInternally(), e.connect() })) }, e.prototype.clearRetryTimer = function () { this.retryTimer && (this.retryTimer.ensureAborted(), this.retryTimer = null) }, e.prototype.setUnavailableTimer = function () { var t = this; this.unavailableTimer = new I(this.options.unavailableTimeout, (function () { t.updateState("unavailable") })) }, e.prototype.clearUnavailableTimer = function () { this.unavailableTimer && this.unavailableTimer.ensureAborted() }, e.prototype.sendActivityCheck = function () { var t = this; this.stopActivityCheck(), this.connection.ping(), this.activityTimer = new I(this.options.pongTimeout, (function () { t.timeline.error({ pong_timed_out: t.options.pongTimeout }), t.retryIn(0) })) }, e.prototype.resetActivityCheck = function () { var t = this; this.stopActivityCheck(), this.connection && !this.connection.handlesActivityChecks() && (this.activityTimer = new I(this.activityTimeout, (function () { t.sendActivityCheck() }))) }, e.prototype.stopActivityCheck = function () { this.activityTimer && this.activityTimer.ensureAborted() }, e.prototype.buildConnectionCallbacks = function (t) { var e = this; return H({}, t, { message: function (t) { e.resetActivityCheck(), e.emit("message", t) }, ping: function () { e.send_event("pusher:pong", {}) }, activity: function () { e.resetActivityCheck() }, error: function (t) { e.emit("error", t) }, closed: function () { e.abandonConnection(), e.shouldRetry() && e.retryIn(1e3) } }) }, e.prototype.buildHandshakeCallbacks = function (t) { var e = this; return H({}, t, { connected: function (t) { e.activityTimeout = Math.min(e.options.activityTimeout, t.activityTimeout, t.connection.activityTimeout || 1 / 0), e.clearUnavailableTimer(), e.setConnection(t.connection), e.socket_id = e.connection.id, e.updateState("connected", { socket_id: e.socket_id }) } }) }, e.prototype.buildErrorCallbacks = function () { var t = this, e = function (e) { return function (n) { n.error && t.emit("error", { type: "WebSocketError", error: n.error }), e(n) } }; return { tls_only: e((function () { t.usingTLS = !0, t.updateStrategy(), t.retryIn(0) })), refused: e((function () { t.disconnect() })), backoff: e((function () { t.retryIn(1e3) })), retry: e((function () { t.retryIn(0) })) } }, e.prototype.setConnection = function (t) { for (var e in this.connection = t, this.connectionCallbacks) this.connection.bind(e, this.connectionCallbacks[e]); this.resetActivityCheck() }, e.prototype.abandonConnection = function () { if (this.connection) { for (var t in this.stopActivityCheck(), this.connectionCallbacks) this.connection.unbind(t, this.connectionCallbacks[t]); var e = this.connection; return this.connection = null, e } }, e.prototype.updateState = function (t, e) { var n = this.state; if (this.state = t, n !== t) { var o = t; "connected" === o && (o += " with new socket ID " + e.socket_id), $.debug("State changed", n + " -> " + o), this.timeline.info({ state: t, params: e }), this.emit("state_change", { previous: n, current: t }), this.emit(t, e) } }, e.prototype.shouldRetry = function () { return "connecting" === this.state || "connected" === this.state }, e }(ut), Gt = function () { function t() { this.channels = {} } return t.prototype.add = function (t, e) { return this.channels[t] || (this.channels[t] = function (t, e) { if (0 === t.indexOf("private-encrypted-")) { if (e.config.nacl) return Qt.createEncryptedChannel(t, e, e.config.nacl); var n = p("encryptedChannelSupport"); throw new v("Tried to subscribe to a private-encrypted- channel but no nacl implementation available. " + n) } return 0 === t.indexOf("private-") ? Qt.createPrivateChannel(t, e) : 0 === t.indexOf("presence-") ? Qt.createPresenceChannel(t, e) : Qt.createChannel(t, e) }(t, e)), this.channels[t] }, t.prototype.all = function () { return function (t) { var e = []; return z(t, (function (t) { e.push(t) })), e }(this.channels) }, t.prototype.find = function (t) { return this.channels[t] }, t.prototype.remove = function (t) { var e = this.channels[t]; return delete this.channels[t], e }, t.prototype.disconnect = function () { z(this.channels, (function (t) { t.disconnect() })) }, t }(); var Qt = { createChannels: function () { return new Gt }, createConnectionManager: function (t, e) { return new Wt(t, e) }, createChannel: function (t, e) { return new It(t, e) }, createPrivateChannel: function (t, e) { return new Mt(t, e) }, createPresenceChannel: function (t, e) { return new Bt(t, e) }, createEncryptedChannel: function (t, e, n) { return new Xt(t, e, n) }, createTimelineSender: function (t, e) { return new jt(t, e) }, createAuthorizer: function (t, e) { return e.authorizer ? e.authorizer(t, e) : new Rt(t, e) }, createHandshake: function (t, e) { return new At(t, e) }, createAssistantToTheTransportManager: function (t, e, n) { return new Pt(t, e, n) } }, Vt = function () { function t(t) { this.options = t || {}, this.livesLeft = this.options.lives || 1 / 0 } return t.prototype.getAssistant = function (t) { return Qt.createAssistantToTheTransportManager(this, t, { minPingDelay: this.options.minPingDelay, maxPingDelay: this.options.maxPingDelay }) }, t.prototype.isAlive = function () { return this.livesLeft > 0 }, t.prototype.reportDeath = function () { this.livesLeft -= 1 }, t }(), Yt = function () { function t(t, e) { this.strategies = t, this.loop = Boolean(e.loop), this.failFast = Boolean(e.failFast), this.timeout = e.timeout, this.timeoutLimit = e.timeoutLimit } return t.prototype.isSupported = function () { return G(this.strategies, M.method("isSupported")) }, t.prototype.connect = function (t, e) { var n = this, o = this.strategies, r = 0, i = this.timeout, s = null, c = function (a, u) { u ? e(null, u) : (r += 1, n.loop && (r %= o.length), r < o.length ? (i && (i *= 2, n.timeoutLimit && (i = Math.min(i, n.timeoutLimit))), s = n.tryStrategy(o[r], t, { timeout: i, failFast: n.failFast }, c)) : e(!0)) }; return s = this.tryStrategy(o[r], t, { timeout: i, failFast: this.failFast }, c), { abort: function () { s.abort() }, forceMinPriority: function (e) { t = e, s && s.forceMinPriority(e) } } }, t.prototype.tryStrategy = function (t, e, n, o) { var r = null, i = null; return n.timeout > 0 && (r = new I(n.timeout, (function () { i.abort(), o(!0) }))), i = t.connect(e, (function (t, e) { t && r && r.isRunning() && !n.failFast || (r && r.ensureAborted(), o(t, e)) })), { abort: function () { r && r.ensureAborted(), i.abort() }, forceMinPriority: function (t) { i.forceMinPriority(t) } } }, t }(), $t = function () { function t(t) { this.strategies = t } return t.prototype.isSupported = function () { return G(this.strategies, M.method("isSupported")) }, t.prototype.connect = function (t, e) { return function (t, e, n) { var o = X(t, (function (t, o, r, i) { return t.connect(e, n(o, i)) })); return { abort: function () { F(o, Kt) }, forceMinPriority: function (t) { F(o, (function (e) { e.forceMinPriority(t) })) } } }(this.strategies, t, (function (t, n) { return function (o, r) { n[t].error = o, o ? function (t) { return function (t, e) { for (var n = 0; n < t.length; n++)if (!e(t[n], n, t)) return !1; return !0 }(t, (function (t) { return Boolean(t.error) })) }(n) && e(!0) : (F(n, (function (t) { t.forceMinPriority(r.transport.priority) })), e(null, r)) } })) }, t }(); function Kt(t) { t.error || t.aborted || (t.abort(), t.aborted = !0) } var Zt = function () { function t(t, e, n) { this.strategy = t, this.transports = e, this.ttl = n.ttl || 18e5, this.usingTLS = n.useTLS, this.timeline = n.timeline } return t.prototype.isSupported = function () { return this.strategy.isSupported() }, t.prototype.connect = function (t, e) { var n = this.usingTLS, o = function (t) { var e = _e.getLocalStorage(); if (e) try { var n = e[te(t)]; if (n) return JSON.parse(n) } catch (e) { ee(t) } return null }(n), r = [this.strategy]; if (o && o.timestamp + this.ttl >= M.now()) { var i = this.transports[o.transport]; i && (this.timeline.info({ cached: !0, transport: o.transport, latency: o.latency }), r.push(new Yt([i], { timeout: 2 * o.latency + 1e3, failFast: !0 }))) } var s = M.now(), c = r.pop().connect(t, (function o(i, a) { i ? (ee(n), r.length > 0 ? (s = M.now(), c = r.pop().connect(t, o)) : e(i)) : (!function (t, e, n) { var o = _e.getLocalStorage(); if (o) try { o[te(t)] = Y({ timestamp: M.now(), transport: e, latency: n }) } catch (t) { } }(n, a.transport.name, M.now() - s), e(null, a)) })); return { abort: function () { c.abort() }, forceMinPriority: function (e) { t = e, c && c.forceMinPriority(e) } } }, t }(); function te(t) { return "pusherTransport" + (t ? "TLS" : "NonTLS") } function ee(t) { var e = _e.getLocalStorage(); if (e) try { delete e[te(t)] } catch (t) { } } var ne = function () { function t(t, e) { var n = e.delay; this.strategy = t, this.options = { delay: n } } return t.prototype.isSupported = function () { return this.strategy.isSupported() }, t.prototype.connect = function (t, e) { var n, o = this.strategy, r = new I(this.options.delay, (function () { n = o.connect(t, e) })); return { abort: function () { r.ensureAborted(), n && n.abort() }, forceMinPriority: function (e) { t = e, n && n.forceMinPriority(e) } } }, t }(), oe = function () { function t(t, e, n) { this.test = t, this.trueBranch = e, this.falseBranch = n } return t.prototype.isSupported = function () { return (this.test() ? this.trueBranch : this.falseBranch).isSupported() }, t.prototype.connect = function (t, e) { return (this.test() ? this.trueBranch : this.falseBranch).connect(t, e) }, t }(), re = function () { function t(t) { this.strategy = t } return t.prototype.isSupported = function () { return this.strategy.isSupported() }, t.prototype.connect = function (t, e) { var n = this.strategy.connect(t, (function (t, o) { o && n.abort(), e(t, o) })); return n }, t }(); function ie(t) { return function () { return t.isSupported() } } var se, ce = function (t, e, n) { var o = {}; function r(e, r, i, s, c) { var a = n(t, e, r, i, s, c); return o[e] = a, a } var i, s = Object.assign({}, e, { hostNonTLS: t.wsHost + ":" + t.wsPort, hostTLS: t.wsHost + ":" + t.wssPort, httpPath: t.wsPath }), c = Object.assign({}, s, { useTLS: !0 }), a = Object.assign({}, e, { hostNonTLS: t.httpHost + ":" + t.httpPort, hostTLS: t.httpHost + ":" + t.httpsPort, httpPath: t.httpPath }), u = { loop: !0, timeout: 15e3, timeoutLimit: 6e4 }, h = new Vt({ lives: 2, minPingDelay: 1e4, maxPingDelay: t.activityTimeout }), p = new Vt({ lives: 2, minPingDelay: 1e4, maxPingDelay: t.activityTimeout }), l = r("ws", "ws", 3, s, h), f = r("wss", "ws", 3, c, h), d = r("sockjs", "sockjs", 1, a), y = r("xhr_streaming", "xhr_streaming", 1, a, p), g = r("xdr_streaming", "xdr_streaming", 1, a, p), v = r("xhr_polling", "xhr_polling", 1, a), b = r("xdr_polling", "xdr_polling", 1, a), m = new Yt([l], u), w = new Yt([f], u), _ = new Yt([d], u), S = new Yt([new oe(ie(y), y, g)], u), k = new Yt([new oe(ie(v), v, b)], u), C = new Yt([new oe(ie(S), new $t([S, new ne(k, { delay: 4e3 })]), k)], u), T = new oe(ie(C), C, _); return i = e.useTLS ? new $t([m, new ne(T, { delay: 2e3 })]) : new $t([m, new ne(w, { delay: 2e3 }), new ne(T, { delay: 5e3 })]), new Zt(new re(new oe(ie(l), i, T)), o, { ttl: 18e5, timeline: e.timeline, useTLS: e.useTLS }) }, ae = { getRequest: function (t) { var e = new window.XDomainRequest; return e.ontimeout = function () { t.emit("error", new d), t.close() }, e.onerror = function (e) { t.emit("error", e), t.close() }, e.onprogress = function () { e.responseText && e.responseText.length > 0 && t.onChunk(200, e.responseText) }, e.onload = function () { e.responseText && e.responseText.length > 0 && t.onChunk(200, e.responseText), t.emit("finished", 200), t.close() }, e }, abortRequest: function (t) { t.ontimeout = t.onerror = t.onprogress = t.onload = null, t.abort() } }, ue = function () { var t = function (e, n) { return (t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (t, e) { t.__proto__ = e } || function (t, e) { for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]) })(e, n) }; return function (e, n) { function o() { this.constructor = e } t(e, n), e.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o) } }(), he = function (t) { function e(e, n, o) { var r = t.call(this) || this; return r.hooks = e, r.method = n, r.url = o, r } return ue(e, t), e.prototype.start = function (t) { var e = this; this.position = 0, this.xhr = this.hooks.getRequest(this), this.unloader = function () { e.close() }, _e.addUnloadListener(this.unloader), this.xhr.open(this.method, this.url, !0), this.xhr.setRequestHeader && this.xhr.setRequestHeader("Content-Type", "application/json"), this.xhr.send(t) }, e.prototype.close = function () { this.unloader && (_e.removeUnloadListener(this.unloader), this.unloader = null), this.xhr && (this.hooks.abortRequest(this.xhr), this.xhr = null) }, e.prototype.onChunk = function (t, e) { for (; ;) { var n = this.advanceBuffer(e); if (!n) break; this.emit("chunk", { status: t, data: n }) } this.isBufferTooLong(e) && this.emit("buffer_too_long") }, e.prototype.advanceBuffer = function (t) { var e = t.slice(this.position), n = e.indexOf("\n"); return -1 !== n ? (this.position += n + 1, e.slice(0, n)) : null }, e.prototype.isBufferTooLong = function (t) { return this.position === t.length && t.length > 262144 }, e }(ut); !function (t) { t[t.CONNECTING = 0] = "CONNECTING", t[t.OPEN = 1] = "OPEN", t[t.CLOSED = 3] = "CLOSED" }(se || (se = {})); var pe = se, le = 1; function fe(t) { var e = -1 === t.indexOf("?") ? "?" : "&"; return t + e + "t=" + +new Date + "&n=" + le++ } function de(t) { return Math.floor(Math.random() * t) } var ye, ge = function () { function t(t, e) { this.hooks = t, this.session = de(1e3) + "/" + function (t) { for (var e = [], n = 0; n < t; n++)e.push(de(32).toString(32)); return e.join("") }(8), this.location = function (t) { var e = /([^\?]*)\/*(\??.*)/.exec(t); return { base: e[1], queryString: e[2] } }(e), this.readyState = pe.CONNECTING, this.openStream() } return t.prototype.send = function (t) { return this.sendRaw(JSON.stringify([t])) }, t.prototype.ping = function () { this.hooks.sendHeartbeat(this) }, t.prototype.close = function (t, e) { this.onClose(t, e, !0) }, t.prototype.sendRaw = function (t) { if (this.readyState !== pe.OPEN) return !1; try { return _e.createSocketRequest("POST", fe((e = this.location, n = this.session, e.base + "/" + n + "/xhr_send"))).start(t), !0 } catch (t) { return !1 } var e, n }, t.prototype.reconnect = function () { this.closeStream(), this.openStream() }, t.prototype.onClose = function (t, e, n) { this.closeStream(), this.readyState = pe.CLOSED, this.onclose && this.onclose({ code: t, reason: e, wasClean: n }) }, t.prototype.onChunk = function (t) { var e; if (200 === t.status) switch (this.readyState === pe.OPEN && this.onActivity(), t.data.slice(0, 1)) { case "o": e = JSON.parse(t.data.slice(1) || "{}"), this.onOpen(e); break; case "a": e = JSON.parse(t.data.slice(1) || "[]"); for (var n = 0; n < e.length; n++)this.onEvent(e[n]); break; case "m": e = JSON.parse(t.data.slice(1) || "null"), this.onEvent(e); break; case "h": this.hooks.onHeartbeat(this); break; case "c": e = JSON.parse(t.data.slice(1) || "[]"), this.onClose(e[0], e[1], !0) } }, t.prototype.onOpen = function (t) { var e, n, o; this.readyState === pe.CONNECTING ? (t && t.hostname && (this.location.base = (e = this.location.base, n = t.hostname, (o = /(https?:\/\/)([^\/:]+)((\/|:)?.*)/.exec(e))[1] + n + o[3])), this.readyState = pe.OPEN, this.onopen && this.onopen()) : this.onClose(1006, "Server lost session", !0) }, t.prototype.onEvent = function (t) { this.readyState === pe.OPEN && this.onmessage && this.onmessage({ data: t }) }, t.prototype.onActivity = function () { this.onactivity && this.onactivity() }, t.prototype.onError = function (t) { this.onerror && this.onerror(t) }, t.prototype.openStream = function () { var t = this; this.stream = _e.createSocketRequest("POST", fe(this.hooks.getReceiveURL(this.location, this.session))), this.stream.bind("chunk", (function (e) { t.onChunk(e) })), this.stream.bind("finished", (function (e) { t.hooks.onFinished(t, e) })), this.stream.bind("buffer_too_long", (function () { t.reconnect() })); try { this.stream.start() } catch (e) { M.defer((function () { t.onError(e), t.onClose(1006, "Could not start streaming", !1) })) } }, t.prototype.closeStream = function () { this.stream && (this.stream.unbind_all(), this.stream.close(), this.stream = null) }, t }(), ve = { getReceiveURL: function (t, e) { return t.base + "/" + e + "/xhr_streaming" + t.queryString }, onHeartbeat: function (t) { t.sendRaw("[]") }, sendHeartbeat: function (t) { t.sendRaw("[]") }, onFinished: function (t, e) { t.onClose(1006, "Connection interrupted (" + e + ")", !1) } }, be = { getReceiveURL: function (t, e) { return t.base + "/" + e + "/xhr" + t.queryString }, onHeartbeat: function () { }, sendHeartbeat: function (t) { t.sendRaw("[]") }, onFinished: function (t, e) { 200 === e ? t.reconnect() : t.onClose(1006, "Connection interrupted (" + e + ")", !1) } }, me = { getRequest: function (t) { var e = new (_e.getXHRAPI()); return e.onreadystatechange = e.onprogress = function () { switch (e.readyState) { case 3: e.responseText && e.responseText.length > 0 && t.onChunk(e.status, e.responseText); break; case 4: e.responseText && e.responseText.length > 0 && t.onChunk(e.status, e.responseText), t.emit("finished", e.status), t.close() } }, e }, abortRequest: function (t) { t.onreadystatechange = null, t.abort() } }, we = { createStreamingSocket: function (t) { return this.createSocket(ve, t) }, createPollingSocket: function (t) { return this.createSocket(be, t) }, createSocket: function (t, e) { return new ge(t, e) }, createXHR: function (t, e) { return this.createRequest(me, t, e) }, createRequest: function (t, e, n) { return new he(t, e, n) }, createXDR: function (t, e) { return this.createRequest(ae, t, e) } }, _e = { nextAuthCallbackID: 1, auth_callbacks: {}, ScriptReceivers: i, DependenciesReceivers: a, getDefaultStrategy: ce, Transports: kt, transportConnectionInitializer: function () { var t = this; t.timeline.info(t.buildTimelineMessage({ transport: t.name + (t.options.useTLS ? "s" : "") })), t.hooks.isInitialized() ? t.changeState("initialized") : t.hooks.file ? (t.changeState("initializing"), u.load(t.hooks.file, { useTLS: t.options.useTLS }, (function (e, n) { t.hooks.isInitialized() ? (t.changeState("initialized"), n(!0)) : (e && t.onError(e), t.onClose(), n(!1)) }))) : t.onClose() }, HTTPFactory: we, TimelineTransport: et, getXHRAPI: function () { return window.XMLHttpRequest }, getWebSocketAPI: function () { return window.WebSocket || window.MozWebSocket }, setup: function (t) { var e = this; window.Pusher = t; var n = function () { e.onDocumentBody(t.ready) }; window.JSON ? n() : u.load("json2", {}, n) }, getDocument: function () { return document }, getProtocol: function () { return this.getDocument().location.protocol }, getAuthorizers: function () { return { ajax: _, jsonp: K } }, onDocumentBody: function (t) { var e = this; document.body ? t() : setTimeout((function () { e.onDocumentBody(t) }), 0) }, createJSONPRequest: function (t, e) { return new tt(t, e) }, createScriptRequest: function (t) { return new Z(t) }, getLocalStorage: function () { try { return window.localStorage } catch (t) { return } }, createXHR: function () { return this.getXHRAPI() ? this.createXMLHttpRequest() : this.createMicrosoftXHR() }, createXMLHttpRequest: function () { return new (this.getXHRAPI()) }, createMicrosoftXHR: function () { return new ActiveXObject("Microsoft.XMLHTTP") }, getNetwork: function () { return Tt }, createWebSocket: function (t) { return new (this.getWebSocketAPI())(t) }, createSocketRequest: function (t, e) { if (this.isXHRSupported()) return this.HTTPFactory.createXHR(t, e); if (this.isXDRSupported(0 === e.indexOf("https:"))) return this.HTTPFactory.createXDR(t, e); throw "Cross-origin HTTP requests are not supported" }, isXHRSupported: function () { var t = this.getXHRAPI(); return Boolean(t) && void 0 !== (new t).withCredentials }, isXDRSupported: function (t) { var e = t ? "https:" : "http:", n = this.getProtocol(); return Boolean(window.XDomainRequest) && n === e }, addUnloadListener: function (t) { void 0 !== window.addEventListener ? window.addEventListener("unload", t, !1) : void 0 !== window.attachEvent && window.attachEvent("onunload", t) }, removeUnloadListener: function (t) { void 0 !== window.addEventListener ? window.removeEventListener("unload", t, !1) : void 0 !== window.detachEvent && window.detachEvent("onunload", t) } }; !function (t) { t[t.ERROR = 3] = "ERROR", t[t.INFO = 6] = "INFO", t[t.DEBUG = 7] = "DEBUG" }(ye || (ye = {})); var Se = ye, ke = function () { function t(t, e, n) { this.key = t, this.session = e, this.events = [], this.options = n || {}, this.sent = 0, this.uniqueID = 0 } return t.prototype.log = function (t, e) { t <= this.options.level && (this.events.push(H({}, e, { timestamp: M.now() })), this.options.limit && this.events.length > this.options.limit && this.events.shift()) }, t.prototype.error = function (t) { this.log(Se.ERROR, t) }, t.prototype.info = function (t) { this.log(Se.INFO, t) }, t.prototype.debug = function (t) { this.log(Se.DEBUG, t) }, t.prototype.isEmpty = function () { return 0 === this.events.length }, t.prototype.send = function (t, e) { var n = this, o = H({ session: this.session, bundle: this.sent + 1, key: this.key, lib: "js", version: this.options.version, cluster: this.options.cluster, features: this.options.features, timeline: this.events }, this.options.params); return this.events = [], t(o, (function (t, o) { t || n.sent++, e && e(t, o) })), !0 }, t.prototype.generateUniqueID = function () { return this.uniqueID++, this.uniqueID }, t }(), Ce = function () { function t(t, e, n, o) { this.name = t, this.priority = e, this.transport = n, this.options = o || {} } return t.prototype.isSupported = function () { return this.transport.isSupported({ useTLS: this.options.useTLS }) }, t.prototype.connect = function (t, e) { var n = this; if (!this.isSupported()) return Te(new m, e); if (this.priority < t) return Te(new y, e); var o = !1, r = this.transport.createConnection(this.name, this.priority, this.options.key, this.options), i = null, s = function () { r.unbind("initialized", s), r.connect() }, c = function () { i = Qt.createHandshake(r, (function (t) { o = !0, h(), e(null, t) })) }, a = function (t) { h(), e(t) }, u = function () { var t; h(), t = Y(r), e(new g(t)) }, h = function () { r.unbind("initialized", s), r.unbind("open", c), r.unbind("error", a), r.unbind("closed", u) }; return r.bind("initialized", s), r.bind("open", c), r.bind("error", a), r.bind("closed", u), r.initialize(), { abort: function () { o || (h(), i ? i.close() : r.close()) }, forceMinPriority: function (t) { o || n.priority < t && (i ? i.close() : r.close()) } } }, t }(); function Te(t, e) { return M.defer((function () { e(t) })), { abort: function () { }, forceMinPriority: function () { } } } var Pe = _e.Transports, Oe = function (t, e, n, o, r, i) { var s, c = Pe[n]; if (!c) throw new b(n); return !(t.enabledTransports && -1 === B(t.enabledTransports, e) || t.disabledTransports && -1 !== B(t.disabledTransports, e)) ? (r = Object.assign({ ignoreNullOrigin: t.ignoreNullOrigin }, r), s = new Ce(e, o, i ? i.getAssistant(c) : c, r)) : s = Ee, s }, Ee = { isSupported: function () { return !1 }, connect: function (t, e) { var n = M.defer((function () { e(new m) })); return { abort: function () { n.ensureAborted() }, forceMinPriority: function () { } } } }; function Le(t) { return t.httpHost ? t.httpHost : t.cluster ? "sockjs-" + t.cluster + ".pusher.com" : s.httpHost } function xe(t) { return t.wsHost ? t.wsHost : t.cluster ? Ae(t.cluster) : Ae(s.cluster) } function Ae(t) { return "ws-" + t + ".pusher.com" } function Re(t) { return "https:" === _e.getProtocol() || !1 !== t.forceTLS } function je(t) { return "enableStats" in t ? t.enableStats : "disableStats" in t && !t.disableStats } var De = function () { function t(e, n) { var o, r, i = this; if (function (t) { if (null == t) throw "You must pass your app key when you instantiate Pusher." }(e), !(n = n || {}).cluster && !n.wsHost && !n.httpHost) { var c = p("javascriptQuickStart"); $.warn("You should always specify a cluster when connecting. " + c) } "disableStats" in n && $.warn("The disableStats option is deprecated in favor of enableStats"), this.key = e, this.config = (r = { activityTimeout: (o = n).activityTimeout || s.activityTimeout, authEndpoint: o.authEndpoint || s.authEndpoint, authTransport: o.authTransport || s.authTransport, cluster: o.cluster || s.cluster, httpPath: o.httpPath || s.httpPath, httpPort: o.httpPort || s.httpPort, httpsPort: o.httpsPort || s.httpsPort, pongTimeout: o.pongTimeout || s.pongTimeout, statsHost: o.statsHost || s.stats_host, unavailableTimeout: o.unavailableTimeout || s.unavailableTimeout, wsPath: o.wsPath || s.wsPath, wsPort: o.wsPort || s.wsPort, wssPort: o.wssPort || s.wssPort, enableStats: je(o), httpHost: Le(o), useTLS: Re(o), wsHost: xe(o) }, "auth" in o && (r.auth = o.auth), "authorizer" in o && (r.authorizer = o.authorizer), "disabledTransports" in o && (r.disabledTransports = o.disabledTransports), "enabledTransports" in o && (r.enabledTransports = o.enabledTransports), "ignoreNullOrigin" in o && (r.ignoreNullOrigin = o.ignoreNullOrigin), "timelineParams" in o && (r.timelineParams = o.timelineParams), "nacl" in o && (r.nacl = o.nacl), r), this.channels = Qt.createChannels(), this.global_emitter = new ut, this.sessionID = Math.floor(1e9 * Math.random()), this.timeline = new ke(this.key, this.sessionID, { cluster: this.config.cluster, features: t.getClientFeatures(), params: this.config.timelineParams || {}, limit: 50, level: Se.INFO, version: s.VERSION }), this.config.enableStats && (this.timelineSender = Qt.createTimelineSender(this.timeline, { host: this.config.statsHost, path: "/timeline/v2/" + _e.TimelineTransport.name })); this.connection = Qt.createConnectionManager(this.key, { getStrategy: function (t) { return _e.getDefaultStrategy(i.config, t, Oe) }, timeline: this.timeline, activityTimeout: this.config.activityTimeout, pongTimeout: this.config.pongTimeout, unavailableTimeout: this.config.unavailableTimeout, useTLS: Boolean(this.config.useTLS) }), this.connection.bind("connected", (function () { i.subscribeAll(), i.timelineSender && i.timelineSender.send(i.connection.isUsingTLS()) })), this.connection.bind("message", (function (t) { var e = 0 === t.event.indexOf("pusher_internal:"); if (t.channel) { var n = i.channel(t.channel); n && n.handleEvent(t) } e || i.global_emitter.emit(t.event, t.data) })), this.connection.bind("connecting", (function () { i.channels.disconnect() })), this.connection.bind("disconnected", (function () { i.channels.disconnect() })), this.connection.bind("error", (function (t) { $.warn(t) })), t.instances.push(this), this.timeline.info({ instances: t.instances.length }), t.isReady && this.connect() } return t.ready = function () { t.isReady = !0; for (var e = 0, n = t.instances.length; e < n; e++)t.instances[e].connect() }, t.getClientFeatures = function () { return U(W({ ws: _e.Transports.ws }, (function (t) { return t.isSupported({}) }))) }, t.prototype.channel = function (t) { return this.channels.find(t) }, t.prototype.allChannels = function () { return this.channels.all() }, t.prototype.connect = function () { if (this.connection.connect(), this.timelineSender && !this.timelineSenderTimer) { var t = this.connection.isUsingTLS(), e = this.timelineSender; this.timelineSenderTimer = new N(6e4, (function () { e.send(t) })) } }, t.prototype.disconnect = function () { this.connection.disconnect(), this.timelineSenderTimer && (this.timelineSenderTimer.ensureAborted(), this.timelineSenderTimer = null) }, t.prototype.bind = function (t, e, n) { return this.global_emitter.bind(t, e, n), this }, t.prototype.unbind = function (t, e, n) { return this.global_emitter.unbind(t, e, n), this }, t.prototype.bind_global = function (t) { return this.global_emitter.bind_global(t), this }, t.prototype.unbind_global = function (t) { return this.global_emitter.unbind_global(t), this }, t.prototype.unbind_all = function (t) { return this.global_emitter.unbind_all(), this }, t.prototype.subscribeAll = function () { var t; for (t in this.channels.channels) this.channels.channels.hasOwnProperty(t) && this.subscribe(t) }, t.prototype.subscribe = function (t) { var e = this.channels.add(t, this); return e.subscriptionPending && e.subscriptionCancelled ? e.reinstateSubscription() : e.subscriptionPending || "connected" !== this.connection.state || e.subscribe(), e }, t.prototype.unsubscribe = function (t) { var e = this.channels.find(t); e && e.subscriptionPending ? e.cancelSubscription() : (e = this.channels.remove(t)) && e.subscribed && e.unsubscribe() }, t.prototype.send_event = function (t, e, n) { return this.connection.send_event(t, e, n) }, t.prototype.shouldUseTLS = function () { return this.config.useTLS }, t.instances = [], t.isReady = !1, t.logToConsole = !1, t.Runtime = _e, t.ScriptReceivers = _e.ScriptReceivers, t.DependenciesReceivers = _e.DependenciesReceivers, t.auth_callbacks = _e.auth_callbacks, t }(), Ie = e.default = De; _e.setup(De) }]) })); //# sourceMappingURL=pusher.min.js.map