!function (s) { function t(t) { for (var e, n, r = t[0], i = t[1], o = 0, a = [ ]; o < r.length; o++) Object.prototype.hasOwnProperty.call(u, n = r[o]) && u[n] && a.push(u[n][0]), u[n] = 0; for (e in i) Object.prototype.hasOwnProperty.call(i, e) && (s[e] = i[e]); for (l && l(t); a.length; ) a.shift() () } var n = { }, u = { 1: 0 }; function c(t) { if (n[t]) return n[t].exports; var e = n[t] = { i: t, l: !1, exports: { } }; return s[t].call(e.exports, e, e.exports, c), e.l = !0, e.exports } c.e = function (r) { var i, o, t, a, e, n = [ ], s = u[r]; return 0 !== s && (s ? n.push(s[2]) : (e = new Promise(function (t, e) { s = u[r] = [ t, e ] }), n.push(s[2] = e), (i = document.createElement('script')).charset = 'utf-8', i.timeout = 120, c.nc && i.setAttribute('nonce', c.nc), i.src = c.p + '' + ({ } [ e = r ] || e) + '.' + { 0: '9a115e30078beaa92dc1', 2: 'd1053a5a4f6cf0f977a4', 3: '0db1cfd53e3db2eac5e9', 4: '8a3e64f79808a873759d' } [ e ] + '.js', i.src.indexOf(window.location.origin + '/') && (i.crossOrigin = 'anonymous'), o = Error(), t = function (t) { i.onerror = i.onload = null, clearTimeout(a); var e, n = u[r]; 0 !== n && (n && (o.message = 'Loading chunk ' + r + ' failed.\n(' + (e = t && ('load' === t.type ? 'missing' : t.type)) + ': ' + (t = t && t.target && t.target.src) + ')', o.name = 'ChunkLoadError', o.type = e, o.request = t, n[1](o)), u[r] = void 0) }, a = setTimeout(function () { t({ type: 'timeout', target: i }) }, 120000), i.onerror = i.onload = t, document.head.appendChild(i))), Promise.all(n) }, c.m = s, c.c = n, c.d = function (t, e, n) { c.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }) }, c.r = function (t) { 'undefined' != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: 'Module' }), Object.defineProperty(t, '__esModule', { value: !0 }) }, c.t = function (e, t) { if (1 & t && (e = c(e)), 8 & t) return e; if (4 & t && 'object' == typeof e && e && e.__esModule) return e; var n = Object.create(null); if (c.r(n), Object.defineProperty(n, 'default', { enumerable: !0, value: e }), 2 & t && 'string' != typeof e) for (var r in e) c.d(n, r, function (t) { return e[t] }.bind(null, r)); return n }, c.n = function (t) { var e = t && t.__esModule ? function () { return t.default } : function () { return t }; return c.d(e, 'a', e), e }, c.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, c.p = '//c.disquscdn.com/next/publisher-admin/js/', c.oe = function (t) { throw console.error(t), t }; var e = (r = window.webpackJsonp = window.webpackJsonp || [ ]).push.bind(r); r.push = t; for (var r = r.slice(), i = 0; i < r.length; i++) t(r[i]); var l = e; c(c.s = 11) }([function (t, e) { var n = function () { return this }(); try { n = n || Function('return this') () } catch (t) { 'object' == typeof window && (n = window) } t.exports = n }, function (t, e, n) { function i(t) { return void 0 === t } function a(t) { return '[object Object]' === Object.prototype.toString.call(t) } function u(t) { return '[object String]' === Object.prototype.toString.call(t) } function s(t) { return '[object Array]' === Object.prototype.toString.call(t) } function r() { if (!('fetch' in y)) return !1; try { return new Headers, new Request(''), new Response, !0 } catch (t) { return !1 } } function o(t, e) { var n, r; if (i(t.length)) for (n in t) l(t, n) && e.call(null, n, t[n]); else if (r = t.length) for (n = 0; n < r; n++) e.call(null, n, t[n]) } function c(t, e) { if ('number' != typeof e) throw Error('2nd argument to `truncate` function should be a number'); return 'string' != typeof t || 0 === e || t.length <= e ? t : t.substr(0, e) + '…' } function l(t, e) { return Object.prototype.hasOwnProperty.call(t, e) } function f(t) { for (var e, n = [ ], r = 0, i = t.length; r < i; r++) u(e = t[r]) ? n.push(e.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1')) : e && e.source && n.push(e.source); return RegExp(n.join('|'), 'i') } function p(t) { var e, n, r, i, o = [ ]; if (!t || !t.tagName) return ''; if (o.push(t.tagName.toLowerCase()), t.id && o.push('#' + t.id), (e = t.className) && u(e)) for (n = e.split(/\s+/), s = 0; s < n.length; s++) o.push('.' + n[s]); for (var a = [ 'type', 'name', 'title', 'alt' ], s = 0; s < a.length; s++) (i = t.getAttribute(r = a[s])) && o.push('[' + r + '="' + i + '"]'); return o.join('') } function h(t, e) { if (!!t ^ !!e) return !1; var n, r, i = t.frames, o = e.frames; if (void 0 === i || void 0 === o) return !1; if (i.length !== o.length) return !1; for (var a = 0; a < i.length; a++) if ((n = i[a]).filename !== (r = o[a]).filename || n.lineno !== r.lineno || n.colno !== r.colno || n.function !== r.function) return !1; return !0 } function d(t) { return t = JSON.stringify(t), ~ - encodeURI(t).split(/%..|./).length } function m(t) { if ('string' == typeof t) return c(t, 40); if ('number' == typeof t || 'boolean' == typeof t || void 0 === t) return t; var e = Object.prototype.toString.call(t); return '[object Object]' === e ? '[Object]' : '[object Array]' === e ? '[Array]' : '[object Function]' === e ? t.name ? '[Function: ' + t.name + ']' : '[Function]' : t } var g, v, y, _, b; g = n(0), v = n(3), y = 'undefined' != typeof window ? window : void 0 !== g ? g : 'undefined' != typeof self ? self : { }, _ = 3, b = 51200, t.exports = { isObject: function (t) { return 'object' == typeof t && null !== t }, isError: function (t) { switch (Object.prototype.toString.call(t)) { case '[object Error]': case '[object Exception]': case '[object DOMException]': return !0; default: return t instanceof Error } }, isErrorEvent: function (t) { return '[object ErrorEvent]' === Object.prototype.toString.call(t) }, isDOMError: function (t) { return '[object DOMError]' === Object.prototype.toString.call(t) }, isDOMException: function (t) { return '[object DOMException]' === Object.prototype.toString.call(t) }, isUndefined: i, isFunction: function (t) { return 'function' == typeof t }, isPlainObject: a, isString: u, isArray: s, isEmptyObject: function (t) { if (!a(t)) return !1; for (var e in t) if (t.hasOwnProperty(e)) return !1; return !0 }, supportsErrorEvent: function () { try { return new ErrorEvent(''), !0 } catch (t) { return !1 } }, supportsDOMError: function () { try { return new DOMError(''), !0 } catch (t) { return !1 } }, supportsDOMException: function () { try { return new DOMException(''), !0 } catch (t) { return !1 } }, supportsFetch: r, supportsReferrerPolicy: function () { if (!r()) return !1; try { return new Request('pickleRick', { referrerPolicy: 'origin' }), !0 } catch (t) { return !1 } }, supportsPromiseRejectionEvent: function () { return 'function' == typeof PromiseRejectionEvent }, wrappedCallback: function (n) { return function (t, e) { return t = n(t) || t, e && e(t) || t } }, each: o, objectMerge: function (n, t) { return t && o(t, function (t, e) { n[t] = e }), n }, truncate: c, objectFrozen: function (t) { return !!Object.isFrozen && Object.isFrozen(t) }, hasKey: l, joinRegExp: f, urlencode: function (t) { var n = [ ]; return o(t, function (t, e) { n.push(encodeURIComponent(t) + '=' + encodeURIComponent(e)) }), n.join('&') }, uuid4: function () { var t = y.crypto || y.msCrypto; if (i(t) || !t.getRandomValues) return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (t) { var e = 16 * Math.random() | 0; return ('x' === t ? e : 3 & e | 8).toString(16) }); var e = new Uint16Array(8); return t.getRandomValues(e), e[3] = 4095 & e[3] | 16384, e[4] = 16383 & e[4] | 32768, (t = function (t) { for (var e = t.toString(16); e.length < 4; ) e = '0' + e; return e }) (e[0]) + t(e[1]) + t(e[2]) + t(e[3]) + t(e[4]) + t(e[5]) + t(e[6]) + t(e[7]) }, htmlTreeAsString: function (t) { for (var e, n = [ ], r = 0, i = 0; t && r++ < 5 && !('html' === (e = p(t)) || 1 < r && 80 <= i + 3 * n.length + e.length); ) n.push(e), i += e.length, t = t.parentNode; return n.reverse().join(' > ') }, htmlElementAsString: p, isSameException: function (t, e) { return !(!!t ^ !!e) && ((t = t.values[0]).type === (e = e.values[0]).type && t.value === e.value && (n = e.stacktrace, (!i(t.stacktrace) || !i(n)) && h(t.stacktrace, e.stacktrace))); var n }, isSameStacktrace: h, parseUrl: function (t) { return 'string' != typeof t ? { } : { protocol: (t = t.match(/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/)) [2], host: t[4], path: t[5], relative: t[5] + (t[6] || '') + (t[8] || '') } }, fill: function (t, e, n, r) { null != t && (t[e] = n(n = t[e]), t[e].__raven__ = !0, t[e].__orig__ = n, r && r.push([t, e, n])) }, safeJoin: function (t, e) { if (!s(t)) return ''; for (var n = [ ], r = 0; r < t.length; r++) try { n.push('' + t[r]) } catch (t) { n.push('[value cannot be serialized]') } return n.join(e) }, serializeException: function t(e, n, r) { if (!a(e)) return e; r = 'number' != typeof (n = 'number' != typeof n ? _ : n) ? b : r; var i = function n(r, i) { return 0 === i ? m(r) : a(r) ? Object.keys(r).reduce(function (t, e) { return t[e] = n(r[e], i - 1), t }, { }) : Array.isArray(r) ? r.map(function (t) { return n(t, i - 1) }) : m(r) }(e, n); return d(v(i)) > r ? t(e, n - 1) : i }, serializeKeysForMessage: function (t, e) { if ('number' == typeof t || 'string' == typeof t) return '' + t; if (!Array.isArray(t)) return ''; if (0 === (t = t.filter(function (t) { return 'string' == typeof t })).length) return '[object has no keys]'; if ((e = 'number' != typeof e ? 40 : e) <= t[0].length) return t[0]; for (var n = t.length; 0 < n; n--) { var r = t.slice(0, n).join(', '); if (!(e < r.length)) return n === t.length ? r : r + '…' } return '' }, sanitize: function (e, t) { if (!s(t) || s(t) && 0 === t.length) return e; var n, i = f(t), o = '********'; try { n = JSON.parse(v(e)) } catch (t) { return e } return function n(r) { return s(r) ? r.map(n) : a(r) ? Object.keys(r).reduce(function (t, e) { return i.test(e) ? t[e] = o : t[e] = n(r[e]), t }, { }) : r }(n) } } }, function (t, e, n) { var n = [ e, n(9), n(21), n(22), n(4) ], n = function (n, e, r, i, o) { 'use strict'; var a = !1, t = n.ImpressionManager = function () { this.isPrivate = !0, this.impId = r.generate() }; t.prototype.COOKIE_NAME = '__jid', t.prototype.TTL = 1800000, t.prototype.init = function (t) { this.isPrivate = t && t.isPrivate, this.isPrivate || (this.prevImp = e.read(this.COOKIE_NAME)), this.persist() }, t.prototype.setImpressionId = function (t) { this.impId = t, this.persist() }, t.prototype.persist = function () { this.isPrivate ? e.erase(this.COOKIE_NAME) : e.create(this.COOKIE_NAME, this.impId, { expiresIn: this.TTL }) }; var s = n.UniqueManager = function () { this.isPrivate = !0 }; s.prototype.COOKIE_NAME = 'disqus_unique', s.prototype.TTL = 31536000000, s.prototype.init = function (t) { this.isPrivate = t && t.isPrivate, this.isPrivate ? e.erase(this.COOKIE_NAME, { domain: window.location.host.split(':') [0] }) : (this.value = e.read(this.COOKIE_NAME) || r.generate(), e.create(this.COOKIE_NAME, this.value, { domain: window.location.host.split(':') [0], expiresIn: this.TTL })) }, s.prototype.isPersistent = function () { return !this.isPrivate && e.read(this.COOKIE_NAME) === this.value }, n.init = function (t, e) { a && !e || (n.impression.init(t), n.unique.init(t), a = !0) }, n.reset = function () { a = !1, n.impression = new t, n.unique = new s }, n.reset(), n.clientId = function () { var t, e = n.unique; return (t = e.isPersistent() ? e.value : t) || '' + o.get() }, n.getPercentBucketForString = function (t, e) { t = Math.abs(i.calculate(t)); if (e) { e = Math.pow(10, e); return t % (100 * e) / e } return t % 100 }, n.clientPercent = function () { return n.getPercentBucketForString(n.clientId()) } }.apply(e, n); void 0 === n || (t.exports = n) }, function (t, e) { function s(t, e) { for (var n = 0; n < t.length; ++n) if (t[n] === e) return n; return - 1 } function i(r, i) { var o = [ ], a = [ ]; return null == i && (i = function (t, e) { return o[0] === e ? '[Circular ~]' : '[Circular ~.' + a.slice(0, s(o, e)).join('.') + ']' }), function (t, e) { var n; return 0 < o.length ? (~(n = s(o, this)) ? o.splice(n + 1) : o.push(this), ~n ? a.splice(n, 1 / 0, t) : a.push(t), ~s(o, e) && (e = i.call(this, t, e))) : o.push(e), null == r ? e instanceof Error ? function (t) { var e, n = { stack: t.stack, message: t.message, name: t.name }; for (e in t) Object.prototype.hasOwnProperty.call(t, e) && (n[e] = t[e]); return n }(e) : e : r.call(this, t, e) } }(t.exports = function (t, e, n, r) { return JSON.stringify(t, i(e, r), n) }).getSerialize = i }, function (t, e, n) { e = function () { 'use strict'; return { get: function (t) { var e = (t = t || { }).Math || window.Math, t = t.Date || window.Date; try { var n = (new t).getTimezoneOffset(), r = 1, i = window.screen; i && i.availWidth ? r = i.availWidth * i.availHeight + i.colorDepth : i && i.width && (r = i.width * i.height); var o = window.document.documentElement; return e.abs(17 * n + 25 * r - o.clientWidth * o.clientHeight) } catch (t) { return 1 } } } }.apply(e, [ ]); void 0 === e || (t.exports = e) }, function (t, e, n) { var r, i, o, a; r = n(0), n = n(16), i = 'undefined' != typeof window ? window : void 0 !== r ? r : 'undefined' != typeof self ? self : { }, o = i.Raven, (a = new n).noConflict = function () { return i.Raven = o, a }, a.afterLoad(), t.exports = a, t.exports.Client = n }, function (t, e, n) { var n = [ n(7), n(8) ], n = function (e, n) { 'use strict'; return r = !1, i = null, o = function () { o._done || r && i && (o._done = !0, i()) }, (a = new XMLHttpRequest).addEventListener('load', t), a.addEventListener('error', t), a.open('GET', 'https://disqus.com/next/config.json'), a.send(), function (t) { i = t, o() }; function t() { var t; try { t = JSON.parse(a.responseText) } catch (t) { } t && e.extend(n, t), r = !0, o() } var r, i, o, a }.apply(e, n); void 0 === n || (t.exports = n) }, function (D, L, t) { var B; !function () { function e() { } var t = this, n = t._, r = Array.prototype, a = Object.prototype, i = r.push, u = r.slice, l = a.toString, o = a.hasOwnProperty, s = Array.isArray, c = Object.keys, f = Function.prototype.bind, p = Object.create, h = function (t) { return t instanceof h ? t : this instanceof h ? void (this._wrapped = t) : new h(t) }; ((L = D.exports ? D.exports = h : L)._ = h).VERSION = '1.8.3'; var d = function (i, o, t) { if (void 0 === o) return i; switch (null == t ? 3 : t) { case 1: return function (t) { return i.call(o, t) }; case 2: return function (t, e) { return i.call(o, t, e) }; case 3: return function (t, e, n) { return i.call(o, t, e, n) }; case 4: return function (t, e, n, r) { return i.call(o, t, e, n, r) } } return function () { return i.apply(o, arguments) } }, m = function (t, e, n) { return null == t ? h.identity : h.isFunction(t) ? d(t, e, n) : h.isObject(t) ? h.matcher(t) : h.property(t) }; h.iteratee = function (t, e) { return m(t, e, 1 / 0) }; function g(t) { return h.isObject(t) ? p ? p(t) : (e.prototype = t, t = new e, e.prototype = null, t) : { } } var v = function (u, c) { return function (t) { var e = arguments.length; if (e < 2 || null == t) return t; for (var n = 1; n < e; n++) for (var r = arguments[n], i = u(r), o = i.length, a = 0; a < o; a++) { var s = i[a]; c && void 0 !== t[s] || (t[s] = r[s]) } return t } }, y = function (e) { return function (t) { return null == t ? void 0 : t[e] } }, _ = y('length'), b = function (t) { t = _(t); return 'number' == typeof t && 0 <= t && t <= 9007199254740991 }; function x(s) { return function (t, e, n, r) { e = d(e, r, 4); var i = !b(t) && h.keys(t), o = (i || t).length, a = 0 < s ? 0 : o - 1; return arguments.length < 3 && (n = t[i ? i[a] : a], a += s), function (t, e, n, r, i, o) { for (; 0 <= i && i < o; i += s) { var a = r ? r[i] : i; n = e(n, t[a], a, t) } return n }(t, e, n, i, a, o) } } h.each = h.forEach = function (t, e, n) { if (e = d(e, n), b(t)) for (i = 0, o = t.length; i < o; i++) e(t[i], i, t); else for (var r = h.keys(t), i = 0, o = r.length; i < o; i++) e(t[r[i]], r[i], t); return t }, h.map = h.collect = function (t, e, n) { e = m(e, n); for (var r = !b(t) && h.keys(t), i = (r || t).length, o = Array(i), a = 0; a < i; a++) { var s = r ? r[a] : a; o[a] = e(t[s], s, t) } return o }, h.reduce = h.foldl = h.inject = x(1), h.reduceRight = h.foldr = x( - 1), h.find = h.detect = function (t, e, n) { n = b(t) ? h.findIndex(t, e, n) : h.findKey(t, e, n); if (void 0 !== n && - 1 !== n) return t[n] }, h.filter = h.select = function (t, r, e) { var i = [ ]; return r = m(r, e), h.each(t, function (t, e, n) { r(t, e, n) && i.push(t) }), i }, h.reject = function (t, e, n) { return h.filter(t, h.negate(m(e)), n) }, h.every = h.all = function (t, e, n) { e = m(e, n); for (var r = !b(t) && h.keys(t), i = (r || t).length, o = 0; o < i; o++) { var a = r ? r[o] : o; if (!e(t[a], a, t)) return !1 } return !0 }, h.some = h.any = function (t, e, n) { e = m(e, n); for (var r = !b(t) && h.keys(t), i = (r || t).length, o = 0; o < i; o++) { var a = r ? r[o] : o; if (e(t[a], a, t)) return !0 } return !1 }, h.contains = h.includes = h.include = function (t, e, n, r) { return b(t) || (t = h.values(t)), !!~h.indexOf(t, e, n = 'number' != typeof n || r ? 0 : n) }, h.invoke = function (t, n) { var r = u.call(arguments, 2), i = h.isFunction(n); return h.map(t, function (t) { var e = i ? n : t[n]; return null == e ? e : e.apply(t, r) }) }, h.pluck = function (t, e) { return h.map(t, h.property(e)) }, h.where = function (t, e) { return h.filter(t, h.matcher(e)) }, h.findWhere = function (t, e) { return h.find(t, h.matcher(e)) }, h.max = function (t, r, e) { var n, i, o = - 1 / 0, a = - 1 / 0; if (null == r && null != t) for (var s = 0, u = (t = b(t) ? t : h.values(t)).length; s < u; s++) o < (n = t[s]) && (o = n); else r = m(r, e), h.each(t, function (t, e, n) { i = r(t, e, n), (a < i || i === - 1 / 0 && o === - 1 / 0) && (o = t, a = i) }); return o }, h.min = function (t, r, e) { var n, i, o = 1 / 0, a = 1 / 0; if (null == r && null != t) for (var s = 0, u = (t = b(t) ? t : h.values(t)).length; s < u; s++) (n = t[s]) < o && (o = n); else r = m(r, e), h.each(t, function (t, e, n) { ((i = r(t, e, n)) < a || i === 1 / 0 && o === 1 / 0) && (o = t, a = i) }); return o }, h.shuffle = function (t) { for (var e, n = b(t) ? t : h.values(t), r = n.length, i = Array(r), o = 0; o < r; o++) (e = h.random(0, o)) !== o && (i[o] = i[e]), i[e] = n[o]; return i }, h.sample = function (t, e, n) { return null == e || n ? (t = !b(t) ? h.values(t) : t) [h.random(t.length - 1)] : h.shuffle(t).slice(0, Math.max(0, e)) }, h.sortBy = function (t, r, e) { return r = m(r, e), h.pluck(h.map(t, function (t, e, n) { return { value: t, index: e, criteria: r(t, e, n) } }).sort(function (t, e) { var n = t.criteria, r = e.criteria; if (n !== r) { if (r < n || void 0 === n) return 1; if (n < r || void 0 === r) return - 1 } return t.index - e.index }), 'value') }; function w(o) { return function (n, r, t) { var i = { }; return r = m(r, t), h.each(n, function (t, e) { e = r(t, e, n); o(i, t, e) }), i } } h.groupBy = w(function (t, e, n) { h.has(t, n) ? t[n].push(e) : t[n] = [ e ] }), h.indexBy = w(function (t, e, n) { t[n] = e }), h.countBy = w(function (t, e, n) { h.has(t, n) ? t[n]++ : t[n] = 1 }), h.toArray = function (t) { return t ? h.isArray(t) ? u.call(t) : b(t) ? h.map(t, h.identity) : h.values(t) : [ ] }, h.size = function (t) { return null == t ? 0 : (b(t) ? t : h.keys(t)).length }, h.partition = function (t, r, e) { r = m(r, e); var i = [ ], o = [ ]; return h.each(t, function (t, e, n) { (r(t, e, n) ? i : o).push(t) }), [ i, o ] }, h.first = h.head = h.take = function (t, e, n) { if (null != t) return null == e || n ? t[0] : h.initial(t, t.length - e) }, h.initial = function (t, e, n) { return u.call(t, 0, Math.max(0, t.length - (null == e || n ? 1 : e))) }, h.last = function (t, e, n) { if (null != t) return null == e || n ? t[t.length - 1] : h.rest(t, Math.max(0, t.length - e)) }, h.rest = h.tail = h.drop = function (t, e, n) { return u.call(t, null == e || n ? 1 : e) }, h.compact = function (t) { return h.filter(t, h.identity) }; var E = function (t, e, n, r) { for (var i = [ ], o = 0, a = r || 0, s = _(t); a < s; a++) { var u = t[a]; if (b(u) && (h.isArray(u) || h.isArguments(u))) { var c = 0, l = (u = !e ? E(u, e, n) : u).length; for (i.length += l; c < l; ) i[o++] = u[c++] } else n || (i[o++] = u) } return i }; function O(o) { return function (t, e, n) { e = m(e, n); for (var r = _(t), i = 0 < o ? 0 : r - 1; 0 <= i && i < r; i += o) if (e(t[i], i, t)) return i; return - 1 } } function k(o, a, s) { return function (t, e, n) { var r = 0, i = _(t); if ('number' == typeof n) 0 < o ? r = 0 <= n ? n : Math.max(n + i, r) : i = 0 <= n ? Math.min(n + 1, i) : n + i + 1; else if (s && n && i) return t[n = s(t, e)] === e ? n : - 1; if (e != e) return 0 <= (n = a(u.call(t, r, i), h.isNaN)) ? n + r : - 1; for (n = 0 < o ? r : i - 1; 0 <= n && n < i; n += o) if (t[n] === e) return n; return - 1 } } h.flatten = function (t, e) { return E(t, e, !1) }, h.without = function (t) { return h.difference(t, u.call(arguments, 1)) }, h.uniq = h.unique = function (t, e, n, r) { h.isBoolean(e) || (r = n, n = e, e = !1), null != n && (n = m(n, r)); for (var i = [ ], o = [ ], a = 0, s = _(t); a < s; a++) { var u = t[a], c = n ? n(u, a, t) : u; e ? (a && o === c || i.push(u), o = c) : n ? h.contains(o, c) || (o.push(c), i.push(u)) : h.contains(i, u) || i.push(u) } return i }, h.union = function () { return h.uniq(E(arguments, !0, !0)) }, h.intersection = function (t) { for (var e = [ ], n = arguments.length, r = 0, i = _(t); r < i; r++) { var o = t[r]; if (!h.contains(e, o)) { for (var a = 1; a < n && h.contains(arguments[a], o); a++); a === n && e.push(o) } } return e }, h.difference = function (t) { var e = E(arguments, !0, !0, 1); return h.filter(t, function (t) { return !h.contains(e, t) }) }, h.zip = function () { return h.unzip(arguments) }, h.unzip = function (t) { for (var e = t && h.max(t, _).length || 0, n = Array(e), r = 0; r < e; r++) n[r] = h.pluck(t, r); return n }, h.object = function (t, e) { for (var n = { }, r = 0, i = _(t); r < i; r++) e ? n[t[r]] = e[r] : n[t[r][0]] = t[r][1]; return n }, h.findIndex = O(1), h.findLastIndex = O( - 1), h.sortedIndex = function (t, e, n, r) { for (var i = (n = m(n, r, 1)) (e), o = 0, a = _(t); o < a; ) { var s = Math.floor((o + a) / 2); n(t[s]) < i ? o = 1 + s : a = s } return o }, h.indexOf = k(1, h.findIndex, h.sortedIndex), h.lastIndexOf = k( - 1, h.findLastIndex), h.range = function (t, e, n) { null == e && (e = t || 0, t = 0); for (var r = Math.max(Math.ceil((e - t) / (n = n || 1)), 0), i = Array(r), o = 0; o < r; o++, t += n) i[o] = t; return i }; function S(t, e, n, r, i) { return r instanceof e ? (n = g(t.prototype), i = t.apply(n, i), h.isObject(i) ? i : n) : t.apply(n, i) } h.bind = function (t, e) { if (f && t.bind === f) return f.apply(t, u.call(arguments, 1)); if (!h.isFunction(t)) throw new TypeError('Bind must be called on a function'); var n = u.call(arguments, 2), r = function () { return S(t, r, e, this, n.concat(u.call(arguments))) }; return r }, h.partial = function (i) { var o = u.call(arguments, 1), a = function () { for (var t = 0, e = o.length, n = Array(e), r = 0; r < e; r++) n[r] = o[r] === h ? arguments[t++] : o[r]; for (; t < arguments.length; ) n.push(arguments[t++]); return S(i, a, this, this, n) }; return a }, h.bindAll = function (t) { var e, n, r = arguments.length; if (r <= 1) throw Error('bindAll must be passed function names'); for (e = 1; e < r; e++) t[n = arguments[e]] = h.bind(t[n], t); return t }, h.memoize = function (r, i) { var o = function (t) { var e = o.cache, n = '' + (i ? i.apply(this, arguments) : t); return h.has(e, n) || (e[n] = r.apply(this, arguments)), e[n] }; return o.cache = { }, o }, h.delay = function (t, e) { var n = u.call(arguments, 2); return setTimeout(function () { return t.apply(null, n) }, e) }, h.defer = h.partial(h.delay, h, 1), h.throttle = function (n, r, i) { var o, a, s, u = null, c = 0; i = i || { }; function l() { c = !1 === i.leading ? 0 : h.now(), u = null, s = n.apply(o, a), u || (o = a = null) } return function () { var t = h.now(), e = r - (t - (c = !c && !1 === i.leading ? t : c)); return o = this, a = arguments, e <= 0 || r < e ? (u && (clearTimeout(u), u = null), c = t, s = n.apply(o, a), u || (o = a = null)) : u || !1 === i.trailing || (u = setTimeout(l, e)), s } }, h.debounce = function (e, n, r) { var i, o, a, s, u, c = function () { var t = h.now() - s; t < n && 0 <= t ? i = setTimeout(c, n - t) : (i = null, r || (u = e.apply(a, o), i || (a = o = null))) }; return function () { a = this, o = arguments, s = h.now(); var t = r && !i; return i = i || setTimeout(c, n), t && (u = e.apply(a, o), a = o = null), u } }, h.wrap = function (t, e) { return h.partial(e, t) }, h.negate = function (t) { return function () { return !t.apply(this, arguments) } }, h.compose = function () { var n = arguments, r = n.length - 1; return function () { for (var t = r, e = n[r].apply(this, arguments); t--; ) e = n[t].call(this, e); return e } }, h.after = function (t, e) { return function () { if (--t < 1) return e.apply(this, arguments) } }, h.before = function (t, e) { var n; return function () { return 0 < --t && (n = e.apply(this, arguments)), t <= 1 && (e = null), n } }, h.once = h.partial(h.before, 2); var j = !{ toString: null }.propertyIsEnumerable('toString'), T = [ 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString' ]; function C(t, e) { var n = T.length, r = t.constructor, i = h.isFunction(r) && r.prototype || a, o = 'constructor'; for (h.has(t, o) && !h.contains(e, o) && e.push(o); n--; ) (o = T[n]) in t && t[o] !== i[o] && !h.contains(e, o) && e.push(o) } h.keys = function (t) { if (!h.isObject(t)) return []; if (c) return c(t); var e, n = [ ]; for (e in t) h.has(t, e) && n.push(e); return j && C(t, n), n }, h.allKeys = function (t) { if (!h.isObject(t)) return []; var e, n = [ ]; for (e in t) n.push(e); return j && C(t, n), n }, h.values = function (t) { for (var e = h.keys(t), n = e.length, r = Array(n), i = 0; i < n; i++) r[i] = t[e[i]]; return r }, h.mapObject = function (t, e, n) { e = m(e, n); for (var r, i = h.keys(t), o = i.length, a = { }, s = 0; s < o; s++) a[r = i[s]] = e(t[r], r, t); return a }, h.pairs = function (t) { for (var e = h.keys(t), n = e.length, r = Array(n), i = 0; i < n; i++) r[i] = [ e[i], t[e[i]] ]; return r }, h.invert = function (t) { for (var e = { }, n = h.keys(t), r = 0, i = n.length; r < i; r++) e[t[n[r]]] = n[r]; return e }, h.functions = h.methods = function (t) { var e, n = [ ]; for (e in t) h.isFunction(t[e]) && n.push(e); return n.sort() }, h.extend = v(h.allKeys), h.extendOwn = h.assign = v(h.keys), h.findKey = function (t, e, n) { e = m(e, n); for (var r, i = h.keys(t), o = 0, a = i.length; o < a; o++) if (e(t[r = i[o]], r, t)) return r }, h.pick = function (t, e, n) { var r, i, o = { }, a = t; if (null == a) return o; h.isFunction(e) ? (i = h.allKeys(a), r = d(e, n)) : (i = E(arguments, !1, !1, 1), r = function (t, e, n) { return e in n }, a = Object(a)); for (var s = 0, u = i.length; s < u; s++) { var c = i[s], l = a[c]; r(l, c, a) && (o[c] = l) } return o }, h.omit = function (t, e, n) { var r; return e = h.isFunction(e) ? h.negate(e) : (r = h.map(E(arguments, !1, !1, 1), String), function (t, e) { return !h.contains(r, e) }), h.pick(t, e, n) }, h.defaults = v(h.allKeys, !0), h.create = function (t, e) { t = g(t); return e && h.extendOwn(t, e), t }, h.clone = function (t) { return h.isObject(t) ? h.isArray(t) ? t.slice() : h.extend({ }, t) : t }, h.tap = function (t, e) { return e(t), t }, h.isMatch = function (t, e) { var n = h.keys(e), r = n.length; if (null == t) return !r; for (var i = Object(t), o = 0; o < r; o++) { var a = n[o]; if (e[a] !== i[a] || !(a in i)) return !1 } return !0 }; var R = function (t, e, n, r) { if (t === e) return 0 !== t || 1 / t == 1 / e; if (null == t || null == e) return t === e; e instanceof h && (e = e._wrapped); var i = l.call(t = t instanceof h ? t._wrapped : t); if (i !== l.call(e)) return !1; switch (i) { case '[object RegExp]': case '[object String]': return '' + t == '' + e; case '[object Number]': return + t != + t ? + e != + e : 0 == + t ? 1 / + t == 1 / e : + t == + e; case '[object Date]': case '[object Boolean]': return + t == + e } var o = '[object Array]' === i; if (!o) { if ('object' != typeof t || 'object' != typeof e) return !1; var a = t.constructor, i = e.constructor; if (a !== i && !(h.isFunction(a) && a instanceof a && h.isFunction(i) && i instanceof i) && 'constructor' in t && 'constructor' in e) return !1 } r = r || [ ]; for (var s = (n = n || [ ]).length; s--; ) if (n[s] === t) return r[s] === e; if (n.push(t), r.push(e), o) { if ((s = t.length) !== e.length) return !1; for (; s--; ) if (!R(t[s], e[s], n, r)) return !1 } else { var u, c = h.keys(t), s = c.length; if (h.keys(e).length !== s) return !1; for (; s--; ) if (!h.has(e, u = c[s]) || !R(t[u], e[u], n, r)) return !1 } return n.pop(), r.pop(), !0 }; h.isEqual = function (t, e) { return R(t, e) }, h.isEmpty = function (t) { return null == t || (b(t) && (h.isArray(t) || h.isString(t) || h.isArguments(t)) ? 0 === t.length : 0 === h.keys(t).length) }, h.isElement = function (t) { return !(!t || 1 !== t.nodeType) }, h.isArray = s || function (t) { return '[object Array]' === l.call(t) }, h.isObject = function (t) { var e = typeof t; return 'function' == e || 'object' == e && !!t }, h.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function (e) { h['is' + e] = function (t) { return l.call(t) === '[object ' + e + ']' } }), h.isArguments(arguments) || (h.isArguments = function (t) { return h.has(t, 'callee') }), 'object' != typeof Int8Array && (h.isFunction = function (t) { return 'function' == typeof t || !1 }), h.isFinite = function (t) { return isFinite(t) && !isNaN(parseFloat(t)) }, h.isNaN = function (t) { return h.isNumber(t) && t !== + t }, h.isBoolean = function (t) { return !0 === t || !1 === t || '[object Boolean]' === l.call(t) }, h.isNull = function (t) { return null === t }, h.isUndefined = function (t) { return void 0 === t }, h.has = function (t, e) { return null != t && o.call(t, e) }, h.noConflict = function () { return t._ = n, this }, h.identity = function (t) { return t }, h.constant = function (t) { return function () { return t } }, h.noop = function () { }, h.property = y, h.propertyOf = function (e) { return null == e ? function () { } : function (t) { return e[t] } }, h.matcher = h.matches = function (e) { return e = h.extendOwn({ }, e), function (t) { return h.isMatch(t, e) } }, h.times = function (t, e, n) { var r = Array(Math.max(0, t)); e = d(e, n, 1); for (var i = 0; i < t; i++) r[i] = e(i); return r }, h.random = function (t, e) { return null == e && (e = t, t = 0), t + Math.floor(Math.random() * (e - t + 1)) }, h.now = Date.now || function () { return (new Date).getTime() }; v = { '&': '&', '<': '<', '>': '>', '"': '"', '\'': ''', '`': '`' }, s = h.invert(v), y = function (e) { function n(t) { return e[t] } var t = '(?:' + h.keys(e).join('|') + ')', r = RegExp(t), i = RegExp(t, 'g'); return function (t) { return r.test(t = null == t ? '' : '' + t) ? t.replace(i, n) : t } }; h.escape = y(v), h.unescape = y(s), h.result = function (t, e, n) { e = null == t ? void 0 : t[e]; return h.isFunction(e = void 0 === e ? n : e) ? e.call(t) : e }; var I = 0; h.uniqueId = function (t) { var e = ++I + ''; return t ? t + e : e }, h.templateSettings = { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g, escape: /<%-([\s\S]+?)%>/g }; function M(t) { return '\\' + N[t] } var P = /(.)^/, N = { '\'': '\'', '\\': '\\', '\r': 'r', '\n': 'n', '\u2028': 'u2028', '\u2029': 'u2029' }, A = /\\|'|\r|\n|\u2028|\u2029/g; h.template = function (o, t, e) { t = h.defaults({ }, t = !t && e ? e : t, h.templateSettings); var e = RegExp([(t.escape || P).source, (t.interpolate || P).source, (t.evaluate || P).source].join('|') + '|$', 'g'), a = 0, s = '__p+=\''; o.replace(e, function (t, e, n, r, i) { return s += o.slice(a, i).replace(A, M), a = i + t.length, e ? s += '\'+\n((__t=(' + e + '))==null?\'\':_.escape(__t))+\n\'' : n ? s += '\'+\n((__t=(' + n + '))==null?\'\':__t)+\n\'' : r && (s += '\';\n' + r + '\n__p+=\''), t }), s += '\';\n', s = 'var __t,__p=\'\',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,\'\');};\n' + (s = !t.variable ? 'with(obj||{}){\n' + s + '}\n' : s) + 'return __p;\n'; try { var n = Function(t.variable || 'obj', '_', s) } catch (t) { throw t.source = s, t } e = function (t) { return n.call(this, t, h) }; return e.source = 'function(' + (t.variable || 'obj') + '){\n' + s + '}', e }, h.chain = function (t) { t = h(t); return t._chain = !0, t }; function F(t, e) { return t._chain ? h(e).chain() : e } h.mixin = function (n) { h.each(h.functions(n), function (t) { var e = h[t] = n[t]; h.prototype[t] = function () { var t = [ this._wrapped ]; return i.apply(t, arguments), F(this, e.apply(h, t)) } }) }, h.mixin(h), h.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function (e) { var n = r[e]; h.prototype[e] = function () { var t = this._wrapped; return n.apply(t, arguments), 'shift' !== e && 'splice' !== e || 0 !== t.length || delete t[0], F(this, t) } }), h.each(['concat', 'join', 'slice'], function (t) { var e = r[t]; h.prototype[t] = function () { return F(this, e.apply(this._wrapped, arguments)) } }), h.prototype.value = function () { return this._wrapped }, h.prototype.valueOf = h.prototype.toJSON = h.prototype.value, h.prototype.toString = function () { return '' + this._wrapped }, void 0 === (B = function () { return h }.apply(L, [ ])) || (D.exports = B) }.call(this) }, function (t, e, n) { 'use strict'; t.exports = { lounge: { }, discovery: { }, experiments: { } } }, function (t, e, n) { e = function () { 'use strict'; var o = { _doc: window.document, create: function (t, e, n) { t = t + '=' + e + '; path=' + ((n = n || { }).path || '/'), e = n.domain, n = n.expiresIn; e && (t += '; domain=.' + e), '[object Number]' === Object.prototype.toString.call(n) && (t += '; expires=' + new Date((new Date).getTime() + n).toGMTString()), 'https:' === o._doc.location.protocol && (t += '; secure'), o._doc.cookie = t += '; SameSite=None' }, read: function (t) { for (var e, n = t + '=', r = o._doc.cookie.split(';'), i = 0; i < r.length; i++) if (!(e = r[i].replace(/^\s+/, '')).indexOf(n)) return e.substring(n.length); return null }, erase: function (t, e) { var n, r = { }; for (n in e) e.hasOwnProperty(n) && (r[n] = e[n]); return r.expiresIn = - 1, o.create(t, '', r) }, supported: function () { return o.create('cookie_support', '1'), '1' === o.read('cookie_support') && (o.erase('cookie_support'), !0) } }; return o }.apply(e, [ ]); void 0 === e || (t.exports = e) }, function (t, e) { var n, r, t = t.exports = { }; function i() { throw Error('setTimeout has not been defined') } function o() { throw Error('clearTimeout has not been defined') } function a(e) { if (n === setTimeout) return setTimeout(e, 0); if ((n === i || !n) && setTimeout) return (n = setTimeout) (e, 0); try { return n(e, 0) } catch (t) { try { return n.call(null, e, 0) } catch (t) { return n.call(this, e, 0) } } } !function () { try { n = 'function' == typeof setTimeout ? setTimeout : i } catch (t) { n = i } try { r = 'function' == typeof clearTimeout ? clearTimeout : o } catch (t) { r = o } }(); var s, u = [ ], c = !1, l = - 1; function f() { c && s && (c = !1, s.length ? u = s.concat(u) : l = - 1, u.length && p()) } function p() { if (!c) { var t = a(f); c = !0; for (var e = u.length; e; ) { for (s = u, u = [ ]; ++l < e; ) s && s[l].run(); l = - 1, e = u.length } s = null, c = !1, function (e) { if (r === clearTimeout) return clearTimeout(e); if ((r === o || !r) && clearTimeout) return (r = clearTimeout) (e); try { r(e) } catch (t) { try { return r.call(null, e) } catch (t) { return r.call(this, e) } } }(t) } } function h(t, e) { this.fun = t, this.array = e } function d() { } t.nextTick = function (t) { var e = Array(arguments.length - 1); if (1 < arguments.length) for (var n = 1; n < arguments.length; n++) e[n - 1] = arguments[n]; u.push(new h(t, e)), 1 !== u.length || c || a(p) }, h.prototype.run = function () { this.fun.apply(null, this.array) }, t.title = 'browser', t.browser = !0, t.env = { }, t.argv = [ ], t.version = '', t.versions = { }, t.on = d, t.addListener = d, t.once = d, t.off = d, t.removeListener = d, t.removeAllListeners = d, t.emit = d, t.prependListener = d, t.prependOnceListener = d, t.listeners = function (t) { return [] }, t.binding = function (t) { throw Error('process.binding is not supported') }, t.cwd = function () { return '/' }, t.chdir = function (t) { throw Error('process.chdir is not supported') }, t.umask = function () { return 0 } }, function (t, e, n) { n(12), t.exports = n(15) }, function (r, t, e) { !function (t, _) { var e, n; n = function () { 'use strict'; var e, n, r, i, o, t = Object.prototype.toString, a = void 0 !== _ ? function (t) { return _(t) } : setTimeout; try { Object.defineProperty({ }, 'x', { }), e = function (t, e, n, r) { return Object.defineProperty(t, e, { value: n, writable: !0, configurable: !1 !== r }) } } catch (t) { e = function (t, e, n) { return t[e] = n, t } } function s(t, e) { this.fn = t, this.self = e, this.next = void 0 } function u(t, e) { v.add(t, e), n = n || a(v.drain) } function c(t) { var e, n = typeof t; return 'function' == typeof (e = null != t && ('object' == n || 'function' == n) ? t.then : e) && e } function l() { for (var t = 0; t < this.chain.length; t++) !function (t, e, n) { var r, i; try { !1 === e ? n.reject(t.msg) : (r = !0 === e ? t.msg : e.call(void 0, t.msg)) === n.promise ? n.reject(TypeError('Promise-chain cycle')) : (i = c(r)) ? i.call(r, n.resolve, n.reject) : n.resolve(r) } catch (t) { n.reject(t) } }(this, 1 === this.state ? this.chain[t].success : this.chain[t].failure, this.chain[t]); this.chain.length = 0 } function f(t) { var n, r = this; if (!r.triggered) { r.triggered = !0, r.def && (r = r.def); try { (n = c(t)) ? u(function () { var e = new d(r); try { n.call(t, function () { f.apply(e, arguments) }, function () { p.apply(e, arguments) }) } catch (t) { p.call(e, t) } }) : (r.msg = t, r.state = 1, 0 < r.chain.length && u(l, r)) } catch (t) { p.call(new d(r), t) } } } function p(t) { var e = this; e.triggered || (e.triggered = !0, (e = e.def ? e.def : e).msg = t, e.state = 2, 0 < e.chain.length && u(l, e)) } function h(t, n, r, i) { for (var e = 0; e < n.length; e++) !function (e) { t.resolve(n[e]).then(function (t) { r(e, t) }, i) }(e) } function d(t) { this.def = t, this.triggered = !1 } function m(t) { this.promise = t, this.state = 0, this.triggered = !1, this.chain = [ ], this.msg = void 0 } function g(t) { if ('function' != typeof t) throw TypeError('Not a function'); if (0 !== this.__NPO__) throw TypeError('Not a promise'); this.__NPO__ = 1; var r = new m(this); this.then = function (t, e) { var n = { success: 'function' != typeof t || t, failure: 'function' == typeof e && e }; return n.promise = new this.constructor(function (t, e) { if ('function' != typeof t || 'function' != typeof e) throw TypeError('Not a function'); n.resolve = t, n.reject = e }), r.chain.push(n), 0 !== r.state && u(l, r), n.promise }, this.catch = function (t) { return this.then(void 0, t) }; try { t.call(void 0, function (t) { f.call(r, t) }, function (t) { p.call(r, t) }) } catch (t) { p.call(r, t) } } var v = { add: function (t, e) { o = new s(t, e), i ? i.next = o : r = o, i = o, o = void 0 }, drain: function () { var t = r; for (r = i = n = void 0; t; ) t.fn.call(t.self), t = t.next } }, y = e({ }, 'constructor', g, !1); return e(g.prototype = y, '__NPO__', 0, !1), e(g, 'resolve', function (n) { return n && 'object' == typeof n && 1 === n.__NPO__ ? n : new this(function (t, e) { if ('function' != typeof t || 'function' != typeof e) throw TypeError('Not a function'); t(n) }) }), e(g, 'reject', function (n) { return new this(function (t, e) { if ('function' != typeof t || 'function' != typeof e) throw TypeError('Not a function'); e(n) }) }), e(g, 'all', function (e) { var a = this; return '[object Array]' != t.call(e) ? a.reject(TypeError('Not an array')) : 0 === e.length ? a.resolve([]) : new a(function (n, t) { if ('function' != typeof n || 'function' != typeof t) throw TypeError('Not a function'); var r = e.length, i = Array(r), o = 0; h(a, e, function (t, e) { i[t] = e, ++o === r && n(i) }, t) }) }), e(g, 'race', function (e) { var r = this; return '[object Array]' != t.call(e) ? r.reject(TypeError('Not an array')) : new r(function (n, t) { if ('function' != typeof n || 'function' != typeof t) throw TypeError('Not a function'); h(r, e, function (t, e) { n(e) }, t) }) }), g }, (e = void 0 !== t ? t : this) [t = 'Promise'] = e[t] || n(), r.exports ? r.exports = e[t] : void 0 === (t = e[t]) || (r.exports = t) }.call(this, e(0), e(13).setImmediate) }, function (t, i, o) { !function (t) { var e = void 0 !== t && t || 'undefined' != typeof self && self || window, n = Function.prototype.apply; function r(t, e) { this._id = t, this._clearFn = e } i.setTimeout = function () { return new r(n.call(setTimeout, e, arguments), clearTimeout) }, i.setInterval = function () { return new r(n.call(setInterval, e, arguments), clearInterval) }, i.clearTimeout = i.clearInterval = function (t) { t && t.close() }, r.prototype.unref = r.prototype.ref = function () { }, r.prototype.close = function () { this._clearFn.call(e, this._id) }, i.enroll = function (t, e) { clearTimeout(t._idleTimeoutId), t._idleTimeout = e }, i.unenroll = function (t) { clearTimeout(t._idleTimeoutId), t._idleTimeout = - 1 }, i._unrefActive = i.active = function (t) { clearTimeout(t._idleTimeoutId); var e = t._idleTimeout; 0 <= e && (t._idleTimeoutId = setTimeout(function () { t._onTimeout && t._onTimeout() }, e)) }, o(14), i.setImmediate = 'undefined' != typeof self && self.setImmediate || void 0 !== t && t.setImmediate || this && this.setImmediate, i.clearImmediate = 'undefined' != typeof self && self.clearImmediate || void 0 !== t && t.clearImmediate || this && this.clearImmediate }.call(this, o(0)) }, function (t, e, n) { !function (t, h) { !function (n, r) { 'use strict'; var i, o, a, s, u, c, e, t; function l(t) { delete o[t] } function f(t) { if (a) setTimeout(f, 0, t); else { var e = o[t]; if (e) { a = !0; try { !function (t) { var e = t.callback, n = t.args; switch (n.length) { case 0: e(); break; case 1: e(n[0]); break; case 2: e(n[0], n[1]); break; case 3: e(n[0], n[1], n[2]); break; default: e.apply(r, n) } }(e) } finally { l(t), a = !1 } } } } function p() { function t(t) { t.source !== n || 'string' != typeof t.data || t.data.indexOf(e) || f( + t.data.slice(e.length)) } var e = 'setImmediate$' + Math.random() + '$'; n.addEventListener ? n.addEventListener('message', t, !1) : n.attachEvent('onmessage', t), u = function (t) { n.postMessage(e + t, '*') } } n.setImmediate || (i = 1, a = !(o = { }), s = n.document, t = (t = Object.getPrototypeOf && Object.getPrototypeOf(n)) && t.setTimeout ? t : n, '[object process]' === { }.toString.call(n.process) ? u = function (t) { h.nextTick(function () { f(t) }) } : !function () { if (n.postMessage && !n.importScripts) { var t = !0, e = n.onmessage; return n.onmessage = function () { t = !1 }, n.postMessage('', '*'), n.onmessage = e, t } }() ? u = n.MessageChannel ? ((e = new MessageChannel).port1.onmessage = function (t) { f(t.data) }, function (t) { e.port2.postMessage(t) }) : s && 'onreadystatechange' in s.createElement('script') ? (c = s.documentElement, function (t) { var e = s.createElement('script'); e.onreadystatechange = function () { f(t), e.onreadystatechange = null, c.removeChild(e), e = null }, c.appendChild(e) }) : function (t) { setTimeout(f, 0, t) } : p(), t.setImmediate = function (t) { 'function' != typeof t && (t = Function('' + t)); for (var e = Array(arguments.length - 1), n = 0; n < e.length; n++) e[n] = arguments[n + 1]; return o[i] = { callback: t, args: e }, u(i), i++ }, t.clearImmediate = l) }('undefined' == typeof self ? void 0 === t ? this : t : self) }.call(this, n(0), n(10)) }, function (t, e, n) { 'use strict'; n.r(e); var r = n(5), i = n.n(r), o = n(6), e = n.n(o), r = n(2), o = n.n(r), r = n(23), r = window.document.documentMode; r && r < 10 || i.a.config('//74c37adea3b3432b97c2dd38074768bc@sentry.services.disqus.com/29', { whitelistUrls: [ '//c.disquscdn.com/next/current/publisher-admin', '//c.disquscdn.com/next/current/publisher-admin', '//c.disquscdn.com/next/publisher-admin' ], release: 'current' }).install(), o.a.init({ isPrivate: window._v5Config.is_private }), e() (function () { Promise.all([n.e(2), n.e(3)]).then(n.bind(null, 24)) }), function (t, e, n) { t[n] = t[n] || [ ], t[n].push({ 'gtm.start': (new Date).getTime(), event: 'gtm.js' }); n = e.getElementsByTagName('script') [0], e = e.createElement('script'); e.async = !0, e.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-MRHN8JCT', n.parentNode.insertBefore(e, n) }(window, document, 'dataLayer') }, function (t, e, n) { function i() { return + new Date } function r(e, n) { return _(n) ? function (t) { return n(t, e) } : n } function o() { for (var t in this._hasJSON = !('object' != typeof JSON || !JSON.stringify), this._hasDocument = !y(J), this._hasNavigator = !y($), this._lastCapturedException = null, this._lastData = null, this._lastEventId = null, this._globalServer = null, this._globalKey = null, this._globalProject = null, this._globalContext = { }, this._globalOptions = { release: K.SENTRY_RELEASE && K.SENTRY_RELEASE.id, logger: 'javascript', ignoreErrors: [ ], ignoreUrls: [ ], whitelistUrls: [ ], includePaths: [ ], headers: null, collectWindowErrors: !0, captureUnhandledRejections: !0, maxMessageLength: 0, maxUrlLength: 250, stackTraceLimit: 50, autoBreadcrumbs: !0, instrument: !0, sampleRate: 1, sanitizeKeys: [ ] }, this._fetchDefaults = { method: 'POST', referrerPolicy: D() ? 'origin' : '' }, this._ignoreOnError = 0, this._isRavenInstalled = !1, this._originalErrorStackTraceLimit = Error.stackTraceLimit, this._originalConsole = K.console || { }, this._originalConsoleMethods = { }, this._plugins = [ ], this._startTime = i(), this._wrappedBuiltIns = [ ], this._breadcrumbs = [ ], this._lastCapturedEvent = null, this._location = K.location, this._lastHref = this._location && this._location.href, this._resetBackoff(), this._originalConsole) this._originalConsoleMethods[t] = this._originalConsole[t] } var a, s, u, c, l, f, p, h, d, m, g, v, y, _, b, x, w, E, O, k, S, j, T, C, R, I, M, P, N, A, F, D, L, B, U, H, q, z, K, J, $; a = n(0), s = n(17), u = n(3), c = n(18), l = n(19), f = n(1), p = f.isErrorEvent, h = f.isDOMError, d = f.isDOMException, m = f.isError, g = f.isObject, v = f.isPlainObject, y = f.isUndefined, _ = f.isFunction, b = f.isString, x = f.isArray, w = f.isEmptyObject, E = f.each, O = f.objectMerge, k = f.truncate, S = f.objectFrozen, j = f.hasKey, T = f.joinRegExp, C = f.urlencode, R = f.uuid4, I = f.htmlTreeAsString, M = f.isSameException, P = f.isSameStacktrace, N = f.parseUrl, A = f.fill, F = f.supportsFetch, D = f.supportsReferrerPolicy, L = f.serializeKeysForMessage, B = f.serializeException, U = f.sanitize, H = n(20).wrapMethod, q = 'source protocol user pass host port path'.split(' '), z = /^(?:(\w+):)?\/\/(?:(\w+)(:\w+)?@)?([\w\.-]+)(?::(\d+))?(\/.*)/, K = 'undefined' != typeof window ? window : void 0 !== a ? a : 'undefined' != typeof self ? self : { }, J = K.document, $ = K.navigator, (o.prototype = { VERSION: '3.27.0', debug: !1, TraceKit: s, config: function (t, e) { var n = this; if (n._globalServer) return this._logDebug('error', 'Error: Raven has already been configured'), n; if (!t) return n; var r = n._globalOptions; e && E(e, function (t, e) { 'tags' === t || 'extra' === t || 'user' === t ? n._globalContext[t] = e : r[t] = e }), n.setDSN(t), r.ignoreErrors.push(/^Script error\.?$/), r.ignoreErrors.push(/^Javascript error: Script error\.? on line 0$/), r.ignoreErrors = T(r.ignoreErrors), r.ignoreUrls = !!r.ignoreUrls.length && T(r.ignoreUrls), r.whitelistUrls = !!r.whitelistUrls.length && T(r.whitelistUrls), r.includePaths = T(r.includePaths), r.maxBreadcrumbs = Math.max(0, Math.min(r.maxBreadcrumbs || 100, 100)); e = { xhr: !0, console: !0, dom: !0, location: !0, sentry: !0 }, t = r.autoBreadcrumbs; '[object Object]' === { }.toString.call(t) ? t = O(e, t) : !1 !== t && (t = e), r.autoBreadcrumbs = t; e = { tryCatch: !0 }, t = r.instrument; return '[object Object]' === { }.toString.call(t) ? t = O(e, t) : !1 !== t && (t = e), r.instrument = t, s.collectWindowErrors = !!r.collectWindowErrors, n }, install: function () { var t = this; return t.isSetup() && !t._isRavenInstalled && (s.report.subscribe(function () { t._handleOnErrorStackInfo.apply(t, arguments) }), t._globalOptions.captureUnhandledRejections && t._attachPromiseRejectionHandler(), t._patchFunctionToString(), t._globalOptions.instrument && t._globalOptions.instrument.tryCatch && t._instrumentTryCatch(), t._globalOptions.autoBreadcrumbs && t._instrumentBreadcrumbs(), t._drainPlugins(), t._isRavenInstalled = !0), Error.stackTraceLimit = t._globalOptions.stackTraceLimit, this }, setDSN: function (t) { var e = this, n = e._parseDSN(t), r = n.path.lastIndexOf('/'), i = n.path.substr(1, r); e._dsn = t, e._globalKey = n.user, e._globalSecret = n.pass && n.pass.substr(1), e._globalProject = n.path.substr(1 + r), e._globalServer = e._getGlobalServer(n), e._globalEndpoint = e._globalServer + '/' + i + 'api/' + e._globalProject + '/store/', this._resetBackoff() }, context: function (t, e, n) { return _(t) && (n = e || [ ], e = t, t = { }), this.wrap(t, e).apply(this, n) }, wrap: function (r, i, o) { var t, a = this; if (y(i) && !_(r)) return r; if (_(r) && (i = r, r = void 0), !_(i)) return i; try { if (i.__raven__) return i; if (i.__raven_wrapper__) return i.__raven_wrapper__ } catch (t) { return i } function e() { var t = [ ], e = arguments.length, n = !r || r && !1 !== r.deep; for (o && _(o) && o.apply(this, arguments); e--; ) t[e] = n ? a.wrap(r, arguments[e]) : arguments[e]; try { return i.apply(this, t) } catch (t) { throw a._ignoreNextOnError(), a.captureException(t, r), t } } for (t in i) j(i, t) && (e[t] = i[t]); return e.prototype = i.prototype, (i.__raven_wrapper__ = e).__raven__ = !0, e.__orig__ = i, e }, uninstall: function () { return s.report.uninstall(), this._detachPromiseRejectionHandler(), this._unpatchFunctionToString(), this._restoreBuiltIns(), this._restoreConsole(), Error.stackTraceLimit = this._originalErrorStackTraceLimit, this._isRavenInstalled = !1, this }, _promiseRejectionHandler: function (t) { this._logDebug('debug', 'Raven caught unhandled promise rejection:', t), this.captureException(t.reason, { mechanism: { type: 'onunhandledrejection', handled: !1 } }) }, _attachPromiseRejectionHandler: function () { return this._promiseRejectionHandler = this._promiseRejectionHandler.bind(this), K.addEventListener && K.addEventListener('unhandledrejection', this._promiseRejectionHandler), this }, _detachPromiseRejectionHandler: function () { return K.removeEventListener && K.removeEventListener('unhandledrejection', this._promiseRejectionHandler), this }, captureException: function (e, t) { if (t = O({ trimHeadFrames: 0 }, t || { }), p(e) && e.error) e = e.error; else { if (h(e) || d(e)) { var n = e.name || (h(e) ? 'DOMError' : 'DOMException'); return this.captureMessage(e.message ? n + ': ' + e.message : n, O(t, { stacktrace: !0, trimHeadFrames: t.trimHeadFrames + 1 })) } if (!m(e)) { if (!v(e)) return this.captureMessage(e, O(t, { stacktrace: !0, trimHeadFrames: t.trimHeadFrames + 1 })); t = this._getCaptureExceptionOptionsFromPlainObject(t, e), e = Error(t.message) } } this._lastCapturedException = e; try { var r = s.computeStackTrace(e); this._handleStackInfo(r, t) } catch (t) { if (e !== t) throw t } return this }, _getCaptureExceptionOptionsFromPlainObject: function (t, e) { var n = Object.keys(e).sort(), t = O(t, { message: 'Non-Error exception captured with keys: ' + L(n), fingerprint: [ c(n) ], extra: t.extra || { } }); return t.extra.__serialized__ = B(e), t }, captureMessage: function (t, e) { if (!this._globalOptions.ignoreErrors.test || !this._globalOptions.ignoreErrors.test(t)) { var n = O({ message: t += '' }, e = e || { }); try { throw Error(t) } catch (t) { i = t } i.name = null; var r = s.computeStackTrace(i), i = x(r.stack) && r.stack[1], i = (i = i && 'Raven.captureException' === i.func ? r.stack[2] : i) && i.url || ''; if (!this._globalOptions.ignoreUrls.test || !this._globalOptions.ignoreUrls.test(i)) if (!this._globalOptions.whitelistUrls.test || this._globalOptions.whitelistUrls.test(i)) return (this._globalOptions.stacktrace || e.stacktrace || '' === n.message) && (n.fingerprint = null == n.fingerprint ? t : n.fingerprint, (e = O({ trimHeadFrames: 0 }, e)).trimHeadFrames += 1, e = this._prepareFrames(r, e), n.stacktrace = { frames: e.reverse() }), n.fingerprint && (n.fingerprint = x(n.fingerprint) ? n.fingerprint : [ n.fingerprint ]), this._send(n), this } }, captureBreadcrumb: function (t) { var e = O({ timestamp: i() / 1000 }, t); if (_(this._globalOptions.breadcrumbCallback)) { t = this._globalOptions.breadcrumbCallback(e); if (g(t) && !w(t)) e = t; else if (!1 === t) return this } return this._breadcrumbs.push(e), this._globalOptions.maxBreadcrumbs < this._breadcrumbs.length && this._breadcrumbs.shift(), this }, addPlugin: function (t) { var e = [ ].slice.call(arguments, 1); return this._plugins.push([t, e]), this._isRavenInstalled && this._drainPlugins(), this }, setUserContext: function (t) { return this._globalContext.user = t, this }, setExtraContext: function (t) { return this._mergeContext('extra', t), this }, setTagsContext: function (t) { return this._mergeContext('tags', t), this }, clearContext: function () { return this._globalContext = { }, this }, getContext: function () { return JSON.parse(u(this._globalContext)) }, setEnvironment: function (t) { return this._globalOptions.environment = t, this }, setRelease: function (t) { return this._globalOptions.release = t, this }, setDataCallback: function (t) { return this._globalOptions.dataCallback = r(this._globalOptions.dataCallback, t), this }, setBreadcrumbCallback: function (t) { return this._globalOptions.breadcrumbCallback = r(this._globalOptions.breadcrumbCallback, t), this }, setShouldSendCallback: function (t) { return this._globalOptions.shouldSendCallback = r(this._globalOptions.shouldSendCallback, t), this }, setTransport: function (t) { return this._globalOptions.transport = t, this }, lastException: function () { return this._lastCapturedException }, lastEventId: function () { return this._lastEventId }, isSetup: function () { return !!this._hasJSON && (!!this._globalServer || (this.ravenNotConfiguredError || (this.ravenNotConfiguredError = !0, this._logDebug('error', 'Error: Raven has not been configured.')), !1)) }, afterLoad: function () { var t = K.RavenConfig; t && this.config(t.dsn, t.config).install() }, showReportDialog: function (t) { if (J) { if (!(t = O({ eventId: this.lastEventId(), dsn: this._dsn, user: this._globalContext.user || { } }, t)).eventId) throw new l('Missing eventId'); if (!t.dsn) throw new l('Missing DSN'); var e, n, r = encodeURIComponent, i = [ ]; for (e in t) 'user' === e ? ((n = t.user).name && i.push('name=' + r(n.name)), n.email && i.push('email=' + r(n.email))) : i.push(r(e) + '=' + r(t[e])); var o = this._getGlobalServer(this._parseDSN(t.dsn)), a = J.createElement('script'); a.async = !0, a.src = o + '/api/embed/error-page/?' + i.join('&'), (J.head || J.body).appendChild(a) } }, _ignoreNextOnError: function () { var t = this; this._ignoreOnError += 1, setTimeout(function () { --t._ignoreOnError }) }, _triggerEvent: function (t, e) { var n, r; if (this._hasDocument) { for (r in e = e || { }, t = 'raven' + t.substr(0, 1).toUpperCase() + t.substr(1), J.createEvent ? (n = J.createEvent('HTMLEvents')).initEvent(t, !0, !0) : (n = J.createEventObject()).eventType = t, e) j(e, r) && (n[r] = e[r]); if (J.createEvent) J.dispatchEvent(n); else try { J.fireEvent('on' + n.eventType.toLowerCase(), n) } catch (t) { } } }, _breadcrumbEventHandler: function (n) { var r = this; return function (t) { if (r._keypressTimeout = null, r._lastCapturedEvent !== t) { var e; r._lastCapturedEvent = t; try { e = I(t.target) } catch (t) { e = '' } r.captureBreadcrumb({ category: 'ui.' + n, message: e }) } } }, _keypressEventHandler: function () { var r = this; return function (t) { try { e = t.target } catch (t) { return } var e, n = e && e.tagName; n && ('INPUT' === n || 'TEXTAREA' === n || e.isContentEditable) && ((e = r._keypressTimeout) || r._breadcrumbEventHandler('input') (t), clearTimeout(e), r._keypressTimeout = setTimeout(function () { r._keypressTimeout = null }, 1000)) } }, _captureUrlChange: function (t, e) { var n = N(this._location.href), r = N(e), i = N(t); this._lastHref = e, this.captureBreadcrumb({ category: 'navigation', data: { to: e = n.protocol === r.protocol && n.host === r.host ? r.relative : e, from: t = n.protocol === i.protocol && n.host === i.host ? i.relative : t } }) }, _patchFunctionToString: function () { var t = this; t._originalFunctionToString = Function.prototype.toString, Function.prototype.toString = function () { return t._originalFunctionToString.apply('function' == typeof this && this.__raven__ ? this.__orig__ : this, arguments) } }, _unpatchFunctionToString: function () { this._originalFunctionToString && (Function.prototype.toString = this._originalFunctionToString) }, _instrumentTryCatch: function () { var c = this, e = c._wrappedBuiltIns; function t(o) { return function (t, e) { for (var n = Array(arguments.length), r = 0; r < n.length; ++r) n[r] = arguments[r]; var i = n[0]; return _(i) && (n[0] = c.wrap({ mechanism: { type: 'instrument', data: { function : o.name || '' } } }, i)), o.apply ? o.apply(this, n) : o(n[0], n[1]) } } var l = this._globalOptions.autoBreadcrumbs; A(K, 'setTimeout', t, e), A(K, 'setInterval', t, e), K.requestAnimationFrame && A(K, 'requestAnimationFrame', function (e) { return function (t) { return e(c.wrap({ mechanism: { type: 'instrument', data: { function : 'requestAnimationFrame', handler: e && e.name || '' } } }, t)) } }, e); for (var n = [ 'EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload' ], r = 0; r < n.length; r++) !function (u) { var t = K[u] && K[u].prototype; t && t.hasOwnProperty && t.hasOwnProperty('addEventListener') && (A(t, 'addEventListener', function (s) { return function (t, e, n, r) { try { e && e.handleEvent && (e.handleEvent = c.wrap({ mechanism: { type: 'instrument', data: { target: u, function : 'handleEvent', handler: e && e.name || '' } } }, e.handleEvent)) } catch (t) { } var i, o, a; return l && l.dom && ('EventTarget' === u || 'Node' === u) && (o = c._breadcrumbEventHandler('click'), a = c._keypressEventHandler(), i = function (t) { if (t) { var e; try { e = t.type } catch (t) { return } return 'click' === e ? o(t) : 'keypress' === e ? a(t) : void 0 } }), s.call(this, t, c.wrap({ mechanism: { type: 'instrument', data: { target: u, function : 'addEventListener', handler: e && e.name || '' } } }, e, i), n, r) } }, e), A(t, 'removeEventListener', function (i) { return function (t, e, n, r) { try { e = e && (e.__raven_wrapper__ || e) } catch (t) { } return i.call(this, t, e, n, r) } }, e)) }(n[r]) }, _instrumentBreadcrumbs: function () { var s = this, t = this._globalOptions.autoBreadcrumbs, e = s._wrappedBuiltIns; t.xhr && 'XMLHttpRequest' in K && (A(i = K.XMLHttpRequest && K.XMLHttpRequest.prototype, 'open', function (n) { return function (t, e) { return b(e) && !~e.indexOf(s._globalKey) && (this.__raven_xhr = { method: t, url: e, status_code: null }), n.apply(this, arguments) } }, e), A(i, 'send', function (i) { return function () { var t = this; function e() { if (t.__raven_xhr && 4 === t.readyState) { try { t.__raven_xhr.status_code = t.status } catch (t) { } s.captureBreadcrumb({ type: 'http', category: 'xhr', data: t.__raven_xhr }) } } for (var n = [ 'onload', 'onerror', 'onprogress' ], r = 0; r < n.length; r++) !function (e, t) { e in t && _(t[e]) && A(t, e, function (t) { return s.wrap({ mechanism: { type: 'instrument', data: { function : e, handler: t && t.name || '' } } }, t) }) }(n[r], t); return 'onreadystatechange' in t && _(t.onreadystatechange) ? A(t, 'onreadystatechange', function (t) { return s.wrap({ mechanism: { type: 'instrument', data: { function : 'onreadystatechange', handler: t && t.name || '' } } }, t, e) }) : t.onreadystatechange = e, i.apply(this, arguments) } }, e)), t.xhr && F() && A(K, 'fetch', function (a) { return function () { for (var t = Array(arguments.length), e = 0; e < t.length; ++e) t[e] = arguments[e]; var n, r = t[0], i = 'GET'; if ('string' == typeof r ? n = r : 'Request' in K && r instanceof K.Request ? (n = r.url, r.method && (i = r.method)) : n = '' + r, ~n.indexOf(s._globalKey)) return a.apply(this, t); var o = { method: i = t[1] && t[1].method ? t[1].method : i, url: n, status_code: null }; return a.apply(this, t).then(function (t) { return o.status_code = t.status, s.captureBreadcrumb({ type: 'http', category: 'fetch', data: o }), t }).catch(function (t) { throw s.captureBreadcrumb({ type: 'http', category: 'fetch', data: o, level: 'error' }), t }) } }, e), t.dom && this._hasDocument && (J.addEventListener ? (J.addEventListener('click', s._breadcrumbEventHandler('click'), !1), J.addEventListener('keypress', s._keypressEventHandler(), !1)) : J.attachEvent && (J.attachEvent('onclick', s._breadcrumbEventHandler('click')), J.attachEvent('onkeypress', s._keypressEventHandler()))); var n, r, i = K.chrome; t.location && (!(i && i.app && i.app.runtime) && K.history && K.history.pushState && K.history.replaceState) && (n = K.onpopstate, K.onpopstate = function () { if (s._captureUrlChange(s._lastHref, s._location.href), n) return n.apply(this, arguments) }, A(K.history, 'pushState', i = function (e) { return function () { var t = 2 < arguments.length ? arguments[2] : void 0; return t && s._captureUrlChange(s._lastHref, t + ''), e.apply(this, arguments) } }, e), A(K.history, 'replaceState', i, e)), t.console && 'console' in K && console.log && (r = function (t, e) { s.captureBreadcrumb({ message: t, level: e.level, category: 'console' }) }, E(['debug', 'info', 'warn', 'error', 'log'], function (t, e) { H(console, e, r) })) }, _restoreBuiltIns: function () { for (var t; this._wrappedBuiltIns.length; ) (t = this._wrappedBuiltIns.shift()) [0][t[1]] = t[2] }, _restoreConsole: function () { for (var t in this._originalConsoleMethods) this._originalConsole[t] = this._originalConsoleMethods[t] }, _drainPlugins: function () { var n = this; E(this._plugins, function (t, e) { e[0].apply(n, [ n ].concat(e[1])) }) }, _parseDSN: function (e) { var t = z.exec(e), n = { }, r = 7; try { for (; r--; ) n[q[r]] = t[r] || '' } catch (t) { throw new l('Invalid DSN: ' + e) } if (n.pass && !this._globalOptions.allowSecretKey) throw new l('Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key'); return n }, _getGlobalServer: function (t) { var e = '//' + t.host + (t.port ? ':' + t.port : ''); return e = t.protocol ? t.protocol + ':' + e : e }, _handleOnErrorStackInfo: function (t, e) { (e = e || { }).mechanism = e.mechanism || { type: 'onerror', handled: !1 }, this._ignoreOnError || this._handleStackInfo(t, e) }, _handleStackInfo: function (t, e) { var n = this._prepareFrames(t, e); this._triggerEvent('handle', { stackInfo: t, options: e }), this._processException(t.name, t.message, t.url, t.lineno, n, e) }, _prepareFrames: function (n, t) { var r = this, i = [ ]; if (n.stack && n.stack.length && (E(n.stack, function (t, e) { e = r._normalizeFrame(e, n.url); e && i.push(e) }), t && t.trimHeadFrames)) for (var e = 0; e < t.trimHeadFrames && e < i.length; e++) i[e].in_app = !1; return i = i.slice(0, this._globalOptions.stackTraceLimit) }, _normalizeFrame: function (t, e) { var n = { filename: t.url, lineno: t.line, colno: t.column, function : t.func || '?' }; return t.url || (n.filename = e), n.in_app = !(this._globalOptions.includePaths.test && !this._globalOptions.includePaths.test(n.filename) || /(Raven|TraceKit)\./.test(n.function) || /raven\.(min\.)?js$/.test(n.filename)), n }, _processException: function (t, e, n, r, i, o) { var a, s = (t ? t + ': ' : '') + (e || ''); this._globalOptions.ignoreErrors.test && (this._globalOptions.ignoreErrors.test(e) || this._globalOptions.ignoreErrors.test(s)) || (i && i.length ? (n = i[0].filename || n, i.reverse(), a = { frames: i }) : n && (a = { frames: [ { filename: n, lineno: r, in_app: !0 } ] }), this._globalOptions.ignoreUrls.test && this._globalOptions.ignoreUrls.test(n) || this._globalOptions.whitelistUrls.test && !this._globalOptions.whitelistUrls.test(n) || (null == (o = (n = O({ exception: { values: [ { type: t, value: e, stacktrace: a } ] }, transaction: n }, o)).exception.values[0]).type && '' === o.value && (o.value = 'Unrecoverable error caught'), !n.exception.mechanism && n.mechanism && (n.exception.mechanism = n.mechanism, delete n.mechanism), n.exception.mechanism = O({ type: 'generic', handled: !0 }, n.exception.mechanism || { }), this._send(n))) }, _trimPacket: function (t) { var e, n = this._globalOptions.maxMessageLength; t.message && (t.message = k(t.message, n)), t.exception && ((e = t.exception.values[0]).value = k(e.value, n)); n = t.request; return n && (n.url && (n.url = k(n.url, this._globalOptions.maxUrlLength)), n.Referer && (n.Referer = k(n.Referer, this._globalOptions.maxUrlLength))), t.breadcrumbs && t.breadcrumbs.values && this._trimBreadcrumbs(t.breadcrumbs), t }, _trimBreadcrumbs: function (t) { for (var e, n, r = [ 'to', 'from', 'url' ], i = 0; i < t.values.length; ++i) if ((n = t.values[i]).hasOwnProperty('data') && g(n.data) && !S(n.data)) { for (var o = O({ }, n.data), a = 0; a < r.length; ++a) o.hasOwnProperty(e = r[a]) && o[e] && (o[e] = k(o[e], this._globalOptions.maxUrlLength)); t.values[i].data = o } }, _getHttpData: function () { if (this._hasNavigator || this._hasDocument) { var t = { }; return this._hasNavigator && $.userAgent && (t.headers = { 'User-Agent': $.userAgent }), K.location && K.location.href && (t.url = K.location.href), this._hasDocument && J.referrer && (t.headers || (t.headers = { }), t.headers.Referer = J.referrer), t } }, _resetBackoff: function () { this._backoffDuration = 0, this._backoffStart = null }, _shouldBackoff: function () { return this._backoffDuration && i() - this._backoffStart < this._backoffDuration }, _isRepeatData: function (t) { var e = this._lastData; return !(!e || t.message !== e.message || t.transaction !== e.transaction) && (t.stacktrace || e.stacktrace ? P(t.stacktrace, e.stacktrace) : !t.exception && !e.exception || M(t.exception, e.exception)) }, _setBackoffState: function (t) { if (!this._shouldBackoff()) { var e, n = t.status; if (400 === n || 401 === n || 429 === n) { try { e = F() ? t.headers.get('Retry-After') : t.getResponseHeader('Retry-After'), e = 1000 * parseInt(e, 10) } catch (t) { } this._backoffDuration = e || 2 * this._backoffDuration || 1000, this._backoffStart = i() } } }, _send: function (e) { var t = this._globalOptions, n = { project: this._globalProject, logger: t.logger, platform: 'javascript' }, r = this._getHttpData(); r && (n.request = r), e.trimHeadFrames && delete e.trimHeadFrames, (e = O(n, e)).tags = O(O({ }, this._globalContext.tags), e.tags), e.extra = O(O({ }, this._globalContext.extra), e.extra), e.extra['session:duration'] = i() - this._startTime, this._breadcrumbs && 0 < this._breadcrumbs.length && (e.breadcrumbs = { values: [ ].slice.call(this._breadcrumbs, 0) }), this._globalContext.user && (e.user = this._globalContext.user), t.environment && (e.environment = t.environment), t.release && (e.release = t.release), t.serverName && (e.server_name = t.serverName), e = this._sanitizeData(e), Object.keys(e).forEach(function (t) { null != e[t] && '' !== e[t] && !w(e[t]) || delete e[t] }), (e = _(t.dataCallback) ? t.dataCallback(e) || e : e) && !w(e) && (_(t.shouldSendCallback) && !t.shouldSendCallback(e) || (this._shouldBackoff() ? this._logDebug('warn', 'Raven dropped error due to backoff: ', e) : ('number' != typeof t.sampleRate || Math.random() < t.sampleRate) && this._sendProcessedPayload(e))) }, _sanitizeData: function (t) { return U(t, this._globalOptions.sanitizeKeys) }, _getUuid: function () { return R() }, _sendProcessedPayload: function (e, n) { var t, r, i, o = this, a = this._globalOptions; this.isSetup() && (e = this._trimPacket(e), this._globalOptions.allowDuplicates || !this._isRepeatData(e) ? (this._lastEventId = e.event_id || (e.event_id = this._getUuid()), this._lastData = e, this._logDebug('debug', 'Raven about to send:', e), t = { sentry_version: '7', sentry_client: 'raven-js/' + this.VERSION, sentry_key: this._globalKey }, this._globalSecret && (t.sentry_secret = this._globalSecret), r = e.exception && e.exception.values[0], this._globalOptions.autoBreadcrumbs && this._globalOptions.autoBreadcrumbs.sentry && this.captureBreadcrumb({ category: 'sentry', message: r ? (r.type ? r.type + ': ' : '') + r.value : e.message, event_id: e.event_id, level: e.level || 'error' }), (a.transport || this._makeRequest).call(this, { url: i = this._globalEndpoint, auth: t, data: e, options: a, onSuccess: function () { o._resetBackoff(), o._triggerEvent('success', { data: e, src: i }), n && n() }, onError: function (t) { o._logDebug('error', 'Raven transport failed to send: ', t), t.request && o._setBackoffState(t.request), o._triggerEvent('failure', { data: e, src: i }), t = t || Error('Raven send failed (no additional details provided)'), n && n(t) } })) : this._logDebug('warn', 'Raven dropped repeat event: ', e)) }, _makeRequest: function (n) { var t = n.url + '?' + C(n.auth), e = null, r = { }; if (n.options.headers && (e = this._evaluateHash(n.options.headers)), n.options.fetchParameters && (r = this._evaluateHash(n.options.fetchParameters)), F()) { r.body = u(n.data); var i = O({ }, this._fetchDefaults), r = O(i, r); return e && (r.headers = e), K.fetch(t, r).then(function (t) { var e; t.ok ? n.onSuccess && n.onSuccess() : ((e = Error('Sentry error code: ' + t.status)).request = t, n.onError && n.onError(e)) }).catch(function () { n.onError && n.onError(Error('Sentry error code: network unavailable')) }) } var o = K.XMLHttpRequest && new K.XMLHttpRequest; o && ('withCredentials' in o || 'undefined' != typeof XDomainRequest) && ('withCredentials' in o ? o.onreadystatechange = function () { var t; 4 !== o.readyState || (200 === o.status ? n.onSuccess && n.onSuccess() : n.onError && ((t = Error('Sentry error code: ' + o.status)).request = o, n.onError(t))) } : (o = new XDomainRequest, t = t.replace(/^https?:/, ''), n.onSuccess && (o.onload = n.onSuccess), n.onError && (o.onerror = function () { var t = Error('Sentry error code: XDomainRequest'); t.request = o, n.onError(t) })), o.open('POST', t), e && E(e, function (t, e) { o.setRequestHeader(t, e) }), o.send(u(n.data))) }, _evaluateHash: function (t) { var e, n, r = { }; for (e in t) t.hasOwnProperty(e) && (r[e] = 'function' == typeof (n = t[e]) ? n() : n); return r }, _logDebug: function (t) { this._originalConsoleMethods[t] && (this.debug || this._globalOptions.debug) && Function.prototype.apply.call(this._originalConsoleMethods[t], this._originalConsole, [ ].slice.call(arguments, 1)) }, _mergeContext: function (t, e) { y(e) ? delete this._globalContext[t] : this._globalContext[t] = O(this._globalContext[t] || { }, e) } }).setUser = o.prototype.setUserContext, o.prototype.setReleaseContext = o.prototype.setRelease, t.exports = o }, function (t, e, n) { function h() { return 'undefined' == typeof document || null == document.location ? '' : document.location.href } function c(t, e) { var n = null; if (!e || b.collectWindowErrors) { for (var r in u) if (u.hasOwnProperty(r)) try { u[r].apply(null, [ t ].concat(w.call(arguments, 2))) } catch (t) { n = t } if (n) throw n } } function r(t, e, n, r, i) { var o, a, s = _.isErrorEvent(i) ? i.error : i, u = _.isErrorEvent(t) ? t.message : t; return y ? (b.computeStackTrace.augmentStackTraceWithInitialElement(y, e, n, u), l()) : s && _.isError(s) ? c(b.computeStackTrace(s), !0) : (o = { url: e, line: n, column: r }, s = void 0, '[object String]' === { }.toString.call(u) && (a = u.match(E)) && (s = a[1], u = a[2]), o.func = '?', c({ name: s, message: u, url: h(), stack: [ o ] }, !0)), !!m && m.apply(this, arguments) } function l() { var t = y, e = g; c.apply(v = y = g = null, [ t, !1 ].concat(e)) } function i(t, e) { var n = w.call(arguments, 1); if (y) { if (v === t) return; l() } var r = b.computeStackTrace(t); if (v = t, g = n, setTimeout(function () { v === t && l() }, (y = r).incomplete ? 2000 : 0), !1 !== e) throw t } function o(t) { if (void 0 !== t.stack && t.stack) { for (var e, n, r = /^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|native|eval|webpack||[a-z]:|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, i = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx(?:-web)|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i, o = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\/.*?|\[native code\]|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i, a = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i, s = /\((\S*)(?::(\d+))(?::(\d+))\)/, u = t.stack.split('\n'), c = [ ], l = 0, f = u.length; l < f; ++l) { if (n = r.exec(u[l])) { var p = n[2] && 0 == n[2].indexOf('native'); n[2] && 0 == n[2].indexOf('eval') && (e = s.exec(n[2])) && (n[2] = e[1], n[3] = e[2], n[4] = e[3]), p = { url: p ? null : n[2], func: n[1] || '?', args: p ? [ n[2] ] : [ ], line: n[3] ? + n[3] : null, column: n[4] ? + n[4] : null } } else if (n = i.exec(u[l])) p = { url: n[2], func: n[1] || '?', args: [ ], line: + n[3], column: n[4] ? + n[4] : null }; else { if (!(n = o.exec(u[l]))) continue; n[3] && !!~n[3].indexOf(' > eval') && (e = a.exec(n[3])) ? (n[3] = e[1], n[4] = e[2], n[5] = null) : 0 !== l || n[5] || void 0 === t.columnNumber || (c[0].column = t.columnNumber + 1), p = { url: n[3], func: n[1] || '?', args: n[2] ? n[2].split(',') : [ ], line: n[4] ? + n[4] : null, column: n[5] ? + n[5] : null } } !p.func && p.line && (p.func = '?'), p.url && 'blob:' == p.url.substr(0, 5) && ((n = new XMLHttpRequest).open('GET', p.url, !1), n.send(null), 200 !== n.status || (n = (n.responseText || '').slice( - 300).match(/\/\/# sourceMappingURL=(.*)$/)) && ('~' == ((n = n[1]) [0] || '') && (n = ('undefined' == typeof document || null == document.location ? '' : document.location.origin || document.location.protocol + '//' + document.location.hostname + (document.location.port ? ':' + document.location.port : '')) + n.slice(1)), p.url = n.slice(0, - 4))), c.push(p) } return c.length ? { name: t.name, message: t.message, url: h(), stack: c } : null } } function f(t, e, n, r) { n = { url: e, line: n }; if (n.url && n.line) { if (t.incomplete = !1, n.func || (n.func = '?'), 0 < t.stack.length && t.stack[0].url === n.url) { if (t.stack[0].line === n.line) return !1; if (!t.stack[0].line && t.stack[0].func === n.func) return t.stack[0].line = n.line, !1 } return t.stack.unshift(n), t.partial = !0 } return !(t.incomplete = !0) } function p(t, e) { for (var n, r, i = /function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i, o = [ ], a = { }, s = !1, u = p.caller; u && !s; u = u.caller) if (u !== d && u !== b.report) { if (r = { url: null, func: '?', line: null, column: null }, u.name ? r.func = u.name : (n = i.exec('' + u)) && (r.func = n[1]), void 0 === r.func) try { r.func = n.input.substring(0, n.input.indexOf('{')) } catch (t) { } a['' + u] ? s = !0 : a['' + u] = !0, o.push(r) } e && o.splice(0, e); e = { name: t.name, message: t.message, url: h(), stack: o }; return f(e, t.sourceURL || t.fileName, t.line || t.lineNumber), e } function d(t, e) { var n = null; e = null == e ? 0 : + e; try { if (n = o(t)) return n } catch (t) { if (b.debug) throw t } try { if (n = p(t, e + 1)) return n } catch (t) { if (b.debug) throw t } return { name: t.name, message: t.message, url: h() } } var a, m, s, u, g, v, y, _, b, x, w, E; a = n(0), _ = n(1), b = { collectWindowErrors: !0, debug: !1 }, x = 'undefined' != typeof window ? window : void 0 !== a ? a : 'undefined' != typeof self ? self : { }, w = [ ].slice, E = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/, b.report = (u = [ ], y = v = g = null, i.subscribe = function (t) { s || (m = x.onerror, x.onerror = r, s = !0), u.push(t) }, i.unsubscribe = function (t) { for (var e = u.length - 1; 0 <= e; --e) u[e] === t && u.splice(e, 1) }, i.uninstall = function () { s && (x.onerror = m, s = !1, m = void 0), u = [ ] }, i), b.computeStackTrace = (d.augmentStackTraceWithInitialElement = f, d.computeStackTraceFromStackProp = o, d), t.exports = b }, function (t, e) { function f(t, e) { var n = (65535 & t) + (65535 & e); return (t >> 16) + (e >> 16) + (n >> 16) << 16 | 65535 & n } function s(t, e, n, r, i, o) { return f((o = f(f(e, t), f(r, o))) << (i = i) | o >>> 32 - i, n) } function p(t, e, n, r, i, o, a) { return s(e & n | ~e & r, t, e, i, o, a) } function h(t, e, n, r, i, o, a) { return s(e & r | n & ~r, t, e, i, o, a) } function d(t, e, n, r, i, o, a) { return s(e ^ n ^ r, t, e, i, o, a) } function m(t, e, n, r, i, o, a) { return s(n ^ (e | ~r), t, e, i, o, a) } function a(t, e) { var n, r, i, o; t[e >> 5] |= 128 << e % 32, t[14 + (e + 64 >>> 9 << 4)] = e; for (var a = 1732584193, s = - 271733879, u = - 1732584194, c = 271733878, l = 0; l < t.length; l += 16) a = p(n = a, r = s, i = u, o = c, t[l], 7, - 680876936), c = p(c, a, s, u, t[l + 1], 12, - 389564586), u = p(u, c, a, s, t[l + 2], 17, 606105819), s = p(s, u, c, a, t[l + 3], 22, - 1044525330), a = p(a, s, u, c, t[l + 4], 7, - 176418897), c = p(c, a, s, u, t[l + 5], 12, 1200080426), u = p(u, c, a, s, t[l + 6], 17, - 1473231341), s = p(s, u, c, a, t[l + 7], 22, - 45705983), a = p(a, s, u, c, t[l + 8], 7, 1770035416), c = p(c, a, s, u, t[l + 9], 12, - 1958414417), u = p(u, c, a, s, t[l + 10], 17, - 42063), s = p(s, u, c, a, t[l + 11], 22, - 1990404162), a = p(a, s, u, c, t[l + 12], 7, 1804603682), c = p(c, a, s, u, t[l + 13], 12, - 40341101), u = p(u, c, a, s, t[l + 14], 17, - 1502002290), a = h(a, s = p(s, u, c, a, t[l + 15], 22, 1236535329), u, c, t[l + 1], 5, - 165796510), c = h(c, a, s, u, t[l + 6], 9, - 1069501632), u = h(u, c, a, s, t[l + 11], 14, 643717713), s = h(s, u, c, a, t[l], 20, - 373897302), a = h(a, s, u, c, t[l + 5], 5, - 701558691), c = h(c, a, s, u, t[l + 10], 9, 38016083), u = h(u, c, a, s, t[l + 15], 14, - 660478335), s = h(s, u, c, a, t[l + 4], 20, - 405537848), a = h(a, s, u, c, t[l + 9], 5, 568446438), c = h(c, a, s, u, t[l + 14], 9, - 1019803690), u = h(u, c, a, s, t[l + 3], 14, - 187363961), s = h(s, u, c, a, t[l + 8], 20, 1163531501), a = h(a, s, u, c, t[l + 13], 5, - 1444681467), c = h(c, a, s, u, t[l + 2], 9, - 51403784), u = h(u, c, a, s, t[l + 7], 14, 1735328473), a = d(a, s = h(s, u, c, a, t[l + 12], 20, - 1926607734), u, c, t[l + 5], 4, - 378558), c = d(c, a, s, u, t[l + 8], 11, - 2022574463), u = d(u, c, a, s, t[l + 11], 16, 1839030562), s = d(s, u, c, a, t[l + 14], 23, - 35309556), a = d(a, s, u, c, t[l + 1], 4, - 1530992060), c = d(c, a, s, u, t[l + 4], 11, 1272893353), u = d(u, c, a, s, t[l + 7], 16, - 155497632), s = d(s, u, c, a, t[l + 10], 23, - 1094730640), a = d(a, s, u, c, t[l + 13], 4, 681279174), c = d(c, a, s, u, t[l], 11, - 358537222), u = d(u, c, a, s, t[l + 3], 16, - 722521979), s = d(s, u, c, a, t[l + 6], 23, 76029189), a = d(a, s, u, c, t[l + 9], 4, - 640364487), c = d(c, a, s, u, t[l + 12], 11, - 421815835), u = d(u, c, a, s, t[l + 15], 16, 530742520), a = m(a, s = d(s, u, c, a, t[l + 2], 23, - 995338651), u, c, t[l], 6, - 198630844), c = m(c, a, s, u, t[l + 7], 10, 1126891415), u = m(u, c, a, s, t[l + 14], 15, - 1416354905), s = m(s, u, c, a, t[l + 5], 21, - 57434055), a = m(a, s, u, c, t[l + 12], 6, 1700485571), c = m(c, a, s, u, t[l + 3], 10, - 1894986606), u = m(u, c, a, s, t[l + 10], 15, - 1051523), s = m(s, u, c, a, t[l + 1], 21, - 2054922799), a = m(a, s, u, c, t[l + 8], 6, 1873313359), c = m(c, a, s, u, t[l + 15], 10, - 30611744), u = m(u, c, a, s, t[l + 6], 15, - 1560198380), s = m(s, u, c, a, t[l + 13], 21, 1309151649), a = m(a, s, u, c, t[l + 4], 6, - 145523070), c = m(c, a, s, u, t[l + 11], 10, - 1120210379), u = m(u, c, a, s, t[l + 2], 15, 718787259), s = m(s, u, c, a, t[l + 9], 21, - 343485551), a = f(a, n), s = f(s, r), u = f(u, i), c = f(c, o); return [a, s, u, c] } function u(t) { for (var e = '', n = 32 * t.length, r = 0; r < n; r += 8) e += String.fromCharCode(t[r >> 5] >>> r % 32 & 255); return e } function c(t) { var e = [ ]; for (e[(t.length >> 2) - 1] = void 0, r = 0; r < e.length; r += 1) e[r] = 0; for (var n = 8 * t.length, r = 0; r < n; r += 8) e[r >> 5] |= (255 & t.charCodeAt(r / 8)) << r % 32; return e } function r(t) { for (var e, n = '0123456789abcdef', r = '', i = 0; i < t.length; i += 1) r += (n[0 | (e = t.charCodeAt(i)) >>> 4 & 15] || '') + (n[0 | 15 & e] || ''); return r } function n(t) { return unescape(encodeURIComponent(t)) } function i(t) { return u(a(c(t = n(t)), 8 * t.length)) } function o(t, e) { return function (t, e) { var n, r = c(t), i = [ ], o = [ ]; for (i[15] = o[15] = void 0, 16 < r.length && (r = a(r, 8 * t.length)), n = 0; n < 16; n += 1) i[n] = 909522486 ^ r[n], o[n] = 1549556828 ^ r[n]; return e = a(i.concat(c(e)), 512 + 8 * e.length), u(a(o.concat(e), 640)) }(n(t), n(e)) } t.exports = function (t, e, n) { return e ? n ? o(e, t) : r(o(e, t)) : n ? i(t) : r(i(t)) } }, function (t, e) { function n(t) { this.name = 'RavenConfigError', this.message = t } t.exports = (n.prototype = Error()).constructor = n }, function (t, e, n) { var u = n(1); t.exports = { wrapMethod: function (t, r, i) { var o, a = t[r], s = t; r in t && (o = 'warn' === r ? 'warning' : r, t[r] = function () { var t = [ ].slice.call(arguments), e = u.safeJoin(t, ' '), n = { level: o, logger: 'console', extra: { arguments: t } }; 'assert' === r ? !1 === t[0] && (e = 'Assertion failed: ' + (u.safeJoin(t.slice(1), ' ') || 'console.assert'), n.extra.arguments = t.slice(1), i && i(e, n)) : i && i(e, n), a && Function.prototype.apply.call(a, s, t) }) } } }, function (t, e, n) { var n = [ n(4) ], n = function (r) { 'use strict'; return { generate: function (t) { var e = (t = t || { }).Math || window.Math, n = + ('' + (new Date).getTime()).substring(3), n = e.abs(n + ((n = (n = window.performance) && n.timing) ? 11 * (n.domainLookupEnd - n.domainLookupStart) + 13 * (n.connectEnd - n.connectStart) + 17 * (n.responseStart - n.navigationStart) : 100000) - r.get()).toString(32); return n += function (e) { var t = (e = e || { }).Uint32Array || window.Uint32Array, n = e.crypto || window.crypto, e = e.Math || window.Math; try { var r = new t(1); return n.getRandomValues(r), r[0] } catch (t) { return e.floor(1000000000 * e.random()) } }(t).toString(32) } } }.apply(e, n); void 0 === n || (t.exports = n) }, function (t, e, n) { e = function () { 'use strict'; return { calculate: function (t) { var e, n, r = 0; if (0 === t.length) return r; for (e = 0, n = t.length; e < n; e++) r = (r << 5) - r + t.charCodeAt(e), r |= 0; return r } } }.apply(e, [ ]); void 0 === e || (t.exports = e) }, function (t, e) { !function (p, l, h) { function s(t, e) { return typeof t === e } function d(t) { return 'function' != typeof l.createElement ? l.createElement(t) : b ? l.createElementNS.call(l, 'http://www.w3.org/2000/svg', t) : l.createElement.apply(l, arguments) } function m(t, e, n, r) { var i, o, a, s = 'modernizr', u = d('div'), c = ((a = l.body) || ((a = d(b ? 'svg' : 'body')).fake = !0), a); if (parseInt(n, 10)) for (; n--; ) (i = d('div')).id = r ? r[n] : s + (n + 1), u.appendChild(i); return (a = d('style')).type = 'text/css', a.id = 's' + s, (c.fake ? c : u).appendChild(a), c.appendChild(u), a.styleSheet ? a.styleSheet.cssText = t : a.appendChild(l.createTextNode(t)), u.id = s, c.fake && (c.style.background = '', o = _.style.overflow, _.style.overflow = c.style.overflow = 'hidden', _.appendChild(c)), t = e(u, t), c.fake ? (c.parentNode.removeChild(c), _.style.overflow = o) : u.parentNode.removeChild(u), !!t } function u(t, e, n) { var r, i; for (i in t) if (t[i] in e) return !1 === n ? t[i] : (r = e[t[i]], s(r, 'function') ? function (t, e) { return function () { return t.apply(e, arguments) } }(r, n || e) : r); return !1 } function g(t) { return t.replace(/([A-Z])/g, function (t, e) { return '-' + e.toLowerCase() }).replace(/^ms-/, '-ms-') } function c(t, e, n, r) { function i() { a && (delete j.style, delete j.modElem) } if (r = void 0 !== r && r, void 0 !== n) { var o = function (t, e) { var n = t.length; if ('CSS' in p && 'supports' in p.CSS) { for (; n--; ) if (p.CSS.supports(g(t[n]), e)) return !0; return !1 } if ('CSSSupportsRule' in p) { for (var r = [ ]; n--; ) r.push('(' + g(t[n]) + ':' + e + ')'); return m('@supports (' + (r = r.join(' or ')) + ') { #modernizr { position: absolute; } }', function (t) { return 'absolute' == getComputedStyle(t, null).position }) } return h }(t, n); if (void 0 !== o) return o } for (var a, s, u, c, l, f = [ 'modernizr', 'tspan' ]; !j.style; ) a = !0, j.modElem = d(f.shift()), j.style = j.modElem.style; for (u = t.length, s = 0; s < u; s++) if (l = j.style[c = t[s]], ~('' + c).indexOf('-') && (c = c.replace(/([a-z])-([a-z])/g, function (t, e, n) { return e + n.toUpperCase() }).replace(/^-/, '')), j.style[c] !== h) { if (r || void 0 === n) return i(), 'pfx' != e || c; try { j.style[c] = n } catch (t) { } if (j.style[c] != l) return i(), 'pfx' != e || c } return i(), !1 } function r(t, e, n, r, i) { var o = (t[0] || '').toUpperCase() + t.slice(1), a = (t + ' ' + w.join(o + ' ') + o).split(' '); return s(e, 'string') || void 0 === e ? c(a, e, r, i) : u(a = (t + ' ' + x.join(o + ' ') + o).split(' '), e, n) } function t(t, e, n) { return r(t, h, h, e, n) } var f = [ ], v = [ ], e = { _version: '3.1.0', _config: { classPrefix: '', enableClasses: !0, enableJSClass: !0, usePrefixes: !0 }, _q: [ ], on: function (t, e) { var n = this; setTimeout(function () { e(n[t]) }, 0) }, addTest: function (t, e, n) { v.push({ name: t, fn: e, options: n }) }, addAsyncTest: function (t) { v.push({ name: null, fn: t }) } }; (y = function () { }).prototype = e; var y = new y, _ = l.documentElement, b = 'svg' == _.nodeName.toLowerCase(), n = e._config.usePrefixes ? ' -webkit- -moz- -o- -ms- '.split(' ') : [ ]; e._prefixes = n; var i = e.testStyles = m; y.addTest('touchevents', function () { var e, t; return 'ontouchstart' in p || p.DocumentTouch && l instanceof DocumentTouch ? e = !0 : (t = '@media (' + n.join('touch-enabled),(') + 'heartz){#modernizr{top:9px;position:absolute}}', i(t, function (t) { e = 9 === t.offsetTop })), e }); var o = 'Moz O ms Webkit', x = e._config.usePrefixes ? o.toLowerCase().split(' ') : [ ]; e._domPrefixes = x; var w = e._config.usePrefixes ? o.split(' ') : [ ]; e._cssomPrefixes = w; var a = { elem: d('modernizr') }; y._q.push(function () { delete a.elem }); var E, O, k, S, j = { style: a.elem.style }; y._q.unshift(function () { delete j.style }), e.testAllProps = r, y.addTest('flexbox', (e.testAllProps = t) ('flexBasis', '1px', !0)), function () { var t, e, n, r, i, o, a; for (a in v) { if (t = [ ], (e = v[a]).name && (t.push(e.name.toLowerCase()), e.options && e.options.aliases && e.options.aliases.length)) for (n = 0; n < e.options.aliases.length; n++) t.push(e.options.aliases[n].toLowerCase()); for (r = s(e.fn, 'function') ? e.fn() : e.fn, i = 0; i < t.length; i++) 1 === (o = t[i].split('.')).length ? y[o[0]] = r : (!y[o[0]] || y[o[0]] instanceof Boolean || (y[o[0]] = new Boolean(y[o[0]])), y[o[0]][o[1]] = r), f.push((r ? '' : 'no-') + o.join('-')) } }(), E = f, k = _.className, S = y._config.classPrefix || '', b && (k = k.baseVal), y._config.enableJSClass && (O = RegExp('(^|\\s)' + S + 'no-js(\\s|$)'), k = k.replace(O, '$1' + S + 'js$2')), y._config.enableClasses && (k += ' ' + S + E.join(' ' + S), b ? _.className.baseVal = k : _.className = k), delete e.addTest, delete e.addAsyncTest; for (var T = 0; T < y._q.length; T++) y._q[T](); p.Modernizr = y }(window, document) } ]); // https://c.disquscdn.com/next/current/publisher-admin/js/entry.js