Inicio Noticias NOTICIAS DE ÚLTIMA HORA: Trump evacuado de la habitación en la Cena...

NOTICIAS DE ÚLTIMA HORA: Trump evacuado de la habitación en la Cena de Corresponsales de la Casa Blanca

23
0

${n}</script>`),
(t.onload = () => e(t.contentWindow.render)),
document.body.appendChild(t);
})),
e[n]
);
};
})();
},
3005: (e, t, n) => {
n.d(t, {
$T: () => a,
Ni: () => i,
OA: () => o,
RO: () => s,
fR: () => r
});
const i = 1,
r = 2,
o = 1,
s = 500;
function a(e) {
return (e ?? []).reduce((e, t) => {
let { event: n, method: i, url: r } = t;
const o = (e[n] = e[n] ?? {});
return (o[i] = o[i] ?? []).push(r), e;
}, {});
}
},
5023: (e, t, n) => {
n.d(t, { AU: () => m, Ic: () => v, kQ: () => y, on: () => h });
var i = n(1069),
r = n(8969),
o = n(6853),
s = n(3272);
const a = ‘eventHistoryTTL’;
let d = null;
const c = (0, o.H)({ monotonic: !0, ttl: () => d });
s.$W.getConfig(a, e => {
const t = d;
(e = e?.[a]),
(d = ‘number’ == typeof e ? 1e3 * e : null),
t !== d && c.refresh();
});
let l = Array.prototype.slice,
u = Array.prototype.push,
f = Object.values(r.qY);
const g = r.cA,
p = (function() {
let e = {},
t = {};
function n(e) {
return f.includes(e);
}
return (
(t.has = n),
(t.on = function(t, r, o) {
if (n(t)) {
let n = e[t] || { que: [] };
o
? ((n[o] = n[o] || { que: [] }), n[o].que.push(r))
: n.que.push(r),
(e[t] = n);
} else
i.vV(
‘Wrong event name : ‘ + t + ‘ Valid event names :’ + f
);
}),
(t.emit = function(t) {
!(function(t, n) {
i.OG(‘Emitting event for: ‘ + t);
let r = n[0] || {},
o = r[g[t]],
s = e[t] || { que: [] };
var a = Object.keys(s);
let d = [];
c.add({
eventType: t,
args: r,
id: o,
elapsedTime: i.V()
}),
o && a.includes(o) && u.apply(d, s[o].que),
u.apply(d, s.que),
(d || []).forEach(function(e) {
if (e)
try {
e.apply(null, n);
} catch (e) {
i.vV(
‘Error executing handler:’,
‘events.js’,
e,
t
);
}
});
})(t, l.call(arguments, 1));
}),
(t.off = function(t, n, r) {
let o = e[t];
i.Im(o) ||
(i.Im(o.que) && i.Im(o[r])) ||
(r && (i.Im(o[r]) || i.Im(o[r].que))) ||
(r
? (o[r].que || []).forEach(function(e) {
let t = o[r].que;
e === n && t.splice(t.indexOf(e), 1);
})
: (o.que || []).forEach(function(e) {
let t = o.que;
e === n && t.splice(t.indexOf(e), 1);
}),
(e[t] = o));
}),
(t.get = function() {
return e;
}),
(t.addEvents = function(e) {
f = f.concat(e);
}),
(t.getEvents = function() {
return c.toArray().map(e => Object.assign({}, e));
}),
t
);
})();
i.cD(p.emit.bind(p));
const {
on: h,
off: m,
get: b,
getEvents: y,
emit: v,
addEvents: E,
has: A
} = p;
},
687: (e, t, n) => {
n.d(t, { w: () => I });
var i = n(9214),
r = n(7934),
o = n(5973),
s = n(1069),
a = n(3172),
d = n(3272),
c = n(5555);
const l = [
‘architecture’,
‘bitness’,
‘model’,
‘platformVersion’,
‘fullVersionList’
],
u = [‘brands’, ‘mobile’, ‘platform’],
f = (function() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: window.navigator?.userAgentData;
const t =
e && u.some(t => void 0 !== e[t])
? Object.freeze(p(1, e))
: null;
return function() {
return t;
};
})(),
g = (function() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: window.navigator?.userAgentData;
const t = {},
n = new WeakMap();
return function() {
let i =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: l;
if (!n.has(i)) {
const e = Array.from(i);
e.sort(), n.set(i, e.join(‘|’));
}
const r = n.get(i);
if (!t.hasOwnProperty(r))
try {
t[r] = e
.getHighEntropyValues(i)
.then(e =>
(0, s.Im)(e) ? null : Object.freeze(p(2, e))
)
.catch(() => null);
} catch (e) {
t[r] = c.U9.resolve(null);
}
return t[r];
};
})();
function p(e, t) {
function n(e, t) {
const n = { brand: e };
return (
(0, s.O8)(t) && !(0, s.xQ)(t) && (n.version = t.split(‘.’)), n
);
}
const i = { source: e };
return (
t.platform && (i.platform = n(t.platform, t.platformVersion)),
(t.fullVersionList || t.brands) &&
(i.browsers = (t.fullVersionList || t.brands).map(e => {
let { brand: t, version: i } = e;
return n(t, i);
})),
void 0 !== t.mobile && (i.mobile = t.mobile ? 1 : 0),
[‘model’, ‘bitness’, ‘architecture’].forEach(e => {
const n = t[e];
(0, s.O8)(n) && (i[e] = n);
}),
i
);
}
var h = n(3858),
m = n(5139),
b = n(3441),
y = n(6811),
v = n(5569),
E = n(8944);
const A = {
getRefererInfo: r.EN,
findRootDomain: o.S,
getWindowTop: s.mb,
getWindowSelf: s.l4,
getHighEntropySUA: g,
getLowEntropySUA: f,
getDocument: s.YE
},
w = (0, h.i8)(‘FPD’),
I = (0, i.A_)(‘sync’, e => {
const t = [
e,
C().catch(() => null),
c.U9.resolve(
‘cookieDeprecationLabel’ in navigator &&
(0, m.io)(y.Ue, (0, b.s)(v.tp, ‘cdep’)) &&
navigator.cookieDeprecationLabel.getValue()
).catch(() => null)
];
return c.U9.all(t).then(e => {
let [t, n, i] = e;
const r = A.getRefererInfo();
if (
(Object.entries(O).forEach(e => {
let [n, i] = e;
const o = i(t, r);
o &&
Object.keys(o).length > 0 &&
(t[n] = (0, s.D9)({}, o, t[n]));
}),
n &&
(0, a.J)(
t,
‘device.sua’,
Object.assign({}, n, t.device.sua)
),
i)
) {
const e = { cdep: i };
(0, a.J)(
t,
‘device.ext’,
Object.assign({}, e, t.device.ext)
);
}
const o = A.getDocument().documentElement.lang;
o && (0, a.J)(t, ‘site.ext.data.documentLang’, o), (t = w(t));
for (let e of h.Dy)
if ((0, h.O$)(t, e)) {
t[e] = (0, s.D9)({}, R(t, r), t[e]);
break;
}
return t;
});
});
function T(e) {
try {
return e(A.getWindowTop());
} catch (t) {
return e(A.getWindowSelf());
}
}
function C() {
const e = d.$W.getConfig(‘firstPartyData.uaHints’);
return Array.isArray(e) && 0 !== e.length
? A.getHighEntropySUA(e)
: c.U9.resolve(A.getLowEntropySUA());
}
function B(e) {
return (0, s.SH)(e, Object.keys(e));
}
const O = {
site(e, t) {
if (!h.Dy.filter(e => ‘site’ !== e).some(h.O$.bind(null, e)))
return B({ page: t.page, ref: t.ref });
},
device: () =>
T(e => {
const t = (0, s.Ot)().screen.width,
n = (0, s.Ot)().screen.height,
{ width: i, height: r } = (0, E.M)(),
o = {
w: t,
h: n,
dnt: (0, s.l9)() ? 1 : 0,
ua: e.navigator.userAgent,
language: e.navigator.language.split(‘-‘).shift(),
ext: { vpw: i, vph: r }
};
return (
e.navigator?.webdriver && (0, a.J)(o, ‘ext.webdriver’, !0),
o
);
}),
regs() {
const e = {};
T(e => e.navigator.globalPrivacyControl) &&
(0, a.J)(e, ‘ext.gpc’, ‘1’);
const t = d.$W.getConfig(‘coppa’);
return ‘boolean’ == typeof t && (e.coppa = t ? 1 : 0), e;
}
};
function R(e, t) {
const n = (0, r.gR)(t.page, { noLeadingWww: !0 }),
i = T(e =>
e.document.querySelector(«meta[name=’keywords’]»)
)?.content?.replace?.(/s/g, »);
return B({
domain: n,
keywords: i,
publisher: B({ domain: A.findRootDomain(n) })
});
}
},
3858: (e, t, n) => {
n.d(t, { Dy: () => r, O$: () => s, i8: () => o });
var i = n(1069);
const r = [‘dooh’, ‘app’, ‘site’];
function o(e) {
return function(t) {
return (
r.reduce(
(n, r) => (
s(t, r) &&
(null != n
? ((0, i.JE)(
`${e} specifies both ‘${n}’ and ‘${r}’; dropping the latter.`
),
delete t[r])
: (n = r)),
n
),
null
),
t
);
};
}
function s(e, t) {
return null != e[t] && Object.keys(e[t]).length > 0;
}
},
5973: (e, t, n) => {
n.d(t, { S: () => o });
var i = n(1069);
const r = (0, n(2938).CK)(‘fpdEnrichment’),
o = (0, i.Bj)(function() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: window.location.host;
if (!r.cookiesAreEnabled()) return e;
const t = e.split(‘.’);
if (2 === t.length) return e;
let n,
o,
s = -2;
const a = `_rdc${Date.now()}`,
d = ‘writeable’;
do {
n = t.slice(s).join(‘.’);
let e = new Date((0, i.vE)() + 1e4).toUTCString();
r.setCookie(a, d, e, ‘Lax’, n, void 0);
r.getCookie(a, void 0) === d
? ((o = !1),
r.setCookie(
a,
»,
‘Thu, 01 Jan 1970 00:00:01 GMT’,
void 0,
n,
void 0
))
: ((s += -1), (o = Math.abs(s) <= t.length));
} while (o);
return n;
});
},
9214: (e, t, n) => {
n.d(t, {
A_: () => s,
Gc: () => d,
Y6: () => g,
Yn: () => c,
bz: () => f,
u2: () => p,
xG: () => u
});
var i = n(8128),
r = n.n(i),
o = n(5555);
let s = r()({ ready: r().SYNC | r().ASYNC | r().QUEUE });
const a = (0, o.v6)();
s.ready = (() => {
const e = s.ready;
return function() {
try {
return e.apply(s, arguments);
} finally {
a.resolve();
}
};
})();
const d = a.promise,
c = s.get;
const l = {};
function u(e, t) {
let { postInstallAllowed: n = !1 } =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: {};
s(
‘async’,
function(i) {
i.forEach(e => t(…e)), n && (l[e] = t);
},
e
)([]);
}
function f(e) {
for (
var t = arguments.length,
n = new Array(t > 1 ? t – 1 : 0),
i = 1;
i < t;
i++
)
n[i – 1] = arguments[i];
const r = l[e];
if (r) return r(…n);
c(e).before((e, t) => {
t.push(n), e(t);
});
}
function g(e, t) {
return (
Object.defineProperties(
t,
Object.fromEntries(
[‘before’, ‘after’, ‘getHooks’, ‘removeAll’].map(t => [
t,
{ get: () => e[t] }
])
)
),
t
);
}
function p(e) {
return g(e, function() {
for (
var t = arguments.length, n = new Array(t), i = 0;
i < t;
i++
)
n[i] = arguments[i];
return n.push(function() {}), e.apply(this, n);
});
}
},
1371: (e, t, n) => {
n.d(t, {
D4: () => o,
GE: () => a,
G_: () => r,
LM: () => s,
s6: () => i
});
const i = ‘native’,
r = ‘video’,
o = ‘banner’,
s = ‘adpod’,
a = [i, r, o];
},
2449: (e, t, n) => {
n.d(t, {
Bm: () => y,
IX: () => C,
Nh: () => l,
Zj: () => A,
gs: () => E,
l6: () => p,
mT: () => c,
nk: () => m,
vO: () => v,
yl: () => B
});
var i = n(1069),
r = n(6881),
o = n(8969),
s = n(9075),
a = n(6031),
d = n(3005);
const c = [],
l = Object.keys(o.x5).map(e => o.x5[e]),
u = {
image: {
ortb: {
ver: ‘1.2’,
assets: [
{
required: 1,
id: 1,
img: { type: 3, wmin: 100, hmin: 100 }
},
{ required: 1, id: 2, title: { len: 140 } },
{ required: 1, id: 3, data: { type: 1 } },
{ required: 0, id: 4, data: { type: 2 } },
{
required: 0,
id: 5,
img: { type: 1, wmin: 20, hmin: 20 }
}
]
},
image: { required: !0 },
title: { required: !0 },
sponsoredBy: { required: !0 },
clickUrl: { required: !0 },
body: { required: !1 },
icon: { required: !1 }
}
},
f = k(o.h0),
g = k(o.jO);
function p(e) {
return e.native && ‘object’ == typeof e.native;
}
function h(e) {
if (
(e &&
e.type &&
(function(e) {
if (!e || !Object.keys(u).includes(e))
return (0, i.vV)(`${e} nativeParam is not supported`), !1;
return !0;
})(e.type) &&
(e = u[e.type]),
!e || !e.ortb || b(e.ortb))
)
return e;
}
function m(e) {
e.forEach(e => {
const t = e.nativeParams || e?.mediaTypes?.native;
t && (e.nativeParams = h(t)),
e.nativeParams &&
(e.nativeOrtbRequest =
e.nativeParams.ortb ||
(function(e) {
if (!e && !(0, i.Qd)(e))
return void (0, i.vV)(
‘Native assets object is empty or not an object: ‘,
e
);
const t = { ver: ‘1.2’, assets: [] };
for (let n in e) {
if (o._B.includes(n)) continue;
if (!o.x5.hasOwnProperty(n)) {
(0, i.vV)(
`Unrecognized native asset code: ${n}. Asset will be ignored.`
);
continue;
}
if (‘privacyLink’ === n) {
t.privacy = 1;
continue;
}
const r = e[n];
let s = 0;
r.required &&
(0, i.Lm)(r.required) &&
(s = Number(r.required));
const a = { id: t.assets.length, required: s };
if (n in o.h0)
(a.data = { type: o.jO[o.h0[n]] }),
r.len && (a.data.len = r.len);
else if (‘icon’ === n || ‘image’ === n) {
if (
((a.img = {
type: ‘icon’ === n ? o.oA.ICON : o.oA.MAIN
}),
r.aspect_ratios)
)
if ((0, i.cy)(r.aspect_ratios))
if (r.aspect_ratios.length) {
const {
min_width: e,
min_height: t
} = r.aspect_ratios[0];
(0, i.Fq)(e) && (0, i.Fq)(t)
? ((a.img.wmin = e), (a.img.hmin = t))
: (0, i.vV)(
‘image.aspect_ratios min_width or min_height are invalid: ‘,
e,
t
);
const n = r.aspect_ratios
.filter(
e => e.ratio_width && e.ratio_height
)
.map(
e => `${e.ratio_width}:${e.ratio_height}`
);
n.length > 0 &&
(a.img.ext = { aspectratios: n });
} else
(0, i.vV)(
«image.aspect_ratios was passed, but it’s empty:»,
r.aspect_ratios
);
else
(0, i.vV)(
«image.aspect_ratios was passed, but it’s not a an array:»,
r.aspect_ratios
);
r.sizes &&
(2 === r.sizes.length &&
(0, i.Fq)(r.sizes[0]) &&
(0, i.Fq)(r.sizes[1])
? ((a.img.w = r.sizes[0]),
(a.img.h = r.sizes[1]),
delete a.img.hmin,
delete a.img.wmin)
: (0, i.vV)(
‘image.sizes was passed, but its value is not an array of integers:’,
r.sizes
));
} else
‘title’ === n
? (a.title = { len: r.len || 140 })
: ‘ext’ === n && ((a.ext = r), delete a.required);
t.assets.push(a);
}
return t;
})(e.nativeParams));
});
}
function b(e) {
const t = e.assets;
if (!Array.isArray(t) || 0 === t.length)
return (
(0, i.vV)(
«assets in mediaTypes.native.ortb is not an array, or it’s empty. Assets: «,
t
),
!1
);
const n = t.map(e => e.id);
return t.length !== new Set(n).size ||
n.some(e => e !== parseInt(e, 10))
? ((0, i.vV)(
«each asset object must have ‘id’ property, it must be unique and it must be an integer»
),
!1)
: e.hasOwnProperty(‘eventtrackers’) &&
!Array.isArray(e.eventtrackers)
? ((0, i.vV)(
‘ortb.eventtrackers is not an array. Eventtrackers: ‘,
e.eventtrackers
),
!1)
: t.every(e =>
(function(e) {
if (!(0, i.Qd)(e))
return (
(0, i.vV)(
‘asset must be an object. Provided asset: ‘,
e
),
!1
);
if (e.img) {
if (!(0, i.Et)(e.img.w) && !(0, i.Et)(e.img.wmin))
return (
(0, i.vV)(
«for img asset there must be ‘w’ or ‘wmin’ property»
),
!1
);
if (!(0, i.Et)(e.img.h) && !(0, i.Et)(e.img.hmin))
return (
(0, i.vV)(
«for img asset there must be ‘h’ or ‘hmin’ property»
),
!1
);
} else if (e.title) {
if (!(0, i.Et)(e.title.len))
return (
(0, i.vV)(
«for title asset there must be ‘len’ property defined»
),
!1
);
} else if (e.data) {
if (!(0, i.Et)(e.data.type))
return (
(0, i.vV)(
«for data asset ‘type’ property must be a number»
),
!1
);
} else if (
e.video &&
!(
Array.isArray(e.video.mimes) &&
Array.isArray(e.video.protocols) &&
(0, i.Et)(e.video.minduration) &&
(0, i.Et)(e.video.maxduration)
)
)
return (
(0, i.vV)(‘video asset is not properly configured’),
!1
);
return !0;
})(e)
);
}
function y(e) {
let { index: t = r.n.index } =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
const n = t.getAdUnit(e);
if (!n) return !1;
let o = n.nativeOrtbRequest;
return (function(e, t) {
if (!e?.link?.url)
return (
(0, i.vV)(
«native response doesn’t have ‘link’ property. Ortb response: «,
e
),
!1
);
let n = t.assets.filter(e => 1 === e.required).map(e => e.id),
r = e.assets.map(e => e.id);
const o = n.every(e => r.includes(e));
o ||
(0, i.vV)(
`didn’t receive a bid with all required assets. Required ids: ${n}, but received ids in response: ${r}`
);
return o;
})(e.native?.ortb || S(e.native, o), o);
}
function v(e, t) {
const n = t.native.ortb || R(t.native);
return (
‘click’ === e.action
? (function(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: null,
{ fetchURL: n = i.z$ } =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: {};
if (t) {
const i = (e.assets || [])
.filter(e => e.link)
.reduce((e, t) => ((e[t.id] = t.link), e), {}),
r = e.link?.clicktrackers || [];
let o = i[t],
s = r;
o && (s = o.clicktrackers || []), s.forEach(e => n(e));
} else (e.link?.clicktrackers || []).forEach(e => n(e));
})(n, e?.assetId)
: (function(e) {
let {
runMarkup: t = e => (0, i.ro)(e),
fetchURL: n = i.z$
} =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {},
{ [d.Ni]: r = [], [d.fR]: o = [] } =
(0, d.$T)(e.eventtrackers || [])[d.OA] || {};
e.imptrackers && (r = r.concat(e.imptrackers));
r.forEach(e => n(e)),
(o = o.map(e => «)),
e.jstracker && (o = o.concat([e.jstracker]));
o.length && t(o.join(‘n’));
})(n),
e.action
);
}
function E(e, t) {
const n = t?.nativeOrtbRequest,
i = e.native?.ortb;
if (n && i) {
const t = (function(e, t) {
const n = {},
i = t?.assets || [];
(n.clickUrl = e.link?.url), (n.privacyLink = e.privacy);
for (const t of e?.assets || []) {
const e = i.find(e => t.id === e.id);
t.title
? (n.title = t.title.text)
: t.img
? (n[e?.img?.type === o.oA.MAIN ? ‘image’ : ‘icon’] = {
url: t.img.url,
width: t.img.w,
height: t.img.h
})
: t.data && (n[f[g[e?.data?.type]]] = t.data.value);
}
n.impressionTrackers = [];
let r = [];
e.imptrackers && n.impressionTrackers.push(…e.imptrackers);
for (const t of e?.eventtrackers || [])
t.event === d.OA &&
t.method === d.Ni &&
n.impressionTrackers.push(t.url),
t.event === d.OA && t.method === d.fR && r.push(t.url);
(r = r.map(e => «)),
e?.jstracker && r.push(e.jstracker);
r.length && (n.javascriptTrackers = r.join(‘n’));
return n;
})(i, n);
Object.assign(e.native, t);
}
[‘rendererUrl’, ‘adTemplate’].forEach(n => {
const i = t?.nativeParams?.[n];
i && (e.native[n] = O(i));
});
}
function A(e) {
let { index: t = r.n.index } =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {},
n = {};
const i = t.getAdUnit(e),
s =
null == i?.nativeParams?.ortb &&
!1 !== i?.nativeParams?.sendTargetingKeys,
a = (function(e) {
const t = {};
e?.nativeParams?.ext &&
Object.keys(e.nativeParams.ext).forEach(e => {
t[e] = `hb_native_${e}`;
});
return { …o.x5, …t };
})(i),
d = { …e.native, …e.native.ext };
return (
delete d.ext,
Object.keys(d).forEach(t => {
const r = a[t];
let o = O(e.native[t]) || O(e?.native?.ext?.[t]);
if (‘adTemplate’ === t || !r || !o) return;
let d = i?.nativeParams?.[t]?.sendId;
if (
(‘boolean’ != typeof d &&
(d = i?.nativeParams?.ext?.[t]?.sendId),
d)
) {
o = `${r}:${e.adId}`;
}
let c = i?.nativeParams?.[t]?.sendTargetingKeys;
‘boolean’ != typeof c &&
(c = i?.nativeParams?.ext?.[t]?.sendTargetingKeys);
(‘boolean’ == typeof c ? c : s) && (n[r] = o);
}),
n
);
}
function w(e, t) {
let n =
arguments.length > 2 &&
void 0 !== arguments[2] &&
arguments[2],
i = [];
return (
Object.entries(e)
.filter(e => {
let [i, r] = e;
return (
r &&
((!1 === n && ‘ext’ === i) || null == t || t.includes(i))
);
})
.forEach(e => {
let [r, s] = e;
!1 === n && ‘ext’ === r
? i.push(…w(s, t, !0))
: (n || o.x5.hasOwnProperty(r)) &&
i.push({ key: r, value: O(s) });
}),
i
);
}
function I(e, t, n) {
let { index: d = r.n.index } =
arguments.length > 3 && void 0 !== arguments[3]
? arguments[3]
: {};
const c = { message: ‘assetResponse’, adId: e.adId };
let l = (0, s.vd)(t).native;
return (
l
? ((c.native = Object.assign({}, l)),
(c.renderer = (0, a.kj)(t)),
(c.rendererVersion = a.xh),
null != n &&
(l.assets = l.assets.filter(e => {
let { key: t } = e;
return n.includes(t);
})))
: (l = (function(e, t, n) {
const r = {
…(0, i.SH)(e.native, [‘rendererUrl’, ‘adTemplate’]),
assets: w(e.native, n),
nativeKeys: o.x5
};
return (
e.native.ortb
? (r.ortb = e.native.ortb)
: t.mediaTypes?.native?.ortb &&
(r.ortb = S(e.native, t.nativeOrtbRequest)),
r
);
})(t, d.getAdUnit(t), n)),
Object.assign(c, l)
);
}
const T = Object.fromEntries(
Object.entries(o.x5).map(e => {
let [t, n] = e;
return [n, t];
})
);
function C(e, t) {
const n = e.assets.map(e => T[e]);
return I(e, t, n);
}
function B(e, t) {
return I(e, t, null);
}
function O(e) {
return e?.url || e;
}
function R(e) {
const t = { link: {}, eventtrackers: [] };
return (
Object.entries(e).forEach(e => {
let [n, i] = e;
switch (n) {
case ‘clickUrl’:
t.link.url = i;
break;
case ‘clickTrackers’:
t.link.clicktrackers = Array.isArray(i) ? i : [i];
break;
case ‘impressionTrackers’:
(Array.isArray(i) ? i : [i]).forEach(e => {
t.eventtrackers.push({
event: d.OA,
method: d.Ni,
url: e
});
});
break;
case ‘javascriptTrackers’:
t.jstracker = Array.isArray(i) ? i.join(») : i;
break;
case ‘privacyLink’:
t.privacy = i;
}
}),
t
);
}
function S(e, t) {
const n = { …R(e), assets: [] };
function r(e, r) {
let o = t.assets.find(e);
null != o && ((o = (0, i.Go)(o)), r(o), n.assets.push(o));
}
return (
Object.keys(e)
.filter(t => !!e[t])
.forEach(t => {
const n = O(e[t]);
switch (t) {
case ‘title’:
r(
e => null != e.title,
e => {
e.title = { text: n };
}
);
break;
case ‘image’:
case ‘icon’:
const e = ‘image’ === t ? o.oA.MAIN : o.oA.ICON;
r(
t => null != t.img && t.img.type === e,
e => {
e.img = { url: n };
}
);
break;
default:
t in o.h0 &&
r(
e =>
null != e.data && e.data.type === o.jO[o.h0[t]],
e => {
e.data = { value: n };
}
);
}
}),
n
);
}
function k(e) {
var t = {};
for (var n in e) t[e[n]] = n;
return t;
}
},
1e3: (e, t, n) => {
n.d(t, {
Cf: () => a,
S3: () => r,
Tb: () => o,
WR: () => s,
e4: () => c,
pS: () => u,
qN: () => d,
yB: () => f,
zt: () => i
});
const i = [‘request’, ‘imp’, ‘bidResponse’, ‘response’],
[r, o, s, a] = i,
[d, c] = [‘default’, ‘pbs’],
l = new Set(i);
const { registerOrtbProcessor: u, getProcessors: f } = (function() {
const e = {};
return {
registerOrtbProcessor(t) {
let {
type: n,
name: r,
fn: o,
priority: s = 0,
dialects: a = [d]
} = t;
if (!l.has(n))
throw new Error(
`ORTB processor type must be one of: ${i.join(‘, ‘)}`
);
a.forEach(t => {
e.hasOwnProperty(t) || (e[t] = {}),
e[t].hasOwnProperty(n) || (e[t][n] = {}),
(e[t][n][r] = { priority: s, fn: o });
});
},
getProcessors: t => e[t] || {}
};
})();
},
8934: (e, t, n) => {
n.d(t, { gH: () => se });
var i = n(7873),
r = n(1069),
o = n(433),
s = n(3172),
a = n(2449),
d = n(8969),
c = n(9075),
l = n(6031);
const { REQUEST: u, RESPONSE: f, NATIVE: g, EVENT: p } = d.nl,
h = {
[u]: function(e, t, n) {
(0, c.bw)({
renderFn(t) {
e(
Object.assign(
{
message: f,
renderer: (0, l.kj)(n),
rendererVersion: l.xh
},
t
)
);
},
resizeFn: b(t.adId, n),
options: t.options,
adId: t.adId,
bidResponse: n
});
},
[p]: function(e, t, n) {
if (null == n)
return void (0, r.vV)(
`Cannot find ad ‘${t.adId}’ for x-origin event request`
);
if (n.status !== d.tl.RENDERED)
return void (0, r.JE)(
`Received x-origin event request without corresponding render request for ad ‘${n.adId}’`
);
return (0, c.Uc)(t, n);
}
};
function m() {
window.addEventListener(
‘message’,
function(e) {
!(function(e) {
var t = e.message ? ‘message’ : ‘data’,
n = {};
try {
n = JSON.parse(e[t]);
} catch (e) {
return;
}
if (n && n.adId && n.message && h.hasOwnProperty(n.message))
(0, c.$A)(n.adId, n.message === d.nl.REQUEST).then(t => {
var i, o;
h[n.message](
((i = n.adId),
(o = (function(e) {
return null == e.origin && 0 === e.ports.length
? function() {
const e =
‘Cannot post message to a frame with null origin. Please update creatives to use MessageChannel, see https://github.com/prebid/Prebid.js/issues/7870’;
throw ((0, r.vV)(e), new Error(e));
}
: e.ports.length > 0
? function(t) {
e.ports[0].postMessage(JSON.stringify(t));
}
: function(t) {
e.source.postMessage(
JSON.stringify(t),
e.origin
);
};
})(e)),
function(e) {
for (
var t = arguments.length,
n = new Array(t > 1 ? t – 1 : 0),
r = 1;
r < t;
r++
)
n[r – 1] = arguments[r];
return o(Object.assign({}, e, { adId: i }), …n);
}),
n,
t
);
});
})(e);
},
!1
);
}
function b(e, t) {
return function(n, i) {
!(function(e) {
let {
instl: t,
adId: n,
adUnitCode: i,
width: o,
height: s
} = e;
if (t) return;
function a(e) {
return e ? e + ‘px’ : ‘100%’;
}
function d(e) {
let t = c(n, i),
r = document.getElementById(t);
return r && r.querySelector(e);
}
function c(e, t) {
return (0, r.II)() ? l(e) : (0, r.t1)() ? u(t) : t;
}
function l(e) {
const t = window.googletag
.pubads()
.getSlots()
.find(t =>
t
.getTargetingKeys()
.find(n => t.getTargeting(n).includes(e))
);
return t ? t.getSlotElementId() : null;
}
function u(e) {
let t = window.apntag.getTag(e);
return t && t.targetId;
}
[‘div’, ‘iframe’].forEach(e => {
let t = d(e + ‘:not([style*=»display: none»])’);
if (t) {
let e = t.style;
(e.width = a(o)), (e.height = a(s));
} else
(0, r.vV)(
`Unable to locate matching page element for adUnitCode ${i}. Can’t resize it to ad’s dimensions. Please review setup.`
);
});
})({ …t, width: n, height: i, adId: e });
};
}
Object.assign(h, {
[g]: function(e, t, n) {
if (null == n)
return void (0, r.vV)(
`Cannot find ad for x-origin event request: ‘${t.adId}’`
);
switch (t.action) {
case ‘assetRequest’:
(0, c.Hh)(n, () => e((0, a.IX)(t, n)));
break;
case ‘allAssetRequest’:
(0, c.Hh)(n, () => e((0, a.yl)(t, n)));
break;
default:
(0, c.vW)(t, n, { resizeFn: b(t.adId, n) }), (0, c.Pk)(n);
}
}
});
var y = n(8230),
v = n(3272),
E = n(6881),
A = n(7779),
w = n(9214),
I = n(3597),
T = n(1580),
C = n(5555),
B = n(5569);
const O = ‘__tlpbjs_debugging__’;
function R() {
return (0, i.m)().installedModules.includes(‘debugging’);
}
function S(e) {
return new C.U9(t => {
(0, T.R)(e, B.tp, ‘debugging’, t);
});
}
function k() {
let { alreadyInstalled: e = R, script: t = S } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
n = null;
return function() {
return (
null == n &&
(n = new C.U9((n, o) => {
setTimeout(() => {
if (e()) n();
else {
const e =
‘https://cdn.jsdelivr.net/npm/prebid.js@9.50.0/dist/debugging-standalone.js’;
(0, r.OG)(
`Debugging module not installed, loading it from «${e}»…`
),
((0, i.m)()._installDebugging = !0),
t(e)
.then(() => {
(0, i.m)()._installDebugging({
DEBUG_KEY: O,
hook: w.A_,
config: v.$W,
createBid: I.O,
logger: (0, r.h0)(‘DEBUG:’)
});
})
.then(n, o);
}
});
})),
n
);
};
}
const U = (function() {
let { load: e = k(), hook: t = (0, w.Yn)(‘requestBids’) } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
n = null,
i = !1;
function r(e) {
for (
var t = arguments.length,
i = new Array(t > 1 ? t – 1 : 0),
r = 1;
r < t;
r++
)
i[r – 1] = arguments[r];
return (n || C.U9.resolve()).then(() => e.apply(this, i));
}
function o() {
t.getHooks({ hook: r }).remove(), (i = !1);
}
return {
enable: function() {
i || ((n = e()), t.before(r, 99), (i = !0));
},
disable: o,
reset: function() {
(n = null), o();
}
};
})();
U.reset;
v.$W.getConfig(‘debugging’, function(e) {
let { debugging: t } = e;
t?.enabled ? U.enable() : U.disable();
});
var D = n(2938),
_ = n(1445),
$ = n(5023),
j = n(6894),
x = n(687),
q = n(6916),
N = n(2713),
W = n(3895);
const P = new Map([
[
‘format’,
e =>
Array.isArray(e) &&
e.length > 0 &&
e.every(e => ‘object’ == typeof e)
],
[‘w’, r.Fq],
[‘h’, r.Fq],
[‘btype’, r.Uu],
[‘battr’, r.Uu],
[‘pos’, r.Fq],
[
‘mimes’,
e =>
Array.isArray(e) &&
e.length > 0 &&
e.every(e => ‘string’ == typeof e)
],
[‘topframe’, e => [1, 0].includes(e)],
[‘expdir’, r.Uu],
[‘api’, r.Uu],
[‘id’, r.O8],
[‘vcm’, e => [1, 0].includes(e)]
]);
var V = n(1371);
function M(e, t) {
return function() {
if (document.prerendering && e()) {
const e = this,
n = Array.from(arguments);
return new Promise(i => {
document.addEventListener(
‘prerenderingchange’,
() => {
(0, r.fH)(
‘Auctions were suspended while page was prerendering’
),
i(t.apply(e, n));
},
{ once: !0 }
);
});
}
return Promise.resolve(t.apply(this, arguments));
};
}
var G = n(7377);
const F = (0, i.m)(),
{ triggerUserSyncs: H } = y.zt,
{ ADD_AD_UNITS: L, REQUEST_BIDS: z, SET_TARGETING: J } = d.qY,
Q = {
bidWon: function(e) {
if (
!E.n
.getBidsRequested()
.map(e => e.bids.map(e => e.adUnitCode))
.reduce(r.Bq)
.filter(r.hj)
.includes(e)
)
return void (0, r.vV)(
‘The «‘ + e + ‘» placement is not defined.’
);
return !0;
}
};
function K(e, t) {
let n = [];
return (
(0, r.cy)(e) &&
(t ? e.length === t : e.length > 0) &&
(e.every(e => (0, r.Uu)(e, 2))
? (n = e)
: (0, r.Uu)(e, 2) && n.push(e)),
n
);
}
function Y(e, t) {
const n = (0, o.A)(e, `ortb2Imp.${t}`),
i = (0, o.A)(e, `mediaTypes.${t}`);
if (!n && !i) return;
const a = { [V.G_]: W.Zy, [V.D4]: P }[t];
a &&
[…a].forEach(n => {
let [i, a] = n;
const d = (0, o.A)(e, `mediaTypes.${t}.${i}`),
c = (0, o.A)(e, `ortb2Imp.${t}.${i}`);
(null == d && null == c) ||
(null == d
? (0, s.J)(e, `mediaTypes.${t}.${i}`, c)
: null == c
? (0, s.J)(e, `ortb2Imp.${t}.${i}`, d)
: ((0, r.JE)(
`adUnit ${e.code}: specifies conflicting ortb2Imp.${t}.${i} and mediaTypes.${t}.${i}, the latter will be ignored`,
e
),
(0, s.J)(e, `mediaTypes.${t}.${i}`, c)));
});
}
function X(e) {
const t = (0, r.Go)(e),
n = t.mediaTypes.banner,
i = null == n.sizes ? null : K(n.sizes),
o = e.ortb2Imp?.banner?.format ?? n?.format;
let a;
if (null != o) {
(0, s.J)(t, ‘ortb2Imp.banner.format’, o), (n.format = o);
try {
a = o
.filter(t => {
let { w: n, h: i, wratio: o, hratio: s } = t;
return null != (n ?? i) && null != (o ?? s)
? ((0, r.JE)(
‘Ad unit banner.format specifies both w/h and wratio/hratio’,
e
),
!1)
: (null != n && null != i) || (null != o && null != s);
})
.map(e => {
let { w: t, h: n, wratio: i, hratio: r } = e;
return [t ?? i, n ?? r];
});
} catch (t) {
(0, r.vV)(
`Invalid format definition on ad unit ${e.code}`,
o
);
}
null == a ||
null == i ||
(0, r.bD)(i, a) ||
(0, r.JE)(
`Ad unit ${e.code} has conflicting sizes and format definitions`,
e
);
}
const d = a ?? i ?? [],
c = e.ortb2Imp?.banner?.expdir ?? n.expdir;
return (
null != c &&
((n.expdir = c), (0, s.J)(t, ‘ortb2Imp.banner.expdir’, c)),
d.length > 0
? ((n.sizes = d), (t.sizes = d))
: ((0, r.vV)(
‘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 t.mediaTypes.banner),
Y(t, ‘banner’),
t
);
}
function Z(e) {
const t = (0, r.Go)(e),
n = t.mediaTypes.video;
if (n.playerSize) {
let e = ‘number’ == typeof n.playerSize[0] ? 2 : 1;
const i = K(n.playerSize, e);
i.length > 0
? (2 === e &&
(0, r.fH)(
«Transforming video.playerSize from [640,480] to [[640,480]] so it’s in the proper format.»
),
(n.playerSize = i),
(t.sizes = i))
: ((0, r.vV)(
‘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 t.mediaTypes.video.playerSize);
}
return (0, W.aP)(t), Y(t, ‘video’), t;
}
function ee(e) {
function t(t) {
return (
(0, r.vV)(
`Error in adUnit «${e.code}»: ${t}. Removing native request from ad unit`,
e
),
delete i.mediaTypes.native,
i
);
}
function n(e) {
for (const t of [‘sendTargetingKeys’, ‘types’])
if (o.hasOwnProperty(t)) {
const n = e(t);
if (n) return n;
}
}
const i = (0, r.Go)(e),
o = i.mediaTypes.native;
if (o.ortb) {
if (
o.ortb.assets?.some(
e => !(0, r.Et)(e.id) || e.id < 0 || e.id % 1 != 0
)
)
return t(‘native asset ID must be a nonnegative integer’);
if (n(e => t(`ORTB native requests cannot specify «${e}»`)))
return i;
const e = Object.keys(d.x5).filter(e =>
d.x5[e].includes(‘hb_native_’)
),
s = Object.keys(o).filter(t => e.includes(t));
s.length > 0 &&
((0, r.vV)(
`when using native OpenRTB format, you cannot use legacy native properties. Deleting ${s} keys from request.`
),
s.forEach(e => delete i.mediaTypes.native[e]));
} else
n(
e =>
`mediaTypes.native.${e} is deprecated, consider using native ORTB instead`
);
return (
o.image &&
o.image.sizes &&
!Array.isArray(o.image.sizes) &&
((0, r.vV)(
‘Please use an array of sizes for native.image.sizes field. Removing invalid mediaTypes.native.image.sizes property from request.’
),
delete i.mediaTypes.native.image.sizes),
o.image &&
o.image.aspect_ratios &&
!Array.isArray(o.image.aspect_ratios) &&
((0, r.vV)(
‘Please use an array of sizes for native.image.aspect_ratios field. Removing invalid mediaTypes.native.image.aspect_ratios property from request.’
),
delete i.mediaTypes.native.image.aspect_ratios),
o.icon &&
o.icon.sizes &&
!Array.isArray(o.icon.sizes) &&
((0, r.vV)(
‘Please use an array of sizes for native.icon.sizes field. Removing invalid mediaTypes.native.icon.sizes property from request.’
),
delete i.mediaTypes.native.icon.sizes),
i
);
}
function te(e, t) {
let n = e?.mediaTypes?.[t]?.pos;
if (!(0, r.Et)(n) || isNaN(n) || !isFinite(n)) {
let n = `Value of property ‘pos’ on ad unit ${e.code} should be of type: Number`;
(0, r.JE)(n), delete e.mediaTypes[t].pos;
}
return e;
}
function ne(e) {
const t = t => `adUnit.code ‘${e.code}’ ${t}`,
n = e.mediaTypes,
i = e.bids;
return null == i || (0, r.cy)(i)
? null == i && null == e.ortb2Imp
? ((0, r.vV)(
t(
«has no ‘adUnit.bids’ and no ‘adUnit.ortb2Imp’. Removing adUnit from auction»
)
),
null)
: n && 0 !== Object.keys(n).length
? (null == e.ortb2Imp ||
(null != i && 0 !== i.length) ||
((e.bids = [{ bidder: null }]),
(0, r.OG)(
t(
«defines ‘adUnit.ortb2Imp’ with no ‘adUnit.bids’; it will be seen only by S2S adapters»
)
)),
e)
: ((0, r.vV)(
t(
«does not define a ‘mediaTypes’ object. This is a required field for the auction, so this adUnit has been removed.»
)
),
null)
: ((0, r.vV)(
t(
«defines ‘adUnit.bids’ that is not an array. Removing adUnit from auction»
)
),
null);
}
!(function() {
let e = null;
try {
e = window.sessionStorage;
} catch (e) {}
if (null !== e) {
let t = U,
n = null;
try {
n = e.getItem(O);
} catch (e) {}
null !== n && t.enable();
}
})(),
(F.bidderSettings = F.bidderSettings || {}),
(F.libLoaded = !0),
(F.version = ‘v9.50.0’),
(0, r.fH)(‘Prebid.js v9.50.0 loaded’),
(F.installedModules = F.installedModules || []),
(F.adUnits = F.adUnits || []),
(F.triggerUserSyncs = H);
const ie = {
validateAdUnit: ne,
validateBannerMediaType: X,
validateSizes: K
};
Object.assign(ie, { validateNativeMediaType: ee }),
Object.assign(ie, { validateVideoMediaType: Z });
const re = (0, w.A_)(
‘sync’,
function(e) {
const t = [];
return (
e.forEach(e => {
if (null == (e = ne(e))) return;
const n = e.mediaTypes;
let i, r, o;
n.banner &&
((i = X(e)),
n.banner.hasOwnProperty(‘pos’) && (i = te(i, ‘banner’))),
n.video &&
((r = Z(i || e)),
n.video.hasOwnProperty(‘pos’) && (r = te(r, ‘video’))),
n.native && (o = ee(r || i || e));
const s = Object.assign({}, i, r, o);
t.push(s);
}),
t
);
},
‘checkAdUnitSetup’
);
function oe(e) {
const t = E.n[e]().filter(e =>
E.n.getAdUnitCodes().includes(e.adUnitCode)
),
n = E.n.getLastAuctionId();
return t
.map(e => e.adUnitCode)
.filter(r.hj)
.map(e =>
t.filter(t => t.auctionId === n && t.adUnitCode === e)
)
.filter(e => e && e[0] && e[0].adUnitCode)
.map(e => ({ [e[0].adUnitCode]: { bids: e } }))
.reduce((e, t) => Object.assign(e, t), {});
}
(F.getAdserverTargetingForAdUnitCodeStr = function(e) {
if (
((0, r.fH)(
‘Invoking tlpbjs.getAdserverTargetingForAdUnitCodeStr’,
arguments
),
e)
) {
var t = F.getAdserverTargetingForAdUnitCode(e);
return (0, r.$D)(t);
}
(0, r.OG)(
‘Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode’
);
}),
(F.getHighestUnusedBidResponseForAdUnitCode = function(e) {
if (e) {
const t = E.n.getAllBidsForAdUnitCode(e).filter(A.Yl);
return t.length ? t.reduce(N.Vk) : {};
}
(0, r.OG)(
‘Need to call getHighestUnusedBidResponseForAdUnitCode with adunitCode’
);
}),
(F.getAdserverTargetingForAdUnitCode = function(e) {
return F.getAdserverTargeting(e)[e];
}),
(F.getAdserverTargeting = function(e) {
return (
(0, r.fH)(‘Invoking tlpbjs.getAdserverTargeting’, arguments),
A.iS.getAllTargeting(e)
);
}),
(F.getConsentMetadata = function() {
return (
(0, r.fH)(‘Invoking tlpbjs.getConsentMetadata’),
q.SL.getConsentMeta()
);
}),
(F.getNoBids = function() {
return (
(0, r.fH)(‘Invoking tlpbjs.getNoBids’, arguments),
oe(‘getNoBids’)
);
}),
(F.getNoBidsForAdUnitCode = function(e) {
return {
bids: E.n.getNoBids().filter(t => t.adUnitCode === e)
};
}),
(F.getBidResponses = function() {
return (
(0, r.fH)(‘Invoking tlpbjs.getBidResponses’, arguments),
oe(‘getBidsReceived’)
);
}),
(F.getBidResponsesForAdUnitCode = function(e) {
return {
bids: E.n.getBidsReceived().filter(t => t.adUnitCode === e)
};
}),
(F.setTargetingForGPTAsync = function(e, t) {
(0, r.fH)(‘Invoking tlpbjs.setTargetingForGPTAsync’, arguments),
(0, r.II)()
? A.iS.setTargetingForGPT(e, t)
: (0, r.vV)(‘window.googletag is not defined on the page’);
}),
(F.setTargetingForAst = function(e) {
(0, r.fH)(‘Invoking tlpbjs.setTargetingForAn’, arguments),
A.iS.isApntagDefined()
? (A.iS.setTargetingForAst(e),
$.Ic(J, A.iS.getAllTargeting()))
: (0, r.vV)(‘window.apntag is not defined on the page’);
}),
(F.renderAd = (0, w.A_)(‘async’, function(e, t, n) {
(0, r.fH)(‘Invoking tlpbjs.renderAd’, arguments),
(0, r.OG)(‘Calling renderAd with adId :’ + t),
(0, c.BS)(e, t, n);
})),
(F.removeAdUnit = function(e) {
if (((0, r.fH)(‘Invoking tlpbjs.removeAdUnit’, arguments), !e))
return void (F.adUnits = []);
let t;
(t = (0, r.cy)(e) ? e : [e]),
t.forEach(e => {
for (let t = F.adUnits.length – 1; t >= 0; t–)
F.adUnits[t].code === e && F.adUnits.splice(t, 1);
});
}),
(F.requestBids = (function() {
const e = (0, w.A_)(
‘async’,
function() {
let {
bidsBackHandler: e,
timeout: t,
adUnits: n,
adUnitCodes: i,
labels: o,
auctionId: s,
ttlBuffer: a,
ortb2: d,
metrics: c,
defer: l
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
$.Ic(z);
const u = t || v.$W.getConfig(‘bidderTimeout’);
(0, r.fH)(‘Invoking tlpbjs.requestBids’, arguments),
null == i || Array.isArray(i) || (i = [i]),
i && i.length
? (n = n.filter(e => i.includes(e.code)))
: (i = n && n.map(e => e.code)),
(i = i.filter(r.hj));
const f = {
global: (0, r.D9)(
{},
v.$W.getAnyConfig(‘ortb2’) || {},
d || {}
),
bidder: Object.fromEntries(
Object.entries(v.$W.getBidderConfig())
.map(e => {
let [t, n] = e;
return [t, (0, r.Go)(n.ortb2)];
})
.filter(e => {
let [t, n] = e;
return null != n;
})
)
};
return (0, x.w)(C.U9.resolve(f.global)).then(
t => (
(f.global = t),
se({
bidsBackHandler: e,
timeout: u,
adUnits: n,
adUnitCodes: i,
labels: o,
auctionId: s,
ttlBuffer: a,
ortb2Fragments: f,
metrics: c,
defer: l
})
)
);
},
‘requestBids’
);
return (0, w.Y6)(
e,
M(
() => !v.$W.getConfig(‘allowPrerendering’),
function() {
let t =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
n = t.adUnits || F.adUnits;
return (
(t.adUnits = (0, r.cy)(n) ? n.slice() : [n]),
(t.metrics = (0, j.K7)()),
t.metrics.checkpoint(‘requestBids’),
(t.defer = (0, C.v6)({
promiseFactory: e => new Promise(e)
})),
e.call(this, t),
t.defer.promise
);
}
)
);
})());
const se = (0, w.A_)(
‘async’,
function() {
let {
bidsBackHandler: e,
timeout: t,
adUnits: n,
ttlBuffer: i,
adUnitCodes: o,
labels: a,
auctionId: d,
ortb2Fragments: c,
metrics: l,
defer: u
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
const f = (0, _.pX)(v.$W.getConfig(‘s2sConfig’) || []);
function g(t, n, i) {
if (‘function’ == typeof e)
try {
e(t, n, i);
} catch (e) {
(0, r.vV)(‘Error executing bidsBackHandler’, null, e);
}
u.resolve({ bids: t, timedOut: n, auctionId: i });
}
!(function(e) {
e.forEach(e => (0, W.V0)(e));
})(n),
(n = (0, j.BO)(l).measureTime(‘requestBids.validate’, () =>
re(n)
));
const p = {};
if (
(n.forEach(e => {
const t = Object.keys(e.mediaTypes || { banner: ‘banner’ }),
n = e.bids.map(e => e.bidder),
o = _.Ay.bidderRegistry,
s = n.filter(e => !f.has(e));
e.adUnitId = (0, r.lk)();
const a = e.ortb2Imp?.ext?.tid;
a &&
(p.hasOwnProperty(e.code)
? (0, r.JE)(
`Multiple distinct ortb2Imp.ext.tid were provided for twin ad units ‘${e.code}’`
)
: (p[e.code] = a)),
null == i ||
e.hasOwnProperty(‘ttlBuffer’) ||
(e.ttlBuffer = i),
s.forEach(n => {
const i = o[n],
s = i && i.getSpec && i.getSpec(),
a = (s && s.supportedMediaTypes) || [‘banner’];
t.some(e => a.includes(e)) ||
((0, r.JE)((0, r.bz)(e, n)),
(e.bids = e.bids.filter(e => e.bidder !== n)));
});
}),
n && 0 !== n.length)
) {
n.forEach(e => {
const t = e.ortb2Imp?.ext?.tid || p[e.code] || (0, r.lk)();
p.hasOwnProperty(e.code) || (p[e.code] = t),
(e.transactionId = t),
(0, s.J)(e, ‘ortb2Imp.ext.tid’, t);
});
const e = E.n.createAuction({
adUnits: n,
adUnitCodes: o,
callback: g,
cbTimeout: t,
labels: a,
auctionId: d,
ortb2Fragments: c,
metrics: l
});
let i = n.length;
i > 15 &&
(0, r.fH)(
`Current auction ${e.getAuctionId()} contains ${i} adUnits.`,
n
),
o.forEach(t =>
A.iS.setLatestAuctionForAdUnit(t, e.getAuctionId())
),
e.callBids();
} else
(0, r.OG)(‘No adUnits configured. No bids requested.’), g();
},
‘startAuction’
);
F.requestBids.before(function(e, t) {
function n(e) {
for (var t; (t = e.shift()); ) t();
}
n(D.s0), n(ae), e.call(this, t);
}, 49),
(F.addAdUnits = function(e) {
(0, r.fH)(‘Invoking tlpbjs.addAdUnits’, arguments),
F.adUnits.push.apply(F.adUnits, (0, r.cy)(e) ? e : [e]),
$.Ic(L);
}),
(F.onEvent = function(e, t, n) {
(0, r.fH)(‘Invoking tlpbjs.onEvent’, arguments),
(0, r.fp)(t)
? !n || Q[e].call(null, n)
? $.on(e, t, n)
: (0, r.vV)(
‘The id provided is not valid for event «‘ +
e +
‘» and no handler was set.’
)
: (0, r.vV)(
‘The event handler provided is not a function and was not set on event «‘ +
e +
‘».’
);
}),
(F.offEvent = function(e, t, n) {
(0, r.fH)(‘Invoking tlpbjs.offEvent’, arguments),
(n && !Q[e].call(null, n)) || $.AU(e, t, n);
}),
(F.getEvents = function() {
return (0, r.fH)(‘Invoking tlpbjs.getEvents’), $.kQ();
}),
(F.registerBidAdapter = function(e, t, n) {
(0, r.fH)(‘Invoking tlpbjs.registerBidAdapter’, arguments);
try {
const i = n ? (0, G.xb)(n) : e();
_.Ay.registerBidAdapter(i, t);
} catch (e) {
(0, r.vV)(‘Error registering bidder adapter : ‘ + e.message);
}
}),
(F.registerAnalyticsAdapter = function(e) {
(0, r.fH)(
‘Invoking tlpbjs.registerAnalyticsAdapter’,
arguments
);
try {
_.Ay.registerAnalyticsAdapter(e);
} catch (e) {
(0, r.vV)(
‘Error registering analytics adapter : ‘ + e.message
);
}
}),
(F.createBid = function(e) {
return (
(0, r.fH)(‘Invoking tlpbjs.createBid’, arguments), (0, I.O)(e)
);
});
const ae = [],
de = (0, w.A_)(
‘async’,
function(e) {
e && !(0, r.Im)(e)
? ((0, r.fH)(‘Invoking tlpbjs.enableAnalytics for: ‘, e),
_.Ay.enableAnalytics(e))
: (0, r.vV)(
‘tlpbjs.enableAnalytics should be called with option {}’
);
},
‘enableAnalyticsCb’
);
function ce(e) {
if (‘function’ == typeof e)
try {
e.call();
} catch (e) {
(0, r.vV)(‘Error processing command :’, e.message, e.stack);
}
else
(0, r.vV)(
‘Commands written into tlpbjs.cmd.push must be wrapped in a function’
);
}
function le(e) {
e.forEach(function(e) {
if (void 0 === e.called)
try {
e.call(), (e.called = !0);
} catch (e) {
(0, r.vV)(‘Error processing command :’, ‘prebid.js’, e);
}
});
}
(F.enableAnalytics = function(e) {
ae.push(de.bind(this, e));
}),
(F.aliasBidder = function(e, t, n) {
(0, r.fH)(‘Invoking tlpbjs.aliasBidder’, arguments),
e && t
? _.Ay.aliasBidAdapter(e, t, n)
: (0, r.vV)(
‘bidderCode and alias must be passed as arguments’,
‘tlpbjs.aliasBidder’
);
}),
(F.aliasRegistry = _.Ay.aliasRegistry),
v.$W.getConfig(‘aliasRegistry’, e => {
‘private’ === e.aliasRegistry && delete F.aliasRegistry;
}),
(F.getAllWinningBids = function() {
return E.n.getAllWinningBids();
}),
(F.getAllPrebidWinningBids = function() {
return (
(0, r.JE)(
‘getAllPrebidWinningBids may be removed or renamed in a future version. This function returns bids that have won in prebid and have had targeting set but have not (yet?) won in the ad server. It excludes bids that have been rendered.’
),
E.n
.getBidsReceived()
.filter(e => e.status === d.tl.BID_TARGETING_SET)
);
}),
(F.getHighestCpmBids = function(e) {
return A.iS.getWinningBids(e);
}),
(F.clearAllAuctions = function() {
E.n.clearAllAuctions();
}),
(F.markWinningBidAsUsed = function(e) {
let t,
{
adId: n,
adUnitCode: i,
analytics: o = !1,
events: s = !1
} = e;
i && null == n
? (t = A.iS.getWinningBids(i))
: n
? (t = E.n.getBidsReceived().filter(e => e.adId === n))
: (0, r.JE)(
‘Improper use of markWinningBidAsUsed. It needs an adUnitCode or an adId to function.’
),
t.length > 0 &&
(o || s ? (0, c.n6)(t[0]) : E.n.addWinningBid(t[0]),
(0, c.qn)(t[0]));
}),
(F.getConfig = v.$W.getAnyConfig),
(F.readConfig = v.$W.readAnyConfig),
(F.mergeConfig = v.$W.mergeConfig),
(F.mergeBidderConfig = v.$W.mergeBidderConfig),
(F.setConfig = v.$W.setConfig),
(F.setBidderConfig = v.$W.setBidderConfig),
F.que.push(() => m()),
(F.processQueue = M(
() => (0, i.m)().delayPrerendering,
function() {
(F.que.push = F.cmd.push = ce),
(0, c.XO)(),
w.A_.ready(),
le(F.que),
le(F.cmd);
}
)),
(F.triggerBilling = e => {
let { adId: t, adUnitCode: n } = e;
E.n
.getAllWinningBids()
.filter(
e => e.adId === t || (null == t && e.adUnitCode === n)
)
.forEach(e => {
_.Ay.triggerBilling(e), (0, c.vB)(e);
});
});
},
7873: (e, t, n) => {
n.d(t, { E: () => s, m: () => o });
const i = window,
r = (i.tlpbjs = i.tlpbjs || {});
function o() {
return r;
}
function s(e) {
r.installedModules.push(e);
}
(r.cmd = r.cmd || []),
(r.que = r.que || []),
i === window &&
((i._pbjsGlobals = i._pbjsGlobals || []),
i._pbjsGlobals.push(‘tlpbjs’));
},
7934: (e, t, n) => {
n.d(t, { EN: () => d, gR: () => s });
var i = n(3272),
r = n(1069);
function o(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: window;
if (!e) return e;
if (/w+:///.exec(e)) return e;
let n = t.location.protocol;
try {
n = t.top.location.protocol;
} catch (e) {}
return /^///.exec(e) ? n + e : `${n}//${e}`;
}
function s(e) {
let { noLeadingWww: t = !1, noPort: n = !1 } =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
try {
e = new URL(o(e));
} catch (e) {
return;
}
return (
(e = n ? e.hostname : e.host),
t && e.startsWith(‘www.’) && (e = e.substring(4)),
e
);
}
function a(e) {
try {
const t = e.querySelector(«link[rel=’canonical’]»);
if (null !== t) return t.href;
} catch (e) {}
return null;
}
const d = (function(e) {
let t,
n,
i,
r =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: window;
return r.top !== r
? e
: function() {
const o = a(r.document),
s = r.location.href;
return (
(t === o && s === n) || ((t = o), (n = s), (i = e())), i
);
};
})(
((c = window),
function() {
const e = [],
t = (function(e) {
try {
if (!e.location.ancestorOrigins) return;
return e.location.ancestorOrigins;
} catch (e) {}
})(c),
n = i.$W.getConfig(‘maxNestedIframes’);
let d,
l,
u,
f,
g = !1,
p = 0,
h = !1,
m = !1,
b = !1;
do {
const n = d,
i = m;
let o,
s = !1,
f = null;
(m = !1), (d = d ? d.parent : c);
try {
o = d.location.href || null;
} catch (e) {
s = !0;
}
if (s)
if (i) {
const e = n.context;
try {
(f = e.sourceUrl),
(l = f),
(b = !0),
(h = !0),
d === c.top && (g = !0),
e.canonicalUrl && (u = e.canonicalUrl);
} catch (e) {}
} else {
(0, r.JE)(
‘Trying to access cross domain iframe. Continuing without referrer and location’
);
try {
const e = n.document.referrer;
e && ((f = e), d === c.top && (g = !0));
} catch (e) {}
!f &&
t &&
t[p – 1] &&
((f = t[p – 1]), d === c.top && (b = !0)),
f && !h && (l = f);
}
else {
if (o && ((f = o), (l = f), (h = !1), d === c.top)) {
g = !0;
const e = a(d.document);
e && (u = e);
}
d.context && d.context.sourceUrl && (m = !0);
}
e.push(f), p++;
} while (d !== c.top && p < n);
e.reverse();
try {
f = c.top.document.referrer;
} catch (e) {}
const y = g || b ? l : null,
v = i.$W.getConfig(‘pageUrl’) || u || null;
let E = i.$W.getConfig(‘pageUrl’) || y || o(v, c);
return (
y &&
y.indexOf(‘?’) > -1 &&
-1 === E.indexOf(‘?’) &&
(E = `${E}${y.substring(y.indexOf(‘?’))}`),
{
reachedTop: g,
isAmp: h,
numIframes: p – 1,
stack: e,
topmostLocation: l || null,
location: y,
canonicalUrl: v,
page: E,
domain: s(E) || null,
ref: f || null,
legacy: {
reachedTop: g,
isAmp: h,
numIframes: p – 1,
stack: e,
referer: l || null,
canonicalUrl: v
}
}
);
})
);
var c;
},
2938: (e, t, n) => {
n.d(t, {
CK: () => b,
X0: () => g,
qk: () => f,
s0: () => p,
vM: () => m
});
var i = n(1069),
r = n(2693),
o = n(5569),
s = n(5139),
a = n(2604),
d = n(6811),
c = n(3272),
l = n(1445),
u = n(3441);
const f = ‘html5’,
g = ‘cookie’;
let p = [];
function h() {
let { moduleName: e, moduleType: t } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
{ isAllowed: n = s.io } =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
function r(i, r) {
let s = e;
const f = c.$W.getCurrentBidder();
f && t === o.tW && l.Ay.aliasRegistry[f] === e && (s = f);
return i({ valid: n(d.Ue, (0, u.s)(t, s, { [a.Zw]: r })) });
}
function h(e, t, n) {
if (!n || ‘function’ != typeof n) return r(e, t);
p.push(function() {
let i = r(e, t);
n(i);
});
}
function m(e) {
const t = e.charAt(0).toUpperCase() + e.substring(1),
n = () => window[e],
r = function(t) {
return h(
function(t) {
if (t && t.valid)
try {
return !!n();
} catch (t) {
(0, i.vV)(`${e} api disabled`);
}
return !1;
},
f,
t
);
};
return {
[`has${t}`]: r,
[`${e}IsEnabled`]: e =>
h(
function(e) {
if (e && e.valid)
try {
return (
n().setItem(‘prebid.cookieTest’, ‘1’),
‘1’ === n().getItem(‘prebid.cookieTest’)
);
} catch (e) {
} finally {
try {
n().removeItem(‘prebid.cookieTest’);
} catch (e) {}
}
return !1;
},
f,
e
),
[`setDataIn${t}`]: (e, t, i) =>
h(
function(i) {
i && i.valid && r() && n().setItem(e, t);
},
f,
i
),
[`getDataFrom${t}`]: (e, t) =>
h(
function(t) {
return t && t.valid && r() ? n().getItem(e) : null;
},
f,
t
),
[`removeDataFrom${t}`]: (e, t) =>
h(
function(t) {
t && t.valid && r() && n().removeItem(e);
},
f,
t
)
};
}
return {
setCookie: function(e, t, n, i, r, o) {
return h(
function(o) {
if (o && o.valid) {
const o =
r && » !== r
? ` ;domain=${encodeURIComponent(r)}`
: »,
s = n && » !== n ? ` ;expires=${n}` : »,
a =
null != i && ‘none’ == i.toLowerCase()
? ‘; Secure’
: »;
document.cookie = `${e}=${encodeURIComponent(
t
)}${s}; path=/${o}${i ? `; SameSite=${i}` : »}${a}`;
}
},
g,
o
);
},
getCookie: function(e, t) {
return h(
function(t) {
if (t && t.valid) {
let t = window.document.cookie.match(
‘(^|;)\s*’ + e + ‘\s*=\s*([^;]*)\s*(;|$)’
);
return t ? decodeURIComponent(t[2]) : null;
}
return null;
},
g,
t
);
},
cookiesAreEnabled: function(e) {
return h(
function(e) {
return !(!e || !e.valid) && (0, i.GE)();
},
g,
e
);
},
…m(‘localStorage’),
…m(‘sessionStorage’),
findSimilarCookies: function(e, t) {
return h(
function(t) {
if (t && t.valid) {
const t = [];
if ((0, i.N9)()) {
const n = document.cookie.split(‘;’);
for (; n.length; ) {
const i = n.pop();
let r = i.indexOf(‘=’);
r = r < 0 ? i.length : r;
decodeURIComponent(
i.slice(0, r).replace(/^s+/, »)
).indexOf(e) >= 0 &&
t.push(decodeURIComponent(i.slice(r + 1)));
}
}
return t;
}
},
g,
t
);
}
};
}
function m() {
let { moduleType: e, moduleName: t, bidderCode: n } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
function i() {
throw new Error(
‘Invalid invocation for getStorageManager: must set either bidderCode, or moduleType + moduleName’
);
}
return (
n
? (((e && e !== o.tW) || t) && i(), (e = o.tW), (t = n))
: (t && e) || i(),
h({ moduleType: e, moduleName: t })
);
}
function b(e) {
return h({ moduleName: e, moduleType: o.tp });
}
(0, s.qB)(d.Ue, ‘deviceAccess config’, function() {
if (!(0, i.N9)()) return { allow: !1 };
}),
(0, s.qB)(d.Ue, ‘bidderSettings.*.storageAllowed’, function(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: r.u;
if (e[a.Dk] !== o.tW) return;
let n = t.get(e[a.q7], ‘storageAllowed’);
if (n && !0 !== n) {
const t = e[a.Zw];
n = Array.isArray(n) ? n.some(e => e === t) : n === t;
} else n = !!n;
return n ? void 0 : { allow: n };
});
},
7779: (e, t, n) => {
n.d(t, { Yl: () => w, iS: () => B, uW: () => A });
var i = n(6881),
r = n(7863),
o = n(2693),
s = n(3272),
a = n(8969),
d = n(5023),
c = n(9214),
l = n(1371),
u = n(2449),
f = n(1069),
g = n(433),
p = n(2713),
h = [];
const m = 20,
b = ‘targetingControls.allowTargetingKeys’,
y = ‘targetingControls.addTargetingKeys’,
v = `Only one of «${b}» or «${y}» can be set`,
E = Object.keys(a.xS).map(e => a.xS[e]);
let A = {
isActualBid: e => e.getStatusCode() === a.XQ.GOOD,
isBidNotExpired: e =>
e.responseTimestamp + 1e3 * (0, r.cT)(e) > (0, f.vE)(),
isUnusedBid: e =>
e &&
((e.status && ![a.tl.RENDERED].includes(e.status)) || !e.status)
};
function w(e) {
return !Object.values(A).some(t => !t(e));
}
const I = (0, c.A_)(‘sync’, function(e, t) {
let n =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: 0,
i =
arguments.length > 3 &&
void 0 !== arguments[3] &&
arguments[3],
r =
arguments.length > 4 && void 0 !== arguments[4]
? arguments[4]
: f.Q0;
if (!i) {
const i = [],
o = s.$W.getConfig(‘sendBidsControl.dealPrioritization’);
let a = (0, f.$z)(e, ‘adUnitCode’);
return (
Object.keys(a).forEach(e => {
let s = [],
d = (0, f.$z)(a[e], ‘bidderCode’);
Object.keys(d).forEach(e => {
s.push(d[e].reduce(t));
}),
n
? ((s = o
? s.sort(T(!0))
: s.sort((e, t) => t.cpm – e.cpm)),
i.push(…s.slice(0, n)))
: ((s = s.sort(r)), i.push(…s));
}),
i
);
}
return e;
});
function T() {
let e =
arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
return function(t, n) {
return void 0 !== t.adserverTargeting.hb_deal &&
void 0 === n.adserverTargeting.hb_deal
? -1
: void 0 === t.adserverTargeting.hb_deal &&
void 0 !== n.adserverTargeting.hb_deal
? 1
: e
? n.cpm – t.cpm
: n.adserverTargeting.hb_pb – t.adserverTargeting.hb_pb;
};
}
function C(e, t) {
return (arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: () => window.googletag.pubads().getSlots())().reduce(
(e, n) => {
const i = (0, f.fp)(t) && t(n);
return (
Object.keys(e)
.filter((0, f.fp)(i) ? i : (0, f.iC)(n))
.forEach(t => e[t].push(n)),
e
);
},
Object.fromEntries(e.map(e => [e, []]))
);
}
const B = (function(e) {
let t = {},
n = {};
function i(e) {
let t =
arguments.length > 1 &&
void 0 !== arguments[1] &&
arguments[1],
n =
arguments.length > 2 &&
void 0 !== arguments[2] &&
arguments[2];
const i = E.concat(u.Nh),
r = s.$W.getConfig(
‘targetingControls.allowSendAllBidsTargetingKeys’
),
o = r ? r.map(e => a.xS[e]) : i;
return e.reduce((e, r) => {
if (t || (n && r.dealId)) {
const t = (function(e, t) {
return t.reduce(
(t, n) => (
e.adserverTargeting[n] &&
t.push({
[`${n}_${e.bidderCode}`.substring(0, 20)]: [
e.adserverTargeting[n]
]
}),
t
),
[]
);
})(
r,
i.filter(
e =>
void 0 !== r.adserverTargeting[e] &&
(n || -1 !== o.indexOf(e))
)
);
t && e.push({ [r.adUnitCode]: t });
}
return e;
}, []);
}
function r(t) {
return ‘string’ == typeof t
? [t]
: (0, f.cy)(t)
? t
: e.getAdUnitCodes() || [];
}
function A() {
let t =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: p.Bq,
i =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: void 0,
r = e.getBidsReceived().reduce((e, t) => {
const i = s.$W.getConfig(‘useBidCache’),
r = s.$W.getConfig(‘bidCacheFilterFunction’),
o = n[t.adUnitCode] === t.auctionId,
a = !(i && !o && ‘function’ == typeof r) || !!r(t);
return (
(i || o) &&
a &&
(0, g.A)(t, ‘video.context’) !== l.LM &&
w(t) &&
((t.latestTargetedAuctionId = n[t.adUnitCode]),
e.push(t)),
e
);
}, []);
return I(r, t, void 0, void 0, void 0, i);
}
function B(e, n) {
let i = t.getWinningBids(n, e),
r = O();
return (
(i = i.map(e => ({
[e.adUnitCode]: Object.keys(e.adserverTargeting)
.filter(
t =>
void 0 === e.sendStandardTargeting ||
e.sendStandardTargeting ||
-1 === r.indexOf(t)
)
.reduce((t, n) => {
const i = [e.adserverTargeting[n]],
r = { [n.substring(0, m)]: i };
if (n === a.xS.DEAL) {
const o = `${n}_${e.bidderCode}`.substring(0, m),
s = { [o]: i };
return […t, r, s];
}
return […t, r];
}, [])
}))),
i
);
}
function O() {
return e
.getStandardBidderAdServerTargeting()
.map(e => e.key)
.concat(E)
.filter(f.hj);
}
return (
(t.setLatestAuctionForAdUnit = function(e, t) {
n[e] = t;
}),
(t.resetPresetTargeting = function(e, t) {
if ((0, f.II)()) {
const n = r(e);
Object.values(C(n, t)).forEach(e => {
e.forEach(e => {
!(function(e) {
h.forEach(t => {
e.getTargeting(t) && e.clearTargeting(t);
});
})(e);
});
});
}
}),
(t.resetPresetTargetingAST = function(e) {
r(e).forEach(function(e) {
const t = window.apntag.getTag(e);
if (t && t.keywords) {
const n = Object.keys(t.keywords),
i = {};
n.forEach(e => {
h.includes(e.toLowerCase()) || (i[e] = t.keywords[e]);
}),
window.apntag.modifyTag(e, { keywords: i });
}
});
}),
(t.getAllTargeting = function(t, n, d) {
let c =
arguments.length > 3 && void 0 !== arguments[3]
? arguments[3]
: p.Vk,
l =
arguments.length > 4 && void 0 !== arguments[4]
? arguments[4]
: f.Q0;
d ||= A(c, l);
const g = r(t),
E = s.$W.getConfig(‘enableSendAllBids’),
w = s.$W.getConfig(‘sendBidsControl.bidLimit’),
C = (E && (n || w)) || 0,
{ customKeysByUnit: R, filteredBids: S } = (function(e, t) {
const n = [],
i = {},
r = s.$W.getConfig(
‘targetingControls.alwaysIncludeDeals’
);
return (
t.forEach(t => {
const s = e.includes(t.adUnitCode),
a =
!0 === o.u.get(t.bidderCode, ‘allowZeroCpmBids’)
? t.cpm >= 0
: t.cpm > 0,
d = r && t.dealId;
s &&
(d || a) &&
(n.push(t),
Object.keys(t.adserverTargeting)
.filter(
(function() {
let e = O();
e = e.concat(u.Nh);
return function(t) {
return -1 === e.indexOf(t);
};
})()
)
.forEach(e => {
const n = e.substring(0, m),
r = i[t.adUnitCode] || {},
o = [t.adserverTargeting[e]];
r[n]
? (r[n] = r[n].concat(o).filter(f.hj))
: (r[n] = o),
(i[t.adUnitCode] = r);
}));
}),
{ filteredBids: n, customKeysByUnit: i }
);
})(g, d);
let k = (function(t, n, r) {
const o =
!1 !==
s.$W.getConfig(
‘targetingControls.allBidsCustomTargeting’
),
d = B(t, r)
.concat(
(function(e) {
const t = s.$W.getConfig(
‘targetingControls.alwaysIncludeDeals’
);
return i(e, s.$W.getConfig(‘enableSendAllBids’), t);
})(t)
)
.concat(
(function(t) {
function n(e) {
return e?.[a.iD.ADSERVER_TARGETING];
}
function i(e) {
const t = n(e);
return Object.keys(t).map(function(e) {
return (
(0, f.O8)(t[e]) &&
(t[e] = t[e].split(‘,’).map(e => e.trim())),
(0, f.cy)(t[e]) || (t[e] = [t[e]]),
{ [e]: t[e] }
);
});
}
return e
.getAdUnits()
.filter(e => t.includes(e.code) && n(e))
.reduce((e, t) => {
const n = i(t);
return n && e.push({ [t.code]: n }), e;
}, []);
})(r)
);
o &&
d.push(
…(function(e, t) {
return e.reduce((e, n) => {
const i = Object.assign({}, n),
r = t[i.adUnitCode],
o = [];
return (
r &&
Object.keys(r).forEach(e => {
e && r[e] && o.push({ [e]: r[e] });
}),
e.push({ [i.adUnitCode]: o }),
e
);
}, []);
})(t, n)
);
return (
d.forEach(e => {
!(function(e) {
Object.keys(e).forEach(t => {
e[t].forEach(e => {
const t = Object.keys(e);
-1 === h.indexOf(t[0]) && (h = t.concat(h));
});
});
})(e);
}),
d
);
})(I(S, c, C, void 0, l), R, g);
const U = Object.keys(Object.assign({}, a.Zh, a.x5));
let D = s.$W.getConfig(b);
const _ = s.$W.getConfig(y);
if (null != _ && null != D) throw new Error(v);
(D = null != _ ? U.concat(_) : D || U),
Array.isArray(D) &&
D.length > 0 &&
(k = (function(e, t) {
const n = Object.assign({}, a.xS, a.x5),
i = Object.keys(n),
r = {};
(0, f.fH)(
`allowTargetingKeys – allowed keys [ ${t
.map(e => n[e])
.join(‘, ‘)} ]`
),
e.map(e => {
const o = Object.keys(e)[0],
s = e[o].filter(e => {
const o = Object.keys(e)[0],
s =
0 ===
i.filter(e => 0 === o.indexOf(n[e]))
.length ||
t.find(e => {
const t = n[e];
return 0 === o.indexOf(t);
});
return (r[o] = !s), s;
});
e[o] = s;
});
const o = Object.keys(r).filter(e => r[e]);
return (
(0, f.fH)(
`allowTargetingKeys – removed keys [ ${o.join(
‘, ‘
)} ]`
),
e.filter(e => e[Object.keys(e)[0]].length > 0)
);
})(k, D)),
(k = (function(e) {
let t = e.map(e => ({
[Object.keys(e)[0]]: e[Object.keys(e)[0]]
.map(e => ({
[Object.keys(e)[0]]: e[Object.keys(e)[0]].join(‘,’)
}))
.reduce((e, t) => Object.assign(t, e), {})
}));
return (
(t = t.reduce(function(e, t) {
var n = Object.keys(t)[0];
return (e[n] = Object.assign({}, e[n], t[n])), e;
}, {})),
t
);
})(k));
const $ = s.$W.getConfig(
‘targetingControls.auctionKeyMaxChars’
);
return (
$ &&
((0, f.fH)(
`Detected ‘targetingControls.auctionKeyMaxChars’ was active for this auction; set with a limit of ${$} characters. Running checks on auction keys…`
),
(k = (function(e, t) {
let n = (0, f.Go)(e),
i = Object.keys(n)
.map(e => ({
adUnitCode: e,
adserverTargeting: n[e]
}))
.sort(T());
return i.reduce(function(e, i, r, o) {
let s =
((a = i.adserverTargeting),
Object.keys(a).reduce(function(e, t) {
return (
e + `${t}%3d${encodeURIComponent(a[t])}%26`
);
}, »));
var a;
r + 1 === o.length && (s = s.slice(0, -3));
let d = i.adUnitCode,
c = s.length;
return (
c <= t
? ((t -= c),
(0, f.fH)(
`AdUnit ‘${d}’ auction keys comprised of ${c} characters. Deducted from running threshold; new limit is ${t}`,
n[d]
),
(e[d] = n[d]))
: (0, f.JE)(
`The following keys for adUnitCode ‘${d}’ exceeded the current limit of the ‘auctionKeyMaxChars’ setting.nThe key-set size was ${c}, the current allotted amount was ${t}.n`,
n[d]
),
r + 1 === o.length &&
0 === Object.keys(e).length &&
(0, f.vV)(
‘No auction targeting keys were permitted due to the setting in setConfig(targetingControls.auctionKeyMaxChars). Please review setup and consider adjusting.’
),
e
);
}, {});
})(k, $))),
g.forEach(e => {
k[e] || (k[e] = {});
}),
k
);
}),
s.$W.getConfig(‘targetingControls’, function(e) {
null != (0, g.A)(e, b) &&
null != (0, g.A)(e, y) &&
(0, f.vV)(v);
}),
(t.setTargetingForGPT = (0, c.A_)(
‘sync’,
function(n, i) {
let r = t.getAllTargeting(n),
o = Object.fromEntries(h.map(e => [e, null]));
Object.entries(C(Object.keys(r), i)).forEach(e => {
let [t, n] = e;
n.length > 1 &&
(0, f.JE)(
`Multiple slots found matching: ${t}. Targeting will be set on all matching slots, which can lead to duplicate impressions if more than one are requested from GAM. To resolve this, ensure the arguments to setTargetingForGPTAsync resolve to a single slot by explicitly matching the desired slotElementID.`
),
n.forEach(e => {
Object.keys(r[t]).forEach(e => {
let n = r[t][e];
‘string’ == typeof n &&
-1 !== n.indexOf(‘,’) &&
(n = n.split(‘,’)),
(r[t][e] = n);
}),
(0, f.OG)(
`Attempting to set targeting-map for slot: ${e.getSlotElementId()} with targeting-map:`,
r[t]
),
e.updateTargetingFromMap(
Object.assign({}, o, r[t])
);
});
}),
Object.keys(r).forEach(t => {
Object.keys(r[t]).forEach(n => {
‘hb_adid’ === n &&
e.setStatusForBids(r[t][n], a.tl.BID_TARGETING_SET);
});
}),
t.targetingDone(r),
d.Ic(a.qY.SET_TARGETING, r);
},
‘setTargetingForGPT’
)),
(t.targetingDone = (0, c.A_)(
‘sync’,
function(e) {
return e;
},
‘targetingDone’
)),
(t.getWinningBids = function(e, t) {
let n =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: p.Vk,
i =
arguments.length > 3 && void 0 !== arguments[3]
? arguments[3]
: f.Q0;
const s = t || A(n, i),
a = r(e);
return s
.filter(e => a.includes(e.adUnitCode))
.filter(e =>
!0 === o.u.get(e.bidderCode, ‘allowZeroCpmBids’)
? e.cpm >= 0
: e.cpm > 0
)
.map(e => e.adUnitCode)
.filter(f.hj)
.map(e =>
s
.filter(t => (t.adUnitCode === e ? t : null))
.reduce(p.Vk)
);
}),
(t.setTargetingForAst = function(e) {
let n = t.getAllTargeting(e);
try {
t.resetPresetTargetingAST(e);
} catch (e) {
(0, f.vV)(‘unable to reset targeting for AST’ + e);
}
Object.keys(n).forEach(e =>
Object.keys(n[e]).forEach(t => {
if (
((0, f.OG)(
`Attempting to set targeting for targetId: ${e} key: ${t} value: ${n[e][t]}`
),
(0, f.O8)(n[e][t]) || (0, f.cy)(n[e][t]))
) {
let i = {},
r = /pt[0-9]/;
t.search(r) < 0
? (i[t.toUpperCase()] = n[e][t])
: (i[t] = n[e][t]),
window.apntag.setKeywords(e, i, {
overrideKeyValue: !0
});
}
})
);
}),
(t.isApntagDefined = function() {
if (window.apntag && (0, f.fp)(window.apntag.setKeywords))
return !0;
}),
t
);
})(i.n);
},
8230: (e, t, n) => {
n.d(t, { qh: () => u, zt: () => g });
var i = n(1069),
r = n(3272),
o = n(2938),
s = n(5139),
a = n(6811),
d = n(2604),
c = n(5569),
l = n(3441);
const u = {
syncEnabled: !0,
filterSettings: { image: { bidders: ‘*’, filter: ‘include’ } },
syncsPerBidder: 5,
syncDelay: 3e3,
auctionDelay: 500
};
r.$W.setDefaults({ userSync: (0, i.Go)(u) });
const f = (0, o.CK)(‘usersync’);
const g = (function(e) {
let t = {},
n = { image: [], iframe: [] },
o = new Set(),
s = {},
u = { image: !0, iframe: !1 },
f = e.config;
function g() {
if (f.syncEnabled && e.browserSupportsCookies) {
try {
!(function() {
if (!u.iframe) return;
p(n.iframe, e => {
let [t, r] = e;
(0, i.OG)(`Invoking iframe user sync for bidder: ${t}`),
(0, i.SG)(r),
(function(e, t) {
e.image = e.image.filter(e => e[0] !== t);
})(n, t);
});
})(),
(function() {
if (!u.image) return;
p(n.image, e => {
let [t, n] = e;
(0, i.OG)(
`Invoking image pixel user sync for bidder: ${t}`
),
(0, i.z$)(n);
});
})();
} catch (e) {
return (0, i.vV)(‘Error firing user syncs’, e);
}
n = { image: [], iframe: [] };
}
}
function p(e, t) {
(0, i.k4)(e).forEach(t);
}
function h(e, t) {
let n = f.filterSettings;
if (
(function(e, t) {
if (e.all && e[t])
return (
(0, i.JE)(
`Detected presence of the «filterSettings.all» and «filterSettings.${t}» in userSync config. You cannot mix «all» with «iframe/image» configs; they are mutually exclusive.`
),
!1
);
let n = e.all ? e.all : e[t],
r = e.all ? ‘all’ : t;
if (!n) return !1;
let o = n.filter,
s = n.bidders;
if (o && ‘include’ !== o && ‘exclude’ !== o)
return (
(0, i.JE)(
`UserSync «filterSettings.${r}.filter» setting ‘${o}’ is not a valid option; use either ‘include’ or ‘exclude’.`
),
!1
);
if (
‘*’ !== s &&
!(
Array.isArray(s) &&
s.length > 0 &&
s.every(e => (0, i.O8)(e) && ‘*’ !== e)
)
)
return (
(0, i.JE)(
`Detected an invalid setup in userSync «filterSettings.${r}.bidders»; use either ‘*’ (to represent all bidders) or an array of bidders.`
),
!1
);
return !0;
})(n, e)
) {
u[e] = !0;
let i = n.all ? n.all : n[e],
r = ‘*’ === i.bidders ? [t] : i.bidders;
const o = {
include: (e, t) => !e.includes(t),
exclude: (e, t) => e.includes(t)
};
return o[i.filter || ‘include’](r, t);
}
return !u[e];
}
return (
r.$W.getConfig(‘userSync’, e => {
if (e.userSync) {
let t = e.userSync.filterSettings;
(0, i.Qd)(t) &&
(t.image ||
t.all ||
(e.userSync.filterSettings.image = {
bidders: ‘*’,
filter: ‘include’
}));
}
f = Object.assign(f, e.userSync);
}),
e.regRule(a.Ml, ‘userSync config’, e => {
if (!f.syncEnabled)
return { allow: !1, reason: ‘syncs are disabled’ };
if (e[d.Dk] === c.tW) {
const n = e[d.bt],
i = e[d.iK];
if (!t.canBidderRegisterSync(n, i))
return {
allow: !1,
reason: `${n} syncs are not enabled for ${i}`
};
}
}),
(t.registerSync = (t, r, u) =>
o.has(r)
? (0, i.OG)(
`already fired syncs for «${r}», ignoring registerSync call`
)
: f.syncEnabled && (0, i.cy)(n[t])
? r
? 0 !== f.syncsPerBidder &&
Number(s[r]) >= f.syncsPerBidder
? (0, i.JE)(`Number of user syncs exceeded for «${r}»`)
: void (
e.isAllowed(
a.Ml,
(0, l.s)(c.tW, r, { [d.bt]: t, [d.e3]: u })
) &&
(n[t].push([r, u]),
(s = (function(e, t) {
return e[t] ? (e[t] += 1) : (e[t] = 1), e;
})(s, r)))
)
: (0, i.JE)(‘Bidder is required for registering sync’)
: (0, i.JE)(`User sync type «${t}» not supported`)),
(t.bidderDone = o.add.bind(o)),
(t.syncUsers = function() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: 0;
if (e) return setTimeout(g, Number(e));
g();
}),
(t.triggerUserSyncs = () => {
f.enableOverride && t.syncUsers();
}),
(t.canBidderRegisterSync = (e, t) =>
!f.filterSettings || !h(e, t)),
t
);
})(
Object.defineProperties(
{
config: r.$W.getConfig(‘userSync’),
isAllowed: s.io,
regRule: s.qB
},
{
browserSupportsCookies: {
get: function() {
return !(0, i.Vt)() && f.cookiesAreEnabled();
}
}
}
)
);
},
1069: (e, t, n) => {
n.d(t, {
$D: () => U,
$z: () => Ue,
Bg: () => Ke,
Bj: () => Qe,
Bk: () => ge,
Bq: () => he,
CA: () => K,
D4: () => me,
D9: () => Le,
Dl: () => Ge,
El: () => Ye,
Et: () => ne,
Ez: () => Y,
Fq: () => We,
GE: () => Se,
Go: () => we,
II: () => ye,
Im: () => oe,
JE: () => F,
Lm: () => re,
N9: () => Re,
O8: () => ee,
OG: () => M,
Ot: () => T,
PB: () => Je,
Q0: () => Ee,
Qd: () => ie,
SB: () => $e,
SG: () => ue,
SH: () => De,
Tz: () => fe,
U6: () => ke,
Up: () => Pe,
Uu: () => Ve,
V: () => Oe,
Vt: () => Te,
YE: () => P,
ZA: () => be,
ZK: () => Ze,
_s: () => ae,
al: () => Ie,
bD: () => He,
bL: () => k,
bz: () => Ne,
c$: () => Fe,
cD: () => w,
cf: () => j,
cy: () => te,
dp: () => J,
fH: () => G,
fp: () => Z,
gM: () => Ce,
h0: () => L,
hj: () => pe,
hw: () => Q,
iC: () => qe,
k4: () => Ae,
kK: () => _,
l4: () => N,
l9: () => je,
lk: () => S,
mM: () => C,
mb: () => q,
nT: () => Xe,
ro: () => le,
s0: () => R,
t1: () => ve,
vE: () => Be,
vV: () => H,
wD: () => _e,
xQ: () => se,
y$: () => D,
z$: () => ce
});
var i = n(3272),
r = n(5751),
o = n(8969),
s = n(5555),
a = n(7873),
d = ‘String’,
c = ‘Function’,
l = ‘Number’,
u = ‘Object’,
f = ‘Boolean’,
g = Object.prototype.toString;
let p,
h,
m = Boolean(window.console),
b = Boolean(m && window.console.log),
y = Boolean(m && window.console.info),
v = Boolean(m && window.console.warn),
E = Boolean(m && window.console.error);
const A = (0, a.m)();
function w(e) {
p = e;
}
function I() {
null != p && p(…arguments);
}
const T = (function() {
let e;
return () => (
(!h || !e || Date.now() – e > 20) &&
(C.resetWinDimensions(), (e = Date.now())),
h
);
})();
const C = {
checkCookieSupport: Se,
createTrackPixelIframeHtml: function(e) {
let t =
!(arguments.length > 1 && void 0 !== arguments[1]) ||
arguments[1],
n =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: »;
if (!e) return »;
t && (e = encodeURI(e));
n && (n = `sandbox=»${n}»`);
return «;
},
getWindowSelf: N,
getWindowTop: q,
canAccessWindowTop: V,
getWindowLocation: W,
insertUserSyncIframe: ue,
insertElement: ae,
isFn: Z,
triggerPixel: ce,
logError: H,
logWarn: F,
logMessage: M,
logInfo: G,
parseQS: Me,
formatQS: function(e) {
return Object.keys(e)
.map(t =>
Array.isArray(e[t])
? e[t].map(e => `${t}[]=${e}`).join(‘&’)
: `${t}=${e[t]}`
)
.join(‘&’);
},
deepEqual: He,
resetWinDimensions: function() {
const e = V() ? C.getWindowTop() : C.getWindowSelf();
h = {
screen: {
width: e.screen?.width,
height: e.screen?.height,
availWidth: e.screen?.availWidth,
availHeight: e.screen?.availHeight,
colorDepth: e.screen?.colorDepth
},
innerHeight: e.innerHeight,
innerWidth: e.innerWidth,
outerWidth: e.outerWidth,
outerHeight: e.outerHeight,
visualViewport: {
height: e.visualViewport?.height,
width: e.visualViewport?.width
},
document: {
documentElement: {
clientWidth: e.document?.documentElement?.clientWidth,
clientHeight: e.document?.documentElement?.clientHeight,
scrollTop: e.document?.documentElement?.scrollTop,
scrollLeft: e.document?.documentElement?.scrollLeft
},
body: {
scrollTop: document.body?.scrollTop,
scrollLeft: document.body?.scrollLeft,
clientWidth: document.body?.clientWidth,
clientHeight: document.body?.clientHeight
}
}
};
}
};
var B,
O =
((B = 0),
function() {
return ++B;
});
function R() {
return (
O() +
Math.random()
.toString(16)
.substr(2)
);
}
function S(e) {
return e
? (
e ^
((window && window.crypto && window.crypto.getRandomValues
? crypto.getRandomValues(new Uint8Array(1))[0] % 16
: 16 * Math.random()) >>
(e / 4))
).toString(16)
: ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, S);
}
function k(e) {
let t = »;
for (var n in e)
e.hasOwnProperty(n) &&
(t += n + ‘=’ + encodeURIComponent(e[n]) + ‘&’);
return (t = t.replace(/&$/, »)), t;
}
function U(e) {
return e && Object.getOwnPropertyNames(e).length > 0
? Object.keys(e)
.map(t => `${t}=${encodeURIComponent(e[t])}`)
.join(‘&’)
: »;
}
function D(e) {
return ‘string’ == typeof e
? e
.split(/s*,s*/)
.map(e => e.match(/^(d+)x(d+)$/i))
.filter(e => e)
.map(e => {
let [t, n, i] = e;
return [parseInt(n, 10), parseInt(i, 10)];
})
: Array.isArray(e)
? x(e)
? [e]
: e.filter(x)
: [];
}
function _(e) {
return D(e).map($);
}
function $(e) {
return e[0] + ‘x’ + e[1];
}
function j(e) {
return { w: e[0], h: e[1] };
}
function x(e) {
return te(e) && 2 === e.length && !isNaN(e[0]) && !isNaN(e[1]);
}
function q() {
return window.top;
}
function N() {
return window.self;
}
function W() {
return window.location;
}
function P() {
return document;
}
function V() {
try {
if (C.getWindowTop().location.href) return !0;
} catch (e) {
return !1;
}
}
function M() {
J() && b && console.log.apply(console, z(arguments, ‘MESSAGE:’));
}
function G() {
J() && y && console.info.apply(console, z(arguments, ‘INFO:’));
}
function F() {
J() && v && console.warn.apply(console, z(arguments, ‘WARNING:’)),
I(o.qY.AUCTION_DEBUG, { type: ‘WARNING’, arguments });
}
function H() {
J() && E && console.error.apply(console, z(arguments, ‘ERROR:’)),
I(o.qY.AUCTION_DEBUG, { type: ‘ERROR’, arguments });
}
function L(e) {
function t(t) {
return function() {
for (
var n = arguments.length, i = new Array(n), r = 0;
r < n;
r++
)
i[r] = arguments[r];
t(e, …i);
};
}
return {
logError: t(H),
logWarn: t(F),
logMessage: t(M),
logInfo: t(G)
};
}
function z(e, t) {
e = [].slice.call(e);
let n = i.$W.getCurrentBidder();
return (
t && e.unshift(t),
n && e.unshift(r(‘#aaa’)),
e.unshift(r(‘#3b88c3’)),
e.unshift(‘%cPrebid’ + (n ? `%c${n}` : »)),
e
);
function r(e) {
return `display: inline-block; color: #fff; background: ${e}; padding: 1px 4px; border-radius: 3px;`;
}
}
function J() {
return !!i.$W.getConfig(‘debug’);
}
const Q = (() => {
const e = {
border: ‘0px’,
hspace: ‘0’,
vspace: ‘0’,
marginWidth: ‘0’,
marginHeight: ‘0’,
scrolling: ‘no’,
frameBorder: ‘0’,
allowtransparency: ‘true’
};
return function(t, n) {
let i =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: {};
const r = t.createElement(‘iframe’);
return (
Object.assign(r, Object.assign({}, e, n)),
Object.assign(r.style, i),
r
);
};
})();
function K() {
return Q(
document,
{ id: R(), width: 0, height: 0, src: ‘about:blank’ },
{ display: ‘none’, height: ‘0px’, width: ‘0px’, border: ‘0px’ }
);
}
function Y(e) {
return Me(W().search)[e] || »;
}
function X(e, t) {
return g.call(e) === ‘[object ‘ + t + ‘]’;
}
function Z(e) {
return X(e, c);
}
function ee(e) {
return X(e, d);
}
const te = Array.isArray.bind(Array);
function ne(e) {
return X(e, l);
}
function ie(e) {
return X(e, u);
}
function re(e) {
return X(e, f);
}
function oe(e) {
return (
!e ||
(te(e) || ee(e) ? !(e.length > 0) : Object.keys(e).length <= 0)
);
}
function se(e) {
return ee(e) && (!e || 0 === e.length);
}
function ae(e, t, n, i) {
let r;
(t = t || document),
(r = n
? t.getElementsByTagName(n)
: t.getElementsByTagName(‘head’));
try {
if (
((r = r.length ? r : t.getElementsByTagName(‘body’)),
r.length)
) {
r = r[0];
let t = i ? null : r.firstChild;
return r.insertBefore(e, t);
}
} catch (e) {}
}
function de(e, t) {
let n = null;
return new s.U9(i => {
const r = function() {
e.removeEventListener(‘load’, r),
e.removeEventListener(‘error’, r),
null != n && window.clearTimeout(n),
i();
};
e.addEventListener(‘load’, r),
e.addEventListener(‘error’, r),
null != t && (n = window.setTimeout(r, t));
});
}
function ce(e, t, n) {
const i = new Image();
t && C.isFn(t) && de(i, n).then(t), (i.src = e);
}
function le(e) {
if (!e) return;
const t = K();
var n;
C.insertElement(t, document, ‘body’),
(n = t.contentWindow.document).open(),
n.write(e),
n.close();
}
function ue(e, t, n) {
let i = C.createTrackPixelIframeHtml(
e,
!1,
‘allow-scripts allow-same-origin’
),
r = document.createElement(‘div’);
r.innerHTML = i;
let o = r.firstChild;
t && C.isFn(t) && de(o, n).then(t),
C.insertElement(o, document, ‘html’, !0);
}
function fe(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: encodeURI;
if (!e) return »;
let n =

‘;
return (n += ‘

‘), n;
}
function ge(e) {
return Array.from(e.matchAll(/$({[^}]+})/g))
.map(e => e[1])
.reduce(
(e, t) => e.replace(‘$’ + encodeURIComponent(t), ‘$’ + t),
encodeURI(e)
);
}
function pe(e, t, n) {
return n.indexOf(e) === t;
}
function he(e, t) {
return e.concat(t);
}
function me(e, t) {
if (e)
return t
.flatMap(e => e.bids)
.find(t => [‘bidId’, ‘adId’, ‘bid_id’].some(n => t[n] === e));
}
function be() {
return (arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: A.adUnits
)
.map(e => e.bids.map(e => e.bidder).reduce(he, []))
.reduce(he, [])
.filter(e => void 0 !== e)
.filter(pe);
}
function ye() {
if (
window.googletag &&
Z(window.googletag.pubads) &&
Z(window.googletag.pubads().getSlots)
)
return !0;
}
function ve() {
if (window.apntag && Z(window.apntag.getTag)) return !0;
}
const Ee = (e, t) => t.cpm – e.cpm;
function Ae(e) {
let t = e.length;
for (; t > 0; ) {
let n = Math.floor(Math.random() * t);
t–;
let i = e[t];
(e[t] = e[n]), (e[n] = i);
}
return e;
}
function we(e) {
return (0, r.Q)(e) || {};
}
function Ie() {
try {
return C.getWindowSelf() !== C.getWindowTop();
} catch (e) {
return !0;
}
}
function Te() {
return /^((?!chrome|android|crios|fxios).)*safari/i.test(
navigator.userAgent
);
}
function Ce(e, t) {
if (e)
return Object.entries(t).reduce((e, t) => {
let [n, i] = t;
return e.replace(
new RegExp(‘\$\{‘ + n + ‘\}’, ‘g’),
i || »
);
}, e);
}
function Be() {
return new Date().getTime();
}
function Oe() {
return (
(window.performance &&
window.performance.now &&
window.performance.now()) ||
0
);
}
function Re() {
return !1 !== i.$W.getConfig(‘deviceAccess’);
}
function Se() {
if (window.navigator.cookieEnabled || document.cookie.length)
return !0;
}
function ke(e, t) {
if (t < 1)
throw new Error(
`numRequiredCalls must be a positive number. Got ${t}`
);
let n = 0;
return function() {
n++, n === t && e.apply(this, arguments);
};
}
function Ue(e, t) {
return e.reduce(function(e, n) {
return (e[n[t]] = e[n[t]] || []).push(n), e;
}, {});
}
function De(e, t) {
return t
.filter(t => e[t])
.reduce((t, n) => Object.assign(t, { [n]: e[n] }), {});
}
function _e(e) {
const t = [‘banner’, ‘native’, ‘video’],
n = [‘instream’, ‘outstream’, ‘adpod’];
return (
!!Object.keys(e).every(e => t.includes(e)) &&
(!e.video || !e.video.context || n.includes(e.video.context))
);
}
function $e(e, t, n) {
return e
.filter(e => e.code === t)
.flatMap(e => e.bids)
.filter(e => e.bidder === n)
.map(e => e.params || {});
}
function je() {
return (
‘1’ === navigator.doNotTrack ||
‘1’ === window.doNotTrack ||
‘1’ === navigator.msDoNotTrack ||
‘yes’ === navigator.doNotTrack
);
}
const xe = (e, t) =>
e.getAdUnitPath() === t || e.getSlotElementId() === t;
function qe(e) {
return t => xe(e, t);
}
function Ne(e, t) {
const n = Object.keys(e.mediaTypes || { banner: ‘banner’ }).join(
‘, ‘
);
return `n ${e.code} is a ${n} ad unitn containing bidders that don’t support ${n}: ${t}.n This bidder won’t fetch demand.n `;
}
const We = Number.isInteger.bind(Number);
function Pe(e, t) {
return ‘object’ != typeof e
? {}
: t.reduce((n, i, r) => {
if (‘function’ == typeof i) return n;
let o = i,
s = i.match(/^(.+?)sass(.+?)$/i);
s && ((i = s[1]), (o = s[2]));
let a = e[i];
return (
‘function’ == typeof t[r + 1] && (a = t[r + 1](a, n)),
void 0 !== a && (n[o] = a),
n
);
}, {});
}
function Ve(e, t) {
return te(e) && (!t || e.length === t) && e.every(e => We(e));
}
function Me(e) {
return e
? e
.replace(/^?/, »)
.split(‘&’)
.reduce((e, t) => {
let [n, i] = t.split(‘=’);
return (
/[]$/.test(n)
? ((n = n.replace(‘[]’, »)),
(e[n] = e[n] || []),
e[n].push(i))
: (e[n] = i || »),
e
);
}, {})
: {};
}
function Ge(e, t) {
let n = document.createElement(‘a’);
t && ‘noDecodeWholeURL’ in t && t.noDecodeWholeURL
? (n.href = e)
: (n.href = decodeURIComponent(e));
let i =
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: i ? n.search : C.parseQS(n.search || »),
hash: (n.hash || »).replace(/^#/, »),
host: n.host || window.location.host
};
}
function Fe(e) {
return (
(e.protocol || ‘http’) +
‘://’ +
(e.host || e.hostname + (e.port ? `:${e.port}` : »)) +
(e.pathname || ») +
(e.search ? `?${C.formatQS(e.search || »)}` : ») +
(e.hash ? `#${e.hash}` : »)
);
}
function He(e, t) {
let { checkTypes: n = !1 } =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: {};
if (e === t) return !0;
if (
‘object’ != typeof e ||
null === e ||
‘object’ != typeof t ||
null === t
)
return !1;
const i = Array.isArray(e),
r = Array.isArray(t);
if (i && r) {
if (e.length !== t.length) return !1;
for (let i = 0; i < e.length; i++)
if (!He(e[i], t[i], { checkTypes: n })) return !1;
return !0;
}
if (i || r) return !1;
if (n && e.constructor !== t.constructor) return !1;
const o = Object.keys(e),
s = Object.keys(t);
if (o.length !== s.length) return !1;
for (const i of o) {
if (!Object.prototype.hasOwnProperty.call(t, i)) return !1;
if (!He(e[i], t[i], { checkTypes: n })) return !1;
}
return !0;
}
function Le(e) {
for (
let t = 0;
t < (arguments.length <= 1 ? 0 : arguments.length – 1);
t++
) {
const n =
t + 1 < 1 || arguments.length <= t + 1
? void 0
: arguments[t + 1];
ie(n) && ze(e, n);
}
return e;
}
function ze(e, t) {
if (!ie(e) || !ie(t)) return;
const n = Object.keys(t);
for (let i = 0; i < n.length; i++) {
const r = n[i];
if (‘__proto__’ === r || ‘constructor’ === r) continue;
const o = t[r];
ie(o)
? (e[r] || (e[r] = {}), ze(e[r], o))
: Array.isArray(o)
? Array.isArray(e[r])
? o.forEach(t => {
e[r].some(e => He(e, t)) || e[r].push(t);
})
: (e[r] = […o])
: (e[r] = o);
}
}
function Je(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: 0,
n = function(e, t) {
if (Z(Math.imul)) return Math.imul(e, t);
var n = (4194303 & e) * (t |= 0);
return (
4290772992 & e && (n += ((4290772992 & e) * t) | 0), 0 | n
);
},
i = 3735928559 ^ t,
r = 1103547991 ^ t;
for (let t, o = 0; o < e.length; o++)
(t = e.charCodeAt(o)),
(i = n(i ^ t, 2654435761)),
(r = n(r ^ t, 1597334677));
return (
(i =
n(i ^ (i >>> 16), 2246822507) ^
n(r ^ (r >>> 13), 3266489909)),
(r =
n(r ^ (r >>> 16), 2246822507) ^
n(i ^ (i >>> 13), 3266489909)),
(4294967296 * (2097151 & r) + (i >>> 0)).toString()
);
}
function Qe(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: function(e) {
return e;
};
const n = new Map(),
i = function() {
const i = t.apply(this, arguments);
return (
n.has(i) || n.set(i, e.apply(this, arguments)), n.get(i)
);
};
return (i.clear = n.clear.bind(n)), i;
}
function Ke(e, t) {
Object.entries(t).forEach(t => {
let [n, i] = t;
return e.setAttribute(n, i);
});
}
function Ye(e, t) {
let n =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: e => e,
i = 0,
r = e.length && e.length – 1;
const o = n(t);
for (; r – i > 1; ) {
const t = i + Math.round((r – i) / 2);
o > n(e[t]) ? (i = t) : (r = t);
}
for (; e.length > i && o > n(e[i]); ) i++;
return i;
}
const Xe = (function() {
let e;
return function() {
if (void 0 !== e) return e;
try {
void 0 === window.CompressionStream
? (e = !1)
: (new window.CompressionStream(‘gzip’), (e = !0));
} catch (t) {
e = !1;
}
return e;
};
})();
async function Ze(e) {
‘string’ != typeof e && (e = JSON.stringify(e));
const t = new TextEncoder().encode(e),
n = new Blob([t])
.stream()
.pipeThrough(new window.CompressionStream(‘gzip’)),
i = await new Response(n).blob(),
r = await i.arrayBuffer();
return new Uint8Array(r);
}
},
2621: (e, t, n) => {
function i(e) {
return (
!e?.gdprApplies || !0 === e?.vendorData?.purpose?.consents?.[1]
);
}
n.d(t, { C: () => i });
},
6894: (e, t, n) => {
n.d(t, { Ak: () => m, BO: () => g, K7: () => p });
var i = n(3272);
const r = ‘performanceMetrics’,
o =
window.performance && window.performance.now
? () => window.performance.now()
: () => Date.now(),
s = new WeakMap();
function a() {
let {
now: e = o,
mkNode: t = l,
mkTimer: n = c,
mkRenamer: i = e => e,
nodes: r = s
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
return function() {
return (function o(s) {
let a =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: e => ({
forEach(t) {
t(e);
}
});
a = i(a);
const d =
((c = ‘timestamps’),
function(e) {
return s.dfWalk({
visit(t, n) {
const i = n[c];
if (i.hasOwnProperty(e)) return i[e];
}
});
});
var c;
function l(e, t) {
const n = a(e);
s.dfWalk({
follow: (e, t) =>
t.propagate && (!e || !e.stopPropagation),
visit(e, i) {
n.forEach(n => {
null == e
? (i.metrics[n] = t)
: (i.groups.hasOwnProperty(n) || (i.groups[n] = []),
i.groups[n].push(t));
});
}
});
}
function u(t) {
return n(e, e => l(t, e));
}
function f() {
let e = {};
return (
s.dfWalk({
visit(t, n) {
e = Object.assign(
{},
!t || t.includeGroups ? n.groups : null,
n.metrics,
e
);
}
}),
e
);
}
const g = {
startTiming: u,
measureTime: function(e, t) {
return u(e).stopAfter(t)();
},
measureHookTime: function(e, t, n) {
const i = u(e);
return n(
(function(e) {
const t = i.stopBefore(e);
return (
(t.bail = e.bail && i.stopBefore(e.bail)),
(t.stopTiming = i),
(t.untimed = e),
t
);
})(t)
);
},
checkpoint: function(t) {
s.timestamps[t] = e();
},
timeSince: function(t, n) {
const i = d(t),
r = null != i ? e() – i : null;
return null != n && l(n, r), r;
},
timeBetween: function(e, t, n) {
const i = d(e),
r = d(t),
o = null != i && null != r ? r – i : null;
return null != n && l(n, o), o;
},
setMetric: l,
getMetrics: f,
fork: function() {
let {
propagate: e = !0,
stopPropagation: n = !1,
includeGroups: i = !1
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
return o(
t([
[
s,
{
propagate: e,
stopPropagation: n,
includeGroups: i
}
]
]),
a
);
},
join: function(e) {
let {
propagate: t = !0,
stopPropagation: n = !1,
includeGroups: i = !1
} =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
const o = r.get(e);
null != o &&
o.addParent(s, {
propagate: t,
stopPropagation: n,
includeGroups: i
});
},
newMetrics: function() {
return o(s.newSibling(), a);
},
renameWith: function(e) {
return o(s, e);
},
toJSON: () => f()
};
return r.set(g, s), g;
})(t([]));
};
}
function d(e, t, n) {
return function() {
t && t();
try {
return e.apply(this, arguments);
} finally {
n && n();
}
};
}
function c(e, t) {
const n = e();
let i = !1;
function r() {
i || (t(e() – n), (i = !0));
}
return (
(r.stopBefore = e => d(e, r)),
(r.stopAfter = e => d(e, null, r)),
r
);
}
function l(e) {
return {
metrics: {},
timestamps: {},
groups: {},
addParent(t, n) {
e.push([t, n]);
},
newSibling: () => l(e.slice()),
dfWalk() {
let t,
{
visit: n,
follow: i = () => !0,
visited: r = new Set(),
inEdge: o
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
if (!r.has(this)) {
if ((r.add(this), (t = n(o, this)), null != t)) return t;
for (const [s, a] of e)
if (
i(o, a) &&
((t = s.dfWalk({
visit: n,
follow: i,
visited: r,
inEdge: a
})),
null != t)
)
return t;
}
}
};
}
const u = (() => {
const e = function() {},
t = () => ({}),
n = { forEach: e },
i = () => null;
(i.stopBefore = e => e), (i.stopAfter = e => e);
const r = Object.defineProperties(
{ dfWalk: e, newSibling: () => r, addParent: e },
Object.fromEntries(
[‘metrics’, ‘timestamps’, ‘groups’].map(e => [e, { get: t }])
)
);
return a({
now: () => 0,
mkNode: () => r,
mkRenamer: () => () => n,
mkTimer: () => i,
nodes: { get: e, set: e }
})();
})();
let f = !0;
function g(e) {
return (f && e) || u;
}
i.$W.getConfig(r, e => {
f = !!e[r];
});
const p = (() => {
const e = a();
return function() {
return f ? e() : u;
};
})();
function h(e, t) {
return function(n, i) {
return function(r) {
for (
var o = arguments.length,
s = new Array(o > 1 ? o – 1 : 0),
a = 1;
a < o;
a++
)
s[a – 1] = arguments[a];
const d = this;
return g(t.apply(d, s)).measureHookTime(e + n, r, function(
e
) {
return i.call(d, e, …s);
});
};
};
}
const m = h(‘requestBids.’, e => e.metrics);
h(‘addBidResponse.’, (e, t) => t.metrics);
},
5555: (e, t, n) => {
n.d(t, { U9: () => s, cb: () => a, v6: () => d });
var i = n(43),
r = n(7873);
const o = (0, r.m)().setTimeout ?? i.w,
s = (0, r.m)().Promise ?? i.k;
function a() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: 0;
return new s(t => {
o(t, e);
});
}
function d() {
let e,
t,
{ promiseFactory: n = e => new s(e) } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
function i(e) {
return t => e(t);
}
return {
promise: n((n, i) => {
(e = n), (t = i);
}),
resolve: i(e),
reject: i(t)
};
}
},
2713: (e, t, n) => {
function i(e, t) {
return e === t ? 0 : e < t ? -1 : 1;
}
function r() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: e => e;
return (t, n) => i(e(t), e(n));
}
function o() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: i;
return (t, n) => -e(t, n) || 0;
}
function s() {
for (
var e = arguments.length, t = new Array(e), n = 0;
n < e;
n++
)
t[n] = arguments[n];
return function(e, n) {
for (const i of t) {
const t = i(e, n);
if (0 !== t) return t;
}
return 0;
};
}
function a() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: i;
return (t, n) => (e(n, t) < 0 ? n : t);
}
function d() {
return a(
o(
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: i
)
);
}
n.d(t, { Bp: () => a, Bq: () => f, NV: () => r, Vk: () => u });
const c = r(e => e.cpm),
l = r(e => e.responseTimestamp),
u = d(s(c, o(r(e => e.timeToRespond)))),
f = d(s(c, o(l)));
d(s(c, l));
},
6853: (e, t, n) => {
n.d(t, { H: () => l });
var i = n(5555),
r = n(1069);
let o = null,
s = 0,
a = [];
function d() {
document.hidden
? (o = Date.now())
: ((s += Date.now() – (o ?? 0)),
(o = null),
a.forEach(e => {
let { callback: t, startTime: n, setTimerId: i } = e;
return i(c(t, s – n)());
}),
(a = []));
}
function c(e, t) {
const n = s;
let i = setTimeout(() => {
s === n && null == o
? e()
: null != o
? a.push({
callback: e,
startTime: n,
setTimerId(e) {
i = e;
}
})
: (i = c(e, s – n)());
}, t);
return () => i;
}
function l() {
let {
startTime: e = r.vE,
ttl: t = () => null,
monotonic: n = !1,
slack: o = 5e3
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
const s = new Map(),
a = [],
d = [],
l = n
? e => d.push(e)
: e =>
d.splice(
(0, r.El)(d, e, e => e.expiry),
0,
e
);
let u, f;
function g() {
if ((f && clearTimeout(f), d.length > 0)) {
const e = (0, r.vE)();
(u = Math.max(e, d[0].expiry + o)),
(f = c(() => {
const e = (0, r.vE)();
let t = 0;
for (const n of d) {
if (n.expiry > e) break;
a.forEach(e => {
try {
e(n.item);
} catch (e) {
(0, r.vV)(e);
}
}),
s.delete(n.item),
t++;
}
d.splice(0, t), (f = null), g();
}, u – e));
} else f = null;
}
function p(n) {
const r = {},
s = h;
let a;
const [d, c] = Object.entries({ start: e, delta: t }).map(e => {
let t,
[d, c] = e;
return function() {
const e = (t = {});
i.U9.resolve(c(n)).then(n => {
e === t &&
((r[d] = n),
s === h &&
null != r.start &&
null != r.delta &&
((a = r.start + r.delta),
l(p),
(null == f || u > a + o) && g()));
});
};
}),
p = {
item: n,
refresh: c,
get expiry() {
return a;
}
};
return d(), c(), p;
}
let h = {};
return {
[Symbol.iterator]: () => s.keys(),
add(e) {
!s.has(e) && s.set(e, p(e));
},
clear() {
(d.length = 0), g(), s.clear(), (h = {});
},
toArray: () => Array.from(s.keys()),
refresh() {
(d.length = 0), g();
for (const e of s.values()) e.refresh();
},
onExpiry: e => (
a.push(e),
() => {
const t = a.indexOf(e);
t >= 0 && a.splice(t, 1);
}
)
};
}
document.addEventListener(‘visibilitychange’, d);
},
3895: (e, t, n) => {
n.d(t, {
H6: () => a,
V0: () => c,
Zy: () => d,
aP: () => l,
vk: () => u
});
var i = n(1069),
r = n(3272),
o = n(9214),
s = n(6881);
const a = ‘outstream’,
d = new Map([
[
‘mimes’,
e =>
Array.isArray(e) &&
e.length > 0 &&
e.every(e => ‘string’ == typeof e)
],
[‘minduration’, i.Fq],
[‘maxduration’, i.Fq],
[‘startdelay’, i.Fq],
[‘maxseq’, i.Fq],
[‘poddur’, i.Fq],
[‘protocols’, i.Uu],
[‘w’, i.Fq],
[‘h’, i.Fq],
[‘podid’, i.O8],
[‘podseq’, i.Fq],
[‘rqddurs’, i.Uu],
[‘placement’, i.Fq],
[‘plcmt’, i.Fq],
[‘linearity’, i.Fq],
[‘skip’, e => [1, 0].includes(e)],
[‘skipmin’, i.Fq],
[‘skipafter’, i.Fq],
[‘sequence’, i.Fq],
[‘slotinpod’, i.Fq],
[‘mincpmpersec’, i.Et],
[‘battr’, i.Uu],
[‘maxextended’, i.Fq],
[‘minbitrate’, i.Fq],
[‘maxbitrate’, i.Fq],
[‘boxingallowed’, i.Fq],
[‘playbackmethod’, i.Uu],
[‘playbackend’, i.Fq],
[‘delivery’, i.Uu],
[‘pos’, i.Fq],
[‘api’, i.Uu],
[‘companiontype’, i.Uu],
[‘poddedupe’, i.Uu]
]);
function c(e) {
const t = e?.mediaTypes?.video;
null != t &&
null == t.plcmt &&
(t.context === a || [2, 3, 4].includes(t.placement)
? (t.plcmt = 4)
: t.context !== a &&
[2, 6].includes(t.playbackmethod) &&
(t.plcmt = 2));
}
function l(e, t) {
const n = e?.mediaTypes?.video;
(0, i.Qd)(n)
? null != n &&
Object.entries(n).forEach(r => {
let [o, s] = r;
if (!d.has(o)) return;
d.get(o)(s) ||
(‘function’ == typeof t
? t(o, s, e)
: (delete n[o],
(0, i.JE)(
`Invalid prop in adUnit «${e.code}»: Invalid value for mediaTypes.video.${o} ORTB property. The property has been removed.`
)));
})
: (0, i.JE)(
‘validateOrtbVideoFields: videoParams must be an object.’
);
}
function u(e) {
let { index: t = s.n.index } =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
const n = t.getMediaTypes(e)?.video,
i = n && n?.context,
r = n && n?.useCacheKey,
o = t.getAdUnit(e);
return f(e, o, n, i, r);
}
const f = (0, o.A_)(
‘sync’,
function(e, t, n, o, s) {
if (n && (s || o !== a)) {
const { url: t, useLocal: n } = r.$W.getConfig(‘cache’) || {};
return t || n || !e.vastXml || e.vastUrl
? !(!e.vastUrl && !e.vastXml)
: ((0, i.vV)(
‘n This bid contains only vastXml and will not work when a prebid cache url is not specified.n Try enabling either prebid cache with tlpbjs.setConfig({ cache: {url: «…»} });n or local cache with tlpbjs.setConfig({ cache: { useLocal: true }});n ‘
),
!1);
}
return (
!(o === a && !s) ||
!!(e.renderer || (t && t.renderer) || n.renderer)
);
},
‘checkVideoBidSetup’
);
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[769],
{
8944: (t, e, n) => {
n.d(e, { M: () => i });
var c = n(1069);
function i() {
const t = (0, c.Ot)();
try {
const e =
t.innerHeight ||
t.document.documentElement.clientHeight ||
t.document.body.clientHeight ||
0;
return {
width:
t.innerWidth ||
t.document.documentElement.clientWidth ||
t.document.body.clientWidth ||
0,
height: e
};
} catch (t) {
return {};
}
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[139],
{
43: (t, e, n) => {
n.d(e, { k: () => c, w: () => r });
const s = 0,
l = 1;
class c {
#t;
#e;
constructor(t) {
if (‘function’ != typeof t)
throw new Error(‘resolver not a function’);
const e = [],
n = [];
let [c, r] = [s, l].map(
t =>
function(l) {
if (t === s && ‘function’ == typeof l?.then) l.then(c, r);
else if (!e.length)
for (e.push(t, l); n.length; ) n.shift()();
}
);
try {
t(c, r);
} catch (t) {
r(t);
}
(this.#t = e), (this.#e = n);
}
then(t, e) {
const n = this.#t;
return new this.constructor((l, c) => {
const r = () => {
let r = n[1],
[h, i] = n[0] === s ? [t, l] : [e, c];
if (‘function’ == typeof h) {
try {
r = h(r);
} catch (t) {
return void c(t);
}
i = l;
}
i(r);
};
n.length ? r() : this.#e.push(r);
});
}
catch(t) {
return this.then(null, t);
}
finally(t) {
let e;
return this.then(
n => ((e = n), t()),
n => ((e = this.constructor.reject(n)), t())
).then(() => e);
}
static #n(t, e, n) {
let s = t.length;
function l() {
e.apply(this, arguments), –s <= 0 && n && n();
}
0 === t.length && n
? n()
: t.forEach((t, e) =>
this.resolve(t).then(
t => l(!0, t, e),
t => l(!1, t, e)
)
);
}
static race(t) {
return new this((e, n) => {
this.#n(t, (t, s) => (t ? e(s) : n(s)));
});
}
static all(t) {
return new this((e, n) => {
let s = [];
this.#n(
t,
(t, e, l) => (t ? (s[l] = e) : n(e)),
() => e(s)
);
});
}
static allSettled(t) {
return new this(e => {
let n = [];
this.#n(
t,
(t, e, s) =>
(n[s] = t
? { status: ‘fulfilled’, value: e }
: { status: ‘rejected’, reason: e }),
() => e(n)
);
});
}
static resolve(t) {
return new this(e => e(t));
}
static reject(t) {
return new this((e, n) => n(t));
}
}
function r(t) {
let e =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: 0;
if (e > 0) return setTimeout(t, e);
t();
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[85],
{
4595: (e, t, n) => {
n.d(t, { G: () => s });
const s =
‘(()=>{«use strict»;window.render=function({ad:e,adUrl:t,width:n,height:i,instl:d},{mkFrame:r},s){if(!e&&!t)throw{reason:»noAd»,message:»Missing ad markup or URL»};{if(null==i){const e=s.document?.body;[e,e?.parentElement].filter((e=>null!=e?.style)).forEach((e=>e.style.height=»100%»))}const h=s.document,o={width:n??»100%»,height:i??»100%»};if(t&&!e?o.src=t:o.srcdoc=e,h.body.appendChild(r(h,o)),d&&s.frameElement){const e=s.frameElement.style;e.width=n?`${n}px`:»100vw»,e.height=i?`${i}px`:»100vh»}}}})();’;
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[109],
{
965: (t, e, n) => {
n.d(e, { c5: () => o });
var a = n(5555);
const l = 0,
c = 1,
r = 2;
function o(t) {
let {
apiName: e,
apiVersion: n,
apiArgs: o = [‘command’, ‘callback’, ‘parameter’, ‘version’],
callbackArgs: s = [‘returnValue’, ‘success’],
mode: i = l
} = t,
u =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: window;
const f = {},
d = `${e}Call`,
p = `${e}Return`;
function b(t) {
const e =
‘string’ == typeof t.data && t.data.includes(p)
? JSON.parse(t.data)
: t.data;
if (e?.[p]?.callId) {
const t = e[p];
f.hasOwnProperty(t.callId) &&
f[t.callId](…s.map(e => t[e]));
}
}
const [k, m] = (function() {
let t,
n = u,
a = !1;
for (; null != n; ) {
try {
if (‘function’ == typeof n[e]) {
(t = n), (a = !0);
break;
}
} catch (t) {}
try {
if (n.frames[`${e}Locator`]) {
t = n;
break;
}
} catch (t) {}
if (n === u.top) break;
n = n.parent;
}
return [t, a];
})();
if (!k) return;
function g(t) {
return (
(t = Object.assign({ version: n }, t)), o.map(e => [e, t[e]])
);
}
function h(t, e, n, a) {
const l = ‘function’ == typeof t;
return function(r, o) {
if ((a && a(), i !== c)) {
(null == o || o ? e : n)(l ? void 0 : r);
}
l && t.apply(this, arguments);
};
}
let v;
return (
m
? (v = function() {
let t =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
return new a.U9((n, a) => {
const o = k[e](
…g({
…t,
callback:
t.callback || i === r
? h(t.callback, n, a)
: void 0
}).map(t => {
let [e, n] = t;
return n;
})
);
(i === c || (null == t.callback && i === l)) && n(o);
});
})
: (u.addEventListener(‘message’, b, !1),
(v = function(t) {
let e =
arguments.length > 1 &&
void 0 !== arguments[1] &&
arguments[1];
return new a.U9((n, a) => {
const l = Math.random().toString(),
r = {
[d]: {
…Object.fromEntries(
g(t).filter(t => {
let [e] = t;
return ‘callback’ !== e;
})
),
callId: l
}
};
(f[l] = h(
t?.callback,
n,
a,
(e || null == t?.callback) &&
(() => {
delete f[l];
})
)),
k.postMessage(r, ‘*’),
i === c && n();
});
})),
Object.assign(v, {
isDirect: m,
close() {
!m && u.removeEventListener(‘message’, b);
}
})
);
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[10],
{
3806: (t, n, e) => {
e.d(n, { yq: () => c });
var o = e(6894),
a = e(1069),
s = e(7873),
i = e(5555),
r = e(2604);
function c() {
let t,
n,
e,
{
namespace: c,
displayName: l,
consentDataHandler: u,
parseConsentData: m,
getNullConsent: d,
cmpHandlers: f,
DEFAULT_CMP: g = ‘iab’,
DEFAULT_CONSENT_TIMEOUT: p = 1e4
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
function C(t) {
return `consentManagement.${c} ${t}`;
}
function D(t, n) {
return t(
Object.assign({ [`${c}Consent`]: u.getConsentData() }, n)
);
}
function h() {
return n().then(t => {
let { error: n } = t;
return { error: n, consentData: u.getConsentData() };
});
}
function T() {
null == t &&
((t = (function(t, n) {
const e = new WeakSet();
return (0, o.Ak)(t, function(t, o) {
return n()
.then(n => {
let { consentData: s, error: i } = n;
!i ||
(s && e.has(i)) ||
(e.add(i), (0, a.JE)(i.message, …(i.args || []))),
t.call(this, o);
})
.catch(n => {
(0, a.vV)(
`${n?.message} Canceling auction as per consentManagement config.`,
…(n?.args || [])
),
t.stopTiming(),
‘function’ == typeof o.bidsBackHandler
? o.bidsBackHandler()
: (0, a.vV)(‘Error executing bidsBackHandler’);
});
});
})(c, () => n())),
(0, s.m)().requestBids.before(t, 50),
r.U3.before(D),
(0, a.fH)(
`${l} consentManagement module has been activated…`
));
}
return function(o) {
if (((o = o?.[c]), !o || ‘object’ != typeof o))
return (
(0, a.JE)(
C(‘config not defined, exiting consent manager module’)
),
null != t &&
((0, s.m)()
.requestBids.getHooks({ hook: t })
.remove(),
r.U3.getHooks({ hook: D }).remove(),
(t = null)),
{}
);
let b, k;
(0, a.O8)(o.cmpApi)
? (b = o.cmpApi)
: ((b = g),
(0, a.fH)(
C(
`config did not specify cmp. Using system default setting (${g}).`
)
)),
(0, a.Et)(o.timeout)
? (k = o.timeout)
: ((k = p),
(0, a.fH)(
C(
`config did not specify timeout. Using system default setting (${p}).`
)
));
const H = (0, a.Et)(o.actionTimeout) ? o.actionTimeout : null;
let w;
‘static’ === b
? (0, a.Qd)(o.consentData)
? ((e = o.consentData),
(k = null),
(w = () => new i.U9(t => t(u.setConsentData(m(e))))))
: (0, a.vV)(
C(
«config with cmpApi: ‘static’ did not specify consentData. No consents will be available to adapters.»
)
)
: f.hasOwnProperty(b)
? (w = f[b])
: (u.setConsentData(null),
(0, a.JE)(
`${l} CMP framework (${b}) is not a supported framework. Aborting consentManagement module and resuming auction.`
),
(w = () => i.U9.resolve()));
const y = () =>
(function(t) {
let n,
{
name: e,
consentDataHandler: o,
setupCmp: a,
cmpTimeout: s,
actionTimeout: i,
getNullConsent: r
} = t;
return (
o.enable(),
new Promise((t, c) => {
let l,
u = !1;
function m(a) {
null != n && clearTimeout(n),
(n =
null != a
? setTimeout(() => {
const n =
o.getConsentData() ?? (u ? l : r()),
a =
‘timeout waiting for ‘ +
(u
? ‘user action on CMP’
: ‘CMP to load’);
o.setConsentData(n),
t({
consentData: n,
error: new Error(`${e} ${a}`)
});
}, a)
: null);
}
a(function(t) {
(l = t), u || ((u = !0), null != i && m(i));
}).then(
() => t({ consentData: o.getConsentData() }),
c
),
null != s && m(s);
})
.finally(() => {
n && clearTimeout(n);
})
.catch(t => {
throw (o.setConsentData(null), t);
})
);
})({
name: l,
consentDataHandler: u,
setupCmp: w,
cmpTimeout: k,
actionTimeout: H,
getNullConsent: d
});
return (
(n = (() => {
let t;
return function() {
return (
null == t &&
(t = y().catch(n => {
throw ((t = null), n);
})),
t
);
};
})()),
T(),
{
cmpHandler: b,
cmpTimeout: k,
actionTimeout: H,
staticConsentData: e,
loadConsentData: h,
requestBidsHook: t
}
);
};
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[618],
{
981: (e, t, i) => {
i.d(t, { m: () => h });
var r = i(9466),
d = i(1e3),
n = i(433),
a = i(1069),
s = i(5825),
b = i(1445),
o = i(3272),
p = i(3172);
var c = i(3323);
var l = i(7873);
var f = i(1371);
var u = i(3005);
const v = {
[d.S3]: {
extPrebid: {
fn: function(e, t) {
(0, p.J)(
e,
‘ext.prebid’,
(0, a.D9)(
{
auctiontimestamp: t.auctionStart,
targeting: {
includewinners: !0,
includebidderkeys: !1
}
},
e.ext?.prebid
)
),
o.$W.getConfig(‘debug’) && (e.ext.prebid.debug = !0);
}
},
extPrebidChannel: {
fn: function(e) {
(0, p.J)(
e,
‘ext.prebid.channel’,
Object.assign(
{ name: ‘pbjs’, version: (0, l.m)().version },
e.ext?.prebid?.channel
)
);
}
},
extPrebidAliases: {
fn: function(e, t, i) {
let { am: r = b.Ay } =
arguments.length > 3 && void 0 !== arguments[3]
? arguments[3]
: {};
if (r.aliasRegistry[t.bidderCode]) {
const i = r.bidderRegistry[t.bidderCode];
if (!i || !i.getSpec().skipPbsAliasing) {
(0, p.J)(
e,
`ext.prebid.aliases.${t.bidderCode}`,
r.aliasRegistry[t.bidderCode]
);
const d =
o.$W.getConfig(`gvlMapping.${t.bidderCode}`) ||
i?.getSpec?.().gvlid;
d &&
(0, p.J)(
e,
`ext.prebid.aliasgvlids.${t.bidderCode}`,
d
);
}
}
}
}
},
[d.Tb]: {
params: { fn: c.W },
adUnitCode: {
fn: function(e, t) {
const i = t.adUnitCode;
i && (0, p.J)(e, ‘ext.prebid.adunitcode’, i);
}
}
},
[d.WR]: {
mediaType: { fn: s.o, priority: 99 },
videoCache: {
fn: function(e, t) {
if (e.mediaType === f.G_) {
let { cacheId: i, url: r } =
(0, n.A)(t, ‘ext.prebid.cache.vastXml’) || {};
if (!i || !r) {
const {
hb_uuid: e,
hb_cache_host: d,
hb_cache_path: a
} = (0, n.A)(t, ‘ext.prebid.targeting’) || {};
e &&
d &&
a &&
((i = e), (r = `https://${d}${a}?uuid=${e}`));
}
i &&
r &&
Object.assign(e, { videoCacheKey: i, vastUrl: r });
}
},
priority: -10
},
bidderCode: {
fn(e, t, i) {
(e.bidderCode = i.seatbid.seat),
(e.adapterCode =
(0, n.A)(t, ‘ext.prebid.meta.adaptercode’) ||
i.bidRequest?.bidder ||
e.bidderCode);
}
},
pbsBidId: {
fn(e, t) {
const i = (0, n.A)(t, ‘ext.prebid.bidid’);
(0, a.O8)(i) && (e.pbsBidId = i);
}
},
adserverTargeting: {
fn(e, t) {
const i = (0, n.A)(t, ‘ext.prebid.targeting’);
(0, a.Qd)(i) && (e.adserverTargeting = i);
}
},
extPrebidMeta: {
fn(e, t) {
e.meta = (0, a.D9)(
{},
(0, n.A)(t, ‘ext.prebid.meta’),
e.meta
);
}
},
pbsWinTrackers: {
fn: function(e, t) {
(e.eventtrackers = e.eventtrackers || []),
[
[t.burl, u.OA],
[t?.ext?.prebid?.events?.win, u.RO]
]
.filter(t => {
let [i, r] = t;
return (
i &&
null ==
e.eventtrackers.find(e => {
let { method: t, event: d, url: n } = e;
return d === r && t === u.Ni && n === i;
})
);
})
.forEach(t => {
let [i, r] = t;
e.eventtrackers.push({
method: u.Ni,
event: r,
url: i
});
});
}
}
},
[d.Cf]: {
serverSideStats: {
fn(e, t, i) {
Object.entries({
errors: ‘serverErrors’,
responsetimemillis: ‘serverResponseTimeMs’
}).forEach(e => {
let [r, d] = e;
const a = (0, n.A)(
t,
`ext.${r}.${i.bidderRequest.bidderCode}`
);
a &&
((i.bidderRequest[d] = a),
i.bidRequests.forEach(e => (e[d] = a)));
});
}
}
}
};
var g = i(9766);
const h = (0, a.Bj)(() => (0, r.U)((0, g.T)(), v, (0, d.yB)(d.e4)));
},
5825: (e, t, i) => {
i.d(t, { o: () => a, s: () => n });
var r = i(1371),
d = i(5561);
const n = { [r.D4]: ‘banner’, [r.s6]: ‘native’, [r.G_]: ‘video’ };
function a(e, t, i) {
let a = i.mediaType;
a ||
((a = d.X.hasOwnProperty(t.mtype)
? d.X[t.mtype]
: t.ext?.prebid?.type),
n.hasOwnProperty(a) || (a = r.D4)),
(e.mediaType = a);
}
},
3323: (e, t, i) => {
i.d(t, { W: () => d });
var r = i(3172);
function d(e, t) {
let i = t.params;
i && (0, r.J)(e, `ext.prebid.bidder.${t.bidder}`, i);
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[498],
{
9766: (e, t, r) => {
r.d(t, { T: () => f, A: () => m });
const n = new WeakMap();
var i = r(1069),
s = r(1371);
var o = r(3895);
var a = r(5561);
var d = r(1e3),
p = r(3858);
const c = {
[d.S3]: {
fpd: {
priority: 99,
fn(e, t) {
(0, i.D9)(e, t.ortb2);
}
},
onlyOneClient: { priority: -99, fn: (0, p.i8)(‘ORTB request’) },
props: {
fn(e, t) {
Object.assign(e, {
id: e.id || (0, i.lk)(),
test: e.test || 0
});
const r = parseInt(t.timeout, 10);
isNaN(r) || (e.tmax = r);
}
}
},
[d.Tb]: {
fpd: {
priority: 99,
fn(e, t) {
(0, i.D9)(e, t.ortb2Imp);
}
},
id: {
fn(e, t) {
e.id = t.bidId;
}
},
banner: {
fn: function(e, t, r) {
if (r.mediaType && r.mediaType !== s.D4) return;
const n = t?.mediaTypes?.banner;
if (n) {
const r = { topframe: !0 === (0, i.al)() ? 0 : 1 };
n.sizes &&
null == t.ortb2Imp?.banner?.format &&
(r.format = (0, i.y$)(n.sizes).map(i.cf)),
n.hasOwnProperty(‘pos’) && (r.pos = n.pos),
(e.banner = (0, i.D9)(r, e.banner));
}
}
},
pbadslot: {
fn(e) {
const t = e.ext?.data?.pbadslot;
(t && ‘string’ == typeof t) || delete e.ext?.data?.pbadslot;
}
},
secure: {
fn(e, t) {
e.secure = e.secure ?? 1;
}
}
},
[d.WR]: {
mediaType: { priority: 99, fn: a.K },
banner: {
fn: (function() {
let {
createPixel: e = e =>
(0, i.Tz)(decodeURIComponent(e), i.Bk)
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
return function(t, r) {
t.mediaType === s.D4 &&
(r.adm && r.nurl
? (t.ad = e(r.nurl) + r.adm)
: r.adm
? (t.ad = r.adm)
: r.nurl && (t.adUrl = r.nurl));
};
})()
},
props: {
fn(e, t, r) {
Object.entries({
requestId: r.bidRequest?.bidId,
seatBidId: t.id,
cpm: t.price,
currency: r.ortbResponse.cur || r.currency,
width: t.w,
height: t.h,
wratio: t.wratio,
hratio: t.hratio,
dealId: t.dealid,
creative_id: t.crid,
creativeId: t.crid,
burl: t.burl,
ttl: t.exp || r.ttl,
netRevenue: r.netRevenue
})
.filter(e => {
let [t, r] = e;
return void 0 !== r;
})
.forEach(t => {
let [r, n] = t;
return (e[r] = n);
}),
e.meta || (e.meta = {}),
t.adomain && (e.meta.advertiserDomains = t.adomain),
t.ext?.dsa && (e.meta.dsa = t.ext.dsa),
t.cat &&
((e.meta.primaryCatId = t.cat[0]),
(e.meta.secondaryCatIds = t.cat.slice(1))),
t.attr && (e.meta.attr = t.attr),
t.ext?.eventtrackers &&
(e.eventtrackers = (e.eventtrackers ?? []).concat(
t.ext.eventtrackers
));
}
}
}
};
(c[d.Tb].native = {
fn: function(e, t, r) {
if (r.mediaType && r.mediaType !== s.s6) return;
let n = t.nativeOrtbRequest;
n &&
((n = Object.assign({}, r.nativeRequest, n)),
n.assets?.length
? (e.native = (0, i.D9)(
{},
{ request: JSON.stringify(n), ver: n.ver },
e.native
))
: (0, i.JE)(
‘mediaTypes.native is set, but no assets were specified. Native request skipped.’,
t
));
}
}),
(c[d.WR].native = {
fn: function(e, t) {
if (e.mediaType === s.s6) {
let r;
if (
((r =
‘string’ == typeof t.adm ? JSON.parse(t.adm) : t.adm),
!(0, i.Qd)(r) || !Array.isArray(r.assets))
)
throw new Error(
‘ORTB native response contained no assets’
);
e.native = { ortb: r };
}
}
}),
(c[d.Tb].video = {
fn: function(e, t, r) {
if (r.mediaType && r.mediaType !== s.G_) return;
const n = t?.mediaTypes?.video;
if (!(0, i.Im)(n)) {
const t = Object.fromEntries(
Object.entries(n).filter(e => {
let [t] = e;
return o.Zy.has(t);
})
);
if (n.playerSize) {
const e = (0, i.y$)(n.playerSize).map(i.cf);
e.length > 1 &&
(0, i.JE)(
‘video request specifies more than one playerSize; all but the first will be ignored’
),
Object.assign(t, e[0]);
}
e.video = (0, i.D9)(t, e.video);
}
}
}),
(c[d.WR].video = {
fn: function(e, t, r) {
e.mediaType === s.G_ &&
(r?.imp?.video?.w &&
r?.imp?.video?.h &&
([e.playerWidth, e.playerHeight] = [
r.imp.video.w,
r.imp.video.h
]),
t.adm && (e.vastXml = t.adm),
t.nurl && (e.vastUrl = t.nurl));
}
});
var u = r(9466);
function m() {
let {
context: e = {},
processors: t = f,
overrides: r = {},
imp: s,
request: o,
bidResponse: a,
response: p
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
const c = new WeakMap();
function u(e, i, s, o) {
let a;
return function() {
return (
null == a &&
(a = (function() {
let a = s.bind(
this,
(function(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
if (!n.has(e)) {
const t = Object.entries(e);
t.sort((e, t) =>
(e = e[1].priority || 0) ===
(t = t[1].priority || 0)
? 0
: e > t
? -1
: 1
),
n.set(
e,
t.map(e => {
let [t, r] = e;
return [t, r.fn];
})
);
}
const r = n
.get(e)
.filter(e => {
let [r] = e;
return !t.hasOwnProperty(r) || t[r];
})
.map(function(e) {
let [r, n] = e;
return t.hasOwnProperty(r)
? t[r].bind(this, n)
: n;
});
return function() {
const e = Array.from(arguments);
r.forEach(t => {
t.apply(this, e);
});
};
})(t()[e] || {}, r[e] || {})
);
return (
i && (a = i.bind(this, a)),
function() {
try {
return a.apply(this, arguments);
} catch (e) {
o.call(this, e, …arguments);
}
}
);
})()),
a.apply(this, arguments)
);
};
}
const m = u(
d.Tb,
s,
function(e, t, r) {
const n = {};
return e(n, t, r), n;
},
function(e, t, r) {
(0,
i.vV)(
‘Error while converting bidRequest to ORTB imp; request skipped.’,
{ error: e, bidRequest: t, context: r }
);
}
),
l = u(
d.S3,
o,
function(e, t, r, n) {
const i = { imp: t };
return e(i, r, n), i;
},
function(e, t, r, n) {
throw ((0, i.vV)(‘Error while converting to ORTB request’, {
error: e,
imps: t,
bidderRequest: r,
context: n
}),
e);
}
),
b = u(
d.WR,
a,
function(e, t, r) {
const n = {};
return e(n, t, r), n;
},
function(e, t, r) {
(0,
i.vV)(
‘Error while converting ORTB seatbid.bid to bidResponse; bid skipped.’,
{ error: e, bid: t, context: r }
);
}
),
y = u(
d.Cf,
p,
function(e, t, r, n) {
const i = { bids: t };
return e(i, r, n), i;
},
function(e, t, r, n) {
throw ((0, i.vV)(
‘Error while converting from ORTB response’,
{
error: e,
bidResponses: t,
ortbResponse: r,
context: n
}
),
e);
}
);
return {
toORTB(t) {
let { bidderRequest: r, bidRequests: n, context: s = {} } = t;
n = n || r.bids;
const o = {
req: Object.assign({ bidRequests: n }, e, s),
imp: {}
};
o.req.impContext = o.imp;
const a = n
.map(t => {
const n = Object.assign(
{ bidderRequest: r, reqContext: o.req },
e,
s
),
a = m(t, n);
if (null != a) {
if (a.hasOwnProperty(‘id’))
return (
Object.assign(n, { bidRequest: t, imp: a }),
(o.imp[a.id] = n),
a
);
(0, i.vV)(
‘Converted ORTB imp does not specify an id, ignoring bid request’,
t,
a
);
}
})
.filter(Boolean),
d = l(a, r, o.req);
return (o.req.bidderRequest = r), null != d && c.set(d, o), d;
},
fromORTB(e) {
let { request: t, response: r } = e;
const n = c.get(t);
if (null == n)
throw new Error(
‘ortbRequest passed to `fromORTB` must be the same object returned by `toORTB`’
);
function s(e) {
let r =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
return Object.assign(e, { ortbRequest: t }, r);
}
const o = Object.fromEntries(
(t.imp || []).map(e => [e.id, e])
),
a = (r.seatbid || [])
.flatMap(e =>
(e.bid || []).map(t => {
if (
o.hasOwnProperty(t.impid) &&
n.imp.hasOwnProperty(t.impid)
)
return b(
t,
s(n.imp[t.impid], {
imp: o[t.impid],
seatbid: e,
ortbResponse: r
})
);
(0, i.vV)(
‘ORTB response seatbid[].bid[].impid does not match any imp in request; ignoring bid’,
t
);
})
)
.filter(Boolean);
return y(a, r, s(n.req));
}
};
}
const f = (0, i.Bj)(() => (0, u.U)(c, (0, d.yB)(d.qN)));
},
9466: (e, t, r) => {
r.d(t, { U: () => i });
var n = r(1e3);
function i() {
for (
var e = arguments.length, t = new Array(e), r = 0;
r < e;
r++
)
t[r] = arguments[r];
const s = t.shift(),
o = t.length > 1 ? i(…t) : t[0];
return Object.fromEntries(
n.zt.map(e => [e, Object.assign({}, s[e], o[e])])
);
}
},
5561: (e, t, r) => {
r.d(t, { K: () => s, X: () => i });
var n = r(1371);
const i = { 1: n.D4, 2: n.G_, 4: n.s6 };
function s(e, t, r) {
if (e.mediaType) return;
const n = r.mediaType;
if (!n && !i.hasOwnProperty(t.mtype))
throw new Error(‘Cannot determine mediaType for response’);
e.mediaType = n || i[t.mtype];
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[225],
{
6743: (n, t, l) => {
l.d(t, { x4: () => i });
var e = l(7873),
r = l(2713);
function u(n, t, l) {
let r =
!(arguments.length > 3 && void 0 !== arguments[3]) ||
arguments[3];
if (t === l) return n;
let u = n;
try {
u = (0, e.m)().convertCurrency(n, t, l);
} catch (n) {
if (!r) throw n;
}
return u;
}
function i() {
let n =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: n => [n.cpm, n.currency],
t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: (function() {
let n =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: null,
t =
!(
arguments.length > 1 && void 0 !== arguments[1]
) || arguments[1],
l =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: u;
return function(e, r) {
return null == n && (n = r), l(e, r, n, t);
};
})();
return (0, r.NV)(l => t.apply(null, n(l)));
}
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[764],
{
2339: (o, n, t) => {
function e(o, n) {
return function() {
const t = document.domain.split(‘.’),
e = `_gd${Date.now()}_${n}`;
for (let n, i, s = 0; s < t.length; s++) {
const u = t.slice(s).join(‘.’);
if (
(o.setCookie(e, ‘1’, void 0, void 0, u),
(i = o.getCookie(e)),
o.setCookie(
e,
»,
‘Thu, 01 Jan 1970 00:00:01 GMT’,
void 0,
u
),
‘1’ !== i)
)
return n;
n = u;
}
};
}
t.d(n, { w: () => e });
}
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[81],
{
6117: (e, t, n) => {
var r = n(7873),
s = n(1069),
a = n(3172),
o = n(3272),
c = n(6916),
i = n(1e3),
p = n(687),
d = n(965),
l = n(3806);
let u,
g,
f = {};
const C = 2,
m = {
iab: function(e) {
return new Promise((t, n) => {
const r = (0, d.c5)({
apiName: ‘__tcfapi’,
apiVersion: C,
apiArgs: [‘command’, ‘version’, ‘callback’, ‘parameter’]
});
r || n(new Error(‘TCF2 CMP not found.’)),
r.isDirect
? (0, s.fH)(
‘Detected CMP API is directly accessible, calling it now…’
)
: (0, s.fH)(
‘Detected CMP is outside the current iframe where Prebid.js is located, calling it now…’
),
r({
command: ‘addEventListener’,
callback: function(r, a) {
if (
((0, s.fH)(‘Received a response from CMP’, r), a)
) {
try {
e(b(r));
} catch (e) {}
if (
!1 === r.gdprApplies ||
‘tcloaded’ === r.eventStatus ||
‘useractioncomplete’ === r.eventStatus
)
try {
c.mW.setConsentData(b(r)), t();
} catch (e) {
n(e);
}
} else
n(
Error(
‘CMP unable to register callback function. Please check CMP setup.’
)
);
}
});
});
}
};
function b(e) {
if (
(function() {
const t =
e && ‘boolean’ == typeof e.gdprApplies
? e.gdprApplies
: u,
n = e && e.tcString;
return !(
‘boolean’ == typeof t &&
(!0 !== t || (n && (0, s.O8)(n)))
);
})()
)
throw Object.assign(
new Error(
‘CMP returned unexpected value during lookup process.’
),
{ args: [e] }
);
return D(e);
}
function D(e) {
const t = {
consentString: e ? e.tcString : void 0,
vendorData: e || void 0,
gdprApplies:
e && ‘boolean’ == typeof e.gdprApplies ? e.gdprApplies : u
};
return (
e &&
e.addtlConsent &&
(0, s.O8)(e.addtlConsent) &&
(t.addtlConsent = e.addtlConsent),
(t.apiVersion = C),
t
);
}
const v = (0, l.yq)({
namespace: ‘gdpr’,
displayName: ‘TCF’,
consentDataHandler: c.mW,
cmpHandlers: m,
parseConsentData: b,
getNullConsent: () => D(null)
});
o.$W.getConfig(‘consentManagement’, e =>
(function(e) {
return (
(e = e && (e.gdpr || e.usp || e.gpp ? e.gdpr : e)),
null != e?.consentData?.getTCData &&
(e.consentData = e.consentData.getTCData),
(u = !0 === e?.defaultGdprScope),
(g = !!e?.dsaPlatform),
(f = v({ gdpr: e })),
f.loadConsentData?.()?.catch?.(() => null)
);
})(e.consentManagement)
),
p.w.before(function(e, t) {
return e(
t.then(e => {
const t = c.mW.getConsentData();
return (
t &&
(‘boolean’ == typeof t.gdprApplies &&
(0, a.J)(e, ‘regs.ext.gdpr’, t.gdprApplies ? 1 : 0),
(0, a.J)(e, ‘user.ext.consent’, t.consentString)),
g && (0, a.J)(e, ‘regs.ext.dsa.dsarequired’, 3),
e
);
})
);
}),
(0, i.pS)({
type: i.S3,
name: ‘gdprAddtlConsent’,
fn: function(e, t) {
const n = t.gdprConsent?.addtlConsent;
n &&
‘string’ == typeof n &&
(0, a.J)(
e,
‘user.ext.ConsentedProvidersSettings.consented_providers’,
n
);
}
}),
(0, r.E)(‘consentManagementTcf’);
}
},
e => {
e.O(0, [802, 109, 10, 769, 139, 85], () => {
return (t = 6117), e((e.s = t));
var t;
});
e.O();
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[662],
{
6056: (n, t, e) => {
var o = e(7873),
a = e(1069),
s = e(3172),
i = e(3272),
c = e(1445),
r = e(6916),
u = e(6894),
l = e(9214),
f = e(687),
g = e(965);
const d = ‘iab’;
let p,
m,
P = d,
v = 50,
S = !1;
const b = {
iab: function(n) {
let { onSuccess: t, onError: e } = n;
let o = (function() {
const n = {};
return {
consentDataCallback: (o, a) => {
a && o.uspString && (n.usPrivacy = o.uspString),
n.usPrivacy
? h(n, { onSuccess: t, onError: e })
: e(‘Unable to get USP consent string.’);
}
};
})();
const s = (0, g.c5)({
apiName: ‘__uspapi’,
apiVersion: 1,
apiArgs: [‘command’, ‘version’, ‘callback’]
});
if (!s) return e(‘USP CMP not found.’);
s.isDirect
? (0, a.fH)(
‘Detected USP CMP is directly accessible, calling it now…’
)
: (0, a.fH)(
‘Detected USP CMP is outside the current iframe where Prebid.js is located, calling it now…’
);
s({ command: ‘getUSPData’, callback: o.consentDataCallback }),
s({
command: ‘registerDeletion’,
callback: (n, t) =>
(null == t || t) && c.Ay.callDataDeletionRequest(n)
}).catch(n => {
(0, a.vV)(‘Error invoking CMP `registerDeletion`:’, n);
});
},
static: function(n) {
let { onSuccess: t, onError: e } = n;
h(p, { onSuccess: t, onError: e });
}
};
function D(n) {
let t = null,
e = !1;
function o(o, a) {
if (
(null != t && clearTimeout(t),
(e = !0),
r.t6.setConsentData(o),
null != n)
) {
for (
var s = arguments.length,
i = new Array(s > 2 ? s – 2 : 0),
c = 2;
c < s;
c++
)
i[c – 2] = arguments[c];
n(a, …i);
}
}
if (!b[P])
return void o(
null,
`USP framework (${P}) is not a supported framework. Aborting consentManagement module and resuming auction.`
);
const a = {
onSuccess: o,
onError: function(n) {
for (
var t = arguments.length,
e = new Array(t > 1 ? t – 1 : 0),
a = 1;
a < t;
a++
)
e[a – 1] = arguments[a];
o(
null,
`${n} Resuming auction without consent data as per consentManagement config.`,
…e
);
}
};
b[P](a),
e ||
(0 === v
? h(void 0, a)
: (t = setTimeout(
a.onError.bind(
null,
‘USPAPI workflow exceeded timeout threshold.’
),
v
)));
}
const y = (0, u.Ak)(‘usp’, function(n, t) {
var e = this;
S || U(),
D(function(o) {
if (null != o) {
for (
var s = arguments.length,
i = new Array(s > 1 ? s – 1 : 0),
c = 1;
c < s;
c++
)
i[c – 1] = arguments[c];
(0, a.JE)(o, …i);
}
n.call(e, t);
});
});
function h(n, t) {
let { onSuccess: e, onError: o } = t;
!n || !n.usPrivacy
? o(
‘USPAPI returned unexpected value during lookup process.’,
n
)
: (!(function(n) {
n && n.usPrivacy && (m = n.usPrivacy);
})(n),
e(m));
}
function U() {
let n =
arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
S ||
((0, a.fH)(
‘USPAPI consentManagement module has been activated’ +
(n
? »
: ` using default values (api: ‘${P}’, timeout: ${v}ms)`)
),
(S = !0),
r.t6.enable()),
D();
}
i.$W.getConfig(‘consentManagement’, n =>
(function(n) {
((n = n && n.usp) && ‘object’ == typeof n) ||
(0, a.JE)(
‘consentManagement.usp config not defined, using defaults’
),
n && (0, a.O8)(n.cmpApi)
? (P = n.cmpApi)
: ((P = d),
(0, a.fH)(
`consentManagement.usp config did not specify cmpApi. Using system default setting (${d}).`
)),
n && (0, a.Et)(n.timeout)
? (v = n.timeout)
: ((v = 50),
(0, a.fH)(
‘consentManagement.usp config did not specify timeout. Using system default setting (50).’
)),
‘static’ === P &&
((0, a.Qd)(n.consentData) &&
(0, a.Qd)(n.consentData.getUSPData)
? (n.consentData.getUSPData.uspString &&
(p = {
usPrivacy: n.consentData.getUSPData.uspString
}),
(v = 0))
: (0, a.vV)(
«consentManagement config with cmpApi: ‘static’ did not specify consentData. No consents will be available to adapters.»
)),
U(!0);
})(n.consentManagement)
),
(0, l.Yn)(‘requestBids’).before(y, 50),
f.w.before(function(n, t) {
return n(
t.then(n => {
const t = r.t6.getConsentData();
return t && (0, s.J)(n, ‘regs.ext.us_privacy’, t), n;
})
);
}),
(0, o.E)(‘consentManagementUsp’);
}
},
n => {
n.O(0, [109, 802, 769, 139, 85], () => {
return (t = 6056), n((n.s = t));
var t;
});
n.O();
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[931],
{
2843: (e, t, o) => {
var n = o(7873),
r = o(1069),
a = o(8044),
c = o(7934),
i = o(9214),
s = o(2938),
d = o(5569),
l = o(6916);
const p = ‘criteo’,
g = (0, s.vM)({ moduleType: d.fW, moduleName: p }),
u = ‘cto_bidid’,
m = ‘cto_bundle’,
b = ‘html5’,
I = ‘cookie’,
y = new Date(0).toString(),
f = new Date((0, r.vE)() + 33696e6).toString();
function S(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
const o = (0, r.Dl)(e, { noDecodeWholeURL: !0 });
return t
? `${o.hostname}`
: `${o.protocol}://${o.hostname}${o.port ? ‘:’ + o.port : »}/`;
}
function h(e, t) {
return e?.storage?.type === b
? g.getDataFromLocalStorage(t)
: e?.storage?.type === I
? g.getCookie(t)
: g.getCookie(t) || g.getDataFromLocalStorage(t);
}
function C(e, t, o, n) {
t &&
o &&
(e?.storage?.type === b
? g.setDataInLocalStorage(t, o)
: (e?.storage?.type === I || g.setDataInLocalStorage(t, o),
v(t, o, f, n, !0)));
}
function v(e, t, o, n, r) {
const a = n.split(‘.’);
for (let n = 0; n < a.length; ++n) {
const c = a.slice(a.length – n – 1, a.length).join(‘.’);
try {
if ((g.setCookie(e, t, o, null, ‘.’ + c), r)) {
const o = g.getCookie(e);
if (o && o === t) break;
}
} catch (e) {}
}
}
function U(e, t, o) {
const n =
(void 0 === e?.storage?.type || e?.storage?.type === I) &&
g.cookiesAreEnabled(),
i =
(void 0 === e?.storage?.type || e?.storage?.type === b) &&
g.localStorageIsEnabled(),
s = S((0, c.EN)().page),
d = S(document.location.href, !0),
p = ‘undefined’ != typeof criteo_pubtag,
f = (function(e, t, o, n, r, a, c) {
let i =
‘https://gum.criteo.com/sid/json?origin=prebid’ +
(e ? ‘&topUrl=’ + encodeURIComponent(e) : ») +
(t ? ‘&domain=’ + encodeURIComponent(t) : ») +
(o ? ‘&bundle=’ + encodeURIComponent(o) : ») +
(n ? ‘&info=’ + encodeURIComponent(n) : ») +
(r ? ‘&cw=1’ : ») +
(c ? ‘&pbt=1’ : ») +
(a ? ‘&lsw=1’ : »);
const s = l.t6.getConsentData();
s && (i += `&us_privacy=${encodeURIComponent(s)}`);
const d = l.mW.getConsentData();
d &&
((i =
i +
» +
(d.consentString
? ‘&gdprString=’ + encodeURIComponent(d.consentString)
: »)),
(i = i + ‘&gdpr=’ + (!0 === d.gdprApplies ? 1 : 0)));
const p = l.ad.getConsentData();
return (
p &&
((i =
i +
» +
(p.gppString
? ‘&gpp=’ + encodeURIComponent(p.gppString)
: »)),
(i =
i +
» +
(p.applicableSections
? ‘&gpp_sid=’ +
encodeURIComponent(p.applicableSections)
: »))),
i
);
})(s, d, t.bundle, t.dnaBundle, n, i, p),
h = {
success: t => {
const n = JSON.parse(t);
if (
(n.pixels &&
n.pixels.forEach(t =>
(function(e, t, o) {
o.writeBundleInStorage &&
o.bundlePropertyName &&
o.storageKeyName
? (0, a.RD)(
o.pixelUrl,
{
success: n => {
if (n) {
const r = JSON.parse(n);
r &&
r[o.bundlePropertyName] &&
C(
e,
o.storageKeyName,
r[o.bundlePropertyName],
t
);
}
},
error: e => {
(0, r.vV)(
‘criteoIdSystem: unable to sync user id’,
e
);
}
},
void 0,
{ method: ‘GET’, withCredentials: !0 }
)
: (0, r.z$)(o.pixelUrl);
})(e, d, t)
),
n.acwsUrl)
) {
(‘string’ == typeof n.acwsUrl
? [n.acwsUrl]
: n.acwsUrl
).forEach(e => (0, r.z$)(e));
} else n.bundle && C(e, m, n.bundle, d);
if (n.bidId) {
C(e, u, n.bidId, d);
const t = { criteoId: n.bidId };
o(t);
} else
v((c = u), », y, d, !0),
g.removeDataFromLocalStorage(c),
o();
var c;
},
error: e => {
(0, r.vV)(‘criteoIdSystem: unable to sync user id’, e), o();
}
};
(0, a.RD)(f, h, void 0, {
method: ‘GET’,
contentType: ‘application/json’,
withCredentials: !0
});
}
const D = {
name: p,
gvlid: 91,
decode: e => e,
getId(e) {
let t = (function(e) {
return {
bundle: h(e, m),
dnaBundle: h(e, ‘cto_dna_bundle’),
bidId: h(e, u)
};
})(e);
return {
id: t.bidId ? { criteoId: t.bidId } : void 0,
callback: o => U(e, t, o)
};
},
eids: { criteoId: { source: ‘criteo.com’, atype: 1 } }
};
(0, i.bz)(‘userId’, D), (0, n.E)(‘criteoIdSystem’);
}
},
e => {
e.O(0, [802, 769, 139, 85], () => {
return (t = 2843), e((e.s = t));
var t;
});
e.O();
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[328],
{
1134: (e, t, n) => {
n.d(t, { Gk: () => M });
var r = n(7873),
s = n(9759),
i = n(1069),
d = n(8969),
o = n(1445),
a = n(3272),
c = n(7377),
u = n(5023);
const p = {
appnexuspsp: {
adapter: ‘prebidServer’,
enabled: !0,
endpoint: {
p1Consent: ‘https://ib.adnxs.com/openrtb2/prebid’,
noP1Consent: ‘https://ib.adnxs-simple.com/openrtb2/prebid’
},
syncEndpoint: {
p1Consent: ‘https://prebid.adnxs.com/pbs/v1/cookie_sync’,
noP1Consent:
‘https://prebid.adnxs-simple.com/pbs/v1/cookie_sync’
},
maxTimeout: 1e3
},
rubicon: {
adapter: ‘prebidServer’,
enabled: !0,
endpoint: {
p1Consent:
‘https://prebid-server.rubiconproject.com/openrtb2/auction’,
noP1Consent:
‘https://prebid-server.rubiconproject.com/openrtb2/auction’
},
syncEndpoint: {
p1Consent:
‘https://prebid-server.rubiconproject.com/cookie_sync’,
noP1Consent:
‘https://prebid-server.rubiconproject.com/cookie_sync’
},
maxTimeout: 500
},
openwrap: {
adapter: ‘prebidServer’,
enabled: !0,
endpoint: {
p1Consent:
‘https://ow.pubmatic.com/openrtb2/auction?source=pbjs’,
noP1Consent:
‘https://ow.pubmatic.com/openrtb2/auction?source=pbjs’
},
maxTimeout: 500
}
};
var l = n(8044),
b = n(9214),
f = n(2621),
g = n(9766),
m = n(3172),
h = n(3597),
C = n(981),
y = n(3323),
B = n(5825),
v = n(1e3),
R = n(6953),
q = n(3441),
E = n(5569),
x = n(5139),
O = n(6811),
S = n(6743),
I = n(2713),
j = n(433);
function T(e) {
let { global: t, bidder: n } = e;
return Object.fromEntries(
Object.entries(n).map(e => {
let [n, r] = e;
return [n, A(r, (0, i.D9)({}, t, r))];
})
);
}
function A(e, t) {
return Object.fromEntries(
Object.entries(e).map(e => {
let [n, r] = e;
const s = t[n];
return (
Array.isArray(r)
? !(0, i.bD)(r, s) && Array.isArray(s) && (r = s)
: null != r && ‘object’ == typeof r && (r = A(r, s)),
[n, r]
);
})
);
}
function P(e, t) {
let { global: n, bidder: r } = e;
const s = (function(e) {
let { eids: t, conflicts: n = new Set() } = e;
const r = [],
s = [],
i = {};
return (
t.forEach(e => {
(!1 === e.bidders ? r : s).push(e);
}),
s.forEach(e => {
let { eid: t, bidders: s } = e;
n.has(t.source)
? s.forEach(e => {
(i[e] = i[e] || []).push(t);
})
: r.push({ eid: t, bidders: s });
}),
{
global: r.map(e => {
let { eid: t } = e;
return t;
}),
permissions: r
.filter(e => {
let { bidders: t } = e;
return !1 !== t;
})
.map(e => {
let { eid: t, bidders: n } = e;
return { source: t.source, bidders: n };
}),
bidder: i
}
);
})(
(function(e) {
let { global: t, bidder: n } = e;
const r = [],
s = {},
d = new Set();
function o(e) {
let t = r.find(t => (0, i.bD)(t.eid, e));
return (
null == t &&
((t = { eid: e, bidders: new Set() }), r.push(t)),
null == s[e.source]
? (s[e.source] = t.eid)
: t.eid === e && d.add(e.source),
t
);
}
return (
R.Vx.forEach(e => {
((0, j.A)(t, e) || []).forEach(e => {
o(e).bidders = !1;
});
}),
Object.entries(n).forEach(e => {
let [t, n] = e;
R.Vx.forEach(e => {
((0, j.A)(n, e) || []).forEach(e => {
const n = o(e);
!1 !== n.bidders && n.bidders.add(t);
});
});
}),
{
eids: r.map(e => {
let { eid: t, bidders: n } = e;
return { eid: t, bidders: n && Array.from(n) };
}),
conflicts: d
}
);
})({ global: n, bidder: r })
);
function d(e) {
delete e?.user?.eids, delete e?.user?.ext?.eids;
}
return (
(n = (0, i.Go)(n)),
(r = (0, i.Go)(r)),
d(n),
Object.values(r).forEach(d),
s.global.length && (0, m.J)(n, ‘user.ext.eids’, s.global),
t?.length &&
s.permissions.forEach(
e => (e.bidders = e.bidders.filter(e => t.includes(e)))
),
s.permissions.length &&
(0, m.J)(n, ‘ext.prebid.data.eidpermissions’, s.permissions),
Object.entries(s.bidder).forEach(e => {
let [t, n] = e;
n.length && (0, m.J)(r[t], ‘user.ext.eids’, n);
}),
{ global: n, bidder: r }
);
}
function w(e, t) {
return null == e || 0 === Object.keys(e.bidder || {}).length
? e
: ((e = P(e, t)), { …e, bidder: T(e) });
}
var D = n(1371);
const U = new Set([
‘bidderCode’,
‘bidderRequestId’,
‘uniquePbsTid’,
‘bids’,
‘timeout’
]),
$ = (() => {
const e = (0, I.Bp)(
(0, S.x4)(e => [e.bidfloor, e.bidfloorcur])
);
return function(t) {
let n;
for (const r of t) {
if (null == r?.bidfloorcur || null == r?.bidfloor)
return null;
n = null == n ? r : e(n, r);
}
return n;
};
})(),
J = (0, g.A)({
processors: C.m,
context: { netRevenue: !0 },
imp(e, t, n) {
Object.assign(n, t.pbsData);
const r = e(t, n);
if (
((t.bids || []).forEach(e => {
e.ortb2Imp &&
Object.keys(e.ortb2Imp).length > 0 &&
(0, m.J)(r, `ext.prebid.imp.${e.bidder}`, e.ortb2Imp);
}),
Object.values(B.s).some(e => r[e]))
)
return (r.secure = t.ortb2Imp?.secure ?? 1), r;
},
request(e, t, n, r) {
if (t.length) {
let { s2sBidRequest: s } = r;
const i = e(t, n, r);
return (
(i.tmax = Math.floor(
s.s2sConfig.timeout ??
Math.min(
0.75 * s.requestBidsTimeout,
s.s2sConfig.maxTimeout ?? M.maxTimeout
)
)),
(i.ext.tmaxmax = i.ext.tmaxmax || s.requestBidsTimeout),
[i.app, i.dooh, i.site].forEach(e => {
e &&
!e.publisher?.id &&
(0, m.J)(e, ‘publisher.id’, s.s2sConfig.accountId);
}),
r.transmitTids ||
(0, m.J)(i, ‘ext.prebid.createtids’, !1),
i
);
}
(0, i.vV)(
‘Request to Prebid Server rejected due to invalid media type(s) in adUnit.’
);
},
bidResponse(e, t, n) {
let r = n.actualBidRequests.get(n.seatbid.seat);
null == r && (r = n.actualBidRequests.get(null)),
r &&
Object.assign(n, {
bidRequest: r,
bidderRequest: n.actualBidderRequests.find(
e => e.bidderCode === r.bidder
)
});
const s = e(t, n);
return (
(s.requestBidder = r?.bidder),
s.native?.ortb && (s.adm = s.native.ortb),
(s.requestTimestamp = n.requestTimestamp),
{
bid: Object.assign(
(0, h.O)(d.XQ.GOOD, {
src: d.RW.SRC,
bidId: r ? r.bidId || r.bid_Id : null,
transactionId: n.adUnit.transactionId,
adUnitId: n.adUnit.adUnitId,
auctionId: n.bidderRequest.auctionId
}),
s,
{
deferRendering: !!n.adUnit.deferBilling,
deferBilling: !!n.adUnit.deferBilling
}
),
adUnit: n.adUnit.code
}
);
},
overrides: {
[v.Tb]: {
id(e, t, n, r) {
t.id = r.impId;
},
params(e, t, n, r) {
const s = r.s2sBidRequest.s2sConfig.adapterOptions;
for (const e of r.actualBidRequests.values())
(0, y.W)(t, e, r, r),
s &&
s[e.bidder] &&
Object.assign(
t.ext.prebid.bidder[e.bidder],
s[e.bidder]
);
},
bidfloor(e, t, n, r) {
const s = $(
(function*() {
for (const t of r.actualBidRequests.values()) {
const n = {};
e(n, t, r), yield n;
}
})()
);
null != s && Object.assign(t, s);
},
extBidfloor(e, t, n, r) {
function s(e, t) {
null != t &&
((0, m.J)(e, ‘ext.bidfloor’, t.bidfloor),
(0, m.J)(e, ‘ext.bidfloorcur’, t.bidfloorcur));
}
const d = Array.from(r.actualBidRequests.values()).map(
n => {
const s = (0, i.Go)(t);
return e(s, n, r), s;
}
);
Object.values(D.GE).forEach(e => {
s(t[e], $(d.map(t => t[e]?.ext)));
}),
(t[D.D4]?.format || []).forEach((e, t) => {
s(e, $(d.map(e => e[D.D4].format[t]?.ext)));
});
}
},
[v.S3]: {
fpd(e, t, n, r) {
r.transmitTids && (0, m.J)(t, ‘source.tid’, n.auctionId),
(0, i.D9)(t, r.s2sBidRequest.ortb2Fragments?.global),
r.s2sBidRequest.s2sConfig.extPrebid &&
‘object’ ==
typeof r.s2sBidRequest.s2sConfig.extPrebid &&
(0, m.J)(
t,
‘ext.prebid’,
(0, i.D9)(
t.ext?.prebid || {},
r.s2sBidRequest.s2sConfig.extPrebid
)
),
r.getRedactor().ortb2(t);
const s = Object.entries(
r.s2sBidRequest.ortb2Fragments?.bidder || {}
)
.filter(e => {
let [t] = e;
const n = r.s2sBidRequest.s2sConfig.bidders;
return (
r.s2sBidRequest.s2sConfig.allowUnknownBidderCodes ||
(n && n.includes(t))
);
})
.map(e => {
let [t, n] = e;
return {
bidders: [t],
config: { ortb2: r.getRedactor(t).ortb2(n) }
};
});
s.length && (0, m.J)(t, ‘ext.prebid.bidderconfig’, s);
},
extPrebidAliases(e, t, n, r) {
r.actualBidderRequests.forEach(n => e(t, n, r));
},
sourceExtSchain(e, t, n, r) {
let s = t?.ext?.prebid?.schains || [];
const i = new Set(s.flatMap(e => e.bidders));
(s = Object.values(
s
.concat(
r.actualBidderRequests
.filter(e => !i.has(e.bidderCode))
.map(e => ({
bidders: [e.bidderCode],
schain: e?.bids?.[0]?.schain
}))
)
.filter(e => {
let { bidders: t, schain: n } = e;
return t?.length > 0 && n;
})
.reduce((e, t) => {
let { bidders: n, schain: r } = t;
const s = JSON.stringify(r);
return (
e.hasOwnProperty(s) ||
(e[s] = { bidders: new Set(), schain: r }),
n.forEach(t => e[s].bidders.add(t)),
e
);
}, {})
).map(e => {
let { bidders: t, schain: n } = e;
return { bidders: Array.from(t), schain: n };
})),
s.length && (0, m.J)(t, ‘ext.prebid.schains’, s);
}
},
[v.Cf]: {
serverSideStats(e, t, n, r) {
r.actualBidderRequests.forEach(s =>
e(t, n, { …r, bidderRequest: s, bidRequests: s.bids })
);
},
paapiConfigs(e, t, n, r) {
const s = Object.values(r.impContext).flatMap(e =>
(e.paapiConfigs || []).map(t => {
const n = e.actualBidderRequests.find(
e => e.bidderCode === t.bidder
),
r = e.actualBidRequests.get(t.bidder);
return {
adUnitCode: e.adUnit.code,
ortb2: n?.ortb2,
ortb2Imp: r?.ortb2Imp,
bidder: t.bidder,
config: t.config
};
})
);
s.length > 0 && (t.paapi = s);
}
}
}
});
var k = n(6894);
const _ = a.$W.getConfig,
V = d.RW.SRC;
let N,
W = 0;
const M = {
bidders: Object.freeze([]),
syncTimeout: 1e3,
maxBids: 1,
adapter: ‘prebidServer’,
allowUnknownBidderCodes: !1,
adapterOptions: {},
syncUrlModifier: {},
ortbNative: { eventtrackers: [{ event: 1, methods: [1, 2] }] },
maxTimeout: 1500
};
function G(e) {
if (!e) return;
e = Array.isArray(e) ? e : [e];
const t = new Set();
return e.filter(e => {
var n;
if (
((n = e),
[‘endpoint’, ‘syncEndpoint’].forEach(e => {
if ((0, i.O8)(n[e])) {
let t = n[e];
n[e] = { p1Consent: t, noP1Consent: t };
}
!(0, i.Qd)(n[e]) ||
(n[e].p1Consent && n[e].noP1Consent) ||
[‘p1Consent’, ‘noP1Consent’].forEach(t => {
n[e][t] ||
(0, i.JE)(
`s2sConfig.${e}.${t} not defined. PBS request will be skipped in some P1 scenarios.`
);
});
}),
(function(e) {
if (e.defaultVendor) {
let t = e.defaultVendor,
n = Object.keys(e);
if (!p[t])
return (
(0, i.vV)(
‘Incorrect or unavailable prebid server default vendor option: ‘ +
t
),
!1
);
Object.keys(p[t]).forEach(r => {
(M[r] !== e[r] && n.includes(r)) || (e[r] = p[t][r]);
});
} else null == e.adapter && (e.adapter = ‘prebidServer’);
return !0;
})(e) &&
(function(e) {
for (const t of [‘accountId’, ‘endpoint’])
if (null == e[t])
return (
(0, i.vV)(
t + ‘ missing in server to server config’
),
!1
);
return !0;
})(e) &&
e.enabled)
)
return (
Array.isArray(e.bidders) &&
(e.bidders = e.bidders.filter(
e => !t.has(e) && (t.add(e), !0)
)),
!0
);
(0, i.JE)(‘prebidServer: s2s config is disabled’, e);
});
}
function F(e, t, n, r, s) {
if (N.length === W) return;
W++;
let d = {};
const o = _(‘userSync.filterSettings’);
if (o) {
const { all: e, iframe: t, image: n } = o,
r = t || e,
s = n || e;
r && (d = Object.assign({ iframe: r }, d)),
s && (d = Object.assign({ image: s }, d));
}
const a = {
uuid: (0, i.lk)(),
bidders: e,
account: s.accountId,
filterSettings: d
};
let c = s.userSyncLimit;
(0, i.Et)(c) && c > 0 && (a.limit = c),
t &&
((a.gdpr = t.gdprApplies ? 1 : 0),
!1 !== t.gdprApplies && (a.gdpr_consent = t.consentString)),
n && (a.us_privacy = n),
r &&
((a.gpp_sid = r.applicableSections.join()),
(a.gpp = r.gppString)),
‘boolean’ == typeof s.coopSync && (a.coopSync = s.coopSync);
const u = JSON.stringify(a);
(0, l.RD)(
H(s.syncEndpoint, t),
e => {
try {
L((e = JSON.parse(e)).bidder_status, s);
} catch (e) {
(0, i.vV)(e);
}
},
u,
{ contentType: ‘text/plain’, withCredentials: !0 }
);
}
function L(e, t) {
if (0 === e.length) return;
const n = e.shift();
n.no_cookie
? (function(e, t, n, r, s) {
s.syncUrlModifier &&
‘function’ == typeof s.syncUrlModifier[n] &&
(t = s.syncUrlModifier[n](e, t, n));
!(function(e, t, n, r, s) {
t
? ‘image’ === e || ‘redirect’ === e
? ((0, i.OG)(
`Invoking image pixel user sync for bidder: «${n}»`
),
(0, i.z$)(t, r, s))
: ‘iframe’ === e
? ((0, i.OG)(
`Invoking iframe user sync for bidder: «${n}»`
),
(0, i.SG)(t, r, s))
: ((0, i.vV)(
`User sync type «${e}» not supported for bidder: «${n}»`
),
r())
: ((0, i.vV)(`No sync url for bidder «${n}»: ${t}`),
r());
})(e, t, n, r, s.syncTimeout);
})(
n.usersync.type,
n.usersync.url,
n.bidder,
L.bind(null, e, t),
t
)
: L(e, t);
}
function H(e, t) {
const n = (0, f.C)(t),
r = n ? e.p1Consent : e.noP1Consent;
return (
r || (0, i.JE)(‘Missing matching consent URL when gdpr=’ + n), r
);
}
function Y(e) {
let t, n, r;
return (
Array.isArray(e) &&
e.length > 0 &&
((t = e[0].gdprConsent),
(n = e[0].uspConsent),
(r = e[0].gppConsent)),
{ gdprConsent: t, uspConsent: n, gppConsent: r }
);
}
a.$W.setDefaults({ s2sConfig: M }),
_(‘s2sConfig’, e => {
let { s2sConfig: t } = e;
var n;
(n = G((n = t))).length && (N = n);
});
const z = (0, b.A_)(
‘async’,
function(e, t, n, r) {
let { onResponse: s, onError: c, onBid: p, onFledge: l } = r,
{ gdprConsent: b } = Y(t);
const f = (0, i.Go)(e.ad_units),
g = f
.map(e => e.bids.map(e => e.bidder).filter(i.hj))
.reduce(i.Bq, [])
.filter(i.hj),
m = e.metrics.measureTime(‘buildRequests’, () =>
(function(e, t, n, r) {
const s = (0, i.vE)(),
d = new Set(),
c = [],
u = (0, o.K5)(e.s2sConfig),
p = (() => {
const e = (0, R.$p)(u),
t = {};
return n =>
null == n
? e
: (t.hasOwnProperty(n) ||
(t[n] = (0, R.$p)((0, q.s)(E.tW, n))),
t[n]);
})();
(n = n.map(e => p().bidRequest(e))).forEach(e => {
const r = new Map();
(n.bids = e.bids.map(e => p(e.bidder).bidRequest(e))),
e.bids.forEach(n => {
null != n.mediaTypes &&
(0, i.JE)(
`Prebid Server adapter does not (yet) support bidder-specific mediaTypes for the same adUnit. Size mapping configuration will be ignored for adUnit: ${e.code}, bidder: ${n.bidder}`
),
r.set(n.bidder, (0, i.D4)(n.bid_id, t));
});
let s = e.code,
o = 1;
for (; d.has(s); ) o++, (s = `${e.code}-${o}`);
d.add(s),
c.push({
…e,
adUnitCode: e.code,
pbsData: {
impId: s,
actualBidRequests: r,
adUnit: e
}
});
});
const l = {
…Object.fromEntries(
Object.entries(t[0]).filter(e => {
let [t] = e;
return !U.has(t);
})
),
paapi: { enabled: t.some(e => e.paapi?.enabled) }
};
return J.toORTB({
bidderRequest: l,
bidRequests: c,
context: {
currency:
a.$W.getConfig(‘currency.adServerCurrency’) ||
‘USD’,
ttl: e.s2sConfig.defaultTtl || 60,
requestTimestamp: s,
s2sBidRequest: {
…e,
ortb2Fragments: w(e.ortb2Fragments, r)
},
requestedBidders: r,
actualBidderRequests: t,
nativeRequest: e.s2sConfig.ortbNative,
getRedactor: p,
transmitTids: (0, x.io)(O.VJ, u)
}
});
})(e, t, f, g)
),
h = {
endpointUrl: H(e.s2sConfig.endpoint, b),
requestJson: m && JSON.stringify(m),
customHeaders: e?.s2sConfig?.customHeaders ?? {}
};
if (
(u.Ic(d.qY.BEFORE_PBS_HTTP, h),
(0, i.fH)(‘BidRequest: ‘ + h),
m && h.requestJson && h.endpointUrl)
) {
const t = e.metrics.startTiming(‘net’);
n(
h.endpointUrl,
{
success: function(n) {
let r;
t();
try {
r = JSON.parse(n);
const { bids: t, paapi: s } = e.metrics.measureTime(
‘interpretResponse’,
() =>
(function(e, t) {
return J.fromORTB({ response: e, request: t });
})(r, m)
);
t.forEach(p), s && s.forEach(l);
} catch (e) {
(0, i.vV)(e);
}
!r || (r.status && r.status.includes(‘Error’))
? ((0, i.vV)(
‘error parsing response: ‘,
r ? r.status : ‘not valid JSON’
),
s(!1, g))
: s(!0, g, r);
},
error: function() {
t(), c.apply(this, arguments);
}
},
h.requestJson,
{
contentType: ‘text/plain’,
withCredentials: !0,
browsingTopics: (0, x.io)(O.DL, (0, o.K5)(e.s2sConfig)),
customHeaders: h.customHeaders
}
);
} else (0, i.vV)(‘PBS request not made. Check endpoints.’);
},
‘processPBSRequest’
);
function K(e, t) {
return e?.extPrebid?.returnallbidstatus
? t?.ext?.seatnonbid
: void 0;
}
function Q(e) {
return e?.ext?.prebid?.analytics?.tags;
}
o.Ay.registerBidAdapter(
new (function() {
const e = new s.A(‘prebidServer’);
return (
(e.callBids = function(e, t, n, r, s) {
const p = (e.metrics = (0, k.BO)(t?.[0]?.metrics)
.newMetrics()
.renameWith(t => [
`adapter.s2s.${t}`,
`adapters.s2s.${e.s2sConfig.defaultVendor}.${t}`
]));
(r = p.startTiming(‘total’).stopBefore(r)),
t.forEach(e =>
(0, k.BO)(e.metrics).join(p, {
continuePropagation: !1
})
);
let { gdprConsent: l, uspConsent: b, gppConsent: f } = Y(t);
if (Array.isArray(N)) {
if (
e.s2sConfig &&
e.s2sConfig.syncEndpoint &&
H(e.s2sConfig.syncEndpoint, l)
) {
const t =
(e.s2sConfig.extPrebid &&
e.s2sConfig.extPrebid.aliases) ??
{};
F(
e.s2sConfig.bidders
.map(e => o.Ay.aliasRegistry[e] || t[e] || e)
.filter((e, t, n) => n.indexOf(e) === t),
l,
b,
f,
e.s2sConfig
);
}
z(e, t, s, {
onResponse: function(n, s, i) {
n && t.forEach(e => u.Ic(d.qY.BIDDER_DONE, e));
const { seatNonBidData: c, atagData: g } = (function(
e,
t
) {
return { atagData: Q(t), seatNonBidData: K(e, t) };
})(e.s2sConfig, i);
if (
(c &&
u.Ic(d.qY.SEAT_NON_BID, {
seatnonbid: i.ext.seatnonbid,
auctionId: t[0].auctionId,
requestedBidders: s,
response: i,
adapterMetrics: p
}),
c || g)
) {
const e = {
seatnonbid: c,
atag: g,
auctionId: t[0].auctionId,
requestedBidders: s,
response: i,
adapterMetrics: p
};
u.Ic(d.qY.PBS_ANALYTICS, e);
}
r(!1),
(function(e, t, n, r) {
e.forEach(e => {
let s = o.Ay.getBidAdapter(e);
s &&
s.registerSyncs &&
a.$W.runWithBidder(
e,
s.registerSyncs.bind(s, [], t, n, r)
);
});
})(s, l, b, f);
},
onError(n, s) {
const { p1Consent: o = », noP1Consent: a = » } =
e?.s2sConfig?.endpoint || {};
o === a
? (0, i.vV)(
`Prebid server call failed: ‘${n}’. Endpoint: «${o}»}`,
s
)
: (0, i.vV)(
`Prebid server call failed: ‘${n}’. Endpoints: p1Consent «${o}», noP1Consent «${a}»}`,
s
),
t.forEach(e =>
u.Ic(d.qY.BIDDER_ERROR, {
error: s,
bidderRequest: e
})
),
r(s.timedOut);
},
onBid: function(t) {
let { adUnit: r, bid: s } = t;
const o = (s.metrics = e.metrics.fork().renameWith());
o.checkpoint(‘addBidResponse’),
(null != s.requestId && null != s.requestBidder) ||
e.s2sConfig.allowUnknownBidderCodes
? o.measureTime(‘addBidResponse.validate’, () =>
(0, c.fn)(r, s)
)
? n(r, s)
: n.reject(r, s, d.Tf.INVALID)
: ((0, i.JE)(
`PBS adapter received bid from unknown bidder (${s.bidder}), but ‘s2sConfig.allowUnknownBidderCodes’ is not set. Ignoring bid.`
),
n.reject(r, s, d.Tf.BIDDER_DISALLOWED));
},
onFledge: e => {
a.$W.runWithBidder(e.bidder, () => {
(0, c.JN)(
{ auctionId: t[0].auctionId, …e },
{ config: e.config }
);
});
}
});
}
}),
Object.assign(this, {
callBids: e.callBids,
setBidderCode: e.setBidderCode,
type: V
})
);
})(),
‘prebidServer’
),
(0, r.E)(‘prebidServerBidAdapter’);
}
},
e => {
e.O(0, [802, 618, 498, 225, 769, 139, 85], () => {
return (t = 1134), e((e.s = t));
var t;
});
e.O();
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[41],
{
2115: (d, e, n) => {
var t = n(7873),
s = n(9214),
i = n(1069);
const o = {
name: ‘pubProvidedId’,
gvlid: n(6916).B1,
decode(d) {
const e = d ? { pubProvidedId: d } : void 0;
return (
(0, i.fH)(
‘PubProvidedId: Decoded value ‘ + JSON.stringify(e)
),
e
);
},
getId(d) {
const e = (d && d.params) || {};
let n = [];
return (
(0, i.cy)(e.eids) && (n = n.concat(e.eids)),
‘function’ == typeof e.eidsFunction &&
(n = n.concat(e.eidsFunction())),
{ id: n }
);
}
};
(0, s.bz)(‘userId’, o), (0, t.E)(‘pubProvidedIdSystem’);
}
},
d => {
d.O(0, [802, 769, 139, 85], () => {
return (e = 2115), d((d.s = e));
var e;
});
d.O();
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[496],
{
5862: (e, o, t) => {
var n = t(7873),
r = t(1069),
d = t(9214),
i = t(2938),
a = t(6916),
u = t(5569),
c = t(2339);
const s = (0, i.vM)({ moduleType: u.fW, moduleName: ‘sharedId’ }),
l = ‘cookie’,
m = ‘html5’,
p = ‘_pubcid_optout’,
f = ‘PublisherCommonId’;
function g(e, o) {
if (o === l) return s.getCookie(e);
if (o === m && s.hasLocalStorage()) {
const o = s.getDataFromLocalStorage(`${e}_exp`);
if (!o) return s.getDataFromLocalStorage(e);
if (new Date(o).getTime() – Date.now() > 0)
return s.getDataFromLocalStorage(e);
}
}
function b(e, o) {
return function(t, n) {
o
? v(o, e, () => {
t(n() || e);
})()
: t(e);
};
}
function v(e) {
let o =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: »,
t = arguments.length > 2 ? arguments[2] : void 0;
if (!e) return;
const n = (0, r.Dl)(e);
n.search.id = encodeURIComponent(‘pubcid:’ + o);
const d = (0, r.c$)(n);
return function() {
(0, r.z$)(d, t);
};
}
function h() {
return !!(
(s.cookiesAreEnabled() && g(p, l)) ||
(s.hasLocalStorage() && g(p, m))
);
}
const I = {
name: ‘sharedId’,
aliasName: ‘pubCommonId’,
gvlid: a.B1,
decode(e, o) {
if (h())
return void (0, r.fH)(‘PubCommonId decode: Has opted-out’);
(0, r.fH)(‘ Decoded value PubCommonId ‘ + e);
return { pubcid: e };
},
getId: function() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
o = arguments.length > 1 ? arguments[1] : void 0,
t = arguments.length > 2 ? arguments[2] : void 0;
if (h()) return void (0, r.fH)(‘PubCommonId: Has opted-out’);
if (o?.coppa)
return void (0, r.fH)(
‘PubCommonId: IDs not provided for coppa requests, exiting PubCommonId’
);
const { params: { create: n = !0, pixelUrl: d } = {} } = e;
let i = t;
if (!i) {
try {
‘object’ == typeof window[f] && (i = window[f].getId());
} catch (e) {}
i || (i = n && (0, r.N9)() ? (0, r.lk)() : void 0);
}
return { id: i, callback: b(i, d) };
},
extendId: function() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
o = arguments.length > 1 ? arguments[1] : void 0,
t = arguments.length > 2 ? arguments[2] : void 0;
if (h())
return (
(0, r.fH)(‘PubCommonId: Has opted-out’), { id: void 0 }
);
if (o?.coppa)
return void (0, r.fH)(
‘PubCommonId: IDs not provided for coppa requests, exiting PubCommonId’
);
const { params: { extend: n = !1, pixelUrl: d } = {} } = e;
if (n) {
if (d) {
return { callback: v(d, t) };
}
return { id: t };
}
},
domainOverride: (0, c.w)(s, ‘sharedId’),
eids: {
pubcid(e, o) {
const t = {
source: ‘pubcid.org’,
uids: e.map(e => ({ id: e, atype: 1 }))
};
return (
null != o?.params?.inserter &&
(t.inserter = o.params.inserter),
t
);
}
}
};
(0, d.bz)(‘userId’, I), (0, n.E)(‘sharedIdSystem’);
}
},
e => {
e.O(0, [764, 802, 769, 139, 85], () => {
return (o = 5862), e((e.s = o));
var o;
});
e.O();
}
]);
(self.tlpbjsChunk = self.tlpbjsChunk || []).push([
[469],
{
4836: (e, t, n) => {
var r = n(7873),
o = n(3272),
s = n(5023),
i = n(1445),
a = n(8969),
c = n(9214),
u = n(1069);
const l = new Map();
function d(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: l;
const n = {};
function r(e) {
const t = JSON.stringify([
e.source?.toLowerCase(),
…Object.keys(e)
.filter(e => ![‘uids’, ‘source’].includes(e))
.sort()
.map(t => e[t])
]);
n.hasOwnProperty(t) ? n[t].uids.push(…e.uids) : (n[t] = e);
}
return (
Object.entries(e).forEach(e => {
let [n, o] = e;
o = Array.isArray(o) ? o : [o];
const s = t.get(n);
let i;
if (‘pubProvidedId’ === n) i = (0, u.Go)(o);
else if (‘function’ == typeof s)
try {
(i = s(o)),
Array.isArray(i) || (i = [i]),
i.forEach(
e =>
(e.uids = e.uids.filter(e => {
let { id: t } = e;
return (0, u.O8)(t);
}))
),
(i = i.filter(e => {
let { uids: t } = e;
return t?.length > 0;
}));
} catch (e) {
(0, u.vV)(`Could not generate EID for «${n}»`, e);
}
else
i = o.map(e =>
(function(e, t, n) {
if (n && e) {
let t = {};
t.source = (0, u.fp)(n.getSource)
? n.getSource(e)
: n.source;
const r = (0, u.fp)(n.getValue) ? n.getValue(e) : e;
if ((0, u.O8)(r)) {
const o = { id: r, atype: n.atype };
if ((0, u.fp)(n.getUidExt)) {
const t = n.getUidExt(e);
t && (o.ext = t);
}
if (
((t.uids = [o]),
n.inserter || (0, u.fp)(n.getInserter))
) {
const r = (0, u.fp)(n.getInserter)
? n.getInserter(e)
: n.inserter;
null != r && (t.inserter = r);
}
if (n.matcher || (0, u.fp)(n.getMatcher)) {
const r = (0, u.fp)(n.getMatcher)
? n.getMatcher(e)
: n.matcher;
null != r && (t.matcher = r);
}
if (
(null != n.mm && (t.mm = n.mm),
(0, u.fp)(n.getEidExt))
) {
const r = n.getEidExt(e);
r && (t.ext = r);
}
return t;
}
}
return null;
})(e, 0, s)
);
Array.isArray(i) && i.filter(e => null != e).forEach(r);
}),
Object.values(n)
);
}
function f(e) {
const t = new Map(),
n = {};
return (
Object.entries(e).forEach(e => {
let [r, o] = e;
const s = o();
if (s) {
n[r] = s.idObj[r];
let e = s.submodule.eids?.[r];
‘function’ == typeof e &&
((i = e),
(e = function() {
for (
var e = arguments.length, t = new Array(e), n = 0;
n < e;
n++
)
t[n] = arguments[n];
return i(…t, s.config);
})),
t.set(r, e);
}
var i;
}),
d(n, t)
);
}
var g = n(2938),
m = n(3172),
b = n(1692),
h = n(5555),
p = n(6894),
y = n(5973),
I = n(6916),
w = n(5569),
v = n(5139),
S = n(6811),
D = n(3441),
E = n(8230),
O = n(8934);
const k = ‘User ID’,
$ = g.X0,
j = g.qk,
A = ‘_pbjs_id_optout’,
U = (0, g.CK)(‘userId’),
T = { isAllowed: v.io };
let C,
x,
N,
L,
_,
P,
H = [],
M = [],
J = {},
q = [];
const V = (() => {
let e;
return () => (null == e && (e = (0, p.K7)()), e);
})();
function F(e) {
return V()
.fork()
.renameWith(t => [`userId.mod.${t}`, `userId.mods.${e}.${t}`]);
}
function W(e, t) {
t = t || e.storageMgr;
const n =
‘function’ == typeof e.submodule.domainOverride
? e.submodule.domainOverride()
: null,
r = e.config.storage.name;
return function(e, o, s) {
t.setCookie(r + (e || »), o, s, ‘Lax’, n);
};
}
function G(e, t) {
const n = e.config.storage;
try {
const r = new Date(
Date.now() + 864e5 * n.expires
).toUTCString(),
o = (0, u.Qd)(t) ? JSON.stringify(t) : t;
e.enabledStorageTypes.forEach(t => {
switch (t) {
case $:
!(function(e, t, n) {
const r = e.config.storage,
o = W(e);
o(null, t, n),
o(‘_cst’, me(), n),
‘number’ == typeof r.refreshInSeconds &&
o(‘_last’, new Date().toUTCString(), n);
})(e, o, r);
break;
case j:
!(function(e, t, n) {
const r = e.config.storage,
o = e.storageMgr;
o.setDataInLocalStorage(`${r.name}_exp`, n),
o.setDataInLocalStorage(`${r.name}_cst`, me()),
o.setDataInLocalStorage(
r.name,
encodeURIComponent(t)
),
‘number’ == typeof r.refreshInSeconds &&
o.setDataInLocalStorage(
`${r.name}_last`,
new Date().toUTCString()
);
})(e, o, r);
}
});
} catch (e) {
(0, u.vV)(e);
}
}
function R(e) {
ve(e),
e.enabledStorageTypes.forEach(t => {
switch (t) {
case $:
!(function(e) {
const t = W(e, U),
n = new Date(Date.now() – 864e5).toUTCString();
[», ‘_last’, ‘_cst’].forEach(e => {
try {
t(e, », n);
} catch (e) {
(0, u.vV)(e);
}
});
})(e);
break;
case j:
!(function(e) {
[», ‘_last’, ‘_exp’, ‘_cst’].forEach(t => {
try {
U.removeDataFromLocalStorage(
e.config.storage.name + t
);
} catch (e) {
(0, u.vV)(e);
}
});
})(e);
}
});
}
function B(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: void 0;
const n = e.config.storage,
r = t ? `${n.name}_${t}` : n.name;
let o;
try {
e.enabledStorageTypes.find(t => {
switch (t) {
case $:
o = (function(e, t) {
return e.storageMgr.getCookie(t);
})(e, r);
break;
case j:
o = (function(e, t) {
const n = e.storageMgr,
r = e.config.storage,
o = n.getDataFromLocalStorage(`${r.name}_exp`);
return » === o
? n.getDataFromLocalStorage(t)
: o && new Date(o).getTime() – Date.now() > 0
? decodeURIComponent(n.getDataFromLocalStorage(t))
: void 0;
})(e, r);
}
return !!o;
}),
‘string’ == typeof o &&
‘{‘ === o.trim().charAt(0) &&
(o = JSON.parse(o));
} catch (e) {
(0, u.vV)(e);
}
return o;
}
function Q(e, t, n) {
t = V()
.fork()
.startTiming(‘userId.callbacks.total’)
.stopBefore(t);
const r = (0, u.U6)(() => {
clearTimeout(x), t();
}, e.length);
e.forEach(function(e) {
const t = F(e.submodule.name)
.startTiming(‘callback’)
.stopBefore(r);
try {
e.callback(function(r) {
r
? (e.config.storage && G(e, r),
(e.idObj = e.submodule.decode(r, e.config)),
n.refresh(),
he(n))
: (0, u.fH)(
`${k}: ${e.submodule.name} – request id responded with an empty value`
),
t();
}, B.bind(null, e));
} catch (n) {
(0, u.vV)(`Error in userID module ‘${e.submodule.name}’:`, n),
t();
}
e.callback = void 0;
});
}
function K(e) {
return Object.fromEntries(
Object.entries(e)
.map(e => {
let [t, n] = e;
return [t, n()?.idObj?.[t]];
})
.filter(e => {
let [t, n] = e;
return null != n;
})
);
}
function Y(e, t, n) {
const r = {};
return (
e.forEach(e => {
const o = n(e),
s = (function(e) {
if (e.primaryIds) return e.primaryIds;
const t = Object.keys(e.eids ?? {});
if (t.length > 1)
throw new Error(
`ID submodule ${e.name} can provide multiple IDs, but does not specify ‘primaryIds’`
);
return t;
})(o);
t(e).forEach(t => {
const n = (r[t] = r[t] ?? []),
i = J[t]?.indexOf(o.name) ?? (s.includes(t) ? 0 : -1),
a = n.findIndex(e => {
let [t] = e;
return t < i;
});
n.splice(-1 === a ? n.length : a, 0, [i, e]);
});
}),
Object.fromEntries(
Object.entries(r).map(e => {
let [t, n] = e;
return [
t,
n.map(e => {
let [t, n] = e;
return n;
})
];
})
)
);
}
function z() {
const e = {
submodules: [],
global: {},
bidder: {},
combined: {},
refresh() {
let t =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: [];
const n = new Set(t.map(e => e.submodule));
(e.submodules = e.submodules
.filter(e => !n.has(e.submodule))
.concat(t)),
(function() {
const t = Y(
e.submodules,
e => Object.keys(e.idObj ?? {}),
e => e.submodule
),
n = {},
r = {};
function o(e, t, n) {
return function() {
for (const {
allowed: r,
bidders: o,
module: s
} of n) {
if (
!T.isAllowed(
S.yl,
(0, D.s)(w.fW, s?.config?.name, { init: !1 })
)
)
continue;
const i = s.idObj?.[e];
if (null != i) {
if (r) return s;
if (t) {
const t = e =>
e
.map(e => e.module.submodule.name)
.join(‘, ‘);
return (
(0, u.JE)(
`userID modules ${t(
n
)} provide the same ID (‘${e}’); ${
s.submodule.name
} is the preferred source, but it’s configured only for some bidders, unlike ${t(
n.filter(e => null == e.bidders)
)}. Other bidders will not see the «${e}» ID.`
),
null
);
}
if (null == o) return null;
}
}
return null;
};
}
Object.entries(t).forEach(e => {
let [t, s] = e,
i = !0;
const a = new Set();
(s = s.map(e => {
let t = null;
return (
Array.isArray(e.config.bidders) &&
e.config.bidders.length > 0
? ((t = e.config.bidders),
t.forEach(e => a.add(e)))
: (i = !1),
{ module: e, bidders: t }
);
})),
i ||
(n[t] = o(
t,
!0,
s.map(e => {
let { bidders: t, module: n } = e;
return {
allowed: null == t,
bidders: t,
module: n
};
})
)),
a.forEach(e => {
(r[e] = r[e] ?? {}),
(r[e][t] = o(
t,
!1,
s.map(t => {
let { bidders: n, module: r } = t;
return {
allowed: n?.includes(e),
bidders: n,
module: r
};
})
));
});
});
const s = Object.values(r)
.concat([n])
.reduce((e, t) => Object.assign(e, t), {});
Object.assign(e, { global: n, bidder: r, combined: s });
})();
}
};
return e;
}
function X(e) {
let { adUnits: t, ortb2Fragments: n } = e;
if (
((n = n ?? { global: {}, bidder: {} }),
(function(e) {
const { global: t, bidder: n } = e,
{ global: r, bidder: o } = C,
s = f(r);
s.length > 0 &&
(0, m.J)(
t,
‘user.ext.eids’,
(t.user?.ext?.eids ?? []).concat(s)
),
Object.entries(o).forEach(e => {
let [t, r] = e;
const o = f(r);
o.length > 0 &&
(0, m.J)(
n,
`${t}.user.ext.eids`,
(n[t]?.user?.ext?.eids ?? []).concat(o)
);
});
})(n),
[t].some(e => !Array.isArray(e) || !e.length))
)
return;
const r = K(C.global),
o = n.global.user?.ext?.eids || [];
t.forEach(e => {
e.bids &&
(0, u.cy)(e.bids) &&
e.bids.forEach(e => {
const t = Object.assign({}, r, K(C.bidder[e.bidder] ?? {})),
s = o.concat(n.bidder?.[e.bidder]?.user?.ext?.eids || []);
Object.keys(t).length > 0 && (e.userId = t),
s.length > 0 && (e.userIdAsEids = s);
});
});
}
const Z = {};
let ee;
function te() {
let e =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: ie() || [];
const t = _ && e.find(e => e.source === _);
if (t && ‘string’ == typeof t?.uids?.[0]?.id) {
const e = t.uids[0].id.replace(/[W_]/g, »);
if (e.length >= 32 && e.length <= 150) return e;
(0, u.JE)(
`User ID – Googletag Publisher Provided ID for ${_} is not between 32 and 150 characters – ${e}`
);
}
}
const ne = (0, p.Ak)(‘userId’, function(e, t) {
let { mkDelay: n = h.cb, getIds: r = ge } =
arguments.length > 2 && void 0 !== arguments[2]
? arguments[2]
: {};
h.U9.race([r().catch(() => null), n(L)]).then(() => {
X(t),
V().join((0, p.BO)(t.metrics), {
propagate: !1,
includeGroups: !0
}),
e.call(this, t);
});
}),
re = (0, p.Ak)(‘userId’, function(e, t) {
X(t), e.call(this, t);
});
function oe() {
return !!O.gH.getHooks({ hook: ne }).length;
}
function se() {
return K(C.combined);
}
function ie() {
return f(C.combined);
}
function ae(e) {
return ie().filter(t => t.source === e)[0];
}
function ce(e, t, n) {
return de().then(() => {
let r = {};
if ((0, u.fp)(n)) {
(0, u.fH)(
`${k} – Getting encrypted signal from custom function : ${n.name} & source : ${e} `
);
const t = n(e);
r[e] = t ? ue(t) : null;
} else {
const n = ae(e);
(0, u.fH)(
`${k} – Getting encrypted signal for eids :${JSON.stringify(
n
)}`
),
(0, u.Im)(n) ||
(r[n.source] = !0 === t ? ue(n) : n.uids[0].id);
}
return (
(0, u.fH)(`${k} – Fetching encrypted eids: ${r[e]}`), r[e]
);
});
}
function ue(e) {
let t =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: 1,
n = »;
if (1 === t)
n =
‘object’ == typeof e
? window.btoa(JSON.stringify(e))
: window.btoa(e);
return `${t}||${n}`;
}
function le() {
if (!(0, u.II)()) return;
window.googletag.secureSignalProviders =
window.googletag.secureSignalProviders || [];
const e = o.$W.getConfig(‘userSync.encryptedSignalSources’);
if (e) {
const t = e.registerDelay || 0;
setTimeout(() => {
e.sources &&
e.sources.forEach(e => {
let { source: t, encrypt: n, customFunc: r } = e;
t.forEach(e => {
window.googletag.secureSignalProviders.push({
id: e,
collectorFunction: () => ce(e, n, r)
});
});
});
}, t);
} else
(0, u.JE)(
`${k} – ESP : encryptedSignalSources config not defined under userSync Object`
);
}
function de(e) {
return ee(e).then(
() => se(),
e =>
e === Z
? Promise.resolve().then(ge)
: ((0, u.vV)(‘Error initializing userId’, e),
h.U9.reject(e))
);
}
function fe() {
let { submoduleNames: e } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {},
t = arguments.length > 1 ? arguments[1] : void 0;
return de({ refresh: !0, submoduleNames: e }).then(
e => (t && (0, u.fp)(t) && t(), e)
);
}
function ge() {
return de();
}
function me() {
let e = Number(I.SL.hash);
const t = [];
for (; e > 0; ) t.push(String.fromCharCode(255 & e)), (e >>>= 8);
return btoa(t.join());
}
function be(e, t) {
const n = I.SL.getConsentData();
if (e.config.storage) {
let r,
o = B(e),
s = !1;
if (‘number’ == typeof e.config.storage.refreshInSeconds) {
const t = new Date(B(e, ‘last’));
s =
t &&
Date.now() – t.getTime() >
1e3 * e.config.storage.refreshInSeconds;
}
if (
!o ||
s ||
t ||
(function(e) {
const t = B(e, ‘cst’);
return !t || t !== me();
})(e)
) {
const t = Object.assign(
{ enabledStorageTypes: e.enabledStorageTypes },
e.config
);
r = e.submodule.getId(t, n, o);
} else
‘function’ == typeof e.submodule.extendId &&
(r = e.submodule.extendId(e.config, n, o));
(0, u.Qd)(r) &&
(r.id && (G(e, r.id), (o = r.id)),
‘function’ == typeof r.callback && (e.callback = r.callback)),
o && (e.idObj = e.submodule.decode(o, e.config));
} else if (e.config.value) e.idObj = e.config.value;
else {
const t = e.submodule.getId(e.config, n);
(0, u.Qd)(t) &&
(‘function’ == typeof t.callback && (e.callback = t.callback),
t.id && (e.idObj = e.submodule.decode(t.id, e.config)));
}
}
function he(e) {
const t = f(e.combined);
if (t.length && _) {
const e = te(t);
e &&
((0, u.II)()
? window.googletag.pubads().setPublisherProvidedId(e)
: ((window.googletag = window.googletag || {}),
(window.googletag.cmd = window.googletag.cmd || []),
window.googletag.cmd.push(function() {
window.googletag.pubads().setPublisherProvidedId(e);
})));
}
}
function pe(e, t) {
let n =
arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
return V()
.fork()
.measureTime(‘userId.init.modules’, function() {
if (!t.length) return [];
if (
(t.forEach(e => ve(e)),
!(t = t.filter(
e =>
(!e.config.storage || !!e.enabledStorageTypes.length) &&
T.isAllowed(S.yl, (0, D.s)(w.fW, e.config.name))
)).length)
)
return (0, u.JE)(`${k} – no ID module configured`), [];
const r = t.reduce(
(e, t) =>
F(t.submodule.name).measureTime(‘init’, () => {
try {
be(t, n), e.push(t);
} catch (e) {
(0, u.vV)(
`Error in userID module ‘${t.submodule.name}’:`,
e
);
}
return e;
}),
[]
);
return e.refresh(r), he(e), r;
});
}
function ye(e) {
return e?.storage?.type?.trim().split(/s*&s*/) || [];
}
function Ie(e) {
function t(e) {
for (
var t = arguments.length,
n = new Array(t > 1 ? t – 1 : 0),
r = 1;
r < t;
r++
)
n[r – 1] = arguments[r];
(0, u.JE)(`Invalid userSync.userId config: ${e}`, …n);
}
return Array.isArray(e)
? e.filter(e => {
if (!e?.name) return t(‘must specify «name»‘, e);
if (e.storage) {
if (!e.storage.name || !e.storage.type)
return t(
‘must specify «storage.name» and «storage.type»‘,
e
);
if (
!(function(e) {
return ye(e).every(e => we.has(e));
})(e)
)
return t(‘invalid «storage.type»‘, e);
[‘expires’, ‘refreshInSeconds’].forEach(n => {
let r = e.storage[n];
null != r &&
‘number’ != typeof r &&
((r = Number(r)),
isNaN(r)
? (t(
`storage.${n} must be a number and will be ignored`,
e
),
delete e.storage[n])
: (e.storage[n] = r));
});
}
return !0;
})
: (null != e && t(‘must be an array’, e), []);
}
const we = new Set([j, $]);
function ve(e) {
if (e.enabledStorageTypes) return;
const t = ye(e.config);
e.enabledStorageTypes = t.filter(t => {
switch (t) {
case j:
return (function(e) {
return !(
!e.storageMgr.localStorageIsEnabled() ||
(U.getDataFromLocalStorage(A) &&
((0, u.fH)(
`${k} – opt-out localStorage found, storage disabled`
),
1))
);
})(e);
case $:
return (function(e) {
return !(
!e.storageMgr.cookiesAreEnabled() ||
(U.getCookie(A) &&
((0, u.fH)(
`${k} – opt-out cookie found, storage disabled`
),
1))
);
})(e);
}
return !1;
});
}
function Se(e) {
l.clear(),
Object.entries(
Y(
e,
e => Object.keys(e.eids || {}),
e => e
)
).forEach(e => {
let [t, n] = e;
return l.set(t, n[0].eids[t]);
});
}
function De() {
Se(q);
const e = Ie(M);
if (!e.length) return;
const t = q.filter(e => !(H || []).find(t => t.name === e.name));
H.splice(0, H.length),
t
.map(t => {
const n = (e || []).find(
e =>
e.name &&
(e.name.toLowerCase() === t.name.toLowerCase() ||
(t.aliasName &&
e.name.toLowerCase() === t.aliasName.toLowerCase()))
);
return (
n && t.name !== n.name && (n.name = t.name),
n
? {
submodule: t,
config: n,
callback: void 0,
idObj: void 0,
storageMgr: (0, g.vM)({
moduleType: w.fW,
moduleName: n.name
})
}
: null
);
})
.filter(e => null !== e)
.forEach(e => H.push(e)),
H.length &&
(oe() ||
(O.gH.getHooks({ hook: re }).remove(),
O.gH.before(ne, 100),
i.Ay.callDataDeletionRequest.before(Ee),
b.Q.after(e => e(te()))),
(0, u.fH)(
`${k} – usersync config updated for ${H.length} submodules: `,
H.map(e => e.submodule.name)
));
}
function Ee(e) {
for (
var t = arguments.length,
n = new Array(t > 1 ? t – 1 : 0),
r = 1;
r < t;
r++
)
n[r – 1] = arguments[r];
(0, u.fH)(
‘UserID: received data deletion request; deleting all stored IDs…’
),
H.forEach(e => {
if (‘function’ == typeof e.submodule.onDataDeletionRequest)
try {
e.submodule.onDataDeletionRequest(
e.config,
e.idObj,
…n
);
} catch (t) {
(0, u.vV)(
`Error calling onDataDeletionRequest for ID submodule ${e.submodule.name}`,
t
);
}
R(e);
}),
e.apply(this, n);
}
function Oe(e) {
return function() {
return Promise.resolve(e.apply(this, arguments));
};
}
function ke(e) {
let { mkDelay: t = h.cb } =
arguments.length > 1 && void 0 !== arguments[1]
? arguments[1]
: {};
(_ = void 0),
(H = []),
(M = []),
(C = z()),
(ee = (function() {
let { mkDelay: e = h.cb } =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
const t = (0, h.v6)(),
n = (0, h.v6)();
let r,
o,
i = !1;
function l(e) {
return (
(o = V().fork()),
null != r && r.reject(Z),
(r = (0, h.v6)()),
h.U9.race([e, r.promise]).finally(
o.startTiming(‘userId.total’)
)
);
}
let d = C,
f = H;
function g(e) {
return function() {
if (d === C && f === H) return e(…arguments);
};
}
function m() {
return I.SL.promise.finally(
o.startTiming(‘userId.init.consent’)
);
}
let b = l(
h.U9.all([c.Gc, t.promise])
.then(m)
.then(
g(() => {
pe(d, f);
})
)
.then(() =>
n.promise.finally(
o.startTiming(‘userId.callbacks.pending’)
)
)
.then(
g(() => {
const e = d.submodules.filter(e =>
(0, u.fp)(e.callback)
);
if (e.length) return new h.U9(t => Q(e, t, d));
})
)
);
return function() {
let {
refresh: r = !1,
submoduleNames: o = null,
ready: c = !1
} =
arguments.length > 0 && void 0 !== arguments[0]
? arguments[0]
: {};
return (
c &&
!i &&
((i = !0),
t.resolve(),
L > 0
? n.resolve()
: s.on(a.qY.AUCTION_END, function t() {
s.AU(a.qY.AUCTION_END, t), e(N).then(n.resolve);
})),
r &&
i &&
(b = l(
b
.catch(() => null)
.then(m)
.then(
g(() => {
const e = pe(
d,
f.filter(
e =>
null == o || o.includes(e.submodule.name)
),
!0
).filter(e => null != e.callback);
if (e.length) return new h.U9(t => Q(e, t, d));
})
)
)),
b
);
};
})({ mkDelay: t })),
null != P && P(),
(q = []),
(P = e.getConfig(‘userSync’, e => {
const t = e.userSync;
t &&
((_ = t.ppid),
t.userIds &&
((M = t.userIds),
(N = (0, u.Et)(t.syncDelay)
? t.syncDelay
: E.qh.syncDelay),
(L = (0, u.Et)(t.auctionDelay)
? t.auctionDelay
: E.qh.auctionDelay),
De(),
(function(e, t) {
if (e) {
const n = {},
r = new Map(
t.map(e =>
e.aliasName ? [e.aliasName, e.name] : []
)
);
Object.keys(e).forEach(t => {
const o = (0, u.cy)(e[t])
? […e[t]].reverse()
: [];
n[t] = o.map(e => (r.has(e) ? r.get(e) : e));
}),
(J = n);
} else J = {};
C.refresh(), Se(t);
})(t.idPriority, q),
ee({ ready: !0 })));
})),
((0, r.m)().getUserIds = se),
((0, r.m)().getUserIdsAsEids = ie),
((0, r.m)().getEncryptedEidsForSource = Oe(ce)),
((0, r.m)().registerSignalSources = le),
((0, r.m)().refreshUserIds = Oe(fe)),
((0, r.m)().getUserIdsAsync = Oe(ge)),
((0, r.m)().getUserIdsAsEidBySource = ae),
oe() || O.gH.before(re, 100);
}
ke(o.$W),
(0, c.xG)(
‘userId’,
function(e) {
(e.findRootDomain = y.S),
(q || []).find(t => t.name === e.name) ||
(q.push(e),
I.o2.register(w.fW, e.name, e.gvlid),
De(),
ee({ refresh: !0, submoduleNames: [e.name] }));
},
{ postInstallAllowed: !0 }
),
(0, r.E)(‘userId’);
}
},
e => {
e.O(0, [802, 769, 139, 85], () => {
return (t = 4836), e((e.s = t));
var t;
});
e.O();
}
]);
})(),
tlpbjs.processQueue();

tlpbjs.config = {};
tlpbjs.config.domain = window.location.hostname.replace(‘www.’, »);
if (account) {
tlpbjs.config.account = account;
} else {
tlpbjs.config.account = ‘tl’;
}
tlpbjs.config.debug = window.location.search.indexOf(‘tlpbjs=debug’) > -1;
tlpbjs.defineSlot = window.googletag.defineSlot;

tlpbjs.nativeRender = function(state) {
var winners = tlpbjs.getHighestCpmBids([state.divId]);
if (tlpbjs.config.debug) console.log(‘tlpbjs: winners: ‘ + winners.length);
for (var i = 0; i < winners.length; i++) {
var winningBid = winners[i];
if (winningBid && winningBid.adId) {
if (tlpbjs.config.debug)
console.log(‘tlpbjs: winning bid id: ‘ + winningBid.adId);
if (state.div) {
state.div.innerHTML = »;
state.div.align = ‘center’;
state.div.style = ‘padding:0;margin:0;border:0pt none;’;
let iframe = document.createElement(‘iframe’);
iframe.frameBorder = 0;
iframe.setAttribute(‘marginwidth’, ‘0’);
iframe.setAttribute(‘marginheight’, ‘0’);
iframe.scrolling = ‘no’;
iframe.style =
‘overflow:hidden;display:block;border-style:none;border:0px;’;
state.div.appendChild(iframe);
var iframeDoc = iframe.contentWindow.document;
tlpbjs.renderAd(iframeDoc, winningBid.adId);
}
}
}
};

tlpbjs.tlRequestBids = function(state) {
if (state.gamSlotId) {
tlpbjs.requestBids({
adUnitCodes: [state.gamSlot.getSlotElementId()],
bidsBackHandler: function() {
tlpbjs.setTargetingForGPTAsync([state.gamSlot.getSlotElementId()]);
googletag.pubads().refresh([state.gamSlot]);
}
});
} else {
tlpbjs.requestBids({
adUnitCodes: [state.divId],
bidsBackHandler: function() {
tlpbjs.nativeRender(state);
}
});
}
};

tlpbjs.getPPID = function() {
if (localStorage) {
var permutive_id = localStorage.getItem(‘permutive-id’);
if (permutive_id) {
return permutive_id;
} else {
var teal_id = localStorage.getItem(‘teal-id’);
if (teal_id) {
return teal_id;
}
var newUUID = crypto
? crypto.randomUUID().toString()
: Math.random()
.toString()
.replace(‘0.’, ») +
Math.random()
.toString()
.replace(‘0.’, »);
localStorage.setItem(‘teal-id’, newUUID);
return newUUID;
}
} else {
return new crypto()
? crypto.randomUUID().toString()
: Math.random()
.toString()
.replace(‘0.’, ») +
Math.random()
.toString()
.replace(‘0.’, »);
}
};

tlpbjs.que.push(function() {
tlpbjs.setConfig({
s2sConfig: {
accountId: tlpbjs.config.account,
bidders: [‘teal-s2s’],
timeout: 2200,
maxTimeout: 2200,
enabled: true,
adapter: ‘prebidServer’,
endpoint: ‘https://a.bids.ws/openrtb2/auction’,
syncEndpoint: ‘https://a.bids.ws/cookie_sync’,
coopSync: true,
allowUnknownBidderCodes: true
},
ortb2: {
ext: {
prebid: {
storedrequest: {
id: tlpbjs.config.account
}
}
}
},
useBidCache: true,
bidderTimeout: 2500,
enableTIDs: true,
bidderSequence: ‘random’,
enableSendAllBids: false,
auctionOptions: {
suppressStaleRender: true
},
consentManagement: {
usp: {
cmpApi: ‘iab’,
timeout: 0
},
…(typeof __tcfapi === ‘function’ && {
gdpr: {
cmpApi: ‘iab’,
allowAuctionWithoutConsent: true,
timeout: 0,
defaultGdprScope: true
}
})
},
userSync: {
ppid: tlpbjs.config.domain,
filterSettings: {
iframe: {
bidders: ‘*’,
filter: ‘include’
}
},
userIds: [
{
name: ‘pubProvidedId’,
params: {
eids: [
{
source: tlpbjs.config.domain,
uids: [
{
id: tlpbjs.getPPID(),
atype: 1,
ext: {
stype: ‘ppuid’
}
}
]
}
]
}
},
{
name: ‘criteo’
},
{
name: ‘sharedId’,
storage: {
name: ‘_sharedID’,
type: ‘cookie’,
expires: 365
}
}
]
}
});
tlpbjs.bidderSettings = {
standard: {
adserverTargeting: [
{
key: ‘tl_bidder’,
val: function(bidResponse) {
return bidResponse.bidderCode;
}
},
{
key: ‘tl_adid’,
val: function(bidResponse) {
return bidResponse.adId;
}
},
{
key: ‘tl_pb’,
val: function(bidResponse) {
return bidResponse.pbHg;
}
},
{
key: ‘tl_size’,
val: function(bidResponse) {
return bidResponse.size;
}
},
{
key: ‘tl_source’,
val: function(bidResponse) {
return bidResponse.source;
}
},
{
key: ‘tl_format’,
val: function(bidResponse) {
return bidResponse.mediaType;
}
}
]
}
};
tlpbjs.onEvent(‘beforeRequestBids’, function(adUnits) {
adUnits.forEach(a => {
if (a.mediaTypes && a.mediaTypes.banner && a.mediaTypes.banner.sizes) {
delete a.mediaTypes.banner.sizes;
}
});
});
window.pbjs = window.pbjs || window.tlpbjs;
});

tlpbjs.renderTlDynamicAd = function(state) {
tlpbjs.que.push(function() {
if (!tlpbjs.adUnits.find(e => e.code === state.divId)) {
var new_unit = [
{
code: state.divId,
mediaTypes: {
banner: {
sizes: [[1, 1]]
}
},
ortb2Imp: {
ext: {
prebid: {
storedrequest: {
id: state.storedImp
},
…(window.location.search.indexOf(‘tl=test’) > -1 && {
storedauctionresponse: { id: ‘test-placement300x250’ }
})
}
}
},
bids: [
{
bidder: ‘teal-s2s’
}
]
}
];
tlpbjs.addAdUnits(new_unit);
}

var other_eids;
if (window.owpbjs && window.owpbjs.getUserIdsAsEids) {
other_eids = window.owpbjs.getUserIdsAsEids();
} else if (window.ihowpbjs && window.ihowpbjs.getUserIdsAsEids) {
other_eids = window.ihowpbjs.getUserIdsAsEids();
} else if (window.pbjs && window.pbjs.getUserIdsAsEids) {
other_eids = window.pbjs.getUserIdsAsEids();
}
if (other_eids && other_eids.filter) {
other_eids = other_eids.filter(
e =>
![‘criteo.com’, tlpbjs.config.domain, ‘pubcid.org’].includes(
e[‘source’]
)
);
tlpbjs.mergeConfig({
ortb2: {
user: {
ext: {
eids: other_eids
}
}
}
});
}

tlpbjs.tlRequestBids(state);
});
};

tlpbjs.initGam = function(state) {
window.googletag = window.googletag || { cmd: [] };
window.googletag.cmd.push(function() {
if (state.gamSlotId) {
state.gamSlot = window.googletag
.pubads()
.getSlots()
.find(element => element.getSlotElementId() === state.divId);
if (!state.gamSlot) {
if (state.size && Array.isArray(state.size)) {
if (!state.size.includes(1)) {
state.size = [state.size, [1, 1]];
}
} else {
state.size = [[1, 1]];
}
state.gamSlot = tlpbjs
.defineSlot(state.gamSlotId, state.size, state.divId)
.addService(googletag.pubads());
} else {
var sizes = state.gamSlot.getSizes();
if (!sizes.find(e => e[‘width’] == 1)) {
var sizeArray = [[1, 1]];
sizes.forEach(e => sizeArray.push([e[‘width’], e[‘height’]]));
state.gamSlot.defineSizeMapping(
googletag
.sizeMapping()
.addSize([0, 0], sizeArray)
.build()
);
}
}
}
});
};
}

function triggerTealReplace(account) {
window.googletag = window.googletag || { cmd: [] };
window.googletag.cmd.push(function() {
if (window.location.search.indexOf(‘tl=disable’) > -1) return;
var identifier = ‘recovered-ad-slot-‘;
var gptDefineSlot = window.googletag.defineSlot;
var adCounter = 0;

if (!window.tlpbjs || !window.tlpbjs.config)
loadTlpbjs(account ? account : ‘npg’);

function defineSlotOverride(adUnitPath, sizes, divId) {
//only pass 0,0 if parent node has recovered child already
var div = document.getElementById(divId);
var emptyParent = true;
if (
div.parentNode &&
div.parentNode.children &&
div.parentNode.children.forEach
) {
div.parentNode.children.forEach(e => {
if (e.id.startsWith(identifier)) {
emptyParent = false;
}
});
}
var slot = gptDefineSlot(adUnitPath, emptyParent ? sizes : [0, 0], divId);
runAuctionForSlot(divId, slot.getSizes());
return slot;
}
function runAuctionForSlot(divId, sizes, isRefresh) {
//check sizes – don’t render if width or height <= 2 (1×1,2×2 etc.)
var tooSmall = false;
var maxSize = [0, 0];
if (sizes && sizes[0]) {
if (Number.isInteger(sizes[0])) {
maxSize = sizes;
} else {
sizes.forEach(e => {
if (Array.isArray(e) && e[0] > maxSize[0]) {
maxSize[0] = e[0];
} else if (e.width > maxSize[0]) {
maxSize[0] = e.width;
}
if (Array.isArray(e) && e[1] > maxSize[1]) {
maxSize[1] = e[1];
} else if (e.height > maxSize[1]) {
maxSize[1] = e.height;
}
});
}
if (maxSize[0] <= 2 || maxSize[1] <= 2) {
tooSmall = true;
}
} else {
tooSmall = true;
}
var slot = document.getElementById(divId);
if (slot) {
//check to see if there is already an recovered slot in parent
var emptyParent = true;
if (
slot.parentNode &&
slot.parentNode.children &&
slot.parentNode.children.forEach
) {
slot.parentNode.children.forEach(e => {
if (e.id.startsWith(identifier)) {
emptyParent = false;
}
});
}
if (emptyParent || isRefresh) {
slot.innerHTML = »;
if (!isRefresh) slot.id = identifier + adCounter++;
if (!tooSmall) {
var urlParams = new URLSearchParams(window.location.search);
var state = {
divId: slot.id,
div: slot,
…(urlParams.get(‘tlgamslot’) && {
gamSlotId: urlParams.get(‘tlgamslot’)
}),
size: maxSize
};

if (maxSize[0] >= 728) state.storedImp = ‘recovered728x90’;
else if (maxSize[0] <= 160) state.storedImp = ‘recovered160x600’;
else if (maxSize[1] >= 250) state.storedImp = ‘recovered300x250’;
else if (maxSize[0] >= 320) state.storedImp = ‘recovered320x100’;

if (state.storedImp) {
if (state.gamSlotId) {
if (isRefresh)
state.gamSlot = window.googletag
.pubads()
.getSlots()
.find(
element => element.getSlotElementId() === state.divId
);
else window.tlpbjs.initGam(state);
}
window.tlpbjs.renderTlDynamicAd(state);
observeSlotInView(state); //start refresh timer
}
}
}
}
}

function observeSlotInView(state) {
var observer = new IntersectionObserver(
function(entries) {
entries.forEach(entry => {
if (entry.isIntersecting) {
observer.unobserve(state.div); // Stop observing once in view
setTimeout(
() => runAuctionForSlot(state.divId, state.size, true),
30000
); // Call after 30 seconds
}
});
},
{ threshold: 0.1 }
); // Trigger when at least 10% of the slot is in view

observer.observe(state.div);
}

window.googletag.defineSlot = defineSlotOverride;
window.googletag
.pubads()
.getSlots()
.forEach(e => {
runAuctionForSlot(e.getSlotElementId(), e.getSizes());
});
});
}

circle-arrow

Play Button

Stop Button

chevron-right

chevron-left

chevron-up

search

warning

chevron-left-skinny

chevron-right-skinny

x

clock

calendar

play-button

cancel-circle

user

twitter

facebook

youtube

instagram

email

linkedin

Skip to Content

WASHINGTON, D.C. (NBC) — President Donald Trump and other high-ranking administration officials were abruptly evacuated from the room at the White House Correspondents’ Association annual dinner Saturday night following a security incident.

Secret Service agents swarmed the ballroom at the Washington Hilton Hotel, where some reporters, administration officials and dignitaries ducked under their tables amid the confusion.

It was not immediately clear what prompted security to stop the event and usher Trump out of the room. Other attendees remain in the ballroom.

Some attendees reported several loud bangs, but were unable to place them or identify the source.

NBC News reached out to D.C. police, the Secret Service and the Justice Department for more information.

Jeanine Pirro, the U.S. Attorney for Washington D.C., said she was “taken outâ€Â of the main ballroom “after the sound of the shots fired.â€

«The Secret Service is now in charge of this building, this hotel,» Pirro posted on X. D.C. Mayor Muriel Bowser was on her way to the Washington Hilton, Pirro said.

Saturday marked Trump’s first time attending the dinner as president. Trump had been the only president in the event's centurylong history not to attend at least once while in office. In years past, presidents have typically endured a light roasting from the dinner's headliner, typically a comedian.

This year, the correspondents' association opted to book mentalist Oz Pearlman. The association also didn't have a comedian perform last year, instead focusing on its journalism awards.

Trump «is very, very good at holding his cards close, and I think he’s also a showman, if ever there was one, who knows the power of a great headline,» Pearlman told C-SPAN on the possibility of working his act on the president, adding that he would hope to create «an amazing moment that will unite this country.»

As the event kicked off, Correspondents’ Association president Weijia Jiang thanked Trump and White House press secretary Karoline Leavitt for attending.

«It is meaningful that you are with us tonight,» Jiang said. «And White House press secretary Karoline Leavitt, thank you for everything you and your team does to work with us every day, whether you like it or not.»

Covering the White House is the «best assignment in all of journalism, Jiang continued.

«We have the privilege of covering the biggest story in the world every single day,» she said.

The dinner comes amid the backdrop of war with Iran, which has led to higher gas prices around the world and volatility in the stock market. It also comes as Trump's approval rating hit a new low in a recent NBC News poll, with 37% of respondents approving of his job performance and 63% disapproving. Trump was well underwater on his handling of inflation and the cost of living, with 68% saying they disapproved of his policies. The slide also extends to Trump's handling of the Iran war, with 67% of respondents disapproving.
The gala is meant to celebrate the nation's most dogged White House reporting, but Trump's turn as guest of honor will give him another opportunity to air his grievances with the journalists who cover him. He has clashed with reporters during his time in office, though he's taken more aggressive steps during his second term by limiting access for traditional media while boosting conservative and pro-Trump outlets.

«It’s going to be classic President Trump,» White House press secretary Karoline Leavitt told CNN on the red carpet inside the Washington Hilton Hotel. «There will be some comedy throughout. There will be some jabs thrown. I think it’s appropriate for a night like this.»

«I’m anticipating that the president is going to put on a big performance and probably offend some people,» Health and Human Services Secretary Robert F. Kennedy Jr. told C-SPAN before the event.

Trump feuded with The Associated Press last year over its refusal to rename the Gulf of Mexico as the Gulf of America in its stories. The White House then barred the AP from major presidential events, prompting a lawsuit from the news agency. In June 2025, a U.S. appeals court ruled that Trump could ban the AP from some media events as the case proceeded.
Trump also filed a $15 billion defamation lawsuit against The New York Times over its coverage of his 2024 campaign; a federal judge tossed the lawsuit in September, but he refiled it weeks later.

Earlier this month, a judge tossed a $10 billion lawsuit Trump filed against The Wall Street Journal over its publication of a bawdy 50th birthday card he is alleged to have sent to the late sex offender Jeffrey Epstein in 2003. Trump has denied writing the letter.

Now, Trump could be present as Journal reporters receive an award Saturday night for their reporting on Epstein's birthday card.

The Trump White House's adversarial relationship with the press extends down the management chain. Earlier this month, FBI Director Kash Patel filed a lawsuit against The Atlantic over a story alleging he drank to excess and had unexplained absences from the bureau's headquarters. In his lawsuit, Patel denied the allegations.

The FBI in January searched a Washington Post reporter's home and seized her phone and laptops as part of an investigation into a government contractor accused of mishandling classified information. A judge in February blocked the DOJ from using material it found on the reporter's devices as part of its case.

In March, the Defense Department removed media offices from the Pentagon after a federal judge sided with The New York Times, which had sued over new rules requiring journalists to sign a pledge restricting their ability to gather reporting. Defense Secretary Pete Hegseth has described U.S. media as “incredibly unpatriotic.â€

A fixture of Washington's spring social calendar, the dinner raises funds for the correspondents' association, as well as several journalism scholarships.

Hundreds of journalists and their guests attend each year, but the gala has drawn criticism from others. This year, a coalition of journalism groups, as well as journalists like former CBS News anchor Dan Rather and former CNN White House reporter Jim Acosta, signed a letter to the correspondents' association calling on it to “forcefully demonstrate opposition to President Trump's efforts to trample freedom of the press.â€

“There is a long tradition of presidents attending the White House Correspondents Association Dinner,†the letter said. “But these are not normal times, and this cannot be business as usual with the press standing up to applaud the man who attacks them on a daily basis.â€

When Trump announced in March that he would attend the 2026 dinner, the correspondents' association said it was “happy†the president accepted the invitation.

“For more than 100 years, the journalists of the White House Correspondents' Association have enjoyed an evening with the president, a dinner that celebrates the First Amendment while supporting the work we do including awards honoring excellent journalism and scholarships to help the next generation of reporters who someday will be the ones asking the questions at the White House,†the group's president, Weijia Jiang, said in a statement at the time.

Trump's attendance appears to give the green light for others in his orbit to go to the dinner as well. Taylor Budowich, a longtime Trump adviser and former deputy chief of staff at the White House, is set to attend with The Associated Press, despite the AP's ongoing legal battles with the administration.

“As a fan or irony, I'll be with The Associated Press,†Budowich said Friday at an event hosted by Axios.

Trump may be attending the dinner for the first time as president, but he's been in the audience before.

In 2011, then-President Barack Obama and comedian Seth Meyers famously ribbed a stone-faced Trump over his fixation on Obama's long-form birth certificate. Less than a month later, Trump announced that he wouldn't run in the 2012 presidential election, but the incident is seen as a marker in the political transformation that culminated in his 2016 electoral victory.

Author Profile Photo

Spencer Sacks

Spencer Sacks is a Multimedia Journalist with KTVZ News. Learn more about Spencer here.

BE PART OF THE CONVERSATION

KTVZ is committed to providing a forum for civil and constructive conversation.

Please keep your comments respectful and relevant. You can review our Community Guidelines by clicking here

If you would like to share a story idea, please submit it here.