${n}`), (t.onload = () => e(t.contentWindow.render)), document.body.appendChild(t); })) е[n]
); }; })(); }, 3005: (e, t, n) => { nd(t, { $T: () => a, Ni: () => i, OA: () => o, RO: () => s, fR: () => r }); const i = 1, r = 2, o = 1, s = 500; функция a(e) { return (e ?? []).reduce((e, t) => { let { event: n, метод: i, url: r } = t; const o = (e[n] = е[n] ?? {}); вернуться (о[i] = о[i] ?? []).push(r), е; }, {}); } }, 5023: (e, t, n) => { nd(t, { AU: () => m, Ic: () => v, kQ: () => y, on: () => h }); вар i = n(1069), r = n(8969), o = n(6853), s = n(3272); const a = ‘eventHistoryTTL’; пусть d = ноль; const c = (0, oH)({ 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(); }); пусть 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] || { что: [] }; о? ((н[o] = п[o] || { что: [] }), н[o].que.push(r)) : n.que.push(r), (e[t] = п); } else i.vV(‘Неправильное имя события: ‘+t+’ Допустимые имена событий:’+f); }), (t.emit = function(t) { !(function(t, n) { i.OG(‘Отправка события для: ‘ + t); let r = n[0] || {}, о = г[g[t]], s = е[t] || { что: [] }; вар а = Object.keys(s); пусть d = []; c.add({ eventType: t, args: r, id: o, elapsedTime: iV() }), 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( ‘Ошибка выполнения обработчика:’, ‘events.js’, e, t); } }); })(t, l.call(аргументы, 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]) || я.Я(о[r].к))) || (р? (о[r].что || []).forEach(function(e) { let t = o[r].что; e === n && t.splice(t.indexOf(e), 1); }) : (что || []).forEach(function(e) { let t = o.que; e === n && t.splice(t.indexOf(e), 1); }), (e[t] = о)); }), (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 {вкл.: ч, выкл.: м, get: b, getEvents: y, испускание: v, addEvents: E, имеет: A } = p; }, 687: (e, t, n) => { nd(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); константа л = [
‘architecture’,
‘bitness’,
‘model’,
‘platformVersion’,
‘fullVersionList’
]ты = [‘brands’, ‘mobile’, ‘platform’]f = (function() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: window.navigator?.userAgentData; const t = e && u.some(t => void 0 !== e[t]) ? Object.freeze(p(1, e)) : null; функция возврата () {возвращение т; }; })(), g = (function() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: window.navigator?.userAgentData; const t = {}, n = новый WeakMap(); return function() { let i = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: л; 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)) попробуйте { t[r] = e .getHighEntropyValues(i).then(e => (0, s.Im)(e) ? null : Object.freeze(p(2, e)) ).catch(() => null); } поймать (е) { т[r] = c.U9.resolve(ноль); } вернуть т[r]; }; })(); функция p(e, t) { функция n(e, t) { const n = { марка: e }; return ( (0, s.O8)(t) && !(0, s.xQ)(t) && (n.version = t.split(‘.’)), n ); } Const я = {источник: е}; 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, с.O8)(n) && (i[e] = п); }), я ); } 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: oS, getWindowTop: s.mb, getWindowSelf: s.l4, getHighEntropySUA: g, getLowEntropySUA: f, getDocument: s.YE }, w = (0, h.i8)(‘FPD’),(‘FPD’, i.inc’, i. е => { const т = [
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] = и; const r = A.getRefererInfo(); if ( (Object.entries(O).forEach(e => { let [n, i] = е; const o = i(t, r); o && Object.keys(o).length > 0 && (t[n] = (0, с.D9)({}, o, t[n])); }), n && (0, aJ)( t, ‘device.sua’, Object.assign({}, n, t.device.sua)), i) ) { const e = { cdep: i }; (0, aJ)( t, ‘device.ext’, Object.assign({}, e, t.device.ext) ); } const o = A.getDocument().documentElement.lang; o && (0, aJ)(t, ‘site.ext.data.documentLang’, o), (t = w(t)); for (пусть e из h.Dy), если ((0, hO$)(t, e)) { t[e] = (0, с.D9)({}, R(t, r), t[e]); перерыв; } Вернуть т; }); }); 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(hO$.bind(null, e))) return B({page: t.page, ref: t.ref }); }, устройство: () => T(e => { const t = (0, s.Ot)().screen.width, n = (0, s.Ot)().screen.height, { width: i, height: r } = (0, EM)(), o = { w: t, h: n, dnt: (0, s.l9)() ? 1 : 0, ua: e.navigator.userAgent, язык: e.navigator.language.split(‘-‘).shift(), ext: { vpw: i, vph: r } }; return ( e.navigator?.webdriver && (0, aJ)(o, ‘ext.webdriver’, !0), o }), regs() { const e = {}; T(e => e.navigator.globalPrivacyControl) && (0, aJ)(e, ‘ext.gpc’, ‘1’); const t = d.$W.getConfig(‘коппа’); 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({ домен: n, ключевые слова: i, издатель: B({ домен: A.findRootDomain(n) }) }); } }, 3858: (e, t, n) => { nd(t, { Dy: () => r, O$: () => s, i8: () => o }); вар я = п (1069); [‘dooh’, ‘app’, ‘site’]; function o(e) { return function(t) { return ( r.reduce( (n, r) => ( s(t, r) && (null != n ? ((0, i.JE)( `${e} указывает как ‘${n}’, так и ‘${r}’; последний удаляется.`), delete t[r]) : (n = r)), n), null), t); }; } function s(e, t) { return null != e[t] && Object.keys(e[t]).длина > 0; } }, 5973: (e, t, n) => { nd(t, { S: () => o }); вар я = п (1069); const r = (0, n(2938).CK)(‘fpdEnrichment’), o = (0, i.Bj)(function() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: окно.локация.хост; if (!r.cookiesAreEnabled()) возвращает e; const t = e.split(‘.’); if (2 === t.length) вернуть e; пусть п, о, s = -2; const a = `_rdc${Date.now()}`, d = ‘доступно для записи’; do { n = t.slice(s).join(‘.’); пусть e = новая дата((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, », ‘Чт, 01 января 1970 г. 00:00:01 GMT’, void 0, n, void 0)) : ((s += -1), (o = Math.abs(s) { nd(t, { A_: () => s, Gc: () => d, Y6: () => g, Yn: () => c, bz: () => f, u2: () => p, xG: () => u }); var i = n(8128), r = nn(i), o = n(5555); let s = r()({готово: r().SYNC | r().ASYNC | r().QUEUE }); const a = (0, o.v6)(); s.ready = (() => { const e = s.ready; return function() { try { return e.apply(s, аргументы); } наконец { a.resolve(); } }; })(); const d = a.promise, c = s.get; константа л = {}; function u(e, t) { let { postInstallAllowed: n = !1 } = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: {}; s( ‘async’, function(i) { i.forEach(e => t(…e)), n && (l[e] = т); }, е )([]); } function f(e) { for (var t = аргументы.длина, n = новый массив(t > 1? t — 1: 0), i = 1; i { t.push(n), e(t); }); } function g(e, t) { return ( Object.defineProperties( t, Object.fromEntries(
[‘before’, ‘after’, ‘getHooks’, ‘removeAll’].map(т => [
t,
{ get: () => e[t] } ]) ) ), т ); } function p(e) { return g(e, function() { for ( var t = аргументы.длина, n = новый массив(t), i = 0; i { nd(t, { D4: () => o, GE: () => a, G_: () => r, LM: () => s, s6: () => i }); const i = «родной», r = «видео», o = «баннер», s = «adpod», a = [i, r, o]; }, 2449: (e, t, n) => { nd(t, { Bm: () => y, IX: () => C, Nh: () => l, Zj: () => A, gs: () => E, l6: () => p, mT: () => c, nk: () => m, vO: () => v, yl: () => B }); вар i = n(1069), r = n(6881), o = n(8969), s = n(9075), a = n(6031), d = n(3005); константа с = []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 }
}
]
}, изображение: { требуется: !0 }, заголовок: { требуется: !0 }, спонсор: { требуется: !0 }, clickUrl: { требуется: !0 }, тело: { требуется: !1 }, значок: { требуется: !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} ownParam не поддерживается`), !1; return !0; })(e.type) && (e = u[e.type]), !е || !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)( ‘Объект собственных ресурсов пуст или не является объектом: ‘, 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)( `Нераспознанный собственный код актива: ${n}. Актив будет игнорироваться.` ); продолжать; } if (‘privacyLink’ === n) { t.privacy = 1; продолжать; } const г = е[n]; пусть s = 0; r.required && (0, i.Lm)(r.required) && (s = Number(r.required)); const a = { id: t.assets.length, требуется: s }; if (n в 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: е, 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 или min_height недействительны: ‘, 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 = { пропорции: n }); } else (0, i.vV)( «image.aspect_ratios был передан, но он пуст:», r.aspect_ratios ); else (0, i.vV)( «image.aspect_ratios было передано, но это не массив:», 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]), удалить a.img.hmin, удалить a.img.wmin) : (0, i.vV)( ‘image.sizes был передан, но его значение не является массивом целых чисел:’, r.sizes )); } еще ‘название’ === n ? (a.title = { len: r.len || 140 }) : ‘ext’ === n && ((a.ext = r), удалить a.required); т.assets.push(а); } Вернуть т; })(e.nativeParams)); }); } function b(e) { const t = e.assets; if (!Array.isArray(t) || 0 === t.length) return ( (0, i.vV)( «assets в mediaTypes.native.ortb не является массивом или пуст. Assets: «, t ), !1 ); const n = t.map(e => e.id); return t.length !== новый Set(n).size || n.some(e => e !== parseInt(e, 10)) ? ((0, i.vV)( «каждый объект актива должен иметь свойство ‘id’, оно должно быть уникальным и должно быть целым числом» ), !1) : e.hasOwnProperty(‘eventtrackers’) && !Array.isArray(e.eventtrackers) ? ((0, i.vV)( ‘ortb.eventtrackers не является массивом. Eventtrackers: ‘, e.eventtrackers ), !1) : t.every(e => (function(e) { if (!(0, i.Qd)(e)) return ( (0, i.vV)( ‘актив должен быть объектом. Предоставленный актив: ‘, e ), !1 ); if (e.img) { if (!(0, i.Et)(e.img.w) && !(0, i.Et)(e.img.wmin)) return ( (0, i.vV)( «для ресурса img должно быть свойство ‘w’ или ‘wmin'»), !1 ); if (!(0, i.Et)(e.img.h) && !(0, i.Et)(e.img.hmin)) return ( (0, i.vV)( «для ресурса img должно быть свойство h» или «hmin» ), !1 } else if (e.title) { if (!(0, i.Et)(e.title.len)) return ( (0, i.vV)( «для ресурса title должно быть определено свойство len» ), !1 } else if (e.data) { if (!(0, i.Et)(e.data.type)) return ( (0, i.vV)( «для свойства ‘type’ ресурса данных должно быть число» ), !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)(‘видеоресурс настроен неправильно’), !1 !0; })(e) ); } function y(e) { let { index: t = rnindex } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; const n = t.getAdUnit(e); если (!n) вернуть !1; пусть о = n.nativeOrtbRequest; return (function(e, t) { if (!e?.link?.url) return ( (0, i.vV)( «собственный ответ не имеет свойства link. Ответ Ortb: «, 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)( `не получена ставка со всеми необходимыми активами. Требуемые идентификаторы: ${n}, но получены идентификаторы в ответ: ${r}` ); return o; })(e.native?.ortb || S(e.native, o), o); } function v(e, t) { const n = t.native.ortb || R(т.родной); return ( ‘click’ === e.action ? (function(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: null, { fetchURL: n = iz$ } = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: {}; if (t) { const i = (e.assets || []) .filter(e => e.link).reduce((e, t) => ((e[t.id] = t.link), e), {}), r = e.link?.clicktrackers || []; пусть о = я[t]с = г; 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 = iz$ } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}, { [d.Ni]: р = [], [d.fR]: о = [] } = (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); т.титул? (n.title = t.title.text) : t.img ? (н[e?.img?.type === o.oA.MAIN ? ‘image’ : ‘icon’] = { URL: t.img.url, ширина: t.img.w, высота: t.img.h }) : t.data && (n[f[g[e?.data?.type]]]= t.data.value); } n.impressionTrackers = []; пусть р = []; 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’)); вернуть н; })(в); Object.assign(e.native, t); }
[‘rendererUrl’, ‘adTemplate’].forEach(n => { const i = t?.nativeParams?.[n]; я && (e.родной[n] = О(я)); }); } function A(e) { let { index: t = rnindex } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[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]; пусть o = O(e.native[t]) || O(e?.native?.ext?.[t]); if (‘adTemplate’ === t || !r || !o) return; пусть d = i?.nativeParams?.[t]?.sendId; if ((‘boolean’ != typeof d && (d = i?.nativeParams?.ext?.[t]?.sendId), d) ) { o = `${r}:${e.adId}`; } пусть c = i?.nativeParams?.[t]?.sendTargetingKeys; ‘boolean’ != typeof c && (c = i?.nativeParams?.ext?.[t]?.sendTargetingKeys); (‘boolean’ == typeof c ? c : s) && (n[r] = о); }), н ); } function w(e, t) { let n = аргументы.длина > 2 && void 0 !== аргументы[2] && аргументы[2]я = []; return ( Object.entries(e).filter(e => { let [i, r] = е; return ( r && ((!1 === n && ‘ext’ === i) || null == t || t.includes(i)) ); }) .forEach(e => { let [r, s] = е; !1 === n && ‘ext’ === r ? i.push(…w(s, t, !0)) : (n || o.x5.hasOwnProperty(r)) && i.push({ key: r, value: O(s) }); }), я ); } function I(e, t, n) { let { index: d = rnindex } = аргументы.длина > 3 && void 0 !== аргументы[3]
? аргументы[3]
: {}; const c = {сообщение: ‘assetResponse’, adId: e.adId }; пусть 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] = е; возвращаться [n, t]; }) ); function C(e, t) { const n = e.assets.map(e => T[e]); вернуть I(e, t, n); } function B(e, t) { return I(e, t, null); } function O(e) { return e?.url || е; } function R(e) { const t = { ссылка: {}, трекеры событий: [] }; return ( Object.entries(e).forEach(e => { let [n, i] = е; переключатель (n) {case ‘clickUrl’: t.link.url = i; перерыв; случай «clickTrackers»: t.link.clicktrackers = Array.isArray(i)? я: [i]; перерыв; случай ‘impressionTrackers’: (Array.isArray(i) ? i : [i]).forEach(e => { t.eventtrackers.push({ событие: d.OA, метод: d.Ni, URL: e }); }); перерыв; случай «javascriptTrackers»: t.jstracker = Array.isArray(i)? i.join(»): я; перерыв; случай «privacyLink»: t.privacy = i; } }), т ); } function S(e, t) { const n = { …R(e), активы: [] }; 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]); переключатель (t) {case ‘title’: r( e => null != e.title, e => { e.title = { text: n }; } ); перерыв; случай «изображение»: случай «значок»: const e = «изображение» === t ? o.oA.MAIN : o.oA.ICON; r( t => null != t.img && t.img.type === e, e => { e.img = { url: n }; } ); перерыв; по умолчанию: t в o.h0 && r( e => null != e.data && e.data.type === o.jO[o.h0[t]], е => { e.data = { значение: n }; }); } }), n ); } функция k(e) { var t = {}; для (var n в e) t[e[n]]= п; вернуть т; } }, 1e3: (e, t, n) => { nd(t, { Cf: () => a, S3: () => r, Tb: () => o, WR: () => s, e4: () => c, pS: () => u, qN: () => d, yB: () => f, zt: () => i }); константа я = [‘request’, ‘imp’, ‘bidResponse’, ‘response’],
[r, o, s, a] = я,
[d, c] = [‘default’, ‘pbs’]l = новый набор(i); const { RegisterOrtbProcessor: u, getProcessors: f } = (function() { const e = {}; return { RegisterOrtbProcessor (t) { let { type: n, name: r, fn: o, приоритет: s = 0, диалекты: a = [d]
} = т; if (!l.has(n)) throw new Error( `Тип процессора ORTB должен быть одним из: ${i.join(‘, ‘)}` ); a.forEach(t => { e.hasOwnProperty(t) || (e[t] = {}), е[t].hasOwnProperty(n) || (э[t][n] = {}), (е[t][n][r] = {приоритет: s, fn: o }); }); }, getProcessors: t => e[t] || {} }; })(); }, 8934: (e, t, n) => { nd(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 { ЗАПРОС: u, ОТВЕТ: f, NATIVE: g, СОБЫТИЕ: 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)( `Невозможно найти объявление ‘${t.adId}’ для запроса события x-origin` ); if (n.status !== d.tl.RENDERED) return void (0, r.JE)( `Получен запрос события x-origin без соответствующего запроса на отрисовку объявления ‘${n.adId}’` ); вернуть (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]); } поймать (е) {вернуться; } 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 = ‘Невозможно опубликовать сообщение в кадре с нулевым источником. Обновите объявления для использования MessageChannel, см. https://github.com/prebid/Prebid.js/issues/7870’; throw ((0, r.vV)(e), новая ошибка(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 = аргументы.длина, n = новый массив (t > 1 ? t — 1 : 0), r = 1; r 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)( `Невозможно найти соответствующий элемент страницы для adUnitCode ${i}. Невозможно изменить его размер до размеров объявления. Пожалуйста, проверьте настройку.` ); }); })({ …t, ширина: n, высота: i, adId: e }); }; } Object.assign(h, {
[g]: function(e, t, n) { if (null == n) return void (0, r.vV)( `Невозможно найти объявление для запроса события x-origin: ‘${t.adId}’` ); переключатель (t.action) {case ‘assetRequest’: (0, c.Hh)(n, () => e((0, a.IX)(t, n))); перерыв; case ‘allAssetRequest’: (0, c.Hh)(n, () => e((0, a.yl)(t, n))); перерыв; по умолчанию: (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, im)().installedModules.includes(‘отладка’); } function S(e) { return new C.U9(t => { (0, TR)(e, B.tp, ‘debugging’, t); }); } function k() { let { ужеInstalled: e = R, скрипт: t = S } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, n = ноль; 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)( `Модуль отладки не установлен, загружаем его из «${e}»…` ), ((0, im)()._installDebugging = !0), t(e) .then(() => { (0, im)()._installDebugging({ DEBUG_KEY: O, ловушка: w.A_, config: v.$W, createBid: IO, logger: (0, r.h0)(‘DEBUG:’) }); }) .then(n, o); } })), n ); }; } const U = (function() { let { load: e = k(), ловушка: t = (0, w.Yn)(‘requestBids’) } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, n = ноль, я = !1; функция r(e) { for (var t = аргументы.длина, я = новый массив(t > 1? t — 1: 0), r = 1; r e.apply(this, i)); } function o() { t.getHooks({крючок: r }).remove(), (i = !1); } return {enable: function() { i || ((n = e()), t.before(r, 99), (i = !0)); }, отключить: о, сброс: function() { (n = null), o(); } }; })(); U.сброс; 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 = новая карта([
[
‘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)]]); вар 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)( ‘Аукционы были приостановлены во время предварительного рендеринга страницы’ ), i(t.apply(e, n)); }, { Once: !0 } ); }); } return Promise.resolve(t.apply(this, аргументы)); }; } вар G = n(7377); const F = (0, im)(), { триггерUserSyncs: H } = y.zt, { ADD_AD_UNITS: L, REQUEST_BIDS: z, SET_TARGETING: J } = d.qY, Q = { bidWon: function(e) { if ( !En .getBidsRequested() .map(e => e.bids.map(e => e.adUnitCode)) .reduce(r.Bq).filter(r.hj) .includes(e) ) return void (0, r.vV)( ‘Размещение «‘ + e + ‘» не определено.’ ); вернуть !0; } }; функция K(e, t) { пусть 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, oA)(e, `ortb2Imp.${t}`), i = (0, oA)(e, `mediaTypes.${t}`); if (!n && !i) return; константа а = { [V.G_]: В.Зы, [V.D4]: П }[t]; &&
[…a].forEach(n => { let [i, a] = п; const d = (0, oA)(e, `mediaTypes.${t}.${i}`), c = (0, oA)(e, `ortb2Imp.${t}.${i}`); (ноль == d && ноль == c) || (null == d ? (0, sJ)(e, `mediaTypes.${t}.${i}`, c) : null == c ? (0, sJ)(e, `ortb2Imp.${t}.${i}`, d) : ((0, r.JE)( `adUnit ${e.code}: указывает конфликтующий ortb2Imp.${t}.${i} и mediaTypes.${t}.${i}, последний будет игнорироваться`, e ), (0, sJ)(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 ?? н?.формат; пусть а; if (null != o) { (0, sJ)(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)( ‘Рекламный блок баннер.формат указывает как w/h, так и 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)(`Неверное определение формата в рекламном блоке ${e.code}`, o); } ноль == а || ноль == я || (0, г.бД)(i, а) || (0, r.JE)( `Рекламный блок ${e.code} имеет конфликтующие размеры и определения формата`, e ); } const d = а ?? я ?? []c = e.ortb2Imp?.banner?.expdir ?? н.эксдир; return ( null != c && ((n.expdir = c), (0, sJ)(t, ‘ortb2Imp.banner.expdir’, c)), d.length > 0 ? ((n.sizes = d), (t.sizes = d)) : ((0, r.vV)( ‘Обнаружен объект mediaTypes.banner без поля правильного размера. Убедитесь, что размеры указаны следующим образом: [[300, 250]…]. Удаление недопустимого объекта mediaTypes.banner из запроса.’ ), удалить 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 я = K(n.playerSize, e); i.длина > 0? (2 === e && (0, r.fH)( «Преобразование video.playerSize из [640,480] к [[640,480]]поэтому он в правильном формате.» ), (n.playerSize = i), (t.sizes = i)) : ((0, r.vV)( ‘Обнаружена неверная конфигурация mediaTypes.video.playerSize. Укажите только один набор размеров в формате, например: [[640, 480]]. Удаление недопустимого свойства mediaTypes.video.playerSize из запроса.’ ), удалите t.mediaTypes.video.playerSize); } return (0, W.aP)(t), Y(t, ‘видео’), t; } function ee(e) { function t(t) { return ( (0, r.vV)( `Ошибка в adUnit «${e.code}»: ${t}. Удаление собственного запроса из рекламного блока`, e), delete i.mediaTypes.native, i); } function n(e) { for (const t of [‘sendTargetingKeys’, ‘types’]) if (o.hasOwnProperty(t)) { const n = e(t); если (n) вернуть n; } } const я = (0, r.Go)(e), o = i.mediaTypes.native; if (o.ortb) { if ( o.ortb.assets?.some( e => !(0, r.Et)(e.id) || e.id t(`собственные запросы ORTB не могут указывать «${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)( `при использовании собственного формата OpenRTB вы не можете использовать устаревшие собственные свойства. Удаление ключей ${s} из запроса.` ), s.forEach(e => delete i.mediaTypes.native[e])); } else n( e => `mediaTypes.native.${e} устарел, рассмотрите возможность использования вместо него собственного ORTB` ); return ( o.image && o.image.sizes && !Array.isArray(o.image.sizes) && ((0, r.vV)( ‘Пожалуйста, используйте массив размеров для поля Native.image.sizes. Удаление недопустимого свойства mediaTypes.native.image.sizes из запроса.’ ), удалите i.mediaTypes.native.image.sizes), o.image && o.image.aspect_ratios && !Array.isArray(o.image.aspect_ratios) && ((0, r.vV)( ‘Пожалуйста, используйте массив размеров для поля Native.image.aspect_ratios. Удаление недопустимого свойства mediaTypes.native.image.aspect_ratios из запроса.’ ), удалите i.mediaTypes.native.image.aspect_ratios), o.icon && o.icon.sizes && !Array.isArray(o.icon.sizes) && ((0, r.vV)( ‘Пожалуйста, используйте массив размеров для поля Native.icon.sizes. Удаление недопустимого свойства mediaTypes.native.icon.sizes из запроса.’ ), удалите i.mediaTypes.native.icon.sizes), i ); } function te(e, t) { let n = e?.mediaTypes?.[t]?.поз; if (!(0, r.Et)(n) || isNaN(n) || !isFinite(n)) { let n = `Значение свойства ‘pos’ в рекламном блоке ${e.code} должно иметь тип: Number`; (0, r.JE)(n), удалить e.mediaTypes[t].поз; } Вернуть е; } function ne(e) { const t = t => `adUnit.code ‘${e.code}’ ${t}`, n = e.mediaTypes, i = e.bids; вернуть ноль == я || (0, r.cy)(i) ? null == я && null == e.ortb2Imp ? ((0, r.vV)( t( «не имеет ‘adUnit.bids’ и ‘adUnit.ortb2Imp’. Удаление adUnit с аукциона» ) ), null): n && 0 !== Object.keys(n).length ? (null == e.ortb2Imp || (null != i && 0 !== i.length) || ((e.bids = [{ bidder: null }]), (0, r.OG)( t( «определяет ‘adUnit.ortb2Imp’ без ‘adUnit.bids’; его будут видеть только адаптеры S2S» ) )), e) : ((0, r.vV)( t( «не определяет объект ‘mediaTypes’. Это обязательное поле для аукциона, поэтому этот adUnit был удален.» ) ), null): ((0, r.vV)( t( «определяет ‘adUnit.bids’, который не является массивом. Удаление adUnit с аукциона» )), 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 загружен’), (F.installedModules = F.installedModules || []), (F.adUnits = F.adUnits || []), (F.triggerUserSyncs = H); const ie = { validateAdUnit: ne, validateBannerMediaType: X, validateSizes: K }; Object.assign(т.е. { validateNativeMediaType: ee }), Object.assign(т.е. { 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’); функция oe(e) { const t = En[e]().filter(e => EngetAdUnitCodes().includes(e.adUnitCode) ), n = EngetLastAuctionId(); 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] && е[0].adUnitCode).map(e => ({ [e[0].adUnitCode]: { bids: e } })) .reduce((e, t) => Object.assign(e, t), {}); } (F.getAdserverTargetingForAdUnitCodeStr = function(e) { if ( ((0, r.fH)( ‘Вызов tlpbjs.getAdserverTargetingForAdUnitCodeStr’, аргументы ), e) ) { var t = F.getAdserverTargetingForAdUnitCode(e); return (0, r.$D)(t); } (0, r.OG)( ‘Необходимо вызвать getAdserverTargetingForAdUnitCodeStr с adunitCode’ }), (F.getHighestUnusedBidResponseForAdUnitCode = function(e) { if (e) { const t = EngetAllBidsForAdUnitCode(e).filter(A.Yl); return t.length ? t.reduce(N.Vk) : {}; } (0, r.OG)( ‘Необходимо вызвать getHighestUnusedBidResponseForAdUnitCode с помощью adunitCode’ }), (F.getAdserverTargetingForAdUnitCode = function(e) { return F.getAdserverTargeting(e)[e]; }), (F.getAdserverTargeting = function(e) { return ( (0, r.fH)(‘Вызов tlpbjs.getAdserverTargeting, аргументы), A.iS.getAllTargeting(e) ); }), (F.getConsentMetadata = function() { return ( (0, r.fH)(‘Вызов tlpbjs.getConsentMetadata’), q.SL.getConsentMeta() ); }), (F.getNoBids = function() { return ( (0, r.fH)(‘Вызов tlpbjs.getNoBids’, аргументы), oe(‘getNoBids’) ); }), (F.getNoBidsForAdUnitCode = function(e) { return { bids: EngetNoBids().filter(t => t.adUnitCode === e) } }), (F.getBidResponses = function() { return ( (0, r.fH)(‘Вызов tlpbjs.getBidResponses’, аргументы), oe(‘getBidsReceived’) ); }), (F.getBidResponsesForAdUnitCode = function(e) { return { bids: EngetBidsReceived().filter(t => t.adUnitCode === e) }; }), (F.setTargetingForGPTAsync = function(e, t) { (0, r.fH)(‘Вызов tlpbjs.setTargetingForGPTAsync’, аргументы), (0, r.II)() ? A.iS.setTargetingForGPT(e, t) : (0, r.vV)(‘window.googletag не определено на странице’); }), (F.setTargetingForAst = function(e) { (0, r.fH)(‘Вызов tlpbjs.setTargetingForAn’, аргументы), A.iS.isApntagDefined() ? (A.iS.setTargetingForAst(e), $.Ic(J, A.iS.getAllTargeting()))) : (0, r.vV)(‘window.apntag не определен на странице’); (F.renderAd = (0, w.A_)(‘async’, function(e, t, n) { (0, r.fH)(‘Вызов tlpbjs.renderAd’, аргументы), (0, r.OG)(‘Вызов renderAd с adId :’ + t), (0, c.BS)(e, t, n })), (F.removeAdUnit = function(e) { if (((0, r.fH)(‘Вызов tlpbjs.removeAdUnit’, аргументы), !e)) return void (F.adUnits =); []); пусть т; (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 } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; $.Ic(г); константа и знак равно т || v.$W.getConfig(‘bidderTimeout’); (0, r.fH)(‘Вызов tlpbjs.requestBids’, аргументы), null == i || Array.isArray(i) || (я = [i]), я && i.длина ? (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 || {} ), претендент: Object.fromEntries( Object.entries(v.$W.getBidderConfig()) .map(e => { let [t, n] = е; возвращаться [t, (0, r.Go)(n.ortb2)]; }) .filter(e => { let [t, n] = е; вернуть ноль!= n; }) ) }; return (0, xw)(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 = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[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 } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[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)(‘Ошибка выполнения 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) )); константа р = {}; if ( (n.forEach(e => { const t = Object.keys(e.mediaTypes || { баннер: ‘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)( `Для двойных рекламных блоков ‘${e.code}’` предоставлено несколько различных ortb2Imp.ext.tid ): (p[e.code] = а)), ноль == я || 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, р.лк)(); p.hasOwnProperty(e.code) || (п[e.code] = t), (e.transactionId = t), (0, sJ)(e, ‘ortb2Imp.ext.tid’, t); }); const e = EncreateAuction({ adUnits: n, adUnitCodes: o, обратный вызов: g, cbTimeout: t, метки: a, AuctionId: d, ortb2Fragments: c, метрики: l }); пусть я = n.length; i > 15 && (0, r.fH)( `Текущий аукцион ${e.getAuctionId()} содержит ${i} adUnits.`, n), o.forEach(t => A.iS.setLatestAuctionForAdUnit(t, e.getAuctionId())), e.callBids(); } else (0, r.OG)(‘Рекламные блоки не настроены. Ставки не запрошены.’), g(); }, ‘НачатьАукцион’); 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)(‘Вызов tlpbjs.addAdUnits’, аргументы), F.adUnits.push.apply(F.adUnits, (0, r.cy)(e) ? e : [e]), $.Ic(L); }), (F.onEvent = function(e, t, n) { (0, r.fH)(‘Вызов tlpbjs.onEvent’, аргументы), (0, r.fp)(t) ? !n || Q[e].call(ноль, n) ? $.on(e, t, n) : (0, r.vV)( ‘Указанный идентификатор недействителен для события «‘ + e + ‘» и обработчик не установлен.’ ): (0, r.vV)( ‘Предоставленный обработчик событий не является функцией и не был установлен для события «‘ + e + ‘».’ ); }), (F.offEvent = function(e, t, n) { (0, r.fH)(‘Вызов tlpbjs.offEvent’, аргументы), (n && !Q[e].call(ноль, n)) || $.AU(е, т, п); }), (F.getEvents = function() { return (0, r.fH)(‘Вызов tlpbjs.getEvents’), $.kQ(); }), (F.registerBidAdapter = function(e, t, n) { (0, r.fH)(‘Вызов tlpbjs.registerBidAdapter’, аргументы); try { const i = n ? (0, G.xb)(n) : e(); _.Ay.registerBidAdapter(i, t); } catch (e) { (0, r.vV)(‘Ошибка регистрации адаптера участника торгов: ‘ + e.message } }), (F.registerAnalyticsAdapter = function(e) { (0, r.fH)( ‘Вызов tlpbjs.registerAnalyticsAdapter’, аргументы ); try { _.Ay.registerAnalyticsAdapter(e); } catch (e) { (0, r.vV)( ‘Ошибка регистрации адаптера аналитики: ‘ + e.message } }), (F.createBid = function(e) { return ( (0, r.fH)(‘Вызов tlpbjs.createBid’, аргументы), (0, IO)(e) ); }); константа аэ = []de = (0, w.A_)( ‘async’, function(e) { e && !(0, r.Im)(e) ? ((0, r.fH)(‘Вызов tlpbjs.enableAnalytics для: ‘, e), _.Ay.enableAnalytics(e)) : (0, r.vV)( ‘tlpbjs.enableAnalytics следует вызывать с опцией {}’ }, ‘enableAnalyticsCb’); function ce(e) { if (‘function’ == typeof e) try { e.call(); } catch (e) { (0, r.vV)(‘Ошибка команды обработки:’, e.message, e.stack); } else (0, r.vV)( ‘Команды, записанные в tlpbjs.cmd.push, должны быть обернуты функцией’ ); } function le(e) { e.forEach(function(e) { if (void 0 === e. Called) try { e.call(), (e.called = !0); } catch (e) { (0, r.vV)(‘Ошибка команды обработки :’, ‘prebid.js’, e); } }); } (F.enableAnalytics = function(e) { ae.push(de.bind(this, e)); }), (F.aliasBidder = function(e, t, n) { (0, r.fH)(‘Вызов tlpbjs.aliasBidder’, аргументы), e && t ? _.Ay.aliasBidAdapter(e, t, n) : (0, r.vV)( ‘bidderCode и псевдоним должны быть переданы в качестве аргументов’, ‘tlpbjs.aliasBidder’ ); }), (F.aliasRegistry = _.Ay.aliasRegistry), v.$W.getConfig(‘aliasRegistry’, e => { ‘private’ === e.aliasRegistry && delete F.aliasRegistry; }), (F.getAllWinningBids = function() { return EngetAllWinningBids(); }), (F.getAllPrebidWinningBids = function() { return ( (0, r.JE)( ‘getAllPrebidWinningBids может быть удален или переименован в будущей версии. Эта функция возвращает ставки, которые выиграли в предварительной ставке и для которых был установлен таргетинг, но (еще?) не выиграли на рекламном сервере. Она исключает ставки, которые были обработаны.’), En .getBidsReceived() .filter(e => e.status === d.tl.BID_TARGETING_SET) }), (F.getHighestCpmBids = function(e) { return A.iS.getWinningBids(e); }), (F.clearAllAuctions = function() { EnclearAllAuctions(); }), (F.markWinningBidAsUsed = function(e) { let t, { adId: n, adUnitCode: i, Analytics: o = !1, event: s = !1 } = e; i && null == n ? (t = A.iS.getWinningBids(i)) : n ? (t = EngetBidsReceived().filter(e => e.adId === n)) : (0, r.JE)( ‘Неправильное использование markWinningBidAsUsed. Для работы требуется adUnitCode или adId.’), t.length > 0 && (o || s ? (0, c.n6)(t[0]) : EnaddWinningBid(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, im)().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; En .getAllWinningBids() .filter( e => e.adId === t || (null == t && e.adUnitCode === n) ) .forEach(e => { _.Ay.triggerBilling(e), (0, с.vB)(е); }); }, 7873: (e, t, n) => { nd(t, { E: () => s, m: () => o }); const i = окно, r = (i.tlpbjs = i.tlpbjs || {}); функция о () {возвращение р; } функция s(e) { r.installedModules.push(e); } (r.cmd = r.cmd || []), (r.que = r.que || []), i === окно && ((i._pbjsGlobals = i._pbjsGlobals || []), i._pbjsGlobals.push(‘tlpbjs’)); }, 7934: (e, t, n) => { nd(t, { EN: () => d, gR: () => s }); вар я = п(3272), г = п(1069); function o(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: окно; if (!e) вернуть e; if (/w+:///.exec(e)) возвращает e; пусть n = t.location.protocol; попробуйте { n = t.top.location.protocol; } catch (e) {} return /^///.exec(e) ? n + e : `${n}//${e}`; } function s(e) { let { noLeadingWww: t = !1, noPort: n = !1 } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; попробуйте {e = новый URL(o(e)); } поймать (е) {вернуться; } 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 = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: окно; вернуть 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 = окно), function() { const e = []t = (function(e) { try { if (!e.location.ancestorOrigins) return; return e.location.ancestorOrigins; } catch (e) {} })(c), n = i.$W.getConfig(‘maxNestedIframes’); пусть d, l, u, f, g = !1, p = 0, h = !1, m = !1, b = !1; do {const n = d, я = m; пусть o, s = !1, f = ноль; (m = !1), (d = d? d.parent: c); попробуйте { o = d.location.href || нулевой; } 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)( ‘Пытаюсь получить доступ к междоменному iframe. Продолжаем без реферера и местоположения’); попробуйте {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); е && (и = е); } d.context && d.context.sourceUrl && (m = !0); } e.push(f), p++; } while (d !== c.top && p -1 && -1 === E.indexOf(‘?’) && (E = `${E}${y.substring(y.indexOf(‘?’))}`), { достигнутыйTop: g, isAmp: h, numIframes: p — 1, stack: e, topmostLocation: l || null, location: y, canonicalUrl: v, страница: E, домен: s(E) || null, ref: f || null, Legacy: { достигнутыйTop: g, isAmp: h, numIframes: p — 1, стек: e, реферер: l || null, canonicalUrl: v } } ); }) ); вар с; }, 2938: (e, t, n) => { nd(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’; пусть р = []; function h() { let { имя_модуля: e, тип_модуля: t } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, { isAllowed: n = s.io } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; функция r(i, r) { пусть s = e; const f = c.$W.getCurrentBidder(); f && t === o.tW && l.Ay.aliasRegistry[f] === е && (s = f); return i({действительно: n(d.Ue, (0, us)(t, s, { [a.Zw]:р })) }); } 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 = () => окно[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 ); }; возвращаться {
[`has${t}`]: р,
[`${e}IsEnabled`]: e => h( function(e) { if (e && e.valid) try { return ( n().setItem(‘prebid.cookieTest’, ‘1’), ‘1’ === n().getItem(‘prebid.cookieTest’) ); } catch (e) { } наконец { try { n().removeItem(‘prebid.cookieTest’); } catch (e) {} } вернуть !1 }, е, е),
[`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}`; }, getCookie: function(e, t) { return h( function(t) { if (t && t.valid) { let t = window.document.cookie.match( ‘(^|;)\s*’ + e + ‘\s*=\s*([^;]*)\s*(;|$)’ ); вернуть т? декодироватьURIComponent(t[2]) : нулевой; } Вернуть ноль; }, г, т ); }, 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(); пусть r = i.indexOf(‘=’); р = р = 0 && t.push(decodeURIComponent(i.slice(r + 1))); } } Вернуть т; } }, г, т ); } }; } function m() { let { ModuleType: e, ModuleName: t, bidderCode: n } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; function i() { throw new Error(‘Неверный вызов getStorageManager: необходимо установить либо bidderCode, либо 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({имя_модуля: e, тип_модуля: 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 = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: ру; если (е[a.Dk] !== o.tW) return; пусть n = t.get(e[a.q7]’разрешено хранилище’); if (n && !0 !== n) { const t = e[a.Zw]; n = Array.isArray(n) ? n.some(e => e === t) : n === t; } Еще n = !!n; вернуть? пустота 0: {разрешить: п}; }); }, 7779: (e, t, n) => { nd(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 = `Можно установить только один из «${b}» или «${y}», 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 = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: 0, i = аргументы.длина > 3 && void 0 !== аргументы[3] && аргументы[3]r = аргументы.длина > 4 && void 0 !== аргументы[4]
? аргументы[4]
: f.Q0; если (!i) { const i = []o = s.$W.getConfig(‘sendBidsControl.dealPrioritization’); пусть a = (0, f.$z)(e, ‘adUnitCode’); return ( Object.keys(a).forEach(e => { let s = []d = (0, f.$z)(a[e]’Код покупателя’); Object.keys(d).forEach(e => { s.push(d[e].reduce(т)); }), н ? ((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)); }), я ); } Вернуть е; }); function T() { let e = аргументы.длина > 0 && void 0 !== аргументы[0] && аргументы[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: е? n.cpm – t.cpm: n.adserverTargeting.hb_pb – t.adserverTargeting.hb_pb; }; } function C(e, t) { return (arguments.length > 2 && void 0 !== аргументы[2]
? аргументы[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 = аргументы.длина > 1 && void 0 !== аргументы[1] && аргументы[1]n = аргументы.длина > 2 && void 0 !== аргументы[2] && аргументы[2]; const i = E.concat(u.Nh), r = s.$W.getConfig(‘targetingControls.allowSendAllBidsTargetingKeys’), o = r? r.map(e => a.xS[e]) : я; 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]
]}), т ),
[]
); })( r, i.filter( e => void 0 !== r.adserverTargeting[e] && (n || -1 !== o.indexOf(e)) ) ); t && e.push({ [r.adUnitCode]: т }); } Вернуть е; }, []); } function r(t) { return ‘string’ == typeof t ? [t]
: (0, f.cy)(t) ? t: e.getAdUnitCodes() || []; } function A() { let t = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: p.Bq, i = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[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) || !!р(т); return ( (i || o) && a && (0, gA)(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]], р знак равно { [n.substring(0, m)]: я }; if (n === a.xS.DEAL) { const o = `${n}_${e.bidderCode}`.substring(0, m), s = { [o]: я }; возвращаться […t, r, s]; } возвращаться […t, r]; }, []) }))), я ); } function O() { return e .getStandardBidderAdServerTargeting() .map(e => e.key).concat(E).filter(f.hj); } return ( (t.setLatestAuctionForAdUnit = function(e, t) { n[e] = т; }), (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()) ||[e] = т.ключевые слова[e]); }), window.apntag.modifyTag(e, {keywords: i }); } }); }), (t.getAllTargeting = function(t, n, d) { let c = аргументы.длина > 3 && void 0 !== аргументы[3]
? аргументы[3]
: p.Vk, l = аргументы.длина > 4 && void 0 !== аргументы[4]
? аргументы[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 = []я = {}, r = s.$W.getConfig(‘targetingControls.alwaysIncludeDeals’); return ( t.forEach(t => { const s = e.includes(t.adUnitCode), a = !0 === ouget(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] || {}, о = [t.adserverTargeting[e]]; р[n]
? (р[n] = р[n].concat(o).filter(f.hj)) : (r[n] = о), (я[t.adUnitCode] = г); })); }), { filteredBids: n, customKeysByUnit: i }); })(г, г); 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]) && (т[e] = т[e].split(‘,’).map(e => e.trim())), (0, f.cy)(t[e]) || (т[e] = [t[e]]), { [e]: т[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]: н }), е; }, []); })(r) ); o && d.push( …(function(e, t) { return e.reduce((e, n) => { const i = Object.assign({}, n), r = t[i.adUnitCode]о = []; return ( r && Object.keys(r).forEach(e => { e && r[e] && o.push({ [e]: р[e] }); }), e.push({ [i.adUnitCode]: о }), и ); }, []); })(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)); }); }); })(е); }), г ); })(I(S, c, C, пустота 0, l), R, g); const U = Object.keys(Object.assign({}, a.Zh, a.x5)); пусть D = s.$W.getConfig(b); const _ = s.$W.getConfig(y); if (null != _ && null != D) выдать новую ошибку(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 — разрешенные ключи [ ${t
.map(e => n[e]) .join(‘, ‘)} ]` ), e.map(e => { const o = Object.keys(e)[0]s = е[o].filter(e => { const o = Object.keys(e)[0]s = 0 === i.filter(e => 0 === o.indexOf(n[e])) .длина || t.find(e => { const t = n[e]; вернуть 0 === o.indexOf(t); }); возврат (р[o] = !s), с; }); е[o] = с; }); const o = Object.keys(r).filter(e => r[e]); return ( (0, f.fH)( `allowTargetingKeys — удаленные ключи [ ${o.join(
‘, ‘
)} ]` ), e.filter(e => e[Object.keys(e)[0]].длина > 0) ); })(k, D)), (k = (function(e) { let t = e.map(e => ({
[Object.keys(e)[0]]: е[Object.keys(e)[0]].map(e => ({
[Object.keys(e)[0]]: е[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]; возврат (э[n] = Object.assign({}, е[n]т[n])) е; }, {})) т ); })(к)); const $ = s.$W.getConfig(‘targetingControls.auctionKeyMaxChars’); return ( $ && ((0, f.fH)( Для этого аукциона был активен `targetingControls.auctionKeyMaxChars’; задано ограничение в ${$} символов. Выполнение проверок ключей аукциона…` ), (k = (function(e, t) { let n = (0, f.Go)(e), i = Object.keys(n).map(e => ({ adUnitCode: e, таргетинг рекламного сервера: 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`); }, »)); вар а; r + 1 === o.length && (s = s.slice(0, -3)); пусть d = i.adUnitCode, c = s.length; return ( c { k[e] || (к[e] = {}); }), к ); }), s.$W.getConfig(‘targetingControls’, function(e) { null != (0, gA)(e, b) && null != (0, gA)(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] = е; n.length > 1 && (0, f.JE)( `Несколько слотов найдены совпадающими: ${t}. Таргетинг будет установлен на все соответствующие слоты, что может привести к дублированию показов, если из GAM запрошено более одного показа. Чтобы решить эту проблему, убедитесь, что аргументы setTargetingForGPTAsync разрешаются в один слот, явно сопоставляя желаемый 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] = п); }), (0, f.OG)( `Попытка установить карту таргетинга для слота: ${e.getSlotElementId()} с помощью карты таргетинга:`, 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 = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: p.Vk, i = аргументы.длина > 3 && void 0 !== аргументы[3]
? аргументы[3]
: f.Q0; константа s = т || А(п, i), а = г(е); return s .filter(e => a.includes(e.adUnitCode)) .filter(e => !0 === ouget(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)(‘невозможно сбросить таргетинг для AST’ + e); } Object.keys(n).forEach(e => Object.keys(n)[e]).forEach(t => { if ( ((0, f.OG)( `Попытка установить таргетинг для targetId: ключ ${e}: значение ${t}: ${n[e][t]}` ), (0, f.O8)(n[e][t]) || (0, ф.су)(n[e][t])) ) { пусть я = {}, r = /pt[0-9]/; t.search(r) { nd(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] = е; (0, i.OG)(`Вызов синхронизации пользователя iframe для участника торгов: ${t}`), (0, i.SG)(r), (function(e, t) { e.image = e.image.filter(e => e[0] !== т); })(п, т); }); })(), (function() { if (!u.image) return; p(n.image, e => { let [t, n] = е; (0, i.OG)( `Вызов пользовательской синхронизации пикселей изображения для участника торгов: ${t}` ), (0, iz$)(n); }); })(); } catch (e) { return (0, i.vV)(‘Ошибка запуска пользовательской синхронизации’, e); } n = {изображение: []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)( `Обнаружено наличие «filterSettings.all» и «filterSettings.${t}» в конфигурации userSync. Вы не можете смешивать «all» с конфигурациями «iframe/image»; они являются взаимоисключающими.` ), !1 ); пусть n = e.all? е.все : е[t]r = e.all ? ‘все’: т; если (!n) вернуть !1; пусть o = n.filter, s = n.bidders; if (o && ‘include’ !== o && ‘exclude’ !== o) return ( (0, i.JE)( Параметр `UserSync «filterSettings.${r}.filter» ‘${o}’ не является допустимым вариантом; используйте либо ‘include’, либо ‘exclude’.`), !1 ); if ( ‘*’ !== s && !( Array.isArray(s) && s.length > 0 && s.every(e => (0, i.O8)(e) && ‘*’ !== e)) ) return ( (0, i.JE)( `Обнаружена неверная настройка в userSync «filterSettings.${r}.bidders»; используйте либо ‘*’ (для представления всех участники торгов) или массив участников торгов.` ), !1 ); вернуть !0; })(n, e) ) { ты[e] = !0; пусть я = n.all? н.все : н[e]r = ‘*’ === i.bidders ? [t] : i.участники торгов; const o = {include: (e, t) => !e.includes(t), исключаем: (e, t) => e.includes(t) }; вернуться о[i.filter || ‘include’](р, т); } вернуть !у[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, причина: ‘синхронизация отключена’ }; if (e.userSync);[d.Dk] === c.tW) { const n = e[d.bt]я = е[d.iK]; if (!t.canBidderRegisterSync(n, i)) return {allow: !1, причина: `${n} синхронизация не включена для ${i}` }; } }), (t.registerSync = (t, r, u) => o.has(r) ? (0, i.OG)( `уже запущена синхронизация для «${r}», игнорируя вызов RegisterSync` ): f.syncEnabled && (0, i.cy)(n[t]) ? р? 0 !== f.syncsPerBidder && Число(а)[r]) >= f.syncsPerBidder ? (0, i.JE)(`Превышено количество пользовательских синхронизаций для «${r}»`) : void ( e.isAllowed( a.Ml, (0, ls)(c.tW, r, { [d.bt]: т, [d.e3]: ты })) ) && (n[t].толкать([r, u]), (s = (function(e, t) { return e[t] ? (э[t] += 1) : (е[t] = 1), е; })(s, r))) ) : (0, i.JE)(‘Для регистрации синхронизации требуется программа назначения ставок’) : (0, i.JE)(`Тип пользовательской синхронизации «${t}» не поддерживается`)), (t.bidderDone = o.add.bind(o)), (t.syncUsers = function() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: 0; if (e) вернуть setTimeout(g, Number(e)); г(); }), (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 }, { BrowseSupportsCookies: { get: function() { return !(0, i.Vt)() && f.cookiesAreEnabled(); } } } ) ); }, 1069: (e, t, n) => { nd(t, { $D: () => U, $z: () => Ue, Bg: () => Ke, Bj: () => Qe, Bk: () => ge, Bq: () => he, CA: () => K, D4: () => me, D9: () => Le, Dl: () => Ge, Эл: () => Йе, Et: () => ne, Ez: () => Y, Fq: () => We, GE: () => Se, Go: () => we, II: () => ye, Im: () => oe, JE: () => F, Lm: () => re, N9: () => Re, O8: () => ee, OG: () => M, От: () => Т, ПБ: () => Е, Q0: () => Ее, Qд: () => т.е., ШБ: () => $е, СГ: () => уе, Ш: () => Дэ, Тз: () => фе, У6: () => ке, Уп: () => Пе, Уу: () => Вэ, В: () => Оэ, Вт: () => Те, ЙЕ: () => П, ЗА: () => быть, ЗК: () => Зе, _s: () => ае, ал: () => Ie, bD: () => He, bL: () => k, bz: () => Ne, c$: () => Fe, cD: () => w, ср: () => 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 = «Строка», c = «Функция», l = «Число», u = «Объект», f = «Логическое значение», 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, am)(); функция w(e) { p = e; } function I() { null != p && p(…аргументы); } 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 !== аргументы[1]) || аргументы[1]n = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: »; если (! e) return »; t &&(e = encodeURI(e)); n &&(n = `sandbox=»${n}»`); вернуть «; }, getWindowSelf: N, getWindowTop: q, canAccessWindowTop: V, getWindowLocation: W, InsertUserSyncIframe: ue, InsertElement: ae, isFn: Z, триггерPixel: ce, logError: H, logWarn: F, logMessage: M, logInfo: G, parseQS: Me, formatQS: функция (e ) {возврат объекта. ключи ( е ) . карта ( t => Array . isArray ( e )[t]) ? е[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: { высота: e.visualViewport?.height, ширина: e.visualViewport?.width }, документ: { 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) ); } функция 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]/г, С); } 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] = е; возвращаться [parseInt(n, 10), parseInt(i, 10)]; }) : Array.isArray(e) ? х (е) ? [e]
: e.filter(x) : []; } function _(e) { return D(e).map($); } функция $(e) { return e[0] + ‘х’ + е[1]; } function j(e) { return { w: e[0]он[1] }; } function x(e) { return height(e) && 2 === e.length && !isNaN(e[0]) && !isNaN(e[1]); } Функция q() { return window.top; } Функция N() { return window.self; } функция W() { return window.location; } функция P() {возврат документа; } 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’, аргументы }); } function H() { J() && E && console.error.apply(console, z(arguments, ‘ERROR:’)), I(o.qY.AUCTION_DEBUG, { type: ‘ERROR’, аргументы }); } function L(e) { function t(t) { return function() { for ( var n = аргументы.длина, i = новый массив(n), r = 0; r { const e = { border: ‘0px’, hspace: ‘0’, vspace: ‘0’, MarginWidth: ‘0’, MarginHeight: ‘0’, прокрутка: ‘нет’, FrameBorder: ‘0’,allowtransparency: ‘true’ }; return function(t, n) { let i = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[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(), ширина: 0, высота: 0, src: ‘about:blank’ }, { display: ‘none’, высота: ‘0px’, ширина: ‘0px’, граница: ‘0px’ }); } функция Y(e) { return Me(W().search)[e] || »; } function X(e, t) { return g.call(e) === ‘[object ‘ + t + ‘]’; } функция Z(e) { return X(e, c); } function ee(e) { return X(e, d); } const te = Array.isArray.bind(Array); функция 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 { 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; константа т = К(); вар н; 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-scriptsallow-same-origin’), r = document.createElement(‘div’); r.innerHTML = я; пусть о = r.firstChild; t && C.isFn(t) && de(o, n).then(t), C.insertElement(o, document, ‘html’, !0); } function fe(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: кодироватьURI; if (!e) 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] === е)); } function be() { return (arguments.length > 0 && void 0 !== аргументы[0]
? аргументы[0]
: A.adUnits ) .map(e => e.bids.map(e => e.bidders).reduce(he, [])) .reduce(он, []) .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]; (э[t] = е[n]), (э[n] = я); } Вернуть е; } function we(e) { return (0, rQ)(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] = т; return e.replace( new RegExp(‘\$\{‘ + n + ‘\}’, ‘g’), i || » ); }, е); } 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 e[t]) .reduce((t, n) => Object.assign(t, { [n]: е[n] }), {}); } функция _e(e) { const t = [‘banner’, ‘native’, ‘video’]п = [‘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() === т; функция qe(e) { return t => xe(e, t); } function Ne(e, t) { const n = Object.keys(e.mediaTypes || { Banner: ‘banner’ }).join( ‘, ‘ ); return `n ${e.code} — это рекламный блок ${n},n содержащий системы назначения ставок, которые не поддерживают ${n}: ${t}.n Эта система назначения ставок не будет удовлетворять спрос.n `; } Const We = Number.isInteger.bind(Number); function Pe(e, t) { return ‘object’ != typeof e ? {} : t.reduce((n, i, r) => { if (‘function’ == typeof i) возвращает n; пусть o = i, s = i.match(/^(.+?)sass(.+?)$/i); s && ((i = s[1]), (о = s[2])); пусть а = е[i]; return (‘function’ == typeof t[r + 1] && (а = т[r + 1](a, n)), void 0 !== a && (n[o] = а), п ); }, {}); } function Ve(e, t) { return te(e) && (!t || e.length === t) && e.every(e => We(e)); } функция Me(e) { return e ? e .replace(/^?/, ») .split(‘&’) .reduce((e, t) => { let [n, i] = t.split(‘=’); возвращаться ( /[]$/.test(n) ? ((n = n.replace(‘[]’, »)) (е[n] = е[n] || []), е[n].push(i)) : (e[n] = я || »), е ); }, {}) : {}; } function Ge(e, t) { let n = document.createElement(‘a’); t && ‘noDecodeWholeURL’ в t && t.noDecodeWholeURL ? (n.href = e) : (n.href = decodeURIComponent(e)); let i = t && ‘decodeSearchAsString’ в t && t.decodeSearchAsString; return { href: n.href, протокол: (n.protocol || »).replace(/:$/, »), имя хоста: n.hostname, порт: +n.port, путь: n.pathname.replace(/^(?!/)/, ‘/’), search: i ? n.search : C.parseQS(n.search || »), хеш: (n.hash || »).replace(/^#/, »), хост: n.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 } = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: {}; if (e === t) вернуть !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 (пусть i = 0; i < e.length; i++), если (!He(e[i]т[i]{checkTypes: n })) return !1; вернуть !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; если (!Он(е[i]т[i]{checkTypes: n })) return !1; } вернуть !0; } function Le(e) { for ( let t = 0; t < (arguments.length <= 1 ? 0 : аргументы.length — 1); t++ ) { const n = t + 1 < 1 || аргументы.длина <= т + 1? void 0: аргументы[t + 1]; т.е.(n) && ze(e, n); } Вернуть е; } function ze(e, t) { if (!ie(e) || !ie(t)) return; const n = Object.keys(t); for (пусть i = 0; i { e[r].some(e => He(e, t)) || е[r].push(т); }) : (е[r] = […o]) : (э[r] = о); } } function Je(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: 0, n = function(e, t) { if (Z(Math.imul)) return Math.imul(e, t); вар n = (4194303 & e) * (t |= 0); return ( 4290772992 & e && (n += ((4290772992 & e) * t) | 0), 0 | n ); }, я = 3735928559 ^ т, г = 1103547991 ^ т; for (let t, o = 0; o >> 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 = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: function(e) { return e; }; const n = new Map(), я = function() { const я = t.apply(this, аргументы); return ( n.has(i) || n.set(i, e.apply(this, аргументы)), n.get(i) ); }; return (i.clear = n.clear.bind(n)), i; } function Ke(e, t) { Object.entries(t).forEach(t => { let [n, i] = т; вернуть e.setAttribute(n, i); }); } function Ye(e, t) { let n = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: e => e, i = 0, r = e.length && e.length — 1; константа о = п(т); for (; r — i > 1; ) { const t = i + Math.round((r — i)/2); о > n(е[t]) ? (i = t): (r = t); } for (; e.length > i && o > n(e[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; }; })(); асинхронная функция Ze(e) { ‘string’ != typeof e && (e = JSON.stringify(e)); const t = новый TextEncoder().encode(e), n = новый Blob([t]) .stream() .pipeThrough(new window.CompressionStream(‘gzip’)), i = жду нового ответа(n).blob(), r = жду i.arrayBuffer(); вернуть новый Uint8Array(r); } }, 2621: (e, t, n) => { function i(e) { return ( !e?.gdprApplies || !0 === e?.vendorData?.function?.consents?.[1]
); } nd(t, { C: () => i }); }, 6894: (e, t, n) => { nd(t, { Ak: () => m, BO: () => g, K7: () => p }); вар я = п (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 } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; return function() { return (function o(s) { let a = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: e => ({ forEach(t) { t(e); } }); а = я(а); const d = ((c = ‘метки времени’), function(e) { return s.dfWalk({ visit(t, n) { const i = n[c]; if (i.hasOwnProperty(e)) возвращает я[e]; } }); }); вар с; функция 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] = []), т.е. группы[n].push(т)); }); } }); } function u(t) { return n(e, e => l(t, e)); } функция 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) ); }, контрольная точка: function(t) { s.timestamps[t] = е(); }, timeSince: function(t, n) { const i = d(t), r = null != i ? е() — я: ноль; вернуть ноль != n && l(n, r), r; }, timeBetween: function(e, t, n) { const i = d(e), r = d(t), o = null != i && null != r ? р — я: ноль; return null != n && l(n, o), o; }, setMetric: l, getMetrics: f, fork: function() { let { propagate: e = !0, stopPropagation: n = !1, includeGroups: i = !1 } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; вернуть о( т([
[
s,
{
propagate: e,
stopPropagation: n,
includeGroups: i
}
]
]), а ); }, join: function(e) { let { propagate: t = !0, stopPropagation: n = !1, includeGroups: i = !1 } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[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() }; вернуть r.set(g, s), g; })(т([])); }; } function d(e, t, n) { return function() { t && t(); попробуйте { return e.apply(this, аргументы); } наконец { n && n(); } }; } function c(e, t) { const n = e(); пусть я = !1; функция г() { я || (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, visit: r = new Set(), inEdge: o } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; if (!r.has(this)) { if ((r.add(this), (t = n(o, this)), null != t)) return t; для (константа [s, a] из e) if ( i(o, a) && ((t = s.dfWalk({ visit: n, Follow: i, visit: 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, { get: t }]) ) ); return a({ now: () => 0, mkNode: () => r, mkRenamer: () => () => n, mkTimer: () => i, nodes: { get: e, set: e } })(); })(); пусть f = !0; функция g(e) { return (f && e) || ты; } 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 = аргументы.длина, s = new Array(o > 1 ? o — 1 : 0), a = 1; a e.metrics); h(‘addBidResponse.’, (e, t) => t.metrics); }, 5555: (e, t, n) => { nd(t, { U9: () => s, cb: () => a, v6: () => d }); вар i = n(43), r = n(7873); const o = (0, rm)().setTimeout ?? iw, s = (0, rm)(). Обещание ?? ок; function a() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: 0; return new s(t => { o(t, e); }); } function d() { let e, t, { PromiseFactory: n = e => new s(e) } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; функция я (е) {возвращение т => е (т); } return {обещание: n((n, i) => { (e = n), (t = i); }), разрешить: i(e), отклонить: i(t) }; } }, 2713: (e, t, n) => { function i(e, t) { return e === t ? 0: е 0 && void 0 !== аргументы[0]
? аргументы[0]
: е => е; return (t, n) => i(e(t), e(n)); } function o() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: я; return (t, n) => -e(t, n) || 0; } function s() { for (var e = аргументы.длина, t = новый массив(e), n = 0; n 0 && void 0 !== аргументы[0]
? аргументы[0]
: я; return (t, n) => (e(n, t) 0 && void 0 !== аргументы[0]
? аргументы[0]
: я ) ); } nd(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) => { nd(t, { H: () => l }); вар я = п(5555), г = п(1069); пусть o = ноль, s = 0, a = []; функция 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 = [])); } функция 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); возврат () => я; } function l() { let { startTime: e = r.vE, ttl: t = () => null, monotonic: n = !1, slack: o = 5e3 } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; const s = новая карта(), a = []д = []л = п ? e => d.push(e) : e => d.splice( (0, r.El)(d, e, e => e.expiry), 0, e ); пусть ты, ж; 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)); } Еще е = ноль; } function p(n) { const r = {}, s = h; пусть а; константа [d, c] = Object.entries({ start: e, delta: t }).map(e => { let t,
[d, c] = е; 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, обновить: c, get expiry() { return a; } }; вернуть д(), с(), р; } пусть h = {}; возвращаться {
[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()), обновить() { (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) => { nd(t, { H6: () => a, V0: () => c, Zy: () => d, aP: () => l, vk: () => u }); вар i = n(1069), r = n(3272), o = n(9214), s = n(6881); const a = ‘outstream’, d = новая карта([
[
‘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]
]); функция 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] = р; if (!d.has(o)) return; d.get(o)(s) || (‘function’ == typeof t ? t(o, s, e) : (удалить n[o](0, i.JE)( `Недопустимое свойство в adUnit «${e.code}»: Недопустимое значение для свойства mediaTypes.video.${o} ORTB. Свойство было удалено.` ))); }) : (0, i.JE)( ‘validateOrtbVideoFields: videoParams должен быть объектом.’); } function u(e) { let { index: t = snindex } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; const n = t.getMediaTypes(e)?.video, i = n && n?.context, r = n && n?.useCacheKey, o = t.getAdUnit(e); вернуть 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 Эта ставка содержит только обширныйXml и не будет работать, если не указан URL-адрес кэша предварительных ставок.n Попробуйте включить кэш предварительных ставок с помощью tlpbjs.setConfig({ кэш: {url: «…»} });n или локальный кеш с tlpbjs.setConfig({ кэш: { useLocal: true }});n ‘ ), !1); } return ( !(o === a && !s) || !!(e.renderer || (t && t.renderer) || n.renderer) }, ‘checkVideoBidSetup’ ); } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[769]{ 8944: (t, e, n) => { nd(e, { M: () => i }); вар c = n(1069); функция i() { const t = (0, c.Ot)(); попробуйте {const e = t.innerHeight || t.document.documentElement.clientHeight || t.document.body.clientHeight || 0; return { ширина: t.innerWidth || t.document.documentElement.clientWidth || t.document.body.clientWidth || 0, высота: е }; } поймать (т) {вернуться {}; } } } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[139]{ 43: (t, e, n) => { nd(e, { k: () => c, w: () => r }); const s = 0, l = 1; класс с {#t; #е; конструктор(t) { if (‘function’ != typeof t) throw new Error(‘resolver not a function’); константа е = []п = []; позволять [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()(); } ); попробуйте {т(с, г); } поймать (т) { г (т); } (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] = п[0] === с ? [t, l] : [e, c]; if (‘function’ == typeof h) { try { r = h(r); } catch (т) { return void c(t); } я = л; } Я (г); }; n.длина? r() : this.#e.push(r); }); } catch(t) { return this.then(null, t); } Final(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; функция l() { e.apply(this, аргументы), —s 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] = т ? { статус: ‘выполнено’, значение: e } : { статус: ‘отклонено’, причина: e }), () => e(n) ); }); } staticsolve(t) { return new this(e => e(t)); } static ignore(t) { return new this((e, n) => n(t)); } } function r(t) { let e = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: 0; если (e > 0) вернуть setTimeout(t, e); т(); } } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[85]{ 4595: (e, t, n) => { nd(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:»Отсутствует рекламная разметка или URL»};{if(null==i){const е=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 || []).толкать([
[109]{ 965: (t, e, n) => { nd(e, { c5: () => o }); вар а = п (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’]режим: i = l } = t, u = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: окно; 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; если (е?.[p]?.callId) { const t = e[p]; f.hasOwnProperty(t.callId) && f[t.callId](…s.map(e => t[e])); } } константа [k, m] = (function() { let t, n = u, a = !1; for (; null != n; ) { try { if (‘function’ == typeof n[e]) { (t = n), (a = !0); перерыв; } } catch (t) {} try { if (n.frames[`${e}Locator`]) { т = п; перерыв; } } catch (t) {} if (n === u.top) Break; n = n.родитель; } возвращаться [t, a]; })(); если (!k) возврат; 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, аргументы); }; } Пусть v; return ( m ? (v = function() { let t = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; вернуть новый a.U9((n, a) => { const o = k[e]( …g({ …t, обратный вызов: t.callback || i === r ? h(t.callback, n, a) : void 0 }).map(t => { let [e, n] = т; вернуть н; }) ); (i === c || (null == t.callback && i === l)) && n(o); }); }) : (u.addEventListener(‘message’, b, !1), (v = function(t) { let e = аргументы.длина > 1 && void 0 !== аргументы[1] && аргументы[1]; return new a.U9((n, a) => { const l = Math.random().toString(), r = {
[d]: { …Object.fromEntries( g(t).filter(t => { let [e] = т; вернуть ‘обратный вызов’ !== e; }) ), callId: l } }; (ф[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 || []).толкать([
[10]{ 3806: (t, n, e) => { ed(n, { yq: () => c }); вар о = е(6894), а = е(1069), s = е(7873), я = е(5555), г = е(2604); function c() { let t, n, e, { namespace: c, displayName: l, согласияDataHandler: u, parseConsentData: m, getNullConsent: d, cmpHandlers: f, DEFAULT_CMP: g = ‘iab’, DEFAULT_CONSENT_TIMEOUT: p = 1e4 } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[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, AcceptData: 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 { согласияData: s, error: i } = n; !i || (s && e.has(i)) || (e.add(i), (0, a.JE)(i.message, …(i.args || []))), t.call(это, о); }) .catch(n => { (0, a.vV)( `${n?.message} Отмена аукциона согласно конфигурации ConsentManagement.`, …(n?.args || []) ), t.stopTiming(), ‘function’ == typeof o.bidsBackHandler ? o.bidsBackHandler() : (0, a.vV)(‘Ошибка выполнения bidsBackHandler’); }); }); })(c, () => n())), (0, sm)().requestBids.before(t, 50), r.U3.before(D), (0, a.fH)( `${l} Модуль согласияManagement активирован…` )); } return function(o) { if (((o = o?.[c]), !о || ‘object’ != typeof o)) return ( (0, a.JE)( C(‘конфигурация не определена, выход из модуля диспетчера согласия’)), null != t && ((0, sm)() .requestBids.getHooks({ловушка: t }) .remove(), r.U3.getHooks({крючок: D }).remove(), (t = null)), {}); пусть б, к; (0, a.O8)(o.cmpApi) ? (b = o.cmpApi): ((b = g), (0, a.fH)( C( `config не указал cmp. Использование системных настроек по умолчанию (${g}).` ) )), (0, a.Et)(o.timeout) ? (k = o.timeout): ((k = p), (0, a.fH)( C( `config не указал таймаут. Использование системных настроек по умолчанию (${p}).` ) )); const H = (0, a.Et)(o.actionTimeout)? o.actionTimeout: ноль; пусть ш; ‘статический’ === б ? (0, a.Qd)(o.consentData) ? ((e = o.consentData), (k = null), (w = () => new i.U9(t => t(u.setConsentData(m(e)))))) : (0, a.vV)( C( «конфигурация с cmpApi: ‘static’ не указала согласиеData. Адаптерам не будут доступны никакие согласия.» ) ): f.hasOwnProperty(b) ? (ш = ж[b]) : (u.setConsentData(null), (0, a.JE)( `${l} Платформа CMP (${b}) не является поддерживаемой платформой. Прерывание модуля согласия и возобновление аукциона.` ), (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 = ‘тайм-аут ожидания ‘ + (u ? ‘действие пользователя на CMP’ : ‘CMP для загрузки’); 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({ согласияData: 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 || []).толкать([
[618]{ 981: (e, t, i) => { id(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); вар с = я (3323); вар л = я (7873); вар ж = я (1371); вар и = я (3005); константа v = {
[d.S3]: { extPrebid: { fn: function(e, t) { (0, pJ)( 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, pJ)( e, ‘ext.prebid.channel’, Object.assign( { name: ‘pbjs’, version: (0, lm)().version }, e.ext?.prebid?.channel ) ); } }, extPrebidAliases: { fn: function(e, t, i) { let { am: r = b.Ay } = аргументы.длина > 3 && void 0 !== аргументы[3]
? аргументы[3]
: {}; если (r.aliasRegistry[t.bidderCode]) { const i = r.bidderRegistry[t.bidderCode]; if (!i || !i.getSpec().skipPbsAliasing) { (0, pJ)( e, `ext.prebid.aliases.${t.bidderCode}`, r.aliasRegistry[t.bidderCode]
); const d = o.$W.getConfig(`gvlMapping.${t.bidderCode}`) || я?.getSpec?.().gvlid; d && (0, pJ)( e, `ext.prebid.aliasgvlids.${t.bidderCode}`, d); } } } } },
[d.Tb]: { params: { fn: cW }, adUnitCode: { fn: function(e, t) { const i = t.adUnitCode; я && (0, pJ)(e, ‘ext.prebid.adunitcode’, i); } } },
[d.WR]: { mediaType: { fn: so, Priority: 99 }, videoCache: { fn: function(e, t) { if (e.mediaType === f.G_) { let {cacheId: i, url: r } = (0, nA)(t, ‘ext.prebid.cache.vastXml’) || {}; if (!i || !r) { const { hb_uuid: e, hb_cache_host: d, hb_cache_path: a } = (0, nA)(t, ‘ext.prebid.targeting’) || {}; e && d && a && ((i = e), (r = `https://${d}${a}?uuid=${e}`)); } i && r && Object.assign(e, {videoCacheKey: i, обширныйUrl: r }); } }, приоритет: -10 }, bidderCode: { fn(e, t, i) { (e.bidderCode = i.seatbid.seat), (e.adapterCode = (0, nA)(t, ‘ext.prebid.meta.adaptercode’) || i.bidRequest?.bidder || e.bidderCode); } }, pbsBidId: { fn(e, t) { const i = (0, nA)(t, ‘ext.prebid.bidid’); (0, a.O8)(i) && (e.pbsBidId = i); } }, adserverTargeting: { fn(e, t) { const i = (0, nA)(t, ‘ext.prebid.targeting’); (0, a.Qd)(i) && (e.adserverTargeting = i); } }, extPrebidMeta: { fn(e, t) { e.meta = (0, a.D9)( {}, (0, nA)(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] = т; return ( i && null == e.eventtrackers.find(e => { let { метод: t, event: d, url: n } = e; return d === r && t === u.Ni && n === i; }) ); }) .forEach(t => { let [i, r] = т; e.eventtrackers.push({метод: u.Ni, событие: r, URL: я }); }); } } },
[d.Cf]: { serverSideStats: { fn(e, t, i) { Object.entries({ error: ‘serverErrors’, responsetimemillis: ‘serverResponseTimeMs’ }).forEach(e => { let [r, d] = е; const a = (0, nA)( t, `ext.${r}.${i.bidderRequest.bidderCode}` ); a && ((i.bidderRequest[d] = а), i.bidRequests.forEach(e => (e[d] = а))); }); } } } }; вар г = я (9766); const h = (0, a.Bj)(() => (0, rU)((0, gT)(), v, (0, d.yB)(d.e4))); }, 5825: (e, t, i) => { id(t, { o: () => a, s: () => n }); вар г = я (1371), d = я (5561); константа п = { [r.D4]: ‘баннер’, [r.s6]: ‘родной’, [r.G_]: ‘видео’ }; function a(e, t, i) { let a = i.mediaType; а || ((a = dXhasOwnProperty(t.mtype) ? dX[t.mtype]
: t.ext?.prebid?.type), n.hasOwnProperty(a) || (a = r.D4)), (e.mediaType = a); } }, 3323: (e, t, i) => { id(t, { W: () => d }); вар г = я (3172); function d(e, t) { let i = t.params; i && (0, rJ)(e, `ext.prebid.bidder.${t.bidder}`, i); } } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[498]{ 9766: (e, t, r) => { rd(t, { T: () => f, A: () => m }); const n = новый WeakMap(); вар я = г (1069), s = г (1371); вар о = г (3895); вар а = г (5561); вар d = r(1e3), p = r(3858); константа с = {
[d.S3]: { fpd: { Priority: 99, fn(e, t) { (0, i.D9)(e, t.ortb2); } }, onlyOneClient: { Priority: -99, fn: (0, p.i8)(‘ORTB-запрос’) }, 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; } }, баннер: { 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, iy$)(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) || удалить e.ext?.data?.pbadslot; } }, безопасно: { fn(e, t) { e.secure = e.secure ?? 1; } } },
[d.WR]: { mediaType: { Priority: 99, fn: aK }, баннер: { fn: (function() { let { createPixel: e = e => (0, i.Tz)(decodeURIComponent(e), i.Bk) } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[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, валюта: r.ortbResponse.cur || r.currency, ширина: tw, высота: th, 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] = е; вернуть void 0 !== r; }) .forEach(t => { let [r, n] = т; возврат (э[r] = п); }), 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 )); } } } }; (с[d.Tb].native = { fn: function(e, t, r) { if (r.mediaType && r.mediaType !== s.s6) return; пусть 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 установлен, но активы не указаны. Собственный запрос пропущен.’, t )); } }), (с[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 = {ортб: р}; } } }), (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] = е; вернуть o.Zy.has(t); }) ); if (n.playerSize) { const e = (0, iy$)(n.playerSize).map(i.cf); e.length > 1 && (0, i.JE)( ‘запрос видео указывает более одного playerSize; все, кроме первого, будут игнорироваться’), 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)); } }); вар и = г (9466); function m() { let { context: e = {}, процессоры: t = f, переопределения: r = {},imp: s, запрос: o, bidResponse: a, ответ: p } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; const c = новый WeakMap(); функция u(e, i, s, o) { let a; return function() { return ( null == a && (a = (function() { let a = s.bind( this, (function(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; if (!n.has(e)) { const t = Object.entries(e); t.sort((e, t) => (e = e[1].приоритет || 0) === (т = т[1].приоритет || 0) ? 0: е > т? -1 : 1), n.set( e, t.map(e => { let [t, r] = е; возвращаться [t, r.fn]; }) ); } const r = n .get(e).filter(e => { let [r] = е; return !t.hasOwnProperty(r) || т[r]; }) .map(function(e) { let [r, n] = е; вернуть t.hasOwnProperty(r)? т[r].bind(this, n) : n; }); return function() { const e = Array.from(arguments); r.forEach(t => { t.apply(this, e); }); }; })(т()[e] || {}, р[e] || {}) ); return ( i && (a = i.bind(this, a)), function() { try { return a.apply(this, аргументы); } catch (e) { o.call(this, e, …arguments); } } ); })()), a.apply(this, аргументы) ); }; } 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)( ‘Ошибка при преобразовании bidRequest в ORTBimp; запрос пропущен.’, { 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)(‘Ошибка при преобразовании в запрос ORTB’, { 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)( ‘Ошибка при преобразовании ORTB seabid.bid в bidResponse; ставка пропущена.’, { 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)( ‘Ошибка при преобразовании из ответа ORTB’, { error: e, bidResponses: t, ortbResponse: r, context: n }), e }); return {toORTB(t) {let {bidderRequest: r, bidRequests: n, context: s = {} } = t; п = п || ставки; 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] = п), а ); (0, i.vV)( ‘Преобразованный ORTB-импорт не указывает идентификатор, игнорируя запрос ставки’, 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 {запрос: т, ответ: р} = е; const n = c.get(t); if (null == n) throw new Error(‘ortbRequest, переданный в `fromORTB`, должен быть тем же объектом, который возвращается `toORTB`’ ); function s(e) { let r = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; return Object.assign(e, { ortbRequest: t }, r); } const o = Object.fromEntries( (t.imp || []).map(е => [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.impid)[t.impid]{ имп: о[t.impid]ставка на место: e, ortbResponse: r }) ); (0, i.vV)( ‘Ответ ORTB на предложение места[].делать ставку[].impid не соответствует ни одному запросу в запросе; игнорируя заявку’, t ); }) ) .filter(Boolean); вернуть y(a, r, s(n.req)); } }; } const f = (0, i.Bj)(() => (0, uU)(c, (0, d.yB)(d.qN))); }, 9466: (e, t, r) => { rd(t, { U: () => i }); вар п = г (1e3); функция i() { for (var e = аргументы.длина, t = новый массив(e), r = 0; r 1? я(…т) : т[0]; return Object.fromEntries( n.zt.map(e => [e, Object.assign({}, s[e]о[e])]) ); } }, 5561: (e, t, r) => { rd(t, { K: () => s, X: () => i }); вар п = г (1371); const i = { 1: n.D4, 2: n.G_, 4: n.s6 }; функция s(e, t, r) { if (e.mediaType) return; const n = r.mediaType; if (!n && !i.hasOwnProperty(t.mtype)) throw new Error(‘Невозможно определить mediaType для ответа’); e.mediaType = n || я[t.mtype]; } } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[225]{ 6743: (n, t, l) => { ld(t, { x4: () => i }); вар е = l(7873), r = l(2713); function u(n, t, l) { let r = !(arguments.length > 3 && void 0 !== аргументы[3]) || аргументы[3]; if (t === l) вернуть n; пусть и = п; попробуйте { u = (0, em)().convertCurrency(n, t, l); } catch (n) { if (!r) throw n; } Вернуть тебя; } function i() { let n = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: н => [n.cpm, n.currency]t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: (function() { let n = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: null, t = !( аргументы.длина > 1 && void 0 !== аргументы[1]
) || аргументы[1]l = аргументы.длина > 2 && void 0 !== аргументы[2]
? аргументы[2]
: ты; 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 || []).толкать([
[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 e }); } } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[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); пусть 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’]
}); р || n(новая ошибка(‘TCF2 CMP не найден.’)), r.isDirect ? (0, s.fH)( ‘Обнаруженный CMP API доступен напрямую, вызываю его сейчас…’ ) : (0, s.fH)( ‘Обнаруженный CMP находится за пределами текущего iframe, где находится Prebid.js, вызываю его сейчас…’ ), r({ команда: ‘addEventListener’, callback: function(r, a) { if ( ((0, s.fH)(‘Получен ответ от 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 не удалось); для регистрации функции обратного вызова. Проверьте настройку CMP.’ } }); }); } }; 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 Ошибка(‘CMP вернул неожиданное значение во время поиска.’), { args: [e] }); вернуть D(е); } function D(e) {const t = {consentString: e? e.tcString: void 0,vendorData: e || void 0, gdprApplies: e && ‘boolean’ == typeof e.gdprApplies ? например.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’, согласияDataHandler: 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) ), pwbefore(function(e, t) { return e( t.then(e => { const t = c.mW.getConsentData(); return ( t && (‘boolean’ == typeof t.gdprApplies && (0, aJ)(e, ‘regs.ext.gdpr’, t.gdprApplies ? 1 : 0), (0, aJ)(e, ‘user.ext.consent’, t.consentString)), g && (0, aJ)(e, ‘regs.ext.dsa.dsarquired’, 3), e }) }), (0, i.pS)({ type: i.S3, name: ‘gdprAddtlConsent’, fn: function(e, t) { const n = t.gdprConsent?.addtlConsent; n && ‘string’ == typeof n && (0, aJ)( e, ‘user.ext.ConsentedProvidersSettings.consented_providers’, n } }), (0, rE)(‘consentManagementTcf’); } }, е => { eO(0, [802, 109, 10, 769, 139, 85]() => { return (t = 6117), e((es = t)); вар т; }); еО(); } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[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); константа d = ‘iab’; пусть 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 { constDataCallback: (o, a) => { a && o.uspString && (n.usPrivacy = o.uspString), n.usPrivacy ? h(n, { onSuccess: t, onError: e }) : e(‘Невозможно получить строку согласия USP.’); } }; })(); const s = (0, g.c5)({ apiName: ‘__uspapi’, apiVersion: 1, apiArgs: [‘command’, ‘version’, ‘callback’]
}); if (!s) return e(‘USP CMP не найден.’); s.isDirect ? (0, a.fH)( ‘Обнаруженный USP CMP доступен напрямую, вызываем его сейчас…’ ) : (0, a.fH)( ‘Обнаруженный USP CMP находится за пределами текущего iframe, где находится Prebid.js, вызываем его сейчас…’ ); s({ команда: ‘getUSPData’, обратный вызов: o.consentDataCallback }), s({ команда: ‘registerDeletion’, обратный вызов: (n, t) => (null == t || t) && c.Ay.callDataDeletionRequest(n) }).catch(n => { (0, a.vV)(‘Ошибка при вызове CMP `registerDeletion`:’, н); }); }, static: function (n) { let { onSuccess: t, onError: e } = n; ч (р, { onSuccess: т, onError: е }); } }; функция D(n) { пусть t = null, e = !1; function o(o, a) { if ( (null != t &&clearTimeout(t), (e = !0), r.t6.setConsentData(o), null != n) ) { for ( var s = аргументы.длина, i = new Array(s > 2 ? s — 2 : 0), c = 2; c 1? t — 1 : 0), a = 1; a 1 ? s — 1 : 0), c = 1; c 0 && void 0 !== аргументы[0] && аргументы[0]; С || ((0, a.fH)( ‘Модуль управления согласием USPAPI активирован’ + (n ? » : ` с использованием значений по умолчанию (api: ‘${P}’, тайм-аут: ${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 не определена, используются значения по умолчанию’), n && (0, a.O8)(n.cmpApi) ? (P = n.cmpApi) : ((P = d), (0, a.fH)( `в конфигурации consentManagement.usp не указан cmpApi. Использование системных настроек по умолчанию (${d}).` )), n && (0, a.Et)(n.timeout) ? (v = n.timeout): ((v = 50), (0, a.fH)( ‘в конфигурации consentManagement.usp не указан таймаут. Использование системных значений по умолчанию установка (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 с cmpApi: ‘static’ не указала согласие. Адаптерам не будут доступны согласия.» )), U(!0); })(n.consentManagement) ), (0, l.Yn)(‘requestBids’).before(y, 50), fwbefore(function(n, t) { return n( t.then(n => { const t = r.t6.getConsentData(); return t && (0, sJ)(n, ‘regs.ext.us_privacy’, t), n; }) }), (0, oE)(‘consentManagementUsp’); } }, n => { nO(0, [109, 802, 769, 139, 85]() => { return (t = 6056), n((ns = t)); вар т; }); нет(); } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[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 = аргументы.длина > 1 && void 0 !== аргументы[1] && аргументы[1]; const o = (0, r.Dl)(e, { noDecodeWholeURL: !0 }); вернуть т? `${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(т); } 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 { const n = JSON.parse(т); 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]т ); } }, ошибка: e => { (0, r.vV)( ‘criteoIdSystem: невозможно синхронизировать идентификатор пользователя’, e); } }, void 0, { метод: ‘GET’, withCredentials: !0 } ): (0, rz$)(o.pixelUrl); })(e, d, t) ), n.acwsUrl)) { (‘string’ == typeof n.acwsUrl ? [n.acwsUrl]
: n.acwsUrl .forEach(e => (0, rz$)(e)); } Еще n.bundle && C(e, m, n.bundle, d); if (n.bidId) { C(e, u, n.bidId, d); const t = {criteoId: n.bidId}; о(т); } else v((c = u), », y, d, !0), g.removeDataFromLocalStorage(c), o(); вар с; }, ошибка: e => { (0, r.vV)(‘criteoIdSystem: невозможно синхронизировать идентификатор пользователя’, e), o(); } }; (0, a.RD)(f, h, void 0, { метод: ‘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); вернуть {идентификатор: t.bidId? { criteoId: t.bidId }: void 0, обратный вызов: o => U(e, t, o) }; }, eids: { criteoId: { источник: ‘criteo.com’, atype: 1 } } }; (0, i.bz)(‘userId’, D), (0, nE)(‘criteoIdSystem’); } }, е => { eO(0, [802, 769, 139, 85]() => { return (t = 2843), e((es = t)); вар т; }); еО(); } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[328]{ 1134: (e, t, n) => { nd(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: { адаптер: ‘prebidServer’, Enabled: !0, конечная точка: { 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: { адаптер: ‘prebidServer’, Enabled: !0, конечная точка: { 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: { адаптер: ‘prebidServer’, Enabled: !0, конечная точка: { 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); функция T(e) { let { global: t, претендент: n } = e; return Object.fromEntries( Object.entries(n).map(e => { let [n, r] = е; возвращаться [n, A(r, (0, i.D9)({}, t, r))]; }) ); } function A(e, t) { return Object.fromEntries( Object.entries(e).map(e => { let [n, r] = е; константа с = т[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, конфликты: n = new Set() } = e; const r = []с = []я = {}; 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] = я[e] || []).push(т); }) : r.push({ eid: t, претенденты: 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 = новый Set(); function o(e) { let t = r.find(t => (0, i.bD)(t.eid, e)); return ( null == t && ((t = { eid: e, претенденты: новый Set() }), r.push(t)), null == s[e.source]
? (с[e.source] = t.eid) : t.eid === e && d.add(e.source), t ); } return ( R.Vx.forEach(e => { ((0, jA)(t, e) || []).forEach(e => { o(e).bidders = !1; }); }), Object.entries(n).forEach(e => { let [t, n] = е; R.Vx.forEach(e => { ((0, jA)(n, e) || []).forEach(e => { const n = o(e); !1 !== n.bidders && n.bidders.add(t); }); }); }), { eids: r.map(e => { let { eid: t, претенденты: n } = e; return { eid: t, претенденты: n && Array.from(n) }; }), конфликты: d } ); })({ global: n, претендент: 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, mJ)(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, мДж)(n, ‘ext.prebid.data.eidpermissions’, s.permissions), Object.entries(s.bidder).forEach(e => { let [t, n] = е; n.длина && (0, мДж)(r[t]’user.ext.eids’, n); }), { global: n, претендент: r } ); } function w(e, t) { return null == e || 0 === Object.keys(e.bidder || {}).length ? e : ((e = P(e, t)), { …e, участник торгов: T(e) }); } вар D = n(1371); const U = новый набор([
‘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 = ноль == n? г : е(п, г); } Вернуть n; }; })(), J = (0, gA)({ процессоры: Cm, 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, мДж)(r, `ext.prebid.imp.${e.bidder}`, e.ortb2Imp); }), Object.values(Bs).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, mJ)(e, ‘publisher.id’, s.s2sConfig.accountId); }), r.transmitTids || (0, мДж)(i, ‘ext.prebid.createtids’, !1), i ); } (0, i.vV)( ‘Запрос к серверу Prebid отклонен из-за недопустимых типов мультимедиа в 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 = е(т, п); return ( (s.requestBidder = r?.bidder), s.native?.ortb && (s.adm = s.native.ortb), (s.requestTimestamp = n.requestTimestamp), { bid: Object.assign( (0, hO)(d.XQ.GOOD, { src: d.RW.SRC, bidId: r ? r.bidId || r.bid_Id : null, идентификатор транзакции: n.adUnit.transactionId, adUnitId: n.adUnit.adUnitId, AuctionId: n.bidderRequest.auctionId }), s, { deferRendering: !!n.adUnit.deferBilling, deferBilling: !!n.adUnit.deferBilling } ), adUnit: n.adUnit.code } ); }, переопределяет: {
[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, yW)(t, e, r, r), s && s[e.bidder] && Object.assign( t.ext.prebid.bidder[e.bidder]с[e.bidder]
); }, bidfloor(e, t, n, r) { const s = $( (function*() { for (const t of r.actualBidRequests.values()) { const n = {}; e(n, t, r), доходность n; } })() ); null != s && Object.assign(t, s); }, extBidfloor(e, t, n, r) { function s(e, t) { null != t && ((0, mJ)(e, ‘ext.bidfloor’, t.bidfloor), (0, mJ)(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))); }), (т[D.D4]?.формат || []).forEach((e, t) => { s(e, $(d.map(e => e[D.D4].формат[t]?.ext))); }); } },
[v.S3]: { fpd(e, t, n, r) { r.transmitTids && (0, mJ)(t, ‘source.tid’, n.auctionId), (0, i.D9)(t, r.s2sBidRequest.ortb2Fragments?.global), r.s2sBidRequest.s2sConfig.extPrebid && ‘object’ == typeof r.s2sBidRequest.s2sConfig.extPrebid && (0, mJ)( 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] = е; const n = r.s2sBidRequest.s2sConfig.bidders; return ( r.s2sBidRequest.s2sConfig.allowUnknownBidderCodes || (n && n.includes(t)) ); }) .map(e => { let [t, n] = е; возврат {участников торгов: [t]config: { ortb2: r.getRedactor(t).ortb2(n) } }; }); s.length && (0, мДж)(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]цепочка: 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] = {участники торгов: новый Set(), цепочка: 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, mJ)(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, конфигурация: t.config }; s.length > 0 && (t.paapi = s); } } } }); вар к = п(6894); const _ = a.$W.getConfig, V = d.RW.SRC; пусть N, W = 0; const M = { претенденты: Object.freeze([]), syncTimeout: 1e3, maxBids: 1, адаптер: ‘prebidServer’,allowUnknownBidderCodes: !1, адаптерOptions: {}, syncUrlModifier: {}, ortbNative: { eventtrackers: [{ event: 1, methods: [1, 2] }]}, maxTimeout: 1500 }; функция G(e) { if (!e) return; е = Array.isArray(e)? И : [e]; const t = новый Set(); return e.filter(e => { var n; if ( ((n = e),
[‘endpoint’, ‘syncEndpoint’].forEach(e => { if ((0, i.O8)(n[e])) { пусть t = n[e]; н[e] = {p1Consent: т, noP1Consent: т}; } !(0, i.Qd)(n[e]) || (н[e].p1Согласие && н[e].noP1Consent) ||
[‘p1Consent’, ‘noP1Consent’].forEach(t => { n[e][t] || (0, i.JE)( `s2sConfig.${e}.${t} не определен. Запрос PBS будет пропущен в некоторых сценариях P1.` ); }); }), (function(e) { if (e.defaultVendor) { let t = e.defaultVendor, n = Object.keys(e); if (!p[t]) return ( (0, i.vV)( ‘Неверная или недоступная опция поставщика сервера предварительной заявки по умолчанию: ‘ + t ), !1 ); Object.keys(p[t]).forEach(r => { (M[r] !== е[r] && n.includes(r)) || (э[r] = п[t][r]); }); } Еще null == e.adapter && (e.adapter = ‘prebidServer’); вернуть !0; })(e) && (function(e) { for (const t of [‘accountId’, ‘endpoint’]) if (null == e[t]) return ( (0, i.vV)( t + ‘отсутствует в конфигурации сервера к серверу’), !1); вернуть !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 отключена’, e); }); } function F(e, t, n, r, s) { if (N.length === W) return; В++; пусть d = {}; const o = _(‘userSync.filterSettings’); if (o) { const { all: e, iframe: t, image: n } = o, r = t || е, s = п || е; r && (d = Object.assign({ iframe: r }, d)), s && (d = Object.assign({ image: s }, d)); } const a = { uuid: (0, i.lk)(), участники торгов: e, аккаунт: s.accountId, filterSettings: d }; пусть 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(); н.но_куки ? (function(e, t, n, r, s) { s.syncUrlModifier && ‘function’ == typeof s.syncUrlModifier[n] && (t = s.syncUrlModifier[n](е, т, н)); !(function(e, t, n, r, s) { t ? ‘image’ === e || ‘redirect’ === e ? ((0, i.OG)( `Вызов синхронизации пользователя пикселя изображения для участника торгов: «${n}»` ), (0, iz$)(t, r, s)) : ‘iframe’ === e ? ((0, i.OG)( `Вызов синхронизации пользователя iframe для претендент: «${n}»` ), (0, i.SG)(t, r, s)) : ((0, i.vV)( `Тип пользовательской синхронизации «${e}» не поддерживается для участника торгов: «${n}»` ), r()) : ((0, i.vV)(`Нет URL-адрес синхронизации для участника торгов «${n}»: ${t}`), r()); 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, fC)(t), r = n ? е.p1Consent : е.noP1Consent; return ( r || (0, i.JE)(‘Отсутствует соответствующий URL-адрес согласия, когда 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, qs)(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 (пока) не поддерживает специфичные для системы назначения ставок mediaTypes для одного и того же adUnit. Конфигурация сопоставления размеров будет игнорироваться для 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] = е; вернуть !U.has(t); }) ), paapi: { Enabled: t.some(e => e.paapi?.enabled) } }; return J.toORTB({ bidderRequest: l, bidRequests: c, context: { валюта: a.$W.getConfig(‘currency.adServerCurrency’) || ‘USD’, ttl: e.s2sConfig.defaultTtl || 60, requestTimestamp: s, s2sBidRequest: { …e, ortb2Fragments: w(e.ortb2Fragments, r) }, RequestBidders: r, factBidderRequests: t, NativeRequest: e.s2sConfig.ortbNative, getRedactor: p, TransmissionTids: (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, { успех: 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)( ‘ответ ошибки анализа: ‘, r ? r.status : ‘недействительный JSON’), s(!1, g)) : s(!0, g, r); }, error: function() { t(), c.apply(this, аргументы); } }, h.requestJson, { contentType: ‘text/plain’, withCredentials: !0, reviewTopics: (0, x.io)(O.DL, (0, o.K5)(e.s2sConfig)), customHeaders: h.customHeaders } ); } else (0, i.vV)(‘Запрос PBS не выполнен. Проверьте конечные точки.’); }, ‘processPBSRequest’); функция 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 sA(‘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] || т[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, RequestBidders: s, ответ: i, адаптерМетрики: p }), c || g) ) { const e = { Seatnonbid: c, atag: g, AuctionId: t[0].auctionId, RequestBidders: s, ответ: я, адаптерМетрики: р}; 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, []т, н, г) ); }); })(s, l, b, f); }, onError(n, s) { const { p1Consent: o = », noP1Consent: a = » } = e?.s2sConfig?.endpoint || {}; о === а ? (0, i.vV)( `Ошибка вызова сервера предварительного предложения: ‘${n}’. Конечная точка: «${o}»}`, s ): (0, i.vV)( `Ошибка вызова сервера предварительного предложения: ‘${n}’. Конечные точки: p1Consent «${o}», noP1Consent «${a}»}`, s ), t.forEach(e => u.Ic(d.qY.BIDDER_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 получил предложение от неизвестного участника торгов (${s.bidder}), но ‘s2sConfig.allowUnknownBidderCodes’ не установлен. Игнорирование предложения.` ), 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, rE)(‘prebidServerBidAdapter’); } }, е => { eO(0, [802, 618, 498, 225, 769, 139, 85]() => { return (t = 1134), e((es = t)); вар т; }); еО(); } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[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: декодированное значение ‘ + JSON.stringify(e)), e); }, getId(d) { const e = (d && d.params) || {}; пусть 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, tE)(‘pubProvidedIdSystem’); } }, d => { dO(0, [802, 769, 139, 85]() => { return (e = 2115), d((ds = e)); вар е; }); делать(); } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[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, имя модуля: ‘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 = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: », t = аргументы.длина > 2? аргументы[2] : пустота 0; если (!e) возврат; const n = (0, r.Dl)(e); n.search.id = encodeURIComponent(‘pubcid:’ + o); const d = (0, rc$)(n); return function() { (0, rz$)(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: Отказ от участия’); (0, r.fH)(‘ Декодированное значение PubCommonId ‘ + e); вернуть {pubcid: е}; }, getId: function() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, o = аргументы.длина > 1? аргументы[1] : void 0, t = аргументы.длина > 2? аргументы[2] : пустота 0; if (h()) return void (0, r.fH)(‘PubCommonId: Отказ от участия’); if (o?.coppa) return void (0, r.fH)( ‘PubCommonId: идентификаторы не предоставлены для запросов коппы, выход из PubCommonId’ ); const { params: { create: n = !0, PixelUrl: d } = {} } = e; пусть я = т; if (!i) { try { ‘object’ == typeof window[f] && (я = окно[f].getId()); } catch (e) {} я || (i = n && (0, r.N9)() ? (0, r.lk)() : void 0); } return {id: i, обратный вызов: b(i, d)}; }, ExtendId: function() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, o = аргументы.длина > 1? аргументы[1] : void 0, t = аргументы.длина > 2? аргументы[2] : пустота 0; if (h()) return ( (0, r.fH)(‘PubCommonId: отказался от участия’), { id: void 0 } ); if (o?.coppa) return void (0, r.fH)( ‘PubCommonId: идентификаторы не предоставлены для запросов коппы, выход из PubCommonId’ ); const { params: { Extend: n = !1, PixelUrl: d } = {} } = e; if (n) { if (d) { return { обратный вызов: v(d, t) }; } Возврат {идентификатор: т}; } }, domainOverride: (0, cw)(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, nE)(‘sharedIdSystem’); } }, е => { eO(0, [764, 802, 769, 139, 85]() => { return (o = 5862), e((es = o)); вар о; }); еО(); } ]); (self.tlpbjsChunk = self.tlpbjsChunk || []).толкать([
[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 = новая карта(); function d(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: л; константа п = {}; 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) ? н[t].uids.push(…e.uids) : (n[t] = е); } return ( Object.entries(e).forEach(e => { let [n, o] = и; о = Array.isArray(o) ? о: [o]; const s = t.get(n); позволь мне; if (‘pubProvidedId’ === n) i = (0, u.Go)(o); else if (‘function’ == typeof s) try { (i = s(o)), Array.isArray(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)(`Не удалось сгенерировать EID для «${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); р && (t.ext = r); } Вернуть т; } } вернуть ноль; })(е, 0, с) ); 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] = е; константа с = о (); если (s) { n[r] = s.idObj[r]; пусть e = s.submodule.eids?.[r]; ‘function’ == typeof e && ((i = e), (e = function() { for ( var e = аргументы.длина, t = новый массив(e), n = 0; n { let e; return () => (null == e && (e = (0, p.K7)()), e); })(); функция F(e) { return V() .fork() .renameWith(t => [`userId.mod.${t}`, `userId.mods.${e}.${t}`]); } функция W(e, t) { t = t || e.storageMgr; const n = ‘function’ == typeof e.submodule.domainOverride? e.submodule.domainOverride(): ноль, 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(т): т; 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); time 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); } }); })(е); перерыв; случай j: !(function(e) {
[», ‘_last’, ‘_exp’, ‘_cst’].forEach(t => { try { U.removeDataFromLocalStorage(e.config.storage.name + t); } catch (e) { (0, u.vV)(e); } }); })(е); } }); } function B(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: пустота 0; const n = e.config.storage, r = t? `${n.name}_${t}` : n.name; отпусти; 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); == typeof o && ‘{‘ === o.trim().charAt(0) && (o = JSON.parse(o)); } catch (e) { (0, u.vV)(e); } Вернуться о; } 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); (0, u.fH)( `${k}: ${e.submodule.name} — идентификатор запроса ответил пустым значением` ), t(); }, B.bind(null, e)); catch (n) { (0, u.vV)(`Ошибка в модуле userID ‘${e.submodule.name}’:`, t() }; } function K(e) { return Object.fromEntries( Object.entries(e) .map(e => { let [t, n] = е; возвращаться [t, n()?.idObj?.[t]]; }) .filter(e => { let [t, n] = е; вернуть ноль!= n; }) ); } функция 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 субмодуля ${e.name} может предоставлять несколько идентификаторов, но не указывает ‘primaryIds’`); return t; })(о); t(e).forEach(t => { const n = (r[t] = р[t] ?? []), я = J[t]?.indexOf(o.name) ?? (s.includes(t) ? 0 : -1), a = n.findIndex(e => { let [t] = е; вернуть т { let [t, n] = е; возвращаться [
t,
n.map(e => {
let [t, n] = е; вернуть н; }) ]; }) ) ); } function z() { const e = { подмодули: []глобальный: {}, участник торгов: {}, комбинированный: {}, обновить() { let t = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: []; const n = новый 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 { разрешено: r, участники торгов: o, модуль: s } of n) { if ( !T.isAllowed( S.yl, (0, Ds)(w.fW, s?.config?.name, { init: !1 }) ) ) 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 модули ${t( n )} предоставляют тот же идентификатор (‘${e}’); ${ s.submodule.name } является предпочтительным источником, но он настраивается только для некоторых участников торгов, в отличие от ${t( n.filter(e => null == e.bidders) )}. Другие участники торгов не увидят идентификатор «${e}» ` ), null ); } Если (нуль == о) вернуть ноль; } } вернуть ноль; }; } Object.entries(t).forEach(e => { let [t, s] = е, я = !0; const a = новый 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), { модуль: e, bidders: t } ); })), i || (н[t] = o( t, !0, s.map(e => { let { претенденты: t, модуль: n } = e; return { разрешено: null == t, претенденты: t, модуль: n }; }) )), a.forEach(e => { (r[e] = р[e] ?? {}), (р[e][t] = o( t, !1, s.map(t => { let { претенденты: n, модуль: r } = t; return { разрешено: n?.includes(e), претенденты: n, модуль: r }; }) )); }); }); const s = Object.values(r).concat([n]) .reduce((e, t) => Object.assign(e, t), {}); Object.assign(e, { global: n, претендент: r, комбинированный: s }); })(); } }; вернуть е; } 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, mJ)( t, ‘user.ext.eids’, (t.user?.ext?.eids ?? []).concat(s) ), Object.entries(o).forEach(e => { let [t, r] = е; константа о = е (г); o.length > 0 && (0, мДж)( n, `${t}.user.ext.eids`, (n[t]?.user?.ext?.eids ?? []).concat(o) ); }); })(п),
[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); }); }); } Конст Z = {}; пусть ее; function te() { let e = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: т.е.() || []; const t = _ && e.find(e => e.source === _); if (t && ‘string’ == typeof t?.uids?.[0]?.id) { const e = t.uids[0].id.replace(/[W_]/г, »); if (e.length >= 32 && e.length 2 && void 0 !== аргументы[2]
? аргументы[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({крючок: ne }).length; } Функция se() { return K(C.combined); } Функция 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} — Получение зашифрованного сигнала из пользовательской функции: ${n.name} & source: ${e} ` ); const t = n(e); r[e] = т ? ue(t): ноль; } Еще {const n = ae(e); (0, u.fH)( `${k} — Получение зашифрованного сигнала для eids :${JSON.stringify( n )}` ), (0, u.Im)(n) || (р[n.source] = !0 === т ? ue(n) : n.uids[0].идентификатор); } return ( (0, u.fH)(`${k} — Получение зашифрованных eids: ${r[e]}`), р[e]
); }); } function ue(e) { let t = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: 1, n = »; if (1 === t) n = ‘object’ == typeof e ? window.btoa(JSON.stringify(e)) : window.btoa(e); вернуть `${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 не определена в объекте userSync`); } function de(e) { return ee(e).then( () => se(), e => e === Z ? Promise.resolve().then(ge) : ((0, u.vV)(‘Ошибка инициализации userId’, e), h.U9.reject(e)) ); } function fe() { let { submoduleNames: e } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}, t = аргументы.длина > 1? аргументы[1] : пустота 0; return de({ обновить: !0, submoduleNames: e }).then( e => (t && (0, u.fp)(t) && t(), e) ); } функция ge() { return de(); } function me() { let e = Number(I.SL.hash); константа т = []; for (; e > 0; ) t.push(String.fromCharCode(255 & e)), (e >>>= 8); вернуть 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( { EnableStorageTypes: 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)); } Еще если (e.config.value) e.idObj = e.config.value; еще {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 = аргументы.длина > 2 && void 0 !== аргументы[2] && аргументы[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, Ds)(w.fW, e.config.name)) )).length) ) return (0, u.JE)(`${k} — модуль идентификатора не настроен`), []; const r = t.reduce( (e, t) => F(t.submodule.name).measureTime(‘init’, () => { try { be(t, n), e.push(t); } catch (e) { (0, u.vV)( `Ошибка в модуле userID ‘${t.submodule.name}’:`, e ); } return e; }),
[]
); вернуть 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 = аргументы.длина, n = новый массив (t > 1 ? t — 1 : 0), r = 1; r { if (!e?.name) return t(‘необходимо указать «name»‘, e); if (e.storage) { if (!e.storage.name || !e.storage.type) return t( ‘необходимо указать «storage.name» и «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} должно быть числом и будет игнорироваться`, e ), удалить e.storage[n]) : (электронное хранилище[n] = г)); }); } вернуть !0; }) : (null != e && t(‘должен быть массив’, e), []); } const we = новый Set([j, $]); функция ve(e) { if (e.enabledStorageTypes) return; const т = да (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} — отказ от локального хранилища найден, хранилище отключено`), 1)) ); })(e); case $: return (function(e) { return !( !e.storageMgr.cookiesAreEnabled() || (U.getCookie(A) && ((0, u.fH)( `${k} — обнаружен файл cookie для отказа, 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] = е; вернуть l.set(t, n[0].eids[t]); }); } функция 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, обратный вызов: 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({ook: re }).remove(), O.gH.before(ne, 100), i.Ay.callDataDeletionRequest.before(Ee), bQafter(e => e(te()))), (0, u.fH)( `${k} — конфигурация usersync обновлена для подмодулей ${H.length}: `, H.map(e => e.submodule.name) )); } function Ee(e) { for (var t = аргументы.длина, n = новый массив(t > 1? t — 1: 0), r = 1; r { if (‘function’ == typeof e.submodule.onDataDeletionRequest) try { e.submodule.onDataDeletionRequest( e.config, e.idObj, …n); } catch (t) { (0, u.vV)( `Ошибка вызова onDataDeletionRequest для идентификатора подмодуля ${e.submodule.name}`, t } R(e }), e.apply(this, n); } function Oe(e) { return function() { return Promise.resolve(e.apply(this, аргументы)); }; } function ke(e) { let { mkDelay: t = h.cb } = аргументы.длина > 1 && void 0 !== аргументы[1]
? аргументы[1]
: {}; (_ = пустота 0), (H = []), (М = []), (C = z()), (ee = (function() { let { mkDelay: e = h.cb } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[0]
: {}; const t = (0, h.v6)(), n = (0, h.v6)(); пусть 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’) ) ); } пусть 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’) ); } пусть 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 { обновить: r = !1, submoduleNames: o = null, готово: c = !1 } = аргументы.длина > 0 && void 0 !== аргументы[0]
? аргументы[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]].обеспечить регресс() : []; н[t] = o.map(e => (r.has(e) ? r.get(e) : e)); }), (J = n); } Еще J = {}; C.refresh(), См.(т); })( t.idPriority, q),yes({ready: !0 }))); })), ((0, rm)().getUserIds = se), ((0, rm)().getUserIdsAsEids = ie), ((0, rm)().getEncryptedIdsForSource = Oe(ce)), ((0, rm)().registerSignalSources = le), ((0, rm)().refreshUserIds = Oe(fe)), ((0, rm)().getUserIdAsync = Oe(ge)), ((0, rm)().getUserIdAsAidBySource = ae), oe() || O.gH.before(re, 100); } ke(o.$W), (0, c.xG)( ‘userId’, function(e) { (e.findRootDomain = yS), (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, rE)(‘userId’); } }, е => { eO(0, [802, 769, 139, 85]() => { return (t = 4836), e((es = t)); вар т; }); еО(); } ]); })(), tlpbjs.processQueue(); tlpbjs.config = {}; tlpbjs.config.domain = window.location.hostname.replace(‘www.’, »); если (учетная запись) {tlpbjs.config.account = учетная запись; } Еще { 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 { if (a.mediaTypes && a.mediaTypes.banner && a.mediaTypes.banner.sizes) { delete a.mediaTypes.banner.sizes; } }); }); window.pbjs = window.pbjs || окно.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: {storerequest: { id:state.storedImp }, …(window.location.search.indexOf(‘tl=test’) > -1 && {storeauctionresponse: { id: ‘test-placement300x250’ } }) } } }, ставки: [
{
bidder: ‘teal-s2s’
}
]
} ]; tlpbjs.addAdUnits(new_unit); } вар другие_эйды; 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( е[‘source’]
) ); tlpbjs.mergeConfig({ ortb2: { user: { ext: { eids:other_eids } } } }); } tlpbjs.tlRequestBids(состояние); }); }; tlpbjs.initGam = функция (состояние) { window.googletag = window.googletag || {коммд: [] }; 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 && Array.isArray(state.size)) { if (!state.size.includes(1)) {state.size = [state.size, [1, 1]]; } } еще {state.size = [[1, 1]]; } state.gamSlot = tlpbjs .defineSlot(state.gamSlotId,state.size,state.divId) .addService(googletag.pubads()); } Еще {вар размеры = state.gamSlot.getSizes(); if (!sizes.find(e => e[‘width’] == 1)) { var sizeArray = [[1, 1]]; size.forEach(e => sizeArray.push([e[‘width’]е[‘height’]])); state.gamSlot.defineSizeMapping( googletag .sizeMapping() .addSize([0, 0]sizeArray) .build() ); } } } }); }; } функция триггерTealReplace(account) { window.googletag = window.googletag || {коммд: [] }; window.googletag.cmd.push(function() { if (window.location.search.indexOf(‘tl=disable’) > -1) return; var идентификатор = ‘восстановленное рекламное место-‘; var gptDefineSlot = window.googletag.defineSlot; var adCounter = 0; if (!window.tlpbjs || !window.tlpbjs.config) loadTlpbjs(account ? account : ‘npg’); function defineSlotOverride(adUnitPath,sized, divId) { // передаем только 0,0, если родительский узел уже восстановил дочерний узел var div = document.getElementById(divId); var пустойParent = 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, пустойParent? Размеры: [0, 0]делитель); runAuctionForSlot(divId, slot.getSizes()); возвратный слот; } function runAuctionForSlot(divId,sized, isRefresh) { //проверяем размеры — не отображать, если ширина или высота { if (Array.isArray(e) && e[0] > максимальный размер[0]) { maxSize[0] = е[0]; } else if (e.width > maxSize[0]) { maxSize[0] = е.ширина; } if (Array.isArray(e) && e[1] > максимальный размер[1]) { maxSize[1] = е[1]; } else if (e.height > maxSize[1]) { maxSize[1] = e.высота; } }); } если (maxSize[0] <= 2 || МаксСизе[1] { if (e.id.startsWith(identifier)) {emptyParent = false; } }); } if (emptyParent || isRefresh) { slot.innerHTML = »; if (!isRefresh) slot.id = идентификатор + adCounter++; если (!tooSmall) {вар urlParams = новый URLSearchParams(window.location.search); var state = { divId: slot.id, div: slot, …(urlParams.get(‘tlgamslot’) && { gamSlotId: urlParams.get(‘tlgamslot’) }), size: maxSize }; если (maxSize[0] >= 728) state.storedImp = ‘recovered728x90’; иначе, если (maxSize[0] = 250) state.storedImp = ‘recovered300x250’; иначе, если (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 ); иначе window.tlpbjs.initGam(состояние); } Window.tlpbjs.renderTlDynamicAd(состояние); наблюдатьSlotInView (состояние); // запускаем таймер обновления } } } } } function ObserveSlotInView(state) { var Observer = new IntersectionObserver( function(entries) { elements.forEach(entry => { if (entry.isIntersecting) { Observer.unobserve(state.div); // прекращаем наблюдение, как только оно появится в представлении setTimeout( () => runAuctionForSlot(state.divId, state.size, true), 30000 ); // Вызов через 30 секунд } }, { порог: 0.1 }); // Триггер, когда в поле зрения находится хотя бы 10 % слота Observer.observe(state.div); } window.googletag.defineSlot = defineSlotOverride; window.googletag .pubads() .getSlots() .forEach(e => { runAuctionForSlot(e.getSlotElementId(), e.getSizes()); }); }); }
Перейти к содержимому

Округ ЭЛЬ-ПАСО, штат Колорадо (KRDO) – Должностные лица Форта Карсон предупреждают население об увеличении трафика на нескольких автомагистралях штата из-за того, что около 1400 военных машин едут в колоннах из Форта Карсон к месту маневра в каньоне Пиньон.
По данным Fort Carson, с 3 по 7 мая будут затронуты следующие маршруты:
- Основной маршрут: на восток по шоссе штата 94, затем на юг по шоссе штата 71.
- Альтернативный маршрут: на юг по межштатной автомагистрали 25, затем на восток по шоссе 350 США.
Власти призывают автомобилистов проявлять осторожность при движении рядом с военной техникой, соблюдать безопасную дистанцию и избегать слияния с колоннами.
Эти конвои связаны с месячными учениями под названием «Плющная месса» как в Форт-Карсоне, так и на площадке маневров в каньоне Пиньон, сообщает Форт-Карсон.
Жители также могут ожидать, что шум и пыль начнутся 1 мая как в Форт-Карсоне, так и на площадке для маневров в каньоне Пиньон. Официальные лица заявляют, что эти учения являются важными учениями для поддержания боеготовности своих сил.
Будьте в курсе последних местных новостей, спортивных событий и расследований, загрузив приложение KRDO13. Нажмите здесь, чтобы загрузить его из Apple App Store. Пользователи Android могут скачать его из Google Play здесь.
Эбби Смит
БУДЬТЕ ЧАСТЬЮ РАЗГОВОРА
KRDO NewsChannel 13 стремится предоставить форум для гражданского и конструктивного разговора.
Пожалуйста, оставляйте свои комментарии уважительными и актуальными. Вы можете ознакомиться с нашими Правилами сообщества, нажав здесь.
Если вы хотите поделиться идеей истории, отправьте ее здесь.




