Skip to content

Instantly share code, notes, and snippets.

@kasparsd
Created September 18, 2020 15:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kasparsd/a89bd7c93c9c488a9a96a3cf1aad0e9a to your computer and use it in GitHub Desktop.
Save kasparsd/a89bd7c93c9c488a9a96a3cf1aad0e9a to your computer and use it in GitHub Desktop.
! function(s) {
function e(e) {
for (var t, n, r = e[0], i = e[1], a = 0, o = []; a < r.length; a++) n = r[a], Object.prototype.hasOwnProperty.call(d, n) && d[n] && o.push(d[n][0]), d[n] = 0;
for (t in i) Object.prototype.hasOwnProperty.call(i, t) && (s[t] = i[t]);
for (u && u(e); o.length;) o.shift()()
}
var n = {},
d = {
0: 0
};
function c(e) {
if (n[e]) return n[e].exports;
var t = n[e] = {
i: e,
l: !1,
exports: {}
};
return s[e].call(t.exports, t, t.exports, c), t.l = !0, t.exports
}
c.e = function(i) {
var e, a, o, t, s, n = [],
r = d[i];
return 0 !== r && (r ? n.push(r[2]) : (e = new Promise(function(e, t) {
r = d[i] = [e, t]
}), n.push(r[2] = e), (a = document.createElement("script")).charset = "utf-8", a.timeout = 120, c.nc && a.setAttribute("nonce", c.nc), a.src = c.p + "" + i + ".ad-manager.min.js", o = new Error, t = function(e) {
a.onerror = a.onload = null, clearTimeout(s);
var t, n, r = d[i];
0 !== r && (r && (t = e && ("load" === e.type ? "missing" : e.type), n = e && e.target && e.target.src, o.message = "Loading chunk " + i + " failed.\n(" + t + ": " + n + ")", o.name = "ChunkLoadError", o.type = t, o.request = n, r[1](o)), d[i] = void 0)
}, s = setTimeout(function() {
t({
type: "timeout",
target: a
})
}, 12e4), a.onerror = a.onload = t, document.head.appendChild(a))), Promise.all(n)
}, c.m = s, c.c = n, c.d = function(exports, e, t) {
c.o(exports, e) || Object.defineProperty(exports, e, {
enumerable: !0,
get: t
})
}, c.r = function(exports) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(exports, Symbol.toStringTag, {
value: "Module"
}), Object.defineProperty(exports, "__esModule", {
value: !0
})
}, c.t = function(t, e) {
if (1 & e && (t = c(t)), 8 & e) return t;
if (4 & e && "object" == typeof t && t && t.__esModule) return t;
var n = Object.create(null);
if (c.r(n), Object.defineProperty(n, "default", {
enumerable: !0,
value: t
}), 2 & e && "string" != typeof t)
for (var r in t) c.d(n, r, function(e) {
return t[e]
}.bind(null, r));
return n
}, c.n = function(e) {
var t = e && e.__esModule ? function() {
return e.default
} : function() {
return e
};
return c.d(t, "a", t), t
}, c.o = function(e, t) {
return Object.prototype.hasOwnProperty.call(e, t)
}, c.p = "https://hb.vntsm.com/v3/live/", c.oe = function(e) {
throw console.error(e), e
};
var t = window.webpackJsonp = window.webpackJsonp || [],
r = t.push.bind(t);
t.push = e, t = t.slice();
for (var i = 0; i < t.length; i++) e(t[i]);
var u = r;
c(c.s = 27)
}([function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return m
});
var r, i, a = n(16),
o = n(5),
s = n(2),
d = n(22),
c = function(e, o, s, d) {
return new(s = s || Promise)(function(n, t) {
function r(e) {
try {
a(d.next(e))
} catch (e) {
t(e)
}
}
function i(e) {
try {
a(d.throw(e))
} catch (e) {
t(e)
}
}
function a(e) {
var t;
e.done ? n(e.value) : ((t = e.value) instanceof s ? t : new s(function(e) {
e(t)
})).then(r, i)
}
a((d = d.apply(e, o || [])).next())
})
},
u = function(n, r) {
var i, a, o, s = {
label: 0,
sent: function() {
if (1 & o[0]) throw o[1];
return o[1]
},
trys: [],
ops: []
},
e = {
next: t(0),
throw: t(1),
return: t(2)
};
return "function" == typeof Symbol && (e[Symbol.iterator] = function() {
return this
}), e;
function t(t) {
return function(e) {
return function(t) {
if (i) throw new TypeError("Generator is already executing.");
for (; s;) try {
if (i = 1, a && (o = 2 & t[0] ? a.return : t[0] ? a.throw || ((o = a.return) && o.call(a), 0) : a.next) && !(o = o.call(a, t[1])).done) return o;
switch (a = 0, o && (t = [2 & t[0], o.value]), t[0]) {
case 0:
case 1:
o = t;
break;
case 4:
return s.label++, {
value: t[1],
done: !1
};
case 5:
s.label++, a = t[1], t = [0];
continue;
case 7:
t = s.ops.pop(), s.trys.pop();
continue;
default:
if (!(o = 0 < (o = s.trys).length && o[o.length - 1]) && (6 === t[0] || 2 === t[0])) {
s = 0;
continue
}
if (3 === t[0] && (!o || t[1] > o[0] && t[1] < o[3])) {
s.label = t[1];
break
}
if (6 === t[0] && s.label < o[1]) {
s.label = o[1], o = t;
break
}
if (o && s.label < o[2]) {
s.label = o[2], s.ops.push(t);
break
}
o[2] && s.ops.pop(), s.trys.pop();
continue
}
t = r.call(n, s)
} catch (e) {
t = [6, e], a = 0
} finally {
i = o = 0
}
if (5 & t[0]) throw t[1];
return {
value: t[0] ? t[1] : void 0,
done: !0
}
}([t, e])
}
}
},
p = function() {
for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length;
for (var r = Array(e), i = 0, t = 0; t < n; t++)
for (var a = arguments[t], o = 0, s = a.length; o < s; o++, i++) r[i] = a[o];
return r
};
(i = r = r || {}).Error = "error", i.Info = "info", i.Warn = "warn", i.Debug = "debug", i.Verbose = "verbose", i.A9 = "a9";
var l = (f.prototype.getName = function() {
return this.name
}, f.prototype.getTS = function() {
return this.date.getTime()
}, f.prototype.getDate = function() {
return this.date
}, f);
function f(e) {
this.name = e, this.date = new Date
}
var m = (g.event = function(e) {
this.events.push(new l(e))
}, g.getEvents = function() {
return this.events
}, g.printEvents = function() {
this.printTable(this.events.asArray().reduce(function(e, t) {
var n = t.getName();
return void 0 === e[n] ? e[n] = 1 : e[n]++, e
}, {}))
}, g.isDebugMode = function() {
return this.debugMode
}, g.isVerboseDebugMode = function() {
return this.verboseDebugMode
}, g.isA9DebugMode = function() {
return this.a9DebugMode
}, g.getColor = function(e) {
switch (e) {
case r.Error:
return this.errorColor;
case r.Info:
return this.infoColor;
case r.Warn:
return this.warnColor;
case r.A9:
return this.a9debugColor;
case r.Verbose:
return this.verboseDebugColor;
default:
return this.debugColor
}
}, g.print = function(e) {
for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
console.log.apply(console, p(["%c VM HBv3 [" + e.toUpperCase() + "] [" + (new Date).toISOString() + "]: ", "color:" + this.getColor(e) + ";font-weight:bold"], t))
}, g.printSettings = function() {
var e, t, n = s.a,
r = {};
for (e in n) {
n.hasOwnProperty(e) && ("boolean" != (t = typeof n[e]) && "number" != t && "string" != t || (r["" + e.replace(/([a-z]{1})([A-Z]{1})/g, "$1 $2").toUpperCase()] = n[e]))
}
this.printTable(r)
}, g.printTable = function(e) {
this.isDebugMode() && console.table(e)
}, g.error = function() {
for (var e = this, t = [], n = 0; n < arguments.length; n++) t[n] = arguments[n];
s.a.isAirbrakeEnabled && this.airbrakeNotify(p(t)[0]).then(function() {
e.debug("Logged error to Airbrake...")
}), this.isDebugMode() && g.print.apply(this, p([r.Error], t))
}, g.info = function() {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
this.isDebugMode() && g.print.apply(this, p([r.Info], e))
}, g.warn = function() {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
this.isDebugMode() && g.print.apply(this, p([r.Warn], e))
}, g.debug = function() {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
this.isDebugMode() && g.print.apply(this, p([r.Debug], e))
}, g.verbose = function() {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
this.isVerboseDebugMode() && g.print.apply(this, p([r.Verbose], e))
}, g.a9 = function() {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
this.isA9DebugMode() && g.print.apply(this, p([r.A9], e))
}, g.airbrakeNotify = function(t) {
return c(this, void 0, void 0, function() {
return u(this, function(e) {
switch (e.label) {
case 0:
return [4, Promise.all([n.e(2), n.e(5)]).then(n.bind(null, 36))];
case 1:
return e.sent().Airbrake.notify(t), [2, Promise.resolve()]
}
})
})
}, g.errorColor = "#aa091b", g.infoColor = "#0068e3", g.warnColor = "#e39c00", g.debugColor = "#171717", g.verboseDebugColor = "#9d9d9d", g.a9debugColor = "#e35500", g.debugMode = o.a.has("vdbg") || null !== a.a.get("vdbg"), g.verboseDebugMode = o.a.has("vvdbg") || null !== a.a.get("vvdbg"), g.a9DebugMode = o.a.has("a9dbg"), g.events = new d.a, g);
function g() {}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r
});
var r = (i.isInView = function(e) {
if (!this.hasTopWindowAccess()) return !1;
try {
var t = this.getTopMostParentWindow(),
n = t.document,
r = n.documentElement,
i = n.getElementsByTagName("body")[0],
a = t.innerHeight || r.clientHeight || i.clientHeight,
o = (t.pageYOffset || r.scrollTop) - (r.clientTop || 0),
s = o + e.getBoundingClientRect().top + Math.floor(Math.max(e.clientHeight, 50) / 2);
return 10 + o < s && s < a + o - 10
} catch (r) {}
return !1
}, i.hasFocus = function() {
if (this.hasTopWindowAccess()) {
var e = this.getTopMostParentDocument();
return "function" == typeof e.hasFocus && e.hasFocus()
}
return !1
}, i.isViewable = function(e) {
return this.isInView(e) && this.hasFocus()
}, i.hasTopWindowAccess = function() {
var e = this.getTopMostParentWindow();
try {
return e.top === e.self
} catch (e) {
return !1
}
}, i.isTop = function() {
try {
return window.top === window.self
} catch (e) {
return !1
}
}, i.getTopMostParentWindow = function() {
var e, t, n = window;
do {
e = n;
try {
(t = n.parent).location.href && (n = t)
} catch (e) {
return n
}
} while (e != n);
return n
}, i.getTopMostParentDocument = function() {
return this.getTopMostParentWindow().document
}, i.getTopMostParentBody = function() {
return this.getTopMostParentDocument().body
}, i);
function i() {}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return g
});
var r, i, a = n(12),
o = n(19),
s = n(4),
d = n(1),
c = n(8),
u = n(6),
p = n(5),
l = n(20),
f = n(21),
m = n(17);
(i = r = r || {})[i.LIVE = 0] = "LIVE", i[i.STAGING = 1] = "STAGING";
var g, h, b = (y.prototype.getEndpoint = function(e) {
return this.isDirectCDNLink ? g.defaultProtocol + "://" + this.endpointPrefix + e + ".enc?q=" + l.a.getHash(f.a.getTopURL()) : g.defaultProtocol + "://" + this.endpointPrefix + e + ".enc"
}, y.prototype.hasAlternativeEndpointConfig = function() {
return null != this.next
}, y.prototype.getAlternativeEndpoint = function() {
return this.next
}, y);
function y(e, t, n, r) {
void 0 === r && (r = null), this.endpointPrefix = e, this.isDirectCDNLink = t, this.environment = n, this.next = r
}(h = g = g || {}).version = "3-(" + "d2d57cd".trim() + ")", h.isShowcaseMode = p.a.has("showcase-mode"), h.a9PublisherId = "70247b00-ff8f-4016-b3ab-8344daf96e09", h.dfpPublisherId = "21726375739", h.isUponitTestMode = new s.a([
["5a8460b346e0fb0001fc3bac", !0]
]).getOrElse(u.a.get("data-site-id"), !1), h.airbrakeProjectId = 226149, h.airbrakeProjectKey = "d11c11515f8cd786cb4b6b0852900df9", h.isAirbrakeEnabled = 5e3 === a.a.numberBetween(1, 1e4), h.bypassPrebid = new s.a([
["58e515dc46e0fb0001c45588", c.a.isiOS()]
]).getOrElse(u.a.get("data-site-id"), !1), h.enablePerformanceMonitoring = new s.a([
["58d2538946e0fb0001e4b3e5", !0],
["58db8c1b46e0fb0001b87c4f", !0],
["5ba11c5446e0fb0001b212ac", !0]
]).has(u.a.get("data-site-id")), h.useNetworkLevelConsentStorage = new s.a([
["5c75224646e0fb00018c077f", !0]
]).has(u.a.get("data-site-id")), h.dfpExcludedPlacementIds = new s.a([
["5b19474946e0fb0001aa0c82", !0],
["5c6d8d2446e0fb00018c070a", !0],
["5bfbe90446e0fb00018ea970", !0],
["5bfbe7ba46e0fb0001aad935", !0],
["5bfbe9af46e0fb0001b8cc8f", !0],
["5d15e28d1b4e4f4b1786fb01", !0],
["5d1f572e94d28942ff98aa92", !0],
["5d55894a9ad51d436ff8dac1", !0],
["5d5c3583b6718b40677d76a9", !0]
]), h.prebidTargetMajor = "1", h.prebidEndpoint = "https://hb.vntsm.com/v3/prebid/prebid-3.15.js", h.prebidVersion = "3.15", h.prebidTestEndpoint = "https://hb.vntsm.com/v3/prebid/prebid-3.23.js", h.prebidTestVersion = "3.23", h.ABPrebidTest = [
["58d925be46e0fb0001790515", .5],
["58d923da46e0fb00017904ed", .5]
], h.prebidUseS2S = !1, h.env = -1 === d.a.getTopMostParentWindow().location.href.indexOf(":8443") ? "live" : "dev", h.loadId = a.a.createGUID(), h.defaultProtocol = "https", h.adPreloadStyling = h.isShowcaseMode ? new s.a : new s.a([
["5b151c0546e0fb00011b425f", new s.a([
["background", "#F2F2F2 url('https://hb.vntsm.com/assets/op_loader.gif')"],
["backgroundRepeat", "no-repeat"],
["backgroundPosition", "center"],
["border", "1px solid #d5d8d8"]
])],
["5a8460b346e0fb0001fc3bac", new s.a([
["background", "#F2F2F2 url('https://hb.vntsm.com/assets/op_loader.gif')"],
["backgroundRepeat", "no-repeat"],
["backgroundPosition", "center"],
["border", "1px solid #d5d8d8"]
])],
["5b44831446e0fb0001c50344", new s.a([
["background", "#F2F2F2 url('https://hb.vntsm.com/assets/op_loader.gif')"],
["backgroundRepeat", "no-repeat"],
["backgroundPosition", "center"],
["border", "1px solid #d5d8d8"]
])],
["5b44832e46e0fb000190a6fa", new s.a([
["background", "#F2F2F2 url('https://hb.vntsm.com/assets/op_loader.gif')"],
["backgroundRepeat", "no-repeat"],
["backgroundPosition", "center"],
["border", "1px solid #d5d8d8"]
])],
["58d923da46e0fb00017904ed", new s.a([
["background", "#ffd864"],
["backgroundRepeat", "no-repeat"],
["backgroundPosition", "center"],
["border", "1px solid #333333"]
])]
]).getOrElse(u.a.get("data-site-id"), new s.a), h.rotateDefaults = !1, h.usePageProtect = !0, h.gdprPreferences = new s.a([
["5a8460b346e0fb0001fc3bac", {
styleChanges: {
primaryButtonStyle: {
background: "#1ea1f7"
}
},
copyChanges: {},
functionalList: []
}],
["58d2538946e0fb0001e4b3e5", {
styleChanges: {
primaryButtonStyle: {
background: "#d72f2e"
}
},
copyChanges: {},
functionalList: []
}],
["58d925be46e0fb0001790515", {
styleChanges: {
primaryButtonStyle: {
background: "#275495"
}
},
copyChanges: {},
functionalList: []
}],
["5a12e09946e0fb00011074f3", {
styleChanges: {
primaryButtonStyle: {
background: "#1bb76e"
}
},
copyChanges: {
opening_title: "A Message From Imgur's Partners",
opening_desc: "\n In order to keep this site running, various third parties set cookies and access and store information on your device.\n These third parties also collect data to show you personalized ad content.\n Some third parties require your consent to collect data to serve you personalized content and ads.\n For information on how Imgur uses your data, see Imgur's privacy policy.\n "
},
functionalList: []
}]
]).getOrElse(u.a.get("data-site-id"), {
styleChanges: {
primaryButtonStyle: {}
},
copyChanges: {},
functionalList: []
}), h.assistFrameCleanup = !0, h.euCountryCodes = new s.a([
["BE", "Belgium"],
["BG", "Bulgaria"],
["CZ", "Czech Republic"],
["DK", "Denmark"],
["DE", "Germany"],
["EE", "Estonia"],
["IE", "Ireland"],
["GR", "Greece"],
["ES", "Spain"],
["FR", "France"],
["HR", "Croatia"],
["IT", "Italy"],
["CY", "Cyprus"],
["LV", "Latvia"],
["LT", "Lithuania"],
["LU", "Luxembourg"],
["HU", "Hungary"],
["MT", "Malta"],
["NL", "Netherlands"],
["AT", "Austria"],
["PL", "Poland"],
["PT", "Portugal"],
["RO", "Romania"],
["SI", "Slovenia"],
["SK", "Slovakia"],
["FI", "Finland"],
["SE", "Sweden"],
["GB", "United Kingdom"]
]), h.adManagerEndpoint = "dev" === h.env ? "ad-manager.js" : h.defaultProtocol + "://hb.vntsm.com/v3/live/ad-manager.min.js", h.cmpAwaitTimeoutMS = 4e3, h.cmpPollIntervalMS = 100, h.cmpEndpoint = h.defaultProtocol + "://hb.vntsm.com/cmp/cmp.complete.bundle.js?upapi=true", h.cmpPortalEndpoint = h.defaultProtocol + "://hb.vntsm.com/cmp/docs/portal.html?upapi=true", h.adManagerCSSEndpoint = "dev" === h.env ? "ad-manager.css" : h.defaultProtocol + "://hb.vntsm.com/v3/live/ad-manager.min.css", h.refreshInViewOnly = !1, h.defaultRefreshRateMS = 61e3, h.enableBidStashing = !1, h.maxPlacementRefreshes = 1e3, h.configTimeoutMS = 2e4, h.packingLength = 24, h.prebidBidderTimeoutMS = 1500, h.prebidGlobalTimeoutMS = 3500, h.prebidGlobalExtendedTimeoutMS = 5e3, h.prebidEnableIframeUserSync = !1, h.prebidEnableCommonUserId = !0, h.minBidCPM = .001, h.dfpAdServingCost = .0137, h.prebidCMPTimeoutMS = 5e3, h.apiCheckIntervalMS = 100, h.defaultBidTTLMS = 3e4, h.maxBidTTLMS = 3e5, h.dynamicPlacementsCheckInterval = 100, h.bidRequestInterval = 100, h.deferredLoadingCheckInterval = 100, h.bidRequestUnlockDelay = 1e3, h.lkqdDefaultRefreshMS = 6e4, h.schedulerIntervalMS = 100, h.landscapePushIntervalMS = 250, h.incrementLoopIntervalMS = 2e4, h.bidderNetValuesRatio = new s.a([
["sharethrough", .9],
["yieldmo", .8],
["sovern", .95],
["rubicon", .82],
["rubiconAU", .82],
["brealtime", .8],
["aol", .8],
["sonobi", .85],
["pubmatic", .85],
["pubmaticAU", .85],
["districtmDMX", .85],
["districtm", .85],
["improvedigital", .9],
["conversant", .85],
["criteo", .75],
["audiencenetwork", .95],
["justpremium", .9],
["jpmediated", .9],
["nasmediaAdmixer", .5],
["teads", .9]
]), h.mediationBidders = new s.a([
["GUMGUM", !0],
["JPMEDIATED", !0],
["JUSTPREMIUM", !0],
["TRION", !0]
]), h.bidderLimitingDefaultWaitTimes = [0, 0, 0], h.abBidderTargeting = new s.a([
["APPNEXUS", [{}]],
["RUBICON", [{}]],
["INDEXEXCHANGE", [{}]],
["OPENX", [{
includedCountryCodes: ["US", "GB", "CA", "DE", "CN", "FR", "JP", "AU", "ES", "HK", "SG", "PH", "CO", "NL", "IT", "BR", "BE", "SE", "MX", "VN"]
}]]
]), h.bidderTargeting = new s.a([
["GOOGLE", [{}]],
["TEADS", [{
inView: !0
}]],
["APPNEXUS", [{}]],
["GRID", [{}]],
["SUBLIME", [{}]],
["RUBICON", [{
geoBidLimiterConfig: [{
countryCodes: ["PH", "GR", "VN", "TH", "BG", "UA", "RS"],
waitTimes: [0, 500]
}]
}]],
["INDEXEXCHANGE", [{}]],
["DISTRICTMDMX", [{}]],
["OPENX", [{
includedCountryCodes: ["US", "GB", "CA", "DE", "CN", "FR", "JP", "AU", "ES", "HK", "SG", "PH", "CO", "NL", "IT", "BR", "BE", "SE", "MX", "VN"]
}]],
["SONOBI", [{
includedCountryCodes: ["US", "GB", "AU", "DE", "FR", "CH", "HK", "MX"]
}]],
["SOVRN", [{
excludedCountryCodes: ["RU", "PL", "TR", "RO", "GR", "KR", "JP", "CN", "TW", "BR"]
}]],
["JUSTPREMIUM", [{
includedCountryCodes: ["US", "GB", "IE", "ES", "FR", "NL", "IT", "BE", "DE", "DZ", "BH", "DJ", "EG", "IR", "IQ", "IL", "JO", "KW", "LB", "LY", "MT", "MA", "OM", "QA", "SA", "SY", "TN", "AE", "PS", "YE", "ET", "SD", "DK", "FI", "IS", "NO", "SE", "GL", "FO", "CA", "BR", "MX", "CN", "AU", "JP", "PL"]
}]],
["VISX", [{}]],
["JPMEDIATED", [{
includedCountryCodes: ["US", "GB", "IE", "ES", "FR", "NL", "IT", "BE", "DE", "DZ", "BH", "DJ", "EG", "IR", "IQ", "IL", "JO", "KW", "LB", "LY", "MT", "MA", "OM", "QA", "SA", "SY", "TN", "AE", "PS", "YE", "ET", "SD", "DK", "FI", "IS", "NO", "SE", "GL", "FO", "CA", "BR", "MX", "CN", "AU", "JP", "PL"]
}]],
["ADYOULIKE", [{
excludedCountryCodes: ["KR", "SE", "BR", "JP", "TR", "TH", "PH", "VN", "PT", "AR", "MX", "NO", "TW", "SG", "RO"]
}]],
["TRION", [{
includedCountryCodes: ["US"],
includedDevices: [o.a.MOBILE]
}]],
["TPMN", [{
includedDevices: [o.a.MOBILE]
}]],
["TRIPLELIFT", [{}]],
["INSKIN", [{}]],
["PULSEPOINT", [{}]],
["PUBMATIC", [{
excludedCountryCodes: ["AU"]
}]],
["SHARETHROUGH", [{
includedCountryCodes: ["US"]
}]],
["WIDESPACE", [{}]],
["LOCKERDOME", [{}]],
["RICHAUDIENCE", [{}]],
["DISTRICTM", [{}]],
["33ACROSS", [{
includedCountryCodes: ["US", "CA"],
tabActive: !0,
inView: !0
}]],
["SMART", [{
includedCountryCodes: ["US", "DE", "GB", "FR", "ES", "RU", "CA", "AU", "IT", "MX", "BE", "BR", "NL", "CH", "PL", "SE", "MA", "AT"]
}]],
["NANOINTERACTIVE", [{
adapterTest: !0
}]],
["PULSEPOINT", [{
adapterTest: !0
}]],
["COX", [{
adapterTest: !0
}]],
["ADFORM", [{
adapterTest: !0
}]],
["RHYTHMONE", [{
adapterTest: !0
}]],
["COX", [{
adapterTest: !0
}]],
["IMPROVEDIGITAL", [{
adapterTest: !0
}]],
["UNDERTONE", [{
adapterTest: !1
}]],
["MEDIANET", [{
adapterTest: !1
}]],
["YIELDMO", [{
adapterTest: !1
}]],
["AUDIENCENETWORK", [{
adapterTest: !0
}]],
["MANTIS", [{
adapterTest: !0
}]],
["NASMEDIAADMIXER", [{
adapterTest: !0
}]],
["CONVERSANT", [{
adapterTest: !0
}]],
["PLAYGROUNDXYZ", [{
adapterTest: !0
}]],
["OFTMEDIA", [{
adapterTest: !0
}]],
["BRIGHTCOM", [{
adapterTest: !0
}]],
["PUBMATICAU", [{
adapterTest: !0
}]],
["RUBICONAU", [{
adapterTest: !0
}]],
["CRITEO", [{
adapterTest: !0
}]]
]), h.landscapeEndpoint = h.defaultProtocol + "://track.venatusmedia.com/dual/track", h.configEndpoints = new b("hb.vntsm.com/v2/live/", !1, r.LIVE, new b("w4t7i8d6.stackpathcdn.com/v2/live/", !0, r.LIVE, new b("vmhb.b-cdn.net/v2/live/", !1, r.LIVE, new b("hb.vntsm.com/v2/staging/", !1, r.STAGING)))), h.creativeBlocklistEndpoint = h.defaultProtocol + "://hb.vntsm.com/creative-block-list.json", h.placementEndpoint = h.defaultProtocol + "://ui.venatusmedia.com/admin/placement/", h.iconMap = new s.a([
["GOOGLE", "https://www.google.com/favicon.ico"],
["TEADS", "https://www.teads.tv/wp-content/themes/teads/favicon.ico"],
["APPNEXUS", "https://www.appnexus.com/themes/custom/appnexus/img/favicon.ico"],
["RUBICON", "https://rubiconproject.com/favicon.ico"],
["RUBICONAU", "https://rubiconproject.com/favicon.ico"],
["INDEXEXCHANGE", "https://system.indexexchange.com/favicon.ico"],
["IX", "https://system.indexexchange.com/favicon.ico"],
["CRITEO", "https://www.criteo.com/wp-content/themes/criteo2017/img/favicon.ico"],
["DISTRICTMDMX", "https://www.districtm.net/wp-content/uploads/2019/09/cropped-cropped-DM_Symbol_Color-32x32.png"],
["DISTRICTM", "https://www.districtm.net/wp-content/uploads/2019/09/cropped-cropped-DM_Symbol_Color-32x32.png"],
["AOL", "https://www.onebyaol.com/sites/aolplatforms.com/files/favicon.ico"],
["RHYTHMONE", "https://www.rhythmone.com/assets/images/favicon.png"],
["CONVERSANT", "https://www.conversantmedia.com/hubfs/US%20Conversant/Images/logos/favicon_64_8bit.png"],
["OPENX", "https://s3.amazonaws.com/openx-prod/assets/favicon.ico"],
["SONOBI", "https://sonobi.com/wp-content/themes/sonobi/assets/images/icon/favicon-32x32.png"],
["SOVRN", "https://www.sovrn.com/wp-content/themes/sovrn-2019/favicon.png"],
["IMPROVEDIGITAL", "https://www.improvedigital.com/favicon.ico"],
["PUBMATIC", "https://pubmatic.com/favicon-16x16.png"],
["PUBMATICAU", "https://pubmatic.com/favicon-16x16.png"],
["COX", "https://www.coxenterprises.com/CoxEnterprises/media/CoxEnterprises/favicon.ico"],
["AUDIENCENETWORK", "https://facebook.com/favicon.ico"],
["JUSTPREMIUM", "https://justpremium.com/wp-content/uploads/2018/03/cropped-jp-fav-32x32.png"],
["JPMEDIATED", "https://justpremium.com/wp-content/uploads/2018/03/cropped-jp-fav-32x32.png"],
["GUMGUM", "https://gumgum.com/favicon.ico"],
["33ACROSS", "https://platform.33across.com/favicon.ico"],
["PLAYGROUNDXYZ", "https://playground.xyz/favicon/favicon-16x16.png"],
["NANOINTERACTIVE", "https://www.nanointeractive.com/favicon.ico"],
["ADYOULIKE", "https://www.adyoulike.com/favicon.ico"],
["VISX", "https://yoc.com/wp-content/themes/yoc/assets/img/favicon-32x32.png"],
["NASMEDIAADMIXER", "https://admixer.net/favicon.ico"],
["TRIPLELIFT", "https://triplelift.com/wp-content/uploads/2019/10/cropped-fav-icon-32x32.png"],
["INSKIN", "http://www.inskinmedia.com/favicon-16x16.png"],
["WIDESPACE", "https://www.widespace.com/wp-content/uploads/2017/02/favicon_widespace.png"],
["LOCKERDOME", "https://lockerdome.com/_images/favicon-32x32.png"],
["RICHAUDIENCE", "https://richaudience.com/images/fav16x16.png"],
["MANTIS", "https://www.mantisadnetwork.com/favicon.ico"],
["TRION", "https://trioninteractive.com/assets/images/favicon.png"],
["SMART", "https://smartadserver.com/content/uploads/2018/09/cropped-favicon-32x32.png"],
["BRIGHTCOM", "https://www.brightcom.com/wp-content/themes/brightcom/assets/images/favicon.png"],
["SUBLIME", "https://www.sublime.xyz/favicon-32x32.png"],
["GRID", "https://www.themediagrid.com/wp-content/uploads/2019/03/TMG-Brand-Mood_V7-FavIcon_32x32.png"],
["SHARETHROUGH", "https://www.sharethrough.com/img/favicon.png"],
["UNDERTONE", "https://www.undertone.com/wp-content/themes/undertone/dist/img/favicon.png"],
["MEDIANET", "https://s31073.pcdn.co/wp-content/themes/media.net/favicon.ico"],
["YIELDMO", "https://ds4u0ts8zy2oj.cloudfront.net/app/uploads/2019/09/cropped-favicon-32x32.png?x84892"]
]), h.defaultIcon = "https://www.venatusmedia.com/favicon.ico", h.psaMap = new s.a([
["728x90", '<a href="https://c.traktum.com/?a=59967&c=835923&E=dlccq3mZ6W8%3d&s1=" target="_blank"><img style="width:728px;height:90px;" src="https://cdn1.vntsm.com/MTGArenaDefualts/728x90.jpg" /></a>'],
["160x600", '<a href="https://c.traktum.com/?a=59967&c=835923&E=dlccq3mZ6W8%3d&s1=" target="_blank"><img style="width:160px;height:600px;" src="https://cdn1.vntsm.com/MTGArenaDefualts/160x600.jpg" /></a>'],
["300x250", '<a href="https://c.traktum.com/?a=59967&c=835923&E=dlccq3mZ6W8%3d&s1=" target="_blank"><img style="width:300px;height:250px;" src="https://cdn1.vntsm.com/MTGArenaDefualts/300x250.jpg" /></a>'],
["300x600", '<a href="https://c.traktum.com/?a=59967&c=835923&E=dlccq3mZ6W8%3d&s1=" target="_blank"><img style="width:300px;height:600px;" src="https://cdn1.vntsm.com/MTGArenaDefualts/300x600.jpg" /></a>'],
["120x600", '<a href="https://c.traktum.com/?a=59967&c=835923&E=dlccq3mZ6W8%3d&s1=" target="_blank"><img style="width:120px;height:600px;" src="https://cdn1.vntsm.com/MTGArenaDefualts/120x600.jpg" /></a>'],
["300x50", '<a href="https://www.videogamer.com/?utm_source=psa" target="_blank"><img style="width:300px;height:50px;" src="https://hb.vntsm.com/psa/vg_300x50.jpg" /></a>']
]), h.mediationMultiAcceptance = new s.a([
["justpremium", ["lkqd", "teads", "streamspread"]],
["lkqd", ["justpremium", "venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "lkqd-inread", "jpmediated"]],
["teads", ["justpremium", "trion", "venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "lkqd-inread", "venatus-footer"]],
["streamspread", ["justpremium", "trion", "venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "lkqd-inread", "venatus-footer"]],
["lkqd-inread", ["lkqd", "venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "venatus-footer", "trion", "jpmediated", "teads"]],
["venatus", ["lkqd-inread", "lkqd", "venatus-footer", "gumgum", "trion", "jpmediated", "teads", "streamspread"]],
["venatus-op", ["lkqd-inread", "lkqd", "venatus-footer", "gumgum", "trion", "jpmediated", "teads", "streamspread"]],
["venatus-vertical-sticky", ["lkqd-inread", "lkqd", "venatus-footer", "gumgum", "trion", "jpmediated", "teads", "streamspread"]],
["venatus-vertical-sticky-op", ["lkqd-inread", "lkqd", "venatus-footer", "gumgum", "trion", "jpmediated", "teads", "streamspread"]],
["venatus-footer", ["venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "lkqd-inread", "streamspread"]],
["taboola", []],
["trion", ["venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "lkqd-inread", "lkqd", "teads", "streamspread"]],
["jpmediated", ["venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op", "lkqd-inread", "lkqd", "teads", "streamspread"]]
]), h.siteLevelMediationMultiAcceptanceChanges = new s.a([
["5a8460b346e0fb0001fc3bac", new s.a([
["lkqd", ["venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op"]],
["venatus-footer", ["venatus", "venatus-op", "venatus-vertical-sticky", "venatus-vertical-sticky-op"]]
])]
]).getOrElse(u.a.get("data-site-id"), new s.a), h.A9ABTestSiteIds = [
["5a8460b346e0fb0001fc3bac", 1],
["58d925be46e0fb0001790515", 1],
["58d2538946e0fb0001e4b3e5", 1],
["58d923da46e0fb00017904ed", 1],
["58d8ed2646e0fb0001b87391", 1]
], h.GoogleRangeSizingSiteIds = [
["58d925be46e0fb0001790515", 1],
["58d923da46e0fb00017904ed", 1]
], h.GoogleRangeSizingFooterFloatTest = [
[m.a.getSiteId(), .5]
], h.LegacyRefreshLogicABTestAccountIds = ["58da6ee846e0fb00017909b8"], h.DFPNoThrottlingABTestSiteIds = [
["58d925be46e0fb0001790515", 1]
], h.CustomLinksQCLabelsABTestSiteIds = [
["5e79f53e963d0e25e62b5f4f", 1]
]
}, function(e, t, n) {
"use strict";
var r = n(24);
t.a = r.noConflict(!0)
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r
});
var r = (i.prototype.set = function(e, t) {
this.data[e] = t
}, i.prototype.setIfNotExists = function(e, t) {
return void 0 === this.data[e] && (this.data[e] = t, !0)
}, i.prototype.get = function(e) {
return this.data[e]
}, i.prototype.getOrElse = function(e, t) {
return this.data[e] ? this.data[e] : t
}, i.prototype.has = function(e) {
return void 0 !== this.data[e]
}, i.prototype.forEach = function(e) {
for (var t in this.data) this.data.hasOwnProperty(t) && e(this.data[t], t)
}, i.prototype.mapToArrayOf = function(e) {
var t, n = [];
for (t in this.data) this.data.hasOwnProperty(t) && n.push(e(this.data[t], t));
return n
}, i.prototype.filter = function(e) {
var t, n = new i;
for (t in this.data) this.data.hasOwnProperty(t) && e(this.data[t], t) && n.set(t, this.data[t]);
return n
}, i.prototype.filterToArrayOf = function(e) {
var t, n = [];
for (t in this.data) this.data.hasOwnProperty(t) && e(this.data[t], t) && n.push(this.data[t]);
return n
}, i.prototype.values = function() {
var e, t = [];
for (e in this.data) this.data.hasOwnProperty(e) && t.push(this.data[e]);
return t
}, i.prototype.keys = function() {
var e, t = [];
for (e in this.data) this.data.hasOwnProperty(e) && t.push(e);
return t
}, i.prototype.size = function() {
var e, t = 0;
for (e in this.data) this.data.hasOwnProperty(e) && t++;
return t
}, i.prototype.length = function() {
return this.size()
}, i.prototype.remove = function(e) {
delete this.data[e]
}, i.prototype.clear = function() {
this.data = {}
}, i);
function i(e) {
var t = this;
this.data = {}, void 0 !== e && e.forEach(function(e) {
return t.data[e[0]] = e[1]
})
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return i
});
var o = n(1),
r = n(16),
i = (a.has = function(e) {
return -1 !== o.a.getTopMostParentWindow().location.href.indexOf(e) || null !== r.a.get("vm_" + e)
}, a.getValue = function(e) {
var t = o.a.getTopMostParentWindow().location.href.match(/[a-z\-]+\=[a-z0-9A-Z]+/g);
if (null === t) return null;
for (var n = 0; n < t.length; n++) {
var r = t[n].split("="),
i = r[0],
a = r[1];
if (i === e) return a
}
return null
}, a);
function a() {}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r
});
var i = n(1),
a = n(7),
r = (o.get = function(e) {
var t, n, r;
if ("string" == typeof window.vm_site_id) return window.vm_site_id;
if (i.a.isTop() ? (n = window.document.getElementsByTagName("head")[0], a.a.getChildrenElementsOfParentElement(n).forEach(function(e) {
e.getAttribute("data-site-id") && (r = e)
}), void 0 !== r && (t = r.getAttribute(e))) : t = window.frameElement.getAttribute(e), "string" == typeof t) return t;
throw "Unable to find frame setting '" + e + "'"
}, o);
function o() {}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r
});
var r = (i.getElementsByClassName = function(e, t) {
return Array.from(t.querySelectorAll("." + e))
}, i.getChildrenElementsOfParentElement = function(e) {
for (var t = [], n = e.children, r = 0; r < n.length; r++) t.push(n[r]);
return t
}, i);
function i() {}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r
});
var r = (i.isiOS = function() {
return /iPhone|iPad|iPod/i.test(navigator.userAgent)
}, i.isMobile = function() {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)
}, i.isDesktop = function() {
return !this.isMobile()
}, i);
function i() {}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r
});
var r = (i.prototype.getWidth = function() {
return this.width
}, i.prototype.getHeight = function() {
return this.height
}, i.prototype.getSize = function() {
return this.size
}, i.prototype.getDims = function() {
return [this.width, this.height]
}, i);
function i(e) {
var t;
this.size = e, this.size ? (t = this.size.split("x").map(function(e) {
return parseInt(e)
}), this.width = t[0], this.height = t[1]) : (this.size = "0x0", this.width = 0, this.height = 0)
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r
});
var s = n(7),
r = (i.loadJSIn = function(e, t, n, r) {
void 0 === n && (n = function() {}), void 0 === r && (r = function() {});
var i, a = e.document.getElementsByTagName("head")[0],
o = !1;
s.a.getChildrenElementsOfParentElement(a).forEach(function(e) {
e.getAttribute("src") === t && (o = !0)
}), o ? n() : ((i = e.document.createElement("script")).type = "text/javascript", i.src = t, i.async = !0, i.readyState ? i.onreadystatechange = function() {
"loaded" !== i.readyState && "complete" !== i.readyState || (i.onreadystatechange = null, n())
} : i.onload = function() {
return n()
}, i.onerror = function() {
return r()
}, a.appendChild(i))
}, i.loadJS = function(e, t, n) {
void 0 === t && (t = function() {}), void 0 === n && (n = function() {}), this.loadJSIn(window, e, t, n)
}, i.loadCSSIn = function(e, t) {
var n, r = e.document.getElementsByTagName("head")[0],
i = !1;
s.a.getChildrenElementsOfParentElement(r).forEach(function(e) {
e.getAttribute("href") === t && (i = !0)
}), i || ((n = e.document.createElement("link")).rel = "stylesheet", n.href = t, r.appendChild(n))
}, i.loadCSS = function(e) {
this.loadCSSIn(window, e)
}, i);
function i() {}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return x
});
var r = n(15),
s = n(1),
o = n(10),
d = n(0),
i = n(5),
a = n(2),
c = (u.prototype.pollForThirdPartyCMP = function() {
var e = this;
this.isReady() ? this.cmpLoaded() : setTimeout(function() {
return e.pollForThirdPartyCMP()
}, 1e3)
}, u.prototype.isReady = function() {
return "function" == typeof s.a.getTopMostParentWindow().__cmp
}, u.prototype.isGDPRRequired = function() {
return this.gdprApplies
}, u.prototype.isUsingThirdPartyCMP = function() {
return this.useThirdPartyCMP
}, u.prototype.showCMP = function() {
var e = this;
this.isReady() ? s.a.getTopMostParentWindow().__cmp("showConsentTool", null, function() {}) : setTimeout(function() {
e.showCMP()
}, 500)
}, u.prototype.getConsentData = function(t, e) {
var n = this;
void 0 === e && (e = 0);
var r, i, a = {
gdprApplies: this.gdprApplies,
hasGlobalScope: !0,
consentData: ""
};
!this.gdprApplies || 30 < e ? t(a) : (r = s.a.getTopMostParentWindow(), this.isReady() ? (i = setTimeout(function() {
t(a)
}, 1e3), r.__cmp("getConsentData", null, function(e) {
clearTimeout(i), t({
gdprApplies: e.gdprApplies,
hasGlobalScope: e.hasGlobalScope,
consentData: e.consentData
})
})) : setTimeout(function() {
n.getConsentData(t, e + 1)
}, 100))
}, u.prototype.getVendorConsent = function(a, e) {
var t = this;
void 0 === e && (e = 0);
var n, o, r = {
allowed: 0,
total: 0
};
!this.gdprApplies || 30 < e ? a(r) : (n = s.a.getTopMostParentWindow(), this.isReady() ? (o = setTimeout(function() {
a(r)
}, 1e3), n.__cmp("getVendorConsents", null, function(e) {
clearTimeout(o);
var t = 0,
n = 0;
if (e.created) {
var r, i = e.vendorConsents;
for (r in i) i.hasOwnProperty(r) && (!0 === i[r] && t++, n++)
}
a({
allowed: t,
total: n
})
})) : setTimeout(function() {
t.getVendorConsent(a, e + 1)
}, 100))
}, u);
function u(e, t) {
this.cmpLoaded = e, this.gdprApplies = t.gdprApplies, this.useThirdPartyCMP = t.cmpOption === r.a.CMP_3rd_PARTY, this.gdprApplies ? this.useThirdPartyCMP ? this.pollForThirdPartyCMP() : this.load(t) : this.cmpLoaded()
}
var p, l, f = ((p = function(e, t) {
return (p = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
p(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(m, l = c), m.prototype.load = function(e) {
var n = this;
d.a.info("CMP - Requesting and deferring load callbacks...");
var r = s.a.getTopMostParentWindow(),
t = {
config: e || {
globalConsentLocation: a.a.cmpPortalEndpoint,
storeConsentGlobally: !1,
enableKidsMode: !1,
styleChanges: a.a.gdprPreferences.styleChanges,
copyChanges: a.a.gdprPreferences.copyChanges,
functionalList: a.a.gdprPreferences.functionalList,
gdprApplies: e.gdprApplies,
cmpOption: e.cmpOption,
domain: e.domain
}
};
d.a.debug("CMP - Config: ", t), i.a.has("cdbg") && (t.config.logging = "debug"), void 0 === r.__cmp && (r.__cmp = t), o.a.loadJSIn(r, a.a.cmpEndpoint, function() {
var t = function(e) {
n.isReady() ? (i.a.has("open-cmp") && n.showCMP(), d.a.info("CMP - Loaded, processing load callbacks..."), n.cmpLoaded(), r.__cmp("addEventListener", "onSubmit", function(e) {
d.a.event("an-cmp-updated"), d.a.debug(e)
})) : e < 100 ? (d.a.warn("CMP - Awaiting CMP constructor..."), setTimeout(function() {
t(e + 1)
}, 100)) : (d.a.error("CMP - Failed to get CMP constructor..."), d.a.error(r.__cmp), n.cmpLoaded())
};
t(0)
})
}, m);
function m() {
return null !== l && l.apply(this, arguments) || this
}
var g, h, b = n(14),
y = ((g = function(e, t) {
return (g = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
g(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(v, h = c), v.get = function(t, e) {
var n = this;
return void 0 === this.cmp ? (this.cmp = new v(function() {}, e), this.cmp.makeStub(), this.cmp.injectQCScript(e.domain, function() {
n.cmp.pollForReady(function(e) {
e ? d.a.info("CMP loaded") : d.a.warn("CMP not ready after " + a.a.cmpAwaitTimeoutMS + " ms"), n.cmp.customizeQCDialog(), t()
}, a.a.cmpPollIntervalMS, a.a.cmpAwaitTimeoutMS), n.cmp.loadTCDataAsync()
}, function(e) {
d.a.airbrakeNotify("Failed to load QC CMP: " + e), t()
})) : t(), this.cmp
}, v.prototype.customizeQCDialog = function() {
var e = s.a.getTopMostParentWindow();
this.abTest.runOnEnabledSites(function() {
e.__tcfapi && e.__tcfapi("getConfig", 2, function(e) {
e.premiumUiLabels.initScreenCustomLinks = [{
label: "HLTV : Cookie Policy",
link: "https://www.hltv.org/cookie-policy"
}, {
label: "HLTV : Privacy Policy",
link: "https://www.hltv.org/privacy"
}]
})
}, function() {})
}, v.prototype.isReady = function() {
var e = s.a.getTopMostParentWindow(),
t = !1;
return e.__tcfapi && e.__tcfapi("ping", 2, function(e) {
t = e.cmpLoaded
}), t
}, v.prototype.loadTCDataAsync = function() {
var n = this;
s.a.getTopMostParentWindow().__tcfapi("addEventListener", 2, function(e, t) {
t && ("tcloaded" !== e.eventStatus && "useractioncomplete" !== e.eventStatus || !e.tcString || (v.cmp.tcData = e), "tcloaded" === e.eventStatus && i.a.has("open-cmp") && n.showCMP(), "useractioncomplete" === e.eventStatus && d.a.event("qc-cmp-updated"))
})
}, v.prototype.pollForReady = function(e, t, n) {
var r = this;
n <= 0 ? e(!1) : this.isReady() ? e(!0) : setTimeout(function() {
return r.pollForReady(e, t, n - t)
}, t)
}, v.prototype.showCMP = function() {
this.isReady() && s.a.getTopMostParentWindow().__tcfapi("displayConsentUi", 2, function() {})
}, v.prototype.load = function(e) {
this.cmpLoaded()
}, v.prototype.getConsentData = function(e, t) {
void 0 === t && (t = 0), e({
gdprApplies: this.gdprApplies,
hasGlobalScope: !0,
consentData: void 0 === this.tcData ? "" : this.tcData.tcString
})
}, v.prototype.getVendorConsent = function(e, t) {
void 0 === t && (t = 0);
e({
allowed: 0,
total: 0
})
}, v.prototype.injectQCScript = function(e, t, n) {
d.a.info("CMP - Loading Quantcast V2 CMP...");
var r = s.a.getTopMostParentWindow(),
i = (new Date).getTime(),
a = "https://quantcast.mgr.consensu.org".concat("/choice/", "Hwnr8j7tWA3Nu", "/", e, "/choice.js").concat("?timestamp=", i.toString());
o.a.loadJSIn(r, a, t, function() {
n(a)
})
}, v.prototype.makeStub = function() {
var e, i = "__tcfapiLocator",
r = [],
a = s.a.getTopMostParentWindow();
for (; a;) {
try {
if (a.frames[i]) {
e = a;
break
}
} catch (e) {}
if (a === window.top) break;
a = a.parent
}
e || (! function e() {
var t, n = s.a.getTopMostParentDocument(),
r = !!a.frames[i];
return r || (n.body ? ((t = n.createElement("iframe")).style.cssText = "display:none", t.name = i, n.body.appendChild(t)) : setTimeout(e, 5)), !r
}(), a.__tcfapi = function() {
var e, t, n = arguments;
if (!n.length) return r;
"setGdprApplies" === n[0] ? 3 < n.length && 2 === n[2] && "boolean" == typeof n[3] && (e = n[3], "function" == typeof n[2] && n[2]("set", !0)) : "ping" === n[0] ? (t = {
gdprApplies: e,
cmpLoaded: !1,
cmpStatus: "stub"
}, "function" == typeof n[2] && n[2](t)) : r.push(n)
}, a.addEventListener("message", function(r) {
var i = "string" == typeof r.data,
e = {};
try {
e = i ? JSON.parse(r.data) : r.data
} catch (e) {}
var a = e.__tcfapiCall;
a && s.a.getTopMostParentWindow().__tcfapi(a.command, a.version, function(e, t) {
var n = {
__tcfapiReturn: {
returnValue: e,
success: t,
callId: a.callId
}
};
i && (n = JSON.stringify(n)), r.source.postMessage(n, "*")
}, a.parameter)
}, !1))
}, v);
function v() {
var e = null !== h && h.apply(this, arguments) || this;
return e.abTest = new b.b(a.a.CustomLinksQCLabelsABTestSiteIds), e
}
var w, I, T, S = (w = function(e, t) {
return (w = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
w(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
});
(T = I = I || {})[T.UNKNOWN = 0] = "UNKNOWN", T[T.CMP_TCF_1_3 = 1] = "CMP_TCF_1_3", T[T.CMP_TCF_2_0 = 2] = "CMP_TCF_2_0";
var k, j = (S(A, k = c), A.get = function(t, e) {
return void 0 === this.cmp ? (this.cmp = new A(function() {}, e), this.cmp.pollForReady(function(e) {
e ? d.a.info("CMP loaded") : d.a.warn("CMP not ready after " + a.a.cmpAwaitTimeoutMS + " ms"), t()
}, a.a.cmpPollIntervalMS, a.a.cmpAwaitTimeoutMS)) : t(), this.cmp
}, A.prototype.pollForThirdPartyCMP = function() {}, A.prototype.load = function(e) {
this.cmpLoaded()
}, A.prototype.pollForReady = function(e, t, n) {
var r = this;
n <= 0 ? (e(!1), this.loadTCDataAsync(!1)) : this.isTCF1Ready() ? (this.tcfVersion = I.CMP_TCF_1_3, e(!0)) : this.isTCF2Ready() ? (this.tcfVersion = I.CMP_TCF_2_0, e(!0)) : setTimeout(function() {
return r.pollForReady(e, t, n - t)
}, t)
}, A.prototype.isTCF1Ready = function() {
return "function" == typeof s.a.getTopMostParentWindow().__cmp
}, A.prototype.loadTCDataAsync = function(n) {
var r = this;
void 0 === n && (n = !0);
var i = s.a.getTopMostParentWindow();
i.__tcfapi && i.__tcfapi("addEventListener", 2, function(e, t) {
!t || "tcloaded" !== e.eventStatus && "useractioncomplete" !== e.eventStatus || (n && i.__tcfapi("removeEventListener", 2, function(e) {}, e.listenerId), e.tcString && (r.tcData = e, r.tcfVersion = I.CMP_TCF_2_0))
})
}, A.prototype.isTCF2Ready = function() {
var t = this,
e = s.a.getTopMostParentWindow();
return e.__tcfapi && e.__tcfapi("ping", 2, function(e) {
e.cmpLoaded && t.loadTCDataAsync()
}), this.tcData && this.tcData.tsString
}, A.prototype.getConsentData = function(e, t) {
void 0 === t && (t = 0), this.tcfVersion === I.CMP_TCF_1_3 ? k.prototype.getConsentData.call(this, e, t) : this.tcfVersion === I.CMP_TCF_2_0 && e({
gdprApplies: !0,
hasGlobalScope: !0,
consentData: void 0 === this.tcData ? "" : this.tcData.tcString
})
}, A.prototype.getVendorConsent = function(e, t) {
void 0 === t && (t = 0), this.tcfVersion === I.CMP_TCF_1_3 ? k.prototype.getVendorConsent.call(this, e, t) : this.tcfVersion === I.CMP_TCF_2_0 && e({
allowed: 0,
total: 0
})
}, A);
function A() {
var e = null !== k && k.apply(this, arguments) || this;
return e.tcfVersion = I.UNKNOWN, e
}
var E, O, _ = ((E = function(e, t) {
return (E = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
E(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(C, O = c), C.get = function(e, t) {
return void 0 === this.cmp ? this.cmp = new C(e, t) : e(), this.cmp
}, C.prototype.load = function(e) {
this.cmpLoaded()
}, C);
function C() {
return null !== O && O.apply(this, arguments) || this
}
var x = (R.register = function(e, t) {
if (i.a.has("use-an")) this.cmp = new f(e, t);
else if (i.a.has("use-qc")) this.cmp = y.get(e, t);
else if (t.gdprApplies) switch (t.cmpOption) {
case r.a.CMP_TCF_2_0:
this.cmp = y.get(e, t);
break;
case r.a.CMP_3rd_PARTY:
this.cmp = j.get(e, t);
break;
case r.a.CMP_TCF_1_3:
this.cmp = new f(e, t)
} else this.cmp = _.get(e, t)
}, R.get = function() {
if (void 0 === this.cmp) throw "Failed to register a CMP";
return this.cmp
}, R);
function R() {}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r
});
var r = (i.seg = function() {
return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1)
}, i.createGUID = function(e) {
return ("string" == typeof e ? e : "") + this.seg() + this.seg() + this.seg() + this.seg() + this.seg() + this.seg() + this.seg() + this.seg()
}, i.createShortGUID = function(e) {
return ("string" == typeof e ? e : "") + this.seg() + this.seg() + this.seg()
}, i.numberBetween = function(e, t) {
return Math.floor(Math.random() * (t - e + 1) + e)
}, i);
function i() {}
}, function(e, t, n) {
"use strict";
var r, i, a;
n.d(t, "a", function() {
return r
}), i = r = r || {}, (a = i.RequestMethod || (i.RequestMethod = {})).GET = "GET", a.POST = "POST", a.PUT = "PUT", a.DELETE = "DELETE", i.go = function(e) {
var n = new XMLHttpRequest;
if (n.open(e.method, e.url, !0), !0 === e.withCredentials && (n.withCredentials = !0), "string" == typeof e.contentType && n.setRequestHeader("Content-Type", e.contentType), void 0 !== e.headers && e.headers.forEach(function(e, t) {
return n.setRequestHeader(t, e)
}), "number" == typeof e.timeout && (n.timeout = e.timeout), n.onload = function() {
200 <= n.status && n.status < 400 ? e.success(n.status, n.responseText, n) : e.error(n.status, n.responseText, n), "function" == typeof e.complete && e.complete(n.status, n.responseText, n)
}, n.onerror = function() {
e.error(404, "Failed to load resource")
}, "POST" === e.method || "PUT" === e.method) {
if (void 0 === e.payload) throw "Expecting a payload with a " + e.method + " request!";
n.send(e.payload)
} else n.send()
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return d
}), n.d(t, "b", function() {
return u
});
var r = n(17),
i = (a.prototype.underTest = function(e) {
return -1 < this.enabledAccounts.indexOf(e.getAccountId())
}, a);
function a(e) {
this.enabledAccounts = e
}
var o = (s.prototype.mapIdsToRatio = function(e) {
return e.reduce(function(e, t) {
return e[t[0]] = t[1], e
}, {})
}, s.prototype.underTest = function(e) {
var t = this.siteIdRatioMap[e.getSiteId()];
return t && s.randSeed < t
}, s.randSeed = Math.random(), s);
function s(e) {
this.siteIdRatioMap = this.mapIdsToRatio(e)
}
var d = (c.forSitesWithRatio = function(e) {
return new c(new o(e))
}, c.forAccounts = function(e) {
return new c(new i(e))
}, c.prototype.runOnEnabledSites = function(e, t, n) {
return this.underTestPredicate.underTest(e) ? t() : this.isFunction(n) ? n() : void 0
}, c.prototype.isFunction = function(e) {
return "function" == typeof e
}, c);
function c(e) {
this.underTestPredicate = e
}
var u = (p.prototype.runOnEnabledSites = function(e, t) {
var n = this.siteIdRatioMap[this.currentSiteId];
if (n) {
if (p.randSeed < n) return e();
if (this.isFunction(t)) return t()
}
if (this.isFunction(t)) return t()
}, p.prototype.isFunction = function(e) {
return "function" == typeof e
}, p.prototype.mapIdsToRatio = function(e) {
return e.reduce(function(e, t) {
return e[t[0]] = t[1], e
}, {})
}, p.randSeed = Math.random(), p);
function p(e) {
this.currentSiteId = r.a.getSiteId(), this.siteIdRatioMap = this.mapIdsToRatio(e)
}
}, function(e, t, n) {
"use strict";
var r, i;
n.d(t, "a", function() {
return r
}), (i = r = r || {}).CMP_TCF_1_3 = "cmp_tcf_1.3", i.CMP_TCF_2_0 = "cmp_tcf_2.0", i.CMP_3rd_PARTY = "cmp_3rd_party"
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r
});
var r = (i.set = function(e, t, n) {
var r;
void 0 === n && (n = 0), 0 === n ? document.cookie = e + "=" + encodeURIComponent(t) + ";expires=0;path=" + encodeURIComponent("/") : ((r = new Date).setTime((new Date).getTime() + 1e3 * n), document.cookie = e + "=" + encodeURIComponent(t) + ";expires=" + r.toUTCString() + ";path=" + encodeURIComponent("/"))
}, i.get = function(e) {
for (var t, n, r = document.cookie.split(";"), i = 0; i < r.length; i++)
if (t = r[i].substr(0, r[i].indexOf("=")), n = r[i].substr(r[i].indexOf("=") + 1), (t = t.replace(/^\s+|\s+$/g, "")) == e) return decodeURIComponent(n);
return null
}, i);
function i() {}
}, function(e, t, o) {
"use strict";
o.d(t, "a", function() {
return W
});
var n = o(9),
r = (i.prototype.getOrderIndex = function() {
return this.orderIndex
}, i.prototype.getPaymentFixed = function() {
return this.paymentFixed
}, i.prototype.getPaymentFloor = function() {
return this.paymentFloor
}, i.prototype.getPaymentShare = function() {
return this.paymentShare
}, i.prototype.getPaymentType = function() {
return this.paymentType
}, i.prototype.getTargetCountryCode = function() {
return this.targetCountryCode
}, i.prototype.getTargetImpressionType = function() {
return this.targetImpressionType
}, i.prototype.getTargetSize = function() {
return this.targetSize
}, i);
function i(e) {
this.orderIndex = e.order_index, this.paymentFixed = e.payment_fixed, this.paymentFloor = e.payment_floor, this.paymentShare = e.payment_share, this.paymentType = e.payment_type, this.targetCountryCode = e.target_geo, this.targetImpressionType = e.target_impression_type, this.targetSize = new n.a(e.target_size)
}
var a = o(12),
s = (d.prototype.isAdblockTargeted = function() {
return "adblocked" === this.targetTrafficType
}, d.prototype.getAdapterFloor = function() {
return this.adapterFloor
}, d.prototype.getAdapterName = function() {
return this.adapterName
}, d.prototype.getPrebidConnectorName = function() {
return "indexExchange" === this.adapterName ? "ix" : this.adapterName
}, d.prototype.getAdapterParameters = function() {
return this.adapterParameters
}, d.prototype.getOrderIndex = function() {
return this.orderIndex
}, d.prototype.getTargetDomain = function() {
return this.targetDomain
}, d.prototype.getTargetCountryCode = function() {
return this.targetCountryCode
}, d.prototype.getTargetSize = function() {
return this.targetSize
}, d.prototype.isCompressable = function() {
return !1
}, d.prototype.getCompressionKey = function() {
return a.a.createGUID()
}, d.prototype.getSizeTargets = function(e) {
var t = "0x0" === this.getTargetSize().getSize() || this.isCompressable() ? e.getPlacementSizes().map(function(e) {
return [e.getWidth(), e.getHeight()]
}) : [
[this.getTargetSize().getWidth(), this.getTargetSize().getHeight()]
];
return t.sort(), t
}, d.prototype.getSizeTargetsKey = function(e) {
return this.getSizeTargets(e).map(function(e) {
return e[0] + "x" + e[1]
}).join(",")
}, d);
function d(e) {
this.adapterFloor = e.adapter_floor, e.adapter_name.match(/^ab\-/) ? (this.adapterName = e.adapter_name.replace(/^ab-/, ""), this.targetTrafficType = "adblocked") : (this.adapterName = e.adapter_name, this.targetTrafficType = "standard"), this.adapterParameters = e.adapter_parameters, this.targetSize = new n.a(e.target_size), this.adapterName.match(/^rubicon/) ? delete this.adapterParameters.sizeId : "justpremium" === this.adapterName || "jpmediated" === this.adapterName ? this.adapterParameters.allow = this.adapterParameters.allow.split(",").map(function(e) {
return e.trim()
}) : "indexExchange" === this.adapterName ? (delete this.adapterParameters.id, this.adapterParameters.size = [this.targetSize.getWidth(), this.targetSize.getHeight()], this.adapterParameters.siteId = this.adapterParameters.siteID, delete this.adapterParameters.siteID) : "aol" === this.adapterName && (void 0 !== this.adapterParameters.ext && "" !== this.adapterParameters.ext && "{}" !== this.adapterParameters.ext ? this.adapterParameters.ext = JSON.parse(this.adapterParameters.ext) : delete this.adapterParameters.ext), this.orderIndex = e.order_index, this.targetDomain = e.target_domain, this.targetCountryCode = e.target_geo
}
var c = o(18),
g = o(0),
u = (p.prototype.isBanner = function() {
return "banner" === this.placementType
}, p.prototype.isRichMedia = function() {
return "rich_media" === this.placementType
}, p.prototype.getSmallestSize = function() {
return this.placementSizes.sort(function(e, t) {
return e.getWidth() * e.getHeight() <= t.getWidth() * t.getHeight() ? -1 : 1
})[0]
}, p.prototype.getLargestSize = function() {
return this.placementSizes.sort(function(e, t) {
return e.getWidth() * e.getHeight() >= t.getWidth() * t.getHeight() ? -1 : 1
})[0]
}, p.prototype.getMaximumSize = function() {
if (0 === this.placementSizes.length) return null;
var i = 0,
a = 0;
return this.placementSizes.forEach(function(e, t) {
var n = e.getWidth(),
r = e.getHeight();
i < n && (i = n), a < r && (a = r)
}), new n.a(i + "x" + a)
}, p.prototype.getDefaultCreative = function() {
return this.defaultCreative
}, p.prototype.getEnableRefresh = function() {
return this.enableRefresh
}, p.prototype.isActive = function() {
return this.active
}, p.prototype.getPlacementContent = function() {
return this.placementContent
}, p.prototype.getPlacementId = function() {
return this.placementId
}, p.prototype.getPlacementName = function() {
return this.placementName
}, p.prototype.getPlacementType = function() {
return this.placementType
}, p.prototype.getPlacementSizes = function(e) {
return void 0 !== e && e.hasAttribute("data-fixed-size") ? [new n.a(e.getAttribute("data-fixed-size"))] : this.placementSizes
}, p.prototype.getPaymentRules = function() {
return this.paymentRules
}, p.prototype.getConnectors = function() {
return this.connectors.filter(function(e) {
return !e.isAdblockTargeted()
})
}, p.prototype.getAdBlockedConnectors = function() {
return this.connectors.filter(function(e) {
return e.isAdblockTargeted()
})
}, p.prototype.getBestMatchingConnectorFromAdapterBid = function(t) {
var n, r, e = t.getSizeTargetingKey();
return e && (r = e.split(","), this.connectors.forEach(function(e) {
t.getBidder() === e.getAdapterName() && -1 !== r.indexOf(e.getTargetSize().getSize()) && (n = e)
})), void 0 === n && this.connectors.forEach(function(e) {
(t.getBidder() === e.getAdapterName() && "0x0" === e.getTargetSize().getSize() || t.getBidder() === e.getAdapterName() && e.getTargetSize().getSize() === t.getSize().getSize()) && (n = e)
}), void 0 === n && this.connectors.forEach(function(e) {
t.getBidder() === e.getAdapterName() && (n = e)
}), void 0 === n && g.a.error("Failed to match bid from " + t.getBidder() + " with size " + t.getSize().getSize() + " to a connector"), n
}, p.prototype.getMediationRules = function() {
return this.mediationRules
}, p);
function p(e) {
this.defaultCreative = e.default_creative, this.enableRefresh = e.enable_refresh, this.active = e.is_active, this.placementContent = e.placement_content, this.placementId = e.placement_id, this.placementName = e.placement_name, this.placementType = e.placement_type, this.placementSizes = e.placement_sizes.map(function(e) {
return new n.a(e)
}), this.paymentRules = e.payment_rules.map(function(e) {
return new r(e)
}), this.connectors = e.connectors.map(function(e) {
return new s(e)
}), this.mediationRules = e.mediation_rules.map(function(e) {
return new c.a(e)
})
}
var h = o(2),
b = o(1),
l = o(19),
f = o(8),
m = o(21),
y = o(5),
v = (w.prototype.isTabActive = function() {
return b.a.hasFocus()
}, w.prototype.getDevice = function() {
return f.a.isDesktop() ? l.a.DESKTOP : l.a.MOBILE
}, w.prototype.getURL = function() {
return m.a.getTopURL()
}, w.prototype.isAdapterTest = function() {
return y.a.has("adapter-test")
}, w);
function w() {}
var I, T, S = ((I = function(e, t) {
return (I = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
I(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(k, T = v), k.prototype.getAdapterName = function() {
return this.adapterName
}, k.prototype.getPositionalId = function() {
return this.positionalId
}, k.prototype.getSizeTargetingKey = function() {
return this.sizeTargetingKey
}, k.prototype.getCountryCode = function() {
return this.countryCode
}, k.prototype.isUnrestrictedCountry = function() {
return -1 !== ["GB", "FR", "DE", "ES", "US", "CA", "AU", "IT", "SE", "BE", "JP"].indexOf(this.countryCode)
}, k.prototype.getAccountId = function() {
return this.accountId
}, k.prototype.getSiteId = function() {
return this.siteId
}, k.prototype.getLoopIndex = function() {
return this.loopIndex
}, k.prototype.getInView = function() {
return this.inView
}, k);
function k(e, t, n, r, i, a, o, s) {
var d = T.call(this) || this;
return d.adapterName = e, d.positionalId = t, d.sizeTargetingKey = n, d.countryCode = r, d.accountId = i, d.siteId = a, d.loopIndex = o, d.inView = s, d
}
function j() {}
var A, E, O = ((A = function(e, t) {
return (A = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
A(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(_, E = j), _.prototype.getCurrentEnvironment = function() {
return this.currentEnvironment
}, _.prototype.getTargetingGroups = function() {
return this.targetingGroups
}, _.prototype.isSatisfied = function() {
var t = this.currentEnvironment;
return 0 === this.targetingGroups.length || this.targetingGroups.some(function(e) {
return t.getAdapterName().match(/appnexus|openx/i) || t.isUnrestrictedCountry() || (h.a.bidderLimitingDefaultWaitTimes, void 0 !== e.bidLimiterWaitTimes && e.bidLimiterWaitTimes, void 0 !== e.geoBidLimiterConfig && e.geoBidLimiterConfig.forEach(function(e) {
-1 !== e.countryCodes.indexOf(t.getCountryCode()) && e.waitTimes
})), (void 0 === e.includedCountryCodes || -1 !== e.includedCountryCodes.indexOf(t.getCountryCode())) && ((void 0 === e.excludedCountryCodes || -1 === e.excludedCountryCodes.indexOf(t.getCountryCode())) && (!(void 0 !== e.includedDevices && !e.includedDevices.some(function(e) {
return e === t.getDevice()
})) && ((void 0 === e.excludedDevices || !e.excludedDevices.some(function(e) {
return e === t.getDevice()
})) && ((void 0 === e.includedAccountIds || -1 !== e.includedAccountIds.indexOf(t.getAccountId())) && ((void 0 === e.excludedAccountIds || -1 === e.excludedAccountIds.indexOf(t.getAccountId())) && ((void 0 === e.includedSiteIds || -1 !== e.includedSiteIds.indexOf(t.getSiteId())) && ((void 0 === e.excludedSiteIds || -1 === e.excludedSiteIds.indexOf(t.getAccountId())) && (!(void 0 !== e.includedDomains && !e.includedDomains.some(function(e) {
return !!t.getURL().match(e)
})) && ((void 0 === e.excludedDomains || !e.excludedDomains.some(function(e) {
return !!t.getURL().match(e)
})) && (!(void 0 !== e.maxLoopIndex && t.getLoopIndex() > e.maxLoopIndex) && (!(void 0 !== e.minLoopIndex && t.getLoopIndex() < e.minLoopIndex) && ((void 0 === e.tabActive || e.tabActive === t.isTabActive()) && ((void 0 === e.inView || e.inView === t.getInView()) && (void 0 === e.adapterTest || e.adapterTest === t.isAdapterTest()))))))))))))))
})
}, _);
function _(e, t) {
var n = E.call(this) || this;
return n.currentEnvironment = e, n.targetingGroups = t, n
}
var C, x, R = o(4),
D = ((C = function(e, t) {
return (C = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
C(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(P, x = j), P.prototype.getCurrentEnvironment = function() {
return this.currentEnvironment
}, P.prototype.getTargetingGroups = function() {
return this.targetingGroups
}, P.prototype.isSatisfied = function() {
var t = this.currentEnvironment;
return 0 === this.targetingGroups.length || this.targetingGroups.some(function(e) {
return (void 0 === e.includedCountryCodes || -1 !== e.includedCountryCodes.indexOf(t.getCountryCode())) && ((void 0 === e.excludedCountryCodes || -1 === e.excludedCountryCodes.indexOf(t.getCountryCode())) && (!(void 0 !== e.includedDevices && !e.includedDevices.some(function(e) {
return e === t.getDevice()
})) && ((void 0 === e.excludedDevices || !e.excludedDevices.some(function(e) {
return e === t.getDevice()
})) && ((void 0 === e.includedAccountIds || -1 !== e.includedAccountIds.indexOf(t.getAccountId())) && ((void 0 === e.excludedAccountIds || -1 === e.excludedAccountIds.indexOf(t.getAccountId())) && ((void 0 === e.includedSiteIds || -1 !== e.includedSiteIds.indexOf(t.getSiteId())) && ((void 0 === e.excludedSiteIds || -1 === e.excludedSiteIds.indexOf(t.getAccountId())) && (void 0 === e.adapterTest || e.adapterTest === t.isAdapterTest()))))))))
})
}, P);
function P(e, t) {
var n = x.call(this) || this;
return n.currentEnvironment = e, n.targetingGroups = t, n
}
var U, N, B = ((U = function(e, t) {
return (U = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
U(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(q, N = v), q.prototype.getAdapterName = function() {
return this.adapterName
}, q.prototype.getCountryCode = function() {
return this.countryCode
}, q.prototype.getAccountId = function() {
return this.accountId
}, q.prototype.getSiteId = function() {
return this.siteId
}, q);
function q(e, t, n, r) {
var i = N.call(this) || this;
return i.adapterName = e, i.countryCode = t, i.accountId = n, i.siteId = r, i
}
var z = o(15),
M = (V.prototype.isYandexEnabled = function() {
return "" != this.yandexTagId && this.yandexEnabled
}, V.prototype.isSPAMode = function() {
return this.spaEnabled
}, V.prototype.isCOPPACompliant = function() {
return this.coppaCompliant && "US" == this.countryCode
}, V.prototype.useLazyLoadAds = function() {
return this.lazyLoadAds
}, V.prototype.getCMPOption = function() {
return this.cmpOption
}, V.prototype.useThirdPartyCMP = function() {
return this.cmpOption === z.a.CMP_3rd_PARTY
}, V.prototype.getDomain = function() {
return this.domain
}, V.prototype.getYandexTagId = function() {
return this.yandexTagId
}, V.prototype.getYandexDelay = function() {
return this.yandexDelay
}, V.prototype.getLastBuilt = function() {
return this.built
}, V.prototype.getAccountId = function() {
return this.accountId
}, V.prototype.getSiteId = function() {
return this.siteId
}, V.prototype.isDFPMobileEnabled = function() {
return this.dfpMobileEnabled
}, V.prototype.isDFPDesktopEnabled = function() {
return this.dfpDesktopEnabled
}, V.prototype.isDFPEnabled = function() {
return f.a.isMobile() && this.dfpMobileEnabled || !f.a.isMobile() && this.dfpDesktopEnabled
}, V.prototype.isAdblockRecoveryEnabled = function() {
return this.adblockRecoveryEnabled
}, V.prototype.isA9Enabled = function() {
return !!this.isDFPEnabled() && (!!new R.a([
["US", !0],
["JP", !0],
["CA", !0],
["GB", !0],
["DE", !0],
["ES", !0],
["FR", !0],
["IT", !0],
["AU", !0]
]).has(this.countryCode) && this.a9Enabled)
}, V.prototype.getDirectRatio = function() {
return this.directRatio
}, V.prototype.getRTBRatio = function() {
return this.rtbRatio
}, V.prototype.isRefreshEnabled = function() {
return this.enableRefresh
}, V.prototype.getRefreshAfter = function() {
return this.refreshAfter
}, V.prototype.getMaxRefreshes = function() {
return this.maxRefreshes
}, V.prototype.getSiteCategory = function() {
return this.siteCategory
}, V.prototype.getPlacements = function() {
return this.placements
}, V.prototype.getPlacement = function(e) {
return this.placements.get(e)
}, V.prototype.getCurrentCountryCode = function() {
return this.countryCode
}, V.prototype.isEUCountry = function() {
return h.a.euCountryCodes.has(this.countryCode)
}, V.prototype.isKidsMode = function() {
return "kids" === this.siteCategory
}, V.prototype.isUsePlacementPreloader = function() {
return this.usePlacementPreloader
}, V.prototype.getAdblockPrebidConfigForPlacements = function(e) {
var s = this,
d = new R.a,
c = this.getPlacements();
return e.forEach(function(e, t) {
var n, r, i = [],
a = t + "-1",
o = t.replace(/^[\d]+\-/, "");
c.has(o) && ((n = c.get(o)).getAdBlockedConnectors().forEach(function(e) {
var t = e.getPrebidConnectorName().toUpperCase(),
n = h.a.abBidderTargeting.has(t) ? h.a.abBidderTargeting.get(t) : [],
r = new B(e.getPrebidConnectorName().toUpperCase(), s.countryCode, s.accountId, s.siteId);
new D(r, n).isSatisfied() && i.push({
bidder: e.getPrebidConnectorName(),
params: e.getAdapterParameters()
})
}), r = n.getPlacementSizes(e).map(function(e) {
return [e.getWidth(), e.getHeight()]
}), (n.isBanner() || n.isRichMedia()) && 0 < i.length && d.set(a, {
code: a,
sizes: r,
mediaTypes: {
banner: {
sizes: r
}
},
bids: i
}))
}), d.mapToArrayOf(function(e) {
return e
})
}, V.prototype.getPrebidConfigForPlacements = function(e, u) {
void 0 === u && (u = 1);
var i = new R.a,
p = this.accountId,
l = this.siteId,
f = this.countryCode,
a = this.getPlacements(),
m = b.a.hasFocus();
return e.forEach(function(e, o) {
var s, t, d = b.a.isInView(e),
c = [],
n = o + "-" + u,
r = o.replace(/^[\d]+\-/, "");
a.has(r) ? (s = a.get(r), 1 !== u && !s.isBanner() || (s.getConnectors().forEach(function(e) {
var t = e.getAdapterName(),
n = e.getPrebidConnectorName(),
r = h.a.bidderTargeting.has(n.toUpperCase()) ? h.a.bidderTargeting.get(n.toUpperCase()) : [],
i = e.getAdapterParameters();
e.getPrebidConnectorName().match(/appnexus/) && (i.keywords = {
hp: b.a.getTopMostParentWindow().location.pathname.match(/^[\/]?$/) ? 1 : 0,
"in-view": d ? 1 : 0,
"in-focus": m ? 1 : 0,
"is-viewable": d && m ? 1 : 0,
"loop-index": u
});
var a = e.getSizeTargetsKey(s);
new O(new S(t, o, a, f, p, l, u, d), r).isSatisfied() ? c.push({
bidder: n,
params: i,
_sizeTargetingKey: a
}) : g.a.debug("Connector " + n + " failed targeting", r)
}), t = s.getPlacementSizes(e).map(function(e) {
return [e.getWidth(), e.getHeight()]
}), s.isBanner() || s.isRichMedia() ? i.set(n, {
code: n,
sizes: t,
mediaTypes: {
banner: {
sizes: t
}
},
bids: c
}) : i.set(n, {
code: n,
sizes: t,
bids: c
}))) : g.a.error("Placement config not found for " + r)
}), i.mapToArrayOf(function(e) {
return e
})
}, V);
function V(e, t, n) {
void 0 === n && (n = !1), this.built = t.built, this.countryCode = e, this.accountId = t.account_id, this.siteId = t.site_id, n ? (this.dfpEnabled = !1, this.dfpMobileEnabled = !1, this.dfpDesktopEnabled = !1) : (this.dfpEnabled = void 0 !== t.dfp_enabled && t.dfp_enabled, this.dfpMobileEnabled = void 0 === t.dfp_mobile_enabled ? this.dfpEnabled : t.dfp_mobile_enabled, this.dfpDesktopEnabled = void 0 === t.dfp_desktop_enabled ? this.dfpEnabled : t.dfp_desktop_enabled), this.adblockRecoveryEnabled = void 0 !== t.adblock_recovery_enabled && t.adblock_recovery_enabled, this.a9Enabled = void 0 !== t.a9_enabled && t.a9_enabled, this.directRatio = t.direct_ratio, this.rtbRatio = t.rtb_ratio, this.enableRefresh = t.enable_refresh, this.refreshAfter = t.refresh_after, this.maxRefreshes = t.max_refreshes, this.siteCategory = t.site_category;
var r, i, a = new R.a;
t.placements.forEach(function(e) {
a.set(e.placement_id, new u(e))
}), this.placements = a, this.yandexTagId = void 0 === t.yandex_tag_id ? "" : t.yandex_tag_id, this.yandexEnabled = void 0 !== t.yandex_enabled && t.yandex_enabled, this.yandexDelay = void 0 === t.yandex_delay ? 0 : t.yandex_delay, this.spaEnabled = void 0 !== t.is_spa && t.is_spa, this.coppaCompliant = void 0 !== t.is_coppa_compliant && t.is_coppa_compliant, this.cmpEnabled = void 0 !== t.cmp_enabled && t.cmp_enabled, void 0 === t.cmp_option ? this.cmpOption = this.cmpEnabled ? z.a.CMP_TCF_1_3 : z.a.CMP_3rd_PARTY : this.cmpOption = t.cmp_option, t.domain ? this.domain = t.domain : (r = o(28), i = b.a.getTopMostParentWindow(), this.domain = r.parse(i.location.hostname).domain), this.domain = this.domain ? this.domain.toLowerCase() : "", this.lazyLoadAds = void 0 !== t.lazy_load_ads && t.lazy_load_ads, this.usePlacementPreloader = void 0 !== t.use_placement_preloader && t.use_placement_preloader
}
var L = o(6),
F = o(13),
W = (G.getSiteId = function() {
return L.a.get("data-site-id")
}, G.getEnvironment = function() {
return this.environment
}, G.get = function(e, t) {
return this.headerBiddingConfig instanceof M ? e(this.headerBiddingConfig) : this.fetchHeaderBiddingConfig(e, t)
}, G.fetchHeaderBiddingConfig = function(o, r, s) {
var d = this;
void 0 === s && (s = h.a.configEndpoints), g.a.info("Fetching header-bidding config");
var e = s.getEndpoint(G.getSiteId());
F.a.go({
method: F.a.RequestMethod.GET,
url: e,
timeout: h.a.configTimeoutMS,
success: function(e, t, n) {
var r = "ALL",
i = "1" == n.getResponseHeader("x-bl");
null !== n.getResponseHeader("X-Geo") && n.getResponseHeader("X-Geo").match(/^[A-Z]{2}$/) ? r = n.getResponseHeader("X-Geo") : null !== n.getResponseHeader("cdn-requestcountrycode") && n.getResponseHeader("cdn-requestcountrycode").match(/^[A-Z]{2}$/) && (r = n.getResponseHeader("cdn-requestcountrycode"));
var a = JSON.parse(atob(t.slice(h.a.packingLength)));
d.environment = s.environment, o(new M(r, a, i))
},
error: function(e, t, n) {
s.hasAlternativeEndpointConfig() ? d.fetchHeaderBiddingConfig(o, r, s.getAlternativeEndpoint()) : (g.a.error("Failed to fetch header bidding config"), r())
}
})
}, G);
function G() {}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return i
});
var r = n(9),
i = (a.prototype.getAdapterCPM = function() {
return this.adapterCPM
}, a.prototype.getAdapterName = function() {
return this.adapterName
}, a.prototype.getAdapterTag = function() {
return this.adapterTag
}, a.prototype.getLinkedPlacementId = function() {
return this.linkedPlacementId
}, a.prototype.getOrderIndex = function() {
return this.orderIndex
}, a.prototype.getTargetDevice = function() {
return this.targetDevice
}, a.prototype.isTargetingMobileOnly = function() {
return "mobile" === this.targetDevice
}, a.prototype.isTargetingDesktopOnly = function() {
return "desktop" === this.targetDevice
}, a.prototype.isTargetingAnyDevice = function() {
return "all" === this.targetDevice
}, a.prototype.getTargetCountryCode = function() {
return this.targetCountryCode
}, a.prototype.getTargetSize = function() {
return this.targetSize
}, a);
function a(e) {
this.adapterCPM = Number(e.adapter_cpm), this.adapterName = e.adapter_name, this.adapterTag = e.adapter_tag, this.linkedPlacementId = e.linked_placement_id, this.orderIndex = Number(e.order_index), this.targetDevice = e.target_device, this.targetCountryCode = e.target_geo, this.targetSize = new r.a(e.target_size)
}
}, function(e, t, n) {
"use strict";
var r, i;
n.d(t, "a", function() {
return r
}), (i = r = r || {}).ALL = "ALL", i.MOBILE = "MOBILE", i.DESKTOP = "DESKTOP"
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r
});
var r = (i.getHashCode = function(e) {
if (0 === e.length) return 0;
for (var t = 0, n = 0; n < e.length; n++) {
t = (t << 5) - t + e.charCodeAt(n);
t |= 0
}
return t
}, i.getHash = function(e) {
return this.getHashCode(e).toString(16)
}, i);
function i() {}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return i
});
var r = n(1),
i = (a.getTopURL = function() {
return r.a.getTopMostParentWindow().location.href
}, a);
function a() {}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return i
});
var r = function() {
for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length;
for (var r = Array(e), i = 0, t = 0; t < n; t++)
for (var a = arguments[t], o = 0, s = a.length; o < s; o++, i++) r[i] = a[o];
return r
},
i = (a.prototype.sort = function(o) {
var s = r(this.data);
if (this.length() < 1) return new a(s);
var d = function(e, t) {
if (!(t - e < 1)) {
for (var n, r = s[t], i = e, a = e; a < t; a++) {
-1 === o(s[a], r) && (i !== a && (n = s[i], s[i] = s[a], s[a] = n), i++)
}
s[t] = s[i], s[i] = r, d(e, i - 1), d(i + 1, t)
}
};
return d(0, this.length() - 1), this.data = s, new a(s)
}, a.prototype.findOne = function(e) {
for (var t = 0; t < this.length(); t++)
if (e(this.data[t])) return this.data[t];
return null
}, a.prototype.get = function(e) {
return this.data[e]
}, a.prototype.push = function(e) {
this.data.push(e)
}, a.prototype.pop = function() {
return this.data.shift()
}, a.prototype.clear = function() {
this.data = []
}, a.prototype.length = function() {
return this.data.length
}, a.prototype.asArray = function() {
return r(this.data)
}, a);
function a(e) {
var t = this;
this.data = [], void 0 !== e && e.forEach(function(e) {
return t.data.push(e)
})
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return i
});
var r = n(1),
i = (a.emit = function(e, t) {
var n = new CustomEvent(e, {
bubbles: !0,
detail: t
});
this.rootElement.dispatchEvent(n)
}, a.on = function(e, t) {
this.rootElement.addEventListener(e, function(e) {
return t(e.detail)
})
}, a.removeListener = function(e, t) {
this.rootElement.removeEventListener(e, function(e) {
return t(e.detail)
})
}, a.rootElement = r.a.getTopMostParentBody(), a);
function a() {}
}, function(sn, exports, e) {
var dn;
/*!
* jQuery JavaScript Library v3.5.1
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2020-05-04T22:49Z
*/
! function(e, t) {
"use strict";
"object" == typeof sn.exports ? sn.exports = e.document ? t(e, !0) : function(e) {
if (!e.document) throw new Error("jQuery requires a window with a document");
return t(e)
} : t(e)
}("undefined" != typeof window ? window : this, function(S, e) {
"use strict";
function g(e) {
return null != e && e === e.window
}
var t = [],
r = Object.getPrototypeOf,
s = t.slice,
h = t.flat ? function(e) {
return t.flat.call(e)
} : function(e) {
return t.concat.apply([], e)
},
d = t.push,
i = t.indexOf,
n = {},
a = n.toString,
b = n.hasOwnProperty,
o = b.toString,
c = o.call(Object),
y = {},
v = function(e) {
return "function" == typeof e && "number" != typeof e.nodeType
},
k = S.document,
u = {
type: !0,
src: !0,
nonce: !0,
noModule: !0
};
function w(e, t, n) {
var r, i, a = (n = n || k).createElement("script");
if (a.text = e, t)
for (r in u)(i = t[r] || t.getAttribute && t.getAttribute(r)) && a.setAttribute(r, i);
n.head.appendChild(a).parentNode.removeChild(a)
}
function I(e) {
return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[a.call(e)] || "object" : typeof e
}
var j = function(e, t) {
return new j.fn.init(e, t)
};
function p(e) {
var t = !!e && "length" in e && e.length,
n = I(e);
return !v(e) && !g(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e)
}
j.fn = j.prototype = {
jquery: "3.5.1",
constructor: j,
length: 0,
toArray: function() {
return s.call(this)
},
get: function(e) {
return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e]
},
pushStack: function(e) {
var t = j.merge(this.constructor(), e);
return t.prevObject = this, t
},
each: function(e) {
return j.each(this, e)
},
map: function(n) {
return this.pushStack(j.map(this, function(e, t) {
return n.call(e, t, e)
}))
},
slice: function() {
return this.pushStack(s.apply(this, arguments))
},
first: function() {
return this.eq(0)
},
last: function() {
return this.eq(-1)
},
even: function() {
return this.pushStack(j.grep(this, function(e, t) {
return (t + 1) % 2
}))
},
odd: function() {
return this.pushStack(j.grep(this, function(e, t) {
return t % 2
}))
},
eq: function(e) {
var t = this.length,
n = +e + (e < 0 ? t : 0);
return this.pushStack(0 <= n && n < t ? [this[n]] : [])
},
end: function() {
return this.prevObject || this.constructor()
},
push: d,
sort: t.sort,
splice: t.splice
}, j.extend = j.fn.extend = function() {
var e, t, n, r, i, a, o = arguments[0] || {},
s = 1,
d = arguments.length,
c = !1;
for ("boolean" == typeof o && (c = o, o = arguments[s] || {}, s++), "object" == typeof o || v(o) || (o = {}), s === d && (o = this, s--); s < d; s++)
if (null != (e = arguments[s]))
for (t in e) r = e[t], "__proto__" !== t && o !== r && (c && r && (j.isPlainObject(r) || (i = Array.isArray(r))) ? (n = o[t], a = i && !Array.isArray(n) ? [] : i || j.isPlainObject(n) ? n : {}, i = !1, o[t] = j.extend(c, a, r)) : void 0 !== r && (o[t] = r));
return o
}, j.extend({
expando: "jQuery" + ("3.5.1" + Math.random()).replace(/\D/g, ""),
isReady: !0,
error: function(e) {
throw new Error(e)
},
noop: function() {},
isPlainObject: function(e) {
var t, n;
return !(!e || "[object Object]" !== a.call(e)) && (!(t = r(e)) || "function" == typeof(n = b.call(t, "constructor") && t.constructor) && o.call(n) === c)
},
isEmptyObject: function(e) {
for (var t in e) return !1;
return !0
},
globalEval: function(e, t, n) {
w(e, {
nonce: t && t.nonce
}, n)
},
each: function(e, t) {
var n, r = 0;
if (p(e))
for (n = e.length; r < n && !1 !== t.call(e[r], r, e[r]); r++);
else
for (r in e)
if (!1 === t.call(e[r], r, e[r])) break;
return e
},
makeArray: function(e, t) {
var n = t || [];
return null != e && (p(Object(e)) ? j.merge(n, "string" == typeof e ? [e] : e) : d.call(n, e)), n
},
inArray: function(e, t, n) {
return null == t ? -1 : i.call(t, e, n)
},
merge: function(e, t) {
for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r];
return e.length = i, e
},
grep: function(e, t, n) {
for (var r = [], i = 0, a = e.length, o = !n; i < a; i++) !t(e[i], i) != o && r.push(e[i]);
return r
},
map: function(e, t, n) {
var r, i, a = 0,
o = [];
if (p(e))
for (r = e.length; a < r; a++) null != (i = t(e[a], a, n)) && o.push(i);
else
for (a in e) null != (i = t(e[a], a, n)) && o.push(i);
return h(o)
},
guid: 1,
support: y
}), "function" == typeof Symbol && (j.fn[Symbol.iterator] = t[Symbol.iterator]), j.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
n["[object " + t + "]"] = t.toLowerCase()
});
var l =
/*!
* Sizzle CSS Selector Engine v2.3.5
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Released under the MIT license
* https://js.foundation/
*
* Date: 2020-03-14
*/
function(n) {
function p(e, t) {
var n = "0x" + e.slice(1) - 65536;
return t || (n < 0 ? String.fromCharCode(65536 + n) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320))
}
function i() {
T()
}
var e, f, w, a, o, m, l, g, I, d, c, T, S, s, k, h, u, b, y, j = "sizzle" + +new Date,
v = n.document,
A = 0,
r = 0,
E = ce(),
O = ce(),
_ = ce(),
C = ce(),
x = function(e, t) {
return e === t && (c = !0), 0
},
R = {}.hasOwnProperty,
t = [],
D = t.pop,
P = t.push,
U = t.push,
N = t.slice,
B = function(e, t) {
for (var n = 0, r = e.length; n < r; n++)
if (e[n] === t) return n;
return -1
},
q = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
z = "[\\x20\\t\\r\\n\\f]",
M = "(?:\\\\[\\da-fA-F]{1,6}" + z + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
V = "\\[" + z + "*(" + M + ")(?:" + z + "*([*^$|!~]?=)" + z + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + M + "))|)" + z + "*\\]",
L = ":(" + M + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + V + ")*)|.*)\\)|)",
F = new RegExp(z + "+", "g"),
W = new RegExp("^" + z + "+|((?:^|[^\\\\])(?:\\\\.)*)" + z + "+$", "g"),
G = new RegExp("^" + z + "*," + z + "*"),
H = new RegExp("^" + z + "*([>+~]|" + z + ")" + z + "*"),
J = new RegExp(z + "|>"),
Y = new RegExp(L),
K = new RegExp("^" + M + "$"),
X = {
ID: new RegExp("^#(" + M + ")"),
CLASS: new RegExp("^\\.(" + M + ")"),
TAG: new RegExp("^(" + M + "|[*])"),
ATTR: new RegExp("^" + V),
PSEUDO: new RegExp("^" + L),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + z + "*(even|odd|(([+-]|)(\\d*)n|)" + z + "*(?:([+-]|)" + z + "*(\\d+)|))" + z + "*\\)|)", "i"),
bool: new RegExp("^(?:" + q + ")$", "i"),
needsContext: new RegExp("^" + z + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + z + "*((?:-\\d)?\\d*)" + z + "*\\)|)(?=[^-]|$)", "i")
},
Q = /HTML$/i,
Z = /^(?:input|select|textarea|button)$/i,
ee = /^h\d$/i,
te = /^[^{]+\{\s*\[native \w/,
ne = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
re = /[+~]/,
ie = new RegExp("\\\\[\\da-fA-F]{1,6}" + z + "?|\\\\([^\\r\\n\\f])", "g"),
ae = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
oe = function(e, t) {
return t ? "\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e
},
se = ve(function(e) {
return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase()
}, {
dir: "parentNode",
next: "legend"
});
try {
U.apply(t = N.call(v.childNodes), v.childNodes), t[v.childNodes.length].nodeType
} catch (e) {
U = {
apply: t.length ? function(e, t) {
P.apply(e, N.call(t))
} : function(e, t) {
for (var n = e.length, r = 0; e[n++] = t[r++];);
e.length = n - 1
}
}
}
function de(t, e, n, r) {
var i, a, o, s, d, c, u, p = e && e.ownerDocument,
l = e ? e.nodeType : 9;
if (n = n || [], "string" != typeof t || !t || 1 !== l && 9 !== l && 11 !== l) return n;
if (!r && (T(e), e = e || S, k)) {
if (11 !== l && (d = ne.exec(t)))
if (i = d[1]) {
if (9 === l) {
if (!(o = e.getElementById(i))) return n;
if (o.id === i) return n.push(o), n
} else if (p && (o = p.getElementById(i)) && y(e, o) && o.id === i) return n.push(o), n
} else {
if (d[2]) return U.apply(n, e.getElementsByTagName(t)), n;
if ((i = d[3]) && f.getElementsByClassName && e.getElementsByClassName) return U.apply(n, e.getElementsByClassName(i)), n
} if (f.qsa && !C[t + " "] && (!h || !h.test(t)) && (1 !== l || "object" !== e.nodeName.toLowerCase())) {
if (u = t, p = e, 1 === l && (J.test(t) || H.test(t))) {
for ((p = re.test(t) && he(e.parentNode) || e) === e && f.scope || ((s = e.getAttribute("id")) ? s = s.replace(ae, oe) : e.setAttribute("id", s = j)), a = (c = m(t)).length; a--;) c[a] = (s ? "#" + s : ":scope") + " " + ye(c[a]);
u = c.join(",")
}
try {
return U.apply(n, p.querySelectorAll(u)), n
} catch (e) {
C(t, !0)
} finally {
s === j && e.removeAttribute("id")
}
}
}
return g(t.replace(W, "$1"), e, n, r)
}
function ce() {
var n = [];
function r(e, t) {
return n.push(e + " ") > w.cacheLength && delete r[n.shift()], r[e + " "] = t
}
return r
}
function ue(e) {
return e[j] = !0, e
}
function pe(e) {
var t = S.createElement("fieldset");
try {
return !!e(t)
} catch (e) {
return !1
} finally {
t.parentNode && t.parentNode.removeChild(t), t = null
}
}
function le(e, t) {
for (var n = e.split("|"), r = n.length; r--;) w.attrHandle[n[r]] = t
}
function fe(e, t) {
var n = t && e,
r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
if (r) return r;
if (n)
for (; n = n.nextSibling;)
if (n === t) return -1;
return e ? 1 : -1
}
function me(t) {
return function(e) {
return "form" in e ? e.parentNode && !1 === e.disabled ? "label" in e ? "label" in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && se(e) === t : e.disabled === t : "label" in e && e.disabled === t
}
}
function ge(o) {
return ue(function(a) {
return a = +a, ue(function(e, t) {
for (var n, r = o([], e.length, a), i = r.length; i--;) e[n = r[i]] && (e[n] = !(t[n] = e[n]))
})
})
}
function he(e) {
return e && void 0 !== e.getElementsByTagName && e
}
for (e in f = de.support = {}, o = de.isXML = function(e) {
var t = e.namespaceURI,
n = (e.ownerDocument || e).documentElement;
return !Q.test(t || n && n.nodeName || "HTML")
}, T = de.setDocument = function(e) {
var t, n, r = e ? e.ownerDocument || e : v;
return r != S && 9 === r.nodeType && r.documentElement && (s = (S = r).documentElement, k = !o(S), v != S && (n = S.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", i, !1) : n.attachEvent && n.attachEvent("onunload", i)), f.scope = pe(function(e) {
return s.appendChild(e).appendChild(S.createElement("div")), void 0 !== e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length
}), f.attributes = pe(function(e) {
return e.className = "i", !e.getAttribute("className")
}), f.getElementsByTagName = pe(function(e) {
return e.appendChild(S.createComment("")), !e.getElementsByTagName("*").length
}), f.getElementsByClassName = te.test(S.getElementsByClassName), f.getById = pe(function(e) {
return s.appendChild(e).id = j, !S.getElementsByName || !S.getElementsByName(j).length
}), f.getById ? (w.filter.ID = function(e) {
var t = e.replace(ie, p);
return function(e) {
return e.getAttribute("id") === t
}
}, w.find.ID = function(e, t) {
if (void 0 !== t.getElementById && k) {
var n = t.getElementById(e);
return n ? [n] : []
}
}) : (w.filter.ID = function(e) {
var n = e.replace(ie, p);
return function(e) {
var t = void 0 !== e.getAttributeNode && e.getAttributeNode("id");
return t && t.value === n
}
}, w.find.ID = function(e, t) {
if (void 0 !== t.getElementById && k) {
var n, r, i, a = t.getElementById(e);
if (a) {
if ((n = a.getAttributeNode("id")) && n.value === e) return [a];
for (i = t.getElementsByName(e), r = 0; a = i[r++];)
if ((n = a.getAttributeNode("id")) && n.value === e) return [a]
}
return []
}
}), w.find.TAG = f.getElementsByTagName ? function(e, t) {
return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : f.qsa ? t.querySelectorAll(e) : void 0
} : function(e, t) {
var n, r = [],
i = 0,
a = t.getElementsByTagName(e);
if ("*" !== e) return a;
for (; n = a[i++];) 1 === n.nodeType && r.push(n);
return r
}, w.find.CLASS = f.getElementsByClassName && function(e, t) {
if (void 0 !== t.getElementsByClassName && k) return t.getElementsByClassName(e)
}, u = [], h = [], (f.qsa = te.test(S.querySelectorAll)) && (pe(function(e) {
var t;
s.appendChild(e).innerHTML = "<a id='" + j + "'></a><select id='" + j + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && h.push("[*^$]=" + z + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || h.push("\\[" + z + "*(?:value|" + q + ")"), e.querySelectorAll("[id~=" + j + "-]").length || h.push("~="), (t = S.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || h.push("\\[" + z + "*name" + z + "*=" + z + "*(?:''|\"\")"), e.querySelectorAll(":checked").length || h.push(":checked"), e.querySelectorAll("a#" + j + "+*").length || h.push(".#.+[+~]"), e.querySelectorAll("\\\f"), h.push("[\\r\\n\\f]")
}), pe(function(e) {
e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
var t = S.createElement("input");
t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && h.push("name" + z + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && h.push(":enabled", ":disabled"), s.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && h.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), h.push(",.*:")
})), (f.matchesSelector = te.test(b = s.matches || s.webkitMatchesSelector || s.mozMatchesSelector || s.oMatchesSelector || s.msMatchesSelector)) && pe(function(e) {
f.disconnectedMatch = b.call(e, "*"), b.call(e, "[s!='']:x"), u.push("!=", L)
}), h = h.length && new RegExp(h.join("|")), u = u.length && new RegExp(u.join("|")), t = te.test(s.compareDocumentPosition), y = t || te.test(s.contains) ? function(e, t) {
var n = 9 === e.nodeType ? e.documentElement : e,
r = t && t.parentNode;
return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
} : function(e, t) {
if (t)
for (; t = t.parentNode;)
if (t === e) return !0;
return !1
}, x = t ? function(e, t) {
if (e === t) return c = !0, 0;
var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
return n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !f.sortDetached && t.compareDocumentPosition(e) === n ? e == S || e.ownerDocument == v && y(v, e) ? -1 : t == S || t.ownerDocument == v && y(v, t) ? 1 : d ? B(d, e) - B(d, t) : 0 : 4 & n ? -1 : 1)
} : function(e, t) {
if (e === t) return c = !0, 0;
var n, r = 0,
i = e.parentNode,
a = t.parentNode,
o = [e],
s = [t];
if (!i || !a) return e == S ? -1 : t == S ? 1 : i ? -1 : a ? 1 : d ? B(d, e) - B(d, t) : 0;
if (i === a) return fe(e, t);
for (n = e; n = n.parentNode;) o.unshift(n);
for (n = t; n = n.parentNode;) s.unshift(n);
for (; o[r] === s[r];) r++;
return r ? fe(o[r], s[r]) : o[r] == v ? -1 : s[r] == v ? 1 : 0
}), S
}, de.matches = function(e, t) {
return de(e, null, null, t)
}, de.matchesSelector = function(e, t) {
if (T(e), f.matchesSelector && k && !C[t + " "] && (!u || !u.test(t)) && (!h || !h.test(t))) try {
var n = b.call(e, t);
if (n || f.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n
} catch (e) {
C(t, !0)
}
return 0 < de(t, S, null, [e]).length
}, de.contains = function(e, t) {
return (e.ownerDocument || e) != S && T(e), y(e, t)
}, de.attr = function(e, t) {
(e.ownerDocument || e) != S && T(e);
var n = w.attrHandle[t.toLowerCase()],
r = n && R.call(w.attrHandle, t.toLowerCase()) ? n(e, t, !k) : void 0;
return void 0 !== r ? r : f.attributes || !k ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
}, de.escape = function(e) {
return (e + "").replace(ae, oe)
}, de.error = function(e) {
throw new Error("Syntax error, unrecognized expression: " + e)
}, de.uniqueSort = function(e) {
var t, n = [],
r = 0,
i = 0;
if (c = !f.detectDuplicates, d = !f.sortStable && e.slice(0), e.sort(x), c) {
for (; t = e[i++];) t === e[i] && (r = n.push(i));
for (; r--;) e.splice(n[r], 1)
}
return d = null, e
}, a = de.getText = function(e) {
var t, n = "",
r = 0,
i = e.nodeType;
if (i) {
if (1 === i || 9 === i || 11 === i) {
if ("string" == typeof e.textContent) return e.textContent;
for (e = e.firstChild; e; e = e.nextSibling) n += a(e)
} else if (3 === i || 4 === i) return e.nodeValue
} else
for (; t = e[r++];) n += a(t);
return n
}, (w = de.selectors = {
cacheLength: 50,
createPseudo: ue,
match: X,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function(e) {
return e[1] = e[1].replace(ie, p), e[3] = (e[3] || e[4] || e[5] || "").replace(ie, p), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
},
CHILD: function(e) {
return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || de.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && de.error(e[0]), e
},
PSEUDO: function(e) {
var t, n = !e[6] && e[2];
return X.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && Y.test(n) && (t = m(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
}
},
filter: {
TAG: function(e) {
var t = e.replace(ie, p).toLowerCase();
return "*" === e ? function() {
return !0
} : function(e) {
return e.nodeName && e.nodeName.toLowerCase() === t
}
},
CLASS: function(e) {
var t = E[e + " "];
return t || (t = new RegExp("(^|" + z + ")" + e + "(" + z + "|$)")) && E(e, function(e) {
return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "")
})
},
ATTR: function(n, r, i) {
return function(e) {
var t = de.attr(e, n);
return null == t ? "!=" === r : !r || (t += "", "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t.indexOf(i) : "*=" === r ? i && -1 < t.indexOf(i) : "$=" === r ? i && t.slice(-i.length) === i : "~=" === r ? -1 < (" " + t.replace(F, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-"))
}
},
CHILD: function(m, e, t, g, h) {
var b = "nth" !== m.slice(0, 3),
y = "last" !== m.slice(-4),
v = "of-type" === e;
return 1 === g && 0 === h ? function(e) {
return !!e.parentNode
} : function(e, t, n) {
var r, i, a, o, s, d, c = b != y ? "nextSibling" : "previousSibling",
u = e.parentNode,
p = v && e.nodeName.toLowerCase(),
l = !n && !v,
f = !1;
if (u) {
if (b) {
for (; c;) {
for (o = e; o = o[c];)
if (v ? o.nodeName.toLowerCase() === p : 1 === o.nodeType) return !1;
d = c = "only" === m && !d && "nextSibling"
}
return !0
}
if (d = [y ? u.firstChild : u.lastChild], y && l) {
for (f = (s = (r = (i = (a = (o = u)[j] || (o[j] = {}))[o.uniqueID] || (a[o.uniqueID] = {}))[m] || [])[0] === A && r[1]) && r[2], o = s && u.childNodes[s]; o = ++s && o && o[c] || (f = s = 0) || d.pop();)
if (1 === o.nodeType && ++f && o === e) {
i[m] = [A, s, f];
break
}
} else if (l && (f = s = (r = (i = (a = (o = e)[j] || (o[j] = {}))[o.uniqueID] || (a[o.uniqueID] = {}))[m] || [])[0] === A && r[1]), !1 === f)
for (;
(o = ++s && o && o[c] || (f = s = 0) || d.pop()) && ((v ? o.nodeName.toLowerCase() !== p : 1 !== o.nodeType) || !++f || (l && ((i = (a = o[j] || (o[j] = {}))[o.uniqueID] || (a[o.uniqueID] = {}))[m] = [A, f]), o !== e)););
return (f -= h) === g || f % g == 0 && 0 <= f / g
}
}
},
PSEUDO: function(e, a) {
var t, o = w.pseudos[e] || w.setFilters[e.toLowerCase()] || de.error("unsupported pseudo: " + e);
return o[j] ? o(a) : 1 < o.length ? (t = [e, e, "", a], w.setFilters.hasOwnProperty(e.toLowerCase()) ? ue(function(e, t) {
for (var n, r = o(e, a), i = r.length; i--;) e[n = B(e, r[i])] = !(t[n] = r[i])
}) : function(e) {
return o(e, 0, t)
}) : o
}
},
pseudos: {
not: ue(function(e) {
var r = [],
i = [],
s = l(e.replace(W, "$1"));
return s[j] ? ue(function(e, t, n, r) {
for (var i, a = s(e, null, r, []), o = e.length; o--;)(i = a[o]) && (e[o] = !(t[o] = i))
}) : function(e, t, n) {
return r[0] = e, s(r, null, n, i), r[0] = null, !i.pop()
}
}),
has: ue(function(t) {
return function(e) {
return 0 < de(t, e).length
}
}),
contains: ue(function(t) {
return t = t.replace(ie, p),
function(e) {
return -1 < (e.textContent || a(e)).indexOf(t)
}
}),
lang: ue(function(n) {
return K.test(n || "") || de.error("unsupported lang: " + n), n = n.replace(ie, p).toLowerCase(),
function(e) {
var t;
do {
if (t = k ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-")
} while ((e = e.parentNode) && 1 === e.nodeType);
return !1
}
}),
target: function(e) {
var t = n.location && n.location.hash;
return t && t.slice(1) === e.id
},
root: function(e) {
return e === s
},
focus: function(e) {
return e === S.activeElement && (!S.hasFocus || S.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
},
enabled: me(!1),
disabled: me(!0),
checked: function(e) {
var t = e.nodeName.toLowerCase();
return "input" === t && !!e.checked || "option" === t && !!e.selected
},
selected: function(e) {
return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
},
empty: function(e) {
for (e = e.firstChild; e; e = e.nextSibling)
if (e.nodeType < 6) return !1;
return !0
},
parent: function(e) {
return !w.pseudos.empty(e)
},
header: function(e) {
return ee.test(e.nodeName)
},
input: function(e) {
return Z.test(e.nodeName)
},
button: function(e) {
var t = e.nodeName.toLowerCase();
return "input" === t && "button" === e.type || "button" === t
},
text: function(e) {
var t;
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
},
first: ge(function() {
return [0]
}),
last: ge(function(e, t) {
return [t - 1]
}),
eq: ge(function(e, t, n) {
return [n < 0 ? n + t : n]
}),
even: ge(function(e, t) {
for (var n = 0; n < t; n += 2) e.push(n);
return e
}),
odd: ge(function(e, t) {
for (var n = 1; n < t; n += 2) e.push(n);
return e
}),
lt: ge(function(e, t, n) {
for (var r = n < 0 ? n + t : t < n ? t : n; 0 <= --r;) e.push(r);
return e
}),
gt: ge(function(e, t, n) {
for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
return e
})
}
}).pseudos.nth = w.pseudos.eq, {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) w.pseudos[e] = function(t) {
return function(e) {
return "input" === e.nodeName.toLowerCase() && e.type === t
}
}(e);
for (e in {
submit: !0,
reset: !0
}) w.pseudos[e] = function(n) {
return function(e) {
var t = e.nodeName.toLowerCase();
return ("input" === t || "button" === t) && e.type === n
}
}(e);
function be() {}
function ye(e) {
for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
return r
}
function ve(s, e, t) {
var d = e.dir,
c = e.next,
u = c || d,
p = t && "parentNode" === u,
l = r++;
return e.first ? function(e, t, n) {
for (; e = e[d];)
if (1 === e.nodeType || p) return s(e, t, n);
return !1
} : function(e, t, n) {
var r, i, a, o = [A, l];
if (n) {
for (; e = e[d];)
if ((1 === e.nodeType || p) && s(e, t, n)) return !0
} else
for (; e = e[d];)
if (1 === e.nodeType || p)
if (i = (a = e[j] || (e[j] = {}))[e.uniqueID] || (a[e.uniqueID] = {}), c && c === e.nodeName.toLowerCase()) e = e[d] || e;
else {
if ((r = i[u]) && r[0] === A && r[1] === l) return o[2] = r[2];
if ((i[u] = o)[2] = s(e, t, n)) return !0
} return !1
}
}
function we(i) {
return 1 < i.length ? function(e, t, n) {
for (var r = i.length; r--;)
if (!i[r](e, t, n)) return !1;
return !0
} : i[0]
}
function Ie(e, t, n, r, i) {
for (var a, o = [], s = 0, d = e.length, c = null != t; s < d; s++)(a = e[s]) && (n && !n(a, r, i) || (o.push(a), c && t.push(s)));
return o
}
function Te(f, m, g, h, b, e) {
return h && !h[j] && (h = Te(h)), b && !b[j] && (b = Te(b, e)), ue(function(e, t, n, r) {
var i, a, o, s = [],
d = [],
c = t.length,
u = e || function(e, t, n) {
for (var r = 0, i = t.length; r < i; r++) de(e, t[r], n);
return n
}(m || "*", n.nodeType ? [n] : n, []),
p = !f || !e && m ? u : Ie(u, s, f, n, r),
l = g ? b || (e ? f : c || h) ? [] : t : p;
if (g && g(p, l, n, r), h)
for (i = Ie(l, d), h(i, [], n, r), a = i.length; a--;)(o = i[a]) && (l[d[a]] = !(p[d[a]] = o));
if (e) {
if (b || f) {
if (b) {
for (i = [], a = l.length; a--;)(o = l[a]) && i.push(p[a] = o);
b(null, l = [], i, r)
}
for (a = l.length; a--;)(o = l[a]) && -1 < (i = b ? B(e, o) : s[a]) && (e[i] = !(t[i] = o))
}
} else l = Ie(l === t ? l.splice(c, l.length) : l), b ? b(null, t, l, r) : U.apply(t, l)
})
}
function Se(h, b) {
function e(e, t, n, r, i) {
var a, o, s, d = 0,
c = "0",
u = e && [],
p = [],
l = I,
f = e || v && w.find.TAG("*", i),
m = A += null == l ? 1 : Math.random() || .1,
g = f.length;
for (i && (I = t == S || t || i); c !== g && null != (a = f[c]); c++) {
if (v && a) {
for (o = 0, t || a.ownerDocument == S || (T(a), n = !k); s = h[o++];)
if (s(a, t || S, n)) {
r.push(a);
break
} i && (A = m)
}
y && ((a = !s && a) && d--, e && u.push(a))
}
if (d += c, y && c !== d) {
for (o = 0; s = b[o++];) s(u, p, t, n);
if (e) {
if (0 < d)
for (; c--;) u[c] || p[c] || (p[c] = D.call(r));
p = Ie(p)
}
U.apply(r, p), i && !e && 0 < p.length && 1 < d + b.length && de.uniqueSort(r)
}
return i && (A = m, I = l), u
}
var y = 0 < b.length,
v = 0 < h.length;
return y ? ue(e) : e
}
return be.prototype = w.filters = w.pseudos, w.setFilters = new be, m = de.tokenize = function(e, t) {
var n, r, i, a, o, s, d, c = O[e + " "];
if (c) return t ? 0 : c.slice(0);
for (o = e, s = [], d = w.preFilter; o;) {
for (a in n && !(r = G.exec(o)) || (r && (o = o.slice(r[0].length) || o), s.push(i = [])), n = !1, (r = H.exec(o)) && (n = r.shift(), i.push({
value: n,
type: r[0].replace(W, " ")
}), o = o.slice(n.length)), w.filter) !(r = X[a].exec(o)) || d[a] && !(r = d[a](r)) || (n = r.shift(), i.push({
value: n,
type: a,
matches: r
}), o = o.slice(n.length));
if (!n) break
}
return t ? o.length : o ? de.error(e) : O(e, s).slice(0)
}, l = de.compile = function(e, t) {
var n, r = [],
i = [],
a = _[e + " "];
if (!a) {
for (n = (t = t || m(e)).length; n--;)(a = function e(t) {
for (var i, n, r, a = t.length, o = w.relative[t[0].type], s = o || w.relative[" "], d = o ? 1 : 0, c = ve(function(e) {
return e === i
}, s, !0), u = ve(function(e) {
return -1 < B(i, e)
}, s, !0), p = [function(e, t, n) {
var r = !o && (n || t !== I) || ((i = t).nodeType ? c : u)(e, t, n);
return i = null, r
}]; d < a; d++)
if (n = w.relative[t[d].type]) p = [ve(we(p), n)];
else {
if ((n = w.filter[t[d].type].apply(null, t[d].matches))[j]) {
for (r = ++d; r < a && !w.relative[t[r].type]; r++);
return Te(1 < d && we(p), 1 < d && ye(t.slice(0, d - 1).concat({
value: " " === t[d - 2].type ? "*" : ""
})).replace(W, "$1"), n, d < r && e(t.slice(d, r)), r < a && e(t = t.slice(r)), r < a && ye(t))
}
p.push(n)
} return we(p)
}(t[n]))[j] ? r.push(a) : i.push(a);
(a = _(e, Se(i, r))).selector = e
}
return a
}, g = de.select = function(e, t, n, r) {
var i, a, o, s, d, c = "function" == typeof e && e,
u = !r && m(e = c.selector || e);
if (n = n || [], 1 === u.length) {
if (2 < (a = u[0] = u[0].slice(0)).length && "ID" === (o = a[0]).type && 9 === t.nodeType && k && w.relative[a[1].type]) {
if (!(t = (w.find.ID(o.matches[0].replace(ie, p), t) || [])[0])) return n;
c && (t = t.parentNode), e = e.slice(a.shift().value.length)
}
for (i = X.needsContext.test(e) ? 0 : a.length; i-- && (o = a[i], !w.relative[s = o.type]);)
if ((d = w.find[s]) && (r = d(o.matches[0].replace(ie, p), re.test(a[0].type) && he(t.parentNode) || t))) {
if (a.splice(i, 1), !(e = r.length && ye(a))) return U.apply(n, r), n;
break
}
}
return (c || l(e, u))(r, t, !k, n, !t || re.test(e) && he(t.parentNode) || t), n
}, f.sortStable = j.split("").sort(x).join("") === j, f.detectDuplicates = !!c, T(), f.sortDetached = pe(function(e) {
return 1 & e.compareDocumentPosition(S.createElement("fieldset"))
}), pe(function(e) {
return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
}) || le("type|href|height|width", function(e, t, n) {
if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
}), f.attributes && pe(function(e) {
return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
}) || le("value", function(e, t, n) {
if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue
}), pe(function(e) {
return null == e.getAttribute("disabled")
}) || le(q, function(e, t, n) {
var r;
if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
}), de
}(S);
j.find = l, j.expr = l.selectors, j.expr[":"] = j.expr.pseudos, j.uniqueSort = j.unique = l.uniqueSort, j.text = l.getText, j.isXMLDoc = l.isXML, j.contains = l.contains, j.escapeSelector = l.escape;
function f(e, t, n) {
for (var r = [], i = void 0 !== n;
(e = e[t]) && 9 !== e.nodeType;)
if (1 === e.nodeType) {
if (i && j(e).is(n)) break;
r.push(e)
} return r
}
function m(e, t) {
for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
return n
}
var T = j.expr.match.needsContext;
function A(e, t) {
return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
}
var E = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
function O(e, n, r) {
return v(n) ? j.grep(e, function(e, t) {
return !!n.call(e, t, e) !== r
}) : n.nodeType ? j.grep(e, function(e) {
return e === n !== r
}) : "string" != typeof n ? j.grep(e, function(e) {
return -1 < i.call(n, e) !== r
}) : j.filter(n, e, r)
}
j.filter = function(e, t, n) {
var r = t[0];
return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? j.find.matchesSelector(r, e) ? [r] : [] : j.find.matches(e, j.grep(t, function(e) {
return 1 === e.nodeType
}))
}, j.fn.extend({
find: function(e) {
var t, n, r = this.length,
i = this;
if ("string" != typeof e) return this.pushStack(j(e).filter(function() {
for (t = 0; t < r; t++)
if (j.contains(i[t], this)) return !0
}));
for (n = this.pushStack([]), t = 0; t < r; t++) j.find(e, i[t], n);
return 1 < r ? j.uniqueSort(n) : n
},
filter: function(e) {
return this.pushStack(O(this, e || [], !1))
},
not: function(e) {
return this.pushStack(O(this, e || [], !0))
},
is: function(e) {
return !!O(this, "string" == typeof e && T.test(e) ? j(e) : e || [], !1).length
}
});
var _, C = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
(j.fn.init = function(e, t, n) {
var r, i;
if (!e) return this;
if (n = n || _, "string" != typeof e) return e.nodeType ? (this[0] = e, this.length = 1, this) : v(e) ? void 0 !== n.ready ? n.ready(e) : e(j) : j.makeArray(e, this);
if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : C.exec(e)) || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
if (r[1]) {
if (t = t instanceof j ? t[0] : t, j.merge(this, j.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : k, !0)), E.test(r[1]) && j.isPlainObject(t))
for (r in t) v(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
return this
}
return (i = k.getElementById(r[2])) && (this[0] = i, this.length = 1), this
}).prototype = j.fn, _ = j(k);
var x = /^(?:parents|prev(?:Until|All))/,
R = {
children: !0,
contents: !0,
next: !0,
prev: !0
};
function D(e, t) {
for (;
(e = e[t]) && 1 !== e.nodeType;);
return e
}
j.fn.extend({
has: function(e) {
var t = j(e, this),
n = t.length;
return this.filter(function() {
for (var e = 0; e < n; e++)
if (j.contains(this, t[e])) return !0
})
},
closest: function(e, t) {
var n, r = 0,
i = this.length,
a = [],
o = "string" != typeof e && j(e);
if (!T.test(e))
for (; r < i; r++)
for (n = this[r]; n && n !== t; n = n.parentNode)
if (n.nodeType < 11 && (o ? -1 < o.index(n) : 1 === n.nodeType && j.find.matchesSelector(n, e))) {
a.push(n);
break
} return this.pushStack(1 < a.length ? j.uniqueSort(a) : a)
},
index: function(e) {
return e ? "string" == typeof e ? i.call(j(e), this[0]) : i.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
},
add: function(e, t) {
return this.pushStack(j.uniqueSort(j.merge(this.get(), j(e, t))))
},
addBack: function(e) {
return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
}
}), j.each({
parent: function(e) {
var t = e.parentNode;
return t && 11 !== t.nodeType ? t : null
},
parents: function(e) {
return f(e, "parentNode")
},
parentsUntil: function(e, t, n) {
return f(e, "parentNode", n)
},
next: function(e) {
return D(e, "nextSibling")
},
prev: function(e) {
return D(e, "previousSibling")
},
nextAll: function(e) {
return f(e, "nextSibling")
},
prevAll: function(e) {
return f(e, "previousSibling")
},
nextUntil: function(e, t, n) {
return f(e, "nextSibling", n)
},
prevUntil: function(e, t, n) {
return f(e, "previousSibling", n)
},
siblings: function(e) {
return m((e.parentNode || {}).firstChild, e)
},
children: function(e) {
return m(e.firstChild)
},
contents: function(e) {
return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (A(e, "template") && (e = e.content || e), j.merge([], e.childNodes))
}
}, function(r, i) {
j.fn[r] = function(e, t) {
var n = j.map(this, i, e);
return "Until" !== r.slice(-5) && (t = e), t && "string" == typeof t && (n = j.filter(t, n)), 1 < this.length && (R[r] || j.uniqueSort(n), x.test(r) && n.reverse()), this.pushStack(n)
}
});
var P = /[^\x20\t\r\n\f]+/g;
function U(e) {
return e
}
function N(e) {
throw e
}
function B(e, t, n, r) {
var i;
try {
e && v(i = e.promise) ? i.call(e).done(t).fail(n) : e && v(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r))
} catch (e) {
n.apply(void 0, [e])
}
}
j.Callbacks = function(r) {
var e, n;
r = "string" == typeof r ? (e = r, n = {}, j.each(e.match(P) || [], function(e, t) {
n[t] = !0
}), n) : j.extend({}, r);
function i() {
for (s = s || r.once, o = a = !0; c.length; u = -1)
for (t = c.shift(); ++u < d.length;) !1 === d[u].apply(t[0], t[1]) && r.stopOnFalse && (u = d.length, t = !1);
r.memory || (t = !1), a = !1, s && (d = t ? [] : "")
}
var a, t, o, s, d = [],
c = [],
u = -1,
p = {
add: function() {
return d && (t && !a && (u = d.length - 1, c.push(t)), function n(e) {
j.each(e, function(e, t) {
v(t) ? r.unique && p.has(t) || d.push(t) : t && t.length && "string" !== I(t) && n(t)
})
}(arguments), t && !a && i()), this
},
remove: function() {
return j.each(arguments, function(e, t) {
for (var n; - 1 < (n = j.inArray(t, d, n));) d.splice(n, 1), n <= u && u--
}), this
},
has: function(e) {
return e ? -1 < j.inArray(e, d) : 0 < d.length
},
empty: function() {
return d = d && [], this
},
disable: function() {
return s = c = [], d = t = "", this
},
disabled: function() {
return !d
},
lock: function() {
return s = c = [], t || a || (d = t = ""), this
},
locked: function() {
return !!s
},
fireWith: function(e, t) {
return s || (t = [e, (t = t || []).slice ? t.slice() : t], c.push(t), a || i()), this
},
fire: function() {
return p.fireWith(this, arguments), this
},
fired: function() {
return !!o
}
};
return p
}, j.extend({
Deferred: function(e) {
var a = [
["notify", "progress", j.Callbacks("memory"), j.Callbacks("memory"), 2],
["resolve", "done", j.Callbacks("once memory"), j.Callbacks("once memory"), 0, "resolved"],
["reject", "fail", j.Callbacks("once memory"), j.Callbacks("once memory"), 1, "rejected"]
],
i = "pending",
o = {
state: function() {
return i
},
always: function() {
return s.done(arguments).fail(arguments), this
},
catch: function(e) {
return o.then(null, e)
},
pipe: function() {
var i = arguments;
return j.Deferred(function(r) {
j.each(a, function(e, t) {
var n = v(i[t[4]]) && i[t[4]];
s[t[1]](function() {
var e = n && n.apply(this, arguments);
e && v(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments)
})
}), i = null
}).promise()
},
then: function(t, n, r) {
var d = 0;
function c(i, a, o, s) {
return function() {
function e() {
var e, t;
if (!(i < d)) {
if ((e = o.apply(n, r)) === a.promise()) throw new TypeError("Thenable self-resolution");
t = e && ("object" == typeof e || "function" == typeof e) && e.then, v(t) ? s ? t.call(e, c(d, a, U, s), c(d, a, N, s)) : (d++, t.call(e, c(d, a, U, s), c(d, a, N, s), c(d, a, U, a.notifyWith))) : (o !== U && (n = void 0, r = [e]), (s || a.resolveWith)(n, r))
}
}
var n = this,
r = arguments,
t = s ? e : function() {
try {
e()
} catch (e) {
j.Deferred.exceptionHook && j.Deferred.exceptionHook(e, t.stackTrace), d <= i + 1 && (o !== N && (n = void 0, r = [e]), a.rejectWith(n, r))
}
};
i ? t() : (j.Deferred.getStackHook && (t.stackTrace = j.Deferred.getStackHook()), S.setTimeout(t))
}
}
return j.Deferred(function(e) {
a[0][3].add(c(0, e, v(r) ? r : U, e.notifyWith)), a[1][3].add(c(0, e, v(t) ? t : U)), a[2][3].add(c(0, e, v(n) ? n : N))
}).promise()
},
promise: function(e) {
return null != e ? j.extend(e, o) : o
}
},
s = {};
return j.each(a, function(e, t) {
var n = t[2],
r = t[5];
o[t[1]] = n.add, r && n.add(function() {
i = r
}, a[3 - e][2].disable, a[3 - e][3].disable, a[0][2].lock, a[0][3].lock), n.add(t[3].fire), s[t[0]] = function() {
return s[t[0] + "With"](this === s ? void 0 : this, arguments), this
}, s[t[0] + "With"] = n.fireWith
}), o.promise(s), e && e.call(s, s), s
},
when: function(e) {
function t(t) {
return function(e) {
i[t] = this, a[t] = 1 < arguments.length ? s.call(arguments) : e, --n || o.resolveWith(i, a)
}
}
var n = arguments.length,
r = n,
i = Array(r),
a = s.call(arguments),
o = j.Deferred();
if (n <= 1 && (B(e, o.done(t(r)).resolve, o.reject, !n), "pending" === o.state() || v(a[r] && a[r].then))) return o.then();
for (; r--;) B(a[r], t(r), o.reject);
return o.promise()
}
});
var q = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
j.Deferred.exceptionHook = function(e, t) {
S.console && S.console.warn && e && q.test(e.name) && S.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t)
}, j.readyException = function(e) {
S.setTimeout(function() {
throw e
})
};
var z = j.Deferred();
function M() {
k.removeEventListener("DOMContentLoaded", M), S.removeEventListener("load", M), j.ready()
}
j.fn.ready = function(e) {
return z.then(e).catch(function(e) {
j.readyException(e)
}), this
}, j.extend({
isReady: !1,
readyWait: 1,
ready: function(e) {
(!0 === e ? --j.readyWait : j.isReady) || (j.isReady = !0) !== e && 0 < --j.readyWait || z.resolveWith(k, [j])
}
}), j.ready.then = z.then, "complete" === k.readyState || "loading" !== k.readyState && !k.documentElement.doScroll ? S.setTimeout(j.ready) : (k.addEventListener("DOMContentLoaded", M), S.addEventListener("load", M));
var V = function(e, t, n, r, i, a, o) {
var s = 0,
d = e.length,
c = null == n;
if ("object" === I(n))
for (s in i = !0, n) V(e, t, s, n[s], !0, a, o);
else if (void 0 !== r && (i = !0, v(r) || (o = !0), c && (t = o ? (t.call(e, r), null) : (c = t, function(e, t, n) {
return c.call(j(e), n)
})), t))
for (; s < d; s++) t(e[s], n, o ? r : r.call(e[s], s, t(e[s], n)));
return i ? e : c ? t.call(e) : d ? t(e[0], n) : a
},
L = /^-ms-/,
F = /-([a-z])/g;
function W(e, t) {
return t.toUpperCase()
}
function G(e) {
return e.replace(L, "ms-").replace(F, W)
}
function H(e) {
return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
}
function J() {
this.expando = j.expando + J.uid++
}
J.uid = 1, J.prototype = {
cache: function(e) {
var t = e[this.expando];
return t || (t = {}, H(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
value: t,
configurable: !0
}))), t
},
set: function(e, t, n) {
var r, i = this.cache(e);
if ("string" == typeof t) i[G(t)] = n;
else
for (r in t) i[G(r)] = t[r];
return i
},
get: function(e, t) {
return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][G(t)]
},
access: function(e, t, n) {
return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t)
},
remove: function(e, t) {
var n, r = e[this.expando];
if (void 0 !== r) {
if (void 0 !== t) {
n = (t = Array.isArray(t) ? t.map(G) : (t = G(t)) in r ? [t] : t.match(P) || []).length;
for (; n--;) delete r[t[n]]
}
void 0 !== t && !j.isEmptyObject(r) || (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
}
},
hasData: function(e) {
var t = e[this.expando];
return void 0 !== t && !j.isEmptyObject(t)
}
};
var Y = new J,
K = new J,
X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
Q = /[A-Z]/g;
function Z(e, t, n) {
var r, i;
if (void 0 === n && 1 === e.nodeType)
if (r = "data-" + t.replace(Q, "-$&").toLowerCase(), "string" == typeof(n = e.getAttribute(r))) {
try {
n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : X.test(i) ? JSON.parse(i) : i)
} catch (e) {}
K.set(e, t, n)
} else n = void 0;
return n
}
j.extend({
hasData: function(e) {
return K.hasData(e) || Y.hasData(e)
},
data: function(e, t, n) {
return K.access(e, t, n)
},
removeData: function(e, t) {
K.remove(e, t)
},
_data: function(e, t, n) {
return Y.access(e, t, n)
},
_removeData: function(e, t) {
Y.remove(e, t)
}
}), j.fn.extend({
data: function(n, e) {
var t, r, i, a = this[0],
o = a && a.attributes;
if (void 0 !== n) return "object" == typeof n ? this.each(function() {
K.set(this, n)
}) : V(this, function(e) {
var t;
return a && void 0 === e ? void 0 !== (t = K.get(a, n)) || void 0 !== (t = Z(a, n)) ? t : void 0 : void this.each(function() {
K.set(this, n, e)
})
}, null, e, 1 < arguments.length, null, !0);
if (this.length && (i = K.get(a), 1 === a.nodeType && !Y.get(a, "hasDataAttrs"))) {
for (t = o.length; t--;) o[t] && 0 === (r = o[t].name).indexOf("data-") && (r = G(r.slice(5)), Z(a, r, i[r]));
Y.set(a, "hasDataAttrs", !0)
}
return i
},
removeData: function(e) {
return this.each(function() {
K.remove(this, e)
})
}
}), j.extend({
queue: function(e, t, n) {
var r;
if (e) return t = (t || "fx") + "queue", r = Y.get(e, t), n && (!r || Array.isArray(n) ? r = Y.access(e, t, j.makeArray(n)) : r.push(n)), r || []
},
dequeue: function(e, t) {
t = t || "fx";
var n = j.queue(e, t),
r = n.length,
i = n.shift(),
a = j._queueHooks(e, t);
"inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete a.stop, i.call(e, function() {
j.dequeue(e, t)
}, a)), !r && a && a.empty.fire()
},
_queueHooks: function(e, t) {
var n = t + "queueHooks";
return Y.get(e, n) || Y.access(e, n, {
empty: j.Callbacks("once memory").add(function() {
Y.remove(e, [t + "queue", n])
})
})
}
}), j.fn.extend({
queue: function(t, n) {
var e = 2;
return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? j.queue(this[0], t) : void 0 === n ? this : this.each(function() {
var e = j.queue(this, t, n);
j._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && j.dequeue(this, t)
})
},
dequeue: function(e) {
return this.each(function() {
j.dequeue(this, e)
})
},
clearQueue: function(e) {
return this.queue(e || "fx", [])
},
promise: function(e, t) {
function n() {
--i || a.resolveWith(o, [o])
}
var r, i = 1,
a = j.Deferred(),
o = this,
s = this.length;
for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; s--;)(r = Y.get(o[s], e + "queueHooks")) && r.empty && (i++, r.empty.add(n));
return n(), a.promise(t)
}
});
var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
te = new RegExp("^(?:([+-])=|)(" + ee + ")([a-z%]*)$", "i"),
ne = ["Top", "Right", "Bottom", "Left"],
re = k.documentElement,
ie = function(e) {
return j.contains(e.ownerDocument, e)
},
ae = {
composed: !0
};
re.getRootNode && (ie = function(e) {
return j.contains(e.ownerDocument, e) || e.getRootNode(ae) === e.ownerDocument
});
var oe = function(e, t) {
return "none" === (e = t || e).style.display || "" === e.style.display && ie(e) && "none" === j.css(e, "display")
};
function se(e, t, n, r) {
var i, a, o = 20,
s = r ? function() {
return r.cur()
} : function() {
return j.css(e, t, "")
},
d = s(),
c = n && n[3] || (j.cssNumber[t] ? "" : "px"),
u = e.nodeType && (j.cssNumber[t] || "px" !== c && +d) && te.exec(j.css(e, t));
if (u && u[3] !== c) {
for (d /= 2, c = c || u[3], u = +d || 1; o--;) j.style(e, t, u + c), (1 - a) * (1 - (a = s() / d || .5)) <= 0 && (o = 0), u /= a;
u *= 2, j.style(e, t, u + c), n = n || []
}
return n && (u = +u || +d || 0, i = n[1] ? u + (n[1] + 1) * n[2] : +n[2], r && (r.unit = c, r.start = u, r.end = i)), i
}
var de = {};
function ce(e, t) {
for (var n, r, i, a, o, s, d, c = [], u = 0, p = e.length; u < p; u++)(r = e[u]).style && (n = r.style.display, t ? ("none" === n && (c[u] = Y.get(r, "display") || null, c[u] || (r.style.display = "")), "" === r.style.display && oe(r) && (c[u] = (d = s = o = a = void 0, o = (i = r).ownerDocument, s = i.nodeName, (d = de[s]) || (a = o.body.appendChild(o.createElement(s)), d = j.css(a, "display"), a.parentNode.removeChild(a), "none" === d && (d = "block"), de[s] = d)))) : "none" !== n && (c[u] = "none", Y.set(r, "display", n)));
for (u = 0; u < p; u++) null != c[u] && (e[u].style.display = c[u]);
return e
}
j.fn.extend({
show: function() {
return ce(this, !0)
},
hide: function() {
return ce(this)
},
toggle: function(e) {
return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
oe(this) ? j(this).show() : j(this).hide()
})
}
});
var ue, pe, le = /^(?:checkbox|radio)$/i,
fe = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
me = /^$|^module$|\/(?:java|ecma)script/i;
ue = k.createDocumentFragment().appendChild(k.createElement("div")), (pe = k.createElement("input")).setAttribute("type", "radio"), pe.setAttribute("checked", "checked"), pe.setAttribute("name", "t"), ue.appendChild(pe), y.checkClone = ue.cloneNode(!0).cloneNode(!0).lastChild.checked, ue.innerHTML = "<textarea>x</textarea>", y.noCloneChecked = !!ue.cloneNode(!0).lastChild.defaultValue, ue.innerHTML = "<option></option>", y.option = !!ue.lastChild;
var ge = {
thead: [1, "<table>", "</table>"],
col: [2, "<table><colgroup>", "</colgroup></table>"],
tr: [2, "<table><tbody>", "</tbody></table>"],
td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
_default: [0, "", ""]
};
function he(e, t) {
var n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : [];
return void 0 === t || t && A(e, t) ? j.merge([e], n) : n
}
function be(e, t) {
for (var n = 0, r = e.length; n < r; n++) Y.set(e[n], "globalEval", !t || Y.get(t[n], "globalEval"))
}
ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td, y.option || (ge.optgroup = ge.option = [1, "<select multiple='multiple'>", "</select>"]);
var ye = /<|&#?\w+;/;
function ve(e, t, n, r, i) {
for (var a, o, s, d, c, u, p = t.createDocumentFragment(), l = [], f = 0, m = e.length; f < m; f++)
if ((a = e[f]) || 0 === a)
if ("object" === I(a)) j.merge(l, a.nodeType ? [a] : a);
else if (ye.test(a)) {
for (o = o || p.appendChild(t.createElement("div")), s = (fe.exec(a) || ["", ""])[1].toLowerCase(), d = ge[s] || ge._default, o.innerHTML = d[1] + j.htmlPrefilter(a) + d[2], u = d[0]; u--;) o = o.lastChild;
j.merge(l, o.childNodes), (o = p.firstChild).textContent = ""
} else l.push(t.createTextNode(a));
for (p.textContent = "", f = 0; a = l[f++];)
if (r && -1 < j.inArray(a, r)) i && i.push(a);
else if (c = ie(a), o = he(p.appendChild(a), "script"), c && be(o), n)
for (u = 0; a = o[u++];) me.test(a.type || "") && n.push(a);
return p
}
var we = /^key/,
Ie = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
Te = /^([^.]*)(?:\.(.+)|)/;
function Se() {
return !0
}
function ke() {
return !1
}
function je(e, t) {
return e === function() {
try {
return k.activeElement
} catch (e) {}
}() == ("focus" === t)
}
function Ae(e, t, n, r, i, a) {
var o, s;
if ("object" == typeof t) {
for (s in "string" != typeof n && (r = r || n, n = void 0), t) Ae(e, s, n, r, t[s], a);
return e
}
if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = ke;
else if (!i) return e;
return 1 === a && (o = i, (i = function(e) {
return j().off(e), o.apply(this, arguments)
}).guid = o.guid || (o.guid = j.guid++)), e.each(function() {
j.event.add(this, t, i, r, n)
})
}
function Ee(e, i, a) {
a ? (Y.set(e, i, !1), j.event.add(e, i, {
namespace: !1,
handler: function(e) {
var t, n, r = Y.get(this, i);
if (1 & e.isTrigger && this[i]) {
if (r.length)(j.event.special[i] || {}).delegateType && e.stopPropagation();
else if (r = s.call(arguments), Y.set(this, i, r), t = a(this, i), this[i](), r !== (n = Y.get(this, i)) || t ? Y.set(this, i, !1) : n = {}, r !== n) return e.stopImmediatePropagation(), e.preventDefault(), n.value
} else r.length && (Y.set(this, i, {
value: j.event.trigger(j.extend(r[0], j.Event.prototype), r.slice(1), this)
}), e.stopImmediatePropagation())
}
})) : void 0 === Y.get(e, i) && j.event.add(e, i, Se)
}
j.event = {
global: {},
add: function(t, e, n, r, i) {
var a, o, s, d, c, u, p, l, f, m, g, h = Y.get(t);
if (H(t))
for (n.handler && (n = (a = n).handler, i = a.selector), i && j.find.matchesSelector(re, i), n.guid || (n.guid = j.guid++), (d = h.events) || (d = h.events = Object.create(null)), (o = h.handle) || (o = h.handle = function(e) {
return void 0 !== j && j.event.triggered !== e.type ? j.event.dispatch.apply(t, arguments) : void 0
}), c = (e = (e || "").match(P) || [""]).length; c--;) f = g = (s = Te.exec(e[c]) || [])[1], m = (s[2] || "").split(".").sort(), f && (p = j.event.special[f] || {}, f = (i ? p.delegateType : p.bindType) || f, p = j.event.special[f] || {}, u = j.extend({
type: f,
origType: g,
data: r,
handler: n,
guid: n.guid,
selector: i,
needsContext: i && j.expr.match.needsContext.test(i),
namespace: m.join(".")
}, a), (l = d[f]) || ((l = d[f] = []).delegateCount = 0, p.setup && !1 !== p.setup.call(t, r, m, o) || t.addEventListener && t.addEventListener(f, o)), p.add && (p.add.call(t, u), u.handler.guid || (u.handler.guid = n.guid)), i ? l.splice(l.delegateCount++, 0, u) : l.push(u), j.event.global[f] = !0)
},
remove: function(e, t, n, r, i) {
var a, o, s, d, c, u, p, l, f, m, g, h = Y.hasData(e) && Y.get(e);
if (h && (d = h.events)) {
for (c = (t = (t || "").match(P) || [""]).length; c--;)
if (f = g = (s = Te.exec(t[c]) || [])[1], m = (s[2] || "").split(".").sort(), f) {
for (p = j.event.special[f] || {}, l = d[f = (r ? p.delegateType : p.bindType) || f] || [], s = s[2] && new RegExp("(^|\\.)" + m.join("\\.(?:.*\\.|)") + "(\\.|$)"), o = a = l.length; a--;) u = l[a], !i && g !== u.origType || n && n.guid !== u.guid || s && !s.test(u.namespace) || r && r !== u.selector && ("**" !== r || !u.selector) || (l.splice(a, 1), u.selector && l.delegateCount--, p.remove && p.remove.call(e, u));
o && !l.length && (p.teardown && !1 !== p.teardown.call(e, m, h.handle) || j.removeEvent(e, f, h.handle), delete d[f])
} else
for (f in d) j.event.remove(e, f + t[c], n, r, !0);
j.isEmptyObject(d) && Y.remove(e, "handle events")
}
},
dispatch: function(e) {
var t, n, r, i, a, o, s = new Array(arguments.length),
d = j.event.fix(e),
c = (Y.get(this, "events") || Object.create(null))[d.type] || [],
u = j.event.special[d.type] || {};
for (s[0] = d, t = 1; t < arguments.length; t++) s[t] = arguments[t];
if (d.delegateTarget = this, !u.preDispatch || !1 !== u.preDispatch.call(this, d)) {
for (o = j.event.handlers.call(this, d, c), t = 0;
(i = o[t++]) && !d.isPropagationStopped();)
for (d.currentTarget = i.elem, n = 0;
(a = i.handlers[n++]) && !d.isImmediatePropagationStopped();) d.rnamespace && !1 !== a.namespace && !d.rnamespace.test(a.namespace) || (d.handleObj = a, d.data = a.data, void 0 !== (r = ((j.event.special[a.origType] || {}).handle || a.handler).apply(i.elem, s)) && !1 === (d.result = r) && (d.preventDefault(), d.stopPropagation()));
return u.postDispatch && u.postDispatch.call(this, d), d.result
}
},
handlers: function(e, t) {
var n, r, i, a, o, s = [],
d = t.delegateCount,
c = e.target;
if (d && c.nodeType && !("click" === e.type && 1 <= e.button))
for (; c !== this; c = c.parentNode || this)
if (1 === c.nodeType && ("click" !== e.type || !0 !== c.disabled)) {
for (a = [], o = {}, n = 0; n < d; n++) void 0 === o[i = (r = t[n]).selector + " "] && (o[i] = r.needsContext ? -1 < j(i, this).index(c) : j.find(i, this, null, [c]).length), o[i] && a.push(r);
a.length && s.push({
elem: c,
handlers: a
})
} return c = this, d < t.length && s.push({
elem: c,
handlers: t.slice(d)
}), s
},
addProp: function(t, e) {
Object.defineProperty(j.Event.prototype, t, {
enumerable: !0,
configurable: !0,
get: v(e) ? function() {
if (this.originalEvent) return e(this.originalEvent)
} : function() {
if (this.originalEvent) return this.originalEvent[t]
},
set: function(e) {
Object.defineProperty(this, t, {
enumerable: !0,
configurable: !0,
writable: !0,
value: e
})
}
})
},
fix: function(e) {
return e[j.expando] ? e : new j.Event(e)
},
special: {
load: {
noBubble: !0
},
click: {
setup: function(e) {
var t = this || e;
return le.test(t.type) && t.click && A(t, "input") && Ee(t, "click", Se), !1
},
trigger: function(e) {
var t = this || e;
return le.test(t.type) && t.click && A(t, "input") && Ee(t, "click"), !0
},
_default: function(e) {
var t = e.target;
return le.test(t.type) && t.click && A(t, "input") && Y.get(t, "click") || A(t, "a")
}
},
beforeunload: {
postDispatch: function(e) {
void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
}
}
}
}, j.removeEvent = function(e, t, n) {
e.removeEventListener && e.removeEventListener(t, n)
}, j.Event = function(e, t) {
if (!(this instanceof j.Event)) return new j.Event(e, t);
e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Se : ke, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && j.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[j.expando] = !0
}, j.Event.prototype = {
constructor: j.Event,
isDefaultPrevented: ke,
isPropagationStopped: ke,
isImmediatePropagationStopped: ke,
isSimulated: !1,
preventDefault: function() {
var e = this.originalEvent;
this.isDefaultPrevented = Se, e && !this.isSimulated && e.preventDefault()
},
stopPropagation: function() {
var e = this.originalEvent;
this.isPropagationStopped = Se, e && !this.isSimulated && e.stopPropagation()
},
stopImmediatePropagation: function() {
var e = this.originalEvent;
this.isImmediatePropagationStopped = Se, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()
}
}, j.each({
altKey: !0,
bubbles: !0,
cancelable: !0,
changedTouches: !0,
ctrlKey: !0,
detail: !0,
eventPhase: !0,
metaKey: !0,
pageX: !0,
pageY: !0,
shiftKey: !0,
view: !0,
char: !0,
code: !0,
charCode: !0,
key: !0,
keyCode: !0,
button: !0,
buttons: !0,
clientX: !0,
clientY: !0,
offsetX: !0,
offsetY: !0,
pointerId: !0,
pointerType: !0,
screenX: !0,
screenY: !0,
targetTouches: !0,
toElement: !0,
touches: !0,
which: function(e) {
var t = e.button;
return null == e.which && we.test(e.type) ? null != e.charCode ? e.charCode : e.keyCode : !e.which && void 0 !== t && Ie.test(e.type) ? 1 & t ? 1 : 2 & t ? 3 : 4 & t ? 2 : 0 : e.which
}
}, j.event.addProp), j.each({
focus: "focusin",
blur: "focusout"
}, function(e, t) {
j.event.special[e] = {
setup: function() {
return Ee(this, e, je), !1
},
trigger: function() {
return Ee(this, e), !0
},
delegateType: t
}
}), j.each({
mouseenter: "mouseover",
mouseleave: "mouseout",
pointerenter: "pointerover",
pointerleave: "pointerout"
}, function(e, i) {
j.event.special[e] = {
delegateType: i,
bindType: i,
handle: function(e) {
var t, n = e.relatedTarget,
r = e.handleObj;
return n && (n === this || j.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t
}
}
}), j.fn.extend({
on: function(e, t, n, r) {
return Ae(this, e, t, n, r)
},
one: function(e, t, n, r) {
return Ae(this, e, t, n, r, 1)
},
off: function(e, t, n) {
var r, i;
if (e && e.preventDefault && e.handleObj) return r = e.handleObj, j(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this;
if ("object" != typeof e) return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = ke), this.each(function() {
j.event.remove(this, e, n, t)
});
for (i in e) this.off(i, t, e[i]);
return this
}
});
var Oe = /<script|<style|<link/i,
_e = /checked\s*(?:[^=]|=\s*.checked.)/i,
Ce = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
function xe(e, t) {
return A(e, "table") && A(11 !== t.nodeType ? t : t.firstChild, "tr") && j(e).children("tbody")[0] || e
}
function Re(e) {
return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e
}
function De(e) {
return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e
}
function Pe(e, t) {
var n, r, i, a, o, s;
if (1 === t.nodeType) {
if (Y.hasData(e) && (s = Y.get(e).events))
for (i in Y.remove(t, "handle events"), s)
for (n = 0, r = s[i].length; n < r; n++) j.event.add(t, i, s[i][n]);
K.hasData(e) && (a = K.access(e), o = j.extend({}, a), K.set(t, o))
}
}
function Ue(n, r, i, a) {
r = h(r);
var e, t, o, s, d, c, u = 0,
p = n.length,
l = p - 1,
f = r[0],
m = v(f);
if (m || 1 < p && "string" == typeof f && !y.checkClone && _e.test(f)) return n.each(function(e) {
var t = n.eq(e);
m && (r[0] = f.call(this, e, t.html())), Ue(t, r, i, a)
});
if (p && (t = (e = ve(r, n[0].ownerDocument, !1, n, a)).firstChild, 1 === e.childNodes.length && (e = t), t || a)) {
for (s = (o = j.map(he(e, "script"), Re)).length; u < p; u++) d = e, u !== l && (d = j.clone(d, !0, !0), s && j.merge(o, he(d, "script"))), i.call(n[u], d, u);
if (s)
for (c = o[o.length - 1].ownerDocument, j.map(o, De), u = 0; u < s; u++) d = o[u], me.test(d.type || "") && !Y.access(d, "globalEval") && j.contains(c, d) && (d.src && "module" !== (d.type || "").toLowerCase() ? j._evalUrl && !d.noModule && j._evalUrl(d.src, {
nonce: d.nonce || d.getAttribute("nonce")
}, c) : w(d.textContent.replace(Ce, ""), d, c))
}
return n
}
function Ne(e, t, n) {
for (var r, i = t ? j.filter(t, e) : e, a = 0; null != (r = i[a]); a++) n || 1 !== r.nodeType || j.cleanData(he(r)), r.parentNode && (n && ie(r) && be(he(r, "script")), r.parentNode.removeChild(r));
return e
}
j.extend({
htmlPrefilter: function(e) {
return e
},
clone: function(e, t, n) {
var r, i, a, o, s, d, c, u = e.cloneNode(!0),
p = ie(e);
if (!(y.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || j.isXMLDoc(e)))
for (o = he(u), r = 0, i = (a = he(e)).length; r < i; r++) s = a[r], d = o[r], c = void 0, "input" === (c = d.nodeName.toLowerCase()) && le.test(s.type) ? d.checked = s.checked : "input" !== c && "textarea" !== c || (d.defaultValue = s.defaultValue);
if (t)
if (n)
for (a = a || he(e), o = o || he(u), r = 0, i = a.length; r < i; r++) Pe(a[r], o[r]);
else Pe(e, u);
return 0 < (o = he(u, "script")).length && be(o, !p && he(e, "script")), u
},
cleanData: function(e) {
for (var t, n, r, i = j.event.special, a = 0; void 0 !== (n = e[a]); a++)
if (H(n)) {
if (t = n[Y.expando]) {
if (t.events)
for (r in t.events) i[r] ? j.event.remove(n, r) : j.removeEvent(n, r, t.handle);
n[Y.expando] = void 0
}
n[K.expando] && (n[K.expando] = void 0)
}
}
}), j.fn.extend({
detach: function(e) {
return Ne(this, e, !0)
},
remove: function(e) {
return Ne(this, e)
},
text: function(e) {
return V(this, function(e) {
return void 0 === e ? j.text(this) : this.empty().each(function() {
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e)
})
}, null, e, arguments.length)
},
append: function() {
return Ue(this, arguments, function(e) {
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || xe(this, e).appendChild(e)
})
},
prepend: function() {
return Ue(this, arguments, function(e) {
var t;
1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (t = xe(this, e)).insertBefore(e, t.firstChild)
})
},
before: function() {
return Ue(this, arguments, function(e) {
this.parentNode && this.parentNode.insertBefore(e, this)
})
},
after: function() {
return Ue(this, arguments, function(e) {
this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
})
},
empty: function() {
for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (j.cleanData(he(e, !1)), e.textContent = "");
return this
},
clone: function(e, t) {
return e = null != e && e, t = null == t ? e : t, this.map(function() {
return j.clone(this, e, t)
})
},
html: function(e) {
return V(this, function(e) {
var t = this[0] || {},
n = 0,
r = this.length;
if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
if ("string" == typeof e && !Oe.test(e) && !ge[(fe.exec(e) || ["", ""])[1].toLowerCase()]) {
e = j.htmlPrefilter(e);
try {
for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (j.cleanData(he(t, !1)), t.innerHTML = e);
t = 0
} catch (e) {}
}
t && this.empty().append(e)
}, null, e, arguments.length)
},
replaceWith: function() {
var n = [];
return Ue(this, arguments, function(e) {
var t = this.parentNode;
j.inArray(this, n) < 0 && (j.cleanData(he(this)), t && t.replaceChild(e, this))
}, n)
}
}), j.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function(e, o) {
j.fn[e] = function(e) {
for (var t, n = [], r = j(e), i = r.length - 1, a = 0; a <= i; a++) t = a === i ? this : this.clone(!0), j(r[a])[o](t), d.apply(n, t.get());
return this.pushStack(n)
}
});
function Be(e, t, n) {
var r, i, a = {};
for (i in t) a[i] = e.style[i], e.style[i] = t[i];
for (i in r = n.call(e), t) e.style[i] = a[i];
return r
}
var qe, ze, Me, Ve, Le, Fe, We, Ge, He = new RegExp("^(" + ee + ")(?!px)[a-z%]+$", "i"),
Je = function(e) {
var t = e.ownerDocument.defaultView;
return t && t.opener || (t = S), t.getComputedStyle(e)
},
Ye = new RegExp(ne.join("|"), "i");
function Ke() {
var e;
Ge && (We.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", Ge.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", re.appendChild(We).appendChild(Ge), e = S.getComputedStyle(Ge), qe = "1%" !== e.top, Fe = 12 === Xe(e.marginLeft), Ge.style.right = "60%", Ve = 36 === Xe(e.right), ze = 36 === Xe(e.width), Ge.style.position = "absolute", Me = 12 === Xe(Ge.offsetWidth / 3), re.removeChild(We), Ge = null)
}
function Xe(e) {
return Math.round(parseFloat(e))
}
function Qe(e, t, n) {
var r, i, a, o, s = e.style;
return (n = n || Je(e)) && ("" !== (o = n.getPropertyValue(t) || n[t]) || ie(e) || (o = j.style(e, t)), !y.pixelBoxStyles() && He.test(o) && Ye.test(t) && (r = s.width, i = s.minWidth, a = s.maxWidth, s.minWidth = s.maxWidth = s.width = o, o = n.width, s.width = r, s.minWidth = i, s.maxWidth = a)), void 0 !== o ? o + "" : o
}
function $e(e, t) {
return {
get: function() {
if (!e()) return (this.get = t).apply(this, arguments);
delete this.get
}
}
}
We = k.createElement("div"), (Ge = k.createElement("div")).style && (Ge.style.backgroundClip = "content-box", Ge.cloneNode(!0).style.backgroundClip = "", y.clearCloneStyle = "content-box" === Ge.style.backgroundClip, j.extend(y, {
boxSizingReliable: function() {
return Ke(), ze
},
pixelBoxStyles: function() {
return Ke(), Ve
},
pixelPosition: function() {
return Ke(), qe
},
reliableMarginLeft: function() {
return Ke(), Fe
},
scrollboxSize: function() {
return Ke(), Me
},
reliableTrDimensions: function() {
var e, t, n, r;
return null == Le && (e = k.createElement("table"), t = k.createElement("tr"), n = k.createElement("div"), e.style.cssText = "position:absolute;left:-11111px", t.style.height = "1px", n.style.height = "9px", re.appendChild(e).appendChild(t).appendChild(n), r = S.getComputedStyle(t), Le = 3 < parseInt(r.height), re.removeChild(e)), Le
}
}));
var Ze = ["Webkit", "Moz", "ms"],
et = k.createElement("div").style,
tt = {};
function nt(e) {
var t = j.cssProps[e] || tt[e];
return t || (e in et ? e : tt[e] = function(e) {
for (var t = e[0].toUpperCase() + e.slice(1), n = Ze.length; n--;)
if ((e = Ze[n] + t) in et) return e
}(e) || e)
}
var rt = /^(none|table(?!-c[ea]).+)/,
it = /^--/,
at = {
position: "absolute",
visibility: "hidden",
display: "block"
},
ot = {
letterSpacing: "0",
fontWeight: "400"
};
function st(e, t, n) {
var r = te.exec(t);
return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t
}
function dt(e, t, n, r, i, a) {
var o = "width" === t ? 1 : 0,
s = 0,
d = 0;
if (n === (r ? "border" : "content")) return 0;
for (; o < 4; o += 2) "margin" === n && (d += j.css(e, n + ne[o], !0, i)), r ? ("content" === n && (d -= j.css(e, "padding" + ne[o], !0, i)), "margin" !== n && (d -= j.css(e, "border" + ne[o] + "Width", !0, i))) : (d += j.css(e, "padding" + ne[o], !0, i), "padding" !== n ? d += j.css(e, "border" + ne[o] + "Width", !0, i) : s += j.css(e, "border" + ne[o] + "Width", !0, i));
return !r && 0 <= a && (d += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - a - d - s - .5)) || 0), d
}
function ct(e, t, n) {
var r = Je(e),
i = (!y.boxSizingReliable() || n) && "border-box" === j.css(e, "boxSizing", !1, r),
a = i,
o = Qe(e, t, r),
s = "offset" + t[0].toUpperCase() + t.slice(1);
if (He.test(o)) {
if (!n) return o;
o = "auto"
}
return (!y.boxSizingReliable() && i || !y.reliableTrDimensions() && A(e, "tr") || "auto" === o || !parseFloat(o) && "inline" === j.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === j.css(e, "boxSizing", !1, r), (a = s in e) && (o = e[s])), (o = parseFloat(o) || 0) + dt(e, t, n || (i ? "border" : "content"), a, r, o) + "px"
}
function ut(e, t, n, r, i) {
return new ut.prototype.init(e, t, n, r, i)
}
j.extend({
cssHooks: {
opacity: {
get: function(e, t) {
if (t) {
var n = Qe(e, "opacity");
return "" === n ? "1" : n
}
}
}
},
cssNumber: {
animationIterationCount: !0,
columnCount: !0,
fillOpacity: !0,
flexGrow: !0,
flexShrink: !0,
fontWeight: !0,
gridArea: !0,
gridColumn: !0,
gridColumnEnd: !0,
gridColumnStart: !0,
gridRow: !0,
gridRowEnd: !0,
gridRowStart: !0,
lineHeight: !0,
opacity: !0,
order: !0,
orphans: !0,
widows: !0,
zIndex: !0,
zoom: !0
},
cssProps: {},
style: function(e, t, n, r) {
if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
var i, a, o, s = G(t),
d = it.test(t),
c = e.style;
if (d || (t = nt(s)), o = j.cssHooks[t] || j.cssHooks[s], void 0 === n) return o && "get" in o && void 0 !== (i = o.get(e, !1, r)) ? i : c[t];
"string" === (a = typeof n) && (i = te.exec(n)) && i[1] && (n = se(e, t, i), a = "number"), null != n && n == n && ("number" !== a || d || (n += i && i[3] || (j.cssNumber[s] ? "" : "px")), y.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (c[t] = "inherit"), o && "set" in o && void 0 === (n = o.set(e, n, r)) || (d ? c.setProperty(t, n) : c[t] = n))
}
},
css: function(e, t, n, r) {
var i, a, o, s = G(t);
return it.test(t) || (t = nt(s)), (o = j.cssHooks[t] || j.cssHooks[s]) && "get" in o && (i = o.get(e, !0, n)), void 0 === i && (i = Qe(e, t, r)), "normal" === i && t in ot && (i = ot[t]), "" === n || n ? (a = parseFloat(i), !0 === n || isFinite(a) ? a || 0 : i) : i
}
}), j.each(["height", "width"], function(e, d) {
j.cssHooks[d] = {
get: function(e, t, n) {
if (t) return !rt.test(j.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? ct(e, d, n) : Be(e, at, function() {
return ct(e, d, n)
})
},
set: function(e, t, n) {
var r, i = Je(e),
a = !y.scrollboxSize() && "absolute" === i.position,
o = (a || n) && "border-box" === j.css(e, "boxSizing", !1, i),
s = n ? dt(e, d, n, o, i) : 0;
return o && a && (s -= Math.ceil(e["offset" + d[0].toUpperCase() + d.slice(1)] - parseFloat(i[d]) - dt(e, d, "border", !1, i) - .5)), s && (r = te.exec(t)) && "px" !== (r[3] || "px") && (e.style[d] = t, t = j.css(e, d)), st(0, t, s)
}
}
}), j.cssHooks.marginLeft = $e(y.reliableMarginLeft, function(e, t) {
if (t) return (parseFloat(Qe(e, "marginLeft")) || e.getBoundingClientRect().left - Be(e, {
marginLeft: 0
}, function() {
return e.getBoundingClientRect().left
})) + "px"
}), j.each({
margin: "",
padding: "",
border: "Width"
}, function(i, a) {
j.cssHooks[i + a] = {
expand: function(e) {
for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++) n[i + ne[t] + a] = r[t] || r[t - 2] || r[0];
return n
}
}, "margin" !== i && (j.cssHooks[i + a].set = st)
}), j.fn.extend({
css: function(e, t) {
return V(this, function(e, t, n) {
var r, i, a = {},
o = 0;
if (Array.isArray(t)) {
for (r = Je(e), i = t.length; o < i; o++) a[t[o]] = j.css(e, t[o], !1, r);
return a
}
return void 0 !== n ? j.style(e, t, n) : j.css(e, t)
}, e, t, 1 < arguments.length)
}
}), (j.Tween = ut).prototype = {
constructor: ut,
init: function(e, t, n, r, i, a) {
this.elem = e, this.prop = n, this.easing = i || j.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = a || (j.cssNumber[n] ? "" : "px")
},
cur: function() {
var e = ut.propHooks[this.prop];
return e && e.get ? e.get(this) : ut.propHooks._default.get(this)
},
run: function(e) {
var t, n = ut.propHooks[this.prop];
return this.options.duration ? this.pos = t = j.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : ut.propHooks._default.set(this), this
}
}, ut.prototype.init.prototype = ut.prototype, ut.propHooks = {
_default: {
get: function(e) {
var t;
return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = j.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0
},
set: function(e) {
j.fx.step[e.prop] ? j.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !j.cssHooks[e.prop] && null == e.elem.style[nt(e.prop)] ? e.elem[e.prop] = e.now : j.style(e.elem, e.prop, e.now + e.unit)
}
}
}, ut.propHooks.scrollTop = ut.propHooks.scrollLeft = {
set: function(e) {
e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
}
}, j.easing = {
linear: function(e) {
return e
},
swing: function(e) {
return .5 - Math.cos(e * Math.PI) / 2
},
_default: "swing"
}, j.fx = ut.prototype.init, j.fx.step = {};
var pt, lt, ft, mt, gt = /^(?:toggle|show|hide)$/,
ht = /queueHooks$/;
function bt() {
lt && (!1 === k.hidden && S.requestAnimationFrame ? S.requestAnimationFrame(bt) : S.setTimeout(bt, j.fx.interval), j.fx.tick())
}
function yt() {
return S.setTimeout(function() {
pt = void 0
}), pt = Date.now()
}
function vt(e, t) {
var n, r = 0,
i = {
height: e
};
for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = ne[r])] = i["padding" + n] = e;
return t && (i.opacity = i.width = e), i
}
function wt(e, t, n) {
for (var r, i = (It.tweeners[t] || []).concat(It.tweeners["*"]), a = 0, o = i.length; a < o; a++)
if (r = i[a].call(n, t, e)) return r
}
function It(a, e, t) {
var n, o, r = 0,
i = It.prefilters.length,
s = j.Deferred().always(function() {
delete d.elem
}),
d = function() {
if (o) return !1;
for (var e = pt || yt(), t = Math.max(0, c.startTime + c.duration - e), n = 1 - (t / c.duration || 0), r = 0, i = c.tweens.length; r < i; r++) c.tweens[r].run(n);
return s.notifyWith(a, [c, n, t]), n < 1 && i ? t : (i || s.notifyWith(a, [c, 1, 0]), s.resolveWith(a, [c]), !1)
},
c = s.promise({
elem: a,
props: j.extend({}, e),
opts: j.extend(!0, {
specialEasing: {},
easing: j.easing._default
}, t),
originalProperties: e,
originalOptions: t,
startTime: pt || yt(),
duration: t.duration,
tweens: [],
createTween: function(e, t) {
var n = j.Tween(a, c.opts, e, t, c.opts.specialEasing[e] || c.opts.easing);
return c.tweens.push(n), n
},
stop: function(e) {
var t = 0,
n = e ? c.tweens.length : 0;
if (o) return this;
for (o = !0; t < n; t++) c.tweens[t].run(1);
return e ? (s.notifyWith(a, [c, 1, 0]), s.resolveWith(a, [c, e])) : s.rejectWith(a, [c, e]), this
}
}),
u = c.props;
for (! function(e, t) {
var n, r, i, a, o;
for (n in e)
if (i = t[r = G(n)], a = e[n], Array.isArray(a) && (i = a[1], a = e[n] = a[0]), n !== r && (e[r] = a, delete e[n]), (o = j.cssHooks[r]) && "expand" in o)
for (n in a = o.expand(a), delete e[r], a) n in e || (e[n] = a[n], t[n] = i);
else t[r] = i
}(u, c.opts.specialEasing); r < i; r++)
if (n = It.prefilters[r].call(c, a, u, c.opts)) return v(n.stop) && (j._queueHooks(c.elem, c.opts.queue).stop = n.stop.bind(n)), n;
return j.map(u, wt, c), v(c.opts.start) && c.opts.start.call(a, c), c.progress(c.opts.progress).done(c.opts.done, c.opts.complete).fail(c.opts.fail).always(c.opts.always), j.fx.timer(j.extend(d, {
elem: a,
anim: c,
queue: c.opts.queue
})), c
}
j.Animation = j.extend(It, {
tweeners: {
"*": [function(e, t) {
var n = this.createTween(e, t);
return se(n.elem, e, te.exec(t), n), n
}]
},
tweener: function(e, t) {
for (var n, r = 0, i = (e = v(e) ? (t = e, ["*"]) : e.match(P)).length; r < i; r++) n = e[r], It.tweeners[n] = It.tweeners[n] || [], It.tweeners[n].unshift(t)
},
prefilters: [function(e, t, n) {
var r, i, a, o, s, d, c, u, p = "width" in t || "height" in t,
l = this,
f = {},
m = e.style,
g = e.nodeType && oe(e),
h = Y.get(e, "fxshow");
for (r in n.queue || (null == (o = j._queueHooks(e, "fx")).unqueued && (o.unqueued = 0, s = o.empty.fire, o.empty.fire = function() {
o.unqueued || s()
}), o.unqueued++, l.always(function() {
l.always(function() {
o.unqueued--, j.queue(e, "fx").length || o.empty.fire()
})
})), t)
if (i = t[r], gt.test(i)) {
if (delete t[r], a = a || "toggle" === i, i === (g ? "hide" : "show")) {
if ("show" !== i || !h || void 0 === h[r]) continue;
g = !0
}
f[r] = h && h[r] || j.style(e, r)
} if ((d = !j.isEmptyObject(t)) || !j.isEmptyObject(f))
for (r in p && 1 === e.nodeType && (n.overflow = [m.overflow, m.overflowX, m.overflowY], null == (c = h && h.display) && (c = Y.get(e, "display")), "none" === (u = j.css(e, "display")) && (c ? u = c : (ce([e], !0), c = e.style.display || c, u = j.css(e, "display"), ce([e]))), ("inline" === u || "inline-block" === u && null != c) && "none" === j.css(e, "float") && (d || (l.done(function() {
m.display = c
}), null == c && (u = m.display, c = "none" === u ? "" : u)), m.display = "inline-block")), n.overflow && (m.overflow = "hidden", l.always(function() {
m.overflow = n.overflow[0], m.overflowX = n.overflow[1], m.overflowY = n.overflow[2]
})), d = !1, f) d || (h ? "hidden" in h && (g = h.hidden) : h = Y.access(e, "fxshow", {
display: c
}), a && (h.hidden = !g), g && ce([e], !0), l.done(function() {
for (r in g || ce([e]), Y.remove(e, "fxshow"), f) j.style(e, r, f[r])
})), d = wt(g ? h[r] : 0, r, l), r in h || (h[r] = d.start, g && (d.end = d.start, d.start = 0))
}],
prefilter: function(e, t) {
t ? It.prefilters.unshift(e) : It.prefilters.push(e)
}
}), j.speed = function(e, t, n) {
var r = e && "object" == typeof e ? j.extend({}, e) : {
complete: n || !n && t || v(e) && e,
duration: e,
easing: n && t || t && !v(t) && t
};
return j.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in j.fx.speeds ? r.duration = j.fx.speeds[r.duration] : r.duration = j.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function() {
v(r.old) && r.old.call(this), r.queue && j.dequeue(this, r.queue)
}, r
}, j.fn.extend({
fadeTo: function(e, t, n, r) {
return this.filter(oe).css("opacity", 0).show().end().animate({
opacity: t
}, e, n, r)
},
animate: function(t, e, n, r) {
function i() {
var e = It(this, j.extend({}, t), o);
(a || Y.get(this, "finish")) && e.stop(!0)
}
var a = j.isEmptyObject(t),
o = j.speed(e, n, r);
return i.finish = i, a || !1 === o.queue ? this.each(i) : this.queue(o.queue, i)
},
stop: function(i, e, a) {
function o(e) {
var t = e.stop;
delete e.stop, t(a)
}
return "string" != typeof i && (a = e, e = i, i = void 0), e && this.queue(i || "fx", []), this.each(function() {
var e = !0,
t = null != i && i + "queueHooks",
n = j.timers,
r = Y.get(this);
if (t) r[t] && r[t].stop && o(r[t]);
else
for (t in r) r[t] && r[t].stop && ht.test(t) && o(r[t]);
for (t = n.length; t--;) n[t].elem !== this || null != i && n[t].queue !== i || (n[t].anim.stop(a), e = !1, n.splice(t, 1));
!e && a || j.dequeue(this, i)
})
},
finish: function(o) {
return !1 !== o && (o = o || "fx"), this.each(function() {
var e, t = Y.get(this),
n = t[o + "queue"],
r = t[o + "queueHooks"],
i = j.timers,
a = n ? n.length : 0;
for (t.finish = !0, j.queue(this, o, []), r && r.stop && r.stop.call(this, !0), e = i.length; e--;) i[e].elem === this && i[e].queue === o && (i[e].anim.stop(!0), i.splice(e, 1));
for (e = 0; e < a; e++) n[e] && n[e].finish && n[e].finish.call(this);
delete t.finish
})
}
}), j.each(["toggle", "show", "hide"], function(e, r) {
var i = j.fn[r];
j.fn[r] = function(e, t, n) {
return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(vt(r, !0), e, t, n)
}
}), j.each({
slideDown: vt("show"),
slideUp: vt("hide"),
slideToggle: vt("toggle"),
fadeIn: {
opacity: "show"
},
fadeOut: {
opacity: "hide"
},
fadeToggle: {
opacity: "toggle"
}
}, function(e, r) {
j.fn[e] = function(e, t, n) {
return this.animate(r, e, t, n)
}
}), j.timers = [], j.fx.tick = function() {
var e, t = 0,
n = j.timers;
for (pt = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1);
n.length || j.fx.stop(), pt = void 0
}, j.fx.timer = function(e) {
j.timers.push(e), j.fx.start()
}, j.fx.interval = 13, j.fx.start = function() {
lt || (lt = !0, bt())
}, j.fx.stop = function() {
lt = null
}, j.fx.speeds = {
slow: 600,
fast: 200,
_default: 400
}, j.fn.delay = function(r, e) {
return r = j.fx && j.fx.speeds[r] || r, e = e || "fx", this.queue(e, function(e, t) {
var n = S.setTimeout(e, r);
t.stop = function() {
S.clearTimeout(n)
}
})
}, ft = k.createElement("input"), mt = k.createElement("select").appendChild(k.createElement("option")), ft.type = "checkbox", y.checkOn = "" !== ft.value, y.optSelected = mt.selected, (ft = k.createElement("input")).value = "t", ft.type = "radio", y.radioValue = "t" === ft.value;
var Tt, St = j.expr.attrHandle;
j.fn.extend({
attr: function(e, t) {
return V(this, j.attr, e, t, 1 < arguments.length)
},
removeAttr: function(e) {
return this.each(function() {
j.removeAttr(this, e)
})
}
}), j.extend({
attr: function(e, t, n) {
var r, i, a = e.nodeType;
if (3 !== a && 8 !== a && 2 !== a) return void 0 === e.getAttribute ? j.prop(e, t, n) : (1 === a && j.isXMLDoc(e) || (i = j.attrHooks[t.toLowerCase()] || (j.expr.match.bool.test(t) ? Tt : void 0)), void 0 !== n ? null === n ? void j.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : !(i && "get" in i && null !== (r = i.get(e, t))) && null == (r = j.find.attr(e, t)) ? void 0 : r)
},
attrHooks: {
type: {
set: function(e, t) {
if (!y.radioValue && "radio" === t && A(e, "input")) {
var n = e.value;
return e.setAttribute("type", t), n && (e.value = n), t
}
}
}
},
removeAttr: function(e, t) {
var n, r = 0,
i = t && t.match(P);
if (i && 1 === e.nodeType)
for (; n = i[r++];) e.removeAttribute(n)
}
}), Tt = {
set: function(e, t, n) {
return !1 === t ? j.removeAttr(e, n) : e.setAttribute(n, n), n
}
}, j.each(j.expr.match.bool.source.match(/\w+/g), function(e, t) {
var o = St[t] || j.find.attr;
St[t] = function(e, t, n) {
var r, i, a = t.toLowerCase();
return n || (i = St[a], St[a] = r, r = null != o(e, t, n) ? a : null, St[a] = i), r
}
});
var kt = /^(?:input|select|textarea|button)$/i,
jt = /^(?:a|area)$/i;
function At(e) {
return (e.match(P) || []).join(" ")
}
function Et(e) {
return e.getAttribute && e.getAttribute("class") || ""
}
function Ot(e) {
return Array.isArray(e) ? e : "string" == typeof e && e.match(P) || []
}
j.fn.extend({
prop: function(e, t) {
return V(this, j.prop, e, t, 1 < arguments.length)
},
removeProp: function(e) {
return this.each(function() {
delete this[j.propFix[e] || e]
})
}
}), j.extend({
prop: function(e, t, n) {
var r, i, a = e.nodeType;
if (3 !== a && 8 !== a && 2 !== a) return 1 === a && j.isXMLDoc(e) || (t = j.propFix[t] || t, i = j.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]
},
propHooks: {
tabIndex: {
get: function(e) {
var t = j.find.attr(e, "tabindex");
return t ? parseInt(t, 10) : kt.test(e.nodeName) || jt.test(e.nodeName) && e.href ? 0 : -1
}
}
},
propFix: {
for: "htmlFor",
class: "className"
}
}), y.optSelected || (j.propHooks.selected = {
get: function(e) {
var t = e.parentNode;
return t && t.parentNode && t.parentNode.selectedIndex, null
},
set: function(e) {
var t = e.parentNode;
t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex)
}
}), j.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
j.propFix[this.toLowerCase()] = this
}), j.fn.extend({
addClass: function(t) {
var e, n, r, i, a, o, s, d = 0;
if (v(t)) return this.each(function(e) {
j(this).addClass(t.call(this, e, Et(this)))
});
if ((e = Ot(t)).length)
for (; n = this[d++];)
if (i = Et(n), r = 1 === n.nodeType && " " + At(i) + " ") {
for (o = 0; a = e[o++];) r.indexOf(" " + a + " ") < 0 && (r += a + " ");
i !== (s = At(r)) && n.setAttribute("class", s)
} return this
},
removeClass: function(t) {
var e, n, r, i, a, o, s, d = 0;
if (v(t)) return this.each(function(e) {
j(this).removeClass(t.call(this, e, Et(this)))
});
if (!arguments.length) return this.attr("class", "");
if ((e = Ot(t)).length)
for (; n = this[d++];)
if (i = Et(n), r = 1 === n.nodeType && " " + At(i) + " ") {
for (o = 0; a = e[o++];)
for (; - 1 < r.indexOf(" " + a + " ");) r = r.replace(" " + a + " ", " ");
i !== (s = At(r)) && n.setAttribute("class", s)
} return this
},
toggleClass: function(i, t) {
var a = typeof i,
o = "string" == a || Array.isArray(i);
return "boolean" == typeof t && o ? t ? this.addClass(i) : this.removeClass(i) : v(i) ? this.each(function(e) {
j(this).toggleClass(i.call(this, e, Et(this), t), t)
}) : this.each(function() {
var e, t, n, r;
if (o)
for (t = 0, n = j(this), r = Ot(i); e = r[t++];) n.hasClass(e) ? n.removeClass(e) : n.addClass(e);
else void 0 !== i && "boolean" != a || ((e = Et(this)) && Y.set(this, "__className__", e), this.setAttribute && this.setAttribute("class", !e && !1 !== i && Y.get(this, "__className__") || ""))
})
},
hasClass: function(e) {
for (var t, n = 0, r = " " + e + " "; t = this[n++];)
if (1 === t.nodeType && -1 < (" " + At(Et(t)) + " ").indexOf(r)) return !0;
return !1
}
});
var _t = /\r/g;
j.fn.extend({
val: function(n) {
var r, e, i, t = this[0];
return arguments.length ? (i = v(n), this.each(function(e) {
var t;
1 === this.nodeType && (null == (t = i ? n.call(this, e, j(this).val()) : n) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = j.map(t, function(e) {
return null == e ? "" : e + ""
})), (r = j.valHooks[this.type] || j.valHooks[this.nodeName.toLowerCase()]) && "set" in r && void 0 !== r.set(this, t, "value") || (this.value = t))
})) : t ? (r = j.valHooks[t.type] || j.valHooks[t.nodeName.toLowerCase()]) && "get" in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof(e = t.value) ? e.replace(_t, "") : null == e ? "" : e : void 0
}
}), j.extend({
valHooks: {
option: {
get: function(e) {
var t = j.find.attr(e, "value");
return null != t ? t : At(j.text(e))
}
},
select: {
get: function(e) {
for (var t, n, r = e.options, i = e.selectedIndex, a = "select-one" === e.type, o = a ? null : [], s = a ? i + 1 : r.length, d = i < 0 ? s : a ? i : 0; d < s; d++)
if (((n = r[d]).selected || d === i) && !n.disabled && (!n.parentNode.disabled || !A(n.parentNode, "optgroup"))) {
if (t = j(n).val(), a) return t;
o.push(t)
} return o
},
set: function(e, t) {
for (var n, r, i = e.options, a = j.makeArray(t), o = i.length; o--;)((r = i[o]).selected = -1 < j.inArray(j.valHooks.option.get(r), a)) && (n = !0);
return n || (e.selectedIndex = -1), a
}
}
}
}), j.each(["radio", "checkbox"], function() {
j.valHooks[this] = {
set: function(e, t) {
if (Array.isArray(t)) return e.checked = -1 < j.inArray(j(e).val(), t)
}
}, y.checkOn || (j.valHooks[this].get = function(e) {
return null === e.getAttribute("value") ? "on" : e.value
})
}), y.focusin = "onfocusin" in S;
function Ct(e) {
e.stopPropagation()
}
var xt = /^(?:focusinfocus|focusoutblur)$/;
j.extend(j.event, {
trigger: function(e, t, n, r) {
var i, a, o, s, d, c, u, p = [n || k],
l = b.call(e, "type") ? e.type : e,
f = b.call(e, "namespace") ? e.namespace.split(".") : [],
m = u = a = n = n || k;
if (3 !== n.nodeType && 8 !== n.nodeType && !xt.test(l + j.event.triggered) && (-1 < l.indexOf(".") && (l = (f = l.split(".")).shift(), f.sort()), s = l.indexOf(":") < 0 && "on" + l, (e = e[j.expando] ? e : new j.Event(l, "object" == typeof e && e)).isTrigger = r ? 2 : 3, e.namespace = f.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : j.makeArray(t, [e]), c = j.event.special[l] || {}, r || !c.trigger || !1 !== c.trigger.apply(n, t))) {
if (!r && !c.noBubble && !g(n)) {
for (o = c.delegateType || l, xt.test(o + l) || (m = m.parentNode); m; m = m.parentNode) p.push(m), a = m;
a === (n.ownerDocument || k) && p.push(a.defaultView || a.parentWindow || S)
}
for (i = 0;
(m = p[i++]) && !e.isPropagationStopped();) u = m, e.type = 1 < i ? o : c.bindType || l, (d = (Y.get(m, "events") || Object.create(null))[e.type] && Y.get(m, "handle")) && d.apply(m, t), (d = s && m[s]) && d.apply && H(m) && (e.result = d.apply(m, t), !1 === e.result && e.preventDefault());
return e.type = l, r || e.isDefaultPrevented() || c._default && !1 !== c._default.apply(p.pop(), t) || !H(n) || s && v(n[l]) && !g(n) && ((a = n[s]) && (n[s] = null), j.event.triggered = l, e.isPropagationStopped() && u.addEventListener(l, Ct), n[l](), e.isPropagationStopped() && u.removeEventListener(l, Ct), j.event.triggered = void 0, a && (n[s] = a)), e.result
}
},
simulate: function(e, t, n) {
var r = j.extend(new j.Event, n, {
type: e,
isSimulated: !0
});
j.event.trigger(r, null, t)
}
}), j.fn.extend({
trigger: function(e, t) {
return this.each(function() {
j.event.trigger(e, t, this)
})
},
triggerHandler: function(e, t) {
var n = this[0];
if (n) return j.event.trigger(e, t, n, !0)
}
}), y.focusin || j.each({
focus: "focusin",
blur: "focusout"
}, function(n, r) {
function i(e) {
j.event.simulate(r, e.target, j.event.fix(e))
}
j.event.special[r] = {
setup: function() {
var e = this.ownerDocument || this.document || this,
t = Y.access(e, r);
t || e.addEventListener(n, i, !0), Y.access(e, r, (t || 0) + 1)
},
teardown: function() {
var e = this.ownerDocument || this.document || this,
t = Y.access(e, r) - 1;
t ? Y.access(e, r, t) : (e.removeEventListener(n, i, !0), Y.remove(e, r))
}
}
});
var Rt = S.location,
Dt = {
guid: Date.now()
},
Pt = /\?/;
j.parseXML = function(e) {
var t;
if (!e || "string" != typeof e) return null;
try {
t = (new S.DOMParser).parseFromString(e, "text/xml")
} catch (e) {
t = void 0
}
return t && !t.getElementsByTagName("parsererror").length || j.error("Invalid XML: " + e), t
};
var Ut = /\[\]$/,
Nt = /\r?\n/g,
Bt = /^(?:submit|button|image|reset|file)$/i,
qt = /^(?:input|select|textarea|keygen)/i;
j.param = function(e, t) {
function n(e, t) {
var n = v(t) ? t() : t;
i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n)
}
var r, i = [];
if (null == e) return "";
if (Array.isArray(e) || e.jquery && !j.isPlainObject(e)) j.each(e, function() {
n(this.name, this.value)
});
else
for (r in e) ! function n(r, e, i, a) {
if (Array.isArray(e)) j.each(e, function(e, t) {
i || Ut.test(r) ? a(r, t) : n(r + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, i, a)
});
else if (i || "object" !== I(e)) a(r, e);
else
for (var t in e) n(r + "[" + t + "]", e[t], i, a)
}(r, e[r], t, n);
return i.join("&")
}, j.fn.extend({
serialize: function() {
return j.param(this.serializeArray())
},
serializeArray: function() {
return this.map(function() {
var e = j.prop(this, "elements");
return e ? j.makeArray(e) : this
}).filter(function() {
var e = this.type;
return this.name && !j(this).is(":disabled") && qt.test(this.nodeName) && !Bt.test(e) && (this.checked || !le.test(e))
}).map(function(e, t) {
var n = j(this).val();
return null == n ? null : Array.isArray(n) ? j.map(n, function(e) {
return {
name: t.name,
value: e.replace(Nt, "\r\n")
}
}) : {
name: t.name,
value: n.replace(Nt, "\r\n")
}
}).get()
}
});
var zt = /%20/g,
Mt = /#.*$/,
Vt = /([?&])_=[^&]*/,
Lt = /^(.*?):[ \t]*([^\r\n]*)$/gm,
Ft = /^(?:GET|HEAD)$/,
Wt = /^\/\//,
Gt = {},
Ht = {},
Jt = "*/".concat("*"),
Yt = k.createElement("a");
function Kt(a) {
return function(e, t) {
"string" != typeof e && (t = e, e = "*");
var n, r = 0,
i = e.toLowerCase().match(P) || [];
if (v(t))
for (; n = i[r++];) "+" === n[0] ? (n = n.slice(1) || "*", (a[n] = a[n] || []).unshift(t)) : (a[n] = a[n] || []).push(t)
}
}
function Xt(t, i, a, o) {
var s = {},
d = t === Ht;
function c(e) {
var r;
return s[e] = !0, j.each(t[e] || [], function(e, t) {
var n = t(i, a, o);
return "string" != typeof n || d || s[n] ? d ? !(r = n) : void 0 : (i.dataTypes.unshift(n), c(n), !1)
}), r
}
return c(i.dataTypes[0]) || !s["*"] && c("*")
}
function Qt(e, t) {
var n, r, i = j.ajaxSettings.flatOptions || {};
for (n in t) void 0 !== t[n] && ((i[n] ? e : r = r || {})[n] = t[n]);
return r && j.extend(!0, e, r), e
}
Yt.href = Rt.href, j.extend({
active: 0,
lastModified: {},
etag: {},
ajaxSettings: {
url: Rt.href,
type: "GET",
isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Rt.protocol),
global: !0,
processData: !0,
async: !0,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
accepts: {
"*": Jt,
text: "text/plain",
html: "text/html",
xml: "application/xml, text/xml",
json: "application/json, text/javascript"
},
contents: {
xml: /\bxml\b/,
html: /\bhtml/,
json: /\bjson\b/
},
responseFields: {
xml: "responseXML",
text: "responseText",
json: "responseJSON"
},
converters: {
"* text": String,
"text html": !0,
"text json": JSON.parse,
"text xml": j.parseXML
},
flatOptions: {
url: !0,
context: !0
}
},
ajaxSetup: function(e, t) {
return t ? Qt(Qt(e, j.ajaxSettings), t) : Qt(j.ajaxSettings, e)
},
ajaxPrefilter: Kt(Gt),
ajaxTransport: Kt(Ht),
ajax: function(e, t) {
"object" == typeof e && (t = e, e = void 0), t = t || {};
var u, p, l, n, f, r, m, g, i, a, h = j.ajaxSetup({}, t),
b = h.context || h,
y = h.context && (b.nodeType || b.jquery) ? j(b) : j.event,
v = j.Deferred(),
w = j.Callbacks("once memory"),
I = h.statusCode || {},
o = {},
s = {},
d = "canceled",
T = {
readyState: 0,
getResponseHeader: function(e) {
var t;
if (m) {
if (!n)
for (n = {}; t = Lt.exec(l);) n[t[1].toLowerCase() + " "] = (n[t[1].toLowerCase() + " "] || []).concat(t[2]);
t = n[e.toLowerCase() + " "]
}
return null == t ? null : t.join(", ")
},
getAllResponseHeaders: function() {
return m ? l : null
},
setRequestHeader: function(e, t) {
return null == m && (e = s[e.toLowerCase()] = s[e.toLowerCase()] || e, o[e] = t), this
},
overrideMimeType: function(e) {
return null == m && (h.mimeType = e), this
},
statusCode: function(e) {
if (e)
if (m) T.always(e[T.status]);
else
for (var t in e) I[t] = [I[t], e[t]];
return this
},
abort: function(e) {
var t = e || d;
return u && u.abort(t), c(0, t), this
}
};
if (v.promise(T), h.url = ((e || h.url || Rt.href) + "").replace(Wt, Rt.protocol + "//"), h.type = t.method || t.type || h.method || h.type, h.dataTypes = (h.dataType || "*").toLowerCase().match(P) || [""], null == h.crossDomain) {
r = k.createElement("a");
try {
r.href = h.url, r.href = r.href, h.crossDomain = Yt.protocol + "//" + Yt.host != r.protocol + "//" + r.host
} catch (e) {
h.crossDomain = !0
}
}
if (h.data && h.processData && "string" != typeof h.data && (h.data = j.param(h.data, h.traditional)), Xt(Gt, h, t, T), m) return T;
for (i in (g = j.event && h.global) && 0 == j.active++ && j.event.trigger("ajaxStart"), h.type = h.type.toUpperCase(), h.hasContent = !Ft.test(h.type), p = h.url.replace(Mt, ""), h.hasContent ? h.data && h.processData && 0 === (h.contentType || "").indexOf("application/x-www-form-urlencoded") && (h.data = h.data.replace(zt, "+")) : (a = h.url.slice(p.length), h.data && (h.processData || "string" == typeof h.data) && (p += (Pt.test(p) ? "&" : "?") + h.data, delete h.data), !1 === h.cache && (p = p.replace(Vt, "$1"), a = (Pt.test(p) ? "&" : "?") + "_=" + Dt.guid++ + a), h.url = p + a), h.ifModified && (j.lastModified[p] && T.setRequestHeader("If-Modified-Since", j.lastModified[p]), j.etag[p] && T.setRequestHeader("If-None-Match", j.etag[p])), (h.data && h.hasContent && !1 !== h.contentType || t.contentType) && T.setRequestHeader("Content-Type", h.contentType), T.setRequestHeader("Accept", h.dataTypes[0] && h.accepts[h.dataTypes[0]] ? h.accepts[h.dataTypes[0]] + ("*" !== h.dataTypes[0] ? ", " + Jt + "; q=0.01" : "") : h.accepts["*"]), h.headers) T.setRequestHeader(i, h.headers[i]);
if (h.beforeSend && (!1 === h.beforeSend.call(b, T, h) || m)) return T.abort();
if (d = "abort", w.add(h.complete), T.done(h.success), T.fail(h.error), u = Xt(Ht, h, t, T)) {
if (T.readyState = 1, g && y.trigger("ajaxSend", [T, h]), m) return T;
h.async && 0 < h.timeout && (f = S.setTimeout(function() {
T.abort("timeout")
}, h.timeout));
try {
m = !1, u.send(o, c)
} catch (e) {
if (m) throw e;
c(-1, e)
}
} else c(-1, "No Transport");
function c(e, t, n, r) {
var i, a, o, s, d, c = t;
m || (m = !0, f && S.clearTimeout(f), u = void 0, l = r || "", T.readyState = 0 < e ? 4 : 0, i = 200 <= e && e < 300 || 304 === e, n && (s = function(e, t, n) {
for (var r, i, a, o, s = e.contents, d = e.dataTypes;
"*" === d[0];) d.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
if (r)
for (i in s)
if (s[i] && s[i].test(r)) {
d.unshift(i);
break
} if (d[0] in n) a = d[0];
else {
for (i in n) {
if (!d[0] || e.converters[i + " " + d[0]]) {
a = i;
break
}
o = o || i
}
a = a || o
}
if (a) return a !== d[0] && d.unshift(a), n[a]
}(h, T, n)), !i && -1 < j.inArray("script", h.dataTypes) && (h.converters["text script"] = function() {}), s = function(e, t, n, r) {
var i, a, o, s, d, c = {},
u = e.dataTypes.slice();
if (u[1])
for (o in e.converters) c[o.toLowerCase()] = e.converters[o];
for (a = u.shift(); a;)
if (e.responseFields[a] && (n[e.responseFields[a]] = t), !d && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), d = a, a = u.shift())
if ("*" === a) a = d;
else if ("*" !== d && d !== a) {
if (!(o = c[d + " " + a] || c["* " + a]))
for (i in c)
if ((s = i.split(" "))[1] === a && (o = c[d + " " + s[0]] || c["* " + s[0]])) {
!0 === o ? o = c[i] : !0 !== c[i] && (a = s[0], u.unshift(s[1]));
break
} if (!0 !== o)
if (o && e.throws) t = o(t);
else try {
t = o(t)
} catch (e) {
return {
state: "parsererror",
error: o ? e : "No conversion from " + d + " to " + a
}
}
}
return {
state: "success",
data: t
}
}(h, s, T, i), i ? (h.ifModified && ((d = T.getResponseHeader("Last-Modified")) && (j.lastModified[p] = d), (d = T.getResponseHeader("etag")) && (j.etag[p] = d)), 204 === e || "HEAD" === h.type ? c = "nocontent" : 304 === e ? c = "notmodified" : (c = s.state, a = s.data, i = !(o = s.error))) : (o = c, !e && c || (c = "error", e < 0 && (e = 0))), T.status = e, T.statusText = (t || c) + "", i ? v.resolveWith(b, [a, c, T]) : v.rejectWith(b, [T, c, o]), T.statusCode(I), I = void 0, g && y.trigger(i ? "ajaxSuccess" : "ajaxError", [T, h, i ? a : o]), w.fireWith(b, [T, c]), g && (y.trigger("ajaxComplete", [T, h]), --j.active || j.event.trigger("ajaxStop")))
}
return T
},
getJSON: function(e, t, n) {
return j.get(e, t, n, "json")
},
getScript: function(e, t) {
return j.get(e, void 0, t, "script")
}
}), j.each(["get", "post"], function(e, i) {
j[i] = function(e, t, n, r) {
return v(t) && (r = r || n, n = t, t = void 0), j.ajax(j.extend({
url: e,
type: i,
dataType: r,
data: t,
success: n
}, j.isPlainObject(e) && e))
}
}), j.ajaxPrefilter(function(e) {
for (var t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "")
}), j._evalUrl = function(e, t, n) {
return j.ajax({
url: e,
type: "GET",
dataType: "script",
cache: !0,
async: !1,
global: !1,
converters: {
"text script": function() {}
},
dataFilter: function(e) {
j.globalEval(e, t, n)
}
})
}, j.fn.extend({
wrapAll: function(e) {
var t;
return this[0] && (v(e) && (e = e.call(this[0])), t = j(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
for (var e = this; e.firstElementChild;) e = e.firstElementChild;
return e
}).append(this)), this
},
wrapInner: function(n) {
return v(n) ? this.each(function(e) {
j(this).wrapInner(n.call(this, e))
}) : this.each(function() {
var e = j(this),
t = e.contents();
t.length ? t.wrapAll(n) : e.append(n)
})
},
wrap: function(t) {
var n = v(t);
return this.each(function(e) {
j(this).wrapAll(n ? t.call(this, e) : t)
})
},
unwrap: function(e) {
return this.parent(e).not("body").each(function() {
j(this).replaceWith(this.childNodes)
}), this
}
}), j.expr.pseudos.hidden = function(e) {
return !j.expr.pseudos.visible(e)
}, j.expr.pseudos.visible = function(e) {
return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
}, j.ajaxSettings.xhr = function() {
try {
return new S.XMLHttpRequest
} catch (e) {}
};
var $t = {
0: 200,
1223: 204
},
Zt = j.ajaxSettings.xhr();
y.cors = !!Zt && "withCredentials" in Zt, y.ajax = Zt = !!Zt, j.ajaxTransport(function(i) {
var a, o;
if (y.cors || Zt && !i.crossDomain) return {
send: function(e, t) {
var n, r = i.xhr();
if (r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields)
for (n in i.xhrFields) r[n] = i.xhrFields[n];
for (n in i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType), i.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"), e) r.setRequestHeader(n, e[n]);
a = function(e) {
return function() {
a && (a = o = r.onload = r.onerror = r.onabort = r.ontimeout = r.onreadystatechange = null, "abort" === e ? r.abort() : "error" === e ? "number" != typeof r.status ? t(0, "error") : t(r.status, r.statusText) : t($t[r.status] || r.status, r.statusText, "text" !== (r.responseType || "text") || "string" != typeof r.responseText ? {
binary: r.response
} : {
text: r.responseText
}, r.getAllResponseHeaders()))
}
}, r.onload = a(), o = r.onerror = r.ontimeout = a("error"), void 0 !== r.onabort ? r.onabort = o : r.onreadystatechange = function() {
4 === r.readyState && S.setTimeout(function() {
a && o()
})
}, a = a("abort");
try {
r.send(i.hasContent && i.data || null)
} catch (e) {
if (a) throw e
}
},
abort: function() {
a && a()
}
}
}), j.ajaxPrefilter(function(e) {
e.crossDomain && (e.contents.script = !1)
}), j.ajaxSetup({
accepts: {
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
},
contents: {
script: /\b(?:java|ecma)script\b/
},
converters: {
"text script": function(e) {
return j.globalEval(e), e
}
}
}), j.ajaxPrefilter("script", function(e) {
void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET")
}), j.ajaxTransport("script", function(n) {
var r, i;
if (n.crossDomain || n.scriptAttrs) return {
send: function(e, t) {
r = j("<script>").attr(n.scriptAttrs || {}).prop({
charset: n.scriptCharset,
src: n.url
}).on("load error", i = function(e) {
r.remove(), i = null, e && t("error" === e.type ? 404 : 200, e.type)
}), k.head.appendChild(r[0])
},
abort: function() {
i && i()
}
}
});
var en, tn = [],
nn = /(=)\?(?=&|$)|\?\?/;
j.ajaxSetup({
jsonp: "callback",
jsonpCallback: function() {
var e = tn.pop() || j.expando + "_" + Dt.guid++;
return this[e] = !0, e
}
}), j.ajaxPrefilter("json jsonp", function(e, t, n) {
var r, i, a, o = !1 !== e.jsonp && (nn.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && nn.test(e.data) && "data");
if (o || "jsonp" === e.dataTypes[0]) return r = e.jsonpCallback = v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, o ? e[o] = e[o].replace(nn, "$1" + r) : !1 !== e.jsonp && (e.url += (Pt.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function() {
return a || j.error(r + " was not called"), a[0]
}, e.dataTypes[0] = "json", i = S[r], S[r] = function() {
a = arguments
}, n.always(function() {
void 0 === i ? j(S).removeProp(r) : S[r] = i, e[r] && (e.jsonpCallback = t.jsonpCallback, tn.push(r)), a && v(i) && i(a[0]), a = i = void 0
}), "script"
}), y.createHTMLDocument = ((en = k.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === en.childNodes.length), j.parseHTML = function(e, t, n) {
return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t, t = !1), t || (y.createHTMLDocument ? ((r = (t = k.implementation.createHTMLDocument("")).createElement("base")).href = k.location.href, t.head.appendChild(r)) : t = k), a = !n && [], (i = E.exec(e)) ? [t.createElement(i[1])] : (i = ve([e], t, a), a && a.length && j(a).remove(), j.merge([], i.childNodes)));
var r, i, a
}, j.fn.load = function(e, t, n) {
var r, i, a, o = this,
s = e.indexOf(" ");
return -1 < s && (r = At(e.slice(s)), e = e.slice(0, s)), v(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), 0 < o.length && j.ajax({
url: e,
type: i || "GET",
dataType: "html",
data: t
}).done(function(e) {
a = arguments, o.html(r ? j("<div>").append(j.parseHTML(e)).find(r) : e)
}).always(n && function(e, t) {
o.each(function() {
n.apply(this, a || [e.responseText, t, e])
})
}), this
}, j.expr.pseudos.animated = function(t) {
return j.grep(j.timers, function(e) {
return t === e.elem
}).length
}, j.offset = {
setOffset: function(e, t, n) {
var r, i, a, o, s, d, c = j.css(e, "position"),
u = j(e),
p = {};
"static" === c && (e.style.position = "relative"), s = u.offset(), a = j.css(e, "top"), d = j.css(e, "left"), i = ("absolute" === c || "fixed" === c) && -1 < (a + d).indexOf("auto") ? (o = (r = u.position()).top, r.left) : (o = parseFloat(a) || 0, parseFloat(d) || 0), v(t) && (t = t.call(e, n, j.extend({}, s))), null != t.top && (p.top = t.top - s.top + o), null != t.left && (p.left = t.left - s.left + i), "using" in t ? t.using.call(e, p) : ("number" == typeof p.top && (p.top += "px"), "number" == typeof p.left && (p.left += "px"), u.css(p))
}
}, j.fn.extend({
offset: function(t) {
if (arguments.length) return void 0 === t ? this : this.each(function(e) {
j.offset.setOffset(this, t, e)
});
var e, n, r = this[0];
return r ? r.getClientRects().length ? (e = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, {
top: e.top + n.pageYOffset,
left: e.left + n.pageXOffset
}) : {
top: 0,
left: 0
} : void 0
},
position: function() {
if (this[0]) {
var e, t, n, r = this[0],
i = {
top: 0,
left: 0
};
if ("fixed" === j.css(r, "position")) t = r.getBoundingClientRect();
else {
for (t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement; e && (e === n.body || e === n.documentElement) && "static" === j.css(e, "position");) e = e.parentNode;
e && e !== r && 1 === e.nodeType && ((i = j(e).offset()).top += j.css(e, "borderTopWidth", !0), i.left += j.css(e, "borderLeftWidth", !0))
}
return {
top: t.top - i.top - j.css(r, "marginTop", !0),
left: t.left - i.left - j.css(r, "marginLeft", !0)
}
}
},
offsetParent: function() {
return this.map(function() {
for (var e = this.offsetParent; e && "static" === j.css(e, "position");) e = e.offsetParent;
return e || re
})
}
}), j.each({
scrollLeft: "pageXOffset",
scrollTop: "pageYOffset"
}, function(t, i) {
var a = "pageYOffset" === i;
j.fn[t] = function(e) {
return V(this, function(e, t, n) {
var r;
return g(e) ? r = e : 9 === e.nodeType && (r = e.defaultView), void 0 === n ? r ? r[i] : e[t] : void(r ? r.scrollTo(a ? r.pageXOffset : n, a ? n : r.pageYOffset) : e[t] = n)
}, t, e, arguments.length)
}
}), j.each(["top", "left"], function(e, n) {
j.cssHooks[n] = $e(y.pixelPosition, function(e, t) {
if (t) return t = Qe(e, n), He.test(t) ? j(e).position()[n] + "px" : t
})
}), j.each({
Height: "height",
Width: "width"
}, function(o, s) {
j.each({
padding: "inner" + o,
content: s,
"": "outer" + o
}, function(r, a) {
j.fn[a] = function(e, t) {
var n = arguments.length && (r || "boolean" != typeof e),
i = r || (!0 === e || !0 === t ? "margin" : "border");
return V(this, function(e, t, n) {
var r;
return g(e) ? 0 === a.indexOf("outer") ? e["inner" + o] : e.document.documentElement["client" + o] : 9 === e.nodeType ? (r = e.documentElement, Math.max(e.body["scroll" + o], r["scroll" + o], e.body["offset" + o], r["offset" + o], r["client" + o])) : void 0 === n ? j.css(e, t, i) : j.style(e, t, n, i)
}, s, n ? e : void 0, n)
}
})
}), j.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
j.fn[t] = function(e) {
return this.on(t, e)
}
}), j.fn.extend({
bind: function(e, t, n) {
return this.on(e, null, t, n)
},
unbind: function(e, t) {
return this.off(e, null, t)
},
delegate: function(e, t, n, r) {
return this.on(t, e, n, r)
},
undelegate: function(e, t, n) {
return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
},
hover: function(e, t) {
return this.mouseenter(e).mouseleave(t || e)
}
}), j.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(e, n) {
j.fn[n] = function(e, t) {
return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n)
}
});
var rn = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
j.proxy = function(e, t) {
var n, r, i;
if ("string" == typeof t && (n = e[t], t = e, e = n), v(e)) return r = s.call(arguments, 2), (i = function() {
return e.apply(t || this, r.concat(s.call(arguments)))
}).guid = e.guid = e.guid || j.guid++, i
}, j.holdReady = function(e) {
e ? j.readyWait++ : j.ready(!0)
}, j.isArray = Array.isArray, j.parseJSON = JSON.parse, j.nodeName = A, j.isFunction = v, j.isWindow = g, j.camelCase = G, j.type = I, j.now = Date.now, j.isNumeric = function(e) {
var t = j.type(e);
return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
}, j.trim = function(e) {
return null == e ? "" : (e + "").replace(rn, "")
}, void 0 === (dn = function() {
return j
}.apply(exports, [])) || (sn.exports = dn);
var an = S.jQuery,
on = S.$;
return j.noConflict = function(e) {
return S.$ === j && (S.$ = on), e && S.jQuery === j && (S.jQuery = an), j
}, void 0 === e && (S.jQuery = S.$ = j), j
})
}, function(I, exports, T) {
var S;
/*!
* UAParser.js v0.7.22
* Lightweight JavaScript-based User-Agent string parser
* https://github.com/faisalman/ua-parser-js
*
* Copyright © 2012-2019 Faisal Salman <f@faisalman.com>
* Licensed under MIT License
*/
! function(i, p) {
"use strict";
var l = "function",
e = "undefined",
t = "model",
n = "name",
r = "type",
a = "vendor",
o = "version",
s = "architecture",
d = "console",
c = "mobile",
u = "tablet",
f = "smarttv",
m = "wearable",
g = {
extend: function(e, t) {
var n, r = {};
for (n in e) t[n] && t[n].length % 2 == 0 ? r[n] = t[n].concat(e[n]) : r[n] = e[n];
return r
},
has: function(e, t) {
return "string" == typeof e && -1 !== t.toLowerCase().indexOf(e.toLowerCase())
},
lowerize: function(e) {
return e.toLowerCase()
},
major: function(e) {
return "string" == typeof e ? e.replace(/[^\d\.]/g, "").split(".")[0] : p
},
trim: function(e) {
return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "")
}
},
h = {
rgx: function(e, t) {
for (var n, r, i, a, o, s = 0; s < t.length && !a;) {
for (var d = t[s], c = t[s + 1], u = n = 0; u < d.length && !a;)
if (a = d[u++].exec(e))
for (r = 0; r < c.length; r++) o = a[++n], "object" == typeof(i = c[r]) && 0 < i.length ? 2 == i.length ? typeof i[1] == l ? this[i[0]] = i[1].call(this, o) : this[i[0]] = i[1] : 3 == i.length ? typeof i[1] != l || i[1].exec && i[1].test ? this[i[0]] = o ? o.replace(i[1], i[2]) : p : this[i[0]] = o ? i[1].call(this, o, i[2]) : p : 4 == i.length && (this[i[0]] = o ? i[3].call(this, o.replace(i[1], i[2])) : p) : this[i] = o || p;
s += 2
}
},
str: function(e, t) {
for (var n in t)
if ("object" == typeof t[n] && 0 < t[n].length) {
for (var r = 0; r < t[n].length; r++)
if (g.has(t[n][r], e)) return "?" === n ? p : n
} else if (g.has(t[n], e)) return "?" === n ? p : n;
return e
}
},
b = {
browser: {
oldsafari: {
version: {
"1.0": "/8",
1.2: "/1",
1.3: "/3",
"2.0": "/412",
"2.0.2": "/416",
"2.0.3": "/417",
"2.0.4": "/419",
"?": "/"
}
}
},
device: {
amazon: {
model: {
"Fire Phone": ["SD", "KF"]
}
},
sprint: {
model: {
"Evo Shift 4G": "7373KT"
},
vendor: {
HTC: "APA",
Sprint: "Sprint"
}
}
},
os: {
windows: {
version: {
ME: "4.90",
"NT 3.11": "NT3.51",
"NT 4.0": "NT4.0",
2e3: "NT 5.0",
XP: ["NT 5.1", "NT 5.2"],
Vista: "NT 6.0",
7: "NT 6.1",
8: "NT 6.2",
8.1: "NT 6.3",
10: ["NT 6.4", "NT 10.0"],
RT: "ARM"
}
}
}
},
y = {
browser: [
[/(opera\smini)\/([\w\.-]+)/i, /(opera\s[mobiletab]+).+version\/([\w\.-]+)/i, /(opera).+version\/([\w\.]+)/i, /(opera)[\/\s]+([\w\.]+)/i],
[n, o],
[/(opios)[\/\s]+([\w\.]+)/i],
[
[n, "Opera Mini"], o
],
[/\s(opr)\/([\w\.]+)/i],
[
[n, "Opera"], o
],
[/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]*)/i, /(avant\s|iemobile|slim)(?:browser)?[\/\s]?([\w\.]*)/i, /(bidubrowser|baidubrowser)[\/\s]?([\w\.]+)/i, /(?:ms|\()(ie)\s([\w\.]+)/i, /(rekonq)\/([\w\.]*)/i, /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon)\/([\w\.-]+)/i],
[n, o],
[/(konqueror)\/([\w\.]+)/i],
[
[n, "Konqueror"], o
],
[/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i],
[
[n, "IE"], o
],
[/(edge|edgios|edga|edg)\/((\d+)?[\w\.]+)/i],
[
[n, "Edge"], o
],
[/(yabrowser)\/([\w\.]+)/i],
[
[n, "Yandex"], o
],
[/(Avast)\/([\w\.]+)/i],
[
[n, "Avast Secure Browser"], o
],
[/(AVG)\/([\w\.]+)/i],
[
[n, "AVG Secure Browser"], o
],
[/(puffin)\/([\w\.]+)/i],
[
[n, "Puffin"], o
],
[/(focus)\/([\w\.]+)/i],
[
[n, "Firefox Focus"], o
],
[/(opt)\/([\w\.]+)/i],
[
[n, "Opera Touch"], o
],
[/((?:[\s\/])uc?\s?browser|(?:juc.+)ucweb)[\/\s]?([\w\.]+)/i],
[
[n, "UCBrowser"], o
],
[/(comodo_dragon)\/([\w\.]+)/i],
[
[n, /_/g, " "], o
],
[/(windowswechat qbcore)\/([\w\.]+)/i],
[
[n, "WeChat(Win) Desktop"], o
],
[/(micromessenger)\/([\w\.]+)/i],
[
[n, "WeChat"], o
],
[/(brave)\/([\w\.]+)/i],
[
[n, "Brave"], o
],
[/(qqbrowserlite)\/([\w\.]+)/i],
[n, o],
[/(QQ)\/([\d\.]+)/i],
[n, o],
[/m?(qqbrowser)[\/\s]?([\w\.]+)/i],
[n, o],
[/(baiduboxapp)[\/\s]?([\w\.]+)/i],
[n, o],
[/(2345Explorer)[\/\s]?([\w\.]+)/i],
[n, o],
[/(MetaSr)[\/\s]?([\w\.]+)/i],
[n],
[/(LBBROWSER)/i],
[n],
[/xiaomi\/miuibrowser\/([\w\.]+)/i],
[o, [n, "MIUI Browser"]],
[/;fbav\/([\w\.]+);/i],
[o, [n, "Facebook"]],
[/safari\s(line)\/([\w\.]+)/i, /android.+(line)\/([\w\.]+)\/iab/i],
[n, o],
[/headlesschrome(?:\/([\w\.]+)|\s)/i],
[o, [n, "Chrome Headless"]],
[/\swv\).+(chrome)\/([\w\.]+)/i],
[
[n, /(.+)/, "$1 WebView"], o
],
[/((?:oculus|samsung)browser)\/([\w\.]+)/i],
[
[n, /(.+(?:g|us))(.+)/, "$1 $2"], o
],
[/android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)*/i],
[o, [n, "Android Browser"]],
[/(sailfishbrowser)\/([\w\.]+)/i],
[
[n, "Sailfish Browser"], o
],
[/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i],
[n, o],
[/(dolfin)\/([\w\.]+)/i],
[
[n, "Dolphin"], o
],
[/(qihu|qhbrowser|qihoobrowser|360browser)/i],
[
[n, "360 Browser"]
],
[/((?:android.+)crmo|crios)\/([\w\.]+)/i],
[
[n, "Chrome"], o
],
[/(coast)\/([\w\.]+)/i],
[
[n, "Opera Coast"], o
],
[/fxios\/([\w\.-]+)/i],
[o, [n, "Firefox"]],
[/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i],
[o, [n, "Mobile Safari"]],
[/version\/([\w\.]+).+?(mobile\s?safari|safari)/i],
[o, n],
[/webkit.+?(gsa)\/([\w\.]+).+?(mobile\s?safari|safari)(\/[\w\.]+)/i],
[
[n, "GSA"], o
],
[/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i],
[n, [o, h.str, b.browser.oldsafari.version]],
[/(webkit|khtml)\/([\w\.]+)/i],
[n, o],
[/(navigator|netscape)\/([\w\.-]+)/i],
[
[n, "Netscape"], o
],
[/(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i, /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([\w\.-]+)$/i, /(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i, /(links)\s\(([\w\.]+)/i, /(gobrowser)\/?([\w\.]*)/i, /(ice\s?browser)\/v?([\w\._]+)/i, /(mosaic)[\/\s]([\w\.]+)/i],
[n, o]
],
cpu: [
[/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i],
[
[s, "amd64"]
],
[/(ia32(?=;))/i],
[
[s, g.lowerize]
],
[/((?:i[346]|x)86)[;\)]/i],
[
[s, "ia32"]
],
[/windows\s(ce|mobile);\sppc;/i],
[
[s, "arm"]
],
[/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i],
[
[s, /ower/, "", g.lowerize]
],
[/(sun4\w)[;\)]/i],
[
[s, "sparc"]
],
[/((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+[;l]))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i],
[
[s, g.lowerize]
]
],
device: [
[/\((ipad|playbook);[\w\s\),;-]+(rim|apple)/i],
[t, a, [r, u]],
[/applecoremedia\/[\w\.]+ \((ipad)/],
[t, [a, "Apple"],
[r, u]
],
[/(apple\s{0,1}tv)/i],
[
[t, "Apple TV"],
[a, "Apple"],
[r, f]
],
[/(archos)\s(gamepad2?)/i, /(hp).+(touchpad)/i, /(hp).+(tablet)/i, /(kindle)\/([\w\.]+)/i, /\s(nook)[\w\s]+build\/(\w+)/i, /(dell)\s(strea[kpr\s\d]*[\dko])/i],
[a, t, [r, u]],
[/(kf[A-z]+)\sbuild\/.+silk\//i],
[t, [a, "Amazon"],
[r, u]
],
[/(sd|kf)[0349hijorstuw]+\sbuild\/.+silk\//i],
[
[t, h.str, b.device.amazon.model],
[a, "Amazon"],
[r, c]
],
[/android.+aft([bms])\sbuild/i],
[t, [a, "Amazon"],
[r, f]
],
[/\((ip[honed|\s\w*]+);.+(apple)/i],
[t, a, [r, c]],
[/\((ip[honed|\s\w*]+);/i],
[t, [a, "Apple"],
[r, c]
],
[/(blackberry)[\s-]?(\w+)/i, /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[\s_-]?([\w-]*)/i, /(hp)\s([\w\s]+\w)/i, /(asus)-?(\w+)/i],
[a, t, [r, c]],
[/\(bb10;\s(\w+)/i],
[t, [a, "BlackBerry"],
[r, c]
],
[/android.+(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus 7|padfone|p00c)/i],
[t, [a, "Asus"],
[r, u]
],
[/(sony)\s(tablet\s[ps])\sbuild\//i, /(sony)?(?:sgp.+)\sbuild\//i],
[
[a, "Sony"],
[t, "Xperia Tablet"],
[r, u]
],
[/android.+\s([c-g]\d{4}|so[-l]\w+)(?=\sbuild\/|\).+chrome\/(?![1-6]{0,1}\d\.))/i],
[t, [a, "Sony"],
[r, c]
],
[/\s(ouya)\s/i, /(nintendo)\s([wids3u]+)/i],
[a, t, [r, d]],
[/android.+;\s(shield)\sbuild/i],
[t, [a, "Nvidia"],
[r, d]
],
[/(playstation\s[34portablevi]+)/i],
[t, [a, "Sony"],
[r, d]
],
[/(sprint\s(\w+))/i],
[
[a, h.str, b.device.sprint.vendor],
[t, h.str, b.device.sprint.model],
[r, c]
],
[/(htc)[;_\s-]+([\w\s]+(?=\)|\sbuild)|\w+)/i, /(zte)-(\w*)/i, /(alcatel|geeksphone|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]*)/i],
[a, [t, /_/g, " "],
[r, c]
],
[/(nexus\s9)/i],
[t, [a, "HTC"],
[r, u]
],
[/d\/huawei([\w\s-]+)[;\)]/i, /(nexus\s6p|vog-l29|ane-lx1|eml-l29|ele-l29)/i],
[t, [a, "Huawei"],
[r, c]
],
[/android.+(bah2?-a?[lw]\d{2})/i],
[t, [a, "Huawei"],
[r, u]
],
[/(microsoft);\s(lumia[\s\w]+)/i],
[a, t, [r, c]],
[/[\s\(;](xbox(?:\sone)?)[\s\);]/i],
[t, [a, "Microsoft"],
[r, d]
],
[/(kin\.[onetw]{3})/i],
[
[t, /\./g, " "],
[a, "Microsoft"],
[r, c]
],
[/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?:?(\s4g)?)[\w\s]+build\//i, /mot[\s-]?(\w*)/i, /(XT\d{3,4}) build\//i, /(nexus\s6)/i],
[t, [a, "Motorola"],
[r, c]
],
[/android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i],
[t, [a, "Motorola"],
[r, u]
],
[/hbbtv\/\d+\.\d+\.\d+\s+\([\w\s]*;\s*(\w[^;]*);([^;]*)/i],
[
[a, g.trim],
[t, g.trim],
[r, f]
],
[/hbbtv.+maple;(\d+)/i],
[
[t, /^/, "SmartTV"],
[a, "Samsung"],
[r, f]
],
[/\(dtv[\);].+(aquos)/i],
[t, [a, "Sharp"],
[r, f]
],
[/android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n\d+|sgh-t8[56]9|nexus 10))/i, /((SM-T\w+))/i],
[
[a, "Samsung"], t, [r, u]
],
[/smart-tv.+(samsung)/i],
[a, [r, f], t],
[/((s[cgp]h-\w+|gt-\w+|galaxy\snexus|sm-\w[\w\d]+))/i, /(sam[sung]*)[\s-]*(\w+-?[\w-]*)/i, /sec-((sgh\w+))/i],
[
[a, "Samsung"], t, [r, c]
],
[/sie-(\w*)/i],
[t, [a, "Siemens"],
[r, c]
],
[/(maemo|nokia).*(n900|lumia\s\d+)/i, /(nokia)[\s_-]?([\w-]*)/i],
[
[a, "Nokia"], t, [r, c]
],
[/android[x\d\.\s;]+\s([ab][1-7]\-?[0178a]\d\d?)/i],
[t, [a, "Acer"],
[r, u]
],
[/android.+([vl]k\-?\d{3})\s+build/i],
[t, [a, "LG"],
[r, u]
],
[/android\s3\.[\s\w;-]{10}(lg?)-([06cv9]{3,4})/i],
[
[a, "LG"], t, [r, u]
],
[/(lg) netcast\.tv/i],
[a, t, [r, f]],
[/(nexus\s[45])/i, /lg[e;\s\/-]+(\w*)/i, /android.+lg(\-?[\d\w]+)\s+build/i],
[t, [a, "LG"],
[r, c]
],
[/(lenovo)\s?(s(?:5000|6000)(?:[\w-]+)|tab(?:[\s\w]+))/i],
[a, t, [r, u]],
[/android.+(ideatab[a-z0-9\-\s]+)/i],
[t, [a, "Lenovo"],
[r, u]
],
[/(lenovo)[_\s-]?([\w-]+)/i],
[a, t, [r, c]],
[/linux;.+((jolla));/i],
[a, t, [r, c]],
[/((pebble))app\/[\d\.]+\s/i],
[a, t, [r, m]],
[/android.+;\s(oppo)\s?([\w\s]+)\sbuild/i],
[a, t, [r, c]],
[/crkey/i],
[
[t, "Chromecast"],
[a, "Google"],
[r, f]
],
[/android.+;\s(glass)\s\d/i],
[t, [a, "Google"],
[r, m]
],
[/android.+;\s(pixel c)[\s)]/i],
[t, [a, "Google"],
[r, u]
],
[/android.+;\s(pixel( [23])?( xl)?)[\s)]/i],
[t, [a, "Google"],
[r, c]
],
[/android.+;\s(\w+)\s+build\/hm\1/i, /android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i, /android.+(mi[\s\-_]*(?:a\d|one|one[\s_]plus|note lte)?[\s_]*(?:\d?\w?)[\s_]*(?:plus)?)\s+build/i, /android.+(redmi[\s\-_]*(?:note)?(?:[\s_]?[\w\s]+))\s+build/i],
[
[t, /_/g, " "],
[a, "Xiaomi"],
[r, c]
],
[/android.+(mi[\s\-_]*(?:pad)(?:[\s_]?[\w\s]+))\s+build/i],
[
[t, /_/g, " "],
[a, "Xiaomi"],
[r, u]
],
[/android.+;\s(m[1-5]\snote)\sbuild/i],
[t, [a, "Meizu"],
[r, c]
],
[/(mz)-([\w-]{2,})/i],
[
[a, "Meizu"], t, [r, c]
],
[/android.+a000(1)\s+build/i, /android.+oneplus\s(a\d{4})[\s)]/i],
[t, [a, "OnePlus"],
[r, c]
],
[/android.+[;\/]\s*(RCT[\d\w]+)\s+build/i],
[t, [a, "RCA"],
[r, u]
],
[/android.+[;\/\s]+(Venue[\d\s]{2,7})\s+build/i],
[t, [a, "Dell"],
[r, u]
],
[/android.+[;\/]\s*(Q[T|M][\d\w]+)\s+build/i],
[t, [a, "Verizon"],
[r, u]
],
[/android.+[;\/]\s+(Barnes[&\s]+Noble\s+|BN[RT])(V?.*)\s+build/i],
[
[a, "Barnes & Noble"], t, [r, u]
],
[/android.+[;\/]\s+(TM\d{3}.*\b)\s+build/i],
[t, [a, "NuVision"],
[r, u]
],
[/android.+;\s(k88)\sbuild/i],
[t, [a, "ZTE"],
[r, u]
],
[/android.+[;\/]\s*(gen\d{3})\s+build.*49h/i],
[t, [a, "Swiss"],
[r, c]
],
[/android.+[;\/]\s*(zur\d{3})\s+build/i],
[t, [a, "Swiss"],
[r, u]
],
[/android.+[;\/]\s*((Zeki)?TB.*\b)\s+build/i],
[t, [a, "Zeki"],
[r, u]
],
[/(android).+[;\/]\s+([YR]\d{2})\s+build/i, /android.+[;\/]\s+(Dragon[\-\s]+Touch\s+|DT)(\w{5})\sbuild/i],
[
[a, "Dragon Touch"], t, [r, u]
],
[/android.+[;\/]\s*(NS-?\w{0,9})\sbuild/i],
[t, [a, "Insignia"],
[r, u]
],
[/android.+[;\/]\s*((NX|Next)-?\w{0,9})\s+build/i],
[t, [a, "NextBook"],
[r, u]
],
[/android.+[;\/]\s*(Xtreme\_)?(V(1[045]|2[015]|30|40|60|7[05]|90))\s+build/i],
[
[a, "Voice"], t, [r, c]
],
[/android.+[;\/]\s*(LVTEL\-)?(V1[12])\s+build/i],
[
[a, "LvTel"], t, [r, c]
],
[/android.+;\s(PH-1)\s/i],
[t, [a, "Essential"],
[r, c]
],
[/android.+[;\/]\s*(V(100MD|700NA|7011|917G).*\b)\s+build/i],
[t, [a, "Envizen"],
[r, u]
],
[/android.+[;\/]\s*(Le[\s\-]+Pan)[\s\-]+(\w{1,9})\s+build/i],
[a, t, [r, u]],
[/android.+[;\/]\s*(Trio[\s\-]*.*)\s+build/i],
[t, [a, "MachSpeed"],
[r, u]
],
[/android.+[;\/]\s*(Trinity)[\-\s]*(T\d{3})\s+build/i],
[a, t, [r, u]],
[/android.+[;\/]\s*TU_(1491)\s+build/i],
[t, [a, "Rotor"],
[r, u]
],
[/android.+(KS(.+))\s+build/i],
[t, [a, "Amazon"],
[r, u]
],
[/android.+(Gigaset)[\s\-]+(Q\w{1,9})\s+build/i],
[a, t, [r, u]],
[/\s(tablet|tab)[;\/]/i, /\s(mobile)(?:[;\/]|\ssafari)/i],
[
[r, g.lowerize], a, t
],
[/[\s\/\(](smart-?tv)[;\)]/i],
[
[r, f]
],
[/(android[\w\.\s\-]{0,9});.+build/i],
[t, [a, "Generic"]]
],
engine: [
[/windows.+\sedge\/([\w\.]+)/i],
[o, [n, "EdgeHTML"]],
[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],
[o, [n, "Blink"]],
[/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, /(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, /(icab)[\/\s]([23]\.[\d\.]+)/i],
[n, o],
[/rv\:([\w\.]{1,9}).+(gecko)/i],
[o, n]
],
os: [
[/microsoft\s(windows)\s(vista|xp)/i],
[n, o],
[/(windows)\snt\s6\.2;\s(arm)/i, /(windows\sphone(?:\sos)*)[\s\/]?([\d\.\s\w]*)/i, /(windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i],
[n, [o, h.str, b.os.windows.version]],
[/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i],
[
[n, "Windows"],
[o, h.str, b.os.windows.version]
],
[/\((bb)(10);/i],
[
[n, "BlackBerry"], o
],
[/(blackberry)\w*\/?([\w\.]*)/i, /(tizen|kaios)[\/\s]([\w\.]+)/i, /(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|sailfish|contiki)[\/\s-]?([\w\.]*)/i],
[n, o],
[/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]*)/i],
[
[n, "Symbian"], o
],
[/\((series40);/i],
[n],
[/mozilla.+\(mobile;.+gecko.+firefox/i],
[
[n, "Firefox OS"], o
],
[/(nintendo|playstation)\s([wids34portablevu]+)/i, /(mint)[\/\s\(]?(\w*)/i, /(mageia|vectorlinux)[;\s]/i, /(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?(?!chrom)([\w\.-]*)/i, /(hurd|linux)\s?([\w\.]*)/i, /(gnu)\s?([\w\.]*)/i],
[n, o],
[/(cros)\s[\w]+\s([\w\.]+\w)/i],
[
[n, "Chromium OS"], o
],
[/(sunos)\s?([\w\.\d]*)/i],
[
[n, "Solaris"], o
],
[/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]*)/i],
[n, o],
[/(haiku)\s(\w+)/i],
[n, o],
[/cfnetwork\/.+darwin/i, /ip[honead]{2,4}(?:.*os\s([\w]+)\slike\smac|;\sopera)/i],
[
[o, /_/g, "."],
[n, "iOS"]
],
[/(mac\sos\sx)\s?([\w\s\.]*)/i, /(macintosh|mac(?=_powerpc)\s)/i],
[
[n, "Mac OS"],
[o, /_/g, "."]
],
[/((?:open)?solaris)[\/\s-]?([\w\.]*)/i, /(aix)\s((\d)(?=\.|\)|\s)[\w\.])*/i, /(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms|fuchsia)/i, /(unix)\s?([\w\.]*)/i],
[n, o]
]
},
v = function(e, t) {
if ("object" == typeof e && (t = e, e = p), !(this instanceof v)) return new v(e, t).getResult();
var n = e || (i && i.navigator && i.navigator.userAgent ? i.navigator.userAgent : ""),
r = t ? g.extend(y, t) : y;
return this.getBrowser = function() {
var e = {
name: p,
version: p
};
return h.rgx.call(e, n, r.browser), e.major = g.major(e.version), e
}, this.getCPU = function() {
var e = {
architecture: p
};
return h.rgx.call(e, n, r.cpu), e
}, this.getDevice = function() {
var e = {
vendor: p,
model: p,
type: p
};
return h.rgx.call(e, n, r.device), e
}, this.getEngine = function() {
var e = {
name: p,
version: p
};
return h.rgx.call(e, n, r.engine), e
}, this.getOS = function() {
var e = {
name: p,
version: p
};
return h.rgx.call(e, n, r.os), e
}, this.getResult = function() {
return {
ua: this.getUA(),
browser: this.getBrowser(),
engine: this.getEngine(),
os: this.getOS(),
device: this.getDevice(),
cpu: this.getCPU()
}
}, this.getUA = function() {
return n
}, this.setUA = function(e) {
return n = e, this
}, this
};
v.VERSION = "0.7.22", v.BROWSER = {
NAME: n,
MAJOR: "major",
VERSION: o
}, v.CPU = {
ARCHITECTURE: s
}, v.DEVICE = {
MODEL: t,
VENDOR: a,
TYPE: r,
CONSOLE: d,
MOBILE: c,
SMARTTV: f,
TABLET: u,
WEARABLE: m,
EMBEDDED: "embedded"
}, v.ENGINE = {
NAME: n,
VERSION: o
}, v.OS = {
NAME: n,
VERSION: o
}, typeof exports != e ? (typeof I != e && I.exports && (exports = I.exports = v), exports.UAParser = v) : (S = function() {
return v
}.call(exports, T, exports, I)) === p || (I.exports = S);
var w, $ = i && (i.jQuery || i.Zepto);
$ && !$.ua && (w = new v, $.ua = w.getResult(), $.ua.get = function() {
return w.getUA()
}, $.ua.set = function(e) {
w.setUA(e);
var t, n = w.getResult();
for (t in n) $.ua[t] = n[t]
})
}("object" == typeof window ? window : this)
}, function(e, t, s) {
"use strict";
s.r(t), s.d(t, "AdManager", function() {
return Un
});
var d = s(10),
j = s(1),
T = s(0),
a = (i.removeExpired = function() {
try {
Object.keys(i.context.localStorage).forEach(function(e) {
var t, n;
!e.match("^" + i.prefix) || (t = i.context.localStorage.getItem(e)) && (n = JSON.parse(t), (new Date).getTime() > n.expiresIn + n.createdAt && i.context.localStorage.removeItem(e))
})
} catch (e) {}
}, i.set = function(e, t, n) {
void 0 === n && (n = -1);
try {
i.context.localStorage.setItem(i.prefix + e, JSON.stringify({
storedValue: t,
createdAt: (new Date).getTime(),
expiresIn: n
}))
} catch (e) {
T.a.warn("Failed to create local storage entry")
}
}, i.get = function(e) {
var t = i.prefix + e;
try {
var n = i.context.localStorage.getItem(t);
if (n) {
var r = JSON.parse(n);
if (-1 == r.expiresIn) return r;
if (!((new Date).getTime() > r.expiresIn + r.createdAt)) return r;
i.context.localStorage.removeItem(t)
}
} catch (e) {
T.a.warn("Failed to fetch local storage entry")
}
return null
}, i.getValue = function(e) {
var t = i.get(e);
return null === t ? null : t.storedValue
}, i.prefix = "vms--", i.context = j.a.getTopMostParentWindow(), i);
function i() {}
var n = s(17),
y = s(6),
c = (r.ready = function(e, t) {
var n = void 0 === t ? window : t;
"loading" !== n.document.readyState ? e() : n.document.addEventListener("DOMContentLoaded", function() {
e()
})
}, r.insertAfter = function(e, t) {
e.parentNode.insertBefore(t, e.nextSibling)
}, r.getOwnerWindow = function(e) {
return e.ownerDocument.defaultView || e.ownerDocument.parentWindow
}, r);
function r() {}
var u = s(7),
S = s(2),
v = s(9),
p = s(18),
k = (o.prototype.isBid = function() {
return 0 < this.cpm
}, o.prototype.getAd = function() {
return this.ad
}, o.prototype.getAdUrl = function() {
return this.adUrl
}, o.prototype.getAdId = function() {
return this.adId
}, o.prototype.getAdUnitCode = function() {
return this.adUnitCode
}, o.prototype.getPlacementId = function() {
return this.placementId
}, o.prototype.getPlacementPos = function() {
return this.placementPos
}, o.prototype.getLoopIndex = function() {
return this.loopIndex
}, o.prototype.getPlacementInstanceId = function() {
return this.placementPos + "-" + this.placementId + "-" + this.loopIndex
}, o.prototype.getPositionalPlacementId = function() {
return this.placementPos + "-" + this.placementId
}, o.prototype.getBuyerId = function() {
return this.buyerId
}, o.prototype.getDealId = function() {
return this.dealId
}, o.prototype.getCreativeId = function() {
return this.creativeId
}, o.prototype.getBidder = function() {
return this.bidder
}, o.prototype.getCPM = function() {
return this.cpm
}, o.prototype.getPriceBucket = function() {
return this.priceBucket
}, o.prototype.getAdjustedCPM = function() {
return this.cpm
}, o.prototype.getWinType = function() {
return this.isBidDirect ? "direct" : "blank" === this.bidder ? "blank" : "psa" === this.bidder ? "psa" : "default" === this.bidder ? "default" : "mediation" === this.bidder ? "blank" : "rtb"
}, o.prototype.isDirect = function() {
return this.isBidDirect
}, o.prototype.isBlank = function() {
return "blank" === this.bidder
}, o.prototype.isPSA = function() {
return "psa" === this.bidder
}, o.prototype.isDefault = function() {
return "default" === this.bidder
}, o.prototype.getSize = function() {
return this.size
}, o.prototype.getTimeToRespond = function() {
return this.timeToRespond
}, o.prototype.getTTL = function() {
return this.ttl
}, o.prototype.getCreatedAt = function() {
return this.createdAt
}, o.prototype.getValidUntil = function() {
return this.validUntil
}, o.prototype.isStillValid = function() {
return (new Date).getTime() < this.validUntil
}, o.prototype.getExpiresIn = function() {
var e = this.validUntil - (new Date).getTime();
return 0 < e ? e : 0
}, o.prototype.hasExpired = function() {
return !this.isStillValid()
}, o.prototype.getRawResponse = function() {
return this.rawResponse
}, o.prototype.getAsMediationRule = function() {
return new p.a({
adapter_cpm: this.getCPM(),
adapter_name: this.getBidder(),
adapter_tag: JSON.stringify({
ad: this.getAd()
}),
linked_placement_id: "",
order_index: 1,
target_device: "all",
target_geo: "ALL",
target_size: "0x0"
})
}, o.prototype.getSizeTargetingKey = function() {
return this._sizeTargetingKey
}, o);
function o(e) {
this.buyerId = "", this.dealId = "", this.creativeId = "", this.adUrl = e.adUrl, this.adId = e.adId, this.adUnitCode = e.adUnitCode;
var t = e.adUnitCode.split("-");
this.placementId = t[1], this.placementPos = Number(t[0]), this.loopIndex = Number(t[2]), void 0 !== e.creative_id ? this.creativeId = e.creative_id + "" : void 0 !== e.creativeId && (this.creativeId = e.creativeId + ""), "appnexusAst" === e.bidder ? this.bidder = "appnexus" : "ix" === e.bidder ? this.bidder = "indexExchange" : this.bidder = e.bidder, "number" != typeof e.cpm ? this.cpm = Number(e.cpm) : this.cpm = e.cpm, "string" == typeof e.priceBucket && (this.priceBucket = e.priceBucket), S.a.bidderNetValuesRatio.has(this.bidder) && (this.cpm = this.cpm * S.a.bidderNetValuesRatio.get(this.bidder)), this.isBidDirect = !0 === e.is_direct, this.bidder.match(/^(gum|just|jp)/) && (this.isBidDirect = !0), "audienceNetwork" === this.bidder ? this.size = new v.a(e.fb_format) : (void 0 === e.size && (e.size = e.width + "x" + e.height), this.size = new v.a(e.size)), void 0 === e.ad ? this.ad = '<iframe src="' + e.adUrl + '" allowtransparency="true" frameborder="0" width="' + this.size.getWidth() + '" height="' + this.size.getHeight() + '" marginheight="0" marginwidth="0" />' : this.ad = e.ad, this.timeToRespond = e.timeToRespond, this.ttl = "number" == typeof e.ttl && 1e3 * e.ttl > S.a.defaultBidTTLMS ? Math.min(1e3 * e.ttl, S.a.maxBidTTLMS) : S.a.defaultBidTTLMS, this.createdAt = (new Date).getTime(), this.validUntil = this.createdAt + this.ttl, "string" == typeof(this.rawResponse = e)._sizeTargetingKey && (this._sizeTargetingKey = e._sizeTargetingKey)
}
var g = (l.prototype.getPlacementPos = function() {
return this.placementPos
}, l.prototype.getPlacementId = function() {
return this.placementId
}, l.prototype.getLoopIndex = function() {
return this.loopIndex
}, l.prototype.addBid = function(e) {
this.adapterBids.push(e)
}, l.prototype.addBids = function(e) {
this.adapterBids = this.adapterBids.concat(e)
}, l.prototype.getBids = function() {
return this.adapterBids
}, l);
function l(e, t, n, r) {
this.placementPos = e, this.placementId = t, this.loopIndex = n, this.adapterBids = r
}
var A = s(4),
f = (m.prototype.push = function(e) {
this.data.push(e)
}, m.prototype.pop = function() {
return this.data.shift()
}, m.prototype.popEach = function(e) {
for (; 0 < this.data.length;) e(this.pop())
}, m.prototype.clear = function() {
this.data = []
}, m.prototype.length = function() {
return this.data.length
}, m);
function m(e) {
var t = this;
this.data = [], void 0 !== e && e.forEach(function(e) {
return t.data.push(e)
})
}
s(33);
var h = (b.preFetch = function() {}, b.isReady = function(e) {
e()
}, b.get = function() {
return this.prebidVersion = vmpbjs.version, Promise.resolve(vmpbjs)
}, b);
function b() {}
var w = s(12),
E = s(5),
I = s(11),
O = (_.create = function(e, t, n, r, i, a) {
void 0 === i && (i = !1), void 0 === a && (a = !1), this.q.push({
adUnits: e,
success: t,
loopIndex: n,
error: r,
COPPAApplies: i,
useThirdPartyCMP: a
})
}, _.createTestAdapterBidForAdUnit = function(e, t, n) {
return new k({
ad: "TEST AD",
adId: w.a.createShortGUID(),
adUnitCode: e,
bidder: t,
cpm: 10,
size: n.getSize(),
timeToRespond: 0
})
}, _.createMissingAdapterBidsForAdUnit = function(e, n, r, i) {
void 0 === r && (r = new A.a), void 0 === i && (i = !1);
var a = [];
return e.forEach(function(e) {
e.code === n && e.bids.forEach(function(e) {
var t = e.bidder;
r.has(t) || a.push(new k({
ad: "",
adId: w.a.createShortGUID(),
adUnitCode: n,
bidder: t,
cpm: 0,
size: "0x0",
width: 0,
height: 0,
timeToRespond: i ? -1 : 0,
_sizeTargetingKey: e._sizeTargetingKey
}))
})
}), a
}, _.processNextRequest = function() {
var e, m, n, r, i, t, a, s;
this.isRequesting || void 0 !== (e = this.q.pop()) && (this.isRequesting = !0, m = e.adUnits, n = e.success, r = e.loopIndex, i = e.error, t = e.COPPAApplies, T.a.info("Requesting bids for placements"), a = new A.a(m.map(function(e) {
return [e.code, !0]
})), S.a.bypassPrebid || S.a.isShowcaseMode || t ? (s = [], a.forEach(function(e, t) {
var n = t;
T.a.warn("Bypassing Prebid for " + n);
var r = n.split("-"),
i = Number(r[0]),
a = r[1],
o = Number(r[2]);
s.push(new g(i, a, o, _.createMissingAdapterBidsForAdUnit(m, n, new A.a, !0)))
}), _.isRequesting = !1, n(s)) : h.get().then(function(e) {
var t = {
bidderTimeout: 1 < r ? S.a.prebidGlobalExtendedTimeoutMS : S.a.prebidBidderTimeoutMS,
debug: E.a.has("pdbg"),
consentManagement: {
cmp: "iab",
consentRequired: I.a.get().isGDPRRequired(),
timeout: S.a.prebidCMPTimeoutMS,
allowAuctionWithoutConsent: !0
}
};
S.a.prebidUseS2S && (T.a.debug("Enabling S2S on Prebid"), t.s2sConfig = {
accountId: "d296f9ad-b275-4771-9d42-de70f6e70504",
bidders: ["rubicon", "audienceNetwork", "appnexus"],
enabled: !0,
timeout: S.a.prebidBidderTimeoutMS,
adapter: "prebidServer",
endpoint: "https://prebid.adnxs.com/pbs/v1/auction",
syncEndpoint: "https://prebid.adnxs.com/pbs/v1/cookie_sync",
cookieSet: !0,
cookieSetUrl: "https://acdn.adnxs.com/cookieset/cs.js"
}), t.usersync = {
userIds: [{
name: "id5Id",
params: {
partner: 258
},
storage: {
type: "cookie",
name: "pbjs-id5id",
expires: 90,
refreshInSeconds: 28800
}
}, {
name: "unifiedId",
params: {
partner: "zwqtqe4"
},
storage: {
type: "cookie",
name: "pbjs-unifiedid",
expires: 60
}
}],
syncDelay: 2e3
}, t.schain = {
validation: "strict",
config: {
ver: "1.0",
complete: 1,
nodes: [{
asi: "venatusmedia.com",
sid: y.a.get("data-site-id"),
hp: 1
}]
}
}, T.a.debug("Prebid Config", t), (e = e || {}).que = e.que || [], e.que.push(function() {
e.hardReset(), e.setConfig(t), e.requestBids({
adUnits: m,
timeout: 1 < r ? S.a.prebidGlobalExtendedTimeoutMS : S.a.prebidGlobalTimeoutMS,
bidsBackHandler: function(p, l) {
void 0 === l && (l = !1), T.a.debug("Bids have been returned, now pre-processing them", p), l && T.a.warn("Bid request timed out..."), setTimeout(function() {
_.isRequesting = !1
}, S.a.bidRequestUnlockDelay);
try {
var f = [];
a.forEach(function(e, t) {
var n = t,
i = p.hasOwnProperty(n) ? p[n].bids : [],
r = n.split("-"),
a = Number(r[0]),
o = r[1],
s = Number(r[2]);
if (0 < i.length) {
for (var d = [], c = new A.a, u = 0; u < i.length; u++) ! function(e) {
function t() {
c.set(r, !0), d.push(new k(n))
}
var n = JSON.parse(JSON.stringify(i[e])),
r = n.bidder + "";
!E.a.has("only-allow") || r == E.a.getValue("only-allow") ? t() : T.a.warn("Not allowing " + r + " as it doesn't match allowed bidder " + E.a.getValue("only-allow"))
}(u);
d = d.concat(_.createMissingAdapterBidsForAdUnit(m, n, c)), f.push(new g(a, o, s, d))
} else T.a.debug("No bids returned for " + n), f.push(new g(a, o, s, _.createMissingAdapterBidsForAdUnit(m, n, new A.a, l)))
}), _.isRequesting = !1, n(f)
} catch (e) {
T.a.error(e), _.isRequesting = !1, i(e)
}
}
})
})
}))
}, _.q = new f, _.isRequesting = !1, _);
function _() {}
var C = (x.prototype.getAuctionId = function() {
return this.auctionId
}, x.prototype.getWinningBid = function() {
return this.winningAdapterBid
}, x.prototype.getBidLandscape = function() {
return this.bidLandscape
}, x.prototype.getAppliedPaymentRule = function() {
return this.appliedPaymentRule
}, x.prototype.getSuccessfulAdapterBids = function() {
return this.successfulAdapterBids
}, x);
function x(e, t, n, r) {
this.auctionId = w.a.createGUID("a"), this.winningAdapterBid = e, this.bidLandscape = t, this.appliedPaymentRule = n, this.successfulAdapterBids = void 0 === r ? [] : r
}
var R = (D.isEmpty = function() {
return 0 === this.stash.size()
}, D.clearStash = function() {
this.stash.clear()
}, D.add = function(e) {
var t = this.stash.getOrElse(e.adapterBid.getPlacementInstanceId(), []);
t.push(e), this.stash.set(e.adapterBid.getPlacementInstanceId(), t)
}, D.getStash = function() {
return this.stash
}, D.getStashedAdapterBids = function(e) {
return this.stash.has(e) ? this.stash.get(e) : []
}, D.stash = new A.a, D);
function D() {}
var P = s(22),
U = (N.getWinningBids = function(v, e, w) {
void 0 === w && (w = new A.a);
var I = v.getPlacements(),
t = e.map(function(e) {
var t = e.getPlacementId(),
n = e.getPlacementPos(),
r = e.getLoopIndex(),
i = e.getBids(),
a = I.get(t),
o = a.getPaymentRules(),
s = a.getSmallestSize().getWidth(),
d = a.getSmallestSize().getHeight(),
c = a.getSmallestSize().getSize(),
u = n + "-" + t + "-" + r,
p = !w.has(n + "-" + t) || j.a.isInView(w.get(n + "-" + t)) && j.a.hasFocus();
i.forEach(function(e) {
e.getLoopIndex() === r && (a.getBestMatchingConnectorFromAdapterBid(e) || T.a.error("Failed to find connector rule for adapter bid " + e.getBidder()))
});
var l = i.filter(function(e) {
if (e.isStillValid() && e.getCPM() >= S.a.minBidCPM) {
if (e.isDirect() && a.isBanner() && (!p || 1 != r)) return T.a.warn("Rejected DIRECT bid as placement was determined not to be in view and not first load"), !1;
var t = a.getBestMatchingConnectorFromAdapterBid(e);
return t && e.getCPM() < t.getAdapterFloor() ? (T.a.warn("Rejected bid from " + e.getBidder() + " as it failed to hit the floor price set at " + t.getAdapterFloor()), !1) : !0
}
return !1
}).map(function(t) {
var e = o.filter(function(e) {
return ("ALL" === e.getTargetCountryCode() || e.getTargetCountryCode() === v.getCurrentCountryCode()) && (("RTB" !== e.getTargetImpressionType() || !t.isDirect()) && ("0x0" === e.getTargetSize().getSize() || e.getTargetSize().getSize() === t.getSize().getSize()))
});
return 0 < e.length ? {
adapterBid: t,
paymentRule: e[0]
} : {
adapterBid: t
}
}).filter(function(e) {
var t = e.adapterBid,
n = e.paymentRule;
return !!t.isDirect() || (void 0 === n || t.getCPM() >= n.getPaymentFloor())
});
l.filter(function(e) {
return S.a.mediationBidders.has(e.adapterBid.getBidder().toUpperCase())
}).forEach(function(e) {
R.add(e)
});
var f = l.filter(function(e) {
return !S.a.mediationBidders.has(e.adapterBid.getBidder().toUpperCase())
});
if (S.a.isShowcaseMode) return E.a.has("collapse-units") ? new C(new k({
ad: "<script>window.frameElement.parentNode.parentNode.removeChild(window.frameElement.parentNode)<\/script>",
adUnitCode: u,
bidder: "showcase",
cpm: 0,
size: "0x0",
timeToRespond: 0
}), i) : new C(new k({
ad: '<div style="' + [
["width", s - 10 + "px"],
["height", d - 10 + "px"],
["background", "#f2f2f2 url('https://hb.vntsm.com/assets/venatus_gscale.png')"],
["border", "5px dashed #e2e2e2"],
["background-repeat", "no-repeat"],
["background-position", "center"]
].map(function(e) {
return e[0] + ":" + e[1]
}).join(";") + '"></div>',
adUnitCode: u,
bidder: "showcase",
cpm: 0,
size: c,
timeToRespond: 0
}), i);
if (0 < f.length) {
var m = new P.a(f),
g = m.sort(function(e, t) {
return e.adapterBid.getAdjustedCPM() < t.adapterBid.getAdjustedCPM() ? 1 : -1
}).asArray(),
h = m.findOne(function(e) {
return e.adapterBid.isDirect()
});
return null === h && (h = g[0]), new C(h.adapterBid, i, h.paymentRule, g.slice(1).map(function(e) {
return e.adapterBid
}))
}
var b = w.get(n + "-" + t),
y = b && b.getAttribute("data-skip-psa");
return y || "" === a.getDefaultCreative().trim() ? !y && S.a.psaMap.has(c) ? new C(new k({
ad: S.a.psaMap.get(c),
adUnitCode: u,
bidder: "psa",
cpm: 0,
size: c,
timeToRespond: 0
}), i) : new C(new k({
ad: "\x3c!-- Blank --\x3e",
adUnitCode: u,
bidder: "blank",
cpm: 0,
size: c,
timeToRespond: 0
}), i) : new C(new k({
ad: a.getDefaultCreative(),
adUnitCode: u,
bidder: "default",
cpm: 0,
size: c,
timeToRespond: 0
}), i)
});
return t.some(function(e) {
return e.getWinningBid().isDirect() && "1x1" == e.getWinningBid().getSize().getSize()
}) && t.forEach(function(e) {
var t = w.get(e.getWinningBid().getPlacementPos() + "-" + e.getWinningBid().getPlacementId());
"atf-leaderboard" == t.getAttribute("data-display-type") && t.setAttribute("data-filter-out", "true")
}), t
}, N);
function N() {}
var B = s(8),
q = (z.prototype.getConfig = function() {
return this.config
}, z.prototype.getMediation = function() {
return this.mediation
}, z.prototype.getMediationRule = function() {
return this.mediationRule
}, z.prototype.complete = function() {
var e;
null !== this.onComplete && (e = this.onComplete, this.onComplete = null, e())
}, z);
function z(e, t, n, r) {
var i = {};
try {
i = JSON.parse(t.getAdapterTag())
} catch (e) {
T.a.error("Failed to parse mediation config: " + t.getAdapterTag())
}
void 0 !== n && n.forEach(function(e, t) {
i[t] = e
}), this.onComplete = void 0 !== r ? r : null, this.config = i, this.mediation = e, this.mediationRule = t
}
var M = (V.add = function(e, t, n) {
void 0 === n && (n = "any"), this.scheduledFunctions.push({
f: e,
when: (new Date).getTime() + t,
called: !1,
name: n
})
}, V.process = function() {
for (var e = 0; e < this.scheduledFunctions.length; e++)
if ((new Date).getTime() >= this.scheduledFunctions[e].when) {
try {
this.scheduledFunctions[e].f()
} catch (e) {}
this.scheduledFunctions[e].called = !0
} this.scheduledFunctions = this.scheduledFunctions.filter(function(e) {
return !e.called
})
}, V.itemsScheduled = function(e) {
if (void 0 === e) return this.scheduledFunctions.length;
for (var t = 0, n = 0; n < this.scheduledFunctions.length; n++) this.scheduledFunctions[n].name == e && t++;
return t
}, V.clearAll = function() {
this.scheduledFunctions = []
}, V.clearByName = function(t) {
this.scheduledFunctions = this.scheduledFunctions.filter(function(e) {
return e.name != t
})
}, V.scheduledFunctions = [], V);
function V() {}
var L, F, W = (L = function(e, t) {
return (L = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
L(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
}),
G = function() {
return (G = Object.assign || function(e) {
for (var t, n = 1, r = arguments.length; n < r; n++)
for (var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
return e
}).apply(this, arguments)
},
H = (W(J, F = q), J.prototype.run = function() {
var c = this,
u = this,
p = this.getConfig();
return new Promise(function(s, d) {
I.a.get().getConsentData(function(e) {
var t, n = j.a.getTopMostParentDocument(),
r = G({
pid: "",
sid: "",
playerContainerId: "",
playerId: "",
playerWidth: 480,
playerHeight: 300,
execution: "outstream",
placement: "slider",
playInitiation: "auto",
volume: 0,
trackImp: "",
trackClick: "",
custom1: "",
custom2: "",
custom3: j.a.hasFocus() ? "1" : "0",
pubMacros: "",
gdpr: e.gdprApplies ? "1" : "0",
gdprcs: e.consentData,
dfp: !1,
close: !1,
closeDelay: 0,
lkqdId: w.a.createGUID()
}, p.props),
i = {
slot: n.getElementById(r.playerContainerId),
videoSlot: n.getElementById(r.playerId),
videoSlotCanAutoPlay: !0,
lkqdSettings: r
},
a = n.createElement("iframe");
a.id = r.lkqdId, a.name = r.lkqdId, a.style.display = "none";
function o() {
var e = a.contentWindow.document.createElement("script");
e.src = "https://ad.lkqd.net/vpaid/formats.js?pid=" + r.pid + "&sid=" + r.sid, e.onerror = function() {
return d(u)
}, e.onload = function() {
(t = a.contentWindow.getVPAIDAd()).subscribe(function() {
t.startAd()
}, "AdLoaded"), t.subscribe(function() {
var e = void 0 === p.frequency_cap_seconds ? S.a.lkqdDefaultRefreshMS : 1e3 * p.frequency_cap_seconds;
M.add(function() {
return c.run().catch(function() {
return T.a.debug("LKQD - No Demand")
})
}, e, "refresh"), s(u)
}, "AdImpression"), t.subscribe(function() {
d(u)
}, "AdError"), t.handshakeVersion("2.0"), t.initAd(r.playerWidth, r.playerHeight, "normal", 600, "", i)
}, a.contentWindow.document.body.appendChild(e)
}
a.onload = o, a.onerror = o, n.documentElement.appendChild(a)
})
})
}, J);
function J() {
return null !== F && F.apply(this, arguments) || this
}
var Y, K, X = s(16),
Q = (Y = function(e, t) {
return (Y = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
Y(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
}),
Z = function() {
return (Z = Object.assign || function(e) {
for (var t, n = 1, r = arguments.length; n < r; n++)
for (var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
return e
}).apply(this, arguments)
},
ee = (Q(te, K = q), te.prototype.run = function() {
var c = this,
u = this,
p = this.getConfig();
return new Promise(function(s, d) {
I.a.get().getConsentData(function(e) {
var t, n, r, i, a, o;
null === X.a.get("outstream-slider") ? (t = j.a.getTopMostParentDocument(), n = Z({
pid: "",
sid: "",
playerContainerId: "",
playerId: "",
playerWidth: 480,
playerHeight: 300,
execution: "outstream",
placement: "slider",
playInitiation: "auto",
volume: 0,
trackImp: "",
trackClick: "",
custom1: "",
custom2: "",
custom3: "",
pubMacros: "",
gdpr: e.gdprApplies ? "1" : "0",
gdprcs: e.consentData,
dfp: !1,
close: !1,
closeDelay: 0,
lkqdId: w.a.createGUID()
}, p.props), i = {
slot: t.getElementById(n.playerContainerId),
videoSlot: t.getElementById(n.playerId),
videoSlotCanAutoPlay: !0,
lkqdSettings: n
}, (a = t.createElement("iframe")).id = n.lkqdId, a.name = n.lkqdId, a.style.display = "none", o = function() {
var e = a.contentWindow.document.createElement("script");
e.src = "https://ad.lkqd.net/vpaid/formats.js?pid=" + n.pid + "&sid=" + n.sid, e.onload = function() {
(r = a.contentWindow.getVPAIDAd()).subscribe(function() {
r.startAd()
}, "AdLoaded"), r.subscribe(function() {
c.complete()
}, "AdPaused"), r.subscribe(function() {
c.complete()
}, "AdStopped"), r.subscribe(function() {
c.complete()
}, "AdSkipped"), r.subscribe(function() {
void 0 !== p.frequency_cap_seconds && X.a.set("outstream-slider", "cap", p.frequency_cap_seconds - 10), s(u)
}, "AdImpression"), r.subscribe(function() {
d(u)
}, "AdError"), r.handshakeVersion("2.0"), r.initAd(n.playerWidth, n.playerHeight, "normal", 600, "", i)
}, a.contentWindow.document.body.appendChild(e)
}, a.onload = o, a.onerror = o, t.documentElement.appendChild(a)) : d(u)
})
})
}, te);
function te() {
return null !== K && K.apply(this, arguments) || this
}
var ne, re, ie = s(3),
ae = ((ne = function(e, t) {
return (ne = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
ne(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(oe, re = q), oe.prototype.createPlacement = function(e, t, n) {
var r = Object(ie.a)("<div>").attr("class", "vm-placement").attr("data-id", t).attr("data-ref", "float");
return void 0 !== n && r.attr("data-fixed-size", n.getSize()), r.css("min-width", 160), r.css("min-height", 250), r.css("max-width", 300), r.css("margin", "0 auto"), Object(ie.a)(e).append(r), r[0]
}, oe.prototype.stickyFloat = function(e) {
var t = this.getConfig(),
n = j.a.getTopMostParentWindow(),
r = n.document,
i = r.body,
a = Object(ie.a)(r).scrollTop(),
o = Object(ie.a)(r).height(),
s = void 0 === t.fixed_top ? this.defaultFixedTop : Number(t.fixed_top),
d = void 0 === t.page_top ? this.defaultPageTop : Number(t.page_top),
c = void 0 === t.page_bottom ? this.defaultPageBottom : Number(t.page_bottom);
try {
d = parseInt(y.a.get("data-top-space"))
} catch (e) {
T.a.verbose("Page top space has not been defined")
}
for (var u = Object(ie.a)(i).find(e), p = u.closest(".vm-skin"); Object(ie.a)(n).height() < u[0].clientHeight + s + this.defaultMargin;) u.children().last().remove();
d - s <= a ? (p.css("position", "fixed"), p.css("top", s)) : (p.css("position", "absolute"), p.css("top", d));
var l = null;
0 < p.length ? l = void 0 !== p[0].clientHeight ? p[0].clientHeight : p.height() : T.a.error("Could not find the .vm-skin"), o - l - c - s < a ? p.css("visibility", "hidden") : p.css("visibility", "visible")
}, oe.prototype.drawSkins = function() {
var e = this,
t = this.getConfig();
t.inViewRatio = "number" == typeof t.inViewRatio ? t.inViewRatio : .9, t.leftPlacements = "number" == typeof t.leftPlacements ? t.leftPlacements : 1, t.rightPlacements = "number" == typeof t.rightPlacements ? t.rightPlacements : void 0 !== t.use_right && t.use_right ? 2 : 0;
var n = void 0 === t.z_index ? this.defaultZIndex : Number(t.z_index),
r = j.a.getTopMostParentWindow(),
i = r.document.body,
a = Object(ie.a)(r).width(),
o = void 0 === t.page_top ? this.defaultPageTop : Number(t.page_top);
try {
o = parseInt(y.a.get("data-top-space"))
} catch (e) {
T.a.verbose("Page top space has not been defined")
}
var s, d = null;
"string" == typeof t.content_container ? 0 < (s = Object(ie.a)(i).find(t.content_container)).length ? d = void 0 !== s[0].clientWidth ? s[0].clientWidth : s.width() : T.a.error("Could not find the content container") : d = t.content_width;
try {
d = parseInt(y.a.get("data-content-width"))
} catch (e) {
T.a.info("Page content width has not been defined")
}
var c, u = (c = d, (c += "").match(/\%$/) ? ((100 - parseInt(c)) / 2).toFixed(0) + "%" : ((a - parseInt(c)) / 2).toFixed(0) + "px");
if (T.a.info("Float Skin Width Requested @ " + u), 0 < Object(ie.a)(i).find(".vm-skin").length) {
0 < t.leftPlacements && ((l = Object(ie.a)(i).find(".vm-skin-left")).css("width", u), l.outerWidth() > 300 * t.inViewRatio ? l.show() : l.hide()), 0 < t.rightPlacements && ((g = Object(ie.a)(i).find(".vm-skin-right")).css("width", u), g.outerWidth() > 300 * t.inViewRatio ? g.show() : g.hide())
} else {
var p = [];
if (0 < t.leftPlacements) {
var l = Object(ie.a)("<div>").addClass("vm-skin vm-skin-left").css("width", u).css("margin-top", this.defaultMargin).css("top", o).css("left", 0).css("position", "absolute").css("overflow", "hidden").css("z-index", n);
Object(ie.a)(i).append(l);
var f = Object(ie.a)("<div>").addClass("vm-skin-left-ads-container").css("top", 0).css("position", "relative").css("overflow", "hidden");
if (l.append(f), l.outerWidth() > 300 * t.inViewRatio)
for (var m = 0; m < t.leftPlacements; m++) l.outerWidth() < 300 * t.inViewRatio ? p.push(this.createPlacement(f, t.linked_placement_id, new v.a("160x600"))) : p.push(this.createPlacement(f, t.linked_placement_id)), f.append(Object(ie.a)("<div>").css("height", "20px").html("\x3c!-- Spacer --\x3e&nbsp;"))
}
if (0 < t.rightPlacements) {
var g = Object(ie.a)("<div>").addClass("vm-skin vm-skin-right").css("width", u).css("margin-top", this.defaultMargin).css("top", o).css("right", 0).css("position", "absolute").css("overflow", "hidden").css("z-index", n);
Object(ie.a)(i).append(g);
var h = Object(ie.a)("<div>").addClass("vm-skin-right-ads-container").css("top", 0).css("position", "relative").css("overflow", "hidden");
if (g.append(h), g.outerWidth() > 300 * t.inViewRatio)
for (m = 0; m < t.rightPlacements; m++) g.outerWidth() < 300 * t.inViewRatio ? p.push(this.createPlacement(h, t.linked_placement_id, new v.a("160x600"))) : p.push(this.createPlacement(h, t.linked_placement_id)), h.append(Object(ie.a)("<div>").css("height", "20px").html("\x3c!-- Spacer --\x3e&nbsp;"))
}
0 < p.length && (Un.addPlacements(p, this.getMediation().getHeaderBiddingConfig(), {
skipPsa: !0,
dfpFlags: new A.a([
["st_ty", "vert"]
])
}), Object(ie.a)(r).on("resize", function() {
e.drawSkins()
}))
}
"true" === t.sticky && (0 < t.leftPlacements && (this.stickyFloat(".vm-skin-left-ads-container"), Object(ie.a)(r).on("scroll", function() {
e.stickyFloat(".vm-skin-left-ads-container")
})), 0 < t.rightPlacements && (this.stickyFloat(".vm-skin-right-ads-container"), Object(ie.a)(r).on("scroll", function() {
e.stickyFloat(".vm-skin-right-ads-container")
})))
}, oe.prototype.run = function() {
return this.drawSkins(), Promise.resolve(this)
}, oe);
function oe() {
var e = null !== re && re.apply(this, arguments) || this;
return e.defaultMargin = 10, e.defaultPageTop = 100, e.defaultPageBottom = 0, e.defaultFixedTop = 0, e.defaultZIndex = 997, e
}
var se, de, ce = ((se = function(e, t) {
return (se = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
se(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(ue, de = q), ue.prototype.createPlacement = function(e, t, n) {
var r = Object(ie.a)("<div>").attr("class", "vm-placement").attr("data-id", t).attr("data-ref", "float");
return void 0 !== n && r.attr("data-fixed-size", n.getSize()), r.css("min-width", 160), r.css("min-height", 250), r.css("max-width", 300), r.css("margin", "0 auto"), Object(ie.a)(e).append(r), r[0]
}, ue.prototype.stickyFloat = function(e) {
var t = this.getConfig(),
n = j.a.getTopMostParentWindow(),
r = n.document,
i = r.body,
a = Object(ie.a)(r).scrollTop(),
o = Object(ie.a)(r).height(),
s = void 0 === t.fixed_top ? this.defaultFixedTop : Number(t.fixed_top),
d = void 0 === t.page_top ? this.defaultPageTop : Number(t.page_top),
c = void 0 === t.page_bottom ? this.defaultPageBottom : Number(t.page_bottom);
try {
d = parseInt(y.a.get("data-top-space"))
} catch (e) {
T.a.verbose("Page top space has not been defined")
}
for (var u = Object(ie.a)(i).find(e), p = u.closest(".vm-skin"); Object(ie.a)(n).height() < u[0].clientHeight + s + this.defaultMargin;) u.children().last().remove();
d - s <= a ? (p.css("position", "fixed"), p.css("top", s)) : (p.css("position", "absolute"), p.css("top", d));
var l = null;
0 < p.length ? l = void 0 !== p[0].clientHeight ? p[0].clientHeight : p.height() : T.a.error("Could not find the .vm-skin"), o - l - c - s < a ? p.css("visibility", "hidden") : p.css("visibility", "visible")
}, ue.prototype.drawSkins = function() {
var e = this,
t = this.getConfig();
t.inViewRatio = 1, t.leftPlacements = "number" == typeof t.leftPlacements ? t.leftPlacements : 1, t.rightPlacements = "number" == typeof t.rightPlacements ? t.rightPlacements : void 0 !== t.use_right && t.use_right ? 2 : 0;
var n = void 0 === t.z_index ? this.defaultZIndex : Number(t.z_index),
r = j.a.getTopMostParentWindow(),
i = r.document.body,
a = Object(ie.a)(r).width(),
o = void 0 === t.page_top ? this.defaultPageTop : Number(t.page_top);
try {
o = parseInt(y.a.get("data-top-space"))
} catch (e) {
T.a.verbose("Page top space has not been defined")
}
var s, d = null;
"string" == typeof t.content_container ? 0 < (s = Object(ie.a)(i).find(t.content_container)).length ? d = void 0 !== s[0].clientWidth ? s[0].clientWidth : s.width() : T.a.error("Could not find the content container") : d = t.content_width;
try {
d = parseInt(y.a.get("data-content-width"))
} catch (e) {
T.a.info("Page content width has not been defined")
}
var c, u = (c = d, (c += "").match(/\%$/) ? ((100 - parseInt(c)) / 2).toFixed(0) + "%" : ((a - parseInt(c)) / 2).toFixed(0) + "px");
if (T.a.info("Float Skin Width Requested @ " + u), 0 < Object(ie.a)(i).find(".vm-skin").length) {
0 < t.leftPlacements && ((f = Object(ie.a)(i).find(".vm-skin-left")).css("width", u), f.outerWidth() > 300 * t.inViewRatio ? f.show() : f.hide()), 0 < t.rightPlacements && ((h = Object(ie.a)(i).find(".vm-skin-right")).css("width", u), h.outerWidth() > 300 * t.inViewRatio ? h.show() : h.hide())
} else {
var p, l = [];
if (0 < t.leftPlacements) {
var f = Object(ie.a)("<div>").addClass("vm-skin vm-skin-left").css("width", u).css("margin-top", this.defaultMargin).css("top", o).css("left", 0).css("position", "absolute").css("overflow", "hidden").css("z-index", n);
Object(ie.a)(i).append(f);
var m = Object(ie.a)("<div>").addClass("vm-skin-left-ads-container").css("top", 0).css("position", "relative").css("overflow", "hidden");
if (f.append(m), f.outerWidth() > 300 * t.inViewRatio)
for (var g = 0; g < t.leftPlacements; g++) f.outerWidth() < 300 * t.inViewRatio ? l.push(this.createPlacement(m, t.linked_placement_id, new v.a("160x600"))) : l.push(this.createPlacement(m, t.linked_placement_id)), m.append(Object(ie.a)("<div>").css("height", "20px").html("\x3c!-- Spacer --\x3e&nbsp;"))
}
if (0 < t.rightPlacements) {
var h = Object(ie.a)("<div>").addClass("vm-skin vm-skin-right").css("width", u).css("margin-top", this.defaultMargin).css("top", o).css("right", 0).css("position", "absolute").css("overflow", "hidden").css("z-index", n);
Object(ie.a)(i).append(h);
var b = Object(ie.a)("<div>").addClass("vm-skin-right-ads-container").css("top", 0).css("position", "relative").css("overflow", "hidden");
if (h.append(b), h.outerWidth() > 300 * t.inViewRatio)
for (g = 0; g < t.rightPlacements; g++) h.outerWidth() < 300 * t.inViewRatio ? l.push(this.createPlacement(b, t.linked_placement_id, new v.a("160x600"))) : l.push(this.createPlacement(b, t.linked_placement_id)), b.append(Object(ie.a)("<div>").css("height", "20px").html("\x3c!-- Spacer --\x3e&nbsp;"))
}
0 < l.length && (Un.addPlacements(l, this.getMediation().getHeaderBiddingConfig(), {
skipPsa: !0,
dfpFlags: new A.a([
["st_ty", "vert"]
])
}), p = r.outerWidth * r.outerHeight, Object(ie.a)(r).on("resize", function() {
r.outerWidth * r.outerHeight != p && (T.a.warn("Removing skins!"), Object(ie.a)(i).find(".vm-skin").remove())
}))
}
"true" === t.sticky && (0 < t.leftPlacements && (this.stickyFloat(".vm-skin-left-ads-container"), Object(ie.a)(r).on("scroll", function() {
e.stickyFloat(".vm-skin-left-ads-container")
})), 0 < t.rightPlacements && (this.stickyFloat(".vm-skin-right-ads-container"), Object(ie.a)(r).on("scroll", function() {
e.stickyFloat(".vm-skin-right-ads-container")
})))
}, ue.prototype.run = function() {
return this.drawSkins(), Promise.resolve(this)
}, ue);
function ue() {
var e = null !== de && de.apply(this, arguments) || this;
return e.defaultMargin = 10, e.defaultPageTop = 100, e.defaultPageBottom = 0, e.defaultFixedTop = 0, e.defaultZIndex = 997, e
}
s(34);
var pe, le, fe = [],
me = "ResizeObserver loop completed with undelivered notifications.";
(le = pe = pe || {}).BORDER_BOX = "border-box", le.CONTENT_BOX = "content-box", le.DEVICE_PIXEL_CONTENT_BOX = "device-pixel-content-box";
var ge = (he.prototype.toJSON = function() {
var e = this;
return {
x: e.x,
y: e.y,
top: e.top,
right: e.right,
bottom: e.bottom,
left: e.left,
width: e.width,
height: e.height
}
}, he.fromRect = function(e) {
return new he(e.x, e.y, e.width, e.height)
}, he);
function he(e, t, n, r) {
return this.x = e, this.y = t, this.width = n, this.height = r, this.top = this.y, this.left = this.x, this.bottom = this.top + this.height, this.right = this.left + this.width, Object.freeze(this)
}
function be(e) {
return e instanceof SVGElement && "getBBox" in e
}
function ye(e) {
if (be(e)) {
var t = e.getBBox(),
n = t.width,
r = t.height;
return !n && !r
}
var i = e.offsetWidth,
a = e.offsetHeight;
return !(i || a || e.getClientRects().length)
}
function ve(e) {
var t, n = null === (t = null === e || void 0 === e ? void 0 : e.ownerDocument) || void 0 === t ? void 0 : t.defaultView;
return !!(n && e instanceof n.Element)
}
function we(e) {
return parseFloat(e || "0")
}
function Ie(e, t, n) {
return void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === n && (n = !1), Object.freeze({
inlineSize: (n ? t : e) || 0,
blockSize: (n ? e : t) || 0
})
}
function Te(e, t) {
if (void 0 === t && (t = !1), xe.has(e) && !t) return xe.get(e);
if (ye(e)) return xe.set(e, Ue), Ue;
var n = getComputedStyle(e),
r = be(e) && e.ownerSVGElement && e.getBBox(),
i = !Pe && "border-box" === n.boxSizing,
a = De.test(n.writingMode || ""),
o = !r && Re.test(n.overflowY || ""),
s = !r && Re.test(n.overflowX || ""),
d = r ? 0 : we(n.paddingTop),
c = r ? 0 : we(n.paddingRight),
u = r ? 0 : we(n.paddingBottom),
p = r ? 0 : we(n.paddingLeft),
l = r ? 0 : we(n.borderTopWidth),
f = r ? 0 : we(n.borderRightWidth),
m = r ? 0 : we(n.borderBottomWidth),
g = p + c,
h = d + u,
b = (r ? 0 : we(n.borderLeftWidth)) + f,
y = l + m,
v = s ? e.offsetHeight - y - e.clientHeight : 0,
w = o ? e.offsetWidth - b - e.clientWidth : 0,
I = i ? g + b : 0,
T = i ? h + y : 0,
S = r ? r.width : we(n.width) - I - w,
k = r ? r.height : we(n.height) - T - v,
j = S + g + w + b,
A = k + h + v + y,
E = Object.freeze({
devicePixelContentBoxSize: Ie(Math.round(S * devicePixelRatio), Math.round(k * devicePixelRatio), a),
borderBoxSize: Ie(j, A, a),
contentBoxSize: Ie(S, k, a),
contentRect: new ge(p, d, S, k)
});
return xe.set(e, E), E
}
function Se(e, t, n) {
var r = Te(e, n),
i = r.borderBoxSize,
a = r.contentBoxSize,
o = r.devicePixelContentBoxSize;
switch (t) {
case pe.DEVICE_PIXEL_CONTENT_BOX:
return o;
case pe.BORDER_BOX:
return i;
default:
return a
}
}
function ke(e) {
if (ye(e)) return 1 / 0;
for (var t = 0, n = e.parentNode; n;) t += 1, n = n.parentNode;
return t
}
function je(n) {
fe.forEach(function(t) {
t.activeTargets.splice(0, t.activeTargets.length), t.skippedTargets.splice(0, t.skippedTargets.length), t.observationTargets.forEach(function(e) {
e.isActive() && (ke(e.target) > n ? t.activeTargets.push(e) : t.skippedTargets.push(e))
})
})
}
function Ae() {
var e, t = 0;
for (je(t); fe.some(function(e) {
return 0 < e.activeTargets.length
});) t = function() {
var i = 1 / 0,
t = [];
fe.forEach(function(e) {
var r;
0 !== e.activeTargets.length && (r = [], e.activeTargets.forEach(function(e) {
var t = new Ne(e.target),
n = ke(e.target);
r.push(t), e.lastReportedSize = Se(e.target, e.observedBox), n < i && (i = n)
}), t.push(function() {
e.callback.call(e.observer, r, e.observer)
}), e.activeTargets.splice(0, e.activeTargets.length))
});
for (var e = 0, n = t; e < n.length; e++) {
(0, n[e])()
}
return i
}(), je(t);
return fe.some(function(e) {
return 0 < e.skippedTargets.length
}) && ("function" == typeof ErrorEvent ? e = new ErrorEvent("error", {
message: me
}) : ((e = document.createEvent("Event")).initEvent("error", !1, !1), e.message = me), window.dispatchEvent(e)), 0 < t
}
function Ee(e) {
var t, n;
_e || (t = 0, n = document.createTextNode(""), new MutationObserver(function() {
return Be.splice(0).forEach(function(e) {
return e()
})
}).observe(n, {
characterData: !0
}), _e = function() {
n.textContent = "" + (t ? t-- : t++)
}), Be.push(e), _e()
}
function Oe(e) {
return void 0 === e && (e = 0), Date.now() + e
}
var _e, Ce = "undefined" != typeof window ? window : {},
xe = new WeakMap,
Re = /auto|scroll/,
De = /^tb|vertical/,
Pe = /msie|trident/i.test(Ce.navigator && Ce.navigator.userAgent),
Ue = Object.freeze({
devicePixelContentBoxSize: Ie(),
borderBoxSize: Ie(),
contentBoxSize: Ie(),
contentRect: new ge(0, 0, 0, 0)
}),
Ne = function(e) {
var t = Te(e);
this.target = e, this.contentRect = t.contentRect, this.borderBoxSize = [t.borderBoxSize], this.contentBoxSize = [t.contentBoxSize], this.devicePixelContentBoxSize = [t.devicePixelContentBoxSize]
},
Be = [],
qe = 0,
ze = {
attributes: !0,
characterData: !0,
childList: !0,
subtree: !0
},
Me = ["resize", "load", "transitionend", "animationend", "animationstart", "animationiteration", "keyup", "keydown", "mouseup", "mousedown", "mouseover", "mouseout", "blur", "focus"],
Ve = !1;
function Le() {
var e = this;
this.stopped = !0, this.listener = function() {
return e.schedule()
}
}
function Fe(e) {
!qe && 0 < e && We.start(), (qe += e) || We.stop()
}
var We = new(Le.prototype.run = function(t) {
var n, e, r = this;
void 0 === t && (t = 250), Ve || (Ve = !0, n = Oe(t), e = function() {
var e = !1;
try {
e = Ae()
} finally {
if (Ve = !1, t = n - Oe(), !qe) return;
e ? r.run(1e3) : 0 < t ? r.run(t) : r.start()
}
}, Ee(function() {
requestAnimationFrame(e)
}))
}, Le.prototype.schedule = function() {
this.stop(), this.run()
}, Le.prototype.observe = function() {
function e() {
return t.observer && t.observer.observe(document.body, ze)
}
var t = this;
document.body ? e() : Ce.addEventListener("DOMContentLoaded", e)
}, Le.prototype.start = function() {
var t = this;
this.stopped && (this.stopped = !1, this.observer = new MutationObserver(this.listener), this.observe(), Me.forEach(function(e) {
return Ce.addEventListener(e, t.listener, !0)
}))
}, Le.prototype.stop = function() {
var t = this;
this.stopped || (this.observer && this.observer.disconnect(), Me.forEach(function(e) {
return Ce.removeEventListener(e, t.listener, !0)
}), this.stopped = !0)
}, Le),
Ge = (He.prototype.isActive = function() {
var e, t = Se(this.target, this.observedBox, !0);
return e = this.target, be(e) || function(e) {
switch (e.tagName) {
case "INPUT":
if ("image" !== e.type) break;
case "VIDEO":
case "AUDIO":
case "EMBED":
case "OBJECT":
case "CANVAS":
case "IFRAME":
case "IMG":
return !0
}
return !1
}(e) || "inline" !== getComputedStyle(e).display || (this.lastReportedSize = t), this.lastReportedSize.inlineSize !== t.inlineSize || this.lastReportedSize.blockSize !== t.blockSize
}, He);
function He(e, t) {
this.target = e, this.observedBox = t || pe.CONTENT_BOX, this.lastReportedSize = {
inlineSize: 0,
blockSize: 0
}
}
function Je(e, t) {
for (var n = 0; n < e.length; n += 1)
if (e[n].target === t) return n;
return -1
}
var Ye = function(e, t) {
this.activeTargets = [], this.skippedTargets = [], this.observationTargets = [], this.observer = e, this.callback = t
},
Ke = new WeakMap,
Xe = (Qe.connect = function(e, t) {
var n = new Ye(e, t);
Ke.set(e, n)
}, Qe.observe = function(e, t, n) {
var r = Ke.get(e),
i = 0 === r.observationTargets.length;
Je(r.observationTargets, t) < 0 && (i && fe.push(r), r.observationTargets.push(new Ge(t, n && n.box)), Fe(1), We.schedule())
}, Qe.unobserve = function(e, t) {
var n = Ke.get(e),
r = Je(n.observationTargets, t),
i = 1 === n.observationTargets.length;
0 <= r && (i && fe.splice(fe.indexOf(n), 1), n.observationTargets.splice(r, 1), Fe(-1))
}, Qe.disconnect = function(t) {
var n = this,
e = Ke.get(t);
e.observationTargets.slice().forEach(function(e) {
return n.unobserve(t, e.target)
}), e.activeTargets.splice(0, e.activeTargets.length)
}, Qe);
function Qe() {}
var $e = (Ze.prototype.observe = function(e, t) {
if (0 === arguments.length) throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");
if (!ve(e)) throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");
Xe.observe(this, e, t)
}, Ze.prototype.unobserve = function(e) {
if (0 === arguments.length) throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");
if (!ve(e)) throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");
Xe.unobserve(this, e)
}, Ze.prototype.disconnect = function() {
Xe.disconnect(this)
}, Ze.toString = function() {
return "function ResizeObserver () { [polyfill code] }"
}, Ze);
function Ze(e) {
if (0 === arguments.length) throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");
if ("function" != typeof e) throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");
Xe.connect(this, e)
}
function et(e) {
return null !== e && "IFRAME" === e.tagName
}
var tt = window.ResizeObserver || $e,
nt = (rt.nodesValidates = function(e, t) {
var n = 0;
if (n < e.length) return !!t(e[n])
}, rt.subscribe = function(i, a, o, s, d, e) {
var c;
MutationObserver ? (c = new MutationObserver(function(e) {
for (var t = 0, n = e; t < n.length; t++) {
var r = n[t];
"attributes" === r.type && s && (s(r.target) ? o(1) : o(0)), "childList" === r.type && (a ? !Object(ie.a)(i).find(a) || s && !rt.nodesValidates(r.addedNodes, s) || (d || c.disconnect(), o(i.children.length)) : (d || c.disconnect(), s && !rt.nodesValidates(r.addedNodes, s) || o(i.children.length)))
}
})).observe(i, {
attributes: !0,
childList: !0,
characterData: !1,
subtree: e
}) : o(0)
}, rt.checkNo1x1Iframe = function(e) {
try {
if (et(e)) {
if ("1" === e.getAttribute("width") && "1" === e.getAttribute("height")) return !1
} else {
var t = e.querySelector("iframe");
if (t && "1" === t.getAttribute("width") && "1" === t.getAttribute("height")) return !1
}
return !0
} catch (e) {
return !0
}
}, rt.checkNoDFPRejectCode = function(e) {
try {
var t = void 0;
return (t = et(e) ? e.contentWindow.document.querySelector(".GoogleActiveViewElement script") : e.querySelector("iframe").contentWindow.document.querySelector(".GoogleActiveViewElement script")) ? -1 === t.innerHTML.substr(0, 200).indexOf('call: "dfp-slot-reject"') : !0
} catch (e) {
return !0
}
}, rt.checkNoDFPNotLoadedIframe = function(e) {
try {
var t = void 0;
return !(t = et(e) ? e : e.querySelector("iframe")) || "false" !== t.getAttribute("data-load-complete")
} catch (e) {
return !0
}
}, rt.checkNoDFPEmptyIframe = function(e) {
try {
var t = void 0;
return !(t = et(e) ? e : e.querySelector("iframe")) || "none" !== t.style.display
} catch (e) {
return !0
}
}, rt.subscribeResize = function(e, o) {
if (e) {
var t = new tt(function(e) {
for (var t = 0, n = e; t < n.length; t++) {
var r = n[t].contentRect,
i = r.width,
a = r.height;
o(i, a)
}
});
return t.observe(e),
function() {
t.unobserve(e)
}
}
}, rt);
function rt() {}
var it = (at.on = function(t, n, r) {
var i, a, o, s;
void 0 === r && (r = !1);
function d() {
i = null, r || (s = t.apply(o, a), o = a = null)
}
function e() {
i && (s = t.apply(o, a), o = a = null, clearTimeout(i), i = null)
}
var c;
return (c = function() {
o = this, a = arguments;
var e = r && !i;
return i = i || window.setTimeout(d, n), e && (s = t.apply(o, a), o = a = null), s
}).clear = function() {
i && (clearTimeout(i), i = null)
}, c.flush = e, c
}, at);
function at() {}
var ot = s(20),
st = (dt.inlineCSS = function(e, t) {
var n, r = e.document.getElementsByTagName("head")[0],
i = ot.a.getHash(t),
a = !1;
u.a.getChildrenElementsOfParentElement(r).forEach(function(e) {
e.getAttribute("hash") === i && (a = !0)
}), a || (n = e.document.createElement("style"), r.appendChild(n), n.appendChild(document.createTextNode(t)))
}, dt);
function dt() {}
var ct, ut = (ct = function(e, t) {
return (ct = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
ct(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
}),
pt = (lt.prototype.tryLock = function() {
return !this.locked && (this.locked = !0)
}, lt.prototype.unlock = function() {
this.locked = !1
}, lt);
function lt() {
this.locked = !1
}
var ft, mt = (ut(gt, ft = q), gt.prototype.createPlacement = function(e, t) {
var n = Object(ie.a)("<div>").attr("class", "vm-placement").attr("data-id", t).attr("data-ref", "footer");
return Object(ie.a)(e).append(n), n[0]
}, gt.prototype.removeFooter = function() {
this.unsubscribeResize && this.unsubscribeResize(), this.footerSpaceElement && (this.footerSpaceElement.style.marginBottom = "auto"), Object(ie.a)(j.a.getTopMostParentBody()).find("div.vm-footer").remove()
}, Object.defineProperty(gt.prototype, "placementHTMLElement", {
get: function() {
var e = this.footerLayoutContainer.find(".vm-placement").get();
return e ? e[0] : null
},
enumerable: !1,
configurable: !0
}), gt.prototype.showFooter = function() {
this.footerLayoutContainer && (T.a.event("footer-show"), this.footerLayoutContainer.get()[0].style.display = "block")
}, gt.prototype.hideFooter = function() {
this.footerLayoutContainer && (T.a.event("footer-hide"), this.footerLayoutContainer.get()[0].style.display = "none", this.footerSpaceElement && (this.footerSpaceElement.style.marginBottom = "auto"))
}, gt.prototype.checkViewableDom = function(e) {
return !e.classList.contains("vm-debug-overlay") && (nt.checkNoDFPRejectCode(e) && nt.checkNo1x1Iframe(e) && nt.checkNoDFPNotLoadedIframe(e) && nt.checkNoDFPEmptyIframe(e))
}, gt.prototype.onPlacementMount = function() {
var n = this;
this.placementHTMLElement && (nt.subscribe(this.placementHTMLElement, null, function(e) {
e ? n.showFooter() : n.hideFooter()
}, function(e) {
return n.checkViewableDom(e)
}, !0, !0), this.unsubscribeResize = nt.subscribeResize(this.footerContainer.get()[0].querySelector(".vm-placement"), function(e, t) {
return n.onFooterResizeDebounced(e, t)
}))
}, gt.prototype.onFooterResize = function(e, t) {
var n, r = j.a.getTopMostParentBody();
0 != Object(ie.a)(r).find(".vm-footer").length ? (this.footerSpaceElement || (0 < (n = Object(ie.a)(r).find("footer").get()).length ? this.footerSpaceElement = n[n.length - 1] : this.footerSpaceElement = r), this.footerSpaceElement && (this.footerSpaceElement.style.marginBottom = t + "px")) : T.a.warn("Preventing drawing footer space in a not top body")
}, gt.prototype.onFooterMount = function() {
var e, t = this;
this.placementHTMLElement ? (this.onPlacementMount(), "" !== this.placementHTMLElement.innerHTML && this.checkViewableDom(this.placementHTMLElement) ? this.showFooter() : this.onPlacementMount()) : (e = this.footerContainer, nt.subscribe(e && e[0], ".vm-placement", function() {
return t.onPlacementMount()
}, null, !0))
}, gt.prototype.drawFooter = function(e) {
var t, n, r, i, a, o, s = this,
d = this.getConfig(),
c = j.a.getTopMostParentBody(),
u = void 0 === d.z_index ? this.defaultZIndex : Number(d.z_index);
0 < Object(ie.a)(c).find(".vm-footer").length ? T.a.warn("Preventing drawing footer as it is already exists") : (st.inlineCSS(j.a.getTopMostParentWindow(), "\n .vm-footer-content {\n position: relative;\n width: 100% !important;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: reverse;\n -ms-flex-flow: row-reverse;\n flex-flow: row-reverse;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .vm-footer-close, .vm-footer-stub {\n margin: 12px;\n max-width: 20px;\n width: 20px;\n min-width: 20px;\n height: 20px;\n align-self: center;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n cursor: pointer;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n }\n .vm-footer iframe {display: block; margin: 0;} \n .vm-footer path {stroke-width: 1px;}\n .vm-footer .vm-placement {border: 0!important; margin:0!important; padding: 0!important;}\n @media screen and (max-width: 400px) {.vm-footer .vm-footer-close, .vm-footer-stub { margin: 3px; }}\n @media screen and (max-width: 370px) {.vm-footer .vm-footer-close, .vm-footer-stub { margin: 1px; }}\n @media screen and (max-width: 365px) {.vm-footer .vm-footer-close, .vm-footer-stub { display: none!important }}\n @media screen and (max-width: 400px) {.vm-placement {min-width: 320px}}\n "), t = Object(ie.a)("<div>").addClass("vm-footer-stub"), n = Object(ie.a)("<div>").addClass("vm-footer").css("bottom", 0).css("position", "fixed").css("display", "none").css("width", "100%").css("text-align", "center").css("background-color", "rgba(250, 250, 250, 0.9)").css("z-index", u).css("left", 0).css("right", 0), r = Object(ie.a)("<div>").addClass("vm-footer-content"), i = Object(ie.a)('<?xml version="1.0" encoding="UTF-8"?>\n <svg width="20px" height="20px" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n <g id="assets" transform="translate(-359.000000, -103.000000)">\n <polygon fill="#aaaaaa" points="372.152786 103 366.000599 109.153385 359.847214 103 359 103.847214 365.152187 110.000599 359 116.152786 359.847214 117 366.000599 110.846615 372.152786 117 373 116.152786 366.846615 110.000599 373 103.847214"></polygon>\n </g>\n </g>\n </svg>'), a = Object(ie.a)("<div>").addClass("vm-footer-close"), o = Object(ie.a)("<div>").addClass("vm-footer-close-button"), a.append(i), a.on("click", function() {
return s.removeFooter()
}), r.append(a), r.append(o), n.append(r), this.footerLayoutContainer = n, this.footerContainer = r, Object(ie.a)(c).append(n), Un.addPlacements([this.createPlacement(r, d.linked_placement_id)], this.getMediation().getHeaderBiddingConfig(), {
skipPsa: !0,
dfpFlags: new A.a([
["st_ty", "horb"]
])
}), r.append(t), nt.subscribe(Object(ie.a)(c)[0], ".vm-footer", function() {
return e()
}, null, !1, !0))
}, gt.prototype.drawLegacyFooter = function() {
var e, t, n = this,
r = this.getConfig(),
i = j.a.getTopMostParentBody(),
a = Object(ie.a)("<div>").addClass("vm-footer").css("left", "50%").css("transform", "translate(-50%)").css("bottom", 0).css("position", "fixed").css("z-index", 999999);
B.a.isDesktop() && (e = Object(ie.a)("<img>").attr("src", "https://hb.vntsm.com/assets/close.png"), t = Object(ie.a)("<div>").addClass("vm-footer-close-button").css("top", -22).css("right", 0).css("position", "absolute").css("cursor", "pointer").css("display", "none").append(e), e.on("click", function() {
return n.removeFooter()
}), a.append(t)), Object(ie.a)(i).append(a), Un.addPlacements([this.createPlacement(a, r.linked_placement_id)], this.getMediation().getHeaderBiddingConfig())
}, gt.prototype.run = function() {
var e = this;
return gt.lock.tryLock() ? this.drawFooter(function() {
gt.lock.unlock(), e.onFooterMount()
}) : T.a.warn("Locking draw footer until .vm-footer populated"), Promise.resolve(this)
}, gt.lock = new pt, gt);
function gt() {
var e = null !== ft && ft.apply(this, arguments) || this;
return e.defaultZIndex = 998, e.onFooterResizeDebounced = it.on(e.onFooterResize, 100), e
}
var ht = s(13),
bt = s(25),
yt = (vt.parse = function() {
var e;
return void 0 === this.parsed && (e = new bt(navigator.userAgent), this.parsed = {
browser_name: "string" == typeof e.getBrowser().name && 0 < e.getBrowser().name.length ? e.getBrowser().name.toLowerCase() : "unknown",
browser_version: "string" == typeof e.getBrowser().version && 0 < e.getBrowser().version.length ? e.getBrowser().version.toLowerCase() : "unknown",
device_type: "string" == typeof e.getDevice().type && 0 < e.getDevice().type.length ? e.getDevice().type.toLowerCase() : B.a.isMobile() ? "mobile" : "desktop",
os_name: "string" == typeof e.getOS().name && 0 < e.getOS().name.length ? e.getOS().name.toLowerCase() : "unknown",
os_version: "string" == typeof e.getOS().version && 0 < e.getOS().version.length ? e.getOS().version.toLowerCase() : "unknown"
}), this.parsed
}, vt);
function vt() {}
var wt = function() {
return (wt = Object.assign || function(e) {
for (var t, n = 1, r = arguments.length; n < r; n++)
for (var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
return e
}).apply(this, arguments)
},
It = (Tt.isLoaded = function() {
return this.isReady
}, Tt.onReady = function(e) {
this.isReady ? e(this.isAdblocked) : this.readyQ.push(e)
}, Tt.provideDynamicAdUnitMappings = function(e) {
for (var t, n = [], r = 0; r < e.length; r++) {
var i = e[r];
this.registeredAdUnitCodes.has(i.code) || (this.registeredAdUnitCodes.set(i.code, !0), n.push(i))
}
T.a.debug("Uponit - New ad unit mappings...", n), 0 < n.length && ((t = j.a.getTopMostParentWindow()).uponit = t.uponit || {
que: []
}).que.push(function() {
t.uponitVenatusFetchSlots(n)
})
}, Tt.injectCustomTargeting = function(f) {
var m = this,
e = j.a.getTopMostParentWindow(),
g = j.a.getTopMostParentDocument(),
t = e.uponit = e.uponit || {
que: []
};
t.que.push(function() {
t.addModifier("dfpTargeting", function(e, t, n) {
var r = null == n ? 0 : Number(n),
i = g.getElementById(t.getSlotElementId()),
a = i.getAttribute("data-pos") + "-" + i.getAttribute("data-id"),
o = m.counter.getOrElse(a, 0) + 1;
m.counter.set(a, o);
var s, d = e.hb_bidder && 0 < e.hb_bidder.length ? e.hb_bidder[0] : "blank",
c = f.getPlacement(i.getAttribute("data-id")).getSmallestSize().getSize(),
u = e.hb_size && 0 < e.hb_size.length ? e.hb_size[0] : c,
p = At.createDFPCustomProviderTargeting(St.UPONIT, f, new C(new k({
ad: "",
adUnitCode: a + "-" + o,
bidder: d,
cpm: r,
size: u,
timeToRespond: 0
}), []), i),
l = {};
for (s in p) p.hasOwnProperty(s) && (l[s] = [p[s] + ""]);
return wt(wt({}, e), l)
})
})
}, Tt.load = function() {
var t = this,
e = j.a.getTopMostParentWindow();
e.addEventListener("uponitInit", function(e) {
t.isReady = !0, t.isAdblocked = !0 === e.detail, t.readyQ.popEach(function(e) {
return e(t.isAdblocked)
})
}), d.a.loadJSIn(e, "https://mrb.upapi.net/org?o=5643766199222272")
}, Tt.init = function(e) {
var a = this;
j.a.getTopMostParentWindow().addEventListener("uponitRender", function(e) {
var t = e.detail,
n = t.adUnitCode.split("-"),
r = n[0] + "-" + n[1],
i = a.refreshCounter.getOrElse(r, 1);
a.refreshCounter.set(r, i + 1), T.a.debug("Bid has been won on Adblock traffic", t)
}), this.injectCustomTargeting(e), j.a.getTopMostParentWindow().uponitReady = !0
}, Tt.isReady = !1, Tt.isAdblocked = !1, Tt.readyQ = new f, Tt.counter = new A.a, Tt.registeredAdUnitCodes = new A.a, Tt.refreshCounter = new A.a, Tt);
function Tt() {}
var St, kt = function() {
return (kt = Object.assign || function(e) {
for (var t, n = 1, r = arguments.length; n < r; n++)
for (var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
return e
}).apply(this, arguments)
};
(St = St || {}).UPONIT = "uponit";
var jt = ["st_ty"],
At = (Et.processQueue = function() {
var e, t, n = [];
this.queue.popEach(function(e) {
return n.push(e)
}), 0 < n.length && (e = n[0].bidder.match(/^ab-/), t = function(e) {
ht.a.go({
method: ht.a.RequestMethod.POST,
url: e ? S.a.landscapeEndpoint + "?uponit=true&upapi=true" : S.a.landscapeEndpoint,
timeout: S.a.configTimeoutMS,
contentType: "application/json",
payload: JSON.stringify({
bulk: n
}),
success: function() {},
error: function() {
T.a.error("Failed to track landscape payload..."), T.a.error(n)
}
})
}, It.isLoaded() && e ? t(!0) : It.isLoaded() || t(!1))
}, Et.createDFPCustomProviderTargeting = function(e, t, n, r) {
var i = Et.createLandscapePayload(t, n, !0, r, {
allowed: 0,
total: 0
});
return {
cu_pr: e,
cu_pr_v: 1,
re_ve: i.release_version,
mo: i.mode,
ac_id: i.account_id,
si_id: i.site_id,
pl_id: i.placement_id,
co: i.country,
is_mo: i.is_mobile,
br_nm: i.browser_name,
de_ty: i.device_type,
os_nm: i.os_name,
is_ta: i.is_tab_active,
is_vi: i.is_viewable,
is_if: i.is_iframe_friendly,
pa_ty: i.payment_type,
fi: i.fixed,
pa_fl: i.payment_floor,
lo_in: i.loop_index,
gd_en: i.gdpr_enabled,
hb_bt: i.hbc_build_time,
ta_si: n.getWinningBid().getSize().getSize(),
rt_sh: t.getRTBRatio(),
di_sh: t.getDirectRatio(),
cu_bi: n.getWinningBid().getBidder(),
cu_cp: n.getWinningBid().getCPM(),
cu_si: n.getWinningBid().getSize().getSize()
}
}, Et.createDFPTargeting = function(i, a, o, s) {
return new Promise(function(r, e) {
I.a.get().getVendorConsent(function(e) {
var t = Et.createLandscapePayload(i, a, o, s, e),
n = jt.reduce(function(e, t) {
var n = s.getAttribute("data-dfp-param-" + t);
return n && (e[t] = n), e
}, {});
r(kt({
sv: 1,
re_ve: t.release_version,
mo: t.mode,
ac_id: t.account_id,
si_id: t.site_id,
pl_id: t.placement_id,
co: t.country,
is_mo: t.is_mobile,
br_nm: t.browser_name,
de_ty: t.device_type,
os_nm: t.os_name,
is_ta: t.is_tab_active,
is_vi: t.is_viewable,
is_if: t.is_iframe_friendly,
pa_ty: t.payment_type,
fi: t.fixed,
pa_fl: t.payment_floor,
lo_in: t.loop_index,
gd_en: t.gdpr_enabled,
hb_bt: t.hbc_build_time,
ta_si: a.getWinningBid().getSize().getSize(),
rt_sh: i.getRTBRatio(),
di_sh: i.getDirectRatio()
}, n))
})
})
}, Et.createLandscapePayload = function(e, t, n, r, i) {
var a = t.getWinningBid(),
o = t.getAppliedPaymentRule(),
s = yt.parse(),
d = "share",
c = 0,
u = It.isLoaded() ? .7 : "direct" === a.getWinType() ? e.getDirectRatio() : e.getRTBRatio(),
p = 0;
return void 0 !== o && (d = "SHARE" === o.getPaymentType() ? "share" : "fixed", c = o.getPaymentFixed(), u = o.getPaymentShare(), p = o.getPaymentFloor()), {
release_version: "d2d57cd".trim() + "-" + h.prebidVersion,
mode: y.a.get("data-mode"),
page_load_id: S.a.loadId,
is_render_success: n,
auction_id: t.getAuctionId(),
account_id: e.getAccountId(),
site_id: e.getSiteId(),
placement_id: a.getPlacementId(),
buyer_id: "string" == typeof a.getBuyerId() ? a.getBuyerId() : "",
deal_id: "string" == typeof a.getDealId() ? a.getDealId() : "",
creative_id: "string" == typeof a.getCreativeId() ? a.getCreativeId() : "",
country: e.getCurrentCountryCode(),
is_mobile: B.a.isMobile(),
browser_name: s.browser_name,
browser_version: s.browser_version,
device_type: s.device_type,
os_name: s.os_name,
os_version: s.os_version,
is_tab_active: j.a.hasFocus(),
is_viewable: j.a.isInView(r),
is_iframe_friendly: j.a.hasTopWindowAccess(),
url: j.a.getTopMostParentWindow().location.href,
bidder: a.getBidder(),
win_type: a.getWinType(),
cpm: a.getCPM(),
width: a.getSize().getWidth(),
height: a.getSize().getHeight(),
payment_type: d,
fixed: c,
share: u,
payment_floor: p,
loop_index: a.getLoopIndex(),
bid_landscape: t.getBidLandscape().map(function(e) {
return {
bidder: e.getBidder(),
width: e.getSize().getWidth(),
height: e.getSize().getHeight(),
buyer_id: "string" == typeof e.getBuyerId() ? e.getBuyerId() : "",
deal_id: "string" == typeof e.getDealId() ? e.getDealId() : "",
creative_id: "string" == typeof e.getCreativeId() ? e.getCreativeId() : "",
cpm: e.getCPM(),
time_to_respond: e.getTimeToRespond()
}
}),
gdpr_enabled: I.a.get().isGDPRRequired(),
gdpr_vendor_allowed: i.allowed,
gdpr_vendor_total: i.total,
use_confiant: !1,
hbc_build_time: e.getLastBuilt()
}
}, Et.send = function(t, n, r, i, e) {
var a = this;
void 0 === e && (e = !0), e ? I.a.get().getVendorConsent(function(e) {
a.queue.push(a.createLandscapePayload(t, n, r, i, e))
}) : this.queue.push(this.createLandscapePayload(t, n, r, i, {
allowed: 0,
total: 0
}))
}, Et.queue = new f, Et);
function Et() {}
var Ot, _t, Ct = ((Ot = function(e, t) {
return (Ot = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
Ot(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(xt, _t = q), xt.prototype.run = function() {
return $t.render(new A.a([
[this.getMediation().getPlacementPositionalId(), this.getMediation().getPlacementContainer()]
]), [new C(new k({
ad: this.getConfig().ad,
adUnitCode: this.getMediation().getPlacementInstanceId(),
bidder: this.getMediationRule().getAdapterName(),
cpm: this.getMediationRule().getAdapterCPM(),
size: "1x1",
timeToRespond: 0
}), [])], this.getMediation().getHeaderBiddingConfig(), this.getMediation().getRefreshConfig(), !1, !0), Promise.resolve(this)
}, xt);
function xt() {
return null !== _t && _t.apply(this, arguments) || this
}
var Rt, Dt, Pt = ((Rt = function(e, t) {
return (Rt = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
Rt(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(Ut, Dt = q), Ut.triggerAccept = function() {
Ut.eventTriggered = !0, Ut.accept(Ut.context)
}, Ut.triggerReject = function() {
Ut.eventTriggered = !0, Ut.reject(Ut.context)
}, Ut.detectAcceptance = function(e) {
void 0 === e && (e = 0), !Ut.eventTriggered && e < 1e3 && (u.a.getChildrenElementsOfParentElement(j.a.getTopMostParentBody()).forEach(function(e) {
"teads-inread sm-screen" === e.getAttribute("class") && Ut.triggerAccept()
}), Ut.eventTriggered || setTimeout(function() {
Ut.detectAcceptance(e + 1)
}, 100))
}, Ut.prototype.run = function() {
var n = this,
r = (Ut.context = this).getConfig();
return new Promise(function(e, t) {
Ut.accept = e, Ut.reject = t, T.a.debug("Requesting Teads Library"), $t.render(new A.a([
[n.getMediation().getPlacementPositionalId(), n.getMediation().getPlacementContainer()]
]), [new C(new k({
ad: '<script type="text/javascript" class="teads" src="https://a.teads.tv/page/' + r.id + '/tag" async="true"><\/script>',
adUnitCode: n.getMediation().getPlacementInstanceId(),
bidder: n.getMediationRule().getAdapterName(),
cpm: n.getMediationRule().getAdapterCPM(),
size: "1x1",
timeToRespond: 0
}), [])], n.getMediation().getHeaderBiddingConfig(), n.getMediation().getRefreshConfig(), !1, !0, !1), Ut.detectAcceptance()
})
}, Ut.eventTriggered = !1, Ut.context = null, Ut.accept = function() {}, Ut.reject = function() {}, Ut);
function Ut() {
return null !== Dt && Dt.apply(this, arguments) || this
}
var Nt, Bt, qt = ((Nt = function(e, t) {
return (Nt = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
Nt(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(zt, Bt = q), zt.prototype.run = function() {
var a = this,
o = this,
s = this.getConfig();
return new Promise(function(r, i) {
ht.a.go({
method: ht.a.RequestMethod.GET,
url: "https://publisher.streamspread.com/api/v2/viewports/" + s.id + "/status",
timeout: 2e3,
success: function(e, t, n) {
"active" === JSON.parse(t).status ? ($t.render(new A.a([
[a.getMediation().getPlacementPositionalId(), a.getMediation().getPlacementContainer()]
]), [new C(new k({
ad: '<div id="ss-player"></div>',
adUnitCode: a.getMediation().getPlacementInstanceId(),
bidder: a.getMediationRule().getAdapterName(),
cpm: a.getMediationRule().getAdapterCPM(),
size: "1x1",
timeToRespond: 0
}), [])], a.getMediation().getHeaderBiddingConfig(), a.getMediation().getRefreshConfig(), !1, !0, !0), M.add(function() {
return d.a.loadJSIn(j.a.getTopMostParentWindow(), "https://adc.streamspread.com/js/" + s.id + ".js")
}, 500), r(o)) : i(o)
},
error: function() {
return i(o)
}
})
})
}, zt);
function zt() {
return null !== Bt && Bt.apply(this, arguments) || this
}
var Mt, Vt, Lt = ((Mt = function(e, t) {
return (Mt = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
})(e, t)
}, function(e, t) {
function n() {
this.constructor = e
}
Mt(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
})(Ft, Vt = q), Ft.prototype.removeFooter = function() {
Object(ie.a)(j.a.getTopMostParentBody()).find("div.vm-taboola").remove()
}, Ft.prototype.run = function() {
var S = this,
k = this,
e = (this.getConfig(), [
["app.apikey", "d629a45a6c9eba2dcfae784fbad1c548dcbff7f4"],
["app.type", "web"],
["source.type", "text"],
["source.id", "test-id-for-article"],
["source.url", "https://www.venatusmedia.com"],
["placement.name", "floating-footer-thumbnail"],
["placement.rec-count", "4"],
["placement.organic-type", "text"],
["placement.thumbnail.width", "640"],
["placement.thumbnail.height", "480"],
["user.session", "init"]
]);
return new Promise(function(I, T) {
ht.a.go({
method: ht.a.RequestMethod.GET,
url: "https://api.taboola.com/1.2/json/venatusmedianetwork-testaccount/recommendations.get?" + e.map(function(e) {
var t = e[0],
n = e[1];
return t + "=" + encodeURIComponent(n)
}).join("&"),
timeout: 2e4,
success: function(e, t, n) {
var r, i, a, o, s, d, c, u, p, l, f, m, g, h, b, y, v, w = JSON.parse(t);
"object" == typeof w && "object" == typeof w.list && 0 < w.list.length ? (r = w.list[0], console.log("Taboola List Item", r), i = {
id: r.id,
url: r.url,
thumbnail: {
url: r.thumbnail[0].url,
width: Number(r.thumbnail[0].width),
height: Number(r.thumbnail[0].height)
},
type: r.type,
name: r.name,
branding: r.branding
}, "string" == typeof r.description && (i.description = r.description), a = j.a.getTopMostParentBody(), o = Object(ie.a)("<div>").addClass("vm-taboola").css("left", "50%").css("transform", "translate(-50%)").css("bottom", 0).css("position", "fixed").css("z-index", 999999), B.a.isDesktop() && (s = Object(ie.a)("<img>").attr("src", "https://hb.vntsm.com/assets/close.png"), d = Object(ie.a)("<div>").css("top", -22).css("right", 0).css("position", "absolute").css("cursor", "pointer").append(s), s.on("click", function() {
S.removeFooter()
}), o.append(d)), Object(ie.a)(a).append(o), c = Math.max(Math.floor(.45 * j.a.getTopMostParentWindow().innerWidth), 320), u = Math.max(Math.floor(.1 * j.a.getTopMostParentWindow().innerHeight), 90), p = i.thumbnail.width / i.thumbnail.height * u, l = Object(ie.a)("<div>").css("cursor", "pointer").css("position", "relative").css("width", c).css("height", u).css("border-top", "1px solid #414141").css("border-left", "1px solid #414141").css("border-right", "1px solid #414141").css("background", "#FFFFFF").on("click", function() {
return window.open(i.url, "new_window")
}), f = Object(ie.a)("<div>").css("float", "left").css("width", p).css("height", u), m = Object(ie.a)("<img>").css("width", p).css("height", u).attr("src", i.thumbnail.url), g = Object(ie.a)("<div>").css("height", u), h = Object(ie.a)("<div>").css("font-size", c < 450 ? "0.6em" : "1.0em").css("padding", "10px 100px 0px " + (10 + p) + "px").css("color", "#414141").html(i.name), Object(ie.a)("<div>").css("font-size", c < 450 ? "0.5em" : "0.8em").css("padding", "6px 200px 0px " + (10 + p) + "px").css("color", "#656565").html(i.description), b = Object(ie.a)("<div>").css("font-size", c < 450 ? "0.5em" : "0.8em").css("padding", "6px 10px 0px " + (10 + p) + "px").css("color", "#959595").html(i.branding), y = Object(ie.a)("<div>").css("right", 10).css("top", 10).css("position", "absolute"), v = Object(ie.a)("<div>").css("background", "#5383e8").css("color", "#F7F7F7").css("padding", "10px").html("Visit Site"), l.append(f.append(m)).append(g.append(h).append(b).append(y.append(v))), o.append(l), I(k)) : T(k)
},
error: function() {
return T(k)
}
})
})
}, Ft);
function Ft() {
return null !== Vt && Vt.apply(this, arguments) || this
}
var Wt = (Gt.getRules = function() {
var n = S.a.mediationMultiAcceptance;
return S.a.siteLevelMediationMultiAcceptanceChanges.forEach(function(e, t) {
return n.set(t, e)
}), n
}, Gt);
function Gt() {}
var Ht = (Jt.prototype.canAcceptNext = function(e) {
for (var t = 0; t < this.acceptedAdapters.length; t++) {
var n = this.acceptedAdapters[t];
if (Wt.getRules().has(n.name)) {
var r = Wt.getRules().get(n.name);
if (-1 === r.indexOf(e)) return T.a.debug(e + " has been prevented from running because " + n.name + " only permits " + r.join(", ") + " once accepted"), !1
}
}
return !0
}, Jt.prototype.createMediationBid = function(e, t) {
return void 0 === e && (e = "mediation"), void 0 === t && (t = 0), new C(new k({
ad: "\x3c!-- Mediation --\x3e",
adUnitCode: this.placementPos + "-" + this.placementId + "-" + this.refreshConfig.currentLoopIndex,
bidder: e,
cpm: t,
size: this.winningBid.getWinningBid().getSize().getSize(),
timeToRespond: 0
}), [])
}, Jt.prototype.processNext = function() {
var n = this;
if (0 < this.rules.length) {
var e = this.rules.pop();
T.a.debug("Processing mediation rule: " + e.getAdapterName());
var t = !0;
if ((e.isTargetingDesktopOnly() && B.a.isMobile() || e.isTargetingMobileOnly() && B.a.isDesktop()) && (t = !1), "ALL" != e.getTargetCountryCode() && e.getTargetCountryCode() != this.headerBiddingConfig.getCurrentCountryCode() && (t = !1), t)
if (this.canAcceptNext(e.getAdapterName())) switch (e.getAdapterName()) {
case "taboola":
new Lt(this, e).run().then(function(e) {
var t = e.getMediationRule();
n.acceptedAdapters.push({
name: t.getAdapterName(),
cpm: t.getAdapterCPM(),
size: "1x1"
}), n.processNext()
}).catch(function() {
return n.processNext()
});
break;
case "streamspread":
new qt(this, e).run().then(function(e) {
var t = e.getMediationRule();
n.acceptedAdapters.push({
name: t.getAdapterName(),
cpm: t.getAdapterCPM(),
size: "1x1"
}), n.processNext()
}).catch(function() {
return n.processNext()
});
break;
case "lkqd":
new(E.a.has("lkqd-new-setup") ? ee : H)(this, e, new A.a, function() {
return n.processNext()
}).run().then(function(e) {
var t = e.getMediationRule();
n.acceptedAdapters.push({
name: t.getAdapterName(),
cpm: t.getAdapterCPM(),
size: "1x1"
}), E.a.has("lkqd-new-setup") || n.processNext()
}).catch(function() {
return n.processNext()
});
break;
case "teads":
new Pt(this, e).run().then(function(e) {
var t = e.getMediationRule();
n.acceptedAdapters.push({
name: t.getAdapterName(),
cpm: 0,
size: "1x1"
}), At.send(n.headerBiddingConfig, n.createMediationBid("teads", 0), !0, n.placementContainer), n.processNext()
}).catch(function() {
return n.processNext()
});
break;
case "venatus":
case "venatus-vertical-sticky":
var r = new A.a([
["linked_placement_id", e.getLinkedPlacementId()],
["site_id", this.headerBiddingConfig.getSiteId()],
["sticky", "venatus-vertical-sticky" === e.getAdapterName() ? "true" : "false"]
]);
this.placementContainer.getAttribute("data-top-space") && r.set("page_top", this.placementContainer.getAttribute("data-top-space")), this.placementContainer.getAttribute("data-parallax-top-space") && r.set("fixed_top", this.placementContainer.getAttribute("data-parallax-top-space")), new ae(this, e, r).run().then(function(e) {
var t = e.getMediationRule();
n.acceptedAdapters.push({
name: t.getAdapterName(),
cpm: t.getAdapterCPM(),
size: "1x1"
}), n.processNext()
}).catch(function() {
return n.processNext()
});
break;
case "venatus-op":
case "venatus-vertical-sticky-op":
var i = new A.a([
["linked_placement_id", e.getLinkedPlacementId()],
["site_id", this.headerBiddingConfig.getSiteId()],
["sticky", "venatus-vertical-sticky-op" === e.getAdapterName() ? "true" : "false"]
]);
this.placementContainer.getAttribute("data-top-space") && i.set("page_top", this.placementContainer.getAttribute("data-top-space")), this.placementContainer.getAttribute("data-parallax-top-space") && i.set("fixed_top", this.placementContainer.getAttribute("data-parallax-top-space")), new ce(this, e, i).run().then(function(e) {
var t = e.getMediationRule();
n.acceptedAdapters.push({
name: t.getAdapterName(),
cpm: t.getAdapterCPM(),
size: "1x1"
}), n.processNext()
}).catch(function() {
return n.processNext()
});
break;
case "venatus-footer":
new mt(this, e, new A.a([
["linked_placement_id", e.getLinkedPlacementId()],
["site_id", this.headerBiddingConfig.getSiteId()]
])).run().then(function(e) {
var t = e.getMediationRule();
n.acceptedAdapters.push({
name: t.getAdapterName(),
cpm: t.getAdapterCPM(),
size: "1x1"
}), n.processNext()
}).catch(function() {
return n.processNext()
});
break;
case "justpremium":
new Ct(this, e).run().then(function(e) {
var t = e.getMediationRule();
n.acceptedAdapters.push({
name: t.getAdapterName(),
cpm: t.getAdapterCPM(),
size: "1x1"
}), n.processNext()
}).catch(function() {
return n.processNext()
});
break;
case "gumgum":
new Ct(this, e).run().then(function(e) {
var t = e.getMediationRule();
n.acceptedAdapters.push({
name: t.getAdapterName(),
cpm: t.getAdapterCPM(),
size: "1x1"
}), n.processNext()
}).catch(function() {
return n.processNext()
});
break;
case "trion":
new Ct(this, e).run().then(function(e) {
var t = e.getMediationRule();
n.acceptedAdapters.push({
name: t.getAdapterName(),
cpm: t.getAdapterCPM(),
size: "1x1"
}), n.processNext()
}).catch(function() {
return n.processNext()
});
break;
case "jpmediated":
new Ct(this, e).run().then(function(e) {
var t = e.getMediationRule();
n.acceptedAdapters.push({
name: t.getAdapterName(),
cpm: t.getAdapterCPM(),
size: "1x1"
}), n.processNext()
}).catch(function() {
return n.processNext()
});
break;
default:
T.a.debug("Mediation partner " + e.getAdapterName() + " is not supported"), this.processNext()
} else T.a.debug("Unable to accept partner " + e.getAdapterName() + " as there would be a conflict"), this.processNext();
else T.a.debug("Failed to satisfy targeting for " + e.getAdapterName()), this.processNext()
} else this.isExhausted = !0, 0 === this.acceptedAdapters.length ? $t.render(new A.a([
[this.placementPos + "-" + this.placementId, this.placementContainer]
]), [this.winningBid], this.headerBiddingConfig, this.refreshConfig, !1) : At.send(this.headerBiddingConfig, this.createMediationBid(), !0, this.placementContainer)
}, Jt.prototype.getRules = function() {
return this.rules
}, Jt.prototype.getPlacementId = function() {
return this.placementId
}, Jt.prototype.getPlacementPositionalId = function() {
return this.placementPos + "-" + this.placementId
}, Jt.prototype.getPlacementInstanceId = function() {
return this.placementPos + "-" + this.placementId + "-" + this.refreshConfig.currentLoopIndex
}, Jt.prototype.getPlacementContainer = function() {
return this.placementContainer
}, Jt.prototype.getHeaderBiddingConfig = function() {
return this.headerBiddingConfig
}, Jt.prototype.getRefreshConfig = function() {
return this.refreshConfig
}, Jt.prototype.getAcceptedAdapters = function() {
return this.acceptedAdapters
}, Jt.prototype.isComplete = function() {
return this.isExhausted
}, Jt);
function Jt(e, t, n, r, i, a) {
this.acceptedAdapters = [], this.isExhausted = !1, this.placementId = e, this.placementPos = t, this.placementContainer = n, this.winningBid = r, this.headerBiddingConfig = i, this.refreshConfig = a;
var o = i.getPlacement(e).getMediationRules();
R.getStashedAdapterBids(t + "-" + e + "-" + a.currentLoopIndex).forEach(function(e) {
o.push(e.adapterBid.getAsMediationRule())
}), E.a.has("force-teads") ? this.rules = [].concat(o.filter(function(e) {
return e.getAdapterName().match("^teads")
})) : E.a.has("force-taboola") ? this.rules = [new p.a({
adapter_cpm: 0,
adapter_name: "taboola",
adapter_tag: "{}",
linked_placement_id: "",
order_index: 1,
target_device: "all",
target_geo: "ALL",
target_size: "0x0"
})] : E.a.has("force-streamspread") ? this.rules = [].concat(o.filter(function(e) {
return e.getAdapterName().match("^streamspread")
})) : E.a.has("force-venatus-footer") ? this.rules = [].concat(o.filter(function(e) {
return e.getAdapterName().match(/^venatus-footer/)
})) : E.a.has("force-venatus-op") ? this.rules = [].concat(o.filter(function(e) {
return e.getAdapterName().match(/^venatus-op|venatus-vertical-sticky-op/)
})) : E.a.has("force-venatus") ? this.rules = [].concat(o.filter(function(e) {
return e.getAdapterName().match(/^venatus|venatus-vertical-sticky$/)
})) : E.a.has("force-lkqd") ? this.rules = [].concat(o.filter(function(e) {
return e.getAdapterName().match("^lkqd")
})) : B.a.isDesktop() ? this.rules = [].concat(o.filter(function(e) {
return e.getAdapterName().match("^just")
}), o.filter(function(e) {
return e.getAdapterName().match("^jp")
}), o.filter(function(e) {
return e.getAdapterName().match(/^(venatus|venatus-op)$/)
}), o.filter(function(e) {
return e.getAdapterName().match(/^(venatus-vertical-sticky|venatus-vertical-sticky-op)$/)
}), o.filter(function(e) {
return e.getAdapterName().match("^lkqd")
}), o.filter(function(e) {
return e.getAdapterName().match(/^venatus-footer/)
}), o.filter(function(e) {
return e.getAdapterName().match("^streamspread")
}), o.filter(function(e) {
return e.getAdapterName().match("^gumgum")
}), o.filter(function(e) {
return e.getAdapterName().match("^trion")
}), o.filter(function(e) {
return e.getAdapterName().match("^teads")
})).reverse() : this.rules = [].concat(o.filter(function(e) {
return e.getAdapterName().match("^just")
}), o.filter(function(e) {
return e.getAdapterName().match("^lkqd")
}), o.filter(function(e) {
return e.getAdapterName().match("^jp")
}), o.filter(function(e) {
return e.getAdapterName().match("^trion")
}), o.filter(function(e) {
return e.getAdapterName().match("^gumgum")
}), o.filter(function(e) {
return e.getAdapterName().match("^venatus")
})).reverse()
}
var Yt = (Kt.isAdblocked = function() {
var t = this;
this._isInit || this.init();
var n = function(e) {
void 0 !== t._isAdblocked ? e(t._isAdblocked) : setTimeout(function() {
return n(e)
}, 50)
};
return new Promise(function(e) {
return n(e)
})
}, Kt.init = function() {
var e = this;
this._isInit = !0, "boolean" == typeof a.getValue(this.LS_KEY) && (this._isAdblocked = a.getValue(this.LS_KEY)), c.ready(function() {
setTimeout(function() {
null === e.config.bait && e.createBait(), setTimeout(function() {
return e.check()
}, 5)
}, 5)
}, j.a.getTopMostParentWindow())
}, Kt.createBait = function() {
var e = document.createElement("div");
e.setAttribute("class", this.options.baitClass), e.setAttribute("style", this.options.baitStyle), this.config.bait = e, j.a.getTopMostParentBody().appendChild(e), this.config.bait.offsetParent, this.config.bait.offsetHeight, this.config.bait.offsetLeft, this.config.bait.offsetTop, this.config.bait.offsetWidth, this.config.bait.clientHeight, this.config.bait.clientWidth
}, Kt.destroyBait = function() {
j.a.getTopMostParentBody().removeChild(this.config.bait), this.config.bait = null
}, Kt.check = function(e) {
var t = this;
return void 0 === e && (e = !0), !this.config.checking && (this.config.checking = !0, null === this.config.bait && this.createBait(), this.config.loopNumber = 0, e && (this.config.loop = setInterval(function() {
return t.checkBait(e)
}, this.options.loopCheckTime)), setTimeout(function() {
return t.checkBait(e)
}, 5), !0)
}, Kt.checkBait = function(e) {
var n = this;
null === this.config.bait && this.createBait();
var t = null !== j.a.getTopMostParentBody().getAttribute("abp");
e && (this.config.loopNumber++, this.config.loopNumber >= this.options.loopMaxNumber && this.stopLoop()), t || function(e, t) {
for (var n = 0; n < t.length; n++) {
var r = t[n],
i = r[0],
a = r[1];
if (e[i] == a) return !0
}
return !1
}(n.config.bait, [
["offsetParent", null],
["offsetHeight", 0],
["offsetLeft", 0],
["offsetTop", 0],
["offsetWidth", 0],
["clientHeight", 0],
["clientWidth", 0]
]) || function() {
var e = j.a.getTopMostParentWindow();
if (void 0 !== e.getComputedStyle) {
var t = e.getComputedStyle(n.config.bait, null);
if (t && ("none" == t.getPropertyValue("display") || t.getPropertyValue("hidden"))) return !0
}
return !1
}() ? (this.stopLoop(), this.destroyBait(), this._isAdblocked = !0, e && (this.config.checking = !1), a.set(this.LS_KEY, this._isAdblocked, this.LS_EXPIRE)) : null !== this.config.loop && !1 !== this.config.loop || (this.destroyBait(), this._isAdblocked = !1, e && (this.config.checking = !1), a.set(this.LS_KEY, this._isAdblocked, this.LS_EXPIRE))
}, Kt.stopLoop = function() {
clearInterval(this.config.loop), this.config.loop = null, this.config.loopNumber = 0
}, Kt.LS_KEY = "vm-abd", Kt.LS_EXPIRE = 36e5, Kt.options = {
loopCheckTime: 50,
loopMaxNumber: 5,
baitClass: "pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links",
baitStyle: "width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;"
}, Kt.config = {
bait: null,
checking: !1,
loop: null,
loopNumber: 0
}, Kt._isInit = !1, Kt);
function Kt() {}
var Xt = function(e, o, s, d) {
return new(s = s || Promise)(function(n, t) {
function r(e) {
try {
a(d.next(e))
} catch (e) {
t(e)
}
}
function i(e) {
try {
a(d.throw(e))
} catch (e) {
t(e)
}
}
function a(e) {
var t;
e.done ? n(e.value) : ((t = e.value) instanceof s ? t : new s(function(e) {
e(t)
})).then(r, i)
}
a((d = d.apply(e, o || [])).next())
})
},
Qt = function(n, r) {
var i, a, o, s = {
label: 0,
sent: function() {
if (1 & o[0]) throw o[1];
return o[1]
},
trys: [],
ops: []
},
e = {
next: t(0),
throw: t(1),
return: t(2)
};
return "function" == typeof Symbol && (e[Symbol.iterator] = function() {
return this
}), e;
function t(t) {
return function(e) {
return function(t) {
if (i) throw new TypeError("Generator is already executing.");
for (; s;) try {
if (i = 1, a && (o = 2 & t[0] ? a.return : t[0] ? a.throw || ((o = a.return) && o.call(a), 0) : a.next) && !(o = o.call(a, t[1])).done) return o;
switch (a = 0, o && (t = [2 & t[0], o.value]), t[0]) {
case 0:
case 1:
o = t;
break;
case 4:
return s.label++, {
value: t[1],
done: !1
};
case 5:
s.label++, a = t[1], t = [0];
continue;
case 7:
t = s.ops.pop(), s.trys.pop();
continue;
default:
if (!(o = 0 < (o = s.trys).length && o[o.length - 1]) && (6 === t[0] || 2 === t[0])) {
s = 0;
continue
}
if (3 === t[0] && (!o || t[1] > o[0] && t[1] < o[3])) {
s.label = t[1];
break
}
if (6 === t[0] && s.label < o[1]) {
s.label = o[1], o = t;
break
}
if (o && s.label < o[2]) {
s.label = o[2], s.ops.push(t);
break
}
o[2] && s.ops.pop(), s.trys.pop();
continue
}
t = r.call(n, s)
} catch (e) {
t = [6, e], a = 0
} finally {
i = o = 0
}
if (5 & t[0]) throw t[1];
return {
value: t[0] ? t[1] : void 0,
done: !0
}
}([t, e])
}
}
},
$t = (Zt.applyDebug = function(t, n, r, i, a, o) {
return Xt(this, void 0, void 0, function() {
return Qt(this, function(e) {
switch (e.label) {
case 0:
return [4, Promise.all([s.e(1), s.e(6)]).then(s.bind(null, 49))];
case 1:
return e.sent().DebugOverlay.appendTo(t, n, r, i, a, o), [2, Promise.resolve(t)]
}
})
})
}, Zt.attemptMediation = function(e, t, n, r, i, a) {
var o = new Ht(e, t, n, r, i, a);
return o.processNext(), Promise.resolve(o)
}, Zt.renderRichMedia = function(n) {
return Xt(this, void 0, void 0, function() {
var t;
return Qt(this, function(e) {
switch (e.label) {
case 0:
return [4, s.e(3).then(s.bind(null, 50))];
case 1:
return t = e.sent(), [2, Promise.resolve(new t.RichMedia(n))]
}
})
})
}, Zt.wrappedAd = function(e) {
return e.getAd()
}, Zt.writeToAdFrame = function(e, t) {
var n;
if (void 0 !== e.contentDocument && null !== e.contentDocument ? n = e.contentDocument : void 0 !== e.contentWindow && null !== e.contentWindow && void 0 !== e.contentWindow.document && null !== e.contentWindow.document && (n = e.contentWindow.document), void 0 === n) return Promise.reject("Failed to write to frame");
return function(e) {
try {
n.open(), n.write(e), n.close()
} catch (e) {}
}(this.wrappedAd(t)), Promise.resolve()
}, Zt.resizeParentFrame = function(e, t) {
if (void 0 !== e.contentDocument && null !== e.contentDocument) try {
var n, r;
e.contentDocument.defaultView.parent.frameElement && (((r = (n = e.contentDocument.defaultView.parent.frameElement).getAttribute("id")).match(/google\_ads/) || r.match(/MB\-iframe/)) && (n.setAttribute("width", t.getSize().getWidth() + ""), n.setAttribute("height", t.getSize().getHeight() + "")), n = r = null)
} catch (e) {}
}, Zt.renderFromAdapterBid = function(r, i, a, e) {
var o = this;
if (void 0 === a && (a = !1), void 0 === e && (e = !1), It.isLoaded() && !e && (i.isBlank() || i.isPSA() || i.isDefault())) return new Promise(function(t, n) {
It.onReady(function(e) {
e ? n() : o.renderFromAdapterBid(r, i, a, !0).then(function() {
return t()
})
})
});
if (It.isLoaded() || Yt.isAdblocked().then(function(e) {
e && (r.style.display = "none", r.setAttribute("vm-ab-detected", "true"))
}), i.getBidder().match(/^playground/i) && r.setAttribute("prevent-refresh", "true"), i.isBlank()) return Promise.resolve();
S.a.assistFrameCleanup && !a && u.a.getChildrenElementsOfParentElement(r).forEach(function(e) {
if ("IFRAME" === e.tagName) {
e.src = "about:blank";
try {
r.removeChild(e)
} catch (e) {}
} else {
var t;
"DIV" !== e.tagName || "string" == typeof(t = e.getAttribute("id")) && t.match(/^google\_ad/) && (e.style.display = "none")
}
}), r.style.background = "none", r.style.border = "none", r.style.position = "relative", r.style.margin = "0 auto", r.style.overflow = "hidden", r.style.maxWidth = i.getSize().getWidth() + "px";
var n = document.createElement("iframe");
return n.width = "" + i.getSize().getWidth(), n.height = "" + i.getSize().getHeight(), i.isDefault() && n.setAttribute("data-is-default", "true"), n.setAttribute("allowtransparency", "true"), n.setAttribute("marginheight", "0"), n.setAttribute("marginwidth", "0"), n.setAttribute("scrolling", "no"), n.setAttribute("frameborder", "0"), "edge" === yt.parse().browser_name || "ie" === yt.parse().browser_name ? new Promise(function(e, t) {
r.appendChild(n), o.resizeParentFrame(n, i), n.onload = function() {
try {
n.onload = function() {}, n.contentDocument.write(o.wrappedAd(i)), n.contentDocument.close(), e()
} catch (e) {
t()
}
}, n.src = "javascript:'<html><body></body></html>'"
}) : (n.src = "javascript:'<html><body></body></html>'", r.appendChild(n), this.resizeParentFrame(n, i), this.writeToAdFrame(n, i))
}, Zt.render = function(d, e, c, u, p, l, f) {
var m = this;
void 0 === p && (p = !0), void 0 === l && (l = !1), void 0 === f && (f = !0), e.forEach(function(t) {
var e, n = t.getWinningBid(),
r = n.getPlacementId(),
i = n.getPlacementPos(),
a = d.get(i + "-" + r),
o = c.getPlacement(r),
s = E.a.has("force-mediation");
o.isRichMedia() && (0 < o.getMediationRules().length || !R.isEmpty()) && p && (s || n.isBlank() || n.isPSA() || n.isDefault()) ? m.attemptMediation(r, i, a, t, c, u).then(function(e) {
T.a.isDebugMode() && m.applyDebug(r, a, t, c, u, e).then(function(e) {
T.a.info("Applied debug overlay to placement " + e)
})
}) : (n.isBlank() || "footer" != a.getAttribute("data-ref") || (e = j.a.getTopMostParentDocument().querySelector(".vm-footer-close-button")) && (e.style.display = "block"), 1 < u.currentLoopIndex && (n.isBlank() || n.isDefault() && !S.a.rotateDefaults || n.isPSA()) ? T.a.debug("Take no action here, leave the current ad...") : m.renderFromAdapterBid(a, n, l, !c.isAdblockRecoveryEnabled()).then(function() {
f ? At.send(c, t, !0, a) : T.a.debug("Bypassing tracking event for " + n.getBidder())
}, function() {
return T.a.error("Failed to render from HTML and subsequently track ad from " + n.getBidder())
}), T.a.isDebugMode() && p && m.applyDebug(r, a, t, c, u).then(function(e) {
T.a.info("Applied debug overlay to placement " + e)
}))
})
}, Zt);
function Zt() {}
var en = (tn.isMicrosoft = function() {
return /Trident|MSIE|Edge\//i.test(navigator.userAgent)
}, tn.isOpera = function() {
return /OPR\/|Opera/i.test(navigator.userAgent)
}, tn);
function tn() {}
var nn = (rn.process = function(e) {
for (var t = j.a.getTopMostParentWindow().__vm_add || [], n = [], r = t.pop(); void 0 !== r;) {
var i = r.getAttribute("data-id").replace(/[\[|\]]/g, "");
r.setAttribute("data-id", i), T.a.debug("Adding new dynamic placement: " + i, r), n.push(r), r = t.pop()
}
0 < n.length && Un.addPlacements(n, e)
}, rn);
function rn() {}
var an = s(14),
on = (sn.getA9Tag = function() {
var e = j.a.getTopMostParentWindow();
return void 0 === e.apstag && (T.a.a9("Setting '" + this.NS + "' defaults for Amazon Library"), e.apstag = {
init: function() {
e[sn.NS]._Q.push(["i", arguments])
},
fetchBids: function() {
e[sn.NS]._Q.push(["f", arguments])
},
setDisplayBids: function() {},
targetingKeys: function() {
return []
},
_Q: []
}, T.a.a9("Calling init, with pubID: " + S.a.a9PublisherId + ", adServer: " + this.ADSERVER), e.apstag.init({
pubID: S.a.a9PublisherId,
adServer: this.ADSERVER,
gdpr: {
cmpTimeout: 5100
}
})), e.apstag
}, sn.load = function() {
var n = S.a.defaultProtocol + "://c.amazon-adsystem.com/aax2/apstag.js",
r = this.getA9Tag();
return T.a.a9("Loading the Amazon Library - " + n), new Promise(function(e, t) {
return d.a.loadJSIn(j.a.getTopMostParentWindow(), n, function() {
return e(r)
}, function() {
return t()
})
})
}, sn.fetchBids = function(i, a) {
var o = this;
return new Promise(function(t, e) {
var n = o.getA9Tag(),
r = {
slots: i.map(function(e) {
var t = a.getPlacement(e.getAttribute("data-id")),
n = {
slotID: e.getAttribute("id"),
slotName: "/" + S.a.dfpPublisherId + "/VM_" + a.getSiteId(),
sizes: t.getPlacementSizes(e).map(function(e) {
return e.getDims()
})
};
return T.a.a9("Defining Amazon Slot: " + e.getAttribute("id"), n), n
}),
timeout: S.a.prebidGlobalTimeoutMS
};
n.fetchBids(r, function(e) {
T.a.a9("Returned Amazon Bids", e), o.abTest.runOnEnabledSites(a, function() {
T.a.a9("Using NEW A9 Implementation"), o.bidsTargetingStash = o.createBidsMapForTargeting(e, n.targetingKeys()), dn.call(function() {
dn.getGoogleTag().pubads().addEventListener("slotRenderEnded", function(e) {
var t = e.slot;
n.targetingKeys().forEach(function(e) {
t.clearTargeting(e)
})
})
})
}, function() {
T.a.a9("Using DEFAULT A9 Implementation"), n.setDisplayBids()
}), t(e)
})
})
}, sn.updateTargeting = function(e) {
e.updateTargetingFromMap(this.bidsTargetingStash[e.getSlotElementId()])
}, sn.createBidsMapForTargeting = function(e, t) {
return e.reduce(function(e, n) {
return e[n.slotID] = t.reduce(function(e, t) {
return e[t] = [n[t]], e
}, {}), e
}, {})
}, sn.NS = "apstag", sn.ADSERVER = "googletag", sn.abTest = an.a.forSitesWithRatio(S.a.A9ABTestSiteIds), sn);
function sn() {}
var dn = (cn.trackBackFillRequest = function(e, t) {
var n = cn.getBucketRangeFromTargetPriceBucket(t);
T.a.debug("Tracking back-fill request for " + e + "@" + n), a.set(e + "@" + n, !1, cn.expires)
}, cn.trackBackFillResponse = function(e, t) {
var n = cn.getBucketRangeFromTargetPriceBucket(t);
T.a.debug("Tracking back-fill response (true) for " + e + "@" + n), a.set(e + "@" + n, !0, cn.expires)
}, cn.allowBackFillRequest = function(e, t) {
var n = cn.getBucketRangeFromTargetPriceBucket(t),
r = a.getValue(e + "@" + n),
i = !0 === r || null === r;
return T.a.debug("Allow back-fill request for " + e + "@" + n + "? " + (i ? "Yes" : "No")), i
}, cn.getBucketRangeFromTargetPriceBucket = function(e) {
return (Math.round(10 * parseFloat(e)) / 10).toFixed(2)
}, cn.getTargetPriceBucketFromBid = function(n) {
var e = cn.getSupportedPriceBuckets(),
r = -1;
return e.forEach(function(e, t) {
e <= n && (r = t)
}), e[r + 1] && (r += 1), e[r].toFixed(2)
}, cn.getSupportedPriceBuckets = function() {
for (var e = [], t = 1; t < 500; t++) e.push(t / 100);
for (t = 500; t <= 2500; t += 10) e.push(t / 100);
return e
}, cn.getGoogleTag = function() {
return j.a.getTopMostParentWindow().googletag = j.a.getTopMostParentWindow().googletag || {}, j.a.getTopMostParentWindow().googletag
}, cn.getGoogleTagCMD = function() {
return cn.getGoogleTag().cmd = cn.getGoogleTag().cmd || [], cn.getGoogleTag().cmd
}, cn.load = function() {
void 0 === j.a.getTopMostParentWindow().googletag && d.a.loadJSIn(j.a.getTopMostParentWindow(), "https://securepubads.g.doubleclick.net/tag/js/gpt.js"), cn.call(function() {
E.a.has("gdbg") && cn.getGoogleTag().openConsole(), cn.getGoogleTag().pubads().disableInitialLoad(), cn.getGoogleTag().pubads().addEventListener("slotRenderEnded", function(e) {
var t, n, r, i, a, o; - 1 !== e.slot.getAdUnitPath().indexOf(S.a.dfpPublisherId) && (t = e.slot.getTargeting("hb_adid")[0], n = e.slot.getTargeting("hb_pb")[0], r = !0 === e.isBackfill || null !== e.yieldGroupIds, T.a.debug("DFP: Event Data", {
id: t,
priceBucket: n,
event: e,
hasWon: r
}), r && (cn.trackBackFillResponse(t, n), a = (i = cn.postBidStash.get(t)).placementContainer, o = i.winningBid.getWinningBid(), u.a.getChildrenElementsOfParentElement(a).forEach(function(e) {
var t;
"DIV" !== e.tagName || "string" == typeof(t = e.getAttribute("id")) && t.match(/^google\_ad/) && (e.style.display = "block", e.style.margin = "0 auto")
}), a.style.position = "relative", a.style.margin = "0 auto", a.style.overflow = "hidden", e.size && (a.style.maxWidth = e.size[0] + "px"), "footer" == a.getAttribute("data-ref") && (j.a.getTopMostParentDocument().querySelector(".vm-footer-close-button").style.display = "block"), T.a.isDebugMode() && $t.applyDebug(i.placementId, i.placementContainer, new C(new k({
ad: "\x3c!-- Google DFP --\x3e",
adUnitCode: o.getAdUnitCode(),
bidder: "google",
cpm: 0,
priceBucket: n,
size: e.size ? e.size[0] + "x" + e.size[1] : "1x1",
timeToRespond: 0
}), i.winningBid.getBidLandscape().concat(i.winningBid.getWinningBid()), i.winningBid.getAppliedPaymentRule(), i.winningBid.getSuccessfulAdapterBids().concat(i.winningBid.getWinningBid())), i.headerBiddingConfig, i.refreshConfig).then(function(e) {
T.a.info("Applied debug overlay to DFP placement " + e)
})))
})
})
}, cn.call = function(e) {
cn.getGoogleTagCMD().push(e)
}, cn.requestAgainst = function(d, e, c, u) {
e.forEach(function(e) {
var t = e.getWinningBid(),
n = t.getPlacementId(),
r = t.getPlacementPos(),
i = d.get(r + "-" + n),
a = c.getPlacement(n),
o = cn.getTargetPriceBucketFromBid(t.getCPM()),
s = S.a.dfpExcludedPlacementIds.has(n);
E.a.has("only-allow") && "google" != E.a.getValue("only-allow") && (s = !0), "58d2538946e0fb0001e4b3e5" != c.getSiteId() || j.a.isInView(i) || (s = !0), s && T.a.warn("DFP Has been disabled for placement " + n), s || a.isRichMedia() || t.isDirect() || 25 < t.getCPM() ? $t.render(new A.a([
[r + "-" + n, i]
]), [e], c, u) : (cn.trackBackFillRequest(i.getAttribute("id"), o), cn.postBidStash.set(i.getAttribute("id"), {
placementId: n,
placementPos: r,
placementContainer: i,
winningBid: e,
headerBiddingConfig: c,
refreshConfig: u
}), At.createDFPTargeting(c, new C(new k({
ad: "\x3c!-- Google DFP --\x3e",
adUnitCode: e.getWinningBid().getAdUnitCode(),
bidder: "google",
cpm: 0,
priceBucket: o,
size: a.getSmallestSize().getSize(),
timeToRespond: 0
}), e.getBidLandscape()), !0, i).then(function(e) {
cn.requestSlot("/" + S.a.dfpPublisherId + "/VM_" + c.getSiteId(), a.getPlacementSizes(i).map(function(e) {
return e.getDims()
}), n, r, i, o, i.getAttribute("id"), e, c)
}, function() {
T.a.error("Failed to generate DFP targeting and request slot...")
}))
})
}, cn.setTargeting = function(n, e) {
e.forEach(function(e, t) {
return n.setTargeting(t, [e])
})
}, cn.requestSlot = function(i, a, e, t, o, n, s, r, d) {
var c = this;
E.a.has("dfp-low-bucket-test") && (n = "0.01"), T.a.debug("DFP: Requesting " + i + " for " + a.map(function(e) {
return e[0] + "x" + e[1]
}).join(",") + " with price bucket " + n + " using stash id " + s);
var u, p = o.getAttribute("id"),
l = e + "-" + t,
f = new A.a([
["hb_pb", n],
["hb_adid", s],
["hb_iv", j.a.isInView(o) && j.a.hasFocus() ? "1" : "0"]
]);
for (u in r) r.hasOwnProperty(u) && f.set(u, r[u]);
T.a.debug("DFP: Targeting", f), cn.call(function() {
var r = null;
cn.getGoogleTag().pubads().getSlots().forEach(function(e) {
e.getSlotElementId() === p && (r = e)
}), null === r ? (null === p && (o.setAttribute("id", l), p = l), T.a.debug("DFP: Initial Request: " + i + " | PB: " + n + " | Stash: " + s), cn.abTestGoogleRangeSizing.runOnEnabledSites(d, function() {
var t, e = "footer" === o.getAttribute("data-ref"),
n = "float" === o.getAttribute("data-ref");
e || n ? (t = "re_ve", cn.abTestFooterFloatRangeSizing.runOnEnabledSites(function() {
f.set(t, f.get(t) + "_fr");
var e = cn.getRangeSize(a);
r = cn.getGoogleTag().defineSlot(i, e, p), T.a.debug("DFP: Used Range sizing " + JSON.stringify(e) + " for placement: " + p)
}, function() {
f.set(t, f.get(t) + "_fo"), r = cn.getGoogleTag().defineSlot(i, a, p)
})) : r = cn.getGoogleTag().defineSlot(i, a, p)
}, function() {
r = cn.getGoogleTag().defineSlot(i, a, p)
}), void 0 !== r && (cn.setTargeting(r, f), c.updateA9Targeting(r, d), r.addService(cn.getGoogleTag().pubads()), d.isCOPPACompliant() && (T.a.warn("COPPA ruleset is being applied to DFP..."), cn.getGoogleTag().pubads().setRequestNonPersonalizedAds(1), cn.getGoogleTag().pubads().setTagForChildDirectedTreatment(1), cn.getGoogleTag().pubads().setTagForUnderAgeOfConsent(1)), cn.getGoogleTag().pubads().enableSingleRequest(), cn.getGoogleTag().enableServices(), cn.getGoogleTag().display(p), cn.getGoogleTag().pubads().refresh([r]))) : (T.a.debug("DFP: Refresh Request: " + i + " | PB: " + n + " | Stash: " + s), cn.setTargeting(r, f), c.updateA9Targeting(r, d), cn.getGoogleTag().pubads().refresh([r]))
})
}, cn.getRangeSize = function(e) {
var t, n = e[0][0],
r = e[0][1],
i = e[0][0],
a = e[0][1];
for (t in e) e[t][0] > i && (i = e[t][0]), e[t][1] > a && (a = e[t][1]), e[t][0] < n && (n = e[t][0]), e[t][1] < r && (r = e[t][1]);
return {
fixed: e,
max: [i, a],
min: [n, r]
}
}, cn.handleSlotRejectEvent = function(e) {
T.a.debug("DFP: Handling slot reject event for " + e);
var t = cn.postBidStash.get(e);
$t.render(new A.a([
[t.placementPos + "-" + t.placementId, t.placementContainer]
]), [t.winningBid], t.headerBiddingConfig, t.refreshConfig)
}, cn.updateA9Targeting = function(e, t) {
this.abTestA9.runOnEnabledSites(t, function() {
(T.a.isA9DebugMode() || t.isA9Enabled()) && on.updateTargeting(e)
})
}, cn.expires = T.a.isA9DebugMode() ? 0 : 6e5, cn.postBidStash = new A.a, cn.abTestA9 = an.a.forSitesWithRatio(S.a.A9ABTestSiteIds), cn.abTestGoogleRangeSizing = an.a.forSitesWithRatio(S.a.GoogleRangeSizingSiteIds), cn.abTestFooterFloatRangeSizing = new an.b(S.a.GoogleRangeSizingFooterFloatTest), cn);
function cn() {}
var un = (pn.start = function(e) {
var t = this;
this.headerBiddingConfig = e, M.add(function() {
t.processCalls()
}, S.a.apiCheckIntervalMS, "api")
}, pn.stop = function() {
M.clearByName("api")
}, pn.addPlacement = function(e) {
var t = e.getAttribute("data-id").replace(/[\[|\]]/g, "");
e.setAttribute("data-id", t), Un.addPlacements([e], this.headerBiddingConfig)
}, pn.processCalls = function() {
for (var e = this, t = j.a.getTopMostParentWindow().VM_API || []; 0 < t.length;) {
var n = t.pop();
switch (n.call) {
case "add-placement":
try {
this.addPlacement(n.args.placementContainer), "function" == typeof n.onResult && n.onResult(!0)
} catch (e) {
"function" == typeof n.onError && n.onError(e.message)
}
break;
case "open-cmp":
I.a.get().showCMP(), "function" == typeof n.onResult && n.onResult(!0);
break;
case "is-consent-required":
"function" == typeof n.onResult && n.onResult(this.headerBiddingConfig.isEUCountry());
break;
case "dfp-slot-reject":
dn.handleSlotRejectEvent(n.args.stashId), "function" == typeof n.onResult && n.onResult(!0);
break;
case "teads-slot-reject":
Pt.triggerReject(), "function" == typeof n.onResult && n.onResult(!0);
break;
case "is-country":
"function" == typeof n.onResult && n.onResult(-1 != n.args.in.indexOf(this.headerBiddingConfig.getCurrentCountryCode()));
break;
case "get-events":
"function" == typeof n.onResult && n.onResult(T.a.getEvents().asArray().map(function(e) {
return e.getName()
}));
break;
default:
throw "VM API - Call Not Supported..."
}
}
M.add(function() {
e.processCalls()
}, S.a.apiCheckIntervalMS, "api")
}, pn);
function pn() {}
var ln = (fn.prototype.load = function() {
var e = j.a.getTopMostParentWindow();
e.xl8_config = {
p: 1041,
g: 1
}, d.a.loadJSIn(e, "https://cdn.exelator.com/build/static.min.js")
}, fn);
function fn() {}
var mn = (gn.hasCapacity = function(e) {
void 0 === e && (e = .8);
var t = j.a.getTopMostParentWindow();
return "object" != typeof t.performance || "object" != typeof t.performance.memory || "number" != typeof t.performance.memory.totalJSHeapSize || "number" != typeof t.performance.memory.jsHeapSizeLimit || t.performance.memory.totalJSHeapSize / t.performance.memory.jsHeapSizeLimit < e
}, gn);
function gn() {}
var hn = (bn.init = function(n, e) {
function t() {
var e = j.a.getTopMostParentWindow();
! function(e, t) {
e.ym = e.ym || function() {
(e.ym.a = e.ym.a || []).push(arguments)
}, e.ym.l = (new Date).getTime();
var n = t.createElement("script"),
r = t.getElementsByTagName("script")[0];
n.async = 1, n.src = "https://mc.yandex.ru/metrika/tag.js", r.parentNode.insertBefore(n, r)
}(e, j.a.getTopMostParentDocument());
var t = {
clickmap: !1,
trackLinks: !1,
accurateTrackBounce: !0,
defer: !0
};
e.ym(parseInt(n), "init", t), T.a.debug("Init YM with opts :", t)
}
void 0 === e && (e = 0), e ? setTimeout(function() {
t()
}, e) : t()
}, bn);
function bn() {}
var yn = (vn.add = function(e) {
var t = this;
e.forEach(function(e) {
return t.deferredPlacements.push(e)
})
}, vn.process = function(r) {
var t = this,
i = [];
this.deferredPlacements.popEach(function(e) {
var t = e[0],
n = e[1];
j.a.isInView(n) ? Un.renderPlacements(new A.a([
[t, n]
]), r, 1) : i.push([t, n])
}), i.forEach(function(e) {
return t.deferredPlacements.push(e)
})
}, vn.deferredPlacements = new f, vn);
function vn() {}
var wn, In, Tn = function(e, o, s, d) {
return new(s = s || Promise)(function(n, t) {
function r(e) {
try {
a(d.next(e))
} catch (e) {
t(e)
}
}
function i(e) {
try {
a(d.throw(e))
} catch (e) {
t(e)
}
}
function a(e) {
var t;
e.done ? n(e.value) : ((t = e.value) instanceof s ? t : new s(function(e) {
e(t)
})).then(r, i)
}
a((d = d.apply(e, o || [])).next())
})
},
Sn = function(n, r) {
var i, a, o, s = {
label: 0,
sent: function() {
if (1 & o[0]) throw o[1];
return o[1]
},
trys: [],
ops: []
},
e = {
next: t(0),
throw: t(1),
return: t(2)
};
return "function" == typeof Symbol && (e[Symbol.iterator] = function() {
return this
}), e;
function t(t) {
return function(e) {
return function(t) {
if (i) throw new TypeError("Generator is already executing.");
for (; s;) try {
if (i = 1, a && (o = 2 & t[0] ? a.return : t[0] ? a.throw || ((o = a.return) && o.call(a), 0) : a.next) && !(o = o.call(a, t[1])).done) return o;
switch (a = 0, o && (t = [2 & t[0], o.value]), t[0]) {
case 0:
case 1:
o = t;
break;
case 4:
return s.label++, {
value: t[1],
done: !1
};
case 5:
s.label++, a = t[1], t = [0];
continue;
case 7:
t = s.ops.pop(), s.trys.pop();
continue;
default:
if (!(o = 0 < (o = s.trys).length && o[o.length - 1]) && (6 === t[0] || 2 === t[0])) {
s = 0;
continue
}
if (3 === t[0] && (!o || t[1] > o[0] && t[1] < o[3])) {
s.label = t[1];
break
}
if (6 === t[0] && s.label < o[1]) {
s.label = o[1], o = t;
break
}
if (o && s.label < o[2]) {
s.label = o[2], s.ops.push(t);
break
}
o[2] && s.ops.pop(), s.trys.pop();
continue
}
t = r.call(n, s)
} catch (e) {
t = [6, e], a = 0
} finally {
i = o = 0
}
if (5 & t[0]) throw t[1];
return {
value: t[0] ? t[1] : void 0,
done: !0
}
}([t, e])
}
}
},
kn = (jn.init = function() {
return Tn(this, void 0, void 0, function() {
return Sn(this, function(e) {
switch (e.label) {
case 0:
return [4, s.e(4).then(s.bind(null, 48))];
case 1:
return e.sent().Showcase.render(), [2, Promise.resolve()]
}
})
})
}, jn);
function jn() {}(In = wn = wn || {}).SUCCESS = "Success", In.WARN = "Warn", In.FAILURE = "Failure";
var An = (En.updateLog = function(e, t, n) {
function r() {
i.log.set(e, {
message: t,
result: n,
ts: (new Date).getTime()
})
}
var i = this;
this.log.has(e) && this.log.get(e).result == n || r()
}, En.checkDFPSetup = function() {
var e = j.a.getTopMostParentWindow().googletag;
void 0 === e ? this.updateLog("DFP-On-Page", "DFP not currently initialised by publisher", wn.SUCCESS) : (this.updateLog("DFP-On-Page", "DFP is loaded by the publisher", wn.WARN), void 0 === e.pubads() ? this.updateLog("DFP-Pubads", "DFP has loaded, but with no reference to googletag.pubads, appears to be undefined", wn.FAILURE) : (this.updateLog("DFP-Pubads", "DFP has loaded and googletag.pubads is defined", wn.SUCCESS), e.pubads().isInitialLoadDisabled() ? this.updateLog("DFP-Pubads-Initial-Load", "Pubads has been configured and initial load is disabled", wn.SUCCESS) : this.updateLog("DFP-Pubads-Initial-Load", "Pubads has been configured and initial load is NOT disabled", wn.FAILURE)))
}, En.run = function() {
var t = this;
this.checkDFPSetup();
var e = this.log.filter(function(e) {
return e.ts > t.lastChecked
}).mapToArrayOf(function(e, t) {
return {
Key: t,
Result: e.result,
Message: e.message
}
});
0 < e.length && (console.log("\n---------------------------------------\n-- Venatus Integration Checks\n---------------------------------------\n "), console.table(e)), this.lastChecked = (new Date).getTime(), M.add(function() {
return En.run()
}, 1e3)
}, En.lastChecked = (new Date).getTime() - 100, En.log = new A.a, En);
function En() {}
var On = (_n.optionalLoad = function(e) {
var t, n = this;
S.a.usePageProtect && !this.hasLoaded ? (t = setTimeout(function() {
T.a.event("pageprotect-timeout"), n.hasLoaded || (n.hasLoaded = !0, e())
}, 500), _n.load(function() {
clearTimeout(t), T.a.event("pageprotect-load"), e()
})) : e()
}, _n.load = function(e) {
var t = this;
if (!this.loadStarted) {
T.a.info("Page protect is loading...");
try {
var n = j.a.getTopMostParentDocument(),
r = n.createElement("script");
r.type = "text/javascript", r.src = "https://d1oykxszdrgjgl.cloudfront.net/script.js", r.async = !0, r.addEventListener("DOMNodeRemoved", function() {
t.hasLoaded = !0, e && e(), T.a.info("Page protect is ready...")
}), n.getElementsByTagName("head")[0].appendChild(r), this.loadStarted = !0
} catch (e) {
console.error(e)
}
}
}, _n.onReady = function(e) {
var t = this;
this.hasLoaded ? e() : setTimeout(function() {
return t.onReady(e)
}, 100)
}, _n.loadStarted = !1, _n.hasLoaded = !1, _n);
function _n() {}
var Cn = (xn.prototype.fetchAds = function(t, n) {
var r = this;
void 0 === t && (t = !0), void 0 === n && (n = !0), c.ready(function() {
var e = u.a.getElementsByClassName("vm-placement", j.a.getTopMostParentDocument());
n && (e = e.filter(function(e) {
var t = e.getAttribute("data-id");
return !r.headerBiddingConfig.getPlacements().get(t).isRichMedia()
})), r.fetchAdsForPlacements(e, t)
})
}, xn.prototype.fetchAdsForPlacements = function(e, t) {
void 0 === t && (t = !0), T.a.info("Fetching new Ads via API method");
var n = e.map(function(e, t) {
var n = e.getAttribute("data-id"),
r = Un.lastPlacementPos;
return Un.lastPlacementPos++, [r + "-" + n, e]
});
Un.renderPlacements(new A.a(n), this.headerBiddingConfig, this.headerBiddingConfig.isSPAMode() ? 1 : Un.dynamicLoopIndex, t)
}, xn.prototype.exposeApiToGlobalWindow = function() {
this.topWindow.__VM = {}, this.topWindow.__VM.fetchAds = this.fetchAds.bind(this), this.topWindow.__VM.fetchAdsForPlacements = this.fetchAdsForPlacements.bind(this)
}, xn);
function xn(e) {
this.headerBiddingConfig = e, this.topWindow = j.a.getTopMostParentWindow(), this.exposeApiToGlobalWindow()
}
var Rn = s(23),
Dn = (Pn.applyPlacementSizes = function(e, t, n) {
var r, i, a, o, s, d, c;
(E.a.has("preloader") || n.isUsePlacementPreloader()) && (r = n.getPlacement(e).getLargestSize(), i = t.style, a = "footer" === t.getAttribute("data-ref"), o = "float" === t.getAttribute("data-ref"), r && i && "1x1" !== r.getSize() && !a && !o && ((s = t.parentNode) && (d = s.id, /google_ads_iframe/.test(d) && ((c = s.style)["max-width"] = r.getWidth() + "px", c["min-width"] = r.getWidth() + "px", c.height = r.getHeight() + "px")), i.width = r.getWidth() + "px", i["max-width"] = r.getWidth() + "px", i["min-width"] = r.getWidth() + "px", i.height = r.getHeight() + "px", i.display = "flex", i["justify-content"] = "center", i["align-items"] = "center"))
}, Pn.applyInitialVMPlacementStyles = function(e) {
(E.a.has("preloader") || e.isUsePlacementPreloader()) && st.inlineCSS(j.a.getTopMostParentWindow(), ".vm-placement {display:flex} .vm-placement iframe {display: block; margin: 0;}")
}, Pn);
function Pn() {}
var Un = (Nn.isRefreshEnabled = function() {
return 0 < M.itemsScheduled("refresh")
}, Nn.cancelRefresh = function() {
M.clearByName("refresh")
}, Nn.applyPlacementOptions = function(n, e, t) {
return t && e.dfpFlags && e.dfpFlags.forEach(function(e, t) {
n.setAttribute("data-dfp-param-" + t, e)
}), n
}, Nn.addPlacements = function(e, o, s) {
var d = this;
void 0 === s && (s = {});
var t = e.filter(function(e) {
return "true" != e.getAttribute("data-reg")
}).map(function(e) {
var t = e.getAttribute("data-id"),
n = o.isDFPEnabled();
if (!n || S.a.dfpExcludedPlacementIds.has(t) || j.a.getTopMostParentWindow() === c.getOwnerWindow(e)) return e.setAttribute("data-pos", d.lastPlacementPos + ""), e.setAttribute("id", t + "-" + d.lastPlacementPos), s.skipPsa && e.setAttribute("data-skip-psa", "true"), d.lastPlacementPos++, Dn.applyPlacementSizes(t, e, o), Nn.applyPlacementOptions(e, s, n);
var r = c.getOwnerWindow(e);
if (r.frameElement) {
var i = document.createElement("div");
i.setAttribute("class", "vm-placement"), i.setAttribute("data-id", t), i.setAttribute("id", t + "-" + d.lastPlacementPos), i.setAttribute("data-pos", d.lastPlacementPos + ""), i.setAttribute("data-dfp-retag", "true");
var a = r.frameElement.parentNode;
return u.a.getChildrenElementsOfParentElement(a).forEach(function(e) {
"vm-placement" === e.className && a.removeChild(e)
}), a.removeChild(r.frameElement), a.appendChild(i), Dn.applyPlacementSizes(t, i, o), d.lastPlacementPos++, Nn.applyPlacementOptions(i, s, n)
}
return Dn.applyPlacementSizes(t, e, o), Nn.applyPlacementOptions(e, s, n)
});
t.forEach(function(n) {
return S.a.adPreloadStyling.forEach(function(e, t) {
return n.style[t] = e
})
}), this.renderPlacements(this.mapPlacementsToRender(t), o, o.isSPAMode() ? 1 : this.dynamicLoopIndex), this.requestIncrement = !0
}, Nn.renderPlacements = function(a, o, s, t) {
var e = this;
if (void 0 === t && (t = !1), It.provideDynamicAdUnitMappings(o.getAdblockPrebidConfigForPlacements(a)), T.a.event("render-placements"), !S.a.enablePerformanceMonitoring || mn.hasCapacity()) {
var d = 30 <= o.getRefreshAfter() ? 1e3 * o.getRefreshAfter() : 32e3,
c = 1 <= o.getMaxRefreshes() ? o.getMaxRefreshes() : S.a.maxPlacementRefreshes,
n = a.filter(function(e) {
return null !== e.parentNode
});
if (0 < n.length()) {
var u = n.filter(function(e) {
return !("true" == e.getAttribute("prevent-refresh") && 1 < s) && ("true" != e.getAttribute("data-filter-out") && (!(t && 1 < s) || j.a.isViewable(e)))
}),
r = o.getPrebidConfigForPlacements(u, s);
0 < r.length && !E.a.has("no-ads") ? (T.a.event("load-cmp"), I.a.register(function() {
On.optionalLoad(function() {
T.a.event("load-pageprotect"), o.isDFPEnabled() && (T.a.isA9DebugMode() || o.isA9Enabled()) && on.fetchBids(u.values(), o).then(function(e) {
return T.a.debug("A9 Bids", e)
}), T.a.event("request-bids"), O.create(r, function(e) {
try {
var t = U.getWinningBids(o, e, a),
n = u.filter(function(e) {
return "true" != e.getAttribute("data-filter-out")
}),
r = t.filter(function(e) {
return n.has(e.getWinningBid().getPlacementPos() + "-" + e.getWinningBid().getPlacementId())
});
u.forEach(function(e) {
if ("true" == e.getAttribute("data-filter-out")) try {
e.parentNode.removeChild(e)
} catch (e) {}
});
var i = {
currentLoopIndex: s,
refreshAfterMS: d,
maxRefreshes: c
};
o.isDFPEnabled() && !S.a.isShowcaseMode ? dn.requestAgainst(n, r, o, i) : $t.render(n, r, o, i)
} catch (e) {
T.a.error(e)
}
}, s, function(e) {
T.a.error(e)
}, o.isCOPPACompliant(), o.useThirdPartyCMP())
})
}, {
globalConsentLocation: S.a.cmpPortalEndpoint,
storeConsentGlobally: S.a.useNetworkLevelConsentStorage,
enableKidsMode: o.isKidsMode(),
styleChanges: S.a.gdprPreferences.styleChanges,
copyChanges: S.a.gdprPreferences.copyChanges,
functionalList: 0 < S.a.gdprPreferences.functionalList.length ? S.a.gdprPreferences.functionalList : void 0 === j.a.getTopMostParentWindow().vm_cookie_list ? [] : j.a.getTopMostParentWindow().vm_cookie_list,
gdprApplies: (o.isEUCountry() || E.a.has("force-gdpr")) && !E.a.has("override-cmp-timeout"),
cmpOption: o.getCMPOption(),
domain: o.getDomain()
})) : T.a.debug("There are no ad-units for prebid to request");
var i = !1;
try {
i = "true" === y.a.get("data-limited")
} catch (e) {}
o.isRefreshEnabled() && !S.a.isShowcaseMode ? s < c && !i ? (T.a.isDebugMode() && Rn.a.emit("placementsRefresh", {
refreshRate: d,
placements: n.keys().reduce(function(e, t) {
return e[t.split("-")[1]] = !0, e
}, {})
}), this.abTestLegacyRefresh.runOnEnabledSites(o, function() {
M.add(function() {
e.renderPlacements(n, o, s + 1, !t)
}, d, "refresh")
}, function() {
M.add(function() {
e.renderPlacements(n, o, s + 1, !0)
}, d, "refresh")
})) : T.a.debug("Halting refreshes on placements as the maximum of " + c + " has been reached") : T.a.debug("Refresh is disabled...")
} else a.forEach(function(e, t) {
return T.a.debug("Placement " + t + " has been detected as inactive, no bid request made and removed from refresh")
})
} else T.a.warn("Browser performance may be compromised, pausing refresh...")
}, Nn.applyBrowserPolyfill = function(e, t) {
en.isMicrosoft() || en.isOpera() ? d.a.loadJS("https://polyfill.io/v3/polyfill.min.js", function() {
return e()
}, function() {
return t()
}) : e()
}, Nn.startBackgroundProcesses = function() {
var e = this;
setInterval(function() {
return M.process()
}, S.a.schedulerIntervalMS), setInterval(function() {
return O.processNextRequest()
}, S.a.bidRequestInterval), setInterval(function() {
return At.processQueue()
}, S.a.landscapePushIntervalMS), setInterval(function() {
e.requestIncrement && (e.requestIncrement = !1, e.dynamicLoopIndex++)
}, S.a.incrementLoopIntervalMS), T.a.isDebugMode() && setInterval(function() {
return T.a.printEvents()
}, 6e4)
}, Nn.bootstrap = function() {
h.preFetch(), T.a.printSettings(), a.removeExpired(), j.a.hasTopWindowAccess() || T.a.error("Attempting to load Venatus Ad Manager in an unfriendly iFrame"), S.a.isShowcaseMode && kn.init().then(function() {
return T.a.debug("Loaded showcase module in")
})
}, Nn.addLegacySupport = function() {
j.a.getTopMostParentWindow().$___render = function(e) {
$t.renderRichMedia(e).then(function() {})
}
}, Nn.mapPlacementsToRender = function(e) {
return new A.a(e.map(function(e) {
return [e.getAttribute("data-pos") + "-" + e.getAttribute("data-id"), e]
}))
}, Nn.loadUsingScanMode = function() {
var e = this;
this.startBackgroundProcesses(), E.a.has("vm-ic") ? An.run() : (this.bootstrap(), this.addLegacySupport(), n.a.fetchHeaderBiddingConfig(function(a) {
T.a.event("fetched-config"), Dn.applyInitialVMPlacementStyles(a), un.start(a), new Cn(a), Yt.isAdblocked().then(function(e) {
e ? a.isAdblockRecoveryEnabled() ? (T.a.warn("Adblock has been detected, loading Uponit..."), It.load(), It.init(a)) : T.a.warn("Adblock has been detected but Uponit has not been enabled") : T.a.info("Adblock has been not been detected, proceeding as normal...")
}), T.a.debug("Header Bidding Config [" + a.getCurrentCountryCode() + "]:", a), a.isDFPEnabled() && (T.a.event("request-dfp-library"), dn.load(), (T.a.isA9DebugMode() || a.isA9Enabled()) && (T.a.event("request-a9-library"), on.load().then(function() {
return T.a.debug("Loaded A9 Library")
}))), a.isYandexEnabled() && hn.init(a.getYandexTagId(), a.getYandexDelay()), void 0 === j.a.getTopMostParentWindow().__is_non_eu || a.isEUCountry() || j.a.getTopMostParentWindow().__is_non_eu(), T.a.event("using-scan-mode"), T.a.info("Using scan-mode, looking for hard-coded tags in the page"), c.ready(function() {
T.a.event("dom-ready"), T.a.info("DOM is now ready, initiating scan for placement tags");
var r = [],
i = [];
u.a.getElementsByClassName("vm-placement", j.a.getTopMostParentDocument()).forEach(function(n, e) {
var t;
"true" == n.getAttribute("data-reg") ? T.a.warn("Placement already registered") : (T.a.event("found-ad-unit"), t = n.getAttribute("data-id"), n.setAttribute("data-reg", "true"), n.setAttribute("data-pos", e + ""), n.setAttribute("id", t + "-" + e), S.a.adPreloadStyling.forEach(function(e, t) {
return n.style[t] = e
}), Dn.applyPlacementSizes(t, n, a), "string" == typeof n.getAttribute("data-load-in-view") || a.useLazyLoadAds() || E.a.has("lazy-load-ads") ? i.push([e + "-" + t, n]) : r.push([e + "-" + t, n]))
}), e.isInitialLoadEnabled() && e.renderPlacements(new A.a(r), a, 1), yn.add(i)
}, j.a.getTopMostParentWindow()), (E.a.has("force-tracker") || a.getCurrentCountryCode().match(/US|GB/)) && (new ln).load(), setInterval(function() {
return nn.process(a)
}, S.a.dynamicPlacementsCheckInterval), setInterval(function() {
return yn.process(a)
}, S.a.deferredLoadingCheckInterval)
}, function() {
return T.a.error("Failed to fetch header-bidding config")
}))
}, Nn.loadUsingAdblockMode = function() {
var t = this;
this.startBackgroundProcesses(), E.a.has("vm-ic") ? An.run() : (this.bootstrap(), this.addLegacySupport(), n.a.fetchHeaderBiddingConfig(function(i) {
T.a.event("fetched-config"), T.a.debug("Header Bidding Config [" + i.getCurrentCountryCode() + "]:", i), Dn.applyInitialVMPlacementStyles(i), un.start(i), new Cn(i), Yt.isAdblocked().then(function(e) {
e ? (T.a.warn("Adblock has been detected, loading Uponit..."), It.load(), It.init(i), i.isDFPEnabled() && (T.a.event("request-dfp-library"), dn.load()), i.isYandexEnabled() && hn.init(i.getYandexTagId(), i.getYandexDelay()), T.a.event("using-scan-mode"), T.a.info("Using scan-mode, looking for hard-coded tags in the page"), c.ready(function() {
T.a.event("dom-ready"), T.a.info("DOM is now ready, initiating scan for placement tags");
var r = [];
u.a.getElementsByClassName("vm-placement", j.a.getTopMostParentDocument()).forEach(function(n, e) {
T.a.event("found-ad-unit");
var t = n.getAttribute("data-id");
n.setAttribute("data-pos", e + ""), n.setAttribute("id", t + "-" + e), S.a.adPreloadStyling.forEach(function(e, t) {
return n.style[t] = e
}), Dn.applyPlacementSizes(t, n, i), r.push([e + "-" + t, n])
}), t.isInitialLoadEnabled() && t.renderPlacements(new A.a(r), i, 1)
}, j.a.getTopMostParentWindow())) : T.a.info("Adblock has been not been detected, we'll let the page load as normal...")
})
}, function() {
return T.a.error("Failed to fetch header-bidding config")
}))
}, Nn.load = function() {
var e = this;
this.applyBrowserPolyfill(function() {
switch (T.a.event("ad-manager-loaded"), T.a.debug("Loading Venatus Ad Manager [" + S.a.version + "] [" + y.a.get("data-mode") + "]", j.a.getTopMostParentWindow().location.href), T.a.event("applied-polyfill"), y.a.get("data-mode")) {
case "scan":
e.loadUsingScanMode();
break;
case "adblock":
e.loadUsingAdblockMode();
break;
default:
T.a.error("Attempting to use " + y.a.get("data-mode") + " mode, which is not supported...")
}
}, function() {
return T.a.error("Failed to apply browser polyfill")
})
}, Nn.isInitialLoadEnabled = function() {
try {
var e = "true" != y.a.get("data-disable-initial-load");
return e || T.a.info("Initial Ad Load Is DISABLED"), e
} catch (e) {
return !0
}
}, Nn.lastPlacementPos = 1e3, Nn.dynamicLoopIndex = 1, Nn.requestIncrement = !1, Nn.abTestLegacyRefresh = an.a.forAccounts(S.a.LegacyRefreshLogicABTestAccountIds), Nn);
function Nn() {}
Un.load()
}, function(e, exports, t) {
t(26), e.exports = t(35)
}, function(e, exports, t) {
"use strict";
var c = t(29),
u = {};
u.rules = t(32).map(function(e) {
return {
rule: e,
suffix: e.replace(/^(\*\.|\!)/, ""),
punySuffix: -1,
wildcard: "*" === e.charAt(0),
exception: "!" === e.charAt(0)
}
}), u.endsWith = function(e, t) {
return -1 !== e.indexOf(t, e.length - t.length)
}, u.findRule = function(e) {
var n = c.toASCII(e);
return u.rules.reduce(function(e, t) {
return -1 === t.punySuffix && (t.punySuffix = c.toASCII(t.suffix)), u.endsWith(n, "." + t.punySuffix) || n === t.punySuffix ? t : e
}, null)
}, exports.errorCodes = {
DOMAIN_TOO_SHORT: "Domain name too short.",
DOMAIN_TOO_LONG: "Domain name too long. It should be no more than 255 chars.",
LABEL_STARTS_WITH_DASH: "Domain name label can not start with a dash.",
LABEL_ENDS_WITH_DASH: "Domain name label can not end with a dash.",
LABEL_TOO_LONG: "Domain name label should be at most 63 chars long.",
LABEL_TOO_SHORT: "Domain name label should be at least 1 character long.",
LABEL_INVALID_CHARS: "Domain name label can only contain alphanumeric characters or dashes."
}, u.validate = function(e) {
var t = c.toASCII(e);
if (t.length < 1) return "DOMAIN_TOO_SHORT";
if (255 < t.length) return "DOMAIN_TOO_LONG";
for (var n, r = t.split("."), i = 0; i < r.length; ++i) {
if (!(n = r[i]).length) return "LABEL_TOO_SHORT";
if (63 < n.length) return "LABEL_TOO_LONG";
if ("-" === n.charAt(0)) return "LABEL_STARTS_WITH_DASH";
if ("-" === n.charAt(n.length - 1)) return "LABEL_ENDS_WITH_DASH";
if (!/^[a-z0-9\-]+$/.test(n)) return "LABEL_INVALID_CHARS"
}
}, exports.parse = function(e) {
if ("string" != typeof e) throw new TypeError("Domain name must be a string.");
var t = e.slice(0).toLowerCase();
"." === t.charAt(t.length - 1) && (t = t.slice(0, t.length - 1));
var n = u.validate(t);
if (n) return {
input: e,
error: {
message: exports.errorCodes[n],
code: n
}
};
var r = {
input: e,
tld: null,
sld: null,
domain: null,
subdomain: null,
listed: !1
},
i = t.split(".");
if ("local" === i[i.length - 1]) return r;
function a() {
return /xn--/.test(t) && (r.domain && (r.domain = c.toASCII(r.domain)), r.subdomain && (r.subdomain = c.toASCII(r.subdomain))), r
}
var o = u.findRule(t);
if (!o) return i.length < 2 ? r : (r.tld = i.pop(), r.sld = i.pop(), r.domain = [r.sld, r.tld].join("."), i.length && (r.subdomain = i.pop()), a());
r.listed = !0;
var s = o.suffix.split("."),
d = i.slice(0, i.length - s.length);
return o.exception && d.push(s.shift()), r.tld = s.join("."), d.length ? (o.wildcard && (s.unshift(d.pop()), r.tld = s.join(".")), d.length && (r.sld = d.pop(), r.domain = [r.sld, r.tld].join("."), d.length && (r.subdomain = d.join("."))), a()) : a()
}, exports.get = function(e) {
return e && exports.parse(e).domain || null
}, exports.isValid = function(e) {
var t = exports.parse(e);
return Boolean(t.domain && t.listed)
}
}, function(e, exports, h) {
(function(f, m) {
var g; /*! https://mths.be/punycode v1.4.1 by @mathias */
! function() {
exports && exports.nodeType, f && f.nodeType;
var e = "object" == typeof m && m;
e.global !== e && e.window !== e && e.self;
var t, b = 2147483647,
y = 36,
v = 1,
w = 26,
i = 38,
a = 700,
I = 72,
T = 128,
S = "-",
n = /^xn--/,
r = /[^\x20-\x7E]/,
o = /[\x2E\u3002\uFF0E\uFF61]/g,
s = {
overflow: "Overflow: input needs wider integers to process",
"not-basic": "Illegal input >= 0x80 (not a basic code point)",
"invalid-input": "Invalid input"
},
d = y - v,
k = Math.floor,
j = String.fromCharCode;
function A(e) {
throw new RangeError(s[e])
}
function c(e, t) {
for (var n = e.length, r = []; n--;) r[n] = t(e[n]);
return r
}
function u(e, t) {
var n = e.split("@"),
r = "";
return 1 < n.length && (r = n[0] + "@", e = n[1]), r + c((e = e.replace(o, ".")).split("."), t).join(".")
}
function E(e) {
for (var t, n, r = [], i = 0, a = e.length; i < a;) 55296 <= (t = e.charCodeAt(i++)) && t <= 56319 && i < a ? 56320 == (64512 & (n = e.charCodeAt(i++))) ? r.push(((1023 & t) << 10) + (1023 & n) + 65536) : (r.push(t), i--) : r.push(t);
return r
}
function O(e) {
return c(e, function(e) {
var t = "";
return 65535 < e && (t += j((e -= 65536) >>> 10 & 1023 | 55296), e = 56320 | 1023 & e), t += j(e)
}).join("")
}
function _(e, t) {
return e + 22 + 75 * (e < 26) - ((0 != t) << 5)
}
function C(e, t, n) {
var r = 0;
for (e = n ? k(e / a) : e >> 1, e += k(e / t); d * w >> 1 < e; r += y) e = k(e / d);
return k(r + (d + 1) * e / (e + i))
}
function p(e) {
var t, n, r, i, a, o, s, d, c, u, p = [],
l = e.length,
f = 0,
m = T,
g = I,
h = e.lastIndexOf(S);
for (h < 0 && (h = 0), n = 0; n < h; ++n) 128 <= e.charCodeAt(n) && A("not-basic"), p.push(e.charCodeAt(n));
for (r = 0 < h ? h + 1 : 0; r < l;) {
for (i = f, a = 1, o = y; l <= r && A("invalid-input"), u = e.charCodeAt(r++), (y <= (s = u - 48 < 10 ? u - 22 : u - 65 < 26 ? u - 65 : u - 97 < 26 ? u - 97 : y) || s > k((b - f) / a)) && A("overflow"), f += s * a, !(s < (d = o <= g ? v : g + w <= o ? w : o - g)); o += y) a > k(b / (c = y - d)) && A("overflow"), a *= c;
g = C(f - i, t = p.length + 1, 0 == i), k(f / t) > b - m && A("overflow"), m += k(f / t), f %= t, p.splice(f++, 0, m)
}
return O(p)
}
function l(e) {
for (var t, n, r, i, a, o, s, d, c, u, p, l = [], f = (e = E(e)).length, m = T, g = I, h = t = 0; h < f; ++h)(d = e[h]) < 128 && l.push(j(d));
for (n = r = l.length, r && l.push(S); n < f;) {
for (i = b, h = 0; h < f; ++h) m <= (d = e[h]) && d < i && (i = d);
for (i - m > k((b - t) / (c = n + 1)) && A("overflow"), t += (i - m) * c, m = i, h = 0; h < f; ++h)
if ((d = e[h]) < m && ++t > b && A("overflow"), d == m) {
for (a = t, o = y; !(a < (s = o <= g ? v : g + w <= o ? w : o - g)); o += y) p = a - s, u = y - s, l.push(j(_(s + p % u, 0))), a = k(p / u);
l.push(j(_(a, 0))), g = C(t, c, n == r), t = 0, ++n
}++ t, ++m
}
return l.join("")
}
t = {
version: "1.4.1",
ucs2: {
decode: E,
encode: O
},
decode: p,
encode: l,
toASCII: function(e) {
return u(e, function(e) {
return r.test(e) ? "xn--" + l(e) : e
})
},
toUnicode: function(e) {
return u(e, function(e) {
return n.test(e) ? p(e.slice(4).toLowerCase()) : e
})
}
}, void 0 === (g = function() {
return t
}.call(exports, h, exports, f)) || (f.exports = g)
}()
}).call(this, h(30)(e), h(31))
}, function(e, exports) {
e.exports = function(e) {
return e.webpackPolyfill || (e.deprecate = function() {}, e.paths = [], e.children || (e.children = []), Object.defineProperty(e, "loaded", {
enumerable: !0,
get: function() {
return e.l
}
}), Object.defineProperty(e, "id", {
enumerable: !0,
get: function() {
return e.i
}
}), e.webpackPolyfill = 1), e
}
}, function(e, exports) {
var t = function() {
return this
}();
try {
t = t || new Function("return this")()
} catch (e) {
"object" == typeof window && (t = window)
}
e.exports = t
}, function(e) {
e.exports = JSON.parse('["ac","com.ac","edu.ac","gov.ac","net.ac","mil.ac","org.ac","ad","nom.ad","ae","co.ae","net.ae","org.ae","sch.ae","ac.ae","gov.ae","mil.ae","aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","aircraft.aero","airline.aero","airport.aero","air-surveillance.aero","airtraffic.aero","air-traffic-control.aero","ambulance.aero","amusement.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","freight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","gov.af","com.af","org.af","net.af","edu.af","ag","com.ag","org.ag","net.ag","co.ag","nom.ag","ai","off.ai","com.ai","net.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","ed.ao","gv.ao","og.ao","co.ao","pb.ao","it.ao","aq","ar","com.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","net.ar","org.ar","tur.ar","arpa","e164.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","co.at","gv.at","or.at","au","com.au","net.au","org.au","edu.au","gov.au","asn.au","id.au","info.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","education.tas.edu.au","schools.nsw.edu.au","aw","com.aw","ax","az","com.az","net.az","int.az","gov.az","org.az","edu.az","info.az","pp.az","mil.az","name.az","pro.az","biz.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","bh","com.bh","edu.bh","net.bh","org.bh","gov.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","asso.bj","barreau.bj","gouv.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","org.bo","net.bo","mil.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","politica.bo","profesional.bo","plurinacional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bhz.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","cri.br","cuiaba.br","curitiba.br","def.br","ecn.br","eco.br","edu.br","emp.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","lel.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","net.bs","org.bs","edu.bs","gov.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","com.bz","net.bz","org.bz","edu.bz","gov.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","org.ci","or.ci","com.ci","co.ci","edu.ci","ed.ci","ac.ci","net.ci","go.ci","asso.ci","aéroport.ci","int.ci","presse.ci","md.ci","gouv.ci","*.ck","!www.ck","cl","aprendemas.cl","co.cl","gob.cl","gov.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","net.cn","org.cn","mil.cn","公司.cn","网络.cn","網絡.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gz.cn","gx.cn","ha.cn","hb.cn","he.cn","hi.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","xj.cn","xz.cn","yn.cn","zj.cn","hk.cn","mo.cn","tw.cn","co","arts.co","com.co","edu.co","firm.co","gov.co","info.co","int.co","mil.co","net.co","nom.co","org.co","rec.co","web.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","org.cu","net.cu","gov.cu","inf.cu","cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","name.cy","net.cy","org.cy","parliament.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","com.dm","net.dm","org.dm","edu.dm","gov.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","com.dz","org.dz","net.dz","gov.dz","edu.dz","asso.dz","pol.dz","art.dz","ec","com.ec","info.ec","net.ec","fin.ec","k12.ec","med.ec","pro.ec","org.ec","edu.ec","gov.ec","gob.ec","mil.ec","edu","ee","edu.ee","gov.ee","riik.ee","lib.ee","med.ee","com.ee","pri.ee","aip.ee","org.ee","fie.ee","eg","com.eg","edu.eg","eun.eg","gov.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","*.er","es","com.es","nom.es","org.es","gob.es","edu.es","et","com.et","gov.et","org.et","edu.et","biz.et","name.et","info.et","net.et","eu","fi","aland.fi","fj","ac.fj","biz.fj","com.fj","gov.fj","info.fj","mil.fj","name.fj","net.fj","org.fj","pro.fj","*.fk","fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","aeroport.fr","avocat.fr","avoues.fr","cci.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","geometre-expert.fr","greta.fr","huissier-justice.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","ga","gb","gd","ge","com.ge","edu.ge","gov.ge","org.ge","mil.ge","net.ge","pvt.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","org.gh","mil.gh","gi","com.gi","ltd.gi","gov.gi","mod.gi","edu.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","org.gn","net.gn","gov","gp","com.gp","net.gp","mobi.gp","edu.gp","org.gp","asso.gp","gq","gr","com.gr","edu.gr","net.gr","org.gr","gov.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","公司.hk","教育.hk","敎育.hk","政府.hk","個人.hk","个人.hk","箇人.hk","網络.hk","网络.hk","组織.hk","網絡.hk","网絡.hk","组织.hk","組織.hk","組织.hk","hm","hn","com.hn","edu.hn","org.hn","net.hn","mil.hn","gob.hn","hr","iz.hr","from.hr","name.hr","com.hr","ht","com.ht","shop.ht","firm.ht","info.ht","adult.ht","net.ht","pro.ht","org.ht","med.ht","art.ht","coop.ht","pol.ht","asso.ht","edu.ht","rel.ht","gouv.ht","perso.ht","hu","co.hu","info.hu","org.hu","priv.hu","sport.hu","tm.hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","reklam.hu","sex.hu","shop.hu","suli.hu","szex.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","im","ac.im","co.im","com.im","ltd.co.im","net.im","org.im","plc.co.im","tt.im","tv.im","in","co.in","firm.in","net.in","org.in","gen.in","ind.in","nic.in","ac.in","edu.in","res.in","gov.in","mil.in","info","int","eu.int","io","com.io","iq","gov.iq","edu.iq","mil.iq","com.iq","org.iq","net.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","net.is","com.is","edu.is","gov.is","org.is","int.is","it","gov.it","edu.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentino.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","balsan.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano-altoadige.it","bolzano.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","bozen.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bulsan.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza-brianza.it","monza-e-della-brianza.it","monza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","suedtirol.it","südtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","com.jo","org.jo","net.jo","edu.jo","sch.jo","gov.jo","mil.jo","name.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","æ ƒæœ¨.jp","愛知.jp","愛媛.jp","兵庫.jp","熊本.jp","茨城.jp","北海道.jp","千葉.jp","和歌山.jp","é•·å´Ž.jp","長野.jp","新潟.jp","青森.jp","静岡.jp","東京.jp","石川.jp","埼玉.jp","三重.jp","京都.jp","佐賀.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岩手.jp","岐阜.jp","岡山.jp","å³¶æ ¹.jp","広島.jp","徳島.jp","沖縄.jp","滋賀.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","*.kitakyushu.jp","*.kobe.jp","*.nagoya.jp","*.sapporo.jp","*.sendai.jp","*.yokohama.jp","!city.kawasaki.jp","!city.kitakyushu.jp","!city.kobe.jp","!city.nagoya.jp","!city.sapporo.jp","!city.sendai.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","org.kg","net.kg","com.kg","edu.kg","gov.kg","mil.kg","*.kh","ki","edu.ki","biz.ki","net.ki","org.ki","gov.ki","info.ki","com.ki","km","org.km","nom.km","gov.km","prd.km","tm.km","edu.km","mil.km","ass.km","com.km","coop.km","asso.km","presse.km","medecin.km","notaires.km","pharmaciens.km","veterinaire.km","gouv.km","kn","net.kn","org.kn","edu.kn","gov.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","edu.ky","gov.ky","com.ky","org.ky","net.ky","kz","org.kz","edu.kz","net.kz","gov.kz","mil.kz","com.kz","la","int.la","net.la","info.la","edu.la","gov.la","per.la","com.la","org.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","com.lc","net.lc","co.lc","org.lc","edu.lc","gov.lc","li","lk","gov.lk","sch.lk","net.lk","int.lk","com.lk","org.lk","edu.lk","ngo.lk","soc.lk","web.lk","ltd.lk","assn.lk","grp.lk","hotel.lk","ac.lk","lr","com.lr","edu.lr","gov.lr","org.lr","net.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","com.lv","edu.lv","gov.lv","org.lv","mil.lv","id.lv","net.lv","asn.lv","conf.lv","ly","com.ly","net.ly","gov.ly","plc.ly","edu.ly","sch.ly","med.ly","org.ly","id.ly","ma","co.ma","net.ma","gov.ma","org.ma","ac.ma","press.ma","mc","tm.mc","asso.mc","md","me","co.me","net.me","org.me","edu.me","ac.me","gov.me","its.me","priv.me","mg","org.mg","nom.mg","gov.mg","prd.mg","tm.mg","edu.mg","mil.mg","com.mg","co.mg","mh","mil","mk","com.mk","org.mk","net.mk","edu.mk","gov.mk","inf.mk","name.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","gov.mn","edu.mn","org.mn","mo","com.mo","net.mo","org.mo","edu.mo","gov.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","com.mu","net.mu","org.mu","gov.mu","ac.mu","co.mu","or.mu","museum","academy.museum","agriculture.museum","air.museum","airguard.museum","alabama.museum","alaska.museum","amber.museum","ambulance.museum","american.museum","americana.museum","americanantiques.museum","americanart.museum","amsterdam.museum","and.museum","annefrank.museum","anthro.museum","anthropology.museum","antiques.museum","aquarium.museum","arboretum.museum","archaeological.museum","archaeology.museum","architecture.museum","art.museum","artanddesign.museum","artcenter.museum","artdeco.museum","arteducation.museum","artgallery.museum","arts.museum","artsandcrafts.museum","asmatart.museum","assassination.museum","assisi.museum","association.museum","astronomy.museum","atlanta.museum","austin.museum","australia.museum","automotive.museum","aviation.museum","axis.museum","badajoz.museum","baghdad.museum","bahn.museum","bale.museum","baltimore.museum","barcelona.museum","baseball.museum","basel.museum","baths.museum","bauern.museum","beauxarts.museum","beeldengeluid.museum","bellevue.museum","bergbau.museum","berkeley.museum","berlin.museum","bern.museum","bible.museum","bilbao.museum","bill.museum","birdart.museum","birthplace.museum","bonn.museum","boston.museum","botanical.museum","botanicalgarden.museum","botanicgarden.museum","botany.museum","brandywinevalley.museum","brasil.museum","bristol.museum","british.museum","britishcolumbia.museum","broadcast.museum","brunel.museum","brussel.museum","brussels.museum","bruxelles.museum","building.museum","burghof.museum","bus.museum","bushey.museum","cadaques.museum","california.museum","cambridge.museum","can.museum","canada.museum","capebreton.museum","carrier.museum","cartoonart.museum","casadelamoneda.museum","castle.museum","castres.museum","celtic.museum","center.museum","chattanooga.museum","cheltenham.museum","chesapeakebay.museum","chicago.museum","children.museum","childrens.museum","childrensgarden.museum","chiropractic.museum","chocolate.museum","christiansburg.museum","cincinnati.museum","cinema.museum","circus.museum","civilisation.museum","civilization.museum","civilwar.museum","clinton.museum","clock.museum","coal.museum","coastaldefence.museum","cody.museum","coldwar.museum","collection.museum","colonialwilliamsburg.museum","coloradoplateau.museum","columbia.museum","columbus.museum","communication.museum","communications.museum","community.museum","computer.museum","computerhistory.museum","comunicações.museum","contemporary.museum","contemporaryart.museum","convent.museum","copenhagen.museum","corporation.museum","correios-e-telecomunicações.museum","corvette.museum","costume.museum","countryestate.museum","county.museum","crafts.museum","cranbrook.museum","creation.museum","cultural.museum","culturalcenter.museum","culture.museum","cyber.museum","cymru.museum","dali.museum","dallas.museum","database.museum","ddr.museum","decorativearts.museum","delaware.museum","delmenhorst.museum","denmark.museum","depot.museum","design.museum","detroit.museum","dinosaur.museum","discovery.museum","dolls.museum","donostia.museum","durham.museum","eastafrica.museum","eastcoast.museum","education.museum","educational.museum","egyptian.museum","eisenbahn.museum","elburg.museum","elvendrell.museum","embroidery.museum","encyclopedic.museum","england.museum","entomology.museum","environment.museum","environmentalconservation.museum","epilepsy.museum","essex.museum","estate.museum","ethnology.museum","exeter.museum","exhibition.museum","family.museum","farm.museum","farmequipment.museum","farmers.museum","farmstead.museum","field.museum","figueres.museum","filatelia.museum","film.museum","fineart.museum","finearts.museum","finland.museum","flanders.museum","florida.museum","force.museum","fortmissoula.museum","fortworth.museum","foundation.museum","francaise.museum","frankfurt.museum","franziskaner.museum","freemasonry.museum","freiburg.museum","fribourg.museum","frog.museum","fundacio.museum","furniture.museum","gallery.museum","garden.museum","gateway.museum","geelvinck.museum","gemological.museum","geology.museum","georgia.museum","giessen.museum","glas.museum","glass.museum","gorge.museum","grandrapids.museum","graz.museum","guernsey.museum","halloffame.museum","hamburg.museum","handson.museum","harvestcelebration.museum","hawaii.museum","health.museum","heimatunduhren.museum","hellas.museum","helsinki.museum","hembygdsforbund.museum","heritage.museum","histoire.museum","historical.museum","historicalsociety.museum","historichouses.museum","historisch.museum","historisches.museum","history.museum","historyofscience.museum","horology.museum","house.museum","humanities.museum","illustration.museum","imageandsound.museum","indian.museum","indiana.museum","indianapolis.museum","indianmarket.museum","intelligence.museum","interactive.museum","iraq.museum","iron.museum","isleofman.museum","jamison.museum","jefferson.museum","jerusalem.museum","jewelry.museum","jewish.museum","jewishart.museum","jfk.museum","journalism.museum","judaica.museum","judygarland.museum","juedisches.museum","juif.museum","karate.museum","karikatur.museum","kids.museum","koebenhavn.museum","koeln.museum","kunst.museum","kunstsammlung.museum","kunstunddesign.museum","labor.museum","labour.museum","lajolla.museum","lancashire.museum","landes.museum","lans.museum","läns.museum","larsson.museum","lewismiller.museum","lincoln.museum","linz.museum","living.museum","livinghistory.museum","localhistory.museum","london.museum","losangeles.museum","louvre.museum","loyalist.museum","lucerne.museum","luxembourg.museum","luzern.museum","mad.museum","madrid.museum","mallorca.museum","manchester.museum","mansion.museum","mansions.museum","manx.museum","marburg.museum","maritime.museum","maritimo.museum","maryland.museum","marylhurst.museum","media.museum","medical.museum","medizinhistorisches.museum","meeres.museum","memorial.museum","mesaverde.museum","michigan.museum","midatlantic.museum","military.museum","mill.museum","miners.museum","mining.museum","minnesota.museum","missile.museum","missoula.museum","modern.museum","moma.museum","money.museum","monmouth.museum","monticello.museum","montreal.museum","moscow.museum","motorcycle.museum","muenchen.museum","muenster.museum","mulhouse.museum","muncie.museum","museet.museum","museumcenter.museum","museumvereniging.museum","music.museum","national.museum","nationalfirearms.museum","nationalheritage.museum","nativeamerican.museum","naturalhistory.museum","naturalhistorymuseum.museum","naturalsciences.museum","nature.museum","naturhistorisches.museum","natuurwetenschappen.museum","naumburg.museum","naval.museum","nebraska.museum","neues.museum","newhampshire.museum","newjersey.museum","newmexico.museum","newport.museum","newspaper.museum","newyork.museum","niepce.museum","norfolk.museum","north.museum","nrw.museum","nyc.museum","nyny.museum","oceanographic.museum","oceanographique.museum","omaha.museum","online.museum","ontario.museum","openair.museum","oregon.museum","oregontrail.museum","otago.museum","oxford.museum","pacific.museum","paderborn.museum","palace.museum","paleo.museum","palmsprings.museum","panama.museum","paris.museum","pasadena.museum","pharmacy.museum","philadelphia.museum","philadelphiaarea.museum","philately.museum","phoenix.museum","photography.museum","pilots.museum","pittsburgh.museum","planetarium.museum","plantation.museum","plants.museum","plaza.museum","portal.museum","portland.museum","portlligat.museum","posts-and-telecommunications.museum","preservation.museum","presidio.museum","press.museum","project.museum","public.museum","pubol.museum","quebec.museum","railroad.museum","railway.museum","research.museum","resistance.museum","riodejaneiro.museum","rochester.museum","rockart.museum","roma.museum","russia.museum","saintlouis.museum","salem.museum","salvadordali.museum","salzburg.museum","sandiego.museum","sanfrancisco.museum","santabarbara.museum","santacruz.museum","santafe.museum","saskatchewan.museum","satx.museum","savannahga.museum","schlesisches.museum","schoenbrunn.museum","schokoladen.museum","school.museum","schweiz.museum","science.museum","scienceandhistory.museum","scienceandindustry.museum","sciencecenter.museum","sciencecenters.museum","science-fiction.museum","sciencehistory.museum","sciences.museum","sciencesnaturelles.museum","scotland.museum","seaport.museum","settlement.museum","settlers.museum","shell.museum","sherbrooke.museum","sibenik.museum","silk.museum","ski.museum","skole.museum","society.museum","sologne.museum","soundandvision.museum","southcarolina.museum","southwest.museum","space.museum","spy.museum","square.museum","stadt.museum","stalbans.museum","starnberg.museum","state.museum","stateofdelaware.museum","station.museum","steam.museum","steiermark.museum","stjohn.museum","stockholm.museum","stpetersburg.museum","stuttgart.museum","suisse.museum","surgeonshall.museum","surrey.museum","svizzera.museum","sweden.museum","sydney.museum","tank.museum","tcm.museum","technology.museum","telekommunikation.museum","television.museum","texas.museum","textile.museum","theater.museum","time.museum","timekeeping.museum","topology.museum","torino.museum","touch.museum","town.museum","transport.museum","tree.museum","trolley.museum","trust.museum","trustee.museum","uhren.museum","ulm.museum","undersea.museum","university.museum","usa.museum","usantiques.museum","usarts.museum","uscountryestate.museum","usculture.museum","usdecorativearts.museum","usgarden.museum","ushistory.museum","ushuaia.museum","uslivinghistory.museum","utah.museum","uvic.museum","valley.museum","vantaa.museum","versailles.museum","viking.museum","village.museum","virginia.museum","virtual.museum","virtuel.museum","vlaanderen.museum","volkenkunde.museum","wales.museum","wallonie.museum","war.museum","washingtondc.museum","watchandclock.museum","watch-and-clock.museum","western.museum","westfalen.museum","whaling.museum","wildlife.museum","williamsburg.museum","windmill.museum","workshop.museum","york.museum","yorkshire.museum","yosemite.museum","youth.museum","zoological.museum","zoology.museum","ירושלים.museum","иком.museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","museum.mw","net.mw","org.mw","mx","com.mx","org.mx","gob.mx","edu.mx","net.mx","my","com.my","net.my","org.my","gov.my","edu.my","mil.my","name.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","info.na","pro.na","name.na","school.na","or.na","dr.na","us.na","mx.na","ca.na","in.na","cc.na","tv.na","ws.na","mobi.na","co.na","com.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","com.nf","net.nf","per.nf","rec.nf","web.nf","arts.nf","firm.nf","info.nf","other.nf","store.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","vgs.no","fylkesbibl.no","folkebibl.no","museum.no","idrett.no","priv.no","mil.no","stat.no","dep.no","kommune.no","herad.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","Ã¥krehamn.no","algard.no","Ã¥lgÃ¥rd.no","arna.no","brumunddal.no","bryne.no","bronnoysund.no","brønnøysund.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevÃ¥g.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","rÃ¥holt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","afjord.no","Ã¥fjord.no","agdenes.no","al.no","Ã¥l.no","alesund.no","Ã¥lesund.no","alstahaug.no","alta.no","áltá.no","alaheadju.no","álaheadju.no","alvdal.no","amli.no","Ã¥mli.no","amot.no","Ã¥mot.no","andebu.no","andoy.no","andøy.no","andasuolo.no","ardal.no","Ã¥rdal.no","aremark.no","arendal.no","Ã¥s.no","aseral.no","Ã¥seral.no","asker.no","askim.no","askvoll.no","askoy.no","askøy.no","asnes.no","Ã¥snes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","balestrand.no","ballangen.no","balat.no","bálát.no","balsfjord.no","bahccavuotna.no","báhccavuotna.no","bamble.no","bardu.no","beardu.no","beiarn.no","bajddar.no","bájddar.no","baidar.no","báidár.no","berg.no","bergen.no","berlevag.no","berlevÃ¥g.no","bearalvahki.no","bearalváhki.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","badaddja.no","bÃ¥dÃ¥ddjÃ¥.no","budejju.no","bokn.no","bremanger.no","bronnoy.no","brønnøy.no","bygland.no","bykle.no","barum.no","bærum.no","bo.telemark.no","bø.telemark.no","bo.nordland.no","bø.nordland.no","bievat.no","bievát.no","bomlo.no","bømlo.no","batsfjord.no","bÃ¥tsfjord.no","bahcavuotna.no","báhcavuotna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","donna.no","dønna.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenes.no","evenassi.no","evenášši.no","evje-og-hornnes.no","farsund.no","fauske.no","fuossko.no","fuoisku.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","fla.no","flÃ¥.no","folldal.no","forsand.no","fosnes.no","frei.no","frogn.no","froland.no","frosta.no","frana.no","fræna.no","froya.no","frøya.no","fusa.no","fyresdal.no","forde.no","førde.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","gildeskal.no","gildeskÃ¥l.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","kraanghke.no","krÃ¥anghke.no","grue.no","gulen.no","hadsel.no","halden.no","halsa.no","hamar.no","hamaroy.no","habmer.no","hábmer.no","hapmir.no","hápmir.no","hammerfest.no","hammarfeasta.no","hámmárfeasta.no","haram.no","hareid.no","harstad.no","hasvik.no","aknoluokta.no","ákÅ‹oluokta.no","hattfjelldal.no","aarborte.no","haugesund.no","hemne.no","hemnes.no","hemsedal.no","heroy.more-og-romsdal.no","herøy.møre-og-romsdal.no","heroy.nordland.no","herøy.nordland.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtÃ¥len.no","hornindal.no","horten.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","hagebostad.no","hægebostad.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","ha.no","hÃ¥.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","jevnaker.no","jondal.no","jolster.no","jølster.no","karasjok.no","karasjohka.no","kárášjohka.no","karlsoy.no","galsa.no","gálsá.no","karmoy.no","karmøy.no","kautokeino.no","guovdageaidnu.no","klepp.no","klabu.no","klæbu.no","kongsberg.no","kongsvinger.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvalsund.no","rahkkeravju.no","ráhkkerávju.no","kvam.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","kvafjord.no","kvæfjord.no","giehtavuoatna.no","kvanangen.no","kvænangen.no","navuotna.no","návuotna.no","kafjord.no","kÃ¥fjord.no","gaivuotna.no","gáivuotna.no","larvik.no","lavangen.no","lavagis.no","loabat.no","loabát.no","lebesby.no","davvesiida.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","leangaviika.no","leaÅ‹gaviika.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindesnes.no","lindas.no","lindÃ¥s.no","lom.no","loppa.no","lahppi.no","láhppi.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","ivgu.no","lardal.no","lerdal.no","lærdal.no","lodingen.no","lødingen.no","lorenskog.no","lørenskog.no","loten.no","løten.no","malvik.no","masoy.no","mÃ¥søy.no","muosat.no","muosát.no","mandal.no","marker.no","marnardal.no","masfjorden.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","merÃ¥ker.no","moareke.no","moÃ¥reke.no","midsund.no","midtre-gauldal.no","modalen.no","modum.no","molde.no","moskenes.no","moss.no","mosvik.no","malselv.no","mÃ¥lselv.no","malatvuopmi.no","málatvuopmi.no","namdalseid.no","aejrie.no","namsos.no","namsskogan.no","naamesjevuemie.no","nååmesjevuemie.no","laakesvuemie.no","nannestad.no","narvik.no","narviika.no","naustdal.no","nedre-eiker.no","nes.akershus.no","nes.buskerud.no","nesna.no","nesodden.no","nesseby.no","unjarga.no","unjárga.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","davvenjarga.no","davvenjárga.no","nordre-land.no","nordreisa.no","raisa.no","ráisa.no","nore-og-uvdal.no","notodden.no","naroy.no","nærøy.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","oppdal.no","oppegard.no","oppegÃ¥rd.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","os.hedmark.no","os.hordaland.no","osen.no","osteroy.no","osterøy.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","radoy.no","radøy.no","rakkestad.no","rana.no","ruovat.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","rissa.no","risor.no","risør.no","roan.no","rollag.no","rygge.no","ralingen.no","rælingen.no","rodoy.no","rødøy.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","rade.no","rÃ¥de.no","salangen.no","siellak.no","saltdal.no","salat.no","sálát.no","sálat.no","samnanger.no","sande.more-og-romsdal.no","sande.møre-og-romsdal.no","sande.vestfold.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","sigdal.no","siljan.no","sirdal.no","skaun.no","skedsmo.no","ski.no","skien.no","skiptvet.no","skjervoy.no","skjervøy.no","skierva.no","skiervá.no","skjak.no","skjÃ¥k.no","skodje.no","skanland.no","skÃ¥nland.no","skanit.no","skánit.no","smola.no","smøla.no","snillfjord.no","snasa.no","snÃ¥sa.no","snoasa.no","snaase.no","snÃ¥ase.no","sogndal.no","sokndal.no","sola.no","solund.no","songdalen.no","sortland.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","omasvuotna.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","sogne.no","søgne.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","matta-varjjat.no","mátta-várjjat.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sorum.no","sørum.no","tana.no","deatnu.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","dielddanuorri.no","tjome.no","tjøme.no","tokke.no","tolga.no","torsken.no","tranoy.no","tranøy.no","tromso.no","tromsø.no","tromsa.no","romsa.no","trondheim.no","troandin.no","trysil.no","trana.no","træna.no","trogstad.no","trøgstad.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","divtasvuodna.no","divttasvuotna.no","tysnes.no","tysvar.no","tysvær.no","tonsberg.no","tønsberg.no","ullensaker.no","ullensvang.no","ulvik.no","utsira.no","vadso.no","vadsø.no","cahcesuolo.no","čáhcesuolo.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","vefsn.no","vaapste.no","vega.no","vegarshei.no","vegÃ¥rshei.no","vennesla.no","verdal.no","verran.no","vestby.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvÃ¥gøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","volda.no","voss.no","varoy.no","værøy.no","vagan.no","vÃ¥gan.no","voagat.no","vagsoy.no","vÃ¥gsøy.no","vaga.no","vÃ¥gÃ¥.no","valer.ostfold.no","vÃ¥ler.østfold.no","valer.hedmark.no","vÃ¥ler.hedmark.no","*.np","nr","biz.nr","info.nr","gov.nr","edu.nr","org.nr","net.nr","com.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","mil.nz","māori.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","ac.pa","gob.pa","com.pa","org.pa","sld.pa","edu.pa","net.pa","ing.pa","abo.pa","med.pa","nom.pa","pe","edu.pe","gob.pe","nom.pe","mil.pe","org.pe","com.pe","net.pe","pf","com.pf","org.pf","edu.pf","*.pg","ph","com.ph","net.ph","org.ph","gov.ph","edu.ph","ngo.ph","mil.ph","i.ph","pk","com.pk","net.pk","edu.pk","org.pk","fam.pk","biz.pk","web.pk","gov.pk","gob.pk","gok.pk","gon.pk","gop.pk","gos.pk","info.pk","pl","com.pl","net.pl","org.pl","aid.pl","agro.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","miasta.pl","media.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","ic.gov.pl","is.gov.pl","us.gov.pl","kmpsp.gov.pl","kppsp.gov.pl","kwpsp.gov.pl","psp.gov.pl","wskr.gov.pl","kwp.gov.pl","mw.gov.pl","ug.gov.pl","um.gov.pl","umig.gov.pl","ugim.gov.pl","upow.gov.pl","uw.gov.pl","starostwo.gov.pl","pa.gov.pl","po.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","so.gov.pl","sr.gov.pl","wsa.gov.pl","sko.gov.pl","uzs.gov.pl","wiih.gov.pl","winb.gov.pl","pinb.gov.pl","wios.gov.pl","witd.gov.pl","wzmiuw.gov.pl","piw.gov.pl","wiw.gov.pl","griw.gov.pl","wif.gov.pl","oum.gov.pl","sdn.gov.pl","zp.gov.pl","uppo.gov.pl","mup.gov.pl","wuoz.gov.pl","konsulat.gov.pl","oirm.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","kazimierz-dolny.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorze.pl","pomorskie.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","skoczow.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","gov.pn","co.pn","org.pn","edu.pn","net.pn","post","pr","com.pr","net.pr","org.pr","gov.pr","edu.pr","isla.pr","pro.pr","biz.pr","info.pr","name.pr","est.pr","prof.pr","ac.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","edu.ps","gov.ps","sec.ps","plo.ps","com.ps","org.ps","net.ps","pt","net.pt","gov.pt","org.pt","edu.pt","int.pt","publ.pt","com.pt","nome.pt","pw","co.pw","ne.pw","or.pw","ed.pw","go.pw","belau.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","nom.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","net.sa","org.sa","gov.sa","med.sa","pub.sa","edu.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","gov.sc","net.sc","org.sc","edu.sc","sd","com.sd","net.sd","org.sd","edu.sd","med.sd","tv.sd","gov.sd","info.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","net.sg","org.sg","gov.sg","edu.sg","per.sg","sh","com.sh","net.sh","gov.sh","org.sh","mil.sh","si","sj","sk","sl","com.sl","net.sl","edu.sl","gov.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","com.ss","edu.ss","gov.ss","net.ss","org.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","gov.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","edu.sy","gov.sy","net.sy","mil.sy","com.sy","org.sy","sz","co.sz","ac.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","com.tm","co.tm","org.tm","net.tm","nom.tm","gov.tm","mil.tm","edu.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","intl.tn","nat.tn","net.tn","org.tn","info.tn","perso.tn","tourism.tn","edunet.tn","rnrt.tn","rns.tn","rnu.tn","mincom.tn","agrinet.tn","defense.tn","turen.tn","to","com.to","gov.to","net.to","org.to","edu.to","mil.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","mil.tr","k12.tr","kep.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","co.tt","com.tt","org.tt","net.tt","biz.tt","info.tt","pro.tt","int.tt","coop.tt","jobs.tt","mobi.tt","travel.tt","museum.tt","aero.tt","name.tt","gov.tt","edu.tt","tv","tw","edu.tw","gov.tw","mil.tw","com.tw","net.tw","org.tw","idv.tw","game.tw","ebiz.tw","club.tw","網路.tw","組織.tw","商業.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","dominic.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","co.ug","or.ug","ac.ug","sc.ug","go.ug","ne.ug","com.ug","org.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","vi.us","vt.us","va.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.de.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.ri.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.vi.us","k12.vt.us","k12.va.us","k12.wa.us","k12.wi.us","k12.wy.us","cc.ak.us","cc.al.us","cc.ar.us","cc.as.us","cc.az.us","cc.ca.us","cc.co.us","cc.ct.us","cc.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.vi.us","cc.vt.us","cc.va.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","lib.ak.us","lib.al.us","lib.ar.us","lib.as.us","lib.az.us","lib.ca.us","lib.co.us","lib.ct.us","lib.dc.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.vi.us","lib.vt.us","lib.va.us","lib.wa.us","lib.wi.us","lib.wy.us","pvt.k12.ma.us","chtr.k12.ma.us","paroch.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","net.vc","org.vc","gov.vc","mil.vc","edu.vc","ve","arts.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","org.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","com.vn","net.vn","org.vn","edu.vn","gov.vn","int.vn","ac.vn","biz.vn","info.vn","name.vn","pro.vn","health.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","net.ws","org.ws","gov.ws","edu.ws","yt","امارات","Õ°Õ¡Õµ","বাংলা","бг","бел","中国","中國","الجزائر","مصر","ею","ευ","موريتانيا","გე","ελ","香港","公司.香港","教育.香港","政府.香港","個人.香港","網絡.香港","組織.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","пр.срб","орг.срб","обр.срб","од.срб","упр.срб","ак.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","æ–°åŠ å¡","சிங்கப்பூர்","سورية","سوريا","ไทย","ศึกษา.ไทย","ธุรกิจ.ไทย","รัฐบาล.ไทย","ทหาร.ไทย","เน็ต.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","*.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","adac","ads","adult","aeg","aetna","afamilycompany","afl","africa","agakhan","agency","aig","aigo","airbus","airforce","airtel","akdn","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aws","axa","azure","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","budapest","bugatti","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","caseih","cash","casino","catering","catholic","cba","cbn","cbre","cbs","ceb","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","csc","cuisinella","cymru","cyou","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","duck","dunlop","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","esurance","etisalat","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fujixerox","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glade","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","guardian","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","intel","international","intuit","investments","ipiranga","irish","ismaili","ist","istanbul","itau","itv","iveco","jaguar","java","jcb","jcp","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kim","kinder","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","lamborghini","lamer","lancaster","lancia","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","lixil","llc","llp","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","lupin","luxe","luxury","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","metlife","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","msd","mtn","mtr","mutual","nab","nadex","nagoya","nationwide","natura","navy","nba","nec","netbank","netflix","network","neustar","new","newholland","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","northwesternmutual","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","off","office","okinawa","olayan","olayangroup","oldnavy","ollo","omega","one","ong","onl","online","onyourside","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","passagens","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","qvc","racing","radio","raid","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","rightathome","ril","rio","rip","rmit","rocher","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scjohnson","scor","scot","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","shriram","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","spreadbetting","srl","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiftcover","swiss","sydney","symantec","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","viva","vivo","vlaanderen","vodka","volkswagen","volvo","vote","voting","voto","voyage","vuelos","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","大众汽车","点看","คอม","八卦","موقع","公益","公司","é¦™æ ¼é‡Œæ‹‰","网站","移动","æˆ‘çˆ±ä½ ","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","å•†æ ‡","商店","商城","дети","ポイント","æ–°é—»","工行","家電","كوم","中文网","中信","娱乐","è°·æ­Œ","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","亚马逊","诺基亚","食品","飞利浦","手表","手机","ارامكو","العليان","اتصالات","بازار","ابوظبي","كاثوليك","همراه","ë‹·ì»´","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","ç å®","大拿","みんな","グーグル","世界","書籍","网址","ë‹·ë„·","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","cc.ua","inf.ua","ltd.ua","adobeaemcloud.com","adobeaemcloud.net","*.dev.adobeaemcloud.com","beep.pl","barsy.ca","*.compute.estate","*.alces.network","altervista.org","alwaysdata.net","cloudfront.net","*.compute.amazonaws.com","*.compute-1.amazonaws.com","*.compute.amazonaws.com.cn","us-east-1.amazonaws.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com","*.elb.amazonaws.com.cn","s3.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3.ap-south-1.amazonaws.com","s3.cn-north-1.amazonaws.com.cn","s3.ca-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3.eu-west-2.amazonaws.com","s3.eu-west-3.amazonaws.com","s3.us-east-2.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3-website.us-east-2.amazonaws.com","amsw.nl","t3l3p0rt.net","tele.amune.org","apigee.io","on-aptible.com","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","myfritz.net","*.awdev.ca","*.advisor.ws","b-data.io","backplaneapp.io","balena-devices.com","app.banzaicloud.io","betainabox.com","bnr.la","blackbaudcdn.net","boomla.net","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","browsersafetymark.io","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","mycd.eu","carrd.co","crd.co","uwu.ai","ae.org","ar.com","br.com","cn.com","com.de","com.se","de.com","eu.com","gb.com","gb.net","hu.com","hu.net","jp.net","jpn.com","kr.com","mex.com","no.com","qc.com","ru.com","sa.com","se.net","uk.com","uk.net","us.com","uy.com","za.bz","za.com","africa.com","gr.com","in.net","us.org","co.com","c.la","certmgr.org","xenapponazure.com","discourse.group","discourse.team","virtueeldomein.nl","cleverapps.io","*.lcl.dev","*.stg.dev","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","cloudcontrolled.com","cloudcontrolapp.com","cloudera.site","trycloudflare.com","workers.dev","wnext.app","co.ca","*.otap.co","co.cz","c.cdn77.org","cdn77-ssl.net","r.cdn77.net","rsc.cdn77.org","ssl.origin.cdn77-secure.org","cloudns.asia","cloudns.biz","cloudns.club","cloudns.cc","cloudns.eu","cloudns.in","cloudns.info","cloudns.org","cloudns.pro","cloudns.pw","cloudns.us","cloudeity.net","cnpy.gdn","co.nl","co.no","webhosting.be","hosting-cluster.nl","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dynamisches-dns.de","dnsupdater.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","realm.cz","*.cryptonomic.net","cupcake.is","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","cyon.link","cyon.site","daplie.me","localhost.daplie.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","biz.dk","co.dk","firm.dk","reg.dk","store.dk","*.dapps.earth","*.bzz.dapps.earth","builtwithdark.com","edgestack.me","debian.net","dedyn.io","dnshome.de","online.th","shop.th","drayddns.com","dreamhosters.com","mydrobo.com","drud.io","drud.us","duckdns.org","dy.fi","tunk.org","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","dyndns.biz","dyndns.info","dyndns.org","dyndns.tv","at-band-camp.net","ath.cx","barrel-of-knowledge.info","barrell-of-knowledge.info","better-than.tv","blogdns.com","blogdns.net","blogdns.org","blogsite.org","boldlygoingnowhere.org","broke-it.net","buyshouses.net","cechire.com","dnsalias.com","dnsalias.net","dnsalias.org","dnsdojo.com","dnsdojo.net","dnsdojo.org","does-it.net","doesntexist.com","doesntexist.org","dontexist.com","dontexist.net","dontexist.org","doomdns.com","doomdns.org","dvrdns.org","dyn-o-saur.com","dynalias.com","dynalias.net","dynalias.org","dynathome.net","dyndns.ws","endofinternet.net","endofinternet.org","endoftheinternet.org","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","for-better.biz","for-more.biz","for-our.info","for-some.biz","for-the.biz","forgot.her.name","forgot.his.name","from-ak.com","from-al.com","from-ar.com","from-az.net","from-ca.com","from-co.net","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-la.net","from-ma.com","from-md.com","from-me.org","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-ny.net","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","ftpaccess.cc","fuettertdasnetz.de","game-host.org","game-server.cc","getmyip.com","gets-it.net","go.dyndns.org","gotdns.com","gotdns.org","groks-the.info","groks-this.info","ham-radio-op.net","here-for-more.info","hobby-site.com","hobby-site.org","home.dyndns.org","homedns.org","homeftp.net","homeftp.org","homeip.net","homelinux.com","homelinux.net","homelinux.org","homeunix.com","homeunix.net","homeunix.org","iamallama.com","in-the-band.net","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bruinsfan.org","is-a-bulls-fan.com","is-a-candidate.org","is-a-caterer.com","is-a-celticsfan.org","is-a-chef.com","is-a-chef.net","is-a-chef.org","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-geek.net","is-a-geek.org","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-knight.org","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-linux-user.org","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-patsfan.org","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-soxfan.org","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-by.us","is-certified.com","is-found.org","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-lost.org","is-not-certified.com","is-saved.org","is-slick.com","is-uberleet.com","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","is-with-theband.com","isa-geek.com","isa-geek.net","isa-geek.org","isa-hockeynut.com","issmarterthanyou.com","isteingeek.de","istmein.de","kicks-ass.net","kicks-ass.org","knowsitall.info","land-4-sale.us","lebtimnetz.de","leitungsen.de","likes-pie.com","likescandy.com","merseine.nu","mine.nu","misconfused.org","mypets.ws","myphotos.cc","neat-url.com","office-on-the.net","on-the-web.tv","podzone.net","podzone.org","readmyblog.org","saves-the-whales.com","scrapper-site.net","scrapping.cc","selfip.biz","selfip.com","selfip.info","selfip.net","selfip.org","sells-for-less.com","sells-for-u.com","sells-it.net","sellsyourhome.org","servebbs.com","servebbs.net","servebbs.org","serveftp.net","serveftp.org","servegame.org","shacknet.nu","simple-url.com","space-to-rent.com","stuff-4-sale.org","stuff-4-sale.us","teaches-yoga.com","thruhere.net","traeumtgerade.de","webhop.biz","webhop.info","webhop.net","webhop.org","worse-than.tv","writesthisblog.com","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyndns1.de","dyn-ip24.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","definima.net","definima.io","bci.dnstrace.pro","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","blogsite.xyz","dynv6.net","e4.cz","en-root.fr","mytuleap.com","onred.one","staging.onred.one","enonic.io","customer.enonic.io","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","mc.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","paris.eu.org","pl.eu.org","pt.eu.org","q-a.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","apps.fbsbx.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","u.channelsdvr.net","fastly-terrarium.com","fastlylb.net","map.fastlylb.net","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastpanel.direct","fastvps-server.com","fhapp.xyz","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","mydobiss.com","filegear.me","filegear-au.me","filegear-de.me","filegear-gb.me","filegear-ie.me","filegear-jp.me","filegear-sg.me","firebaseapp.com","flynnhub.com","flynnhosting.net","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","service.gov.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","lab.ms","github.io","githubusercontent.com","gitlab.io","glitch.me","lolipop.io","cloudapps.digital","london.cloudapps.digital","homeoffice.gov.uk","ro.im","shop.ro","goip.de","run.app","a.run.app","web.app","*.0emm.com","appspot.com","*.r.appspot.com","blogspot.ae","blogspot.al","blogspot.am","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.co.at","blogspot.co.id","blogspot.co.il","blogspot.co.ke","blogspot.co.nz","blogspot.co.uk","blogspot.co.za","blogspot.com","blogspot.com.ar","blogspot.com.au","blogspot.com.br","blogspot.com.by","blogspot.com.co","blogspot.com.cy","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.com.mt","blogspot.com.ng","blogspot.com.tr","blogspot.com.uy","blogspot.cv","blogspot.cz","blogspot.de","blogspot.dk","blogspot.fi","blogspot.fr","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.ie","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.mr","blogspot.mx","blogspot.my","blogspot.nl","blogspot.no","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.tw","blogspot.ug","blogspot.vn","cloudfunctions.net","cloud.goog","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","publishproxy.com","withgoogle.com","withyoutube.com","awsmppl.com","fin.ci","free.hr","caa.li","ua.rs","conf.se","hs.zone","hs.run","hashbang.sh","hasura.app","hasura-app.io","hepforge.org","herokuapp.com","herokussl.com","myravendb.com","ravendb.community","ravendb.me","development.run","ravendb.run","bpl.biz","orx.biz","ng.city","biz.gl","ng.ink","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","ng.school","sch.so","häkkinen.fi","*.moonscale.io","moonscale.net","iki.fi","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-dsl.net","in-dsl.org","in-vpn.de","in-vpn.net","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","ipifony.net","mein-iserv.de","test-iserv.de","iserv.dev","iobb.net","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","*.triton.zone","*.cns.joyent.com","js.org","kaas.gg","khplay.nl","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","oya.to","co.krd","edu.krd","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","app.lmpm.com","linkitools.space","linkyard.cloud","linkyard-cloud.ch","members.linode.com","nodebalancer.linode.com","we.bs","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","uklugs.org","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.co.uk","barsyonline.co.uk","barsycenter.com","barsyonline.com","barsy.club","barsy.de","barsy.eu","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.shop","barsy.site","barsy.support","barsy.uk","*.magentosite.cloud","mayfirst.info","mayfirst.org","hb.cldmail.ru","miniserver.com","memset.net","cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","azurecontainer.io","azurewebsites.net","azure-mobile.net","cloudapp.net","mozilla-iot.org","bmoattachments.org","net.ru","org.ru","pp.ru","ui.nabu.casa","pony.club","of.fashion","on.fashion","of.football","in.london","of.london","for.men","and.mom","for.mom","for.one","for.sale","of.work","to.work","nctu.me","bitballoon.com","netlify.com","4u.com","ngrok.io","nh-serv.co.uk","nfshost.com","dnsking.ch","mypi.co","n4t.co","001www.com","ddnslive.com","myiphost.com","forumz.info","16-b.it","32-b.it","64-b.it","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","crafting.xyz","zapto.xyz","nsupdate.info","nerdpol.ovh","blogsyte.com","brasilia.me","cable-modem.org","ciscofreak.com","collegefan.org","couchpotatofries.org","damnserver.com","ddns.me","ditchyourip.com","dnsfor.me","dnsiskinky.com","dvrcam.info","dynns.com","eating-organic.net","fantasyleague.cc","geekgalaxy.com","golffan.us","health-carereform.com","homesecuritymac.com","homesecuritypc.com","hopto.me","ilovecollege.info","loginto.me","mlbfan.org","mmafan.biz","myactivedirectory.com","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.com","mysecuritycamera.net","mysecuritycamera.org","net-freaks.com","nflfan.org","nhlfan.net","no-ip.ca","no-ip.co.uk","no-ip.net","noip.us","onthewifi.com","pgafan.net","point2this.com","pointto.us","privatizehealthinsurance.net","quicksytes.com","read-books.org","securitytactics.com","serveexchange.com","servehumour.com","servep2p.com","servesarcasm.com","stufftoread.com","ufcfan.org","unusualperson.com","workisboring.com","3utilities.com","bounceme.net","ddns.net","ddnsking.com","gotdns.ch","hopto.org","myftp.biz","myftp.org","myvnc.com","no-ip.biz","no-ip.info","no-ip.org","noip.me","redirectme.net","servebeer.com","serveblog.net","servecounterstrike.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","serveirc.com","serveminecraft.net","servemp3.com","servepics.com","servequake.com","sytes.net","webhop.me","zapto.org","stage.nodeart.io","nodum.co","nodum.io","pcloud.host","nyc.mn","nom.ae","nom.af","nom.ai","nom.al","nym.by","nom.bz","nym.bz","nom.cl","nym.ec","nom.gd","nom.ge","nom.gl","nym.gr","nom.gt","nym.gy","nym.hk","nom.hn","nym.ie","nom.im","nom.ke","nym.kz","nym.la","nym.lc","nom.li","nym.li","nym.lt","nym.lu","nom.lv","nym.me","nom.mk","nym.mn","nym.mx","nom.nu","nym.nz","nym.pe","nym.pt","nom.pw","nom.qa","nym.ro","nom.rs","nom.si","nym.sk","nom.st","nym.su","nym.sx","nom.tj","nym.tw","nom.ug","nom.uy","nom.vc","nom.vg","static.observableusercontent.com","cya.gg","cloudycluster.net","nid.io","opencraft.hosting","operaunite.com","skygearapp.com","outsystemscloud.com","ownprovider.com","own.pm","ox.rs","oy.lc","pgfog.com","pagefrontapp.com","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","pantheonsite.io","gotpantheon.com","mypep.link","perspecta.cloud","on-web.fr","*.platform.sh","*.platformsh.site","dyn53.io","co.bn","xen.prgmr.com","priv.at","prvcy.page","*.dweb.link","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","qualifioapp.com","qbuser.com","instantcloud.cn","ras.ru","qa2.com","qcx.io","*.sys.qcx.io","dev-myqnapcloud.com","alpha-myqnapcloud.com","myqnapcloud.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","*.on-k3s.io","*.on-rancher.cloud","*.on-rio.io","readthedocs.io","rhcloud.com","app.render.com","onrender.com","repl.co","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","wellbeingzone.eu","ptplus.fit","wellbeingzone.co.uk","git-pages.rit.edu","sandcats.io","logoip.de","logoip.com","schokokeks.net","gov.scot","scrysec.com","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","senseering.net","biz.ua","co.ua","pp.ua","shiftedit.io","myshopblocks.com","shopitsite.com","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","bounty-full.com","alpha.bounty-full.com","beta.bounty-full.com","stackhero-network.com","static.land","dev.static.land","sites.static.land","apps.lair.io","*.stolos.io","spacekit.io","customer.speedpartner.de","api.stdlib.com","storj.farm","utwente.io","soc.srcf.net","user.srcf.net","temp-dns.com","applicationcloud.io","scapp.io","*.s5y.io","*.sensiosite.cloud","syncloud.it","diskstation.me","dscloud.biz","dscloud.me","dscloud.mobi","dsmynas.com","dsmynas.net","dsmynas.org","familyds.com","familyds.net","familyds.org","i234.me","myds.me","synology.me","vpnplus.to","direct.quickconnect.to","taifun-dns.de","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","edugit.org","telebit.app","telebit.io","*.telebit.xyz","gwiddle.co.uk","thingdustdata.com","cust.dev.thingdust.io","cust.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","arvo.network","azimuth.network","bloxcms.com","townnews-staging.com","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","*.transurl.nl","tuxfamily.org","dd-dns.de","diskstation.eu","diskstation.org","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","uber.space","*.uberspace.de","hk.com","hk.org","ltd.hk","inc.hk","virtualuser.de","virtual-user.de","urown.cloud","dnsupdate.info","lib.de.us","2038.io","router.management","v-info.info","voorloper.cloud","v.ua","wafflecell.com","*.webhare.dev","wedeploy.io","wedeploy.me","wedeploy.sh","remotewd.com","wmflabs.org","myforum.community","community-pro.de","diskussionsbereich.de","community-pro.net","meinforum.net","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","ybo.faith","yombo.me","homelink.one","ybo.party","ybo.review","ybo.science","ybo.trade","nohost.me","noho.st","za.net","za.org","now.sh","bss.design","basicserver.io","virtualserver.io","enterprisecloud.nu"]')
}, function(e, exports) {
! function(d) {
var c = window.vmpbjsChunk;
window.vmpbjsChunk = function(e, t, n) {
for (var r, i, a, o = 0, s = []; o < e.length; o++) i = e[o], u[i] && s.push(u[i][0]), u[i] = 0;
for (r in t) Object.prototype.hasOwnProperty.call(t, r) && (d[r] = t[r]);
for (c && c(e, t, n); s.length;) s.shift()();
if (n)
for (o = 0; o < n.length; o++) a = p(p.s = n[o]);
return a
};
var n = {},
u = {
313: 0
};
function p(e) {
if (n[e]) return n[e].exports;
var t = n[e] = {
i: e,
l: !1,
exports: {}
};
return d[e].call(t.exports, t, t.exports, p), t.l = !0, t.exports
}
p.m = d, p.c = n, p.d = function(e, t, n) {
p.o(e, t) || Object.defineProperty(e, t, {
configurable: !1,
enumerable: !0,
get: n
})
}, p.n = function(e) {
var t = e && e.__esModule ? function() {
return e.default
} : function() {
return e
};
return p.d(t, "a", t), t
}, p.o = function(e, t) {
return Object.prototype.hasOwnProperty.call(e, t)
}, p.p = "", p.oe = function(e) {
throw console.error(e), e
}, p(p.s = 831)
}([function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), n.d(t, "internal", function() {
return P
}), n.d(t, "bind", function() {
return N
}), t.getUniqueIdentifierStr = q, t.generateUUID = function e(t) {
return t ? (t ^ (window && window.crypto && window.crypto.getRandomValues ? crypto.getRandomValues(new Uint8Array(1))[0] % 16 : 16 * Math.random()) >> t / 4).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, e)
}, t.getBidIdParameter = function(e, t) {
return t && t[e] ? t[e] : ""
}, t.tryAppendQueryString = function(e, t, n) {
return n ? e + t + "=" + encodeURIComponent(n) + "&" : e
}, t.parseQueryStringParameters = function(e) {
var t, n = "";
for (t in e) e.hasOwnProperty(t) && (n += t + "=" + encodeURIComponent(e[t]) + "&");
return n.replace(/&$/, "")
}, t.transformAdServerTargetingObj = function(t) {
return t && 0 < Object.getOwnPropertyNames(t).length ? le(t).map(function(e) {
return "".concat(e, "=").concat(encodeURIComponent(t[e]))
}).join("&") : ""
}, t.getAdUnitSizes = function(e) {
if (e) {
var t, n = [];
return e.mediaTypes && e.mediaTypes.banner && Array.isArray(e.mediaTypes.banner.sizes) ? (t = e.mediaTypes.banner.sizes, Array.isArray(t[0]) ? n = t : n.push(t)) : Array.isArray(e.sizes) && (Array.isArray(e.sizes[0]) ? n = e.sizes : n.push(e.sizes)), n
}
}, t.parseSizesInput = function(e) {
var t = [];
if ("string" == typeof e) {
var n = e.split(","),
r = /^(\d)+x(\d)+$/i;
if (n)
for (var i in n) ie(n, i) && n[i].match(r) && t.push(n[i])
} else if ("object" === v(e)) {
var a = e.length;
if (0 < a)
if (2 === a && "number" == typeof e[0] && "number" == typeof e[1]) t.push(z(e));
else
for (var o = 0; o < a; o++) t.push(z(e[o]))
}
return t
}, t.parseGPTSingleSizeArray = z, t.parseGPTSingleSizeArrayToRtbSize = function(e) {
if (M(e)) return {
w: e[0],
h: e[1]
}
}, t.getWindowTop = V, t.getWindowSelf = L, t.getWindowLocation = F, t.getTopWindowUrl = function() {
var t;
if (window.frameElement && "true" === window.frameElement.getAttribute("data-stanza")) return window.parent.document.referrer;
try {
t = P.getTopWindowLocation().href
} catch (e) {
t = ""
}
return t
}, t.getTopWindowReferrer = function() {
try {
return "true" === window.frameElement.getAttribute("data-stanza") ? window.parent.document.referrer : window.top.document.referrer
} catch (e) {
return document.referrer
}
}, t.logMessage = W, t.logInfo = G, t.logWarn = H, t.logError = $, t.hasConsoleLogger = function() {
return C
}, t.debugTurnedOn = Y, t.createInvisibleIframe = function() {
var e = document.createElement("iframe");
return e.id = q(), e.height = 0, e.width = 0, e.border = "0px", e.hspace = "0", e.vspace = "0", e.marginWidth = "0", e.marginHeight = "0", e.style.border = "0", e.scrolling = "no", e.frameBorder = "0", e.src = "about:blank", e.style.display = "none", e
}, t.getParameterByName = function(e) {
return ke(F().search)[e] || ""
}, t.isA = K, t.isFn = X, t.isStr = Q, t.isArray = Z, t.isNumber = ee, t.isPlainObject = te, t.isBoolean = function(e) {
return K(e, E)
}, t.isEmpty = ne, t.isEmptyStr = function(e) {
return Q(e) && (!e || 0 === e.length)
}, t._each = re, t.contains = function(e, t) {
if (ne(e)) return !1;
if (X(e.indexOf)) return -1 !== e.indexOf(t);
for (var n = e.length; n--;)
if (e[n] === t) return !0;
return !1
}, t._map = function(n, r) {
if (ne(n)) return [];
if (X(n.map)) return n.map(r);
var i = [];
return re(n, function(e, t) {
i.push(r(e, t, n))
}), i
}, t.hasOwn = ie, t.insertElement = ae, t.triggerPixel = oe, t.callBurl = function(e) {
var t = e.source,
n = e.burl;
t === I.S2S.SRC && n && P.triggerPixel(n)
}, t.insertHtmlIntoIframe = function(e) {
var t;
e && ((t = document.createElement("iframe")).id = q(), t.width = 0, t.height = 0, t.hspace = "0", t.vspace = "0", t.marginWidth = "0", t.marginHeight = "0", t.style.display = "none", t.style.height = "0px", t.style.width = "0px", t.scrolling = "no", t.frameBorder = "0", t.allowtransparency = "true", P.insertElement(t, document, "body"), t.contentWindow.document.open(), t.contentWindow.document.write(e), t.contentWindow.document.close())
}, t.insertUserSyncIframe = se, t.createTrackPixelHtml = function(e) {
return e ? '<div style="position:absolute;left:0px;top:0px;visibility:hidden;">' + '<img src="' + encodeURI(e) + '"></div>' : ""
}, t.createTrackPixelIframeHtml = de, t.getValueString = ce, t.uniques = ue, t.flatten = pe, t.getBidRequest = function(n, e) {
return n ? (e.some(function(e) {
var t = c()(e.bids, function(t) {
return ["bidId", "adId", "bid_id"].some(function(e) {
return t[e] === n
})
});
return t && (r = t), t
}), r) : void 0;
var r
}, t.getKeys = le, t.getValue = fe, t.getKeyByValue = function(e, t) {
for (var n in e)
if (e.hasOwnProperty(n) && e[n] === t) return n
}, t.getBidderCodes = function() {
return (0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : vmpbjs.adUnits).map(function(e) {
return e.bids.map(function(e) {
return e.bidder
}).reduce(pe, [])
}).reduce(pe).filter(ue)
}, t.isGptPubadsDefined = me, n.d(t, "getHighestCpm", function() {
return ge
}), n.d(t, "getOldestHighestCpmBid", function() {
return he
}), n.d(t, "getLatestHighestCpmBid", function() {
return be
}), t.shuffle = function(e) {
for (var t = e.length; 0 < t;) {
var n = Math.floor(Math.random() * t),
r = e[--t];
e[t] = e[n], e[n] = r
}
return e
}, t.adUnitsFilter = function(e, t) {
return p()(e, t && t.adUnitCode)
}, t.deepClone = ve, t.inIframe = function() {
try {
return P.getWindowSelf() !== P.getWindowTop()
} catch (e) {
return !0
}
}, t.isSafariBrowser = function() {
return /^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent)
}, t.replaceAuctionPrice = function(e, t) {
if (e) return e.replace(/\$\{AUCTION_PRICE\}/g, t)
}, t.timestamp = function() {
return (new Date).getTime()
}, t.hasDeviceAccess = function() {
return !1 !== r.b.getConfig("deviceAccess")
}, t.checkCookieSupport = we, t.delayExecution = function(e, t) {
if (t < 1) throw new Error("numRequiredCalls must be a positive number. Got ".concat(t));
var n = 0;
return function() {
++n === t && e.apply(this, arguments)
}
}, t.groupBy = function(e, n) {
return e.reduce(function(e, t) {
return (e[t[n]] = e[t[n]] || []).push(t), e
}, {})
}, t.getDefinedParams = function(n, e) {
return e.filter(function(e) {
return n[e]
}).reduce(function(e, t) {
return y(e, b({}, t, n[t]))
}, {})
}, t.isValidMediaTypes = function(e) {
var t = ["banner", "native", "video"];
return !!Object.keys(e).every(function(e) {
return p()(t, e)
}) && (!e.video || !e.video.context || p()(["instream", "outstream", "adpod"], e.video.context))
}, t.getBidderRequest = function(e, t, n) {
return c()(e, function(e) {
return 0 < e.bids.filter(function(e) {
return e.bidder === t && e.adUnitCode === n
}).length
}) || {
start: null,
auctionId: null
}
}, t.getUserConfiguredParams = function(e, t, n) {
return e.filter(function(e) {
return e.code === t
}).map(function(e) {
return e.bids
}).reduce(pe, []).filter(function(e) {
return e.bidder === n
}).map(function(e) {
return e.params || {}
})
}, t.getOrigin = function() {
return window.location.origin ? window.location.origin : window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : "")
}, t.getDNT = function() {
return "1" === navigator.doNotTrack || "1" === window.doNotTrack || "1" === navigator.msDoNotTrack || "yes" === navigator.doNotTrack
}, t.isAdUnitCodeMatchingSlot = function(t) {
return function(e) {
return Ie(t, e)
}
}, t.isSlotMatchingAdUnitCode = Te, t.getGptSlotInfoForAdUnitCode = function(e) {
var t;
return me() && (t = c()(window.googletag.pubads().getSlots(), Te(e))), t ? {
gptSlot: t.getAdUnitPath(),
divId: t.getSlotElementId()
} : {}
}, t.unsupportedBidderMessage = function(e, t) {
var n = Object.keys(e.mediaTypes || {
banner: "banner"
}).join(", ");
return "\n ".concat(e.code, " is a ").concat(n, " ad unit\n containing bidders that don't support ").concat(n, ": ").concat(t, ".\n This bidder won't fetch demand.\n ")
}, t.isInteger = Se, t.convertCamelToUnderscore = function(e) {
return e.replace(/(?:^|\.?)([A-Z])/g, function(e, t) {
return "_" + t.toLowerCase()
}).replace(/^_/, "")
}, t.cleanObj = function(n) {
return Object.keys(n).reduce(function(e, t) {
return void 0 !== n[t] && (e[t] = n[t]), e
}, {})
}, t.pick = function(o, s) {
return "object" === v(o) ? s.reduce(function(e, t, n) {
if ("function" == typeof t) return e;
var r = t,
i = t.match(/^(.+?)\sas\s(.+?)$/i);
i && (t = i[1], r = i[2]);
var a = o[t];
return "function" == typeof s[n + 1] && (a = s[n + 1](a, e)), void 0 !== a && (e[r] = a), e
}, {}) : {}
}, t.transformBidderParamKeywords = function(e) {
var r = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "keywords",
i = [];
return re(e, function(e, t) {
if (Z(e)) {
var n = [];
re(e, function(e) {
!(e = ce(r + "." + t, e)) && "" !== e || n.push(e)
}), e = n
} else {
if (!Q(e = ce(r + "." + t, e))) return;
e = [e]
}
i.push({
key: t,
value: e
})
}), i
}, t.convertTypes = function(r, i) {
return Object.keys(r).forEach(function(e) {
var t, n;
i[e] && (X(r[e]) ? i[e] = r[e](i[e]) : i[e] = (t = r[e], n = i[e], "string" === t ? n && n.toString() : "number" === t ? Number(n) : n), isNaN(i[e]) && delete i.key)
}), i
}, t.isArrayOfNums = function(e, t) {
return Z(e) && (!t || e.length === t) && e.every(Se)
}, t.fill = function(e, t) {
for (var n = [], r = 0; r < t; r++) {
var i = te(e) ? ve(e) : e;
n.push(i)
}
return n
}, t.chunk = function(e, t) {
for (var n = [], r = 0; r < Math.ceil(e.length / t); r++) {
var i = r * t,
a = i + t;
n.push(e.slice(i, a))
}
return n
}, t.getMinValueFromArray = function(e) {
return Math.min.apply(Math, m(e))
}, t.getMaxValueFromArray = function(e) {
return Math.max.apply(Math, m(e))
}, t.compareOn = function(n) {
return function(e, t) {
return e[n] < t[n] ? 1 : e[n] > t[n] ? -1 : 0
}
}, t.parseQS = ke, t.formatQS = je, t.parseUrl = function(e, t) {
var n = document.createElement("a");
t && "noDecodeWholeURL" in t && t.noDecodeWholeURL ? n.href = e : n.href = decodeURIComponent(e);
var r = t && "decodeSearchAsString" in t && t.decodeSearchAsString;
return {
href: n.href,
protocol: (n.protocol || "").replace(/:$/, ""),
hostname: n.hostname,
port: +n.port,
pathname: n.pathname.replace(/^(?!\/)/, "/"),
search: r ? n.search : P.parseQS(n.search || ""),
hash: (n.hash || "").replace(/^#/, ""),
host: n.host || window.location.host
}
}, t.buildUrl = function(e) {
return (e.protocol || "http") + "://" + (e.host || e.hostname + (e.port ? ":".concat(e.port) : "")) + (e.pathname || "") + (e.search ? "?".concat(P.formatQS(e.search || "")) : "") + (e.hash ? "#".concat(e.hash) : "")
}, t.deepEqual = Ae, t.mergeDeep = Ee;
var r = n(3),
i = n(167),
a = n.n(i),
o = n(168),
s = n.n(o),
d = n(11),
c = n.n(d),
u = n(12),
p = n.n(u),
l = n(182);
n.d(t, "deepAccess", function() {
return l.a
});
var f = n(183);
function m(e) {
return function(e) {
if (Array.isArray(e)) return h(e)
}(e) || function(e) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e)
}(e) || g(e) || function() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}()
}
function g(e, t) {
if (e) {
if ("string" == typeof e) return h(e, t);
var n = Object.prototype.toString.call(e).slice(8, -1);
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? h(e, t) : void 0
}
}
function h(e, t) {
(null == t || t > e.length) && (t = e.length);
for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n];
return r
}
function b(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
function y() {
return (y = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n, r = arguments[t];
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n])
}
return e
}).apply(this, arguments)
}
function v(e) {
return (v = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
})(e)
}
n.d(t, "deepSetValue", function() {
return f.a
});
var w, I = n(5),
T = "Array",
S = "String",
k = "Function",
j = "Number",
A = "Object",
E = "Boolean",
O = Object.prototype.toString,
_ = Boolean(window.console),
C = Boolean(_ && window.console.log),
x = Boolean(_ && window.console.info),
R = Boolean(_ && window.console.warn),
D = Boolean(_ && window.console.error),
P = {
checkCookieSupport: we,
createTrackPixelIframeHtml: de,
getWindowSelf: L,
getWindowTop: V,
getWindowLocation: F,
insertUserSyncIframe: se,
insertElement: ae,
isFn: X,
triggerPixel: oe,
logError: $,
logWarn: H,
logMessage: W,
logInfo: G,
parseQS: ke,
formatQS: je,
deepEqual: Ae
},
U = {},
N = function(e, t) {
return t
}.bind(null, 1, U)() === U ? Function.prototype.bind : function(e) {
var t = this,
n = Array.prototype.slice.call(arguments, 1);
return function() {
return t.apply(e, n.concat(Array.prototype.slice.call(arguments)))
}
},
B = (w = 0, function() {
return ++w
});
function q() {
return B() + Math.random().toString(16).substr(2)
}
function z(e) {
if (M(e)) return e[0] + "x" + e[1]
}
function M(e) {
return Z(e) && 2 === e.length && !isNaN(e[0]) && !isNaN(e[1])
}
function V() {
return window.top
}
function L() {
return window.self
}
function F() {
return window.location
}
function W() {
Y() && C && console.log.apply(console, J(arguments, "MESSAGE:"))
}
function G() {
Y() && x && console.info.apply(console, J(arguments, "INFO:"))
}
function H() {
Y() && R && console.warn.apply(console, J(arguments, "WARNING:"))
}
function $() {
Y() && D && console.error.apply(console, J(arguments, "ERROR:"))
}
function J(e, t) {
return e = [].slice.call(e), t && e.unshift(t), e.unshift("display: inline-block; color: #fff; background: #3b88c3; padding: 1px 4px; border-radius: 3px;"), e.unshift("%cPrebid"), e
}
function Y() {
return !!r.b.getConfig("debug")
}
function K(e, t) {
return O.call(e) === "[object " + t + "]"
}
function X(e) {
return K(e, k)
}
function Q(e) {
return K(e, S)
}
function Z(e) {
return K(e, T)
}
function ee(e) {
return K(e, j)
}
function te(e) {
return K(e, A)
}
function ne(e) {
if (!e) return !0;
if (Z(e) || Q(e)) return !(0 < e.length);
for (var t in e)
if (hasOwnProperty.call(e, t)) return !1;
return !0
}
function re(e, t) {
if (!ne(e)) {
if (X(e.forEach)) return e.forEach(t, this);
var n = 0,
r = e.length;
if (0 < r)
for (; n < r; n++) t(e[n], n, e);
else
for (n in e) hasOwnProperty.call(e, n) && t.call(this, e[n], n)
}
}
function ie(e, t) {
return e.hasOwnProperty ? e.hasOwnProperty(t) : void 0 !== e[t] && e.constructor.prototype[t] !== e[t]
}
function ae(e, t, n, r) {
var i;
t = t || document, i = n ? t.getElementsByTagName(n) : t.getElementsByTagName("head");
try {
if ((i = i.length ? i : t.getElementsByTagName("body")).length) {
i = i[0];
var a = r ? null : i.firstChild;
return i.insertBefore(e, a)
}
} catch (e) {}
}
function oe(e, t) {
var n = new Image;
t && P.isFn(t) && (n.addEventListener("load", t), n.addEventListener("error", t)), n.src = e
}
function se(e, t) {
var n = P.createTrackPixelIframeHtml(e, !1, "allow-scripts allow-same-origin"),
r = document.createElement("div");
r.innerHTML = n;
var i = r.firstChild;
t && P.isFn(t) && (i.addEventListener("load", t), i.addEventListener("error", t)), P.insertElement(i, document, "html", !0)
}
function de(e) {
var t = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : "";
return e ? (1 < arguments.length && void 0 !== arguments[1] && !arguments[1] || (e = encodeURI(e)), t = t && 'sandbox="'.concat(t, '"'), "<iframe ".concat(t, ' id="').concat(q(), '"\n frameborder="0"\n allowtransparency="true"\n marginheight="0" marginwidth="0"\n width="0" hspace="0" vspace="0" height="0"\n style="height:0px;width:0px;display:none;"\n scrolling="no"\n src="').concat(e, '">\n </iframe>')) : ""
}
function ce(e, t, n) {
return null == t ? n : Q(t) ? t : ee(t) ? t.toString() : void P.logWarn("Unsuported type for param: " + e + " required type: String")
}
function ue(e, t, n) {
return n.indexOf(e) === t
}
function pe(e, t) {
return e.concat(t)
}
function le(e) {
return Object.keys(e)
}
function fe(e, t) {
return e[t]
}
function me() {
if (window.googletag && X(window.googletag.pubads) && X(window.googletag.pubads().getSlots)) return !0
}
var ge = ye("timeToRespond", function(e, t) {
return t < e
}),
he = ye("responseTimestamp", function(e, t) {
return t < e
}),
be = ye("responseTimestamp", function(e, t) {
return e < t
});
function ye(n, r) {
return function(e, t) {
return e.cpm === t.cpm ? r(e[n], t[n]) ? t : e : e.cpm < t.cpm ? t : e
}
}
function ve(e) {
return a()(e)
}
function we() {
if (window.navigator.cookieEnabled || document.cookie.length) return !0
}
var Ie = function(e, t) {
return e.getAdUnitPath() === t || e.getSlotElementId() === t
};
function Te(t) {
return function(e) {
return Ie(e, t)
}
}
function Se(e) {
return Number.isInteger ? Number.isInteger(e) : "number" == typeof e && isFinite(e) && Math.floor(e) === e
}
function ke(e) {
return e ? e.replace(/^\?/, "").split("&").reduce(function(e, t) {
var n, r, i = (n = t.split("="), r = 2, function(e) {
if (Array.isArray(e)) return e
}(n) || function(e, t) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) {
var n = [],
r = !0,
i = !1,
a = void 0;
try {
for (var o, s = e[Symbol.iterator](); !(r = (o = s.next()).done) && (n.push(o.value), !t || n.length !== t); r = !0);
} catch (e) {
i = !0, a = e
} finally {
try {
r || null == s.return || s.return()
} finally {
if (i) throw a
}
}
return n
}
}(n, r) || g(n, r) || function() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}()),
a = i[0],
o = i[1];
return /\[\]$/.test(a) ? (e[a = a.replace("[]", "")] = e[a] || [], e[a].push(o)) : e[a] = o || "", e
}, {}) : {}
}
function je(e) {
return Object.keys(e).map(function(t) {
return Array.isArray(e[t]) ? e[t].map(function(e) {
return "".concat(t, "[]=").concat(e)
}).join("&") : "".concat(t, "=").concat(e[t])
}).join("&")
}
function Ae(e, t) {
return s()(e, t)
}
function Ee(e) {
for (var t = arguments.length, n = new Array(1 < t ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];
if (!n.length) return e;
var i = n.shift();
if (te(e) && te(i))
for (var a in i) te(i[a]) ? (e[a] || y(e, b({}, a, {})), Ee(e[a], i[a])) : Z(i[a]) && e[a] ? Z(e[a]) && (e[a] = e[a].concat(i[a])) : y(e, b({}, a, i[a]));
return Ee.apply(void 0, [e].concat(n))
}
}, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), n.d(t, "storage", function() {
return k
}), t.registerBidder = function(t) {
var n = Array.isArray(t.supportedMediaTypes) ? {
supportedMediaTypes: t.supportedMediaTypes
} : void 0;
function r(e) {
var t = E(e);
s.default.registerBidAdapter(t, e.code, n)
}
r(t), Array.isArray(t.aliases) && t.aliases.forEach(function(e) {
s.default.aliasRegistry[e] = t.code, r(S({}, t, {
code: e
}))
})
}, t.newBidder = E, n.d(t, "registerSyncInner", function() {
return O
}), t.preloadBidderMappingFile = _, t.getIabSubCategory = function(e, t) {
var n = s.default.getBidAdapter(e);
if (n.getSpec().getMappingFileInfo) {
var r = n.getSpec().getMappingFileInfo(),
i = r.localStorageKey ? r.localStorageKey : n.getBidderCode(),
a = k.getDataFromLocalStorage(i);
if (a) {
try {
a = JSON.parse(a)
} catch (t) {
Object(v.logError)("Failed to parse ".concat(e, " mapping data stored in local storage"))
}
return a.mapping[t] ? a.mapping[t] : null
}
}
}, t.isValid = C;
var r = n(100),
s = n(7),
d = n(3),
h = n(32),
c = n(44),
a = n(35),
o = n(38),
i = n(5),
b = n.n(i),
u = n(8),
y = n.n(u),
p = n(12),
l = n.n(p),
f = n(4),
v = n(0),
m = n(2),
g = n(13),
w = n(9);
function I(e, t) {
(null == t || t > e.length) && (t = e.length);
for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n];
return r
}
function T(e) {
return (T = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
})(e)
}
function S() {
return (S = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n, r = arguments[t];
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n])
}
return e
}).apply(this, arguments)
}
var k = Object(w.a)("bidderFactory"),
j = ["requestId", "cpm", "ttl", "creativeId", "netRevenue", "currency"],
A = 1;
function E(f) {
return S(new r.a(f.code), {
getSpec: function() {
return Object.freeze(f)
},
registerSyncs: m,
callBids: function(a, o, e, r, s, d) {
var c, u, t, p, n, l;
function i() {
e(), y.a.emit(b.a.EVENTS.BIDDER_DONE, a), m(u, a.gdprConsent, a.uspConsent)
}
Array.isArray(a.bids) && (c = {}, u = [], 0 !== (t = a.bids.filter(g)).length ? (p = {}, t.forEach(function(e) {
(p[e.bidId] = e).adUnitCode || (e.adUnitCode = e.placementCode)
}), (n = f.buildRequests(t, a)) && 0 !== n.length ? (Array.isArray(n) || (n = [n]), l = Object(v.delayExecution)(d(i), n.length), n.forEach(function(i) {
switch (i.method) {
case "GET":
r("".concat(i.url).concat((e = i.data) ? "?".concat("object" === T(e) ? Object(v.parseQueryStringParameters)(e) : e) : ""), {
success: d(t),
error: n
}, void 0, S({
method: "GET",
withCredentials: !0
}, i.options));
break;
case "POST":
r(i.url, {
success: d(t),
error: n
}, "string" == typeof i.data ? i.data : JSON.stringify(i.data), S({
method: "POST",
contentType: "text/plain",
withCredentials: !0
}, i.options));
break;
default:
Object(v.logWarn)("Skipping invalid request from ".concat(f.code, ". Request type ").concat(i.type, " must be GET or POST")), l()
}
var e;
function t(e, t) {
s(f.code);
try {
e = JSON.parse(e)
} catch (e) {}
var n;
e = {
body: e,
headers: {
get: t.getResponseHeader.bind(t)
}
}, u.push(e);
try {
n = f.interpretResponse(e, i)
} catch (e) {
return Object(v.logError)("Bidder ".concat(f.code, " failed to interpret the server's response. Continuing without bids"), null, e), void l()
}
function r(e) {
var t, n, r, i = p[e.requestId];
i ? (e.originalCpm = e.cpm, e.originalCurrency = e.currency, t = S(Object(h.a)(b.a.STATUS.GOOD, i), e), n = i.adUnitCode, r = t, c[n] = !0, C(n, r, [a]) && o(n, r)) : Object(v.logWarn)("Bidder ".concat(f.code, " made bid for unknown request ID: ").concat(e.requestId, ". Ignoring."))
}
n && (Object(v.isArray)(n) ? n.forEach(r) : r(n)), l(n)
}
function n(e) {
s(f.code), Object(v.logError)("Server call for ".concat(f.code, " failed: ").concat(e, ". Continuing without bids.")), l()
}
})) : i()) : i())
}
});
function m(e, t, n) {
O(f, e, t, n)
}
function g(e) {
return !!f.isBidRequestValid(e) || (Object(v.logWarn)("Invalid bid sent to bidder ".concat(f.code, ": ").concat(JSON.stringify(e))), !1)
}
}
var O = Object(g.b)("async", function(t, e, n, r) {
var i, a, o = d.b.getConfig("userSync.aliasSyncEnabled");
!t.getUserSyncs || !o && s.default.aliasRegistry[t.code] || (i = d.b.getConfig("userSync.filterSettings"), (a = t.getUserSyncs({
iframeEnabled: !(!i || !i.iframe && !i.all),
pixelEnabled: !(!i || !i.image && !i.all)
}, e, n, r)) && (Array.isArray(a) || (a = [a]), a.forEach(function(e) {
c.a.registerSync(e.type, t.code, e.url)
})))
}, "registerSyncs");
function _(e, t) {
if (!d.b.getConfig("adpod.brandCategoryExclusion")) return e.call(this, t);
t.filter(function(e) {
return Object(v.deepAccess)(e, "mediaTypes.video.context") === m.a
}).map(function(e) {
return e.bids.map(function(e) {
return e.bidder
})
}).reduce(v.flatten, []).filter(v.uniques).forEach(function(n) {
var e = s.default.getBidAdapter(n);
if (e.getSpec().getMappingFileInfo) {
var t = e.getSpec().getMappingFileInfo(),
r = t.refreshInDays ? t.refreshInDays : A,
i = t.localStorageKey ? t.localStorageKey : e.getSpec().code,
a = k.getDataFromLocalStorage(i);
try {
(!(a = a ? JSON.parse(a) : void 0) || Object(v.timestamp)() > a.lastUpdated + 24 * r * 60 * 60 * 1e3) && Object(f.a)(t.url, {
success: function(e) {
try {
e = JSON.parse(e);
var t = {
lastUpdated: Object(v.timestamp)(),
mapping: e.mapping
};
k.setDataInLocalStorage(i, JSON.stringify(t))
} catch (e) {
Object(v.logError)("Failed to parse ".concat(n, " bidder translation mapping file"))
}
},
error: function() {
Object(v.logError)("Failed to load ".concat(n, " bidder translation file"))
}
})
} catch (e) {
Object(v.logError)("Failed to parse ".concat(n, " bidder translation mapping file"))
}
}
}), e.call(this, t)
}
function C(e, t, n) {
function r(e) {
return "Invalid bid from ".concat(t.bidderCode, ". Ignoring bid: ").concat(e)
}
return e ? t ? (i = Object.keys(t), j.every(function(e) {
return l()(i, e) && !l()([void 0, null], t[e])
}) ? "native" !== t.mediaType || Object(a.f)(t, n) ? "video" !== t.mediaType || Object(o.d)(t, n) ? !("banner" === t.mediaType && ! function(e, t, n) {
if ((t.width || 0 === parseInt(t.width, 10)) && (t.height || 0 === parseInt(t.height, 10))) return t.width = parseInt(t.width, 10), t.height = parseInt(t.height, 10), 1;
var r, i, a = Object(v.getBidderRequest)(n, t.bidderCode, e),
o = a && a.bids && a.bids[0] && a.bids[0].sizes,
s = Object(v.parseSizesInput)(o);
if (1 === s.length) {
var d = (r = s[0].split("x"), i = 2, function(e) {
if (Array.isArray(e)) return e
}(r) || function(e, t) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) {
var n = [],
r = !0,
i = !1,
a = void 0;
try {
for (var o, s = e[Symbol.iterator](); !(r = (o = s.next()).done) && (n.push(o.value), !t || n.length !== t); r = !0);
} catch (e) {
i = !0, a = e
} finally {
try {
r || null == s.return || s.return()
} finally {
if (i) throw a
}
}
return n
}
}(r, i) || function(e, t) {
if (e) {
if ("string" == typeof e) return I(e, t);
var n = Object.prototype.toString.call(e).slice(8, -1);
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? I(e, t) : void 0
}
}(r, i) || function() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}()),
c = d[0],
u = d[1];
return t.width = parseInt(c, 10), t.height = parseInt(u, 10), 1
}
}(e, t, n) && (Object(v.logError)(r("Banner bids require a width and height")), 1)) : (Object(v.logError)(r("Video bid does not have required vastUrl or renderer property")), !1) : (Object(v.logError)(r("Native bid missing some required properties.")), !1) : (Object(v.logError)(r("Bidder ".concat(t.bidderCode, " is missing required params. Check http://prebid.org/dev-docs/bidder-adapter-1.html for list of params."))), !1)) : (Object(v.logWarn)("Some adapter tried to add an undefined bid for ".concat(e, ".")), !1) : (Object(v.logWarn)("No adUnitCode was supplied to addBidResponse."), !1);
var i
}
Object(g.a)("checkAdUnitSetup").before(_)
}, function(e, t, n) {
"use strict";
n.d(t, "c", function() {
return r
}), n.d(t, "d", function() {
return i
}), n.d(t, "b", function() {
return a
}), n.d(t, "a", function() {
return o
});
var r = "native",
i = "video",
a = "banner",
o = "adpod"
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return b
}), n.d(t, "b", function() {
return A
});
var r = n(45),
i = n(11),
o = n.n(i),
a = n(12),
s = n.n(a),
d = n(80),
c = n.n(d),
u = n(0);
function p() {
return (p = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n, r = arguments[t];
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n])
}
return e
}).apply(this, arguments)
}
var l = n(92),
f = n(0),
m = n(5),
g = "TRUE" === f.getParameterByName(m.DEBUG_MODE).toUpperCase(),
h = window.location.origin,
b = "random",
y = {};
y[b] = !0, y.fixed = !0;
var v, w, I, T, S, k = b,
j = {
LOW: "low",
MEDIUM: "medium",
HIGH: "high",
AUTO: "auto",
DENSE: "dense",
CUSTOM: "custom"
},
A = (T = [], S = null, E(), {
getCurrentBidder: function() {
return S
},
getConfig: function() {
if (arguments.length <= 1 && "function" != typeof(arguments.length <= 0 ? void 0 : arguments[0])) {
var e = arguments.length <= 0 ? void 0 : arguments[0];
return e ? f.deepAccess(O(), e) : O()
}
return function(e, t) {
var n = t;
if ("string" != typeof e && (n = e, e = "*"), "function" == typeof n) {
var r = {
topic: e,
callback: n
};
return T.push(r),
function() {
T.splice(T.indexOf(r), 1)
}
}
f.logError("listener must be a function")
}.apply(void 0, arguments)
},
setConfig: function(n) {
var e, r;
f.isPlainObject(n) ? (e = Object.keys(n), r = {}, e.forEach(function(e) {
var t = n[e];
f.isPlainObject(v[e]) && f.isPlainObject(t) && (t = p({}, v[e], t)), r[e] = w[e] = t
}), _(r)) : f.logError("setConfig options must be an object")
},
setDefaults: function(e) {
f.isPlainObject(v) ? (p(v, e), p(w, e)) : f.logError("defaults must be an object")
},
resetConfig: E,
runWithBidder: C,
callbackWithBidder: function(a) {
return function(i) {
return function() {
if ("function" == typeof i) {
for (var e, t = arguments.length, n = new Array(t), r = 0; r < t; r++) n[r] = arguments[r];
return C(a, (e = f.bind).call.apply(e, [i, this].concat(n)))
}
f.logWarn("config.callbackWithBidder callback is not a function")
}
}
},
setBidderConfig: function(r) {
try {
! function(e) {
if (!f.isPlainObject(e)) throw "setBidderConfig bidder options must be an object";
if (!Array.isArray(e.bidders) || !e.bidders.length) throw "setBidderConfig bidder options must contain a bidders list with at least 1 bidder";
if (!f.isPlainObject(e.config)) throw "setBidderConfig bidder options must contain a config object"
}(r), r.bidders.forEach(function(n) {
I[n] || (I[n] = {}), Object.keys(r.config).forEach(function(e) {
var t = r.config[e];
f.isPlainObject(t) ? I[n][e] = p({}, I[n][e] || {}, t) : I[n][e] = t
})
})
} catch (e) {
f.logError(e)
}
},
getBidderConfig: function() {
return I
}
});
function E() {
v = {};
var n = {
_debug: g,
get debug() {
return this._debug
},
set debug(e) {
this._debug = e
},
_bidderTimeout: 3e3,
get bidderTimeout() {
return this._bidderTimeout
},
set bidderTimeout(e) {
this._bidderTimeout = e
},
_publisherDomain: h,
get publisherDomain() {
return this._publisherDomain
},
set publisherDomain(e) {
this._publisherDomain = e
},
_priceGranularity: j.MEDIUM,
set priceGranularity(e) {
a(e) && ("string" == typeof e ? this._priceGranularity = i(e) ? e : j.MEDIUM : f.isPlainObject(e) && (this._customPriceBucket = e, this._priceGranularity = j.CUSTOM, f.logMessage("Using custom price granularity")))
},
get priceGranularity() {
return this._priceGranularity
},
_customPriceBucket: {},
get customPriceBucket() {
return this._customPriceBucket
},
_mediaTypePriceGranularity: {},
get mediaTypePriceGranularity() {
return this._mediaTypePriceGranularity
},
set mediaTypePriceGranularity(n) {
var r = this;
this._mediaTypePriceGranularity = Object.keys(n).reduce(function(e, t) {
return a(n[t]) ? "string" == typeof n ? e[t] = i(n[t]) ? n[t] : r._priceGranularity : f.isPlainObject(n) && (e[t] = n[t], f.logMessage("Using custom price granularity for ".concat(t))) : f.logWarn("Invalid price granularity for media type: ".concat(t)), e
}, {})
},
_sendAllBids: !0,
get enableSendAllBids() {
return this._sendAllBids
},
set enableSendAllBids(e) {
this._sendAllBids = e
},
_useBidCache: !1,
get useBidCache() {
return this._useBidCache
},
set useBidCache(e) {
this._useBidCache = e
},
_deviceAccess: !0,
get deviceAccess() {
return this._deviceAccess
},
set deviceAccess(e) {
this._deviceAccess = e
},
_bidderSequence: k,
get bidderSequence() {
return this._bidderSequence
},
set bidderSequence(e) {
y[e] ? this._bidderSequence = e : f.logWarn("Invalid order: ".concat(e, ". Bidder Sequence was not set."))
},
_timeoutBuffer: 400,
get timeoutBuffer() {
return this._timeoutBuffer
},
set timeoutBuffer(e) {
this._timeoutBuffer = e
},
_disableAjaxTimeout: !1,
get disableAjaxTimeout() {
return this._disableAjaxTimeout
},
set disableAjaxTimeout(e) {
this._disableAjaxTimeout = e
}
};
function i(t) {
return o()(Object.keys(j), function(e) {
return t === j[e]
})
}
function a(e) {
if (e) {
if ("string" == typeof e) i(e) || f.logWarn("Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default.");
else if (f.isPlainObject(e) && !Object(r.b)(e)) return f.logError("Invalid custom price value passed to `setPriceGranularity()`"), 0;
return 1
}
f.logError("Prebid Error: no value passed to `setPriceGranularity()`")
}
w && _(Object.keys(w).reduce(function(e, t) {
return w[t] !== n[t] && (e[t] = n[t] || {}), e
}, {})), w = n, I = {}
}
function O() {
if (S && I && f.isPlainObject(I[S])) {
var n = I[S],
e = new c.a(Object.keys(w).concat(Object.keys(n)));
return l(e).reduce(function(e, t) {
return void 0 === n[t] ? e[t] = w[t] : void 0 !== w[t] && f.isPlainObject(n[t]) ? e[t] = Object(u.mergeDeep)({}, w[t], n[t]) : e[t] = n[t], e
}, {})
}
return p({}, w)
}
function _(i) {
var t = Object.keys(i);
T.filter(function(e) {
return s()(t, e.topic)
}).forEach(function(e) {
var t, n, r;
e.callback((t = {}, n = e.topic, r = i[e.topic], n in t ? Object.defineProperty(t, n, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : t[n] = r, t))
}), T.filter(function(e) {
return "*" === e.topic
}).forEach(function(e) {
return e.callback(i)
})
}
function C(e, t) {
S = e;
try {
return t()
} finally {
S = null
}
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return r
}), t.b = i;
var l = n(3);
function f() {
return (f = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n, r = arguments[t];
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n])
}
return e
}).apply(this, arguments)
}
function m(e) {
return (m = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
})(e)
}
var g = n(0),
h = 4,
r = i();
function i() {
var c = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 3e3,
e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {},
u = e.request,
p = e.done;
return function(e, t, n) {
var r = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : {};
try {
var i, a = r.method || (n ? "POST" : "GET"),
o = document.createElement("a");
o.href = e;
var s, d = "object" === m(t) && null !== t ? t : {
success: function() {
g.logMessage("xhr success")
},
error: function(e) {
g.logError("xhr error", null, e)
}
};
"function" == typeof t && (d.success = t), (i = new window.XMLHttpRequest).onreadystatechange = function() {
var e;
i.readyState === h && ("function" == typeof p && p(o.origin), 200 <= (e = i.status) && e < 300 || 304 === e ? d.success(i.responseText, i) : d.error(i.statusText, i))
}, l.b.getConfig("disableAjaxTimeout") || (i.ontimeout = function() {
g.logError(" xhr timeout after ", i.timeout, "ms")
}), "GET" === a && n && (f((s = g.parseUrl(e, r)).search, n), e = g.buildUrl(s)), i.open(a, e, !0), l.b.getConfig("disableAjaxTimeout") || (i.timeout = c), r.withCredentials && (i.withCredentials = !0), g._each(r.customHeaders, function(e, t) {
i.setRequestHeader(t, e)
}), r.preflight && i.setRequestHeader("X-Requested-With", "XMLHttpRequest"), i.setRequestHeader("Content-Type", r.contentType || "text/plain"), "function" == typeof u && u(o.origin), "POST" === a && n ? i.send(n) : i.send()
} catch (e) {
g.logError("xhr construction", e)
}
}
}
}, function(e, t) {
e.exports = {
JSON_MAPPING: {
PL_CODE: "code",
PL_SIZE: "sizes",
PL_BIDS: "bids",
BD_BIDDER: "bidder",
BD_ID: "paramsd",
BD_PL_ID: "placementId",
ADSERVER_TARGETING: "adserverTargeting",
BD_SETTING_STANDARD: "standard"
},
DEBUG_MODE: "pbjs_debug",
STATUS: {
GOOD: 1,
NO_BID: 2
},
CB: {
TYPE: {
ALL_BIDS_BACK: "allRequestedBidsBack",
AD_UNIT_BIDS_BACK: "adUnitBidsBack",
BID_WON: "bidWon",
REQUEST_BIDS: "requestBids"
}
},
EVENTS: {
AUCTION_INIT: "auctionInit",
AUCTION_END: "auctionEnd",
BID_ADJUSTMENT: "bidAdjustment",
BID_TIMEOUT: "bidTimeout",
BID_REQUESTED: "bidRequested",
BID_RESPONSE: "bidResponse",
NO_BID: "noBid",
BID_WON: "bidWon",
BIDDER_DONE: "bidderDone",
SET_TARGETING: "setTargeting",
BEFORE_REQUEST_BIDS: "beforeRequestBids",
REQUEST_BIDS: "requestBids",
ADD_AD_UNITS: "addAdUnits",
AD_RENDER_FAILED: "adRenderFailed"
},
AD_RENDER_FAILED_REASON: {
PREVENT_WRITING_ON_MAIN_DOCUMENT: "preventWritingOnMainDocuemnt",
NO_AD: "noAd",
EXCEPTION: "exception",
CANNOT_FIND_AD: "cannotFindAd",
MISSING_DOC_OR_ADID: "missingDocOrAdid"
},
EVENT_ID_PATHS: {
bidWon: "adUnitCode"
},
GRANULARITY_OPTIONS: {
LOW: "low",
MEDIUM: "medium",
HIGH: "high",
AUTO: "auto",
DENSE: "dense",
CUSTOM: "custom"
},
TARGETING_KEYS: {
BIDDER: "hb_bidder",
AD_ID: "hb_adid",
PRICE_BUCKET: "hb_pb",
SIZE: "hb_size",
DEAL: "hb_deal",
SOURCE: "hb_source",
FORMAT: "hb_format",
UUID: "hb_uuid",
CACHE_ID: "hb_cache_id",
CACHE_HOST: "hb_cache_host"
},
NATIVE_KEYS: {
title: "hb_native_title",
body: "hb_native_body",
body2: "hb_native_body2",
privacyLink: "hb_native_privacy",
privacyIcon: "hb_native_privicon",
sponsoredBy: "hb_native_brand",
image: "hb_native_image",
icon: "hb_native_icon",
clickUrl: "hb_native_linkurl",
displayUrl: "hb_native_displayurl",
cta: "hb_native_cta",
rating: "hb_native_rating",
address: "hb_native_address",
downloads: "hb_native_downloads",
likes: "hb_native_likes",
phone: "hb_native_phone",
price: "hb_native_price",
salePrice: "hb_native_saleprice"
},
S2S: {
SRC: "s2s",
DEFAULT_ENDPOINT: "https://prebid.adnxs.com/pbs/v1/openrtb2/auction",
SYNCED_BIDDERS_KEY: "pbjsSyncs"
},
BID_STATUS: {
BID_TARGETING_SET: "targetingSet",
RENDERED: "rendered",
BID_REJECTED: "bidRejected"
}
}
}, , function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), n.d(t, "gdprDataHandler", function() {
return R
}), n.d(t, "uspDataHandler", function() {
return D
}), t.setS2STestingModule = function(e) {
j = e
};
var w = n(0),
f = n(101),
m = n(35),
u = n(1),
I = n(4),
T = n(3),
r = n(13),
i = n(12),
S = n.n(i),
a = n(11),
y = n.n(a),
g = n(68),
v = n(30);
function k(e, t) {
(null == t || t > e.length) && (t = e.length);
for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n];
return r
}
function h() {
return (h = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n, r = arguments[t];
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n])
}
return e
}).apply(this, arguments)
}
var j, A = n(0),
E = n(5),
O = n(8),
p = {},
_ = p.bidderRegistry = {},
l = p.aliasRegistry = {},
C = {};
T.b.getConfig("s2sConfig", function(e) {
C = e.s2sConfig
});
var o = {},
x = Object(r.b)("sync", function(e) {
var i = e.bidderCode,
c = e.auctionId,
u = e.bidderRequestId,
t = e.adUnits,
p = e.labels,
l = e.src;
return t.reduce(function(e, s) {
var t = Object(f.b)(Object(f.a)(s, p), s.mediaTypes, s.sizes),
n = t.active,
d = t.mediaTypes,
r = t.filterResults;
return n ? r && A.logInfo('Size mapping filtered adUnit "'.concat(s.code, '" banner sizes from '), r.before, "to ", r.after) : A.logInfo('Size mapping disabled adUnit "'.concat(s.code, '"')), n && e.push(s.bids.filter(function(e) {
return e.bidder === i
}).reduce(function(e, t) {
var n = s.nativeParams || A.deepAccess(s, "mediaTypes.native");
n && (t = h({}, t, {
nativeParams: Object(m.g)(n)
})), t = h({}, t, Object(w.getDefinedParams)(s, ["fpd", "mediaType", "renderer", "storedAuctionResponse"]));
var r = Object(f.b)(Object(f.a)(t, p), d),
i = r.active,
a = r.mediaTypes,
o = r.filterResults;
return i ? o && A.logInfo('Size mapping filtered adUnit "'.concat(s.code, '" bidder "').concat(t.bidder, '" banner sizes from '), o.before, "to ", o.after) : A.logInfo('Size mapping deactivated adUnit "'.concat(s.code, '" bidder "').concat(t.bidder, '"')), A.isValidMediaTypes(a) ? t = h({}, t, {
mediaTypes: a
}) : A.logError("mediaTypes is not correctly configured for adunit ".concat(s.code)), i && e.push(h({}, t, {
adUnitCode: s.code,
transactionId: s.transactionId,
sizes: A.deepAccess(a, "banner.sizes") || A.deepAccess(a, "video.playerSize") || [],
bidId: t.bid_id || A.getUniqueIdentifierStr(),
bidderRequestId: u,
auctionId: c,
src: l,
bidRequestsCount: g.a.getRequestsCounter(s.code),
bidderRequestsCount: g.a.getBidderRequestsCounter(s.code, t.bidder),
bidderWinsCount: g.a.getBidderWinsCounter(s.code, t.bidder)
})), e
}, [])), e
}, []).reduce(w.flatten, []).filter(function(e) {
return "" !== e
})
}, "getBids"),
R = {
consentData: null,
setConsentData: function(e) {
R.consentData = e
},
getConsentData: function() {
return R.consentData
}
},
D = {
consentData: null,
setConsentData: function(e) {
D.consentData = e
},
getConsentData: function() {
return D.consentData
}
};
function P() {
return C && C.enabled && C.testing && j
}
function s(e, t, n) {
try {
var r = _[e].getSpec();
r && r[t] && "function" == typeof r[t] && (A.logInfo("Invoking ".concat(e, ".").concat(t)), T.b.runWithBidder(e, w.bind.call(r[t], r, n)))
} catch (n) {
A.logWarn("Error calling ".concat(t, " of ").concat(e))
}
}
p.makeBidRequests = Object(r.b)("sync", function(e, i, a, o, s) {
O.emit(E.EVENTS.BEFORE_REQUEST_BIDS, e);
var d = [],
t = Object(w.getBidderCodes)(e);
T.b.getConfig("bidderSequence") === T.a && (t = Object(w.shuffle)(t));
var n, r, c, u, p, l, f = Object(v.b)(),
m = t,
g = [];
C.enabled && (P() && (g = j.getSourceBidderMap(e)[j.CLIENT]), n = C.bidders, m = t.filter(function(e) {
return !S()(n, e) || S()(g, e)
}), Boolean(P() && C.testServerOnly) && (l = e, Boolean(y()(l, function(e) {
return y()(e.bids, function(e) {
return (e.bidSource || C.bidderControl && C.bidderControl[e.bidder]) && e.finalSource === j.SERVER
})
}))) && (m.length = 0), u = C.bidders, (p = A.deepClone(e)).forEach(function(e) {
e.bids = e.bids.filter(function(e) {
return S()(u, e.bidder) && (!P() || e.finalSource !== j.CLIENT)
}).map(function(e) {
return e.bid_id = A.getUniqueIdentifierStr(), e
})
}), r = p = p.filter(function(e) {
return 0 !== e.bids.length
}), c = A.generateUUID(), n.forEach(function(e) {
var t = A.getUniqueIdentifierStr(),
n = {
bidderCode: e,
auctionId: a,
bidderRequestId: t,
tid: c,
bids: x({
bidderCode: e,
auctionId: a,
bidderRequestId: t,
adUnits: A.deepClone(r),
labels: s,
src: E.S2S.SRC
}),
auctionStart: i,
timeout: C.timeout,
src: E.S2S.SRC,
refererInfo: f
};
0 !== n.bids.length && d.push(n)
}), r.forEach(function(e) {
var t = e.bids.filter(function(t) {
return y()(d, function(e) {
return y()(e.bids, function(e) {
return e.bidId === t.bid_id
})
})
});
e.bids = t
}), d.forEach(function(e) {
e.adUnitsS2SCopy = r.filter(function(e) {
return 0 < e.bids.length
})
}));
var h, b = ((h = A.deepClone(e)).forEach(function(e) {
e.bids = e.bids.filter(function(e) {
return !P() || e.finalSource !== j.SERVER
})
}), h = h.filter(function(e) {
return 0 !== e.bids.length
}));
return m.forEach(function(e) {
var t = A.getUniqueIdentifierStr(),
n = {
bidderCode: e,
auctionId: a,
bidderRequestId: t,
bids: x({
bidderCode: e,
auctionId: a,
bidderRequestId: t,
adUnits: A.deepClone(b),
labels: s,
src: "client"
}),
auctionStart: i,
timeout: o,
refererInfo: f
},
r = _[e];
r || A.logError("Trying to make a request for bidder that does not exist: ".concat(e)), r && n.bids && 0 !== n.bids.length && d.push(n)
}), R.getConsentData() && d.forEach(function(e) {
e.gdprConsent = R.getConsentData()
}), D.getConsentData() && d.forEach(function(e) {
e.uspConsent = D.getConsentData()
}), d
}, "makeBidRequests"), p.callBids = function(e, t, i, a, o, s, d) {
var n, r, c, u, p, l, f, m, g, h, b, y, v;
t.length ? (y = t.reduce(function(e, t) {
return e[Number(void 0 !== t.src && t.src === E.S2S.SRC)].push(t), e
}, [
[],
[]
]), v = 2, r = (n = function(e) {
if (Array.isArray(e)) return e
}(y) || function(e, t) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) {
var n = [],
r = !0,
i = !1,
a = void 0;
try {
for (var o, s = e[Symbol.iterator](); !(r = (o = s.next()).done) && (n.push(o.value), !t || n.length !== t); r = !0);
} catch (e) {
i = !0, a = e
} finally {
try {
r || null == s.return || s.return()
} finally {
if (i) throw a
}
}
return n
}
}(y, v) || function(e, t) {
if (e) {
if ("string" == typeof e) return k(e, t);
var n = Object.prototype.toString.call(e).slice(8, -1);
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? k(e, t) : void 0
}
}(y, v) || function() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}())[0], (c = n[1]).length && (u = Object(I.b)(s, o ? {
request: o.request.bind(null, "s2s"),
done: o.done
} : void 0), p = C.bidders, l = _[C.adapter], f = c[0].tid, m = c[0].adUnitsS2SCopy, l ? (g = {
tid: f,
ad_units: m
}).ad_units.length && (h = c.map(function(e) {
return e.start = Object(w.timestamp)(), a.bind(e)
}), b = g.ad_units.reduce(function(e, t) {
return e.concat((t.bids || []).reduce(function(e, t) {
return e.concat(t.bidder)
}, []))
}, []), A.logMessage("CALLING S2S HEADER BIDDERS ==== ".concat(p.filter(function(e) {
return S()(b, e)
}).join(","))), c.forEach(function(e) {
O.emit(E.EVENTS.BID_REQUESTED, e)
}), l.callBids(g, c, function(e, t) {
var n = Object(w.getBidderRequest)(c, t.bidderCode, e);
n && i.call(n, e, t)
}, function() {
return h.forEach(function(e) {
return e()
})
}, u)) : A.logError("missing " + C.adapter)), r.forEach(function(e) {
e.start = Object(w.timestamp)();
var t = _[e.bidderCode];
A.logMessage("CALLING BIDDER ======= ".concat(e.bidderCode)), O.emit(E.EVENTS.BID_REQUESTED, e);
var n = Object(I.b)(s, o ? {
request: o.request.bind(null, e.bidderCode),
done: o.done
} : void 0),
r = a.bind(e);
try {
T.b.runWithBidder(e.bidderCode, w.bind.call(t.callBids, t, e, i.bind(e), r, n, d, T.b.callbackWithBidder(e.bidderCode)))
} catch (t) {
A.logError("".concat(e.bidderCode, " Bid Adapter emitted an uncaught error when parsing their bidRequest"), {
e: t,
bidRequest: e
}), r()
}
})) : A.logWarn("callBids executed with no bidRequests. Were they filtered by labels or sizing?")
}, p.videoAdapters = [], p.registerBidAdapter = function(e, t) {
var n = (2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}).supportedMediaTypes,
r = void 0 === n ? [] : n;
e && t ? "function" == typeof e.callBids ? (_[t] = e, S()(r, "video") && p.videoAdapters.push(t), S()(r, "native") && m.e.push(t)) : A.logError("Bidder adaptor error for bidder code: " + t + "bidder must implement a callBids() function") : A.logError("bidAdaptor or bidderCode not specified")
}, p.aliasBidAdapter = function(e, t) {
var n, r;
if (void 0 === _[t]) {
var i = _[e];
if (void 0 === i) {
var a = T.b.getConfig("s2sConfig"),
o = a && a.bidders;
o && S()(o, t) ? l[t] = e : A.logError('bidderCode "' + e + '" is not an existing bidder.', "adapterManager.aliasBidAdapter")
} else try {
var s, d, c = (n = e, r = [], S()(p.videoAdapters, n) && r.push("video"), S()(m.e, n) && r.push("native"), r);
i.constructor.prototype != Object.prototype ? (d = new i.constructor).setBidderCode(t) : (s = i.getSpec(), d = Object(u.newBidder)(h({}, s, {
code: t
})), l[t] = e), p.registerBidAdapter(d, t, {
supportedMediaTypes: c
})
} catch (t) {
A.logError(e + " bidder does not currently support aliasing.", "adapterManager.aliasBidAdapter")
}
} else A.logMessage('alias name "' + t + '" has been already specified.')
}, p.registerAnalyticsAdapter = function(e) {
var t = e.adapter,
n = e.code;
t && n ? "function" == typeof t.enableAnalytics ? (t.code = n, o[n] = t) : A.logError('Prebid Error: Analytics adaptor error for analytics "'.concat(n, '"\n analytics adapter must implement an enableAnalytics() function')) : A.logError("Prebid Error: analyticsAdapter or analyticsCode not specified")
}, p.enableAnalytics = function(e) {
A.isArray(e) || (e = [e]), A._each(e, function(e) {
var t = o[e.provider];
t ? t.enableAnalytics(e) : A.logError("Prebid Error: no analytics adapter found in registry for\n ".concat(e.provider, "."))
})
}, p.getBidAdapter = function(e) {
return _[e]
}, p.callTimedOutBidders = function(t, n, r) {
n = n.map(function(e) {
return e.params = A.getUserConfiguredParams(t, e.adUnitCode, e.bidder), e.timeout = r, e
}), n = A.groupBy(n, "bidder"), Object.keys(n).forEach(function(e) {
s(e, "onTimeout", n[e])
})
}, p.callBidWonBidder = function(e, t, n) {
t.params = A.getUserConfiguredParams(n, t.adUnitCode, t.bidder), g.a.incrementBidderWinsCounter(t.adUnitCode, t.bidder), s(e, "onBidWon", t)
}, p.callSetTargetingBidder = function(e, t) {
s(e, "onSetTargeting", t)
}, t.default = p
}, function(e, t, n) {
function r() {
return (r = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n, r = arguments[t];
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n])
}
return e
}).apply(this, arguments)
}
var s, i, d = n(0),
a = n(5),
o = Array.prototype.slice,
c = Array.prototype.push,
u = d._map(a.EVENTS, function(e) {
return e
}),
p = a.EVENT_ID_PATHS,
l = [];
e.exports = (s = {}, (i = {}).on = function(e, t, n) {
var r;
d.contains(u, e) ? (r = s[e] || {
que: []
}, n ? (r[n] = r[n] || {
que: []
}, r[n].que.push(t)) : r.que.push(t), s[e] = r) : d.logError("Wrong event name : " + e + " Valid event names :" + u)
}, i.emit = function(e) {
! function(e, t) {
d.logMessage("Emitting event for: " + e);
var n = t[0] || {},
r = n[p[e]],
i = s[e] || {
que: []
},
a = d._map(i, function(e, t) {
return t
}),
o = [];
l.push({
eventType: e,
args: n,
id: r
}), r && d.contains(a, r) && c.apply(o, i[r].que), c.apply(o, i.que), d._each(o, function(e) {
if (e) try {
e.apply(null, t)
} catch (e) {
d.logError("Error executing handler:", "events.js", e)
}
})
}(e, o.call(arguments, 1))
}, i.off = function(e, n, r) {
var i = s[e];
d.isEmpty(i) || d.isEmpty(i.que) && d.isEmpty(i[r]) || r && (d.isEmpty(i[r]) || d.isEmpty(i[r].que)) || (r ? d._each(i[r].que, function(e) {
var t = i[r].que;
e === n && t.splice(t.indexOf(e), 1)
}) : d._each(i.que, function(e) {
var t = i.que;
e === n && t.splice(t.indexOf(e), 1)
}), s[e] = i)
}, i.get = function() {
return s
}, i.getEvents = function() {
var n = [];
return d._each(l, function(e) {
var t = r({}, e);
n.push(t)
}), n
}, i)
}, function(e, t, n) {
"use strict";
n.d(t, "c", function() {
return p
}), n.d(t, "d", function() {
return l
}), t.a = function(e) {
return a({
moduleName: e,
moduleType: "core"
})
}, t.b = function(e, t) {
return a({
gvlid: e,
moduleName: t
})
};
var r = n(13),
s = n(0),
i = n(12),
d = n.n(i),
u = ["core", "prebid-module"],
p = [];
function a(e) {
var t = 0 < arguments.length && void 0 !== e ? e : {},
i = t.gvlid,
a = t.moduleName,
o = t.moduleType;
function c(n) {
return d()(u, o) ? n({
valid: !0
}) : (l(i, a, {
hasEnforcementHook: !1
}, function(e) {
var t;
r = e && e.hasEnforcementHook ? n(e) : (t = {
hasEnforcementHook: !1,
valid: s.hasDeviceAccess()
}, n(t))
}), r);
var r
}
return {
setCookie: function(i, a, o, s, d, t) {
function n(e) {
var t, n, r;
e && e.valid && (t = d && "" !== d ? " ;domain=".concat(encodeURIComponent(d)) : "", n = o && "" !== o ? " ;expires=".concat(o) : "", r = null != s && "none" == s.toLowerCase() ? "; Secure" : "", document.cookie = "".concat(i, "=").concat(encodeURIComponent(a)).concat(n, "; path=/").concat(t).concat(s ? "; SameSite=".concat(s) : "").concat(r))
}
if (!t || "function" != typeof t) return c(n);
p.push(function() {
var e = c(n);
t(e)
})
},
getCookie: function(n, t) {
function r(e) {
if (e && e.valid) {
var t = window.document.cookie.match("(^|;)\\s*" + n + "\\s*=\\s*([^;]*)\\s*(;|$)");
return t ? decodeURIComponent(t[2]) : null
}
return null
}
if (!t || "function" != typeof t) return c(r);
p.push(function() {
var e = c(r);
t(e)
})
},
localStorageIsEnabled: function(t) {
function n(e) {
if (e && e.valid) try {
return localStorage.setItem("prebid.cookieTest", "1"), "1" === localStorage.getItem("prebid.cookieTest")
} catch (e) {}
return !1
}
if (!t || "function" != typeof t) return c(n);
p.push(function() {
var e = c(n);
t(e)
})
},
cookiesAreEnabled: function(t) {
function n(e) {
return !(!e || !e.valid || !s.checkCookieSupport() && (window.document.cookie = "prebid.cookieTest", -1 === window.document.cookie.indexOf("prebid.cookieTest")))
}
if (!t || "function" != typeof t) return c(n);
p.push(function() {
var e = c(n);
t(e)
})
},
setDataInLocalStorage: function(t, n, r) {
function i(e) {
e && e.valid && window.localStorage.setItem(t, n)
}
if (!r || "function" != typeof r) return c(i);
p.push(function() {
var e = c(i);
r(e)
})
},
getDataFromLocalStorage: function(t, n) {
function r(e) {
return e && e.valid ? window.localStorage.getItem(t) : null
}
if (!n || "function" != typeof n) return c(r);
p.push(function() {
var e = c(r);
n(e)
})
},
removeDataFromLocalStorage: function(t, n) {
function r(e) {
e && e.valid && window.localStorage.removeItem(t)
}
if (!n || "function" != typeof n) return c(r);
p.push(function() {
var e = c(r);
n(e)
})
},
hasLocalStorage: function(t) {
function n(e) {
if (e && e.valid) try {
return !!window.localStorage
} catch (e) {
s.logError("Local storage api disabled")
}
return !1
}
if (!t || "function" != typeof t) return c(n);
p.push(function() {
var e = c(n);
t(e)
})
},
findSimilarCookies: function(a, t) {
function n(e) {
if (e && e.valid) {
var t = [];
if (s.hasDeviceAccess())
for (var n = document.cookie.split(";"); n.length;) {
var r = n.pop(),
i = (i = r.indexOf("=")) < 0 ? r.length : i;
0 <= decodeURIComponent(r.slice(0, i).replace(/^\s+/, "")).indexOf(a) && t.push(decodeURIComponent(r.slice(i + 1)))
}
return t
}
}
if (!t || "function" != typeof t) return c(n);
p.push(function() {
var e = c(n);
t(e)
})
}
}
}
var l = Object(r.b)("async", function(e, t, n, r) {
r(n)
}, "validateStorageEnforcement")
}, function(e, t, n) {
"use strict";
t.a = i, t.c = function(e) {
return !(!e || !e.url)
}, t.b = function(e, t) {
e.render(t)
};
var d = n(39),
c = n(0),
r = n(11),
u = n.n(r),
p = "outstream";
function i(e) {
var t = this,
r = e.url,
n = e.config,
i = e.id,
a = e.callback,
o = e.loaded,
s = e.adUnitCode;
this.url = r, this.config = n, this.handlers = {}, this.id = i, this.loaded = o, this.cmd = [], this.push = function(e) {
"function" == typeof e ? t.loaded ? e.call() : t.cmd.push(e) : c.logError("Commands given to Renderer.push must be wrapped in a function")
}, this.callback = a || function() {
t.loaded = !0, t.process()
}, this.render = function() {
var e, t = s,
n = vmpbjs.adUnits;
(e = u()(n, function(e) {
return e.code === t
})) && e.renderer && e.renderer.url && e.renderer.render ? c.logWarn("External Js not loaded by Renderer since renderer url and callback is already defined on adUnit ".concat(s)) : Object(d.a)(r, p, this.callback), this._render ? this._render.apply(this, arguments) : c.logWarn("No render function was provided, please use .setRender on the renderer")
}.bind(this)
}
i.install = function(e) {
return new i({
url: e.url,
config: e.config,
id: e.id,
callback: e.callback,
loaded: e.loaded,
adUnitCode: e.adUnitCode
})
}, i.prototype.getConfig = function() {
return this.config
}, i.prototype.setRender = function(e) {
this._render = e
}, i.prototype.setEventHandlers = function(e) {
this.handlers = e
}, i.prototype.handleVideoEvent = function(e) {
var t = e.id,
n = e.eventName;
"function" == typeof this.handlers[n] && this.handlers[n](), c.logMessage("Prebid Renderer event for id ".concat(t, " type ").concat(n))
}, i.prototype.process = function() {
for (; 0 < this.cmd.length;) try {
this.cmd.shift().call()
} catch (e) {
c.logError("Error processing Renderer command: ", e)
}
}
}, function(e, t, n) {
var r = n(105);
e.exports = r
}, function(e, t, n) {
var r = n(114);
e.exports = r
}, function(e, t, n) {
"use strict";
n.d(t, "b", function() {
return o
}), n.d(t, "a", function() {
return s
}), t.d = function(e, t) {
var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 15;
0 === e.getHooks({
hook: t
}).length && e.before(t, n)
}, t.c = function(e, n) {
o("async", function(e) {
e.forEach(function(e) {
return n.apply(void 0, function(e) {
if (Array.isArray(e)) return a(e)
}(t = e) || function(e) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e)
}(t) || function(e) {
if (e) {
if ("string" == typeof e) return a(e, void 0);
var t = Object.prototype.toString.call(e).slice(8, -1);
return "Object" === t && e.constructor && (t = e.constructor.name), "Map" === t || "Set" === t ? Array.from(e) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? a(e, void 0) : void 0
}
}(t) || function() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}());
var t
})
}, e)([])
}, t.e = function(e) {
for (var t = arguments.length, n = new Array(1 < t ? t - 1 : 0), r = 1; r < t; r++) n[r - 1] = arguments[r];
s(e).before(function(e, t) {
t.push(n), e(t)
})
};
var r = n(184),
i = n.n(r);
function a(e, t) {
(null == t || t > e.length) && (t = e.length);
for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n];
return r
}
var o = i()({
ready: i.a.SYNC | i.a.ASYNC | i.a.QUEUE
}),
s = o.get
}, function(e, t, n) {
"use strict";
var b = n(22),
y = n(107).f,
v = n(109),
w = n(42),
I = n(21),
T = n(29),
S = n(24);
e.exports = function(e, t) {
var n, r, i, a, o, s, d, c, u = e.target,
p = e.global,
l = e.stat,
f = e.proto,
m = p ? b : l ? b[u] : (b[u] || {}).prototype,
g = p ? w : w[u] || (w[u] = {}),
h = g.prototype;
for (i in t) n = !v(p ? i : u + (l ? "." : "#") + i, e.forced) && m && S(m, i), o = g[i], n && (s = e.noTargetGet ? (c = y(m, i)) && c.value : m[i]), a = n && s ? s : t[i], n && typeof o == typeof a || (d = e.bind && n ? I(a, b) : e.wrap && n ? function(r) {
function e(e, t, n) {
if (this instanceof r) {
switch (arguments.length) {
case 0:
return new r;
case 1:
return new r(e);
case 2:
return new r(e, t)
}
return new r(e, t, n)
}
return r.apply(this, arguments)
}
return e.prototype = r.prototype, e
}(a) : f && "function" == typeof a ? I(Function.call, a) : a, (e.sham || a && a.sham || o && o.sham) && T(d, "sham", !0), g[i] = d, f && (S(w, r = u + "Prototype") || T(w, r, {}), w[r][i] = a, e.real && h && !h[i] && T(h, i, a)))
}
}, function(e, t, n) {
var r = n(23);
e.exports = function(e) {
if (!r(e)) throw TypeError(String(e) + " is not an object");
return e
}
}, function(e, t) {
e.exports = !0
}, function(e, t, n) {
function f(e, t) {
this.stopped = e, this.result = t
}
var m = n(15),
g = n(82),
h = n(50),
b = n(21),
y = n(61),
v = n(83);
(e.exports = function(e, t, n, r, i) {
var a, o, s, d, c, u, p, l = b(t, n, r ? 2 : 1);
if (i) a = e;
else {
if ("function" != typeof(o = y(e))) throw TypeError("Target is not iterable");
if (g(o)) {
for (s = 0, d = h(e.length); s < d; s++)
if ((c = r ? l(m(p = e[s])[0], p[1]) : l(e[s])) && c instanceof f) return c;
return new f(!1)
}
a = o.call(e)
}
for (u = a.next; !(p = u.call(a)).done;)
if ("object" == typeof(c = v(a, l, p.value, r)) && c && c instanceof f) return c;
return new f(!1)
}).stop = function(e) {
return new f(!0, e)
}
}, function(e, t) {
e.exports = function(e) {
if ("function" != typeof e) throw TypeError(String(e) + " is not a function");
return e
}
}, function(e, t, n) {
var r = n(22),
i = n(76),
a = n(24),
o = n(59),
s = n(78),
d = n(113),
c = i("wks"),
u = r.Symbol,
p = d ? u : u && u.withoutSetter || o;
e.exports = function(e) {
return a(c, e) || (s && a(u, e) ? c[e] = u[e] : c[e] = p("Symbol." + e)), c[e]
}
}, function(e, t, n) {
"use strict";
t.a = function() {
return window.vmpbjs
}, window.vmpbjs = window.vmpbjs || {}, window.vmpbjs.cmd = window.vmpbjs.cmd || [], window.vmpbjs.que = window.vmpbjs.que || [], window._pbjsGlobals = window._pbjsGlobals || [], window._pbjsGlobals.push("vmpbjs")
}, function(e, t, n) {
var a = n(18);
e.exports = function(r, i, e) {
if (a(r), void 0 === i) return r;
switch (e) {
case 0:
return function() {
return r.call(i)
};
case 1:
return function(e) {
return r.call(i, e)
};
case 2:
return function(e, t) {
return r.call(i, e, t)
};
case 3:
return function(e, t, n) {
return r.call(i, e, t, n)
}
}
return function() {
return r.apply(i, arguments)
}
}
}, function(n, e, t) {
(function(e) {
function t(e) {
return e && e.Math == Math && e
}
n.exports = t("object" == typeof globalThis && globalThis) || t("object" == typeof window && window) || t("object" == typeof self && self) || t("object" == typeof e && e) || Function("return this")()
}).call(e, t(33))
}, function(e, t) {
e.exports = function(e) {
return "object" == typeof e ? null !== e : "function" == typeof e
}
}, function(e, t) {
var n = {}.hasOwnProperty;
e.exports = function(e, t) {
return n.call(e, t)
}
}, function(e, t, n) {
function r(e) {
return "function" == typeof e ? e : void 0
}
var i = n(42),
a = n(22);
e.exports = function(e, t) {
return arguments.length < 2 ? r(i[e]) || r(a[e]) : i[e] && i[e][t] || a[e] && a[e][t]
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return u
});
var d, i, r = n(0),
c = n(40),
a = n(11),
o = n.n(a),
s = n(5),
u = (d = [], (i = {}).reset = function() {
d = []
}, i.addWinningBid = function(t) {
var e = o()(d, function(e) {
return e.getAuctionId() === t.auctionId
});
e ? (t.status = s.BID_STATUS.RENDERED, e.addWinningBid(t)) : Object(r.logWarn)("Auction not found when adding winning bid")
}, i.getAllWinningBids = function() {
return d.map(function(e) {
return e.getWinningBids()
}).reduce(r.flatten, [])
}, i.getBidsRequested = function() {
return d.map(function(e) {
return e.getBidRequests()
}).reduce(r.flatten, [])
}, i.getNoBids = function() {
return d.map(function(e) {
return e.getNoBids()
}).reduce(r.flatten, [])
}, i.getBidsReceived = function() {
return d.map(function(e) {
if (e.getAuctionStatus() === c.a) return e.getBidsReceived()
}).reduce(r.flatten, []).filter(function(e) {
return e
})
}, i.getAdUnits = function() {
return d.map(function(e) {
return e.getAdUnits()
}).reduce(r.flatten, [])
}, i.getAdUnitCodes = function() {
return d.map(function(e) {
return e.getAdUnitCodes()
}).reduce(r.flatten, []).filter(r.uniques)
}, i.createAuction = function(e) {
var t = e.adUnits,
n = e.adUnitCodes,
r = e.callback,
i = e.cbTimeout,
a = e.labels,
o = e.auctionId,
s = Object(c.k)({
adUnits: t,
adUnitCodes: n,
callback: r,
cbTimeout: i,
labels: a,
auctionId: o
});
return d.push(s), s
}, i.findBidByAdId = function(t) {
return o()(d.map(function(e) {
return e.getBidsReceived()
}).reduce(r.flatten, []), function(e) {
return e.adId === t
})
}, i.getStandardBidderAdServerTargeting = function() {
return Object(c.j)()[s.JSON_MAPPING.ADSERVER_TARGETING]
}, i.setStatusForBids = function(e, t) {
var n, r = i.findBidByAdId(e);
r && (r.status = t), !r || t !== s.BID_STATUS.BID_TARGETING_SET || (n = o()(d, function(e) {
return e.getAuctionId() === r.auctionId
})) && n.setBidTargeting(r)
}, i.getLastAuctionId = function() {
return d.length && d[d.length - 1].getAuctionId()
}, i)
}, function(e, t, n) {
var r = n(28);
e.exports = !r(function() {
return 7 != Object.defineProperty({}, 1, {
get: function() {
return 7
}
})[1]
})
}, function(e, t) {
e.exports = function(e) {
try {
return !!e()
} catch (e) {
return !0
}
}
}, function(e, t, n) {
var r = n(27),
i = n(31),
a = n(46);
e.exports = r ? function(e, t, n) {
return i.f(e, t, a(1, n))
} : function(e, t, n) {
return e[t] = n, e
}
}, function(e, t, n) {
"use strict";
t.a = r, n.d(t, "b", function() {
return i
});
var o = n(0);
function s() {
return (s = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n, r = arguments[t];
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n])
}
return e
}).apply(this, arguments)
}
function r(a) {
return function() {
try {
var e, t = function() {
var e = function() {
var e, t = [];
do {
try {
e = e ? e.parent : a;
try {
var n = e == a.top,
r = {
referrer: e.document.referrer || null,
location: e.location.href || null,
isTop: n
};
n && (r = s(r, {
canonicalUrl: function(e) {
try {
var t = e.querySelector("link[rel='canonical']");
if (null !== t) return t.href
} catch (e) {}
return null
}(e.document)
})), t.push(r)
} catch (n) {
t.push({
referrer: null,
location: null,
isTop: e == a.top
}), Object(o.logWarn)("Trying to access cross domain iframe. Continuing without referrer and location")
}
} catch (n) {
return t.push({
referrer: null,
location: null,
isTop: !1
}), t
}
} while (e != a.top);
return t
}(),
t = function() {
try {
if (!a.location.ancestorOrigins) return;
return a.location.ancestorOrigins
} catch (e) {}
}();
if (t)
for (var n = 0, r = t.length; n < r; n++) e[n].ancestor = t[n];
return e
}(),
n = t.length - 1,
r = null !== t[n].location || 0 < n && null !== t[n - 1].referrer,
i = function(e) {
for (var t, n = [], r = null, i = null, a = null, o = null, s = null, d = e.length - 1; 0 <= d; d--) {
try {
i = e[d].location
} catch (e) {}
if (i) n.push(i), s = s || i;
else if (0 !== d) {
t = e[d - 1];
try {
a = t.referrer, o = t.ancestor
} catch (e) {}
a ? (n.push(a), s = s || a) : o ? (n.push(o), s = s || o) : n.push(r)
} else n.push(r)
}
return {
stack: n,
detectedRefererUrl: s
}
}(t);
return t[t.length - 1].canonicalUrl && (e = t[t.length - 1].canonicalUrl), {
referer: i.detectedRefererUrl,
reachedTop: r,
numIframes: n,
stack: i.stack,
canonicalUrl: e
}
} catch (e) {}
}
}
var i = r(window)
}, function(e, t, n) {
var r = n(27),
i = n(74),
a = n(15),
o = n(55),
s = Object.defineProperty;
t.f = r ? s : function(e, t, n) {
if (a(e), t = o(t, !0), a(n), i) try {
return s(e, t, n)
} catch (e) {}
if ("get" in n || "set" in n) throw TypeError("Accessors not supported");
return "value" in n && (e[t] = n.value), e
}
}, function(e, t, n) {
"use strict";
t.a = function(e, t) {
return new r(e, t)
};
var i = n(0);
function r(e, t) {
var n = t && t.src || "client",
r = e || 0;
this.bidderCode = t && t.bidder || "", this.width = 0, this.height = 0, this.statusMessage = function() {
switch (r) {
case 0:
return "Pending";
case 1:
return "Bid available";
case 2:
return "Bid returned empty or error response";
case 3:
return "Bid timed out"
}
}(), this.adId = i.getUniqueIdentifierStr(), this.requestId = t && t.bidId, this.mediaType = "banner", this.source = n, this.getStatusCode = function() {
return r
}, this.getSize = function() {
return this.width + "x" + this.height
}
}
}, function(e, t) {
var n = function() {
return this
}();
try {
n = n || Function("return this")() || (0, eval)("this")
} catch (e) {
"object" == typeof window && (n = window)
}
e.exports = n
}, function(e, t, n) {
var r = n(16),
i = n(91);
e.exports = r ? i : function(e) {
return Set.prototype.values.call(e)
}
}, function(e, t, n) {
"use strict";
n.d(t, "e", function() {
return a
}), n.d(t, "a", function() {
return c
}), t.g = function(e) {
return e && e.type && ((t = e.type) && s()(Object.keys(u), t) || (Object(o.logError)("".concat(t, " nativeParam is not supported")), 0)) ? u[e.type] : e;
var t
}, t.f = function(t, e) {
var n = Object(o.getBidRequest)(t.requestId, e);
if (!n) return !1;
if (!Object(o.deepAccess)(t, "native.clickUrl")) return !1;
if (Object(o.deepAccess)(t, "native.image") && (!Object(o.deepAccess)(t, "native.image.height") || !Object(o.deepAccess)(t, "native.image.width"))) return !1;
if (Object(o.deepAccess)(t, "native.icon") && (!Object(o.deepAccess)(t, "native.icon.height") || !Object(o.deepAccess)(t, "native.icon.width"))) return !1;
var r = n.nativeParams;
if (!r) return !0;
var i = Object.keys(r).filter(function(e) {
return r[e].required
}),
a = Object.keys(t.native).filter(function(e) {
return t.native[e]
});
return i.every(function(e) {
return s()(a, e)
})
}, t.b = function(e, t) {
var n;
return "click" === e.action ? n = t.native && t.native.clickTrackers : (n = t.native && t.native.impressionTrackers, t.native && t.native.javascriptTrackers && Object(o.insertHtmlIntoIframe)(t.native.javascriptTrackers)), (n || []).forEach(o.triggerPixel), e.action
}, t.d = function(r, i) {
var a = {};
return Object.keys(r.native).forEach(function(e) {
var t = d.NATIVE_KEYS[e],
n = p(r.native[e]);
Object(o.deepAccess)(i, "mediaTypes.native.".concat(e, ".sendId")) && (n = "".concat(t, ":").concat(r.adId)), t && n && (a[t] = n)
}), a
}, t.c = function(e, r) {
var i = {
message: "assetResponse",
adId: e.adId,
assets: []
};
return e.assets.forEach(function(e) {
var t = Object(o.getKeyByValue)(d.NATIVE_KEYS, e),
n = p(r.native[t]);
i.assets.push({
key: t,
value: n
})
}), i
};
var o = n(0),
r = n(12),
s = n.n(r);
function i(e) {
return (i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
})(e)
}
var d = n(5),
a = [],
c = Object.keys(d.NATIVE_KEYS).map(function(e) {
return d.NATIVE_KEYS[e]
}),
u = {
image: {
image: {
required: !0
},
title: {
required: !0
},
sponsoredBy: {
required: !0
},
clickUrl: {
required: !0
},
body: {
required: !1
},
icon: {
required: !1
}
}
};
function p(e) {
return "object" === i(e) && e.url ? e.url : e
}
}, function(e, t) {
e.exports = {}
}, function(e, t, n) {
var i = n(15),
a = n(18),
o = n(19)("species");
e.exports = function(e, t) {
var n, r = i(e).constructor;
return void 0 === r || null == (n = i(r)[o]) ? t : a(n)
}
}, function(e, t, n) {
"use strict";
n.d(t, "b", function() {
return s
}), n.d(t, "a", function() {
return d
}), t.d = function(e, t) {
var n = Object(a.getBidRequest)(e.requestId, t),
r = n && Object(a.deepAccess)(n, "mediaTypes.video"),
i = r && Object(a.deepAccess)(r, "context");
return c(e, n, r, i)
}, n.d(t, "c", function() {
return c
}), n(7);
var a = n(0),
i = n(3),
r = n(12),
o = (n.n(r), n(13)),
s = "outstream",
d = "instream",
c = Object(o.b)("sync", function(e, t, n, r) {
return !t || n && r !== s ? i.b.getConfig("cache.url") || !e.vastXml || e.vastUrl ? !(!e.vastUrl && !e.vastXml) : (Object(a.logError)('\n This bid contains only vastXml and will not work when a prebid cache url is not specified.\n Try enabling prebid cache with vmpbjs.setConfig({ cache: {url: "..."} });\n '), !1) : r !== s || !(!e.renderer && !t.renderer)
}, "checkVideoBidSetup")
}, function(e, t, n) {
"use strict";
t.a = function(t, e, n) {
var r, i, a;
if (e && t) {
if (o()(c, e)) return d[t] ? (n && "function" == typeof n && (d[t].loaded ? n() : d[t].callbacks.push(n)), d[t].tag) : (d[t] = {
loaded: !1,
tag: null,
callbacks: []
}, n && "function" == typeof n && d[t].callbacks.push(n), s.logWarn("module ".concat(e, " is loading external JavaScript")), r = t, i = function() {
d[t].loaded = !0;
try {
for (var e = 0; e < d[t].callbacks.length; e++) d[t].callbacks[e]()
} catch (e) {
s.logError("Error executing callback", "adloader.js:loadExternalScript", e)
}
}, (a = document.createElement("script")).type = "text/javascript", a.async = !0, (d[t].tag = a).readyState ? a.onreadystatechange = function() {
"loaded" !== a.readyState && "complete" !== a.readyState || (a.onreadystatechange = null, i())
} : a.onload = function() {
i()
}, a.src = r, s.insertElement(a), a);
s.logError("".concat(e, " not whitelisted for loading external JavaScript"))
} else s.logError("cannot load external script without url and moduleCode")
};
var r = n(12),
o = n.n(r),
s = n(0),
d = {},
c = ["criteo", "outstream", "adagio", "browsi"]
}, function(e, t, n) {
"use strict";
n.d(t, "b", function() {
return V
}), n.d(t, "a", function() {
return L
}), t.k = function(e) {
var t, i, g, h, a = e.adUnits,
n = e.adUnitCodes,
r = e.callback,
o = e.cbTimeout,
s = e.labels,
d = e.auctionId,
b = a,
c = s,
u = n,
p = [],
l = [],
f = [],
m = d || N.generateUUID(),
y = r,
v = o,
w = [],
I = new Set;
function T() {
return {
auctionId: m,
timestamp: t,
auctionEnd: i,
auctionStatus: g,
adUnits: b,
adUnitCodes: u,
labels: c,
bidderRequests: p,
noBids: f,
bidsReceived: l,
winningBids: w,
timeout: v
}
}
function S(n, e) {
var r, t;
e && clearTimeout(h), void 0 === i && (r = [], n && (N.logMessage("Auction ".concat(m, " timedOut")), t = I, (r = p.map(function(e) {
return (e.bids || []).filter(function(e) {
return !t.has(e.bidder)
})
}).reduce(E.flatten, []).map(function(e) {
return {
bidId: e.bidId,
bidder: e.bidder,
adUnitCode: e.adUnitCode,
auctionId: e.auctionId
}
})).length && q.emit(z.EVENTS.BID_TIMEOUT, r)), g = L, i = Date.now(), q.emit(z.EVENTS.AUCTION_END, T()), $(b, function() {
try {
var e;
null != y && (e = l.filter(N.bind.call(E.adUnitsFilter, this, u)).reduce(Z, {}), y.apply(vmpbjs, [e, n, m]), y = null)
} catch (e) {
N.logError("Error executing bidsBackHandler", null, e)
} finally {
r.length && B.callTimedOutBidders(a, r, v);
var t = C.b.getConfig("userSync") || {};
t.enableOverride || U(t.syncDelay)
}
}))
}
function k() {
N.logInfo("Bids Received for Auction with id: ".concat(m), l), g = L, S(!1, !0)
}
function j(e) {
I.add(e)
}
function A(o) {
var s = this;
o.forEach(function(e) {
p = p.concat(e)
});
var d = {},
e = {
bidRequests: o,
run: function() {
var e = S.bind(null, !0),
t = setTimeout(e, v);
h = t, g = V, q.emit(z.EVENTS.AUCTION_INIT, T());
var n, p, l, r, i, f, a = (n = k, p = s, l = 0, r = !1, i = new Set, f = {}, {
addBidResponse: function(e, t) {
f[t.requestId] = !0, l++;
var n, r, i, a, o, s, d, c, u = function(e) {
var t = e.adUnitCode,
n = e.bid,
r = e.bidderRequest,
i = e.auctionId,
a = r.start,
o = P({}, n, {
auctionId: i,
responseTimestamp: Object(E.timestamp)(),
requestTimestamp: a,
cpm: parseFloat(n.cpm) || 0,
bidder: n.bidderCode,
adUnitCode: t
});
o.timeToRespond = o.responseTimestamp - o.requestTimestamp, q.emit(z.EVENTS.BID_ADJUSTMENT, o);
var s = r.bids && x()(r.bids, function(e) {
return e.adUnitCode == t
}),
d = s && s.renderer;
d && d.url && (o.renderer = _.a.install({
url: d.url
}), o.renderer.setRender(d.render));
var c = Q(n.mediaType, s, C.b.getConfig("mediaTypePriceGranularity")),
u = Object(O.a)(o.cpm, "object" === D(c) ? c : C.b.getConfig("customPriceBucket"), C.b.getConfig("currency.granularityMultiplier"));
return o.pbLg = u.low, o.pbMg = u.med, o.pbHg = u.high, o.pbAg = u.auto, o.pbDg = u.dense, o.pbCg = u.custom, o
}({
adUnitCode: e,
bid: t,
bidderRequest: this,
auctionId: p.getAuctionId()
});
"video" === u.mediaType ? (n = p, r = u, i = this, a = m, o = !0, s = Object(E.getBidRequest)(r.requestId, [i]), d = s && Object(E.deepAccess)(s, "mediaTypes.video"), c = d && Object(E.deepAccess)(d, "context"), C.b.getConfig("cache.url") && c !== R.b && (r.videoCacheKey ? r.vastUrl || (N.logError("videoCacheKey specified but not required vastUrl for video bid"), o = !1) : (o = !1, X(n, r, a, s))), o && (K(n, r), a())) : (K(p, u), m())
},
adapterDone: function() {
i.add(this), r = p.getBidRequests().every(function(e) {
return i.has(e)
}), this.bids.forEach(function(e) {
f[e.bidId] || (p.addNoBid(e), q.emit(z.EVENTS.NO_BID, e))
}), r && 0 === l && n()
}
});
function m() {
l--, r && 0 === l && n()
}
B.callBids(b, o, function() {
for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n];
J.apply({
dispatch: a.addBidResponse,
bidderRequest: this
}, t)
}, a.adapterDone, {
request: function(e, t) {
u(W, t), u(d, e), G[e] || (G[e] = {
SRA: !0,
origin: t
}), 1 < d[e] && (G[e].SRA = !1)
},
done: function(e) {
W[e]--, H[0] && c(H[0]) && H.shift()
}
}, v, j)
}
};
function c(e) {
var r = !0,
i = C.b.getConfig("maxRequestsPerOrigin") || F;
return e.bidRequests.some(function(e) {
var t = 1,
n = void 0 !== e.src && e.src === z.S2S.SRC ? "s2s" : e.bidderCode;
return G[n] && (!1 === G[n].SRA && (t = Math.min(e.bids.length, i)), W[G[n].origin] + t > i && (r = !1)), !r
}), r && e.run(), r
}
function u(e, t) {
void 0 === e[t] ? e[t] = 1 : e[t]++
}
c(e) || (N.logWarn("queueing auction due to limited endpoint capacity"), H.push(e))
}
return {
addBidReceived: function(e) {
l = l.concat(e)
},
addNoBid: function(e) {
f = f.concat(e)
},
executeCallback: S,
callBids: function() {
g = M, t = Date.now();
var e = B.makeBidRequests(b, t, m, v, c);
N.logInfo("Bids Requested for Auction with id: ".concat(m), e), e.length < 1 ? (N.logWarn("No valid bid requests returned for auction"), k()) : Y.call({
dispatch: A,
context: this
}, e)
},
addWinningBid: function(e) {
w = w.concat(e), B.callBidWonBidder(e.bidder, e, a)
},
setBidTargeting: function(e) {
B.callSetTargetingBidder(e.bidder, e)
},
getWinningBids: function() {
return w
},
getTimeout: function() {
return v
},
getAuctionId: function() {
return m
},
getAuctionStatus: function() {
return g
},
getAdUnits: function() {
return b
},
getAdUnitCodes: function() {
return u
},
getBidRequests: function() {
return p
},
getBidsReceived: function() {
return l
},
getNoBids: function() {
return f
}
}
}, n.d(t, "c", function() {
return J
}), n.d(t, "e", function() {
return Y
}), t.g = c, t.d = K, n.d(t, "f", function() {
return X
}), n.d(t, "i", function() {
return u
}), n.d(t, "h", function() {
return p
}), t.j = l;
var E = n(0),
O = n(45),
d = n(35),
a = n(102),
_ = n(10),
C = n(3),
r = n(44),
i = n(13),
o = n(11),
x = n.n(o),
R = n(38),
s = n(2);
function D(e) {
return (D = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
})(e)
}
function P() {
return (P = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n, r = arguments[t];
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n])
}
return e
}).apply(this, arguments)
}
var U = r.a.syncUsers,
N = n(0),
B = n(7).default,
q = n(8),
z = n(5),
M = "started",
V = "inProgress",
L = "completed";
q.on(z.EVENTS.BID_ADJUSTMENT, function(e) {
! function(e) {
var t, n = e.bidderCode,
r = e.cpm;
if (vmpbjs.bidderSettings && (n && vmpbjs.bidderSettings[n] && "function" == typeof vmpbjs.bidderSettings[n].bidCpmAdjustment ? t = vmpbjs.bidderSettings[n].bidCpmAdjustment : vmpbjs.bidderSettings[z.JSON_MAPPING.BD_SETTING_STANDARD] && "function" == typeof vmpbjs.bidderSettings[z.JSON_MAPPING.BD_SETTING_STANDARD].bidCpmAdjustment && (t = vmpbjs.bidderSettings[z.JSON_MAPPING.BD_SETTING_STANDARD].bidCpmAdjustment), t)) try {
r = t(e.cpm, P({}, e))
} catch (e) {
N.logError("Error during bid adjustment", "bidmanager.js", e)
}
0 <= r && (e.cpm = r)
}(e)
});
var F = 4,
W = {},
G = {},
H = [],
J = Object(i.b)("async", function(e, t) {
this.dispatch.call(this.bidderRequest, e, t)
}, "addBidResponse"),
Y = Object(i.b)("sync", function(e) {
this.dispatch.call(this.context, e)
}, "addBidderRequests"),
$ = Object(i.b)("async", function(e, t) {
t && t()
}, "bidsBackCallback");
function c(e, t) {
t.timeToRespond > e.getTimeout() + C.b.getConfig("timeoutBuffer") && e.executeCallback(!0)
}
function K(e, t) {
var n, r, i, a, o = e.getBidRequests(),
s = x()(o, function(e) {
return e.bidderCode === t.bidderCode
});
r = s, (n = t).bidderCode && (0 < n.cpm || n.dealId) && (a = x()(r.bids, function(e) {
return e.adUnitCode === n.adUnitCode
}), i = function(e, t, n) {
if (!t) return {};
var r = {},
i = vmpbjs.bidderSettings;
return i && (f(r, l(t.mediaType, e, n), t), e && i[e] && i[e][z.JSON_MAPPING.ADSERVER_TARGETING] && (f(r, i[e], t), t.sendStandardTargeting = i[e].sendStandardTargeting)), t.native && (r = P({}, r, Object(d.d)(t, n))), r
}(n.bidderCode, n, a)), n.adserverTargeting = P(n.adserverTargeting || {}, i), q.emit(z.EVENTS.BID_RESPONSE, t), e.addBidReceived(t), c(e, t)
}
var X = Object(i.b)("async", function(n, r, i, e) {
Object(a.b)([r], function(e, t) {
e ? (N.logWarn("Failed to save to the video cache: ".concat(e, ". Video bid must be discarded.")), c(n, r)) : "" === t[0].uuid ? (N.logWarn("Supplied video cache key was already in use by Prebid Cache; caching attempt was rejected. Video bid must be discarded."), c(n, r)) : (r.videoCacheKey = t[0].uuid, r.vastUrl || (r.vastUrl = Object(a.a)(r.videoCacheKey)), K(n, r), i())
}, e)
}, "callPrebidCache");
function Q(e, t, n) {
if (e && n) {
if (e === s.d) {
var r = Object(E.deepAccess)(t, "mediaTypes.".concat(s.d, ".context"), "instream");
if (n["".concat(s.d, "-").concat(r)]) return n["".concat(s.d, "-").concat(r)]
}
return n[e]
}
}
var u = function(e, t) {
var n = Q(e, t, C.b.getConfig("mediaTypePriceGranularity"));
return "string" == typeof e && n ? "string" == typeof n ? n : "custom" : C.b.getConfig("priceGranularity")
},
p = function(t) {
return function(e) {
return t === z.GRANULARITY_OPTIONS.AUTO ? e.pbAg : t === z.GRANULARITY_OPTIONS.DENSE ? e.pbDg : t === z.GRANULARITY_OPTIONS.LOW ? e.pbLg : t === z.GRANULARITY_OPTIONS.MEDIUM ? e.pbMg : t === z.GRANULARITY_OPTIONS.HIGH ? e.pbHg : t === z.GRANULARITY_OPTIONS.CUSTOM ? e.pbCg : void 0
}
};
function l(e, t, n) {
function r(e, t) {
return {
key: e,
val: "function" == typeof t ? function(e) {
return t(e)
} : function(e) {
return Object(E.getValue)(e, t)
}
}
}
var i, a, o = z.TARGETING_KEYS,
s = u(e, n),
d = vmpbjs.bidderSettings;
return d[z.JSON_MAPPING.BD_SETTING_STANDARD] || (d[z.JSON_MAPPING.BD_SETTING_STANDARD] = {}), d[z.JSON_MAPPING.BD_SETTING_STANDARD][z.JSON_MAPPING.ADSERVER_TARGETING] || (d[z.JSON_MAPPING.BD_SETTING_STANDARD][z.JSON_MAPPING.ADSERVER_TARGETING] = [r(o.BIDDER, "bidderCode"), r(o.AD_ID, "adId"), r(o.PRICE_BUCKET, p(s)), r(o.SIZE, "size"), r(o.DEAL, "dealId"), r(o.SOURCE, "source"), r(o.FORMAT, "mediaType")]), "video" === e && (i = d[z.JSON_MAPPING.BD_SETTING_STANDARD][z.JSON_MAPPING.ADSERVER_TARGETING], [o.UUID, o.CACHE_ID].forEach(function(t) {
void 0 === x()(i, function(e) {
return e.key === t
}) && i.push(r(t, "videoCacheKey"))
}), !C.b.getConfig("cache.url") || t && !1 === N.deepAccess(d, "".concat(t, ".sendStandardTargeting")) || (a = Object(E.parseUrl)(C.b.getConfig("cache.url")), void 0 === x()(i, function(e) {
return e.key === o.CACHE_HOST
}) && i.push(r(o.CACHE_HOST, function(e) {
return N.deepAccess(e, "adserverTargeting.".concat(o.CACHE_HOST)) ? e.adserverTargeting[o.CACHE_HOST] : a.hostname
})))), d[z.JSON_MAPPING.BD_SETTING_STANDARD]
}
function f(r, i, a) {
var e = i[z.JSON_MAPPING.ADSERVER_TARGETING];
return a.size = a.getSize(), N._each(e, function(e) {
var t = e.key,
n = e.val;
if (r[t] && N.logWarn("The key: " + t + " is getting ovewritten"), N.isFn(n)) try {
n = n(a)
} catch (e) {
N.logError("bidmanager", "ERROR", e)
}(void 0 === i.suppressEmptyKeys || !0 !== i.suppressEmptyKeys) && t !== z.TARGETING_KEYS.DEAL || !N.isEmptyStr(n) && null != n ? r[t] = n : N.logInfo("suppressing empty key '" + t + "' from adserver targeting")
}), r
}
function Z(e, t) {
return e[t.adUnitCode] || (e[t.adUnitCode] = {
bids: []
}), e[t.adUnitCode].bids.push(t), e
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return f
});
var g = n(0),
h = n(3),
b = n(35),
r = n(26),
i = n(101),
a = n(2),
o = n(12),
y = n.n(o);
function v() {
return (v = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n, r = arguments[t];
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n])
}
return e
}).apply(this, arguments)
}
function w(e, t, n) {
return t in e ? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = n, e
}
function I(e) {
return function(e) {
if (Array.isArray(e)) return s(e)
}(e) || function(e) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e)
}(e) || function(e) {
if (e) {
if ("string" == typeof e) return s(e, void 0);
var t = Object.prototype.toString.call(e).slice(8, -1);
return "Object" === t && e.constructor && (t = e.constructor.name), "Map" === t || "Set" === t ? Array.from(e) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? s(e, void 0) : void 0
}
}(e) || function() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}()
}
function s(e, t) {
(null == t || t > e.length) && (t = e.length);
for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n];
return r
}
function d(e) {
return e.responseTimestamp + 1e3 * e.ttl + 1e3 > Object(g.timestamp)()
}
function c(e) {
return e && (e.status && !y()([T.BID_STATUS.RENDERED], e.status) || !e.status)
}
var u = n(0),
T = n(5),
S = [],
k = Object.keys(T.TARGETING_KEYS).map(function(e) {
return T.TARGETING_KEYS[e]
});
function j(e, r, t) {
var i = 2 < arguments.length && void 0 !== t ? t : 0,
a = [],
o = h.b.getConfig("sendBidsControl.dealPrioritization"),
s = Object(g.groupBy)(e, "adUnitCode");
return Object.keys(s).forEach(function(e) {
var t = [],
n = Object(g.groupBy)(s[e], "bidderCode");
Object.keys(n).forEach(function(e) {
return t.push(n[e].reduce(r))
}), 0 < i ? (t = o ? t(A(!0)) : t.sort(function(e, t) {
return t.cpm - e.cpm
}), a.push.apply(a, I(t.slice(0, i)))) : a.push.apply(a, I(t))
}), a
}
function A(e) {
var n = 0 < arguments.length && void 0 !== e && e;
return function(e, t) {
return void 0 !== e.adUnitTargeting.hb_deal && void 0 === t.adUnitTargeting.hb_deal ? -1 : void 0 === e.adUnitTargeting.hb_deal && void 0 !== t.adUnitTargeting.hb_deal ? 1 : n ? t.cpm - e.cpm : t.adUnitTargeting.hb_pb - e.adUnitTargeting.hb_pb
}
}
var p, E, l, f = (p = r.a, l = {}, (E = {}).setLatestAuctionForAdUnit = function(e, t) {
l[e] = t
}, E.resetPresetTargeting = function(e, t) {
var n, i;
Object(g.isGptPubadsDefined)() && (n = _(e), i = p.getAdUnits().filter(function(e) {
return y()(n, e.code)
}), window.googletag.pubads().getSlots().forEach(function(n) {
var r = u.isFn(t) && t(n);
S.forEach(function(t) {
i.forEach(function(e) {
(e.code === n.getAdUnitPath() || e.code === n.getSlotElementId() || u.isFn(r) && r(e.code)) && n.setTargeting(t, null)
})
})
}))
}, E.resetPresetTargetingAST = function(e) {
_(e).forEach(function(e) {
var t, n, r = window.apntag.getTag(e);
r && r.keywords && (t = Object.keys(r.keywords), n = {}, t.forEach(function(e) {
y()(S, e.toLowerCase()) || (n[e] = r.keywords[e])
}), window.apntag.modifyTag(e, {
keywords: n
}))
})
}, E.getAllTargeting = function(e) {
var n, t, r, i, a, o, s, d = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : C(),
c = _(e),
u = (o = E.getWinningBids(c, d), s = x(), (o = o.map(function(a) {
return w({}, a.adUnitCode, Object.keys(a.adserverTargeting).filter(function(e) {
return void 0 === a.sendStandardTargeting || a.sendStandardTargeting || -1 === s.indexOf(e)
}).reduce(function(e, t) {
var n = [a.adserverTargeting[t]],
r = w({}, t.substring(0, 20), n);
if (t !== T.TARGETING_KEYS.DEAL) return [].concat(I(e), [r]);
var i = w({}, "".concat(t, "_").concat(a.bidderCode).substring(0, 20), n);
return [].concat(I(e), [r, i])
}, []))
})).concat((a = c, d.filter(function(e) {
return y()(a, e.adUnitCode)
}).map(function(e) {
return v({}, e)
}).reduce(R, []).map(D).filter(function(e) {
return e
}))).concat(h.b.getConfig("enableSendAllBids") ? (n = c, t = d, r = k.concat(b.a), i = h.b.getConfig("sendBidsControl.bidLimit"), j(t, g.getHighestCpm, i).map(function(t) {
if (O(t, n)) return w({}, t.adUnitCode, P(t, r.filter(function(e) {
return void 0 !== t.adserverTargeting[e]
})))
}).filter(function(e) {
return e
})) : function(e, t) {
if (!0 !== h.b.getConfig("targetingControls.alwaysIncludeDeals")) return [];
var n = k.concat(b.a);
return j(t, g.getHighestCpm).map(function(t) {
if (t.dealId && O(t, e)) return w({}, t.adUnitCode, P(t, n.filter(function(e) {
return void 0 !== t.adserverTargeting[e]
})))
}).filter(function(e) {
return e
})
}(c, d)));
u.map(function(t) {
Object.keys(t).map(function(e) {
t[e].map(function(e) {
-1 === S.indexOf(Object.keys(e)[0]) && (S = Object.keys(e).concat(S))
})
})
}), u = u.map(function(e) {
return w({}, Object.keys(e)[0], e[Object.keys(e)[0]].map(function(e) {
return w({}, Object.keys(e)[0], e[Object.keys(e)[0]].join(", "))
}).reduce(function(e, t) {
return v(t, e)
}, {}))
}).reduce(function(e, t) {
var n = Object.keys(t)[0];
return e[n] = v({}, e[n], t[n]), e
}, {});
var p, l, f, m = h.b.getConfig("targetingControls.auctionKeyMaxChars");
return m && (Object(g.logInfo)("Detected 'targetingControls.auctionKeyMaxChars' was active for this auction; set with a limit of ".concat(m, " characters. Running checks on auction keys...")), p = u, l = m, f = Object(g.deepClone)(p), u = Object.keys(f).map(function(e) {
return {
adUnitCode: e,
adUnitTargeting: f[e]
}
}).sort(A()).reduce(function(e, t, n, r) {
var i, a = (i = t.adUnitTargeting, Object.keys(i).reduce(function(e, t) {
return e + "".concat(t, "%3d").concat(encodeURIComponent(i[t]), "%26")
}, ""));
n + 1 === r.length && (a = a.slice(0, -3));
var o = t.adUnitCode,
s = a.length;
return s <= l ? (l -= s, Object(g.logInfo)("AdUnit '".concat(o, "' auction keys comprised of ").concat(s, " characters. Deducted from running threshold; new limit is ").concat(l), f[o]), e[o] = f[o]) : Object(g.logWarn)("The following keys for adUnitCode '".concat(o, "' exceeded the current limit of the 'auctionKeyMaxChars' setting.\nThe key-set size was ").concat(s, ", the current allotted amount was ").concat(l, ".\n"), f[o]), n + 1 === r.length && 0 === Object.keys(e).length && Object(g.logError)("No auction targeting keys were permitted due to the setting in setConfig(targetingControls.auctionKeyMaxChars). Please review setup and consider adjusting."), e
}, {})), c.forEach(function(e) {
u[e] || (u[e] = {})
}), u
}, E.setTargetingForGPT = function(i, e) {
window.googletag.pubads().getSlots().forEach(function(r) {
Object.keys(i).filter((e || Object(g.isAdUnitCodeMatchingSlot))(r)).forEach(function(n) {
return Object.keys(i[n]).forEach(function(t) {
var e = i[n][t].split(",");
(e = 1 < e.length ? [e] : e).map(function(e) {
return u.logMessage("Attempting to set key value for slot: ".concat(r.getSlotElementId(), " key: ").concat(t, " value: ").concat(e)), e
}).forEach(function(e) {
r.setTargeting(t, e)
})
})
})
})
}, E.getWinningBids = function(e) {
var n = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : C(),
t = _(e);
return n.filter(function(e) {
return y()(t, e.adUnitCode)
}).filter(function(e) {
return 0 < e.cpm
}).map(function(e) {
return e.adUnitCode
}).filter(g.uniques).map(function(t) {
return n.filter(function(e) {
return e.adUnitCode === t ? e : null
}).reduce(g.getHighestCpm)
})
}, E.setTargetingForAst = function(e) {
var r = E.getAllTargeting(e);
try {
E.resetPresetTargetingAST(e)
} catch (e) {
u.logError("unable to reset targeting for AST" + e)
}
Object.keys(r).forEach(function(n) {
return Object.keys(r[n]).forEach(function(e) {
var t;
u.logMessage("Attempting to set targeting for targetId: ".concat(n, " key: ").concat(e, " value: ").concat(r[n][e])), (u.isStr(r[n][e]) || u.isArray(r[n][e])) && (t = {}, e.search(/pt[0-9]/) < 0 ? t[e.toUpperCase()] = r[n][e] : t[e] = r[n][e], window.apntag.setKeywords(n, t, {
overrideKeyValue: !0
}))
})
})
}, E.isApntagDefined = function() {
if (window.apntag && u.isFn(window.apntag.setKeywords)) return !0
}, E);
function O(e, t) {
return e.adserverTargeting && t && (u.isArray(t) && y()(t, e.adUnitCode) || "string" == typeof t && e.adUnitCode === t)
}
function _(e) {
return "string" == typeof e ? [e] : u.isArray(e) ? e : p.getAdUnitCodes() || []
}
function C() {
var e = p.getBidsReceived();
return h.b.getConfig("useBidCache") || (e = e.filter(function(e) {
return l[e.adUnitCode] === e.auctionId
})), j(e = e.filter(function(e) {
return Object(g.deepAccess)(e, "video.context") !== a.a
}).filter(function(e) {
return "banner" !== e.mediaType || Object(i.c)([e.width, e.height])
}).filter(c).filter(d), g.getOldestHighestCpmBid)
}
function x() {
return p.getStandardBidderAdServerTargeting().map(function(e) {
return e.key
}).concat(k).filter(g.uniques)
}
function R(r, i, e, t) {
return Object.keys(i.adserverTargeting).filter(m()).forEach(function(e) {
var t, n;
r.length && r.filter((n = e, function(e) {
return e.adUnitCode === i.adUnitCode && e.adserverTargeting[n]
})).forEach((t = e, function(e) {
u.isArray(e.adserverTargeting[t]) || (e.adserverTargeting[t] = [e.adserverTargeting[t]]), e.adserverTargeting[t] = e.adserverTargeting[t].concat(i.adserverTargeting[t]).filter(g.uniques), delete i.adserverTargeting[t]
}))
}), r.push(i), r
}
function m() {
var t = x().concat(b.a);
return function(e) {
return -1 === t.indexOf(e)
}
}
function D(t) {
return w({}, t.adUnitCode, Object.keys(t.adserverTargeting).filter(m()).map(function(e) {
return w({}, e.substring(0, 20), [t.adserverTargeting[e]])
}))
}
function P(t, e) {
return e.map(function(e) {
return w({}, "".concat(e, "_").concat(t.bidderCode).substring(0, 20), [t.adserverTargeting[e]])
})
}
}, function(e, t) {
e.exports = {}
}, function(e, t, n) {
"use strict";
function r(e, t) {
var n = 2 < arguments.length ? arguments[2] : {},
r = c(t);
u && (r = l.call(r, Object.getOwnPropertySymbols(t)));
for (var i, a, o, s, d = 0; d < r.length; d += 1) i = e, a = r[d], o = t[r[d]], s = n[r[d]], a in i && ("function" != typeof s || "[object Function]" !== p.call(s) || !s()) || (m ? f(i, a, {
configurable: !0,
enumerable: !1,
value: o,
writable: !0
}) : i[a] = o)
}
var c = n(93),
u = "function" == typeof Symbol && "symbol" == typeof Symbol("foo"),
p = Object.prototype.toString,
l = Array.prototype.concat,
f = Object.defineProperty,
m = f && function() {
var e = {};
try {
for (var t in f(e, "x", {
enumerable: !1,
value: e
}), e) return !1;
return e.x === e
} catch (e) {
return !1
}
}();
r.supportsDescriptors = !!m, e.exports = r
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return w
});
var o = n(0),
r = n(3),
i = n(12),
a = n.n(i),
s = n(9);
function d(e, t) {
return function(e) {
if (Array.isArray(e)) return e
}(e) || function(e, t) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) {
var n = [],
r = !0,
i = !1,
a = void 0;
try {
for (var o, s = e[Symbol.iterator](); !(r = (o = s.next()).done) && (n.push(o.value), !t || n.length !== t); r = !0);
} catch (e) {
i = !0, a = e
} finally {
try {
r || null == s.return || s.return()
} finally {
if (i) throw a
}
}
return n
}
}(e, t) || function(e, t) {
if (e) {
if ("string" == typeof e) return c(e, t);
var n = Object.prototype.toString.call(e).slice(8, -1);
return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? c(e, t) : void 0
}
}(e, t) || function() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}()
}
function c(e, t) {
(null == t || t > e.length) && (t = e.length);
for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n];
return r
}
function u() {
return (u = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n, r = arguments[t];
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n])
}
return e
}).apply(this, arguments)
}
r.b.setDefaults({
userSync: o.deepClone({
syncEnabled: !0,
filterSettings: {
image: {
bidders: "*",
filter: "include"
}
},
syncsPerBidder: 5,
syncDelay: 3e3,
auctionDelay: 0
})
});
var p, l, f, m, g, h, b, y = Object(s.a)("usersync"),
v = !o.isSafariBrowser() && y.cookiesAreEnabled(),
w = (p = {
config: r.b.getConfig("userSync"),
browserSupportsCookies: v
}, l = {}, f = I(), m = new Set, h = {
image: !0,
iframe: !(g = {})
}, b = p.config, r.b.getConfig("userSync", function(e) {
var t;
e.userSync && (t = e.userSync.filterSettings, o.isPlainObject(t) && (t.image || t.all || (e.userSync.filterSettings.image = {
bidders: "*",
filter: "include"
}))), b = u(b, e.userSync)
}), l.registerSync = function(e, t, n) {
return m.has(t) ? o.logMessage('already fired syncs for "'.concat(t, '", ignoring registerSync call')) : b.syncEnabled && o.isArray(f[e]) ? t ? 0 !== b.syncsPerBidder && Number(g[t]) >= b.syncsPerBidder ? o.logWarn('Number of user syncs exceeded for "'.concat(t, '"')) : l.canBidderRegisterSync(e, t) ? (f[e].push([t, n]), (r = g)[i = t] ? r[i] += 1 : r[i] = 1, void(g = r)) : o.logWarn('Bidder "'.concat(t, '" not permitted to register their "').concat(e, '" userSync pixels.')) : o.logWarn("Bidder is required for registering sync") : o.logWarn('User sync type "'.concat(e, '" not supported'));
var r, i
}, l.syncUsers = function() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0;
if (e) return setTimeout(T, Number(e));
T()
}, l.triggerUserSyncs = function() {
b.enableOverride && l.syncUsers()
}, l.canBidderRegisterSync = function(e, t) {
return !b.filterSettings || ! function(e, t) {
var n = b.filterSettings;
if (function(e, t) {
if (e.all && e[t]) return o.logWarn('Detected presence of the "filterSettings.all" and "filterSettings.'.concat(t, '" in userSync config. You cannot mix "all" with "iframe/image" configs; they are mutually exclusive.')), 0;
var n = e.all ? e.all : e[t],
r = e.all ? "all" : t;
if (n) {
var i = n.filter,
a = n.bidders;
return i && "include" !== i && "exclude" !== i ? (o.logWarn('UserSync "filterSettings.'.concat(r, ".filter\" setting '").concat(i, "' is not a valid option; use either 'include' or 'exclude'.")), 0) : "*" === a || Array.isArray(a) && 0 < a.length && a.every(function(e) {
return o.isStr(e) && "*" !== e
}) || (o.logWarn('Detected an invalid setup in userSync "filterSettings.'.concat(r, ".bidders\"; use either '*' (to represent all bidders) or an array of bidders.")), 0)
}
}(n, e)) {
h[e] = !0;
var r = n.all ? n.all : n[e],
i = "*" === r.bidders ? [t] : r.bidders;
return {
include: function(e, t) {
return !a()(e, t)
},
exclude: function(e, t) {
return a()(e, t)
}
} [r.filter || "include"](i, t)
}
}(e, t)
}, l);
function I() {
return {
image: [],
iframe: []
}
}
function T() {
if (b.syncEnabled && p.browserSupportsCookies) {
try {
h.image && S(f.image, function(e) {
var t = d(e, 2),
n = t[0],
r = t[1];
o.logMessage("Invoking image pixel user sync for bidder: ".concat(n)), o.triggerPixel(r)
}), h.iframe && S(f.iframe, function(e) {
var t = d(e, 2),
n = t[0],
r = t[1];
o.logMessage("Invoking iframe user sync for bidder: ".concat(n)), o.insertUserSyncIframe(r)
})
} catch (e) {
return o.logError("Error firing user syncs", e)
}
f = I()
}
}
function S(e, t) {
o.shuffle(e).forEach(function(e) {
t(e), m.add(e[0])
})
}
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return u
}), n.d(t, "b", function() {
return g
});
var r = n(11),
f = n.n(r),
i = n(0),
m = 2,
a = {
buckets: [{
max: 5,
increment: .5
}]
},
o = {
buckets: [{
max: 20,
increment: .1
}]
},
s = {
buckets: [{
max: 20,
increment: .01
}]
},
d = {
buckets: [{
max: 3,
increment: .01
}, {
max: 8,
increment: .05
}, {
max: 20,
increment: .5
}]
},
c = {
buckets: [{
max: 5,
increment: .05
}, {
max: 10,
increment: .1
}, {
max: 20,
increment: .5
}]
};
function u(e, t) {
var n = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 1,
r = parseFloat(e);
return isNaN(r) && (r = ""), {
low: "" === r ? "" : p(e, a, n),
med: "" === r ? "" : p(e, o, n),
high: "" === r ? "" : p(e, s, n),
auto: "" === r ? "" : p(e, c, n),
dense: "" === r ? "" : p(e, d, n),
custom: "" === r ? "" : p(e, t, n)
}
}
function p(n, e, r) {
var i = "";
if (!g(e)) return i;
var t, a, o, s, d, c, u = e.buckets.reduce(function(e, t) {
return e.max > t.max ? e : t
}, {
max: 0
}),
p = 0,
l = f()(e.buckets, function(e) {
if (n > u.max * r) {
var t = e.precision;
void 0 === t && (t = m), i = (e.max * r).toFixed(t)
} else {
if (n <= e.max * r && p * r <= n) return e.min = p, e;
p = e.max
}
});
return l && (t = void 0 !== l.precision ? l.precision : m, a = l.increment * r, o = l.min * r, d = (n * (s = Math.pow(10, t + 2)) - o * s) / (a * s), c = Math.floor(d) * a + o, i = (c = Number(c.toFixed(10))).toFixed(t)), i
}
function g(e) {
if (i.isEmpty(e) || !e.buckets || !Array.isArray(e.buckets)) return !1;
var t = !0;
return e.buckets.forEach(function(e) {
e.max && e.increment || (t = !1)
}), t
}
}, function(e, t) {
e.exports = function(e, t) {
return {
enumerable: !(1 & e),
configurable: !(2 & e),
writable: !(4 & e),
value: t
}
}
}, function(e, t, n) {
var r = n(73),
i = n(49);
e.exports = function(e) {
return r(i(e))
}
}, function(e, t) {
var n = {}.toString;
e.exports = function(e) {
return n.call(e).slice(8, -1)
}
}, function(e, t) {
e.exports = function(e) {
if (null == e) throw TypeError("Can't call method on " + e);
return e
}
}, function(e, t, n) {
var r = n(58),
i = Math.min;
e.exports = function(e) {
return 0 < e ? i(r(e), 9007199254740991) : 0
}
}, function(e, t) {
e.exports = function() {}
}, function(e, t, n) {
var r = n(25);
e.exports = r
}, function(e, t) {
e.exports = {}
}, function(e, t, n) {
var r, i, a, o, s, d, c, u = n(122),
p = n(22),
l = n(23),
f = n(29),
m = n(24),
g = n(65),
h = n(53),
b = p.WeakMap,
y = u ? (r = new b, i = r.get, a = r.has, o = r.set, s = function(e, t) {
return o.call(r, e, t), t
}, d = function(e) {
return i.call(r, e) || {}
}, function(e) {
return a.call(r, e)
}) : (h[c = g("state")] = !0, s = function(e, t) {
return f(e, c, t), t
}, d = function(e) {
return m(e, c) ? e[c] : {}
}, function(e) {
return m(e, c)
});
e.exports = {
set: s,
get: d,
has: y,
enforce: function(e) {
return y(e) ? d(e) : s(e, {})
},
getterFor: function(n) {
return function(e) {
var t;
if (!l(e) || (t = d(e)).type !== n) throw TypeError("Incompatible receiver, " + n + " required");
return t
}
}
}
}, function(e, t, n) {
var i = n(23);
e.exports = function(e, t) {
if (!i(e)) return e;
var n, r;
if (t && "function" == typeof(n = e.toString) && !i(r = n.call(e))) return r;
if ("function" == typeof(n = e.valueOf) && !i(r = n.call(e))) return r;
if (!t && "function" == typeof(n = e.toString) && !i(r = n.call(e))) return r;
throw TypeError("Can't convert object to primitive value")
}
}, function(e, t, n) {
function r(f) {
var m = 1 == f,
g = 2 == f,
h = 3 == f,
b = 4 == f,
y = 6 == f,
v = 5 == f || y;
return function(e, t, n, r) {
for (var i, a, o = T(e), s = I(o), d = w(t, n, 3), c = S(s.length), u = 0, p = r || k, l = m ? p(e, c) : g ? p(e, 0) : void 0; u < c; u++)
if ((v || u in s) && (a = d(i = s[u], u, o), f))
if (m) l[u] = a;
else if (a) switch (f) {
case 3:
return !0;
case 5:
return i;
case 6:
return u;
case 2:
j.call(l, i)
} else if (b) return !1;
return y ? -1 : h || b ? b : l
}
}
var w = n(21),
I = n(73),
T = n(57),
S = n(50),
k = n(110),
j = [].push;
e.exports = {
forEach: r(0),
map: r(1),
filter: r(2),
some: r(3),
every: r(4),
find: r(5),
findIndex: r(6)
}
}, function(e, t, n) {
var r = n(49);
e.exports = function(e) {
return Object(r(e))
}
}, function(e, t) {
var n = Math.ceil,
r = Math.floor;
e.exports = function(e) {
return isNaN(e = +e) ? 0 : (0 < e ? r : n)(e)
}
}, function(e, t) {
var n = 0,
r = Math.random();
e.exports = function(e) {
return "Symbol(" + String(void 0 === e ? "" : e) + ")_" + (++n + r).toString(36)
}
}, function(e, t, n) {
function o(e) {
throw e
}
var s = n(27),
d = n(28),
c = n(24),
u = Object.defineProperty,
p = {};
e.exports = function(e, t) {
if (c(p, e)) return p[e];
var n = [][e],
r = !!c(t = t || {}, "ACCESSORS") && t.ACCESSORS,
i = c(t, 0) ? t[0] : o,
a = c(t, 1) ? t[1] : void 0;
return p[e] = !!n && !d(function() {
if (r && !s) return !0;
var e = {
length: -1
};
r ? u(e, 1, {
enumerable: !0,
get: o
}) : e[1] = 1, n.call(e, i, a)
})
}
}, function(e, t, n) {
var r = n(62),
i = n(36),
a = n(19)("iterator");
e.exports = function(e) {
if (null != e) return e[a] || e["@@iterator"] || i[r(e)]
}
}, function(e, t, n) {
var r = n(63),
i = n(48),
a = n(19)("toStringTag"),
o = "Arguments" == i(function() {
return arguments
}());
e.exports = r ? i : function(e) {
var t, n, r;
return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof(n = function(e, t) {
try {
return e[t]
} catch (e) {}
}(t = Object(e), a)) ? n : o ? i(t) : "Object" == (r = i(t)) && "function" == typeof t.callee ? "Arguments" : r
}
}, function(e, t, n) {
var r = {};
r[n(19)("toStringTag")] = "z", e.exports = "[object z]" === String(r)
}, function(e, t, n) {
var a = n(63),
o = n(31).f,
s = n(29),
d = n(24),
c = n(121),
u = n(19)("toStringTag");
e.exports = function(e, t, n, r) {
var i;
e && (i = n ? e : e.prototype, d(i, u) || o(i, u, {
configurable: !0,
value: t
}), r && !a && s(i, "toString", c))
}
}, function(e, t, n) {
var r = n(76),
i = n(59),
a = r("keys");
e.exports = function(e) {
return a[e] || (a[e] = i(e))
}
}, function(e, t, n) {
"use strict";
function b() {
return this
}
var y = n(14),
v = n(130),
w = n(89),
I = n(132),
T = n(64),
S = n(29),
k = n(87),
r = n(19),
j = n(16),
A = n(36),
i = n(88),
E = i.IteratorPrototype,
O = i.BUGGY_SAFARI_ITERATORS,
_ = r("iterator"),
C = "values";
e.exports = function(e, t, n, r, i, a, o) {
function s(e) {
if (e === i && g) return g;
if (!O && e in f) return f[e];
switch (e) {
case "keys":
case C:
case "entries":
return function() {
return new n(this, e)
}
}
return function() {
return new n(this)
}
}
v(n, t, r);
var d, c, u, p = t + " Iterator",
l = !1,
f = e.prototype,
m = f[_] || f["@@iterator"] || i && f[i],
g = !O && m || s(i),
h = "Array" == t && f.entries || m;
if (h && (d = w(h.call(new e)), E !== Object.prototype && d.next && (j || w(d) === E || (I ? I(d, E) : "function" != typeof d[_] && S(d, _, b)), T(d, p, !0, !0), j && (A[p] = b))), i == C && m && m.name !== C && (l = !0, g = function() {
return m.call(this)
}), j && !o || f[_] === g || S(f, _, g), A[t] = g, i)
if (c = {
values: s(C),
keys: a ? g : s("keys"),
entries: s("entries")
}, o)
for (u in c) !O && !l && u in f || k(f, u, c[u]);
else y({
target: t,
proto: !0,
forced: O || l
}, c);
return c
}
}, function(e, t, n) {
"use strict";
var r = n(172);
e.exports = Function.prototype.bind || r
}, function(e, t, n) {
"use strict";
n.d(t, "a", function() {
return a
});
var r = n(0),
o = {};
function i(e, t, n) {
var r, i, a = (r = n, i = o[e] = o[e] || {
bidders: {}
}, r ? i.bidders[r] = i.bidders[r] || {} : i);
return a[t] = (a[t] || 0) + 1, a[t]
}
var a = {
incrementRequestsCounter: function(e) {
return i(e, "requestsCounter")
},
incrementBidderRequestsCounter: function(e, t) {
return i(e, "requestsCounter", t)
},
incrementBidderWinsCounter: function(e, t) {
return i(e, "winsCounter", t)
},
getRequestsCounter: function(e) {
return Object(r.deepAccess)(o, "".concat(e, ".requestsCounter")) || 0
},
getBidderRequestsCounter: function(e, t) {
return Object(r.deepAccess)(o, "".concat(e, ".bidders.").concat(t, ".requestsCounter")) || 0
},
getBidderWinsCounter: function(e, t) {
return Object(r.deepAccess)(o, "".concat(e, ".bidders.").concat(t, ".winsCounter")) || 0
}
}
}, function(e, t, n) {
var r = n(238);
e.exports = r
}, function(e, t, n) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), n.d(t, "adUnitSetupChecks", function() {
return W
}), n.d(t, "checkAdUnitSetup", function() {
return G
}), t.executeStorageCallbacks = Y;
var r = n(20),
i = n(0),
a = n(246),
o = n(44),
u = n(3),
b = n(26),
p = n(41),
s = n(13),
d = n(247),
c = n(12),
l = n.n(c),
f = n(68),
y = n(10),
m = n(32),
g = n(9);
function h(e) {
return (h = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
})(e)
}
function v() {
return (v = Object.assign || function(e) {
for (var t = 1; t < arguments.length; t++) {
var n, r = arguments[t];
for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n])
}
return e
}).apply(this, arguments)
}
var w = Object(r.a)(),
I = n(5),
T = n(0),
S = n(7).default,
k = n(8),
j = o.a.triggerUserSyncs,
A = I.EVENTS,
E = A.ADD_AD_UNITS,
O = A.BID_WON,
_ = A.REQUEST_BIDS,
C = A.SET_TARGETING,
x = A.AD_RENDER_FAILED,
R = I.AD_RENDER_FAILED_REASON,
D = R.PREVENT_WRITING_ON_MAIN_DOCUMENT,
P = R.NO_AD,
U = R.EXCEPTION,
N = R.CANNOT_FIND_AD,
B = R.MISSING_DOC_OR_ADID,
q = {
bidWon: function(e) {
var t = b.a.getBidsRequested().map(function(e) {
return e.bids.map(function(e) {
return e.adUnitCode
})
}).reduce(i.flatten).filter(i.uniques);
return !!T.contains(t, e) || void T.logError('The "' + e + '" placement is not defined.')
}
};
function z(e, t, n) {
e.defaultView && e.defaultView.frameElement && (e.defaultView.frameElement.width = t, e.defaultView.frameElement.height = n)
}
function M(e, t) {
var n = [];
return T.isArray(e) && (t ? e.length === t : 0 < e.length) && (e.every(function(e) {
return Object(i.isArrayOfNums)(e, 2)
}) ? n = e : Object(i.isArrayOfNums)(e, 2) && n.push(e)), n
}
function V(e) {
var t = e.mediaTypes.banner,
n = M(t.sizes);
0 < n.length ? (t.sizes = n, e.sizes = n) : (T.logError("Detected a mediaTypes.banner object without a proper sizes field. Please ensure the sizes are listed like: [[300, 250], ...]. Removing invalid mediaTypes.banner object from request."), delete e.mediaTypes.banner)
}
function L(e) {
var t = e.mediaTypes.video,
n = "number" == typeof t.playerSize[0] ? 2 : 1,
r = M(t.playerSize, n);
0 < r.length ? (2 == n && T.logInfo("Transforming video.playerSize from [640,480] to [[640,480]] so it's in the proper format."), t.playerSize = r, e.sizes = r) : (T.logError("Detected incorrect configuration of mediaTypes.video.playerSize. Please specify only one set of dimensions in a format like: [[640, 480]]. Removing invalid mediaTypes.video.playerSize property from request."), delete e.mediaTypes.video.playerSize)
}
function F(e) {
var t = e.mediaTypes.native;
t.image && t.image.sizes && !Array.isArray(t.image.sizes) && (T.logError("Please use an array of sizes for native.image.sizes field. Removing invalid mediaTypes.native.image.sizes property from request."), delete e.mediaTypes.native.image.sizes), t.image && t.image.aspect_ratios && !Array.isArray(t.image.aspect_ratios) && (T.logError("Please use an array of sizes for native.image.aspect_ratios field. Removing invalid mediaTypes.native.image.aspect_ratios property from request."), delete e.mediaTypes.native.image.aspect_ratios), t.icon && t.icon.sizes && !Array.isArray(t.icon.sizes) && (T.logError("Please use an array of sizes for native.icon.sizes field. Removing invalid mediaTypes.native.icon.sizes property from request."), delete e.mediaTypes.native.icon.sizes)
}
Object(d.a)(), w.bidderSettings = w.bidderSettings || {}, w.libLoaded = !0, w.version = "v3.23.0", T.logInfo("Prebid.js v3.23.0 loaded"), w.adUnits = w.adUnits || [], w.triggerUserSyncs = j;
var W = {
validateBannerMediaType: V,
validateVideoMediaType: L,
validateNativeMediaType: F,
validateSizes: M
},
G = Object(s.b)("sync", function(e) {
return e.filter(function(e) {
var t = e.mediaTypes;
return t && 0 !== Object.keys(t).length ? (t.banner && V(e), t.video && t.video.playerSize && L(e), t.native && F(e), !0) : (T.logError("Detected adUnit.code '".concat(e.code, "' did not have a 'mediaTypes' object defined. This is a required field for the auction, so this adUnit has been removed.")), !1)
})
}, "checkAdUnitSetup");
function H(e) {
var n = b.a[e]().filter(T.bind.call(i.adUnitsFilter, this, b.a.getAdUnitCodes())),
r = b.a.getLastAuctionId();
return n.map(function(e) {
return e.adUnitCode
}).filter(i.uniques).map(function(t) {
return n.filter(function(e) {
return e.auctionId === r && e.adUnitCode === t
})
}).filter(function(e) {
return e && e[0] && e[0].adUnitCode
}).map(function(e) {
return t = {}, r = {
bids: e
}, (n = e[0].adUnitCode) in t ? Object.defineProperty(t, n, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : t[n] = r, t;
var t, n, r
}).reduce(function(e, t) {
return v(e, t)
}, {})
}
function J(e) {
var t = e.reason,
n = e.message,
r = e.bid,
i = e.id,
a = {
reason: t,
message: n
};
r && (a.bid = r), i && (a.adId = i), T.logError(n), k.emit(x, a)
}
function Y(e, t) {
! function(e) {
for (var t; t = e.shift();) t()
}(g.c), e.call(this, t)
}
function $(e) {
e.forEach(function(e) {
if (void 0 === e.called) try {
e.call(), e.called = !0
} catch (e) {
T.logError("Error processing command :", "prebid.js", e)
}
})
}
w.hardReset = function() {
w.adUnits = []
}, w.clearAdUnits = function() {
w.adUnits = []
}, w.getAdserverTargetingForAdUnitCodeStr = function(e) {
if (T.logInfo("Invoking vmpbjs.getAdserverTargetingForAdUnitCodeStr", arguments), e) {
var t = w.getAdserverTargetingForAdUnitCode(e);
return T.transformAdServerTargetingObj(t)
}
T.logMessage("Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode")
}, w.getAdserverTargetingForAdUnitCode = function(e) {
return w.getAdserverTargeting(e)[e]
}, w.getAdserverTargeting = function(e) {
return T.logInfo("Invoking vmpbjs.getAdserverTargeting", arguments), p.a.getAllTargeting(e)
}, w.getNoBids = function() {
return T.logInfo("Invoking vmpbjs.getNoBids", arguments), H("getNoBids")
}, w.getBidResponses = function() {
return T.logInfo("Invoking vmpbjs.getBidResponses", arguments), H("getBidsReceived")
}, w.getBidResponsesForAdUnitCode = function(t) {
return {
bids: b.a.getBidsReceived().filter(function(e) {
return e.adUnitCode === t
})
}
}, w.setTargetingForGPTAsync = function(e, t) {
var n;
T.logInfo("Invoking vmpbjs.setTargetingForGPTAsync", arguments), Object(i.isGptPubadsDefined)() ? (n = p.a.getAllTargeting(e), p.a.resetPresetTargeting(e, t), p.a.setTargetingForGPT(n, t), Object.keys(n).forEach(function(t) {
Object.keys(n[t]).forEach(function(e) {
"hb_adid" === e && b.a.setStatusForBids(n[t][e], I.BID_STATUS.BID_TARGETING_SET)
})
}), k.emit(C, n)) : T.logError("window.googletag is not defined on the page")
}, w.setTargetingForAst = function(e) {
T.logInfo("Invoking vmpbjs.setTargetingForAn", arguments), p.a.isApntagDefined() ? (p.a.setTargetingForAst(e), k.emit(C, p.a.getAllTargeting())) : T.logError("window.apntag is not defined on the page")
}, w.renderAd = function(e, t) {
if (T.logInfo("Invoking vmpbjs.renderAd", arguments), T.logMessage("Calling renderAd with adId :" + t), e && t) try {
var n, r, i, a, o, s, d, c, u, p, l, f, m = b.a.findBidByAdId(t);
m ? (m.ad = T.replaceAuctionPrice(m.ad, m.cpm), m.adUrl = T.replaceAuctionPrice(m.adUrl, m.cpm), b.a.addWinningBid(m), k.emit(O, m), n = m.height, r = m.width, i = m.ad, a = m.mediaType, o = m.adUrl, s = m.renderer, d = document.createComment("Creative ".concat(m.creativeId, " served by ").concat(m.bidder, " Prebid.js Header Bidding")), T.insertElement(d, e, "body"), Object(y.c)(s) ? Object(y.b)(s, m) : e === document && !T.inIframe() || "video" === a ? (c = "Error trying to write ad. Ad render call ad id ".concat(t, " was prevented from writing to the main document."), J({
reason: D,
message: c,
bid: m,
id: t
})) : i ? (navigator.userAgent && -1 < navigator.userAgent.toLowerCase().indexOf("firefox/") && (u = navigator.userAgent.toLowerCase().match(/firefox\/([\d\.]+)/)[1]) && parseInt(u, 10) < 67 && e.open("text/html", "replace"), e.write(i), e.close(), z(e, r, n), T.callBurl(m)) : o ? ((p = T.createInvisibleIframe()).height = n, p.width = r, p.style.display = "inline", p.style.overflow = "hidden", p.src = o, T.insertElement(p, e, "body"), z(e, r, n), T.callBurl(m)) : (l = "Error trying to write ad. No ad for bid response id: ".concat(t), J({
reason: P,
message: l,
bid: m,
id: t
}))) : (f = "Error trying to write ad. Cannot find ad by given id : ".concat(t), J({
reason: N,
message: f,
id: t
}))
} catch (e) {
var g = "Error trying to write ad Id :".concat(t, " to the page:").concat(e.message);
J({
reason: U,
message: g,
id: t
})
} else {
var h = "Error trying to write ad Id :".concat(t, " to the page. Missing document or adId");
J({
reason: B,
message: h,
id: t
})
}
}, w.removeAdUnit = function(e) {
T.logInfo("Invoking vmpbjs.removeAdUnit", arguments), e ? (T.isArray(e) ? e : [e]).forEach(function(e) {
for (var t = w.adUnits.length - 1; 0 <= t; t--) w.adUnits[t].code === e && w.adUnits.splice(t, 1)
}) : w.adUnits = []
}, w.requestBids = Object(s.b)("async", function() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {},
t = e.bidsBackHandler,
n = e.timeout,
r = e.adUnits,
i = e.adUnitCodes,
a = e.labels,
o = e.auctionId;
k.emit(_);
var s = n || u.b.getConfig("bidderTimeout"),
r = r || w.adUnits;
if (T.logInfo("Invoking vmpbjs.requestBids", arguments), i && i.length ? r = r.filter(function(e) {
return l()(i, e.code)
}) : i = r && r.map(function(e) {
return e.code
}), (r = G(r)).forEach(function(i) {
var a = Object.keys(i.mediaTypes || {
banner: "banner"
}),
e = i.bids.map(function(e) {
return e.bidder
}),
o = S.bidderRegistry,
t = u.b.getConfig("s2sConfig"),
n = t && t.bidders,
r = n ? e.filter(function(e) {
return !l()(n, e)
}) : e;
i.transactionId = T.generateUUID(), r.forEach(function(t) {
var e = o[t],
n = e && e.getSpec && e.getSpec(),
r = n && n.supportedMediaTypes || ["banner"];
a.some(function(e) {
return l()(r, e)
}) ? f.a.incrementBidderRequestsCounter(i.code, t) : (T.logWarn(T.unsupportedBidderMessage(i, t)), i.bids = i.bids.filter(function(e) {
return e.bidder !== t
}))
}), f.a.incrementRequestsCounter(i.code)
}), r && 0 !== r.length) {
var d = b.a.createAuction({
adUnits: r,
adUnitCodes: i,
callback: t,
cbTimeout: s,
labels: a,
auctionId: o
}),
c = r.length;
15 < c && T.logInfo("Current auction ".concat(d.getAuctionId(), " contains ").concat(c, " adUnits."), r), i.forEach(function(e) {
return p.a.setLatestAuctionForAdUnit(e, d.getAuctionId())
}), d.callBids()
} else if (T.logMessage("No adUnits configured. No bids requested."), "function" == typeof t) try {
t()
} catch (e) {
T.logError("Error executing bidsBackHandler", null, e)
}
}), w.requestBids.before(Y, 49), w.addAdUnits = function(e) {
T.logInfo("Invoking vmpbjs.addAdUnits", arguments), T.isArray(e) ? w.adUnits.push.apply(w.adUnits, e) : "object" === h(e) && w.adUnits.push(e), k.emit(E)
}, w.onEvent = function(e, t, n) {
T.logInfo("Invoking vmpbjs.onEvent", arguments), T.isFn(t) ? !n || q[e].call(null, n) ? k.on(e, t, n) : T.logError('The id provided is not valid for event "' + e + '" and no handler was set.') : T.logError('The event handler provided is not a function and was not set on event "' + e + '".')
}, w.offEvent = function(e, t, n) {
T.logInfo("Invoking vmpbjs.offEvent", arguments), n && !q[e].call(null, n) || k.off(e, t, n)
}, w.registerBidAdapter = function(e, t) {
T.logInfo("Invoking vmpbjs.registerBidAdapter", arguments);
try {
S.registerBidAdapter(e(), t)
} catch (e) {
T.logError("Error registering bidder adapter : " + e.message)
}
}, w.registerAnalyticsAdapter = function(e) {
T.logInfo("Invoking vmpbjs.registerAnalyticsAdapter", arguments);
try {
S.registerAnalyticsAdapter(e)
} catch (e) {
T.logError("Error registering analytics adapter : " + e.message)
}
}, w.createBid = function(e) {
return T.logInfo("Invoking vmpbjs.createBid", arguments), Object(m.a)(e)
}, w.enableAnalytics = function(e) {
e && !T.isEmpty(e) ? (T.logInfo("Invoking vmpbjs.enableAnalytics for: ", e), S.enableAnalytics(e)) : T.logError("vmpbjs.enableAnalytics should be called with option {}")
}, w.aliasBidder = function(e, t) {
T.logInfo("Invoking vmpbjs.aliasBidder", arguments), e && t ? S.aliasBidAdapter(e, t) : T.logError("bidderCode and alias must be passed as arguments", "vmpbjs.aliasBidder")
}, w.getAllWinningBids = function() {
return b.a.getAllWinningBids()
}, w.getAllPrebidWinningBids = function() {
return b.a.getBidsReceived().filter(function(e) {
return e.status === I.BID_STATUS.BID_TARGETING_SET
})
}, w.getHighestCpmBids = function(e) {
return p.a.getWinningBids(e)
}, w.markWinningBidAsUsed = function(t) {
var e = [];
t.adUnitCode && t.adId ? e = b.a.getBidsReceived().filter(function(e) {
return e.adId === t.adId && e.adUnitCode === t.adUnitCode
}) : t.adUnitCode ? e = p.a.getWinningBids(t.adUnitCode) : t.adId ? e = b.a.getBidsReceived().filter(function(e) {
return e.adId === t.adId
}) : T.logWarn("Inproper usage of markWinningBidAsUsed. It'll need an adUnitCode and/or adId to function."), 0 < e.length && (e[0].status = I.BID_STATUS.RENDERED)
}, w.getConfig = u.b.getConfig, w.setConfig = u.b.setConfig, w.setBidderConfig = u.b.setBidderConfig, w.que.push(function() {
return Object(a.a)()
}), w.cmd.push = function(e) {
if ("function" == typeof e) try {
e.call()
} catch (e) {
T.logError("Error processing command :", e.message, e.stack)
} else T.logError("Commands written into vmpbjs.cmd.push must be wrapped in a function")
}, w.que.push = w.cmd.push, w.processQueue = function() {
s.b.ready(), $(w.que), $(w.cmd)
}, t.default = w
}, , function(e, t, n) {
"use strict";
t.a = function(t, n) {
a.adServers = a.adServers || {}, a.adServers[t] = a.adServers[t] || {}, Object.keys(n).forEach(function(e) {
a.adServers[t][e] ? Object(i.logWarn)("Attempting to add an already registered function property ".concat(e, " for AdServer ").concat(t, ".")) : a.adServers[t][e] = n[e]
})
};
var r = n(20),
i = n(0),
a = Object(r.a)()
}, function(e, t, n) {
var r = n(28),
i = n(48),
a = "".split;
e.exports = r(function() {
return !Object("z").propertyIsEnumerable(0)
}) ? function(e) {
return "String" == i(e) ? a.call(e, "") : Object(e)
} : Object
}, function(e, t, n) {
var r = n(27),
i = n(28),
a = n(75);
e.exports = !r && !i(function() {
return 7 != Object.defineProperty(a("div"), "a", {
get: function() {
return 7
}
}).a
})
}, function(e, t, n) {
var r = n(22),
i = n(23),
a = r.document,
o = i(a) && i(a.createElement);
e.exports = function(e) {
return o ? a.createElement(e) : {}
}
}, function(e, t, n) {
var r = n(16),
i = n(77);
(e.exports = function(e, t) {
return i[e] || (i[e] = void 0 !== t ? t : {})
})("versions", []).push({
version: "3.6.4",
mode: r ? "pure" : "global",
copyright: "© 2020 Denis Pushkarev (zloirock.ru)"
})
}, function(e, t, n) {
var r = n(22),
i = n(112),
a = "__core-js_shared__",
o = r[a] || i(a, {});
e.exports = o
}, function(e, t, n) {
var r = n(28);
e.exports = !!Object.getOwnPropertySymbols && !r(function() {
return !String(Symbol())
})
}, function(e, t, n) {
function r(s) {
return function(e, t, n) {
var r, i = d(e),
a = c(i.length),
o = u(n, a);
if (s && t != t) {
for (; o < a;)
if ((r = i[o++]) != r) return !0
} else
for (; o < a; o++)
if ((s || o in i) && i[o] === t) return s || o || 0;
return !s && -1
}
}
var d = n(47),
c = n(50),
u = n(116);
e.exports = {
includes: r(!0),
indexOf: r(!1)
}
}, function(e, t, n) {
var r = n(117);
n(140), n(142), n(144), n(146), n(148), n(149), n(150), n(151), n(152), n(153), n(154), n(155), n(156), n(157), n(158), n(159), n(160), n(161), e.exports = r
}, function(e, t, n) {
function r(e) {
s(e, u, {
value: {
objectID: "O" + ++p,
weakData: {}
}
})
}
var i = n(53),
a = n(23),
o = n(24),
s = n(31).f,
d = n(59),
c = n(120),
u = d("meta"),
p = 0,
l = Object.isExtensible || function() {
return !0
},
f = e.exports = {
REQUIRED: !1,
fastKey: function(e, t) {
if (!a(e)) return "symbol" == typeof e ? e : ("string" == typeof e ? "S" : "P") + e;
if (!o(e, u)) {
if (!l(e)) return "F";
if (!t) return "E";
r(e)
}
return e[u].objectID
},
getWeakData: function(e, t) {
if (!o(e, u)) {
if (!l(e)) return !0;
if (!t) return !1;
r(e)
}
return e[u].weakData
},
onFreeze: function(e) {
return c && f.REQUIRED && l(e) && !o(e, u) && r(e), e
}
};
i[u] = !0
}, function(e, t, n) {
var r = n(19),
i = n(36),
a = r("iterator"),
o = Array.prototype;
e.exports = function(e) {
return void 0 !== e && (i.Array === e || o[a] === e)
}
}, function(e, t, n) {
var a = n(15);
e.exports = function(e, t, n, r) {
try {
return r ? t(a(n)[0], n[1]) : t(n)
} catch (t) {
var i = e.return;
throw void 0 !== i && a(i.call(e)), t
}
}
}, function(e, t) {
e.exports = function(e, t, n) {
if (!(e instanceof t)) throw TypeError("Incorrect " + (n ? n + " " : "") + "invocation");
return e
}
}, function(e, t, n) {
function r() {}
function i(e) {
return "<script>" + e + "<\/script>"
}
var a, o = n(15),
s = n(125),
d = n(86),
c = n(53),
u = n(128),
p = n(75),
l = n(65),
f = "prototype",
m = l("IE_PROTO"),
g = function() {
try {
a = document.domain && new ActiveXObject("htmlfile")
} catch (e) {}
var e, t;
g = a ? function(e) {
e.write(i("")), e.close();
var t = e.parentWindow.Object;
return e = null, t
}(a) : ((t = p("iframe")).style.display = "none", u.appendChild(t), t.src = String("javascript:"), (e = t.contentWindow.document).open(), e.write(i("document.F=Object")), e.close(), e.F);
for (var n = d.length; n--;) delete g[f][d[n]];
return g()
};
c[m] = !0, e.exports = Object.create || function(e, t) {
var n;
return null !== e ? (r[f] = o(e), n = new r, r[f] = null, n[m] = e) : n = g(), void 0 === t ? n : s(n, t)
}
}, function(e, t) {
e.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"]
}, function(e, t, n) {
var i = n(29);
e.exports = function(e, t, n, r) {
r && r.enumerable ? e[t] = n : i(e, t, n)
}
}, function(e, t, n) {
"use strict";
var r, i, a, o = n(89),
s = n(29),
d = n(24),
c = n(19),
u = n(16),
p = c("iterator"),
l = !1;
[].keys && ("next" in (a = [].keys()) ? (i = o(o(a))) !== Object.prototype && (r = i) : l = !0), null == r && (r = {}), u || d(r, p) || s(r, p, function() {
return this
}), e.exports = {
IteratorPrototype: r,
BUGGY_SAFARI_ITERATORS: l
}
}, function(e, t, n) {
var r = n(24),
i = n(57),
a = n(65),
o = n(131),
s = a("IE_PROTO"),
d = Object.prototype;
e.exports = o ? Object.getPrototypeOf : function(e) {
return e = i(e), r(e, s) ? e[s] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? d : null
}
}, function(e, t, n) {
"use strict";
var i = n(136).charAt,
r = n(54),
a = n(66),
o = "String Iterator",
s = r.set,
d = r.getterFor(o);
a(String, "String", function(e) {
s(this, {
type: o,
string: String(e),
index: 0
})
}, function() {
var e, t = d(this),
n = t.string,
r = t.index;
return r >= n.length ? {
value: void 0,
done: !0
} : (e = i(n, r), t.index += e.length, {
value: e,
done: !1
})
})
}, function(e, t, n) {
var r = n(15),
i = n(61);
e.exports = function(e) {
var t = i(e);
if ("function" != typeof t) throw TypeError(String(e) + " is not iterable");
return r(t.call(e))
}
}, function(e, t, n) {
var r = n(162);
e.exports = r
}, function(e, t, n) {
"use strict";
var r = Array.prototype.slice,
i = n(94),
a = Object.keys,
o = a ? function(e) {
return a(e)
} : n(169),
s = Object.keys;
o.shim = function() {
return Object.keys ? function() {
var e = Object.keys(arguments);
return e && e.length === arguments.length
}(1, 2) || (Object.keys = function(e) {
return i(e) ? s(r.call(e)) : s(e)
}) : Object.keys = o, Object.keys || o
}, e.exports = o
}, function(e, t, n) {
"use strict";
var r = Object.prototype.toString;
e.exports = function(e) {
var t = r.call(e);
return "[object Arguments]" === t || "[object Array]" !== t && null !== e && "object" == typeof e && "number" == typeof e.length && 0 <= e.length && "[object Function]" === r.call(e.callee)
}
}, function(e, t, n) {
"use strict";
var r = n(67),
i = n(173)("%Function%"),
a = i.apply,
o = i.call;
e.exports = function() {
return r.apply(o, arguments)
}, e.exports.apply = function() {
return r.apply(a, arguments)
}
}, function(e, t, n) {
"use strict";
function r(e) {
return e != e
}
e.exports = function(e, t) {
return 0 === e && 0 === t ? 1 / e == 1 / t : e === t || !(!r(e) || !r(t))
}
}, function(e, t, n) {
"use strict";
var r = n(96);
e.exports = function() {
return "function" == typeof Object.is ? Object.is : r
}
}, function(e, t, n) {
"use strict";
var r = Object,
i = TypeError;
e.exports = function() {
if (null != this && this !== r(this)) throw new i("RegExp.prototype.flags getter called on non-object");
var e = "";
return this.global && (e += "g"), this.ignoreCase && (e += "i"), this.multiline && (e += "m"), this.dotAll && (e += "s"), this.unicode && (e += "u"), this.sticky && (e += "y"), e
}
}, function(e, t, n) {
"use strict";
var r = n(98),
i = n(43).supportsDescriptors,
a = Object.getOwnPropertyDescriptor,
o = TypeError;
e.exports = function() {
if (!i) throw new o("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");
if ("gim" === /a/gim.flags) {
var e = a(RegExp.prototype, "flags");
if (e && "function" == typeof e.get && "boolean" == typeof /a/.dotAll) return e.get
}
return r
}
}, function(e, t, n) {
"use strict";
t.a = function(e) {
var t = e;
return {
callBids: function() {},
setBidderCode: function(e) {
t = e
},
getBidderCode: function() {
return t
}
}
}
}, function(e, t, n) {
"use strict";
t.a = function(e, t) {
return e.labelAll ? {
labelAll: !0,
labels: e.labelAll,
activeLabels: t
} : {
labelAll: !1,
labels: e.labelAny,
activeLabels: t
}
}, t.c = function(e) {
var t = h(1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : g);
return !t.shouldFilter || !!t.sizesSupported[e]
}, t.b = function() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {},
t = e.labels,
n = void 0 === t ? [] : t,
r = e.labelAll,
i = void 0 !== r && r,
a = e.activeLabels,
o = void 0 === a ? [] : a,
s = 1 < arguments.length ? arguments[1] : void 0,
d = 2 < arguments.length ? arguments[2] : void 0,
c = h(3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : g),
s = Object(f.isPlainObject)(s) ? Object(f.deepClone)(s) : d ? {
banner: {
sizes: d
}
} : {},
u = Object(f.deepAccess)(s, "banner.sizes");
c.shouldFilter && u && (s.banner.sizes = u.filter(function(e) {
return c.sizesSupported[e]
}));
var p = Object.keys(s),
l = {
active: p.every(function(e) {
return "banner" !== e
}) || p.some(function(e) {
return "banner" === e
}) && 0 < Object(f.deepAccess)(s, "banner.sizes.length") && (0 === n.length || !i && (n.some(function(e) {
return c.labels[e]
}) || n.some(function(e) {
return m()(o, e)
})) || i && n.reduce(function(e, t) {
return e ? c.labels[t] || m()(o, t) : e
}, !0)),
mediaTypes: s
};
return u && u.length !== s.banner.sizes.length && (l.filterResults = {
before: u,
after: s.banner.sizes
}), l
};
var r = n(3),
f = n(0),
i = n(12),
m = n.n(i);
function a(e) {
return (a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
return typeof e
} : function(e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
})(e)
}
var g = [];
function h(e) {
return e.reduce(function(n, r) {
if ("object" === a(r) && "string" == typeof r.mediaQuery) {
var t = !1;
if ("" === r.mediaQuery) t = !0;
else try {
t = Object(f.getWindowTop)().matchMedia(r.mediaQuery).matches
} catch (e) {
Object(f.logWarn)("Unfriendly iFrame blocks sizeConfig from being correctly evaluated"), t = matchMedia(r.mediaQuery).matches
}
t && (Array.isArray(r.sizesSupported) && (n.shouldFilter = !0), ["labels", "sizesSupported"].forEach(function(t) {
return (r[t] || []).forEach(function(e) {
return n[t][e] = !0
})
}))
} else Object(f.logWarn)('sizeConfig rule missing required property "mediaQuery"');
return n
}, {
labels: {},
sizesSupported: {},
shouldFilter: !1
})
}
r.b.getConfig("sizeConfig", function(e) {
return t = e.sizeConfig, void(g = t);
var t
})
}, function(e, t, n) {
"use strict";
t.b = function(e, t, n) {
var r, i = {
puts: e.map(d, n)
};
Object(a.a)(o.b.getConfig("cache.url"), (r = t, {
success: function(e) {
var t;
try {
t = JSON.parse(e).responses
} catch (e) {
return void r(e, [])
}
t ? r(null, t) : r(new Error("The cache server didn't respond with a responses property."), [])
},
error: function(e, t) {
r(new Error("Error storing video ad in the cache: ".concat(e, ": ").concat(JSON.stringify(t))), [])
}
}), JSON.stringify(i), {
contentType: "text/plain",
withCredentials: !0
})
}, t.a = function(e) {
return "".concat(o.b.getConfig("cache.url"), "?uuid=").concat(e)
};
var a = n(4),
o = n(3),
s = n(0);
function d(e) {
var t, n, r, i = {
type: "xml",
value: e.vastXml ? e.vastXml : (t = e.vastUrl, r = (n = e.vastImpUrl) ? "<![CDATA[".concat(n, "]]>") : "", '<VAST version="3.0">\n <Ad>\n <Wrapper>\n <AdSystem>prebid.org wrapper</AdSystem>\n <VASTAdTagURI><![CDATA['.concat(t, "]]></VASTAdTagURI>\n <Impression>").concat(r, "</Impression>\n <Creatives></Creatives>\n </Wrapper>\n </Ad>\n </VAST>")),
ttlseconds: Number(e.ttl)
};
return o.b.getConfig("cache.vasttrack") && (i.bidder = e.bidder, i.bidid = e.requestId, s.isPlainObject(this) && this.hasOwnProperty("auctionStart") && (i.timestamp = this.auctionStart)), "string" == typeof e.customCacheKey && "" !== e.customCacheKey && (i.key = e.customCacheKey), i
}
}, , , function(e, t, n) {
n(106);
var r = n(52);
e.exports = r("Array", "find")
}, function(e, t, n) {
"use strict";
var r = n(14),
i = n(56).find,
a = n(51),
o = n(60),
s = "find",
d = !0,
c = o(s);
s in [] && Array(1).find(function() {
d = !1
}), r({
target: "Array",
proto: !0,
forced: d || !c
}, {
find: function(e, t) {
return i(this, e, 1 < arguments.length ? t : void 0)
}
}), a(s)
}, function(e, t, n) {
var r = n(27),
i = n(108),
a = n(46),
o = n(47),
s = n(55),
d = n(24),
c = n(74),
u = Object.getOwnPropertyDescriptor;
t.f = r ? u : function(e, t) {
if (e = o(e), t = s(t, !0), c) try {
return u(e, t)
} catch (e) {}
if (d(e, t)) return a(!i.f.call(e, t), e[t])
}
}, function(e, t, n) {
"use strict";
var r = {}.propertyIsEnumerable,
i = Object.getOwnPropertyDescriptor,
a = i && !r.call({
1: 2
}, 1);
t.f = a ? function(e) {
var t = i(this, e);
return !!t && t.enumerable
} : r
}, function(e, t, n) {
function r(e, t) {
var n = s[o(e)];
return n == c || n != d && ("function" == typeof t ? i(t) : !!t)
}
var i = n(28),
a = /#|\.prototype\./,
o = r.normalize = function(e) {
return String(e).replace(a, ".").toLowerCase()
},
s = r.data = {},
d = r.NATIVE = "N",
c = r.POLYFILL = "P";
e.exports = r
}, function(e, t, n) {
var r = n(23),
i = n(111),
a = n(19)("species");
e.exports = function(e, t) {
var n;
return i(e) && ("function" == typeof(n = e.constructor) && (n === Array || i(n.prototype)) || r(n) && null === (n = n[a])) && (n = void 0), new(void 0 === n ? Array : n)(0 === t ? 0 : t)
}
}, function(e, t, n) {
var r = n(48);
e.exports = Array.isArray || function(e) {
return "Array" == r(e)
}
}, function(e, t, n) {
var r = n(22),
i = n(29);
e.exports = function(t, n) {
try {
i(r, t, n)
} catch (e) {
r[t] = n
}
return n
}
}, function(e, t, n) {
var r = n(78);
e.exports = r && !Symbol.sham && "symbol" == typeof Symbol.iterator
}, function(e, t, n) {
n(115);
var r = n(52);
e.exports = r("Array", "includes")
}, function(e, t, n) {
"use strict";
var r = n(14),
i = n(79).includes,
a = n(51);
r({
target: "Array",
proto: !0,
forced: !n(60)("indexOf", {
ACCESSORS: !0,
1: 0
})
}, {
includes: function(e, t) {
return i(this, e, 1 < arguments.length ? t : void 0)
}
}), a("includes")
}, function(e, t, n) {
var r = n(58),
i = Math.max,
a = Math.min;
e.exports = function(e, t) {
var n = r(e);
return n < 0 ? i(n + t, 0) : a(n, t)
}
}, function(e, t, n) {
n(118), n(135), n(90), n(137);
var r = n(42);
e.exports = r.Set
}, function(e, t, n) {
"use strict";
var r = n(119),
i = n(124);
e.exports = r("Set", function(t) {
return function(e) {
return t(this, arguments.length ? e : void 0)
}
}, i)
}, function(e, t, n) {
"use strict";
var p = n(14),
l = n(22),
f = n(81),
m = n(28),
g = n(29),
h = n(17),
b = n(84),
y = n(23),
v = n(64),
w = n(31).f,
I = n(56).forEach,
T = n(27),
r = n(54),
S = r.set,
k = r.getterFor;
e.exports = function(n, e, t) {
var r, o, i = -1 !== n.indexOf("Map"),
s = -1 !== n.indexOf("Weak"),
a = i ? "set" : "add",
d = l[n],
c = d && d.prototype,
u = {};
return T && "function" == typeof d && (s || c.forEach && !m(function() {
(new d).entries().next()
})) ? (r = e(function(e, t) {
S(b(e, r, n), {
type: n,
collection: new d
}), null != t && h(t, e[a], e, i)
}), o = k(n), I(["add", "clear", "delete", "forEach", "get", "has", "set", "keys", "values", "entries"], function(i) {
var a = "add" == i || "set" == i;
i in c && (!s || "clear" != i) && g(r.prototype, i, function(e, t) {
var n = o(this).collection;
if (!a && s && !y(e)) return "get" == i && void 0;
var r = n[i](0 === e ? 0 : e, t);
return a ? this : r
})
}), s || w(r.prototype, "size", {
configurable: !0,
get: function() {
return o(this).collection.size
}
})) : (r = t.getConstructor(e, n, i, a), f.REQUIRED = !0), v(r, n, !1, !0), u[n] = r, p({
global: !0,
forced: !0
}, u), s || t.setStrong(r, n, i), r
}
}, function(e, t, n) {
var r = n(28);
e.exports = !r(function() {
return Object.isExtensible(Object.preventExtensions({}))
})
}, function(e, t, n) {
"use strict";
var r = n(63),
i = n(62);
e.exports = r ? {}.toString : function() {
return "[object " + i(this) + "]"
}
}, function(e, t, n) {
var r = n(22),
i = n(123),
a = r.WeakMap;
e.exports = "function" == typeof a && /native code/.test(i(a))
}, function(e, t, n) {
var r = n(77),
i = Function.toString;
"function" != typeof r.inspectSource && (r.inspectSource = function(e) {
return i.call(e)
}), e.exports = r.inspectSource
}, function(e, t, n) {
"use strict";
var c = n(31).f,
u = n(85),
p = n(129),
l = n(21),
f = n(84),
m = n(17),
o = n(66),
s = n(134),
g = n(27),
h = n(81).fastKey,
r = n(54),
b = r.set,
y = r.getterFor;
e.exports = {
getConstructor: function(e, n, r, i) {
function a(e, t, n) {
var r, i, a = d(e),
o = s(e, t);
return o ? o.value = n : (a.last = o = {
index: i = h(t, !0),
key: t,
value: n,
previous: r = a.last,
next: void 0,
removed: !1
}, a.first || (a.first = o), r && (r.next = o), g ? a.size++ : e.size++, "F" !== i && (a.index[i] = o)), e
}
function s(e, t) {
var n, r = d(e),
i = h(t);
if ("F" !== i) return r.index[i];
for (n = r.first; n; n = n.next)
if (n.key == t) return n
}
var o = e(function(e, t) {
f(e, o, n), b(e, {
type: n,
index: u(null),
first: void 0,
last: void 0,
size: 0
}), g || (e.size = 0), null != t && m(t, e[i], e, r)
}),
d = y(n);
return p(o.prototype, {
clear: function() {
for (var e = d(this), t = e.index, n = e.first; n;) n.removed = !0, n.previous && (n.previous = n.previous.next = void 0), delete t[n.index], n = n.next;
e.first = e.last = void 0, g ? e.size = 0 : this.size = 0
},
delete: function(e) {
var t, n, r = d(this),
i = s(this, e);
return i && (t = i.next, n = i.previous, delete r.index[i.index], i.removed = !0, n && (n.next = t), t && (t.previous = n), r.first == i && (r.first = t), r.last == i && (r.last = n), g ? r.size-- : this.size--), !!i
},
forEach: function(e, t) {
for (var n, r = d(this), i = l(e, 1 < arguments.length ? t : void 0, 3); n = n ? n.next : r.first;)
for (i(n.value, n.key, this); n && n.removed;) n = n.previous
},
has: function(e) {
return !!s(this, e)
}
}), p(o.prototype, r ? {
get: function(e) {
var t = s(this, e);
return t && t.value
},
set: function(e, t) {
return a(this, 0 === e ? 0 : e, t)
}
} : {
add: function(e) {
return a(this, e = 0 === e ? 0 : e, e)
}
}), g && c(o.prototype, "size", {
get: function() {
return d(this).size
}
}), o
},
setStrong: function(e, t, n) {
var r = t + " Iterator",
i = y(t),
a = y(r);
o(e, t, function(e, t) {
b(this, {
type: r,
target: e,
state: i(e),
kind: t,
last: void 0
})
}, function() {
for (var e = a(this), t = e.kind, n = e.last; n && n.removed;) n = n.previous;
return e.target && (e.last = n = n ? n.next : e.state.first) ? "keys" == t ? {
value: n.key,
done: !1
} : "values" == t ? {
value: n.value,
done: !1
} : {
value: [n.key, n.value],
done: !1
} : {
value: e.target =
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment