@dev-wrapp/80918ac8127ba 0.0.53 → 0.0.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
/*! app name: app-p80918ac8127ba.js | version: 0.0.53 | build date: 2025-08-13T21:51:38.501Z */(()=>{var __webpack_modules__={"../builds/80918AC8127BA/0.0.53/prebid.js":()=>{eval('/* prebid.js v9.23.0\nUpdated: 2025-08-13\nModules: testbidderBidAdapter, appnexusBidAdapter */\nif(window.pbjs&&window.pbjs.libLoaded)try{window.pbjs.getConfig("debug")&&console.warn("Attempted to load a copy of Prebid.js that clashes with the existing \'pbjs\' instance. Load aborted.")}catch(e){}else (function(){\n(()=>{var r,t={433:(r,t,e)=>{function n(r,t,e,n,o){for(t=t.split?t.split("."):t,n=0;n<t.length;n++)r=r?r[t[n]]:o;return r===o?e:r}e.d(t,{A:()=>n})},8128:r=>{\n/*\n* @license MIT\n* Fun Hooks v0.9.10\n* (c) @snapwich\n*/\nu.SYNC=1,u.ASYNC=2,u.QUEUE=4;var t="fun-hooks";var e=Object.freeze({useProxy:!0,ready:0}),n=new WeakMap,o="2,1,0"===[1].reduce((function(r,t,e){return[r,t,e]}),2).toString()?Array.prototype.reduce:function(r,t){var e,n=Object(this),o=n.length>>>0,i=0;if(t)e=t;else{for(;i<o&&!(i in n);)i++;e=n[i++]}for(;i<o;)i in n&&(e=r(e,n[i],i,n)),i++;return e};function i(r,t){return Array.prototype.slice.call(r,t)}var f=Object.assign||function(r){return o.call(i(arguments,1),(function(r,t){return t&&Object.keys(t).forEach((function(e){r[e]=t[e]})),r}),r)};function u(r){var a,c={},l=[];function p(r,t){return"function"==typeof r?h.call(null,"sync",r,t):"string"==typeof r&&"function"==typeof t?h.apply(null,arguments):"object"==typeof r?y.apply(null,arguments):void 0}function y(r,t,e){var n=!0;void 0===t&&(t=Object.getOwnPropertyNames(r),n=!1);var o={},i=["constructor"];do{(t=t.filter((function(t){return!("function"!=typeof r[t]||-1!==i.indexOf(t)||t.match(/^_/))}))).forEach((function(t){var n=t.split(":"),i=n[0],f=n[1]||"sync";if(!o[i]){var u=r[i];o[i]=r[i]=h(f,u,e?[e,i]:void 0)}})),r=Object.getPrototypeOf(r)}while(n&&r);return o}function s(r){var e=Array.isArray(r)?r:r.split(".");return o.call(e,(function(n,o,i){var f=n[o],u=!1;return f||(i===e.length-1?(a||l.push((function(){u||console.warn(t+": referenced \'"+r+"\' but it was never created")})),n[o]=v((function(r){n[o]=r,u=!0}))):n[o]={})}),c)}function v(r){var t=[],e=[],o=function(){},i={before:function(r,e){return a.call(this,t,"before",r,e)},after:function(r,t){return a.call(this,e,"after",r,t)},getHooks:function(r){var n=t.concat(e);"object"==typeof r&&(n=n.filter((function(t){return Object.keys(r).every((function(e){return t[e]===r[e]}))})));try{f(n,{remove:function(){return n.forEach((function(r){r.remove()})),this}})}catch(r){console.error("error adding `remove` to array, did you modify Array.prototype?")}return n},removeAll:function(){return this.getHooks().remove()}},u={install:function(n,i,f){this.type=n,o=f,f(t,e),r&&r(i)}};return n.set(i.after,u),i;function a(r,n,i,f){var u={hook:i,type:n,priority:f||10,remove:function(){var n=r.indexOf(u);-1!==n&&(r.splice(n,1),o(t,e))}};return r.push(u),r.sort((function(r,t){return t.priority-r.priority})),o(t,e),this}}function h(e,o,c){var p=o.after&&n.get(o.after);if(p){if(p.type!==e)throw t+": recreated hookable with different type";return o}var y,h,d=c?s(c):v(),b={get:function(r,t){return d[t]||Reflect.get.apply(Reflect,arguments)}};return a||l.push(g),r.useProxy&&"function"==typeof Proxy&&Proxy.revocable?h=new Proxy(o,b):(h=function(){return b.apply?b.apply(o,this,i(arguments)):o.apply(this,arguments)},f(h,d)),n.get(h.after).install(e,h,(function(r,t){var n,o=[];r.length||t.length?(r.forEach(f),n=o.push(void 0)-1,t.forEach(f),y=function(r,t,f){var u,a=0,c="async"===e&&"function"==typeof f[f.length-1]&&f.pop();function l(r){"sync"===e?u=r:c&&c.apply(null,arguments)}function p(r){if(o[a]){var n=i(arguments);return p.bail=l,n.unshift(p),o[a++].apply(t,n)}"sync"===e?u=r:c&&c.apply(null,arguments)}return o[n]=function(){var n=i(arguments,1);"async"===e&&c&&(delete p.bail,n.push(p));var o=r.apply(t,n);"sync"===e&&p(o)},p.apply(null,f),u}):y=void 0;function f(r){o.push(r.hook)}g()})),h;function g(){!a&&("sync"!==e||r.ready&u.SYNC)&&("async"!==e||r.ready&u.ASYNC)?"sync"!==e&&r.ready&u.QUEUE?b.apply=function(){var r=arguments;l.push((function(){h.apply(r[1],r[2])}))}:b.apply=function(){throw t+": hooked function not ready"}:b.apply=y}}return(r=f({},e,r)).ready?p.ready=function(){a=!0,function(r){for(var t;t=r.shift();)t()}(l)}:a=!0,p.get=s,p}r.exports=u},3172:(r,t,e)=>{function n(r,t,e){t.split&&(t=t.split("."));for(var n,o,i=0,f=t.length,u=r;i<f&&"__proto__"!=(o=""+t[i++])&&"constructor"!==o&&"prototype"!==o;)u=u[o]=i===f?e:typeof(n=u[o])==typeof t?n:0*t[i]!=0||~(""+t[i]).indexOf(".")?{}:[]}e.d(t,{J:()=>n})},5751:(r,t,e)=>{function n(r){var t,e,o;if(Array.isArray(r)){for(e=Array(t=r.length);t--;)e[t]=(o=r[t])&&"object"==typeof o?n(o):o;return e}if("[object Object]"===Object.prototype.toString.call(r)){for(t in e={},r)"__proto__"===t?Object.defineProperty(e,t,{value:n(r[t]),configurable:!0,enumerable:!0,writable:!0}):e[t]=(o=r[t])&&"object"==typeof o?n(o):o;return e}return r}e.d(t,{Q:()=>n})}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.m=t,r=[],n.O=(t,e,o,i)=>{if(!e){var f=1/0;for(l=0;l<r.length;l++){e=r[l][0],o=r[l][1],i=r[l][2];for(var u=!0,a=0;a<e.length;a++)(!1&i||f>=i)&&Object.keys(n.O).every((r=>n.O[r](e[a])))?e.splice(a--,1):(u=!1,i<f&&(f=i));if(u){r.splice(l--,1);var c=o();void 0!==c&&(t=c)}}return t}i=i||0;for(var l=r.length;l>0&&r[l-1][2]>i;l--)r[l]=r[l-1];r[l]=[e,o,i]},n.n=r=>{var t=r&&r.__esModule?()=>r.default:()=>r;return n.d(t,{a:t}),t},n.d=(r,t)=>{for(var e in t)n.o(t,e)&&!n.o(r,e)&&Object.defineProperty(r,e,{enumerable:!0,get:t[e]})},n.o=(r,t)=>Object.prototype.hasOwnProperty.call(r,t),(()=>{var r={673:0};n.O.j=t=>0===r[t];var t=(t,e)=>{var o,i,f=e[0],u=e[1],a=e[2],c=0;if(f.some((t=>0!==r[t]))){for(o in u)n.o(u,o)&&(n.m[o]=u[o]);if(a)var l=a(n)}for(t&&t(e);c<f.length;c++)i=f[c],n.o(r,i)&&r[i]&&r[i][0](),r[i]=0;return n.O(l)},e=self.pbjsChunk=self.pbjsChunk||[];e.forEach(t.bind(null,0)),e.push=t.bind(null,e.push.bind(e))})();var o=n.O(void 0,[802,85],(()=>n(5952)));o=n.O(o)})();\n(self.pbjsChunk=self.pbjsChunk||[]).push([[802],{5789:(e,t,n)=>{n.d(t,{A4:()=>u,J7:()=>l,Pg:()=>f});var i=n(1580),r=n(1069),o=n(5901),s=n(7873),a=n(5569);const d=(0,s.m)(),c="outstream";function u(e){const{url:t,config:n,id:s,callback:u,loaded:l,adUnitCode:f,renderNow:g}=e;this.url=t,this.config=n,this.handlers={},this.id=s,this.renderNow=g,this.loaded=l,this.cmd=[],this.push=e=>{"function"==typeof e?this.loaded?e.call():this.cmd.push(e):(0,r.vV)("Commands given to Renderer.push must be wrapped in a function")},this.callback=u||(()=>{this.loaded=!0,this.process()}),this.render=function(){const e=arguments,n=()=>{this._render?this._render.apply(this,e):(0,r.JE)("No render function was provided, please use .setRender on the renderer")};!function(e){const t=d.adUnits,n=(0,o.I6)(t,(t=>t.code===e));if(!n)return!1;const i=n?.renderer,r=!!(i&&i.url&&i.render),s=n?.mediaTypes?.video?.renderer,a=!!(s&&s.url&&s.render);return!!(r&&!0!==i.backupOnly||a&&!0!==s.backupOnly)}(f)?g?n():(this.cmd.unshift(n),(0,i.R)(t,a.tp,c,this.callback,this.documentContext)):((0,r.JE)(`External Js not loaded by Renderer since renderer url and callback is already defined on adUnit ${f}`),n())}.bind(this)}function l(e){return!(!e||!e.url&&!e.renderNow)}function f(e,t,n){let i=null;e.config&&e.config.documentResolver&&(i=e.config.documentResolver(t,document,n)),i||(i=document),e.documentContext=i,e.render(t,e.documentContext)}u.install=function(e){let{url:t,config:n,id:i,callback:r,loaded:o,adUnitCode:s,renderNow:a}=e;return new u({url:t,config:n,id:i,callback:r,loaded:o,adUnitCode:s,renderNow:a})},u.prototype.getConfig=function(){return this.config},u.prototype.setRender=function(e){this._render=e},u.prototype.setEventHandlers=function(e){this.handlers=e},u.prototype.handleVideoEvent=function(e){let{id:t,eventName:n}=e;"function"==typeof this.handlers[n]&&this.handlers[n](),(0,r.OG)(`Prebid Renderer event for id ${t} type ${n}`)},u.prototype.process=function(){for(;this.cmd.length>0;)try{this.cmd.shift().call()}catch(e){(0,r.vV)("Error processing Renderer command: ",e)}}},6811:(e,t,n)=>{n.d(t,{DL:()=>d,Ml:()=>r,Ue:()=>i,VJ:()=>u,hE:()=>c,hq:()=>a,mo:()=>s,pY:()=>l,uc:()=>o});const i="accessDevice",r="syncUser",o="fetchBids",s="reportAnalytics",a="transmitEids",d="transmitUfpd",c="transmitPreciseGeo",u="transmitTid",l="loadExternalScript"},3441:(e,t,n)=>{n.d(t,{s:()=>r});var i=n(8046);const r=(0,n(2604).ZI)((e=>i.Ay.resolveAlias(e)))},5569:(e,t,n)=>{n.d(t,{Tn:()=>o,tW:()=>r,tp:()=>i});const i="prebid",r="bidder",o="analytics"},2604:(e,t,n)=>{n.d(t,{Dk:()=>s,Ii:()=>o,TQ:()=>g,XG:()=>u,ZI:()=>p,Zw:()=>c,bt:()=>l,e3:()=>f,iK:()=>a,q7:()=>d});var i=n(5569),r=n(9214);const o="component",s=o+"Type",a=o+"Name",d="adapterCode",c="storageType",u="configName",l="syncType",f="syncUrl",g="_config";function p(e){return function(t,n,r){const c={[s]:t,[a]:n,[o]:`${t}.${n}`};return t===i.tW&&(c[d]=e(n)),h(Object.assign(c,r))}}const h=(0,r.A_)("sync",(e=>e))},5139:(e,t,n)=>{n.d(t,{io:()=>s,qB:()=>o});var i=n(1069),r=n(2604);const[o,s]=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(0,i.h0)("Activity control:");const t={};function n(e){return t[e]=t[e]||[]}function o(t,n,i,o){let s;try{s=i(o)}catch(i){e.logError(`Exception in rule ${n} for \'${t}\'`,i),s={allow:!1,reason:i}}return s&&Object.assign({activity:t,name:n,component:o[r.Ii]},s)}const s={};function a(t){let{activity:n,name:i,allow:r,reason:o,component:a}=t;const d=`${i} ${r?"allowed":"denied"} \'${n}\' for \'${a}\'${o?":":""}`,c=s.hasOwnProperty(d);if(c&&clearTimeout(s[d]),s[d]=setTimeout((()=>delete s[d]),1e3),!c){const t=[d];o&&t.push(o),(r?e.logInfo:e.logWarn).apply(e,t)}}return[function(e,t,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;const o=n(e),s=o.findIndex((e=>{let[t]=e;return r<t})),a=[r,t,i];return o.splice(s<0?o.length:s,0,a),function(){const e=o.indexOf(a);e>=0&&o.splice(e,1)}},function(e,t){let i,r;for(const[s,d,c]of n(e)){if(i!==s&&r)break;i=s;const n=o(e,d,c,t);if(n){if(!n.allow)return a(n),!1;r=n}}return r&&a(r),!0}]}()},9075:(e,t,n)=>{n.d(t,{$A:()=>T,BS:()=>W,Hh:()=>q,Pk:()=>x,Uc:()=>O,XO:()=>P,bw:()=>U,n6:()=>w,qn:()=>_,vB:()=>N,vW:()=>k,vd:()=>S});var i=n(1069),r=n(5023),o=n(8969),s=n(3272),a=n(5789),d=n(1371),c=n(6881),u=n(6031),l=n(9214),f=n(2449),g=n(5555),p=n(8046),h=n(6894),m=n(7779);const{AD_RENDER_FAILED:b,AD_RENDER_SUCCEEDED:y,STALE_RENDER:v,BID_WON:E,EXPIRED_RENDER:A}=o.qY,{EXCEPTION:I}=o.as,T=(0,l.A_)("sync",(function(e){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:g.k.resolve()).then((t=>t??c.n.findBidByAdId(e))).catch((()=>{}))})),w=(0,l.A_)("sync",(function(e){r.Ic(E,e),c.n.addWinningBid(e)}));function C(e){let{reason:t,message:n,bid:o,id:s}=e;const a={reason:t,message:n};o&&(a.bid=o,a.adId=o.adId),s&&(a.adId=s),(0,i.vV)(`Error rendering ad (id: ${s}): ${n}`),r.Ic(b,a)}function B(e){let{doc:t,bid:n,id:i}=e;const o={doc:t};n&&(o.bid=n),i&&(o.adId=i),p.Ay.callAdRenderSucceededBidder(n.adapterCode||n.bidder,n),r.Ic(y,o)}function O(e,t){switch(e.event){case o.qY.AD_RENDER_FAILED:C({bid:t,id:t.adId,reason:e.info.reason,message:e.info.message});break;case o.qY.AD_RENDER_SUCCEEDED:B({doc:null,bid:t,id:t.adId});break;default:(0,i.vV)(`Received event request for unsupported event: \'${e.event}\' (adId: \'${t.adId}\')`)}}function k(e,t,n){let{resizeFn:i,fireTrackers:r=f.vO}=n;if("resizeNativeHeight"===e.action)i(e.width,e.height);else r(e,t)}const R={[o.nl.EVENT]:O};R[o.nl.NATIVE]=k;const S=(0,l.A_)("sync",(function(e,t){const{ad:n,adUrl:r,cpm:o,originalCpm:s,width:a,height:d}=e,c={AUCTION_PRICE:s||o,CLICKTHROUGH:t?.clickUrl||""};return{ad:(0,i.gM)(n,c),adUrl:(0,i.gM)(r,c),width:a,height:d}})),D=(0,l.A_)("sync",(function(e){let{renderFn:t,resizeFn:n,bidResponse:r,options:s,doc:a,isMainDocument:c=a===document&&!(0,i.al)()}=e;const u=r.mediaType===d.G_;if(c||u)return void C({reason:o.as.PREVENT_WRITING_ON_MAIN_DOCUMENT,message:u?"Cannot render video ad without a renderer":"renderAd was prevented from writing to the main document.",bid:r,id:r.adId});const l=S(r,s);t(Object.assign({adId:r.adId},l));const{width:f,height:g}=l;null!=(f??g)&&n(f,g)}));function U(e){let{renderFn:t,resizeFn:n,adId:a,options:d,bidResponse:c,doc:u}=e;q(c,(()=>{if(null!=c){if((c.status!==o.tl.RENDERED||((0,i.JE)(`Ad id ${a} has been rendered before`),r.Ic(v,c),!s.$W.getConfig("auctionOptions")?.suppressStaleRender))&&(m.uW.isBidNotExpired(c)||((0,i.JE)(`Ad id ${a} has been expired`),r.Ic(A,c),!s.$W.getConfig("auctionOptions")?.suppressExpiredRender)))try{D({renderFn:t,resizeFn:n,bidResponse:c,options:d,doc:u})}catch(e){C({reason:o.as.EXCEPTION,message:e.message,id:a,bid:c})}}else C({reason:o.as.CANNOT_FIND_AD,message:`Cannot find ad \'${a}\'`,id:a})}))}function _(e){const t=(0,h.BO)(e.metrics);t.checkpoint("bidRender"),t.timeBetween("bidWon","bidRender","render.deferred"),t.timeBetween("auctionEnd","bidRender","render.pending"),t.timeBetween("requestBids","bidRender","render.e2e"),e.status=o.tl.RENDERED}D.before((function(e,t){const{bidResponse:n,doc:i}=t;(0,a.J7)(n.renderer)?((0,a.Pg)(n.renderer,n,i),B({doc:i,bid:n,id:n.adId}),e.bail()):e(t)}),100);const j=new WeakMap,$=new WeakSet;function q(e,t){null!=e?(j.set(e,t),e.deferRendering||N(e),x(e)):t()}function x(e){$.has(e)||($.add(e),w(e))}function N(e){const t=j.get(e);t&&(t(),_(e),j.delete(e))}function W(e,t,n){let r;function s(e,n){C(Object.assign({id:t,bid:r},{reason:e,message:n}))}function a(t,n){e.defaultView&&e.defaultView.frameElement&&(t&&(e.defaultView.frameElement.width=t),n&&(e.defaultView.frameElement.height=n))}const d=(c={resizeFn:a},function(e,t,n){R.hasOwnProperty(e)&&R[e](t,n,c)});var c;function l(t){t.ad?(e.write(t.ad),e.close(),B({doc:e,bid:r,id:r.adId})):(0,u.H)(r).then((n=>n(t,{sendMessage:(e,t)=>d(e,t,r),mkFrame:i.hw},e.defaultView))).then((()=>B({doc:e,bid:r,id:r.adId})),(e=>{s(e?.reason||o.as.EXCEPTION,e?.message),e?.stack&&(0,i.vV)(e)}));const n=document.createComment(`Creative ${r.creativeId} served by ${r.bidder} Prebid.js Header Bidding`);(0,i._s)(n,e,"html")}try{t&&e?T(t).then((i=>{r=i,U({renderFn:l,resizeFn:a,adId:t,options:{clickUrl:n?.clickThrough},bidResponse:i,doc:e})})):s(o.as.MISSING_DOC_OR_ADID,"missing "+(t?"doc":"adId"))}catch(e){s(I,e.message)}}function P(){if(!window.frames[o.IY])if(document.body){const e=(0,i.CA)();e.name=o.IY,document.body.appendChild(e)}else window.requestAnimationFrame(P)}},8046:(e,t,n)=>{n.d(t,{Ay:()=>te,pX:()=>Q});var i=n(1069),r=n(2449),o=n(9115),s=n(8044),a=n(3272),d=n(9214),c=n(5901);let u={};function l(e,t,n){let i=function(e,t){let n=u[e]=u[e]||{bidders:{}};return t?n.bidders[t]=n.bidders[t]||{}:n}(e,n);return i[t]=(i[t]||0)+1,i[t]}function f(e){return l(e,"auctionsCounter")}function g(e){return u?.[e]?.requestsCounter||0}function p(e,t){return u?.[e]?.bidders?.[t]?.requestsCounter||0}function h(e,t){return u?.[e]?.bidders?.[t]?.winsCounter||0}function m(e){return u?.[e]?.auctionsCounter||0}var b=n(7934),y=n(6916),v=n(5023),E=n(8969),A=n(6894),I=n(6881),T=n(5569),w=n(5139),C=n(6811),B=n(2604),O=n(433);const k=["data","ext.data","yob","gender","keywords","kwarray","id","buyeruid","customdata"].map((e=>`user.${e}`)).concat("device.ext.cdep"),R=["user.eids","user.ext.eids"],S=["user.geo.lat","user.geo.lon","device.geo.lat","device.geo.lon"],D=["device.ip"],U=["device.ipv6"];function _(e){return Object.assign({get(){},run(e,t,n,i,r){const o=n&&n[i];if(function(e){return null!=e&&("object"!=typeof e||Object.keys(e).length>0)}(o)&&r()){const e=this.get(o);void 0===e?delete n[i]:n[i]=e}}},e)}function j(e){return e.forEach((e=>{e.paths=e.paths.map((e=>{const t=e.split("."),n=t.pop();return[t.length>0?t.join("."):null,n]}))})),function(t,n){const i=[];for(var r=arguments.length,o=new Array(r>2?r-2:0),s=2;s<r;s++)o[s-2]=arguments[s];const a=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return function(t){return e.hasOwnProperty(t.name)||(e[t.name]=!!t.applies(...n)),e[t.name]}}(t,...o);return e.forEach((e=>{if(!1!==t[e.name])for(const[r,o]of e.paths){const s=null==r?n:(0,O.A)(n,r);if(i.push(e.run(n,r,s,o,a.bind(null,e))),!1===t[e.name])return}})),i.filter((e=>null!=e))}}function $(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:w.io;return function(n){return!t(e,n)}}function q(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w.io;return[{name:C.DL,paths:k,applies:$(C.DL,e)},{name:C.hq,paths:R,applies:$(C.hq,e)},{name:C.hE,paths:S,applies:$(C.hE,e),get:e=>Math.round(100*(e+Number.EPSILON))/100},{name:C.hE,paths:D,applies:$(C.hE,e),get:e=>function(e){if(!e)return null;let t=e.split(".").map(Number);if(4!=t.length)return null;let n=[];for(let e=0;e<4;e++){let t=Math.max(0,Math.min(8,24-8*e));n.push(255<<8-t&255)}return t.map(((e,t)=>e&n[t])).join(".")}(e)},{name:C.hE,paths:U,applies:$(C.hE,e),get:e=>function(e){if(!e)return null;let t=e.split(":").map((e=>parseInt(e,16)));for(t=t.map((e=>isNaN(e)?0:e));t.length<8;)t.push(0);if(8!=t.length)return null;let n=[];for(let e=0;e<8;e++){let t=Math.max(0,Math.min(16,64-16*e));n.push(65535<<16-t&65535)}return t.map(((e,t)=>e&n[t])).map((e=>e.toString(16))).join(":")}(e)},{name:C.VJ,paths:["source.tid"],applies:$(C.VJ,e)}].map(_)}const x=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w.io;const t=j(q(e)),n=j(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w.io;return[{name:C.hq,paths:["userId","userIdAsEids"],applies:$(C.hq,e)},{name:C.VJ,paths:["ortb2Imp.ext.tid"],applies:$(C.VJ,e)}].map(_)}(e));return function(e){const i={};return{ortb2:n=>(t(i,n,e),n),bidRequest:t=>(n(i,t,e),t)}}}();(0,w.qB)(C.VJ,"enableTIDs config",(()=>{if(!a.$W.getConfig("enableTIDs"))return{allow:!1,reason:"TIDs are disabled"}}));const N="pbsBidAdapter",W={CLIENT:"client",SERVER:"server"},P={isAllowed:w.io,redact:x};let V={},M=V.bidderRegistry={},G=V.aliasRegistry={},F=[];a.$W.getConfig("s2sConfig",(e=>{e&&e.s2sConfig&&(F=(0,i.cy)(e.s2sConfig)?e.s2sConfig:[e.s2sConfig])}));var H={};const L=(0,B.ZI)((e=>V.resolveAlias(e)));const z=(0,d.A_)("sync",(function(e){let{bidderCode:t,auctionId:n,bidderRequestId:r,adUnits:o,src:s,metrics:a}=e;return o.reduce(((e,o)=>{const d=o.bids.filter((e=>e.bidder===t));return null==t&&0===d.length&&null!=o.s2sBid&&d.push({bidder:null}),e.push(d.reduce(((e,d)=>{const c=null==(d=Object.assign({},d,{ortb2Imp:(0,i.D9)({},o.ortb2Imp,d.ortb2Imp)},(0,i.SH)(o,["nativeParams","nativeOrtbRequest","mediaType","renderer"]))).mediaTypes?o.mediaTypes:d.mediaTypes;return(0,i.wD)(c)?d=Object.assign({},d,{mediaTypes:c}):(0,i.vV)(`mediaTypes is not correctly configured for adunit ${o.code}`),"client"===s&&function(e,t){l(e,"requestsCounter",t)}(o.code,t),e.push(Object.assign({},d,{adUnitCode:o.code,transactionId:o.transactionId,adUnitId:o.adUnitId,sizes:c?.banner?.sizes||c?.video?.playerSize||[],bidId:d.bid_id||(0,i.s0)(),bidderRequestId:r,auctionId:n,src:s,metrics:a,auctionsCount:m(o.code),bidRequestsCount:g(o.code),bidderRequestsCount:p(o.code,d.bidder),bidderWinsCount:h(o.code,d.bidder),deferBilling:!!o.deferBilling})),e}),[])),e}),[]).reduce(i.Bq,[]).filter((e=>""!==e))}),"getBids");const J=(0,d.A_)("sync",(function(e,t){let{getS2SBidders:n=Q}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(null==t)return e;{const i=n(t);return e.filter((e=>i.has(e.bidder)))}}),"filterBidsForAdUnit");const K=(0,d.A_)("sync",((e,t)=>e),"setupAdUnitMediaTypes");function Q(e){(0,i.cy)(e)||(e=[e]);const t=new Set([null]);return e.filter((e=>e&&e.enabled)).flatMap((e=>e.bidders)).forEach((e=>t.add(e))),t}const Y=(0,d.A_)("sync",(function(e,t){let{getS2SBidders:n=Q}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=n(t);return(0,i.ZA)(e).reduce(((e,t)=>(e[r.has(t)?W.SERVER:W.CLIENT].push(t),e)),{[W.CLIENT]:[],[W.SERVER]:[]})}),"partitionBidders");function X(e,t){const n=M[e],i=n?.getSpec&&n.getSpec();if(i&&i[t]&&"function"==typeof i[t])return[i,i[t]]}function Z(e,t,n,r){try{(0,i.fH)(`Invoking ${e}.${t}`);for(var o=arguments.length,s=new Array(o>4?o-4:0),d=4;d<o;d++)s[d-4]=arguments[d];a.$W.runWithBidder(e,r.bind(n,...s))}catch(n){(0,i.JE)(`Error calling ${t} of ${e}`)}}function ee(e,t,n){if(n?.source!==E.RW.SRC){const i=X(e,t);null!=i&&Z(e,t,...i,n)}}V.makeBidRequests=(0,d.A_)("sync",(function(e,t,n,o,s){let d=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},u=arguments.length>6?arguments[6]:void 0;u=(0,A.BO)(u),v.Ic(E.qY.BEFORE_REQUEST_BIDS,e),(0,r.nk)(e),e.map((e=>e.code)).filter(i.hj).forEach(f),e.forEach((e=>{(0,i.Qd)(e.mediaTypes)||(e.mediaTypes={}),e.bids=e.bids.filter((e=>!e.bidder||P.isAllowed(C.uc,L(T.tW,e.bidder)))),l(e.code,"requestsCounter")})),e=K(e,s);let{[W.CLIENT]:g,[W.SERVER]:p}=Y(e,F);a.$W.getConfig("bidderSequence")===a.Ov&&(g=(0,i.k4)(g));const h=(0,b.EN)();let m=[];const I=d.global||{},w=d.bidder||{};function O(e,t){const r=P.redact(null!=t?t:L(T.tW,e.bidderCode)),o=Object.freeze(r.ortb2((0,i.D9)({source:{tid:n}},I,w[e.bidderCode])));return e.ortb2=o,e.bids=e.bids.map((e=>(e.ortb2=o,r.bidRequest(e)))),e}F.forEach((r=>{const o=function(e){return L(T.tp,N,{[B.XG]:e.configName})}(r);if(r&&r.enabled&&P.isAllowed(C.uc,o)){let{adUnits:s,hasModuleBids:a}=function(e,t){let n=(0,i.Go)(e),r=!1;return n.forEach((e=>{const n=e.bids.filter((e=>e.module===N&&e.params?.configName===t.configName));1===n.length?(e.s2sBid=n[0],r=!0,e.ortb2Imp=(0,i.D9)({},e.s2sBid.ortb2Imp,e.ortb2Imp)):n.length>1&&(0,i.JE)(\'Multiple "module" bids for the same s2s configuration; all will be ignored\',n),e.bids=J(e.bids,t).map((e=>(e.bid_id=(0,i.s0)(),e)))})),n=n.filter((e=>0!==e.bids.length||null!=e.s2sBid)),{adUnits:n,hasModuleBids:r}}(e,r),d=(0,i.lk)();(0===p.length&&a?[null]:p).forEach((e=>{const a=(0,i.s0)(),c=u.fork(),l=O({bidderCode:e,auctionId:n,bidderRequestId:a,uniquePbsTid:d,bids:z({bidderCode:e,auctionId:n,bidderRequestId:a,adUnits:(0,i.Go)(s),src:E.RW.SRC,metrics:c}),auctionStart:t,timeout:r.timeout,src:E.RW.SRC,refererInfo:h,metrics:c},o);0!==l.bids.length&&m.push(l)})),s.forEach((e=>{let t=e.bids.filter((e=>(0,c.I6)(m,(t=>(0,c.I6)(t.bids,(t=>t.bidId===e.bid_id))))));e.bids=t})),m.forEach((e=>{void 0===e.adUnitsS2SCopy&&(e.adUnitsS2SCopy=s.filter((e=>e.bids.length>0||null!=e.s2sBid)))}))}}));let k=function(e){let t=(0,i.Go)(e);return t.forEach((e=>{e.bids=J(e.bids,null)})),t=t.filter((e=>0!==e.bids.length)),t}(e);return g.forEach((e=>{const r=(0,i.s0)(),a=u.fork(),d=O({bidderCode:e,auctionId:n,bidderRequestId:r,bids:z({bidderCode:e,auctionId:n,bidderRequestId:r,adUnits:(0,i.Go)(k),labels:s,src:"client",metrics:a}),auctionStart:t,timeout:o,refererInfo:h,metrics:a}),c=M[e];c||(0,i.vV)(`Trying to make a request for bidder that does not exist: ${e}`),c&&d.bids&&0!==d.bids.length&&m.push(d)})),m.forEach((e=>{y.mW.getConsentData()&&(e.gdprConsent=y.mW.getConsentData()),y.t6.getConsentData()&&(e.uspConsent=y.t6.getConsentData()),y.ad.getConsentData()&&(e.gppConsent=y.ad.getConsentData())})),m}),"makeBidRequests"),V.callBids=function(e,t,n,r,o,d,c){let u=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{};if(!t.length)return void(0,i.JE)("callBids executed with no bidRequests. Were they filtered by labels or sizing?");let[l,f]=t.reduce(((e,t)=>(e[Number(void 0!==t.src&&t.src===E.RW.SRC)].push(t),e)),[[],[]]);var g=[];f.forEach((e=>{for(var t=-1,n=0;n<g.length;++n)if(e.uniquePbsTid===g[n].uniquePbsTid){t=n;break}t<=-1&&g.push(e)}));let p=0;F.forEach((e=>{if(e&&g[p]&&Q(e).has(g[p].bidderCode)){const t=(0,s.g4)(d,o?{request:o.request.bind(null,"s2s"),done:o.done}:void 0);let a=e.bidders;const l=M[e.adapter];let h=g[p].uniquePbsTid,m=g[p].adUnitsS2SCopy,b=f.filter((e=>e.uniquePbsTid===h));if(l){let o={ad_units:m,s2sConfig:e,ortb2Fragments:u,requestBidsTimeout:d};if(o.ad_units.length){let e=b.map((e=>(e.start=(0,i.vE)(),function(t){t||c(e.bidderRequestId),r.apply(e,arguments)})));const s=(0,i.ZA)(o.ad_units).filter((e=>a.includes(e)));(0,i.OG)(`CALLING S2S HEADER BIDDERS ==== ${s.length>0?s.join(", "):\'No bidder specified, using "ortb2Imp" definition(s) only\'}`),b.forEach((e=>{v.Ic(E.qY.BID_REQUESTED,{...e,tid:e.auctionId})})),l.callBids(o,f,n,(t=>e.forEach((e=>e(t)))),t)}}else(0,i.vV)("missing "+e.adapter);p++}})),l.forEach((e=>{e.start=(0,i.vE)();const t=M[e.bidderCode];a.$W.runWithBidder(e.bidderCode,(()=>{(0,i.OG)("CALLING BIDDER"),v.Ic(E.qY.BID_REQUESTED,e)}));let u=(0,s.g4)(d,o?{request:o.request.bind(null,e.bidderCode),done:o.done}:void 0);const l=r.bind(e);try{a.$W.runWithBidder(e.bidderCode,t.callBids.bind(t,e,n,l,u,(()=>c(e.bidderRequestId)),a.$W.callbackWithBidder(e.bidderCode)))}catch(t){(0,i.vV)(`${e.bidderCode} Bid Adapter emitted an uncaught error when parsing their bidRequest`,{e:t,bidRequest:e}),l()}}))},V.videoAdapters=[],V.registerBidAdapter=function(e,t){let{supportedMediaTypes:n=[]}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e&&t?"function"==typeof e.callBids?(M[t]=e,y.o2.register(T.tW,t,e.getSpec?.().gvlid),(0,c.mK)(n,"video")&&V.videoAdapters.push(t),(0,c.mK)(n,"native")&&r.mT.push(t)):(0,i.vV)("Bidder adaptor error for bidder code: "+t+"bidder must implement a callBids() function"):(0,i.vV)("bidAdapter or bidderCode not specified")},V.aliasBidAdapter=function(e,t,n){if(void 0===M[t]){let s=M[e];if(void 0===s){const n=[];F.forEach((i=>{if(i.bidders&&i.bidders.length){const r=i&&i.bidders;i&&(0,c.mK)(r,t)?G[t]=e:n.push(e)}})),n.forEach((e=>{(0,i.vV)(\'bidderCode "\'+e+\'" is not an existing bidder.\',"adapterManager.aliasBidAdapter")}))}else try{let a,d=function(e){let t=[];return(0,c.mK)(V.videoAdapters,e)&&t.push("video"),(0,c.mK)(r.mT,e)&&t.push("native"),t}(e);if(s.constructor.prototype!=Object.prototype)a=new s.constructor,a.setBidderCode(t);else{const{useBaseGvlid:r=!1}=n||{};let d=s.getSpec();const c=r?d.gvlid:n?.gvlid;null==c&&null!=d.gvlid&&(0,i.JE)(`Alias \'${t}\' will NOT re-use the GVL ID of the original adapter (\'${d.code}\', gvlid: ${d.gvlid}). Functionality that requires TCF consent may not work as expected.`);let u=n&&n.skipPbsAliasing;a=(0,o.xb)(Object.assign({},d,{code:t,gvlid:c,skipPbsAliasing:u})),G[t]=e}V.registerBidAdapter(a,t,{supportedMediaTypes:d})}catch(t){(0,i.vV)(e+" bidder does not currently support aliasing.","adapterManager.aliasBidAdapter")}}else(0,i.OG)(\'alias name "\'+t+\'" has been already specified.\')},V.resolveAlias=function(e){let t,n=e;for(;G[n]&&(!t||!t.has(n));)n=G[n],(t=t||new Set).add(n);return n},V.registerAnalyticsAdapter=function(e){let{adapter:t,code:n,gvlid:r}=e;t&&n?"function"==typeof t.enableAnalytics?(t.code=n,H[n]={adapter:t,gvlid:r},y.o2.register(T.Tn,n,r)):(0,i.vV)(`Prebid Error: Analytics adaptor error for analytics "${n}"\\n analytics adapter must implement an enableAnalytics() function`):(0,i.vV)("Prebid Error: analyticsAdapter or analyticsCode not specified")},V.enableAnalytics=function(e){(0,i.cy)(e)||(e=[e]),e.forEach((e=>{const t=H[e.provider];t&&t.adapter?P.isAllowed(C.mo,L(T.Tn,e.provider,{[B.TQ]:e}))&&t.adapter.enableAnalytics(e):(0,i.vV)(`Prebid Error: no analytics adapter found in registry for \'${e.provider}\'.`)}))},V.getBidAdapter=function(e){return M[e]},V.getAnalyticsAdapter=function(e){return H[e]},V.callTimedOutBidders=function(e,t,n){t=t.map((t=>(t.params=(0,i.SB)(e,t.adUnitCode,t.bidder),t.timeout=n,t))),t=(0,i.$z)(t,"bidder"),Object.keys(t).forEach((e=>{ee(e,"onTimeout",t[e])}))},V.callBidWonBidder=function(e,t,n){var r,o;t.params=(0,i.SB)(n,t.adUnitCode,t.bidder),r=t.adUnitCode,o=t.bidder,l(r,"winsCounter",o),ee(e,"onBidWon",t)},V.triggerBilling=(()=>{const e=new WeakSet;return t=>{e.has(t)||(e.add(t),t.source===E.RW.SRC&&t.burl&&i.mM.triggerPixel(t.burl),ee(t.bidder,"onBidBillable",t))}})(),V.callSetTargetingBidder=function(e,t){ee(e,"onSetTargeting",t)},V.callBidViewableBidder=function(e,t){ee(e,"onBidViewable",t)},V.callBidderError=function(e,t,n){ee(e,"onBidderError",{error:t,bidderRequest:n})},V.callAdRenderSucceededBidder=function(e,t){ee(e,"onAdRenderSucceeded",t)},V.callDataDeletionRequest=(0,d.A_)("sync",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];const r="onDataDeletionRequest";Object.keys(M).filter((e=>!G.hasOwnProperty(e))).forEach((e=>{const n=X(e,r);if(null!=n){const i=I.n.getBidsRequested().filter((t=>function(e){const t=new Set;for(;G.hasOwnProperty(e)&&!t.has(e);)t.add(e),e=G[e];return e}(t.bidderCode)===e));Z(e,r,...n,i,...t)}})),Object.entries(H).forEach((e=>{let[n,o]=e;const s=o?.adapter?.[r];if("function"==typeof s)try{s.apply(o.adapter,t)}catch(e){(0,i.vV)(`error calling ${r} of ${n}`,e)}}))}));const te=V},9115:(e,t,n)=>{function i(e){var t=e;return{callBids:function(){},setBidderCode:function(e){t=e},getBidderCode:function(){return t}}}n.d(t,{xb:()=>B,a$:()=>w});var r=n(8046),o=n(3272),s=n(3597),a=n(8230),d=n(2449),c=n(3895),u=n(8969),l=n(5023),f=n(5901),g=n(1069),p=n(9214),h=n(6881),m=n(2693),b=n(6894),y=n(5139),v=n(3441),E=n(5569),A=n(6811);const I=["cpm","ttl","creativeId","netRevenue","currency"],T=["auctionId","transactionId"];function w(e){const t=Array.isArray(e.supportedMediaTypes)?{supportedMediaTypes:e.supportedMediaTypes}:void 0;function n(e){const n=B(e);r.Ay.registerBidAdapter(n,e.code,t)}n(e),Array.isArray(e.aliases)&&e.aliases.forEach((t=>{let i,o,s=t;(0,g.Qd)(t)&&(s=t.code,i=t.gvlid,o=t.skipPbsAliasing),r.Ay.aliasRegistry[s]=e.code,n(Object.assign({},e,{code:s,gvlid:i,skipPbsAliasing:o}))}))}const C=(0,g.Bj)((e=>{let{bidderCode:t}=e;if((0,y.io)(A.VJ,(0,v.s)(E.tW,t)))return{bidRequest:e=>e,bidderRequest:e=>e};function n(e,t,n){return T.includes(t)?null:Reflect.get(e,t,n)}function i(e,t){const n=new Proxy(e,t);return Object.entries(e).filter((e=>{let[t,n]=e;return"function"==typeof n})).forEach((t=>{let[i,r]=t;return n[i]=r.bind(e)})),n}const r=(0,g.Bj)((e=>i(e,{get:n})),(e=>e.bidId));return{bidRequest:r,bidderRequest:e=>i(e,{get:(t,i,o)=>"bids"===i?e.bids.map(r):n(t,i,o)})}}));function B(e){return Object.assign(new i(e.code),{getSpec:function(){return Object.freeze(Object.assign({},e))},registerSyncs:t,callBids:function(n,i,a,p,y,v){if(!Array.isArray(n.bids))return;const E=C(n),A={};function w(e,t){const n=(0,b.BO)(t.metrics);n.checkpoint("addBidResponse"),A[e]=!0,n.measureTime("addBidResponse.validate",(()=>function(e,t){let{index:n=h.n.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};function i(){let e=Object.keys(t);return I.every((n=>(0,f.mK)(e,n)&&!(0,f.mK)([void 0,null],t[n])))}function r(e){return`Invalid bid from ${t.bidderCode}. Ignoring bid: ${e}`}if(!e)return(0,g.JE)("No adUnitCode was supplied to addBidResponse."),!1;if(!t)return(0,g.JE)(`Some adapter tried to add an undefined bid for ${e}.`),!1;if(!i())return(0,g.vV)(r(`Bidder ${t.bidderCode} is missing required params. Check http://prebid.org/dev-docs/bidder-adapter-1.html for list of params.`)),!1;if("native"===t.mediaType&&!(0,d.Bm)(t,{index:n}))return(0,g.vV)(r("Native bid missing some required properties.")),!1;if("video"===t.mediaType&&!(0,c.vk)(t,{index:n}))return(0,g.vV)(r("Video bid does not have required vastUrl or renderer property")),!1;if("banner"===t.mediaType&&!function(e,t){let{index:n=h.n.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((t.width||0===parseInt(t.width,10))&&(t.height||0===parseInt(t.height,10)))return t.width=parseInt(t.width,10),t.height=parseInt(t.height,10),!0;const i=n.getBidRequest(t),r=n.getMediaTypes(t),o=i&&i.sizes||r&&r.banner&&r.banner.sizes,s=(0,g.kK)(o);if(1===s.length){const[e,n]=s[0].split("x");return t.width=parseInt(e,10),t.height=parseInt(n,10),!0}return!1}(e,t,{index:n}))return(0,g.vV)(r("Banner bids require a width and height")),!1;return!0}(e,t)))?i(e,t):i.reject(e,t,u.Tf.INVALID)}const B=[];function O(){a(),o.$W.runWithBidder(e.code,(()=>{l.Ic(u.qY.BIDDER_DONE,n),t(B,n.gdprConsent,n.uspConsent,n.gppConsent)}))}const R=D(n).measureTime("validate",(()=>n.bids.filter((t=>function(t){if(!e.isBidRequestValid(t))return(0,g.JE)(`Invalid bid sent to bidder ${e.code}: ${JSON.stringify(t)}`),!1;return!0}(E.bidRequest(t))))));if(0===R.length)return void O();const U={};R.forEach((e=>{U[e.bidId]=e,e.adUnitCode||(e.adUnitCode=e.placementCode)})),k(e,R,n,p,v,{onRequest:e=>l.Ic(u.qY.BEFORE_BIDDER_HTTP,n,e),onResponse:t=>{y(e.code),B.push(t)},onPaapi:e=>{const t=U[e.bidId];t?S(t,e):(0,g.JE)("Received fledge auction configuration for an unknown bidId",e)},onError:(t,i)=>{i.timedOut||y(e.code),r.Ay.callBidderError(e.code,i,n),l.Ic(u.qY.BIDDER_ERROR,{error:i,bidderRequest:n}),(0,g.vV)(`Server call for ${e.code} failed: ${t} ${i.status}. Continuing without bids.`)},onBid:t=>{const n=U[t.requestId];if(n){if(t.adapterCode=n.bidder,function(e,t){let n=m.u.get(t,"allowAlternateBidderCodes")||!1,i=m.u.get(t,"allowedAlternateBidderCodes");if(e&&t&&t!==e&&(i=(0,g.cy)(i)?i.map((e=>e.trim().toLowerCase())).filter((e=>!!e)).filter(g.hj):i,!n||(0,g.cy)(i)&&"*"!==i[0]&&!i.includes(e)))return!0;return!1}(t.bidderCode,n.bidder))return(0,g.JE)(`${t.bidderCode} is not a registered partner or known bidder of ${n.bidder}, hence continuing without bid. If you wish to support this bidder, please mark allowAlternateBidderCodes as true in bidderSettings.`),void i.reject(n.adUnitCode,t,u.Tf.BIDDER_DISALLOWED);t.originalCpm=t.cpm,t.originalCurrency=t.currency,t.meta=t.meta||Object.assign({},t[n.bidder]),t.deferBilling=n.deferBilling,t.deferRendering=t.deferBilling&&(t.deferRendering??"function"!=typeof e.onBidBillable);const r=Object.assign((0,s.O)(u.XQ.GOOD,n),t,(0,g.Up)(n,T));w(n.adUnitCode,r)}else(0,g.JE)(`Bidder ${e.code} made bid for unknown request ID: ${t.requestId}. Ignoring.`),i.reject(null,t,u.Tf.INVALID_REQUEST_ID)},onCompletion:O})}});function t(t,n,i,r){R(e,t,n,i,r)}}const O=["bids","paapi"],k=(0,p.A_)("sync",(function(e,t,n,i,r,o){let{onRequest:s,onResponse:a,onPaapi:d,onError:c,onBid:u,onCompletion:l}=o;const f=D(n);l=f.startTiming("total").stopBefore(l);const p=C(n);let h=f.measureTime("buildRequests",(()=>e.buildRequests(t.map(p.bidRequest),p.bidderRequest(n))));if(!h||0===h.length)return void l();Array.isArray(h)||(h=[h]);const b=(0,g.U6)(l,h.length);h.forEach((t=>{const n=f.fork();function o(e){null!=e&&(e.metrics=n.fork().renameWith()),u(e)}const l=r((function(i,r){h();try{i=JSON.parse(i)}catch(e){}i={body:i,headers:{get:r.getResponseHeader.bind(r)}},a(i);try{i=n.measureTime("interpretResponse",(()=>e.interpretResponse(i,t)))}catch(t){return(0,g.vV)(`Bidder ${e.code} failed to interpret the server\'s response. Continuing without bids`,null,t),void b()}let s,c;i&&!Object.keys(i).some((e=>!O.includes(e)))?(s=i.bids,c=i.paapi):s=i,(0,g.cy)(c)&&c.forEach(d),s&&((0,g.cy)(s)?s.forEach(o):o(s)),b()})),p=r((function(e,t){h(),c(e,t),b()}));s(t);const h=n.startTiming("net");function I(n){const i=t.options;return Object.assign(n,i,{browsingTopics:!(i?.hasOwnProperty("browsingTopics")&&!i.browsingTopics)&&((m.u.get(e.code,"topicsHeader")??!0)&&(0,y.io)(A.DL,(0,v.s)(E.tW,e.code)))})}switch(t.method){case"GET":i(`${t.url}${function(e){if(e)return`?${"object"==typeof e?(0,g.bL)(e):e}`;return""}(t.data)}`,{success:l,error:p},void 0,I({method:"GET",withCredentials:!0}));break;case"POST":i(t.url,{success:l,error:p},"string"==typeof t.data?t.data:JSON.stringify(t.data),I({method:"POST",contentType:"text/plain",withCredentials:!0}));break;default:(0,g.JE)(`Skipping invalid request from ${e.code}. Request type ${t.type} must be GET or POST`),b()}}))}),"processBidderRequests"),R=(0,p.A_)("async",(function(e,t,n,i,s){const d=o.$W.getConfig("userSync.aliasSyncEnabled");if(e.getUserSyncs&&(d||!r.Ay.aliasRegistry[e.code])){let r=o.$W.getConfig("userSync.filterSettings"),d=e.getUserSyncs({iframeEnabled:!(!r||!r.iframe&&!r.all),pixelEnabled:!(!r||!r.image&&!r.all)},t,n,i,s);d&&(Array.isArray(d)||(d=[d]),d.forEach((t=>{a.zt.registerSync(t.type,e.code,t.url)})),a.zt.bidderDone(e.code))}}),"registerSyncs"),S=(0,p.A_)("sync",((e,t)=>{}),"addPaapiConfig");function D(e){return(0,b.BO)(e.metrics).renameWith((t=>[`adapter.client.${t}`,`adapters.client.${e.bidderCode}.${t}`]))}},1580:(e,t,n)=>{n.d(t,{R:()=>u});var i=n(6811),r=n(3441),o=n(5139),s=n(5901),a=n(1069);const d=new WeakMap,c=["debugging","outstream","improvedigital","showheroes-bs","aaxBlockmeter","adagio","adloox","akamaidap","arcspan","airgrid","browsi","brandmetrics","clean.io","humansecurity","confiant","contxtful","hadron","mediafilter","medianet","azerionedge","a1Media","geoedge","qortex","dynamicAdBoost","51Degrees","symitridap","wurfl","justtag","tncId","ftrackId","id5"];function u(e,t,n,u,l,f){if(!(0,o.io)(i.pY,(0,r.s)(t,n)))return;if(!n||!e)return void(0,a.vV)("cannot load external script without url and moduleCode");if(!(0,s.mK)(c,n))return void(0,a.vV)(`${n} not whitelisted for loading external JavaScript`);l||(l=document);const g=m(l,e);if(g)return u&&"function"==typeof u&&(g.loaded?u():g.callbacks.push(u)),g.tag;const p=d.get(l)||{},h={loaded:!1,tag:null,callbacks:[]};return p[e]=h,d.set(l,p),u&&"function"==typeof u&&h.callbacks.push(u),(0,a.JE)(`module ${n} is loading external JavaScript`),function(t,n,i,r){i||(i=document);var o=i.createElement("script");o.type="text/javascript",o.async=!0;const s=m(i,e);s&&(s.tag=o);o.readyState?o.onreadystatechange=function(){"loaded"!==o.readyState&&"complete"!==o.readyState||(o.onreadystatechange=null,n())}:o.onload=function(){n()};o.src=t,r&&(0,a.Bg)(o,r);return(0,a._s)(o,i),o}(e,(function(){h.loaded=!0;try{for(let e=0;e<h.callbacks.length;e++)h.callbacks[e]()}catch(e){(0,a.vV)("Error executing callback","adloader.js:loadExternalScript",e)}}),l,f);function m(e,t){const n=d.get(e);return n&&n[t]?n[t]:null}}},8044:(e,t,n)=>{n.d(t,{g4:()=>l});var i=n(3272),r=n(1069);const o={fetch:window.fetch.bind(window),makeRequest:(e,t)=>new Request(e,t),timeout(e,t){const n=new AbortController;let i=setTimeout((()=>{n.abort(),(0,r.vV)(`Request timeout after ${e}ms`,t),i=null}),e);return{signal:n.signal,done(){i&&clearTimeout(i)}}}},s="GET",a="POST",d="Content-Type";function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e3,{request:t,done:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t,n)=>{let r;null==e||null!=n?.signal||i.$W.getConfig("disableAjaxTimeout")||(r=o.timeout(e,t),n=Object.assign({signal:r.signal},n));let s=o.fetch(t,n);return null!=r?.done&&(s=s.finally(r.done)),s};return null==t&&null==n||(r=(e=>function(i,r){const o=new URL(null==i?.url?i:i.url,document.location).origin;let s=e(i,r);return t&&t(o),n&&(s=s.finally((()=>n(o)))),s})(r)),r}function u(e,t){let{status:n,statusText:i="",headers:o,url:s}=e,a=0;function c(e){if(0===a)try{a=(new DOMParser).parseFromString(t,o?.get(d)?.split(";")?.[0])}catch(t){a=null,e&&e(t)}return a}return{readyState:XMLHttpRequest.DONE,status:n,statusText:i,responseText:t,response:t,responseType:"",responseURL:s,get responseXML(){return c(r.vV)},getResponseHeader:e=>o?.has(e)?o.get(e):null,toJSON(){return Object.assign({responseXML:c()},this)},timedOut:!1}}function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e3,{request:t,done:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=c(e,{request:t,done:n});return function(e,t,n){!function(e,t){const{success:n,error:i}="object"==typeof t&&null!=t?t:{success:"function"==typeof t?t:()=>null,error:(e,t)=>(0,r.vV)("Network error",e,t)};e.then((e=>e.text().then((t=>[e,t])))).then((e=>{let[t,r]=e;const o=u(t,r);t.ok||304===t.status?n(r,o):i(t.statusText,o)}),(e=>i("",Object.assign(u({status:0},""),{reason:e,timedOut:"AbortError"===e?.name}))))}(i(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=n.method||(t?a:s);if(i===s&&t){const i=(0,r.Dl)(e,n);Object.assign(i.search,t),e=(0,r.c$)(i)}const c=new Headers(n.customHeaders);c.set(d,n.contentType||"text/plain");const u={method:i,headers:c};return i!==s&&t&&(u.body=t),n.withCredentials&&(u.credentials="include"),isSecureContext&&["browsingTopics","adAuctionHeaders"].forEach((e=>{n[e]&&(u[e]=!0)})),n.keepalive&&(u.keepalive=!0),o.makeRequest(e,u)}(e,n,arguments.length>3&&void 0!==arguments[3]?arguments[3]:{})),t)}}l(),c()},6881:(e,t,n)=>{n.d(t,{n:()=>ie});var i=n(1069),r=n(6833),o=n(2449),s=n(8044),a=n(3272);const d=15;function c(e){let{index:t=ie.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=e.vastXml?e.vastXml:(i=e.vastUrl,r=e.vastImpUrl,`<VAST version="3.0">\\n <Ad>\\n <Wrapper>\\n <AdSystem>prebid.org wrapper</AdSystem>\\n <VASTAdTagURI><![CDATA[${i}]]></VASTAdTagURI>\\n ${(r=r&&(Array.isArray(r)?r:[r]))?r.map((e=>`<Impression><![CDATA[${e}]]></Impression>`)).join(""):""}\\n <Creatives></Creatives>\\n </Wrapper>\\n </Ad>\\n </VAST>`);var i,r;const o=t.getAuction(e);let s={type:"xml",value:n,ttlseconds:Number(e.ttl)+d};return a.$W.getConfig("cache.vasttrack")&&(s.bidder=e.bidder,s.bidid=e.requestId,s.aid=e.auctionId),null!=o&&(s.timestamp=o.getAuctionStart()),"string"==typeof e.customCacheKey&&""!==e.customCacheKey&&(s.key=e.customCacheKey),s}const u={store:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.g4;const i={puts:e.map(c)};n(a.$W.getConfig("cache.timeout"))(a.$W.getConfig("cache.url"),function(e){return{success:function(t){let n;try{n=JSON.parse(t).responses}catch(t){return void e(t,[])}n?e(null,n):e(new Error("The cache server didn\'t respond with a responses property."),[])},error:function(t,n){e(new Error(`Error storing video ad in the cache: ${t}: ${JSON.stringify(n)}`),[])}}}(t),JSON.stringify(i),{contentType:"text/plain",withCredentials:!0})}};function l(e){const t=e.map((e=>e.bidResponse));u.store(t,(function(n,r){var o;n?(o=n,(0,i.vV)(`Failed to save to the video cache: ${o}. Video bids will be discarded:`,t)):e.length!==r.length?(0,i.vV)(`expected ${e.length} cache IDs, got ${r.length} instead`):r.forEach(((t,n)=>{const{auctionInstance:r,bidResponse:o,afterBidAdded:s}=e[n];var d;""===t.uuid?(0,i.JE)("Supplied video cache key was already in use by Prebid Cache; caching attempt was rejected. Video bid must be discarded."):(o.videoCacheKey=t.uuid,o.vastUrl||(o.vastUrl=(d=o.videoCacheKey,`${a.$W.getConfig("cache.url")}?uuid=${d}`)),F(r,o),s())}))}))}let f,g;a.$W.getConfig("cache",(e=>{f="number"==typeof e.cache.batchSize&&e.cache.batchSize>0?e.cache.batchSize:1,g="number"==typeof e.cache.batchTimeout&&e.cache.batchTimeout>0?e.cache.batchTimeout:0}));const p=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:setTimeout,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l,n=[[]],i=!1;const r=e=>e();return function(o,s,a){const d=g>0?e:r;n[n.length-1].length>=f&&n.push([]),n[n.length-1].push({auctionInstance:o,bidResponse:s,afterBidAdded:a}),i||(i=!0,d((()=>{n.forEach(t),n=[[]],i=!1}),g))}}();var h=n(5789),m=n(8230),b=n(9214),y=n(5901),v=n(3895),E=n(1371),A=n(2693),I=n(5023),T=n(8046),w=n(8969),C=n(5555),B=n(6894);var O=n(7873),k=n(6853),R=n(7863);const{syncUsers:S}=m.zt,D="started",U="inProgress",_="completed";I.on(w.qY.BID_ADJUSTMENT,(function(e){!function(e){let t=function(e,t,n){let{index:r=ie.index,bs:o=A.u}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n=n||r.getBidRequest(t);const s=t?.adapterCode,a=t?.bidderCode||n?.bidder,d=o.get(t?.adapterCode,"adjustAlternateBids"),c=o.getOwn(a,"bidCpmAdjustment")||o.get(d?s:a,"bidCpmAdjustment");if(c&&"function"==typeof c)try{return c(e,Object.assign({},t),n)}catch(e){(0,i.vV)("Error during bid adjustment",e)}return e}(e.cpm,e);t>=0&&(e.cpm=t)}(e)}));const j=4,$={},q={},x=[],N=(0,O.m)();function W(e){let{adUnits:t,adUnitCodes:n,callback:s,cbTimeout:d,labels:c,auctionId:u,ortb2Fragments:l,metrics:f}=e;f=(0,B.BO)(f);const g=t,p=c,m=n,b=u||(0,i.lk)(),A=d,O=new Set,W=(0,C.v)(),z=(0,C.v)();let J,K,Q,Y,X=[],Z=s,ee=[],ne=(0,k.H)({startTime:e=>e.responseTimestamp,ttl:e=>null==(0,R.S9)()?null:1e3*Math.max((0,R.S9)(),e.ttl)}),re=[],oe=[],se=[];function ae(){return{auctionId:b,timestamp:J,auctionEnd:K,auctionStatus:Y,adUnits:g,adUnitCodes:m,labels:p,bidderRequests:ee,noBids:re,bidsReceived:ne.toArray(),bidsRejected:X,winningBids:oe,timeout:A,metrics:f,seatNonBids:se}}function de(e){if(e?I.Ic(w.qY.AUCTION_TIMEOUT,ae()):clearTimeout(Q),void 0===K){let n=[];e&&((0,i.OG)(`Auction ${b} timedOut`),n=ee.filter((e=>!O.has(e.bidderRequestId))).flatMap((e=>e.bids)),n.length&&I.Ic(w.qY.BID_TIMEOUT,n)),Y=_,K=Date.now(),f.checkpoint("auctionEnd"),f.timeBetween("requestBids","auctionEnd","requestBids.total"),f.timeBetween("callBids","auctionEnd","requestBids.callBids"),W.resolve(),I.Ic(w.qY.AUCTION_END,ae()),G(g,(function(){try{if(null!=Z){const t=ne.toArray().filter((e=>m.includes(e.adUnitCode))).reduce(te,{});Z.apply(N,[t,e,b]),Z=null}}catch(e){(0,i.vV)("Error executing bidsBackHandler",null,e)}finally{n.length&&T.Ay.callTimedOutBidders(t,n,A);let e=a.$W.getConfig("userSync")||{};e.enableOverride||S(e.syncDelay)}}))}}function ce(){a.$W.resetBidder(),(0,i.fH)(`Bids Received for Auction with id: ${b}`,ne.toArray()),Y=_,de(!1)}function ue(e){O.add(e)}function le(e){e.forEach((e=>{var t;t=e,ee=ee.concat(t)}));let t={},n={bidRequests:e,run:()=>{Q=setTimeout((()=>de(!0)),A),Y=U,I.Ic(w.qY.AUCTION_INIT,ae());let n=function(e,t){let{index:n=ie.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=0,d=!1,c=new Set,u={};function l(){s--,d&&0===s&&e()}function f(e,t,n){return u[t.requestId]=!0,function(e,t){let{index:n=ie.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=n.getBidderRequest(e),o=n.getAdUnit(e),s=r&&r.start||e.requestTimestamp;Object.assign(e,{responseTimestamp:e.responseTimestamp||(0,i.vE)(),requestTimestamp:e.requestTimestamp||s,cpm:parseFloat(e.cpm)||0,bidder:e.bidder||e.bidderCode,adUnitCode:t}),null!=o?.ttlBuffer&&(e.ttlBuffer=o.ttlBuffer);e.timeToRespond=e.responseTimestamp-e.requestTimestamp}(t,e),s++,n(l)}function g(e,s){f(e,s,(e=>{let d=function(e){let{index:t=ie.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};I.Ic(w.qY.BID_ADJUSTMENT,e);const n=t.getBidRequest(e)?.renderer||t.getAdUnit(e).renderer,i=e.mediaType,o=t.getMediaTypes(e),s=o&&o[i];var d=s&&s.renderer,c=null;!d||!d.render||!0===d.backupOnly&&e.renderer?!n||!n.render||!0===n.backupOnly&&e.renderer||(c=n):c=d;c&&(e.renderer=h.A4.install({url:c.url,config:c.options,renderNow:null==c.url}),e.renderer.setRender(c.render));const u=L(e.mediaType,o,a.$W.getConfig("mediaTypePriceGranularity")),l=(0,r.j)(e.cpm,"object"==typeof u?u:a.$W.getConfig("customPriceBucket"),a.$W.getConfig("currency.granularityMultiplier"));return e.pbLg=l.low,e.pbMg=l.med,e.pbHg=l.high,e.pbAg=l.auto,e.pbDg=l.dense,e.pbCg=l.custom,e}(s);I.Ic(w.qY.BID_ACCEPTED,d),d.mediaType===E.G_?function(e,t,n){let{index:r=ie.index}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=!0;const s=r.getMediaTypes({requestId:t.originalRequestId||t.requestId,adUnitId:t.adUnitId})?.video,d=s&&s?.context,c=s&&s?.useCacheKey;a.$W.getConfig("cache.url")&&(c||d!==v.H6)&&(!t.videoCacheKey||a.$W.getConfig("cache.ignoreBidderCacheKey")?(o=!1,H(e,t,n,s)):t.vastUrl||((0,i.vV)("videoCacheKey specified but not required vastUrl for video bid"),o=!1));o&&(F(e,t),n())}(t,d,e):((0,o.l6)(d)&&(0,o.gs)(d,n.getAdUnit(d)),F(t,d),e())}))}function p(e,n,r){return f(e,n,(e=>{n.rejectionReason=r,(0,i.JE)(`Bid from ${n.bidder||"unknown bidder"} was rejected: ${r}`,n),I.Ic(w.qY.BID_REJECTED,n),t.addBidRejected(n),e()}))}function m(){let n=this,r=t.getBidRequests();const o=a.$W.getConfig("auctionOptions");if(c.add(n),o&&!(0,i.Im)(o)){const e=o.secondaryBidders;e&&!r.every((t=>(0,y.mK)(e,t.bidderCode)))&&(r=r.filter((t=>!(0,y.mK)(e,t.bidderCode))))}d=r.every((e=>c.has(e))),n.bids.forEach((e=>{u[e.bidId]||(t.addNoBid(e),I.Ic(w.qY.NO_BID,e))})),d&&0===s&&e()}return{addBidResponse:function(){function e(e,t){P.call({dispatch:g},e,t,(()=>{let n=!1;return i=>{n||(p(e,t,i),n=!0)}})())}return e.reject=p,e}(),adapterDone:function(){V(C.k.resolve()).finally((()=>m.call(this)))}}}(ce,this);T.Ay.callBids(g,e,n.addBidResponse,n.adapterDone,{request(e,n){d($,n),d(t,e),q[e]||(q[e]={SRA:!0,origin:n}),t[e]>1&&(q[e].SRA=!1)},done(e){$[e]--,x[0]&&s(x[0])&&x.shift()}},A,ue,l),z.resolve()}};function s(e){let t=!0,n=a.$W.getConfig("maxRequestsPerOrigin")||j;return e.bidRequests.some((e=>{let i=1,r=void 0!==e.src&&e.src===w.RW.SRC?"s2s":e.bidderCode;return q[r]&&(!1===q[r].SRA&&(i=Math.min(e.bids.length,n)),$[q[r].origin]+i>n&&(t=!1)),!t})),t&&e.run(),t}function d(e,t){void 0===e[t]?e[t]=1:e[t]++}s(n)||((0,i.JE)("queueing auction due to limited endpoint capacity"),x.push(n))}return(0,R.lc)((()=>ne.refresh())),I.on(w.qY.SEAT_NON_BID,(e=>{var t;e.auctionId===b&&(t=e.seatnonbid,se=se.concat(t))})),{addBidReceived:function(e){ne.add(e)},addBidRejected:function(e){X=X.concat(e)},addNoBid:function(e){re=re.concat(e)},callBids:function(){Y=D,J=Date.now();let e=f.measureTime("requestBids.makeRequests",(()=>T.Ay.makeBidRequests(g,J,b,A,p,l,f)));(0,i.fH)(`Bids Requested for Auction with id: ${b}`,e),f.checkpoint("callBids"),e.length<1?((0,i.JE)("No valid bid requests returned for auction"),ce()):M.call({dispatch:le,context:this},e)},addWinningBid:function(e){oe=oe.concat(e),T.Ay.callBidWonBidder(e.adapterCode||e.bidder,e,t),e.deferBilling||T.Ay.triggerBilling(e)},setBidTargeting:function(e){T.Ay.callSetTargetingBidder(e.adapterCode||e.bidder,e)},getWinningBids:()=>oe,getAuctionStart:()=>J,getAuctionEnd:()=>K,getTimeout:()=>A,getAuctionId:()=>b,getAuctionStatus:()=>Y,getAdUnits:()=>g,getAdUnitCodes:()=>m,getBidRequests:()=>ee,getBidsReceived:()=>ne.toArray(),getNoBids:()=>re,getNonBids:()=>se,getFPD:()=>l,getMetrics:()=>f,end:W.promise,requestsDone:z.promise}}const P=(0,b.A_)("sync",(function(e,t,n){!function(e){const t=a.$W.getConfig("maxBid");return!t||!e.cpm||t>=Number(e.cpm)}(t)?n(w.Tf.PRICE_TOO_HIGH):this.dispatch.call(null,e,t)}),"addBidResponse"),V=(0,b.A_)("sync",(e=>e),"responsesReady"),M=(0,b.A_)("sync",(function(e){this.dispatch.call(this.context,e)}),"addBidderRequests"),G=(0,b.A_)("async",(function(e,t){t&&t()}),"bidsBackCallback");function F(e,t){!function(e){let t;const n=!0===A.u.get(e.bidderCode,"allowZeroCpmBids")?e.cpm>=0:e.cpm>0;e.bidderCode&&(n||e.dealId)&&(t=function(e,t){let{index:n=ie.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!t)return{};const i=n.getBidRequest(t);var r={};const s=Z(t.mediaType,e);ee(r,s,t,i),e&&A.u.getOwn(e,w.iD.ADSERVER_TARGETING)&&(ee(r,A.u.ownSettingsFor(e),t,i),t.sendStandardTargeting=A.u.get(e,"sendStandardTargeting"));t.native&&(r=Object.assign({},r,(0,o.Zj)(t)));return r}(e.bidderCode,e));e.adserverTargeting=Object.assign(e.adserverTargeting||{},t)}(t),(0,B.BO)(t.metrics).timeSince("addBidResponse","addBidResponse.total"),e.addBidReceived(t),I.Ic(w.qY.BID_RESPONSE,t)}const H=(0,b.A_)("async",(function(e,t,n,i){p(e,t,n)}),"callPrebidCache");function L(e,t,n){if(e&&n){if(e===E.G_){const e=t?.[E.G_]?.context??"instream";if(n[`${E.G_}-${e}`])return n[`${E.G_}-${e}`]}return n[e]}}const z=e=>t=>{const n=e||function(e){let{index:t=ie.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=L(e.mediaType,t.getMediaTypes(e),a.$W.getConfig("mediaTypePriceGranularity"));return"string"==typeof e.mediaType&&n?"string"==typeof n?n:"custom":a.$W.getConfig("priceGranularity")}(t);return n===w.UE.AUTO?t.pbAg:n===w.UE.DENSE?t.pbDg:n===w.UE.LOW?t.pbLg:n===w.UE.MEDIUM?t.pbMg:n===w.UE.HIGH?t.pbHg:n===w.UE.CUSTOM?t.pbCg:void 0},J=()=>e=>e.creativeId?e.creativeId:"",K=()=>e=>e.meta&&e.meta.advertiserDomains&&e.meta.advertiserDomains.length>0?[e.meta.advertiserDomains].flat()[0]:"",Q=()=>e=>e.meta&&(e.meta.networkId||e.meta.networkName)?e?.meta?.networkName||e?.meta?.networkId:"",Y=()=>e=>e.meta&&e.meta.primaryCatId?e.meta.primaryCatId:"";function X(e,t){return{key:e,val:"function"==typeof t?function(e,n){return t(e,n)}:function(e){return e[t]}}}function Z(e,t){const n=Object.assign({},A.u.settingsFor(null));if(n[w.iD.ADSERVER_TARGETING]||(n[w.iD.ADSERVER_TARGETING]=[X(w.xS.BIDDER,"bidderCode"),X(w.xS.AD_ID,"adId"),X(w.xS.PRICE_BUCKET,z()),X(w.xS.SIZE,"size"),X(w.xS.DEAL,"dealId"),X(w.xS.SOURCE,"source"),X(w.xS.FORMAT,"mediaType"),X(w.xS.ADOMAIN,K()),X(w.xS.ACAT,Y()),X(w.xS.DSP,Q()),X(w.xS.CRID,J())]),"video"===e){const e=n[w.iD.ADSERVER_TARGETING].slice();if(n[w.iD.ADSERVER_TARGETING]=e,[w.xS.UUID,w.xS.CACHE_ID].forEach((t=>{void 0===(0,y.I6)(e,(e=>e.key===t))&&e.push(X(t,"videoCacheKey"))})),a.$W.getConfig("cache.url")&&(!t||!1!==A.u.get(t,"sendStandardTargeting"))){const t=(0,i.Dl)(a.$W.getConfig("cache.url"));void 0===(0,y.I6)(e,(e=>e.key===w.xS.CACHE_HOST))&&e.push(X(w.xS.CACHE_HOST,(function(e){return e?.adserverTargeting?.[w.xS.CACHE_HOST]||t.hostname})))}}return n}function ee(e,t,n,r){var o=t[w.iD.ADSERVER_TARGETING];return n.size=n.getSize(),(o||[]).forEach((function(o){var s=o.key,a=o.val;if(e[s]&&(0,i.JE)("The key: "+s+" is being overwritten"),(0,i.fp)(a))try{a=a(n,r)}catch(e){(0,i.vV)("bidmanager","ERROR",e)}(void 0===t.suppressEmptyKeys||!0!==t.suppressEmptyKeys)&&s!==w.xS.DEAL&&s!==w.xS.ACAT&&s!==w.xS.DSP&&s!==w.xS.CRID||!(0,i.xQ)(a)&&null!=a?e[s]=a:(0,i.fH)("suppressing empty key \'"+s+"\' from adserver targeting")})),e}function te(e,t){return e[t.adUnitCode]||(e[t.adUnitCode]={bids:[]}),e[t.adUnitCode].bids.push(t),e}function ne(e){Object.assign(this,{getAuction(t){let{auctionId:n}=t;if(null!=n)return e().find((e=>e.getAuctionId()===n))},getAdUnit(t){let{adUnitId:n}=t;if(null!=n)return e().flatMap((e=>e.getAdUnits())).find((e=>e.adUnitId===n))},getMediaTypes(e){let{adUnitId:t,requestId:n}=e;if(null!=n){const e=this.getBidRequest({requestId:n});if(null!=e&&(null==t||e.adUnitId===t))return e.mediaTypes}else if(null!=t){const e=this.getAdUnit({adUnitId:t});if(null!=e)return e.mediaTypes}},getBidderRequest(t){let{requestId:n,bidderRequestId:i}=t;if(null!=n||null!=i){let t=e().flatMap((e=>e.getBidRequests()));return null!=i&&(t=t.filter((e=>e.bidderRequestId===i))),null==n?t[0]:t.find((e=>e.bids&&null!=e.bids.find((e=>e.bidId===n))))}},getBidRequest(t){let{requestId:n}=t;if(null!=n)return e().flatMap((e=>e.getBidRequests())).flatMap((e=>e.bids)).find((e=>e&&e.bidId===n))},getOrtb2(e){return this.getBidderRequest(e)?.ortb2||this.getAuction(e)?.getFPD()?.global?.ortb2}})}const ie=function(){const e=(0,k.H)({startTime:e=>e.end.then((()=>e.getAuctionEnd())),ttl:e=>null==(0,R.S9)()?null:e.end.then((()=>1e3*Math.max((0,R.S9)(),...e.getBidsReceived().map((e=>e.ttl)))))});(0,R.lc)((()=>e.refresh()));const t={onExpiry:e.onExpiry};function n(t){for(const n of e)if(n.getAuctionId()===t)return n}function r(){return e.toArray().flatMap((e=>e.getBidsReceived()))}return t.addWinningBid=function(e){const t=(0,B.BO)(e.metrics);t.checkpoint("bidWon"),t.timeBetween("auctionEnd","bidWon","adserver.pending"),t.timeBetween("requestBids","bidWon","adserver.e2e");const r=n(e.auctionId);r?r.addWinningBid(e):(0,i.JE)("Auction not found when adding winning bid")},Object.entries({getAllWinningBids:{name:"getWinningBids"},getBidsRequested:{name:"getBidRequests"},getNoBids:{},getAdUnits:{},getBidsReceived:{pre:e=>e.getAuctionStatus()===_},getAdUnitCodes:{post:i.hj}}).forEach((n=>{let[i,{name:r=i,pre:o,post:s}]=n;const a=null==o?e=>e[r]():e=>o(e)?e[r]():[],d=null==s?e=>e:e=>e.filter(s);t[i]=()=>d(e.toArray().flatMap(a))})),t.getAllBidsForAdUnitCode=function(e){return r().filter((t=>t&&t.adUnitCode===e))},t.createAuction=function(t){const n=W(t);return function(t){e.add(t)}(n),n},t.findBidByAdId=function(e){return r().find((t=>t.adId===e))},t.getStandardBidderAdServerTargeting=function(){return Z()[w.iD.ADSERVER_TARGETING]},t.setStatusForBids=function(e,i){let r=t.findBidByAdId(e);if(r&&(r.status=i),r&&i===w.tl.BID_TARGETING_SET){const e=n(r.auctionId);e&&e.setBidTargeting(r)}},t.getLastAuctionId=function(){const t=e.toArray();return t.length&&t[t.length-1].getAuctionId()},t.clearAllAuctions=function(){e.clear()},t.index=new ne((()=>e.toArray())),t}()},7863:(e,t,n)=>{n.d(t,{S9:()=>u,cT:()=>c,lc:()=>l});var i=n(3272),r=n(1069);const o="minBidCacheTTL";let s=1,a=null;const d=[];function c(e){return e.ttl-(e.hasOwnProperty("ttlBuffer")?e.ttlBuffer:s)}function u(){return a}function l(e){d.push(e)}i.$W.getConfig("ttlBuffer",(e=>{"number"==typeof e.ttlBuffer?s=e.ttlBuffer:(0,r.vV)("Invalid value for ttlBuffer",e.ttlBuffer)})),i.$W.getConfig(o,(e=>{const t=a;a=e?.[o],a="number"==typeof a?a:null,t!==a&&d.forEach((e=>e(a)))}))},2693:(e,t,n)=>{n.d(t,{u:()=>a});var i=n(433),r=n(1069),o=n(7873),s=n(8969);const a=new class{constructor(e,t){this.getSettings=e,this.defaultScope=t}get(e,t){let n=this.getOwn(e,t);return void 0===n&&(n=this.getOwn(null,t)),n}getOwn(e,t){return e=this.#e(e),(0,i.A)(this.getSettings(),`${e}.${t}`)}getScopes(){return Object.keys(this.getSettings()).filter((e=>e!==this.defaultScope))}settingsFor(e){return(0,r.D9)({},this.ownSettingsFor(null),this.ownSettingsFor(e))}ownSettingsFor(e){return e=this.#e(e),this.getSettings()[e]||{}}#e(e){return null==e?this.defaultScope:e}}((()=>(0,o.m)().bidderSettings||{}),s.iD.BD_SETTING_STANDARD)},3597:(e,t,n)=>{n.d(t,{O:()=>o});var i=n(1069);function r(e){let{src:t="client",bidder:n="",bidId:r,transactionId:o,adUnitId:s,auctionId:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var d=t,c=e||0;Object.assign(this,{bidderCode:n,width:0,height:0,statusMessage:function(){switch(c){case 0:return"Pending";case 1:return"Bid available";case 2:return"Bid returned empty or error response";case 3:return"Bid timed out"}}(),adId:(0,i.s0)(),requestId:r,transactionId:o,adUnitId:s,auctionId:a,mediaType:"banner",source:d}),this.getStatusCode=function(){return c},this.getSize=function(){return this.width+"x"+this.height},this.getIdentifiers=function(){return{src:this.source,bidder:this.bidderCode,bidId:this.requestId,transactionId:this.transactionId,adUnitId:this.adUnitId,auctionId:this.auctionId}}}function o(e,t){return new r(e,t)}},3272:(e,t,n)=>{n.d(t,{$W:()=>h,Ov:()=>u});var i=n(6833),r=n(5901),o=n(1069),s=n(433),a=n(8969);const d="TRUE"===(0,o.Ez)(a.M).toUpperCase(),c={},u="random",l={};l[u]=!0,l.fixed=!0;const f=u,g={LOW:"low",MEDIUM:"medium",HIGH:"high",AUTO:"auto",DENSE:"dense",CUSTOM:"custom"};function p(e){const t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1]?{priceGranularity:g.MEDIUM,customPriceBucket:{},mediaTypePriceGranularity:{},bidderSequence:f,auctionOptions:{}}:{};function n(e){return t[e]}function s(n,i){t.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0}),t[n]=i}const a={publisherDomain:{set(e){null!=e&&(0,o.JE)("publisherDomain is deprecated and has no effect since v7 - use pageUrl instead"),s("publisherDomain",e)}},priceGranularity:{set(e){c(e)&&("string"==typeof e?s("priceGranularity",d(e)?e:g.MEDIUM):(0,o.Qd)(e)&&(s("customPriceBucket",e),s("priceGranularity",g.CUSTOM),(0,o.OG)("Using custom price granularity")))}},customPriceBucket:{},mediaTypePriceGranularity:{set(e){null!=e&&s("mediaTypePriceGranularity",Object.keys(e).reduce(((t,i)=>(c(e[i])?"string"==typeof e?t[i]=d(e[i])?e[i]:n("priceGranularity"):(0,o.Qd)(e)&&(t[i]=e[i],(0,o.OG)(`Using custom price granularity for ${i}`)):(0,o.JE)(`Invalid price granularity for media type: ${i}`),t)),{}))}},bidderSequence:{set(e){l[e]?s("bidderSequence",e):(0,o.JE)(`Invalid order: ${e}. Bidder Sequence was not set.`)}},auctionOptions:{set(e){(function(e){if(!(0,o.Qd)(e))return(0,o.JE)("Auction Options must be an object"),!1;for(let t of Object.keys(e)){if("secondaryBidders"!==t&&"suppressStaleRender"!==t&&"suppressExpiredRender"!==t)return(0,o.JE)(`Auction Options given an incorrect param: ${t}`),!1;if("secondaryBidders"===t){if(!(0,o.cy)(e[t]))return(0,o.JE)(`Auction Options ${t} must be of type Array`),!1;if(!e[t].every(o.O8))return(0,o.JE)(`Auction Options ${t} must be only string`),!1}else if(("suppressStaleRender"===t||"suppressExpiredRender"===t)&&!(0,o.Lm)(e[t]))return(0,o.JE)(`Auction Options ${t} must be of type boolean`),!1}return!0})(e)&&s("auctionOptions",e)}}};return Object.defineProperties(e,Object.fromEntries(Object.entries(a).map((e=>{let[i,r]=e;return[i,Object.assign({get:n.bind(null,i),set:s.bind(null,i),enumerable:t.hasOwnProperty(i),configurable:!t.hasOwnProperty(i)},r)]})))),e;function d(e){return(0,r.I6)(Object.keys(g),(t=>e===g[t]))}function c(e){if(!e)return(0,o.vV)("Prebid Error: no value passed to `setPriceGranularity()`"),!1;if("string"==typeof e)d(e)||(0,o.JE)("Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default.");else if((0,o.Qd)(e)&&!(0,i.q)(e))return(0,o.vV)("Invalid custom price value passed to `setPriceGranularity()`"),!1;return!0}}const h=function(){let e,t,n,i=[],a=null;function u(){e={};let i=p({debug:d,bidderTimeout:3e3,enableSendAllBids:true,useBidCache:false,deviceAccess:true,disableAjaxTimeout:false,maxNestedIframes:10,maxBid:5e3,userSync:{topics:c}});t&&v(Object.keys(t).reduce(((e,n)=>(t[n]!==i[n]&&(e[n]=i[n]||{}),e)),{})),t=i,n={}}function l(){if(a&&n&&(0,o.Qd)(n[a])){let e=n[a];const i=new Set(Object.keys(t).concat(Object.keys(e)));return(0,r.A6)(i).reduce(((n,i)=>(void 0===e[i]?n[i]=t[i]:void 0===t[i]?n[i]=e[i]:(0,o.Qd)(e[i])?n[i]=(0,o.D9)({},t[i],e[i]):n[i]=e[i],n)),{})}return Object.assign({},t)}const[f,g]=[l,function(){const e=l();return Object.defineProperty(e,"ortb2",{get:function(){throw new Error("invalid access to \'orbt2\' config - use request parameters instead")}}),e}].map((e=>function(){if(arguments.length<=1&&"function"!=typeof(arguments.length<=0?void 0:arguments[0])){const t=arguments.length<=0?void 0:arguments[0];return t?(0,s.A)(e(),t):l()}return y(...arguments)})),[h,m]=[g,f].map((e=>function(){let t=e(...arguments);return t&&"object"==typeof t&&(t=(0,o.Go)(t)),t}));function b(n){if(!(0,o.Qd)(n))return void(0,o.vV)("setConfig options must be an object");let i=Object.keys(n),r={};i.forEach((i=>{let s=n[i];(0,o.Qd)(e[i])&&(0,o.Qd)(s)&&(s=Object.assign({},e[i],s));try{r[i]=t[i]=s}catch(e){(0,o.JE)(`Cannot set config for property ${i} : `,e)}})),v(r)}function y(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t;if("string"!=typeof e&&(r=e,e="*",n=t||{}),"function"!=typeof r)return void(0,o.vV)("listener must be a function");const s={topic:e,callback:r};return i.push(s),n.init&&r("*"===e?g():{[e]:g(e)}),function(){i.splice(i.indexOf(s),1)}}function v(e){const t=Object.keys(e);i.filter((e=>(0,r.mK)(t,e.topic))).forEach((t=>{t.callback({[t.topic]:e[t.topic]})})),i.filter((e=>"*"===e.topic)).forEach((t=>t.callback(e)))}function E(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{!function(e){if(!(0,o.Qd)(e))throw"setBidderConfig bidder options must be an object";if(!Array.isArray(e.bidders)||!e.bidders.length)throw"setBidderConfig bidder options must contain a bidders list with at least 1 bidder";if(!(0,o.Qd)(e.config))throw"setBidderConfig bidder options must contain a config object"}(e),e.bidders.forEach((i=>{n[i]||(n[i]=p({},!1)),Object.keys(e.config).forEach((r=>{let s=e.config[r];const a=n[i][r];if((0,o.Qd)(s)&&(null==a||(0,o.Qd)(a))){const e=t?o.D9:Object.assign;n[i][r]=e({},a||{},s)}else n[i][r]=s}))}))}catch(e){(0,o.vV)(e)}}function A(e,t){a=e;try{return t()}finally{I()}}function I(){a=null}return u(),{getCurrentBidder:function(){return a},resetBidder:I,getConfig:g,getAnyConfig:f,readConfig:h,readAnyConfig:m,setConfig:b,mergeConfig:function(e){if(!(0,o.Qd)(e))return void(0,o.vV)("mergeConfig input must be an object");const t=(0,o.D9)(l(),e);return b({...t}),t},setDefaults:function(n){(0,o.Qd)(e)?(Object.assign(e,n),Object.assign(t,n)):(0,o.vV)("defaults must be an object")},resetConfig:u,runWithBidder:A,callbackWithBidder:function(e){return function(t){return function(){if("function"==typeof t){for(var n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return A(e,t.bind(this,...i))}(0,o.JE)("config.callbackWithBidder callback is not a function")}}},setBidderConfig:E,getBidderConfig:function(){return n},mergeBidderConfig:function(e){return E(e,!0)}}}()},6916:(e,t,n)=>{n.d(t,{SL:()=>g,ad:()=>c,mW:()=>a,o2:()=>l,t6:()=>d});var i=n(1069),r=n(5555),o=n(3272);Object.freeze({});class s{#t;#n;#i;#r;#o=!0;#s;generatedTime;hashFields;constructor(){this.reset()}#a(e){this.#r=!0,this.#n=e,this.#i.resolve(e)}reset(){this.#i=(0,r.v)(),this.#t=!1,this.#n=null,this.#r=!1,this.generatedTime=null}enable(){this.#t=!0}get enabled(){return this.#t}get ready(){return this.#r}get promise(){return this.#r?r.k.resolve(this.#n):(this.#t||this.#a(null),this.#i.promise)}setConsentData(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,i.vE)();this.generatedTime=t,this.#o=!0,this.#a(e)}getConsentData(){return this.#n}get hash(){return this.#o&&(this.#s=(0,i.PB)(JSON.stringify(this.#n&&this.hashFields?this.hashFields.map((e=>this.#n[e])):this.#n)),this.#o=!1),this.#s}}const a=new class extends s{hashFields=["gdprApplies","consentString"];getConsentMeta(){const e=this.getConsentData();if(e&&e.vendorData&&this.generatedTime)return{gdprApplies:e.gdprApplies,consentStringSize:(0,i.O8)(e.vendorData.tcString)?e.vendorData.tcString.length:0,generatedAt:this.generatedTime,apiVersion:e.apiVersion}}},d=new class extends s{getConsentMeta(){if(this.getConsentData()&&this.generatedTime)return{generatedAt:this.generatedTime}}},c=new class extends s{hashFields=["applicableSections","gppString"];getConsentMeta(){if(this.getConsentData()&&this.generatedTime)return{generatedAt:this.generatedTime}}},u=(()=>{function e(){return!!o.$W.getConfig("coppa")}return{getCoppa:e,getConsentData:e,getConsentMeta:e,reset(){},get promise(){return r.k.resolve(e())},get hash(){return e()?"1":"0"}}})(),l=function(){const e={},t={},n={};return{register(i,r,o){o&&((e[r]=e[r]||{})[i]=o,t.hasOwnProperty(r)?t[r]!==o&&(t[r]=n):t[r]=o)},get(i){const r={modules:e[i]||{}};return t.hasOwnProperty(i)&&t[i]!==n&&(r.gvlid=t[i]),r}}}(),f={gdpr:a,usp:d,gpp:c,coppa:u};const g=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f;return e=Object.entries(e),Object.assign({get promise(){return r.k.all(e.map((e=>{let[t,n]=e;return n.promise.then((e=>[t,e]))}))).then((e=>Object.fromEntries(e)))},get hash(){return(0,i.PB)(e.map((e=>{let[t,n]=e;return n.hash})).join(":"))}},Object.fromEntries(["getConsentData","getConsentMeta","reset"].map((t=>{return[t,(n=t,function(){return Object.fromEntries(e.map((e=>{let[t,i]=e;return[t,i[n]()]})))})];var n}))))}()},8969:(e,t,n)=>{n.d(t,{IY:()=>A,M:()=>r,RW:()=>g,Tf:()=>h,UE:()=>c,XQ:()=>o,Zh:()=>l,_B:()=>v,as:()=>a,cA:()=>d,h0:()=>m,iD:()=>i,jO:()=>b,nl:()=>E,oA:()=>y,qY:()=>s,tl:()=>p,x5:()=>f,xS:()=>u});const i={PL_CODE:"code",PL_SIZE:"sizes",PL_BIDS:"bids",BD_BIDDER:"bidder",BD_ID:"paramsd",BD_PL_ID:"placementId",ADSERVER_TARGETING:"adserverTargeting",BD_SETTING_STANDARD:"standard"},r="pbjs_debug",o={GOOD:1},s={AUCTION_INIT:"auctionInit",AUCTION_TIMEOUT:"auctionTimeout",AUCTION_END:"auctionEnd",BID_ADJUSTMENT:"bidAdjustment",BID_TIMEOUT:"bidTimeout",BID_REQUESTED:"bidRequested",BID_RESPONSE:"bidResponse",BID_REJECTED:"bidRejected",NO_BID:"noBid",SEAT_NON_BID:"seatNonBid",BID_WON:"bidWon",BIDDER_DONE:"bidderDone",BIDDER_ERROR:"bidderError",SET_TARGETING:"setTargeting",BEFORE_REQUEST_BIDS:"beforeRequestBids",BEFORE_BIDDER_HTTP:"beforeBidderHttp",REQUEST_BIDS:"requestBids",ADD_AD_UNITS:"addAdUnits",AD_RENDER_FAILED:"adRenderFailed",AD_RENDER_SUCCEEDED:"adRenderSucceeded",TCF2_ENFORCEMENT:"tcf2Enforcement",AUCTION_DEBUG:"auctionDebug",BID_VIEWABLE:"bidViewable",STALE_RENDER:"staleRender",EXPIRED_RENDER:"expiredRender",BILLABLE_EVENT:"billableEvent",BID_ACCEPTED:"bidAccepted",RUN_PAAPI_AUCTION:"paapiRunAuction",PBS_ANALYTICS:"pbsAnalytics",PAAPI_BID:"paapiBid",PAAPI_NO_BID:"paapiNoBid",PAAPI_ERROR:"paapiError"},a={PREVENT_WRITING_ON_MAIN_DOCUMENT:"preventWritingOnMainDocument",NO_AD:"noAd",EXCEPTION:"exception",CANNOT_FIND_AD:"cannotFindAd",MISSING_DOC_OR_ADID:"missingDocOrAdid"},d={bidWon:"adUnitCode"},c={LOW:"low",MEDIUM:"medium",HIGH:"high",AUTO:"auto",DENSE:"dense",CUSTOM:"custom"},u={BIDDER:"hb_bidder",AD_ID:"hb_adid",PRICE_BUCKET:"hb_pb",SIZE:"hb_size",DEAL:"hb_deal",SOURCE:"hb_source",FORMAT:"hb_format",UUID:"hb_uuid",CACHE_ID:"hb_cache_id",CACHE_HOST:"hb_cache_host",ADOMAIN:"hb_adomain",ACAT:"hb_acat",CRID:"hb_crid",DSP:"hb_dsp"},l={BIDDER:"hb_bidder",AD_ID:"hb_adid",PRICE_BUCKET:"hb_pb",SIZE:"hb_size",DEAL:"hb_deal",FORMAT:"hb_format",UUID:"hb_uuid",CACHE_HOST:"hb_cache_host"},f={title:"hb_native_title",body:"hb_native_body",body2:"hb_native_body2",privacyLink:"hb_native_privacy",privacyIcon:"hb_native_privicon",sponsoredBy:"hb_native_brand",image:"hb_native_image",icon:"hb_native_icon",clickUrl:"hb_native_linkurl",displayUrl:"hb_native_displayurl",cta:"hb_native_cta",rating:"hb_native_rating",address:"hb_native_address",downloads:"hb_native_downloads",likes:"hb_native_likes",phone:"hb_native_phone",price:"hb_native_price",salePrice:"hb_native_saleprice",rendererUrl:"hb_renderer_url",adTemplate:"hb_adTemplate"},g={SRC:"s2s",DEFAULT_ENDPOINT:"https://prebid.adnxs.com/pbs/v1/openrtb2/auction",SYNCED_BIDDERS_KEY:"pbjsSyncs"},p={BID_TARGETING_SET:"targetingSet",RENDERED:"rendered",BID_REJECTED:"bidRejected"},h={INVALID:"Bid has missing or invalid properties",INVALID_REQUEST_ID:"Invalid request ID",BIDDER_DISALLOWED:"Bidder code is not allowed by allowedAlternateBidderCodes / allowUnknownBidderCodes",FLOOR_NOT_MET:"Bid does not meet price floor",CANNOT_CONVERT_CURRENCY:"Unable to convert currency",DSA_REQUIRED:"Bid does not provide required DSA transparency info",DSA_MISMATCH:"Bid indicates inappropriate DSA rendering method",PRICE_TOO_HIGH:"Bid price exceeds maximum value"},m={body:"desc",body2:"desc2",sponsoredBy:"sponsored",cta:"ctatext",rating:"rating",address:"address",downloads:"downloads",likes:"likes",phone:"phone",price:"price",salePrice:"saleprice",displayUrl:"displayurl"},b={sponsored:1,desc:2,rating:3,likes:4,downloads:5,price:6,saleprice:7,phone:8,address:9,desc2:10,displayurl:11,ctatext:12},y={ICON:1,MAIN:3},v=["privacyIcon","clickUrl","sendTargetingKeys","adTemplate","rendererUrl","type"],E={REQUEST:"Prebid Request",RESPONSE:"Prebid Response",NATIVE:"Prebid Native",EVENT:"Prebid Event"},A="__pb_locator__"},6833:(e,t,n)=>{n.d(t,{j:()=>f,q:()=>p});var i=n(5901),r=n(1069),o=n(3272);const s=2,a={buckets:[{max:5,increment:.5}]},d={buckets:[{max:20,increment:.1}]},c={buckets:[{max:20,increment:.01}]},u={buckets:[{max:3,increment:.01},{max:8,increment:.05},{max:20,increment:.5}]},l={buckets:[{max:5,increment:.05},{max:10,increment:.1},{max:20,increment:.5}]};function f(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=parseFloat(e);return isNaN(i)&&(i=""),{low:""===i?"":g(e,a,n),med:""===i?"":g(e,d,n),high:""===i?"":g(e,c,n),auto:""===i?"":g(e,l,n),dense:""===i?"":g(e,u,n),custom:""===i?"":g(e,t,n)}}function g(e,t,n){let a="";if(!p(t))return a;const d=t.buckets.reduce(((e,t)=>e.max>t.max?e:t),{max:0});let c=0,u=(0,i.I6)(t.buckets,(t=>{if(e>d.max*n){let e=t.precision;void 0===e&&(e=s),a=(t.max*n).toFixed(e)}else{if(e<=t.max*n&&e>=c*n)return t.min=c,t;c=t.max}}));return u&&(a=function(e,t,n){const i=void 0!==t.precision?t.precision:s,a=t.increment*n,d=t.min*n;let c=Math.floor,u=o.$W.getConfig("cpmRoundingFunction");"function"==typeof u&&(c=u);let l,f,g=Math.pow(10,i+2),p=(e*g-d*g)/(a*g);try{l=c(p)*a+d}catch(e){f=!0}(f||"number"!=typeof l)&&((0,r.JE)("Invalid rounding function passed in config"),l=Math.floor(p)*a+d);return l=Number(l.toFixed(10)),l.toFixed(i)}(e,u,n)),a}function p(e){if((0,r.Im)(e)||!e.buckets||!Array.isArray(e.buckets))return!1;let t=!0;return e.buckets.forEach((e=>{e.max&&e.increment||(t=!1)})),t}},6031:(e,t,n)=>{n.d(t,{H:()=>a,k:()=>s});var i=n(5555),r=n(1069),o=n(4595);const s=(0,n(9214).A_)("sync",(function(e){return o.G})),a=function(){const e={};return function(t){const n=s(t);return e.hasOwnProperty(n)||(e[n]=new i.k((e=>{const t=(0,r.CA)();t.srcdoc=`<script>${n}<\\/script>`,t.onload=()=>e(t.contentWindow.render),document.body.appendChild(t)}))),e[n]}}()},5023:(e,t,n)=>{n.d(t,{AU:()=>m,Ic:()=>v,kQ:()=>y,on:()=>h});var i=n(1069),r=n(8969),o=n(6853),s=n(3272);const a="eventHistoryTTL";let d=null;const c=(0,o.H)({monotonic:!0,ttl:()=>d});s.$W.getConfig(a,(e=>{const t=d;e=e?.[a],d="number"==typeof e?1e3*e:null,t!==d&&c.refresh()}));let u=Array.prototype.slice,l=Array.prototype.push,f=Object.values(r.qY);const g=r.cA,p=function(){let e={},t={};function n(e){return f.includes(e)}return t.has=n,t.on=function(t,r,o){if(n(t)){let n=e[t]||{que:[]};o?(n[o]=n[o]||{que:[]},n[o].que.push(r)):n.que.push(r),e[t]=n}else i.vV("Wrong event name : "+t+" Valid event names :"+f)},t.emit=function(t){!function(t,n){i.OG("Emitting event for: "+t);let r=n[0]||{},o=r[g[t]],s=e[t]||{que:[]};var a=Object.keys(s);let d=[];c.add({eventType:t,args:r,id:o,elapsedTime:i.V()}),o&&a.includes(o)&&l.apply(d,s[o].que),l.apply(d,s.que),(d||[]).forEach((function(e){if(e)try{e.apply(null,n)}catch(e){i.vV("Error executing handler:","events.js",e,t)}}))}(t,u.call(arguments,1))},t.off=function(t,n,r){let o=e[t];i.Im(o)||i.Im(o.que)&&i.Im(o[r])||r&&(i.Im(o[r])||i.Im(o[r].que))||(r?(o[r].que||[]).forEach((function(e){let t=o[r].que;e===n&&t.splice(t.indexOf(e),1)})):(o.que||[]).forEach((function(e){let t=o.que;e===n&&t.splice(t.indexOf(e),1)})),e[t]=o)},t.get=function(){return e},t.addEvents=function(e){f=f.concat(e)},t.getEvents=function(){return c.toArray().map((e=>Object.assign({},e)))},t}();i.cD(p.emit.bind(p));const{on:h,off:m,get:b,getEvents:y,emit:v,addEvents:E,has:A}=p},3858:(e,t,n)=>{n.d(t,{Dy:()=>r,O$:()=>s,i8:()=>o});var i=n(1069);const r=["dooh","app","site"];function o(e){return function(t){return r.reduce(((n,r)=>(s(t,r)&&(null!=n?((0,i.JE)(`${e} specifies both \'${n}\' and \'${r}\'; dropping the latter.`),delete t[r]):n=r),n)),null),t}}function s(e,t){return null!=e[t]&&Object.keys(e[t]).length>0}},9214:(e,t,n)=>{n.d(t,{A_:()=>s,Y6:()=>c,Yn:()=>d});var i=n(8128),r=n.n(i),o=n(5555);let s=r()({ready:r().SYNC|r().ASYNC|r().QUEUE});const a=(0,o.v)();s.ready=(()=>{const e=s.ready;return function(){try{return e.apply(s,arguments)}finally{a.resolve()}}})();a.promise;const d=s.get;function c(e,t){return Object.defineProperties(t,Object.fromEntries(["before","after","getHooks","removeAll"].map((t=>[t,{get:()=>e[t]}])))),t}},1371:(e,t,n)=>{n.d(t,{D4:()=>o,G_:()=>r,LM:()=>s,s6:()=>i});const i="native",r="video",o="banner",s="adpod"},2449:(e,t,n)=>{n.d(t,{Bm:()=>A,IX:()=>k,Nh:()=>l,Xj:()=>_,Zj:()=>w,gs:()=>T,l6:()=>b,mT:()=>u,nk:()=>v,vO:()=>I,yl:()=>R});var i=n(1069),r=n(5901),o=n(6881),s=n(8969),a=n(1371),d=n(9075),c=n(6031);const u=[],l=Object.keys(s.x5).map((e=>s.x5[e])),f={image:{ortb:{ver:"1.2",assets:[{required:1,id:1,img:{type:3,wmin:100,hmin:100}},{required:1,id:2,title:{len:140}},{required:1,id:3,data:{type:1}},{required:0,id:4,data:{type:2}},{required:0,id:5,img:{type:1,wmin:20,hmin:20}}]},image:{required:!0},title:{required:!0},sponsoredBy:{required:!0},clickUrl:{required:!0},body:{required:!1},icon:{required:!1}}},g=q(s.h0),p=q(s.jO),h={img:1,js:2,1:"img",2:"js"},m={impression:1,"viewable-mrc50":2,"viewable-mrc100":3,"viewable-video50":4};function b(e){return e.native&&"object"==typeof e.native}function y(e){if(e&&e.type&&function(e){if(!e||!(0,r.mK)(Object.keys(f),e))return(0,i.vV)(`${e} nativeParam is not supported`),!1;return!0}(e.type)&&(e=f[e.type]),!e||!e.ortb||E(e.ortb))return e}function v(e){e.forEach((e=>{const t=e.nativeParams||e?.mediaTypes?.native;t&&(e.nativeParams=y(t)),e.nativeParams&&(e.nativeOrtbRequest=e.nativeParams.ortb||function(e){if(!e&&!(0,i.Qd)(e))return void(0,i.vV)("Native assets object is empty or not an object: ",e);const t={ver:"1.2",assets:[]};for(let n in e){if(s._B.includes(n))continue;if(!s.x5.hasOwnProperty(n)){(0,i.vV)(`Unrecognized native asset code: ${n}. Asset will be ignored.`);continue}if("privacyLink"===n){t.privacy=1;continue}const r=e[n];let o=0;r.required&&(0,i.Lm)(r.required)&&(o=Number(r.required));const a={id:t.assets.length,required:o};if(n in s.h0)a.data={type:s.jO[s.h0[n]]},r.len&&(a.data.len=r.len);else if("icon"===n||"image"===n){if(a.img={type:"icon"===n?s.oA.ICON:s.oA.MAIN},r.aspect_ratios)if((0,i.cy)(r.aspect_ratios))if(r.aspect_ratios.length){const{min_width:e,min_height:t}=r.aspect_ratios[0];(0,i.Fq)(e)&&(0,i.Fq)(t)?(a.img.wmin=e,a.img.hmin=t):(0,i.vV)("image.aspect_ratios min_width or min_height are invalid: ",e,t);const n=r.aspect_ratios.filter((e=>e.ratio_width&&e.ratio_height)).map((e=>`${e.ratio_width}:${e.ratio_height}`));n.length>0&&(a.img.ext={aspectratios:n})}else(0,i.vV)("image.aspect_ratios was passed, but it\'s empty:",r.aspect_ratios);else(0,i.vV)("image.aspect_ratios was passed, but it\'s not a an array:",r.aspect_ratios);r.sizes&&(2===r.sizes.length&&(0,i.Fq)(r.sizes[0])&&(0,i.Fq)(r.sizes[1])?(a.img.w=r.sizes[0],a.img.h=r.sizes[1],delete a.img.hmin,delete a.img.wmin):(0,i.vV)("image.sizes was passed, but its value is not an array of integers:",r.sizes))}else"title"===n?a.title={len:r.len||140}:"ext"===n&&(a.ext=r,delete a.required);t.assets.push(a)}return t}(e.nativeParams))}))}function E(e){const t=e.assets;if(!Array.isArray(t)||0===t.length)return(0,i.vV)("assets in mediaTypes.native.ortb is not an array, or it\'s empty. Assets: ",t),!1;const n=t.map((e=>e.id));return t.length!==new Set(n).size||n.some((e=>e!==parseInt(e,10)))?((0,i.vV)("each asset object must have \'id\' property, it must be unique and it must be an integer"),!1):e.hasOwnProperty("eventtrackers")&&!Array.isArray(e.eventtrackers)?((0,i.vV)("ortb.eventtrackers is not an array. Eventtrackers: ",e.eventtrackers),!1):t.every((e=>function(e){if(!(0,i.Qd)(e))return(0,i.vV)("asset must be an object. Provided asset: ",e),!1;if(e.img){if(!(0,i.Et)(e.img.w)&&!(0,i.Et)(e.img.wmin))return(0,i.vV)("for img asset there must be \'w\' or \'wmin\' property"),!1;if(!(0,i.Et)(e.img.h)&&!(0,i.Et)(e.img.hmin))return(0,i.vV)("for img asset there must be \'h\' or \'hmin\' property"),!1}else if(e.title){if(!(0,i.Et)(e.title.len))return(0,i.vV)("for title asset there must be \'len\' property defined"),!1}else if(e.data){if(!(0,i.Et)(e.data.type))return(0,i.vV)("for data asset \'type\' property must be a number"),!1}else if(e.video&&!(Array.isArray(e.video.mimes)&&Array.isArray(e.video.protocols)&&(0,i.Et)(e.video.minduration)&&(0,i.Et)(e.video.maxduration)))return(0,i.vV)("video asset is not properly configured"),!1;return!0}(e)))}function A(e){let{index:t=o.n.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=t.getAdUnit(e);if(!n)return!1;let s=n.nativeOrtbRequest;return function(e,t){if(!e?.link?.url)return(0,i.vV)("native response doesn\'t have \'link\' property. Ortb response: ",e),!1;let n=t.assets.filter((e=>1===e.required)).map((e=>e.id)),o=e.assets.map((e=>e.id));const s=n.every((e=>(0,r.mK)(o,e)));s||(0,i.vV)(`didn\'t receive a bid with all required assets. Required ids: ${n}, but received ids in response: ${o}`);return s}(e.native?.ortb||$(e.native,s),s)}function I(e,t){const n=t.native.ortb||j(t.native);return"click"===e.action?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,{fetchURL:n=i.z$}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){const i=(e.assets||[]).filter((e=>e.link)).reduce(((e,t)=>(e[t.id]=t.link,e)),{}),r=e.link?.clicktrackers||[];let o=i[t],s=r;o&&(s=o.clicktrackers||[]),s.forEach((e=>n(e)))}else(e.link?.clicktrackers||[]).forEach((e=>n(e)))}(n,e?.assetId):function(e){let{runMarkup:t=(e=>(0,i.ro)(e)),fetchURL:n=i.z$}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=(e.eventtrackers||[]).filter((e=>e.event===m.impression));let{img:o,js:s}=r.reduce(((e,t)=>(h.hasOwnProperty(t.method)&&e[h[t.method]].push(t.url),e)),{img:[],js:[]});e.imptrackers&&(o=o.concat(e.imptrackers));o.forEach((e=>n(e))),s=s.map((e=>`<script async src="${e}"><\\/script>`)),e.jstracker&&(s=s.concat([e.jstracker]));s.length&&t(s.join("\\n"))}(n),e.action}function T(e,t){const n=t?.nativeOrtbRequest,i=e.native?.ortb;if(n&&i){const t=function(e,t){const n={},i=t?.assets||[];n.clickUrl=e.link?.url,n.privacyLink=e.privacy;for(const t of e?.assets||[]){const e=i.find((e=>t.id===e.id));t.title?n.title=t.title.text:t.img?n[e?.img?.type===s.oA.MAIN?"image":"icon"]={url:t.img.url,width:t.img.w,height:t.img.h}:t.data&&(n[g[p[e?.data?.type]]]=t.data.value)}n.impressionTrackers=[];let r=[];e.imptrackers&&n.impressionTrackers.push(...e.imptrackers);for(const t of e?.eventtrackers||[])t.event===m.impression&&t.method===h.img&&n.impressionTrackers.push(t.url),t.event===m.impression&&t.method===h.js&&r.push(t.url);r=r.map((e=>`<script async src="${e}"><\\/script>`)),e?.jstracker&&r.push(e.jstracker);r.length&&(n.javascriptTrackers=r.join("\\n"));return n}(i,n);Object.assign(e.native,t)}["rendererUrl","adTemplate"].forEach((n=>{const i=t?.nativeParams?.[n];i&&(e.native[n]=S(i))}))}function w(e){let{index:t=o.n.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};const i=t.getAdUnit(e),r=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{...s.x5,...t}}(i),d={...e.native,...e.native.ext};return delete d.ext,Object.keys(d).forEach((t=>{const o=a[t];let s=S(e.native[t])||S(e?.native?.ext?.[t]);if("adTemplate"===t||!o||!s)return;let d=i?.nativeParams?.[t]?.sendId;if("boolean"!=typeof d&&(d=i?.nativeParams?.ext?.[t]?.sendId),d){s=`${o}:${e.adId}`}let c=i?.nativeParams?.[t]?.sendTargetingKeys;"boolean"!=typeof c&&(c=i?.nativeParams?.ext?.[t]?.sendTargetingKeys);("boolean"==typeof c?c:r)&&(n[o]=s)})),n}function C(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=[];return Object.entries(e).filter((e=>{let[i,r]=e;return r&&(!1===n&&"ext"===i||null==t||t.includes(i))})).forEach((e=>{let[r,o]=e;!1===n&&"ext"===r?i.push(...C(o,t,!0)):(n||s.x5.hasOwnProperty(r))&&i.push({key:r,value:S(o)})})),i}function B(e,t,n){let{index:r=o.n.index}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const a={message:"assetResponse",adId:e.adId};let u=(0,d.vd)(t).native;return u?(a.native=Object.assign({},u),a.renderer=(0,c.k)(t),null!=n&&(u.assets=u.assets.filter((e=>{let{key:t}=e;return n.includes(t)})))):u=function(e,t,n){const r={...(0,i.SH)(e.native,["rendererUrl","adTemplate"]),assets:C(e.native,n),nativeKeys:s.x5};return e.native.ortb?r.ortb=e.native.ortb:t.mediaTypes?.native?.ortb&&(r.ortb=$(e.native,t.nativeOrtbRequest)),r}(t,r.getAdUnit(t),n),Object.assign(a,u)}const O=Object.fromEntries(Object.entries(s.x5).map((e=>{let[t,n]=e;return[n,t]})));function k(e,t){const n=e.assets.map((e=>O[e]));return B(e,t,n)}function R(e,t){return B(e,t,null)}function S(e){return e?.url||e}function D(e,t){for(;e&&t&&e!==t;)e>t?e-=t:t-=e;return e||t}function U(e){if(!E(e))return;const t={};for(const n of e.assets){if(n.title){const e={required:!!n.required&&Boolean(n.required),len:n.title.len};t.title=e}else if(n.img){const e={required:!!n.required&&Boolean(n.required)};if(n.img.w&&n.img.h)e.sizes=[n.img.w,n.img.h];else if(n.img.wmin&&n.img.hmin){const t=D(n.img.wmin,n.img.hmin);e.aspect_ratios=[{min_width:n.img.wmin,min_height:n.img.hmin,ratio_width:n.img.wmin/t,ratio_height:n.img.hmin/t}]}n.img.type===s.oA.MAIN?t.image=e:t.icon=e}else if(n.data){let e=Object.keys(s.jO).find((e=>s.jO[e]===n.data.type)),i=Object.keys(s.h0).find((t=>s.h0[t]===e));t[i]={required:!!n.required&&Boolean(n.required)},n.data.len&&(t[i].len=n.data.len)}e.privacy&&(t.privacyLink={required:!1})}return t}function _(e){{if(!e||!(0,i.cy)(e))return e;if(!e.some((e=>(e?.mediaTypes||{})[a.s6]?.ortb)))return e;let t=(0,i.Go)(e);for(const e of t)e.mediaTypes&&e.mediaTypes[a.s6]&&e.mediaTypes[a.s6].ortb&&(e.mediaTypes[a.s6]=Object.assign((0,i.Up)(e.mediaTypes[a.s6],s._B),U(e.mediaTypes[a.s6].ortb)),e.nativeParams=y(e.mediaTypes[a.s6]));return t}}function j(e){const t={link:{},eventtrackers:[]};return Object.entries(e).forEach((e=>{let[n,i]=e;switch(n){case"clickUrl":t.link.url=i;break;case"clickTrackers":t.link.clicktrackers=Array.isArray(i)?i:[i];break;case"impressionTrackers":(Array.isArray(i)?i:[i]).forEach((e=>{t.eventtrackers.push({event:m.impression,method:h.img,url:e})}));break;case"javascriptTrackers":t.jstracker=Array.isArray(i)?i.join(""):i;break;case"privacyLink":t.privacy=i}})),t}function $(e,t){const n={...j(e),assets:[]};function r(e,r){let o=t.assets.find(e);null!=o&&(o=(0,i.Go)(o),r(o),n.assets.push(o))}return Object.keys(e).filter((t=>!!e[t])).forEach((t=>{const n=S(e[t]);switch(t){case"title":r((e=>null!=e.title),(e=>{e.title={text:n}}));break;case"image":case"icon":const e="image"===t?s.oA.MAIN:s.oA.ICON;r((t=>null!=t.img&&t.img.type===e),(e=>{e.img={url:n}}));break;default:t in s.h0&&r((e=>null!=e.data&&e.data.type===s.jO[s.h0[t]]),(e=>{e.data={value:n}}))}})),n}function q(e){var t={};for(var n in e)t[e[n]]=n;return t}},5901:(e,t,n)=>{function i(e,t,n){return e&&e.includes(t,n)||!1}function r(){return Array.from.apply(Array,arguments)}function o(e,t,n){return e&&e.find(t,n)}n.d(t,{A6:()=>r,I6:()=>o,mK:()=>i})},5952:(e,t,n)=>{var i=n(7873),r=n(1069),o=n(433),s=n(3172),a=n(2449),d=n(8969),c=n(5901),u=n(9075),l=n(6031);const{REQUEST:f,RESPONSE:g,NATIVE:p,EVENT:h}=d.nl,m={[f]:function(e,t,n){(0,u.bw)({renderFn(t){e(Object.assign({message:g,renderer:(0,l.k)(n)},t))},resizeFn:y(t.adId,n),options:t.options,adId:t.adId,bidResponse:n})},[h]:function(e,t,n){if(null==n)return void(0,r.vV)(`Cannot find ad \'${t.adId}\' for x-origin event request`);if(n.status!==d.tl.RENDERED)return void(0,r.JE)(`Received x-origin event request without corresponding render request for ad \'${n.adId}\'`);return(0,u.Uc)(t,n)}};function b(){window.addEventListener("message",(function(e){!function(e){var t=e.message?"message":"data",n={};try{n=JSON.parse(e[t])}catch(e){return}if(n&&n.adId&&n.message&&m.hasOwnProperty(n.message))(0,u.$A)(n.adId,n.message===d.nl.REQUEST).then((t=>{var i,o;m[n.message]((i=n.adId,o=function(e){return null==e.origin&&0===e.ports.length?function(){const e="Cannot post message to a frame with null origin. Please update creatives to use MessageChannel, see https://github.com/prebid/Prebid.js/issues/7870";throw(0,r.vV)(e),new Error(e)}:e.ports.length>0?function(t){e.ports[0].postMessage(JSON.stringify(t))}:function(t){e.source.postMessage(JSON.stringify(t),e.origin)}}(e),function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return o(Object.assign({},e,{adId:i}),...n)}),n,t)}))}(e)}),!1)}function y(e,t){return function(n,i){!function(e){let{adId:t,adUnitCode:n,width:i,height:o}=e;function s(e){return e?e+"px":"100%"}function a(e){let i=d(t,n),r=document.getElementById(i);return r&&r.querySelector(e)}function d(e,t){return(0,r.II)()?u(e):(0,r.t1)()?l(t):t}function u(e){const t=(0,c.I6)(window.googletag.pubads().getSlots(),(t=>(0,c.I6)(t.getTargetingKeys(),(n=>(0,c.mK)(t.getTargeting(n),e)))));return t?t.getSlotElementId():null}function l(e){let t=window.apntag.getTag(e);return t&&t.targetId}["div","iframe"].forEach((e=>{let t=a(e+\':not([style*="display: none"])\');if(t){let e=t.style;e.width=s(i),e.height=s(o)}else(0,r.vV)(`Unable to locate matching page element for adUnitCode ${n}. Can\'t resize it to ad\'s dimensions. Please review setup.`)}))}({...t,width:n,height:i,adId:e})}}Object.assign(m,{[p]:function(e,t,n){if(null==n)return void(0,r.vV)(`Cannot find ad for x-origin event request: \'${t.adId}\'`);switch(t.action){case"assetRequest":(0,u.Hh)(n,(()=>e((0,a.IX)(t,n))));break;case"allAssetRequest":(0,u.Hh)(n,(()=>e((0,a.yl)(t,n))));break;default:(0,u.vW)(t,n,{resizeFn:y(t.adId,n)}),(0,u.Pk)(n)}}});var v=n(8230),E=n(3272),A=n(6881),I=n(7779),T=n(9214),w=n(3597),C=n(1580),B=n(5555),O=n(5569);const k="__pbjs_debugging__";function R(){return(0,i.m)().installedModules.includes("debugging")}function S(e){return new B.k((t=>{(0,C.R)(e,O.tp,"debugging",t)}))}function D(){let{alreadyInstalled:e=R,script:t=S}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null;return function(){return null==n&&(n=new B.k(((n,o)=>{setTimeout((()=>{if(e())n();else{const e="https://cdn.jsdelivr.net/npm/prebid.js@9.23.0/dist/debugging-standalone.js";(0,r.OG)(`Debugging module not installed, loading it from "${e}"...`),(0,i.m)()._installDebugging=!0,t(e).then((()=>{(0,i.m)()._installDebugging({DEBUG_KEY:k,hook:T.A_,config:E.$W,createBid:w.O,logger:(0,r.h0)("DEBUG:")})})).then(n,o)}}))}))),n}}const U=function(){let{load:e=D(),hook:t=(0,T.Yn)("requestBids")}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null,i=!1;function r(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];return(n||B.k.resolve()).then((()=>e.apply(this,i)))}function o(){t.getHooks({hook:r}).remove(),i=!1}return{enable:function(){i||(n=e(),t.before(r,99),i=!0)},disable:o,reset:function(){n=null,o()}}}();U.reset;E.$W.getConfig("debugging",(function(e){let{debugging:t}=e;t?.enabled?U.enable():U.disable()}));var _=n(2938),j=n(8046),$=n(5023),q=n(6894),x=n(7934);const N=(0,_.CK)("fpdEnrichment"),W=(0,r.Bj)((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.host;if(!N.cookiesAreEnabled())return e;const t=e.split(".");if(2===t.length)return e;let n,i,o=-2;const s=`_rdc${Date.now()}`,a="writeable";do{n=t.slice(o).join(".");let e=new Date((0,r.vE)()+1e4).toUTCString();N.setCookie(s,a,e,"Lax",n,void 0);N.getCookie(s,void 0)===a?(i=!1,N.setCookie(s,"","Thu, 01 Jan 1970 00:00:01 GMT",void 0,n,void 0)):(o+=-1,i=Math.abs(o)<=t.length)}while(i);return n})),P=["architecture","bitness","model","platformVersion","fullVersionList"],V=["brands","mobile","platform"],M=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.navigator?.userAgentData;const t=e&&V.some((t=>void 0!==e[t]))?Object.freeze(F(1,e)):null;return function(){return t}}(),G=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.navigator?.userAgentData;const t={},n=new WeakMap;return function(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:P;if(!n.has(i)){const e=Array.from(i);e.sort(),n.set(i,e.join("|"))}const o=n.get(i);if(!t.hasOwnProperty(o))try{t[o]=e.getHighEntropyValues(i).then((e=>(0,r.Im)(e)?null:Object.freeze(F(2,e)))).catch((()=>null))}catch(e){t[o]=B.k.resolve(null)}return t[o]}}();function F(e,t){function n(e,t){const n={brand:e};return(0,r.O8)(t)&&!(0,r.xQ)(t)&&(n.version=t.split(".")),n}const i={source:e};return t.platform&&(i.platform=n(t.platform,t.platformVersion)),(t.fullVersionList||t.brands)&&(i.browsers=(t.fullVersionList||t.brands).map((e=>{let{brand:t,version:i}=e;return n(t,i)}))),void 0!==t.mobile&&(i.mobile=t.mobile?1:0),["model","bitness","architecture"].forEach((e=>{const n=t[e];(0,r.O8)(n)&&(i[e]=n)})),i}var H=n(3858),L=n(5139),z=n(3441),J=n(6811);const K={getRefererInfo:x.EN,findRootDomain:W,getWindowTop:r.mb,getWindowSelf:r.l4,getHighEntropySUA:G,getLowEntropySUA:M},Q=(0,H.i8)("FPD"),Y=(0,T.A_)("sync",(e=>{const t=[e,Z().catch((()=>null)),B.k.resolve("cookieDeprecationLabel"in navigator&&(0,L.io)(J.Ue,(0,z.s)(O.tp,"cdep"))&&navigator.cookieDeprecationLabel.getValue()).catch((()=>null))];return B.k.all(t).then((e=>{let[t,n,i]=e;const o=K.getRefererInfo();if(Object.entries(te).forEach((e=>{let[n,i]=e;const s=i(t,o);s&&Object.keys(s).length>0&&(t[n]=(0,r.D9)({},s,t[n]))})),n&&(0,s.J)(t,"device.sua",Object.assign({},n,t.device.sua)),i){const e={cdep:i};(0,s.J)(t,"device.ext",Object.assign({},e,t.device.ext))}t=Q(t);for(let e of H.Dy)if((0,H.O$)(t,e)){t[e]=(0,r.D9)({},ne(t,o),t[e]);break}return t}))}));function X(e){try{return e(K.getWindowTop())}catch(t){return e(K.getWindowSelf())}}function Z(){const e=E.$W.getConfig("firstPartyData.uaHints");return Array.isArray(e)&&0!==e.length?K.getHighEntropySUA(e):B.k.resolve(K.getLowEntropySUA())}function ee(e){return(0,r.SH)(e,Object.keys(e))}const te={site(e,t){if(!H.Dy.filter((e=>"site"!==e)).some(H.O$.bind(null,e)))return ee({page:t.page,ref:t.ref})},device:()=>X((e=>{const t=e.screen.width,n=e.screen.height,i=e.innerWidth||e.document.documentElement.clientWidth||e.document.body.clientWidth,o=e.innerHeight||e.document.documentElement.clientHeight||e.document.body.clientHeight,a={w:t,h:n,dnt:(0,r.l9)()?1:0,ua:e.navigator.userAgent,language:e.navigator.language.split("-").shift(),ext:{vpw:i,vph:o}};return e.navigator?.webdriver&&(0,s.J)(a,"ext.webdriver",!0),a})),regs(){const e={};X((e=>e.navigator.globalPrivacyControl))&&(0,s.J)(e,"ext.gpc","1");const t=E.$W.getConfig("coppa");return"boolean"==typeof t&&(e.coppa=t?1:0),e}};function ne(e,t){const n=(0,x.gR)(t.page,{noLeadingWww:!0}),i=X((e=>e.document.querySelector("meta[name=\'keywords\']")))?.content?.replace?.(/\\s/g,"");return ee({domain:n,keywords:i,publisher:ee({domain:K.findRootDomain(n)})})}var ie=n(6916),re=n(2713),oe=n(3895);const se=new Map([["format",e=>Array.isArray(e)&&e.length>0&&e.every((e=>"object"==typeof e))],["w",r.Fq],["h",r.Fq],["btype",r.Uu],["battr",r.Uu],["pos",r.Fq],["mimes",e=>Array.isArray(e)&&e.length>0&&e.every((e=>"string"==typeof e))],["topframe",e=>[1,0].includes(e)],["expdir",r.Uu],["api",r.Uu],["id",r.O8],["vcm",e=>[1,0].includes(e)]]);var ae=n(1371);const de=(0,i.m)(),{triggerUserSyncs:ce}=v.zt,{ADD_AD_UNITS:ue,REQUEST_BIDS:le,SET_TARGETING:fe}=d.qY,ge={bidWon:function(e){if(!A.n.getBidsRequested().map((e=>e.bids.map((e=>e.adUnitCode)))).reduce(r.Bq).filter(r.hj).includes(e))return void(0,r.vV)(\'The "\'+e+\'" placement is not defined.\');return!0}};function pe(e,t){let n=[];return(0,r.cy)(e)&&(t?e.length===t:e.length>0)&&(e.every((e=>(0,r.Uu)(e,2)))?n=e:(0,r.Uu)(e,2)&&n.push(e)),n}function he(e,t){const n=(0,o.A)(e,`ortb2Imp.${t}`),i=(0,o.A)(e,`mediaTypes.${t}`);if(!n&&!i)return;const a={[ae.G_]:oe.Zy,[ae.D4]:se}[t];a&&[...a].forEach((n=>{let[i,a]=n;const d=(0,o.A)(e,`mediaTypes.${t}.${i}`),c=(0,o.A)(e,`ortb2Imp.${t}.${i}`);null==d&&null==c||(null==d?(0,s.J)(e,`mediaTypes.${t}.${i}`,c):null==c?(0,s.J)(e,`ortb2Imp.${t}.${i}`,d):((0,r.JE)(`adUnit ${e.code}: specifies conflicting ortb2Imp.${t}.${i} and mediaTypes.${t}.${i}, the latter will be ignored`,e),(0,s.J)(e,`mediaTypes.${t}.${i}`,c)))}))}function me(e){const t=(0,r.Go)(e),n=t.mediaTypes.banner,i=pe(n.sizes);return i.length>0?(n.sizes=i,t.sizes=i):((0,r.vV)("Detected a mediaTypes.banner object without a proper sizes field. Please ensure the sizes are listed like: [[300, 250], ...]. Removing invalid mediaTypes.banner object from request."),delete t.mediaTypes.banner),he(t,"banner"),t}function be(e){const t=(0,r.Go)(e),n=t.mediaTypes.video;if(n.playerSize){let e="number"==typeof n.playerSize[0]?2:1;const i=pe(n.playerSize,e);i.length>0?(2===e&&(0,r.fH)("Transforming video.playerSize from [640,480] to [[640,480]] so it\'s in the proper format."),n.playerSize=i,t.sizes=i):((0,r.vV)("Detected incorrect configuration of mediaTypes.video.playerSize. Please specify only one set of dimensions in a format like: [[640, 480]]. Removing invalid mediaTypes.video.playerSize property from request."),delete t.mediaTypes.video.playerSize)}return(0,oe.aP)(t),he(t,"video"),t}function ye(e){function t(t){return(0,r.vV)(`Error in adUnit "${e.code}": ${t}. Removing native request from ad unit`,e),delete i.mediaTypes.native,i}function n(e){for(const t of["sendTargetingKeys","types"])if(o.hasOwnProperty(t)){const n=e(t);if(n)return n}}const i=(0,r.Go)(e),o=i.mediaTypes.native;if(o.ortb){if(o.ortb.assets?.some((e=>!(0,r.Et)(e.id)||e.id<0||e.id%1!=0)))return t("native asset ID must be a nonnegative integer");if(n((e=>t(`ORTB native requests cannot specify "${e}"`))))return i;const e=Object.keys(d.x5).filter((e=>d.x5[e].includes("hb_native_"))),s=Object.keys(o).filter((t=>e.includes(t)));s.length>0&&((0,r.vV)(`when using native OpenRTB format, you cannot use legacy native properties. Deleting ${s} keys from request.`),s.forEach((e=>delete i.mediaTypes.native[e])))}else n((e=>`mediaTypes.native.${e} is deprecated, consider using native ORTB instead`));return o.image&&o.image.sizes&&!Array.isArray(o.image.sizes)&&((0,r.vV)("Please use an array of sizes for native.image.sizes field. Removing invalid mediaTypes.native.image.sizes property from request."),delete i.mediaTypes.native.image.sizes),o.image&&o.image.aspect_ratios&&!Array.isArray(o.image.aspect_ratios)&&((0,r.vV)("Please use an array of sizes for native.image.aspect_ratios field. Removing invalid mediaTypes.native.image.aspect_ratios property from request."),delete i.mediaTypes.native.image.aspect_ratios),o.icon&&o.icon.sizes&&!Array.isArray(o.icon.sizes)&&((0,r.vV)("Please use an array of sizes for native.icon.sizes field. Removing invalid mediaTypes.native.icon.sizes property from request."),delete i.mediaTypes.native.icon.sizes),i}function ve(e,t){let n=e?.mediaTypes?.[t]?.pos;if(!(0,r.Et)(n)||isNaN(n)||!isFinite(n)){let n=`Value of property \'pos\' on ad unit ${e.code} should be of type: Number`;(0,r.JE)(n),delete e.mediaTypes[t].pos}return e}function Ee(e){const t=t=>`adUnit.code \'${e.code}\' ${t}`,n=e.mediaTypes,i=e.bids;return null==i||(0,r.cy)(i)?null==i&&null==e.ortb2Imp?((0,r.vV)(t("has no \'adUnit.bids\' and no \'adUnit.ortb2Imp\'. Removing adUnit from auction")),null):n&&0!==Object.keys(n).length?(null==e.ortb2Imp||null!=i&&0!==i.length||(e.bids=[{bidder:null}],(0,r.OG)(t("defines \'adUnit.ortb2Imp\' with no \'adUnit.bids\'; it will be seen only by S2S adapters"))),e):((0,r.vV)(t("does not define a \'mediaTypes\' object. This is a required field for the auction, so this adUnit has been removed.")),null):((0,r.vV)(t("defines \'adUnit.bids\' that is not an array. Removing adUnit from auction")),null)}!function(){let e=null;try{e=window.sessionStorage}catch(e){}if(null!==e){let t=U,n=null;try{n=e.getItem(k)}catch(e){}null!==n&&t.enable()}}(),de.bidderSettings=de.bidderSettings||{},de.libLoaded=!0,de.version="v9.23.0",(0,r.fH)("Prebid.js v9.23.0 loaded"),de.installedModules=de.installedModules||[],de.adUnits=de.adUnits||[],de.triggerUserSyncs=ce;const Ae={validateAdUnit:Ee,validateBannerMediaType:me,validateSizes:pe};Object.assign(Ae,{validateNativeMediaType:ye}),Object.assign(Ae,{validateVideoMediaType:be});const Ie=(0,T.A_)("sync",(function(e){const t=[];return e.forEach((e=>{if(null==(e=Ee(e)))return;const n=e.mediaTypes;let i,r,o;n.banner&&(i=me(e),n.banner.hasOwnProperty("pos")&&(i=ve(i,"banner"))),n.video&&(r=be(i||e),n.video.hasOwnProperty("pos")&&(r=ve(r,"video"))),n.native&&(o=ye(r||(i||e)));const s=Object.assign({},i,r,o);t.push(s)})),t}),"checkAdUnitSetup");function Te(e){const t=A.n[e]().filter((e=>A.n.getAdUnitCodes().includes(e.adUnitCode))),n=A.n.getLastAuctionId();return t.map((e=>e.adUnitCode)).filter(r.hj).map((e=>t.filter((t=>t.auctionId===n&&t.adUnitCode===e)))).filter((e=>e&&e[0]&&e[0].adUnitCode)).map((e=>({[e[0].adUnitCode]:{bids:e}}))).reduce(((e,t)=>Object.assign(e,t)),{})}de.getAdserverTargetingForAdUnitCodeStr=function(e){if((0,r.fH)("Invoking pbjs.getAdserverTargetingForAdUnitCodeStr",arguments),e){var t=de.getAdserverTargetingForAdUnitCode(e);return(0,r.$D)(t)}(0,r.OG)("Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode")},de.getHighestUnusedBidResponseForAdUnitCode=function(e){if(e){const t=A.n.getAllBidsForAdUnitCode(e).filter(I.Yl);return t.length?t.reduce(re.Vk):{}}(0,r.OG)("Need to call getHighestUnusedBidResponseForAdUnitCode with adunitCode")},de.getAdserverTargetingForAdUnitCode=function(e){return de.getAdserverTargeting(e)[e]},de.getAdserverTargeting=function(e){return(0,r.fH)("Invoking pbjs.getAdserverTargeting",arguments),I.iS.getAllTargeting(e)},de.getConsentMetadata=function(){return(0,r.fH)("Invoking pbjs.getConsentMetadata"),ie.SL.getConsentMeta()},de.getNoBids=function(){return(0,r.fH)("Invoking pbjs.getNoBids",arguments),Te("getNoBids")},de.getNoBidsForAdUnitCode=function(e){return{bids:A.n.getNoBids().filter((t=>t.adUnitCode===e))}},de.getBidResponses=function(){return(0,r.fH)("Invoking pbjs.getBidResponses",arguments),Te("getBidsReceived")},de.getBidResponsesForAdUnitCode=function(e){return{bids:A.n.getBidsReceived().filter((t=>t.adUnitCode===e))}},de.setTargetingForGPTAsync=function(e,t){(0,r.fH)("Invoking pbjs.setTargetingForGPTAsync",arguments),(0,r.II)()?I.iS.setTargetingForGPT(e,t):(0,r.vV)("window.googletag is not defined on the page")},de.setTargetingForAst=function(e){(0,r.fH)("Invoking pbjs.setTargetingForAn",arguments),I.iS.isApntagDefined()?(I.iS.setTargetingForAst(e),$.Ic(fe,I.iS.getAllTargeting())):(0,r.vV)("window.apntag is not defined on the page")},de.renderAd=(0,T.A_)("async",(function(e,t,n){(0,r.fH)("Invoking pbjs.renderAd",arguments),(0,r.OG)("Calling renderAd with adId :"+t),(0,u.BS)(e,t,n)})),de.removeAdUnit=function(e){if((0,r.fH)("Invoking pbjs.removeAdUnit",arguments),!e)return void(de.adUnits=[]);let t;t=(0,r.cy)(e)?e:[e],t.forEach((e=>{for(let t=de.adUnits.length-1;t>=0;t--)de.adUnits[t].code===e&&de.adUnits.splice(t,1)}))},de.requestBids=function(){const e=(0,T.A_)("async",(function(){let{bidsBackHandler:e,timeout:t,adUnits:n,adUnitCodes:i,labels:o,auctionId:s,ttlBuffer:a,ortb2:d,metrics:u,defer:l}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};$.Ic(le);const f=t||E.$W.getConfig("bidderTimeout");(0,r.fH)("Invoking pbjs.requestBids",arguments),null==i||Array.isArray(i)||(i=[i]),i&&i.length?n=n.filter((e=>(0,c.mK)(i,e.code))):i=n&&n.map((e=>e.code)),i=i.filter(r.hj);const g={global:(0,r.D9)({},E.$W.getAnyConfig("ortb2")||{},d||{}),bidder:Object.fromEntries(Object.entries(E.$W.getBidderConfig()).map((e=>{let[t,n]=e;return[t,(0,r.Go)(n.ortb2)]})).filter((e=>{let[t,n]=e;return null!=n})))};return Y(B.k.resolve(g.global)).then((t=>(g.global=t,we({bidsBackHandler:e,timeout:f,adUnits:n,adUnitCodes:i,labels:o,auctionId:s,ttlBuffer:a,ortb2Fragments:g,metrics:u,defer:l}))))}),"requestBids");return(0,T.Y6)(e,(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.adUnits||de.adUnits;return t.adUnits=(0,r.cy)(n)?n.slice():[n],t.metrics=(0,q.K7)(),t.metrics.checkpoint("requestBids"),t.defer=(0,B.v)({promiseFactory:e=>new Promise(e)}),e.call(this,t),t.defer.promise}))}();const we=(0,T.A_)("async",(function(){let{bidsBackHandler:e,timeout:t,adUnits:n,ttlBuffer:i,adUnitCodes:o,labels:a,auctionId:d,ortb2Fragments:u,metrics:l,defer:f}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const g=(0,j.pX)(E.$W.getConfig("s2sConfig")||[]);function p(t,n,i){if("function"==typeof e)try{e(t,n,i)}catch(e){(0,r.vV)("Error executing bidsBackHandler",null,e)}f.resolve({bids:t,timedOut:n,auctionId:i})}!function(e){e.forEach((e=>(0,oe.V0)(e)))}(n),n=(0,q.BO)(l).measureTime("requestBids.validate",(()=>Ie(n)));const h={};if(n.forEach((e=>{const t=Object.keys(e.mediaTypes||{banner:"banner"}),n=e.bids.map((e=>e.bidder)),o=j.Ay.bidderRegistry,s=n.filter((e=>!g.has(e)));e.adUnitId=(0,r.lk)();const a=e.ortb2Imp?.ext?.tid;a&&(h.hasOwnProperty(e.code)?(0,r.JE)(`Multiple distinct ortb2Imp.ext.tid were provided for twin ad units \'${e.code}\'`):h[e.code]=a),null==i||e.hasOwnProperty("ttlBuffer")||(e.ttlBuffer=i),s.forEach((n=>{const i=o[n],s=i&&i.getSpec&&i.getSpec(),a=s&&s.supportedMediaTypes||["banner"];t.some((e=>(0,c.mK)(a,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||h[e.code]||(0,r.lk)();h.hasOwnProperty(e.code)||(h[e.code]=t),e.transactionId=t,(0,s.J)(e,"ortb2Imp.ext.tid",t)}));const e=A.n.createAuction({adUnits:n,adUnitCodes:o,callback:p,cbTimeout:t,labels:a,auctionId:d,ortb2Fragments:u,metrics:l});let i=n.length;i>15&&(0,r.fH)(`Current auction ${e.getAuctionId()} contains ${i} adUnits.`,n),o.forEach((t=>I.iS.setLatestAuctionForAdUnit(t,e.getAuctionId()))),e.callBids()}else(0,r.OG)("No adUnits configured. No bids requested."),p()}),"startAuction");de.requestBids.before((function(e,t){function n(e){for(var t;t=e.shift();)t()}n(_.s0),n(Ce),e.call(this,t)}),49),de.addAdUnits=function(e){(0,r.fH)("Invoking pbjs.addAdUnits",arguments),de.adUnits.push.apply(de.adUnits,(0,r.cy)(e)?e:[e]),$.Ic(ue)},de.onEvent=function(e,t,n){(0,r.fH)("Invoking pbjs.onEvent",arguments),(0,r.fp)(t)?!n||ge[e].call(null,n)?$.on(e,t,n):(0,r.vV)(\'The id provided is not valid for event "\'+e+\'" and no handler was set.\'):(0,r.vV)(\'The event handler provided is not a function and was not set on event "\'+e+\'".\')},de.offEvent=function(e,t,n){(0,r.fH)("Invoking pbjs.offEvent",arguments),n&&!ge[e].call(null,n)||$.AU(e,t,n)},de.getEvents=function(){return(0,r.fH)("Invoking pbjs.getEvents"),$.kQ()},de.registerBidAdapter=function(e,t){(0,r.fH)("Invoking pbjs.registerBidAdapter",arguments);try{j.Ay.registerBidAdapter(e(),t)}catch(e){(0,r.vV)("Error registering bidder adapter : "+e.message)}},de.registerAnalyticsAdapter=function(e){(0,r.fH)("Invoking pbjs.registerAnalyticsAdapter",arguments);try{j.Ay.registerAnalyticsAdapter(e)}catch(e){(0,r.vV)("Error registering analytics adapter : "+e.message)}},de.createBid=function(e){return(0,r.fH)("Invoking pbjs.createBid",arguments),(0,w.O)(e)};const Ce=[],Be=(0,T.A_)("async",(function(e){e&&!(0,r.Im)(e)?((0,r.fH)("Invoking pbjs.enableAnalytics for: ",e),j.Ay.enableAnalytics(e)):(0,r.vV)("pbjs.enableAnalytics should be called with option {}")}),"enableAnalyticsCb");function Oe(e){if("function"==typeof e)try{e.call()}catch(e){(0,r.vV)("Error processing command :",e.message,e.stack)}else(0,r.vV)("Commands written into pbjs.cmd.push must be wrapped in a function")}function ke(e){e.forEach((function(e){if(void 0===e.called)try{e.call(),e.called=!0}catch(e){(0,r.vV)("Error processing command :","prebid.js",e)}}))}de.enableAnalytics=function(e){Ce.push(Be.bind(this,e))},de.aliasBidder=function(e,t,n){(0,r.fH)("Invoking pbjs.aliasBidder",arguments),e&&t?j.Ay.aliasBidAdapter(e,t,n):(0,r.vV)("bidderCode and alias must be passed as arguments","pbjs.aliasBidder")},de.aliasRegistry=j.Ay.aliasRegistry,E.$W.getConfig("aliasRegistry",(e=>{"private"===e.aliasRegistry&&delete de.aliasRegistry})),de.getAllWinningBids=function(){return A.n.getAllWinningBids()},de.getAllPrebidWinningBids=function(){return A.n.getBidsReceived().filter((e=>e.status===d.tl.BID_TARGETING_SET))},de.getHighestCpmBids=function(e){return I.iS.getWinningBids(e)},de.clearAllAuctions=function(){A.n.clearAllAuctions()},de.markWinningBidAsUsed=function(e){let t,{adId:n,adUnitCode:i,analytics:o=!1}=e;i&&null==n?t=I.iS.getWinningBids(i):n?t=A.n.getBidsReceived().filter((e=>e.adId===n)):(0,r.JE)("Improper use of markWinningBidAsUsed. It needs an adUnitCode or an adId to function."),t.length>0&&(o?(0,u.n6)(t[0]):A.n.addWinningBid(t[0]),(0,u.qn)(t[0]))},de.getConfig=E.$W.getAnyConfig,de.readConfig=E.$W.readAnyConfig,de.mergeConfig=E.$W.mergeConfig,de.mergeBidderConfig=E.$W.mergeBidderConfig,de.setConfig=E.$W.setConfig,de.setBidderConfig=E.$W.setBidderConfig,de.que.push((()=>b())),de.processQueue=function(){de.que.push=de.cmd.push=Oe,(0,u.XO)(),T.A_.ready(),ke(de.que),ke(de.cmd)},de.triggerBilling=e=>{let{adId:t,adUnitCode:n}=e;A.n.getAllWinningBids().filter((e=>e.adId===t||null==t&&e.adUnitCode===n)).forEach((e=>{j.Ay.triggerBilling(e),(0,u.vB)(e)}))}},7873:(e,t,n)=>{n.d(t,{E:()=>s,m:()=>o});const i=window,r=i.pbjs=i.pbjs||{};function o(){return r}function s(e){r.installedModules.push(e)}r.cmd=r.cmd||[],r.que=r.que||[],i===window&&(i._pbjsGlobals=i._pbjsGlobals||[],i._pbjsGlobals.push("pbjs"))},7934:(e,t,n)=>{n.d(t,{EN:()=>d,gR:()=>s});var i=n(3272),r=n(1069);function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;if(!e)return e;if(/\\w+:\\/\\//.exec(e))return e;let n=t.location.protocol;try{n=t.top.location.protocol}catch(e){}return/^\\/\\//.exec(e)?n+e:`${n}//${e}`}function s(e){let{noLeadingWww:t=!1,noPort:n=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{e=new URL(o(e))}catch(e){return}return e=n?e.hostname:e.host,t&&e.startsWith("www.")&&(e=e.substring(4)),e}function a(e){try{const t=e.querySelector("link[rel=\'canonical\']");if(null!==t)return t.href}catch(e){}return null}const d=function(e){let t,n,i,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;return r.top!==r?e:function(){const o=a(r.document),s=r.location.href;return t===o&&s===n||(t=o,n=s,i=e()),i}}((c=window,function(){const e=[],t=function(e){try{if(!e.location.ancestorOrigins)return;return e.location.ancestorOrigins}catch(e){}}(c),n=i.$W.getConfig("maxNestedIframes");let d,u,l,f,g=!1,p=0,h=!1,m=!1,b=!1;do{const n=d,i=m;let o,s=!1,f=null;m=!1,d=d?d.parent:c;try{o=d.location.href||null}catch(e){s=!0}if(s)if(i){const e=n.context;try{f=e.sourceUrl,u=f,b=!0,h=!0,d===c.top&&(g=!0),e.canonicalUrl&&(l=e.canonicalUrl)}catch(e){}}else{(0,r.JE)("Trying to access cross domain iframe. Continuing without referrer and location");try{const e=n.document.referrer;e&&(f=e,d===c.top&&(g=!0))}catch(e){}!f&&t&&t[p-1]&&(f=t[p-1],d===c.top&&(b=!0)),f&&!h&&(u=f)}else{if(o&&(f=o,u=f,h=!1,d===c.top)){g=!0;const e=a(d.document);e&&(l=e)}d.context&&d.context.sourceUrl&&(m=!0)}e.push(f),p++}while(d!==c.top&&p<n);e.reverse();try{f=c.top.document.referrer}catch(e){}const y=g||b?u:null,v=i.$W.getConfig("pageUrl")||l||null;let E=i.$W.getConfig("pageUrl")||y||o(v,c);return y&&y.indexOf("?")>-1&&-1===E.indexOf("?")&&(E=`${E}${y.substring(y.indexOf("?"))}`),{reachedTop:g,isAmp:h,numIframes:p-1,stack:e,topmostLocation:u||null,location:y,canonicalUrl:v,page:E,domain:s(E)||null,ref:f||null,legacy:{reachedTop:g,isAmp:h,numIframes:p-1,stack:e,referer:u||null,canonicalUrl:v}}}));var c},2938:(e,t,n)=>{n.d(t,{CK:()=>b,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),u=n(8046),l=n(3441);const f="html5",g="cookie";let p=[];function h(){let{moduleName:e,moduleType:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{isAllowed:n=s.io}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};function r(i,r){let s=e;const f=c.$W.getCurrentBidder();f&&t===o.tW&&u.Ay.aliasRegistry[f]===e&&(s=f);return i({valid:n(d.Ue,(0,l.s)(t,s,{[a.Zw]:r}))})}function h(e,t,n){if(!n||"function"!=typeof n)return r(e,t);p.push((function(){let i=r(e,t);n(i)}))}function m(e){const t=e.charAt(0).toUpperCase()+e.substring(1),n=()=>window[e],r=function(t){return h((function(t){if(t&&t.valid)try{return!!n()}catch(t){(0,i.vV)(`${e} api disabled`)}return!1}),f,t)};return{[`has${t}`]:r,[`${e}IsEnabled`]:e=>h((function(e){if(e&&e.valid)try{return n().setItem("prebid.cookieTest","1"),"1"===n().getItem("prebid.cookieTest")}catch(e){}finally{try{n().removeItem("prebid.cookieTest")}catch(e){}}return!1}),f,e),[`setDataIn${t}`]:(e,t,i)=>h((function(i){i&&i.valid&&r()&&n().setItem(e,t)}),f,i),[`getDataFrom${t}`]:(e,t)=>h((function(t){return t&&t.valid&&r()?n().getItem(e):null}),f,t),[`removeDataFrom${t}`]:(e,t)=>h((function(t){t&&t.valid&&r()&&n().removeItem(e)}),f,t)}}return{setCookie:function(e,t,n,i,r,o){return h((function(o){if(o&&o.valid){const o=r&&""!==r?` ;domain=${encodeURIComponent(r)}`:"",s=n&&""!==n?` ;expires=${n}`:"",a=null!=i&&"none"==i.toLowerCase()?"; Secure":"";document.cookie=`${e}=${encodeURIComponent(t)}${s}; path=/${o}${i?`; SameSite=${i}`:""}${a}`}}),g,o)},getCookie:function(e,t){return h((function(t){if(t&&t.valid){let t=window.document.cookie.match("(^|;)\\\\s*"+e+"\\\\s*=\\\\s*([^;]*)\\\\s*(;|$)");return t?decodeURIComponent(t[2]):null}return null}),g,t)},cookiesAreEnabled:function(e){return h((function(e){return!(!e||!e.valid)&&(0,i.GE)()}),g,e)},...m("localStorage"),...m("sessionStorage"),findSimilarCookies:function(e,t){return h((function(t){if(t&&t.valid){const t=[];if((0,i.N9)()){const n=document.cookie.split(";");for(;n.length;){const i=n.pop();let r=i.indexOf("=");r=r<0?i.length:r;decodeURIComponent(i.slice(0,r).replace(/^\\s+/,"")).indexOf(e)>=0&&t.push(decodeURIComponent(i.slice(r+1)))}}return t}}),g,t)}}}function m(){let{moduleType:e,moduleName:t,bidderCode:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};function i(){throw new Error("Invalid invocation for getStorageManager: must set either bidderCode, or moduleType + moduleName")}return n?((e&&e!==o.tW||t)&&i(),e=o.tW,t=n):t&&e||i(),h({moduleType:e,moduleName:t})}function b(e){return h({moduleName:e,moduleType:o.tp})}(0,s.qB)(d.Ue,"deviceAccess config",(function(){if(!(0,i.N9)())return{allow:!1}})),(0,s.qB)(d.Ue,"bidderSettings.*.storageAllowed",(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.u;if(e[a.Dk]!==o.tW)return;let n=t.get(e[a.q7],"storageAllowed");if(n&&!0!==n){const t=e[a.Zw];n=Array.isArray(n)?n.some((e=>e===t)):n===t}else n=!!n;return n?void 0:{allow:n}}))},7779:(e,t,n)=>{n.d(t,{Yl:()=>T,iS:()=>O,uW:()=>I});var i=n(6881),r=n(7863),o=n(2693),s=n(3272),a=n(8969),d=n(5023),c=n(9214),u=n(1371),l=n(2449),f=n(5901),g=n(1069),p=n(433),h=n(2713),m=[];const b=20,y="targetingControls.allowTargetingKeys",v="targetingControls.addTargetingKeys",E=`Only one of "${y}" or "${v}" can be set`,A=Object.keys(a.xS).map((e=>a.xS[e]));let I={isActualBid:e=>e.getStatusCode()===a.XQ.GOOD,isBidNotExpired:e=>e.responseTimestamp+1e3*(0,r.cT)(e)>(0,g.vE)(),isUnusedBid:e=>e&&(e.status&&!(0,f.mK)([a.tl.RENDERED],e.status)||!e.status)};function T(e){return!Object.values(I).some((t=>!t(e)))}const w=(0,c.A_)("sync",(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.Q0;if(!i){const i=[],o=s.$W.getConfig("sendBidsControl.dealPrioritization");let a=(0,g.$z)(e,"adUnitCode");return Object.keys(a).forEach((e=>{let s=[],d=(0,g.$z)(a[e],"bidderCode");Object.keys(d).forEach((e=>{s.push(d[e].reduce(t))})),n?(s=o?s.sort(C(!0)):s.sort(((e,t)=>t.cpm-e.cpm)),i.push(...s.slice(0,n))):(s=s.sort(r),i.push(...s))})),i}return e}));function C(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return function(t,n){return void 0!==t.adserverTargeting.hb_deal&&void 0===n.adserverTargeting.hb_deal?-1:void 0===t.adserverTargeting.hb_deal&&void 0!==n.adserverTargeting.hb_deal?1:e?n.cpm-t.cpm:n.adserverTargeting.hb_pb-t.adserverTargeting.hb_pb}}function B(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>window.googletag.pubads().getSlots())().reduce(((e,n)=>{const i=(0,g.fp)(t)&&t(n);return Object.keys(e).filter((0,g.fp)(i)?i:(0,g.iC)(n)).forEach((t=>e[t].push(n))),e}),Object.fromEntries(e.map((e=>[e,[]]))))}const O=function(e){let t={},n={};function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const i=A.concat(l.Nh),r=s.$W.getConfig("targetingControls.allowSendAllBidsTargetingKeys"),o=r?r.map((e=>a.xS[e])):i;return e.reduce(((e,r)=>{if(t||n&&r.dealId){const t=function(e,t){return t.reduce(((t,n)=>(e.adserverTargeting[n]&&t.push({[`${n}_${e.bidderCode}`.substring(0,20)]:[e.adserverTargeting[n]]}),t)),[])}(r,i.filter((e=>void 0!==r.adserverTargeting[e]&&(n||-1!==o.indexOf(e)))));t&&e.push({[r.adUnitCode]:t})}return e}),[])}function r(t){return"string"==typeof t?[t]:(0,g.cy)(t)?t:e.getAdUnitCodes()||[]}function I(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h.Bq,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=e.getBidsReceived().reduce(((e,t)=>{const i=s.$W.getConfig("useBidCache"),r=s.$W.getConfig("bidCacheFilterFunction"),o=n[t.adUnitCode]===t.auctionId,a=!(i&&!o&&"function"==typeof r)||!!r(t);return(i||o)&&a&&(0,p.A)(t,"video.context")!==u.LM&&T(t)&&(t.latestTargetedAuctionId=n[t.adUnitCode],e.push(t)),e}),[]);return w(r,t,void 0,void 0,void 0,i)}function O(){return e.getStandardBidderAdServerTargeting().map((e=>e.key)).concat(A).filter(g.hj)}return t.setLatestAuctionForAdUnit=function(e,t){n[e]=t},t.resetPresetTargeting=function(e,t){if((0,g.II)()){const n=r(e);Object.values(B(n,t)).forEach((e=>{e.forEach((e=>{!function(e){m.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=>{(0,f.mK)(m,e.toLowerCase())||(i[e]=t.keywords[e])})),window.apntag.modifyTag(e,{keywords:i})}}))},t.getAllTargeting=function(t,n,d){let c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:h.Vk,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.Q0;d||=I(c,u);const A=r(t),T=s.$W.getConfig("enableSendAllBids"),B=s.$W.getConfig("sendBidsControl.bidLimit"),k=T&&(n||B)||0,{customKeysByUnit:R,filteredBids:S}=function(e,t){const n=[],i={},r=s.$W.getConfig("targetingControls.alwaysIncludeDeals");return t.forEach((t=>{const s=(0,f.mK)(e,t.adUnitCode),a=!0===o.u.get(t.bidderCode,"allowZeroCpmBids")?t.cpm>=0:t.cpm>0,d=r&&t.dealId;s&&(d||a)&&(n.push(t),Object.keys(t.adserverTargeting).filter(function(){let e=O();e=e.concat(l.Nh);return function(t){return-1===e.indexOf(t)}}()).forEach((e=>{const n=e.substring(0,b),r=i[t.adUnitCode]||{},o=[t.adserverTargeting[e]];r[n]?r[n]=r[n].concat(o).filter(g.hj):r[n]=o,i[t.adUnitCode]=r})))})),{filteredBids:n,customKeysByUnit:i}}(A,d);let D=function(t,n){const r=function(e){let t=[],n=e.reduce(((e,n)=>((0,f.mK)(t,n.adUnitCode)||(e.push(n),t.push(n.adUnitCode)),e)),[]),i=O();return n=n.map((e=>({[e.adUnitCode]:Object.keys(e.adserverTargeting).filter((t=>void 0===e.sendStandardTargeting||e.sendStandardTargeting||-1===i.indexOf(t))).reduce(((t,n)=>{const i=[e.adserverTargeting[n]],r={[n.substring(0,b)]:i};if(n===a.xS.DEAL){const o=`${n}_${e.bidderCode}`.substring(0,b),s={[o]:i};return[...t,r,s]}return[...t,r]}),[])}))),n}(t).concat(function(e,t){return e.reduce(((e,n)=>{const i=Object.assign({},n),r=t[i.adUnitCode],o=[];return r&&Object.keys(r).forEach((e=>{e&&r[e]&&o.push({[e]:r[e]})})),e.push({[i.adUnitCode]:o}),e}),[])}(t,n)).concat(function(e){const t=s.$W.getConfig("targetingControls.alwaysIncludeDeals");return i(e,s.$W.getConfig("enableSendAllBids"),t)}(t)).concat(function(){function t(e){return(0,p.A)(e,a.iD.ADSERVER_TARGETING)}function n(e){const n=t(e);return Object.keys(n).map((function(e){return(0,g.O8)(n[e])&&(n[e]=n[e].split(",").map((e=>e.trim()))),(0,g.cy)(n[e])||(n[e]=[n[e]]),{[e]:n[e]}}))}return e.getAdUnits().filter((e=>t(e))).reduce(((e,t)=>{const i=n(t);return i&&e.push({[t.code]:i}),e}),[])}());return r.forEach((e=>{!function(e){Object.keys(e).forEach((t=>{e[t].forEach((e=>{const t=Object.keys(e);-1===m.indexOf(t[0])&&(m=t.concat(m))}))}))}(e)})),r}(w(S,c,k,void 0,u),R);const U=Object.keys(Object.assign({},a.Zh,a.x5));let _=s.$W.getConfig(y);const j=s.$W.getConfig(v);if(null!=j&&null!=_)throw new Error(E);_=null!=j?U.concat(j):_||U,Array.isArray(_)&&_.length>0&&(D=function(e,t){const n=Object.assign({},a.xS,a.x5),i=Object.keys(n),r={};(0,g.fH)(`allowTargetingKeys - allowed keys [ ${t.map((e=>n[e])).join(", ")} ]`),e.map((e=>{const o=Object.keys(e)[0],s=e[o].filter((e=>{const o=Object.keys(e)[0],s=0===i.filter((e=>0===o.indexOf(n[e]))).length||(0,f.I6)(t,(e=>{const t=n[e];return 0===o.indexOf(t)}));return r[o]=!s,s}));e[o]=s}));const o=Object.keys(r).filter((e=>r[e]));return(0,g.fH)(`allowTargetingKeys - removed keys [ ${o.join(", ")} ]`),e.filter((e=>e[Object.keys(e)[0]].length>0))}(D,_)),D=function(e){let t=e.map((e=>({[Object.keys(e)[0]]:e[Object.keys(e)[0]].map((e=>({[Object.keys(e)[0]]:e[Object.keys(e)[0]].join(",")}))).reduce(((e,t)=>Object.assign(t,e)),{})})));return t=t.reduce((function(e,t){var n=Object.keys(t)[0];return e[n]=Object.assign({},e[n],t[n]),e}),{}),t}(D);const $=s.$W.getConfig("targetingControls.auctionKeyMaxChars");return $&&((0,g.fH)(`Detected \'targetingControls.auctionKeyMaxChars\' was active for this auction; set with a limit of ${$} characters. Running checks on auction keys...`),D=function(e,t){let n=(0,g.Go)(e),i=Object.keys(n).map((e=>({adUnitCode:e,adserverTargeting:n[e]}))).sort(C());return i.reduce((function(e,i,r,o){let s=(a=i.adserverTargeting,Object.keys(a).reduce((function(e,t){return e+`${t}%3d${encodeURIComponent(a[t])}%26`}),""));var a;r+1===o.length&&(s=s.slice(0,-3));let d=i.adUnitCode,c=s.length;return c<=t?(t-=c,(0,g.fH)(`AdUnit \'${d}\' auction keys comprised of ${c} characters. Deducted from running threshold; new limit is ${t}`,n[d]),e[d]=n[d]):(0,g.JE)(`The following keys for adUnitCode \'${d}\' exceeded the current limit of the \'auctionKeyMaxChars\' setting.\\nThe key-set size was ${c}, the current allotted amount was ${t}.\\n`,n[d]),r+1===o.length&&0===Object.keys(e).length&&(0,g.vV)("No auction targeting keys were permitted due to the setting in setConfig(targetingControls.auctionKeyMaxChars). Please review setup and consider adjusting."),e}),{})}(D,$)),A.forEach((e=>{D[e]||(D[e]={})})),D},s.$W.getConfig("targetingControls",(function(e){null!=(0,p.A)(e,y)&&null!=(0,p.A)(e,v)&&(0,g.vV)(E)})),t.setTargetingForGPT=(0,c.A_)("sync",(function(n,i){let r=t.getAllTargeting(n),o=Object.fromEntries(m.map((e=>[e,null])));Object.entries(B(Object.keys(r),i)).forEach((e=>{let[t,n]=e;n.forEach((e=>{Object.keys(r[t]).forEach((e=>{let n=r[t][e];"string"==typeof n&&-1!==n.indexOf(",")&&(n=n.split(",")),r[t][e]=n})),(0,g.OG)(`Attempting to set targeting-map for slot: ${e.getSlotElementId()} with targeting-map:`,r[t]),e.updateTargetingFromMap(Object.assign({},o,r[t]))}))})),Object.keys(r).forEach((t=>{Object.keys(r[t]).forEach((n=>{"hb_adid"===n&&e.setStatusForBids(r[t][n],a.tl.BID_TARGETING_SET)}))})),t.targetingDone(r),d.Ic(a.qY.SET_TARGETING,r)}),"setTargetingForGPT"),t.targetingDone=(0,c.A_)("sync",(function(e){return e}),"targetingDone"),t.getWinningBids=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.Vk,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:g.Q0;const a=[],d=t||I(n,i),c=r(e);return d.reduce(((e,t)=>{const n=t.adUnitCode,i=!0===o.u.get(n,"allowZeroCpmBids")?t.cpm>=0:t.cpm>0,r=s.$W.getConfig("targetingControls.alwaysIncludeDeals")&&t.dealId;return(0,f.mK)(c,n)&&!(0,f.mK)(a,n)&&(r||i)&&(e.push(t),a.push(n)),e}),[])},t.setTargetingForAst=function(e){let n=t.getAllTargeting(e);try{t.resetPresetTargetingAST(e)}catch(e){(0,g.vV)("unable to reset targeting for AST"+e)}Object.keys(n).forEach((e=>Object.keys(n[e]).forEach((t=>{if((0,g.OG)(`Attempting to set targeting for targetId: ${e} key: ${t} value: ${n[e][t]}`),(0,g.O8)(n[e][t])||(0,g.cy)(n[e][t])){let i={},r=/pt[0-9]/;t.search(r)<0?i[t.toUpperCase()]=n[e][t]:i[t]=n[e][t],window.apntag.setKeywords(e,i,{overrideKeyValue:!0})}}))))},t.isApntagDefined=function(){if(window.apntag&&(0,g.fp)(window.apntag.setKeywords))return!0},t}(i.n)},8230:(e,t,n)=>{n.d(t,{zt:()=>g});var i=n(1069),r=n(3272),o=n(5901),s=n(2938),a=n(5139),d=n(6811),c=n(2604),u=n(5569),l=n(3441);r.$W.setDefaults({userSync:(0,i.Go)({syncEnabled:!0,filterSettings:{image:{bidders:"*",filter:"include"}},syncsPerBidder:5,syncDelay:3e3,auctionDelay:500})});const f=(0,s.CK)("usersync");const g=function(e){let t={},n={image:[],iframe:[]},s=new Set,a={},f={image:!0,iframe:!1},g=e.config;function p(){if(g.syncEnabled&&e.browserSupportsCookies){try{!function(){if(!f.iframe)return;h(n.iframe,(e=>{let[t,r]=e;(0,i.OG)(`Invoking iframe user sync for bidder: ${t}`),(0,i.SG)(r),function(e,t){e.image=e.image.filter((e=>e[0]!==t))}(n,t)}))}(),function(){if(!f.image)return;h(n.image,(e=>{let[t,n]=e;(0,i.OG)(`Invoking image pixel user sync for bidder: ${t}`),(0,i.z$)(n)}))}()}catch(e){return(0,i.vV)("Error firing user syncs",e)}n={image:[],iframe:[]}}}function h(e,t){(0,i.k4)(e).forEach(t)}function m(e,t){let n=g.filterSettings;if(function(e,t){if(e.all&&e[t])return(0,i.JE)(`Detected presence of the "filterSettings.all" and "filterSettings.${t}" in userSync config. You cannot mix "all" with "iframe/image" configs; they are mutually exclusive.`),!1;let n=e.all?e.all:e[t],r=e.all?"all":t;if(!n)return!1;let o=n.filter,s=n.bidders;if(o&&"include"!==o&&"exclude"!==o)return(0,i.JE)(`UserSync "filterSettings.${r}.filter" setting \'${o}\' is not a valid option; use either \'include\' or \'exclude\'.`),!1;if("*"!==s&&!(Array.isArray(s)&&s.length>0&&s.every((e=>(0,i.O8)(e)&&"*"!==e))))return(0,i.JE)(`Detected an invalid setup in userSync "filterSettings.${r}.bidders"; use either \'*\' (to represent all bidders) or an array of bidders.`),!1;return!0}(n,e)){f[e]=!0;let i=n.all?n.all:n[e],r="*"===i.bidders?[t]:i.bidders;const s={include:(e,t)=>!(0,o.mK)(e,t),exclude:(e,t)=>(0,o.mK)(e,t)};return s[i.filter||"include"](r,t)}return!f[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"}))}g=Object.assign(g,e.userSync)})),e.regRule(d.Ml,"userSync config",(e=>{if(!g.syncEnabled)return{allow:!1,reason:"syncs are disabled"};if(e[c.Dk]===u.tW){const n=e[c.bt],i=e[c.iK];if(!t.canBidderRegisterSync(n,i))return{allow:!1,reason:`${n} syncs are not enabled for ${i}`}}})),t.registerSync=(t,r,o)=>s.has(r)?(0,i.OG)(`already fired syncs for "${r}", ignoring registerSync call`):g.syncEnabled&&(0,i.cy)(n[t])?r?0!==g.syncsPerBidder&&Number(a[r])>=g.syncsPerBidder?(0,i.JE)(`Number of user syncs exceeded for "${r}"`):void(e.isAllowed(d.Ml,(0,l.s)(u.tW,r,{[c.bt]:t,[c.e3]:o}))&&(n[t].push([r,o]),a=function(e,t){return e[t]?e[t]+=1:e[t]=1,e}(a,r))):(0,i.JE)("Bidder is required for registering sync"):(0,i.JE)(`User sync type "${t}" not supported`),t.bidderDone=s.add.bind(s),t.syncUsers=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(e)return setTimeout(p,Number(e));p()},t.triggerUserSyncs=()=>{g.enableOverride&&t.syncUsers()},t.canBidderRegisterSync=(e,t)=>!g.filterSettings||!m(e,t),t}(Object.defineProperties({config:r.$W.getConfig("userSync"),isAllowed:a.io,regRule:a.qB},{browserSupportsCookies:{get:function(){return!(0,i.Vt)()&&f.cookiesAreEnabled()}}}))},1069:(e,t,n)=>{n.d(t,{$D:()=>S,$z:()=>Be,Bg:()=>Fe,Bj:()=>Ge,Bq:()=>ue,CA:()=>H,D4:()=>le,D9:()=>Ve,Dl:()=>Ne,El:()=>He,Et:()=>Y,Ez:()=>L,Fq:()=>je,GE:()=>we,Go:()=>be,II:()=>ge,Im:()=>ee,JE:()=>W,Lm:()=>Z,N9:()=>Te,O8:()=>K,OG:()=>x,PB:()=>Me,Q0:()=>he,Qd:()=>X,SB:()=>Re,SG:()=>ae,SH:()=>Oe,Tz:()=>de,U6:()=>Ce,Up:()=>$e,Uu:()=>qe,V:()=>Ie,Vt:()=>ve,ZA:()=>fe,_s:()=>ie,al:()=>ye,bL:()=>R,bu:()=>ne,bz:()=>_e,c$:()=>We,cD:()=>I,cy:()=>Q,fH:()=>N,fp:()=>J,gM:()=>Ee,h0:()=>V,hj:()=>ce,hw:()=>F,iC:()=>Ue,k4:()=>me,kK:()=>D,l4:()=>$,l9:()=>Se,lk:()=>k,mM:()=>w,mb:()=>j,ro:()=>se,s0:()=>O,t1:()=>pe,vE:()=>Ae,vV:()=>P,wD:()=>ke,xQ:()=>te,z$:()=>oe});var i=n(3272),r=n(5751),o=n(5901),s=n(8969),a=n(5555),d=n(7873),c="String",u="Function",l="Number",f="Object",g="Boolean",p=Object.prototype.toString;let 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,d.m)();function I(e){h=e}function T(){null!=h&&h(...arguments)}const w={checkCookieSupport:we,createTrackPixelIframeHtml:function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(!e)return"";t&&(e=encodeURI(e));n&&(n=`sandbox="${n}"`);return`<iframe ${n} id="${O()}"\\n frameborder="0"\\n allowtransparency="true"\\n marginheight="0" marginwidth="0"\\n width="0" hspace="0" vspace="0" height="0"\\n style="height:0px;width:0px;display:none;"\\n scrolling="no"\\n src="${e}">\\n </iframe>`},getWindowSelf:$,getWindowTop:j,canAccessWindowTop:function(){try{if(w.getWindowTop().location.href)return!0}catch(e){return!1}},getWindowLocation:q,insertUserSyncIframe:ae,insertElement:ie,isFn:J,triggerPixel:oe,logError:P,logWarn:W,logMessage:x,logInfo:N,parseQS:xe,formatQS:function(e){return Object.keys(e).map((t=>Array.isArray(e[t])?e[t].map((e=>`${t}[]=${e}`)).join("&"):`${t}=${e[t]}`)).join("&")},deepEqual:Pe};var C,B=(C=0,function(){return++C});function O(){return B()+Math.random().toString(16).substr(2)}function k(e){return e?(e^(window&&window.crypto&&window.crypto.getRandomValues?crypto.getRandomValues(new Uint8Array(1))[0]%16:16*Math.random())>>e/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,k)}function R(e){let t="";for(var n in e)e.hasOwnProperty(n)&&(t+=n+"="+encodeURIComponent(e[n])+"&");return t=t.replace(/&$/,""),t}function S(e){return e&&Object.getOwnPropertyNames(e).length>0?Object.keys(e).map((t=>`${t}=${encodeURIComponent(e[t])}`)).join("&"):""}function D(e){return(t=e,"string"==typeof t?t.split(/\\s*,\\s*/).map((e=>e.match(/^(\\d+)x(\\d+)$/i))).filter((e=>e)).map((e=>{let[t,n,i]=e;return[parseInt(n,10),parseInt(i,10)]})):Array.isArray(t)?_(t)?[t]:t.filter(_):[]).map(U);var t}function U(e){return e[0]+"x"+e[1]}function _(e){return Q(e)&&2===e.length&&!isNaN(e[0])&&!isNaN(e[1])}function j(){return window.top}function $(){return window.self}function q(){return window.location}function x(){G()&&b&&console.log.apply(console,M(arguments,"MESSAGE:"))}function N(){G()&&y&&console.info.apply(console,M(arguments,"INFO:"))}function W(){G()&&v&&console.warn.apply(console,M(arguments,"WARNING:")),T(s.qY.AUCTION_DEBUG,{type:"WARNING",arguments})}function P(){G()&&E&&console.error.apply(console,M(arguments,"ERROR:")),T(s.qY.AUCTION_DEBUG,{type:"ERROR",arguments})}function V(e){function t(t){return function(){for(var n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];t(e,...i)}}return{logError:t(P),logWarn:t(W),logMessage:t(x),logInfo:t(N)}}function M(e,t){e=[].slice.call(e);let n=i.$W.getCurrentBidder();return t&&e.unshift(t),n&&e.unshift(r("#aaa")),e.unshift(r("#3b88c3")),e.unshift("%cPrebid"+(n?`%c${n}`:"")),e;function r(e){return`display: inline-block; color: #fff; background: ${e}; padding: 1px 4px; border-radius: 3px;`}}function G(){return!!i.$W.getConfig("debug")}const F=(()=>{const e={border:"0px",hspace:"0",vspace:"0",marginWidth:"0",marginHeight:"0",scrolling:"no",frameBorder:"0",allowtransparency:"true"};return function(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=t.createElement("iframe");return Object.assign(r,Object.assign({},e,n)),Object.assign(r.style,i),r}})();function H(){return F(document,{id:O(),width:0,height:0,src:"about:blank"},{display:"none",height:"0px",width:"0px",border:"0px"})}function L(e){return xe(q().search)[e]||""}function z(e,t){return p.call(e)==="[object "+t+"]"}function J(e){return z(e,u)}function K(e){return z(e,c)}const Q=Array.isArray.bind(Array);function Y(e){return z(e,l)}function X(e){return z(e,f)}function Z(e){return z(e,g)}function ee(e){return!e||(Q(e)||K(e)?!(e.length>0):Object.keys(e).length<=0)}function te(e){return K(e)&&(!e||0===e.length)}function ne(e,t){if(J(e?.forEach))return e.forEach(t,this);Object.entries(e||{}).forEach((e=>{let[n,i]=e;return t.call(this,i,n)}))}function ie(e,t,n,i){let r;t=t||document,r=n?t.getElementsByTagName(n):t.getElementsByTagName("head");try{if(r=r.length?r:t.getElementsByTagName("body"),r.length){r=r[0];let t=i?null:r.firstChild;return r.insertBefore(e,t)}}catch(e){}}function re(e,t){let n=null;return new a.k((i=>{const r=function(){e.removeEventListener("load",r),e.removeEventListener("error",r),null!=n&&window.clearTimeout(n),i()};e.addEventListener("load",r),e.addEventListener("error",r),null!=t&&(n=window.setTimeout(r,t))}))}function oe(e,t,n){const i=new Image;t&&w.isFn(t)&&re(i,n).then(t),i.src=e}function se(e){if(!e)return;const t=H();var n;w.insertElement(t,document,"body"),(n=t.contentWindow.document).open(),n.write(e),n.close()}function ae(e,t,n){let i=w.createTrackPixelIframeHtml(e,!1,"allow-scripts allow-same-origin"),r=document.createElement("div");r.innerHTML=i;let o=r.firstChild;t&&w.isFn(t)&&re(o,n).then(t),w.insertElement(o,document,"html",!0)}function de(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:encodeURI;if(!e)return"";let n=\'<div style="position:absolute;left:0px;top:0px;visibility:hidden;">\';return n+=\'<img src="\'+t(e)+\'"></div>\',n}function ce(e,t,n){return n.indexOf(e)===t}function ue(e,t){return e.concat(t)}function le(e,t){if(e)return t.flatMap((e=>e.bids)).find((t=>["bidId","adId","bid_id"].some((n=>t[n]===e))))}function fe(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:A.adUnits).map((e=>e.bids.map((e=>e.bidder)).reduce(ue,[]))).reduce(ue,[]).filter((e=>void 0!==e)).filter(ce)}function ge(){if(window.googletag&&J(window.googletag.pubads)&&J(window.googletag.pubads().getSlots))return!0}function pe(){if(window.apntag&&J(window.apntag.getTag))return!0}const he=(e,t)=>t.cpm-e.cpm;function me(e){let t=e.length;for(;t>0;){let n=Math.floor(Math.random()*t);t--;let i=e[t];e[t]=e[n],e[n]=i}return e}function be(e){return(0,r.Q)(e)||{}}function ye(){try{return w.getWindowSelf()!==w.getWindowTop()}catch(e){return!0}}function ve(){return/^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent)}function Ee(e,t){if(e)return Object.entries(t).reduce(((e,t)=>{let[n,i]=t;return e.replace(new RegExp("\\\\$\\\\{"+n+"\\\\}","g"),i||"")}),e)}function Ae(){return(new Date).getTime()}function Ie(){return window.performance&&window.performance.now&&window.performance.now()||0}function Te(){return!1!==i.$W.getConfig("deviceAccess")}function we(){if(window.navigator.cookieEnabled||document.cookie.length)return!0}function Ce(e,t){if(t<1)throw new Error(`numRequiredCalls must be a positive number. Got ${t}`);let n=0;return function(){n++,n===t&&e.apply(this,arguments)}}function Be(e,t){return e.reduce((function(e,n){return(e[n[t]]=e[n[t]]||[]).push(n),e}),{})}function Oe(e,t){return t.filter((t=>e[t])).reduce(((t,n)=>Object.assign(t,{[n]:e[n]})),{})}function ke(e){const t=["banner","native","video"],n=["instream","outstream","adpod"];return!!Object.keys(e).every((e=>(0,o.mK)(t,e)))&&(!e.video||!e.video.context||(0,o.mK)(n,e.video.context))}function Re(e,t,n){return e.filter((e=>e.code===t)).flatMap((e=>e.bids)).filter((e=>e.bidder===n)).map((e=>e.params||{}))}function Se(){return"1"===navigator.doNotTrack||"1"===window.doNotTrack||"1"===navigator.msDoNotTrack||"yes"===navigator.doNotTrack}const De=(e,t)=>e.getAdUnitPath()===t||e.getSlotElementId()===t;function Ue(e){return t=>De(e,t)}function _e(e,t){const n=Object.keys(e.mediaTypes||{banner:"banner"}).join(", ");return`\\n ${e.code} is a ${n} ad unit\\n containing bidders that don\'t support ${n}: ${t}.\\n This bidder won\'t fetch demand.\\n `}const je=Number.isInteger.bind(Number);function $e(e,t){return"object"!=typeof e?{}:t.reduce(((n,i,r)=>{if("function"==typeof i)return n;let o=i,s=i.match(/^(.+?)\\sas\\s(.+?)$/i);s&&(i=s[1],o=s[2]);let a=e[i];return"function"==typeof t[r+1]&&(a=t[r+1](a,n)),void 0!==a&&(n[o]=a),n}),{})}function qe(e,t){return Q(e)&&(!t||e.length===t)&&e.every((e=>je(e)))}function xe(e){return e?e.replace(/^\\?/,"").split("&").reduce(((e,t)=>{let[n,i]=t.split("=");return/\\[\\]$/.test(n)?(n=n.replace("[]",""),e[n]=e[n]||[],e[n].push(i)):e[n]=i||"",e}),{}):{}}function Ne(e,t){let n=document.createElement("a");t&&"noDecodeWholeURL"in t&&t.noDecodeWholeURL?n.href=e:n.href=decodeURIComponent(e);let i=t&&"decodeSearchAsString"in t&&t.decodeSearchAsString;return{href:n.href,protocol:(n.protocol||"").replace(/:$/,""),hostname:n.hostname,port:+n.port,pathname:n.pathname.replace(/^(?!\\/)/,"/"),search:i?n.search:w.parseQS(n.search||""),hash:(n.hash||"").replace(/^#/,""),host:n.host||window.location.host}}function We(e){return(e.protocol||"http")+"://"+(e.host||e.hostname+(e.port?`:${e.port}`:""))+(e.pathname||"")+(e.search?`?${w.formatQS(e.search||"")}`:"")+(e.hash?`#${e.hash}`:"")}function Pe(e,t){let{checkTypes:n=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t||n&&e.constructor!==t.constructor)return!1;{const i=Object.keys(e);if(i.length!==Object.keys(t).length)return!1;for(let r of i){if(!t.hasOwnProperty(r))return!1;if(!Pe(e[r],t[r],{checkTypes:n}))return!1}return!0}}function Ve(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(!n.length)return e;const r=n.shift();if(X(e)&&X(r))for(const t in r)X(r[t])?(e[t]||Object.assign(e,{[t]:{}}),Ve(e[t],r[t])):Q(r[t])?e[t]?Q(e[t])&&r[t].forEach((n=>{let i=1;for(let r=0;r<e[t].length;r++)if(Pe(e[t][r],n)){i=0;break}i&&e[t].push(n)})):Object.assign(e,{[t]:[...r[t]]}):Object.assign(e,{[t]:r[t]});return Ve(e,...n)}function Me(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=function(e,t){if(J(Math.imul))return Math.imul(e,t);var n=(4194303&e)*(t|=0);return 4290772992&e&&(n+=(4290772992&e)*t|0),0|n},i=3735928559^t,r=1103547991^t;for(let t,o=0;o<e.length;o++)t=e.charCodeAt(o),i=n(i^t,2654435761),r=n(r^t,1597334677);return i=n(i^i>>>16,2246822507)^n(r^r>>>13,3266489909),r=n(r^r>>>16,2246822507)^n(i^i>>>13,3266489909),(4294967296*(2097151&r)+(i>>>0)).toString()}function Ge(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e};const n=new Map,i=function(){const i=t.apply(this,arguments);return n.has(i)||n.set(i,e.apply(this,arguments)),n.get(i)};return i.clear=n.clear.bind(n),i}function Fe(e,t){Object.entries(t).forEach((t=>{let[n,i]=t;return e.setAttribute(n,i)}))}function He(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e=>e,i=0,r=e.length&&e.length-1;const o=n(t);for(;r-i>1;){const t=i+Math.round((r-i)/2);o>n(e[t])?i=t:r=t}for(;e.length>i&&o>n(e[i]);)i++;return i}},2621:(e,t,n)=>{function i(e){return!e?.gdprApplies||!0===e?.vendorData?.purpose?.consents?.[1]}n.d(t,{C:()=>i})},6894:(e,t,n)=>{n.d(t,{BO:()=>g,K7:()=>p});var i=n(3272);const r="performanceMetrics",o=window.performance&&window.performance.now?()=>window.performance.now():()=>Date.now(),s=new WeakMap;function a(){let{now:e=o,mkNode:t=u,mkTimer:n=c,mkRenamer:i=(e=>e),nodes:r=s}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(){return function o(s){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>({forEach(t){t(e)}});a=i(a);const d=(c="timestamps",function(e){return s.dfWalk({visit(t,n){const i=n[c];if(i.hasOwnProperty(e))return i[e]}})});var c;function u(e,t){const n=a(e);s.dfWalk({follow:(e,t)=>t.propagate&&(!e||!e.stopPropagation),visit(e,i){n.forEach((n=>{null==e?i.metrics[n]=t:(i.groups.hasOwnProperty(n)||(i.groups[n]=[]),i.groups[n].push(t))}))}})}function l(t){return n(e,(e=>u(t,e)))}function f(){let e={};return s.dfWalk({visit(t,n){e=Object.assign({},!t||t.includeGroups?n.groups:null,n.metrics,e)}}),e}const g={startTiming:l,measureTime:function(e,t){return l(e).stopAfter(t)()},measureHookTime:function(e,t,n){const i=l(e);return n(function(e){const t=i.stopBefore(e);return t.bail=e.bail&&i.stopBefore(e.bail),t.stopTiming=i,t.untimed=e,t}(t))},checkpoint:function(t){s.timestamps[t]=e()},timeSince:function(t,n){const i=d(t),r=null!=i?e()-i:null;return null!=n&&u(n,r),r},timeBetween:function(e,t,n){const i=d(e),r=d(t),o=null!=i&&null!=r?r-i:null;return null!=n&&u(n,o),o},setMetric:u,getMetrics:f,fork:function(){let{propagate:e=!0,stopPropagation:n=!1,includeGroups:i=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o(t([[s,{propagate:e,stopPropagation:n,includeGroups:i}]]),a)},join:function(e){let{propagate:t=!0,stopPropagation:n=!1,includeGroups:i=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=r.get(e);null!=o&&o.addParent(s,{propagate:t,stopPropagation:n,includeGroups:i})},newMetrics:function(){return o(s.newSibling(),a)},renameWith:function(e){return o(s,e)},toJSON:()=>f()};return r.set(g,s),g}(t([]))}}function d(e,t,n){return function(){t&&t();try{return e.apply(this,arguments)}finally{n&&n()}}}function c(e,t){const n=e();let i=!1;function r(){i||(t(e()-n),i=!0)}return r.stopBefore=e=>d(e,r),r.stopAfter=e=>d(e,null,r),r}function u(e){return{metrics:{},timestamps:{},groups:{},addParent(t,n){e.push([t,n])},newSibling:()=>u(e.slice()),dfWalk(){let t,{visit:n,follow:i=(()=>!0),visited:r=new Set,inEdge:o}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!r.has(this)){if(r.add(this),t=n(o,this),null!=t)return t;for(const[s,a]of e)if(i(o,a)&&(t=s.dfWalk({visit:n,follow:i,visited:r,inEdge:a}),null!=t))return t}}}}const l=(()=>{const e=function(){},t=()=>({}),n={forEach:e},i=()=>null;i.stopBefore=e=>e,i.stopAfter=e=>e;const r=Object.defineProperties({dfWalk:e,newSibling:()=>r,addParent:e},Object.fromEntries(["metrics","timestamps","groups"].map((e=>[e,{get:t}]))));return a({now:()=>0,mkNode:()=>r,mkRenamer:()=>()=>n,mkTimer:()=>i,nodes:{get:e,set:e}})()})();let f=!0;function g(e){return f&&e||l}i.$W.getConfig(r,(e=>{f=!!e[r]}));const p=(()=>{const e=a();return function(){return f?e():l}})();function h(e,t){return function(n,i){return function(r){for(var o=arguments.length,s=new Array(o>1?o-1:0),a=1;a<o;a++)s[a-1]=arguments[a];const d=this;return g(t.apply(d,s)).measureHookTime(e+n,r,(function(e){return i.call(d,e,...s)}))}}}h("requestBids.",(e=>e.metrics)),h("addBidResponse.",((e,t)=>t.metrics))},5555:(e,t,n)=>{n.d(t,{k:()=>o,v:()=>s});const i=0,r=1;class o{#d;#c;static timeout(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new o((t=>{0===e?t():setTimeout(t,e)}))}constructor(e){if("function"!=typeof e)throw new Error("resolver not a function");const t=[],n=[];let[o,s]=[i,r].map((e=>function(r){if(e===i&&"function"==typeof r?.then)r.then(o,s);else if(!t.length)for(t.push(e,r);n.length;)n.shift()()}));try{e(o,s)}catch(e){s(e)}this.#d=t,this.#c=n}then(e,t){const n=this.#d;return new this.constructor(((r,o)=>{const s=()=>{let s=n[1],[a,d]=n[0]===i?[e,r]:[t,o];if("function"==typeof a){try{s=a(s)}catch(e){return void o(e)}d=r}d(s)};n.length?s():this.#c.push(s)}))}catch(e){return this.then(null,e)}finally(e){let t;return this.then((n=>(t=n,e())),(n=>(t=this.constructor.reject(n),e()))).then((()=>t))}static#u(e,t,n){let i=e.length;function r(){t.apply(this,arguments),--i<=0&&n&&n()}0===e.length&&n?n():e.forEach(((e,t)=>this.resolve(e).then((e=>r(!0,e,t)),(e=>r(!1,e,t)))))}static race(e){return new this(((t,n)=>{this.#u(e,((e,i)=>e?t(i):n(i)))}))}static all(e){return new this(((t,n)=>{let i=[];this.#u(e,((e,t,r)=>e?i[r]=t:n(t)),(()=>t(i)))}))}static allSettled(e){return new this((t=>{let n=[];this.#u(e,((e,t,i)=>n[i]=e?{status:"fulfilled",value:t}:{status:"rejected",reason:t}),(()=>t(n)))}))}static resolve(e){return new this((t=>t(e)))}static reject(e){return new this(((t,n)=>n(e)))}}function s(){let e,t,{promiseFactory:n=(e=>new o(e))}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};function i(e){return t=>e(t)}return{promise:n(((n,i)=>{e=n,t=i})),resolve:i(e),reject:i(t)}}},2713:(e,t,n)=>{function i(e,t){return e===t?0:e<t?-1:1}function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e=>e;return(t,n)=>i(e(t),e(n))}function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;return(t,n)=>-e(t,n)||0}function s(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e,n){for(const i of t){const t=i(e,n);if(0!==t)return t}return 0}}function a(){return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;return(t,n)=>e(n,t)<0?n:t}(o(arguments.length>0&&void 0!==arguments[0]?arguments[0]:i))}n.d(t,{Bq:()=>l,Vk:()=>u});const d=r((e=>e.cpm)),c=r((e=>e.responseTimestamp)),u=a(s(d,o(r((e=>e.timeToRespond))))),l=a(s(d,o(c)));a(s(d,c))},6853:(e,t,n)=>{n.d(t,{H:()=>u});var i=n(5555),r=n(1069);let o=null,s=0,a=[];function d(){document.hidden?o=Date.now():(s+=Date.now()-(o??0),o=null,a.forEach((e=>{let{callback:t,startTime:n,setTimerId:i}=e;return i(c(t,s-n)())})),a=[])}function c(e,t){const n=s;let i=setTimeout((()=>{s===n&&null==o?e():null!=o?a.push({callback:e,startTime:n,setTimerId(e){i=e}}):i=c(e,s-n)()}),t);return()=>i}function u(){let{startTime:e=r.vE,ttl:t=(()=>null),monotonic:n=!1,slack:o=5e3}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const s=new Map,a=[],d=[],u=n?e=>d.push(e):e=>d.splice((0,r.El)(d,e,(e=>e.expiry)),0,e);let l,f;function g(){if(f&&clearTimeout(f),d.length>0){const e=(0,r.vE)();l=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()}),l-e)}else f=null}function p(n){const r={},s=h;let a;const[d,c]=Object.entries({start:e,delta:t}).map((e=>{let t,[d,c]=e;return function(){const e=t={};i.k.resolve(c(n)).then((n=>{e===t&&(r[d]=n,s===h&&null!=r.start&&null!=r.delta&&(a=r.start+r.delta,u(p),(null==f||l>a+o)&&g()))}))}})),p={item:n,refresh:c,get expiry(){return a}};return d(),c(),p}let h={};return{[Symbol.iterator]:()=>s.keys(),add(e){!s.has(e)&&s.set(e,p(e))},clear(){d.length=0,g(),s.clear(),h={}},toArray:()=>Array.from(s.keys()),refresh(){d.length=0,g();for(const e of s.values())e.refresh()},onExpiry:e=>(a.push(e),()=>{const t=a.indexOf(e);t>=0&&a.splice(t,1)})}}document.addEventListener("visibilitychange",d)},3895:(e,t,n)=>{n.d(t,{H6:()=>a,V0:()=>u,Zy:()=>c,aP:()=>l,mn:()=>d,vk:()=>f});var i=n(1069),r=n(3272),o=n(9214),s=n(6881);const a="outstream",d="instream",c=new Map([["mimes",e=>Array.isArray(e)&&e.length>0&&e.every((e=>"string"==typeof e))],["minduration",i.Fq],["maxduration",i.Fq],["startdelay",i.Fq],["maxseq",i.Fq],["poddur",i.Fq],["protocols",i.Uu],["w",i.Fq],["h",i.Fq],["podid",i.O8],["podseq",i.Fq],["rqddurs",i.Uu],["placement",i.Fq],["plcmt",i.Fq],["linearity",i.Fq],["skip",e=>[1,0].includes(e)],["skipmin",i.Fq],["skipafter",i.Fq],["sequence",i.Fq],["slotinpod",i.Fq],["mincpmpersec",i.Et],["battr",i.Uu],["maxextended",i.Fq],["minbitrate",i.Fq],["maxbitrate",i.Fq],["boxingallowed",i.Fq],["playbackmethod",i.Uu],["playbackend",i.Fq],["delivery",i.Uu],["pos",i.Fq],["api",i.Uu],["companiontype",i.Uu],["poddedupe",i.Uu]]);function u(e){const t=e?.mediaTypes?.video;null!=t&&null==t.plcmt&&(t.context===a||[2,3,4].includes(t.placement)?t.plcmt=4:t.context!==a&&[2,6].includes(t.playbackmethod)&&(t.plcmt=2))}function l(e,t){const n=e?.mediaTypes?.video;(0,i.Qd)(n)?null!=n&&Object.entries(n).forEach((r=>{let[o,s]=r;if(!c.has(o))return;c.get(o)(s)||("function"==typeof t?t(o,s,e):(delete n[o],(0,i.JE)(`Invalid prop in adUnit "${e.code}": Invalid value for mediaTypes.video.${o} ORTB property. The property has been removed.`)))})):(0,i.JE)("validateOrtbVideoFields: videoParams must be an object.")}function f(e){let{index:t=s.n.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=t.getMediaTypes(e)?.video,i=n&&n?.context,r=n&&n?.useCacheKey,o=t.getAdUnit(e);return g(e,o,n,i,r)}const g=(0,o.A_)("sync",(function(e,t,n,o,s){return n&&(s||o!==a)?r.$W.getConfig("cache.url")||!e.vastXml||e.vastUrl?!(!e.vastUrl&&!e.vastXml):((0,i.vV)(\'\\n This bid contains only vastXml and will not work when a prebid cache url is not specified.\\n Try enabling prebid cache with pbjs.setConfig({ cache: {url: "..."} });\\n \'),!1):!(o===a&&!s)||!!(e.renderer||t&&t.renderer||n.renderer)}),"checkVideoBidSetup")}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[85],{4595:(s,d,e)=>{e.d(d,{G:()=>n});const n=\'(()=>{"use strict";window.render=function({ad:d,adUrl:e,width:i,height:r},{mkFrame:n},o){if(!d&&!e)throw{reason:"noAd",message:"Missing ad markup or URL"};{const s=o.document,t={width:i,height:r};e&&!d?t.src=e:t.srcdoc=d,s.body.appendChild(n(s,t))}}})();\'}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[444],{554:(e,t,r)=>{r.d(t,{QF:()=>g,T_:()=>f,gg:()=>l});var n=r(1069),o=r(433),i=r(8656),d=r(3858);const c={526:"1plusX",527:"1plusX",541:"captify_segments",540:"perid"},a=["user.data"].concat(d.Dy.map((e=>`${e}.content.data`)));function u(e,t,r){return null==t?r:(0,n.O8)(t)?t:(0,n.Et)(t)?t.toString():void(0,n.JE)("Unsuported type for param: "+e+" required type: String")}function l(e){return(0,n.O8)(e)&&""!==e?s(e.split(/\\s*(?:,)\\s*/)):{}}function s(e){const t={};return e.forEach((e=>{if(-1!==e.indexOf("=")){let r=e.split("="),n=r[0],o=r[1];t.hasOwnProperty(n)?t[n].push(o):t[n]=[o]}else t.hasOwnProperty(e)||(t[e]=[])})),t}function f(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"keywords";const r=[];return(0,n.bu)(e,((e,o)=>{if((0,n.cy)(e)){let r=[];(0,n.bu)(e,(e=>{((e=u(t+"."+o,e))||""===e)&&r.push(e)})),e=r}else{if(e=u(t+"."+o,e),!(0,n.O8)(e))return;e=[e]}e=e.filter((e=>""!==e));const i={key:o};e.length>0&&(i.value=e),r.push(i)})),r}((0,n.D9)(...t.map((e=>Object.fromEntries(Object.entries(e||{}).map((e=>{let[t,r]=e;return[t,(0,n.Et)(r)||(0,n.O8)(r)?[r]:r]})))))))}function g(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return f(function(e){return s((0,i.D)(e))}(e),function(e){let t={};return a.forEach((r=>{((0,o.A)(e,r)||[]).forEach((e=>{const r=c[e?.ext?.segtax];r&&e.segment.forEach((e=>{t[r]?t[r].push(e.id):t[r]=[e.id]}))}))})),t}(e),...r)}},2349:(e,t,r)=>{r.d(t,{DX:()=>i,GS:()=>d,vk:()=>o});var n=r(1069);function o(e){return e.replace(/(?:^|\\.?)([A-Z])/g,(function(e,t){return"_"+t.toLowerCase()})).replace(/^_/,"")}const i=[{code:"appnexusAst",gvlid:32},{code:"emxdigital",gvlid:183},{code:"emetriq",gvlid:213},{code:"pagescience",gvlid:32},{code:"gourmetads",gvlid:32},{code:"matomy",gvlid:32},{code:"featureforward",gvlid:32},{code:"oftmedia",gvlid:32},{code:"adasta",gvlid:32},{code:"beintoo",gvlid:618},{code:"projectagora",gvlid:1032},{code:"stailamedia",gvlid:32},{code:"uol",gvlid:32},{code:"adzymic",gvlid:723}];function d(e,t){let r=[];for(let o=0;o<t;o++){let t=(0,n.Qd)(e)?(0,n.Go)(e):e;r.push(t)}return r}}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[126],{5761:(e,r,n)=>{n.d(r,{$:()=>t});var s=n(1069);function t(e,r){return Object.keys(e).forEach((n=>{var t,u;r[n]&&((0,s.fp)(e[n])?r[n]=e[n](r[n]):r[n]=(t=e[n],u=r[n],"string"===t?u&&u.toString():"number"===t?Number(u):u),isNaN(r[n])&&delete r.key)})),r}}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[247],{8656:(r,e,a)=>{a.d(e,{D:()=>o});var n=a(3858),t=a(433);const s=["user.keywords"].concat(n.Dy.flatMap((r=>["keywords","content.keywords"].map((e=>`${r}.${e}`)))));function o(r){for(var e=arguments.length,a=new Array(e>1?e-1:0),n=1;n<e;n++)a[n-1]=arguments[n];return function(){const r=new Set;for(var e=arguments.length,a=new Array(e),n=0;n<e;n++)a[n]=arguments[n];return a.filter((r=>r)).flatMap((r=>Array.isArray(r)?r:r.split(","))).map((r=>r.replace(/^\\s*/,"").replace(/\\s*$/,""))).filter((r=>r)).forEach((e=>r.add(e))),Array.from(r.keys())}(...s.map((e=>(0,t.A)(r,e))),...a)}}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[982],{9906:(e,l,s)=>{function t(e,l){let s=[];for(let t=0;t<Math.ceil(e.length/l);t++){let h=t*l,n=h+l;s.push(e.slice(h,n))}return s}s.d(l,{i:()=>t})}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[698],{4673:(A,B,I)=>{I.d(B,{n:()=>s});const s={1:"IAB20-3",2:"IAB18-5",3:"IAB10-1",4:"IAB2-3",5:"IAB19-8",6:"IAB22-1",7:"IAB18-1",8:"IAB12-3",9:"IAB5-1",10:"IAB4-5",11:"IAB13-4",12:"IAB8-7",13:"IAB9-7",14:"IAB7-1",15:"IAB20-18",16:"IAB10-7",17:"IAB19-18",18:"IAB13-6",19:"IAB18-4",20:"IAB1-5",21:"IAB1-6",22:"IAB3-4",23:"IAB19-13",24:"IAB22-2",25:"IAB3-9",26:"IAB17-18",27:"IAB19-6",28:"IAB1-7",29:"IAB9-30",30:"IAB20-7",31:"IAB20-17",32:"IAB7-32",33:"IAB16-5",34:"IAB19-34",35:"IAB11-5",36:"IAB12-3",37:"IAB11-4",38:"IAB12-3",39:"IAB9-30",41:"IAB7-44",42:"IAB7-1",43:"IAB7-30",50:"IAB19-30",51:"IAB17-12",52:"IAB19-30",53:"IAB3-1",55:"IAB13-2",56:"IAB19-30",57:"IAB19-30",58:"IAB7-39",59:"IAB22-1",60:"IAB7-39",61:"IAB21-3",62:"IAB5-1",63:"IAB12-3",64:"IAB20-18",65:"IAB11-2",66:"IAB17-18",67:"IAB9-9",68:"IAB9-5",69:"IAB7-44",71:"IAB22-3",73:"IAB19-30",74:"IAB8-5",78:"IAB22-1",85:"IAB12-2",86:"IAB22-3",87:"IAB11-3",112:"IAB7-32",113:"IAB7-32",114:"IAB7-32",115:"IAB7-32",118:"IAB9-5",119:"IAB9-5",120:"IAB9-5",121:"IAB9-5",122:"IAB9-5",123:"IAB9-5",124:"IAB9-5",125:"IAB9-5",126:"IAB9-5",127:"IAB22-1",132:"IAB1-2",133:"IAB19-30",137:"IAB3-9",138:"IAB19-3",140:"IAB2-3",141:"IAB2-1",142:"IAB2-3",143:"IAB17-13",166:"IAB11-4",175:"IAB3-1",176:"IAB13-4",182:"IAB8-9",183:"IAB3-5"}}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[599],{791:(e,t,r)=>{var i=r(7873),a=r(1069),s=r(433),o=r(5789),n=r(3272),d=r(9115),c=r(1371),p=r(5901),l=r(3895),u=r(2938),m=r(2693),g=r(2621),h=r(2449),_=r(4673),f=r(554),b=r(2349),y=r(5761),v=r(9906);const k="appnexus",w="https://ib.adnxs.com/ut/v3/prebid",I="https://ib.adnxs-simple.com/ut/v3/prebid",x=["id","minduration","maxduration","skippable","playback_method","frameworks","context","skipoffset"],C=["minduration","maxduration","skip","skipafter","playbackmethod","api","startdelay","placement","plcmt"],O=["age","externalUid","external_uid","segments","gender","dnt","language"],T=["geo","device_id"],U=["enabled","dongle","member_id","debug_timeout"],E={apn_debug_dongle:"dongle",apn_debug_member_id:"member_id",apn_debug_timeout:"debug_timeout"},S={playback_method:{unknown:0,auto_play_sound_on:1,auto_play_sound_off:2,click_to_play:3,mouse_over:4,auto_play_sound_unknown:5},context:{unknown:0,pre_roll:1,mid_roll:2,post_roll:3,outstream:4,"in-banner":5,"in-feed":6,interstitial:7,accompanying_content_pre_roll:8,accompanying_content_mid_roll:9,accompanying_content_post_roll:10}},A={body:"description",body2:"desc2",cta:"ctatext",image:{serverName:"main_image",requiredParams:{required:!0}},icon:{serverName:"icon",requiredParams:{required:!0}},sponsoredBy:"sponsored_by",privacyLink:"privacy_link",salePrice:"saleprice",displayUrl:"displayurl"},j="<script",D=/\\/\\/cdn\\.adnxs\\.com\\/v|\\/\\/cdn\\.adnxs\\-simple\\.com\\/v/,R="trk.js",z=(0,u.vM)({bidderCode:k}),N=new Map([[1,"Mobile/Tablet - General"],[2,"Personal Computer"],[3,"Connected TV"],[4,"Phone"],[5,"Tablet"],[6,"Connected Device"],[7,"Set Top Box"],[8,"OOH Device"]]),q={code:k,gvlid:32,aliases:b.DX,supportedMediaTypes:[c.D4,c.G_,c.s6],isBidRequestValid:function(e){return!!(e.params.placementId||e.params.placement_id||e.params.member&&(e.params.invCode||e.params.inv_code))},buildRequests:function(e,t){const r=(e=(0,h.Xj)(e)).map(G),i=(0,p.I6)(e,M);let s={};!0===n.$W.getConfig("coppa")&&(s={coppa:!0}),i&&Object.keys(i.params.user).filter((e=>(0,p.mK)(O,e))).forEach((e=>{let t=(0,b.vk)(e);if("segments"===e&&(0,a.cy)(i.params.user[e])){let r=[];i.params.user[e].forEach((e=>{(0,a.Et)(e)?r.push({id:e}):(0,a.Qd)(e)&&r.push(e)})),s[t]=r}else"segments"!==e&&(s[t]=i.params.user[e])}));const o=(0,p.I6)(e,B);let d;o&&o.params&&o.params.app&&(d={},Object.keys(o.params.app).filter((e=>(0,p.mK)(T,e))).forEach((e=>d[e]=o.params.app[e])));const c=(0,p.I6)(e,K);let l;c&&c.params&&o.params.app&&o.params.app.id&&(l={appid:c.params.app.id});let u={},m={};const _=z.getCookie("apn_prebid_debug")||null;if(_)try{u=JSON.parse(_)}catch(e){(0,a.vV)("AppNexus Debug Auction Cookie Error:\\n\\n"+e)}else{Object.keys(E).forEach((e=>{let t=(0,a.Ez)(e);(0,a.O8)(t)&&""!==t&&(u[E[e]]=t,u.enabled=!0)})),u=(0,y.$)({member_id:"number",debug_timeout:"number"},u);const t=(0,p.I6)(e,V);t&&t.debug&&(u=t.debug)}u&&u.enabled&&Object.keys(u).filter((e=>(0,p.mK)(U,e))).forEach((e=>{m[e]=u[e]}));const k=(0,p.I6)(e,$),x=k?parseInt(k.params.member,10):0,C=e[0].schain,S=(0,p.I6)(e,W),A={tags:[...r],user:s,sdk:{source:"pbjs",version:"9.23.0"},schain:C};S&&(A.iab_support={omidpn:"Appnexus",omidpv:"9.23.0"}),x>0&&(A.member_id=x),o&&(A.device=d),c&&(A.app=l),t?.ortb2?.device&&(A.device=A.device||{},(0,a.D9)(A.device,function(e){const t={useragent:e.ua,devicetype:N.get(e.devicetype),make:e.make,model:e.model,os:e.os,os_version:e.osv,w:e.w,h:e.h,ppi:e.ppi,pxratio:e.pxratio};return Object.keys(t).reduce(((e,r)=>(t[r]&&(e[r]=t[r]),e)),{})}(t.ortb2.device)));let j=(0,a.Go)(t&&t.ortb2),D=(0,a.Go)(n.$W.getConfig("appnexusAuctionKeywords"))||{},R=(0,f.QF)(j,D);if(R.length>0&&(A.keywords=R),n.$W.getConfig("adpod.brandCategoryExclusion")&&(A.brand_category_uniqueness=!0),m.enabled&&(A.debug=m,(0,a.fH)("AppNexus Debug Auction Settings:\\n\\n"+JSON.stringify(m,null,4))),t&&t.gdprConsent&&(A.gdpr_consent={consent_string:t.gdprConsent.consentString,consent_required:t.gdprConsent.gdprApplies},t.gdprConsent.addtlConsent&&-1!==t.gdprConsent.addtlConsent.indexOf("~"))){let e=t.gdprConsent.addtlConsent,r=e.substring(e.indexOf("~")+1);A.gdpr_consent.addtl_consent=r.split(".").map((e=>parseInt(e,10)))}if(t&&t.uspConsent&&(A.us_privacy=t.uspConsent),t?.gppConsent?A.privacy={gpp:t.gppConsent.gppString,gpp_sid:t.gppConsent.applicableSections}:t?.ortb2?.regs?.gpp&&(A.privacy={gpp:t.ortb2.regs.gpp,gpp_sid:t.ortb2.regs.gpp_sid}),t&&t.refererInfo){let e={rd_ref:encodeURIComponent(t.refererInfo.topmostLocation),rd_top:t.refererInfo.reachedTop,rd_ifs:t.refererInfo.numIframes,rd_stk:t.refererInfo.stack.map((e=>encodeURIComponent(e))).join(",")},r=t.refererInfo.canonicalUrl;(0,a.O8)(r)&&""!==r&&(e.rd_can=r),A.referrer_detection=e}(0,p.I6)(e,L)&&e.filter(L).forEach((e=>{const t=function(e,t){const{durationRangeSec:r,requireExactDuration:i}=t.mediaTypes.video,a=function(e){const{adPodDurationSec:t,durationRangeSec:r,requireExactDuration:i}=e,a=Math.min(...r),s=Math.floor(t/a);return i?Math.max(s,r.length):s}(t.mediaTypes.video),s=Math.max(...r),o=e.filter((e=>e.uuid===t.bidId));let n=(0,b.GS)(...o,a);if(i){const e=Math.ceil(a/r.length),t=(0,v.i)(n,e);r.forEach(((e,r)=>{t[r].map((t=>{H(t,"minduration",e),H(t,"maxduration",e)}))}))}else n.map((e=>H(e,"maxduration",s)));return n}(r,e),i=A.tags.filter((t=>t.uuid!==e.bidId));A.tags=[...i,...t]}));if(e[0].userId){let t=[];e[0].userIdAsEids.forEach((e=>{!e||!e.uids||e.uids.length<1||e.uids.forEach((r=>{let i={source:e.source,id:r.id};"adserver.org"==e.source?i.rti_partner="TDID":"uidapi.com"==e.source&&(i.rti_partner="UID2"),t.push(i)}))})),t.length&&(A.eids=t)}if(t?.ortb2?.regs?.ext?.dsa){const e=t.ortb2.regs.ext.dsa,r={};if(["dsarequired","pubrender","datatopub"].forEach((t=>{(0,a.Et)(e[t])&&(r[t]=e[t])})),(0,a.cy)(e.transparency)&&e.transparency.every((e=>(0,a.Qd)(e)))){const t=[];e.transparency.forEach((e=>{(0,a.O8)(e.domain)&&""!=e.domain&&(0,a.cy)(e.dsaparams)&&e.dsaparams.every((e=>(0,a.Et)(e)))&&t.push(e)})),t.length>0&&(r.transparency=t)}(0,a.Im)(r)||(A.dsa=r)}r[0].publisher_id&&(A.publisher_id=r[0].publisher_id);const q=function(e,t){let r=[],i={withCredentials:!0},s=w;(0,g.C)(t?.gdprConsent)||(s=I);"TRUE"!==(0,a.Ez)("apn_test").toUpperCase()&&!0!==n.$W.getConfig("apn_test")||(i.customHeaders={"X-Is-Test":1});if(e.tags.length>15){const o=(0,a.Go)(e);(0,v.i)(e.tags,15).forEach((e=>{o.tags=e;const a=JSON.stringify(o);r.push({method:"POST",url:s,data:a,bidderRequest:t,options:i})}))}else{const a=JSON.stringify(e);r={method:"POST",url:s,data:a,bidderRequest:t,options:i}}return r}(A,t);return q},interpretResponse:function(e,t){let{bidderRequest:r}=t;e=e.body;const i=[];if(!e||e.error){let t=`in response for ${r.bidderCode} adapter`;return e&&e.error&&(t+=`: ${e.error}`),(0,a.vV)(t),i}if(e.tags&&e.tags.forEach((e=>{const t=(n=e)&&n.ads&&n.ads.length&&(0,p.I6)(n.ads,(e=>e.rtb));var n;if(t){if((!0===m.u.get(r.bidderCode,"allowZeroCpmBids")?t.cpm>=0:t.cpm>0)&&(0,p.mK)(this.supportedMediaTypes,t.ad_type)){const n=function(e,t,r){const i=(0,a.D4)(e.uuid,[r]),n=(0,a.s0)(),d={adId:n,requestId:e.uuid,cpm:t.cpm,creativeId:t.creative_id,dealId:t.deal_id,currency:"USD",netRevenue:!0,ttl:300,adUnitCode:i.adUnitCode,appnexus:{buyerMemberId:t.buyer_member_id,dealPriority:t.deal_priority,dealCode:t.deal_code}};t.adomain&&(d.meta=Object.assign({},d.meta,{advertiserDomains:[t.adomain]}));t.advertiser_id&&(d.meta=Object.assign({},d.meta,{advertiserId:t.advertiser_id}));t.dsa&&(d.meta=Object.assign({},d.meta,{dsa:t.dsa}));function u(e){return{ver:"1.0",complete:0,nodes:[{bsid:e.buyer_member_id.toString()}]}}t.buyer_member_id&&(d.meta=Object.assign({},d.meta,{dchain:u(t)}));t.brand_id&&(d.meta=Object.assign({},d.meta,{brandId:t.brand_id}));if(t.rtb.video){Object.assign(d,{width:t.rtb.video.player_width,height:t.rtb.video.player_height,vastImpUrl:t.notify_url,ttl:3600});switch((0,s.A)(i,"mediaTypes.video.context")){case c.LM:const i=_.n[t.brand_category_id]?_.n[t.brand_category_id]:null;d.meta=Object.assign({},d.meta,{primaryCatId:i});const n=t.deal_priority;d.video={context:c.LM,durationSeconds:Math.floor(t.rtb.video.duration_ms/1e3),dealTier:n},d.vastUrl=t.rtb.video.asset_url;break;case l.H6:if(d.adResponse=e,d.adResponse.ad=d.adResponse.ads[0],d.adResponse.ad.video=d.adResponse.ad.rtb.video,d.vastXml=t.rtb.video.content,t.renderer_url){const i=(0,p.I6)(r.bids,(t=>t.bidId===e.uuid));let n=(0,s.A)(i,"mediaTypes.video.renderer.options");n||(n=(0,s.A)(i,"renderer.options")),d.renderer=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=o.A4.install({id:t.renderer_id,url:t.renderer_url,config:r,loaded:!1,adUnitCode:e});try{i.setRender(J)}catch(e){(0,a.JE)("Prebid Error calling setRender on renderer",e)}return i.setEventHandlers({impression:()=>(0,a.OG)("AppNexus outstream video impression event"),loaded:()=>(0,a.OG)("AppNexus outstream video loaded event"),ended:()=>{(0,a.OG)("AppNexus outstream renderer video event"),document.querySelector(`#${e}`).style.display="none"}}),i}(d.adUnitCode,t,n)}break;case l.mn:d.vastUrl=t.notify_url+"&redir="+encodeURIComponent(t.rtb.video.asset_url)}}else if(t.rtb[c.s6]){const e=t.rtb[c.s6];let r;if(function(e){if(!e||""===e)return!1;let t=e.match(D),r=null!=t&&t.length>=1,i=e.match(R),a=null!=i&&i.length>=1;return e.startsWith(j)&&a&&r}(t.viewability.config)){let e="pbjs_adid="+n+";pbjs_auc="+i.adUnitCode;r=t.viewability.config.replace("dom_id=%native_dom_id%",e)}let s=e.javascript_trackers;null==s?s=r:(0,a.O8)(s)?s=[s,r]:s.push(r),d[c.s6]={title:e.title,body:e.desc,body2:e.desc2,cta:e.ctatext,rating:e.rating,sponsoredBy:e.sponsored,privacyLink:e.privacy_link,address:e.address,downloads:e.downloads,likes:e.likes,phone:e.phone,price:e.price,salePrice:e.saleprice,clickUrl:e.link.url,displayUrl:e.displayurl,clickTrackers:e.link.click_trackers,impressionTrackers:e.impression_trackers,video:e.video,javascriptTrackers:s},e.main_img&&(d[c.s6].image={url:e.main_img.url,height:e.main_img.height,width:e.main_img.width}),e.icon&&(d[c.s6].icon={url:e.icon.url,height:e.icon.height,width:e.icon.width}),d[c.s6].ext={video:e.video,customImage1:e.image1&&{url:e.image1.url,height:e.image1.height,width:e.image1.width},customImage2:e.image2&&{url:e.image2.url,height:e.image2.height,width:e.image2.width},customImage3:e.image3&&{url:e.image3.url,height:e.image3.height,width:e.image3.width},customImage4:e.image4&&{url:e.image4.url,height:e.image4.height,width:e.image4.width},customImage5:e.image5&&{url:e.image5.url,height:e.image5.height,width:e.image5.width},customIcon1:e.icon1&&{url:e.icon1.url,height:e.icon1.height,width:e.icon1.width},customIcon2:e.icon2&&{url:e.icon2.url,height:e.icon2.height,width:e.icon2.width},customIcon3:e.icon3&&{url:e.icon3.url,height:e.icon3.height,width:e.icon3.width},customIcon4:e.icon4&&{url:e.icon4.url,height:e.icon4.height,width:e.icon4.width},customIcon5:e.icon5&&{url:e.icon5.url,height:e.icon5.height,width:e.icon5.width},customSocialIcon1:e.socialicon1&&{url:e.socialicon1.url,height:e.socialicon1.height,width:e.socialicon1.width},customSocialIcon2:e.socialicon2&&{url:e.socialicon2.url,height:e.socialicon2.height,width:e.socialicon2.width},customSocialIcon3:e.socialicon3&&{url:e.socialicon3.url,height:e.socialicon3.height,width:e.socialicon3.width},customSocialIcon4:e.socialicon4&&{url:e.socialicon4.url,height:e.socialicon4.height,width:e.socialicon4.width},customSocialIcon5:e.socialicon5&&{url:e.socialicon5.url,height:e.socialicon5.height,width:e.socialicon5.width},customTitle1:e.title1,customTitle2:e.title2,customTitle3:e.title3,customTitle4:e.title4,customTitle5:e.title5,customBody1:e.body1,customBody2:e.body2,customBody3:e.body3,customBody4:e.body4,customBody5:e.body5,customCta1:e.ctatext1,customCta2:e.ctatext2,customCta3:e.ctatext3,customCta4:e.ctatext4,customCta5:e.ctatext5,customDisplayUrl1:e.displayurl1,customDisplayUrl2:e.displayurl2,customDisplayUrl3:e.displayurl3,customDisplayUrl4:e.displayurl4,customDisplayUrl5:e.displayurl5,customSocialUrl1:e.socialurl1,customSocialUrl2:e.socialurl2,customSocialUrl3:e.socialurl3,customSocialUrl4:e.socialurl4,customSocialUrl5:e.socialurl5}}else{Object.assign(d,{width:t.rtb.banner.width,height:t.rtb.banner.height,ad:t.rtb.banner.content});try{if(t.rtb.trackers)for(let e=0;e<t.rtb.trackers[0].impression_urls.length;e++){const r=t.rtb.trackers[0].impression_urls[e],i=(0,a.Tz)(r);d.ad+=i}}catch(e){(0,a.vV)("Error appending tracking pixel",e)}}return d}(e,t,r);n.mediaType=function(e){const t=e.ad_type;return t===c.G_?c.G_:t===c.s6?c.s6:c.D4}(t),i.push(n)}}})),e.debug&&e.debug.debug_info){let t="AppNexus Debug Auction for Prebid\\n\\n"+e.debug.debug_info;t=t.replace(/(<td>|<th>)/gm,"\\t").replace(/(<\\/td>|<\\/th>)/gm,"\\n").replace(/^<br>/gm,"").replace(/(<br>\\n|<br>)/gm,"\\n").replace(/<h1>(.*)<\\/h1>/gm,"\\n\\n===== $1 =====\\n\\n").replace(/<h[2-6]>(.*)<\\/h[2-6]>/gm,"\\n\\n*** $1 ***\\n\\n").replace(/(<([^>]+)>)/gim,""),(0,a.OG)("https://console.appnexus.com/docs/understanding-the-debug-auction"),(0,a.OG)(t)}return i},getUserSyncs:function(e,t,r,i,a){if(e.iframeEnabled&&(0,g.C)(r))return[{type:"iframe",url:"https://acdn.adnxs.com/dmp/async_usersync.html"}];if(e.pixelEnabled){return["https://px.ads.linkedin.com/setuid?partner=appNexus"].map((e=>({type:"image",url:e})))}}};function G(e){const t={};Object.keys(e.params).forEach((t=>{let r=(0,b.vk)(t);r!==t&&(e.params[r]=e.params[t],delete e.params[t])})),t.sizes=P(e.sizes),t.primary_size=t.sizes[0],t.ad_types=[],t.uuid=e.bidId,e.params.placement_id?t.id=parseInt(e.params.placement_id,10):t.code=e.params.inv_code;const r=(0,a.Ez)("ast_override_div");if((0,a.O8)(r)&&""!==r){const i=decodeURIComponent(r).split(",").find((t=>t.startsWith(`${e.adUnitCode}:`)));if(i){const e=i.split(":")[1];e&&(t.force_creative_id=parseInt(e,10))}}t.allow_smaller_sizes=e.params.allow_smaller_sizes||!1,t.use_pmt_rule="boolean"==typeof e.params.use_payment_rule?e.params.use_payment_rule:"boolean"==typeof e.params.use_pmt_rule&&e.params.use_pmt_rule,t.prebid=!0,t.disable_psa=!0;let i=function(e){if(!(0,a.fp)(e.getFloor))return e.params.reserve?e.params.reserve:null;let t=e.getFloor({currency:"USD",mediaType:"*",size:"*"});if((0,a.Qd)(t)&&!isNaN(t.floor)&&"USD"===t.currency)return t.floor;return null}(e);if(i&&(t.reserve=i),e.params.position)t.position={above:1,below:2}[e.params.position]||0;else{let r=(0,s.A)(e,"mediaTypes.banner.pos")||(0,s.A)(e,"mediaTypes.video.pos");0!==r&&1!==r&&3!==r||(t.position=3===r?2:r)}e.params.traffic_source_code&&(t.traffic_source_code=e.params.traffic_source_code),e.params.private_sizes&&(t.private_sizes=P(e.params.private_sizes)),e.params.supply_type&&(t.supply_type=e.params.supply_type),e.params.pub_click&&(t.pubclick=e.params.pub_click),e.params.ext_inv_code&&(t.ext_inv_code=e.params.ext_inv_code),e.params.publisher_id&&(t.publisher_id=parseInt(e.params.publisher_id,10)),e.params.external_imp_id&&(t.external_imp_id=e.params.external_imp_id);const o=(0,f.T_)((0,f.gg)((0,s.A)(e,"ortb2Imp.ext.data.keywords")),e.params?.keywords);o.length>0&&(t.keywords=o);let n=(0,s.A)(e,"ortb2Imp.ext.gpid")||(0,s.A)(e,"ortb2Imp.ext.data.pbadslot");if(n&&(t.gpid=n),(e.mediaType===c.s6||(0,s.A)(e,`mediaTypes.${c.s6}`))&&(t.ad_types.push(c.s6),0===t.sizes.length&&(t.sizes=P([1,1])),e.nativeParams)){const r=function(e){const t={};return Object.keys(e).forEach((r=>{const i=A[r]&&A[r].serverName||A[r]||r,s=A[r]&&A[r].requiredParams;t[i]=Object.assign({},s,e[r]);if(!(i!==A.image.serverName&&i!==A.icon.serverName)&&t[i].sizes){let e=t[i].sizes;((0,a.Uu)(e)||(0,a.cy)(e)&&e.length>0&&e.every((e=>(0,a.Uu)(e))))&&(t[i].sizes=P(t[i].sizes))}i===A.privacyLink&&(t.privacy_supported=!0)})),t}(e.nativeParams);t[c.s6]={layouts:[r]}}{const r=(0,s.A)(e,`mediaTypes.${c.G_}`),i=(0,s.A)(e,"mediaTypes.video.context");t.hb_source=r&&"adpod"===i?7:1,(e.mediaType===c.G_||r)&&t.ad_types.push(c.G_),(e.mediaType===c.G_||r&&"outstream"!==i)&&(t.require_asset_url=!0),e.params.video&&(t.video={},Object.keys(e.params.video).filter((e=>(0,p.mK)(x,e))).forEach((r=>{switch(r){case"context":case"playback_method":let i=e.params.video[r];i=(0,a.cy)(i)?i[0]:i,t.video[r]=S[r][i];break;case"frameworks":break;default:t.video[r]=e.params.video[r]}})),e.params.video.frameworks&&(0,a.cy)(e.params.video.frameworks)&&(t.video_frameworks=e.params.video.frameworks)),r&&(t.video=t.video||{},Object.keys(r).filter((e=>(0,p.mK)(C,e))).forEach((e=>{switch(e){case"minduration":case"maxduration":"number"!=typeof t.video[e]&&(t.video[e]=r[e]);break;case"skip":"boolean"!=typeof t.video.skippable&&(t.video.skippable=1===r[e]);break;case"skipafter":"number"!=typeof t.video.skipoffset&&(t.video.skippoffset=r[e]);break;case"playbackmethod":if("number"!=typeof t.video.playback_method){let i=r[e];i=(0,a.cy)(i)?i[0]:i,i>=1&&i<=4&&(t.video.playback_method=i)}break;case"api":if(!t.video_frameworks&&(0,a.cy)(r[e])){let i=r[e].map((e=>{let t=4===e?5:5===e?4:e;if(t>=1&&t<=5)return t})).filter((e=>e));t.video_frameworks=i}break;case"startdelay":case"plcmt":case"placement":if("number"!=typeof t.video.context){const e=r.plcmt,i=r.placement,a=r.startdelay,s=function(e,t){if(!e)return;if(2===e){if(void 0===t)return;if(0===t)return"accompanying_content_pre_roll";if(-1===t)return"accompanying_content_mid_roll";if(-2===t)return"accompanying_content_post_roll"}else{if(3===e)return"interstitial";if(4===e)return"outstream"}}(e,a)||function(e){if(!e)return;if(2===e)return"in-banner";if(3===e)return"outstream";if(4===e)return"in-feed";if(5===e)return"intersitial"}(i)||function(e){if(!e)return;if(0===e)return"pre_roll";if(-1===e)return"mid_roll";if(-2===e)return"post_roll"}(a);t.video.context=S.context[s]}}}))),e.renderer&&(t.video=Object.assign({},t.video,{custom_renderer_present:!0}))}return e.params.frameworks&&(0,a.cy)(e.params.frameworks)&&(t.banner_frameworks=e.params.frameworks),(0,s.A)(e,`mediaTypes.${c.D4}`)&&t.ad_types.push(c.D4),0===t.ad_types.length&&delete t.ad_types,t}function P(e){let t=[],r={};if((0,a.cy)(e)&&2===e.length&&!(0,a.cy)(e[0]))r.width=parseInt(e[0],10),r.height=parseInt(e[1],10),t.push(r);else if("object"==typeof e)for(let i=0;i<e.length;i++){let a=e[i];r={},r.width=parseInt(a[0],10),r.height=parseInt(a[1],10),t.push(r)}return t}function M(e){return!!e.params.user}function $(e){return!!parseInt(e.params.member,10)}function B(e){if(e.params)return!!e.params.app}function K(e){return e.params&&e.params.app?!!e.params.app.id:!!e.params.app}function V(e){return!!e.debug}function L(e){return e.mediaTypes&&e.mediaTypes.video&&e.mediaTypes.video.context===c.LM}function W(e){let t=!1;const r=e.params,i=e.params.video;return r.frameworks&&(0,a.cy)(r.frameworks)&&(t=(0,p.mK)(e.params.frameworks,6)),!t&&i&&i.frameworks&&(0,a.cy)(i.frameworks)&&(t=(0,p.mK)(e.params.video.frameworks,6)),t}function H(e,t,r){(0,a.Im)(e.video)&&(e.video={}),e.video[t]=r}function J(e,t){!function(e){try{const t=document.getElementById(e).querySelectorAll("div[id^=\'google_ads\']");t[0]&&t[0].style.setProperty("display","none")}catch(e){}}(e.adUnitCode),function(e){try{const t=document.getElementById(e).querySelectorAll("script[id^=\'sas_script\']");t[0].nextSibling&&"iframe"===t[0].nextSibling.localName&&t[0].nextSibling.style.setProperty("display","none")}catch(e){}}(e.adUnitCode),e.renderer.push((()=>{(t?.defaultView||window).ANOutstreamVideo.renderAd({tagId:e.adResponse.tag_id,sizes:[e.getSize().split("x")],targetId:e.adUnitCode,uuid:e.adResponse.uuid,adResponse:e.adResponse,rendererOptions:e.renderer.getConfig()},Q.bind(null,e))}))}function Q(e,t,r){e.renderer.handleVideoEvent({id:t,eventName:r})}(0,d.a$)(q),(0,i.E)("appnexusBidAdapter")}},e=>{e.O(0,[802,444,126,247,982,698,85],(()=>{return t=791,e(e.s=t);var t}));e.O()}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[103],{7967:(t,e,n)=>{var d=n(7873),a=n(9115);const i="testbidder",s={code:i,isBidRequestValid:function(t){return!!t.params},buildRequests:function(t,e){return t.map((t=>({method:"GET",url:"",data:{mock:!0,bidId:t.bidId,testRequestId:t.params.requestId??null,testCPM:t.params.cpm??null,testWidth:t.params.width??null,testHeight:t.params.height??null,testAd:t.params.ad??null,testTTL:t.params.ttl??null,currency:t.params.currency??"USD"},bidRequestId:t.bidId})))},interpretResponse:function(t,e){const n=e.data.testWidth||300,d=e.data.testHeight||250,a=e.data.testRequestId||e.bidRequestId,s=`<!DOCTYPE html>\\n <html>\\n <head>\\n <meta charset="utf-8">\\n <style>\\n body { margin: 0; padding: 0; }\\n .creative-container {\\n position: relative;\\n width: ${n}px;\\n height: ${d}px;\\n background: #f0f0f0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n }\\n </style>\\n </head>\\n <body>\\n <div id="creative-${a}" class="creative-container">\\n <div style="text-align: center;">\\n <p>Test Ad</p>\\n <p>${e.data.testAd}</p>\\n <p>${n}x${d}</p>\\n </div>\\n <script>\\n (function() {\\n var size = { width: ${n}, height: ${d} };\\n window.parent.postMessage(JSON.stringify({\\n message: \'Prebid Creative Loaded\',\\n adId: \'${a}\',\\n size: size\\n }), \'*\');\\n })();\\n <\\/script>\\n </div>\\n </body>\\n </html>`;return[{requestId:e.data.testRequestId||e.bidRequestId,cpm:parseFloat(e.data.testCPM)||1,currency:e.data.currency,width:n,height:d,mediaType:"banner",ad:s,ttl:e.data.testTTL||300,creativeId:"test-creative-id",netRevenue:!0,bidderCode:i}]},onTimeout:function(t){},onBidWon:function(t){}};(0,a.a$)(s),(0,d.E)("testbidderBidAdapter")}},t=>{t.O(0,[802,85],(()=>{return e=7967,t(t.s=e);var e}));t.O()}]);\n})(),pbjs.processQueue();\n\n//# sourceURL=webpack://@wrapp/wrapper/../builds/80918AC8127BA/0.0.53/prebid.js?')},"../node_modules/css-loader/dist/cjs.js!./css/sticky.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "../node_modules/css-loader/dist/runtime/noSourceMaps.js");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "../node_modules/css-loader/dist/runtime/api.js");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.ad-anchor {\n box-sizing: border-box;\n z-index: 9999;\n background-color: #f0f0f0;\n border: 1px dotted #ccc;\n place-items: center;\n padding: 5px;\n transition: all 0.3s ease;\n display: flex;\n align-items: flex-start;\n justify-content: space-between; /* space between .ad-slot and .ad-action-buttons */\n}\n\n.ad-slot {\n flex-grow: 1; /* take up remaining space in center */\n flex-shrink: 1;\n color: #888; /* text color */\n text-align: center; /* center-align content inside div */\n display: flex;\n align-items: center; /* vertically center align all children */\n justify-content: center; /* horizontally center align all children */\n overflow: hidden;\n}\n\n.ad-action-buttons {\n display: flex; /* use flexbox for the buttons */\n gap: 5px; /* add 5px horizontal gap between buttons */\n flex-shrink: 0;\n}\n\n.ad-action-btn {\n box-sizing: border-box;\n width: 20px;\n height: 20px;\n color: #888;\n background: #f0f0f0;\n border: 1px solid #ccc;\n font-size: 20px;\n font-weight: normal;\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n line-height: 18px;\n text-align: center;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n\n/* top sticky ad */\n.ad-TP {\n position: sticky;\n top: 0;\n left: 0;\n width: calc(100vw - 25px);\n height: auto;\n min-height: 10vh; /* minimum height 10% of viewport */\n max-height: 30vh; /* maximum height 30% of viewport */\n}\n\n/* bottom sticky ad */\n.ad-BM {\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%; /* "fixed" position width goes by view port */\n height: auto;\n min-height: 10vh; /* minimum height 10% of viewport */\n max-height: 30vh; /* maximum height 30% of viewport */\n/* \n max-width: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-left: calc(-50vw + 50%); */\n}\n\n/* right rail sticky ad */\n.ad-RG {\n position: fixed;\n top: 50%;\n right: 0;\n width: 300px;\n height: 600px;\n transform: translateY(-50%);\n}\n\n/* left rail sticky ad */\n.ad-LF {\n position: fixed;\n top: 50%;\n left: 0;\n width: 300px;\n height: 600px;\n transform: translateY(-50%);\n}\n\n/* minimized states */\n.horizontal-minimized {\n height: 30px;\n min-height: 30px;\n overflow: hidden;\n}\n\n.vertical-minimized {\n width: 55px;\n min-width: 55px;\n overflow: hidden;\n}\n\n/* hidden state */\n.hidden {\n display: none;\n}\n\n`, ""]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./css/sticky.css?../node_modules/css-loader/dist/cjs.js')},"../node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";eval('\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = "";\n var needLayer = typeof item[5] !== "undefined";\n if (item[4]) {\n content += "@supports (".concat(item[4], ") {");\n }\n if (item[2]) {\n content += "@media ".concat(item[2], " {");\n }\n if (needLayer) {\n content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += "}";\n }\n if (item[2]) {\n content += "}";\n }\n if (item[4]) {\n content += "}";\n }\n return content;\n }).join("");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === "string") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== "undefined") {\n if (typeof item[5] === "undefined") {\n item[5] = layer;\n } else {\n item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = "".concat(supports);\n } else {\n item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/css-loader/dist/runtime/api.js?')},"../node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";eval("\n\nmodule.exports = function (i) {\n return i[1];\n};\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/css-loader/dist/runtime/noSourceMaps.js?")},"./css/sticky.css":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "../node_modules/style-loader/dist/runtime/styleDomAPI.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "../node_modules/style-loader/dist/runtime/insertBySelector.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "../node_modules/style-loader/dist/runtime/insertStyleElement.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "../node_modules/style-loader/dist/runtime/styleTagTransform.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../node_modules/css-loader/dist/cjs.js!./sticky.css */ "../node_modules/css-loader/dist/cjs.js!./css/sticky.css");\n\n \n \n \n \n \n \n \n \n \n\nvar options = {};\n\noptions.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\noptions.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");\noptions.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);\n\n\n\n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./css/sticky.css?')},"../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":module=>{"use strict";eval('\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = "".concat(id, " ").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?')},"../node_modules/style-loader/dist/runtime/insertBySelector.js":module=>{"use strict";eval('\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === "undefined") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error("Couldn\'t find a style target. This probably means that the value for the \'insert\' parameter is invalid.");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/insertBySelector.js?')},"../node_modules/style-loader/dist/runtime/insertStyleElement.js":module=>{"use strict";eval('\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement("style");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/insertStyleElement.js?')},"../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval('\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = true ? __webpack_require__.nc : 0;\n if (nonce) {\n styleElement.setAttribute("nonce", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js?')},"../node_modules/style-loader/dist/runtime/styleDomAPI.js":module=>{"use strict";eval('\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = "";\n if (obj.supports) {\n css += "@supports (".concat(obj.supports, ") {");\n }\n if (obj.media) {\n css += "@media ".concat(obj.media, " {");\n }\n var needLayer = typeof obj.layer !== "undefined";\n if (needLayer) {\n css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");\n }\n css += obj.css;\n if (needLayer) {\n css += "}";\n }\n if (obj.media) {\n css += "}";\n }\n if (obj.supports) {\n css += "}";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== "undefined") {\n css += "\\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === "undefined") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/styleDomAPI.js?')},"../node_modules/style-loader/dist/runtime/styleTagTransform.js":module=>{"use strict";eval("\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/styleTagTransform.js?")},"./src/abTests.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getTestAdSlots: () => (/* binding */ getTestAdSlots)\n/* harmony export */ });\n/* harmony import */ var xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! xxhash-wasm */ \"../node_modules/xxhash-wasm/esm/xxhash-wasm.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants/config */ \"./src/constants/config.ts\");\n// file: wrapper/src/abTests.ts\n\n\n\nconst MAX_HASH_32 = Number(2 ** 32 - 1); // max possible value for xxHash32\n/**\n * Deep merge utility function for merging ad slot overrides\n * Handles nested objects properly, unlike shallow spread operator\n */\nfunction deepMerge(target, source) {\n if (source === null || source === undefined) {\n return target;\n }\n if (typeof source !== 'object' || Array.isArray(source)) {\n return source;\n }\n const result = { ...target };\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n if (typeof source[key] === 'object' && source[key] !== null && !Array.isArray(source[key]) &&\n typeof target[key] === 'object' && target[key] !== null && !Array.isArray(target[key])) {\n result[key] = deepMerge(target[key], source[key]);\n }\n else {\n result[key] = source[key];\n }\n }\n }\n return result;\n}\n/**\n *\n * @param audienceId can be either userId or sessionId\n * @param testId can be either testId or experimentId\n * @returns number between [0, 1]\n */\nasync function getProjection(audienceId, testId) {\n const { h32 } = await (0,xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n const data = `${audienceId}:${testId}`;\n // compute hash\n const xxHash32 = h32(data, 0); // seed 0 explicitly\n // normalize to [0, 1]\n const projection = parseFloat((Number(xxHash32) / Number(MAX_HASH_32)).toFixed(2));\n if (projection < 0 || projection > 1) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`projection '${projection}' not between 0 and 1`, true);\n }\n return projection;\n}\nasync function getTreatment(test, projection) {\n let treatment = null;\n try {\n const url = `${_constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.t /*testsAPIEndpoint*/}/allocations?testId=${test.i /*testId*/}`;\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"text/plain\"\n }\n });\n switch (response.status) {\n case 200:\n let allocations = await response.json();\n // Handle malformed API responses\n if (!Array.isArray(allocations)) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Invalid API response: expected array, got ${typeof allocations}`);\n break;\n }\n if (allocations.length === 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Empty allocations array returned from API for testId '${test.i}'`);\n break;\n }\n let cumAlloc = 0;\n test.tm /*treatments*/.forEach(tr => {\n tr.a /*allocation*/ = allocations.find(alloc => alloc.i === tr.i /*id*/)?.a; // adds values to wrapperConfig.layouts[].tests[].treatment[]\n cumAlloc += tr.a /*allocation*/ ?? 0;\n if ((treatment === null) && (projection <= cumAlloc)) {\n treatment = tr;\n }\n });\n break;\n case 204:\n default:\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`http error! ${response.status} ${response.statusText}`);\n }\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('error fetching tests data in getTreatment():', false, error);\n }\n return treatment;\n}\n// export async function getTestAdSlots(layout: Layout): Promise<AdSlot[]> {\n// const adSlotOverridesMap: Map<string, AdSlotOverrides> = new Map();\n// const testPromises = layout.ts/*tests*/?.map(async test => {\n// // TODO: support multiple randomization method, userId vs. sessionId\n// const projection: number = await getProjection(getUserId(), test.i/*testId*/);\n// const treatment: Treatment | null = await getTreatment(test, projection);\n// if (treatment === null) {\n// consoleDebug(`unable to find treatment for testId '${test.i/*testId*/}' and projection: ${projection}, proceeding without tests ...`);\n// return;\n// }\n// consoleDebug(`test details testId: '${test.i/*testId*/}', projection: ${projection}, treatmentId: '${treatment.i/*id*/}'`);\n// // multiple tests can include same ad unit, but not override same attribute (1 level deep)\n// treatment.as/*adSlots*/.forEach((auo: AdSlotOverrides) => {\n// const tauo: AdSlotOverrides | undefined = adSlotOverridesMap.get(auo.g/*gam ad unit code*/);\n// adSlotOverridesMap.set(auo.g, {\n// g: auo.g, /* gam ad unit code */\n// o: (tauo?.o && auo.o) /* auctionTimeout */\n// ? (() => { throw new Error(`auctionTimeout defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.o ?? auo.o),\n// n: (tauo?.n && auo.n) /* insert */\n// ? (() => { throw new Error(`insert defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.n ?? auo.n),\n// m: (tauo?.m && auo.m) /* media */\n// ? (() => { throw new Error(`media defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.m ?? auo.m),\n// tg: (tauo?.tg && auo.tg) /* tagIds */\n// ? (() => { throw new Error(`tagIds defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.tg ?? auo.tg),\n// r: (tauo?.r && auo.r) /* refresh */\n// ? (() => { throw new Error(`refresh defined in multiple tests for ad unit '${auo.g}'`) })()\n// : (tauo?.r ?? auo.r),\n// l: (tauo?.l && auo.l) /* load */\n// ? (() => { throw new Error(`load defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.l ?? auo.l),\n// kv: (tauo?.kv && auo.kv) /* targetingKeyValues */\n// ? (() => { throw new Error(`targetingKeyValues defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.kv ?? auo.kv),\n// f: (tauo?.f && auo.f) /* price floor */\n// ? (() => { throw new Error(`floor defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.f ?? auo.f)\n// } as AdSlot);\n// });\n// }) ?? null;\n// if (testPromises) {\n// await Promise.all(testPromises);\n// }\n// const testAdSlots: AdSlot[] = [];\n// adSlotOverridesMap.forEach((auo: AdSlotOverrides) => {\n// const iau: AdSlot | undefined = layout.as /* ad slots */\n// .find(au => au.g === auo.g); /* gam ad unit code */\n// testAdSlots.push({\n// g: auo.g, /* gam ad unit code */\n// o: auo.o ?? iau?.o as number, /* auctionTimeout */\n// n: (auo.n || iau?.n) /* insert */\n// ? auo.n ?? iau?.n as Insert\n// : (() => { throw new Error(`insert not defined for test ad unit '${auo.g}'`) })(),\n// m: (auo.m || iau?.m) /* media */\n// ? auo.m ?? iau?.m as Media\n// : (() => { throw new Error(`media not defined for test ad unit '${auo.g}'`) })(),\n// tg: (auo.tg || iau?.tg) /* tagIds */\n// ? auo.tg ?? iau?.tg as TagId[]\n// : (() => { throw new Error(`tagIds not defined for test ad unit '${auo.g}'`) })(),\n// r: auo.r ?? iau?.r as Refresh, /* refresh */\n// l: (auo.l || iau?.l) /* load */\n// ? auo.l ?? iau?.l as Load\n// : (() => { throw new Error(`load not defined for test ad unit '${auo.g}'`) })(),\n// kv: auo.kv ?? iau?.kv as KeyValue, /* targetingKeyValues */\n// f: auo.f ?? iau?.f as number /* price floor */\n// } as AdSlot);\n// });\n// return testAdSlots;\n// }\nasync function getTestAdSlots(layout) {\n const adSlotOverridesMap = new Map();\n const testPromises = layout.ts?.map(async (test) => {\n const projection = await getProjection((0,_utils__WEBPACK_IMPORTED_MODULE_1__.getUserId)(), test.i);\n const treatment = await getTreatment(test, projection);\n if (treatment === null) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`unable to find treatment for testId '${test.i}' and projection: ${projection}, proceeding without tests ...`);\n return;\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`test details testId: '${test.i}', projection: ${projection}, treatmentId: '${treatment.i}'`);\n treatment.as.forEach((currentTreatmentOverride) => {\n const gamUnitCode = currentTreatmentOverride.g;\n const previouslyAccumulatedOverrides = adSlotOverridesMap.get(gamUnitCode);\n const effectiveOverridesForSlot = { g: gamUnitCode };\n const processProperty = (propName) => {\n const existingVal = previouslyAccumulatedOverrides?.[propName];\n const newValFromCurrentTreatment = currentTreatmentOverride[propName];\n if (newValFromCurrentTreatment !== undefined) {\n if (existingVal !== undefined) { // Property was already defined by a previous test's treatment\n const fieldName = String(propName) === 'o' ? 'auctionTimeout' : String(propName);\n // For 'o' (auctionTimeout), throw if it's defined again, regardless of value, to match test.\n if (String(propName) === 'o') {\n throw new Error(`${fieldName} defined in multiple tests for ad unit '${gamUnitCode}'`);\n }\n // For other properties, throw only if values are different.\n if (JSON.stringify(existingVal) !== JSON.stringify(newValFromCurrentTreatment)) {\n throw new Error(`${fieldName} defined differently in multiple tests for ad unit '${gamUnitCode}'`);\n }\n }\n effectiveOverridesForSlot[propName] = newValFromCurrentTreatment;\n }\n else if (existingVal !== undefined) {\n effectiveOverridesForSlot[propName] = existingVal;\n }\n };\n processProperty('o');\n processProperty('n');\n processProperty('m');\n processProperty('tg');\n processProperty('r');\n processProperty('l');\n processProperty('kv');\n processProperty('f');\n if (Object.keys(effectiveOverridesForSlot).length > 1) {\n adSlotOverridesMap.set(gamUnitCode, effectiveOverridesForSlot);\n }\n else {\n if (!previouslyAccumulatedOverrides || Object.keys(previouslyAccumulatedOverrides).length <= 1) {\n adSlotOverridesMap.delete(gamUnitCode);\n }\n }\n });\n }) ?? null;\n if (testPromises) {\n await Promise.all(testPromises);\n }\n const testAdSlots = [];\n adSlotOverridesMap.forEach((accumulatedOverrides) => {\n const initialAdSlot = layout.as.find(au => au.g === accumulatedOverrides.g);\n if (!initialAdSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Original ad slot not found for override: ${accumulatedOverrides.g}`);\n return;\n }\n const mergedSlot = deepMerge(initialAdSlot, accumulatedOverrides);\n if (!mergedSlot.n)\n throw new Error(`insert not defined for test ad unit '${mergedSlot.g}'`);\n if (!mergedSlot.m)\n throw new Error(`media not defined for test ad unit '${mergedSlot.g}'`);\n if (!mergedSlot.tg)\n throw new Error(`tagIds not defined for test ad unit '${mergedSlot.g}'`);\n if (!mergedSlot.l)\n throw new Error(`load not defined for test ad unit '${mergedSlot.g}'`);\n testAdSlots.push(mergedSlot);\n });\n return testAdSlots;\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/abTests.ts?")},"./src/auctionConductor.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setRegisterSlotWorker: () => (/* binding */ setRegisterSlotWorker),\n/* harmony export */ setServeAdWorker: () => (/* binding */ setServeAdWorker)\n/* harmony export */ });\n/* harmony import */ var _refreshEventHandlers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./refreshEventHandlers */ "./src/refreshEventHandlers.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./auctionState */ "./src/auctionState.ts");\n// file: wrapper/src/auctionConductor.ts\n\n\n\n\n\n/**\n *\n * auction is event based and conducted in 3 steps\n * 1) register ad slot after parent div element is added - setRegisterSlotWorker()\n * 2) start auction\n * 3)\n *\n */\n// register handler: to register ad slot after div has loaded in body\nfunction setRegisterSlotWorker(slot, window = globalThis.window) {\n const slot_div_id = slot?.getSlotElementId();\n if (!slot_div_id) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.consoleError)(\'setRegisterSlotWorker: Undefined slot element id, cannot register slot.\', false, slot);\n return;\n }\n const element = window.document.getElementById(slot_div_id);\n if (element) { // element already exists\n registerSlot(element);\n return;\n }\n if (window.document.body) { // page has already loaded\n setupMutationObserver(slot_div_id);\n }\n else {\n window.document.addEventListener(\'DOMContentLoaded\', () => {\n const element = window.document.getElementById(slot_div_id);\n if (element) { // element exists in dom now\n registerSlot(element);\n }\n else { // for future additions\n setupMutationObserver(slot_div_id);\n }\n });\n }\n // set up MutationObserver for future additions\n function setupMutationObserver(slot_div_id) {\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n const element = window.document.getElementById(slot_div_id);\n if (element) { // element exists in dom now\n observer.disconnect();\n registerSlot(element);\n return;\n }\n }\n });\n // start observing document for changes\n observer.observe(window.document.body, {\n childList: true, // listen for direct children added/removed\n subtree: true // listen for changes in the entire subtree\n });\n }\n function registerSlot(element) {\n googletag.cmd.push(() => {\n googletag.display(element.id); // called to register slot, disableInitialLoad() should still apply\n // fetch ads for "lazy" load ad units only\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.getAuctionEntry)(element.id);\n if (entry?.adSlot?.l /*load*/ === _types_enums__WEBPACK_IMPORTED_MODULE_2__.Load.Lazy) {\n setFetchAdWorker(element);\n }\n else {\n // register refresh handlers for "eager" load ad units\n (0,_refreshEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setRefreshWorker)(element.id);\n }\n });\n }\n}\n// meant to be called for "lazy" load ad slots only\nfunction setFetchAdWorker(element) {\n // check if intersection observer already exists for element\n const existingEntry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.getAuctionEntry)(element.id);\n if (existingEntry?.intersectionObserver) {\n return;\n }\n const options = {\n root: null, // element to intersect with browser viewport\n rootMargin: "1000px", // margin to grow or shrink intersection frame of root, default 100px (10% of most popular viewport 1080px)\n threshold: 0.0 // % element visible\n };\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if ((entry.intersectionRatio > 0) && !(0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.isAuctionInProgress)(element.id)) {\n // disconnect observer, set auction in progress\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.clearIntersectionObserver)(element.id);\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.setAuctionInProgress)(element.id, _types_enums__WEBPACK_IMPORTED_MODULE_2__.ServeType.Initial);\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.requestBids({\n // adslot element (div) id used as unique prebid adunit code\n adUnitCodes: [element.id],\n timeout: _constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.o /*auctionTimeout*/ // TODO: use adUnit level timeout when set\n });\n });\n // register refresh handlers for "lazy" load ad slots\n (0,_refreshEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setRefreshWorker)(element.id);\n }\n });\n }, options);\n // store observer instance in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.setIntersectionObserver)(element.id, observer);\n observer.observe(element);\n}\nfunction setServeAdWorker() {\n const pbjs = window.pbjs;\n pbjs.onEvent(\'auctionEnd\', (auction) => {\n // clear auction in progress flags for completed auction slots\n const renderAdSlotCodes = auction.adUnitCodes;\n renderAdSlotCodes.forEach(adUnitCode => {\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.clearAuctionInProgress)(adUnitCode);\n });\n googletag.cmd.push(() => {\n const renderSlots = googletag.pubads()\n .getSlots()\n // filter adslot element (div) id used as unique prebid adunit code\n .filter(slot => renderAdSlotCodes.includes(slot.getSlotElementId()));\n if (renderSlots.length > 0) {\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.setTargetingForGPTAsync(renderAdSlotCodes);\n googletag.pubads().refresh(renderSlots);\n });\n }\n });\n });\n // TODO: should this part be moved to a different function?\n pbjs.onEvent(\'bidWon\', (bid) => {\n const slot = googletag.pubads()\n .getSlots()\n // find by adslot element (div) id used as unique prebid adunit code\n .find(slot => slot.getSlotElementId() === bid.adUnitCode)\n ?? null;\n // TODO: add prefix to targeting keys to make it obvious that this is specific to our wrapper\n if (slot) {\n googletag.cmd.push(() => {\n slot.setTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.p /*targetKeyPrefix*/}_bidder_code`, bid.bidderCode);\n slot.setTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.p /*targetKeyPrefix*/}_cpm`, bid.cpm);\n slot.setTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.p /*targetKeyPrefix*/}_cpm_currency`, bid.currency);\n });\n }\n });\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/auctionConductor.ts?')},"./src/auctionState.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clearAllIntersectionObservers: () => (/* binding */ clearAllIntersectionObservers),\n/* harmony export */ clearAuctionInProgress: () => (/* binding */ clearAuctionInProgress),\n/* harmony export */ clearIntersectionObserver: () => (/* binding */ clearIntersectionObserver),\n/* harmony export */ deleteAuctionEntry: () => (/* binding */ deleteAuctionEntry),\n/* harmony export */ getAllAdSlots: () => (/* binding */ getAllAdSlots),\n/* harmony export */ getAllAuctionEntries: () => (/* binding */ getAllAuctionEntries),\n/* harmony export */ getAuctionEntry: () => (/* binding */ getAuctionEntry),\n/* harmony export */ isAuctionInProgress: () => (/* binding */ isAuctionInProgress),\n/* harmony export */ setAuctionEntry: () => (/* binding */ setAuctionEntry),\n/* harmony export */ setAuctionInProgress: () => (/* binding */ setAuctionInProgress),\n/* harmony export */ setIntersectionObserver: () => (/* binding */ setIntersectionObserver),\n/* harmony export */ updateAuctionEntry: () => (/* binding */ updateAuctionEntry)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n// file: wrapper/src/auctionState.ts\n\n// maps adUnit.code::adUnit.div to { adSlot, auctionId }\nconst adSlotAuctionMap = new Map();\nfunction getAuctionEntry(adUnitCode) {\n return adSlotAuctionMap.get(adUnitCode);\n}\nfunction getAllAuctionEntries() {\n return Array.from(adSlotAuctionMap.values());\n}\nfunction getAllAdSlots() {\n return getAllAuctionEntries()\n .map(entry => entry.adSlot)\n .filter((slot) => !!slot);\n}\nfunction setAuctionEntry(adUnitCode, entry) {\n adSlotAuctionMap.set(adUnitCode, entry);\n}\nfunction updateAuctionEntry(adUnitCode, updates) {\n const currentEntry = adSlotAuctionMap.get(adUnitCode) || {};\n adSlotAuctionMap.set(adUnitCode, {\n ...currentEntry,\n ...updates\n });\n}\nfunction deleteAuctionEntry(adUnitCode) {\n return adSlotAuctionMap.delete(adUnitCode);\n}\nfunction isAuctionInProgress(adUnitCode) {\n const entry = adSlotAuctionMap.get(adUnitCode);\n if (entry?.isAuctionInProgress) {\n const caller = new Error().stack?.split('\\n')[2]?.trim().split(' ')[1] || 'unknown';\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.consoleDebug)(`${caller}: Auction already in progress for slot, skipping`, adUnitCode);\n return true;\n }\n return false;\n}\nfunction setAuctionInProgress(adUnitCode, serveType, adSlot) {\n const entry = adSlotAuctionMap.get(adUnitCode) || { adSlot: adSlot };\n updateAuctionEntry(adUnitCode, {\n isAuctionInProgress: true,\n serveType: serveType\n });\n}\nfunction clearAuctionInProgress(adUnitCode) {\n const entry = adSlotAuctionMap.get(adUnitCode);\n if (entry) {\n updateAuctionEntry(adUnitCode, {\n isAuctionInProgress: false\n });\n }\n}\nfunction setIntersectionObserver(adUnitCode, observer) {\n updateAuctionEntry(adUnitCode, {\n intersectionObserver: observer\n });\n}\nfunction clearIntersectionObserver(adUnitCode) {\n const entry = adSlotAuctionMap.get(adUnitCode);\n if (entry?.intersectionObserver) {\n entry.intersectionObserver.disconnect();\n updateAuctionEntry(adUnitCode, {\n intersectionObserver: undefined\n });\n }\n}\nfunction clearAllIntersectionObservers() {\n adSlotAuctionMap.forEach((entry, adUnitCode) => {\n if (entry.intersectionObserver) {\n clearIntersectionObserver(adUnitCode);\n }\n });\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/auctionState.ts?")},"./src/audiences.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getUserBrowser: () => (/* binding */ getUserBrowser),\n/* harmony export */ getUserCountry: () => (/* binding */ getUserCountry),\n/* harmony export */ matchAudience: () => (/* binding */ matchAudience)\n/* harmony export */ });\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n// file: wrapper/src/audiences.ts\n\n\nfunction getUserBrowser() {\n const userAgent = navigator?.userAgent;\n if (!userAgent) {\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Unknown;\n }\n const ua = userAgent.toLowerCase();\n // check edge first, its ua string often includes \"chrome\"\n // modern edge uses \"edg/\", older edge used \"edge/\"\n if (ua.indexOf('edg/') > -1 || ua.indexOf('edge/') > -1 || ua.indexOf('edge') > -1) { // a bit more robust for edge\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Edge;\n }\n else if (ua.indexOf('chrome') > -1 && ua.indexOf('safari') > -1) {\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Chrome;\n }\n else if (ua.indexOf('safari') > -1) { // safari only (no \"chrome\" or \"edg\")\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Safari;\n }\n else if (ua.indexOf('firefox') > -1) {\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Firefox;\n }\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Unknown;\n}\nfunction getUserCountry() {\n let localeString;\n try {\n localeString = Intl.DateTimeFormat().resolvedOptions().locale;\n }\n catch (error) {\n localeString = undefined;\n }\n let localeCountryCode;\n if (localeString) {\n const parts = localeString.split('-');\n if (parts.length > 1) {\n localeCountryCode = parts[parts.length - 1]; // take last part\n }\n }\n const langString = navigator?.language;\n let langCountryCode;\n if (langString) {\n const parts = langString.split('-');\n if (parts.length > 1) {\n langCountryCode = parts[parts.length - 1]; // take last part\n }\n }\n // return uppercase country code if found\n if (localeCountryCode)\n return localeCountryCode.toUpperCase();\n if (langCountryCode)\n return langCountryCode.toUpperCase();\n return null;\n}\nfunction matchAudience(layout, window = globalThis.window) {\n for (const inc of layout.t /*targetAudience*/?.ic /*includes*/ ?? []) {\n if (inc.bw /*browser*/ && !inc.bw /*browser*/.includes(getUserBrowser()))\n return null;\n if (inc.dv /*device*/ && !inc.dv /*device*/.includes((0,_utils__WEBPACK_IMPORTED_MODULE_1__.getUserDevice)(window)))\n return null;\n if (inc.cy /*country*/ && !inc.cy /*country*/.includes(getUserCountry() ?? ''))\n return null;\n }\n for (const exc of layout.t /*targetAudience*/?.ex /*excludes*/ ?? []) {\n if (exc.bw /*browser*/ && exc.bw /*browser*/.includes(getUserBrowser()))\n return null;\n if (exc.dv /*device*/ && exc.dv /*device*/.includes((0,_utils__WEBPACK_IMPORTED_MODULE_1__.getUserDevice)(window)))\n return null;\n if (exc.cy /*country*/ && exc.cy /*country*/.includes(getUserCountry() ?? ''))\n return null;\n }\n return layout;\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/audiences.ts?")},"./src/bootstrap.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bootstrapWrapper: () => (/* binding */ bootstrapWrapper),\n/* harmony export */ initAdserver: () => (/* binding */ initAdserver),\n/* harmony export */ processAdSlots: () => (/* binding */ processAdSlots)\n/* harmony export */ });\n/* harmony import */ var _logEventHandlers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logEventHandlers */ "./src/logEventHandlers.ts");\n/* harmony import */ var _auctionConductor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./auctionConductor */ "./src/auctionConductor.ts");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./auctionState */ "./src/auctionState.ts");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logger */ "./src/logger.ts");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _abTests__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./abTests */ "./src/abTests.ts");\n/* harmony import */ var _audiences__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./audiences */ "./src/audiences.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n/* harmony import */ var _stickySlot__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./stickySlot */ "./src/stickySlot.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n// file: wrapper/src/bootstrap.ts\n\n\n\n\n\n\n\n\n\n\nfunction initAdserver(window = globalThis.window) {\n const googletag = window.googletag;\n const pbjs = window.pbjs;\n if (!googletag.pubads) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleError)(\'googletag (google publisher tag) did not load properly...\', false, window);\n return;\n }\n if (pbjs.initAdserverSet)\n return;\n pbjs.initAdserverSet = true;\n googletag.cmd.push(() => {\n if (pbjs.setTargetingForGPTAsync) {\n pbjs.setTargetingForGPTAsync();\n googletag.pubads().refresh();\n }\n else {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleError)(\'Prebid did not load properly: setTargetingForGPTAsync is undefined\', false, window);\n googletag.pubads().refresh(); // fallback to direct googletag refresh\n //TODO log error\n }\n });\n}\nfunction processAdSlots(adSlots, window = globalThis.window) {\n const pbjs = window.pbjs;\n const googletag = window.googletag;\n pbjs.que.push(() => {\n // add all ad units to prebid auction, update auction map\n const pbjsAdUnits = [];\n adSlots.forEach(adSlot => {\n const adUnitCode = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getSlotDivId)(adSlot);\n // create prebid ad unit\n const pbjsAdUnit = {\n code: adUnitCode, // adslot element (div) id used as unique prebid adunit code\n div: adUnitCode,\n mediaTypes: {\n banner: {\n sizes: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getMediaSizes)(adSlot.m /*media*/, window)\n }\n },\n bids: adSlot.tg /*tagIds*/.map(tagId => ({\n bidder: tagId.b /*bidder*/,\n params: tagId.pm /*params*/\n }))\n };\n pbjsAdUnits.push(pbjsAdUnit);\n // set pbjs registered status in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.updateAuctionEntry)(adUnitCode, {\n adSlot: adSlot,\n adUnit: pbjsAdUnit\n });\n });\n // add all units to prebid\n if (pbjsAdUnits.length > 0) {\n pbjs.addAdUnits(pbjsAdUnits);\n }\n // start prebid auction for "eager" load ad slots\n var adUnitCodes = adSlots\n .filter(slot => [_types_enums__WEBPACK_IMPORTED_MODULE_9__.Load.Eager, _types_enums__WEBPACK_IMPORTED_MODULE_9__.Load.Dynamic, _types_enums__WEBPACK_IMPORTED_MODULE_9__.Load.OnDemand].includes(slot.l /*load*/)) // filter ad unit codes for immediate auction\n .map(slot => (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getSlotDivId)(slot)); // return prebid adunit codes (adslot div ids)\n // filter out slots with auctions in progress and set flags for valid slots\n const validAdUnitCodes = adUnitCodes.filter(adUnitCode => {\n if ((0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.isAuctionInProgress)(adUnitCode)) {\n return false;\n }\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.setAuctionInProgress)(adUnitCode, _types_enums__WEBPACK_IMPORTED_MODULE_9__.ServeType.Initial);\n return true;\n });\n if (validAdUnitCodes.length > 0) {\n pbjs.requestBids({\n adUnitCodes: validAdUnitCodes,\n timeout: _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.o /*auctionTimeout*/\n });\n }\n });\n googletag.cmd.push(() => {\n adSlots\n .forEach((adSlot) => {\n var sizes = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getMediaSizes)(adSlot.m /*media*/, window);\n const divId = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getSlotDivId)(adSlot);\n const gptSlot = googletag\n .defineSlot(adSlot.g /*gamAdUnitCode*/, sizes, divId)\n ?.addService(googletag.pubads());\n if (gptSlot) {\n // set googletag slot in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.updateAuctionEntry)(divId, {\n gptSlot: gptSlot\n });\n // slot level targeting (google publisher tag)\n Object.entries(adSlot.kv /*targetKeyValues*/ || {}).forEach(([key, value]) => {\n gptSlot.setTargeting(key, value);\n });\n if (adSlot.f /*price floor*/) {\n gptSlot.setTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.p /*targetKeyPrefix*/}_floor`, adSlot.f /*price floor*/.toString());\n }\n if (adSlot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_9__.Anchor.Window) {\n (0,_stickySlot__WEBPACK_IMPORTED_MODULE_8__.setInsertSlotWorker)(adSlot, window); // add ad slot element to body before registering slot\n }\n (0,_auctionConductor__WEBPACK_IMPORTED_MODULE_1__.setRegisterSlotWorker)(gptSlot, window);\n }\n });\n });\n}\nasync function bootstrapWrapper(window = globalThis.window) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleDebug)("app info" +\n "\\n name: " + "app-p80918ac8127ba.js" +\n "\\n version: " + "0.0.53" +\n "\\n build date: " + "2025-08-13T21:51:38.387Z", window);\n // check config domain covers publisher domain\n const secondLevelDomain = window.location.hostname.split(\'.\').slice(-2).join(\'.\');\n const thirdLevelDomain = window.location.hostname.split(\'.\').slice(-3).join(\'.\');\n const sldHash = await (0,_utils__WEBPACK_IMPORTED_MODULE_4__.generateHash)(secondLevelDomain, 13);\n const tldHash = await (0,_utils__WEBPACK_IMPORTED_MODULE_4__.generateHash)(thirdLevelDomain, 13);\n if (![sldHash, tldHash].includes(_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.d /*domain*/)) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleError)(`inventory defined for different domain with ID \'${_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.d /*domain*/}\', no ads will be served`, false, window);\n return;\n }\n //TODO: check wrapper version compatibility with config version\n // in case pbjs does not load, ensure googletag.pubads().refresh() is called\n setTimeout(() => {\n initAdserver(window);\n }, _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.f /*failsafeTimeout*/);\n const pbjs = window.pbjs;\n const googletag = window.googletag;\n pbjs.que.push(() => {\n pbjs.initAdserverSet = true; // execute first once pbjs setup is complete\n pbjs.setConfig({\n currency: {\n adServerCurrency: _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.c /*currencyCode*/ || \'USD\',\n // prebid.org maintained currency file, updated daily\n conversionUrl: \'https://cdn.example.com/currency/latest.json\',\n // fallback rates if needed\n // rates: wrapperConfig.cr/*currencyRates*/ || {}\n },\n priceGranularity: {\n buckets: _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.pb /*priceBuckets*/.map((bucket) => ({\n min: Number(bucket.f /*floor*/),\n max: Number(bucket.c /*ceiling*/),\n increment: Number(bucket.s /*step*/),\n }))\n },\n });\n // register event handlers and workers early\n (0,_logger__WEBPACK_IMPORTED_MODULE_3__.initLogger)(window);\n (0,_logEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setDocumentEventLogHandlers)(window);\n (0,_logEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setAuctionEventLogHandlers)(window);\n // ensure googletag api is ready before registering log handlers for googletag events\n googletag.cmd.push(() => {\n (0,_logEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setGPTEventLogHandlers)(window);\n });\n (0,_auctionConductor__WEBPACK_IMPORTED_MODULE_1__.setServeAdWorker)();\n });\n googletag.cmd.push(() => {\n googletag.pubads().disableInitialLoad();\n });\n // filter layouts applicable to current page\n const layouts = (_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.ly /*layout*/\n ?.filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_4__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/))\n ?.filter((ly) => (0,_audiences__WEBPACK_IMPORTED_MODULE_6__.matchAudience)(ly, window) !== null)) ?? [];\n // exclude ad slots that are overriden in any tests\n const layoutFilteredAdSlots = layouts\n .flatMap(ly => {\n const testAdSlotCodes = new Set(ly.ts /*tests*/?.flatMap(test => test.tm /*treatments*/.flatMap(treatment => treatment.as /*adSlots*/.map(adUnit => adUnit.g /*gamAdUnitCode*/) // TODO: move from gam ad unit code to ad slot div id??\n )) || []);\n return ly.as /*adSlots*/.filter(adUnit => !testAdSlotCodes.has(adUnit.g /*gamAdUnitCode*/));\n });\n [\n ...layoutFilteredAdSlots,\n ..._constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.as /*adSlots*/, // config ad slots override layout ad slots\n ].forEach((adSlot) => {\n const key = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getSlotDivId)(adSlot);\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.updateAuctionEntry)(key, {\n adSlot: adSlot\n });\n });\n if ((0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.getAllAuctionEntries)().length === 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleDebug)(`no ad slots defined for pagepath \'${window.location.pathname}\' (no matching layouts or global slots), ads will not be served`, window);\n return;\n }\n processAdSlots((0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.getAllAdSlots)(), window);\n googletag.cmd.push(() => {\n // page-level targeting (google publisher tag)\n const allPageLevelTargeting = Object.values(layouts)\n .map(layout => layout.kv /*pageTargetingKeyValues*/ || {})\n .reduce((acc, kv) => ({ ...acc, ...kv }), {}); // merge all kv objects\n Object.entries(allPageLevelTargeting).forEach(([key, value]) => {\n googletag.pubads().setTargeting(key, value);\n });\n });\n // retrieve test ad units meant for user\n const testAdSlots = (await Promise.all(layouts\n .filter((layout) => layout.ts /*tests*/)\n .map((layout) => (0,_abTests__WEBPACK_IMPORTED_MODULE_5__.getTestAdSlots)(layout))))\n .flat();\n if (testAdSlots.length > 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleDebug)(\'test ad slots found will be served\', testAdSlots, window);\n processAdSlots(testAdSlots, window);\n }\n googletag.cmd.push(() => {\n googletag.pubads().enableSingleRequest(); // all ad slots should be defined and added to service before\n googletag.enableServices();\n });\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/bootstrap.ts?')},"./src/constants/config.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ wrapperConfig: () => (/* binding */ wrapperConfig)\n/* harmony export */ });\nconst wrapperConfig = __webpack_require__(/*! ../builds/80918AC8127BA/0.0.53/config-d80918ac8127ba-v0-0-53.json */ "../builds/80918AC8127BA/0.0.53/config-d80918ac8127ba-v0-0-53.json");\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/constants/config.ts?')},"./src/constants/loggerEndpoints.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AD_IMPRESSION_ENDPOINT: () => (/* binding */ AD_IMPRESSION_ENDPOINT),\n/* harmony export */ AD_SERVE_ENDPOINT: () => (/* binding */ AD_SERVE_ENDPOINT),\n/* harmony export */ AD_UNFILLED_ENDPOINT: () => (/* binding */ AD_UNFILLED_ENDPOINT),\n/* harmony export */ AD_VIEWABLE_ENDPOINT: () => (/* binding */ AD_VIEWABLE_ENDPOINT),\n/* harmony export */ AUCTION_END_ENDPOINT: () => (/* binding */ AUCTION_END_ENDPOINT),\n/* harmony export */ AUCTION_INIT_ENDPOINT: () => (/* binding */ AUCTION_INIT_ENDPOINT),\n/* harmony export */ BATCH_ENDPOINT: () => (/* binding */ BATCH_ENDPOINT),\n/* harmony export */ BID_REJECT_ENDPOINT: () => (/* binding */ BID_REJECT_ENDPOINT),\n/* harmony export */ BID_RESPONSE_ENDPOINT: () => (/* binding */ BID_RESPONSE_ENDPOINT),\n/* harmony export */ BID_TIMEOUTS_ENDPOINT: () => (/* binding */ BID_TIMEOUTS_ENDPOINT),\n/* harmony export */ BID_WON_ENDPOINT: () => (/* binding */ BID_WON_ENDPOINT),\n/* harmony export */ LOGGER_API_PATH: () => (/* binding */ LOGGER_API_PATH),\n/* harmony export */ LOGGER_API_V1_PATH: () => (/* binding */ LOGGER_API_V1_PATH),\n/* harmony export */ PAGE_VIEW_ENDPOINT: () => (/* binding */ PAGE_VIEW_ENDPOINT)\n/* harmony export */ });\n// file: wrapper/src/constants/loggerEndpoints.ts\nconst LOGGER_API_PATH = '/api/logger';\nconst LOGGER_API_V1_PATH = `${LOGGER_API_PATH}/v1`;\n// batch events\nconst BATCH_ENDPOINT = '/batch';\n// page events\nconst PAGE_VIEW_ENDPOINT = '/page/view';\n// auction events\nconst AUCTION_INIT_ENDPOINT = '/auction/init';\nconst AUCTION_END_ENDPOINT = '/auction/end';\n// bid events\nconst BID_RESPONSE_ENDPOINT = '/bid/response';\nconst BID_WON_ENDPOINT = '/bid/won';\nconst BID_REJECT_ENDPOINT = '/bid/reject';\nconst BID_TIMEOUTS_ENDPOINT = '/bid/timeouts';\n// ad serve events\nconst AD_SERVE_ENDPOINT = '/ad/serve';\nconst AD_IMPRESSION_ENDPOINT = '/ad/impression';\nconst AD_VIEWABLE_ENDPOINT = '/ad/viewable';\nconst AD_UNFILLED_ENDPOINT = '/ad/unfilled';\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/constants/loggerEndpoints.ts?")},"./src/dynamicSlot.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ deleteDynamicAdSlot: () => (/* binding */ deleteDynamicAdSlot),\n/* harmony export */ dynamicSlotId: () => (/* binding */ dynamicSlotId),\n/* harmony export */ insertAdSlot: () => (/* binding */ insertAdSlot),\n/* harmony export */ insertStickyAdSlot: () => (/* binding */ insertStickyAdSlot),\n/* harmony export */ setDynamicSlotHandler: () => (/* binding */ setDynamicSlotHandler)\n/* harmony export */ });\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./auctionState */ \"./src/auctionState.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants/config */ \"./src/constants/config.ts\");\n/* harmony import */ var _stickySlot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stickySlot */ \"./src/stickySlot.ts\");\n/* harmony import */ var _bootstrap__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./bootstrap */ \"./src/bootstrap.ts\");\n// file: wrapper/src/dynamicSlot.ts\n\n\n\n\n\n\nconst dynamicSlotId = (ref, divId) => `ad-slot-${ref}-${divId}`;\nfunction setDynamicSlotHandler() {\n // setup event listener for new elements to have been added or getting close to view, and invoke insertDynamicAdSlot() when applicable\n // invoke deleteDynamicSlot() when dynamic ad slot far from view port\n}\nfunction insertAdSlot(divId, reference, window = globalThis.window) {\n const refElement = window.document.getElementById(divId);\n if (refElement === null) {\n throw new Error('could not find element for divId in insertDynamicSlot(): ' + divId);\n }\n const parentElement = refElement.parentElement;\n // filter layouts applicable to current page\n const layouts = _constants_config__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.ly /*layout*/\n .filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_2__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/));\n // find matching sticky ad slot (Dynamic or OnDemand load types, Window anchor)\n const adSlot = _constants_config__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.as /*adSlots*/\n .concat(layouts.flatMap(ly => ly.as /*adSlots*/))\n .find(slot => slot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_0__.Anchor.DynamicElement &&\n [_types_enums__WEBPACK_IMPORTED_MODULE_0__.Load.Dynamic, _types_enums__WEBPACK_IMPORTED_MODULE_0__.Load.OnDemand].includes(slot.l /*load*/) &&\n slot.n /*insert*/.d /*divId*/ === parentElement?.id &&\n slot.n /*insert*/.r /*reference*/ === reference);\n if (!adSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`no dynamic ad slot config defined for element id '${parentElement?.id}'`, window);\n return;\n }\n // create the ad slot div\n const slotDiv = window.document.createElement('div');\n slotDiv.id = dynamicSlotId(reference, divId);\n slotDiv.className = 'ad-anchor';\n slotDiv.innerHTML = 'Advertisement';\n // insert the ad slot div based on reference\n switch (reference) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.ElementReference.Before:\n refElement.before(slotDiv);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.ElementReference.After:\n refElement.after(slotDiv);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.ElementReference.Inside:\n refElement.appendChild(slotDiv);\n break;\n }\n (0,_bootstrap__WEBPACK_IMPORTED_MODULE_5__.processAdSlots)([adSlot], window);\n}\nfunction insertStickyAdSlot(reference, window = globalThis.window) {\n // filter layouts applicable to current page\n const layouts = _constants_config__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.ly /*layout*/\n .filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_2__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/));\n // find matching sticky ad slot (Dynamic or OnDemand load types, Window anchor)\n const adSlot = _constants_config__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.as /*adSlots*/\n .concat(layouts.flatMap(ly => ly.as /*adSlots*/))\n .find(slot => slot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_0__.Anchor.Window &&\n [_types_enums__WEBPACK_IMPORTED_MODULE_0__.Load.Dynamic, _types_enums__WEBPACK_IMPORTED_MODULE_0__.Load.OnDemand].includes(slot.l /*load*/) &&\n slot.n /*insert*/.r /*reference*/ === reference);\n if (!adSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`no dynamic sticky ad slot config defined for reference '${reference}'`, window);\n return;\n }\n // create sticky slot\n (0,_stickySlot__WEBPACK_IMPORTED_MODULE_4__.addStickySlot)(adSlot.n /*insert*/, window);\n (0,_bootstrap__WEBPACK_IMPORTED_MODULE_5__.processAdSlots)([adSlot], window);\n}\nfunction deleteDynamicAdSlot(divId, window = globalThis.window) {\n // get dynamic slot data\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_1__.getAuctionEntry)(divId);\n // clean up auction map, googletag and prebid\n if (entry) {\n if (entry.gptSlot) {\n const googletag = window.googletag;\n if (googletag) {\n googletag.cmd.push(() => {\n googletag.destroySlots([entry.gptSlot]);\n });\n }\n }\n if (entry.adUnit) {\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.removeAdUnit(entry.adUnit.code);\n });\n }\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_1__.deleteAuctionEntry)(divId);\n }\n else {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`No dynamic slot found for divId: ${divId}`, window);\n }\n // TODO: remove any handlers associated with this slot\n // remove element from dom, even if not in auction map\n const element = window.document.getElementById(divId);\n if (element) {\n element.remove();\n }\n else {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`No element found for divId: ${divId}`, window);\n }\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/dynamicSlot.ts?")},"./src/index.ts":(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval("\n// file: wrapper/src/index.ts\nconst WRAPPER_VERSION = '0.1';\n// queue to execute ad server tasks in order\nwindow.googletag = window.googletag || { cmd: [] };\n// queue to execute auction tasks in order\nwindow.pbjs = window.pbjs || { que: [] };\n// window.__gpp = {\n// getSection: function(sectionId, callback) {\n// callback({\n// gppString: 'DBABMA~CPXxRfAPXxRfABABQBENB-CgAAAAAAAAAAAAAAAAAAA.YAAAAAAAAAA',\n// applicableSections: ['tcfeu', 'usca'], // GDPR and US Privacy\n// });\n// },\n// };\nPromise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./bootstrap */ \"./src/bootstrap.ts\")).then(({ bootstrapWrapper }) => {\n bootstrapWrapper().catch(error => {\n console.error('Wrapper bootstrap failed:', error);\n });\n});\n// anchor to view_port (sticky ads) -- always loaded eager\n// anchor to static_content (standard ads) -- loaded eager or lazy\n// anchor to dynamic_content; --\x3e div id regex or class name -- loaded lazy\n// ad slots can be insertion can be on page content, sticky, and dynamic\n// ads can be loaded -- eager or lazy\n//TODOs\n//for eager slots auction can end before winner has been declared from bid responses\n//auction end includes array of bid responses\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/index.ts?")},"./src/logEventHandlers.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setAuctionEventLogHandlers: () => (/* binding */ setAuctionEventLogHandlers),\n/* harmony export */ setDocumentEventLogHandlers: () => (/* binding */ setDocumentEventLogHandlers),\n/* harmony export */ setGPTEventLogHandlers: () => (/* binding */ setGPTEventLogHandlers)\n/* harmony export */ });\n/* harmony import */ var _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logObjectBuilder */ \"./src/logObjectBuilder.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logger */ \"./src/logger.ts\");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auctionState */ \"./src/auctionState.ts\");\n/* harmony import */ var _constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants/loggerEndpoints */ \"./src/constants/loggerEndpoints.ts\");\n// file: wrapper/src/logEventHandlers.ts\n\n\n\n\n\nfunction setAuctionEventLogHandlers(window = globalThis.window) {\n const pbjs = window.pbjs;\n pbjs.onEvent('auctionInit', (auction) => {\n try {\n //TODO add debug condition for log\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.auctionInit', auction);\n // update auction map with latest auction ids\n if (auction?.adUnits && Array.isArray(auction.adUnits)) {\n auction.adUnits.forEach((adUnit) => {\n const key = adUnit.div; // TODO: use adUnit.adUnitId instead of adUnit.div ?\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.updateAuctionEntry)(key, {\n pbAuctionId: auction.auctionId,\n pbAdUnitId: adUnit.adUnitId,\n pbTransactionId: adUnit.transactionId\n });\n });\n }\n const auctionInit = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.auctionInitObject(auction);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AUCTION_INIT_ENDPOINT, auctionInit, window);\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in auctionInit handler', false, window, error);\n }\n });\n pbjs.onEvent('bidResponse', (bid) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidResponse', bid);\n const bidResponse = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidResponseObject(bid);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.BID_RESPONSE_ENDPOINT, bidResponse, window);\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in bidResponse handler', false, window, error);\n }\n });\n pbjs.onEvent('bidWon', (bid) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidWon', bid);\n const bidWon = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidWonObject(bid);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.BID_WON_ENDPOINT, bidWon, window);\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in bidWon handler', false, window, error);\n }\n });\n pbjs.onEvent('bidRejected', (bid) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidRejected', bid);\n const bidRejected = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidRejectedObject(bid, Date.now() /*utc timestamp*/);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.BID_REJECT_ENDPOINT, bidRejected, window);\n });\n pbjs.onEvent('bidTimeout', (bids) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidTimeout', bids);\n const bidTimeout = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidTimeoutObjects(bids);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.BID_TIMEOUTS_ENDPOINT, bidTimeout, window);\n });\n pbjs.onEvent('auctionEnd', (auction) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.auctionEnd', auction);\n const auctionEnd = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.auctionEndObject(auction);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AUCTION_END_ENDPOINT, auctionEnd, window);\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in auctionEnd handler', false, window, error);\n }\n });\n pbjs.onEvent('adRenderSucceeded', (data) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.adRenderSucceeded', data);\n const adServe = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adServeObject(data.bid, { serveStatus: 'SUCCESS', serveTimestamp: Date.now() /*utc timestamp*/, failReason: null });\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_SERVE_ENDPOINT, adServe, window);\n });\n pbjs.onEvent('adRenderFailed', (data) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.adRenderFailed', data);\n const adServe = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adServeObject(data.bid, { serveStatus: 'FAIL', failReason: data.reason, serveTimestamp: null });\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_SERVE_ENDPOINT, adServe, window);\n });\n}\nfunction setDocumentEventLogHandlers(window = globalThis.window) {\n if (window.document.readyState === 'loading') {\n window.document.addEventListener('DOMContentLoaded', logPageView);\n }\n else {\n // DOMContentLoaded already fired, call function immediately\n logPageView();\n }\n function logPageView() {\n const pageView = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.pageViewObject(window);\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pageView', pageView);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.PAGE_VIEW_ENDPOINT, pageView, window);\n }\n}\nfunction setGPTEventLogHandlers(window = globalThis.window) {\n googletag.pubads().addEventListener('slotRequested', (event) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.slotRequested', event);\n // save auction ids to served when slot is requested\n if (!event.slot || typeof event.slot.getSlotElementId !== 'function') {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Invalid slot in slotRequested event', false, window, event);\n return;\n }\n const slotId = event.slot.getSlotElementId();\n const current = (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(slotId);\n if (current?.pbAuctionId) {\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.updateAuctionEntry)(slotId, {\n pbServedAuctionId: current.pbAuctionId,\n pbServedAdUnitId: current.pbAdUnitId,\n pbServedTransactionId: current.pbTransactionId\n });\n }\n });\n googletag.pubads().addEventListener('slotResponseReceived', (event) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.slotResponseReceived', event);\n });\n googletag.pubads().addEventListener('slotRenderEnded', (event) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.SlotRenderEndedEvent', event);\n if (event.isEmpty) { // no impression\n const adUnfilled = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adUnfilledObject(event.slot, Date.now() /*utc timestamp*/);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_UNFILLED_ENDPOINT, adUnfilled, window);\n }\n else { //impression\n // TODO: look into slot renders with sizes 1x1\n // if (event.size && (event.size[0] === 1 && event.size[1] === 1)) {\n // ignore pixel renders\n // }\n // else {\n const adImpression = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adImpressionObject(event, Date.now()); /* UTC timestamp */\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_IMPRESSION_ENDPOINT, adImpression, window);\n // }\n }\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in slotRenderEnded handler', false, window, error);\n }\n });\n googletag.pubads().addEventListener(\"impressionViewable\", (event) => {\n try {\n if (!event.slot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Invalid slot in impressionViewable event', false, window, event);\n return;\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.ImpressionViewableEvent', event, event.slot.getResponseInformation ? event.slot.getResponseInformation() : 'no response info');\n if (typeof event.slot.getSlotElementId !== 'function') {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Invalid slot.getSlotElementId in impressionViewable event', false, window, event);\n return;\n }\n const slotId = event.slot.getSlotElementId();\n const slotDiv = window.document.getElementById(slotId);\n const iframe = slotDiv?.querySelector('iframe') ?? null;\n const size = iframe?.width + 'x' + iframe?.height;\n if (size === '1x1') {\n // ignore pixel renders\n }\n else {\n const adView = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adViewableObject(event.slot, Date.now() /*utc timestamp*/);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_VIEWABLE_ENDPOINT, adView, window);\n }\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in impressionViewable handler', false, window, error);\n }\n });\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/logEventHandlers.ts?")},"./src/logObjectBuilder.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ adImpressionObject: () => (/* binding */ adImpressionObject),\n/* harmony export */ adServeObject: () => (/* binding */ adServeObject),\n/* harmony export */ adUnfilledObject: () => (/* binding */ adUnfilledObject),\n/* harmony export */ adViewableObject: () => (/* binding */ adViewableObject),\n/* harmony export */ auctionEndObject: () => (/* binding */ auctionEndObject),\n/* harmony export */ auctionInitObject: () => (/* binding */ auctionInitObject),\n/* harmony export */ bidRejectedObject: () => (/* binding */ bidRejectedObject),\n/* harmony export */ bidResponseObject: () => (/* binding */ bidResponseObject),\n/* harmony export */ bidTimeoutObjects: () => (/* binding */ bidTimeoutObjects),\n/* harmony export */ bidWonObject: () => (/* binding */ bidWonObject),\n/* harmony export */ pageViewObject: () => (/* binding */ pageViewObject)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _audiences__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./audiences */ "./src/audiences.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auctionState */ "./src/auctionState.ts");\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! uuid */ "../node_modules/uuid/dist/esm-browser/v4.js");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n// file: wrapper/src/logObjectBuilder.ts\n\n\n\n\n\n\nconst page_view_id = (0,uuid__WEBPACK_IMPORTED_MODULE_5__["default"])();\nfunction pageViewObject(window = globalThis.window) {\n // TODO: return timezone when locale unavailable\n const pageView = {\n page_view_id: page_view_id,\n app_ver: "0.0.53",\n view_start_time: Date.now(),\n domain: window.location.hostname,\n page_path: window.location.pathname,\n session_id: (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSessionId)(),\n user_id: (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getUserId)(),\n device: {\n user_agent: navigator.userAgent,\n language: navigator.language,\n mobile: (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getUserDevice)(window) === _types_enums__WEBPACK_IMPORTED_MODULE_2__.Device.Mobile,\n view_port: {\n width: window.innerWidth,\n height: window.innerHeight\n },\n geo_location: (0,_audiences__WEBPACK_IMPORTED_MODULE_1__.getUserCountry)()\n }\n };\n return pageView;\n}\nfunction auctionInitObject(auction) {\n const auctionInit = {\n page_view_id: page_view_id,\n pb_auction_id: auction.auctionId,\n auction_start_time: auction.timestamp, /* UTC timestamp */\n auction_end_time: null, /* UTC timestamp */\n ad_slots: []\n };\n auction.adUnits.forEach((adUnit) => {\n const bidderCodes = adUnit.bids.map((bid) => bid.bidder);\n const key = adUnit.div;\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key) ?? {};\n const adSlot = entry.adSlot ?? null;\n if (!adSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.consoleDebug)(`[auctionInitObject] no ad slot match for divId=\'${adUnit.div}\'`, adUnit, (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAllAuctionEntries)());\n }\n const layoutIds = _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.ly /*layouts*/\n .filter((layout) => layout.as /*adSlots*/.some((slot) => slot.i /*id*/ === adSlot?.i /*id*/))\n .map((layout) => layout.i /*id*/);\n auctionInit.ad_slots.push({\n pb_adunit_id: adUnit.adUnitId ?? null,\n pb_transaction_id: adUnit.transactionId ?? null,\n adslot_id: adSlot?.i /*id*/ ?? null,\n layout_ids: layoutIds,\n adunit_code: adSlot?.g /*gamAdUnitCode*/ ?? null,\n div_id: adUnit.div,\n price_floor: adSlot?.f /*priceFloor*/ ?? null,\n price_floor_currency: adSlot?.c /*priceFloorCurrency*/ ?? null,\n deal_id: null,\n pb_bidder_codes: bidderCodes,\n serve_type: entry?.serveType ?? null\n });\n });\n return auctionInit;\n}\nfunction bidResponseObject(bid) {\n const bidResponse = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n cpm: bid.cpm ? bid.cpm : null, // TODO handle scenario if bidder responds with 0\n cpm_currency: bid.currency,\n size: bid.size,\n deal_id: bid.dealId ? bid.dealId : null,\n time_to_respond: bid.timeToRespond\n };\n return bidResponse;\n}\nfunction bidWonObject(bid) {\n const bidWon = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n cpm: bid.cpm,\n cpm_currency: bid.currency,\n size: bid.size,\n response_timestamp: bid.responseTimestamp /* UTC timestamp */\n };\n return bidWon;\n}\nfunction bidTimeoutObjects(bids) {\n const bidTimeouts = new Array();\n bids.forEach(bid => {\n bidTimeouts.push({\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidder,\n timeout: 0 //TODO bid.timeout not populated, need to figure out why\n });\n });\n return bidTimeouts;\n}\nfunction bidRejectedObject(bid, adRejectTimestamp) {\n const bidRejected = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n cpm: bid.cpm ? bid.cpm : null,\n cpm_currency: bid.currency,\n size: bid.width + \'x\' + bid.height,\n deal_id: bid.dealId,\n reject_reason: bid.rejectionReason ? bid.rejectionReason : \'\',\n reject_timestamp: adRejectTimestamp, /* UTC timestamp */\n };\n return bidRejected;\n}\nfunction adServeObject(bid, ad) {\n const adServe = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n ad_id: bid.adId,\n bid_cpm: bid.cpm,\n bid_cpm_currency: bid.currency,\n size: bid.size,\n status: ad.serveStatus,\n fail_reason: ad.failReason,\n ad_serve_timestamp: ad.serveTimestamp, /* UTC timestamp */\n };\n return adServe;\n}\nfunction auctionEndObject(auction) {\n if (!auction.auctionId || !auction.auctionEnd || !auction.auctionStatus) {\n throw new Error(\'invalid parameter auction in auctionEndObject()\');\n }\n const auctionEnd = {\n pb_auction_id: auction.auctionId,\n auction_end_time: auction.auctionEnd, /* UTC timestamp */\n end_state: auction.auctionStatus\n };\n return auctionEnd;\n}\nfunction adImpressionObject(event, adImpressionTimestamp) {\n // const size: [number, number] = event.size;\n const size = event?.size ? `${event.size[0]}x${event.size[1]}` : \'\';\n const key = event.slot.getSlotElementId();\n const adImpression = {\n pb_auction_id: (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key)?.pbServedAuctionId ?? null,\n pb_transaction_id: (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key)?.pbServedTransactionId ?? null,\n advertiser_id: event.advertiserId,\n campaign_id: event.campaignId,\n creative_id: event.creativeId,\n line_item_id: event.lineItemId,\n hb_bidder_code: event.slot.getTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.p /*targetKeyPrefix*/}_bidder_code`)?.[0] ?? null,\n hb_cpm: event.slot.getTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.p /*targetKeyPrefix*/}_cpm`)?.[0] || null,\n hb_cpm_currency: event.slot.getTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.p /*targetKeyPrefix*/}_cpm_currency`)?.[0] ?? null,\n size: size,\n ad_impression_timestamp: adImpressionTimestamp /* UTC timestamp */\n };\n return adImpression;\n}\nfunction adUnfilledObject(slot, adUnfilledTimestamp) {\n const key = slot.getSlotElementId();\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key) ?? {};\n const adUnfilled = {\n pb_auction_id: entry.pbServedAuctionId ?? null,\n pb_transaction_id: entry.pbServedTransactionId ?? null,\n ad_unfilled_timestamp: adUnfilledTimestamp /* UTC timestamp */\n };\n return adUnfilled;\n}\nfunction adViewableObject(slot, adViewableTimestamp) {\n const key = slot.getSlotElementId();\n const adViewable = {\n pb_auction_id: (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key)?.pbServedAuctionId ?? null,\n pb_transaction_id: (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key)?.pbServedTransactionId ?? null,\n ad_viewable_timestamp: adViewableTimestamp /* UTC timestamp */\n };\n return adViewable;\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/logObjectBuilder.ts?')},"./src/logger.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ flushQue: () => (/* binding */ flushQue),\n/* harmony export */ initLogger: () => (/* binding */ initLogger),\n/* harmony export */ logEvent: () => (/* binding */ logEvent)\n/* harmony export */ });\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants/config */ \"./src/constants/config.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants/loggerEndpoints */ \"./src/constants/loggerEndpoints.ts\");\n// file: wrapper/src/logger.ts\n\n\n\n\nconst loggerAPIEndpoint = `https://${_constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.e}${_constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.p /*apiPath*/}`;\n// module state\nlet eventQue = [];\nlet timeoutId = null;\nlet logMode = _types_enums__WEBPACK_IMPORTED_MODULE_2__.LogMode.Async;\nfunction initLogger(window = globalThis.window) {\n // follow config log mode\n const setLogMode = () => {\n logMode = _constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.m /*mode*/;\n if (logMode === _types_enums__WEBPACK_IMPORTED_MODULE_2__.LogMode.Sync) {\n flushQue(); // flush events before page load\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`Page loaded, log mode '${logMode}' now follows config`, window);\n };\n if (window.document.readyState === 'complete') {\n setLogMode();\n }\n else {\n window.addEventListener('load', setLogMode);\n }\n // set unload flush to prevent data loss\n window.addEventListener('beforeunload', flushQue);\n window.addEventListener('pagehide', flushQue);\n}\nfunction flushQue() {\n if (eventQue.length === 0) {\n return;\n }\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n const events = [...eventQue];\n eventQue = [];\n const batchData = events.map(event => ({\n endpoint: event.path,\n payload: event.payload,\n timestamp: event.timestamp\n }));\n postLogData(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_3__.BATCH_ENDPOINT, batchData);\n}\nfunction postLogData(path, payload) {\n const strPayload = JSON.stringify(payload);\n fetch(`${loggerAPIEndpoint}${path}`, {\n method: 'POST',\n body: strPayload,\n headers: {\n 'Content-Type': 'text/plain'\n },\n keepalive: strPayload.length < 60000 // safety margin for 64KB limit\n })\n .then(response => {\n if (response.status !== 200) {\n throw new Error(`HTTP error! ${response.status} ${response.statusText}`);\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`Logged event(s) to ${loggerAPIEndpoint}${path}`, payload, window);\n })\n .catch(error => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Failed to log event(s) to ${loggerAPIEndpoint}${path}`, false, window, payload, error);\n });\n}\nfunction logEvent(path, payload, window = globalThis.window) {\n if (logMode === _types_enums__WEBPACK_IMPORTED_MODULE_2__.LogMode.Sync) {\n // synchronous logging\n postLogData(path, payload);\n return;\n }\n // asynchronous logging\n eventQue.push({\n path,\n payload,\n timestamp: Date.now()\n });\n // setup flush for asynchronous logging\n switch (_constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.t /*flushTrigger*/) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_2__.FlushTrigger.Event:\n if (eventQue.length >= _constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.v /*thresholdValue*/) {\n flushQue();\n }\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_2__.FlushTrigger.Time:\n if (timeoutId === null) {\n timeoutId = window.setTimeout(() => {\n flushQue();\n }, _constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.v /*thresholdValue*/);\n }\n break;\n }\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/logger.ts?")},"./src/refreshEventHandlers.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setRefreshWorker: () => (/* binding */ setRefreshWorker)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auctionState */ "./src/auctionState.ts");\n// file: wrapper/src/refreshEventHandlers.ts\n\n\n\n\nconst DEFAULT_REFRESH_INTERVAL = 30; // in seconds\nfunction setRefreshWorker(adUnitCode, window = globalThis.window) {\n // filter layouts applicable to current page\n const layouts = _constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.ly /*layout*/\n .filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_0__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/)) ?? [];\n const allAdSlots = _constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.as /*adSlots*/\n .concat(layouts.flatMap(ly => ly.as /*adSlots*/));\n if (allAdSlots.length === 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.consoleDebug)(`no ad slots defined for pagepath \'${window.location.pathname}\', ads will not be refreshed`, window);\n return;\n }\n const refreshAdSlot = allAdSlots.find(\n // ({ g/*gam ad unit code*/ }) => g/*gam ad unit code*/ === adUnitPath\n slot => (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(slot) === adUnitCode);\n if (refreshAdSlot) {\n const slotDivId = (refreshAdSlot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_1__.Anchor.Window) ?\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.stickySlotId)(refreshAdSlot.n /*insert*/.r /*reference*/) :\n refreshAdSlot.n /*insert*/.d /*divId*/;\n const element = window.document.getElementById(slotDivId);\n const refreshType = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.enumFromString)(_types_enums__WEBPACK_IMPORTED_MODULE_1__.RefreshTrigger, refreshAdSlot?.r /*refresh*/?.t /*trigger*/ ?? \'\');\n if (element && refreshType) {\n switch (refreshType) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.RefreshTrigger.InView:\n refreshInView(element, refreshAdSlot);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.RefreshTrigger.AfterInterval:\n refreshAfterInterval(element, refreshAdSlot);\n break;\n default:\n break;\n }\n }\n }\n}\n/**\n *\n * refresh in view, only after interval\n * max refresh applies (if specified)\n *\n **/\nfunction refreshInView(element, adSlot) {\n const maxRefreshes = adSlot.r /*refresh*/?.c /*count of times*/ ?? Number.MAX_SAFE_INTEGER;\n const timeout = (adSlot.r /*refresh*/?.i /*interval*/ ?? DEFAULT_REFRESH_INTERVAL) * 1000; // refresh interval in miliseconds\n const adUnitCode = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(adSlot); // adslot element (div) id used as unique prebid adunit code\n var refreshCount = 0; // initialize refresh counter\n const options = {\n root: null, // element to intersect with browser viewport\n rootMargin: "0px", // margin to grow or shrink intersection frame of root\n threshold: 0.0 // % element visible\n };\n var isElementVisible = false; // track element visibility\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n isElementVisible = entry.intersectionRatio > 0; // update visibility status\n });\n }, options);\n // store observer instance in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.setIntersectionObserver)(adUnitCode, observer);\n observer.observe(element);\n // refresh loop\n const intervalId = setInterval(() => {\n if (isElementVisible && refreshCount < maxRefreshes) {\n if ((0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.isAuctionInProgress)(adUnitCode)) {\n return;\n }\n refreshCount++;\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.setAuctionInProgress)(adUnitCode, _types_enums__WEBPACK_IMPORTED_MODULE_1__.ServeType.Refresh);\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.requestBids({\n adUnitCodes: [adUnitCode],\n timeout: adSlot.o /*auctionTimeout*/ ?? _constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.o /*auctionTimeout*/\n });\n });\n }\n if (refreshCount >= maxRefreshes) {\n clearInterval(intervalId); // stop interval when max refreshes reached\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.clearIntersectionObserver)(adUnitCode); // disconnect, clear observer\n }\n }, timeout); // delay between checks\n}\n/**\n *\n * refresh after interval, only if ad was viewable\n * max refresh applies (if specified)\n *\n **/\nfunction refreshAfterInterval(element, adSlot) {\n const maxRefreshes = adSlot.r /*refresh*/?.c /*countOfTimes*/ ?? Number.MAX_SAFE_INTEGER;\n const timeout = (adSlot.r /*refresh*/?.i /*interval*/ ?? DEFAULT_REFRESH_INTERVAL) * 1000; // refresh interval in miliseconds\n const adUnitCode = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(adSlot); // adslot element (div) id used as unique prebid adunit code\n var refreshCount = 0; // initialize refresh counter\n const options = {\n root: null, // element to intersect with browser viewport\n rootMargin: "0px", // margin to grow or shrink intersection frame of root\n threshold: 0.0 // % element visible\n };\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if (entry.intersectionRatio > 0) {\n if (refreshCount < maxRefreshes) {\n refreshCount++;\n setTimeout(() => {\n if ((0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.isAuctionInProgress)(adUnitCode)) {\n return;\n }\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.setAuctionInProgress)(adUnitCode, _types_enums__WEBPACK_IMPORTED_MODULE_1__.ServeType.Refresh);\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.requestBids({\n adUnitCodes: [adUnitCode],\n timeout: adSlot.o /*auctionTimeout*/ ?? _constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.o /*auctionTimeout*/\n });\n });\n }, timeout);\n }\n if (refreshCount >= maxRefreshes) {\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.clearIntersectionObserver)(adUnitCode); // disconnect and clear observer\n }\n }\n });\n }, options);\n // store observer instance in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.setIntersectionObserver)(adUnitCode, observer);\n observer.observe(element);\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/refreshEventHandlers.ts?')},"./src/stickySlot.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BUTTON_SYMBOLS: () => (/* binding */ BUTTON_SYMBOLS),\n/* harmony export */ BUTTON_TITLES: () => (/* binding */ BUTTON_TITLES),\n/* harmony export */ SLOT_CONTENT: () => (/* binding */ SLOT_CONTENT),\n/* harmony export */ STICKY_SLOT_CLASSES: () => (/* binding */ STICKY_SLOT_CLASSES),\n/* harmony export */ StickyAction: () => (/* binding */ StickyAction),\n/* harmony export */ addStickySlot: () => (/* binding */ addStickySlot),\n/* harmony export */ anchorAction: () => (/* binding */ anchorAction),\n/* harmony export */ anchorId: () => (/* binding */ anchorId),\n/* harmony export */ buttonId: () => (/* binding */ buttonId),\n/* harmony export */ setInsertSlotWorker: () => (/* binding */ setInsertSlotWorker)\n/* harmony export */ });\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n// file: wrapper/src/stickySlot.ts\n\n\nvar StickyAction;\n(function (StickyAction) {\n StickyAction[\"Minimize\"] = \"minimize\";\n StickyAction[\"Restore\"] = \"restore\";\n StickyAction[\"Dismiss\"] = \"dismiss\";\n})(StickyAction || (StickyAction = {}));\n// css class names used for sticky slots\nconst STICKY_SLOT_CLASSES = {\n ANCHOR: 'ad-anchor',\n SLOT: 'ad-slot',\n ACTION_BUTTONS: 'ad-action-buttons',\n ACTION_BTN: 'ad-action-btn',\n HORIZONTAL_MINIMIZED: 'horizontal-minimized',\n VERTICAL_MINIMIZED: 'vertical-minimized',\n HIDDEN: 'hidden'\n};\n// button symbols\nconst BUTTON_SYMBOLS = {\n RESTORE: '+',\n MINIMIZE: '-',\n DISMISS: 'x'\n};\n// button titles for accessibility\nconst BUTTON_TITLES = {\n RESTORE: 'Restore Ad',\n MINIMIZE: 'Minimize Ad',\n DISMISS: 'Dismiss Ad'\n};\n// slot content\nconst SLOT_CONTENT = {\n DEFAULT: 'Advertisement'\n};\n// track pending DOMContentLoaded handlers\nconst stickySlotDOMHandlers = new Set();\nfunction setInsertSlotWorker(adUnit, window = globalThis.window) {\n // TODO add all sticky slots at one time\n if (window.document.body) { // page has already loaded\n addStickySlot(adUnit.n /*insert*/, window);\n }\n else {\n const handlerId = anchorId(adUnit.n.r /*reference*/);\n if (stickySlotDOMHandlers.has(handlerId)) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`DOMContentLoaded handler already registered for ${handlerId}, skipping duplicate`, window);\n return;\n }\n stickySlotDOMHandlers.add(handlerId);\n window.document.addEventListener('DOMContentLoaded', () => {\n addStickySlot(adUnit.n /*insert*/, window);\n stickySlotDOMHandlers.delete(handlerId);\n }, { once: true });\n }\n}\nconst anchorId = (ref) => `ad-${ref}-anchor`;\nconst buttonId = (ref, action) => `ad-${ref}-${action}`;\nfunction addStickySlot(insert, window = globalThis.window) {\n const anchorElementId = anchorId(insert.r /*reference*/);\n const existingAnchor = window.document.getElementById(anchorElementId);\n if (existingAnchor) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`Sticky slot anchor ${anchorElementId} already exists in DOM, skipping creation`, window);\n return;\n }\n const slotId = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.stickySlotId)(insert.r /*reference*/);\n const anchorClass = `${STICKY_SLOT_CLASSES.ANCHOR} ad-${insert.r /*reference*/}`;\n const anchor = window.document.createElement('div');\n anchor.id = anchorElementId;\n anchor.className = anchorClass;\n const actionButtonsDiv = window.document.createElement('div');\n actionButtonsDiv.className = STICKY_SLOT_CLASSES.ACTION_BUTTONS;\n const btnRes = window.document.createElement('div');\n btnRes.id = buttonId(insert.r /*reference*/, StickyAction.Restore);\n btnRes.innerHTML = BUTTON_SYMBOLS.RESTORE;\n btnRes.className = STICKY_SLOT_CLASSES.ACTION_BTN;\n btnRes.title = BUTTON_TITLES.RESTORE;\n btnRes.style.display = 'none';\n btnRes.onclick = () => anchorAction(insert.r /*reference*/, StickyAction.Restore, window);\n actionButtonsDiv.appendChild(btnRes);\n if (insert.z /*minimize*/) {\n const btnMin = window.document.createElement('div');\n btnMin.id = buttonId(insert.r /*reference*/, StickyAction.Minimize);\n btnMin.innerHTML = BUTTON_SYMBOLS.MINIMIZE;\n btnMin.className = STICKY_SLOT_CLASSES.ACTION_BTN;\n btnMin.title = BUTTON_TITLES.MINIMIZE;\n btnMin.onclick = () => anchorAction(insert.r /*reference*/, StickyAction.Minimize, window);\n actionButtonsDiv.appendChild(btnMin);\n }\n if (insert.s /*dismiss*/) {\n const btnDis = window.document.createElement('div');\n btnDis.id = buttonId(insert.r /*reference*/, StickyAction.Dismiss);\n btnDis.innerHTML = BUTTON_SYMBOLS.DISMISS;\n btnDis.className = STICKY_SLOT_CLASSES.ACTION_BTN;\n btnDis.title = BUTTON_TITLES.DISMISS;\n btnDis.onclick = () => anchorAction(insert.r /*reference*/, StickyAction.Dismiss, window);\n actionButtonsDiv.appendChild(btnDis);\n }\n anchor.appendChild(Object.assign(window.document.createElement('div'), {\n id: slotId,\n className: STICKY_SLOT_CLASSES.SLOT,\n innerHTML: SLOT_CONTENT.DEFAULT\n }));\n anchor.appendChild(actionButtonsDiv);\n switch (insert.r /*reference*/) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Top:\n window.document.body.prepend(anchor);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Bottom:\n window.document.body.append(anchor);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Left:\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Right:\n window.document.body.append(anchor);\n break;\n }\n}\n/**\n * handle ad actions (hide, minimize, restore)\n * @param {string} reference - anchor reference (WindowReference)\n * @param {string} action - action to take (StickyAction)\n */\nfunction anchorAction(reference, action, window = globalThis.window) {\n const adAnchor = window.document.getElementById(anchorId(reference));\n const restoreBtn = window.document.getElementById(buttonId(reference, StickyAction.Restore));\n const minimizeBtn = window.document.getElementById(buttonId(reference, StickyAction.Minimize));\n const dismissBtn = window.document.getElementById(buttonId(reference, StickyAction.Dismiss));\n var minimizeClassName = '';\n switch (reference) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Top:\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Bottom:\n minimizeClassName = STICKY_SLOT_CLASSES.HORIZONTAL_MINIMIZED;\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Left:\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Right:\n minimizeClassName = STICKY_SLOT_CLASSES.VERTICAL_MINIMIZED;\n break;\n default:\n throw new Error(`invalid reference parameter '${reference}' to anchorAction()`);\n }\n switch (action) {\n case StickyAction.Restore:\n adAnchor?.classList.remove(minimizeClassName); // restore\n restoreBtn?.style && (restoreBtn.style.display = 'none'); // hide restore button \n minimizeBtn?.style && (minimizeBtn.style.display = 'block'); // show minimize button\n dismissBtn?.style && (dismissBtn.style.display = 'block'); // show dismiss button\n break;\n case StickyAction.Minimize:\n adAnchor?.classList.add(minimizeClassName); // minimize\n minimizeBtn?.style && (minimizeBtn.style.display = 'none'); // hide minimize button\n restoreBtn?.style && (restoreBtn.style.display = 'block'); // show restore button\n dismissBtn?.style && (dismissBtn.style.display = 'block'); // show dismiss button\n //TODO how to handle refresh?\n break;\n case StickyAction.Dismiss:\n adAnchor?.classList.add(STICKY_SLOT_CLASSES.HIDDEN); // dismiss\n //TODO delete google slot and pbjs ad unit, should we remove element?\n break;\n default:\n throw new Error(`invalid action parameter '${action}' to anchorAction()`);\n }\n}\n//TODO minimized ad slot maximized on refresh\n//TODO should not have unfilled -- house ad or immediate refresh, after which automatically minimized\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/stickySlot.ts?")},"./src/types/enums.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Anchor: () => (/* binding */ Anchor),\n/* harmony export */ Browser: () => (/* binding */ Browser),\n/* harmony export */ Device: () => (/* binding */ Device),\n/* harmony export */ ElementReference: () => (/* binding */ ElementReference),\n/* harmony export */ FlushTrigger: () => (/* binding */ FlushTrigger),\n/* harmony export */ Load: () => (/* binding */ Load),\n/* harmony export */ LogMode: () => (/* binding */ LogMode),\n/* harmony export */ MediaFormat: () => (/* binding */ MediaFormat),\n/* harmony export */ PagePathPattern: () => (/* binding */ PagePathPattern),\n/* harmony export */ RefreshTrigger: () => (/* binding */ RefreshTrigger),\n/* harmony export */ ServeType: () => (/* binding */ ServeType),\n/* harmony export */ WindowReference: () => (/* binding */ WindowReference)\n/* harmony export */ });\n// file: wrapper/src/types/enums.ts\nvar WindowReference;\n(function (WindowReference) {\n WindowReference["Top"] = "TP";\n WindowReference["Bottom"] = "BM";\n WindowReference["Left"] = "LF";\n WindowReference["Right"] = "RG";\n})(WindowReference || (WindowReference = {}));\nvar ElementReference;\n(function (ElementReference) {\n ElementReference["Before"] = "BF";\n ElementReference["After"] = "AT";\n ElementReference["Inside"] = "IN";\n})(ElementReference || (ElementReference = {}));\nvar Anchor;\n(function (Anchor) {\n Anchor["Window"] = "WN";\n Anchor["StaticElement"] = "ST";\n Anchor["DynamicElement"] = "DY";\n})(Anchor || (Anchor = {}));\nvar Load;\n(function (Load) {\n /**\n * Eager Loading:\n * Ads are loaded as soon as the page loads, regardless of whether they are visible to the user.\n * Use Case: Pages with high-priority ad slots above the fold where immediate visibility is crucial.\n */\n Load["Eager"] = "EG";\n /**\n * Deferred Loading:\n * Ads are loaded after the entire page has finished loading or after a specific delay.\n * Use Case: Ensures critical content is loaded first to improve perceived performance.\n */\n Load["Deferred"] = "DF";\n /**\n * Lazy Loading:\n * Ads are loaded only when they are about to come into the viewport (or are close to it).\n * Use Case: Improves performance and reduces resource usage by deferring ad requests for offscreen ads.\n */\n Load["Lazy"] = "LZ";\n /**\n * Dynamic Loading:\n * Ads are loaded for slots created dynamically after the initial page load, such as in infinite scroll scenarios.\n * Use Case: Pages with content that expands dynamically, where new ad slots are introduced as the user scrolls.\n */\n Load["Dynamic"] = "YM";\n /**\n * On-Demand Loading:\n * Ads are loaded based on specific user actions, such as clicking a button or interacting with a part of the page.\n * Use Case: When ads need to be shown only after user engagement (e.g., inside a collapsible menu).\n */\n Load["OnDemand"] = "ON";\n})(Load || (Load = {}));\nvar ServeType;\n(function (ServeType) {\n ServeType["Initial"] = "IN";\n ServeType["Refresh"] = "RF";\n})(ServeType || (ServeType = {}));\nvar MediaFormat;\n(function (MediaFormat) {\n MediaFormat["Banner"] = "BN";\n})(MediaFormat || (MediaFormat = {}));\nvar RefreshTrigger;\n(function (RefreshTrigger) {\n RefreshTrigger["InView"] = "IV";\n RefreshTrigger["AfterInterval"] = "AV";\n})(RefreshTrigger || (RefreshTrigger = {}));\nvar Device;\n(function (Device) {\n Device["Mobile"] = "MB";\n Device["Desktop"] = "DK";\n Device["Tablet"] = "TB";\n Device["Unknown"] = "UK";\n})(Device || (Device = {}));\nvar Browser;\n(function (Browser) {\n Browser["Chrome"] = "CR";\n Browser["Safari"] = "SF";\n Browser["Edge"] = "EG";\n Browser["Firefox"] = "FX";\n Browser["Unknown"] = "UN";\n})(Browser || (Browser = {}));\nvar PagePathPattern;\n(function (PagePathPattern) {\n PagePathPattern["Prefix"] = "PR";\n PagePathPattern["Contains"] = "CT";\n PagePathPattern["Suffix"] = "SF";\n PagePathPattern["Exact"] = "EX";\n PagePathPattern["Regex"] = "RG";\n})(PagePathPattern || (PagePathPattern = {}));\nvar LogMode;\n(function (LogMode) {\n LogMode["Sync"] = "SY";\n LogMode["Async"] = "AS";\n})(LogMode || (LogMode = {}));\nvar FlushTrigger;\n(function (FlushTrigger) {\n FlushTrigger["Event"] = "EV";\n FlushTrigger["Time"] = "TM";\n})(FlushTrigger || (FlushTrigger = {}));\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/types/enums.ts?')},"./src/utils.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ consoleDebug: () => (/* binding */ consoleDebug),\n/* harmony export */ consoleError: () => (/* binding */ consoleError),\n/* harmony export */ enumFromString: () => (/* binding */ enumFromString),\n/* harmony export */ generateHash: () => (/* binding */ generateHash),\n/* harmony export */ getMediaSizes: () => (/* binding */ getMediaSizes),\n/* harmony export */ getPrimaryDomain: () => (/* binding */ getPrimaryDomain),\n/* harmony export */ getSessionId: () => (/* binding */ getSessionId),\n/* harmony export */ getSlotDivId: () => (/* binding */ getSlotDivId),\n/* harmony export */ getUserDevice: () => (/* binding */ getUserDevice),\n/* harmony export */ getUserId: () => (/* binding */ getUserId),\n/* harmony export */ matchPagePath: () => (/* binding */ matchPagePath),\n/* harmony export */ stickySlotId: () => (/* binding */ stickySlotId)\n/* harmony export */ });\n/* harmony import */ var xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! xxhash-wasm */ \"../node_modules/xxhash-wasm/esm/xxhash-wasm.js\");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n// file: wrapper/src/utils.ts\n\n\nconst SESSION_LENGTH_MS = 10 * 60 * 1000; // 10 minutes, in milliseconds\nconst generateId = () => Math.random().toString(36).substring(2, 15)\n .padEnd(13, Math.random().toString(36).substring(2, 15));\nfunction getSessionId() {\n let result;\n try {\n var sessionId = localStorage.getItem('sessionId');\n var sessionIdLastRead = localStorage.getItem('sessionIdLastRead');\n const currentTime = Date.now(); /* UTC timestamp */\n if ((!sessionId) || (!sessionIdLastRead) ||\n ((currentTime - parseInt(sessionIdLastRead)) > SESSION_LENGTH_MS)) {\n sessionId = generateId();\n localStorage.setItem('sessionId', sessionId);\n }\n localStorage.setItem('sessionIdLastRead', currentTime.toString());\n result = sessionId;\n }\n catch (error) {\n // if localStorage fails, generate unique session id and log issue\n consoleError('getSessionId: localStorage unavailable:', false, error);\n result = generateId();\n }\n return result;\n}\nfunction getUserId() {\n let result;\n try {\n var userId = localStorage.getItem('userId');\n if (!userId) {\n const newUserId = generateId();\n localStorage.setItem('userId', newUserId);\n result = newUserId;\n }\n else {\n result = userId;\n }\n }\n catch (error) {\n // if localStorage fails, generate unique id and log issue\n consoleError('getUserId: localStorage unavailable:', false, error);\n result = generateId();\n }\n return result;\n}\nfunction getUserDevice(window = globalThis.window) {\n try {\n const viewPortCheck = window.matchMedia(\"(max-width: 760px), (max-width: 1024px) and (orientation: landscape)\").matches;\n const userAgentCheck = navigator?.userAgent ? /Android|iPhone|iPad/i.test(navigator.userAgent) : false;\n return (viewPortCheck || userAgentCheck) ? _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Mobile : _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Desktop;\n }\n catch (error) {\n // device detection failed (e.g., restricted environment)\n consoleError('getUserDevice: Device detection failed, returning Unknown:', false, window, error);\n return _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Unknown;\n }\n}\nconst stickySlotId = (ref) => `ad-${ref}-slot`;\nfunction consoleDebug(message, windowOrFirstArg, ...additionalArgs) {\n // check if first argument is Window object\n const isWindowArg = windowOrFirstArg && typeof windowOrFirstArg === 'object' && 'location' in windowOrFirstArg;\n const window = isWindowArg ? windowOrFirstArg : globalThis.window;\n const args = isWindowArg ? additionalArgs : (windowOrFirstArg !== undefined ? [windowOrFirstArg, ...additionalArgs] : []);\n try {\n const searchString = (window.location && typeof window.location.search === 'string') ? window.location.search : '';\n const urlParams = new URLSearchParams(searchString);\n const pbjs = window.pbjs;\n if ((urlParams.get('pbjs_debug') === 'true') ||\n (pbjs && pbjs.readConfig && pbjs.readConfig('debug') === true)) {\n console.log('%cAAM', 'background: navy; color: white; padding: 2px 5px; border-radius: 3px;', message, ...args);\n }\n }\n catch (error) {\n console.error('Console logging failed:', message);\n }\n}\nfunction consoleError(message, escalate = false, windowOrSecondArg, ...additionalArgs) {\n // check if third argument is Window object\n const isWindowArg = windowOrSecondArg && typeof windowOrSecondArg === 'object' && 'location' in windowOrSecondArg;\n const window = isWindowArg ? windowOrSecondArg : globalThis.window;\n const args = isWindowArg ? additionalArgs : (windowOrSecondArg !== undefined ? [windowOrSecondArg, ...additionalArgs] : []);\n try {\n const searchString = (window.location && typeof window.location.search === 'string') ? window.location.search : '';\n const urlParams = new URLSearchParams(searchString);\n const pbjs = window.pbjs;\n if ((urlParams.get('pbjs_debug') === 'true') ||\n (pbjs && pbjs.readConfig && pbjs.readConfig('debug') === true)) {\n console.error('%cAAM', 'background: navy; color: white; padding: 2px 5px; border-radius: 3px;', message, ...args);\n }\n }\n catch (error) {\n console.error('Console logging failed:', message);\n }\n if (escalate) {\n throw Error(message);\n }\n}\nconst enumFromString = (enumType, value) => Object.values(enumType).includes(value) ? value : undefined;\nconst getPrimaryDomain = (hostname) => {\n // hostname from web api, should be type safe\n return hostname.split('.').slice(-2).join('.');\n};\nasync function generateHash(data, length) {\n const { h64 } = await (0,xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n const hash64Value = h64(data, BigInt(0));\n const hexHash = hash64Value.toString(16).padStart(16, '0').toUpperCase();\n return hexHash.slice(0, length);\n}\nfunction matchPagePath(currentPath, pagePaths) {\n return pagePaths.some((pathObj) => {\n const { t /*pattern*/, p /*path*/ } = pathObj;\n switch (t /*pattern*/) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Prefix:\n return currentPath.startsWith(p /*path*/);\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Contains:\n return currentPath.includes(p /*path*/);\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Suffix:\n return currentPath.endsWith(p /*path*/);\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Exact:\n return currentPath === p /*path*/;\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Regex:\n try {\n const regex = new RegExp(p /*path*/);\n return regex.test(currentPath);\n }\n catch {\n consoleError(`Invalid regex pattern: ${p /*path*/}`, false);\n return false;\n }\n default:\n return false;\n }\n });\n}\nfunction getMediaSizes(media, window = globalThis.window) {\n // build time validation ensures type safety\n if (Array.isArray(media.sz.a) && media.sz.a.length) {\n return media.sz.a;\n }\n const device = getUserDevice(window);\n switch (device) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Desktop:\n return Array.isArray(media.sz.d) ? media.sz.d : [];\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Mobile:\n return Array.isArray(media.sz.m) ? media.sz.m : [];\n default:\n consoleDebug('getMediaSizes: Unknown device type, using empty array fallback:', device, window);\n return [];\n }\n}\nconst getSlotDivId = (adSlot) => {\n // build time validation ensures type safety\n return adSlot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_1__.Anchor.Window\n ? stickySlotId(adSlot.n /*insert*/.r /*reference*/)\n : adSlot.n /*insert*/.d /*divId*/;\n};\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/utils.ts?")},"./src/wrapperTag.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dynamicSlot */ "./src/dynamicSlot.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n// file: wrapper/src/wrapperTag.ts\n\n\nwindow.wrapperTag = {\n // build information\n appVersion: "0.0.53",\n appBuildDate: "2025-08-13T21:51:38.387Z",\n appName: "app-p80918ac8127ba.js",\n // active configuration\n config: _constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig,\n // dynamic slot management functions\n insertAdSlot: (refDivId, position, targetWindow) => _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__.insertAdSlot(refDivId, position, targetWindow || window),\n deleteAdSlot: (divId, targetWindow) => _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__.deleteDynamicAdSlot(divId, targetWindow || window),\n insertStickyAdSlot: (reference, targetWindow) => _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__.insertStickyAdSlot(reference, targetWindow || window),\n};\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/wrapperTag.ts?')},"../node_modules/uuid/dist/esm-browser/native.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ randomUUID });\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/native.js?")},"../node_modules/uuid/dist/esm-browser/regex.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/regex.js?')},"../node_modules/uuid/dist/esm-browser/rng.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ rng)\n/* harmony export */ });\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nfunction rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/rng.js?")},"../node_modules/uuid/dist/esm-browser/stringify.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ unsafeStringify: () => (/* binding */ unsafeStringify)\n/* harmony export */ });\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \"../node_modules/uuid/dist/esm-browser/validate.js\");\n\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stringify);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/stringify.js?")},"../node_modules/uuid/dist/esm-browser/v4.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _native_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./native.js */ "../node_modules/uuid/dist/esm-browser/native.js");\n/* harmony import */ var _rng_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng.js */ "../node_modules/uuid/dist/esm-browser/rng.js");\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stringify.js */ "../node_modules/uuid/dist/esm-browser/stringify.js");\n\n\n\nfunction v4(options, buf, offset) {\n if (_native_js__WEBPACK_IMPORTED_MODULE_0__["default"].randomUUID && !buf && !options) {\n return _native_js__WEBPACK_IMPORTED_MODULE_0__["default"].randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? (0,_rng_js__WEBPACK_IMPORTED_MODULE_1__["default"])();\n if (rnds.length < 16) {\n throw new Error(\'Random bytes length must be >= 16\');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return (0,_stringify_js__WEBPACK_IMPORTED_MODULE_2__.unsafeStringify)(rnds);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v4);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/v4.js?')},"../node_modules/uuid/dist/esm-browser/validate.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _regex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./regex.js */ "../node_modules/uuid/dist/esm-browser/regex.js");\n\nfunction validate(uuid) {\n return typeof uuid === \'string\' && _regex_js__WEBPACK_IMPORTED_MODULE_0__["default"].test(uuid);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validate);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/validate.js?')},"../node_modules/xxhash-wasm/esm/xxhash-wasm.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ e)\n/* harmony export */ });\nconst t=new Uint8Array([0,97,115,109,1,0,0,0,1,48,8,96,3,127,127,127,1,127,96,3,127,127,127,0,96,2,127,127,0,96,1,127,1,127,96,3,127,127,126,1,126,96,3,126,127,127,1,126,96,2,127,126,0,96,1,127,1,126,3,11,10,0,0,2,1,3,4,5,6,1,7,5,3,1,0,1,7,85,9,3,109,101,109,2,0,5,120,120,104,51,50,0,0,6,105,110,105,116,51,50,0,2,8,117,112,100,97,116,101,51,50,0,3,8,100,105,103,101,115,116,51,50,0,4,5,120,120,104,54,52,0,5,6,105,110,105,116,54,52,0,7,8,117,112,100,97,116,101,54,52,0,8,8,100,105,103,101,115,116,54,52,0,9,10,251,22,10,242,1,1,4,127,32,0,32,1,106,33,3,32,1,65,16,79,4,127,32,3,65,16,107,33,6,32,2,65,168,136,141,161,2,106,33,3,32,2,65,137,235,208,208,7,107,33,4,32,2,65,207,140,162,142,6,106,33,5,3,64,32,3,32,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,3,32,4,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,4,32,2,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,2,32,5,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,5,32,6,32,0,65,4,106,34,0,79,13,0,11,32,2,65,12,119,32,5,65,18,119,106,32,4,65,7,119,106,32,3,65,1,119,106,5,32,2,65,177,207,217,178,1,106,11,32,1,106,32,0,32,1,65,15,113,16,1,11,146,1,0,32,1,32,2,106,33,2,3,64,32,1,65,4,106,32,2,75,69,4,64,32,0,32,1,40,2,0,65,189,220,202,149,124,108,106,65,17,119,65,175,214,211,190,2,108,33,0,32,1,65,4,106,33,1,12,1,11,11,3,64,32,1,32,2,79,69,4,64,32,0,32,1,45,0,0,65,177,207,217,178,1,108,106,65,11,119,65,177,243,221,241,121,108,33,0,32,1,65,1,106,33,1,12,1,11,11,32,0,32,0,65,15,118,115,65,247,148,175,175,120,108,34,0,65,13,118,32,0,115,65,189,220,202,149,124,108,34,0,65,16,118,32,0,115,11,63,0,32,0,65,8,106,32,1,65,168,136,141,161,2,106,54,2,0,32,0,65,12,106,32,1,65,137,235,208,208,7,107,54,2,0,32,0,65,16,106,32,1,54,2,0,32,0,65,20,106,32,1,65,207,140,162,142,6,106,54,2,0,11,195,4,1,6,127,32,1,32,2,106,33,6,32,0,65,24,106,33,4,32,0,65,40,106,40,2,0,33,3,32,0,32,0,40,2,0,32,2,106,54,2,0,32,0,65,4,106,34,5,32,5,40,2,0,32,2,65,16,79,32,0,40,2,0,65,16,79,114,114,54,2,0,32,2,32,3,106,65,16,73,4,64,32,3,32,4,106,32,1,32,2,252,10,0,0,32,0,65,40,106,32,2,32,3,106,54,2,0,15,11,32,3,4,64,32,3,32,4,106,32,1,65,16,32,3,107,34,2,252,10,0,0,32,0,65,8,106,34,3,32,3,40,2,0,32,4,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,12,106,34,3,32,3,40,2,0,32,4,65,4,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,16,106,34,3,32,3,40,2,0,32,4,65,8,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,20,106,34,3,32,3,40,2,0,32,4,65,12,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,40,106,65,0,54,2,0,32,1,32,2,106,33,1,11,32,1,32,6,65,16,107,77,4,64,32,6,65,16,107,33,8,32,0,65,8,106,40,2,0,33,2,32,0,65,12,106,40,2,0,33,3,32,0,65,16,106,40,2,0,33,5,32,0,65,20,106,40,2,0,33,7,3,64,32,2,32,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,2,32,3,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,3,32,5,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,5,32,7,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,7,32,8,32,1,65,4,106,34,1,79,13,0,11,32,0,65,8,106,32,2,54,2,0,32,0,65,12,106,32,3,54,2,0,32,0,65,16,106,32,5,54,2,0,32,0,65,20,106,32,7,54,2,0,11,32,1,32,6,73,4,64,32,4,32,1,32,6,32,1,107,34,1,252,10,0,0,32,0,65,40,106,32,1,54,2,0,11,11,97,1,1,127,32,0,65,16,106,40,2,0,33,1,32,0,65,4,106,40,2,0,4,127,32,1,65,12,119,32,0,65,20,106,40,2,0,65,18,119,106,32,0,65,12,106,40,2,0,65,7,119,106,32,0,65,8,106,40,2,0,65,1,119,106,5,32,1,65,177,207,217,178,1,106,11,32,0,40,2,0,106,32,0,65,24,106,32,0,65,40,106,40,2,0,16,1,11,255,3,2,3,126,1,127,32,0,32,1,106,33,6,32,1,65,32,79,4,126,32,6,65,32,107,33,6,32,2,66,214,235,130,238,234,253,137,245,224,0,124,33,3,32,2,66,177,169,172,193,173,184,212,166,61,125,33,4,32,2,66,249,234,208,208,231,201,161,228,225,0,124,33,5,3,64,32,3,32,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,3,32,4,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,4,32,2,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,2,32,5,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,5,32,6,32,0,65,8,106,34,0,79,13,0,11,32,2,66,12,137,32,5,66,18,137,124,32,4,66,7,137,124,32,3,66,1,137,124,32,3,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,4,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,2,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,5,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,5,32,2,66,197,207,217,178,241,229,186,234,39,124,11,32,1,173,124,32,0,32,1,65,31,113,16,6,11,134,2,0,32,1,32,2,106,33,2,3,64,32,2,32,1,65,8,106,79,4,64,32,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,32,0,133,66,27,137,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,33,0,32,1,65,8,106,33,1,12,1,11,11,32,1,65,4,106,32,2,77,4,64,32,0,32,1,53,2,0,66,135,149,175,175,152,182,222,155,158,127,126,133,66,23,137,66,207,214,211,190,210,199,171,217,66,126,66,249,243,221,241,153,246,153,171,22,124,33,0,32,1,65,4,106,33,1,11,3,64,32,1,32,2,73,4,64,32,0,32,1,49,0,0,66,197,207,217,178,241,229,186,234,39,126,133,66,11,137,66,135,149,175,175,152,182,222,155,158,127,126,33,0,32,1,65,1,106,33,1,12,1,11,11,32,0,32,0,66,33,136,133,66,207,214,211,190,210,199,171,217,66,126,34,0,32,0,66,29,136,133,66,249,243,221,241,153,246,153,171,22,126,34,0,32,0,66,32,136,133,11,77,0,32,0,65,8,106,32,1,66,214,235,130,238,234,253,137,245,224,0,124,55,3,0,32,0,65,16,106,32,1,66,177,169,172,193,173,184,212,166,61,125,55,3,0,32,0,65,24,106,32,1,55,3,0,32,0,65,32,106,32,1,66,249,234,208,208,231,201,161,228,225,0,124,55,3,0,11,244,4,2,3,127,4,126,32,1,32,2,106,33,5,32,0,65,40,106,33,4,32,0,65,200,0,106,40,2,0,33,3,32,0,32,0,41,3,0,32,2,173,124,55,3,0,32,2,32,3,106,65,32,73,4,64,32,3,32,4,106,32,1,32,2,252,10,0,0,32,0,65,200,0,106,32,2,32,3,106,54,2,0,15,11,32,3,4,64,32,3,32,4,106,32,1,65,32,32,3,107,34,2,252,10,0,0,32,0,65,8,106,34,3,32,3,41,3,0,32,4,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,16,106,34,3,32,3,41,3,0,32,4,65,8,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,24,106,34,3,32,3,41,3,0,32,4,65,16,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,32,106,34,3,32,3,41,3,0,32,4,65,24,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,200,0,106,65,0,54,2,0,32,1,32,2,106,33,1,11,32,1,65,32,106,32,5,77,4,64,32,5,65,32,107,33,2,32,0,65,8,106,41,3,0,33,6,32,0,65,16,106,41,3,0,33,7,32,0,65,24,106,41,3,0,33,8,32,0,65,32,106,41,3,0,33,9,3,64,32,6,32,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,6,32,7,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,7,32,8,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,8,32,9,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,9,32,2,32,1,65,8,106,34,1,79,13,0,11,32,0,65,8,106,32,6,55,3,0,32,0,65,16,106,32,7,55,3,0,32,0,65,24,106,32,8,55,3,0,32,0,65,32,106,32,9,55,3,0,11,32,1,32,5,73,4,64,32,4,32,1,32,5,32,1,107,34,1,252,10,0,0,32,0,65,200,0,106,32,1,54,2,0,11,11,188,2,1,5,126,32,0,65,24,106,41,3,0,33,1,32,0,41,3,0,34,2,66,32,90,4,126,32,0,65,8,106,41,3,0,34,3,66,1,137,32,0,65,16,106,41,3,0,34,4,66,7,137,124,32,1,66,12,137,32,0,65,32,106,41,3,0,34,5,66,18,137,124,124,32,3,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,4,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,1,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,5,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,5,32,1,66,197,207,217,178,241,229,186,234,39,124,11,32,2,124,32,0,65,40,106,32,2,66,31,131,167,16,6,11]);async function e(){return function(t){const{exports:{mem:e,xxh32:n,xxh64:r,init32:i,update32:a,digest32:o,init64:s,update64:u,digest64:c}}=t;let h=new Uint8Array(e.buffer);function g(t,n){if(e.buffer.byteLength<t+n){const r=Math.ceil((t+n-e.buffer.byteLength)/65536);e.grow(r),h=new Uint8Array(e.buffer)}}function f(t,e,n,r,i,a){g(t);const o=new Uint8Array(t);return h.set(o),n(0,e),o.set(h.subarray(0,t)),{update(e){let n;return h.set(o),"string"==typeof e?(g(3*e.length,t),n=w.encodeInto(e,h.subarray(t)).written):(g(e.byteLength,t),h.set(e,t),n=e.byteLength),r(0,t,n),o.set(h.subarray(0,t)),this},digest:()=>(h.set(o),a(i(0)))}}function y(t){return t>>>0}const b=2n**64n-1n;function d(t){return t&b}const w=new TextEncoder,l=0,p=0n;function x(t,e=l){return g(3*t.length,0),y(n(0,w.encodeInto(t,h).written,e))}function L(t,e=p){return g(3*t.length,0),d(r(0,w.encodeInto(t,h).written,e))}return{h32:x,h32ToString:(t,e=l)=>x(t,e).toString(16).padStart(8,"0"),h32Raw:(t,e=l)=>(g(t.byteLength,0),h.set(t),y(n(0,t.byteLength,e))),create32:(t=l)=>f(48,t,i,a,o,y),h64:L,h64ToString:(t,e=p)=>L(t,e).toString(16).padStart(16,"0"),h64Raw:(t,e=p)=>(g(t.byteLength,0),h.set(t),d(r(0,t.byteLength,e))),create64:(t=p)=>f(88,t,s,u,c,d)}}((await WebAssembly.instantiate(t)).instance)}\n//# sourceMappingURL=xxhash-wasm.js.map\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/xxhash-wasm/esm/xxhash-wasm.js?')},"../builds/80918AC8127BA/0.0.53/config-d80918ac8127ba-v0-0-53.json":module=>{"use strict";eval('module.exports = /*#__PURE__*/JSON.parse(\'{"c":"INR","d":"80918AC8127BA","e":"app.animaadtech.localhost","f":3000,"l":{"m":"AS","p":"/api/logger/v1","t":"EV","v":10},"o":2000,"p":"hb","t":"/api/experiment/v1","v":"","as":[{"f":0,"g":"/139951767/ca-pub-7625127328873999/test-anima-2","i":"9FUYFV9JO7T7P","l":"EG","m":{"f":"BN","sz":{"a":[[300,250]]}},"n":{"a":"WN","r":"LF","s":false,"z":false},"r":{"c":5,"i":30,"t":"IV"},"tg":[{"b":"testbidder","pm":{"ad":"<img src=\\\'https://storage.googleapis.com/pub-ad-manager-459713/ad-creative/mock-ad-banner-300-250.png\\\' alt=\\\'Test Ad 300x250\\\' width=\\\'300\\\' height=\\\'250\\\'>","cpm":"0.15","width":"300","height":"250","placement_id":"1234568"}},{"b":"appnexus","pm":{"placement_id":12345673}}]},{"f":0,"g":"/139951767/ca-pub-7625127328873999/test-anima-2","i":"OR1FZWM0AFFSF","l":"EG","m":{"f":"BN","sz":{"a":[[300,250]]}},"n":{"a":"WN","r":"TP","s":false,"z":false},"r":{"c":5,"i":30,"t":"IV"},"tg":[{"b":"testbidder","pm":{"ad":"<img src=\\\'https://storage.googleapis.com/pub-ad-manager-459713/ad-creative/mock-ad-banner-300-250.png\\\' alt=\\\'Test Ad 300x250\\\' width=\\\'300\\\' height=\\\'250\\\'>","cpm":"1.1","width":"300","height":"250","placement_id":"123456"}},{"b":"appnexus","pm":{"placement_id":12345672}}]},{"f":0,"g":"/139951767/ca-pub-7625127328873999/test-anima-1","i":"BFPMZCU6CUPQX","l":"EG","m":{"f":"BN","sz":{"a":[[300,600]]}},"n":{"a":"ST","d":"sidebar-ad-1","r":"IN"},"r":{"c":15,"i":30,"t":"IV"},"tg":[{"b":"testbidder","pm":{"ad":"<img src=\\\'https://storage.googleapis.com/pub-ad-manager-459713/ad-creative/mock-ad-banner-300-600.png\\\' alt=\\\'Test Ad 300x600\\\' width=\\\'300\\\' height=\\\'600\\\'>","cpm":"4.05","width":"300","height":"600","placement_id":"1234567"}},{"b":"appnexus","pm":{"placement_id":12345671}}]}],"ly":[],"pb":[]}\');\n\n//# sourceURL=webpack://@wrapp/wrapper/../builds/80918AC8127BA/0.0.53/config-d80918ac8127ba-v0-0-53.json?')}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,exports:{}};return __webpack_modules__[e](n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nc=void 0,__webpack_require__("./src/index.ts"),__webpack_require__("./src/wrapperTag.ts"),__webpack_require__("../builds/80918AC8127BA/0.0.53/prebid.js");var __webpack_exports__=__webpack_require__("./css/sticky.css")})();
|
|
1
|
+
/*! app name: app-p80918ac8127ba.js | version: 0.0.55 | build date: 2025-08-14T05:03:26.747Z */(()=>{var __webpack_modules__={"../builds/80918AC8127BA/0.0.55/prebid.js":()=>{eval('/* prebid.js v9.23.0\nUpdated: 2025-08-13\nModules: testbidderBidAdapter, appnexusBidAdapter */\nif(window.pbjs&&window.pbjs.libLoaded)try{window.pbjs.getConfig("debug")&&console.warn("Attempted to load a copy of Prebid.js that clashes with the existing \'pbjs\' instance. Load aborted.")}catch(e){}else (function(){\n(()=>{var r,t={433:(r,t,e)=>{function n(r,t,e,n,o){for(t=t.split?t.split("."):t,n=0;n<t.length;n++)r=r?r[t[n]]:o;return r===o?e:r}e.d(t,{A:()=>n})},8128:r=>{\n/*\n* @license MIT\n* Fun Hooks v0.9.10\n* (c) @snapwich\n*/\nu.SYNC=1,u.ASYNC=2,u.QUEUE=4;var t="fun-hooks";var e=Object.freeze({useProxy:!0,ready:0}),n=new WeakMap,o="2,1,0"===[1].reduce((function(r,t,e){return[r,t,e]}),2).toString()?Array.prototype.reduce:function(r,t){var e,n=Object(this),o=n.length>>>0,i=0;if(t)e=t;else{for(;i<o&&!(i in n);)i++;e=n[i++]}for(;i<o;)i in n&&(e=r(e,n[i],i,n)),i++;return e};function i(r,t){return Array.prototype.slice.call(r,t)}var f=Object.assign||function(r){return o.call(i(arguments,1),(function(r,t){return t&&Object.keys(t).forEach((function(e){r[e]=t[e]})),r}),r)};function u(r){var a,c={},l=[];function p(r,t){return"function"==typeof r?h.call(null,"sync",r,t):"string"==typeof r&&"function"==typeof t?h.apply(null,arguments):"object"==typeof r?y.apply(null,arguments):void 0}function y(r,t,e){var n=!0;void 0===t&&(t=Object.getOwnPropertyNames(r),n=!1);var o={},i=["constructor"];do{(t=t.filter((function(t){return!("function"!=typeof r[t]||-1!==i.indexOf(t)||t.match(/^_/))}))).forEach((function(t){var n=t.split(":"),i=n[0],f=n[1]||"sync";if(!o[i]){var u=r[i];o[i]=r[i]=h(f,u,e?[e,i]:void 0)}})),r=Object.getPrototypeOf(r)}while(n&&r);return o}function s(r){var e=Array.isArray(r)?r:r.split(".");return o.call(e,(function(n,o,i){var f=n[o],u=!1;return f||(i===e.length-1?(a||l.push((function(){u||console.warn(t+": referenced \'"+r+"\' but it was never created")})),n[o]=v((function(r){n[o]=r,u=!0}))):n[o]={})}),c)}function v(r){var t=[],e=[],o=function(){},i={before:function(r,e){return a.call(this,t,"before",r,e)},after:function(r,t){return a.call(this,e,"after",r,t)},getHooks:function(r){var n=t.concat(e);"object"==typeof r&&(n=n.filter((function(t){return Object.keys(r).every((function(e){return t[e]===r[e]}))})));try{f(n,{remove:function(){return n.forEach((function(r){r.remove()})),this}})}catch(r){console.error("error adding `remove` to array, did you modify Array.prototype?")}return n},removeAll:function(){return this.getHooks().remove()}},u={install:function(n,i,f){this.type=n,o=f,f(t,e),r&&r(i)}};return n.set(i.after,u),i;function a(r,n,i,f){var u={hook:i,type:n,priority:f||10,remove:function(){var n=r.indexOf(u);-1!==n&&(r.splice(n,1),o(t,e))}};return r.push(u),r.sort((function(r,t){return t.priority-r.priority})),o(t,e),this}}function h(e,o,c){var p=o.after&&n.get(o.after);if(p){if(p.type!==e)throw t+": recreated hookable with different type";return o}var y,h,d=c?s(c):v(),b={get:function(r,t){return d[t]||Reflect.get.apply(Reflect,arguments)}};return a||l.push(g),r.useProxy&&"function"==typeof Proxy&&Proxy.revocable?h=new Proxy(o,b):(h=function(){return b.apply?b.apply(o,this,i(arguments)):o.apply(this,arguments)},f(h,d)),n.get(h.after).install(e,h,(function(r,t){var n,o=[];r.length||t.length?(r.forEach(f),n=o.push(void 0)-1,t.forEach(f),y=function(r,t,f){var u,a=0,c="async"===e&&"function"==typeof f[f.length-1]&&f.pop();function l(r){"sync"===e?u=r:c&&c.apply(null,arguments)}function p(r){if(o[a]){var n=i(arguments);return p.bail=l,n.unshift(p),o[a++].apply(t,n)}"sync"===e?u=r:c&&c.apply(null,arguments)}return o[n]=function(){var n=i(arguments,1);"async"===e&&c&&(delete p.bail,n.push(p));var o=r.apply(t,n);"sync"===e&&p(o)},p.apply(null,f),u}):y=void 0;function f(r){o.push(r.hook)}g()})),h;function g(){!a&&("sync"!==e||r.ready&u.SYNC)&&("async"!==e||r.ready&u.ASYNC)?"sync"!==e&&r.ready&u.QUEUE?b.apply=function(){var r=arguments;l.push((function(){h.apply(r[1],r[2])}))}:b.apply=function(){throw t+": hooked function not ready"}:b.apply=y}}return(r=f({},e,r)).ready?p.ready=function(){a=!0,function(r){for(var t;t=r.shift();)t()}(l)}:a=!0,p.get=s,p}r.exports=u},3172:(r,t,e)=>{function n(r,t,e){t.split&&(t=t.split("."));for(var n,o,i=0,f=t.length,u=r;i<f&&"__proto__"!=(o=""+t[i++])&&"constructor"!==o&&"prototype"!==o;)u=u[o]=i===f?e:typeof(n=u[o])==typeof t?n:0*t[i]!=0||~(""+t[i]).indexOf(".")?{}:[]}e.d(t,{J:()=>n})},5751:(r,t,e)=>{function n(r){var t,e,o;if(Array.isArray(r)){for(e=Array(t=r.length);t--;)e[t]=(o=r[t])&&"object"==typeof o?n(o):o;return e}if("[object Object]"===Object.prototype.toString.call(r)){for(t in e={},r)"__proto__"===t?Object.defineProperty(e,t,{value:n(r[t]),configurable:!0,enumerable:!0,writable:!0}):e[t]=(o=r[t])&&"object"==typeof o?n(o):o;return e}return r}e.d(t,{Q:()=>n})}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.m=t,r=[],n.O=(t,e,o,i)=>{if(!e){var f=1/0;for(l=0;l<r.length;l++){e=r[l][0],o=r[l][1],i=r[l][2];for(var u=!0,a=0;a<e.length;a++)(!1&i||f>=i)&&Object.keys(n.O).every((r=>n.O[r](e[a])))?e.splice(a--,1):(u=!1,i<f&&(f=i));if(u){r.splice(l--,1);var c=o();void 0!==c&&(t=c)}}return t}i=i||0;for(var l=r.length;l>0&&r[l-1][2]>i;l--)r[l]=r[l-1];r[l]=[e,o,i]},n.n=r=>{var t=r&&r.__esModule?()=>r.default:()=>r;return n.d(t,{a:t}),t},n.d=(r,t)=>{for(var e in t)n.o(t,e)&&!n.o(r,e)&&Object.defineProperty(r,e,{enumerable:!0,get:t[e]})},n.o=(r,t)=>Object.prototype.hasOwnProperty.call(r,t),(()=>{var r={673:0};n.O.j=t=>0===r[t];var t=(t,e)=>{var o,i,f=e[0],u=e[1],a=e[2],c=0;if(f.some((t=>0!==r[t]))){for(o in u)n.o(u,o)&&(n.m[o]=u[o]);if(a)var l=a(n)}for(t&&t(e);c<f.length;c++)i=f[c],n.o(r,i)&&r[i]&&r[i][0](),r[i]=0;return n.O(l)},e=self.pbjsChunk=self.pbjsChunk||[];e.forEach(t.bind(null,0)),e.push=t.bind(null,e.push.bind(e))})();var o=n.O(void 0,[802,85],(()=>n(5952)));o=n.O(o)})();\n(self.pbjsChunk=self.pbjsChunk||[]).push([[802],{5789:(e,t,n)=>{n.d(t,{A4:()=>u,J7:()=>l,Pg:()=>f});var i=n(1580),r=n(1069),o=n(5901),s=n(7873),a=n(5569);const d=(0,s.m)(),c="outstream";function u(e){const{url:t,config:n,id:s,callback:u,loaded:l,adUnitCode:f,renderNow:g}=e;this.url=t,this.config=n,this.handlers={},this.id=s,this.renderNow=g,this.loaded=l,this.cmd=[],this.push=e=>{"function"==typeof e?this.loaded?e.call():this.cmd.push(e):(0,r.vV)("Commands given to Renderer.push must be wrapped in a function")},this.callback=u||(()=>{this.loaded=!0,this.process()}),this.render=function(){const e=arguments,n=()=>{this._render?this._render.apply(this,e):(0,r.JE)("No render function was provided, please use .setRender on the renderer")};!function(e){const t=d.adUnits,n=(0,o.I6)(t,(t=>t.code===e));if(!n)return!1;const i=n?.renderer,r=!!(i&&i.url&&i.render),s=n?.mediaTypes?.video?.renderer,a=!!(s&&s.url&&s.render);return!!(r&&!0!==i.backupOnly||a&&!0!==s.backupOnly)}(f)?g?n():(this.cmd.unshift(n),(0,i.R)(t,a.tp,c,this.callback,this.documentContext)):((0,r.JE)(`External Js not loaded by Renderer since renderer url and callback is already defined on adUnit ${f}`),n())}.bind(this)}function l(e){return!(!e||!e.url&&!e.renderNow)}function f(e,t,n){let i=null;e.config&&e.config.documentResolver&&(i=e.config.documentResolver(t,document,n)),i||(i=document),e.documentContext=i,e.render(t,e.documentContext)}u.install=function(e){let{url:t,config:n,id:i,callback:r,loaded:o,adUnitCode:s,renderNow:a}=e;return new u({url:t,config:n,id:i,callback:r,loaded:o,adUnitCode:s,renderNow:a})},u.prototype.getConfig=function(){return this.config},u.prototype.setRender=function(e){this._render=e},u.prototype.setEventHandlers=function(e){this.handlers=e},u.prototype.handleVideoEvent=function(e){let{id:t,eventName:n}=e;"function"==typeof this.handlers[n]&&this.handlers[n](),(0,r.OG)(`Prebid Renderer event for id ${t} type ${n}`)},u.prototype.process=function(){for(;this.cmd.length>0;)try{this.cmd.shift().call()}catch(e){(0,r.vV)("Error processing Renderer command: ",e)}}},6811:(e,t,n)=>{n.d(t,{DL:()=>d,Ml:()=>r,Ue:()=>i,VJ:()=>u,hE:()=>c,hq:()=>a,mo:()=>s,pY:()=>l,uc:()=>o});const i="accessDevice",r="syncUser",o="fetchBids",s="reportAnalytics",a="transmitEids",d="transmitUfpd",c="transmitPreciseGeo",u="transmitTid",l="loadExternalScript"},3441:(e,t,n)=>{n.d(t,{s:()=>r});var i=n(8046);const r=(0,n(2604).ZI)((e=>i.Ay.resolveAlias(e)))},5569:(e,t,n)=>{n.d(t,{Tn:()=>o,tW:()=>r,tp:()=>i});const i="prebid",r="bidder",o="analytics"},2604:(e,t,n)=>{n.d(t,{Dk:()=>s,Ii:()=>o,TQ:()=>g,XG:()=>u,ZI:()=>p,Zw:()=>c,bt:()=>l,e3:()=>f,iK:()=>a,q7:()=>d});var i=n(5569),r=n(9214);const o="component",s=o+"Type",a=o+"Name",d="adapterCode",c="storageType",u="configName",l="syncType",f="syncUrl",g="_config";function p(e){return function(t,n,r){const c={[s]:t,[a]:n,[o]:`${t}.${n}`};return t===i.tW&&(c[d]=e(n)),h(Object.assign(c,r))}}const h=(0,r.A_)("sync",(e=>e))},5139:(e,t,n)=>{n.d(t,{io:()=>s,qB:()=>o});var i=n(1069),r=n(2604);const[o,s]=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(0,i.h0)("Activity control:");const t={};function n(e){return t[e]=t[e]||[]}function o(t,n,i,o){let s;try{s=i(o)}catch(i){e.logError(`Exception in rule ${n} for \'${t}\'`,i),s={allow:!1,reason:i}}return s&&Object.assign({activity:t,name:n,component:o[r.Ii]},s)}const s={};function a(t){let{activity:n,name:i,allow:r,reason:o,component:a}=t;const d=`${i} ${r?"allowed":"denied"} \'${n}\' for \'${a}\'${o?":":""}`,c=s.hasOwnProperty(d);if(c&&clearTimeout(s[d]),s[d]=setTimeout((()=>delete s[d]),1e3),!c){const t=[d];o&&t.push(o),(r?e.logInfo:e.logWarn).apply(e,t)}}return[function(e,t,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;const o=n(e),s=o.findIndex((e=>{let[t]=e;return r<t})),a=[r,t,i];return o.splice(s<0?o.length:s,0,a),function(){const e=o.indexOf(a);e>=0&&o.splice(e,1)}},function(e,t){let i,r;for(const[s,d,c]of n(e)){if(i!==s&&r)break;i=s;const n=o(e,d,c,t);if(n){if(!n.allow)return a(n),!1;r=n}}return r&&a(r),!0}]}()},9075:(e,t,n)=>{n.d(t,{$A:()=>T,BS:()=>W,Hh:()=>q,Pk:()=>x,Uc:()=>O,XO:()=>P,bw:()=>U,n6:()=>w,qn:()=>_,vB:()=>N,vW:()=>k,vd:()=>S});var i=n(1069),r=n(5023),o=n(8969),s=n(3272),a=n(5789),d=n(1371),c=n(6881),u=n(6031),l=n(9214),f=n(2449),g=n(5555),p=n(8046),h=n(6894),m=n(7779);const{AD_RENDER_FAILED:b,AD_RENDER_SUCCEEDED:y,STALE_RENDER:v,BID_WON:E,EXPIRED_RENDER:A}=o.qY,{EXCEPTION:I}=o.as,T=(0,l.A_)("sync",(function(e){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:g.k.resolve()).then((t=>t??c.n.findBidByAdId(e))).catch((()=>{}))})),w=(0,l.A_)("sync",(function(e){r.Ic(E,e),c.n.addWinningBid(e)}));function C(e){let{reason:t,message:n,bid:o,id:s}=e;const a={reason:t,message:n};o&&(a.bid=o,a.adId=o.adId),s&&(a.adId=s),(0,i.vV)(`Error rendering ad (id: ${s}): ${n}`),r.Ic(b,a)}function B(e){let{doc:t,bid:n,id:i}=e;const o={doc:t};n&&(o.bid=n),i&&(o.adId=i),p.Ay.callAdRenderSucceededBidder(n.adapterCode||n.bidder,n),r.Ic(y,o)}function O(e,t){switch(e.event){case o.qY.AD_RENDER_FAILED:C({bid:t,id:t.adId,reason:e.info.reason,message:e.info.message});break;case o.qY.AD_RENDER_SUCCEEDED:B({doc:null,bid:t,id:t.adId});break;default:(0,i.vV)(`Received event request for unsupported event: \'${e.event}\' (adId: \'${t.adId}\')`)}}function k(e,t,n){let{resizeFn:i,fireTrackers:r=f.vO}=n;if("resizeNativeHeight"===e.action)i(e.width,e.height);else r(e,t)}const R={[o.nl.EVENT]:O};R[o.nl.NATIVE]=k;const S=(0,l.A_)("sync",(function(e,t){const{ad:n,adUrl:r,cpm:o,originalCpm:s,width:a,height:d}=e,c={AUCTION_PRICE:s||o,CLICKTHROUGH:t?.clickUrl||""};return{ad:(0,i.gM)(n,c),adUrl:(0,i.gM)(r,c),width:a,height:d}})),D=(0,l.A_)("sync",(function(e){let{renderFn:t,resizeFn:n,bidResponse:r,options:s,doc:a,isMainDocument:c=a===document&&!(0,i.al)()}=e;const u=r.mediaType===d.G_;if(c||u)return void C({reason:o.as.PREVENT_WRITING_ON_MAIN_DOCUMENT,message:u?"Cannot render video ad without a renderer":"renderAd was prevented from writing to the main document.",bid:r,id:r.adId});const l=S(r,s);t(Object.assign({adId:r.adId},l));const{width:f,height:g}=l;null!=(f??g)&&n(f,g)}));function U(e){let{renderFn:t,resizeFn:n,adId:a,options:d,bidResponse:c,doc:u}=e;q(c,(()=>{if(null!=c){if((c.status!==o.tl.RENDERED||((0,i.JE)(`Ad id ${a} has been rendered before`),r.Ic(v,c),!s.$W.getConfig("auctionOptions")?.suppressStaleRender))&&(m.uW.isBidNotExpired(c)||((0,i.JE)(`Ad id ${a} has been expired`),r.Ic(A,c),!s.$W.getConfig("auctionOptions")?.suppressExpiredRender)))try{D({renderFn:t,resizeFn:n,bidResponse:c,options:d,doc:u})}catch(e){C({reason:o.as.EXCEPTION,message:e.message,id:a,bid:c})}}else C({reason:o.as.CANNOT_FIND_AD,message:`Cannot find ad \'${a}\'`,id:a})}))}function _(e){const t=(0,h.BO)(e.metrics);t.checkpoint("bidRender"),t.timeBetween("bidWon","bidRender","render.deferred"),t.timeBetween("auctionEnd","bidRender","render.pending"),t.timeBetween("requestBids","bidRender","render.e2e"),e.status=o.tl.RENDERED}D.before((function(e,t){const{bidResponse:n,doc:i}=t;(0,a.J7)(n.renderer)?((0,a.Pg)(n.renderer,n,i),B({doc:i,bid:n,id:n.adId}),e.bail()):e(t)}),100);const j=new WeakMap,$=new WeakSet;function q(e,t){null!=e?(j.set(e,t),e.deferRendering||N(e),x(e)):t()}function x(e){$.has(e)||($.add(e),w(e))}function N(e){const t=j.get(e);t&&(t(),_(e),j.delete(e))}function W(e,t,n){let r;function s(e,n){C(Object.assign({id:t,bid:r},{reason:e,message:n}))}function a(t,n){e.defaultView&&e.defaultView.frameElement&&(t&&(e.defaultView.frameElement.width=t),n&&(e.defaultView.frameElement.height=n))}const d=(c={resizeFn:a},function(e,t,n){R.hasOwnProperty(e)&&R[e](t,n,c)});var c;function l(t){t.ad?(e.write(t.ad),e.close(),B({doc:e,bid:r,id:r.adId})):(0,u.H)(r).then((n=>n(t,{sendMessage:(e,t)=>d(e,t,r),mkFrame:i.hw},e.defaultView))).then((()=>B({doc:e,bid:r,id:r.adId})),(e=>{s(e?.reason||o.as.EXCEPTION,e?.message),e?.stack&&(0,i.vV)(e)}));const n=document.createComment(`Creative ${r.creativeId} served by ${r.bidder} Prebid.js Header Bidding`);(0,i._s)(n,e,"html")}try{t&&e?T(t).then((i=>{r=i,U({renderFn:l,resizeFn:a,adId:t,options:{clickUrl:n?.clickThrough},bidResponse:i,doc:e})})):s(o.as.MISSING_DOC_OR_ADID,"missing "+(t?"doc":"adId"))}catch(e){s(I,e.message)}}function P(){if(!window.frames[o.IY])if(document.body){const e=(0,i.CA)();e.name=o.IY,document.body.appendChild(e)}else window.requestAnimationFrame(P)}},8046:(e,t,n)=>{n.d(t,{Ay:()=>te,pX:()=>Q});var i=n(1069),r=n(2449),o=n(9115),s=n(8044),a=n(3272),d=n(9214),c=n(5901);let u={};function l(e,t,n){let i=function(e,t){let n=u[e]=u[e]||{bidders:{}};return t?n.bidders[t]=n.bidders[t]||{}:n}(e,n);return i[t]=(i[t]||0)+1,i[t]}function f(e){return l(e,"auctionsCounter")}function g(e){return u?.[e]?.requestsCounter||0}function p(e,t){return u?.[e]?.bidders?.[t]?.requestsCounter||0}function h(e,t){return u?.[e]?.bidders?.[t]?.winsCounter||0}function m(e){return u?.[e]?.auctionsCounter||0}var b=n(7934),y=n(6916),v=n(5023),E=n(8969),A=n(6894),I=n(6881),T=n(5569),w=n(5139),C=n(6811),B=n(2604),O=n(433);const k=["data","ext.data","yob","gender","keywords","kwarray","id","buyeruid","customdata"].map((e=>`user.${e}`)).concat("device.ext.cdep"),R=["user.eids","user.ext.eids"],S=["user.geo.lat","user.geo.lon","device.geo.lat","device.geo.lon"],D=["device.ip"],U=["device.ipv6"];function _(e){return Object.assign({get(){},run(e,t,n,i,r){const o=n&&n[i];if(function(e){return null!=e&&("object"!=typeof e||Object.keys(e).length>0)}(o)&&r()){const e=this.get(o);void 0===e?delete n[i]:n[i]=e}}},e)}function j(e){return e.forEach((e=>{e.paths=e.paths.map((e=>{const t=e.split("."),n=t.pop();return[t.length>0?t.join("."):null,n]}))})),function(t,n){const i=[];for(var r=arguments.length,o=new Array(r>2?r-2:0),s=2;s<r;s++)o[s-2]=arguments[s];const a=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return function(t){return e.hasOwnProperty(t.name)||(e[t.name]=!!t.applies(...n)),e[t.name]}}(t,...o);return e.forEach((e=>{if(!1!==t[e.name])for(const[r,o]of e.paths){const s=null==r?n:(0,O.A)(n,r);if(i.push(e.run(n,r,s,o,a.bind(null,e))),!1===t[e.name])return}})),i.filter((e=>null!=e))}}function $(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:w.io;return function(n){return!t(e,n)}}function q(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w.io;return[{name:C.DL,paths:k,applies:$(C.DL,e)},{name:C.hq,paths:R,applies:$(C.hq,e)},{name:C.hE,paths:S,applies:$(C.hE,e),get:e=>Math.round(100*(e+Number.EPSILON))/100},{name:C.hE,paths:D,applies:$(C.hE,e),get:e=>function(e){if(!e)return null;let t=e.split(".").map(Number);if(4!=t.length)return null;let n=[];for(let e=0;e<4;e++){let t=Math.max(0,Math.min(8,24-8*e));n.push(255<<8-t&255)}return t.map(((e,t)=>e&n[t])).join(".")}(e)},{name:C.hE,paths:U,applies:$(C.hE,e),get:e=>function(e){if(!e)return null;let t=e.split(":").map((e=>parseInt(e,16)));for(t=t.map((e=>isNaN(e)?0:e));t.length<8;)t.push(0);if(8!=t.length)return null;let n=[];for(let e=0;e<8;e++){let t=Math.max(0,Math.min(16,64-16*e));n.push(65535<<16-t&65535)}return t.map(((e,t)=>e&n[t])).map((e=>e.toString(16))).join(":")}(e)},{name:C.VJ,paths:["source.tid"],applies:$(C.VJ,e)}].map(_)}const x=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w.io;const t=j(q(e)),n=j(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w.io;return[{name:C.hq,paths:["userId","userIdAsEids"],applies:$(C.hq,e)},{name:C.VJ,paths:["ortb2Imp.ext.tid"],applies:$(C.VJ,e)}].map(_)}(e));return function(e){const i={};return{ortb2:n=>(t(i,n,e),n),bidRequest:t=>(n(i,t,e),t)}}}();(0,w.qB)(C.VJ,"enableTIDs config",(()=>{if(!a.$W.getConfig("enableTIDs"))return{allow:!1,reason:"TIDs are disabled"}}));const N="pbsBidAdapter",W={CLIENT:"client",SERVER:"server"},P={isAllowed:w.io,redact:x};let V={},M=V.bidderRegistry={},G=V.aliasRegistry={},F=[];a.$W.getConfig("s2sConfig",(e=>{e&&e.s2sConfig&&(F=(0,i.cy)(e.s2sConfig)?e.s2sConfig:[e.s2sConfig])}));var H={};const L=(0,B.ZI)((e=>V.resolveAlias(e)));const z=(0,d.A_)("sync",(function(e){let{bidderCode:t,auctionId:n,bidderRequestId:r,adUnits:o,src:s,metrics:a}=e;return o.reduce(((e,o)=>{const d=o.bids.filter((e=>e.bidder===t));return null==t&&0===d.length&&null!=o.s2sBid&&d.push({bidder:null}),e.push(d.reduce(((e,d)=>{const c=null==(d=Object.assign({},d,{ortb2Imp:(0,i.D9)({},o.ortb2Imp,d.ortb2Imp)},(0,i.SH)(o,["nativeParams","nativeOrtbRequest","mediaType","renderer"]))).mediaTypes?o.mediaTypes:d.mediaTypes;return(0,i.wD)(c)?d=Object.assign({},d,{mediaTypes:c}):(0,i.vV)(`mediaTypes is not correctly configured for adunit ${o.code}`),"client"===s&&function(e,t){l(e,"requestsCounter",t)}(o.code,t),e.push(Object.assign({},d,{adUnitCode:o.code,transactionId:o.transactionId,adUnitId:o.adUnitId,sizes:c?.banner?.sizes||c?.video?.playerSize||[],bidId:d.bid_id||(0,i.s0)(),bidderRequestId:r,auctionId:n,src:s,metrics:a,auctionsCount:m(o.code),bidRequestsCount:g(o.code),bidderRequestsCount:p(o.code,d.bidder),bidderWinsCount:h(o.code,d.bidder),deferBilling:!!o.deferBilling})),e}),[])),e}),[]).reduce(i.Bq,[]).filter((e=>""!==e))}),"getBids");const J=(0,d.A_)("sync",(function(e,t){let{getS2SBidders:n=Q}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(null==t)return e;{const i=n(t);return e.filter((e=>i.has(e.bidder)))}}),"filterBidsForAdUnit");const K=(0,d.A_)("sync",((e,t)=>e),"setupAdUnitMediaTypes");function Q(e){(0,i.cy)(e)||(e=[e]);const t=new Set([null]);return e.filter((e=>e&&e.enabled)).flatMap((e=>e.bidders)).forEach((e=>t.add(e))),t}const Y=(0,d.A_)("sync",(function(e,t){let{getS2SBidders:n=Q}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=n(t);return(0,i.ZA)(e).reduce(((e,t)=>(e[r.has(t)?W.SERVER:W.CLIENT].push(t),e)),{[W.CLIENT]:[],[W.SERVER]:[]})}),"partitionBidders");function X(e,t){const n=M[e],i=n?.getSpec&&n.getSpec();if(i&&i[t]&&"function"==typeof i[t])return[i,i[t]]}function Z(e,t,n,r){try{(0,i.fH)(`Invoking ${e}.${t}`);for(var o=arguments.length,s=new Array(o>4?o-4:0),d=4;d<o;d++)s[d-4]=arguments[d];a.$W.runWithBidder(e,r.bind(n,...s))}catch(n){(0,i.JE)(`Error calling ${t} of ${e}`)}}function ee(e,t,n){if(n?.source!==E.RW.SRC){const i=X(e,t);null!=i&&Z(e,t,...i,n)}}V.makeBidRequests=(0,d.A_)("sync",(function(e,t,n,o,s){let d=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},u=arguments.length>6?arguments[6]:void 0;u=(0,A.BO)(u),v.Ic(E.qY.BEFORE_REQUEST_BIDS,e),(0,r.nk)(e),e.map((e=>e.code)).filter(i.hj).forEach(f),e.forEach((e=>{(0,i.Qd)(e.mediaTypes)||(e.mediaTypes={}),e.bids=e.bids.filter((e=>!e.bidder||P.isAllowed(C.uc,L(T.tW,e.bidder)))),l(e.code,"requestsCounter")})),e=K(e,s);let{[W.CLIENT]:g,[W.SERVER]:p}=Y(e,F);a.$W.getConfig("bidderSequence")===a.Ov&&(g=(0,i.k4)(g));const h=(0,b.EN)();let m=[];const I=d.global||{},w=d.bidder||{};function O(e,t){const r=P.redact(null!=t?t:L(T.tW,e.bidderCode)),o=Object.freeze(r.ortb2((0,i.D9)({source:{tid:n}},I,w[e.bidderCode])));return e.ortb2=o,e.bids=e.bids.map((e=>(e.ortb2=o,r.bidRequest(e)))),e}F.forEach((r=>{const o=function(e){return L(T.tp,N,{[B.XG]:e.configName})}(r);if(r&&r.enabled&&P.isAllowed(C.uc,o)){let{adUnits:s,hasModuleBids:a}=function(e,t){let n=(0,i.Go)(e),r=!1;return n.forEach((e=>{const n=e.bids.filter((e=>e.module===N&&e.params?.configName===t.configName));1===n.length?(e.s2sBid=n[0],r=!0,e.ortb2Imp=(0,i.D9)({},e.s2sBid.ortb2Imp,e.ortb2Imp)):n.length>1&&(0,i.JE)(\'Multiple "module" bids for the same s2s configuration; all will be ignored\',n),e.bids=J(e.bids,t).map((e=>(e.bid_id=(0,i.s0)(),e)))})),n=n.filter((e=>0!==e.bids.length||null!=e.s2sBid)),{adUnits:n,hasModuleBids:r}}(e,r),d=(0,i.lk)();(0===p.length&&a?[null]:p).forEach((e=>{const a=(0,i.s0)(),c=u.fork(),l=O({bidderCode:e,auctionId:n,bidderRequestId:a,uniquePbsTid:d,bids:z({bidderCode:e,auctionId:n,bidderRequestId:a,adUnits:(0,i.Go)(s),src:E.RW.SRC,metrics:c}),auctionStart:t,timeout:r.timeout,src:E.RW.SRC,refererInfo:h,metrics:c},o);0!==l.bids.length&&m.push(l)})),s.forEach((e=>{let t=e.bids.filter((e=>(0,c.I6)(m,(t=>(0,c.I6)(t.bids,(t=>t.bidId===e.bid_id))))));e.bids=t})),m.forEach((e=>{void 0===e.adUnitsS2SCopy&&(e.adUnitsS2SCopy=s.filter((e=>e.bids.length>0||null!=e.s2sBid)))}))}}));let k=function(e){let t=(0,i.Go)(e);return t.forEach((e=>{e.bids=J(e.bids,null)})),t=t.filter((e=>0!==e.bids.length)),t}(e);return g.forEach((e=>{const r=(0,i.s0)(),a=u.fork(),d=O({bidderCode:e,auctionId:n,bidderRequestId:r,bids:z({bidderCode:e,auctionId:n,bidderRequestId:r,adUnits:(0,i.Go)(k),labels:s,src:"client",metrics:a}),auctionStart:t,timeout:o,refererInfo:h,metrics:a}),c=M[e];c||(0,i.vV)(`Trying to make a request for bidder that does not exist: ${e}`),c&&d.bids&&0!==d.bids.length&&m.push(d)})),m.forEach((e=>{y.mW.getConsentData()&&(e.gdprConsent=y.mW.getConsentData()),y.t6.getConsentData()&&(e.uspConsent=y.t6.getConsentData()),y.ad.getConsentData()&&(e.gppConsent=y.ad.getConsentData())})),m}),"makeBidRequests"),V.callBids=function(e,t,n,r,o,d,c){let u=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{};if(!t.length)return void(0,i.JE)("callBids executed with no bidRequests. Were they filtered by labels or sizing?");let[l,f]=t.reduce(((e,t)=>(e[Number(void 0!==t.src&&t.src===E.RW.SRC)].push(t),e)),[[],[]]);var g=[];f.forEach((e=>{for(var t=-1,n=0;n<g.length;++n)if(e.uniquePbsTid===g[n].uniquePbsTid){t=n;break}t<=-1&&g.push(e)}));let p=0;F.forEach((e=>{if(e&&g[p]&&Q(e).has(g[p].bidderCode)){const t=(0,s.g4)(d,o?{request:o.request.bind(null,"s2s"),done:o.done}:void 0);let a=e.bidders;const l=M[e.adapter];let h=g[p].uniquePbsTid,m=g[p].adUnitsS2SCopy,b=f.filter((e=>e.uniquePbsTid===h));if(l){let o={ad_units:m,s2sConfig:e,ortb2Fragments:u,requestBidsTimeout:d};if(o.ad_units.length){let e=b.map((e=>(e.start=(0,i.vE)(),function(t){t||c(e.bidderRequestId),r.apply(e,arguments)})));const s=(0,i.ZA)(o.ad_units).filter((e=>a.includes(e)));(0,i.OG)(`CALLING S2S HEADER BIDDERS ==== ${s.length>0?s.join(", "):\'No bidder specified, using "ortb2Imp" definition(s) only\'}`),b.forEach((e=>{v.Ic(E.qY.BID_REQUESTED,{...e,tid:e.auctionId})})),l.callBids(o,f,n,(t=>e.forEach((e=>e(t)))),t)}}else(0,i.vV)("missing "+e.adapter);p++}})),l.forEach((e=>{e.start=(0,i.vE)();const t=M[e.bidderCode];a.$W.runWithBidder(e.bidderCode,(()=>{(0,i.OG)("CALLING BIDDER"),v.Ic(E.qY.BID_REQUESTED,e)}));let u=(0,s.g4)(d,o?{request:o.request.bind(null,e.bidderCode),done:o.done}:void 0);const l=r.bind(e);try{a.$W.runWithBidder(e.bidderCode,t.callBids.bind(t,e,n,l,u,(()=>c(e.bidderRequestId)),a.$W.callbackWithBidder(e.bidderCode)))}catch(t){(0,i.vV)(`${e.bidderCode} Bid Adapter emitted an uncaught error when parsing their bidRequest`,{e:t,bidRequest:e}),l()}}))},V.videoAdapters=[],V.registerBidAdapter=function(e,t){let{supportedMediaTypes:n=[]}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e&&t?"function"==typeof e.callBids?(M[t]=e,y.o2.register(T.tW,t,e.getSpec?.().gvlid),(0,c.mK)(n,"video")&&V.videoAdapters.push(t),(0,c.mK)(n,"native")&&r.mT.push(t)):(0,i.vV)("Bidder adaptor error for bidder code: "+t+"bidder must implement a callBids() function"):(0,i.vV)("bidAdapter or bidderCode not specified")},V.aliasBidAdapter=function(e,t,n){if(void 0===M[t]){let s=M[e];if(void 0===s){const n=[];F.forEach((i=>{if(i.bidders&&i.bidders.length){const r=i&&i.bidders;i&&(0,c.mK)(r,t)?G[t]=e:n.push(e)}})),n.forEach((e=>{(0,i.vV)(\'bidderCode "\'+e+\'" is not an existing bidder.\',"adapterManager.aliasBidAdapter")}))}else try{let a,d=function(e){let t=[];return(0,c.mK)(V.videoAdapters,e)&&t.push("video"),(0,c.mK)(r.mT,e)&&t.push("native"),t}(e);if(s.constructor.prototype!=Object.prototype)a=new s.constructor,a.setBidderCode(t);else{const{useBaseGvlid:r=!1}=n||{};let d=s.getSpec();const c=r?d.gvlid:n?.gvlid;null==c&&null!=d.gvlid&&(0,i.JE)(`Alias \'${t}\' will NOT re-use the GVL ID of the original adapter (\'${d.code}\', gvlid: ${d.gvlid}). Functionality that requires TCF consent may not work as expected.`);let u=n&&n.skipPbsAliasing;a=(0,o.xb)(Object.assign({},d,{code:t,gvlid:c,skipPbsAliasing:u})),G[t]=e}V.registerBidAdapter(a,t,{supportedMediaTypes:d})}catch(t){(0,i.vV)(e+" bidder does not currently support aliasing.","adapterManager.aliasBidAdapter")}}else(0,i.OG)(\'alias name "\'+t+\'" has been already specified.\')},V.resolveAlias=function(e){let t,n=e;for(;G[n]&&(!t||!t.has(n));)n=G[n],(t=t||new Set).add(n);return n},V.registerAnalyticsAdapter=function(e){let{adapter:t,code:n,gvlid:r}=e;t&&n?"function"==typeof t.enableAnalytics?(t.code=n,H[n]={adapter:t,gvlid:r},y.o2.register(T.Tn,n,r)):(0,i.vV)(`Prebid Error: Analytics adaptor error for analytics "${n}"\\n analytics adapter must implement an enableAnalytics() function`):(0,i.vV)("Prebid Error: analyticsAdapter or analyticsCode not specified")},V.enableAnalytics=function(e){(0,i.cy)(e)||(e=[e]),e.forEach((e=>{const t=H[e.provider];t&&t.adapter?P.isAllowed(C.mo,L(T.Tn,e.provider,{[B.TQ]:e}))&&t.adapter.enableAnalytics(e):(0,i.vV)(`Prebid Error: no analytics adapter found in registry for \'${e.provider}\'.`)}))},V.getBidAdapter=function(e){return M[e]},V.getAnalyticsAdapter=function(e){return H[e]},V.callTimedOutBidders=function(e,t,n){t=t.map((t=>(t.params=(0,i.SB)(e,t.adUnitCode,t.bidder),t.timeout=n,t))),t=(0,i.$z)(t,"bidder"),Object.keys(t).forEach((e=>{ee(e,"onTimeout",t[e])}))},V.callBidWonBidder=function(e,t,n){var r,o;t.params=(0,i.SB)(n,t.adUnitCode,t.bidder),r=t.adUnitCode,o=t.bidder,l(r,"winsCounter",o),ee(e,"onBidWon",t)},V.triggerBilling=(()=>{const e=new WeakSet;return t=>{e.has(t)||(e.add(t),t.source===E.RW.SRC&&t.burl&&i.mM.triggerPixel(t.burl),ee(t.bidder,"onBidBillable",t))}})(),V.callSetTargetingBidder=function(e,t){ee(e,"onSetTargeting",t)},V.callBidViewableBidder=function(e,t){ee(e,"onBidViewable",t)},V.callBidderError=function(e,t,n){ee(e,"onBidderError",{error:t,bidderRequest:n})},V.callAdRenderSucceededBidder=function(e,t){ee(e,"onAdRenderSucceeded",t)},V.callDataDeletionRequest=(0,d.A_)("sync",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];const r="onDataDeletionRequest";Object.keys(M).filter((e=>!G.hasOwnProperty(e))).forEach((e=>{const n=X(e,r);if(null!=n){const i=I.n.getBidsRequested().filter((t=>function(e){const t=new Set;for(;G.hasOwnProperty(e)&&!t.has(e);)t.add(e),e=G[e];return e}(t.bidderCode)===e));Z(e,r,...n,i,...t)}})),Object.entries(H).forEach((e=>{let[n,o]=e;const s=o?.adapter?.[r];if("function"==typeof s)try{s.apply(o.adapter,t)}catch(e){(0,i.vV)(`error calling ${r} of ${n}`,e)}}))}));const te=V},9115:(e,t,n)=>{function i(e){var t=e;return{callBids:function(){},setBidderCode:function(e){t=e},getBidderCode:function(){return t}}}n.d(t,{xb:()=>B,a$:()=>w});var r=n(8046),o=n(3272),s=n(3597),a=n(8230),d=n(2449),c=n(3895),u=n(8969),l=n(5023),f=n(5901),g=n(1069),p=n(9214),h=n(6881),m=n(2693),b=n(6894),y=n(5139),v=n(3441),E=n(5569),A=n(6811);const I=["cpm","ttl","creativeId","netRevenue","currency"],T=["auctionId","transactionId"];function w(e){const t=Array.isArray(e.supportedMediaTypes)?{supportedMediaTypes:e.supportedMediaTypes}:void 0;function n(e){const n=B(e);r.Ay.registerBidAdapter(n,e.code,t)}n(e),Array.isArray(e.aliases)&&e.aliases.forEach((t=>{let i,o,s=t;(0,g.Qd)(t)&&(s=t.code,i=t.gvlid,o=t.skipPbsAliasing),r.Ay.aliasRegistry[s]=e.code,n(Object.assign({},e,{code:s,gvlid:i,skipPbsAliasing:o}))}))}const C=(0,g.Bj)((e=>{let{bidderCode:t}=e;if((0,y.io)(A.VJ,(0,v.s)(E.tW,t)))return{bidRequest:e=>e,bidderRequest:e=>e};function n(e,t,n){return T.includes(t)?null:Reflect.get(e,t,n)}function i(e,t){const n=new Proxy(e,t);return Object.entries(e).filter((e=>{let[t,n]=e;return"function"==typeof n})).forEach((t=>{let[i,r]=t;return n[i]=r.bind(e)})),n}const r=(0,g.Bj)((e=>i(e,{get:n})),(e=>e.bidId));return{bidRequest:r,bidderRequest:e=>i(e,{get:(t,i,o)=>"bids"===i?e.bids.map(r):n(t,i,o)})}}));function B(e){return Object.assign(new i(e.code),{getSpec:function(){return Object.freeze(Object.assign({},e))},registerSyncs:t,callBids:function(n,i,a,p,y,v){if(!Array.isArray(n.bids))return;const E=C(n),A={};function w(e,t){const n=(0,b.BO)(t.metrics);n.checkpoint("addBidResponse"),A[e]=!0,n.measureTime("addBidResponse.validate",(()=>function(e,t){let{index:n=h.n.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};function i(){let e=Object.keys(t);return I.every((n=>(0,f.mK)(e,n)&&!(0,f.mK)([void 0,null],t[n])))}function r(e){return`Invalid bid from ${t.bidderCode}. Ignoring bid: ${e}`}if(!e)return(0,g.JE)("No adUnitCode was supplied to addBidResponse."),!1;if(!t)return(0,g.JE)(`Some adapter tried to add an undefined bid for ${e}.`),!1;if(!i())return(0,g.vV)(r(`Bidder ${t.bidderCode} is missing required params. Check http://prebid.org/dev-docs/bidder-adapter-1.html for list of params.`)),!1;if("native"===t.mediaType&&!(0,d.Bm)(t,{index:n}))return(0,g.vV)(r("Native bid missing some required properties.")),!1;if("video"===t.mediaType&&!(0,c.vk)(t,{index:n}))return(0,g.vV)(r("Video bid does not have required vastUrl or renderer property")),!1;if("banner"===t.mediaType&&!function(e,t){let{index:n=h.n.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((t.width||0===parseInt(t.width,10))&&(t.height||0===parseInt(t.height,10)))return t.width=parseInt(t.width,10),t.height=parseInt(t.height,10),!0;const i=n.getBidRequest(t),r=n.getMediaTypes(t),o=i&&i.sizes||r&&r.banner&&r.banner.sizes,s=(0,g.kK)(o);if(1===s.length){const[e,n]=s[0].split("x");return t.width=parseInt(e,10),t.height=parseInt(n,10),!0}return!1}(e,t,{index:n}))return(0,g.vV)(r("Banner bids require a width and height")),!1;return!0}(e,t)))?i(e,t):i.reject(e,t,u.Tf.INVALID)}const B=[];function O(){a(),o.$W.runWithBidder(e.code,(()=>{l.Ic(u.qY.BIDDER_DONE,n),t(B,n.gdprConsent,n.uspConsent,n.gppConsent)}))}const R=D(n).measureTime("validate",(()=>n.bids.filter((t=>function(t){if(!e.isBidRequestValid(t))return(0,g.JE)(`Invalid bid sent to bidder ${e.code}: ${JSON.stringify(t)}`),!1;return!0}(E.bidRequest(t))))));if(0===R.length)return void O();const U={};R.forEach((e=>{U[e.bidId]=e,e.adUnitCode||(e.adUnitCode=e.placementCode)})),k(e,R,n,p,v,{onRequest:e=>l.Ic(u.qY.BEFORE_BIDDER_HTTP,n,e),onResponse:t=>{y(e.code),B.push(t)},onPaapi:e=>{const t=U[e.bidId];t?S(t,e):(0,g.JE)("Received fledge auction configuration for an unknown bidId",e)},onError:(t,i)=>{i.timedOut||y(e.code),r.Ay.callBidderError(e.code,i,n),l.Ic(u.qY.BIDDER_ERROR,{error:i,bidderRequest:n}),(0,g.vV)(`Server call for ${e.code} failed: ${t} ${i.status}. Continuing without bids.`)},onBid:t=>{const n=U[t.requestId];if(n){if(t.adapterCode=n.bidder,function(e,t){let n=m.u.get(t,"allowAlternateBidderCodes")||!1,i=m.u.get(t,"allowedAlternateBidderCodes");if(e&&t&&t!==e&&(i=(0,g.cy)(i)?i.map((e=>e.trim().toLowerCase())).filter((e=>!!e)).filter(g.hj):i,!n||(0,g.cy)(i)&&"*"!==i[0]&&!i.includes(e)))return!0;return!1}(t.bidderCode,n.bidder))return(0,g.JE)(`${t.bidderCode} is not a registered partner or known bidder of ${n.bidder}, hence continuing without bid. If you wish to support this bidder, please mark allowAlternateBidderCodes as true in bidderSettings.`),void i.reject(n.adUnitCode,t,u.Tf.BIDDER_DISALLOWED);t.originalCpm=t.cpm,t.originalCurrency=t.currency,t.meta=t.meta||Object.assign({},t[n.bidder]),t.deferBilling=n.deferBilling,t.deferRendering=t.deferBilling&&(t.deferRendering??"function"!=typeof e.onBidBillable);const r=Object.assign((0,s.O)(u.XQ.GOOD,n),t,(0,g.Up)(n,T));w(n.adUnitCode,r)}else(0,g.JE)(`Bidder ${e.code} made bid for unknown request ID: ${t.requestId}. Ignoring.`),i.reject(null,t,u.Tf.INVALID_REQUEST_ID)},onCompletion:O})}});function t(t,n,i,r){R(e,t,n,i,r)}}const O=["bids","paapi"],k=(0,p.A_)("sync",(function(e,t,n,i,r,o){let{onRequest:s,onResponse:a,onPaapi:d,onError:c,onBid:u,onCompletion:l}=o;const f=D(n);l=f.startTiming("total").stopBefore(l);const p=C(n);let h=f.measureTime("buildRequests",(()=>e.buildRequests(t.map(p.bidRequest),p.bidderRequest(n))));if(!h||0===h.length)return void l();Array.isArray(h)||(h=[h]);const b=(0,g.U6)(l,h.length);h.forEach((t=>{const n=f.fork();function o(e){null!=e&&(e.metrics=n.fork().renameWith()),u(e)}const l=r((function(i,r){h();try{i=JSON.parse(i)}catch(e){}i={body:i,headers:{get:r.getResponseHeader.bind(r)}},a(i);try{i=n.measureTime("interpretResponse",(()=>e.interpretResponse(i,t)))}catch(t){return(0,g.vV)(`Bidder ${e.code} failed to interpret the server\'s response. Continuing without bids`,null,t),void b()}let s,c;i&&!Object.keys(i).some((e=>!O.includes(e)))?(s=i.bids,c=i.paapi):s=i,(0,g.cy)(c)&&c.forEach(d),s&&((0,g.cy)(s)?s.forEach(o):o(s)),b()})),p=r((function(e,t){h(),c(e,t),b()}));s(t);const h=n.startTiming("net");function I(n){const i=t.options;return Object.assign(n,i,{browsingTopics:!(i?.hasOwnProperty("browsingTopics")&&!i.browsingTopics)&&((m.u.get(e.code,"topicsHeader")??!0)&&(0,y.io)(A.DL,(0,v.s)(E.tW,e.code)))})}switch(t.method){case"GET":i(`${t.url}${function(e){if(e)return`?${"object"==typeof e?(0,g.bL)(e):e}`;return""}(t.data)}`,{success:l,error:p},void 0,I({method:"GET",withCredentials:!0}));break;case"POST":i(t.url,{success:l,error:p},"string"==typeof t.data?t.data:JSON.stringify(t.data),I({method:"POST",contentType:"text/plain",withCredentials:!0}));break;default:(0,g.JE)(`Skipping invalid request from ${e.code}. Request type ${t.type} must be GET or POST`),b()}}))}),"processBidderRequests"),R=(0,p.A_)("async",(function(e,t,n,i,s){const d=o.$W.getConfig("userSync.aliasSyncEnabled");if(e.getUserSyncs&&(d||!r.Ay.aliasRegistry[e.code])){let r=o.$W.getConfig("userSync.filterSettings"),d=e.getUserSyncs({iframeEnabled:!(!r||!r.iframe&&!r.all),pixelEnabled:!(!r||!r.image&&!r.all)},t,n,i,s);d&&(Array.isArray(d)||(d=[d]),d.forEach((t=>{a.zt.registerSync(t.type,e.code,t.url)})),a.zt.bidderDone(e.code))}}),"registerSyncs"),S=(0,p.A_)("sync",((e,t)=>{}),"addPaapiConfig");function D(e){return(0,b.BO)(e.metrics).renameWith((t=>[`adapter.client.${t}`,`adapters.client.${e.bidderCode}.${t}`]))}},1580:(e,t,n)=>{n.d(t,{R:()=>u});var i=n(6811),r=n(3441),o=n(5139),s=n(5901),a=n(1069);const d=new WeakMap,c=["debugging","outstream","improvedigital","showheroes-bs","aaxBlockmeter","adagio","adloox","akamaidap","arcspan","airgrid","browsi","brandmetrics","clean.io","humansecurity","confiant","contxtful","hadron","mediafilter","medianet","azerionedge","a1Media","geoedge","qortex","dynamicAdBoost","51Degrees","symitridap","wurfl","justtag","tncId","ftrackId","id5"];function u(e,t,n,u,l,f){if(!(0,o.io)(i.pY,(0,r.s)(t,n)))return;if(!n||!e)return void(0,a.vV)("cannot load external script without url and moduleCode");if(!(0,s.mK)(c,n))return void(0,a.vV)(`${n} not whitelisted for loading external JavaScript`);l||(l=document);const g=m(l,e);if(g)return u&&"function"==typeof u&&(g.loaded?u():g.callbacks.push(u)),g.tag;const p=d.get(l)||{},h={loaded:!1,tag:null,callbacks:[]};return p[e]=h,d.set(l,p),u&&"function"==typeof u&&h.callbacks.push(u),(0,a.JE)(`module ${n} is loading external JavaScript`),function(t,n,i,r){i||(i=document);var o=i.createElement("script");o.type="text/javascript",o.async=!0;const s=m(i,e);s&&(s.tag=o);o.readyState?o.onreadystatechange=function(){"loaded"!==o.readyState&&"complete"!==o.readyState||(o.onreadystatechange=null,n())}:o.onload=function(){n()};o.src=t,r&&(0,a.Bg)(o,r);return(0,a._s)(o,i),o}(e,(function(){h.loaded=!0;try{for(let e=0;e<h.callbacks.length;e++)h.callbacks[e]()}catch(e){(0,a.vV)("Error executing callback","adloader.js:loadExternalScript",e)}}),l,f);function m(e,t){const n=d.get(e);return n&&n[t]?n[t]:null}}},8044:(e,t,n)=>{n.d(t,{g4:()=>l});var i=n(3272),r=n(1069);const o={fetch:window.fetch.bind(window),makeRequest:(e,t)=>new Request(e,t),timeout(e,t){const n=new AbortController;let i=setTimeout((()=>{n.abort(),(0,r.vV)(`Request timeout after ${e}ms`,t),i=null}),e);return{signal:n.signal,done(){i&&clearTimeout(i)}}}},s="GET",a="POST",d="Content-Type";function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e3,{request:t,done:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t,n)=>{let r;null==e||null!=n?.signal||i.$W.getConfig("disableAjaxTimeout")||(r=o.timeout(e,t),n=Object.assign({signal:r.signal},n));let s=o.fetch(t,n);return null!=r?.done&&(s=s.finally(r.done)),s};return null==t&&null==n||(r=(e=>function(i,r){const o=new URL(null==i?.url?i:i.url,document.location).origin;let s=e(i,r);return t&&t(o),n&&(s=s.finally((()=>n(o)))),s})(r)),r}function u(e,t){let{status:n,statusText:i="",headers:o,url:s}=e,a=0;function c(e){if(0===a)try{a=(new DOMParser).parseFromString(t,o?.get(d)?.split(";")?.[0])}catch(t){a=null,e&&e(t)}return a}return{readyState:XMLHttpRequest.DONE,status:n,statusText:i,responseText:t,response:t,responseType:"",responseURL:s,get responseXML(){return c(r.vV)},getResponseHeader:e=>o?.has(e)?o.get(e):null,toJSON(){return Object.assign({responseXML:c()},this)},timedOut:!1}}function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e3,{request:t,done:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=c(e,{request:t,done:n});return function(e,t,n){!function(e,t){const{success:n,error:i}="object"==typeof t&&null!=t?t:{success:"function"==typeof t?t:()=>null,error:(e,t)=>(0,r.vV)("Network error",e,t)};e.then((e=>e.text().then((t=>[e,t])))).then((e=>{let[t,r]=e;const o=u(t,r);t.ok||304===t.status?n(r,o):i(t.statusText,o)}),(e=>i("",Object.assign(u({status:0},""),{reason:e,timedOut:"AbortError"===e?.name}))))}(i(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=n.method||(t?a:s);if(i===s&&t){const i=(0,r.Dl)(e,n);Object.assign(i.search,t),e=(0,r.c$)(i)}const c=new Headers(n.customHeaders);c.set(d,n.contentType||"text/plain");const u={method:i,headers:c};return i!==s&&t&&(u.body=t),n.withCredentials&&(u.credentials="include"),isSecureContext&&["browsingTopics","adAuctionHeaders"].forEach((e=>{n[e]&&(u[e]=!0)})),n.keepalive&&(u.keepalive=!0),o.makeRequest(e,u)}(e,n,arguments.length>3&&void 0!==arguments[3]?arguments[3]:{})),t)}}l(),c()},6881:(e,t,n)=>{n.d(t,{n:()=>ie});var i=n(1069),r=n(6833),o=n(2449),s=n(8044),a=n(3272);const d=15;function c(e){let{index:t=ie.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=e.vastXml?e.vastXml:(i=e.vastUrl,r=e.vastImpUrl,`<VAST version="3.0">\\n <Ad>\\n <Wrapper>\\n <AdSystem>prebid.org wrapper</AdSystem>\\n <VASTAdTagURI><![CDATA[${i}]]></VASTAdTagURI>\\n ${(r=r&&(Array.isArray(r)?r:[r]))?r.map((e=>`<Impression><![CDATA[${e}]]></Impression>`)).join(""):""}\\n <Creatives></Creatives>\\n </Wrapper>\\n </Ad>\\n </VAST>`);var i,r;const o=t.getAuction(e);let s={type:"xml",value:n,ttlseconds:Number(e.ttl)+d};return a.$W.getConfig("cache.vasttrack")&&(s.bidder=e.bidder,s.bidid=e.requestId,s.aid=e.auctionId),null!=o&&(s.timestamp=o.getAuctionStart()),"string"==typeof e.customCacheKey&&""!==e.customCacheKey&&(s.key=e.customCacheKey),s}const u={store:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.g4;const i={puts:e.map(c)};n(a.$W.getConfig("cache.timeout"))(a.$W.getConfig("cache.url"),function(e){return{success:function(t){let n;try{n=JSON.parse(t).responses}catch(t){return void e(t,[])}n?e(null,n):e(new Error("The cache server didn\'t respond with a responses property."),[])},error:function(t,n){e(new Error(`Error storing video ad in the cache: ${t}: ${JSON.stringify(n)}`),[])}}}(t),JSON.stringify(i),{contentType:"text/plain",withCredentials:!0})}};function l(e){const t=e.map((e=>e.bidResponse));u.store(t,(function(n,r){var o;n?(o=n,(0,i.vV)(`Failed to save to the video cache: ${o}. Video bids will be discarded:`,t)):e.length!==r.length?(0,i.vV)(`expected ${e.length} cache IDs, got ${r.length} instead`):r.forEach(((t,n)=>{const{auctionInstance:r,bidResponse:o,afterBidAdded:s}=e[n];var d;""===t.uuid?(0,i.JE)("Supplied video cache key was already in use by Prebid Cache; caching attempt was rejected. Video bid must be discarded."):(o.videoCacheKey=t.uuid,o.vastUrl||(o.vastUrl=(d=o.videoCacheKey,`${a.$W.getConfig("cache.url")}?uuid=${d}`)),F(r,o),s())}))}))}let f,g;a.$W.getConfig("cache",(e=>{f="number"==typeof e.cache.batchSize&&e.cache.batchSize>0?e.cache.batchSize:1,g="number"==typeof e.cache.batchTimeout&&e.cache.batchTimeout>0?e.cache.batchTimeout:0}));const p=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:setTimeout,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l,n=[[]],i=!1;const r=e=>e();return function(o,s,a){const d=g>0?e:r;n[n.length-1].length>=f&&n.push([]),n[n.length-1].push({auctionInstance:o,bidResponse:s,afterBidAdded:a}),i||(i=!0,d((()=>{n.forEach(t),n=[[]],i=!1}),g))}}();var h=n(5789),m=n(8230),b=n(9214),y=n(5901),v=n(3895),E=n(1371),A=n(2693),I=n(5023),T=n(8046),w=n(8969),C=n(5555),B=n(6894);var O=n(7873),k=n(6853),R=n(7863);const{syncUsers:S}=m.zt,D="started",U="inProgress",_="completed";I.on(w.qY.BID_ADJUSTMENT,(function(e){!function(e){let t=function(e,t,n){let{index:r=ie.index,bs:o=A.u}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n=n||r.getBidRequest(t);const s=t?.adapterCode,a=t?.bidderCode||n?.bidder,d=o.get(t?.adapterCode,"adjustAlternateBids"),c=o.getOwn(a,"bidCpmAdjustment")||o.get(d?s:a,"bidCpmAdjustment");if(c&&"function"==typeof c)try{return c(e,Object.assign({},t),n)}catch(e){(0,i.vV)("Error during bid adjustment",e)}return e}(e.cpm,e);t>=0&&(e.cpm=t)}(e)}));const j=4,$={},q={},x=[],N=(0,O.m)();function W(e){let{adUnits:t,adUnitCodes:n,callback:s,cbTimeout:d,labels:c,auctionId:u,ortb2Fragments:l,metrics:f}=e;f=(0,B.BO)(f);const g=t,p=c,m=n,b=u||(0,i.lk)(),A=d,O=new Set,W=(0,C.v)(),z=(0,C.v)();let J,K,Q,Y,X=[],Z=s,ee=[],ne=(0,k.H)({startTime:e=>e.responseTimestamp,ttl:e=>null==(0,R.S9)()?null:1e3*Math.max((0,R.S9)(),e.ttl)}),re=[],oe=[],se=[];function ae(){return{auctionId:b,timestamp:J,auctionEnd:K,auctionStatus:Y,adUnits:g,adUnitCodes:m,labels:p,bidderRequests:ee,noBids:re,bidsReceived:ne.toArray(),bidsRejected:X,winningBids:oe,timeout:A,metrics:f,seatNonBids:se}}function de(e){if(e?I.Ic(w.qY.AUCTION_TIMEOUT,ae()):clearTimeout(Q),void 0===K){let n=[];e&&((0,i.OG)(`Auction ${b} timedOut`),n=ee.filter((e=>!O.has(e.bidderRequestId))).flatMap((e=>e.bids)),n.length&&I.Ic(w.qY.BID_TIMEOUT,n)),Y=_,K=Date.now(),f.checkpoint("auctionEnd"),f.timeBetween("requestBids","auctionEnd","requestBids.total"),f.timeBetween("callBids","auctionEnd","requestBids.callBids"),W.resolve(),I.Ic(w.qY.AUCTION_END,ae()),G(g,(function(){try{if(null!=Z){const t=ne.toArray().filter((e=>m.includes(e.adUnitCode))).reduce(te,{});Z.apply(N,[t,e,b]),Z=null}}catch(e){(0,i.vV)("Error executing bidsBackHandler",null,e)}finally{n.length&&T.Ay.callTimedOutBidders(t,n,A);let e=a.$W.getConfig("userSync")||{};e.enableOverride||S(e.syncDelay)}}))}}function ce(){a.$W.resetBidder(),(0,i.fH)(`Bids Received for Auction with id: ${b}`,ne.toArray()),Y=_,de(!1)}function ue(e){O.add(e)}function le(e){e.forEach((e=>{var t;t=e,ee=ee.concat(t)}));let t={},n={bidRequests:e,run:()=>{Q=setTimeout((()=>de(!0)),A),Y=U,I.Ic(w.qY.AUCTION_INIT,ae());let n=function(e,t){let{index:n=ie.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=0,d=!1,c=new Set,u={};function l(){s--,d&&0===s&&e()}function f(e,t,n){return u[t.requestId]=!0,function(e,t){let{index:n=ie.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=n.getBidderRequest(e),o=n.getAdUnit(e),s=r&&r.start||e.requestTimestamp;Object.assign(e,{responseTimestamp:e.responseTimestamp||(0,i.vE)(),requestTimestamp:e.requestTimestamp||s,cpm:parseFloat(e.cpm)||0,bidder:e.bidder||e.bidderCode,adUnitCode:t}),null!=o?.ttlBuffer&&(e.ttlBuffer=o.ttlBuffer);e.timeToRespond=e.responseTimestamp-e.requestTimestamp}(t,e),s++,n(l)}function g(e,s){f(e,s,(e=>{let d=function(e){let{index:t=ie.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};I.Ic(w.qY.BID_ADJUSTMENT,e);const n=t.getBidRequest(e)?.renderer||t.getAdUnit(e).renderer,i=e.mediaType,o=t.getMediaTypes(e),s=o&&o[i];var d=s&&s.renderer,c=null;!d||!d.render||!0===d.backupOnly&&e.renderer?!n||!n.render||!0===n.backupOnly&&e.renderer||(c=n):c=d;c&&(e.renderer=h.A4.install({url:c.url,config:c.options,renderNow:null==c.url}),e.renderer.setRender(c.render));const u=L(e.mediaType,o,a.$W.getConfig("mediaTypePriceGranularity")),l=(0,r.j)(e.cpm,"object"==typeof u?u:a.$W.getConfig("customPriceBucket"),a.$W.getConfig("currency.granularityMultiplier"));return e.pbLg=l.low,e.pbMg=l.med,e.pbHg=l.high,e.pbAg=l.auto,e.pbDg=l.dense,e.pbCg=l.custom,e}(s);I.Ic(w.qY.BID_ACCEPTED,d),d.mediaType===E.G_?function(e,t,n){let{index:r=ie.index}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=!0;const s=r.getMediaTypes({requestId:t.originalRequestId||t.requestId,adUnitId:t.adUnitId})?.video,d=s&&s?.context,c=s&&s?.useCacheKey;a.$W.getConfig("cache.url")&&(c||d!==v.H6)&&(!t.videoCacheKey||a.$W.getConfig("cache.ignoreBidderCacheKey")?(o=!1,H(e,t,n,s)):t.vastUrl||((0,i.vV)("videoCacheKey specified but not required vastUrl for video bid"),o=!1));o&&(F(e,t),n())}(t,d,e):((0,o.l6)(d)&&(0,o.gs)(d,n.getAdUnit(d)),F(t,d),e())}))}function p(e,n,r){return f(e,n,(e=>{n.rejectionReason=r,(0,i.JE)(`Bid from ${n.bidder||"unknown bidder"} was rejected: ${r}`,n),I.Ic(w.qY.BID_REJECTED,n),t.addBidRejected(n),e()}))}function m(){let n=this,r=t.getBidRequests();const o=a.$W.getConfig("auctionOptions");if(c.add(n),o&&!(0,i.Im)(o)){const e=o.secondaryBidders;e&&!r.every((t=>(0,y.mK)(e,t.bidderCode)))&&(r=r.filter((t=>!(0,y.mK)(e,t.bidderCode))))}d=r.every((e=>c.has(e))),n.bids.forEach((e=>{u[e.bidId]||(t.addNoBid(e),I.Ic(w.qY.NO_BID,e))})),d&&0===s&&e()}return{addBidResponse:function(){function e(e,t){P.call({dispatch:g},e,t,(()=>{let n=!1;return i=>{n||(p(e,t,i),n=!0)}})())}return e.reject=p,e}(),adapterDone:function(){V(C.k.resolve()).finally((()=>m.call(this)))}}}(ce,this);T.Ay.callBids(g,e,n.addBidResponse,n.adapterDone,{request(e,n){d($,n),d(t,e),q[e]||(q[e]={SRA:!0,origin:n}),t[e]>1&&(q[e].SRA=!1)},done(e){$[e]--,x[0]&&s(x[0])&&x.shift()}},A,ue,l),z.resolve()}};function s(e){let t=!0,n=a.$W.getConfig("maxRequestsPerOrigin")||j;return e.bidRequests.some((e=>{let i=1,r=void 0!==e.src&&e.src===w.RW.SRC?"s2s":e.bidderCode;return q[r]&&(!1===q[r].SRA&&(i=Math.min(e.bids.length,n)),$[q[r].origin]+i>n&&(t=!1)),!t})),t&&e.run(),t}function d(e,t){void 0===e[t]?e[t]=1:e[t]++}s(n)||((0,i.JE)("queueing auction due to limited endpoint capacity"),x.push(n))}return(0,R.lc)((()=>ne.refresh())),I.on(w.qY.SEAT_NON_BID,(e=>{var t;e.auctionId===b&&(t=e.seatnonbid,se=se.concat(t))})),{addBidReceived:function(e){ne.add(e)},addBidRejected:function(e){X=X.concat(e)},addNoBid:function(e){re=re.concat(e)},callBids:function(){Y=D,J=Date.now();let e=f.measureTime("requestBids.makeRequests",(()=>T.Ay.makeBidRequests(g,J,b,A,p,l,f)));(0,i.fH)(`Bids Requested for Auction with id: ${b}`,e),f.checkpoint("callBids"),e.length<1?((0,i.JE)("No valid bid requests returned for auction"),ce()):M.call({dispatch:le,context:this},e)},addWinningBid:function(e){oe=oe.concat(e),T.Ay.callBidWonBidder(e.adapterCode||e.bidder,e,t),e.deferBilling||T.Ay.triggerBilling(e)},setBidTargeting:function(e){T.Ay.callSetTargetingBidder(e.adapterCode||e.bidder,e)},getWinningBids:()=>oe,getAuctionStart:()=>J,getAuctionEnd:()=>K,getTimeout:()=>A,getAuctionId:()=>b,getAuctionStatus:()=>Y,getAdUnits:()=>g,getAdUnitCodes:()=>m,getBidRequests:()=>ee,getBidsReceived:()=>ne.toArray(),getNoBids:()=>re,getNonBids:()=>se,getFPD:()=>l,getMetrics:()=>f,end:W.promise,requestsDone:z.promise}}const P=(0,b.A_)("sync",(function(e,t,n){!function(e){const t=a.$W.getConfig("maxBid");return!t||!e.cpm||t>=Number(e.cpm)}(t)?n(w.Tf.PRICE_TOO_HIGH):this.dispatch.call(null,e,t)}),"addBidResponse"),V=(0,b.A_)("sync",(e=>e),"responsesReady"),M=(0,b.A_)("sync",(function(e){this.dispatch.call(this.context,e)}),"addBidderRequests"),G=(0,b.A_)("async",(function(e,t){t&&t()}),"bidsBackCallback");function F(e,t){!function(e){let t;const n=!0===A.u.get(e.bidderCode,"allowZeroCpmBids")?e.cpm>=0:e.cpm>0;e.bidderCode&&(n||e.dealId)&&(t=function(e,t){let{index:n=ie.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!t)return{};const i=n.getBidRequest(t);var r={};const s=Z(t.mediaType,e);ee(r,s,t,i),e&&A.u.getOwn(e,w.iD.ADSERVER_TARGETING)&&(ee(r,A.u.ownSettingsFor(e),t,i),t.sendStandardTargeting=A.u.get(e,"sendStandardTargeting"));t.native&&(r=Object.assign({},r,(0,o.Zj)(t)));return r}(e.bidderCode,e));e.adserverTargeting=Object.assign(e.adserverTargeting||{},t)}(t),(0,B.BO)(t.metrics).timeSince("addBidResponse","addBidResponse.total"),e.addBidReceived(t),I.Ic(w.qY.BID_RESPONSE,t)}const H=(0,b.A_)("async",(function(e,t,n,i){p(e,t,n)}),"callPrebidCache");function L(e,t,n){if(e&&n){if(e===E.G_){const e=t?.[E.G_]?.context??"instream";if(n[`${E.G_}-${e}`])return n[`${E.G_}-${e}`]}return n[e]}}const z=e=>t=>{const n=e||function(e){let{index:t=ie.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=L(e.mediaType,t.getMediaTypes(e),a.$W.getConfig("mediaTypePriceGranularity"));return"string"==typeof e.mediaType&&n?"string"==typeof n?n:"custom":a.$W.getConfig("priceGranularity")}(t);return n===w.UE.AUTO?t.pbAg:n===w.UE.DENSE?t.pbDg:n===w.UE.LOW?t.pbLg:n===w.UE.MEDIUM?t.pbMg:n===w.UE.HIGH?t.pbHg:n===w.UE.CUSTOM?t.pbCg:void 0},J=()=>e=>e.creativeId?e.creativeId:"",K=()=>e=>e.meta&&e.meta.advertiserDomains&&e.meta.advertiserDomains.length>0?[e.meta.advertiserDomains].flat()[0]:"",Q=()=>e=>e.meta&&(e.meta.networkId||e.meta.networkName)?e?.meta?.networkName||e?.meta?.networkId:"",Y=()=>e=>e.meta&&e.meta.primaryCatId?e.meta.primaryCatId:"";function X(e,t){return{key:e,val:"function"==typeof t?function(e,n){return t(e,n)}:function(e){return e[t]}}}function Z(e,t){const n=Object.assign({},A.u.settingsFor(null));if(n[w.iD.ADSERVER_TARGETING]||(n[w.iD.ADSERVER_TARGETING]=[X(w.xS.BIDDER,"bidderCode"),X(w.xS.AD_ID,"adId"),X(w.xS.PRICE_BUCKET,z()),X(w.xS.SIZE,"size"),X(w.xS.DEAL,"dealId"),X(w.xS.SOURCE,"source"),X(w.xS.FORMAT,"mediaType"),X(w.xS.ADOMAIN,K()),X(w.xS.ACAT,Y()),X(w.xS.DSP,Q()),X(w.xS.CRID,J())]),"video"===e){const e=n[w.iD.ADSERVER_TARGETING].slice();if(n[w.iD.ADSERVER_TARGETING]=e,[w.xS.UUID,w.xS.CACHE_ID].forEach((t=>{void 0===(0,y.I6)(e,(e=>e.key===t))&&e.push(X(t,"videoCacheKey"))})),a.$W.getConfig("cache.url")&&(!t||!1!==A.u.get(t,"sendStandardTargeting"))){const t=(0,i.Dl)(a.$W.getConfig("cache.url"));void 0===(0,y.I6)(e,(e=>e.key===w.xS.CACHE_HOST))&&e.push(X(w.xS.CACHE_HOST,(function(e){return e?.adserverTargeting?.[w.xS.CACHE_HOST]||t.hostname})))}}return n}function ee(e,t,n,r){var o=t[w.iD.ADSERVER_TARGETING];return n.size=n.getSize(),(o||[]).forEach((function(o){var s=o.key,a=o.val;if(e[s]&&(0,i.JE)("The key: "+s+" is being overwritten"),(0,i.fp)(a))try{a=a(n,r)}catch(e){(0,i.vV)("bidmanager","ERROR",e)}(void 0===t.suppressEmptyKeys||!0!==t.suppressEmptyKeys)&&s!==w.xS.DEAL&&s!==w.xS.ACAT&&s!==w.xS.DSP&&s!==w.xS.CRID||!(0,i.xQ)(a)&&null!=a?e[s]=a:(0,i.fH)("suppressing empty key \'"+s+"\' from adserver targeting")})),e}function te(e,t){return e[t.adUnitCode]||(e[t.adUnitCode]={bids:[]}),e[t.adUnitCode].bids.push(t),e}function ne(e){Object.assign(this,{getAuction(t){let{auctionId:n}=t;if(null!=n)return e().find((e=>e.getAuctionId()===n))},getAdUnit(t){let{adUnitId:n}=t;if(null!=n)return e().flatMap((e=>e.getAdUnits())).find((e=>e.adUnitId===n))},getMediaTypes(e){let{adUnitId:t,requestId:n}=e;if(null!=n){const e=this.getBidRequest({requestId:n});if(null!=e&&(null==t||e.adUnitId===t))return e.mediaTypes}else if(null!=t){const e=this.getAdUnit({adUnitId:t});if(null!=e)return e.mediaTypes}},getBidderRequest(t){let{requestId:n,bidderRequestId:i}=t;if(null!=n||null!=i){let t=e().flatMap((e=>e.getBidRequests()));return null!=i&&(t=t.filter((e=>e.bidderRequestId===i))),null==n?t[0]:t.find((e=>e.bids&&null!=e.bids.find((e=>e.bidId===n))))}},getBidRequest(t){let{requestId:n}=t;if(null!=n)return e().flatMap((e=>e.getBidRequests())).flatMap((e=>e.bids)).find((e=>e&&e.bidId===n))},getOrtb2(e){return this.getBidderRequest(e)?.ortb2||this.getAuction(e)?.getFPD()?.global?.ortb2}})}const ie=function(){const e=(0,k.H)({startTime:e=>e.end.then((()=>e.getAuctionEnd())),ttl:e=>null==(0,R.S9)()?null:e.end.then((()=>1e3*Math.max((0,R.S9)(),...e.getBidsReceived().map((e=>e.ttl)))))});(0,R.lc)((()=>e.refresh()));const t={onExpiry:e.onExpiry};function n(t){for(const n of e)if(n.getAuctionId()===t)return n}function r(){return e.toArray().flatMap((e=>e.getBidsReceived()))}return t.addWinningBid=function(e){const t=(0,B.BO)(e.metrics);t.checkpoint("bidWon"),t.timeBetween("auctionEnd","bidWon","adserver.pending"),t.timeBetween("requestBids","bidWon","adserver.e2e");const r=n(e.auctionId);r?r.addWinningBid(e):(0,i.JE)("Auction not found when adding winning bid")},Object.entries({getAllWinningBids:{name:"getWinningBids"},getBidsRequested:{name:"getBidRequests"},getNoBids:{},getAdUnits:{},getBidsReceived:{pre:e=>e.getAuctionStatus()===_},getAdUnitCodes:{post:i.hj}}).forEach((n=>{let[i,{name:r=i,pre:o,post:s}]=n;const a=null==o?e=>e[r]():e=>o(e)?e[r]():[],d=null==s?e=>e:e=>e.filter(s);t[i]=()=>d(e.toArray().flatMap(a))})),t.getAllBidsForAdUnitCode=function(e){return r().filter((t=>t&&t.adUnitCode===e))},t.createAuction=function(t){const n=W(t);return function(t){e.add(t)}(n),n},t.findBidByAdId=function(e){return r().find((t=>t.adId===e))},t.getStandardBidderAdServerTargeting=function(){return Z()[w.iD.ADSERVER_TARGETING]},t.setStatusForBids=function(e,i){let r=t.findBidByAdId(e);if(r&&(r.status=i),r&&i===w.tl.BID_TARGETING_SET){const e=n(r.auctionId);e&&e.setBidTargeting(r)}},t.getLastAuctionId=function(){const t=e.toArray();return t.length&&t[t.length-1].getAuctionId()},t.clearAllAuctions=function(){e.clear()},t.index=new ne((()=>e.toArray())),t}()},7863:(e,t,n)=>{n.d(t,{S9:()=>u,cT:()=>c,lc:()=>l});var i=n(3272),r=n(1069);const o="minBidCacheTTL";let s=1,a=null;const d=[];function c(e){return e.ttl-(e.hasOwnProperty("ttlBuffer")?e.ttlBuffer:s)}function u(){return a}function l(e){d.push(e)}i.$W.getConfig("ttlBuffer",(e=>{"number"==typeof e.ttlBuffer?s=e.ttlBuffer:(0,r.vV)("Invalid value for ttlBuffer",e.ttlBuffer)})),i.$W.getConfig(o,(e=>{const t=a;a=e?.[o],a="number"==typeof a?a:null,t!==a&&d.forEach((e=>e(a)))}))},2693:(e,t,n)=>{n.d(t,{u:()=>a});var i=n(433),r=n(1069),o=n(7873),s=n(8969);const a=new class{constructor(e,t){this.getSettings=e,this.defaultScope=t}get(e,t){let n=this.getOwn(e,t);return void 0===n&&(n=this.getOwn(null,t)),n}getOwn(e,t){return e=this.#e(e),(0,i.A)(this.getSettings(),`${e}.${t}`)}getScopes(){return Object.keys(this.getSettings()).filter((e=>e!==this.defaultScope))}settingsFor(e){return(0,r.D9)({},this.ownSettingsFor(null),this.ownSettingsFor(e))}ownSettingsFor(e){return e=this.#e(e),this.getSettings()[e]||{}}#e(e){return null==e?this.defaultScope:e}}((()=>(0,o.m)().bidderSettings||{}),s.iD.BD_SETTING_STANDARD)},3597:(e,t,n)=>{n.d(t,{O:()=>o});var i=n(1069);function r(e){let{src:t="client",bidder:n="",bidId:r,transactionId:o,adUnitId:s,auctionId:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var d=t,c=e||0;Object.assign(this,{bidderCode:n,width:0,height:0,statusMessage:function(){switch(c){case 0:return"Pending";case 1:return"Bid available";case 2:return"Bid returned empty or error response";case 3:return"Bid timed out"}}(),adId:(0,i.s0)(),requestId:r,transactionId:o,adUnitId:s,auctionId:a,mediaType:"banner",source:d}),this.getStatusCode=function(){return c},this.getSize=function(){return this.width+"x"+this.height},this.getIdentifiers=function(){return{src:this.source,bidder:this.bidderCode,bidId:this.requestId,transactionId:this.transactionId,adUnitId:this.adUnitId,auctionId:this.auctionId}}}function o(e,t){return new r(e,t)}},3272:(e,t,n)=>{n.d(t,{$W:()=>h,Ov:()=>u});var i=n(6833),r=n(5901),o=n(1069),s=n(433),a=n(8969);const d="TRUE"===(0,o.Ez)(a.M).toUpperCase(),c={},u="random",l={};l[u]=!0,l.fixed=!0;const f=u,g={LOW:"low",MEDIUM:"medium",HIGH:"high",AUTO:"auto",DENSE:"dense",CUSTOM:"custom"};function p(e){const t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1]?{priceGranularity:g.MEDIUM,customPriceBucket:{},mediaTypePriceGranularity:{},bidderSequence:f,auctionOptions:{}}:{};function n(e){return t[e]}function s(n,i){t.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0}),t[n]=i}const a={publisherDomain:{set(e){null!=e&&(0,o.JE)("publisherDomain is deprecated and has no effect since v7 - use pageUrl instead"),s("publisherDomain",e)}},priceGranularity:{set(e){c(e)&&("string"==typeof e?s("priceGranularity",d(e)?e:g.MEDIUM):(0,o.Qd)(e)&&(s("customPriceBucket",e),s("priceGranularity",g.CUSTOM),(0,o.OG)("Using custom price granularity")))}},customPriceBucket:{},mediaTypePriceGranularity:{set(e){null!=e&&s("mediaTypePriceGranularity",Object.keys(e).reduce(((t,i)=>(c(e[i])?"string"==typeof e?t[i]=d(e[i])?e[i]:n("priceGranularity"):(0,o.Qd)(e)&&(t[i]=e[i],(0,o.OG)(`Using custom price granularity for ${i}`)):(0,o.JE)(`Invalid price granularity for media type: ${i}`),t)),{}))}},bidderSequence:{set(e){l[e]?s("bidderSequence",e):(0,o.JE)(`Invalid order: ${e}. Bidder Sequence was not set.`)}},auctionOptions:{set(e){(function(e){if(!(0,o.Qd)(e))return(0,o.JE)("Auction Options must be an object"),!1;for(let t of Object.keys(e)){if("secondaryBidders"!==t&&"suppressStaleRender"!==t&&"suppressExpiredRender"!==t)return(0,o.JE)(`Auction Options given an incorrect param: ${t}`),!1;if("secondaryBidders"===t){if(!(0,o.cy)(e[t]))return(0,o.JE)(`Auction Options ${t} must be of type Array`),!1;if(!e[t].every(o.O8))return(0,o.JE)(`Auction Options ${t} must be only string`),!1}else if(("suppressStaleRender"===t||"suppressExpiredRender"===t)&&!(0,o.Lm)(e[t]))return(0,o.JE)(`Auction Options ${t} must be of type boolean`),!1}return!0})(e)&&s("auctionOptions",e)}}};return Object.defineProperties(e,Object.fromEntries(Object.entries(a).map((e=>{let[i,r]=e;return[i,Object.assign({get:n.bind(null,i),set:s.bind(null,i),enumerable:t.hasOwnProperty(i),configurable:!t.hasOwnProperty(i)},r)]})))),e;function d(e){return(0,r.I6)(Object.keys(g),(t=>e===g[t]))}function c(e){if(!e)return(0,o.vV)("Prebid Error: no value passed to `setPriceGranularity()`"),!1;if("string"==typeof e)d(e)||(0,o.JE)("Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default.");else if((0,o.Qd)(e)&&!(0,i.q)(e))return(0,o.vV)("Invalid custom price value passed to `setPriceGranularity()`"),!1;return!0}}const h=function(){let e,t,n,i=[],a=null;function u(){e={};let i=p({debug:d,bidderTimeout:3e3,enableSendAllBids:true,useBidCache:false,deviceAccess:true,disableAjaxTimeout:false,maxNestedIframes:10,maxBid:5e3,userSync:{topics:c}});t&&v(Object.keys(t).reduce(((e,n)=>(t[n]!==i[n]&&(e[n]=i[n]||{}),e)),{})),t=i,n={}}function l(){if(a&&n&&(0,o.Qd)(n[a])){let e=n[a];const i=new Set(Object.keys(t).concat(Object.keys(e)));return(0,r.A6)(i).reduce(((n,i)=>(void 0===e[i]?n[i]=t[i]:void 0===t[i]?n[i]=e[i]:(0,o.Qd)(e[i])?n[i]=(0,o.D9)({},t[i],e[i]):n[i]=e[i],n)),{})}return Object.assign({},t)}const[f,g]=[l,function(){const e=l();return Object.defineProperty(e,"ortb2",{get:function(){throw new Error("invalid access to \'orbt2\' config - use request parameters instead")}}),e}].map((e=>function(){if(arguments.length<=1&&"function"!=typeof(arguments.length<=0?void 0:arguments[0])){const t=arguments.length<=0?void 0:arguments[0];return t?(0,s.A)(e(),t):l()}return y(...arguments)})),[h,m]=[g,f].map((e=>function(){let t=e(...arguments);return t&&"object"==typeof t&&(t=(0,o.Go)(t)),t}));function b(n){if(!(0,o.Qd)(n))return void(0,o.vV)("setConfig options must be an object");let i=Object.keys(n),r={};i.forEach((i=>{let s=n[i];(0,o.Qd)(e[i])&&(0,o.Qd)(s)&&(s=Object.assign({},e[i],s));try{r[i]=t[i]=s}catch(e){(0,o.JE)(`Cannot set config for property ${i} : `,e)}})),v(r)}function y(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t;if("string"!=typeof e&&(r=e,e="*",n=t||{}),"function"!=typeof r)return void(0,o.vV)("listener must be a function");const s={topic:e,callback:r};return i.push(s),n.init&&r("*"===e?g():{[e]:g(e)}),function(){i.splice(i.indexOf(s),1)}}function v(e){const t=Object.keys(e);i.filter((e=>(0,r.mK)(t,e.topic))).forEach((t=>{t.callback({[t.topic]:e[t.topic]})})),i.filter((e=>"*"===e.topic)).forEach((t=>t.callback(e)))}function E(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{!function(e){if(!(0,o.Qd)(e))throw"setBidderConfig bidder options must be an object";if(!Array.isArray(e.bidders)||!e.bidders.length)throw"setBidderConfig bidder options must contain a bidders list with at least 1 bidder";if(!(0,o.Qd)(e.config))throw"setBidderConfig bidder options must contain a config object"}(e),e.bidders.forEach((i=>{n[i]||(n[i]=p({},!1)),Object.keys(e.config).forEach((r=>{let s=e.config[r];const a=n[i][r];if((0,o.Qd)(s)&&(null==a||(0,o.Qd)(a))){const e=t?o.D9:Object.assign;n[i][r]=e({},a||{},s)}else n[i][r]=s}))}))}catch(e){(0,o.vV)(e)}}function A(e,t){a=e;try{return t()}finally{I()}}function I(){a=null}return u(),{getCurrentBidder:function(){return a},resetBidder:I,getConfig:g,getAnyConfig:f,readConfig:h,readAnyConfig:m,setConfig:b,mergeConfig:function(e){if(!(0,o.Qd)(e))return void(0,o.vV)("mergeConfig input must be an object");const t=(0,o.D9)(l(),e);return b({...t}),t},setDefaults:function(n){(0,o.Qd)(e)?(Object.assign(e,n),Object.assign(t,n)):(0,o.vV)("defaults must be an object")},resetConfig:u,runWithBidder:A,callbackWithBidder:function(e){return function(t){return function(){if("function"==typeof t){for(var n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return A(e,t.bind(this,...i))}(0,o.JE)("config.callbackWithBidder callback is not a function")}}},setBidderConfig:E,getBidderConfig:function(){return n},mergeBidderConfig:function(e){return E(e,!0)}}}()},6916:(e,t,n)=>{n.d(t,{SL:()=>g,ad:()=>c,mW:()=>a,o2:()=>l,t6:()=>d});var i=n(1069),r=n(5555),o=n(3272);Object.freeze({});class s{#t;#n;#i;#r;#o=!0;#s;generatedTime;hashFields;constructor(){this.reset()}#a(e){this.#r=!0,this.#n=e,this.#i.resolve(e)}reset(){this.#i=(0,r.v)(),this.#t=!1,this.#n=null,this.#r=!1,this.generatedTime=null}enable(){this.#t=!0}get enabled(){return this.#t}get ready(){return this.#r}get promise(){return this.#r?r.k.resolve(this.#n):(this.#t||this.#a(null),this.#i.promise)}setConsentData(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,i.vE)();this.generatedTime=t,this.#o=!0,this.#a(e)}getConsentData(){return this.#n}get hash(){return this.#o&&(this.#s=(0,i.PB)(JSON.stringify(this.#n&&this.hashFields?this.hashFields.map((e=>this.#n[e])):this.#n)),this.#o=!1),this.#s}}const a=new class extends s{hashFields=["gdprApplies","consentString"];getConsentMeta(){const e=this.getConsentData();if(e&&e.vendorData&&this.generatedTime)return{gdprApplies:e.gdprApplies,consentStringSize:(0,i.O8)(e.vendorData.tcString)?e.vendorData.tcString.length:0,generatedAt:this.generatedTime,apiVersion:e.apiVersion}}},d=new class extends s{getConsentMeta(){if(this.getConsentData()&&this.generatedTime)return{generatedAt:this.generatedTime}}},c=new class extends s{hashFields=["applicableSections","gppString"];getConsentMeta(){if(this.getConsentData()&&this.generatedTime)return{generatedAt:this.generatedTime}}},u=(()=>{function e(){return!!o.$W.getConfig("coppa")}return{getCoppa:e,getConsentData:e,getConsentMeta:e,reset(){},get promise(){return r.k.resolve(e())},get hash(){return e()?"1":"0"}}})(),l=function(){const e={},t={},n={};return{register(i,r,o){o&&((e[r]=e[r]||{})[i]=o,t.hasOwnProperty(r)?t[r]!==o&&(t[r]=n):t[r]=o)},get(i){const r={modules:e[i]||{}};return t.hasOwnProperty(i)&&t[i]!==n&&(r.gvlid=t[i]),r}}}(),f={gdpr:a,usp:d,gpp:c,coppa:u};const g=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f;return e=Object.entries(e),Object.assign({get promise(){return r.k.all(e.map((e=>{let[t,n]=e;return n.promise.then((e=>[t,e]))}))).then((e=>Object.fromEntries(e)))},get hash(){return(0,i.PB)(e.map((e=>{let[t,n]=e;return n.hash})).join(":"))}},Object.fromEntries(["getConsentData","getConsentMeta","reset"].map((t=>{return[t,(n=t,function(){return Object.fromEntries(e.map((e=>{let[t,i]=e;return[t,i[n]()]})))})];var n}))))}()},8969:(e,t,n)=>{n.d(t,{IY:()=>A,M:()=>r,RW:()=>g,Tf:()=>h,UE:()=>c,XQ:()=>o,Zh:()=>l,_B:()=>v,as:()=>a,cA:()=>d,h0:()=>m,iD:()=>i,jO:()=>b,nl:()=>E,oA:()=>y,qY:()=>s,tl:()=>p,x5:()=>f,xS:()=>u});const i={PL_CODE:"code",PL_SIZE:"sizes",PL_BIDS:"bids",BD_BIDDER:"bidder",BD_ID:"paramsd",BD_PL_ID:"placementId",ADSERVER_TARGETING:"adserverTargeting",BD_SETTING_STANDARD:"standard"},r="pbjs_debug",o={GOOD:1},s={AUCTION_INIT:"auctionInit",AUCTION_TIMEOUT:"auctionTimeout",AUCTION_END:"auctionEnd",BID_ADJUSTMENT:"bidAdjustment",BID_TIMEOUT:"bidTimeout",BID_REQUESTED:"bidRequested",BID_RESPONSE:"bidResponse",BID_REJECTED:"bidRejected",NO_BID:"noBid",SEAT_NON_BID:"seatNonBid",BID_WON:"bidWon",BIDDER_DONE:"bidderDone",BIDDER_ERROR:"bidderError",SET_TARGETING:"setTargeting",BEFORE_REQUEST_BIDS:"beforeRequestBids",BEFORE_BIDDER_HTTP:"beforeBidderHttp",REQUEST_BIDS:"requestBids",ADD_AD_UNITS:"addAdUnits",AD_RENDER_FAILED:"adRenderFailed",AD_RENDER_SUCCEEDED:"adRenderSucceeded",TCF2_ENFORCEMENT:"tcf2Enforcement",AUCTION_DEBUG:"auctionDebug",BID_VIEWABLE:"bidViewable",STALE_RENDER:"staleRender",EXPIRED_RENDER:"expiredRender",BILLABLE_EVENT:"billableEvent",BID_ACCEPTED:"bidAccepted",RUN_PAAPI_AUCTION:"paapiRunAuction",PBS_ANALYTICS:"pbsAnalytics",PAAPI_BID:"paapiBid",PAAPI_NO_BID:"paapiNoBid",PAAPI_ERROR:"paapiError"},a={PREVENT_WRITING_ON_MAIN_DOCUMENT:"preventWritingOnMainDocument",NO_AD:"noAd",EXCEPTION:"exception",CANNOT_FIND_AD:"cannotFindAd",MISSING_DOC_OR_ADID:"missingDocOrAdid"},d={bidWon:"adUnitCode"},c={LOW:"low",MEDIUM:"medium",HIGH:"high",AUTO:"auto",DENSE:"dense",CUSTOM:"custom"},u={BIDDER:"hb_bidder",AD_ID:"hb_adid",PRICE_BUCKET:"hb_pb",SIZE:"hb_size",DEAL:"hb_deal",SOURCE:"hb_source",FORMAT:"hb_format",UUID:"hb_uuid",CACHE_ID:"hb_cache_id",CACHE_HOST:"hb_cache_host",ADOMAIN:"hb_adomain",ACAT:"hb_acat",CRID:"hb_crid",DSP:"hb_dsp"},l={BIDDER:"hb_bidder",AD_ID:"hb_adid",PRICE_BUCKET:"hb_pb",SIZE:"hb_size",DEAL:"hb_deal",FORMAT:"hb_format",UUID:"hb_uuid",CACHE_HOST:"hb_cache_host"},f={title:"hb_native_title",body:"hb_native_body",body2:"hb_native_body2",privacyLink:"hb_native_privacy",privacyIcon:"hb_native_privicon",sponsoredBy:"hb_native_brand",image:"hb_native_image",icon:"hb_native_icon",clickUrl:"hb_native_linkurl",displayUrl:"hb_native_displayurl",cta:"hb_native_cta",rating:"hb_native_rating",address:"hb_native_address",downloads:"hb_native_downloads",likes:"hb_native_likes",phone:"hb_native_phone",price:"hb_native_price",salePrice:"hb_native_saleprice",rendererUrl:"hb_renderer_url",adTemplate:"hb_adTemplate"},g={SRC:"s2s",DEFAULT_ENDPOINT:"https://prebid.adnxs.com/pbs/v1/openrtb2/auction",SYNCED_BIDDERS_KEY:"pbjsSyncs"},p={BID_TARGETING_SET:"targetingSet",RENDERED:"rendered",BID_REJECTED:"bidRejected"},h={INVALID:"Bid has missing or invalid properties",INVALID_REQUEST_ID:"Invalid request ID",BIDDER_DISALLOWED:"Bidder code is not allowed by allowedAlternateBidderCodes / allowUnknownBidderCodes",FLOOR_NOT_MET:"Bid does not meet price floor",CANNOT_CONVERT_CURRENCY:"Unable to convert currency",DSA_REQUIRED:"Bid does not provide required DSA transparency info",DSA_MISMATCH:"Bid indicates inappropriate DSA rendering method",PRICE_TOO_HIGH:"Bid price exceeds maximum value"},m={body:"desc",body2:"desc2",sponsoredBy:"sponsored",cta:"ctatext",rating:"rating",address:"address",downloads:"downloads",likes:"likes",phone:"phone",price:"price",salePrice:"saleprice",displayUrl:"displayurl"},b={sponsored:1,desc:2,rating:3,likes:4,downloads:5,price:6,saleprice:7,phone:8,address:9,desc2:10,displayurl:11,ctatext:12},y={ICON:1,MAIN:3},v=["privacyIcon","clickUrl","sendTargetingKeys","adTemplate","rendererUrl","type"],E={REQUEST:"Prebid Request",RESPONSE:"Prebid Response",NATIVE:"Prebid Native",EVENT:"Prebid Event"},A="__pb_locator__"},6833:(e,t,n)=>{n.d(t,{j:()=>f,q:()=>p});var i=n(5901),r=n(1069),o=n(3272);const s=2,a={buckets:[{max:5,increment:.5}]},d={buckets:[{max:20,increment:.1}]},c={buckets:[{max:20,increment:.01}]},u={buckets:[{max:3,increment:.01},{max:8,increment:.05},{max:20,increment:.5}]},l={buckets:[{max:5,increment:.05},{max:10,increment:.1},{max:20,increment:.5}]};function f(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=parseFloat(e);return isNaN(i)&&(i=""),{low:""===i?"":g(e,a,n),med:""===i?"":g(e,d,n),high:""===i?"":g(e,c,n),auto:""===i?"":g(e,l,n),dense:""===i?"":g(e,u,n),custom:""===i?"":g(e,t,n)}}function g(e,t,n){let a="";if(!p(t))return a;const d=t.buckets.reduce(((e,t)=>e.max>t.max?e:t),{max:0});let c=0,u=(0,i.I6)(t.buckets,(t=>{if(e>d.max*n){let e=t.precision;void 0===e&&(e=s),a=(t.max*n).toFixed(e)}else{if(e<=t.max*n&&e>=c*n)return t.min=c,t;c=t.max}}));return u&&(a=function(e,t,n){const i=void 0!==t.precision?t.precision:s,a=t.increment*n,d=t.min*n;let c=Math.floor,u=o.$W.getConfig("cpmRoundingFunction");"function"==typeof u&&(c=u);let l,f,g=Math.pow(10,i+2),p=(e*g-d*g)/(a*g);try{l=c(p)*a+d}catch(e){f=!0}(f||"number"!=typeof l)&&((0,r.JE)("Invalid rounding function passed in config"),l=Math.floor(p)*a+d);return l=Number(l.toFixed(10)),l.toFixed(i)}(e,u,n)),a}function p(e){if((0,r.Im)(e)||!e.buckets||!Array.isArray(e.buckets))return!1;let t=!0;return e.buckets.forEach((e=>{e.max&&e.increment||(t=!1)})),t}},6031:(e,t,n)=>{n.d(t,{H:()=>a,k:()=>s});var i=n(5555),r=n(1069),o=n(4595);const s=(0,n(9214).A_)("sync",(function(e){return o.G})),a=function(){const e={};return function(t){const n=s(t);return e.hasOwnProperty(n)||(e[n]=new i.k((e=>{const t=(0,r.CA)();t.srcdoc=`<script>${n}<\\/script>`,t.onload=()=>e(t.contentWindow.render),document.body.appendChild(t)}))),e[n]}}()},5023:(e,t,n)=>{n.d(t,{AU:()=>m,Ic:()=>v,kQ:()=>y,on:()=>h});var i=n(1069),r=n(8969),o=n(6853),s=n(3272);const a="eventHistoryTTL";let d=null;const c=(0,o.H)({monotonic:!0,ttl:()=>d});s.$W.getConfig(a,(e=>{const t=d;e=e?.[a],d="number"==typeof e?1e3*e:null,t!==d&&c.refresh()}));let u=Array.prototype.slice,l=Array.prototype.push,f=Object.values(r.qY);const g=r.cA,p=function(){let e={},t={};function n(e){return f.includes(e)}return t.has=n,t.on=function(t,r,o){if(n(t)){let n=e[t]||{que:[]};o?(n[o]=n[o]||{que:[]},n[o].que.push(r)):n.que.push(r),e[t]=n}else i.vV("Wrong event name : "+t+" Valid event names :"+f)},t.emit=function(t){!function(t,n){i.OG("Emitting event for: "+t);let r=n[0]||{},o=r[g[t]],s=e[t]||{que:[]};var a=Object.keys(s);let d=[];c.add({eventType:t,args:r,id:o,elapsedTime:i.V()}),o&&a.includes(o)&&l.apply(d,s[o].que),l.apply(d,s.que),(d||[]).forEach((function(e){if(e)try{e.apply(null,n)}catch(e){i.vV("Error executing handler:","events.js",e,t)}}))}(t,u.call(arguments,1))},t.off=function(t,n,r){let o=e[t];i.Im(o)||i.Im(o.que)&&i.Im(o[r])||r&&(i.Im(o[r])||i.Im(o[r].que))||(r?(o[r].que||[]).forEach((function(e){let t=o[r].que;e===n&&t.splice(t.indexOf(e),1)})):(o.que||[]).forEach((function(e){let t=o.que;e===n&&t.splice(t.indexOf(e),1)})),e[t]=o)},t.get=function(){return e},t.addEvents=function(e){f=f.concat(e)},t.getEvents=function(){return c.toArray().map((e=>Object.assign({},e)))},t}();i.cD(p.emit.bind(p));const{on:h,off:m,get:b,getEvents:y,emit:v,addEvents:E,has:A}=p},3858:(e,t,n)=>{n.d(t,{Dy:()=>r,O$:()=>s,i8:()=>o});var i=n(1069);const r=["dooh","app","site"];function o(e){return function(t){return r.reduce(((n,r)=>(s(t,r)&&(null!=n?((0,i.JE)(`${e} specifies both \'${n}\' and \'${r}\'; dropping the latter.`),delete t[r]):n=r),n)),null),t}}function s(e,t){return null!=e[t]&&Object.keys(e[t]).length>0}},9214:(e,t,n)=>{n.d(t,{A_:()=>s,Y6:()=>c,Yn:()=>d});var i=n(8128),r=n.n(i),o=n(5555);let s=r()({ready:r().SYNC|r().ASYNC|r().QUEUE});const a=(0,o.v)();s.ready=(()=>{const e=s.ready;return function(){try{return e.apply(s,arguments)}finally{a.resolve()}}})();a.promise;const d=s.get;function c(e,t){return Object.defineProperties(t,Object.fromEntries(["before","after","getHooks","removeAll"].map((t=>[t,{get:()=>e[t]}])))),t}},1371:(e,t,n)=>{n.d(t,{D4:()=>o,G_:()=>r,LM:()=>s,s6:()=>i});const i="native",r="video",o="banner",s="adpod"},2449:(e,t,n)=>{n.d(t,{Bm:()=>A,IX:()=>k,Nh:()=>l,Xj:()=>_,Zj:()=>w,gs:()=>T,l6:()=>b,mT:()=>u,nk:()=>v,vO:()=>I,yl:()=>R});var i=n(1069),r=n(5901),o=n(6881),s=n(8969),a=n(1371),d=n(9075),c=n(6031);const u=[],l=Object.keys(s.x5).map((e=>s.x5[e])),f={image:{ortb:{ver:"1.2",assets:[{required:1,id:1,img:{type:3,wmin:100,hmin:100}},{required:1,id:2,title:{len:140}},{required:1,id:3,data:{type:1}},{required:0,id:4,data:{type:2}},{required:0,id:5,img:{type:1,wmin:20,hmin:20}}]},image:{required:!0},title:{required:!0},sponsoredBy:{required:!0},clickUrl:{required:!0},body:{required:!1},icon:{required:!1}}},g=q(s.h0),p=q(s.jO),h={img:1,js:2,1:"img",2:"js"},m={impression:1,"viewable-mrc50":2,"viewable-mrc100":3,"viewable-video50":4};function b(e){return e.native&&"object"==typeof e.native}function y(e){if(e&&e.type&&function(e){if(!e||!(0,r.mK)(Object.keys(f),e))return(0,i.vV)(`${e} nativeParam is not supported`),!1;return!0}(e.type)&&(e=f[e.type]),!e||!e.ortb||E(e.ortb))return e}function v(e){e.forEach((e=>{const t=e.nativeParams||e?.mediaTypes?.native;t&&(e.nativeParams=y(t)),e.nativeParams&&(e.nativeOrtbRequest=e.nativeParams.ortb||function(e){if(!e&&!(0,i.Qd)(e))return void(0,i.vV)("Native assets object is empty or not an object: ",e);const t={ver:"1.2",assets:[]};for(let n in e){if(s._B.includes(n))continue;if(!s.x5.hasOwnProperty(n)){(0,i.vV)(`Unrecognized native asset code: ${n}. Asset will be ignored.`);continue}if("privacyLink"===n){t.privacy=1;continue}const r=e[n];let o=0;r.required&&(0,i.Lm)(r.required)&&(o=Number(r.required));const a={id:t.assets.length,required:o};if(n in s.h0)a.data={type:s.jO[s.h0[n]]},r.len&&(a.data.len=r.len);else if("icon"===n||"image"===n){if(a.img={type:"icon"===n?s.oA.ICON:s.oA.MAIN},r.aspect_ratios)if((0,i.cy)(r.aspect_ratios))if(r.aspect_ratios.length){const{min_width:e,min_height:t}=r.aspect_ratios[0];(0,i.Fq)(e)&&(0,i.Fq)(t)?(a.img.wmin=e,a.img.hmin=t):(0,i.vV)("image.aspect_ratios min_width or min_height are invalid: ",e,t);const n=r.aspect_ratios.filter((e=>e.ratio_width&&e.ratio_height)).map((e=>`${e.ratio_width}:${e.ratio_height}`));n.length>0&&(a.img.ext={aspectratios:n})}else(0,i.vV)("image.aspect_ratios was passed, but it\'s empty:",r.aspect_ratios);else(0,i.vV)("image.aspect_ratios was passed, but it\'s not a an array:",r.aspect_ratios);r.sizes&&(2===r.sizes.length&&(0,i.Fq)(r.sizes[0])&&(0,i.Fq)(r.sizes[1])?(a.img.w=r.sizes[0],a.img.h=r.sizes[1],delete a.img.hmin,delete a.img.wmin):(0,i.vV)("image.sizes was passed, but its value is not an array of integers:",r.sizes))}else"title"===n?a.title={len:r.len||140}:"ext"===n&&(a.ext=r,delete a.required);t.assets.push(a)}return t}(e.nativeParams))}))}function E(e){const t=e.assets;if(!Array.isArray(t)||0===t.length)return(0,i.vV)("assets in mediaTypes.native.ortb is not an array, or it\'s empty. Assets: ",t),!1;const n=t.map((e=>e.id));return t.length!==new Set(n).size||n.some((e=>e!==parseInt(e,10)))?((0,i.vV)("each asset object must have \'id\' property, it must be unique and it must be an integer"),!1):e.hasOwnProperty("eventtrackers")&&!Array.isArray(e.eventtrackers)?((0,i.vV)("ortb.eventtrackers is not an array. Eventtrackers: ",e.eventtrackers),!1):t.every((e=>function(e){if(!(0,i.Qd)(e))return(0,i.vV)("asset must be an object. Provided asset: ",e),!1;if(e.img){if(!(0,i.Et)(e.img.w)&&!(0,i.Et)(e.img.wmin))return(0,i.vV)("for img asset there must be \'w\' or \'wmin\' property"),!1;if(!(0,i.Et)(e.img.h)&&!(0,i.Et)(e.img.hmin))return(0,i.vV)("for img asset there must be \'h\' or \'hmin\' property"),!1}else if(e.title){if(!(0,i.Et)(e.title.len))return(0,i.vV)("for title asset there must be \'len\' property defined"),!1}else if(e.data){if(!(0,i.Et)(e.data.type))return(0,i.vV)("for data asset \'type\' property must be a number"),!1}else if(e.video&&!(Array.isArray(e.video.mimes)&&Array.isArray(e.video.protocols)&&(0,i.Et)(e.video.minduration)&&(0,i.Et)(e.video.maxduration)))return(0,i.vV)("video asset is not properly configured"),!1;return!0}(e)))}function A(e){let{index:t=o.n.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=t.getAdUnit(e);if(!n)return!1;let s=n.nativeOrtbRequest;return function(e,t){if(!e?.link?.url)return(0,i.vV)("native response doesn\'t have \'link\' property. Ortb response: ",e),!1;let n=t.assets.filter((e=>1===e.required)).map((e=>e.id)),o=e.assets.map((e=>e.id));const s=n.every((e=>(0,r.mK)(o,e)));s||(0,i.vV)(`didn\'t receive a bid with all required assets. Required ids: ${n}, but received ids in response: ${o}`);return s}(e.native?.ortb||$(e.native,s),s)}function I(e,t){const n=t.native.ortb||j(t.native);return"click"===e.action?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,{fetchURL:n=i.z$}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){const i=(e.assets||[]).filter((e=>e.link)).reduce(((e,t)=>(e[t.id]=t.link,e)),{}),r=e.link?.clicktrackers||[];let o=i[t],s=r;o&&(s=o.clicktrackers||[]),s.forEach((e=>n(e)))}else(e.link?.clicktrackers||[]).forEach((e=>n(e)))}(n,e?.assetId):function(e){let{runMarkup:t=(e=>(0,i.ro)(e)),fetchURL:n=i.z$}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=(e.eventtrackers||[]).filter((e=>e.event===m.impression));let{img:o,js:s}=r.reduce(((e,t)=>(h.hasOwnProperty(t.method)&&e[h[t.method]].push(t.url),e)),{img:[],js:[]});e.imptrackers&&(o=o.concat(e.imptrackers));o.forEach((e=>n(e))),s=s.map((e=>`<script async src="${e}"><\\/script>`)),e.jstracker&&(s=s.concat([e.jstracker]));s.length&&t(s.join("\\n"))}(n),e.action}function T(e,t){const n=t?.nativeOrtbRequest,i=e.native?.ortb;if(n&&i){const t=function(e,t){const n={},i=t?.assets||[];n.clickUrl=e.link?.url,n.privacyLink=e.privacy;for(const t of e?.assets||[]){const e=i.find((e=>t.id===e.id));t.title?n.title=t.title.text:t.img?n[e?.img?.type===s.oA.MAIN?"image":"icon"]={url:t.img.url,width:t.img.w,height:t.img.h}:t.data&&(n[g[p[e?.data?.type]]]=t.data.value)}n.impressionTrackers=[];let r=[];e.imptrackers&&n.impressionTrackers.push(...e.imptrackers);for(const t of e?.eventtrackers||[])t.event===m.impression&&t.method===h.img&&n.impressionTrackers.push(t.url),t.event===m.impression&&t.method===h.js&&r.push(t.url);r=r.map((e=>`<script async src="${e}"><\\/script>`)),e?.jstracker&&r.push(e.jstracker);r.length&&(n.javascriptTrackers=r.join("\\n"));return n}(i,n);Object.assign(e.native,t)}["rendererUrl","adTemplate"].forEach((n=>{const i=t?.nativeParams?.[n];i&&(e.native[n]=S(i))}))}function w(e){let{index:t=o.n.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};const i=t.getAdUnit(e),r=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{...s.x5,...t}}(i),d={...e.native,...e.native.ext};return delete d.ext,Object.keys(d).forEach((t=>{const o=a[t];let s=S(e.native[t])||S(e?.native?.ext?.[t]);if("adTemplate"===t||!o||!s)return;let d=i?.nativeParams?.[t]?.sendId;if("boolean"!=typeof d&&(d=i?.nativeParams?.ext?.[t]?.sendId),d){s=`${o}:${e.adId}`}let c=i?.nativeParams?.[t]?.sendTargetingKeys;"boolean"!=typeof c&&(c=i?.nativeParams?.ext?.[t]?.sendTargetingKeys);("boolean"==typeof c?c:r)&&(n[o]=s)})),n}function C(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=[];return Object.entries(e).filter((e=>{let[i,r]=e;return r&&(!1===n&&"ext"===i||null==t||t.includes(i))})).forEach((e=>{let[r,o]=e;!1===n&&"ext"===r?i.push(...C(o,t,!0)):(n||s.x5.hasOwnProperty(r))&&i.push({key:r,value:S(o)})})),i}function B(e,t,n){let{index:r=o.n.index}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const a={message:"assetResponse",adId:e.adId};let u=(0,d.vd)(t).native;return u?(a.native=Object.assign({},u),a.renderer=(0,c.k)(t),null!=n&&(u.assets=u.assets.filter((e=>{let{key:t}=e;return n.includes(t)})))):u=function(e,t,n){const r={...(0,i.SH)(e.native,["rendererUrl","adTemplate"]),assets:C(e.native,n),nativeKeys:s.x5};return e.native.ortb?r.ortb=e.native.ortb:t.mediaTypes?.native?.ortb&&(r.ortb=$(e.native,t.nativeOrtbRequest)),r}(t,r.getAdUnit(t),n),Object.assign(a,u)}const O=Object.fromEntries(Object.entries(s.x5).map((e=>{let[t,n]=e;return[n,t]})));function k(e,t){const n=e.assets.map((e=>O[e]));return B(e,t,n)}function R(e,t){return B(e,t,null)}function S(e){return e?.url||e}function D(e,t){for(;e&&t&&e!==t;)e>t?e-=t:t-=e;return e||t}function U(e){if(!E(e))return;const t={};for(const n of e.assets){if(n.title){const e={required:!!n.required&&Boolean(n.required),len:n.title.len};t.title=e}else if(n.img){const e={required:!!n.required&&Boolean(n.required)};if(n.img.w&&n.img.h)e.sizes=[n.img.w,n.img.h];else if(n.img.wmin&&n.img.hmin){const t=D(n.img.wmin,n.img.hmin);e.aspect_ratios=[{min_width:n.img.wmin,min_height:n.img.hmin,ratio_width:n.img.wmin/t,ratio_height:n.img.hmin/t}]}n.img.type===s.oA.MAIN?t.image=e:t.icon=e}else if(n.data){let e=Object.keys(s.jO).find((e=>s.jO[e]===n.data.type)),i=Object.keys(s.h0).find((t=>s.h0[t]===e));t[i]={required:!!n.required&&Boolean(n.required)},n.data.len&&(t[i].len=n.data.len)}e.privacy&&(t.privacyLink={required:!1})}return t}function _(e){{if(!e||!(0,i.cy)(e))return e;if(!e.some((e=>(e?.mediaTypes||{})[a.s6]?.ortb)))return e;let t=(0,i.Go)(e);for(const e of t)e.mediaTypes&&e.mediaTypes[a.s6]&&e.mediaTypes[a.s6].ortb&&(e.mediaTypes[a.s6]=Object.assign((0,i.Up)(e.mediaTypes[a.s6],s._B),U(e.mediaTypes[a.s6].ortb)),e.nativeParams=y(e.mediaTypes[a.s6]));return t}}function j(e){const t={link:{},eventtrackers:[]};return Object.entries(e).forEach((e=>{let[n,i]=e;switch(n){case"clickUrl":t.link.url=i;break;case"clickTrackers":t.link.clicktrackers=Array.isArray(i)?i:[i];break;case"impressionTrackers":(Array.isArray(i)?i:[i]).forEach((e=>{t.eventtrackers.push({event:m.impression,method:h.img,url:e})}));break;case"javascriptTrackers":t.jstracker=Array.isArray(i)?i.join(""):i;break;case"privacyLink":t.privacy=i}})),t}function $(e,t){const n={...j(e),assets:[]};function r(e,r){let o=t.assets.find(e);null!=o&&(o=(0,i.Go)(o),r(o),n.assets.push(o))}return Object.keys(e).filter((t=>!!e[t])).forEach((t=>{const n=S(e[t]);switch(t){case"title":r((e=>null!=e.title),(e=>{e.title={text:n}}));break;case"image":case"icon":const e="image"===t?s.oA.MAIN:s.oA.ICON;r((t=>null!=t.img&&t.img.type===e),(e=>{e.img={url:n}}));break;default:t in s.h0&&r((e=>null!=e.data&&e.data.type===s.jO[s.h0[t]]),(e=>{e.data={value:n}}))}})),n}function q(e){var t={};for(var n in e)t[e[n]]=n;return t}},5901:(e,t,n)=>{function i(e,t,n){return e&&e.includes(t,n)||!1}function r(){return Array.from.apply(Array,arguments)}function o(e,t,n){return e&&e.find(t,n)}n.d(t,{A6:()=>r,I6:()=>o,mK:()=>i})},5952:(e,t,n)=>{var i=n(7873),r=n(1069),o=n(433),s=n(3172),a=n(2449),d=n(8969),c=n(5901),u=n(9075),l=n(6031);const{REQUEST:f,RESPONSE:g,NATIVE:p,EVENT:h}=d.nl,m={[f]:function(e,t,n){(0,u.bw)({renderFn(t){e(Object.assign({message:g,renderer:(0,l.k)(n)},t))},resizeFn:y(t.adId,n),options:t.options,adId:t.adId,bidResponse:n})},[h]:function(e,t,n){if(null==n)return void(0,r.vV)(`Cannot find ad \'${t.adId}\' for x-origin event request`);if(n.status!==d.tl.RENDERED)return void(0,r.JE)(`Received x-origin event request without corresponding render request for ad \'${n.adId}\'`);return(0,u.Uc)(t,n)}};function b(){window.addEventListener("message",(function(e){!function(e){var t=e.message?"message":"data",n={};try{n=JSON.parse(e[t])}catch(e){return}if(n&&n.adId&&n.message&&m.hasOwnProperty(n.message))(0,u.$A)(n.adId,n.message===d.nl.REQUEST).then((t=>{var i,o;m[n.message]((i=n.adId,o=function(e){return null==e.origin&&0===e.ports.length?function(){const e="Cannot post message to a frame with null origin. Please update creatives to use MessageChannel, see https://github.com/prebid/Prebid.js/issues/7870";throw(0,r.vV)(e),new Error(e)}:e.ports.length>0?function(t){e.ports[0].postMessage(JSON.stringify(t))}:function(t){e.source.postMessage(JSON.stringify(t),e.origin)}}(e),function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return o(Object.assign({},e,{adId:i}),...n)}),n,t)}))}(e)}),!1)}function y(e,t){return function(n,i){!function(e){let{adId:t,adUnitCode:n,width:i,height:o}=e;function s(e){return e?e+"px":"100%"}function a(e){let i=d(t,n),r=document.getElementById(i);return r&&r.querySelector(e)}function d(e,t){return(0,r.II)()?u(e):(0,r.t1)()?l(t):t}function u(e){const t=(0,c.I6)(window.googletag.pubads().getSlots(),(t=>(0,c.I6)(t.getTargetingKeys(),(n=>(0,c.mK)(t.getTargeting(n),e)))));return t?t.getSlotElementId():null}function l(e){let t=window.apntag.getTag(e);return t&&t.targetId}["div","iframe"].forEach((e=>{let t=a(e+\':not([style*="display: none"])\');if(t){let e=t.style;e.width=s(i),e.height=s(o)}else(0,r.vV)(`Unable to locate matching page element for adUnitCode ${n}. Can\'t resize it to ad\'s dimensions. Please review setup.`)}))}({...t,width:n,height:i,adId:e})}}Object.assign(m,{[p]:function(e,t,n){if(null==n)return void(0,r.vV)(`Cannot find ad for x-origin event request: \'${t.adId}\'`);switch(t.action){case"assetRequest":(0,u.Hh)(n,(()=>e((0,a.IX)(t,n))));break;case"allAssetRequest":(0,u.Hh)(n,(()=>e((0,a.yl)(t,n))));break;default:(0,u.vW)(t,n,{resizeFn:y(t.adId,n)}),(0,u.Pk)(n)}}});var v=n(8230),E=n(3272),A=n(6881),I=n(7779),T=n(9214),w=n(3597),C=n(1580),B=n(5555),O=n(5569);const k="__pbjs_debugging__";function R(){return(0,i.m)().installedModules.includes("debugging")}function S(e){return new B.k((t=>{(0,C.R)(e,O.tp,"debugging",t)}))}function D(){let{alreadyInstalled:e=R,script:t=S}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null;return function(){return null==n&&(n=new B.k(((n,o)=>{setTimeout((()=>{if(e())n();else{const e="https://cdn.jsdelivr.net/npm/prebid.js@9.23.0/dist/debugging-standalone.js";(0,r.OG)(`Debugging module not installed, loading it from "${e}"...`),(0,i.m)()._installDebugging=!0,t(e).then((()=>{(0,i.m)()._installDebugging({DEBUG_KEY:k,hook:T.A_,config:E.$W,createBid:w.O,logger:(0,r.h0)("DEBUG:")})})).then(n,o)}}))}))),n}}const U=function(){let{load:e=D(),hook:t=(0,T.Yn)("requestBids")}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null,i=!1;function r(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];return(n||B.k.resolve()).then((()=>e.apply(this,i)))}function o(){t.getHooks({hook:r}).remove(),i=!1}return{enable:function(){i||(n=e(),t.before(r,99),i=!0)},disable:o,reset:function(){n=null,o()}}}();U.reset;E.$W.getConfig("debugging",(function(e){let{debugging:t}=e;t?.enabled?U.enable():U.disable()}));var _=n(2938),j=n(8046),$=n(5023),q=n(6894),x=n(7934);const N=(0,_.CK)("fpdEnrichment"),W=(0,r.Bj)((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.host;if(!N.cookiesAreEnabled())return e;const t=e.split(".");if(2===t.length)return e;let n,i,o=-2;const s=`_rdc${Date.now()}`,a="writeable";do{n=t.slice(o).join(".");let e=new Date((0,r.vE)()+1e4).toUTCString();N.setCookie(s,a,e,"Lax",n,void 0);N.getCookie(s,void 0)===a?(i=!1,N.setCookie(s,"","Thu, 01 Jan 1970 00:00:01 GMT",void 0,n,void 0)):(o+=-1,i=Math.abs(o)<=t.length)}while(i);return n})),P=["architecture","bitness","model","platformVersion","fullVersionList"],V=["brands","mobile","platform"],M=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.navigator?.userAgentData;const t=e&&V.some((t=>void 0!==e[t]))?Object.freeze(F(1,e)):null;return function(){return t}}(),G=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.navigator?.userAgentData;const t={},n=new WeakMap;return function(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:P;if(!n.has(i)){const e=Array.from(i);e.sort(),n.set(i,e.join("|"))}const o=n.get(i);if(!t.hasOwnProperty(o))try{t[o]=e.getHighEntropyValues(i).then((e=>(0,r.Im)(e)?null:Object.freeze(F(2,e)))).catch((()=>null))}catch(e){t[o]=B.k.resolve(null)}return t[o]}}();function F(e,t){function n(e,t){const n={brand:e};return(0,r.O8)(t)&&!(0,r.xQ)(t)&&(n.version=t.split(".")),n}const i={source:e};return t.platform&&(i.platform=n(t.platform,t.platformVersion)),(t.fullVersionList||t.brands)&&(i.browsers=(t.fullVersionList||t.brands).map((e=>{let{brand:t,version:i}=e;return n(t,i)}))),void 0!==t.mobile&&(i.mobile=t.mobile?1:0),["model","bitness","architecture"].forEach((e=>{const n=t[e];(0,r.O8)(n)&&(i[e]=n)})),i}var H=n(3858),L=n(5139),z=n(3441),J=n(6811);const K={getRefererInfo:x.EN,findRootDomain:W,getWindowTop:r.mb,getWindowSelf:r.l4,getHighEntropySUA:G,getLowEntropySUA:M},Q=(0,H.i8)("FPD"),Y=(0,T.A_)("sync",(e=>{const t=[e,Z().catch((()=>null)),B.k.resolve("cookieDeprecationLabel"in navigator&&(0,L.io)(J.Ue,(0,z.s)(O.tp,"cdep"))&&navigator.cookieDeprecationLabel.getValue()).catch((()=>null))];return B.k.all(t).then((e=>{let[t,n,i]=e;const o=K.getRefererInfo();if(Object.entries(te).forEach((e=>{let[n,i]=e;const s=i(t,o);s&&Object.keys(s).length>0&&(t[n]=(0,r.D9)({},s,t[n]))})),n&&(0,s.J)(t,"device.sua",Object.assign({},n,t.device.sua)),i){const e={cdep:i};(0,s.J)(t,"device.ext",Object.assign({},e,t.device.ext))}t=Q(t);for(let e of H.Dy)if((0,H.O$)(t,e)){t[e]=(0,r.D9)({},ne(t,o),t[e]);break}return t}))}));function X(e){try{return e(K.getWindowTop())}catch(t){return e(K.getWindowSelf())}}function Z(){const e=E.$W.getConfig("firstPartyData.uaHints");return Array.isArray(e)&&0!==e.length?K.getHighEntropySUA(e):B.k.resolve(K.getLowEntropySUA())}function ee(e){return(0,r.SH)(e,Object.keys(e))}const te={site(e,t){if(!H.Dy.filter((e=>"site"!==e)).some(H.O$.bind(null,e)))return ee({page:t.page,ref:t.ref})},device:()=>X((e=>{const t=e.screen.width,n=e.screen.height,i=e.innerWidth||e.document.documentElement.clientWidth||e.document.body.clientWidth,o=e.innerHeight||e.document.documentElement.clientHeight||e.document.body.clientHeight,a={w:t,h:n,dnt:(0,r.l9)()?1:0,ua:e.navigator.userAgent,language:e.navigator.language.split("-").shift(),ext:{vpw:i,vph:o}};return e.navigator?.webdriver&&(0,s.J)(a,"ext.webdriver",!0),a})),regs(){const e={};X((e=>e.navigator.globalPrivacyControl))&&(0,s.J)(e,"ext.gpc","1");const t=E.$W.getConfig("coppa");return"boolean"==typeof t&&(e.coppa=t?1:0),e}};function ne(e,t){const n=(0,x.gR)(t.page,{noLeadingWww:!0}),i=X((e=>e.document.querySelector("meta[name=\'keywords\']")))?.content?.replace?.(/\\s/g,"");return ee({domain:n,keywords:i,publisher:ee({domain:K.findRootDomain(n)})})}var ie=n(6916),re=n(2713),oe=n(3895);const se=new Map([["format",e=>Array.isArray(e)&&e.length>0&&e.every((e=>"object"==typeof e))],["w",r.Fq],["h",r.Fq],["btype",r.Uu],["battr",r.Uu],["pos",r.Fq],["mimes",e=>Array.isArray(e)&&e.length>0&&e.every((e=>"string"==typeof e))],["topframe",e=>[1,0].includes(e)],["expdir",r.Uu],["api",r.Uu],["id",r.O8],["vcm",e=>[1,0].includes(e)]]);var ae=n(1371);const de=(0,i.m)(),{triggerUserSyncs:ce}=v.zt,{ADD_AD_UNITS:ue,REQUEST_BIDS:le,SET_TARGETING:fe}=d.qY,ge={bidWon:function(e){if(!A.n.getBidsRequested().map((e=>e.bids.map((e=>e.adUnitCode)))).reduce(r.Bq).filter(r.hj).includes(e))return void(0,r.vV)(\'The "\'+e+\'" placement is not defined.\');return!0}};function pe(e,t){let n=[];return(0,r.cy)(e)&&(t?e.length===t:e.length>0)&&(e.every((e=>(0,r.Uu)(e,2)))?n=e:(0,r.Uu)(e,2)&&n.push(e)),n}function he(e,t){const n=(0,o.A)(e,`ortb2Imp.${t}`),i=(0,o.A)(e,`mediaTypes.${t}`);if(!n&&!i)return;const a={[ae.G_]:oe.Zy,[ae.D4]:se}[t];a&&[...a].forEach((n=>{let[i,a]=n;const d=(0,o.A)(e,`mediaTypes.${t}.${i}`),c=(0,o.A)(e,`ortb2Imp.${t}.${i}`);null==d&&null==c||(null==d?(0,s.J)(e,`mediaTypes.${t}.${i}`,c):null==c?(0,s.J)(e,`ortb2Imp.${t}.${i}`,d):((0,r.JE)(`adUnit ${e.code}: specifies conflicting ortb2Imp.${t}.${i} and mediaTypes.${t}.${i}, the latter will be ignored`,e),(0,s.J)(e,`mediaTypes.${t}.${i}`,c)))}))}function me(e){const t=(0,r.Go)(e),n=t.mediaTypes.banner,i=pe(n.sizes);return i.length>0?(n.sizes=i,t.sizes=i):((0,r.vV)("Detected a mediaTypes.banner object without a proper sizes field. Please ensure the sizes are listed like: [[300, 250], ...]. Removing invalid mediaTypes.banner object from request."),delete t.mediaTypes.banner),he(t,"banner"),t}function be(e){const t=(0,r.Go)(e),n=t.mediaTypes.video;if(n.playerSize){let e="number"==typeof n.playerSize[0]?2:1;const i=pe(n.playerSize,e);i.length>0?(2===e&&(0,r.fH)("Transforming video.playerSize from [640,480] to [[640,480]] so it\'s in the proper format."),n.playerSize=i,t.sizes=i):((0,r.vV)("Detected incorrect configuration of mediaTypes.video.playerSize. Please specify only one set of dimensions in a format like: [[640, 480]]. Removing invalid mediaTypes.video.playerSize property from request."),delete t.mediaTypes.video.playerSize)}return(0,oe.aP)(t),he(t,"video"),t}function ye(e){function t(t){return(0,r.vV)(`Error in adUnit "${e.code}": ${t}. Removing native request from ad unit`,e),delete i.mediaTypes.native,i}function n(e){for(const t of["sendTargetingKeys","types"])if(o.hasOwnProperty(t)){const n=e(t);if(n)return n}}const i=(0,r.Go)(e),o=i.mediaTypes.native;if(o.ortb){if(o.ortb.assets?.some((e=>!(0,r.Et)(e.id)||e.id<0||e.id%1!=0)))return t("native asset ID must be a nonnegative integer");if(n((e=>t(`ORTB native requests cannot specify "${e}"`))))return i;const e=Object.keys(d.x5).filter((e=>d.x5[e].includes("hb_native_"))),s=Object.keys(o).filter((t=>e.includes(t)));s.length>0&&((0,r.vV)(`when using native OpenRTB format, you cannot use legacy native properties. Deleting ${s} keys from request.`),s.forEach((e=>delete i.mediaTypes.native[e])))}else n((e=>`mediaTypes.native.${e} is deprecated, consider using native ORTB instead`));return o.image&&o.image.sizes&&!Array.isArray(o.image.sizes)&&((0,r.vV)("Please use an array of sizes for native.image.sizes field. Removing invalid mediaTypes.native.image.sizes property from request."),delete i.mediaTypes.native.image.sizes),o.image&&o.image.aspect_ratios&&!Array.isArray(o.image.aspect_ratios)&&((0,r.vV)("Please use an array of sizes for native.image.aspect_ratios field. Removing invalid mediaTypes.native.image.aspect_ratios property from request."),delete i.mediaTypes.native.image.aspect_ratios),o.icon&&o.icon.sizes&&!Array.isArray(o.icon.sizes)&&((0,r.vV)("Please use an array of sizes for native.icon.sizes field. Removing invalid mediaTypes.native.icon.sizes property from request."),delete i.mediaTypes.native.icon.sizes),i}function ve(e,t){let n=e?.mediaTypes?.[t]?.pos;if(!(0,r.Et)(n)||isNaN(n)||!isFinite(n)){let n=`Value of property \'pos\' on ad unit ${e.code} should be of type: Number`;(0,r.JE)(n),delete e.mediaTypes[t].pos}return e}function Ee(e){const t=t=>`adUnit.code \'${e.code}\' ${t}`,n=e.mediaTypes,i=e.bids;return null==i||(0,r.cy)(i)?null==i&&null==e.ortb2Imp?((0,r.vV)(t("has no \'adUnit.bids\' and no \'adUnit.ortb2Imp\'. Removing adUnit from auction")),null):n&&0!==Object.keys(n).length?(null==e.ortb2Imp||null!=i&&0!==i.length||(e.bids=[{bidder:null}],(0,r.OG)(t("defines \'adUnit.ortb2Imp\' with no \'adUnit.bids\'; it will be seen only by S2S adapters"))),e):((0,r.vV)(t("does not define a \'mediaTypes\' object. This is a required field for the auction, so this adUnit has been removed.")),null):((0,r.vV)(t("defines \'adUnit.bids\' that is not an array. Removing adUnit from auction")),null)}!function(){let e=null;try{e=window.sessionStorage}catch(e){}if(null!==e){let t=U,n=null;try{n=e.getItem(k)}catch(e){}null!==n&&t.enable()}}(),de.bidderSettings=de.bidderSettings||{},de.libLoaded=!0,de.version="v9.23.0",(0,r.fH)("Prebid.js v9.23.0 loaded"),de.installedModules=de.installedModules||[],de.adUnits=de.adUnits||[],de.triggerUserSyncs=ce;const Ae={validateAdUnit:Ee,validateBannerMediaType:me,validateSizes:pe};Object.assign(Ae,{validateNativeMediaType:ye}),Object.assign(Ae,{validateVideoMediaType:be});const Ie=(0,T.A_)("sync",(function(e){const t=[];return e.forEach((e=>{if(null==(e=Ee(e)))return;const n=e.mediaTypes;let i,r,o;n.banner&&(i=me(e),n.banner.hasOwnProperty("pos")&&(i=ve(i,"banner"))),n.video&&(r=be(i||e),n.video.hasOwnProperty("pos")&&(r=ve(r,"video"))),n.native&&(o=ye(r||(i||e)));const s=Object.assign({},i,r,o);t.push(s)})),t}),"checkAdUnitSetup");function Te(e){const t=A.n[e]().filter((e=>A.n.getAdUnitCodes().includes(e.adUnitCode))),n=A.n.getLastAuctionId();return t.map((e=>e.adUnitCode)).filter(r.hj).map((e=>t.filter((t=>t.auctionId===n&&t.adUnitCode===e)))).filter((e=>e&&e[0]&&e[0].adUnitCode)).map((e=>({[e[0].adUnitCode]:{bids:e}}))).reduce(((e,t)=>Object.assign(e,t)),{})}de.getAdserverTargetingForAdUnitCodeStr=function(e){if((0,r.fH)("Invoking pbjs.getAdserverTargetingForAdUnitCodeStr",arguments),e){var t=de.getAdserverTargetingForAdUnitCode(e);return(0,r.$D)(t)}(0,r.OG)("Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode")},de.getHighestUnusedBidResponseForAdUnitCode=function(e){if(e){const t=A.n.getAllBidsForAdUnitCode(e).filter(I.Yl);return t.length?t.reduce(re.Vk):{}}(0,r.OG)("Need to call getHighestUnusedBidResponseForAdUnitCode with adunitCode")},de.getAdserverTargetingForAdUnitCode=function(e){return de.getAdserverTargeting(e)[e]},de.getAdserverTargeting=function(e){return(0,r.fH)("Invoking pbjs.getAdserverTargeting",arguments),I.iS.getAllTargeting(e)},de.getConsentMetadata=function(){return(0,r.fH)("Invoking pbjs.getConsentMetadata"),ie.SL.getConsentMeta()},de.getNoBids=function(){return(0,r.fH)("Invoking pbjs.getNoBids",arguments),Te("getNoBids")},de.getNoBidsForAdUnitCode=function(e){return{bids:A.n.getNoBids().filter((t=>t.adUnitCode===e))}},de.getBidResponses=function(){return(0,r.fH)("Invoking pbjs.getBidResponses",arguments),Te("getBidsReceived")},de.getBidResponsesForAdUnitCode=function(e){return{bids:A.n.getBidsReceived().filter((t=>t.adUnitCode===e))}},de.setTargetingForGPTAsync=function(e,t){(0,r.fH)("Invoking pbjs.setTargetingForGPTAsync",arguments),(0,r.II)()?I.iS.setTargetingForGPT(e,t):(0,r.vV)("window.googletag is not defined on the page")},de.setTargetingForAst=function(e){(0,r.fH)("Invoking pbjs.setTargetingForAn",arguments),I.iS.isApntagDefined()?(I.iS.setTargetingForAst(e),$.Ic(fe,I.iS.getAllTargeting())):(0,r.vV)("window.apntag is not defined on the page")},de.renderAd=(0,T.A_)("async",(function(e,t,n){(0,r.fH)("Invoking pbjs.renderAd",arguments),(0,r.OG)("Calling renderAd with adId :"+t),(0,u.BS)(e,t,n)})),de.removeAdUnit=function(e){if((0,r.fH)("Invoking pbjs.removeAdUnit",arguments),!e)return void(de.adUnits=[]);let t;t=(0,r.cy)(e)?e:[e],t.forEach((e=>{for(let t=de.adUnits.length-1;t>=0;t--)de.adUnits[t].code===e&&de.adUnits.splice(t,1)}))},de.requestBids=function(){const e=(0,T.A_)("async",(function(){let{bidsBackHandler:e,timeout:t,adUnits:n,adUnitCodes:i,labels:o,auctionId:s,ttlBuffer:a,ortb2:d,metrics:u,defer:l}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};$.Ic(le);const f=t||E.$W.getConfig("bidderTimeout");(0,r.fH)("Invoking pbjs.requestBids",arguments),null==i||Array.isArray(i)||(i=[i]),i&&i.length?n=n.filter((e=>(0,c.mK)(i,e.code))):i=n&&n.map((e=>e.code)),i=i.filter(r.hj);const g={global:(0,r.D9)({},E.$W.getAnyConfig("ortb2")||{},d||{}),bidder:Object.fromEntries(Object.entries(E.$W.getBidderConfig()).map((e=>{let[t,n]=e;return[t,(0,r.Go)(n.ortb2)]})).filter((e=>{let[t,n]=e;return null!=n})))};return Y(B.k.resolve(g.global)).then((t=>(g.global=t,we({bidsBackHandler:e,timeout:f,adUnits:n,adUnitCodes:i,labels:o,auctionId:s,ttlBuffer:a,ortb2Fragments:g,metrics:u,defer:l}))))}),"requestBids");return(0,T.Y6)(e,(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.adUnits||de.adUnits;return t.adUnits=(0,r.cy)(n)?n.slice():[n],t.metrics=(0,q.K7)(),t.metrics.checkpoint("requestBids"),t.defer=(0,B.v)({promiseFactory:e=>new Promise(e)}),e.call(this,t),t.defer.promise}))}();const we=(0,T.A_)("async",(function(){let{bidsBackHandler:e,timeout:t,adUnits:n,ttlBuffer:i,adUnitCodes:o,labels:a,auctionId:d,ortb2Fragments:u,metrics:l,defer:f}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const g=(0,j.pX)(E.$W.getConfig("s2sConfig")||[]);function p(t,n,i){if("function"==typeof e)try{e(t,n,i)}catch(e){(0,r.vV)("Error executing bidsBackHandler",null,e)}f.resolve({bids:t,timedOut:n,auctionId:i})}!function(e){e.forEach((e=>(0,oe.V0)(e)))}(n),n=(0,q.BO)(l).measureTime("requestBids.validate",(()=>Ie(n)));const h={};if(n.forEach((e=>{const t=Object.keys(e.mediaTypes||{banner:"banner"}),n=e.bids.map((e=>e.bidder)),o=j.Ay.bidderRegistry,s=n.filter((e=>!g.has(e)));e.adUnitId=(0,r.lk)();const a=e.ortb2Imp?.ext?.tid;a&&(h.hasOwnProperty(e.code)?(0,r.JE)(`Multiple distinct ortb2Imp.ext.tid were provided for twin ad units \'${e.code}\'`):h[e.code]=a),null==i||e.hasOwnProperty("ttlBuffer")||(e.ttlBuffer=i),s.forEach((n=>{const i=o[n],s=i&&i.getSpec&&i.getSpec(),a=s&&s.supportedMediaTypes||["banner"];t.some((e=>(0,c.mK)(a,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||h[e.code]||(0,r.lk)();h.hasOwnProperty(e.code)||(h[e.code]=t),e.transactionId=t,(0,s.J)(e,"ortb2Imp.ext.tid",t)}));const e=A.n.createAuction({adUnits:n,adUnitCodes:o,callback:p,cbTimeout:t,labels:a,auctionId:d,ortb2Fragments:u,metrics:l});let i=n.length;i>15&&(0,r.fH)(`Current auction ${e.getAuctionId()} contains ${i} adUnits.`,n),o.forEach((t=>I.iS.setLatestAuctionForAdUnit(t,e.getAuctionId()))),e.callBids()}else(0,r.OG)("No adUnits configured. No bids requested."),p()}),"startAuction");de.requestBids.before((function(e,t){function n(e){for(var t;t=e.shift();)t()}n(_.s0),n(Ce),e.call(this,t)}),49),de.addAdUnits=function(e){(0,r.fH)("Invoking pbjs.addAdUnits",arguments),de.adUnits.push.apply(de.adUnits,(0,r.cy)(e)?e:[e]),$.Ic(ue)},de.onEvent=function(e,t,n){(0,r.fH)("Invoking pbjs.onEvent",arguments),(0,r.fp)(t)?!n||ge[e].call(null,n)?$.on(e,t,n):(0,r.vV)(\'The id provided is not valid for event "\'+e+\'" and no handler was set.\'):(0,r.vV)(\'The event handler provided is not a function and was not set on event "\'+e+\'".\')},de.offEvent=function(e,t,n){(0,r.fH)("Invoking pbjs.offEvent",arguments),n&&!ge[e].call(null,n)||$.AU(e,t,n)},de.getEvents=function(){return(0,r.fH)("Invoking pbjs.getEvents"),$.kQ()},de.registerBidAdapter=function(e,t){(0,r.fH)("Invoking pbjs.registerBidAdapter",arguments);try{j.Ay.registerBidAdapter(e(),t)}catch(e){(0,r.vV)("Error registering bidder adapter : "+e.message)}},de.registerAnalyticsAdapter=function(e){(0,r.fH)("Invoking pbjs.registerAnalyticsAdapter",arguments);try{j.Ay.registerAnalyticsAdapter(e)}catch(e){(0,r.vV)("Error registering analytics adapter : "+e.message)}},de.createBid=function(e){return(0,r.fH)("Invoking pbjs.createBid",arguments),(0,w.O)(e)};const Ce=[],Be=(0,T.A_)("async",(function(e){e&&!(0,r.Im)(e)?((0,r.fH)("Invoking pbjs.enableAnalytics for: ",e),j.Ay.enableAnalytics(e)):(0,r.vV)("pbjs.enableAnalytics should be called with option {}")}),"enableAnalyticsCb");function Oe(e){if("function"==typeof e)try{e.call()}catch(e){(0,r.vV)("Error processing command :",e.message,e.stack)}else(0,r.vV)("Commands written into pbjs.cmd.push must be wrapped in a function")}function ke(e){e.forEach((function(e){if(void 0===e.called)try{e.call(),e.called=!0}catch(e){(0,r.vV)("Error processing command :","prebid.js",e)}}))}de.enableAnalytics=function(e){Ce.push(Be.bind(this,e))},de.aliasBidder=function(e,t,n){(0,r.fH)("Invoking pbjs.aliasBidder",arguments),e&&t?j.Ay.aliasBidAdapter(e,t,n):(0,r.vV)("bidderCode and alias must be passed as arguments","pbjs.aliasBidder")},de.aliasRegistry=j.Ay.aliasRegistry,E.$W.getConfig("aliasRegistry",(e=>{"private"===e.aliasRegistry&&delete de.aliasRegistry})),de.getAllWinningBids=function(){return A.n.getAllWinningBids()},de.getAllPrebidWinningBids=function(){return A.n.getBidsReceived().filter((e=>e.status===d.tl.BID_TARGETING_SET))},de.getHighestCpmBids=function(e){return I.iS.getWinningBids(e)},de.clearAllAuctions=function(){A.n.clearAllAuctions()},de.markWinningBidAsUsed=function(e){let t,{adId:n,adUnitCode:i,analytics:o=!1}=e;i&&null==n?t=I.iS.getWinningBids(i):n?t=A.n.getBidsReceived().filter((e=>e.adId===n)):(0,r.JE)("Improper use of markWinningBidAsUsed. It needs an adUnitCode or an adId to function."),t.length>0&&(o?(0,u.n6)(t[0]):A.n.addWinningBid(t[0]),(0,u.qn)(t[0]))},de.getConfig=E.$W.getAnyConfig,de.readConfig=E.$W.readAnyConfig,de.mergeConfig=E.$W.mergeConfig,de.mergeBidderConfig=E.$W.mergeBidderConfig,de.setConfig=E.$W.setConfig,de.setBidderConfig=E.$W.setBidderConfig,de.que.push((()=>b())),de.processQueue=function(){de.que.push=de.cmd.push=Oe,(0,u.XO)(),T.A_.ready(),ke(de.que),ke(de.cmd)},de.triggerBilling=e=>{let{adId:t,adUnitCode:n}=e;A.n.getAllWinningBids().filter((e=>e.adId===t||null==t&&e.adUnitCode===n)).forEach((e=>{j.Ay.triggerBilling(e),(0,u.vB)(e)}))}},7873:(e,t,n)=>{n.d(t,{E:()=>s,m:()=>o});const i=window,r=i.pbjs=i.pbjs||{};function o(){return r}function s(e){r.installedModules.push(e)}r.cmd=r.cmd||[],r.que=r.que||[],i===window&&(i._pbjsGlobals=i._pbjsGlobals||[],i._pbjsGlobals.push("pbjs"))},7934:(e,t,n)=>{n.d(t,{EN:()=>d,gR:()=>s});var i=n(3272),r=n(1069);function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;if(!e)return e;if(/\\w+:\\/\\//.exec(e))return e;let n=t.location.protocol;try{n=t.top.location.protocol}catch(e){}return/^\\/\\//.exec(e)?n+e:`${n}//${e}`}function s(e){let{noLeadingWww:t=!1,noPort:n=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{e=new URL(o(e))}catch(e){return}return e=n?e.hostname:e.host,t&&e.startsWith("www.")&&(e=e.substring(4)),e}function a(e){try{const t=e.querySelector("link[rel=\'canonical\']");if(null!==t)return t.href}catch(e){}return null}const d=function(e){let t,n,i,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;return r.top!==r?e:function(){const o=a(r.document),s=r.location.href;return t===o&&s===n||(t=o,n=s,i=e()),i}}((c=window,function(){const e=[],t=function(e){try{if(!e.location.ancestorOrigins)return;return e.location.ancestorOrigins}catch(e){}}(c),n=i.$W.getConfig("maxNestedIframes");let d,u,l,f,g=!1,p=0,h=!1,m=!1,b=!1;do{const n=d,i=m;let o,s=!1,f=null;m=!1,d=d?d.parent:c;try{o=d.location.href||null}catch(e){s=!0}if(s)if(i){const e=n.context;try{f=e.sourceUrl,u=f,b=!0,h=!0,d===c.top&&(g=!0),e.canonicalUrl&&(l=e.canonicalUrl)}catch(e){}}else{(0,r.JE)("Trying to access cross domain iframe. Continuing without referrer and location");try{const e=n.document.referrer;e&&(f=e,d===c.top&&(g=!0))}catch(e){}!f&&t&&t[p-1]&&(f=t[p-1],d===c.top&&(b=!0)),f&&!h&&(u=f)}else{if(o&&(f=o,u=f,h=!1,d===c.top)){g=!0;const e=a(d.document);e&&(l=e)}d.context&&d.context.sourceUrl&&(m=!0)}e.push(f),p++}while(d!==c.top&&p<n);e.reverse();try{f=c.top.document.referrer}catch(e){}const y=g||b?u:null,v=i.$W.getConfig("pageUrl")||l||null;let E=i.$W.getConfig("pageUrl")||y||o(v,c);return y&&y.indexOf("?")>-1&&-1===E.indexOf("?")&&(E=`${E}${y.substring(y.indexOf("?"))}`),{reachedTop:g,isAmp:h,numIframes:p-1,stack:e,topmostLocation:u||null,location:y,canonicalUrl:v,page:E,domain:s(E)||null,ref:f||null,legacy:{reachedTop:g,isAmp:h,numIframes:p-1,stack:e,referer:u||null,canonicalUrl:v}}}));var c},2938:(e,t,n)=>{n.d(t,{CK:()=>b,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),u=n(8046),l=n(3441);const f="html5",g="cookie";let p=[];function h(){let{moduleName:e,moduleType:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{isAllowed:n=s.io}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};function r(i,r){let s=e;const f=c.$W.getCurrentBidder();f&&t===o.tW&&u.Ay.aliasRegistry[f]===e&&(s=f);return i({valid:n(d.Ue,(0,l.s)(t,s,{[a.Zw]:r}))})}function h(e,t,n){if(!n||"function"!=typeof n)return r(e,t);p.push((function(){let i=r(e,t);n(i)}))}function m(e){const t=e.charAt(0).toUpperCase()+e.substring(1),n=()=>window[e],r=function(t){return h((function(t){if(t&&t.valid)try{return!!n()}catch(t){(0,i.vV)(`${e} api disabled`)}return!1}),f,t)};return{[`has${t}`]:r,[`${e}IsEnabled`]:e=>h((function(e){if(e&&e.valid)try{return n().setItem("prebid.cookieTest","1"),"1"===n().getItem("prebid.cookieTest")}catch(e){}finally{try{n().removeItem("prebid.cookieTest")}catch(e){}}return!1}),f,e),[`setDataIn${t}`]:(e,t,i)=>h((function(i){i&&i.valid&&r()&&n().setItem(e,t)}),f,i),[`getDataFrom${t}`]:(e,t)=>h((function(t){return t&&t.valid&&r()?n().getItem(e):null}),f,t),[`removeDataFrom${t}`]:(e,t)=>h((function(t){t&&t.valid&&r()&&n().removeItem(e)}),f,t)}}return{setCookie:function(e,t,n,i,r,o){return h((function(o){if(o&&o.valid){const o=r&&""!==r?` ;domain=${encodeURIComponent(r)}`:"",s=n&&""!==n?` ;expires=${n}`:"",a=null!=i&&"none"==i.toLowerCase()?"; Secure":"";document.cookie=`${e}=${encodeURIComponent(t)}${s}; path=/${o}${i?`; SameSite=${i}`:""}${a}`}}),g,o)},getCookie:function(e,t){return h((function(t){if(t&&t.valid){let t=window.document.cookie.match("(^|;)\\\\s*"+e+"\\\\s*=\\\\s*([^;]*)\\\\s*(;|$)");return t?decodeURIComponent(t[2]):null}return null}),g,t)},cookiesAreEnabled:function(e){return h((function(e){return!(!e||!e.valid)&&(0,i.GE)()}),g,e)},...m("localStorage"),...m("sessionStorage"),findSimilarCookies:function(e,t){return h((function(t){if(t&&t.valid){const t=[];if((0,i.N9)()){const n=document.cookie.split(";");for(;n.length;){const i=n.pop();let r=i.indexOf("=");r=r<0?i.length:r;decodeURIComponent(i.slice(0,r).replace(/^\\s+/,"")).indexOf(e)>=0&&t.push(decodeURIComponent(i.slice(r+1)))}}return t}}),g,t)}}}function m(){let{moduleType:e,moduleName:t,bidderCode:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};function i(){throw new Error("Invalid invocation for getStorageManager: must set either bidderCode, or moduleType + moduleName")}return n?((e&&e!==o.tW||t)&&i(),e=o.tW,t=n):t&&e||i(),h({moduleType:e,moduleName:t})}function b(e){return h({moduleName:e,moduleType:o.tp})}(0,s.qB)(d.Ue,"deviceAccess config",(function(){if(!(0,i.N9)())return{allow:!1}})),(0,s.qB)(d.Ue,"bidderSettings.*.storageAllowed",(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.u;if(e[a.Dk]!==o.tW)return;let n=t.get(e[a.q7],"storageAllowed");if(n&&!0!==n){const t=e[a.Zw];n=Array.isArray(n)?n.some((e=>e===t)):n===t}else n=!!n;return n?void 0:{allow:n}}))},7779:(e,t,n)=>{n.d(t,{Yl:()=>T,iS:()=>O,uW:()=>I});var i=n(6881),r=n(7863),o=n(2693),s=n(3272),a=n(8969),d=n(5023),c=n(9214),u=n(1371),l=n(2449),f=n(5901),g=n(1069),p=n(433),h=n(2713),m=[];const b=20,y="targetingControls.allowTargetingKeys",v="targetingControls.addTargetingKeys",E=`Only one of "${y}" or "${v}" can be set`,A=Object.keys(a.xS).map((e=>a.xS[e]));let I={isActualBid:e=>e.getStatusCode()===a.XQ.GOOD,isBidNotExpired:e=>e.responseTimestamp+1e3*(0,r.cT)(e)>(0,g.vE)(),isUnusedBid:e=>e&&(e.status&&!(0,f.mK)([a.tl.RENDERED],e.status)||!e.status)};function T(e){return!Object.values(I).some((t=>!t(e)))}const w=(0,c.A_)("sync",(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.Q0;if(!i){const i=[],o=s.$W.getConfig("sendBidsControl.dealPrioritization");let a=(0,g.$z)(e,"adUnitCode");return Object.keys(a).forEach((e=>{let s=[],d=(0,g.$z)(a[e],"bidderCode");Object.keys(d).forEach((e=>{s.push(d[e].reduce(t))})),n?(s=o?s.sort(C(!0)):s.sort(((e,t)=>t.cpm-e.cpm)),i.push(...s.slice(0,n))):(s=s.sort(r),i.push(...s))})),i}return e}));function C(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return function(t,n){return void 0!==t.adserverTargeting.hb_deal&&void 0===n.adserverTargeting.hb_deal?-1:void 0===t.adserverTargeting.hb_deal&&void 0!==n.adserverTargeting.hb_deal?1:e?n.cpm-t.cpm:n.adserverTargeting.hb_pb-t.adserverTargeting.hb_pb}}function B(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>window.googletag.pubads().getSlots())().reduce(((e,n)=>{const i=(0,g.fp)(t)&&t(n);return Object.keys(e).filter((0,g.fp)(i)?i:(0,g.iC)(n)).forEach((t=>e[t].push(n))),e}),Object.fromEntries(e.map((e=>[e,[]]))))}const O=function(e){let t={},n={};function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const i=A.concat(l.Nh),r=s.$W.getConfig("targetingControls.allowSendAllBidsTargetingKeys"),o=r?r.map((e=>a.xS[e])):i;return e.reduce(((e,r)=>{if(t||n&&r.dealId){const t=function(e,t){return t.reduce(((t,n)=>(e.adserverTargeting[n]&&t.push({[`${n}_${e.bidderCode}`.substring(0,20)]:[e.adserverTargeting[n]]}),t)),[])}(r,i.filter((e=>void 0!==r.adserverTargeting[e]&&(n||-1!==o.indexOf(e)))));t&&e.push({[r.adUnitCode]:t})}return e}),[])}function r(t){return"string"==typeof t?[t]:(0,g.cy)(t)?t:e.getAdUnitCodes()||[]}function I(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h.Bq,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=e.getBidsReceived().reduce(((e,t)=>{const i=s.$W.getConfig("useBidCache"),r=s.$W.getConfig("bidCacheFilterFunction"),o=n[t.adUnitCode]===t.auctionId,a=!(i&&!o&&"function"==typeof r)||!!r(t);return(i||o)&&a&&(0,p.A)(t,"video.context")!==u.LM&&T(t)&&(t.latestTargetedAuctionId=n[t.adUnitCode],e.push(t)),e}),[]);return w(r,t,void 0,void 0,void 0,i)}function O(){return e.getStandardBidderAdServerTargeting().map((e=>e.key)).concat(A).filter(g.hj)}return t.setLatestAuctionForAdUnit=function(e,t){n[e]=t},t.resetPresetTargeting=function(e,t){if((0,g.II)()){const n=r(e);Object.values(B(n,t)).forEach((e=>{e.forEach((e=>{!function(e){m.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=>{(0,f.mK)(m,e.toLowerCase())||(i[e]=t.keywords[e])})),window.apntag.modifyTag(e,{keywords:i})}}))},t.getAllTargeting=function(t,n,d){let c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:h.Vk,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.Q0;d||=I(c,u);const A=r(t),T=s.$W.getConfig("enableSendAllBids"),B=s.$W.getConfig("sendBidsControl.bidLimit"),k=T&&(n||B)||0,{customKeysByUnit:R,filteredBids:S}=function(e,t){const n=[],i={},r=s.$W.getConfig("targetingControls.alwaysIncludeDeals");return t.forEach((t=>{const s=(0,f.mK)(e,t.adUnitCode),a=!0===o.u.get(t.bidderCode,"allowZeroCpmBids")?t.cpm>=0:t.cpm>0,d=r&&t.dealId;s&&(d||a)&&(n.push(t),Object.keys(t.adserverTargeting).filter(function(){let e=O();e=e.concat(l.Nh);return function(t){return-1===e.indexOf(t)}}()).forEach((e=>{const n=e.substring(0,b),r=i[t.adUnitCode]||{},o=[t.adserverTargeting[e]];r[n]?r[n]=r[n].concat(o).filter(g.hj):r[n]=o,i[t.adUnitCode]=r})))})),{filteredBids:n,customKeysByUnit:i}}(A,d);let D=function(t,n){const r=function(e){let t=[],n=e.reduce(((e,n)=>((0,f.mK)(t,n.adUnitCode)||(e.push(n),t.push(n.adUnitCode)),e)),[]),i=O();return n=n.map((e=>({[e.adUnitCode]:Object.keys(e.adserverTargeting).filter((t=>void 0===e.sendStandardTargeting||e.sendStandardTargeting||-1===i.indexOf(t))).reduce(((t,n)=>{const i=[e.adserverTargeting[n]],r={[n.substring(0,b)]:i};if(n===a.xS.DEAL){const o=`${n}_${e.bidderCode}`.substring(0,b),s={[o]:i};return[...t,r,s]}return[...t,r]}),[])}))),n}(t).concat(function(e,t){return e.reduce(((e,n)=>{const i=Object.assign({},n),r=t[i.adUnitCode],o=[];return r&&Object.keys(r).forEach((e=>{e&&r[e]&&o.push({[e]:r[e]})})),e.push({[i.adUnitCode]:o}),e}),[])}(t,n)).concat(function(e){const t=s.$W.getConfig("targetingControls.alwaysIncludeDeals");return i(e,s.$W.getConfig("enableSendAllBids"),t)}(t)).concat(function(){function t(e){return(0,p.A)(e,a.iD.ADSERVER_TARGETING)}function n(e){const n=t(e);return Object.keys(n).map((function(e){return(0,g.O8)(n[e])&&(n[e]=n[e].split(",").map((e=>e.trim()))),(0,g.cy)(n[e])||(n[e]=[n[e]]),{[e]:n[e]}}))}return e.getAdUnits().filter((e=>t(e))).reduce(((e,t)=>{const i=n(t);return i&&e.push({[t.code]:i}),e}),[])}());return r.forEach((e=>{!function(e){Object.keys(e).forEach((t=>{e[t].forEach((e=>{const t=Object.keys(e);-1===m.indexOf(t[0])&&(m=t.concat(m))}))}))}(e)})),r}(w(S,c,k,void 0,u),R);const U=Object.keys(Object.assign({},a.Zh,a.x5));let _=s.$W.getConfig(y);const j=s.$W.getConfig(v);if(null!=j&&null!=_)throw new Error(E);_=null!=j?U.concat(j):_||U,Array.isArray(_)&&_.length>0&&(D=function(e,t){const n=Object.assign({},a.xS,a.x5),i=Object.keys(n),r={};(0,g.fH)(`allowTargetingKeys - allowed keys [ ${t.map((e=>n[e])).join(", ")} ]`),e.map((e=>{const o=Object.keys(e)[0],s=e[o].filter((e=>{const o=Object.keys(e)[0],s=0===i.filter((e=>0===o.indexOf(n[e]))).length||(0,f.I6)(t,(e=>{const t=n[e];return 0===o.indexOf(t)}));return r[o]=!s,s}));e[o]=s}));const o=Object.keys(r).filter((e=>r[e]));return(0,g.fH)(`allowTargetingKeys - removed keys [ ${o.join(", ")} ]`),e.filter((e=>e[Object.keys(e)[0]].length>0))}(D,_)),D=function(e){let t=e.map((e=>({[Object.keys(e)[0]]:e[Object.keys(e)[0]].map((e=>({[Object.keys(e)[0]]:e[Object.keys(e)[0]].join(",")}))).reduce(((e,t)=>Object.assign(t,e)),{})})));return t=t.reduce((function(e,t){var n=Object.keys(t)[0];return e[n]=Object.assign({},e[n],t[n]),e}),{}),t}(D);const $=s.$W.getConfig("targetingControls.auctionKeyMaxChars");return $&&((0,g.fH)(`Detected \'targetingControls.auctionKeyMaxChars\' was active for this auction; set with a limit of ${$} characters. Running checks on auction keys...`),D=function(e,t){let n=(0,g.Go)(e),i=Object.keys(n).map((e=>({adUnitCode:e,adserverTargeting:n[e]}))).sort(C());return i.reduce((function(e,i,r,o){let s=(a=i.adserverTargeting,Object.keys(a).reduce((function(e,t){return e+`${t}%3d${encodeURIComponent(a[t])}%26`}),""));var a;r+1===o.length&&(s=s.slice(0,-3));let d=i.adUnitCode,c=s.length;return c<=t?(t-=c,(0,g.fH)(`AdUnit \'${d}\' auction keys comprised of ${c} characters. Deducted from running threshold; new limit is ${t}`,n[d]),e[d]=n[d]):(0,g.JE)(`The following keys for adUnitCode \'${d}\' exceeded the current limit of the \'auctionKeyMaxChars\' setting.\\nThe key-set size was ${c}, the current allotted amount was ${t}.\\n`,n[d]),r+1===o.length&&0===Object.keys(e).length&&(0,g.vV)("No auction targeting keys were permitted due to the setting in setConfig(targetingControls.auctionKeyMaxChars). Please review setup and consider adjusting."),e}),{})}(D,$)),A.forEach((e=>{D[e]||(D[e]={})})),D},s.$W.getConfig("targetingControls",(function(e){null!=(0,p.A)(e,y)&&null!=(0,p.A)(e,v)&&(0,g.vV)(E)})),t.setTargetingForGPT=(0,c.A_)("sync",(function(n,i){let r=t.getAllTargeting(n),o=Object.fromEntries(m.map((e=>[e,null])));Object.entries(B(Object.keys(r),i)).forEach((e=>{let[t,n]=e;n.forEach((e=>{Object.keys(r[t]).forEach((e=>{let n=r[t][e];"string"==typeof n&&-1!==n.indexOf(",")&&(n=n.split(",")),r[t][e]=n})),(0,g.OG)(`Attempting to set targeting-map for slot: ${e.getSlotElementId()} with targeting-map:`,r[t]),e.updateTargetingFromMap(Object.assign({},o,r[t]))}))})),Object.keys(r).forEach((t=>{Object.keys(r[t]).forEach((n=>{"hb_adid"===n&&e.setStatusForBids(r[t][n],a.tl.BID_TARGETING_SET)}))})),t.targetingDone(r),d.Ic(a.qY.SET_TARGETING,r)}),"setTargetingForGPT"),t.targetingDone=(0,c.A_)("sync",(function(e){return e}),"targetingDone"),t.getWinningBids=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.Vk,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:g.Q0;const a=[],d=t||I(n,i),c=r(e);return d.reduce(((e,t)=>{const n=t.adUnitCode,i=!0===o.u.get(n,"allowZeroCpmBids")?t.cpm>=0:t.cpm>0,r=s.$W.getConfig("targetingControls.alwaysIncludeDeals")&&t.dealId;return(0,f.mK)(c,n)&&!(0,f.mK)(a,n)&&(r||i)&&(e.push(t),a.push(n)),e}),[])},t.setTargetingForAst=function(e){let n=t.getAllTargeting(e);try{t.resetPresetTargetingAST(e)}catch(e){(0,g.vV)("unable to reset targeting for AST"+e)}Object.keys(n).forEach((e=>Object.keys(n[e]).forEach((t=>{if((0,g.OG)(`Attempting to set targeting for targetId: ${e} key: ${t} value: ${n[e][t]}`),(0,g.O8)(n[e][t])||(0,g.cy)(n[e][t])){let i={},r=/pt[0-9]/;t.search(r)<0?i[t.toUpperCase()]=n[e][t]:i[t]=n[e][t],window.apntag.setKeywords(e,i,{overrideKeyValue:!0})}}))))},t.isApntagDefined=function(){if(window.apntag&&(0,g.fp)(window.apntag.setKeywords))return!0},t}(i.n)},8230:(e,t,n)=>{n.d(t,{zt:()=>g});var i=n(1069),r=n(3272),o=n(5901),s=n(2938),a=n(5139),d=n(6811),c=n(2604),u=n(5569),l=n(3441);r.$W.setDefaults({userSync:(0,i.Go)({syncEnabled:!0,filterSettings:{image:{bidders:"*",filter:"include"}},syncsPerBidder:5,syncDelay:3e3,auctionDelay:500})});const f=(0,s.CK)("usersync");const g=function(e){let t={},n={image:[],iframe:[]},s=new Set,a={},f={image:!0,iframe:!1},g=e.config;function p(){if(g.syncEnabled&&e.browserSupportsCookies){try{!function(){if(!f.iframe)return;h(n.iframe,(e=>{let[t,r]=e;(0,i.OG)(`Invoking iframe user sync for bidder: ${t}`),(0,i.SG)(r),function(e,t){e.image=e.image.filter((e=>e[0]!==t))}(n,t)}))}(),function(){if(!f.image)return;h(n.image,(e=>{let[t,n]=e;(0,i.OG)(`Invoking image pixel user sync for bidder: ${t}`),(0,i.z$)(n)}))}()}catch(e){return(0,i.vV)("Error firing user syncs",e)}n={image:[],iframe:[]}}}function h(e,t){(0,i.k4)(e).forEach(t)}function m(e,t){let n=g.filterSettings;if(function(e,t){if(e.all&&e[t])return(0,i.JE)(`Detected presence of the "filterSettings.all" and "filterSettings.${t}" in userSync config. You cannot mix "all" with "iframe/image" configs; they are mutually exclusive.`),!1;let n=e.all?e.all:e[t],r=e.all?"all":t;if(!n)return!1;let o=n.filter,s=n.bidders;if(o&&"include"!==o&&"exclude"!==o)return(0,i.JE)(`UserSync "filterSettings.${r}.filter" setting \'${o}\' is not a valid option; use either \'include\' or \'exclude\'.`),!1;if("*"!==s&&!(Array.isArray(s)&&s.length>0&&s.every((e=>(0,i.O8)(e)&&"*"!==e))))return(0,i.JE)(`Detected an invalid setup in userSync "filterSettings.${r}.bidders"; use either \'*\' (to represent all bidders) or an array of bidders.`),!1;return!0}(n,e)){f[e]=!0;let i=n.all?n.all:n[e],r="*"===i.bidders?[t]:i.bidders;const s={include:(e,t)=>!(0,o.mK)(e,t),exclude:(e,t)=>(0,o.mK)(e,t)};return s[i.filter||"include"](r,t)}return!f[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"}))}g=Object.assign(g,e.userSync)})),e.regRule(d.Ml,"userSync config",(e=>{if(!g.syncEnabled)return{allow:!1,reason:"syncs are disabled"};if(e[c.Dk]===u.tW){const n=e[c.bt],i=e[c.iK];if(!t.canBidderRegisterSync(n,i))return{allow:!1,reason:`${n} syncs are not enabled for ${i}`}}})),t.registerSync=(t,r,o)=>s.has(r)?(0,i.OG)(`already fired syncs for "${r}", ignoring registerSync call`):g.syncEnabled&&(0,i.cy)(n[t])?r?0!==g.syncsPerBidder&&Number(a[r])>=g.syncsPerBidder?(0,i.JE)(`Number of user syncs exceeded for "${r}"`):void(e.isAllowed(d.Ml,(0,l.s)(u.tW,r,{[c.bt]:t,[c.e3]:o}))&&(n[t].push([r,o]),a=function(e,t){return e[t]?e[t]+=1:e[t]=1,e}(a,r))):(0,i.JE)("Bidder is required for registering sync"):(0,i.JE)(`User sync type "${t}" not supported`),t.bidderDone=s.add.bind(s),t.syncUsers=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(e)return setTimeout(p,Number(e));p()},t.triggerUserSyncs=()=>{g.enableOverride&&t.syncUsers()},t.canBidderRegisterSync=(e,t)=>!g.filterSettings||!m(e,t),t}(Object.defineProperties({config:r.$W.getConfig("userSync"),isAllowed:a.io,regRule:a.qB},{browserSupportsCookies:{get:function(){return!(0,i.Vt)()&&f.cookiesAreEnabled()}}}))},1069:(e,t,n)=>{n.d(t,{$D:()=>S,$z:()=>Be,Bg:()=>Fe,Bj:()=>Ge,Bq:()=>ue,CA:()=>H,D4:()=>le,D9:()=>Ve,Dl:()=>Ne,El:()=>He,Et:()=>Y,Ez:()=>L,Fq:()=>je,GE:()=>we,Go:()=>be,II:()=>ge,Im:()=>ee,JE:()=>W,Lm:()=>Z,N9:()=>Te,O8:()=>K,OG:()=>x,PB:()=>Me,Q0:()=>he,Qd:()=>X,SB:()=>Re,SG:()=>ae,SH:()=>Oe,Tz:()=>de,U6:()=>Ce,Up:()=>$e,Uu:()=>qe,V:()=>Ie,Vt:()=>ve,ZA:()=>fe,_s:()=>ie,al:()=>ye,bL:()=>R,bu:()=>ne,bz:()=>_e,c$:()=>We,cD:()=>I,cy:()=>Q,fH:()=>N,fp:()=>J,gM:()=>Ee,h0:()=>V,hj:()=>ce,hw:()=>F,iC:()=>Ue,k4:()=>me,kK:()=>D,l4:()=>$,l9:()=>Se,lk:()=>k,mM:()=>w,mb:()=>j,ro:()=>se,s0:()=>O,t1:()=>pe,vE:()=>Ae,vV:()=>P,wD:()=>ke,xQ:()=>te,z$:()=>oe});var i=n(3272),r=n(5751),o=n(5901),s=n(8969),a=n(5555),d=n(7873),c="String",u="Function",l="Number",f="Object",g="Boolean",p=Object.prototype.toString;let 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,d.m)();function I(e){h=e}function T(){null!=h&&h(...arguments)}const w={checkCookieSupport:we,createTrackPixelIframeHtml:function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(!e)return"";t&&(e=encodeURI(e));n&&(n=`sandbox="${n}"`);return`<iframe ${n} id="${O()}"\\n frameborder="0"\\n allowtransparency="true"\\n marginheight="0" marginwidth="0"\\n width="0" hspace="0" vspace="0" height="0"\\n style="height:0px;width:0px;display:none;"\\n scrolling="no"\\n src="${e}">\\n </iframe>`},getWindowSelf:$,getWindowTop:j,canAccessWindowTop:function(){try{if(w.getWindowTop().location.href)return!0}catch(e){return!1}},getWindowLocation:q,insertUserSyncIframe:ae,insertElement:ie,isFn:J,triggerPixel:oe,logError:P,logWarn:W,logMessage:x,logInfo:N,parseQS:xe,formatQS:function(e){return Object.keys(e).map((t=>Array.isArray(e[t])?e[t].map((e=>`${t}[]=${e}`)).join("&"):`${t}=${e[t]}`)).join("&")},deepEqual:Pe};var C,B=(C=0,function(){return++C});function O(){return B()+Math.random().toString(16).substr(2)}function k(e){return e?(e^(window&&window.crypto&&window.crypto.getRandomValues?crypto.getRandomValues(new Uint8Array(1))[0]%16:16*Math.random())>>e/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,k)}function R(e){let t="";for(var n in e)e.hasOwnProperty(n)&&(t+=n+"="+encodeURIComponent(e[n])+"&");return t=t.replace(/&$/,""),t}function S(e){return e&&Object.getOwnPropertyNames(e).length>0?Object.keys(e).map((t=>`${t}=${encodeURIComponent(e[t])}`)).join("&"):""}function D(e){return(t=e,"string"==typeof t?t.split(/\\s*,\\s*/).map((e=>e.match(/^(\\d+)x(\\d+)$/i))).filter((e=>e)).map((e=>{let[t,n,i]=e;return[parseInt(n,10),parseInt(i,10)]})):Array.isArray(t)?_(t)?[t]:t.filter(_):[]).map(U);var t}function U(e){return e[0]+"x"+e[1]}function _(e){return Q(e)&&2===e.length&&!isNaN(e[0])&&!isNaN(e[1])}function j(){return window.top}function $(){return window.self}function q(){return window.location}function x(){G()&&b&&console.log.apply(console,M(arguments,"MESSAGE:"))}function N(){G()&&y&&console.info.apply(console,M(arguments,"INFO:"))}function W(){G()&&v&&console.warn.apply(console,M(arguments,"WARNING:")),T(s.qY.AUCTION_DEBUG,{type:"WARNING",arguments})}function P(){G()&&E&&console.error.apply(console,M(arguments,"ERROR:")),T(s.qY.AUCTION_DEBUG,{type:"ERROR",arguments})}function V(e){function t(t){return function(){for(var n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];t(e,...i)}}return{logError:t(P),logWarn:t(W),logMessage:t(x),logInfo:t(N)}}function M(e,t){e=[].slice.call(e);let n=i.$W.getCurrentBidder();return t&&e.unshift(t),n&&e.unshift(r("#aaa")),e.unshift(r("#3b88c3")),e.unshift("%cPrebid"+(n?`%c${n}`:"")),e;function r(e){return`display: inline-block; color: #fff; background: ${e}; padding: 1px 4px; border-radius: 3px;`}}function G(){return!!i.$W.getConfig("debug")}const F=(()=>{const e={border:"0px",hspace:"0",vspace:"0",marginWidth:"0",marginHeight:"0",scrolling:"no",frameBorder:"0",allowtransparency:"true"};return function(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=t.createElement("iframe");return Object.assign(r,Object.assign({},e,n)),Object.assign(r.style,i),r}})();function H(){return F(document,{id:O(),width:0,height:0,src:"about:blank"},{display:"none",height:"0px",width:"0px",border:"0px"})}function L(e){return xe(q().search)[e]||""}function z(e,t){return p.call(e)==="[object "+t+"]"}function J(e){return z(e,u)}function K(e){return z(e,c)}const Q=Array.isArray.bind(Array);function Y(e){return z(e,l)}function X(e){return z(e,f)}function Z(e){return z(e,g)}function ee(e){return!e||(Q(e)||K(e)?!(e.length>0):Object.keys(e).length<=0)}function te(e){return K(e)&&(!e||0===e.length)}function ne(e,t){if(J(e?.forEach))return e.forEach(t,this);Object.entries(e||{}).forEach((e=>{let[n,i]=e;return t.call(this,i,n)}))}function ie(e,t,n,i){let r;t=t||document,r=n?t.getElementsByTagName(n):t.getElementsByTagName("head");try{if(r=r.length?r:t.getElementsByTagName("body"),r.length){r=r[0];let t=i?null:r.firstChild;return r.insertBefore(e,t)}}catch(e){}}function re(e,t){let n=null;return new a.k((i=>{const r=function(){e.removeEventListener("load",r),e.removeEventListener("error",r),null!=n&&window.clearTimeout(n),i()};e.addEventListener("load",r),e.addEventListener("error",r),null!=t&&(n=window.setTimeout(r,t))}))}function oe(e,t,n){const i=new Image;t&&w.isFn(t)&&re(i,n).then(t),i.src=e}function se(e){if(!e)return;const t=H();var n;w.insertElement(t,document,"body"),(n=t.contentWindow.document).open(),n.write(e),n.close()}function ae(e,t,n){let i=w.createTrackPixelIframeHtml(e,!1,"allow-scripts allow-same-origin"),r=document.createElement("div");r.innerHTML=i;let o=r.firstChild;t&&w.isFn(t)&&re(o,n).then(t),w.insertElement(o,document,"html",!0)}function de(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:encodeURI;if(!e)return"";let n=\'<div style="position:absolute;left:0px;top:0px;visibility:hidden;">\';return n+=\'<img src="\'+t(e)+\'"></div>\',n}function ce(e,t,n){return n.indexOf(e)===t}function ue(e,t){return e.concat(t)}function le(e,t){if(e)return t.flatMap((e=>e.bids)).find((t=>["bidId","adId","bid_id"].some((n=>t[n]===e))))}function fe(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:A.adUnits).map((e=>e.bids.map((e=>e.bidder)).reduce(ue,[]))).reduce(ue,[]).filter((e=>void 0!==e)).filter(ce)}function ge(){if(window.googletag&&J(window.googletag.pubads)&&J(window.googletag.pubads().getSlots))return!0}function pe(){if(window.apntag&&J(window.apntag.getTag))return!0}const he=(e,t)=>t.cpm-e.cpm;function me(e){let t=e.length;for(;t>0;){let n=Math.floor(Math.random()*t);t--;let i=e[t];e[t]=e[n],e[n]=i}return e}function be(e){return(0,r.Q)(e)||{}}function ye(){try{return w.getWindowSelf()!==w.getWindowTop()}catch(e){return!0}}function ve(){return/^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent)}function Ee(e,t){if(e)return Object.entries(t).reduce(((e,t)=>{let[n,i]=t;return e.replace(new RegExp("\\\\$\\\\{"+n+"\\\\}","g"),i||"")}),e)}function Ae(){return(new Date).getTime()}function Ie(){return window.performance&&window.performance.now&&window.performance.now()||0}function Te(){return!1!==i.$W.getConfig("deviceAccess")}function we(){if(window.navigator.cookieEnabled||document.cookie.length)return!0}function Ce(e,t){if(t<1)throw new Error(`numRequiredCalls must be a positive number. Got ${t}`);let n=0;return function(){n++,n===t&&e.apply(this,arguments)}}function Be(e,t){return e.reduce((function(e,n){return(e[n[t]]=e[n[t]]||[]).push(n),e}),{})}function Oe(e,t){return t.filter((t=>e[t])).reduce(((t,n)=>Object.assign(t,{[n]:e[n]})),{})}function ke(e){const t=["banner","native","video"],n=["instream","outstream","adpod"];return!!Object.keys(e).every((e=>(0,o.mK)(t,e)))&&(!e.video||!e.video.context||(0,o.mK)(n,e.video.context))}function Re(e,t,n){return e.filter((e=>e.code===t)).flatMap((e=>e.bids)).filter((e=>e.bidder===n)).map((e=>e.params||{}))}function Se(){return"1"===navigator.doNotTrack||"1"===window.doNotTrack||"1"===navigator.msDoNotTrack||"yes"===navigator.doNotTrack}const De=(e,t)=>e.getAdUnitPath()===t||e.getSlotElementId()===t;function Ue(e){return t=>De(e,t)}function _e(e,t){const n=Object.keys(e.mediaTypes||{banner:"banner"}).join(", ");return`\\n ${e.code} is a ${n} ad unit\\n containing bidders that don\'t support ${n}: ${t}.\\n This bidder won\'t fetch demand.\\n `}const je=Number.isInteger.bind(Number);function $e(e,t){return"object"!=typeof e?{}:t.reduce(((n,i,r)=>{if("function"==typeof i)return n;let o=i,s=i.match(/^(.+?)\\sas\\s(.+?)$/i);s&&(i=s[1],o=s[2]);let a=e[i];return"function"==typeof t[r+1]&&(a=t[r+1](a,n)),void 0!==a&&(n[o]=a),n}),{})}function qe(e,t){return Q(e)&&(!t||e.length===t)&&e.every((e=>je(e)))}function xe(e){return e?e.replace(/^\\?/,"").split("&").reduce(((e,t)=>{let[n,i]=t.split("=");return/\\[\\]$/.test(n)?(n=n.replace("[]",""),e[n]=e[n]||[],e[n].push(i)):e[n]=i||"",e}),{}):{}}function Ne(e,t){let n=document.createElement("a");t&&"noDecodeWholeURL"in t&&t.noDecodeWholeURL?n.href=e:n.href=decodeURIComponent(e);let i=t&&"decodeSearchAsString"in t&&t.decodeSearchAsString;return{href:n.href,protocol:(n.protocol||"").replace(/:$/,""),hostname:n.hostname,port:+n.port,pathname:n.pathname.replace(/^(?!\\/)/,"/"),search:i?n.search:w.parseQS(n.search||""),hash:(n.hash||"").replace(/^#/,""),host:n.host||window.location.host}}function We(e){return(e.protocol||"http")+"://"+(e.host||e.hostname+(e.port?`:${e.port}`:""))+(e.pathname||"")+(e.search?`?${w.formatQS(e.search||"")}`:"")+(e.hash?`#${e.hash}`:"")}function Pe(e,t){let{checkTypes:n=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t||n&&e.constructor!==t.constructor)return!1;{const i=Object.keys(e);if(i.length!==Object.keys(t).length)return!1;for(let r of i){if(!t.hasOwnProperty(r))return!1;if(!Pe(e[r],t[r],{checkTypes:n}))return!1}return!0}}function Ve(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(!n.length)return e;const r=n.shift();if(X(e)&&X(r))for(const t in r)X(r[t])?(e[t]||Object.assign(e,{[t]:{}}),Ve(e[t],r[t])):Q(r[t])?e[t]?Q(e[t])&&r[t].forEach((n=>{let i=1;for(let r=0;r<e[t].length;r++)if(Pe(e[t][r],n)){i=0;break}i&&e[t].push(n)})):Object.assign(e,{[t]:[...r[t]]}):Object.assign(e,{[t]:r[t]});return Ve(e,...n)}function Me(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=function(e,t){if(J(Math.imul))return Math.imul(e,t);var n=(4194303&e)*(t|=0);return 4290772992&e&&(n+=(4290772992&e)*t|0),0|n},i=3735928559^t,r=1103547991^t;for(let t,o=0;o<e.length;o++)t=e.charCodeAt(o),i=n(i^t,2654435761),r=n(r^t,1597334677);return i=n(i^i>>>16,2246822507)^n(r^r>>>13,3266489909),r=n(r^r>>>16,2246822507)^n(i^i>>>13,3266489909),(4294967296*(2097151&r)+(i>>>0)).toString()}function Ge(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e};const n=new Map,i=function(){const i=t.apply(this,arguments);return n.has(i)||n.set(i,e.apply(this,arguments)),n.get(i)};return i.clear=n.clear.bind(n),i}function Fe(e,t){Object.entries(t).forEach((t=>{let[n,i]=t;return e.setAttribute(n,i)}))}function He(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e=>e,i=0,r=e.length&&e.length-1;const o=n(t);for(;r-i>1;){const t=i+Math.round((r-i)/2);o>n(e[t])?i=t:r=t}for(;e.length>i&&o>n(e[i]);)i++;return i}},2621:(e,t,n)=>{function i(e){return!e?.gdprApplies||!0===e?.vendorData?.purpose?.consents?.[1]}n.d(t,{C:()=>i})},6894:(e,t,n)=>{n.d(t,{BO:()=>g,K7:()=>p});var i=n(3272);const r="performanceMetrics",o=window.performance&&window.performance.now?()=>window.performance.now():()=>Date.now(),s=new WeakMap;function a(){let{now:e=o,mkNode:t=u,mkTimer:n=c,mkRenamer:i=(e=>e),nodes:r=s}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(){return function o(s){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>({forEach(t){t(e)}});a=i(a);const d=(c="timestamps",function(e){return s.dfWalk({visit(t,n){const i=n[c];if(i.hasOwnProperty(e))return i[e]}})});var c;function u(e,t){const n=a(e);s.dfWalk({follow:(e,t)=>t.propagate&&(!e||!e.stopPropagation),visit(e,i){n.forEach((n=>{null==e?i.metrics[n]=t:(i.groups.hasOwnProperty(n)||(i.groups[n]=[]),i.groups[n].push(t))}))}})}function l(t){return n(e,(e=>u(t,e)))}function f(){let e={};return s.dfWalk({visit(t,n){e=Object.assign({},!t||t.includeGroups?n.groups:null,n.metrics,e)}}),e}const g={startTiming:l,measureTime:function(e,t){return l(e).stopAfter(t)()},measureHookTime:function(e,t,n){const i=l(e);return n(function(e){const t=i.stopBefore(e);return t.bail=e.bail&&i.stopBefore(e.bail),t.stopTiming=i,t.untimed=e,t}(t))},checkpoint:function(t){s.timestamps[t]=e()},timeSince:function(t,n){const i=d(t),r=null!=i?e()-i:null;return null!=n&&u(n,r),r},timeBetween:function(e,t,n){const i=d(e),r=d(t),o=null!=i&&null!=r?r-i:null;return null!=n&&u(n,o),o},setMetric:u,getMetrics:f,fork:function(){let{propagate:e=!0,stopPropagation:n=!1,includeGroups:i=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o(t([[s,{propagate:e,stopPropagation:n,includeGroups:i}]]),a)},join:function(e){let{propagate:t=!0,stopPropagation:n=!1,includeGroups:i=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=r.get(e);null!=o&&o.addParent(s,{propagate:t,stopPropagation:n,includeGroups:i})},newMetrics:function(){return o(s.newSibling(),a)},renameWith:function(e){return o(s,e)},toJSON:()=>f()};return r.set(g,s),g}(t([]))}}function d(e,t,n){return function(){t&&t();try{return e.apply(this,arguments)}finally{n&&n()}}}function c(e,t){const n=e();let i=!1;function r(){i||(t(e()-n),i=!0)}return r.stopBefore=e=>d(e,r),r.stopAfter=e=>d(e,null,r),r}function u(e){return{metrics:{},timestamps:{},groups:{},addParent(t,n){e.push([t,n])},newSibling:()=>u(e.slice()),dfWalk(){let t,{visit:n,follow:i=(()=>!0),visited:r=new Set,inEdge:o}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!r.has(this)){if(r.add(this),t=n(o,this),null!=t)return t;for(const[s,a]of e)if(i(o,a)&&(t=s.dfWalk({visit:n,follow:i,visited:r,inEdge:a}),null!=t))return t}}}}const l=(()=>{const e=function(){},t=()=>({}),n={forEach:e},i=()=>null;i.stopBefore=e=>e,i.stopAfter=e=>e;const r=Object.defineProperties({dfWalk:e,newSibling:()=>r,addParent:e},Object.fromEntries(["metrics","timestamps","groups"].map((e=>[e,{get:t}]))));return a({now:()=>0,mkNode:()=>r,mkRenamer:()=>()=>n,mkTimer:()=>i,nodes:{get:e,set:e}})()})();let f=!0;function g(e){return f&&e||l}i.$W.getConfig(r,(e=>{f=!!e[r]}));const p=(()=>{const e=a();return function(){return f?e():l}})();function h(e,t){return function(n,i){return function(r){for(var o=arguments.length,s=new Array(o>1?o-1:0),a=1;a<o;a++)s[a-1]=arguments[a];const d=this;return g(t.apply(d,s)).measureHookTime(e+n,r,(function(e){return i.call(d,e,...s)}))}}}h("requestBids.",(e=>e.metrics)),h("addBidResponse.",((e,t)=>t.metrics))},5555:(e,t,n)=>{n.d(t,{k:()=>o,v:()=>s});const i=0,r=1;class o{#d;#c;static timeout(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new o((t=>{0===e?t():setTimeout(t,e)}))}constructor(e){if("function"!=typeof e)throw new Error("resolver not a function");const t=[],n=[];let[o,s]=[i,r].map((e=>function(r){if(e===i&&"function"==typeof r?.then)r.then(o,s);else if(!t.length)for(t.push(e,r);n.length;)n.shift()()}));try{e(o,s)}catch(e){s(e)}this.#d=t,this.#c=n}then(e,t){const n=this.#d;return new this.constructor(((r,o)=>{const s=()=>{let s=n[1],[a,d]=n[0]===i?[e,r]:[t,o];if("function"==typeof a){try{s=a(s)}catch(e){return void o(e)}d=r}d(s)};n.length?s():this.#c.push(s)}))}catch(e){return this.then(null,e)}finally(e){let t;return this.then((n=>(t=n,e())),(n=>(t=this.constructor.reject(n),e()))).then((()=>t))}static#u(e,t,n){let i=e.length;function r(){t.apply(this,arguments),--i<=0&&n&&n()}0===e.length&&n?n():e.forEach(((e,t)=>this.resolve(e).then((e=>r(!0,e,t)),(e=>r(!1,e,t)))))}static race(e){return new this(((t,n)=>{this.#u(e,((e,i)=>e?t(i):n(i)))}))}static all(e){return new this(((t,n)=>{let i=[];this.#u(e,((e,t,r)=>e?i[r]=t:n(t)),(()=>t(i)))}))}static allSettled(e){return new this((t=>{let n=[];this.#u(e,((e,t,i)=>n[i]=e?{status:"fulfilled",value:t}:{status:"rejected",reason:t}),(()=>t(n)))}))}static resolve(e){return new this((t=>t(e)))}static reject(e){return new this(((t,n)=>n(e)))}}function s(){let e,t,{promiseFactory:n=(e=>new o(e))}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};function i(e){return t=>e(t)}return{promise:n(((n,i)=>{e=n,t=i})),resolve:i(e),reject:i(t)}}},2713:(e,t,n)=>{function i(e,t){return e===t?0:e<t?-1:1}function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e=>e;return(t,n)=>i(e(t),e(n))}function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;return(t,n)=>-e(t,n)||0}function s(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e,n){for(const i of t){const t=i(e,n);if(0!==t)return t}return 0}}function a(){return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;return(t,n)=>e(n,t)<0?n:t}(o(arguments.length>0&&void 0!==arguments[0]?arguments[0]:i))}n.d(t,{Bq:()=>l,Vk:()=>u});const d=r((e=>e.cpm)),c=r((e=>e.responseTimestamp)),u=a(s(d,o(r((e=>e.timeToRespond))))),l=a(s(d,o(c)));a(s(d,c))},6853:(e,t,n)=>{n.d(t,{H:()=>u});var i=n(5555),r=n(1069);let o=null,s=0,a=[];function d(){document.hidden?o=Date.now():(s+=Date.now()-(o??0),o=null,a.forEach((e=>{let{callback:t,startTime:n,setTimerId:i}=e;return i(c(t,s-n)())})),a=[])}function c(e,t){const n=s;let i=setTimeout((()=>{s===n&&null==o?e():null!=o?a.push({callback:e,startTime:n,setTimerId(e){i=e}}):i=c(e,s-n)()}),t);return()=>i}function u(){let{startTime:e=r.vE,ttl:t=(()=>null),monotonic:n=!1,slack:o=5e3}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const s=new Map,a=[],d=[],u=n?e=>d.push(e):e=>d.splice((0,r.El)(d,e,(e=>e.expiry)),0,e);let l,f;function g(){if(f&&clearTimeout(f),d.length>0){const e=(0,r.vE)();l=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()}),l-e)}else f=null}function p(n){const r={},s=h;let a;const[d,c]=Object.entries({start:e,delta:t}).map((e=>{let t,[d,c]=e;return function(){const e=t={};i.k.resolve(c(n)).then((n=>{e===t&&(r[d]=n,s===h&&null!=r.start&&null!=r.delta&&(a=r.start+r.delta,u(p),(null==f||l>a+o)&&g()))}))}})),p={item:n,refresh:c,get expiry(){return a}};return d(),c(),p}let h={};return{[Symbol.iterator]:()=>s.keys(),add(e){!s.has(e)&&s.set(e,p(e))},clear(){d.length=0,g(),s.clear(),h={}},toArray:()=>Array.from(s.keys()),refresh(){d.length=0,g();for(const e of s.values())e.refresh()},onExpiry:e=>(a.push(e),()=>{const t=a.indexOf(e);t>=0&&a.splice(t,1)})}}document.addEventListener("visibilitychange",d)},3895:(e,t,n)=>{n.d(t,{H6:()=>a,V0:()=>u,Zy:()=>c,aP:()=>l,mn:()=>d,vk:()=>f});var i=n(1069),r=n(3272),o=n(9214),s=n(6881);const a="outstream",d="instream",c=new Map([["mimes",e=>Array.isArray(e)&&e.length>0&&e.every((e=>"string"==typeof e))],["minduration",i.Fq],["maxduration",i.Fq],["startdelay",i.Fq],["maxseq",i.Fq],["poddur",i.Fq],["protocols",i.Uu],["w",i.Fq],["h",i.Fq],["podid",i.O8],["podseq",i.Fq],["rqddurs",i.Uu],["placement",i.Fq],["plcmt",i.Fq],["linearity",i.Fq],["skip",e=>[1,0].includes(e)],["skipmin",i.Fq],["skipafter",i.Fq],["sequence",i.Fq],["slotinpod",i.Fq],["mincpmpersec",i.Et],["battr",i.Uu],["maxextended",i.Fq],["minbitrate",i.Fq],["maxbitrate",i.Fq],["boxingallowed",i.Fq],["playbackmethod",i.Uu],["playbackend",i.Fq],["delivery",i.Uu],["pos",i.Fq],["api",i.Uu],["companiontype",i.Uu],["poddedupe",i.Uu]]);function u(e){const t=e?.mediaTypes?.video;null!=t&&null==t.plcmt&&(t.context===a||[2,3,4].includes(t.placement)?t.plcmt=4:t.context!==a&&[2,6].includes(t.playbackmethod)&&(t.plcmt=2))}function l(e,t){const n=e?.mediaTypes?.video;(0,i.Qd)(n)?null!=n&&Object.entries(n).forEach((r=>{let[o,s]=r;if(!c.has(o))return;c.get(o)(s)||("function"==typeof t?t(o,s,e):(delete n[o],(0,i.JE)(`Invalid prop in adUnit "${e.code}": Invalid value for mediaTypes.video.${o} ORTB property. The property has been removed.`)))})):(0,i.JE)("validateOrtbVideoFields: videoParams must be an object.")}function f(e){let{index:t=s.n.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=t.getMediaTypes(e)?.video,i=n&&n?.context,r=n&&n?.useCacheKey,o=t.getAdUnit(e);return g(e,o,n,i,r)}const g=(0,o.A_)("sync",(function(e,t,n,o,s){return n&&(s||o!==a)?r.$W.getConfig("cache.url")||!e.vastXml||e.vastUrl?!(!e.vastUrl&&!e.vastXml):((0,i.vV)(\'\\n This bid contains only vastXml and will not work when a prebid cache url is not specified.\\n Try enabling prebid cache with pbjs.setConfig({ cache: {url: "..."} });\\n \'),!1):!(o===a&&!s)||!!(e.renderer||t&&t.renderer||n.renderer)}),"checkVideoBidSetup")}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[85],{4595:(s,d,e)=>{e.d(d,{G:()=>n});const n=\'(()=>{"use strict";window.render=function({ad:d,adUrl:e,width:i,height:r},{mkFrame:n},o){if(!d&&!e)throw{reason:"noAd",message:"Missing ad markup or URL"};{const s=o.document,t={width:i,height:r};e&&!d?t.src=e:t.srcdoc=d,s.body.appendChild(n(s,t))}}})();\'}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[444],{554:(e,t,r)=>{r.d(t,{QF:()=>g,T_:()=>f,gg:()=>l});var n=r(1069),o=r(433),i=r(8656),d=r(3858);const c={526:"1plusX",527:"1plusX",541:"captify_segments",540:"perid"},a=["user.data"].concat(d.Dy.map((e=>`${e}.content.data`)));function u(e,t,r){return null==t?r:(0,n.O8)(t)?t:(0,n.Et)(t)?t.toString():void(0,n.JE)("Unsuported type for param: "+e+" required type: String")}function l(e){return(0,n.O8)(e)&&""!==e?s(e.split(/\\s*(?:,)\\s*/)):{}}function s(e){const t={};return e.forEach((e=>{if(-1!==e.indexOf("=")){let r=e.split("="),n=r[0],o=r[1];t.hasOwnProperty(n)?t[n].push(o):t[n]=[o]}else t.hasOwnProperty(e)||(t[e]=[])})),t}function f(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"keywords";const r=[];return(0,n.bu)(e,((e,o)=>{if((0,n.cy)(e)){let r=[];(0,n.bu)(e,(e=>{((e=u(t+"."+o,e))||""===e)&&r.push(e)})),e=r}else{if(e=u(t+"."+o,e),!(0,n.O8)(e))return;e=[e]}e=e.filter((e=>""!==e));const i={key:o};e.length>0&&(i.value=e),r.push(i)})),r}((0,n.D9)(...t.map((e=>Object.fromEntries(Object.entries(e||{}).map((e=>{let[t,r]=e;return[t,(0,n.Et)(r)||(0,n.O8)(r)?[r]:r]})))))))}function g(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];return f(function(e){return s((0,i.D)(e))}(e),function(e){let t={};return a.forEach((r=>{((0,o.A)(e,r)||[]).forEach((e=>{const r=c[e?.ext?.segtax];r&&e.segment.forEach((e=>{t[r]?t[r].push(e.id):t[r]=[e.id]}))}))})),t}(e),...r)}},2349:(e,t,r)=>{r.d(t,{DX:()=>i,GS:()=>d,vk:()=>o});var n=r(1069);function o(e){return e.replace(/(?:^|\\.?)([A-Z])/g,(function(e,t){return"_"+t.toLowerCase()})).replace(/^_/,"")}const i=[{code:"appnexusAst",gvlid:32},{code:"emxdigital",gvlid:183},{code:"emetriq",gvlid:213},{code:"pagescience",gvlid:32},{code:"gourmetads",gvlid:32},{code:"matomy",gvlid:32},{code:"featureforward",gvlid:32},{code:"oftmedia",gvlid:32},{code:"adasta",gvlid:32},{code:"beintoo",gvlid:618},{code:"projectagora",gvlid:1032},{code:"stailamedia",gvlid:32},{code:"uol",gvlid:32},{code:"adzymic",gvlid:723}];function d(e,t){let r=[];for(let o=0;o<t;o++){let t=(0,n.Qd)(e)?(0,n.Go)(e):e;r.push(t)}return r}}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[126],{5761:(e,r,n)=>{n.d(r,{$:()=>t});var s=n(1069);function t(e,r){return Object.keys(e).forEach((n=>{var t,u;r[n]&&((0,s.fp)(e[n])?r[n]=e[n](r[n]):r[n]=(t=e[n],u=r[n],"string"===t?u&&u.toString():"number"===t?Number(u):u),isNaN(r[n])&&delete r.key)})),r}}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[247],{8656:(r,e,a)=>{a.d(e,{D:()=>o});var n=a(3858),t=a(433);const s=["user.keywords"].concat(n.Dy.flatMap((r=>["keywords","content.keywords"].map((e=>`${r}.${e}`)))));function o(r){for(var e=arguments.length,a=new Array(e>1?e-1:0),n=1;n<e;n++)a[n-1]=arguments[n];return function(){const r=new Set;for(var e=arguments.length,a=new Array(e),n=0;n<e;n++)a[n]=arguments[n];return a.filter((r=>r)).flatMap((r=>Array.isArray(r)?r:r.split(","))).map((r=>r.replace(/^\\s*/,"").replace(/\\s*$/,""))).filter((r=>r)).forEach((e=>r.add(e))),Array.from(r.keys())}(...s.map((e=>(0,t.A)(r,e))),...a)}}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[982],{9906:(e,l,s)=>{function t(e,l){let s=[];for(let t=0;t<Math.ceil(e.length/l);t++){let h=t*l,n=h+l;s.push(e.slice(h,n))}return s}s.d(l,{i:()=>t})}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[698],{4673:(A,B,I)=>{I.d(B,{n:()=>s});const s={1:"IAB20-3",2:"IAB18-5",3:"IAB10-1",4:"IAB2-3",5:"IAB19-8",6:"IAB22-1",7:"IAB18-1",8:"IAB12-3",9:"IAB5-1",10:"IAB4-5",11:"IAB13-4",12:"IAB8-7",13:"IAB9-7",14:"IAB7-1",15:"IAB20-18",16:"IAB10-7",17:"IAB19-18",18:"IAB13-6",19:"IAB18-4",20:"IAB1-5",21:"IAB1-6",22:"IAB3-4",23:"IAB19-13",24:"IAB22-2",25:"IAB3-9",26:"IAB17-18",27:"IAB19-6",28:"IAB1-7",29:"IAB9-30",30:"IAB20-7",31:"IAB20-17",32:"IAB7-32",33:"IAB16-5",34:"IAB19-34",35:"IAB11-5",36:"IAB12-3",37:"IAB11-4",38:"IAB12-3",39:"IAB9-30",41:"IAB7-44",42:"IAB7-1",43:"IAB7-30",50:"IAB19-30",51:"IAB17-12",52:"IAB19-30",53:"IAB3-1",55:"IAB13-2",56:"IAB19-30",57:"IAB19-30",58:"IAB7-39",59:"IAB22-1",60:"IAB7-39",61:"IAB21-3",62:"IAB5-1",63:"IAB12-3",64:"IAB20-18",65:"IAB11-2",66:"IAB17-18",67:"IAB9-9",68:"IAB9-5",69:"IAB7-44",71:"IAB22-3",73:"IAB19-30",74:"IAB8-5",78:"IAB22-1",85:"IAB12-2",86:"IAB22-3",87:"IAB11-3",112:"IAB7-32",113:"IAB7-32",114:"IAB7-32",115:"IAB7-32",118:"IAB9-5",119:"IAB9-5",120:"IAB9-5",121:"IAB9-5",122:"IAB9-5",123:"IAB9-5",124:"IAB9-5",125:"IAB9-5",126:"IAB9-5",127:"IAB22-1",132:"IAB1-2",133:"IAB19-30",137:"IAB3-9",138:"IAB19-3",140:"IAB2-3",141:"IAB2-1",142:"IAB2-3",143:"IAB17-13",166:"IAB11-4",175:"IAB3-1",176:"IAB13-4",182:"IAB8-9",183:"IAB3-5"}}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[599],{791:(e,t,r)=>{var i=r(7873),a=r(1069),s=r(433),o=r(5789),n=r(3272),d=r(9115),c=r(1371),p=r(5901),l=r(3895),u=r(2938),m=r(2693),g=r(2621),h=r(2449),_=r(4673),f=r(554),b=r(2349),y=r(5761),v=r(9906);const k="appnexus",w="https://ib.adnxs.com/ut/v3/prebid",I="https://ib.adnxs-simple.com/ut/v3/prebid",x=["id","minduration","maxduration","skippable","playback_method","frameworks","context","skipoffset"],C=["minduration","maxduration","skip","skipafter","playbackmethod","api","startdelay","placement","plcmt"],O=["age","externalUid","external_uid","segments","gender","dnt","language"],T=["geo","device_id"],U=["enabled","dongle","member_id","debug_timeout"],E={apn_debug_dongle:"dongle",apn_debug_member_id:"member_id",apn_debug_timeout:"debug_timeout"},S={playback_method:{unknown:0,auto_play_sound_on:1,auto_play_sound_off:2,click_to_play:3,mouse_over:4,auto_play_sound_unknown:5},context:{unknown:0,pre_roll:1,mid_roll:2,post_roll:3,outstream:4,"in-banner":5,"in-feed":6,interstitial:7,accompanying_content_pre_roll:8,accompanying_content_mid_roll:9,accompanying_content_post_roll:10}},A={body:"description",body2:"desc2",cta:"ctatext",image:{serverName:"main_image",requiredParams:{required:!0}},icon:{serverName:"icon",requiredParams:{required:!0}},sponsoredBy:"sponsored_by",privacyLink:"privacy_link",salePrice:"saleprice",displayUrl:"displayurl"},j="<script",D=/\\/\\/cdn\\.adnxs\\.com\\/v|\\/\\/cdn\\.adnxs\\-simple\\.com\\/v/,R="trk.js",z=(0,u.vM)({bidderCode:k}),N=new Map([[1,"Mobile/Tablet - General"],[2,"Personal Computer"],[3,"Connected TV"],[4,"Phone"],[5,"Tablet"],[6,"Connected Device"],[7,"Set Top Box"],[8,"OOH Device"]]),q={code:k,gvlid:32,aliases:b.DX,supportedMediaTypes:[c.D4,c.G_,c.s6],isBidRequestValid:function(e){return!!(e.params.placementId||e.params.placement_id||e.params.member&&(e.params.invCode||e.params.inv_code))},buildRequests:function(e,t){const r=(e=(0,h.Xj)(e)).map(G),i=(0,p.I6)(e,M);let s={};!0===n.$W.getConfig("coppa")&&(s={coppa:!0}),i&&Object.keys(i.params.user).filter((e=>(0,p.mK)(O,e))).forEach((e=>{let t=(0,b.vk)(e);if("segments"===e&&(0,a.cy)(i.params.user[e])){let r=[];i.params.user[e].forEach((e=>{(0,a.Et)(e)?r.push({id:e}):(0,a.Qd)(e)&&r.push(e)})),s[t]=r}else"segments"!==e&&(s[t]=i.params.user[e])}));const o=(0,p.I6)(e,B);let d;o&&o.params&&o.params.app&&(d={},Object.keys(o.params.app).filter((e=>(0,p.mK)(T,e))).forEach((e=>d[e]=o.params.app[e])));const c=(0,p.I6)(e,K);let l;c&&c.params&&o.params.app&&o.params.app.id&&(l={appid:c.params.app.id});let u={},m={};const _=z.getCookie("apn_prebid_debug")||null;if(_)try{u=JSON.parse(_)}catch(e){(0,a.vV)("AppNexus Debug Auction Cookie Error:\\n\\n"+e)}else{Object.keys(E).forEach((e=>{let t=(0,a.Ez)(e);(0,a.O8)(t)&&""!==t&&(u[E[e]]=t,u.enabled=!0)})),u=(0,y.$)({member_id:"number",debug_timeout:"number"},u);const t=(0,p.I6)(e,V);t&&t.debug&&(u=t.debug)}u&&u.enabled&&Object.keys(u).filter((e=>(0,p.mK)(U,e))).forEach((e=>{m[e]=u[e]}));const k=(0,p.I6)(e,$),x=k?parseInt(k.params.member,10):0,C=e[0].schain,S=(0,p.I6)(e,W),A={tags:[...r],user:s,sdk:{source:"pbjs",version:"9.23.0"},schain:C};S&&(A.iab_support={omidpn:"Appnexus",omidpv:"9.23.0"}),x>0&&(A.member_id=x),o&&(A.device=d),c&&(A.app=l),t?.ortb2?.device&&(A.device=A.device||{},(0,a.D9)(A.device,function(e){const t={useragent:e.ua,devicetype:N.get(e.devicetype),make:e.make,model:e.model,os:e.os,os_version:e.osv,w:e.w,h:e.h,ppi:e.ppi,pxratio:e.pxratio};return Object.keys(t).reduce(((e,r)=>(t[r]&&(e[r]=t[r]),e)),{})}(t.ortb2.device)));let j=(0,a.Go)(t&&t.ortb2),D=(0,a.Go)(n.$W.getConfig("appnexusAuctionKeywords"))||{},R=(0,f.QF)(j,D);if(R.length>0&&(A.keywords=R),n.$W.getConfig("adpod.brandCategoryExclusion")&&(A.brand_category_uniqueness=!0),m.enabled&&(A.debug=m,(0,a.fH)("AppNexus Debug Auction Settings:\\n\\n"+JSON.stringify(m,null,4))),t&&t.gdprConsent&&(A.gdpr_consent={consent_string:t.gdprConsent.consentString,consent_required:t.gdprConsent.gdprApplies},t.gdprConsent.addtlConsent&&-1!==t.gdprConsent.addtlConsent.indexOf("~"))){let e=t.gdprConsent.addtlConsent,r=e.substring(e.indexOf("~")+1);A.gdpr_consent.addtl_consent=r.split(".").map((e=>parseInt(e,10)))}if(t&&t.uspConsent&&(A.us_privacy=t.uspConsent),t?.gppConsent?A.privacy={gpp:t.gppConsent.gppString,gpp_sid:t.gppConsent.applicableSections}:t?.ortb2?.regs?.gpp&&(A.privacy={gpp:t.ortb2.regs.gpp,gpp_sid:t.ortb2.regs.gpp_sid}),t&&t.refererInfo){let e={rd_ref:encodeURIComponent(t.refererInfo.topmostLocation),rd_top:t.refererInfo.reachedTop,rd_ifs:t.refererInfo.numIframes,rd_stk:t.refererInfo.stack.map((e=>encodeURIComponent(e))).join(",")},r=t.refererInfo.canonicalUrl;(0,a.O8)(r)&&""!==r&&(e.rd_can=r),A.referrer_detection=e}(0,p.I6)(e,L)&&e.filter(L).forEach((e=>{const t=function(e,t){const{durationRangeSec:r,requireExactDuration:i}=t.mediaTypes.video,a=function(e){const{adPodDurationSec:t,durationRangeSec:r,requireExactDuration:i}=e,a=Math.min(...r),s=Math.floor(t/a);return i?Math.max(s,r.length):s}(t.mediaTypes.video),s=Math.max(...r),o=e.filter((e=>e.uuid===t.bidId));let n=(0,b.GS)(...o,a);if(i){const e=Math.ceil(a/r.length),t=(0,v.i)(n,e);r.forEach(((e,r)=>{t[r].map((t=>{H(t,"minduration",e),H(t,"maxduration",e)}))}))}else n.map((e=>H(e,"maxduration",s)));return n}(r,e),i=A.tags.filter((t=>t.uuid!==e.bidId));A.tags=[...i,...t]}));if(e[0].userId){let t=[];e[0].userIdAsEids.forEach((e=>{!e||!e.uids||e.uids.length<1||e.uids.forEach((r=>{let i={source:e.source,id:r.id};"adserver.org"==e.source?i.rti_partner="TDID":"uidapi.com"==e.source&&(i.rti_partner="UID2"),t.push(i)}))})),t.length&&(A.eids=t)}if(t?.ortb2?.regs?.ext?.dsa){const e=t.ortb2.regs.ext.dsa,r={};if(["dsarequired","pubrender","datatopub"].forEach((t=>{(0,a.Et)(e[t])&&(r[t]=e[t])})),(0,a.cy)(e.transparency)&&e.transparency.every((e=>(0,a.Qd)(e)))){const t=[];e.transparency.forEach((e=>{(0,a.O8)(e.domain)&&""!=e.domain&&(0,a.cy)(e.dsaparams)&&e.dsaparams.every((e=>(0,a.Et)(e)))&&t.push(e)})),t.length>0&&(r.transparency=t)}(0,a.Im)(r)||(A.dsa=r)}r[0].publisher_id&&(A.publisher_id=r[0].publisher_id);const q=function(e,t){let r=[],i={withCredentials:!0},s=w;(0,g.C)(t?.gdprConsent)||(s=I);"TRUE"!==(0,a.Ez)("apn_test").toUpperCase()&&!0!==n.$W.getConfig("apn_test")||(i.customHeaders={"X-Is-Test":1});if(e.tags.length>15){const o=(0,a.Go)(e);(0,v.i)(e.tags,15).forEach((e=>{o.tags=e;const a=JSON.stringify(o);r.push({method:"POST",url:s,data:a,bidderRequest:t,options:i})}))}else{const a=JSON.stringify(e);r={method:"POST",url:s,data:a,bidderRequest:t,options:i}}return r}(A,t);return q},interpretResponse:function(e,t){let{bidderRequest:r}=t;e=e.body;const i=[];if(!e||e.error){let t=`in response for ${r.bidderCode} adapter`;return e&&e.error&&(t+=`: ${e.error}`),(0,a.vV)(t),i}if(e.tags&&e.tags.forEach((e=>{const t=(n=e)&&n.ads&&n.ads.length&&(0,p.I6)(n.ads,(e=>e.rtb));var n;if(t){if((!0===m.u.get(r.bidderCode,"allowZeroCpmBids")?t.cpm>=0:t.cpm>0)&&(0,p.mK)(this.supportedMediaTypes,t.ad_type)){const n=function(e,t,r){const i=(0,a.D4)(e.uuid,[r]),n=(0,a.s0)(),d={adId:n,requestId:e.uuid,cpm:t.cpm,creativeId:t.creative_id,dealId:t.deal_id,currency:"USD",netRevenue:!0,ttl:300,adUnitCode:i.adUnitCode,appnexus:{buyerMemberId:t.buyer_member_id,dealPriority:t.deal_priority,dealCode:t.deal_code}};t.adomain&&(d.meta=Object.assign({},d.meta,{advertiserDomains:[t.adomain]}));t.advertiser_id&&(d.meta=Object.assign({},d.meta,{advertiserId:t.advertiser_id}));t.dsa&&(d.meta=Object.assign({},d.meta,{dsa:t.dsa}));function u(e){return{ver:"1.0",complete:0,nodes:[{bsid:e.buyer_member_id.toString()}]}}t.buyer_member_id&&(d.meta=Object.assign({},d.meta,{dchain:u(t)}));t.brand_id&&(d.meta=Object.assign({},d.meta,{brandId:t.brand_id}));if(t.rtb.video){Object.assign(d,{width:t.rtb.video.player_width,height:t.rtb.video.player_height,vastImpUrl:t.notify_url,ttl:3600});switch((0,s.A)(i,"mediaTypes.video.context")){case c.LM:const i=_.n[t.brand_category_id]?_.n[t.brand_category_id]:null;d.meta=Object.assign({},d.meta,{primaryCatId:i});const n=t.deal_priority;d.video={context:c.LM,durationSeconds:Math.floor(t.rtb.video.duration_ms/1e3),dealTier:n},d.vastUrl=t.rtb.video.asset_url;break;case l.H6:if(d.adResponse=e,d.adResponse.ad=d.adResponse.ads[0],d.adResponse.ad.video=d.adResponse.ad.rtb.video,d.vastXml=t.rtb.video.content,t.renderer_url){const i=(0,p.I6)(r.bids,(t=>t.bidId===e.uuid));let n=(0,s.A)(i,"mediaTypes.video.renderer.options");n||(n=(0,s.A)(i,"renderer.options")),d.renderer=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=o.A4.install({id:t.renderer_id,url:t.renderer_url,config:r,loaded:!1,adUnitCode:e});try{i.setRender(J)}catch(e){(0,a.JE)("Prebid Error calling setRender on renderer",e)}return i.setEventHandlers({impression:()=>(0,a.OG)("AppNexus outstream video impression event"),loaded:()=>(0,a.OG)("AppNexus outstream video loaded event"),ended:()=>{(0,a.OG)("AppNexus outstream renderer video event"),document.querySelector(`#${e}`).style.display="none"}}),i}(d.adUnitCode,t,n)}break;case l.mn:d.vastUrl=t.notify_url+"&redir="+encodeURIComponent(t.rtb.video.asset_url)}}else if(t.rtb[c.s6]){const e=t.rtb[c.s6];let r;if(function(e){if(!e||""===e)return!1;let t=e.match(D),r=null!=t&&t.length>=1,i=e.match(R),a=null!=i&&i.length>=1;return e.startsWith(j)&&a&&r}(t.viewability.config)){let e="pbjs_adid="+n+";pbjs_auc="+i.adUnitCode;r=t.viewability.config.replace("dom_id=%native_dom_id%",e)}let s=e.javascript_trackers;null==s?s=r:(0,a.O8)(s)?s=[s,r]:s.push(r),d[c.s6]={title:e.title,body:e.desc,body2:e.desc2,cta:e.ctatext,rating:e.rating,sponsoredBy:e.sponsored,privacyLink:e.privacy_link,address:e.address,downloads:e.downloads,likes:e.likes,phone:e.phone,price:e.price,salePrice:e.saleprice,clickUrl:e.link.url,displayUrl:e.displayurl,clickTrackers:e.link.click_trackers,impressionTrackers:e.impression_trackers,video:e.video,javascriptTrackers:s},e.main_img&&(d[c.s6].image={url:e.main_img.url,height:e.main_img.height,width:e.main_img.width}),e.icon&&(d[c.s6].icon={url:e.icon.url,height:e.icon.height,width:e.icon.width}),d[c.s6].ext={video:e.video,customImage1:e.image1&&{url:e.image1.url,height:e.image1.height,width:e.image1.width},customImage2:e.image2&&{url:e.image2.url,height:e.image2.height,width:e.image2.width},customImage3:e.image3&&{url:e.image3.url,height:e.image3.height,width:e.image3.width},customImage4:e.image4&&{url:e.image4.url,height:e.image4.height,width:e.image4.width},customImage5:e.image5&&{url:e.image5.url,height:e.image5.height,width:e.image5.width},customIcon1:e.icon1&&{url:e.icon1.url,height:e.icon1.height,width:e.icon1.width},customIcon2:e.icon2&&{url:e.icon2.url,height:e.icon2.height,width:e.icon2.width},customIcon3:e.icon3&&{url:e.icon3.url,height:e.icon3.height,width:e.icon3.width},customIcon4:e.icon4&&{url:e.icon4.url,height:e.icon4.height,width:e.icon4.width},customIcon5:e.icon5&&{url:e.icon5.url,height:e.icon5.height,width:e.icon5.width},customSocialIcon1:e.socialicon1&&{url:e.socialicon1.url,height:e.socialicon1.height,width:e.socialicon1.width},customSocialIcon2:e.socialicon2&&{url:e.socialicon2.url,height:e.socialicon2.height,width:e.socialicon2.width},customSocialIcon3:e.socialicon3&&{url:e.socialicon3.url,height:e.socialicon3.height,width:e.socialicon3.width},customSocialIcon4:e.socialicon4&&{url:e.socialicon4.url,height:e.socialicon4.height,width:e.socialicon4.width},customSocialIcon5:e.socialicon5&&{url:e.socialicon5.url,height:e.socialicon5.height,width:e.socialicon5.width},customTitle1:e.title1,customTitle2:e.title2,customTitle3:e.title3,customTitle4:e.title4,customTitle5:e.title5,customBody1:e.body1,customBody2:e.body2,customBody3:e.body3,customBody4:e.body4,customBody5:e.body5,customCta1:e.ctatext1,customCta2:e.ctatext2,customCta3:e.ctatext3,customCta4:e.ctatext4,customCta5:e.ctatext5,customDisplayUrl1:e.displayurl1,customDisplayUrl2:e.displayurl2,customDisplayUrl3:e.displayurl3,customDisplayUrl4:e.displayurl4,customDisplayUrl5:e.displayurl5,customSocialUrl1:e.socialurl1,customSocialUrl2:e.socialurl2,customSocialUrl3:e.socialurl3,customSocialUrl4:e.socialurl4,customSocialUrl5:e.socialurl5}}else{Object.assign(d,{width:t.rtb.banner.width,height:t.rtb.banner.height,ad:t.rtb.banner.content});try{if(t.rtb.trackers)for(let e=0;e<t.rtb.trackers[0].impression_urls.length;e++){const r=t.rtb.trackers[0].impression_urls[e],i=(0,a.Tz)(r);d.ad+=i}}catch(e){(0,a.vV)("Error appending tracking pixel",e)}}return d}(e,t,r);n.mediaType=function(e){const t=e.ad_type;return t===c.G_?c.G_:t===c.s6?c.s6:c.D4}(t),i.push(n)}}})),e.debug&&e.debug.debug_info){let t="AppNexus Debug Auction for Prebid\\n\\n"+e.debug.debug_info;t=t.replace(/(<td>|<th>)/gm,"\\t").replace(/(<\\/td>|<\\/th>)/gm,"\\n").replace(/^<br>/gm,"").replace(/(<br>\\n|<br>)/gm,"\\n").replace(/<h1>(.*)<\\/h1>/gm,"\\n\\n===== $1 =====\\n\\n").replace(/<h[2-6]>(.*)<\\/h[2-6]>/gm,"\\n\\n*** $1 ***\\n\\n").replace(/(<([^>]+)>)/gim,""),(0,a.OG)("https://console.appnexus.com/docs/understanding-the-debug-auction"),(0,a.OG)(t)}return i},getUserSyncs:function(e,t,r,i,a){if(e.iframeEnabled&&(0,g.C)(r))return[{type:"iframe",url:"https://acdn.adnxs.com/dmp/async_usersync.html"}];if(e.pixelEnabled){return["https://px.ads.linkedin.com/setuid?partner=appNexus"].map((e=>({type:"image",url:e})))}}};function G(e){const t={};Object.keys(e.params).forEach((t=>{let r=(0,b.vk)(t);r!==t&&(e.params[r]=e.params[t],delete e.params[t])})),t.sizes=P(e.sizes),t.primary_size=t.sizes[0],t.ad_types=[],t.uuid=e.bidId,e.params.placement_id?t.id=parseInt(e.params.placement_id,10):t.code=e.params.inv_code;const r=(0,a.Ez)("ast_override_div");if((0,a.O8)(r)&&""!==r){const i=decodeURIComponent(r).split(",").find((t=>t.startsWith(`${e.adUnitCode}:`)));if(i){const e=i.split(":")[1];e&&(t.force_creative_id=parseInt(e,10))}}t.allow_smaller_sizes=e.params.allow_smaller_sizes||!1,t.use_pmt_rule="boolean"==typeof e.params.use_payment_rule?e.params.use_payment_rule:"boolean"==typeof e.params.use_pmt_rule&&e.params.use_pmt_rule,t.prebid=!0,t.disable_psa=!0;let i=function(e){if(!(0,a.fp)(e.getFloor))return e.params.reserve?e.params.reserve:null;let t=e.getFloor({currency:"USD",mediaType:"*",size:"*"});if((0,a.Qd)(t)&&!isNaN(t.floor)&&"USD"===t.currency)return t.floor;return null}(e);if(i&&(t.reserve=i),e.params.position)t.position={above:1,below:2}[e.params.position]||0;else{let r=(0,s.A)(e,"mediaTypes.banner.pos")||(0,s.A)(e,"mediaTypes.video.pos");0!==r&&1!==r&&3!==r||(t.position=3===r?2:r)}e.params.traffic_source_code&&(t.traffic_source_code=e.params.traffic_source_code),e.params.private_sizes&&(t.private_sizes=P(e.params.private_sizes)),e.params.supply_type&&(t.supply_type=e.params.supply_type),e.params.pub_click&&(t.pubclick=e.params.pub_click),e.params.ext_inv_code&&(t.ext_inv_code=e.params.ext_inv_code),e.params.publisher_id&&(t.publisher_id=parseInt(e.params.publisher_id,10)),e.params.external_imp_id&&(t.external_imp_id=e.params.external_imp_id);const o=(0,f.T_)((0,f.gg)((0,s.A)(e,"ortb2Imp.ext.data.keywords")),e.params?.keywords);o.length>0&&(t.keywords=o);let n=(0,s.A)(e,"ortb2Imp.ext.gpid")||(0,s.A)(e,"ortb2Imp.ext.data.pbadslot");if(n&&(t.gpid=n),(e.mediaType===c.s6||(0,s.A)(e,`mediaTypes.${c.s6}`))&&(t.ad_types.push(c.s6),0===t.sizes.length&&(t.sizes=P([1,1])),e.nativeParams)){const r=function(e){const t={};return Object.keys(e).forEach((r=>{const i=A[r]&&A[r].serverName||A[r]||r,s=A[r]&&A[r].requiredParams;t[i]=Object.assign({},s,e[r]);if(!(i!==A.image.serverName&&i!==A.icon.serverName)&&t[i].sizes){let e=t[i].sizes;((0,a.Uu)(e)||(0,a.cy)(e)&&e.length>0&&e.every((e=>(0,a.Uu)(e))))&&(t[i].sizes=P(t[i].sizes))}i===A.privacyLink&&(t.privacy_supported=!0)})),t}(e.nativeParams);t[c.s6]={layouts:[r]}}{const r=(0,s.A)(e,`mediaTypes.${c.G_}`),i=(0,s.A)(e,"mediaTypes.video.context");t.hb_source=r&&"adpod"===i?7:1,(e.mediaType===c.G_||r)&&t.ad_types.push(c.G_),(e.mediaType===c.G_||r&&"outstream"!==i)&&(t.require_asset_url=!0),e.params.video&&(t.video={},Object.keys(e.params.video).filter((e=>(0,p.mK)(x,e))).forEach((r=>{switch(r){case"context":case"playback_method":let i=e.params.video[r];i=(0,a.cy)(i)?i[0]:i,t.video[r]=S[r][i];break;case"frameworks":break;default:t.video[r]=e.params.video[r]}})),e.params.video.frameworks&&(0,a.cy)(e.params.video.frameworks)&&(t.video_frameworks=e.params.video.frameworks)),r&&(t.video=t.video||{},Object.keys(r).filter((e=>(0,p.mK)(C,e))).forEach((e=>{switch(e){case"minduration":case"maxduration":"number"!=typeof t.video[e]&&(t.video[e]=r[e]);break;case"skip":"boolean"!=typeof t.video.skippable&&(t.video.skippable=1===r[e]);break;case"skipafter":"number"!=typeof t.video.skipoffset&&(t.video.skippoffset=r[e]);break;case"playbackmethod":if("number"!=typeof t.video.playback_method){let i=r[e];i=(0,a.cy)(i)?i[0]:i,i>=1&&i<=4&&(t.video.playback_method=i)}break;case"api":if(!t.video_frameworks&&(0,a.cy)(r[e])){let i=r[e].map((e=>{let t=4===e?5:5===e?4:e;if(t>=1&&t<=5)return t})).filter((e=>e));t.video_frameworks=i}break;case"startdelay":case"plcmt":case"placement":if("number"!=typeof t.video.context){const e=r.plcmt,i=r.placement,a=r.startdelay,s=function(e,t){if(!e)return;if(2===e){if(void 0===t)return;if(0===t)return"accompanying_content_pre_roll";if(-1===t)return"accompanying_content_mid_roll";if(-2===t)return"accompanying_content_post_roll"}else{if(3===e)return"interstitial";if(4===e)return"outstream"}}(e,a)||function(e){if(!e)return;if(2===e)return"in-banner";if(3===e)return"outstream";if(4===e)return"in-feed";if(5===e)return"intersitial"}(i)||function(e){if(!e)return;if(0===e)return"pre_roll";if(-1===e)return"mid_roll";if(-2===e)return"post_roll"}(a);t.video.context=S.context[s]}}}))),e.renderer&&(t.video=Object.assign({},t.video,{custom_renderer_present:!0}))}return e.params.frameworks&&(0,a.cy)(e.params.frameworks)&&(t.banner_frameworks=e.params.frameworks),(0,s.A)(e,`mediaTypes.${c.D4}`)&&t.ad_types.push(c.D4),0===t.ad_types.length&&delete t.ad_types,t}function P(e){let t=[],r={};if((0,a.cy)(e)&&2===e.length&&!(0,a.cy)(e[0]))r.width=parseInt(e[0],10),r.height=parseInt(e[1],10),t.push(r);else if("object"==typeof e)for(let i=0;i<e.length;i++){let a=e[i];r={},r.width=parseInt(a[0],10),r.height=parseInt(a[1],10),t.push(r)}return t}function M(e){return!!e.params.user}function $(e){return!!parseInt(e.params.member,10)}function B(e){if(e.params)return!!e.params.app}function K(e){return e.params&&e.params.app?!!e.params.app.id:!!e.params.app}function V(e){return!!e.debug}function L(e){return e.mediaTypes&&e.mediaTypes.video&&e.mediaTypes.video.context===c.LM}function W(e){let t=!1;const r=e.params,i=e.params.video;return r.frameworks&&(0,a.cy)(r.frameworks)&&(t=(0,p.mK)(e.params.frameworks,6)),!t&&i&&i.frameworks&&(0,a.cy)(i.frameworks)&&(t=(0,p.mK)(e.params.video.frameworks,6)),t}function H(e,t,r){(0,a.Im)(e.video)&&(e.video={}),e.video[t]=r}function J(e,t){!function(e){try{const t=document.getElementById(e).querySelectorAll("div[id^=\'google_ads\']");t[0]&&t[0].style.setProperty("display","none")}catch(e){}}(e.adUnitCode),function(e){try{const t=document.getElementById(e).querySelectorAll("script[id^=\'sas_script\']");t[0].nextSibling&&"iframe"===t[0].nextSibling.localName&&t[0].nextSibling.style.setProperty("display","none")}catch(e){}}(e.adUnitCode),e.renderer.push((()=>{(t?.defaultView||window).ANOutstreamVideo.renderAd({tagId:e.adResponse.tag_id,sizes:[e.getSize().split("x")],targetId:e.adUnitCode,uuid:e.adResponse.uuid,adResponse:e.adResponse,rendererOptions:e.renderer.getConfig()},Q.bind(null,e))}))}function Q(e,t,r){e.renderer.handleVideoEvent({id:t,eventName:r})}(0,d.a$)(q),(0,i.E)("appnexusBidAdapter")}},e=>{e.O(0,[802,444,126,247,982,698,85],(()=>{return t=791,e(e.s=t);var t}));e.O()}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[103],{7967:(t,e,n)=>{var d=n(7873),a=n(9115);const i="testbidder",s={code:i,isBidRequestValid:function(t){return!!t.params},buildRequests:function(t,e){return t.map((t=>({method:"GET",url:"",data:{mock:!0,bidId:t.bidId,testRequestId:t.params.requestId??null,testCPM:t.params.cpm??null,testWidth:t.params.width??null,testHeight:t.params.height??null,testAd:t.params.ad??null,testTTL:t.params.ttl??null,currency:t.params.currency??"USD"},bidRequestId:t.bidId})))},interpretResponse:function(t,e){const n=e.data.testWidth||300,d=e.data.testHeight||250,a=e.data.testRequestId||e.bidRequestId,s=`<!DOCTYPE html>\\n <html>\\n <head>\\n <meta charset="utf-8">\\n <style>\\n body { margin: 0; padding: 0; }\\n .creative-container {\\n position: relative;\\n width: ${n}px;\\n height: ${d}px;\\n background: #f0f0f0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n }\\n </style>\\n </head>\\n <body>\\n <div id="creative-${a}" class="creative-container">\\n <div style="text-align: center;">\\n <p>Test Ad</p>\\n <p>${e.data.testAd}</p>\\n <p>${n}x${d}</p>\\n </div>\\n <script>\\n (function() {\\n var size = { width: ${n}, height: ${d} };\\n window.parent.postMessage(JSON.stringify({\\n message: \'Prebid Creative Loaded\',\\n adId: \'${a}\',\\n size: size\\n }), \'*\');\\n })();\\n <\\/script>\\n </div>\\n </body>\\n </html>`;return[{requestId:e.data.testRequestId||e.bidRequestId,cpm:parseFloat(e.data.testCPM)||1,currency:e.data.currency,width:n,height:d,mediaType:"banner",ad:s,ttl:e.data.testTTL||300,creativeId:"test-creative-id",netRevenue:!0,bidderCode:i}]},onTimeout:function(t){},onBidWon:function(t){}};(0,a.a$)(s),(0,d.E)("testbidderBidAdapter")}},t=>{t.O(0,[802,85],(()=>{return e=7967,t(t.s=e);var e}));t.O()}]);\n})(),pbjs.processQueue();\n\n//# sourceURL=webpack://@wrapp/wrapper/../builds/80918AC8127BA/0.0.55/prebid.js?')},"../node_modules/css-loader/dist/cjs.js!./css/sticky.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "../node_modules/css-loader/dist/runtime/noSourceMaps.js");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "../node_modules/css-loader/dist/runtime/api.js");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.ad-anchor {\n box-sizing: border-box;\n z-index: 9999;\n background-color: #f0f0f0;\n border: 1px dotted #ccc;\n place-items: center;\n padding: 5px;\n transition: all 0.3s ease;\n display: flex;\n align-items: flex-start;\n justify-content: space-between; /* space between .ad-slot and .ad-action-buttons */\n}\n\n.ad-slot {\n flex-grow: 1; /* take up remaining space in center */\n flex-shrink: 1;\n color: #888; /* text color */\n text-align: center; /* center-align content inside div */\n display: flex;\n align-items: center; /* vertically center align all children */\n justify-content: center; /* horizontally center align all children */\n overflow: hidden;\n}\n\n.ad-action-buttons {\n display: flex; /* use flexbox for the buttons */\n gap: 5px; /* add 5px horizontal gap between buttons */\n flex-shrink: 0;\n}\n\n.ad-action-btn {\n box-sizing: border-box;\n width: 20px;\n height: 20px;\n color: #888;\n background: #f0f0f0;\n border: 1px solid #ccc;\n font-size: 20px;\n font-weight: normal;\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n line-height: 18px;\n text-align: center;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n\n/* top sticky ad */\n.ad-TP {\n position: sticky;\n top: 0;\n left: 0;\n width: calc(100vw - 25px);\n height: auto;\n min-height: 10vh; /* minimum height 10% of viewport */\n max-height: 30vh; /* maximum height 30% of viewport */\n}\n\n/* bottom sticky ad */\n.ad-BM {\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%; /* "fixed" position width goes by view port */\n height: auto;\n min-height: 10vh; /* minimum height 10% of viewport */\n max-height: 30vh; /* maximum height 30% of viewport */\n/* \n max-width: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-left: calc(-50vw + 50%); */\n}\n\n/* right rail sticky ad */\n.ad-RG {\n position: fixed;\n top: 50%;\n right: 0;\n width: 300px;\n height: 600px;\n transform: translateY(-50%);\n}\n\n/* left rail sticky ad */\n.ad-LF {\n position: fixed;\n top: 50%;\n left: 0;\n width: 300px;\n height: 600px;\n transform: translateY(-50%);\n}\n\n/* minimized states */\n.horizontal-minimized {\n height: 30px;\n min-height: 30px;\n overflow: hidden;\n}\n\n.vertical-minimized {\n width: 55px;\n min-width: 55px;\n overflow: hidden;\n}\n\n/* hidden state */\n.hidden {\n display: none;\n}\n\n`, ""]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./css/sticky.css?../node_modules/css-loader/dist/cjs.js')},"../node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";eval('\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = "";\n var needLayer = typeof item[5] !== "undefined";\n if (item[4]) {\n content += "@supports (".concat(item[4], ") {");\n }\n if (item[2]) {\n content += "@media ".concat(item[2], " {");\n }\n if (needLayer) {\n content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += "}";\n }\n if (item[2]) {\n content += "}";\n }\n if (item[4]) {\n content += "}";\n }\n return content;\n }).join("");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === "string") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== "undefined") {\n if (typeof item[5] === "undefined") {\n item[5] = layer;\n } else {\n item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = "".concat(supports);\n } else {\n item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/css-loader/dist/runtime/api.js?')},"../node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";eval("\n\nmodule.exports = function (i) {\n return i[1];\n};\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/css-loader/dist/runtime/noSourceMaps.js?")},"./css/sticky.css":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "../node_modules/style-loader/dist/runtime/styleDomAPI.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "../node_modules/style-loader/dist/runtime/insertBySelector.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "../node_modules/style-loader/dist/runtime/insertStyleElement.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "../node_modules/style-loader/dist/runtime/styleTagTransform.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../node_modules/css-loader/dist/cjs.js!./sticky.css */ "../node_modules/css-loader/dist/cjs.js!./css/sticky.css");\n\n \n \n \n \n \n \n \n \n \n\nvar options = {};\n\noptions.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\noptions.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");\noptions.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);\n\n\n\n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./css/sticky.css?')},"../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":module=>{"use strict";eval('\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = "".concat(id, " ").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?')},"../node_modules/style-loader/dist/runtime/insertBySelector.js":module=>{"use strict";eval('\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === "undefined") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error("Couldn\'t find a style target. This probably means that the value for the \'insert\' parameter is invalid.");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/insertBySelector.js?')},"../node_modules/style-loader/dist/runtime/insertStyleElement.js":module=>{"use strict";eval('\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement("style");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/insertStyleElement.js?')},"../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval('\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = true ? __webpack_require__.nc : 0;\n if (nonce) {\n styleElement.setAttribute("nonce", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js?')},"../node_modules/style-loader/dist/runtime/styleDomAPI.js":module=>{"use strict";eval('\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = "";\n if (obj.supports) {\n css += "@supports (".concat(obj.supports, ") {");\n }\n if (obj.media) {\n css += "@media ".concat(obj.media, " {");\n }\n var needLayer = typeof obj.layer !== "undefined";\n if (needLayer) {\n css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");\n }\n css += obj.css;\n if (needLayer) {\n css += "}";\n }\n if (obj.media) {\n css += "}";\n }\n if (obj.supports) {\n css += "}";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== "undefined") {\n css += "\\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === "undefined") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/styleDomAPI.js?')},"../node_modules/style-loader/dist/runtime/styleTagTransform.js":module=>{"use strict";eval("\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/styleTagTransform.js?")},"./src/abTests.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getTestAdSlots: () => (/* binding */ getTestAdSlots)\n/* harmony export */ });\n/* harmony import */ var xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! xxhash-wasm */ \"../node_modules/xxhash-wasm/esm/xxhash-wasm.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants/config */ \"./src/constants/config.ts\");\n// file: wrapper/src/abTests.ts\n\n\n\nconst MAX_HASH_32 = Number(2 ** 32 - 1); // max possible value for xxHash32\n/**\n * Deep merge utility function for merging ad slot overrides\n * Handles nested objects properly, unlike shallow spread operator\n */\nfunction deepMerge(target, source) {\n if (source === null || source === undefined) {\n return target;\n }\n if (typeof source !== 'object' || Array.isArray(source)) {\n return source;\n }\n const result = { ...target };\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n if (typeof source[key] === 'object' && source[key] !== null && !Array.isArray(source[key]) &&\n typeof target[key] === 'object' && target[key] !== null && !Array.isArray(target[key])) {\n result[key] = deepMerge(target[key], source[key]);\n }\n else {\n result[key] = source[key];\n }\n }\n }\n return result;\n}\n/**\n *\n * @param audienceId can be either userId or sessionId\n * @param testId can be either testId or experimentId\n * @returns number between [0, 1]\n */\nasync function getProjection(audienceId, testId) {\n const { h32 } = await (0,xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n const data = `${audienceId}:${testId}`;\n // compute hash\n const xxHash32 = h32(data, 0); // seed 0 explicitly\n // normalize to [0, 1]\n const projection = parseFloat((Number(xxHash32) / Number(MAX_HASH_32)).toFixed(2));\n if (projection < 0 || projection > 1) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`projection '${projection}' not between 0 and 1`, true);\n }\n return projection;\n}\nasync function getTreatment(test, projection) {\n let treatment = null;\n try {\n const url = `${_constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.t /*testsAPIEndpoint*/}/allocations?testId=${test.i /*testId*/}`;\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"text/plain\"\n }\n });\n switch (response.status) {\n case 200:\n let allocations = await response.json();\n // Handle malformed API responses\n if (!Array.isArray(allocations)) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Invalid API response: expected array, got ${typeof allocations}`);\n break;\n }\n if (allocations.length === 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Empty allocations array returned from API for testId '${test.i}'`);\n break;\n }\n let cumAlloc = 0;\n test.tm /*treatments*/.forEach(tr => {\n tr.a /*allocation*/ = allocations.find(alloc => alloc.i === tr.i /*id*/)?.a; // adds values to wrapperConfig.layouts[].tests[].treatment[]\n cumAlloc += tr.a /*allocation*/ ?? 0;\n if ((treatment === null) && (projection <= cumAlloc)) {\n treatment = tr;\n }\n });\n break;\n case 204:\n default:\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`http error! ${response.status} ${response.statusText}`);\n }\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('error fetching tests data in getTreatment():', false, error);\n }\n return treatment;\n}\n// export async function getTestAdSlots(layout: Layout): Promise<AdSlot[]> {\n// const adSlotOverridesMap: Map<string, AdSlotOverrides> = new Map();\n// const testPromises = layout.ts/*tests*/?.map(async test => {\n// // TODO: support multiple randomization method, userId vs. sessionId\n// const projection: number = await getProjection(getUserId(), test.i/*testId*/);\n// const treatment: Treatment | null = await getTreatment(test, projection);\n// if (treatment === null) {\n// consoleDebug(`unable to find treatment for testId '${test.i/*testId*/}' and projection: ${projection}, proceeding without tests ...`);\n// return;\n// }\n// consoleDebug(`test details testId: '${test.i/*testId*/}', projection: ${projection}, treatmentId: '${treatment.i/*id*/}'`);\n// // multiple tests can include same ad unit, but not override same attribute (1 level deep)\n// treatment.as/*adSlots*/.forEach((auo: AdSlotOverrides) => {\n// const tauo: AdSlotOverrides | undefined = adSlotOverridesMap.get(auo.g/*gam ad unit code*/);\n// adSlotOverridesMap.set(auo.g, {\n// g: auo.g, /* gam ad unit code */\n// o: (tauo?.o && auo.o) /* auctionTimeout */\n// ? (() => { throw new Error(`auctionTimeout defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.o ?? auo.o),\n// n: (tauo?.n && auo.n) /* insert */\n// ? (() => { throw new Error(`insert defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.n ?? auo.n),\n// m: (tauo?.m && auo.m) /* media */\n// ? (() => { throw new Error(`media defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.m ?? auo.m),\n// tg: (tauo?.tg && auo.tg) /* tagIds */\n// ? (() => { throw new Error(`tagIds defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.tg ?? auo.tg),\n// r: (tauo?.r && auo.r) /* refresh */\n// ? (() => { throw new Error(`refresh defined in multiple tests for ad unit '${auo.g}'`) })()\n// : (tauo?.r ?? auo.r),\n// l: (tauo?.l && auo.l) /* load */\n// ? (() => { throw new Error(`load defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.l ?? auo.l),\n// kv: (tauo?.kv && auo.kv) /* targetingKeyValues */\n// ? (() => { throw new Error(`targetingKeyValues defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.kv ?? auo.kv),\n// f: (tauo?.f && auo.f) /* price floor */\n// ? (() => { throw new Error(`floor defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.f ?? auo.f)\n// } as AdSlot);\n// });\n// }) ?? null;\n// if (testPromises) {\n// await Promise.all(testPromises);\n// }\n// const testAdSlots: AdSlot[] = [];\n// adSlotOverridesMap.forEach((auo: AdSlotOverrides) => {\n// const iau: AdSlot | undefined = layout.as /* ad slots */\n// .find(au => au.g === auo.g); /* gam ad unit code */\n// testAdSlots.push({\n// g: auo.g, /* gam ad unit code */\n// o: auo.o ?? iau?.o as number, /* auctionTimeout */\n// n: (auo.n || iau?.n) /* insert */\n// ? auo.n ?? iau?.n as Insert\n// : (() => { throw new Error(`insert not defined for test ad unit '${auo.g}'`) })(),\n// m: (auo.m || iau?.m) /* media */\n// ? auo.m ?? iau?.m as Media\n// : (() => { throw new Error(`media not defined for test ad unit '${auo.g}'`) })(),\n// tg: (auo.tg || iau?.tg) /* tagIds */\n// ? auo.tg ?? iau?.tg as TagId[]\n// : (() => { throw new Error(`tagIds not defined for test ad unit '${auo.g}'`) })(),\n// r: auo.r ?? iau?.r as Refresh, /* refresh */\n// l: (auo.l || iau?.l) /* load */\n// ? auo.l ?? iau?.l as Load\n// : (() => { throw new Error(`load not defined for test ad unit '${auo.g}'`) })(),\n// kv: auo.kv ?? iau?.kv as KeyValue, /* targetingKeyValues */\n// f: auo.f ?? iau?.f as number /* price floor */\n// } as AdSlot);\n// });\n// return testAdSlots;\n// }\nasync function getTestAdSlots(layout) {\n const adSlotOverridesMap = new Map();\n const testPromises = layout.ts?.map(async (test) => {\n const projection = await getProjection((0,_utils__WEBPACK_IMPORTED_MODULE_1__.getUserId)(), test.i);\n const treatment = await getTreatment(test, projection);\n if (treatment === null) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`unable to find treatment for testId '${test.i}' and projection: ${projection}, proceeding without tests ...`);\n return;\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`test details testId: '${test.i}', projection: ${projection}, treatmentId: '${treatment.i}'`);\n treatment.as.forEach((currentTreatmentOverride) => {\n const gamUnitCode = currentTreatmentOverride.g;\n const previouslyAccumulatedOverrides = adSlotOverridesMap.get(gamUnitCode);\n const effectiveOverridesForSlot = { g: gamUnitCode };\n const processProperty = (propName) => {\n const existingVal = previouslyAccumulatedOverrides?.[propName];\n const newValFromCurrentTreatment = currentTreatmentOverride[propName];\n if (newValFromCurrentTreatment !== undefined) {\n if (existingVal !== undefined) { // Property was already defined by a previous test's treatment\n const fieldName = String(propName) === 'o' ? 'auctionTimeout' : String(propName);\n // For 'o' (auctionTimeout), throw if it's defined again, regardless of value, to match test.\n if (String(propName) === 'o') {\n throw new Error(`${fieldName} defined in multiple tests for ad unit '${gamUnitCode}'`);\n }\n // For other properties, throw only if values are different.\n if (JSON.stringify(existingVal) !== JSON.stringify(newValFromCurrentTreatment)) {\n throw new Error(`${fieldName} defined differently in multiple tests for ad unit '${gamUnitCode}'`);\n }\n }\n effectiveOverridesForSlot[propName] = newValFromCurrentTreatment;\n }\n else if (existingVal !== undefined) {\n effectiveOverridesForSlot[propName] = existingVal;\n }\n };\n processProperty('o');\n processProperty('n');\n processProperty('m');\n processProperty('tg');\n processProperty('r');\n processProperty('l');\n processProperty('kv');\n processProperty('f');\n if (Object.keys(effectiveOverridesForSlot).length > 1) {\n adSlotOverridesMap.set(gamUnitCode, effectiveOverridesForSlot);\n }\n else {\n if (!previouslyAccumulatedOverrides || Object.keys(previouslyAccumulatedOverrides).length <= 1) {\n adSlotOverridesMap.delete(gamUnitCode);\n }\n }\n });\n }) ?? null;\n if (testPromises) {\n await Promise.all(testPromises);\n }\n const testAdSlots = [];\n adSlotOverridesMap.forEach((accumulatedOverrides) => {\n const initialAdSlot = layout.as.find(au => au.g === accumulatedOverrides.g);\n if (!initialAdSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Original ad slot not found for override: ${accumulatedOverrides.g}`);\n return;\n }\n const mergedSlot = deepMerge(initialAdSlot, accumulatedOverrides);\n if (!mergedSlot.n)\n throw new Error(`insert not defined for test ad unit '${mergedSlot.g}'`);\n if (!mergedSlot.m)\n throw new Error(`media not defined for test ad unit '${mergedSlot.g}'`);\n if (!mergedSlot.tg)\n throw new Error(`tagIds not defined for test ad unit '${mergedSlot.g}'`);\n if (!mergedSlot.l)\n throw new Error(`load not defined for test ad unit '${mergedSlot.g}'`);\n testAdSlots.push(mergedSlot);\n });\n return testAdSlots;\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/abTests.ts?")},"./src/auctionConductor.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setRegisterSlotWorker: () => (/* binding */ setRegisterSlotWorker),\n/* harmony export */ setServeAdWorker: () => (/* binding */ setServeAdWorker)\n/* harmony export */ });\n/* harmony import */ var _refreshEventHandlers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./refreshEventHandlers */ "./src/refreshEventHandlers.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./auctionState */ "./src/auctionState.ts");\n// file: wrapper/src/auctionConductor.ts\n\n\n\n\n\n/**\n *\n * auction is event based and conducted in 3 steps\n * 1) register ad slot after parent div element is added - setRegisterSlotWorker()\n * 2) start auction\n * 3)\n *\n */\n// register handler: to register ad slot after div has loaded in body\nfunction setRegisterSlotWorker(slot, window = globalThis.window) {\n const slot_div_id = slot?.getSlotElementId();\n if (!slot_div_id) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.consoleError)(\'setRegisterSlotWorker: Undefined slot element id, cannot register slot.\', false, slot);\n return;\n }\n const element = window.document.getElementById(slot_div_id);\n if (element) { // element already exists\n registerSlot(element);\n return;\n }\n if (window.document.body) { // page has already loaded\n setupMutationObserver(slot_div_id);\n }\n else {\n window.document.addEventListener(\'DOMContentLoaded\', () => {\n const element = window.document.getElementById(slot_div_id);\n if (element) { // element exists in dom now\n registerSlot(element);\n }\n else { // for future additions\n setupMutationObserver(slot_div_id);\n }\n });\n }\n // set up MutationObserver for future additions\n function setupMutationObserver(slot_div_id) {\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n const element = window.document.getElementById(slot_div_id);\n if (element) { // element exists in dom now\n observer.disconnect();\n registerSlot(element);\n return;\n }\n }\n });\n // start observing document for changes\n observer.observe(window.document.body, {\n childList: true, // listen for direct children added/removed\n subtree: true // listen for changes in the entire subtree\n });\n }\n function registerSlot(element) {\n googletag.cmd.push(() => {\n googletag.display(element.id); // called to register slot, disableInitialLoad() should still apply\n // fetch ads for "lazy" load ad units only\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.getAuctionEntry)(element.id);\n if (entry?.adSlot?.l /*load*/ === _types_enums__WEBPACK_IMPORTED_MODULE_2__.Load.Lazy) {\n setFetchAdWorker(element);\n }\n else {\n // register refresh handlers for "eager" load ad units\n (0,_refreshEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setRefreshWorker)(element.id);\n }\n });\n }\n}\n// meant to be called for "lazy" load ad slots only\nfunction setFetchAdWorker(element) {\n // check if intersection observer already exists for element\n const existingEntry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.getAuctionEntry)(element.id);\n if (existingEntry?.intersectionObserver) {\n return;\n }\n const options = {\n root: null, // element to intersect with browser viewport\n rootMargin: "1000px", // margin to grow or shrink intersection frame of root, default 100px (10% of most popular viewport 1080px)\n threshold: 0.0 // % element visible\n };\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if ((entry.intersectionRatio > 0) && !(0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.isAuctionInProgress)(element.id)) {\n // disconnect observer, set auction in progress\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.clearIntersectionObserver)(element.id);\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.setAuctionInProgress)(element.id, _types_enums__WEBPACK_IMPORTED_MODULE_2__.ServeType.Initial);\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.requestBids({\n // adslot element (div) id used as unique prebid adunit code\n adUnitCodes: [element.id],\n timeout: _constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.o /*auctionTimeout*/ // TODO: use adUnit level timeout when set\n });\n });\n // register refresh handlers for "lazy" load ad slots\n (0,_refreshEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setRefreshWorker)(element.id);\n }\n });\n }, options);\n // store observer instance in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.setIntersectionObserver)(element.id, observer);\n observer.observe(element);\n}\nfunction setServeAdWorker() {\n const pbjs = window.pbjs;\n pbjs.onEvent(\'auctionEnd\', (auction) => {\n // clear auction in progress flags for completed auction slots\n const renderAdSlotCodes = auction.adUnitCodes;\n renderAdSlotCodes.forEach(adUnitCode => {\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.clearAuctionInProgress)(adUnitCode);\n });\n googletag.cmd.push(() => {\n const renderSlots = googletag.pubads()\n .getSlots()\n // filter adslot element (div) id used as unique prebid adunit code\n .filter(slot => renderAdSlotCodes.includes(slot.getSlotElementId()));\n if (renderSlots.length > 0) {\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.setTargetingForGPTAsync(renderAdSlotCodes);\n googletag.pubads().refresh(renderSlots);\n });\n }\n });\n });\n // TODO: should this part be moved to a different function?\n pbjs.onEvent(\'bidWon\', (bid) => {\n const slot = googletag.pubads()\n .getSlots()\n // find by adslot element (div) id used as unique prebid adunit code\n .find(slot => slot.getSlotElementId() === bid.adUnitCode)\n ?? null;\n // TODO: add prefix to targeting keys to make it obvious that this is specific to our wrapper\n if (slot) {\n googletag.cmd.push(() => {\n slot.setTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.p /*targetKeyPrefix*/}_bidder_code`, bid.bidderCode);\n slot.setTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.p /*targetKeyPrefix*/}_cpm`, bid.cpm);\n slot.setTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.p /*targetKeyPrefix*/}_cpm_currency`, bid.currency);\n });\n }\n });\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/auctionConductor.ts?')},"./src/auctionState.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clearAllIntersectionObservers: () => (/* binding */ clearAllIntersectionObservers),\n/* harmony export */ clearAuctionInProgress: () => (/* binding */ clearAuctionInProgress),\n/* harmony export */ clearIntersectionObserver: () => (/* binding */ clearIntersectionObserver),\n/* harmony export */ deleteAuctionEntry: () => (/* binding */ deleteAuctionEntry),\n/* harmony export */ getAllAdSlots: () => (/* binding */ getAllAdSlots),\n/* harmony export */ getAllAuctionEntries: () => (/* binding */ getAllAuctionEntries),\n/* harmony export */ getAuctionEntry: () => (/* binding */ getAuctionEntry),\n/* harmony export */ isAuctionInProgress: () => (/* binding */ isAuctionInProgress),\n/* harmony export */ setAuctionEntry: () => (/* binding */ setAuctionEntry),\n/* harmony export */ setAuctionInProgress: () => (/* binding */ setAuctionInProgress),\n/* harmony export */ setIntersectionObserver: () => (/* binding */ setIntersectionObserver),\n/* harmony export */ updateAuctionEntry: () => (/* binding */ updateAuctionEntry)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n// file: wrapper/src/auctionState.ts\n\n// maps adUnit.code::adUnit.div to { adSlot, auctionId }\nconst adSlotAuctionMap = new Map();\nfunction getAuctionEntry(adUnitCode) {\n return adSlotAuctionMap.get(adUnitCode);\n}\nfunction getAllAuctionEntries() {\n return Array.from(adSlotAuctionMap.values());\n}\nfunction getAllAdSlots() {\n return getAllAuctionEntries()\n .map(entry => entry.adSlot)\n .filter((slot) => !!slot);\n}\nfunction setAuctionEntry(adUnitCode, entry) {\n adSlotAuctionMap.set(adUnitCode, entry);\n}\nfunction updateAuctionEntry(adUnitCode, updates) {\n const currentEntry = adSlotAuctionMap.get(adUnitCode) || {};\n adSlotAuctionMap.set(adUnitCode, {\n ...currentEntry,\n ...updates\n });\n}\nfunction deleteAuctionEntry(adUnitCode) {\n return adSlotAuctionMap.delete(adUnitCode);\n}\nfunction isAuctionInProgress(adUnitCode) {\n const entry = adSlotAuctionMap.get(adUnitCode);\n if (entry?.isAuctionInProgress) {\n const caller = new Error().stack?.split('\\n')[2]?.trim().split(' ')[1] || 'unknown';\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.consoleDebug)(`${caller}: Auction already in progress for slot, skipping`, adUnitCode);\n return true;\n }\n return false;\n}\nfunction setAuctionInProgress(adUnitCode, serveType, adSlot) {\n const entry = adSlotAuctionMap.get(adUnitCode) || { adSlot: adSlot };\n updateAuctionEntry(adUnitCode, {\n isAuctionInProgress: true,\n serveType: serveType\n });\n}\nfunction clearAuctionInProgress(adUnitCode) {\n const entry = adSlotAuctionMap.get(adUnitCode);\n if (entry) {\n updateAuctionEntry(adUnitCode, {\n isAuctionInProgress: false\n });\n }\n}\nfunction setIntersectionObserver(adUnitCode, observer) {\n updateAuctionEntry(adUnitCode, {\n intersectionObserver: observer\n });\n}\nfunction clearIntersectionObserver(adUnitCode) {\n const entry = adSlotAuctionMap.get(adUnitCode);\n if (entry?.intersectionObserver) {\n entry.intersectionObserver.disconnect();\n updateAuctionEntry(adUnitCode, {\n intersectionObserver: undefined\n });\n }\n}\nfunction clearAllIntersectionObservers() {\n adSlotAuctionMap.forEach((entry, adUnitCode) => {\n if (entry.intersectionObserver) {\n clearIntersectionObserver(adUnitCode);\n }\n });\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/auctionState.ts?")},"./src/audiences.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getUserBrowser: () => (/* binding */ getUserBrowser),\n/* harmony export */ getUserCountry: () => (/* binding */ getUserCountry),\n/* harmony export */ matchAudience: () => (/* binding */ matchAudience)\n/* harmony export */ });\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n// file: wrapper/src/audiences.ts\n\n\nfunction getUserBrowser() {\n const userAgent = navigator?.userAgent;\n if (!userAgent) {\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Unknown;\n }\n const ua = userAgent.toLowerCase();\n // check edge first, its ua string often includes \"chrome\"\n // modern edge uses \"edg/\", older edge used \"edge/\"\n if (ua.indexOf('edg/') > -1 || ua.indexOf('edge/') > -1 || ua.indexOf('edge') > -1) { // a bit more robust for edge\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Edge;\n }\n else if (ua.indexOf('chrome') > -1 && ua.indexOf('safari') > -1) {\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Chrome;\n }\n else if (ua.indexOf('safari') > -1) { // safari only (no \"chrome\" or \"edg\")\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Safari;\n }\n else if (ua.indexOf('firefox') > -1) {\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Firefox;\n }\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Unknown;\n}\nfunction getUserCountry() {\n let localeString;\n try {\n localeString = Intl.DateTimeFormat().resolvedOptions().locale;\n }\n catch (error) {\n localeString = undefined;\n }\n let localeCountryCode;\n if (localeString) {\n const parts = localeString.split('-');\n if (parts.length > 1) {\n localeCountryCode = parts[parts.length - 1]; // take last part\n }\n }\n const langString = navigator?.language;\n let langCountryCode;\n if (langString) {\n const parts = langString.split('-');\n if (parts.length > 1) {\n langCountryCode = parts[parts.length - 1]; // take last part\n }\n }\n // return uppercase country code if found\n if (localeCountryCode)\n return localeCountryCode.toUpperCase();\n if (langCountryCode)\n return langCountryCode.toUpperCase();\n return null;\n}\nfunction matchAudience(layout, window = globalThis.window) {\n for (const inc of layout.t /*targetAudience*/?.ic /*includes*/ ?? []) {\n if (inc.bw /*browser*/ && !inc.bw /*browser*/.includes(getUserBrowser()))\n return null;\n if (inc.dv /*device*/ && !inc.dv /*device*/.includes((0,_utils__WEBPACK_IMPORTED_MODULE_1__.getUserDevice)(window)))\n return null;\n if (inc.cy /*country*/ && !inc.cy /*country*/.includes(getUserCountry() ?? ''))\n return null;\n }\n for (const exc of layout.t /*targetAudience*/?.ex /*excludes*/ ?? []) {\n if (exc.bw /*browser*/ && exc.bw /*browser*/.includes(getUserBrowser()))\n return null;\n if (exc.dv /*device*/ && exc.dv /*device*/.includes((0,_utils__WEBPACK_IMPORTED_MODULE_1__.getUserDevice)(window)))\n return null;\n if (exc.cy /*country*/ && exc.cy /*country*/.includes(getUserCountry() ?? ''))\n return null;\n }\n return layout;\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/audiences.ts?")},"./src/bootstrap.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bootstrapWrapper: () => (/* binding */ bootstrapWrapper),\n/* harmony export */ initAdserver: () => (/* binding */ initAdserver),\n/* harmony export */ processAdSlots: () => (/* binding */ processAdSlots)\n/* harmony export */ });\n/* harmony import */ var _logEventHandlers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logEventHandlers */ "./src/logEventHandlers.ts");\n/* harmony import */ var _auctionConductor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./auctionConductor */ "./src/auctionConductor.ts");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./auctionState */ "./src/auctionState.ts");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logger */ "./src/logger.ts");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _abTests__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./abTests */ "./src/abTests.ts");\n/* harmony import */ var _audiences__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./audiences */ "./src/audiences.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n/* harmony import */ var _stickySlot__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./stickySlot */ "./src/stickySlot.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n// file: wrapper/src/bootstrap.ts\n\n\n\n\n\n\n\n\n\n\nfunction initAdserver(window = globalThis.window) {\n const googletag = window.googletag;\n const pbjs = window.pbjs;\n if (!googletag.pubads) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleError)(\'googletag (google publisher tag) did not load properly...\', false, window);\n return;\n }\n if (pbjs.initAdserverSet)\n return;\n pbjs.initAdserverSet = true;\n googletag.cmd.push(() => {\n if (pbjs.setTargetingForGPTAsync) {\n pbjs.setTargetingForGPTAsync();\n googletag.pubads().refresh();\n }\n else {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleError)(\'Prebid did not load properly: setTargetingForGPTAsync is undefined\', false, window);\n googletag.pubads().refresh(); // fallback to direct googletag refresh\n //TODO log error\n }\n });\n}\nfunction processAdSlots(adSlots, window = globalThis.window) {\n const pbjs = window.pbjs;\n const googletag = window.googletag;\n pbjs.que.push(() => {\n // add all ad units to prebid auction, update auction map\n const pbjsAdUnits = [];\n adSlots.forEach(adSlot => {\n const adUnitCode = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getSlotDivId)(adSlot);\n // create prebid ad unit\n const pbjsAdUnit = {\n code: adUnitCode, // adslot element (div) id used as unique prebid adunit code\n div: adUnitCode,\n mediaTypes: {\n banner: {\n sizes: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getMediaSizes)(adSlot.m /*media*/, window)\n }\n },\n bids: adSlot.tg /*tagIds*/.map(tagId => ({\n bidder: tagId.b /*bidder*/,\n params: tagId.pm /*params*/\n }))\n };\n pbjsAdUnits.push(pbjsAdUnit);\n // set pbjs registered status in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.updateAuctionEntry)(adUnitCode, {\n adSlot: adSlot,\n adUnit: pbjsAdUnit\n });\n });\n // add all units to prebid\n if (pbjsAdUnits.length > 0) {\n pbjs.addAdUnits(pbjsAdUnits);\n }\n // start prebid auction for "eager" load ad slots\n var adUnitCodes = adSlots\n .filter(slot => [_types_enums__WEBPACK_IMPORTED_MODULE_9__.Load.Eager, _types_enums__WEBPACK_IMPORTED_MODULE_9__.Load.Dynamic, _types_enums__WEBPACK_IMPORTED_MODULE_9__.Load.OnDemand].includes(slot.l /*load*/)) // filter ad unit codes for immediate auction\n .map(slot => (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getSlotDivId)(slot)); // return prebid adunit codes (adslot div ids)\n // filter out slots with auctions in progress and set flags for valid slots\n const validAdUnitCodes = adUnitCodes.filter(adUnitCode => {\n if ((0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.isAuctionInProgress)(adUnitCode)) {\n return false;\n }\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.setAuctionInProgress)(adUnitCode, _types_enums__WEBPACK_IMPORTED_MODULE_9__.ServeType.Initial);\n return true;\n });\n if (validAdUnitCodes.length > 0) {\n pbjs.requestBids({\n adUnitCodes: validAdUnitCodes,\n timeout: _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.o /*auctionTimeout*/\n });\n }\n });\n googletag.cmd.push(() => {\n adSlots\n .forEach((adSlot) => {\n var sizes = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getMediaSizes)(adSlot.m /*media*/, window);\n const divId = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getSlotDivId)(adSlot);\n const gptSlot = googletag\n .defineSlot(adSlot.g /*gamAdUnitCode*/, sizes, divId)\n ?.addService(googletag.pubads());\n if (gptSlot) {\n // set googletag slot in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.updateAuctionEntry)(divId, {\n gptSlot: gptSlot\n });\n // slot level targeting (google publisher tag)\n Object.entries(adSlot.kv /*targetKeyValues*/ || {}).forEach(([key, value]) => {\n gptSlot.setTargeting(key, value);\n });\n if (adSlot.f /*price floor*/) {\n gptSlot.setTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.p /*targetKeyPrefix*/}_floor`, adSlot.f /*price floor*/.toString());\n }\n if (adSlot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_9__.Anchor.Window) {\n (0,_stickySlot__WEBPACK_IMPORTED_MODULE_8__.setInsertSlotWorker)(adSlot, window); // add ad slot element to body before registering slot\n }\n (0,_auctionConductor__WEBPACK_IMPORTED_MODULE_1__.setRegisterSlotWorker)(gptSlot, window);\n }\n });\n });\n}\nasync function bootstrapWrapper(window = globalThis.window) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleDebug)("app info" +\n "\\n name: " + "app-p80918ac8127ba.js" +\n "\\n version: " + "0.0.55" +\n "\\n build date: " + "2025-08-14T05:03:26.455Z", window);\n // check config domain covers publisher domain\n const secondLevelDomain = window.location.hostname.split(\'.\').slice(-2).join(\'.\');\n const thirdLevelDomain = window.location.hostname.split(\'.\').slice(-3).join(\'.\');\n const sldHash = await (0,_utils__WEBPACK_IMPORTED_MODULE_4__.generateHash)(secondLevelDomain, 13);\n const tldHash = await (0,_utils__WEBPACK_IMPORTED_MODULE_4__.generateHash)(thirdLevelDomain, 13);\n if (![sldHash, tldHash].includes(_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.d /*domain*/)) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleError)(`inventory defined for different domain with ID \'${_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.d /*domain*/}\', no ads will be served`, false, window);\n return;\n }\n //TODO: check wrapper version compatibility with config version\n // in case pbjs does not load, ensure googletag.pubads().refresh() is called\n setTimeout(() => {\n initAdserver(window);\n }, _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.f /*failsafeTimeout*/);\n const pbjs = window.pbjs;\n const googletag = window.googletag;\n pbjs.que.push(() => {\n pbjs.initAdserverSet = true; // execute first once pbjs setup is complete\n pbjs.setConfig({\n currency: {\n adServerCurrency: _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.c /*currencyCode*/ || \'USD\',\n // prebid.org maintained currency file, updated daily\n conversionUrl: \'https://cdn.example.com/currency/latest.json\',\n // fallback rates if needed\n // rates: wrapperConfig.cr/*currencyRates*/ || {}\n },\n priceGranularity: {\n buckets: _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.pb /*priceBuckets*/.map((bucket) => ({\n min: Number(bucket.f /*floor*/),\n max: Number(bucket.c /*ceiling*/),\n increment: Number(bucket.s /*step*/),\n }))\n },\n });\n // register event handlers and workers early\n (0,_logger__WEBPACK_IMPORTED_MODULE_3__.initLogger)(window);\n (0,_logEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setDocumentEventLogHandlers)(window);\n (0,_logEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setAuctionEventLogHandlers)(window);\n // ensure googletag api is ready before registering log handlers for googletag events\n googletag.cmd.push(() => {\n (0,_logEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setGPTEventLogHandlers)(window);\n });\n (0,_auctionConductor__WEBPACK_IMPORTED_MODULE_1__.setServeAdWorker)();\n });\n googletag.cmd.push(() => {\n googletag.pubads().disableInitialLoad();\n });\n // filter layouts applicable to current page\n const layouts = (_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.ly /*layout*/\n ?.filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_4__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/))\n ?.filter((ly) => (0,_audiences__WEBPACK_IMPORTED_MODULE_6__.matchAudience)(ly, window) !== null)) ?? [];\n // exclude ad slots that are overriden in any tests\n const layoutFilteredAdSlots = layouts\n .flatMap(ly => {\n const testAdSlotCodes = new Set(ly.ts /*tests*/?.flatMap(test => test.tm /*treatments*/.flatMap(treatment => treatment.as /*adSlots*/.map(adUnit => adUnit.g /*gamAdUnitCode*/) // TODO: move from gam ad unit code to ad slot div id??\n )) || []);\n return ly.as /*adSlots*/.filter(adUnit => !testAdSlotCodes.has(adUnit.g /*gamAdUnitCode*/));\n });\n [\n ...layoutFilteredAdSlots,\n ..._constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.as /*adSlots*/, // config ad slots override layout ad slots\n ].forEach((adSlot) => {\n const key = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getSlotDivId)(adSlot);\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.updateAuctionEntry)(key, {\n adSlot: adSlot\n });\n });\n if ((0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.getAllAuctionEntries)().length === 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleDebug)(`no ad slots defined for pagepath \'${window.location.pathname}\' (no matching layouts or global slots), ads will not be served`, window);\n return;\n }\n processAdSlots((0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.getAllAdSlots)(), window);\n googletag.cmd.push(() => {\n // page-level targeting (google publisher tag)\n const allPageLevelTargeting = Object.values(layouts)\n .map(layout => layout.kv /*pageTargetingKeyValues*/ || {})\n .reduce((acc, kv) => ({ ...acc, ...kv }), {}); // merge all kv objects\n Object.entries(allPageLevelTargeting).forEach(([key, value]) => {\n googletag.pubads().setTargeting(key, value);\n });\n });\n // retrieve test ad units meant for user\n const testAdSlots = (await Promise.all(layouts\n .filter((layout) => layout.ts /*tests*/)\n .map((layout) => (0,_abTests__WEBPACK_IMPORTED_MODULE_5__.getTestAdSlots)(layout))))\n .flat();\n if (testAdSlots.length > 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleDebug)(\'test ad slots found will be served\', testAdSlots, window);\n processAdSlots(testAdSlots, window);\n }\n googletag.cmd.push(() => {\n googletag.pubads().enableSingleRequest(); // all ad slots should be defined and added to service before\n googletag.enableServices();\n });\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/bootstrap.ts?')},"./src/constants/config.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ wrapperConfig: () => (/* binding */ wrapperConfig)\n/* harmony export */ });\nconst wrapperConfig = __webpack_require__(/*! ../builds/80918AC8127BA/0.0.55/config-d80918ac8127ba-v0-0-55.json */ "../builds/80918AC8127BA/0.0.55/config-d80918ac8127ba-v0-0-55.json");\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/constants/config.ts?')},"./src/constants/loggerEndpoints.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AD_IMPRESSION_ENDPOINT: () => (/* binding */ AD_IMPRESSION_ENDPOINT),\n/* harmony export */ AD_SERVE_ENDPOINT: () => (/* binding */ AD_SERVE_ENDPOINT),\n/* harmony export */ AD_UNFILLED_ENDPOINT: () => (/* binding */ AD_UNFILLED_ENDPOINT),\n/* harmony export */ AD_VIEWABLE_ENDPOINT: () => (/* binding */ AD_VIEWABLE_ENDPOINT),\n/* harmony export */ AUCTION_END_ENDPOINT: () => (/* binding */ AUCTION_END_ENDPOINT),\n/* harmony export */ AUCTION_INIT_ENDPOINT: () => (/* binding */ AUCTION_INIT_ENDPOINT),\n/* harmony export */ BATCH_ENDPOINT: () => (/* binding */ BATCH_ENDPOINT),\n/* harmony export */ BID_REJECT_ENDPOINT: () => (/* binding */ BID_REJECT_ENDPOINT),\n/* harmony export */ BID_RESPONSE_ENDPOINT: () => (/* binding */ BID_RESPONSE_ENDPOINT),\n/* harmony export */ BID_TIMEOUTS_ENDPOINT: () => (/* binding */ BID_TIMEOUTS_ENDPOINT),\n/* harmony export */ BID_WON_ENDPOINT: () => (/* binding */ BID_WON_ENDPOINT),\n/* harmony export */ LOGGER_API_PATH: () => (/* binding */ LOGGER_API_PATH),\n/* harmony export */ LOGGER_API_V1_PATH: () => (/* binding */ LOGGER_API_V1_PATH),\n/* harmony export */ PAGE_VIEW_ENDPOINT: () => (/* binding */ PAGE_VIEW_ENDPOINT)\n/* harmony export */ });\n// file: wrapper/src/constants/loggerEndpoints.ts\nconst LOGGER_API_PATH = '/api/logger';\nconst LOGGER_API_V1_PATH = `${LOGGER_API_PATH}/v1`;\n// batch events\nconst BATCH_ENDPOINT = '/batch';\n// page events\nconst PAGE_VIEW_ENDPOINT = '/page/view';\n// auction events\nconst AUCTION_INIT_ENDPOINT = '/auction/init';\nconst AUCTION_END_ENDPOINT = '/auction/end';\n// bid events\nconst BID_RESPONSE_ENDPOINT = '/bid/response';\nconst BID_WON_ENDPOINT = '/bid/won';\nconst BID_REJECT_ENDPOINT = '/bid/reject';\nconst BID_TIMEOUTS_ENDPOINT = '/bid/timeouts';\n// ad serve events\nconst AD_SERVE_ENDPOINT = '/ad/serve';\nconst AD_IMPRESSION_ENDPOINT = '/ad/impression';\nconst AD_VIEWABLE_ENDPOINT = '/ad/viewable';\nconst AD_UNFILLED_ENDPOINT = '/ad/unfilled';\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/constants/loggerEndpoints.ts?")},"./src/dynamicSlot.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ deleteDynamicAdSlot: () => (/* binding */ deleteDynamicAdSlot),\n/* harmony export */ dynamicSlotId: () => (/* binding */ dynamicSlotId),\n/* harmony export */ insertAdSlot: () => (/* binding */ insertAdSlot),\n/* harmony export */ insertStickyAdSlot: () => (/* binding */ insertStickyAdSlot),\n/* harmony export */ setDynamicSlotHandler: () => (/* binding */ setDynamicSlotHandler)\n/* harmony export */ });\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./auctionState */ \"./src/auctionState.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants/config */ \"./src/constants/config.ts\");\n/* harmony import */ var _stickySlot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stickySlot */ \"./src/stickySlot.ts\");\n/* harmony import */ var _bootstrap__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./bootstrap */ \"./src/bootstrap.ts\");\n// file: wrapper/src/dynamicSlot.ts\n\n\n\n\n\n\nconst dynamicSlotId = (ref, divId) => `ad-slot-${ref}-${divId}`;\nfunction setDynamicSlotHandler() {\n // setup event listener for new elements to have been added or getting close to view, and invoke insertDynamicAdSlot() when applicable\n // invoke deleteDynamicSlot() when dynamic ad slot far from view port\n}\nfunction insertAdSlot(divId, reference, window = globalThis.window) {\n const refElement = window.document.getElementById(divId);\n if (refElement === null) {\n throw new Error('could not find element for divId in insertDynamicSlot(): ' + divId);\n }\n const parentElement = refElement.parentElement;\n // filter layouts applicable to current page\n const layouts = _constants_config__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.ly /*layout*/\n .filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_2__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/));\n // find matching sticky ad slot (Dynamic or OnDemand load types, Window anchor)\n const adSlot = _constants_config__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.as /*adSlots*/\n .concat(layouts.flatMap(ly => ly.as /*adSlots*/))\n .find(slot => slot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_0__.Anchor.DynamicElement &&\n [_types_enums__WEBPACK_IMPORTED_MODULE_0__.Load.Dynamic, _types_enums__WEBPACK_IMPORTED_MODULE_0__.Load.OnDemand].includes(slot.l /*load*/) &&\n slot.n /*insert*/.d /*divId*/ === parentElement?.id &&\n slot.n /*insert*/.r /*reference*/ === reference);\n if (!adSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`no dynamic ad slot config defined for element id '${parentElement?.id}'`, window);\n return;\n }\n // create the ad slot div\n const slotDiv = window.document.createElement('div');\n slotDiv.id = dynamicSlotId(reference, divId);\n slotDiv.className = 'ad-anchor';\n slotDiv.innerHTML = 'Advertisement';\n // insert the ad slot div based on reference\n switch (reference) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.ElementReference.Before:\n refElement.before(slotDiv);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.ElementReference.After:\n refElement.after(slotDiv);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.ElementReference.Inside:\n refElement.appendChild(slotDiv);\n break;\n }\n (0,_bootstrap__WEBPACK_IMPORTED_MODULE_5__.processAdSlots)([adSlot], window);\n}\nfunction insertStickyAdSlot(reference, window = globalThis.window) {\n // filter layouts applicable to current page\n const layouts = _constants_config__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.ly /*layout*/\n .filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_2__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/));\n // find matching sticky ad slot (Dynamic or OnDemand load types, Window anchor)\n const adSlot = _constants_config__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.as /*adSlots*/\n .concat(layouts.flatMap(ly => ly.as /*adSlots*/))\n .find(slot => slot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_0__.Anchor.Window &&\n [_types_enums__WEBPACK_IMPORTED_MODULE_0__.Load.Dynamic, _types_enums__WEBPACK_IMPORTED_MODULE_0__.Load.OnDemand].includes(slot.l /*load*/) &&\n slot.n /*insert*/.r /*reference*/ === reference);\n if (!adSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`no dynamic sticky ad slot config defined for reference '${reference}'`, window);\n return;\n }\n // create sticky slot\n (0,_stickySlot__WEBPACK_IMPORTED_MODULE_4__.addStickySlot)(adSlot.n /*insert*/, window);\n (0,_bootstrap__WEBPACK_IMPORTED_MODULE_5__.processAdSlots)([adSlot], window);\n}\nfunction deleteDynamicAdSlot(divId, window = globalThis.window) {\n // get dynamic slot data\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_1__.getAuctionEntry)(divId);\n // clean up auction map, googletag and prebid\n if (entry) {\n if (entry.gptSlot) {\n const googletag = window.googletag;\n if (googletag) {\n googletag.cmd.push(() => {\n googletag.destroySlots([entry.gptSlot]);\n });\n }\n }\n if (entry.adUnit) {\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.removeAdUnit(entry.adUnit.code);\n });\n }\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_1__.deleteAuctionEntry)(divId);\n }\n else {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`No dynamic slot found for divId: ${divId}`, window);\n }\n // TODO: remove any handlers associated with this slot\n // remove element from dom, even if not in auction map\n const element = window.document.getElementById(divId);\n if (element) {\n element.remove();\n }\n else {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`No element found for divId: ${divId}`, window);\n }\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/dynamicSlot.ts?")},"./src/index.ts":(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval("\n// file: wrapper/src/index.ts\nconst WRAPPER_VERSION = '0.1';\n// queue to execute ad server tasks in order\nwindow.googletag = window.googletag || { cmd: [] };\n// queue to execute auction tasks in order\nwindow.pbjs = window.pbjs || { que: [] };\n// window.__gpp = {\n// getSection: function(sectionId, callback) {\n// callback({\n// gppString: 'DBABMA~CPXxRfAPXxRfABABQBENB-CgAAAAAAAAAAAAAAAAAAA.YAAAAAAAAAA',\n// applicableSections: ['tcfeu', 'usca'], // GDPR and US Privacy\n// });\n// },\n// };\nPromise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./bootstrap */ \"./src/bootstrap.ts\")).then(({ bootstrapWrapper }) => {\n bootstrapWrapper().catch(error => {\n console.error('Wrapper bootstrap failed:', error);\n });\n});\n// anchor to view_port (sticky ads) -- always loaded eager\n// anchor to static_content (standard ads) -- loaded eager or lazy\n// anchor to dynamic_content; --\x3e div id regex or class name -- loaded lazy\n// ad slots can be insertion can be on page content, sticky, and dynamic\n// ads can be loaded -- eager or lazy\n//TODOs\n//for eager slots auction can end before winner has been declared from bid responses\n//auction end includes array of bid responses\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/index.ts?")},"./src/logEventHandlers.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setAuctionEventLogHandlers: () => (/* binding */ setAuctionEventLogHandlers),\n/* harmony export */ setDocumentEventLogHandlers: () => (/* binding */ setDocumentEventLogHandlers),\n/* harmony export */ setGPTEventLogHandlers: () => (/* binding */ setGPTEventLogHandlers)\n/* harmony export */ });\n/* harmony import */ var _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logObjectBuilder */ \"./src/logObjectBuilder.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logger */ \"./src/logger.ts\");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auctionState */ \"./src/auctionState.ts\");\n/* harmony import */ var _constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants/loggerEndpoints */ \"./src/constants/loggerEndpoints.ts\");\n// file: wrapper/src/logEventHandlers.ts\n\n\n\n\n\nfunction setAuctionEventLogHandlers(window = globalThis.window) {\n const pbjs = window.pbjs;\n pbjs.onEvent('auctionInit', (auction) => {\n try {\n //TODO add debug condition for log\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.auctionInit', auction);\n // update auction map with latest auction ids\n if (auction?.adUnits && Array.isArray(auction.adUnits)) {\n auction.adUnits.forEach((adUnit) => {\n const key = adUnit.div; // TODO: use adUnit.adUnitId instead of adUnit.div ?\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.updateAuctionEntry)(key, {\n pbAuctionId: auction.auctionId,\n pbAdUnitId: adUnit.adUnitId,\n pbTransactionId: adUnit.transactionId\n });\n });\n }\n const auctionInit = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.auctionInitObject(auction);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AUCTION_INIT_ENDPOINT, auctionInit, window);\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in auctionInit handler', false, window, error);\n }\n });\n pbjs.onEvent('bidResponse', (bid) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidResponse', bid);\n const bidResponse = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidResponseObject(bid);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.BID_RESPONSE_ENDPOINT, bidResponse, window);\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in bidResponse handler', false, window, error);\n }\n });\n pbjs.onEvent('bidWon', (bid) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidWon', bid);\n const bidWon = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidWonObject(bid);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.BID_WON_ENDPOINT, bidWon, window);\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in bidWon handler', false, window, error);\n }\n });\n pbjs.onEvent('bidRejected', (bid) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidRejected', bid);\n const bidRejected = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidRejectedObject(bid, Date.now() /*utc timestamp*/);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.BID_REJECT_ENDPOINT, bidRejected, window);\n });\n pbjs.onEvent('bidTimeout', (bids) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidTimeout', bids);\n const bidTimeout = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidTimeoutObjects(bids);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.BID_TIMEOUTS_ENDPOINT, bidTimeout, window);\n });\n pbjs.onEvent('auctionEnd', (auction) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.auctionEnd', auction);\n const auctionEnd = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.auctionEndObject(auction);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AUCTION_END_ENDPOINT, auctionEnd, window);\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in auctionEnd handler', false, window, error);\n }\n });\n pbjs.onEvent('adRenderSucceeded', (data) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.adRenderSucceeded', data);\n const adServe = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adServeObject(data.bid, { serveStatus: 'SUCCESS', serveTimestamp: Date.now() /*utc timestamp*/, failReason: null });\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_SERVE_ENDPOINT, adServe, window);\n });\n pbjs.onEvent('adRenderFailed', (data) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.adRenderFailed', data);\n const adServe = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adServeObject(data.bid, { serveStatus: 'FAIL', failReason: data.reason, serveTimestamp: null });\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_SERVE_ENDPOINT, adServe, window);\n });\n}\nfunction setDocumentEventLogHandlers(window = globalThis.window) {\n if (window.document.readyState === 'loading') {\n window.document.addEventListener('DOMContentLoaded', logPageView);\n }\n else {\n // DOMContentLoaded already fired, call function immediately\n logPageView();\n }\n function logPageView() {\n const pageView = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.pageViewObject(window);\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pageView', pageView);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.PAGE_VIEW_ENDPOINT, pageView, window);\n }\n}\nfunction setGPTEventLogHandlers(window = globalThis.window) {\n googletag.pubads().addEventListener('slotRequested', (event) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.slotRequested', event);\n // save auction ids to served when slot is requested\n if (!event.slot || typeof event.slot.getSlotElementId !== 'function') {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Invalid slot in slotRequested event', false, window, event);\n return;\n }\n const slotId = event.slot.getSlotElementId();\n const current = (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(slotId);\n if (current?.pbAuctionId) {\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.updateAuctionEntry)(slotId, {\n pbServedAuctionId: current.pbAuctionId,\n pbServedAdUnitId: current.pbAdUnitId,\n pbServedTransactionId: current.pbTransactionId\n });\n }\n });\n googletag.pubads().addEventListener('slotResponseReceived', (event) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.slotResponseReceived', event);\n });\n googletag.pubads().addEventListener('slotRenderEnded', (event) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.SlotRenderEndedEvent', event);\n if (event.isEmpty) { // no impression\n const adUnfilled = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adUnfilledObject(event.slot, Date.now() /*utc timestamp*/);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_UNFILLED_ENDPOINT, adUnfilled, window);\n }\n else { //impression\n // TODO: look into slot renders with sizes 1x1\n // if (event.size && (event.size[0] === 1 && event.size[1] === 1)) {\n // ignore pixel renders\n // }\n // else {\n const adImpression = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adImpressionObject(event, Date.now()); /* UTC timestamp */\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_IMPRESSION_ENDPOINT, adImpression, window);\n // }\n }\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in slotRenderEnded handler', false, window, error);\n }\n });\n googletag.pubads().addEventListener(\"impressionViewable\", (event) => {\n try {\n if (!event.slot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Invalid slot in impressionViewable event', false, window, event);\n return;\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.ImpressionViewableEvent', event, event.slot.getResponseInformation ? event.slot.getResponseInformation() : 'no response info');\n if (typeof event.slot.getSlotElementId !== 'function') {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Invalid slot.getSlotElementId in impressionViewable event', false, window, event);\n return;\n }\n const slotId = event.slot.getSlotElementId();\n const slotDiv = window.document.getElementById(slotId);\n const iframe = slotDiv?.querySelector('iframe') ?? null;\n const size = iframe?.width + 'x' + iframe?.height;\n if (size === '1x1') {\n // ignore pixel renders\n }\n else {\n const adView = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adViewableObject(event.slot, Date.now() /*utc timestamp*/);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_VIEWABLE_ENDPOINT, adView, window);\n }\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in impressionViewable handler', false, window, error);\n }\n });\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/logEventHandlers.ts?")},"./src/logObjectBuilder.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ adImpressionObject: () => (/* binding */ adImpressionObject),\n/* harmony export */ adServeObject: () => (/* binding */ adServeObject),\n/* harmony export */ adUnfilledObject: () => (/* binding */ adUnfilledObject),\n/* harmony export */ adViewableObject: () => (/* binding */ adViewableObject),\n/* harmony export */ auctionEndObject: () => (/* binding */ auctionEndObject),\n/* harmony export */ auctionInitObject: () => (/* binding */ auctionInitObject),\n/* harmony export */ bidRejectedObject: () => (/* binding */ bidRejectedObject),\n/* harmony export */ bidResponseObject: () => (/* binding */ bidResponseObject),\n/* harmony export */ bidTimeoutObjects: () => (/* binding */ bidTimeoutObjects),\n/* harmony export */ bidWonObject: () => (/* binding */ bidWonObject),\n/* harmony export */ pageViewObject: () => (/* binding */ pageViewObject)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _audiences__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./audiences */ "./src/audiences.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auctionState */ "./src/auctionState.ts");\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! uuid */ "../node_modules/uuid/dist/esm-browser/v4.js");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n// file: wrapper/src/logObjectBuilder.ts\n\n\n\n\n\n\nconst page_view_id = (0,uuid__WEBPACK_IMPORTED_MODULE_5__["default"])();\nfunction pageViewObject(window = globalThis.window) {\n // TODO: return timezone when locale unavailable\n const pageView = {\n page_view_id: page_view_id,\n app_ver: "0.0.55",\n view_start_time: Date.now(),\n domain: window.location.hostname,\n page_path: window.location.pathname,\n session_id: (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSessionId)(),\n user_id: (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getUserId)(),\n device: {\n user_agent: navigator.userAgent,\n language: navigator.language,\n mobile: (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getUserDevice)(window) === _types_enums__WEBPACK_IMPORTED_MODULE_2__.Device.Mobile,\n view_port: {\n width: window.innerWidth,\n height: window.innerHeight\n },\n geo_location: (0,_audiences__WEBPACK_IMPORTED_MODULE_1__.getUserCountry)()\n }\n };\n return pageView;\n}\nfunction auctionInitObject(auction) {\n const auctionInit = {\n page_view_id: page_view_id,\n pb_auction_id: auction.auctionId,\n auction_start_time: auction.timestamp, /* UTC timestamp */\n auction_end_time: null, /* UTC timestamp */\n ad_slots: []\n };\n auction.adUnits.forEach((adUnit) => {\n const bidderCodes = adUnit.bids.map((bid) => bid.bidder);\n const key = adUnit.div;\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key) ?? {};\n const adSlot = entry.adSlot ?? null;\n if (!adSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.consoleDebug)(`[auctionInitObject] no ad slot match for divId=\'${adUnit.div}\'`, adUnit, (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAllAuctionEntries)());\n }\n const layoutIds = _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.ly /*layouts*/\n .filter((layout) => layout.as /*adSlots*/.some((slot) => slot.i /*id*/ === adSlot?.i /*id*/))\n .map((layout) => layout.i /*id*/);\n auctionInit.ad_slots.push({\n pb_adunit_id: adUnit.adUnitId ?? null,\n pb_transaction_id: adUnit.transactionId ?? null,\n adslot_id: adSlot?.i /*id*/ ?? null,\n layout_ids: layoutIds,\n adunit_code: adSlot?.g /*gamAdUnitCode*/ ?? null,\n div_id: adUnit.div,\n price_floor: adSlot?.f /*priceFloor*/ ?? null,\n price_floor_currency: adSlot?.c /*priceFloorCurrency*/ ?? null,\n deal_id: null,\n pb_bidder_codes: bidderCodes,\n serve_type: entry?.serveType ?? null\n });\n });\n return auctionInit;\n}\nfunction bidResponseObject(bid) {\n const bidResponse = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n cpm: bid.cpm ? bid.cpm : null, // TODO handle scenario if bidder responds with 0\n cpm_currency: bid.currency,\n size: bid.size,\n deal_id: bid.dealId ? bid.dealId : null,\n time_to_respond: bid.timeToRespond\n };\n return bidResponse;\n}\nfunction bidWonObject(bid) {\n const bidWon = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n cpm: bid.cpm,\n cpm_currency: bid.currency,\n size: bid.size,\n response_timestamp: bid.responseTimestamp /* UTC timestamp */\n };\n return bidWon;\n}\nfunction bidTimeoutObjects(bids) {\n const bidTimeouts = new Array();\n bids.forEach(bid => {\n bidTimeouts.push({\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidder,\n timeout: 0 //TODO bid.timeout not populated, need to figure out why\n });\n });\n return bidTimeouts;\n}\nfunction bidRejectedObject(bid, adRejectTimestamp) {\n const bidRejected = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n cpm: bid.cpm ? bid.cpm : null,\n cpm_currency: bid.currency,\n size: bid.width + \'x\' + bid.height,\n deal_id: bid.dealId,\n reject_reason: bid.rejectionReason ? bid.rejectionReason : \'\',\n reject_timestamp: adRejectTimestamp, /* UTC timestamp */\n };\n return bidRejected;\n}\nfunction adServeObject(bid, ad) {\n const adServe = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n ad_id: bid.adId,\n bid_cpm: bid.cpm,\n bid_cpm_currency: bid.currency,\n size: bid.size,\n status: ad.serveStatus,\n fail_reason: ad.failReason,\n ad_serve_timestamp: ad.serveTimestamp, /* UTC timestamp */\n };\n return adServe;\n}\nfunction auctionEndObject(auction) {\n if (!auction.auctionId || !auction.auctionEnd || !auction.auctionStatus) {\n throw new Error(\'invalid parameter auction in auctionEndObject()\');\n }\n const auctionEnd = {\n pb_auction_id: auction.auctionId,\n auction_end_time: auction.auctionEnd, /* UTC timestamp */\n end_state: auction.auctionStatus\n };\n return auctionEnd;\n}\nfunction adImpressionObject(event, adImpressionTimestamp) {\n // const size: [number, number] = event.size;\n const size = event?.size ? `${event.size[0]}x${event.size[1]}` : \'\';\n const key = event.slot.getSlotElementId();\n const adImpression = {\n pb_auction_id: (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key)?.pbServedAuctionId ?? null,\n pb_transaction_id: (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key)?.pbServedTransactionId ?? null,\n advertiser_id: event.advertiserId,\n campaign_id: event.campaignId,\n creative_id: event.creativeId,\n line_item_id: event.lineItemId,\n hb_bidder_code: event.slot.getTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.p /*targetKeyPrefix*/}_bidder_code`)?.[0] ?? null,\n hb_cpm: event.slot.getTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.p /*targetKeyPrefix*/}_cpm`)?.[0] || null,\n hb_cpm_currency: event.slot.getTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.p /*targetKeyPrefix*/}_cpm_currency`)?.[0] ?? null,\n size: size,\n ad_impression_timestamp: adImpressionTimestamp /* UTC timestamp */\n };\n return adImpression;\n}\nfunction adUnfilledObject(slot, adUnfilledTimestamp) {\n const key = slot.getSlotElementId();\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key) ?? {};\n const adUnfilled = {\n pb_auction_id: entry.pbServedAuctionId ?? null,\n pb_transaction_id: entry.pbServedTransactionId ?? null,\n ad_unfilled_timestamp: adUnfilledTimestamp /* UTC timestamp */\n };\n return adUnfilled;\n}\nfunction adViewableObject(slot, adViewableTimestamp) {\n const key = slot.getSlotElementId();\n const adViewable = {\n pb_auction_id: (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key)?.pbServedAuctionId ?? null,\n pb_transaction_id: (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key)?.pbServedTransactionId ?? null,\n ad_viewable_timestamp: adViewableTimestamp /* UTC timestamp */\n };\n return adViewable;\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/logObjectBuilder.ts?')},"./src/logger.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ flushQue: () => (/* binding */ flushQue),\n/* harmony export */ initLogger: () => (/* binding */ initLogger),\n/* harmony export */ logEvent: () => (/* binding */ logEvent)\n/* harmony export */ });\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants/config */ \"./src/constants/config.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants/loggerEndpoints */ \"./src/constants/loggerEndpoints.ts\");\n// file: wrapper/src/logger.ts\n\n\n\n\nconst loggerAPIEndpoint = `https://${_constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.e}${_constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.p /*apiPath*/}`;\n// module state\nlet eventQue = [];\nlet timeoutId = null;\nlet logMode = _types_enums__WEBPACK_IMPORTED_MODULE_2__.LogMode.Async;\nfunction initLogger(window = globalThis.window) {\n // follow config log mode\n const setLogMode = () => {\n logMode = _constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.m /*mode*/;\n if (logMode === _types_enums__WEBPACK_IMPORTED_MODULE_2__.LogMode.Sync) {\n flushQue(); // flush events before page load\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`Page loaded, log mode '${logMode}' now follows config`, window);\n };\n if (window.document.readyState === 'complete') {\n setLogMode();\n }\n else {\n window.addEventListener('load', setLogMode);\n }\n // set unload flush to prevent data loss\n window.addEventListener('beforeunload', flushQue);\n window.addEventListener('pagehide', flushQue);\n}\nfunction flushQue() {\n if (eventQue.length === 0) {\n return;\n }\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n const events = [...eventQue];\n eventQue = [];\n const batchData = events.map(event => ({\n endpoint: event.path,\n payload: event.payload,\n timestamp: event.timestamp\n }));\n postLogData(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_3__.BATCH_ENDPOINT, batchData);\n}\nfunction postLogData(path, payload) {\n const strPayload = JSON.stringify(payload);\n fetch(`${loggerAPIEndpoint}${path}`, {\n method: 'POST',\n body: strPayload,\n headers: {\n 'Content-Type': 'text/plain'\n },\n keepalive: strPayload.length < 60000 // safety margin for 64KB limit\n })\n .then(response => {\n if (response.status !== 200) {\n throw new Error(`HTTP error! ${response.status} ${response.statusText}`);\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`Logged event(s) to ${loggerAPIEndpoint}${path}`, payload, window);\n })\n .catch(error => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Failed to log event(s) to ${loggerAPIEndpoint}${path}`, false, window, payload, error);\n });\n}\nfunction logEvent(path, payload, window = globalThis.window) {\n if (logMode === _types_enums__WEBPACK_IMPORTED_MODULE_2__.LogMode.Sync) {\n // synchronous logging\n postLogData(path, payload);\n return;\n }\n // asynchronous logging\n eventQue.push({\n path,\n payload,\n timestamp: Date.now()\n });\n // setup flush for asynchronous logging\n switch (_constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.t /*flushTrigger*/) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_2__.FlushTrigger.Event:\n if (eventQue.length >= _constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.v /*thresholdValue*/) {\n flushQue();\n }\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_2__.FlushTrigger.Time:\n if (timeoutId === null) {\n timeoutId = window.setTimeout(() => {\n flushQue();\n }, _constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.v /*thresholdValue*/);\n }\n break;\n }\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/logger.ts?")},"./src/refreshEventHandlers.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setRefreshWorker: () => (/* binding */ setRefreshWorker)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auctionState */ "./src/auctionState.ts");\n// file: wrapper/src/refreshEventHandlers.ts\n\n\n\n\nconst DEFAULT_REFRESH_INTERVAL = 30; // in seconds\nfunction setRefreshWorker(adUnitCode, window = globalThis.window) {\n // filter layouts applicable to current page\n const layouts = _constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.ly /*layout*/\n .filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_0__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/)) ?? [];\n const allAdSlots = _constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.as /*adSlots*/\n .concat(layouts.flatMap(ly => ly.as /*adSlots*/));\n if (allAdSlots.length === 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.consoleDebug)(`no ad slots defined for pagepath \'${window.location.pathname}\', ads will not be refreshed`, window);\n return;\n }\n const refreshAdSlot = allAdSlots.find(\n // ({ g/*gam ad unit code*/ }) => g/*gam ad unit code*/ === adUnitPath\n slot => (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(slot) === adUnitCode);\n if (refreshAdSlot) {\n const slotDivId = (refreshAdSlot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_1__.Anchor.Window) ?\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.stickySlotId)(refreshAdSlot.n /*insert*/.r /*reference*/) :\n refreshAdSlot.n /*insert*/.d /*divId*/;\n const element = window.document.getElementById(slotDivId);\n const refreshType = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.enumFromString)(_types_enums__WEBPACK_IMPORTED_MODULE_1__.RefreshTrigger, refreshAdSlot?.r /*refresh*/?.t /*trigger*/ ?? \'\');\n if (element && refreshType) {\n switch (refreshType) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.RefreshTrigger.InView:\n refreshInView(element, refreshAdSlot);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.RefreshTrigger.AfterInterval:\n refreshAfterInterval(element, refreshAdSlot);\n break;\n default:\n break;\n }\n }\n }\n}\n/**\n *\n * refresh in view, only after interval\n * max refresh applies (if specified)\n *\n **/\nfunction refreshInView(element, adSlot) {\n const maxRefreshes = adSlot.r /*refresh*/?.c /*count of times*/ ?? Number.MAX_SAFE_INTEGER;\n const timeout = (adSlot.r /*refresh*/?.i /*interval*/ ?? DEFAULT_REFRESH_INTERVAL) * 1000; // refresh interval in miliseconds\n const adUnitCode = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(adSlot); // adslot element (div) id used as unique prebid adunit code\n var refreshCount = 0; // initialize refresh counter\n const options = {\n root: null, // element to intersect with browser viewport\n rootMargin: "0px", // margin to grow or shrink intersection frame of root\n threshold: 0.0 // % element visible\n };\n var isElementVisible = false; // track element visibility\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n isElementVisible = entry.intersectionRatio > 0; // update visibility status\n });\n }, options);\n // store observer instance in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.setIntersectionObserver)(adUnitCode, observer);\n observer.observe(element);\n // refresh loop\n const intervalId = setInterval(() => {\n if (isElementVisible && refreshCount < maxRefreshes) {\n if ((0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.isAuctionInProgress)(adUnitCode)) {\n return;\n }\n refreshCount++;\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.setAuctionInProgress)(adUnitCode, _types_enums__WEBPACK_IMPORTED_MODULE_1__.ServeType.Refresh);\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.requestBids({\n adUnitCodes: [adUnitCode],\n timeout: adSlot.o /*auctionTimeout*/ ?? _constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.o /*auctionTimeout*/\n });\n });\n }\n if (refreshCount >= maxRefreshes) {\n clearInterval(intervalId); // stop interval when max refreshes reached\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.clearIntersectionObserver)(adUnitCode); // disconnect, clear observer\n }\n }, timeout); // delay between checks\n}\n/**\n *\n * refresh after interval, only if ad was viewable\n * max refresh applies (if specified)\n *\n **/\nfunction refreshAfterInterval(element, adSlot) {\n const maxRefreshes = adSlot.r /*refresh*/?.c /*countOfTimes*/ ?? Number.MAX_SAFE_INTEGER;\n const timeout = (adSlot.r /*refresh*/?.i /*interval*/ ?? DEFAULT_REFRESH_INTERVAL) * 1000; // refresh interval in miliseconds\n const adUnitCode = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(adSlot); // adslot element (div) id used as unique prebid adunit code\n var refreshCount = 0; // initialize refresh counter\n const options = {\n root: null, // element to intersect with browser viewport\n rootMargin: "0px", // margin to grow or shrink intersection frame of root\n threshold: 0.0 // % element visible\n };\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if (entry.intersectionRatio > 0) {\n if (refreshCount < maxRefreshes) {\n refreshCount++;\n setTimeout(() => {\n if ((0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.isAuctionInProgress)(adUnitCode)) {\n return;\n }\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.setAuctionInProgress)(adUnitCode, _types_enums__WEBPACK_IMPORTED_MODULE_1__.ServeType.Refresh);\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.requestBids({\n adUnitCodes: [adUnitCode],\n timeout: adSlot.o /*auctionTimeout*/ ?? _constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.o /*auctionTimeout*/\n });\n });\n }, timeout);\n }\n if (refreshCount >= maxRefreshes) {\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.clearIntersectionObserver)(adUnitCode); // disconnect and clear observer\n }\n }\n });\n }, options);\n // store observer instance in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.setIntersectionObserver)(adUnitCode, observer);\n observer.observe(element);\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/refreshEventHandlers.ts?')},"./src/stickySlot.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BUTTON_SYMBOLS: () => (/* binding */ BUTTON_SYMBOLS),\n/* harmony export */ BUTTON_TITLES: () => (/* binding */ BUTTON_TITLES),\n/* harmony export */ SLOT_CONTENT: () => (/* binding */ SLOT_CONTENT),\n/* harmony export */ STICKY_SLOT_CLASSES: () => (/* binding */ STICKY_SLOT_CLASSES),\n/* harmony export */ StickyAction: () => (/* binding */ StickyAction),\n/* harmony export */ addStickySlot: () => (/* binding */ addStickySlot),\n/* harmony export */ anchorAction: () => (/* binding */ anchorAction),\n/* harmony export */ anchorId: () => (/* binding */ anchorId),\n/* harmony export */ buttonId: () => (/* binding */ buttonId),\n/* harmony export */ setInsertSlotWorker: () => (/* binding */ setInsertSlotWorker)\n/* harmony export */ });\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n// file: wrapper/src/stickySlot.ts\n\n\nvar StickyAction;\n(function (StickyAction) {\n StickyAction[\"Minimize\"] = \"minimize\";\n StickyAction[\"Restore\"] = \"restore\";\n StickyAction[\"Dismiss\"] = \"dismiss\";\n})(StickyAction || (StickyAction = {}));\n// css class names used for sticky slots\nconst STICKY_SLOT_CLASSES = {\n ANCHOR: 'ad-anchor',\n SLOT: 'ad-slot',\n ACTION_BUTTONS: 'ad-action-buttons',\n ACTION_BTN: 'ad-action-btn',\n HORIZONTAL_MINIMIZED: 'horizontal-minimized',\n VERTICAL_MINIMIZED: 'vertical-minimized',\n HIDDEN: 'hidden'\n};\n// button symbols\nconst BUTTON_SYMBOLS = {\n RESTORE: '+',\n MINIMIZE: '-',\n DISMISS: 'x'\n};\n// button titles for accessibility\nconst BUTTON_TITLES = {\n RESTORE: 'Restore Ad',\n MINIMIZE: 'Minimize Ad',\n DISMISS: 'Dismiss Ad'\n};\n// slot content\nconst SLOT_CONTENT = {\n DEFAULT: 'Advertisement'\n};\n// track pending DOMContentLoaded handlers\nconst stickySlotDOMHandlers = new Set();\nfunction setInsertSlotWorker(adUnit, window = globalThis.window) {\n // TODO add all sticky slots at one time\n if (window.document.body) { // page has already loaded\n addStickySlot(adUnit.n /*insert*/, window);\n }\n else {\n const handlerId = anchorId(adUnit.n.r /*reference*/);\n if (stickySlotDOMHandlers.has(handlerId)) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`DOMContentLoaded handler already registered for ${handlerId}, skipping duplicate`, window);\n return;\n }\n stickySlotDOMHandlers.add(handlerId);\n window.document.addEventListener('DOMContentLoaded', () => {\n addStickySlot(adUnit.n /*insert*/, window);\n stickySlotDOMHandlers.delete(handlerId);\n }, { once: true });\n }\n}\nconst anchorId = (ref) => `ad-${ref}-anchor`;\nconst buttonId = (ref, action) => `ad-${ref}-${action}`;\nfunction addStickySlot(insert, window = globalThis.window) {\n const anchorElementId = anchorId(insert.r /*reference*/);\n const existingAnchor = window.document.getElementById(anchorElementId);\n if (existingAnchor) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`Sticky slot anchor ${anchorElementId} already exists in DOM, skipping creation`, window);\n return;\n }\n const slotId = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.stickySlotId)(insert.r /*reference*/);\n const anchorClass = `${STICKY_SLOT_CLASSES.ANCHOR} ad-${insert.r /*reference*/}`;\n const anchor = window.document.createElement('div');\n anchor.id = anchorElementId;\n anchor.className = anchorClass;\n const actionButtonsDiv = window.document.createElement('div');\n actionButtonsDiv.className = STICKY_SLOT_CLASSES.ACTION_BUTTONS;\n const btnRes = window.document.createElement('div');\n btnRes.id = buttonId(insert.r /*reference*/, StickyAction.Restore);\n btnRes.innerHTML = BUTTON_SYMBOLS.RESTORE;\n btnRes.className = STICKY_SLOT_CLASSES.ACTION_BTN;\n btnRes.title = BUTTON_TITLES.RESTORE;\n btnRes.style.display = 'none';\n btnRes.onclick = () => anchorAction(insert.r /*reference*/, StickyAction.Restore, window);\n actionButtonsDiv.appendChild(btnRes);\n if (insert.z /*minimize*/) {\n const btnMin = window.document.createElement('div');\n btnMin.id = buttonId(insert.r /*reference*/, StickyAction.Minimize);\n btnMin.innerHTML = BUTTON_SYMBOLS.MINIMIZE;\n btnMin.className = STICKY_SLOT_CLASSES.ACTION_BTN;\n btnMin.title = BUTTON_TITLES.MINIMIZE;\n btnMin.onclick = () => anchorAction(insert.r /*reference*/, StickyAction.Minimize, window);\n actionButtonsDiv.appendChild(btnMin);\n }\n if (insert.s /*dismiss*/) {\n const btnDis = window.document.createElement('div');\n btnDis.id = buttonId(insert.r /*reference*/, StickyAction.Dismiss);\n btnDis.innerHTML = BUTTON_SYMBOLS.DISMISS;\n btnDis.className = STICKY_SLOT_CLASSES.ACTION_BTN;\n btnDis.title = BUTTON_TITLES.DISMISS;\n btnDis.onclick = () => anchorAction(insert.r /*reference*/, StickyAction.Dismiss, window);\n actionButtonsDiv.appendChild(btnDis);\n }\n anchor.appendChild(Object.assign(window.document.createElement('div'), {\n id: slotId,\n className: STICKY_SLOT_CLASSES.SLOT,\n innerHTML: SLOT_CONTENT.DEFAULT\n }));\n anchor.appendChild(actionButtonsDiv);\n switch (insert.r /*reference*/) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Top:\n window.document.body.prepend(anchor);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Bottom:\n window.document.body.append(anchor);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Left:\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Right:\n window.document.body.append(anchor);\n break;\n }\n}\n/**\n * handle ad actions (hide, minimize, restore)\n * @param {string} reference - anchor reference (WindowReference)\n * @param {string} action - action to take (StickyAction)\n */\nfunction anchorAction(reference, action, window = globalThis.window) {\n const adAnchor = window.document.getElementById(anchorId(reference));\n const restoreBtn = window.document.getElementById(buttonId(reference, StickyAction.Restore));\n const minimizeBtn = window.document.getElementById(buttonId(reference, StickyAction.Minimize));\n const dismissBtn = window.document.getElementById(buttonId(reference, StickyAction.Dismiss));\n var minimizeClassName = '';\n switch (reference) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Top:\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Bottom:\n minimizeClassName = STICKY_SLOT_CLASSES.HORIZONTAL_MINIMIZED;\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Left:\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Right:\n minimizeClassName = STICKY_SLOT_CLASSES.VERTICAL_MINIMIZED;\n break;\n default:\n throw new Error(`invalid reference parameter '${reference}' to anchorAction()`);\n }\n switch (action) {\n case StickyAction.Restore:\n adAnchor?.classList.remove(minimizeClassName); // restore\n restoreBtn?.style && (restoreBtn.style.display = 'none'); // hide restore button \n minimizeBtn?.style && (minimizeBtn.style.display = 'block'); // show minimize button\n dismissBtn?.style && (dismissBtn.style.display = 'block'); // show dismiss button\n break;\n case StickyAction.Minimize:\n adAnchor?.classList.add(minimizeClassName); // minimize\n minimizeBtn?.style && (minimizeBtn.style.display = 'none'); // hide minimize button\n restoreBtn?.style && (restoreBtn.style.display = 'block'); // show restore button\n dismissBtn?.style && (dismissBtn.style.display = 'block'); // show dismiss button\n //TODO how to handle refresh?\n break;\n case StickyAction.Dismiss:\n adAnchor?.classList.add(STICKY_SLOT_CLASSES.HIDDEN); // dismiss\n //TODO delete google slot and pbjs ad unit, should we remove element?\n break;\n default:\n throw new Error(`invalid action parameter '${action}' to anchorAction()`);\n }\n}\n//TODO minimized ad slot maximized on refresh\n//TODO should not have unfilled -- house ad or immediate refresh, after which automatically minimized\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/stickySlot.ts?")},"./src/types/enums.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Anchor: () => (/* binding */ Anchor),\n/* harmony export */ Browser: () => (/* binding */ Browser),\n/* harmony export */ Device: () => (/* binding */ Device),\n/* harmony export */ ElementReference: () => (/* binding */ ElementReference),\n/* harmony export */ FlushTrigger: () => (/* binding */ FlushTrigger),\n/* harmony export */ Load: () => (/* binding */ Load),\n/* harmony export */ LogMode: () => (/* binding */ LogMode),\n/* harmony export */ MediaFormat: () => (/* binding */ MediaFormat),\n/* harmony export */ PagePathPattern: () => (/* binding */ PagePathPattern),\n/* harmony export */ RefreshTrigger: () => (/* binding */ RefreshTrigger),\n/* harmony export */ ServeType: () => (/* binding */ ServeType),\n/* harmony export */ WindowReference: () => (/* binding */ WindowReference)\n/* harmony export */ });\n// file: wrapper/src/types/enums.ts\nvar WindowReference;\n(function (WindowReference) {\n WindowReference["Top"] = "TP";\n WindowReference["Bottom"] = "BM";\n WindowReference["Left"] = "LF";\n WindowReference["Right"] = "RG";\n})(WindowReference || (WindowReference = {}));\nvar ElementReference;\n(function (ElementReference) {\n ElementReference["Before"] = "BF";\n ElementReference["After"] = "AT";\n ElementReference["Inside"] = "IN";\n})(ElementReference || (ElementReference = {}));\nvar Anchor;\n(function (Anchor) {\n Anchor["Window"] = "WN";\n Anchor["StaticElement"] = "ST";\n Anchor["DynamicElement"] = "DY";\n})(Anchor || (Anchor = {}));\nvar Load;\n(function (Load) {\n /**\n * Eager Loading:\n * Ads are loaded as soon as the page loads, regardless of whether they are visible to the user.\n * Use Case: Pages with high-priority ad slots above the fold where immediate visibility is crucial.\n */\n Load["Eager"] = "EG";\n /**\n * Deferred Loading:\n * Ads are loaded after the entire page has finished loading or after a specific delay.\n * Use Case: Ensures critical content is loaded first to improve perceived performance.\n */\n Load["Deferred"] = "DF";\n /**\n * Lazy Loading:\n * Ads are loaded only when they are about to come into the viewport (or are close to it).\n * Use Case: Improves performance and reduces resource usage by deferring ad requests for offscreen ads.\n */\n Load["Lazy"] = "LZ";\n /**\n * Dynamic Loading:\n * Ads are loaded for slots created dynamically after the initial page load, such as in infinite scroll scenarios.\n * Use Case: Pages with content that expands dynamically, where new ad slots are introduced as the user scrolls.\n */\n Load["Dynamic"] = "YM";\n /**\n * On-Demand Loading:\n * Ads are loaded based on specific user actions, such as clicking a button or interacting with a part of the page.\n * Use Case: When ads need to be shown only after user engagement (e.g., inside a collapsible menu).\n */\n Load["OnDemand"] = "ON";\n})(Load || (Load = {}));\nvar ServeType;\n(function (ServeType) {\n ServeType["Initial"] = "IN";\n ServeType["Refresh"] = "RF";\n})(ServeType || (ServeType = {}));\nvar MediaFormat;\n(function (MediaFormat) {\n MediaFormat["Banner"] = "BN";\n})(MediaFormat || (MediaFormat = {}));\nvar RefreshTrigger;\n(function (RefreshTrigger) {\n RefreshTrigger["InView"] = "IV";\n RefreshTrigger["AfterInterval"] = "AV";\n})(RefreshTrigger || (RefreshTrigger = {}));\nvar Device;\n(function (Device) {\n Device["Mobile"] = "MB";\n Device["Desktop"] = "DK";\n Device["Tablet"] = "TB";\n Device["Unknown"] = "UK";\n})(Device || (Device = {}));\nvar Browser;\n(function (Browser) {\n Browser["Chrome"] = "CR";\n Browser["Safari"] = "SF";\n Browser["Edge"] = "EG";\n Browser["Firefox"] = "FX";\n Browser["Unknown"] = "UN";\n})(Browser || (Browser = {}));\nvar PagePathPattern;\n(function (PagePathPattern) {\n PagePathPattern["Prefix"] = "PR";\n PagePathPattern["Contains"] = "CT";\n PagePathPattern["Suffix"] = "SF";\n PagePathPattern["Exact"] = "EX";\n PagePathPattern["Regex"] = "RG";\n})(PagePathPattern || (PagePathPattern = {}));\nvar LogMode;\n(function (LogMode) {\n LogMode["Sync"] = "SY";\n LogMode["Async"] = "AS";\n})(LogMode || (LogMode = {}));\nvar FlushTrigger;\n(function (FlushTrigger) {\n FlushTrigger["Event"] = "EV";\n FlushTrigger["Time"] = "TM";\n})(FlushTrigger || (FlushTrigger = {}));\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/types/enums.ts?')},"./src/utils.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ consoleDebug: () => (/* binding */ consoleDebug),\n/* harmony export */ consoleError: () => (/* binding */ consoleError),\n/* harmony export */ enumFromString: () => (/* binding */ enumFromString),\n/* harmony export */ generateHash: () => (/* binding */ generateHash),\n/* harmony export */ getMediaSizes: () => (/* binding */ getMediaSizes),\n/* harmony export */ getPrimaryDomain: () => (/* binding */ getPrimaryDomain),\n/* harmony export */ getSessionId: () => (/* binding */ getSessionId),\n/* harmony export */ getSlotDivId: () => (/* binding */ getSlotDivId),\n/* harmony export */ getUserDevice: () => (/* binding */ getUserDevice),\n/* harmony export */ getUserId: () => (/* binding */ getUserId),\n/* harmony export */ matchPagePath: () => (/* binding */ matchPagePath),\n/* harmony export */ stickySlotId: () => (/* binding */ stickySlotId)\n/* harmony export */ });\n/* harmony import */ var xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! xxhash-wasm */ \"../node_modules/xxhash-wasm/esm/xxhash-wasm.js\");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n// file: wrapper/src/utils.ts\n\n\nconst SESSION_LENGTH_MS = 10 * 60 * 1000; // 10 minutes, in milliseconds\nconst generateId = () => Math.random().toString(36).substring(2, 15)\n .padEnd(13, Math.random().toString(36).substring(2, 15));\nfunction getSessionId() {\n let result;\n try {\n var sessionId = localStorage.getItem('sessionId');\n var sessionIdLastRead = localStorage.getItem('sessionIdLastRead');\n const currentTime = Date.now(); /* UTC timestamp */\n if ((!sessionId) || (!sessionIdLastRead) ||\n ((currentTime - parseInt(sessionIdLastRead)) > SESSION_LENGTH_MS)) {\n sessionId = generateId();\n localStorage.setItem('sessionId', sessionId);\n }\n localStorage.setItem('sessionIdLastRead', currentTime.toString());\n result = sessionId;\n }\n catch (error) {\n // if localStorage fails, generate unique session id and log issue\n consoleError('getSessionId: localStorage unavailable:', false, error);\n result = generateId();\n }\n return result;\n}\nfunction getUserId() {\n let result;\n try {\n var userId = localStorage.getItem('userId');\n if (!userId) {\n const newUserId = generateId();\n localStorage.setItem('userId', newUserId);\n result = newUserId;\n }\n else {\n result = userId;\n }\n }\n catch (error) {\n // if localStorage fails, generate unique id and log issue\n consoleError('getUserId: localStorage unavailable:', false, error);\n result = generateId();\n }\n return result;\n}\nfunction getUserDevice(window = globalThis.window) {\n try {\n const viewPortCheck = window.matchMedia(\"(max-width: 760px), (max-width: 1024px) and (orientation: landscape)\").matches;\n const userAgentCheck = navigator?.userAgent ? /Android|iPhone|iPad/i.test(navigator.userAgent) : false;\n return (viewPortCheck || userAgentCheck) ? _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Mobile : _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Desktop;\n }\n catch (error) {\n // device detection failed (e.g., restricted environment)\n consoleError('getUserDevice: Device detection failed, returning Unknown:', false, window, error);\n return _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Unknown;\n }\n}\nconst stickySlotId = (ref) => `ad-${ref}-slot`;\nfunction consoleDebug(message, windowOrFirstArg, ...additionalArgs) {\n // check if first argument is Window object\n const isWindowArg = windowOrFirstArg && typeof windowOrFirstArg === 'object' && 'location' in windowOrFirstArg;\n const window = isWindowArg ? windowOrFirstArg : globalThis.window;\n const args = isWindowArg ? additionalArgs : (windowOrFirstArg !== undefined ? [windowOrFirstArg, ...additionalArgs] : []);\n try {\n const searchString = (window.location && typeof window.location.search === 'string') ? window.location.search : '';\n const urlParams = new URLSearchParams(searchString);\n const pbjs = window.pbjs;\n if ((urlParams.get('pbjs_debug') === 'true') ||\n (pbjs && pbjs.readConfig && pbjs.readConfig('debug') === true)) {\n console.log('%cAAM', 'background: navy; color: white; padding: 2px 5px; border-radius: 3px;', message, ...args);\n }\n }\n catch (error) {\n console.error('Console logging failed:', message);\n }\n}\nfunction consoleError(message, escalate = false, windowOrSecondArg, ...additionalArgs) {\n // check if third argument is Window object\n const isWindowArg = windowOrSecondArg && typeof windowOrSecondArg === 'object' && 'location' in windowOrSecondArg;\n const window = isWindowArg ? windowOrSecondArg : globalThis.window;\n const args = isWindowArg ? additionalArgs : (windowOrSecondArg !== undefined ? [windowOrSecondArg, ...additionalArgs] : []);\n try {\n const searchString = (window.location && typeof window.location.search === 'string') ? window.location.search : '';\n const urlParams = new URLSearchParams(searchString);\n const pbjs = window.pbjs;\n if ((urlParams.get('pbjs_debug') === 'true') ||\n (pbjs && pbjs.readConfig && pbjs.readConfig('debug') === true)) {\n console.error('%cAAM', 'background: navy; color: white; padding: 2px 5px; border-radius: 3px;', message, ...args);\n }\n }\n catch (error) {\n console.error('Console logging failed:', message);\n }\n if (escalate) {\n throw Error(message);\n }\n}\nconst enumFromString = (enumType, value) => Object.values(enumType).includes(value) ? value : undefined;\nconst getPrimaryDomain = (hostname) => {\n // hostname from web api, should be type safe\n return hostname.split('.').slice(-2).join('.');\n};\nasync function generateHash(data, length) {\n const { h64 } = await (0,xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n const hash64Value = h64(data, BigInt(0));\n const hexHash = hash64Value.toString(16).padStart(16, '0').toUpperCase();\n return hexHash.slice(0, length);\n}\nfunction matchPagePath(currentPath, pagePaths) {\n return pagePaths.some((pathObj) => {\n const { t /*pattern*/, p /*path*/ } = pathObj;\n switch (t /*pattern*/) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Prefix:\n return currentPath.startsWith(p /*path*/);\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Contains:\n return currentPath.includes(p /*path*/);\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Suffix:\n return currentPath.endsWith(p /*path*/);\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Exact:\n return currentPath === p /*path*/;\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Regex:\n try {\n const regex = new RegExp(p /*path*/);\n return regex.test(currentPath);\n }\n catch {\n consoleError(`Invalid regex pattern: ${p /*path*/}`, false);\n return false;\n }\n default:\n return false;\n }\n });\n}\nfunction getMediaSizes(media, window = globalThis.window) {\n // build time validation ensures type safety\n if (Array.isArray(media.sz.a) && media.sz.a.length) {\n return media.sz.a;\n }\n const device = getUserDevice(window);\n switch (device) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Desktop:\n return Array.isArray(media.sz.d) ? media.sz.d : [];\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Mobile:\n return Array.isArray(media.sz.m) ? media.sz.m : [];\n default:\n consoleDebug('getMediaSizes: Unknown device type, using empty array fallback:', device, window);\n return [];\n }\n}\nconst getSlotDivId = (adSlot) => {\n // build time validation ensures type safety\n return adSlot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_1__.Anchor.Window\n ? stickySlotId(adSlot.n /*insert*/.r /*reference*/)\n : adSlot.n /*insert*/.d /*divId*/;\n};\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/utils.ts?")},"./src/wrapperTag.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dynamicSlot */ "./src/dynamicSlot.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n// file: wrapper/src/wrapperTag.ts\n\n\nwindow.wrapperTag = {\n // build information\n appVersion: "0.0.55",\n appBuildDate: "2025-08-14T05:03:26.455Z",\n appName: "app-p80918ac8127ba.js",\n // active configuration\n config: _constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig,\n // dynamic slot management functions\n insertAdSlot: (refDivId, position, targetWindow) => _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__.insertAdSlot(refDivId, position, targetWindow || window),\n deleteAdSlot: (divId, targetWindow) => _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__.deleteDynamicAdSlot(divId, targetWindow || window),\n insertStickyAdSlot: (reference, targetWindow) => _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__.insertStickyAdSlot(reference, targetWindow || window),\n};\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/wrapperTag.ts?')},"../node_modules/uuid/dist/esm-browser/native.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ randomUUID });\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/native.js?")},"../node_modules/uuid/dist/esm-browser/regex.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/regex.js?')},"../node_modules/uuid/dist/esm-browser/rng.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ rng)\n/* harmony export */ });\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nfunction rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/rng.js?")},"../node_modules/uuid/dist/esm-browser/stringify.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ unsafeStringify: () => (/* binding */ unsafeStringify)\n/* harmony export */ });\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \"../node_modules/uuid/dist/esm-browser/validate.js\");\n\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stringify);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/stringify.js?")},"../node_modules/uuid/dist/esm-browser/v4.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _native_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./native.js */ "../node_modules/uuid/dist/esm-browser/native.js");\n/* harmony import */ var _rng_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng.js */ "../node_modules/uuid/dist/esm-browser/rng.js");\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stringify.js */ "../node_modules/uuid/dist/esm-browser/stringify.js");\n\n\n\nfunction v4(options, buf, offset) {\n if (_native_js__WEBPACK_IMPORTED_MODULE_0__["default"].randomUUID && !buf && !options) {\n return _native_js__WEBPACK_IMPORTED_MODULE_0__["default"].randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? (0,_rng_js__WEBPACK_IMPORTED_MODULE_1__["default"])();\n if (rnds.length < 16) {\n throw new Error(\'Random bytes length must be >= 16\');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return (0,_stringify_js__WEBPACK_IMPORTED_MODULE_2__.unsafeStringify)(rnds);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v4);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/v4.js?')},"../node_modules/uuid/dist/esm-browser/validate.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _regex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./regex.js */ "../node_modules/uuid/dist/esm-browser/regex.js");\n\nfunction validate(uuid) {\n return typeof uuid === \'string\' && _regex_js__WEBPACK_IMPORTED_MODULE_0__["default"].test(uuid);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validate);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/validate.js?')},"../node_modules/xxhash-wasm/esm/xxhash-wasm.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ e)\n/* harmony export */ });\nconst t=new Uint8Array([0,97,115,109,1,0,0,0,1,48,8,96,3,127,127,127,1,127,96,3,127,127,127,0,96,2,127,127,0,96,1,127,1,127,96,3,127,127,126,1,126,96,3,126,127,127,1,126,96,2,127,126,0,96,1,127,1,126,3,11,10,0,0,2,1,3,4,5,6,1,7,5,3,1,0,1,7,85,9,3,109,101,109,2,0,5,120,120,104,51,50,0,0,6,105,110,105,116,51,50,0,2,8,117,112,100,97,116,101,51,50,0,3,8,100,105,103,101,115,116,51,50,0,4,5,120,120,104,54,52,0,5,6,105,110,105,116,54,52,0,7,8,117,112,100,97,116,101,54,52,0,8,8,100,105,103,101,115,116,54,52,0,9,10,251,22,10,242,1,1,4,127,32,0,32,1,106,33,3,32,1,65,16,79,4,127,32,3,65,16,107,33,6,32,2,65,168,136,141,161,2,106,33,3,32,2,65,137,235,208,208,7,107,33,4,32,2,65,207,140,162,142,6,106,33,5,3,64,32,3,32,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,3,32,4,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,4,32,2,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,2,32,5,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,5,32,6,32,0,65,4,106,34,0,79,13,0,11,32,2,65,12,119,32,5,65,18,119,106,32,4,65,7,119,106,32,3,65,1,119,106,5,32,2,65,177,207,217,178,1,106,11,32,1,106,32,0,32,1,65,15,113,16,1,11,146,1,0,32,1,32,2,106,33,2,3,64,32,1,65,4,106,32,2,75,69,4,64,32,0,32,1,40,2,0,65,189,220,202,149,124,108,106,65,17,119,65,175,214,211,190,2,108,33,0,32,1,65,4,106,33,1,12,1,11,11,3,64,32,1,32,2,79,69,4,64,32,0,32,1,45,0,0,65,177,207,217,178,1,108,106,65,11,119,65,177,243,221,241,121,108,33,0,32,1,65,1,106,33,1,12,1,11,11,32,0,32,0,65,15,118,115,65,247,148,175,175,120,108,34,0,65,13,118,32,0,115,65,189,220,202,149,124,108,34,0,65,16,118,32,0,115,11,63,0,32,0,65,8,106,32,1,65,168,136,141,161,2,106,54,2,0,32,0,65,12,106,32,1,65,137,235,208,208,7,107,54,2,0,32,0,65,16,106,32,1,54,2,0,32,0,65,20,106,32,1,65,207,140,162,142,6,106,54,2,0,11,195,4,1,6,127,32,1,32,2,106,33,6,32,0,65,24,106,33,4,32,0,65,40,106,40,2,0,33,3,32,0,32,0,40,2,0,32,2,106,54,2,0,32,0,65,4,106,34,5,32,5,40,2,0,32,2,65,16,79,32,0,40,2,0,65,16,79,114,114,54,2,0,32,2,32,3,106,65,16,73,4,64,32,3,32,4,106,32,1,32,2,252,10,0,0,32,0,65,40,106,32,2,32,3,106,54,2,0,15,11,32,3,4,64,32,3,32,4,106,32,1,65,16,32,3,107,34,2,252,10,0,0,32,0,65,8,106,34,3,32,3,40,2,0,32,4,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,12,106,34,3,32,3,40,2,0,32,4,65,4,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,16,106,34,3,32,3,40,2,0,32,4,65,8,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,20,106,34,3,32,3,40,2,0,32,4,65,12,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,40,106,65,0,54,2,0,32,1,32,2,106,33,1,11,32,1,32,6,65,16,107,77,4,64,32,6,65,16,107,33,8,32,0,65,8,106,40,2,0,33,2,32,0,65,12,106,40,2,0,33,3,32,0,65,16,106,40,2,0,33,5,32,0,65,20,106,40,2,0,33,7,3,64,32,2,32,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,2,32,3,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,3,32,5,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,5,32,7,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,7,32,8,32,1,65,4,106,34,1,79,13,0,11,32,0,65,8,106,32,2,54,2,0,32,0,65,12,106,32,3,54,2,0,32,0,65,16,106,32,5,54,2,0,32,0,65,20,106,32,7,54,2,0,11,32,1,32,6,73,4,64,32,4,32,1,32,6,32,1,107,34,1,252,10,0,0,32,0,65,40,106,32,1,54,2,0,11,11,97,1,1,127,32,0,65,16,106,40,2,0,33,1,32,0,65,4,106,40,2,0,4,127,32,1,65,12,119,32,0,65,20,106,40,2,0,65,18,119,106,32,0,65,12,106,40,2,0,65,7,119,106,32,0,65,8,106,40,2,0,65,1,119,106,5,32,1,65,177,207,217,178,1,106,11,32,0,40,2,0,106,32,0,65,24,106,32,0,65,40,106,40,2,0,16,1,11,255,3,2,3,126,1,127,32,0,32,1,106,33,6,32,1,65,32,79,4,126,32,6,65,32,107,33,6,32,2,66,214,235,130,238,234,253,137,245,224,0,124,33,3,32,2,66,177,169,172,193,173,184,212,166,61,125,33,4,32,2,66,249,234,208,208,231,201,161,228,225,0,124,33,5,3,64,32,3,32,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,3,32,4,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,4,32,2,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,2,32,5,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,5,32,6,32,0,65,8,106,34,0,79,13,0,11,32,2,66,12,137,32,5,66,18,137,124,32,4,66,7,137,124,32,3,66,1,137,124,32,3,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,4,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,2,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,5,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,5,32,2,66,197,207,217,178,241,229,186,234,39,124,11,32,1,173,124,32,0,32,1,65,31,113,16,6,11,134,2,0,32,1,32,2,106,33,2,3,64,32,2,32,1,65,8,106,79,4,64,32,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,32,0,133,66,27,137,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,33,0,32,1,65,8,106,33,1,12,1,11,11,32,1,65,4,106,32,2,77,4,64,32,0,32,1,53,2,0,66,135,149,175,175,152,182,222,155,158,127,126,133,66,23,137,66,207,214,211,190,210,199,171,217,66,126,66,249,243,221,241,153,246,153,171,22,124,33,0,32,1,65,4,106,33,1,11,3,64,32,1,32,2,73,4,64,32,0,32,1,49,0,0,66,197,207,217,178,241,229,186,234,39,126,133,66,11,137,66,135,149,175,175,152,182,222,155,158,127,126,33,0,32,1,65,1,106,33,1,12,1,11,11,32,0,32,0,66,33,136,133,66,207,214,211,190,210,199,171,217,66,126,34,0,32,0,66,29,136,133,66,249,243,221,241,153,246,153,171,22,126,34,0,32,0,66,32,136,133,11,77,0,32,0,65,8,106,32,1,66,214,235,130,238,234,253,137,245,224,0,124,55,3,0,32,0,65,16,106,32,1,66,177,169,172,193,173,184,212,166,61,125,55,3,0,32,0,65,24,106,32,1,55,3,0,32,0,65,32,106,32,1,66,249,234,208,208,231,201,161,228,225,0,124,55,3,0,11,244,4,2,3,127,4,126,32,1,32,2,106,33,5,32,0,65,40,106,33,4,32,0,65,200,0,106,40,2,0,33,3,32,0,32,0,41,3,0,32,2,173,124,55,3,0,32,2,32,3,106,65,32,73,4,64,32,3,32,4,106,32,1,32,2,252,10,0,0,32,0,65,200,0,106,32,2,32,3,106,54,2,0,15,11,32,3,4,64,32,3,32,4,106,32,1,65,32,32,3,107,34,2,252,10,0,0,32,0,65,8,106,34,3,32,3,41,3,0,32,4,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,16,106,34,3,32,3,41,3,0,32,4,65,8,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,24,106,34,3,32,3,41,3,0,32,4,65,16,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,32,106,34,3,32,3,41,3,0,32,4,65,24,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,200,0,106,65,0,54,2,0,32,1,32,2,106,33,1,11,32,1,65,32,106,32,5,77,4,64,32,5,65,32,107,33,2,32,0,65,8,106,41,3,0,33,6,32,0,65,16,106,41,3,0,33,7,32,0,65,24,106,41,3,0,33,8,32,0,65,32,106,41,3,0,33,9,3,64,32,6,32,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,6,32,7,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,7,32,8,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,8,32,9,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,9,32,2,32,1,65,8,106,34,1,79,13,0,11,32,0,65,8,106,32,6,55,3,0,32,0,65,16,106,32,7,55,3,0,32,0,65,24,106,32,8,55,3,0,32,0,65,32,106,32,9,55,3,0,11,32,1,32,5,73,4,64,32,4,32,1,32,5,32,1,107,34,1,252,10,0,0,32,0,65,200,0,106,32,1,54,2,0,11,11,188,2,1,5,126,32,0,65,24,106,41,3,0,33,1,32,0,41,3,0,34,2,66,32,90,4,126,32,0,65,8,106,41,3,0,34,3,66,1,137,32,0,65,16,106,41,3,0,34,4,66,7,137,124,32,1,66,12,137,32,0,65,32,106,41,3,0,34,5,66,18,137,124,124,32,3,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,4,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,1,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,5,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,5,32,1,66,197,207,217,178,241,229,186,234,39,124,11,32,2,124,32,0,65,40,106,32,2,66,31,131,167,16,6,11]);async function e(){return function(t){const{exports:{mem:e,xxh32:n,xxh64:r,init32:i,update32:a,digest32:o,init64:s,update64:u,digest64:c}}=t;let h=new Uint8Array(e.buffer);function g(t,n){if(e.buffer.byteLength<t+n){const r=Math.ceil((t+n-e.buffer.byteLength)/65536);e.grow(r),h=new Uint8Array(e.buffer)}}function f(t,e,n,r,i,a){g(t);const o=new Uint8Array(t);return h.set(o),n(0,e),o.set(h.subarray(0,t)),{update(e){let n;return h.set(o),"string"==typeof e?(g(3*e.length,t),n=w.encodeInto(e,h.subarray(t)).written):(g(e.byteLength,t),h.set(e,t),n=e.byteLength),r(0,t,n),o.set(h.subarray(0,t)),this},digest:()=>(h.set(o),a(i(0)))}}function y(t){return t>>>0}const b=2n**64n-1n;function d(t){return t&b}const w=new TextEncoder,l=0,p=0n;function x(t,e=l){return g(3*t.length,0),y(n(0,w.encodeInto(t,h).written,e))}function L(t,e=p){return g(3*t.length,0),d(r(0,w.encodeInto(t,h).written,e))}return{h32:x,h32ToString:(t,e=l)=>x(t,e).toString(16).padStart(8,"0"),h32Raw:(t,e=l)=>(g(t.byteLength,0),h.set(t),y(n(0,t.byteLength,e))),create32:(t=l)=>f(48,t,i,a,o,y),h64:L,h64ToString:(t,e=p)=>L(t,e).toString(16).padStart(16,"0"),h64Raw:(t,e=p)=>(g(t.byteLength,0),h.set(t),d(r(0,t.byteLength,e))),create64:(t=p)=>f(88,t,s,u,c,d)}}((await WebAssembly.instantiate(t)).instance)}\n//# sourceMappingURL=xxhash-wasm.js.map\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/xxhash-wasm/esm/xxhash-wasm.js?')},"../builds/80918AC8127BA/0.0.55/config-d80918ac8127ba-v0-0-55.json":module=>{"use strict";eval('module.exports = /*#__PURE__*/JSON.parse(\'{"c":"INR","d":"80918AC8127BA","e":"app.animaadtech.localhost","f":3000,"l":{"m":"AS","p":"/api/logger/v1","t":"EV","v":10},"o":2000,"p":"hb","t":"/api/experiment/v1","v":"","as":[{"f":0,"g":"/139951767/ca-pub-7625127328873999/test-anima-2","i":"9FUYFV9JO7T7P","l":"EG","m":{"f":"BN","sz":{"a":[[300,250]]}},"n":{"a":"WN","r":"LF","s":false,"z":false},"r":{"c":5,"i":30,"t":"IV"},"tg":[{"b":"testbidder","pm":{"ad":"<img src=\\\'https://storage.googleapis.com/pub-ad-manager-459713/ad-creative/mock-ad-banner-300-250.png\\\' alt=\\\'Test Ad 300x250\\\' width=\\\'300\\\' height=\\\'250\\\'>","cpm":"0.15","width":"300","height":"250","placement_id":"1234568"}},{"b":"appnexus","pm":{"placement_id":12345673}}]},{"f":0,"g":"/139951767/ca-pub-7625127328873999/test-anima-2","i":"OR1FZWM0AFFSF","l":"EG","m":{"f":"BN","sz":{"a":[[300,250]]}},"n":{"a":"WN","r":"TP","s":false,"z":false},"r":{"c":5,"i":30,"t":"IV"},"tg":[{"b":"testbidder","pm":{"ad":"<img src=\\\'https://storage.googleapis.com/pub-ad-manager-459713/ad-creative/mock-ad-banner-300-250.png\\\' alt=\\\'Test Ad 300x250\\\' width=\\\'300\\\' height=\\\'250\\\'>","cpm":"0.10","width":"300","height":"250","placement_id":"123456"}},{"b":"appnexus","pm":{"placement_id":12345672}}]},{"f":0,"g":"/139951767/ca-pub-7625127328873999/test-anima-1","i":"BFPMZCU6CUPQX","l":"EG","m":{"f":"BN","sz":{"a":[[300,600]]}},"n":{"a":"ST","d":"sidebar-ad-1","r":"IN"},"r":{"c":15,"i":30,"t":"IV"},"tg":[{"b":"testbidder","pm":{"ad":"<img src=\\\'https://storage.googleapis.com/pub-ad-manager-459713/ad-creative/mock-ad-banner-300-600.png\\\' alt=\\\'Test Ad 300x600\\\' width=\\\'300\\\' height=\\\'600\\\'>","cpm":"0.05","width":"300","height":"600","placement_id":"1234567"}},{"b":"appnexus","pm":{"placement_id":12345671}}]}],"ly":[],"pb":[]}\');\n\n//# sourceURL=webpack://@wrapp/wrapper/../builds/80918AC8127BA/0.0.55/config-d80918ac8127ba-v0-0-55.json?')}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,exports:{}};return __webpack_modules__[e](n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nc=void 0,__webpack_require__("./src/index.ts"),__webpack_require__("./src/wrapperTag.ts"),__webpack_require__("../builds/80918AC8127BA/0.0.55/prebid.js");var __webpack_exports__=__webpack_require__("./css/sticky.css")})();
|