This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<meta http-equiv="cache-control" content="no-cache"> | |
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT"> | |
<meta http-equiv="pragma" content="no-cache"> | |
</head> | |
<body style="margin:0"> | |
<script type="text/javascript"> | |
<!-- | |
var __IntegralASDiagnosticCall = function() {}; | |
try { | |
var __IntegralASConfig = { | |
jsDoSplit: "false", | |
cocaPuffsPath: "", | |
debug: "false", | |
killPhrases: "", | |
jsDiag: 'false', | |
version: '0', | |
mtCell: 10, | |
sp_imp_maxLength: 2000, | |
sp_imp_jload_maxLength: 2000, | |
sp_imp_jsInfo_minLength: 0, | |
mtSample: 5, | |
cookieDomain: 'sc.iasds01.com/dtc', | |
trackMouse: "true", | |
exchList: { | |
'e1': 'nqzryq', | |
'e2': 'tbbtyrnqf.t.qbhoyrpyvpx', | |
'e3': 'ehovpbacebwrpg', | |
'e4': 'chozngvp', | |
'e5': 'bcrak', | |
'e6': 'nqoevgr.pbz', | |
'e7': 'tynz.pbz', | |
'e8': 'lvryqznantre.pbz', | |
'e9': 'yvwvg', | |
'e10': 'nqakf', | |
'p11': 'ghea.pbz', | |
'p12': 'zngugnt', | |
'p13': 'vaivgrzrqvn', | |
'p14': 'qngnkh', | |
'n15': 'zrqvn6qrterrf', | |
'n16': 'dhnagfreir', | |
'n17': 'esvuho.arg', | |
'a18': 'napubeserr', | |
'a19': 'eff2frnepu', | |
'a20': 'mgfgngvp.pbz', | |
'n21': 'ovq.npr.nqiregvfvat', | |
'e22': 'wnfba', | |
'v23': 'fcbgkpqa', | |
'v24': 'ogeyy', | |
'v25': 'yvirenvy', | |
'v26': 'nqncgi', | |
'v27': 'nqnc.gi', | |
'n29': 'qbzqrk.pbz', | |
'n30': 'ernyih.arg', | |
'd31': 'cvengronl', | |
'd32': 'cebklonl', | |
'd33': 'onlcebkl', | |
'd34': 'cvengrcebkl', | |
'd35': 'cebklcvengr', | |
'd36': 'onlcvengr', | |
'n37': 'tjnyyrg', | |
'p39': 'j55p.arg', | |
'p40': 'c0l.pa', | |
'p41': 'vcvalbh.pbz', | |
'p42': 'c0lwferaqre' | |
}, | |
killFlash: 'true', | |
sp_cdnDomain: 'cdn.adsafeprotected.com', | |
protocol: 'https', | |
jsref: "http:\/\/stackoverflow.com\/questions\/39944781\/visual-studio-setup-failed\/39944947", | |
asid: "3c4272b6-8e34-11e6-8fcc-0025904ea2d8", | |
allowViewability: "true", | |
jsFeatures: "mousetrack,viewabilityready,consecutive,cachebust:0,forcecocoa:0,rattie,exch,recordalternate:0,cocoapuffs,usedtdomain,nextcocoa:100,bapiDiag,cookie,postDts:0,videotwoseconds,getPl,decodePl,resolution,usetpl,tpiLookupURL,hundredpct,jloadDiag:0,blur:0,sendclogs,zeroPing,idMap,offscreen,everySecond:1,sdkdetection,moreAdTalkCalls,slid,fm2:1,largeAd,nextcocoaie:100,usevh,fxdet,mmsb:100,bigmon:0,chromeNativeIO:100,oddet:100,ios:0,ancestor:100,avmm:100,avgrn:100,useScreenLocationInfoAdaptor:100,swapids:100,pIntervals:10,firewall_cdn_domain,usesca:0", | |
adsafeDomain: "adsafeprotected.com:80", | |
minimizeCalls: "false", | |
adWidth: "300", | |
adHeight: "250", | |
forceAppend: "false", | |
_onInViewMRC15: __IntegralASConfig && __IntegralASConfig.onInViewMRC15, | |
_onAPIResult: __IntegralASConfig && __IntegralASConfig.onAPIResult, | |
_onMeasurable: __IntegralASConfig && __IntegralASConfig.onMeasurable, | |
_onSuspicious: __IntegralASConfig && __IntegralASConfig.onSuspicious, | |
_onInViewMRC: __IntegralASConfig && __IntegralASConfig.onInViewMRC, | |
_onInViewFull: __IntegralASConfig && __IntegralASConfig.onInViewFull, | |
_onInViewMRC5: __IntegralASConfig && __IntegralASConfig.onInViewMRC5, | |
reqquery: "", | |
mode: "rjsi", | |
requrl: "https:\/\/fw.adsafeprotected.com\/mon", | |
dtBaseURL: "https:\/\/dt.adsafeprotected.com\/dt?advEntityId=65472", | |
adsafeSrc: "https:\/\/fw.adsafeprotected.com\/rfw\/ad.atdmt.com\/65472\/10865004\/d\/a.html;p=11087208769628;cod=1;idfa=;idfa_lat=;aaid=;aaid_lat=;cache=1476025155332?click=https%3A%2F%2Fengine.adzerk.net%2Fr%3Fe%3DeyJhdiI6NDM3LCJhdCI6NSwiYnQiOjAsImNtIjo0ODczOTQsImNoIjoxMTc4LCJjayI6e30sImNyIjoxNzAyNTQyLCJkaSI6IjNiZDgzNWIyNjkzOTQzMDBiODBjMzAwNjZiMjY1ODk5IiwiZG0iOjEsImZjIjoyMDIyNjAwLCJmbCI6MjM2ODYzMywiaXAiOiIxNDguMTAxLjIzMS4yMzMiLCJrdyI6InZpc3VhbC1zdHVkaW8seDg2LHdpbmRvd3MtMTAseC11c2VyLXJlZ2lzdGVyZWQseC0xNTAwcGx1cy1yZXAiLCJtayI6InZpc3VhbC1zdHVkaW8iLCJudyI6MjIsInBjIjo2LjYsImVjIjo2LjYsInByIjo4MjE5OSwicnQiOjIsInJmIjoiaHR0cDovL2NoYXQuc3RhY2tvdmVyZmxvdy5jb20vcm9vbXMvNDE1NzAvc28tY2xvc2Utdm90ZS1yZXZpZXdlcnMiLCJzdCI6ODI3NywidWsiOiJ1ZTEtNDlmYzU0MmIwODcyNDExMGIxOGQ2NGVlYjI3OTA0OWMiLCJ6biI6NDUsInRzIjoxNDc2MDI1MTU1MzMzLCJiZiI6dHJ1ZSwicG4iOiJhZHplcms3MDk1NjE2OTkiLCJ1ciI6bnVsbH0%26s%3DFznTTw6e8UZQkignHDresWHKLNk%26url=", | |
tpiLookupURL: "", | |
getTpl: "false", | |
use100v: false, | |
useBapiCallback: "", | |
useViewabilityNotification: "", | |
scriptUrl: "https://fw.adsafeprotected.com/rjsi/ad.atdmt.com/65472/10865004/d/a.html;p=11087208769628;cod=1;idfa=;idfa_lat=;aaid=;aaid_lat=;cache=1476025155332?cl", | |
accountForSadImps: '', | |
sendCookie: 'true', | |
cookieBaseURL: 'sc.iasds01.com/dtc?advEntityId=65472', | |
fwMonitoring: 'false', | |
doNothing: false, | |
mn: "app15dal", | |
mobOrTab: false, | |
mobFwUrl: "", | |
videoId: '' | |
}; | |
if (__IntegralASConfig.jsFeatures.indexOf('asidJsDiagnostic') !== -1) { | |
var fakeErr = { | |
message: __IntegralASConfig.asid | |
}; | |
__IntegralASDiagnosticCall('asid', fakeErr); | |
} | |
__IntegralASConfig.birthdate = new Date().getTime(); | |
__IntegralASConfig.useFIF = (!!window.__IntegralASUseFIF) && __IntegralASConfig.mode === 'jload'; | |
__IntegralASConfig.contextNode = (function() { | |
if (__IntegralASConfig.useFIF) { | |
return window.frameElement; // Early exit if using FIF | |
} | |
var tempScript, | |
embedded = window != top, | |
scripts = document.getElementsByTagName('script'), | |
result = scripts[scripts.length - 1], | |
scriptIndex = scripts.length, | |
useDocWrite = 'jss,jsi,jspix'.indexOf(__IntegralASConfig.mode) !== -1, | |
scriptUrl = __IntegralASConfig.scriptUrl; | |
try { | |
while (--scriptIndex >= 0) { | |
tempScript = scripts[scriptIndex]; | |
if (tempScript.src && tempScript.src.indexOf(scriptUrl) === 0 && tempScript.getAttribute('data-ias-script-tag') === null) { | |
result = tempScript; | |
tempScript.setAttribute('data-ias-script-tag', 'found'); | |
break; | |
} | |
} | |
if (scriptIndex === 0 && useDocWrite && !embedded) { | |
document.write('<span id="s' + __IntegralASConfig.asid + '"/>'); | |
result = document.getElementById('s' + __IntegralASConfig.asid).parentNode; | |
} | |
} catch (e) {} | |
return result; | |
}()); | |
} catch (err) { | |
__IntegralASConfig = {}; | |
__IntegralASDiagnosticCall('bootstrapper', err); | |
} | |
__IntegralASConfig.initialize = function(p, u, B) { | |
var l, Db = function() { | |
l = new X; | |
var a; | |
l.provide("mobileApp", function() { | |
return a = a || new va(b) | |
}); | |
var b = l.provide("features", wa()), | |
c = xa(), | |
d = ya(c), | |
e = new za(l), | |
h = function() { | |
var a = new Aa(n.getWindow(), new J), | |
c = new Ba(n.getWindow()), | |
b = new Ca(n.getWindow(), c, p.mode), | |
d = new Da(a, new J), | |
e = new Ea(n.getWindow(), new J), | |
c = new Fa(n.getWindow(), c, p.mode), | |
a = new Ga(a, e, new J), | |
b = (new Ha([{ | |
environment: b, | |
measurementStrategy: d | |
}, { | |
environment: c, | |
measurementStrategy: a | |
}])).resolve(), | |
d = new Ia(b); | |
return new Ja(b, d) | |
}(); | |
b.on("swapids") && (p.oid = p.asid, p.asid = d.unq); | |
var k, r, t, q, m = Ka(), | |
x = La(), | |
w = Ma(b), | |
A = Na(), | |
z = Oa(l), | |
D = l.provide("mPage", Pa()), | |
G = Qa(), | |
H = Ra(G, n), | |
F = Sa(), | |
C = Ta(), | |
L = Ua(c, C), | |
C = l.provide("browser", Va()), | |
ma = l.provide("intersectionWatcher", Wa(n.getDoc().body)); | |
l.provide("ieXDomainViewability", Xa(C)); | |
l.provide("iframe", Ya(C)); | |
var u = Za(C), | |
v = l.provide("video", s.isVideo() && !s.isAvid() ? $a(p.videoId, b, F) : {}); | |
ab(bb.build()); | |
var y = cb(c, u, b), | |
B = db(y, c, D), | |
M = eb(z), | |
E = fb(y, c, b, d, e, C, F, A), | |
A = gb(), | |
N = hb(c, b, l, z), | |
z = ib(L, E, c, d, e), | |
U = jb(L, E), | |
N = kb(N, b, h.isImmediate()), | |
O = lb(h, C, E, c, b, u, l, d, e, M, D, B, F, v), | |
D = mb(L, c, b, d, N, e, C, O), | |
d = nb(C, d, O), | |
F = ob(), | |
L = pb(), | |
u = qb(), | |
v = rb(), | |
B = sb(), | |
M = tb(), | |
N = ub(), | |
R = vb(), | |
I = wb(); | |
E.setViewabilityMod(O); | |
var S; | |
if (! function() { | |
var a = !1, | |
b, d; | |
try { | |
f.isDef(p) && f.isDef(p.killPhrases) && "" !== p.killPhrases && (b = p.adsafeSrc ? p.adsafeSrc : p.requrl + p.reqquery, d = p.killPhrases.split(","), f(d).each(function(c, e) { | |
e = decodeURIComponent(d[c]).replace(/^\s+|\s+$/g, ""); - 1 !== b.search(e) && (a = !0) | |
})), p.doNothing && | |
(a = !0) | |
} catch (e) { | |
c.add(g.ERROR_CODES.KILL_IT) | |
} | |
return a | |
}()) { | |
if (w.isApplicable(s)) try { | |
w.start(), e.addItem(w.getFrameMap(), "fm"), b.on("fm2") && e.addItem(w.getFrameMapIncludingPeerCase(), "fm2"), b.on("idMap") && (k = w.getIdMap()) && e.addItem(k, "idMap") | |
} catch (Q) { | |
c.add(g.ERROR_CODES.ADTALK_GENERAL) | |
} | |
k = xb(); | |
k.isApplicable() && k.start(); | |
G.isApplicable(C, b, s) && G.start(); | |
var P; | |
try { | |
ma.isApplicable(C, b, s) && ma.start(); | |
"true" !== p.minimizeCalls && O.init(); | |
b.on("mousetrack") && (q = yb(y, e), q.init()); | |
P = H.detectTopURL(); | |
b.on("exch") && | |
(r = zb(c, e), r.parse(P)); | |
if (b.on("getPl") && navigator && navigator.plugins) { | |
t = Ab(navigator.plugins); | |
var Y = t.hash(); | |
e.addItem({ | |
output: Y.join(".") | |
}, "pl", { | |
type: g.DT_CODES.ADTALK | |
}); | |
if (b.on("decodePl") && Y.length) { | |
var Z = t.decode(Y); | |
e.addItem({ | |
output: Z.join(".") | |
}, "pd", { | |
type: g.DT_CODES.ADTALK | |
}) | |
} | |
} | |
b.bootstrapOn("use100v") && Bb(); | |
A.isApplicable(b) && (A.start(), l.trigger("sendCookie")) | |
} catch (ca) { | |
c.add(g.ERROR_CODES.IMPRESSION_LEADUP) | |
} | |
try { | |
D.send(P) | |
} catch ($) { | |
__IntegralASDiagnosticCall("impsend", $, p) | |
} | |
try { | |
d.isApplicable(b) && | |
d.start(), b.bootstrapOn("getTpl") && b.on("usetpl") && z.init(), p.tpiLookupURL && U.init(p.tpiLookupURL), Cb(b), "true" !== p.minimizeCalls && (S = (new Date).getTime(), n.execAtEndOfThread(function() { | |
n.execAtEndOfThread(function() { | |
try { | |
var a = { | |
output: (new Date).getTime() - S | |
}; | |
e.addItem(a, "sinceFw", { | |
type: g.DT_CODES.ADTALK | |
}); | |
f.isDef(O.readyFired()) && e.addItem({ | |
output: O.readyFired() | |
}, "readyFired", { | |
type: g.DT_CODES.ADTALK | |
}); | |
w.isApplicable(s) && w.sendAdTalkCall() | |
} catch (b) { | |
c.add(g.ERROR_CODES.ADTALK_DELAY) | |
} | |
}) | |
})), h && h.start(), | |
F.isApplicable(b, C) && F.start(C), L.isApplicable(b, C) && L.start(), B.isApplicable(b, C) && B.start(), M.isApplicable(b, C) && M.start(), u.isApplicable(b) && u.start(), v.isApplicable(b, C) && v.start(), R.isApplicable(b) && R.start(), I.start({ | |
sca: "usesca" | |
}, b), G.isStarted() && G.sendOriginList(), m.isApplicable(b) && (m.start(), x.start(), x.addFieldTypes(["im"]), K.recordBlockingTime(), K.setupOnLoadTracking(), K.setupBrowserDelayTracking()), N.isApplicable(b) && N.start() | |
} catch (T) { | |
c.add(g.ERROR_CODES.POST_IMPRESSION) | |
} | |
} | |
}, | |
f = function(a) { | |
var b = | |
function(b) { | |
var d = null === a, | |
d = "object" === typeof a && !d, | |
e = !c() && d; | |
return b ? d : e | |
}, | |
c = function() { | |
return a instanceof Array | |
}, | |
d = function(c, b) { | |
if (a.length === +a.length) | |
for (var d = 0, e = a.length; d < e; ++d) c(d, a[d]); | |
else | |
for (d in a)(a.hasOwnProperty(d) || b) && c(d, a[d]) | |
}, | |
e = function(a, c) { | |
var b = []; | |
d(function(d, e) { | |
var k = a(d, e); | |
if (void 0 !== k || c) b[b.length] = k | |
}); | |
return b | |
}, | |
h = function(a, c) { | |
c = c || ","; | |
var b = []; | |
d(function(c, d) { | |
var e = a(c, d); | |
f.isDef(e) && b.push(e) | |
}); | |
return b.join(c) | |
}, | |
k = function(a, c, b) { | |
for (var d in c) f.isDef(c[d]) && | |
(b || c.hasOwnProperty(d)) && (a[d] = c[d]); | |
return a | |
}, | |
r = function(a) { | |
var c = {}; | |
d(function(d, e) { | |
var h = a(d, e); | |
b(h) && k(c, h) | |
}); | |
return c | |
}, | |
t = function(a) { | |
var c = []; | |
d(function(a) { | |
c.push(a) | |
}, a); | |
return c | |
}; | |
return { | |
each: d, | |
isObj: b, | |
isArray: c, | |
isEmpty: function(a) { | |
return 0 === t(a).length | |
}, | |
invert: function() { | |
return r(function(a, c) { | |
var b = {}; | |
b[c] = a; | |
return b | |
}) | |
}, | |
mapToObj: r, | |
map: e, | |
keys: t, | |
toParams: function(a) { | |
return h(function(a, c) { | |
return "string" === typeof a && -1 !== a.indexOf("NULL") ? c : a + ":" + c | |
}, a) | |
}, | |
stringify: h, | |
toION: function(d, k) { | |
var h, | |
t = "[", | |
r = "]"; | |
k = k || 0; | |
d = d || {}; | |
if (4 < ++k) return "object"; | |
if (!b(!0) || a.hasOwnProperty("toString")) return "" + a; | |
c() ? h = e(function(a, c) { | |
return f(c).toION(d, k) | |
}) : (t = "{", r = "}", h = e(function(a, c) { | |
var b = "string" === typeof a && -1 !== a.indexOf("NULL"), | |
e = f(c).toION(d, k); | |
return b ? e : (d[a] || a) + ":" + e | |
})); | |
return t + h.join(",") + r | |
}, | |
compareTo: function(a) { | |
var c = !1; | |
d(function(b, d) { | |
a[b] !== d && (c || (c = {}), c[b] = d) | |
}); | |
return c | |
}, | |
mixin: function(c, b) { | |
return k(a, c, b) | |
}, | |
find: function(a) { | |
var c; | |
d(function(b, d) { | |
a(b, d) && (c = d) | |
}); | |
return c | |
}, | |
findFirst: function(a) { | |
var c, | |
b; | |
d(function(d, e) { | |
!b && a(d, e) && (c = e, b = !0) | |
}); | |
return c | |
}, | |
asStrings: function() { | |
var a = {}; | |
d(function(c, b) { | |
a[c] = "" + b | |
}); | |
return a | |
}, | |
selectProperties: function(c) { | |
var b = {}; | |
f(c).each(function(c, d) { | |
f.isDef(a[d]) && (b[d] = a[d]) | |
}); | |
return b | |
}, | |
filter: function(a, c) { | |
return e(function(c, b) { | |
var d; | |
if (f.isUndef(a) || f.resolve(a, c, b)) d = b; | |
return d | |
}, c) | |
}, | |
toArray: function() { | |
return e(function(a, c) { | |
return c | |
}) | |
}, | |
JSONStringify: function() { | |
var c, b, d = !1; | |
u.Prototype && u.Prototype.Version && -1 === u.Prototype.Version.indexOf("1.7") && (d = !0); | |
d && | |
(b = Array.prototype.toJSON, delete Array.prototype.toJSON); | |
c = JSON.stringify(a); | |
d && (Array.prototype.toJSON = b); | |
return c | |
} | |
} | |
}; | |
f.toBase = function(a, b) { | |
var c, d = 0 > a, | |
e = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""), | |
h = []; | |
a = d ? -a : a; | |
do c = a % b, h.push(e[c]), a = (a - c) / b; while (0 < a); | |
h = h.reverse().join(""); | |
return d ? "-" + h : h | |
}; | |
f.isDef = function(a) { | |
return "undefined" !== typeof a | |
}; | |
f.isUndef = function(a) { | |
return !f.isDef(a) | |
}; | |
f.isBool = function(a) { | |
return "boolean" === typeof a | |
}; | |
f.noop = function() {}; | |
f.identity = function(a) { | |
return a | |
}; | |
f.isFunction = function(a) { | |
return "function" === typeof a | |
}; | |
f.isStr = function(a) { | |
return "string" === typeof a | |
}; | |
f.useIfDef = function(a) { | |
return f.isDef(a) ? a : !1 | |
}; | |
f.stringifyTriState = function(a) { | |
return !0 === a ? 1 : !1 === a ? 0 : "na" | |
}; | |
f.resolve = function(a) { | |
var b = f(arguments).toArray(); | |
b.shift(); | |
return f.isFunction(a) ? a.apply({}, b) : a | |
}; | |
f.flatJSONParse = function(a) { | |
var b, c, d, e = /"(\w+)":(\d+|(?:"([^"]*)"))/g, | |
h = {}; | |
for (d = e.exec(a); d;) b = d[1], c = d[3], d = d[2], h[b] = c || +d, d = e.exec(a); | |
return h | |
}; | |
f.debounce = function(a, b) { | |
var c; | |
return function() { | |
var d = | |
this, | |
e = arguments; | |
clearTimeout(c); | |
c = setTimeout(function() { | |
c = null; | |
a.apply(d, e) | |
}, b) | |
} | |
}; | |
f.last = function(a) { | |
return a[a.length - 1] | |
}; | |
f.collapseArgsIntoHash = function(a, b) { | |
var c = {}; | |
b ? c[a] = b : c = a; | |
return c | |
}; | |
var Bb = function() { | |
var a, b, c = !1, | |
d = l.request("mPage"), | |
e = function() { | |
!c && b && a && !d.isHidden() && (c = !0, l.trigger("sendDt", g.DT_CODES.LARGE_BILLABLE)) | |
}; | |
l.on("primaryadfound", function(c) { | |
a = c.getDims().area() >= g.MRC_LARGE_AD_SIZE; | |
e() | |
}); | |
l.on("impressionsent", function() { | |
b = !0; | |
e() | |
}); | |
d.onHiddenChange(e) | |
}, | |
Na = function() { | |
var a = [], | |
b = {}, | |
c = { | |
percentInView: "piv", | |
sl: "vs", | |
reason: "r", | |
width: "w", | |
height: "h" | |
}; | |
l.on("newScreenEvent", function(d) { | |
d = f(d).selectProperties(f(c).keys()); | |
d = f(d).asStrings(); | |
var e = f(d).compareTo(b); | |
e && (e.t = s.getTagTime(), a.push(e)); | |
f(b).mixin(d) | |
}); | |
return { | |
toString: function() { | |
return f(a).toION(c) | |
} | |
} | |
}, | |
Eb = function(a, b, c, d, e, h, k) { | |
var r; | |
(function() { | |
var h = c.getRounded(), | |
f = h.width - 5, | |
m = h.height - 5, | |
g = 0.5 * h.width + 1, | |
h = 0.5 * h.height + 1; | |
r = [new a(b, f, m, e, k, d), new a(b, f, 5, e, k, d), new a(b, 5, m, e, k, d), new a(b, 5, 5, e, k, d), new a(b, g, h, | |
e, k, d)] | |
})(); | |
return { | |
getNumInView: function() { | |
var a = [], | |
c = 0; | |
f(r).each(function(c, b) { | |
var d = b.isInView() ? 1 : 0; | |
a.push(d) | |
}); | |
h.addItem({ | |
output: a.join(".") | |
}, "pvs"); | |
f(a).each(function(a, b) { | |
c += b | |
}); | |
return c | |
}, | |
getPctInView: function(a) { | |
return 5 === a ? 100 : 3 <= a ? 51 : 0 | |
}, | |
isReady: function() { | |
var a = !0; | |
f(r).each(function(c, b) { | |
b.isNotReadyToReport() && (a = !1) | |
}); | |
return a | |
}, | |
remove: function() { | |
f(r).each(function(a, c) { | |
try { | |
c.remove() | |
} catch (b) {} | |
}) | |
} | |
} | |
}, | |
Fb = function(a, b, c, d, e, h, k, r) { | |
var t = e.on("nextcocoa") ? na : oa, | |
q = new a(t, B.body, b, d, e, k, r), | |
m, x, w = 0; | |
c = c || f.noop; | |
m = setInterval(function() { | |
q.isReady() && !x ? (x = !0, c(), clearInterval(m)) : (5 === ++w || x) && clearInterval(m) | |
}, 50); | |
return { | |
checkViewable: function() { | |
var a = q.isReady(), | |
b = q.getNumInView(), | |
b = q.getPctInView(b), | |
d = h.calcInitialViewState(b, !0); | |
a && !x && (x = !0, c()); | |
return { | |
str: a ? d : g.NA, | |
pct: a ? b : -1 | |
} | |
}, | |
removePixels: function() { | |
q.remove() | |
} | |
} | |
}, | |
ca = function(a, b, c, d, e, h) { | |
var k, r, t = b.getRounded(), | |
q = [], | |
m = !1, | |
x = 0, | |
w = d.on("largeAd") && b.isMrcLarge() && !s.isVideo() ? Gb(t) : Hb(t), | |
l = function() { | |
var a; | |
if (!m) | |
for (m = !0, a = 0; a < q.length; a++) | |
if (q[a].isNotReadyToReport()) { | |
m = !1; | |
break | |
} | |
return m | |
}, | |
z = function() { | |
var a = 0; | |
f(q).each(function(c, b) { | |
b.isInView() && (a += 1) | |
}); | |
return w.getPctInView(a) | |
}; | |
(function() { | |
var c = w.get(); | |
f(c).each(function(c, b) { | |
var k = new a(B.body, b.x, b.y, d, e, h); | |
k.weight = b.weight; | |
q.push(k) | |
}) | |
})(); | |
c = c || f.noop; | |
k = setInterval(function() { | |
l() && !r ? (r = !0, c(), clearInterval(k)) : (5 === ++x || r) && clearInterval(k) | |
}, 50); | |
return { | |
checkViewable: function() { | |
var a = l(), | |
e; | |
a && (e = d.on("largeAd") && b.isMrcLarge() ? 30 : 50, e = z() >= e ? g.IN_VIEW : g.OUT_OF_VIEW); | |
a && !r && (r = !0, c()); | |
return { | |
str: a ? e : g.NA, | |
pct: a ? | |
z() : -1 | |
} | |
}, | |
removePixels: function() { | |
f(q).each(function(a, c) { | |
try { | |
c.remove() | |
} catch (b) {} | |
}) | |
} | |
} | |
}, | |
X = function() { | |
var a = new Ib, | |
b = new J; | |
return f(a).mixin(b) | |
}, | |
J = function() { | |
var a = {}, | |
b = function(c, b) { | |
a[c] = a[c] || new da; | |
a[c].push(b) | |
}; | |
return { | |
on: function(a, d) { | |
d ? b(a, d) : f(a).each(b) | |
}, | |
trigger: function(c) { | |
var b, e = f(arguments).toArray(); | |
if (b = a[c]) e.shift(), b.run.apply({}, e) | |
} | |
} | |
}, | |
xb = function() { | |
var a = {}, | |
b = { | |
ox: 0 | |
}, | |
c = n.getWindow(), | |
d = f.isDef(c.JSON) && f.isDef(c.postMessage), | |
e = function(c) { | |
var d = c.uniqueId; | |
c = b[c.vendorKey]; | |
var e = !1; | |
f.isDef(c) && | |
1 > c && d && !a[d] && (e = !0); | |
return e | |
}, | |
h = function(a, c) { | |
if (c) return c.type = "receipt", c | |
}, | |
k = function(c, d, e) { | |
b[d.vendorKey] ++; | |
e(); | |
a[d.uniqueId] = !0; | |
r(d) && (e = "false" === d.isSampling, c = ["ext", d.vendorKey, d.dataKey].join("_"), e = { | |
encode: !0, | |
minDt: e, | |
type: e ? g.DT_CODES.EXTERNAL : g.DT_CODES.UNLOAD | |
}, l.trigger("addOutputItem", { | |
output: d.dataValue | |
}, c, e), l.trigger("addOutputItem", { | |
output: d.vendorKey | |
}, "ext_vendor", e), "false" === d.isSampling && l.trigger("sendMinDt", g.DT_CODES.EXTERNAL)) | |
}, | |
r = function(a) { | |
var c = function(a) { | |
return f.isStr(a) && | |
100 > a.length | |
}; | |
return c(a.vendorKey) && c(a.dataKey) && c(a.dataValue) | |
}; | |
return { | |
isApplicable: function() { | |
return d | |
}, | |
start: function() { | |
(new ea).listen(e, k, h) | |
} | |
} | |
}, | |
T = function(a, b, c, d) { | |
var e = l.request("browser"); | |
if (l.request("features").bootstrapOn("killFlash")) return { | |
style: {}, | |
isPlaceholder: !0 | |
}; | |
var h = function(a, c) { | |
return '<param name="' + a + '" value="' + c + '"/>' | |
}; | |
return function() { | |
var k, f, t, q = p.dtBaseURL, | |
m = p.cocaPuffsPath, | |
q = new I(q); | |
q.sub(b || "static"); | |
q.master(q.master().split(":")[0]); | |
q.path(""); | |
m && (q.master(m), q.sub("")); | |
q += a; | |
m = h("allowscriptaccess", "always"); | |
k = h("movie", q) + h("play", "true") + h("loop", "true"); | |
t = e.browserIs(g.BROWSERS.IE) || e.browserIs(g.BROWSERS.MSEDGE); | |
f = e.browserIs(g.BROWSERS.IE); | |
t && (t = d ? "window" : "transparent", k += h("wmode", t)); | |
c && (m += h("FlashVars", c)); | |
f ? (f = B.createElement("div"), t = "blag" + p.birthdate + n.random(), f.innerHTML = "<object " + ('id="' + t + '" ') + 'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ' + ('type="' + g.FLASH_MIME + '" ') + ('data="' + q + '" ') + ">" + k + m + "</object>", k = f.firstChild) : (k = B.createElement("object"), | |
k.data = q, k.type = g.FLASH_MIME, k.innerHTML = m); | |
q = k; | |
q.style.position = "absolute"; | |
q.style.width = "1px"; | |
q.style.opacity = "0"; | |
q.style.height = "0px"; | |
return k | |
}() | |
}, | |
na = function(a, b, c, d, e, h, k, r) { | |
var t = h.browserIs(g.BROWSERS.IE) || h.browserIs(g.BROWSERS.MSEDGE), | |
q = "_IASflashPixelCallback" + (p.birthdate + "" + n.round(1E6 * n.random())), | |
m = !1, | |
x = !1, | |
w, A, z, D, G = function() { | |
if (w && f.isFunction(w.jsHandshake) && !m) { | |
w.style.height = "1px" === w.style.height ? "2px" : "1px"; | |
try { | |
w.confirmResize() | |
} catch (a) { | |
m = !0, l.trigger("error", g.ERROR_CODES.FLASH_API_ACCESS) | |
} | |
} | |
}, | |
H = function() { | |
if (m) return !1; | |
var a, c; | |
try { | |
(a = D || w && f.isFunction(w.jsHandshake)) && !x && (D = !0, u[q] = F, c = w.jsHandshake(q), x = !0, F(c)) | |
} catch (b) { | |
a = !1, m = !0, l.trigger("error", g.ERROR_CODES.FLASH_API_ACCESS) | |
} | |
return a | |
}, | |
F = function(a) { | |
try { | |
if (f.isUndef(a.isInView)) throw "corrupted Flash pixel message received"; | |
z = 1 === +a.isInView | |
} catch (c) { | |
l.trigger("error", g.ERROR_CODES.FLASH_API_ACCESS) | |
} | |
}, | |
C = function(a, c, b) { | |
var d = new T(t ? "/detector_4_5_IE.pix" : "/detector_4_5.pix"), | |
e = d.style; | |
d[g.IAS_DETECTOR] = "true"; | |
e.left = c + "px"; | |
e.top = | |
b + "px"; | |
d.isPlaceholder || a.appendChild(d); | |
e.height = "1px"; | |
w = d; | |
t && !d.isPlaceholder && setInterval(G, 100); | |
return d | |
}(a, b, c); | |
return { | |
isInView: function() { | |
var a; | |
if (H()) { | |
try { | |
a = z | |
} catch (c) { | |
D = !1, l.trigger("error", g.ERROR_CODES.COCOA_GONE) | |
} | |
h.browserIs("w") && void 0 !== a && (w.style.height = A ? "1px" : "2px", A = !A) | |
} | |
return H() && a | |
}, | |
isNotReadyToReport: function() { | |
return !H() | |
}, | |
createdFlash: w, | |
remove: function() { | |
C.parentNode && C.parentNode.removeChild(C) | |
} | |
} | |
}, | |
oa = function(a, b, c, d, e, h, k) { | |
var r = h.browserIs(g.BROWSERS.IE) || h.browserIs(g.BROWSERS.MSEDGE), | |
t = !1, | |
q, m, x, w, A, z = function(a, c) { | |
return '<param name="' + a + '" value="' + c + '"/>' | |
}, | |
D = function(a, c) { | |
return a + '="' + c + '" ' | |
}, | |
G = function() { | |
if (H() && !t) { | |
q.style.height = "1px" === q.style.height ? "2px" : "1px"; | |
try { | |
q.confirmResize() | |
} catch (a) { | |
t = !0, l.trigger("error", g.ERROR_CODES.FLASH_API_ACCESS) | |
} | |
} | |
}, | |
H = function() { | |
var a = !1; | |
try { | |
a = q && f.isFunction(q.jsHandshake) | |
} catch (c) {} | |
return a | |
}, | |
F = function() { | |
if (t) return !1; | |
var a; | |
try { | |
if ((a = A || H()) && !x) { | |
A = !0; | |
var c = f.flatJSONParse(q.jsHandshake()); | |
x = c.id; | |
if (f.isUndef(x)) throw "corrupted Flash pixel message received"; | |
w = 1 === +c.isInView | |
} | |
} catch (b) { | |
a = !1, t = !0, l.trigger("error", g.ERROR_CODES.FLASH_API_ACCESS) | |
} | |
return a | |
}; | |
y.addEvent(u, "message", function(a) { | |
try { | |
var c = f.flatJSONParse(a.data); | |
"IASCOCOA" === c.type && c.id === x && (w = 1 === +c.isInView) | |
} catch (b) { | |
l.trigger("error", g.ERROR_CODES.FLASH_API_ACCESS) | |
} | |
}); | |
var C = function(a, c, b) { | |
var d; | |
d = new I; | |
var e = p.cocaPuffsPath; | |
d.sub("static"); | |
d.master(d.master().split(":")[0]); | |
e && (d.master(e), d.sub("")); | |
var e = d + (r ? "/detector_4_2_IE.pix" : "/detector_4_1.pix"), | |
k = z("allowscriptaccess", "always"), | |
f = z("movie", e) + z("play", "true") + z("loop", "true"); | |
r && (f += z("wmode", "transparent")); | |
h.browserIs(g.BROWSERS.IE) ? (d = B.createElement("div"), d.innerHTML = "<object " + D("id", "blag" + p.birthdate + n.random()) + D("classid", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000") + D(g.IAS_DETECTOR, "true") + D("type", g.FLASH_MIME) + D("data", e) + ">" + f + k + "</object>", q = d.firstChild) : (q = B.createElement("object"), q.data = e, q.type = g.FLASH_MIME, q.innerHTML = k, q[g.IAS_DETECTOR] = "true"); | |
q.style.position = "absolute"; | |
q.style.width = "1px"; | |
q.style.opacity = | |
"0"; | |
q.style.height = "0px"; | |
d = q; | |
e = d.style; | |
e.left = c + "px"; | |
e.top = b + "px"; | |
a.appendChild(d); | |
e.height = "1px"; | |
r && setInterval(G, 100); | |
return d | |
}(a, b, c); | |
return { | |
isInView: function() { | |
var a; | |
if (F()) { | |
try { | |
a = w | |
} catch (c) { | |
A = !1, l.trigger("error", g.ERROR_CODES.COCOA_GONE) | |
} | |
h.browserIs("w") && void 0 !== a && (q.style.height = m ? "1px" : "2px", m = !m) | |
} | |
return F() && a | |
}, | |
isNotReadyToReport: function() { | |
return !F() | |
}, | |
createdFlash: q, | |
remove: function() { | |
C.parentNode && C.parentNode.removeChild(C) | |
} | |
} | |
}, | |
V = function() { | |
var a = function(c, b, e) { | |
var h = b.length, | |
k = v.isWindow(c) ? | |
c.frames : v.getChildWindowsOf(c); | |
e && e(c, b); | |
if (k.length) { | |
for (c = 0; c < k.length; c++) b[h] = c, a(k[c], b, e); | |
b.pop() | |
} | |
}, | |
b = function(c, b) { | |
try { | |
a(b || top, [0], c) | |
} catch (e) {} | |
}; | |
return { | |
traverse: b, | |
getFrames: function(a, d) { | |
var e = []; | |
b(function(a) { | |
e.push(a) | |
}, d); | |
return f(e).filter(a) | |
} | |
} | |
}, | |
da = function() { | |
var a = []; | |
return { | |
push: function(b) { | |
a[a.length] = b | |
}, | |
run: function() { | |
var b = arguments; | |
f(a).each(function(a, d) { | |
d.apply({}, b) | |
}) | |
} | |
} | |
}, | |
ka = function(a) { | |
return { | |
doEligibleJobs: function(b) { | |
var c = a[0], | |
d = c && c.time; | |
d && b >= d && (c.task(), a.shift()) | |
}, | |
getNextJob: function() { | |
return a[0] | |
} | |
} | |
}, | |
ea = function() { | |
var a = function(a, c, d, e) { | |
var h, k = f.noop, | |
r, t; | |
if (JSON && JSON.parse) try { | |
h = JSON.parse(a.data), r = a.source, c(h) && (e && (t = e(r, h)) && (k = function() { | |
(new aa(r)).send(function() { | |
return t | |
}) | |
}), d(a, h, k)) | |
} catch (q) { | |
h && l.trigger("error", g.ERROR_CODES.MESSAGE_LISTENER) | |
} | |
}; | |
return { | |
listen: function(b, c, d) { | |
y.addEvent(u, "message", function(e) { | |
a(e, b, c, d) | |
}) | |
} | |
} | |
}, | |
aa = function(a) { | |
var b = function(a) { | |
return f(a).mapToObj(function(a, c) { | |
var b; | |
f.isFunction(c) || (b = {}, b[a] = c); | |
return b | |
}) | |
}; | |
return { | |
send: function(c) { | |
if (JSON && JSON.stringify) { | |
var d = | |
f(a).isObj() ? [a] : (new V).getFrames(a); | |
f(d).each(function(a, d) { | |
var k; | |
k = f.resolve(c, d) || {}; | |
k.sentTime = n.now(); | |
k = b(k); | |
d.postMessage(f(k).JSONStringify(), "*") | |
}) | |
} | |
} | |
} | |
}, | |
Jb = function(a, b) { | |
return { | |
onAll: function(c) { | |
var d = {}; | |
f(b).each(function(e, h) { | |
a.on(h, function() { | |
d[h] = 1; | |
f(d).keys().length === b.length && (d = {}, c()) | |
}) | |
}) | |
} | |
} | |
}, | |
za = function(a) { | |
var b = 0, | |
c = {}, | |
d = function(a, c, d) { | |
if (f.isUndef(a.output)) throw Error("item with id " + c + ' must have "output" method'); | |
this.item = a; | |
this.id = c || ++b; | |
this.props = d || {}; | |
this.output = function() { | |
var c = | |
f.resolve(a.output); | |
this.props.asION && (c = f(c).toION()); | |
return c | |
} | |
}, | |
e = function(a) { | |
var b, d, e = []; | |
for (b in c) c.hasOwnProperty(b) && (d = a(b, c[b])) && e.push(d); | |
return e | |
}, | |
h = function(a, b, e) { | |
e = e || b; | |
e = "string" !== typeof e ? e : {}; | |
var h = function(a, b, e) { | |
a = new d(a, b, e); | |
c[a.id] = a | |
}; | |
f(a.output).isObj() && !e.asION ? f(a.output).each(function(a, c) { | |
h({ | |
output: c | |
}, a, e) | |
}) : h(a, b, e) | |
}; | |
a.on("addOutputItem", function(a, c, b) { | |
h(a, c, b) | |
}); | |
return { | |
addItem: h, | |
filterOutput: function(a, c) { | |
return e(function(b, d) { | |
var e = d.props, | |
h; | |
a(e) && (h = d.output(), | |
e.encode && (b = encodeURIComponent(b), h = encodeURIComponent(h)), f.isFunction(c) ? c(b, h) : c[b] = h) | |
}) | |
}, | |
iterate: e, | |
cleanup: function() { | |
e(function(a, b) { | |
b.props.flagForRemoval && delete c[a] | |
}) | |
}, | |
getItem: function(a) { | |
return c[a] | |
} | |
} | |
}, | |
Gb = function(a) { | |
var b = a.width - 5, | |
c = a.height - 5, | |
d = 0.5 * a.width + 1, | |
e = 0.5 * a.height + 1, | |
h = 0.3 * a.width + 1, | |
k = 0.7 * a.width + 1, | |
f = 0.3 * a.height + 1, | |
t = 0.7 * a.height + 2, | |
q, m = function(c, b) { | |
1 > c && (c = 1); | |
1 > b && (b = 1); | |
c > a.width && (c = 0 !== a.width ? a.width : 1); | |
b > a.height && (b = 0 !== a.height ? a.height : 1); | |
return { | |
x: n.floor(c), | |
y: n.floor(b) | |
} | |
}; | |
q = [m(b, c), m(b, 5), m(5, c), m(5, 5), m(d, e), m(h, f), m(k, f), m(h, t), m(k, t)]; | |
return { | |
get: function() { | |
return q | |
}, | |
getPctInView: function(a) { | |
var c; | |
0 === a ? c = 0 : 1 === a ? c = 10 : 2 === a ? c = 20 : 5 > a ? c = 30 : 7 > a ? c = 50 : 9 > a ? c = 70 : 9 === a && (c = 100); | |
return c | |
} | |
} | |
}, | |
Hb = function(a, b) { | |
var c = 0.5 * a.width + 1, | |
d; | |
d = [{ | |
y: n.floor(0.5 * a.height + 1), | |
x: n.floor(c) | |
}]; | |
return { | |
get: function() { | |
return d | |
}, | |
getPctInView: function(a) { | |
return 1 === a ? 50 : 0 | |
} | |
} | |
}, | |
Ib = function() { | |
var a = {}, | |
b = function(c, b) { | |
a[c] = b | |
}; | |
return { | |
request: function(c) { | |
var b, e = a[c], | |
h = f(arguments).toArray(); | |
h.shift(); | |
f.isUndef(e) || | |
(b = f.isFunction(e) ? e.apply({}, h) : e); | |
return b | |
}, | |
provide: function(c, d) { | |
d ? a[c] = d : f(c).each(b); | |
return d | |
} | |
} | |
}, | |
db = function(a, b, c) { | |
return { | |
collect: function() { | |
var b = a.find(), | |
e = b.getOutOfViewReasons(), | |
h = c.isHidden(), | |
k = E(v.calcWinDims()), | |
r = b.getDims(); | |
if (!b.hasAd() || !k.hasValidDims() || !r.hasValidDims()) return { | |
viewState: g.NA, | |
posViewState: g.NA, | |
embedded: s.embedded, | |
winDimensions: k, | |
adDimensions: r | |
}; | |
!0 === h && e.push(g.OUT_OF_VIEW_REASONS.FOCUS); | |
return { | |
winDimensions: k, | |
adDimensions: r, | |
containerDimensions: b.getContainerDims(), | |
method: b.getDetectionMethod(), | |
viewState: e.length ? g.OUT_OF_VIEW : b.getViewState(), | |
percentInView: b.getPercentInView(), | |
reason: e.join("."), | |
obstructed: f.stringifyTriState(b.isObstructed()), | |
isHidden: f.stringifyTriState(b.isHidden()), | |
tabHidden: f.stringifyTriState(h), | |
posViewState: b.getViewState(), | |
adCompCount: b.getComponentCount() | |
} | |
} | |
} | |
}, | |
Kb = function(a) { | |
a = a || f.identity; | |
var b = [], | |
c = n.now(), | |
d = function() { | |
var a = n.now(); | |
b.length && (b[b.length - 1].duration += a - c, c = a) | |
}; | |
return { | |
clear: function() { | |
d(); | |
b = [] | |
}, | |
fastForward: d, | |
get: function() { | |
return b | |
}, | |
hasAlwaysBeen: function(a) { | |
return 1 === b.length && b[0].state === a | |
}, | |
addState: function(c) { | |
var h = b[b.length - 1]; | |
c = a(c); | |
d(); | |
0 !== b.length && c === h.state || b.push({ | |
state: c, | |
duration: 0 | |
}) | |
} | |
} | |
}, | |
pa = function(a, b) { | |
var c = a || 1, | |
d = 0, | |
e = 0, | |
h, k = 0; | |
return { | |
start: function() { | |
0 === d % c && (h = n.now()) | |
}, | |
stop: function() { | |
var a = h || b; | |
0 === d % c && (k += n.now() - a, e++); | |
d++ | |
}, | |
getTime: function() { | |
return k | |
}, | |
getCount: function() { | |
return e | |
} | |
} | |
}, | |
fa = function() { | |
var a, b = 0, | |
c = 0, | |
d = new J(!0), | |
e = function() { | |
a && (b++, d.trigger(b), c > b ? n.execAtEndOfThread(e) : h()) | |
}, | |
h = function() { | |
a = !1; | |
b = 0 | |
}; | |
return { | |
onTick: function(a, b) { | |
var e = f.collapseArgsIntoHash(a, b); | |
f(e).each(function(a, b) { | |
a = parseInt(a); | |
c = a > c ? a : c | |
}); | |
d.on(e) | |
}, | |
start: function() { | |
a || (a = !0, n.execAtEndOfThread(e)) | |
}, | |
kill: h, | |
isActive: function() { | |
return a | |
} | |
} | |
}, | |
la = function(a) { | |
var b = 0, | |
c = s.getTagTime(), | |
d = 0, | |
e, h; | |
return { | |
getTotalTime: function() { | |
return d | |
}, | |
stop: function() { | |
b = 0; | |
c = s.getTagTime() | |
}, | |
mark: function() { | |
e = s.getTagTime() - c; | |
b += e; | |
b > a && (h = b - e < a, d += h ? b : e); | |
c = s.getTagTime() | |
} | |
} | |
}, | |
I = function(a, b) { | |
var c = a || p.adsafeSrc || p.requrl; | |
c && 0 !== c.indexOf("http") && | |
(c = p.protocol + "://" + c); | |
var c = /((http|https):\/\/(([^\/\.]*)\.([^\/]*)))(?:\/(.[^?]*)\??(.+)?)*/.exec(c), | |
d = c[1], | |
e = c[2], | |
h = c[3], | |
k = c[4], | |
r = c[5], | |
t = a ? c[6] : "", | |
q = b ? c[7] : "", | |
m = {}, | |
g = function(a) { | |
f.isDef(a) && (k = a); | |
return k | |
}, | |
l = function(a) { | |
f.isDef(a) && (r = a); | |
return r | |
}, | |
A = function(a, c) { | |
return a + "=" + f(c).toION() | |
}, | |
q = q ? q.replace(/&$/, "") : ""; | |
return { | |
fullDom: d, | |
hostname: h, | |
sub: g, | |
master: l, | |
setParam: function(a, c) { | |
m[a] = m[a] || {}; | |
f(c).isObj() ? f(m[a]).mixin(c) : m[a] = c | |
}, | |
path: function(a) { | |
t = a | |
}, | |
_getQsParams: function() { | |
return m | |
}, | |
toString: function() { | |
var a = | |
g() ? g() + "." : "", | |
c = t ? "/" + t : "", | |
b; | |
q || !f(m).isEmpty() ? (b = f(m).isEmpty() ? "" : f(m).stringify(A, "&"), b = "?" + q + (q && b ? "&" + b : b)) : b = ""; | |
return e + "://" + a + l() + c + b | |
} | |
} | |
}, | |
Cb = function(a) { | |
var b = function(a, b) { | |
var e; | |
b && b.id && (e = b.id.replace(/[^\w-_.\/]/g, "")); | |
return e | |
}; | |
(function() { | |
var c; | |
try { | |
if ("jload" === p.mode && a.on("slid") && s.friendly && !s.isMobileApp()) { | |
var d, e; | |
if (d = v.getOurNodeInTop()) { | |
var h = v.getAncestorNodes(d); | |
e = f(h).map(b) | |
}(c = e = e && f(e).toION()) && l.trigger("addOutputItem", { | |
output: c | |
}, "slid", { | |
type: g.DT_CODES.ADTALK | |
}) | |
} | |
} catch (k) { | |
l.trigger("error", | |
g.ERROR_CODES.AD_SLOT_ID) | |
} | |
})() | |
}, | |
Qa = function() { | |
var a, b, c = function(a, c) { | |
-1 !== c.indexOf("https") && (c += "*"); | |
return c.replace(/^https?:\/\//, "") | |
}; | |
return { | |
isApplicable: function(a, c, b) { | |
return a.hasAncestorOrigins() && c.on("ancestor") && b.xDomainIframe | |
}, | |
isStarted: function() { | |
return !!b | |
}, | |
start: function() { | |
try { | |
a = n.getWindow().location.ancestorOrigins, b = !0 | |
} catch (c) { | |
l.trigger("error", g.ERROR_CODES.ANCESTOR_ORIGINS) | |
} | |
}, | |
getMyFrameDepth: function() { | |
return a && a.length || 0 | |
}, | |
getTopDomain: function() { | |
return f.last(a) | |
}, | |
sendOriginList: function() { | |
var b; | |
b = "ao:" + (a ? f(a).map(c).reverse() : []).join(","); | |
l.trigger("addOutputItem", { | |
output: b | |
}, "tpiLookup", { | |
type: g.DT_CODES.THIRD_PARTY, | |
standalone: !0, | |
encode: !0 | |
}); | |
l.trigger("sendDt", g.DT_CODES.THIRD_PARTY) | |
} | |
} | |
}, | |
ib = function(a, b, c, d, e) { | |
var h = function(a, c, b) { | |
e.addItem({ | |
output: a + "." + c + "." + b | |
}, "ctpl") | |
}, | |
k = function(e) { | |
try { | |
b.diagnostic("c"); | |
var k = e.length, | |
q = 0, | |
m = 0; | |
h(k, 0, 0); | |
f(e).each(function(c, b) { | |
a.send(b.replace("%%CBS%%", d.getCacheBustId()), function() { | |
h(k, q, ++m) | |
}, !0); | |
h(k, ++q, m) | |
}) | |
} catch (x) { | |
c.add(g.ERROR_CODES.AT_SEND) | |
} | |
}; | |
return { | |
init: function() { | |
try { | |
var b = (new I).fullDom; | |
"/" !== b.slice(-1) && (b += "/"); | |
b += "tpl?asId=" + p.asid; | |
a.jsonp(b, k) | |
} catch (d) { | |
c.add(g.ERROR_CODES.AT_INIT) | |
} | |
} | |
} | |
}, | |
hb = function(a, b, c, d) { | |
return { | |
enabled: "true" === p.useBapiCallback, | |
callback: function(b) { | |
c.trigger("sendDiag"); | |
try { | |
"true" === p.accountForSadImps && d.measure(b), p._onAPIResult && p._onAPIResult(b) | |
} catch (h) { | |
a.add(g.ERROR_CODES.BAPI_CALLBACK), c.trigger("sendDiag", "bapiClient") | |
} | |
} | |
} | |
}, | |
Va = function() { | |
var a = g.BROWSERS, | |
b, c = function() { | |
var a = "0", | |
c = n.getWindow(), | |
b = function(a) { | |
return a.replace(/\D+/g, | |
",").match(/^,?(.+),?$/)[1].split(",").join(".") | |
}; | |
try { | |
try { | |
var d = n.getNewActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); | |
try { | |
d.AllowScriptAccess = "always" | |
} catch (e) { | |
a = "6" | |
} | |
} catch (h) {} | |
a = b(n.getNewActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")) | |
} catch (k) { | |
try { | |
c.navigator.mimeTypes[g.FLASH_MIME].enabledPlugin && (a = b((c.navigator.plugins["Shockwave Flash 2.0"] || c.navigator.plugins["Shockwave Flash"]).description)) | |
} catch (f) {} | |
} | |
return a | |
}, | |
d = function() { | |
f.isUndef(b) && (b = c()); | |
return b | |
}, | |
e = function(a) { | |
return k() === | |
a | |
}, | |
h = function() { | |
var a = n.getDoc(); | |
return a && a.documentMode ? a.documentMode : g.NA | |
}, | |
k = function() { | |
var c = "u", | |
b = n.getWindow(); | |
try { | |
f.isDef(b.opera) && f.isDef(b.opera.buildNumber) ? c = a.OPERA : f.isDef(b.mozInnerScreenY) ? c = a.GECKO : f.isDef(b.chrome) && f.isDef(b.chrome.csi) ? c = a.CHROME : f.isDef(b.msWriteProfilerMark) && f.isDef(b.crypto) ? c = a.MSEDGE : f.isDef(b.attachEvent) || f.isDef(b.msCrypto) ? c = a.IE : f.isDef(b.WebKitPoint) && (c = a.WEBKIT) | |
} catch (d) {} | |
return c | |
}, | |
r = function() { | |
var c = ["{45EA75A0-A269-11D1-B5BF-0000F8051515}", "{3AF36230-A269-11D1-B5BF-0000F8051515}", | |
"{89820200-ECBD-11CF-8B85-00AA005B4383}" | |
], | |
b = g.NA, | |
d = n.getDoc(), | |
h = d.createElement("div"); | |
if (e(a.IE)) try { | |
if ("-ms-ime-align" in d.documentElement.style) b = "11"; | |
else | |
for (h.style.behavior = "url(#default#clientcaps)", d = 0; d < c.length && !(b = h.getComponentVersion(c[d], "componentid").replace(/,/g, ".")); d++); | |
} catch (k) {} | |
return b | |
}; | |
return { | |
browserIs: e, | |
hasIntersectionObserver: function() { | |
return "function" === typeof IntersectionObserver | |
}, | |
hasFlashEnabled: function() { | |
return "0" !== d() | |
}, | |
hasAncestorOrigins: function() { | |
var a = n.getWindow().location; | |
return !(!a || !a.ancestorOrigins) | |
}, | |
getFlashVersion: d, | |
getDocumentMode: h, | |
getBrowserType: k, | |
getUserAgent: function() { | |
var a = !1, | |
c = n.getWindow(); | |
f.isDef(c.navigator) && f.isDef(c.navigator.userAgent) && (a = c.navigator.userAgent); | |
return a | |
}, | |
isOnWin7: function() { | |
return 0 < n.getWindow().navigator.userAgent.indexOf("Windows NT 6.1") | |
}, | |
isIEVersion: function(a) { | |
return 0 === r().indexOf(a) | |
}, | |
params: function() { | |
var c = k(), | |
b = d(), | |
m; | |
m = 5; | |
var x = n.getWindow(), | |
l = n.getDoc(); | |
e(a.IE) ? x.msCrypto ? m = 11 : x.atob ? m = 10 : x.addEventListener ? m = 9 : x.JSON && | |
l.querySelector ? m = 8 : x.XMLHttpRequest ? m = 7 : l.compatMode && (m = 6) : m = g.NA; | |
var x = h(), | |
l = r(), | |
A = g.NA, | |
z = n.getWindow(); | |
f.isDef(z.navigator) && f.isDef(z.navigator.appName) && (A = z.navigator.appName.toLowerCase()[0]); | |
return { | |
br: c, | |
fv: b, | |
bv: m, | |
dm: x, | |
abv: l, | |
an: A | |
} | |
} | |
} | |
}, | |
Ua = function(a, b) { | |
var c = function(a, c) { | |
var b, d, e = p.contextNode.parentNode; | |
c = c || a; | |
a = 1 < arguments.length ? a : "script"; | |
b = { | |
script: ['<script type="text/javascript" src="', '">\x3c/script>'], | |
iframe: ['<iframe width="100%" height="100%" frameborder="0" vspace="0" hspace="0" scrolling="no" marginheight="0" marginwidth="0" src="', | |
'"></iframe>' | |
], | |
img: ['<img src="', '"/>'] | |
}[a]; | |
d = b[0] + c + b[1]; | |
"true" === p.forceAppend ? "script" !== a ? (b = B.createElement("DIV"), b.innerHTML = d, e.appendChild(b.childNodes[0])) : (b = B.createElement("SCRIPT"), b.src = c, e.appendChild(b)) : B.write(d) | |
}, | |
d = function(a, c, b) { | |
var d = !b && y.getXHR2(); | |
d ? (d.open("POST", a), d.onreadystatechange = function() { | |
4 === d.readyState && 200 === d.status && c && c() | |
}, d.send()) : (b = v.createImage(), c && (b.onload = c), b.src = a) | |
}, | |
e = function(a, c) { | |
var b = B.createElement("script"); | |
b.type = "text/javascript"; | |
b.src = | |
a; | |
c && (b.onload = c); | |
f.isDef(p.contextNode.parentNode) && p.contextNode.parentNode.appendChild(b) | |
}, | |
h = function(a) { | |
f.isFunction(a) ? a({ | |
iasImpId: p.asid | |
}) : a && "string" === typeof a && d(a, void 0, !0) | |
}, | |
k = function(a, c, d, h) { | |
e(b.wrap(a, c, d, h)) | |
}; | |
l.on({ | |
addNode: c, | |
send: d, | |
exec: e, | |
notify: h, | |
jsonp: k | |
}); | |
return { | |
addNode: c, | |
send: d, | |
exec: e, | |
notify: h, | |
jsonp: k | |
} | |
}, | |
g = { | |
MRC_LARGE_AD_SIZE: 242500, | |
FLASH_MIME: "application/x-shockwave-flash", | |
IN_VIEW: "inView", | |
OUT_OF_VIEW: "outOfView", | |
PARTIAL_VIEW_PLUS: "partialViewPlus", | |
PARTIAL_VIEW_MINUS: "partialViewMinus", | |
NA: "na", | |
PIV_NA: -1, | |
DT_CODES: { | |
ADTALK: "a", | |
DIAGNOSTIC: "b", | |
PERFORMANCE: "e", | |
THIRD_PARTY: "i", | |
LARGE_BILLABLE: "l", | |
VIDEO_EVENTS: "m", | |
PING: "p", | |
FULLY_INVIEW: "pf", | |
QUARTILE_FULLY_INVIEW: "qf", | |
AVIREEN: "r", | |
SCA: "s", | |
POS_INVIEW: "t", | |
UNLOAD: "u", | |
VIEWABILITY_READY: "v", | |
VH: "vh", | |
EXTERNAL: "x" | |
}, | |
DETECTION_METHODS: { | |
AD_PLACEHOLDER: "s", | |
AD_HUNT: "a", | |
IFRAME: "i", | |
VIDEO: "v", | |
MRAID: "m", | |
AVID: "av", | |
MUTATION: "c", | |
SPECIFIED_AD: "sp" | |
}, | |
OUT_OF_VIEW_REASONS: { | |
GEOM: "l", | |
OBSTRUCTION: "o", | |
FOCUS: "f", | |
COLLAPSED: "c", | |
HIDDEN: "h", | |
VIDEO: "v" | |
}, | |
VIDEO_CHANNELS: { | |
VANS: { | |
AS3_ADAPTOR: "av3", | |
JS_ADAPTOR: "jv3" | |
}, | |
WRAPPERS: { | |
JS: "jvw" | |
} | |
}, | |
PERF_TIMELINE_TRACKER_CONFIG: { | |
VANS: { | |
TYPE: "vans", | |
COUNT: 4 | |
}, | |
WRAPPERS: { | |
JS: { | |
TYPE: "jswrapper", | |
COUNT: 15 | |
}, | |
AS: { | |
TYPE: "flwrapper", | |
COUNT: 9 | |
} | |
} | |
}, | |
ERROR_CODES: { | |
GET_AD_DIMENSIONS: "a", | |
AD_SLOT_ID: "A", | |
BAPI_CALLBACK: "b", | |
BROWSER_NOT_HTML5_COMPATIBLE: "B", | |
ADTALK_GENERAL: "c", | |
COCOA_GONE: "C", | |
GET_SCREEN_LOC_GET_DIMENSIONS: "d", | |
ADTALK_DUBIOUS: "D", | |
NO_CONTAINER: "e", | |
POST_IMPRESSION: "E", | |
ADTALK_DELAY: "f", | |
VIDEO_IN_IFRAME_DIMS_CALC: "F", | |
GREEN: "g", | |
INIT_ADS_MANAGER: "G", | |
PHONE_HOME: "h", | |
UID_GENERATION: "i", | |
IMPRESSION_URLS: "I", | |
NOT_VPAID_EVENT_OBJECT: "j", | |
JSINFO: "J", | |
KILL_IT: "k", | |
NO_RESPONSE_XML: "K", | |
LOCATION_DETAILS: "l", | |
IMPRESSION_LEADUP: "L", | |
MESSAGE_LISTENER: "m", | |
MOBILE_APP: "M", | |
AT_INIT: "N", | |
OFF_DESKTOP: "O", | |
ANCESTOR_ORIGINS: "o", | |
GET_SCREEN_LOC_PIV_CALC: "p", | |
PLUGIN_PARSING: "P", | |
NO_ORIGINAL_VAST: "q", | |
AVIREEN: "r", | |
AD_ERROR: "R", | |
GET_ELEM_STYLE: "s", | |
AT_SEND: "S", | |
ADS_MANAGER_START_AD: "t", | |
NO_COMPANION_AD_XML: "T", | |
NO_VIDEO_AD_INTERFACE: "u", | |
UNRECOGNIZED_EVENT_TYPE: "U", | |
ENVIRONMENT: "v", | |
CHECK_SCREEN_LOC: "V", | |
GET_WIN_DIMENSIONS: "w", | |
AC_WATCHER: "W", | |
EXCHANGE_PARSING: "x", | |
SCA: "X", | |
FLASH_API_ACCESS: "z" | |
}, | |
BROWSERS: { | |
WEBKIT: "w", | |
OPERA: "o", | |
GECKO: "g", | |
CHROME: "c", | |
IE: "i", | |
MSEDGE: "e" | |
}, | |
MEDIA_TYPE_CODE: "mtp", | |
MEDIA_TYPE: { | |
DISPLAY: "display", | |
DISPLAY_CODE: "d", | |
VIDEO: "video", | |
VIDEO_CODE: "v" | |
}, | |
MEASUREMENT_STRATEGY: { | |
DISPLAY: "display", | |
VIDEO: "video" | |
}, | |
IMPRESSION_EVENT: "impression", | |
AD_IDENTIFIER: "data-integralas-id", | |
IAS_DETECTOR: "iasdetector" | |
}, | |
s = function() { | |
var a = u != top, | |
b = function() { | |
var a; | |
try { | |
a = !!top.document | |
} catch (c) { | |
a = !1 | |
} | |
return a | |
}(), | |
c = function() { | |
return f.isDef(n.getWindow().avid) | |
}; | |
return { | |
embedded: a, | |
friendly: b, | |
friendlyIframe: a && b, | |
xDomainIframe: a && !b, | |
getTagTime: function() { | |
return n.now() - p.birthdate | |
}, | |
getPageTime: function() { | |
return f.isDef(u.chrome) && f.isDef(u.chrome.csi) && f.isFunction(u.chrome.csi) ? n.round(chrome.csi().pageT) : g.NA | |
}, | |
isVideo: function() { | |
var a; | |
if (!(a = -1 !== p.mode.indexOf("jsvid"))) { | |
var b; | |
a = !1; | |
if (c()) try { | |
b = n.getWindow().avid.getAvidAdSessionContext(), a = b.mediaType === g.MEDIA_TYPE.VIDEO | |
} catch (h) {} | |
} | |
return a | |
}, | |
isMobileApp: function() { | |
return f.isDef(u.mraid) | |
}, | |
isSpecifiedAd: function() { | |
var a = | |
p._cl_adpath; | |
return a && f.isStr(a) | |
}, | |
isAvid: c | |
} | |
}(), | |
y = { | |
addEvent: function(a, b, c, d) { | |
f.isDef(a.addEventListener) ? "mouseenter" === b ? a.addEventListener("mouseover", y.mouseEnter(c), d) : "mouseleave" === b ? a.addEventListener("mouseout", y.mouseEnter(c), d) : a.addEventListener(b, c, d) : f.isDef(a.attachEvent) && ("DOMContentLoaded" === b && (b = "load"), a.attachEvent("on" + b, c)) | |
}, | |
removeEvent: function(a, b, c) { | |
f.isDef(a.removeEventListener) ? ("mouseenter" === b ? (b = "mouseover", c = y.mouseEnter) : "mouseleave" === b && (b = "mouseout", c = y.mouseEnter), | |
a.removeEventListener(b, c)) : f.isDef(a.detachEvent) && a.detachEvent("on" + b, c) | |
}, | |
mouseEnter: function(a) { | |
var b = this; | |
return function(c) { | |
var d = c.relatedTarget; | |
this === d || b.isAChildOf(this, d) || a.call(this, c) | |
} | |
}, | |
isAChildOf: function(a, b) { | |
if (a === b) return !1; | |
for (; b && b !== a;) b = b.parentNode; | |
return b === a | |
}, | |
getStyle: function(a, b, c) { | |
var d = ""; | |
c = c || ""; | |
B.defaultView && B.defaultView.getComputedStyle ? d = B.defaultView.getComputedStyle(a, c).getPropertyValue(b) : a.currentStyle && (b = b.replace(/\-(\w)/g, function(a, c) { | |
return c.toUpperCase() | |
}), | |
d = a.currentStyle[b]); | |
return d | |
}, | |
getXHR2: function(a, b) { | |
var c, d; | |
f.isDef(u.XMLHttpRequest) ? (d = new XMLHttpRequest, "withCredentials" in d && (c = d)) : f.isDef(XDomainRequest) && (c = new XDomainRequest); | |
return c | |
}, | |
whenReady: function(a, b) { | |
var c = b || (s.xDomainIframe ? B : n.getTop().document), | |
d = function(a) { | |
var b = setInterval(function() { | |
c.body && (clearInterval(b), a()) | |
}, 50) | |
}, | |
e = this; | |
(function(a) { | |
var b = function() { | |
a(!0) | |
}; | |
f.isFunction(B.addEventListener) ? "complete" == c.readyState || "loaded" == c.readyState || "interactive" == c.readyState ? | |
n.execAtEndOfThread(b) : e.addEvent(c, "DOMContentLoaded", b, !1) : d(a) | |
})(a) | |
}, | |
isSandboxed: function(a) { | |
var b, c = n.getWindow(), | |
d = !1; | |
if ("sandbox" in n.getDoc().createElement("iframe")) { | |
try { | |
b = c.frameElement | |
} catch (e) {} | |
if (b) a = b.hasAttribute("sandbox"); | |
else { | |
b = !1; | |
c = n.getDoc(); | |
if (a.browserIs(g.BROWSERS.CHROME)) try { | |
c.domain = "hol@#3+~" | |
} catch (h) { | |
/Assignment is forbidden for sandboxed iframes/.test(h.message) && (b = !0) | |
} | |
a = b | |
} | |
d = a | |
} | |
return d | |
} | |
}, | |
fb = function(a, b, c, d, e, h, k, r) { | |
var t = 0, | |
q = 0, | |
m = !1, | |
x, w = {}, | |
A = [g.DT_CODES.ADTALK], | |
z = function(a, | |
b, h, r, x, A) { | |
h = h || !c.on("postDts"); | |
var z = a === g.DT_CODES.VH || a === g.DT_CODES.DIAGNOSTIC || a === g.DT_CODES.ADTALK; | |
if (d.impressionIsIdentifiable() && (z || "n" !== k.getCurrentLoc())) try { | |
var D = p.dtBaseURL, | |
s = new I(D, !0), | |
u = n.now(), | |
v = w[a]; | |
l.trigger("preSendDt", a); | |
D || (s.path("dt"), c.on("usedtdomain") && s.sub("dt")); | |
G(s, a, b); | |
x && x.field && s.setParam(x.field, x.value); | |
r || H(s, a); | |
l.trigger("send", s, function() { | |
q += 1; | |
t = n.now() - u; | |
f.isFunction(A) && A() | |
}, h); | |
a === g.DT_CODES.UNLOAD && (m = !0); | |
w[a] = f.isDef(v) ? v + 1 : 1; | |
e.cleanup() | |
} catch (y) { | |
__IntegralASDiagnosticCall("dt-" + | |
a, y), l.trigger("error", g.ERROR_CODES.PHONE_HOME) | |
} | |
}; | |
a = function(a, b) { | |
var d = { | |
bapi: "a", | |
bapiClient: "b", | |
jload: "c", | |
jss: "d", | |
jsi: "e" | |
}, | |
e = p.mode, | |
d = d[a] || d[e]; | |
c.on(b || e + "Diag") && d && z(g.DT_CODES.DIAGNOSTIC, -5, !0, !0, { | |
field: "bkp", | |
value: d | |
}) | |
}; | |
var D = function(a) { | |
var c; | |
a === g.DT_CODES.UNLOAD ? c = -1 : a === g.DT_CODES.ADTALK ? c = -2 : a === g.DT_CODES.VIEWABILITY_READY ? c = -3 : a === g.DT_CODES.VIDEO_EVENTS ? c = -4 : a === g.DT_CODES.DIAGNOSTIC ? c = -5 : a === g.DT_CODES.THIRD_PARTY ? c = -6 : a === g.DT_CODES.QUARTILE_FULLY_INVIEW ? c = -7 : a === g.DT_CODES.LARGE_BILLABLE ? | |
c = -8 : a === g.DT_CODES.AVIREEN ? c = -9 : a === g.DT_CODES.SCA && (c = -10); | |
var b = w[a]; | |
f.isDef(b) && -1 !== A.indexOf(a) && 0 !== b && (c = c + "." + b); | |
return c | |
}, | |
G = function(a, c, b) { | |
b = f.isDef(b) ? b : D(c); | |
a.setParam("asId", p.asid); | |
b = { | |
c: d.getCacheBustId(), | |
pingTime: b, | |
time: s.getTagTime(), | |
type: c | |
}; | |
e.filterOutput(function(a) { | |
var b = a.minDt && (!a.type || a.type === c); | |
b && a.oneTime && (a.flagForRemoval = !0); | |
return b | |
}, b); | |
a.setParam("tv", b) | |
}, | |
H = function(a, d) { | |
var f, m = {}; | |
e.filterOutput(function(a) { | |
return a.standalone && !a.minDt && a.type === d | |
}, function(c, b) { | |
a.setParam(c, | |
b.replace("%3A", ":")) | |
}); | |
k.fastForward(); | |
d === g.DT_CODES.VIDEO_EVENTS && (f = l.request("videoEventsString")) && (m.ve = f, m.clog = r); | |
d === g.DT_CODES.UNLOAD && (m.ndt = q); - 1 !== p.mode.indexOf("jsvid") && (m.vv = l.request("videoVersion")); | |
m.NULL1 = c.output(); | |
m.NULL2 = k.stringify(10); | |
m.em = s.embedded; | |
m.fr = s.friendly; | |
m.uf = x.useFlash() ? 1 : 0; | |
m.e = b.toString(); | |
m.tt = p.mode; | |
m.dtt = t; | |
e.filterOutput(function |