{"version":3,"sources":["prebid.js","iiq.js","pricing.js","https://adncdn.net/0"],"names":["window","document","URL_PATHS_BLACKLIST","Object","freeze","adsConfig","id","size","position","isLazyLoaded","refreshIteration","sizeMapping","desktop","tablet","mobile","refreshTime","bidders","pubmatic","sonobi","adagio","adyoulike","amx","anyclip","appnexus","contxtful","conversant","criteo","exco","fluct","gamoshi","ix","kueezrtb","magnite","medianet","msft","oms","onetag","openx","pixfuture","programmaticx","richaudience","rise","rubicon","seedtag","sharethrough","smartadserver","smilewanted","sovrn","sparteo","ssp_geniee","teads","underdogmedia","unruly","vidazoo","yandex","async","ipInfo","getIpInfo","country","getCountry","bidder","params","pubId","placementId","tagId","bidderSettings","storageAllowed","adnimation","insticator","taboola","bidderNames","filter","endsWith","map","s2sBidders","s2sAliases","fromEntries","slice","pbjsConfig","s2sConfig","enabled","accountId","endpoint","syncEndpoint","timeout","extPrebid","aliases","priceGranularity","currency","adServerCurrency","conversionRateFile","defaultRates","USD","EUR","ratesTTL","floors","enforcement","enforceJS","enforcePBS","floorDeals","bidAdjustment","data","skipRate","schema","fields","values","banner","native","video","default","consentManagement","gdpr","__tcfapi","cmpApi","defaultGdprScope","usp","useBidCache","userSync","iframeEnabled","filterSettings","iframe","userIds","name","storage","type","expires","pid","partner","refreshInSeconds","detectMissingSizes","aliasSyncEnabled","auctionOptions","suppressStaleRender","version","customer","realTimeData","dataProviders","waitForIt","adServerTargeting","gtag","dataLayer","push","arguments","googletag","cmd","pubads","addEventListener","onImpressionViewable","onFirstAdVisible","collapseEmptyDivs","_taboola","GA_ID","PREBID_TIMEOUT_MS","createScript","src","preCreate","Promise","resolve","scriptEl","querySelector","console","warn","attemptLoad","createElement","fetchPriority","defer","remove","setTimeout","head","appendChild","pathname","location","some","path","includes","isBlacklistedUrl","scriptsToLoad","all","then","log","handleSlotRenderEnded","Date","removeEventListener","IntentIqObject","intentIq_2072952453","pbjs","adnpbjs","callback","main","timeoutInMillis","ABTestingConfigurationSource","manualWinReportEnabled","domainName","host","vrBrowserBlackList","gamParameterName","onEvent","reportExternalWin","biddingPlatformId","partnerAuctionId","auctionId","bidderCode","prebidAuctionId","cpm","originalCpm","originalCurrency","status","adUnitCode","err","error","initIiq","catch","setAttribute","adUnits","slotsMap","lazyLoader","constructor","margin","this","observer","IntersectionObserver","onIntersect","rootMargin","entries","forEach","entry","isIntersecting","cb","target","dataset","lazyCallback","unobserve","add","element","getBoundingClientRect","top","innerHeight","cbName","Math","random","toString","observe","activeSlotIds","newPbjsAdUnits","viewportType","screen","width","event","slot","slotId","getSlotElementId","adUnitPath","getAdUnitPath","adUnit","timeoutMs","adUnitToRefresh","getSlots","at","setTargeting","slotEl","getElementById","runBids","refresh","message","refreshAd","firstAdLogged","isEmpty","performance","now","runPrebidBids","que","requestBids","adUnitCodes","bidsBackHandler","setTargetingForGPTAsync","pbjsBids","bidsFn","race","allSettled","createAdCmd","slotName","length","adsEl","querySelectorAll","adPath","adpath","sizes","slotBidders","ATF","Content","BTF","Side","SideATF","Sticky","publisherId","STANDARD_SIZES","prebidSizes","standardSizes","every","Array","isArray","w","h","isNative","sw","sh","bids","code","mediaTypes","setConfig","ZD_BIDDERS","schainConfig","asi","sid","ortb2","source","ext","schain","ver","complete","nodes","hp","allBidders","concat","isZdBidder","replace","zdBidders","adnBidders","setBidderConfig","config","collectAds","addSize","build","defineSlot","defineSizeMapping","addService","pbjsAdUnit","find","addAdUnits","init","enableServices","display","isInitialLoadDisabled","createNativeCmd","onload","mark","destroyNativeCmd","footerEl","innerHTML","createAd","destroyAd","destroySlots","idx","indexOf","splice","removeAttribute","toLowerCase","parentElement","destroyAdCmd","cached","localStorage","getItem","JSON","parse","url","res","fetch","ok","Error","json","setItem","stringify","removeItem","adn","createNative","destroyNative","createInterstitial","createInterstitialCmd","onDomReady","callbacks","interval","setInterval","readyState","clearInterval","observeSlots","handleAdded","node","getAttribute","handleRemoved","isAdSlot","hasAttribute","nodeList","from","nodeType","Node","ELEMENT_NODE","flatMap","MutationObserver","mutations","mutation","addedNodes","removedNodes","attributeName","isStyleChanged","oldStyle","oldValue","newStyle","isVisibilityChanged","style","getComputedStyle","isDisplayed","isVisible","visibility","subtree","childList","attributes","attributeFilter","attributeOldValue","createStickyBanner","stickyBannerParent","classList","justifyContent","bottom","backgroundColor","zIndex","stickyBannerSizeDiv","stickyBanner","onpage","append","body","slotElementId","el","innerText","right","height","color","borderRadius","cursor","fontSize","textAlign","onclick","addCloseButton","injectInContentAds","container","paragraphs","p","text","textContent","trim","test","adCount","paragraphsSinceLastAd","i","pElement","nextSibling","nextElementSibling","tagName","contains","adContainer","className","marginTop","marginBottom","minHeight","insertAdjacentElement","apiReady","obs","disconnect","documentElement","injectAtfAd","before","href","articleBody","firstParagraph","SRC","wrapper","paddingBottom","s","injectTruvidPlayer","stack"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5HA;ACAA;CCCA,eAAgBA,EAAQC,GAuBtB,MAAMC,EAAsBC,OAAOC,OAAO,IAKtCC,EAAYF,OAAOC,OAAO,CAC5B,wCAAyC,CACvCE,GAAM,wCACNC,KAAQ,CACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,IACN,CAAC,IAAK,KAERC,SAAY,UACZC,cAAgB,EAChBC,iBAAoB,EACpBC,YAAe,CACbC,QAAW,CACT,CAAC,IAAK,IACN,CAAC,IAAK,IACN,CAAC,IAAK,KACN,CAAC,IAAK,MAERC,OAAU,CACR,CAAC,IAAK,IACN,CAAC,IAAK,IACN,CAAC,IAAK,KACN,CAAC,IAAK,MAERC,OAAU,CACR,CAAC,IAAK,KACN,CAAC,IAAK,OAGVC,YAAe,KAEjB,wCAAyC,CACvCT,GAAM,wCACNC,KAAQ,CACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,IACN,CAAC,IAAK,KAERC,SAAY,UACZC,cAAgB,EAChBC,iBAAoB,EACpBC,YAAe,CACb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","file":"IG0KG2tovh","sourcesContent":[null,null,null,"// Last updated: 2026-11-05T13:23:54.598Z by Gina\r\n(async function(window, document) {\r\n\r\n  async function getCountry() {\r\n    try {\r\n      const keyName = 'adngeo';\r\n      const country = localStorage.getItem(keyName);\r\n      if (country) return country;\r\n      const key = '7c4d73767e64472ea502eacdbc47386b';\r\n      const url = `https://d2dvy74lyjayxz.cloudfront.net/?key=${key}`;\r\n      const isOk = (res) => res.ok ? res : (() => {throw new Error(`HTTP-${res.status}`)})();\r\n      const geo = await fetch(url).then(isOk).then((res) => res.json());\r\n      localStorage.setItem(keyName, geo.country);\r\n      return geo.country;\r\n    } catch (err) {\r\n      console.error('Failed to get country:', err.message);\r\n      return 'US';\r\n    }\r\n  }\r\n\r\n  // ----------------------------------------------\r\n  // Configuration\r\n  // ----------------------------------------------\r\n\r\n  const URL_PATHS_BLACKLIST = Object.freeze([\r\n    // Add a list of URL paths to exclude 👇\r\n    // e.g. \"/path/to/page\"\r\n  ]);\r\n\r\nconst adsConfig = Object.freeze({\r\n    \"/22624224542/WatchersNews/InContent_1\": {\r\n      \"id\": \"/22624224542/WatchersNews/InContent_1\",\r\n      \"size\": [\r\n        [300, 250],\r\n        [336, 280],\r\n        [468, 60],\r\n        [728, 90]\r\n      ],\r\n      \"position\": \"Content\",\r\n      \"isLazyLoaded\": true,\r\n      \"refreshIteration\": 0,\r\n      \"sizeMapping\": {\r\n        \"desktop\": [\r\n          [728, 90],\r\n          [468, 60],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"tablet\": [\r\n          [468, 60],\r\n          [728, 90],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"mobile\": [\r\n          [300, 250],\r\n          [336, 280]\r\n        ]\r\n      },\r\n      \"refreshTime\": 30000\r\n    },\r\n    \"/22624224542/WatchersNews/InContent_7\": {\r\n      \"id\": \"/22624224542/WatchersNews/InContent_7\",\r\n      \"size\": [\r\n        [300, 250],\r\n        [336, 280],\r\n        [468, 60],\r\n        [728, 90]\r\n      ],\r\n      \"position\": \"Content\",\r\n      \"isLazyLoaded\": true,\r\n      \"refreshIteration\": 0,\r\n      \"sizeMapping\": {\r\n        \"desktop\": [\r\n          [728, 90],\r\n          [468, 60],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"tablet\": [\r\n          [468, 60],\r\n          [728, 90],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"mobile\": [\r\n          [300, 250],\r\n          [336, 280]\r\n        ]\r\n      },\r\n      \"refreshTime\": 30000\r\n    },\r\n    \"/22624224542/WatchersNews/InContent_5\": {\r\n      \"id\": \"/22624224542/WatchersNews/InContent_5\",\r\n      \"size\": [\r\n        [300, 250],\r\n        [336, 280],\r\n        [468, 60],\r\n        [728, 90]\r\n      ],\r\n      \"position\": \"Content\",\r\n      \"isLazyLoaded\": true,\r\n      \"refreshIteration\": 0,\r\n      \"sizeMapping\": {\r\n        \"desktop\": [\r\n          [728, 90],\r\n          [468, 60],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"tablet\": [\r\n          [468, 60],\r\n          [728, 90],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"mobile\": [\r\n          [300, 250],\r\n          [336, 280]\r\n        ]\r\n      },\r\n      \"refreshTime\": 30000\r\n    },\r\n    \"/22624224542/WatchersNews/InContent_6\": {\r\n      \"id\": \"/22624224542/WatchersNews/InContent_6\",\r\n      \"size\": [\r\n        [300, 250],\r\n        [336, 280],\r\n        [468, 60],\r\n        [728, 90]\r\n      ],\r\n      \"position\": \"Content\",\r\n      \"isLazyLoaded\": true,\r\n      \"refreshIteration\": 0,\r\n      \"sizeMapping\": {\r\n        \"desktop\": [\r\n          [728, 90],\r\n          [468, 60],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"tablet\": [\r\n          [468, 60],\r\n          [728, 90],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"mobile\": [\r\n          [300, 250],\r\n          [336, 280]\r\n        ]\r\n      },\r\n      \"refreshTime\": 30000\r\n    },\r\n    \"/22624224542/WatchersNews/InContent_8\": {\r\n      \"id\": \"/22624224542/WatchersNews/InContent_8\",\r\n      \"size\": [\r\n        [300, 250],\r\n        [336, 280],\r\n        [468, 60],\r\n        [728, 90]\r\n      ],\r\n      \"position\": \"Content\",\r\n      \"isLazyLoaded\": true,\r\n      \"refreshIteration\": 0,\r\n      \"sizeMapping\": {\r\n        \"desktop\": [\r\n          [728, 90],\r\n          [468, 60],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"tablet\": [\r\n          [468, 60],\r\n          [728, 90],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"mobile\": [\r\n          [300, 250],\r\n          [336, 280]\r\n        ]\r\n      },\r\n      \"refreshTime\": 30000\r\n    },\r\n    \"/22624224542/WatchersNews/Sticky_Footer\": {\r\n      \"id\": \"/22624224542/WatchersNews/Sticky_Footer\",\r\n      \"size\": [\r\n        [320, 50],\r\n        [320, 100],\r\n        [728, 90],\r\n        [970, 90]\r\n      ],\r\n      \"position\": \"Sticky\",\r\n      \"isLazyLoaded\": false,\r\n      \"refreshIteration\": 0,\r\n      \"sizeMapping\": {\r\n        \"desktop\": [\r\n          [728, 90],\r\n          [970, 90]\r\n        ],\r\n        \"tablet\": [\r\n          [728, 90]\r\n        ],\r\n        \"mobile\": [\r\n          [320, 50],\r\n          [320, 100]\r\n        ]\r\n      },\r\n      \"refreshTime\": 45000\r\n    },\r\n    \"/22624224542/WatchersNews/ATF\": {\r\n      \"id\": \"/22624224542/WatchersNews/ATF\",\r\n      \"size\": [\r\n        [300, 250],\r\n        [336, 280],\r\n        [728, 90],\r\n        [970, 90],\r\n        [970, 250]\r\n      ],\r\n      \"position\": \"ATF\",\r\n      \"isLazyLoaded\": false,\r\n      \"refreshIteration\": 0,\r\n      \"sizeMapping\": {\r\n        \"desktop\": [\r\n          [728, 90],\r\n          [970, 90],\r\n          [970, 250]\r\n        ],\r\n        \"tablet\": [\r\n          [728, 90]\r\n        ],\r\n        \"mobile\": [\r\n          [300, 250],\r\n          [336, 280]\r\n        ]\r\n      },\r\n      \"refreshTime\": 30000\r\n    },\r\n    \"/22624224542/WatchersNews/InContent_0\": {\r\n      \"id\": \"/22624224542/WatchersNews/InContent_0\",\r\n      \"size\": [\r\n        [300, 250],\r\n        [336, 280],\r\n        [468, 60],\r\n        [728, 90]\r\n      ],\r\n      \"position\": \"Content\",\r\n      \"isLazyLoaded\": true,\r\n      \"refreshIteration\": 0,\r\n      \"sizeMapping\": {\r\n        \"desktop\": [\r\n          [728, 90],\r\n          [468, 60],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"tablet\": [\r\n          [468, 60],\r\n          [728, 90],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"mobile\": [\r\n          [300, 250],\r\n          [336, 280]\r\n        ]\r\n      },\r\n      \"refreshTime\": 30000\r\n    },\r\n    \"/22624224542/WatchersNews/InContent_2\": {\r\n      \"id\": \"/22624224542/WatchersNews/InContent_2\",\r\n      \"size\": [\r\n        [300, 250],\r\n        [336, 280],\r\n        [468, 60],\r\n        [728, 90]\r\n      ],\r\n      \"position\": \"Content\",\r\n      \"isLazyLoaded\": true,\r\n      \"refreshIteration\": 0,\r\n      \"sizeMapping\": {\r\n        \"desktop\": [\r\n          [728, 90],\r\n          [468, 60],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"tablet\": [\r\n          [468, 60],\r\n          [728, 90],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"mobile\": [\r\n          [300, 250],\r\n          [336, 280]\r\n        ]\r\n      },\r\n      \"refreshTime\": 30000\r\n    },\r\n    \"/22624224542/WatchersNews/InContent_3\": {\r\n      \"id\": \"/22624224542/WatchersNews/InContent_3\",\r\n      \"size\": [\r\n        [300, 250],\r\n        [336, 280],\r\n        [468, 60],\r\n        [728, 90]\r\n      ],\r\n      \"position\": \"Content\",\r\n      \"isLazyLoaded\": true,\r\n      \"refreshIteration\": 0,\r\n      \"sizeMapping\": {\r\n        \"desktop\": [\r\n          [728, 90],\r\n          [468, 60],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"tablet\": [\r\n          [468, 60],\r\n          [728, 90],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"mobile\": [\r\n          [300, 250],\r\n          [336, 280]\r\n        ]\r\n      },\r\n      \"refreshTime\": 30000\r\n    },\r\n    \"/22624224542/WatchersNews/InContent_4\": {\r\n      \"id\": \"/22624224542/WatchersNews/InContent_4\",\r\n      \"size\": [\r\n        [300, 250],\r\n        [336, 280],\r\n        [468, 60],\r\n        [728, 90]\r\n      ],\r\n      \"position\": \"Content\",\r\n      \"isLazyLoaded\": true,\r\n      \"refreshIteration\": 0,\r\n      \"sizeMapping\": {\r\n        \"desktop\": [\r\n          [728, 90],\r\n          [468, 60],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"tablet\": [\r\n          [468, 60],\r\n          [728, 90],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"mobile\": [\r\n          [300, 250],\r\n          [336, 280]\r\n        ]\r\n      },\r\n      \"refreshTime\": 30000\r\n    },\r\n    \"/22624224542/WatchersNews/InContent_9\": {\r\n      \"id\": \"/22624224542/WatchersNews/InContent_9\",\r\n      \"size\": [\r\n        [300, 250],\r\n        [336, 280],\r\n        [468, 60],\r\n        [728, 90]\r\n      ],\r\n      \"position\": \"Content\",\r\n      \"isLazyLoaded\": true,\r\n      \"refreshIteration\": 0,\r\n      \"sizeMapping\": {\r\n        \"desktop\": [\r\n          [728, 90],\r\n          [468, 60],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"tablet\": [\r\n          [468, 60],\r\n          [728, 90],\r\n          [300, 250],\r\n          [336, 280]\r\n        ],\r\n        \"mobile\": [\r\n          [300, 250],\r\n          [336, 280]\r\n        ]\r\n      },\r\n      \"refreshTime\": 30000\r\n    }\r\n  });\r\n\r\n  const biddersWhiteList = Object.freeze({\r\n    \"pubmatic\":[\"AU\",\"CA\",\"CH\",\"DE\",\"ES\",\"GB\",\"IL\",\"MX\",\"US\",\"ZA\"],\r\n    \"sonobi\":[\"US\"],\r\n  });\r\n\r\n  const biddersBlackList = Object.freeze({\r\n    \"33across\":[\"GH\",\"GB\",\"CA\",\"DE\",\"NL\",\"IL\",\"SG\",\"AU\",\"IT\",\"FR\"],\r\n    \"adagio\":[\"FR\",\"IL\",\"GB\",\"AU\",\"BE\",\"CH\",\"PH\",\"DE\",\"CN\",\"SG\"],\r\n    \"adyoulike\":[\"IL\",\"CA\",\"CN\",\"SG\",\"GB\",\"AU\",\"ZA\",\"FR\",\"IN\",\"PK\"],\r\n    \"amx\":[\"NL\",\"ID\",\"IT\",\"PH\",\"CN\",\"ES\",\"BE\",\"SO\",\"CH\",\"BR\"],\r\n    \"anyclip\":[\"GH\",\"US\",\"GB\",\"IT\",\"CA\",\"FR\",\"AT\",\"BR\",\"DE\",\"DK\"],\r\n    \"appnexus\":[\"DE\",\"CA\",\"GB\",\"FR\",\"ID\",\"AU\",\"PH\",\"BR\",\"TH\",\"SG\"],\r\n    \"contxtful\":[\"IL\",\"IN\",\"GB\",\"ID\",\"SG\",\"KR\",\"CN\",\"PH\",\"DE\",\"TH\"],\r\n    \"conversant\":[\"IL\",\"IN\",\"KR\",\"PH\",\"TH\",\"JP\",\"VN\",\"PK\",\"CN\",\"EG\"],\r\n    \"criteo\":[\"CN\",\"BD\",\"BY\",\"KZ\",\"AR\",\"MA\",\"CY\",\"CO\",\"BG\",\"CI\"],\r\n    \"exco\":[\"US\",\"SG\",\"GB\",\"DE\",\"CA\",\"AU\",\"IT\",\"PL\",\"CN\",\"BR\"],\r\n    \"fluct\":[\"US\",\"CA\",\"HK\",\"JP\",\"SG\",\"GB\",\"AU\",\"DE\",\"CN\",\"TW\"],\r\n    \"gamoshi\":[\"US\",\"GB\",\"CA\",\"DE\",\"AU\",\"PH\",\"IT\",\"SG\",\"CN\",\"MY\"],\r\n    \"ix\":[\"CN\",\"PL\",\"IE\",\"FI\",\"DK\",\"AT\",\"GR\",\"AR\",\"MA\",\"PT\"],\r\n    \"kueezrtb\":[\"IT\",\"CN\",\"ES\",\"BE\",\"UA\",\"PH\",\"CH\",\"TH\",\"SE\",\"BY\"],\r\n    \"magnite\":[\"NL\",\"IT\",\"CN\",\"BE\",\"SO\",\"CH\",\"ES\",\"UA\",\"BR\",\"PL\"],\r\n    \"medianet\":[\"CN\",\"CH\",\"MY\",\"UA\",\"VN\",\"BD\",\"AE\",\"PK\",\"TR\",\"BY\"],\r\n    \"msft\":[\"CN\",\"SO\",\"SG\",\"UA\",\"PH\",\"BY\",\"KZ\",\"KE\",\"IN\",\"IT\"],\r\n    \"oms\":[\"SG\",\"IN\",\"IL\",\"NL\",\"ID\",\"KR\",\"IT\",\"PH\",\"TH\",\"CH\"],\r\n    \"onetag\":[\"CN\",\"PL\",\"BD\",\"GR\",\"SE\",\"PK\",\"CY\",\"RO\",\"AT\",\"PT\"],\r\n    \"openx\":[\"DE\",\"NL\",\"CN\",\"IT\",\"BE\",\"SO\",\"JP\",\"ES\",\"PH\",\"SE\"],\r\n    \"pixfuture\":[\"DE\",\"CN\",\"AU\",\"FR\",\"SG\",\"TH\",\"PH\",\"ID\",\"BR\",\"JP\"],\r\n    \"programmaticx\":[\"FR\",\"SG\",\"IL\",\"GB\",\"ID\",\"IN\",\"KR\",\"DE\",\"PH\",\"JP\"],\r\n    \"richaudience\":[\"IN\",\"GB\",\"CN\",\"PK\",\"DE\",\"BD\",\"BR\",\"ZA\",\"FR\",\"TW\"],\r\n    \"rise\":[\"FR\",\"SG\",\"IN\",\"GB\",\"DE\",\"ID\",\"AU\",\"PH\",\"KR\",\"CN\"],\r\n    \"rubicon\":[\"IL\",\"CA\",\"MY\",\"GH\",\"SG\",\"AU\",\"PR\",\"GB\",\"CN\",\"DE\"],\r\n    \"seedtag\":[\"CN\",\"PH\",\"NG\",\"IN\",\"NO\",\"AT\",\"MA\",\"DK\",\"MY\",\"CI\"],\r\n    \"sharethrough\":[\"FR\",\"SG\",\"IL\",\"GB\",\"DE\",\"BE\",\"CH\",\"BR\",\"NL\",\"IT\"],\r\n    \"smartadserver\":[\"US\",\"SO\",\"GB\",\"IL\",\"CA\",\"KE\",\"SE\",\"NO\",\"NL\",\"CN\"],\r\n    \"smilewanted\":[\"DE\",\"ID\",\"CN\",\"PH\",\"NL\",\"SE\",\"IT\",\"TH\",\"CH\",\"ES\"],\r\n    \"sovrn\":[\"NL\",\"SG\",\"IT\",\"CN\",\"ES\",\"SE\",\"VN\",\"MY\",\"NG\",\"MX\"],\r\n    \"sparteo\":[\"CN\",\"PK\",\"BD\",\"RO\",\"FI\",\"CZ\",\"DZ\",\"NO\",\"HU\",\"DK\"],\r\n    \"ssp_geniee\":[\"IL\",\"GB\",\"DE\",\"NL\",\"ID\",\"IN\",\"KR\",\"IT\",\"CN\",\"ZA\"],\r\n    \"teads\":[\"CN\",\"CA\",\"SG\",\"IL\",\"AU\",\"GB\",\"FR\",\"TH\",\"DE\",\"PH\"],\r\n    \"underdogmedia\":[\"SO\",\"US\",\"CA\",\"ZA\",\"undefined\"],\r\n    \"unruly\":[\"IN\",\"ID\",\"DE\",\"AU\",\"PH\",\"KR\",\"CN\",\"SG\",\"TH\",\"JP\"],\r\n    \"vidazoo\":[\"FR\",\"SG\",\"GB\",\"IN\",\"ID\",\"DE\",\"PH\",\"CN\",\"SO\",\"TH\"],\r\n    \"yandex\":[\"IL\",\"US\",\"CA\",\"DE\",\"UA\",\"AU\",\"GB\",\"BG\",\"KZ\",\"LV\"],\r\n  });\r\n\r\n  const country = await getCountry();\r\n\r\n  const isBidderAllowed = ({ bidder }) => {\r\n    const name = bidder?.toLowerCase().replace(/s2s$/, '');\r\n    const whiteOk = !biddersWhiteList[name] || biddersWhiteList[name].includes(country);\r\n    const blackOk = !biddersBlackList[name] || !biddersBlackList[name].includes(country);\r\n    return whiteOk && blackOk;\r\n  };\r\n\r\n  const bidders = [\r\n    \r\n    {bidder:'onetag',params:{pubId:'62d98ebd4882fb0'}},\r\n    {bidder:'msft',params:{placementId:38216361}},\r\n    {bidder:'amx',params:{tagId:'YWRuaW1hdGlvbi5jb20'}},\r\n    {bidder:'msftS2S',params:{placementId:'38216362'}},\r\n    \r\n    ]; //.filter(isBidderAllowed);\r\n\r\n  const bidderSettings = Object.freeze({\r\n    \"33across\": { \"storageAllowed\": true },\r\n    \"adagio\": { \"storageAllowed\": true },\r\n    \"adnimation\": { \"storageAllowed\": true },\r\n    \"adyoulike\": { \"storageAllowed\": true },\r\n    \"amx\": { \"storageAllowed\": true },\r\n    \"anyclip\": { \"storageAllowed\": true },\r\n    \"appnexus\": { \"storageAllowed\": true },\r\n    \"contxtful\": { \"storageAllowed\": true },\r\n    \"conversant\": { \"storageAllowed\": true },\r\n    \"criteo\": { \"storageAllowed\": true },\r\n    \"exco\": { \"storageAllowed\": true },\r\n    \"fluct\": { \"storageAllowed\": true },\r\n    \"gamoshi\": { \"storageAllowed\": true },\r\n    \"insticator\": { \"storageAllowed\": true },\r\n    \"ix\": { \"storageAllowed\": true },\r\n    \"kueezrtb\": { \"storageAllowed\": true },\r\n    \"magnite\": { \"storageAllowed\": true },\r\n    \"medianet\": { \"storageAllowed\": true },\r\n    \"msft\": { \"storageAllowed\": true },\r\n    \"oms\": { \"storageAllowed\": true },\r\n    \"onetag\": { \"storageAllowed\": true },\r\n    \"openx\": { \"storageAllowed\": true },\r\n    \"pixfuture\": { \"storageAllowed\": true },\r\n    \"programmaticx\": { \"storageAllowed\": true },\r\n    \"pubmatic\": { \"storageAllowed\": true },\r\n    \"richaudience\": { \"storageAllowed\": true },\r\n    \"rise\": { \"storageAllowed\": true },\r\n    \"rubicon\": { \"storageAllowed\": true },\r\n    \"seedtag\": { \"storageAllowed\": true },\r\n    \"sharethrough\": { \"storageAllowed\": true },\r\n    \"smartadserver\": { \"storageAllowed\": true },\r\n    \"smilewanted\": { \"storageAllowed\": true },\r\n    \"sonobi\": { \"storageAllowed\": true },\r\n    \"sovrn\": { \"storageAllowed\": true },\r\n    \"sparteo\": { \"storageAllowed\": true },\r\n    \"ssp_geniee\": { \"storageAllowed\": true },\r\n    \"taboola\": { \"storageAllowed\": true },\r\n    \"teads\": { \"storageAllowed\": true },\r\n    \"underdogmedia\": { \"storageAllowed\": true },\r\n    \"unruly\": { \"storageAllowed\": true },\r\n    \"vidazoo\": { \"storageAllowed\": true },\r\n    \"yandex\": { \"storageAllowed\": true },\r\n  });\r\n\r\n  const bidderNames = bidders.filter(({bidder}) => !bidder.endsWith('S2S')).map(({bidder}) => bidder);\r\n  const s2sBidders = bidders.filter(({bidder}) => bidder.endsWith('S2S')).map(({bidder}) => bidder);\r\n  const s2sAliases = Object.fromEntries(s2sBidders.map(bidder => [bidder, bidder.slice(0, -3)]));\r\n\r\n  const pbjsConfig = Object.freeze({\r\n    's2sConfig': {\r\n      'enabled': true,\r\n      'accountId': '1001',\r\n      'bidders': s2sBidders,\r\n      'endpoint': 'https://adnpbs.com/openrtb2/auction',\r\n      'syncEndpoint': 'https://adnpbs.com/cookie_sync',\r\n      'timeout': 1500,\r\n      'extPrebid': {\r\n        'aliases': s2sAliases\r\n      }\r\n    },\r\n    'priceGranularity': 'high',\r\n    'currency': {\r\n        'adServerCurrency': 'USD',\r\n        'conversionRateFile': 'https://cdn.jsdelivr.net/gh/prebid/currency-file@1/latest.json',\r\n        'defaultRates': {\r\n        'USD': { 'EUR': 0.92, 'USD': 1 },\r\n        'EUR': { 'USD': 1.09, 'EUR': 1 }\r\n        },\r\n        'ratesTTL': 3600000\r\n    },\r\n    'floors': {\r\n      'enforcement': {\r\n        'enforceJS': true,\r\n        'enforcePBS': true,\r\n        'floorDeals': true,\r\n        'bidAdjustment': true\r\n      },\r\n      'data': {\r\n        'currency': 'USD',\r\n        'skipRate': 0,\r\n        'schema': {\r\n          'fields': [\r\n            'mediaType'\r\n          ]\r\n        },\r\n        'values': {\r\n          'banner': 0.01,\r\n          'native': 0.01,\r\n          'video': 0.01\r\n        },\r\n        'default': 0.01\r\n      }\r\n    },\r\n    'consentManagement': {\r\n      'gdpr': window.__tcfapi && {'cmpApi':'iab','defaultGdprScope':true,'timeout':500},\r\n      'usp': {\r\n        'cmpApi': 'iab',\r\n        'timeout': 500\r\n      }\r\n    },\r\n    'useBidCache': true,\r\n    'userSync': {\r\n      'iframeEnabled': true,\r\n      'filterSettings': {\r\n        'iframe': {\r\n          'bidders': bidderNames,\r\n          'filter': 'include'\r\n        }\r\n      },\r\n      'userIds': [\r\n        {\r\n          'name': 'sharedId',\r\n          'storage': {\r\n            'type': 'html5',\r\n            'name': '_pubcid',\r\n            'expires': 365\r\n          }\r\n        },\r\n        {\r\n          'name': 'identityLink',\r\n          'params': {\r\n            'pid': '13346'\r\n          },\r\n          'storage': {\r\n            'type': 'html5',\r\n            'name': 'idl_env',\r\n            'expires': 30\r\n          }\r\n        },\r\n        {\r\n          'name': 'id5Id',\r\n          'params': {\r\n            'partner': 1262\r\n          },\r\n          'storage': {\r\n            'type': 'html5',\r\n            'name': 'id5id',\r\n            'expires': 90,\r\n            'refreshInSeconds': 28800\r\n          }\r\n        },\r\n        {\r\n          'name': '33acrossId',\r\n          'params': {\r\n            'pid': '0010b00002KBtyLAAT'\r\n          },\r\n          'storage': {\r\n            'name': '33acrossId',\r\n            'type': 'html5',\r\n            'expires': 90,\r\n            'refreshInSeconds': 28800\r\n          }\r\n        }\r\n      ]\r\n    },\r\n    'ix': {\r\n      'detectMissingSizes': true\r\n    },\r\n    'aliasSyncEnabled': true,\r\n    'auctionOptions': {\r\n      'suppressStaleRender': true\r\n    },\r\n    'contxtful': {\r\n      'version': 'v1',\r\n      'customer': 'ADNP250319'\r\n    },\r\n    'realTimeData': {\r\n      'dataProviders': [\r\n        {\r\n          'name': 'contxtful',\r\n          'waitForIt': true,\r\n          'params': {\r\n            'version': 'v1',\r\n            'customer': 'ADNP250319',\r\n            'bidders': [\r\n              'contxtful'\r\n            ],\r\n            'adServerTargeting': true\r\n          }\r\n        }\r\n      ]\r\n    }\r\n  });\r\n\r\n  // ----------------------------------------------\r\n  // Placeholders\r\n  // ----------------------------------------------\r\n\r\n\r\n\r\n  // Google Tag\r\n  window.googletag = window.googletag || {};\r\n  window.googletag.cmd = window.googletag.cmd || [];\r\n  // Manage refresh of viewable ads\r\n  window.googletag.cmd.push(() =>\r\n    window.googletag.pubads().addEventListener(\r\n      'impressionViewable', onImpressionViewable));\r\n  // Log time to first ad\r\n  window.googletag.cmd.push(() =>\r\n    window.googletag.pubads().addEventListener(\r\n      'slotRenderEnded', onFirstAdVisible));\r\n  // Visually collapse unfilled slots\r\n  window.googletag.cmd.push(() =>\r\n    window.googletag.pubads().collapseEmptyDivs());\r\n\r\n  // Google Analytics\r\n  window.dataLayer = window.dataLayer || [];\r\n  function gtag() {\r\n    window.dataLayer.push(arguments);\r\n  }\r\n\r\n  // Taboola\r\n  window._taboola = window._taboola || [];\r\n\r\n  // ----------------------------------------------\r\n  // Constants\r\n  // ----------------------------------------------\r\n\r\n  const GA_ID = 'G-X0RX8SYSLH';\r\n  const APS_TIMEOUT_MS = 2000;\r\n  const PREBID_TIMEOUT_MS = 1800;\r\n\r\n  // ----------------------------------------------\r\n  // Scripts\r\n  // ----------------------------------------------\r\n\r\n  function createScript(src, preCreate = () => {}) {\r\n    return new Promise((resolve) => {\r\n      let scriptEl = document.querySelector(`script[src=\"${src}\"]`);\r\n\r\n      if (scriptEl) {\r\n        console.warn('Script already exists:', src);\r\n        resolve(false);\r\n        return;\r\n      }\r\n\r\n      const attemptLoad = () => {\r\n        scriptEl = document.createElement('script');\r\n        scriptEl.src = src;\r\n        scriptEl.fetchPriority = 'high';\r\n        preCreate(scriptEl);\r\n        scriptEl.async = !scriptEl.defer;\r\n        scriptEl.addEventListener('load', () => resolve(true));\r\n        scriptEl.addEventListener('error', () => {\r\n          console.warn('Retrying to load script:', src);\r\n          scriptEl.remove();\r\n          setTimeout(attemptLoad, 100);\r\n        });\r\n        document.head.appendChild(scriptEl);\r\n      };\r\n\r\n      attemptLoad();\r\n    });\r\n  }\r\n\r\n  // Don't initialize anything if page URL is blacklisted\r\n  if (isBlacklistedUrl()) {\r\n    throw 'Skipping...';\r\n  }\r\n\r\n const scriptsToLoad = [];\r\n  scriptsToLoad.push(createScript('https://cadmus.script.ac/d3svkhbhkz2i0f/script.js'));\r\n\r\n  Promise.all(scriptsToLoad)\r\n    .then(config)\r\n    .then(main)\r\n    .catch((err) => console.error('Failed to bootstrap scripts:', err));\r\n\r\n  // Vidazoo video ads\r\n  createScript('https://static.vidazoo.com/basev/vwpt.js', (scriptEl) => {\r\n    scriptEl.setAttribute('data-widget-id', '65e9b79ebdb3a9c5732bbae8');\r\n  });\r\n\r\n  // Google Analytics\r\n  createScript(`https://www.googletagmanager.com/gtag/js?id=${GA_ID}`);\r\n\r\n  // KueezRTB cookieless solution\r\n  createScript('https://static.kueezrtb.com/latest.js', (scriptEl) => {\r\n    scriptEl.setAttribute('data-cfasync', 'false');\r\n    scriptEl.id = 'kueezrtb_latest';\r\n  });\r\n\r\n  class LazyLoader {\r\n    constructor(margin = '100px') {\r\n      this.observer = new IntersectionObserver(this.onIntersect, {\r\n        rootMargin: margin\r\n      });\r\n    }\r\n\r\n    onIntersect = (entries) => {\r\n      entries.forEach((entry) => {\r\n        if (entry.isIntersecting) {\r\n          const cb = entry.target.dataset.lazyCallback;\r\n          if (cb && window[cb]) {\r\n            window[cb](entry.target);\r\n            delete window[cb];\r\n          }\r\n          this.observer.unobserve(entry.target);\r\n        }\r\n      });\r\n    };\r\n\r\n    add(element, callback) {\r\n      if (!element || typeof callback !== 'function') return;\r\n      if (element.getBoundingClientRect().top < window.innerHeight) {\r\n        callback(element);\r\n      } else {\r\n        const cbName = 'lazy_cb_' + Math.random().toString(36).slice(2);\r\n        window[cbName] = callback;\r\n        element.dataset.lazyCallback = cbName;\r\n        this.observer.observe(element);\r\n      }\r\n    }\r\n  }\r\n\r\n  // ----------------------------------------------\r\n  // App\r\n  // ----------------------------------------------\r\n\r\n  const adUnits = [];\r\n  const slotsMap = [];\r\n  const lazyLoader = new LazyLoader();\r\n  const activeSlotIds = [];\r\n  const newPbjsAdUnits = [];\r\n  const viewportType =\r\n    window.screen.width > 1525\r\n      ? 'desktop'\r\n      : window.screen.width > 730\r\n        ? 'tablet'\r\n        : 'mobile';\r\n\r\n  /**\r\n   * Main entry point of our tag.\r\n   */\r\n  async function main() {\r\n    const isOk = await createScript('https://securepubads.g.doubleclick.net/tag/js/gpt.js');\r\n    if (isOk) {\r\n      console.log('Starting...');\r\n    }\r\n  }\r\n\r\n  function config() {\r\n    console.log('Configuring...');\r\n    initGa();\r\n    initIiq();\r\n  }\r\n\r\n  function initGa() {\r\n    window.googletag.cmd.push(() => {\r\n      const handleSlotRenderEnded = () => {\r\n        gtag('js', new Date());\r\n        gtag('config', GA_ID);\r\n\r\n        googletag.pubads().removeEventListener('slotRenderEnded', handleSlotRenderEnded);\r\n      };\r\n      googletag.pubads().addEventListener('slotRenderEnded', handleSlotRenderEnded);\r\n    });\r\n  }\r\n\r\n  function initIiq() {\r\n    if (!window.IntentIqObject) {\r\n      console.log('IIQ not found - skipping initialization');\r\n      return;\r\n    }\r\n\r\n    try {\r\n      // Configure IntentIQ\r\n      window.intentIq_2072952453 = new IntentIqObject({\r\n        partner: 2072952453,\r\n        pbjs: adnpbjs,\r\n        callback: main,\r\n        timeoutInMillis: PREBID_TIMEOUT_MS,\r\n        ABTestingConfigurationSource: 'IIQServer',\r\n        manualWinReportEnabled: true,\r\n        domainName: window.location.host,\r\n        vrBrowserBlackList: ['chrome'],\r\n        gamParameterName: 'googletag', // Optional\r\n      });\r\n\r\n      adnpbjs.onEvent('bidWon', (data) => {\r\n        window.intentIq_2072952453.reportExternalWin({\r\n          biddingPlatformId: 1, // PreBid\r\n          partnerAuctionId: data.auctionId,\r\n          bidderCode: data.bidderCode,\r\n          prebidAuctionId: data.auctionId,\r\n          cpm: data.cpm,\r\n          currency: 'USD',\r\n          originalCpm: data.originalCpm,\r\n          originalCurrency: 'USD',\r\n          status: data.status,\r\n          placementId: data.adUnitCode\r\n        });\r\n      });\r\n\r\n    } catch (err) {\r\n      console.error('Failed to initialize IntentIQ:', err);\r\n      throw err;\r\n    }\r\n  }\r\n\r\n  function initAds() {\r\n    const adsEl = document.querySelectorAll('[data-onpage=\"true\"]');\r\n    adsEl.forEach(slotEl => createAd(slotEl.dataset.adpath));\r\n  }\r\n\r\n  function onImpressionViewable(event) {\r\n    const { slot } = event;\r\n    const slotId = slot.getSlotElementId();\r\n    if (!activeSlotIds.includes(slotId)) {\r\n      return;\r\n    }\r\n\r\n    const adUnitPath = slot.getAdUnitPath();\r\n    const adUnit = adsConfig[adUnitPath];\r\n    const timeoutMs = adUnit.refreshTime;\r\n\r\n    setTimeout(() => refreshAd(slot, slotId, adUnit), timeoutMs);\r\n  }\r\n\r\n  let firstAdLogged = false;\r\n  function onFirstAdVisible(event) {\r\n    if (!event.isEmpty && !firstAdLogged) {\r\n      console.log('Time to first ad:', performance.now(), 'ms');\r\n      firstAdLogged = true;\r\n      googletag.pubads().removeEventListener('slotRenderEnded', onFirstAdVisible);\r\n    }\r\n  }\r\n\r\n  function collectAds() {\r\n    adUnits.length = 0;\r\n\r\n    const adsEl = document.querySelectorAll('[data-onpage=\"true\"]');\r\n    if (!adsEl.length) {\r\n      console.warn('No ads found to collect');\r\n      return;\r\n    }\r\n\r\n    adsEl.forEach((slotEl) => {\r\n      const adPath = slotEl.dataset.adpath;\r\n      const slot = adsConfig[adPath];\r\n      const slotId = slot?.id;\r\n      const sizes = slot?.sizeMapping[viewportType];\r\n\r\n      if (!sizes?.length) {\r\n        console.warn(\r\n          'Failed to find slot sizes for viewport - bids will be affected for',\r\n          viewportType, slotId\r\n        );\r\n        return;\r\n      }\r\n\r\n      const slotBidders = [...bidders];\r\n      const tagMap = {\r\n            ATF: \"ATF\",\r\n            Content: \"Content\",\r\n            BTF: \"BTF\",\r\n            Side: \"Side\",\r\n            SideATF: \"SideATF\",\r\n            Sticky: \"Sticky\"\r\n        };\r\n\r\n        slotBidders.push({\r\n            bidder: \"taboola\",\r\n            params: {\r\n                tagId: tagMap[slot.position] || \"ROS\",\r\n                publisherId: \"2138145\"\r\n            }\r\n        });\r\n      const STANDARD_SIZES = {\r\n        desktop: [\r\n          [1, 1],\r\n          [728, 90],\r\n          [970, 90],\r\n          [970, 250],\r\n          [300, 250],\r\n          [300, 600],\r\n          [160, 600],\r\n          [336, 280],\r\n          [320, 50],\r\n          [320, 100],\r\n        ],\r\n        tablet: [\r\n          [1, 1],\r\n          [728, 90],\r\n          [300, 250],\r\n          [300, 600],\r\n          [160, 600],\r\n          [336, 280],\r\n        ],\r\n        mobile: [\r\n          [1, 1],\r\n          [320, 50],\r\n          [320, 100],\r\n          [300, 250],\r\n          [336, 280],\r\n          [360, 360],\r\n        ]\r\n      };\r\n\r\n      const hasOnlyStandardSizes = (size) => {\r\n        const sizes = [size];\r\n        const standardSizes = STANDARD_SIZES[viewportType] || [];\r\n        const isNative = (w, h) => w === 1 && h === 2;\r\n\r\n        return sizes.every(size => {\r\n          if (Array.isArray(size)) {\r\n            const [w, h] = size;\r\n            return isNative(w, h)\r\n              ? true\r\n              : standardSizes.some(([sw, sh]) => sw === w && sh === h);\r\n          }\r\n          return false;\r\n        });\r\n      }\r\n\r\n      const prebidSizes = sizes.filter(hasOnlyStandardSizes);\r\n\r\n      if (!prebidSizes.length) {\r\n        console.log('No Prebid sizes for', slotId);\r\n\r\n      } else {\r\n        adUnits.push({\r\n          bids: slotBidders,\r\n          code: slotId,\r\n          mediaTypes: {\r\n            banner: {\r\n              sizes: prebidSizes\r\n            }\r\n          }\r\n        });\r\n      }\r\n    });\r\n\r\n    newPbjsAdUnits.length = 0;\r\n    newPbjsAdUnits.push(...adUnits);\r\n\r\n    window.adnpbjs.que.push(() => {\r\n      window.adnpbjs.bidderSettings = bidderSettings;\r\n      window.adnpbjs.setConfig(pbjsConfig);\r\n      // Supply chain: ZeroDegree bidders (and their S2S aliases) send only the ZD node,\r\n      // all other bidders send only the Adnimation node. Set per bidder, never globally,\r\n      // because Prebid deep-merges per-bidder ortb2 into the global config (nodes would stack).\r\n      const ZD_BIDDERS = ['sparteo', 'magnite'];\r\n      const schainConfig = (asi, sid) => ({\r\n        ortb2: { source: { ext: { schain: { ver: '1.0', complete: 1, nodes: [{ asi, sid, hp: 1 }] } } } }\r\n      });\r\n\r\n      const allBidders = bidderNames.concat(s2sBidders);\r\n      const isZdBidder = (bidder) => ZD_BIDDERS.includes(bidder.replace(/S2S$/, ''));\r\n      const zdBidders = allBidders.filter(isZdBidder);\r\n      const adnBidders = allBidders.filter((bidder) => !isZdBidder(bidder)).concat(['taboola', 'seedtag']);\r\n\r\n      window.adnpbjs.setBidderConfig({ bidders: adnBidders, config: schainConfig('adnimation.com', '20250104') });\r\n      if (zdBidders.length && 'undefined') {\r\n        window.adnpbjs.setBidderConfig({ bidders: zdBidders, config: schainConfig('zerodegreeads.com', 'undefined') });\r\n      }\r\n    });\r\n  }\r\n\r\n  function runApsBids(slotEl, resolve) {\r\n    const slotId = slotEl.id;\r\n    const adPath = slotEl.dataset.adpath;\r\n\r\n    const sizes = adsConfig[adPath].sizeMapping[viewportType];\r\n    if (!sizes.length) {\r\n      console.warn(\r\n        'Failed to find slot sizes for viewport - canceling APS bid for',\r\n        viewportType, slotId\r\n      );\r\n      resolve();\r\n      return;\r\n    }\r\n\r\n    const slots = [{\r\n      slotID: slotId,\r\n      slotName: adsConfig[adPath].id,\r\n      sizes\r\n    }];\r\n\r\n    window.apstag.fetchBids({ slots, timeout: APS_TIMEOUT_MS }, () => {\r\n      window.apstag.setDisplayBids();\r\n      resolve();\r\n    });\r\n  }\r\n\r\n  function runPrebidBids(slotEl, resolve) {\r\n    const slotId = slotEl.id;\r\n    window.adnpbjs.que.push(() =>\r\n      window.adnpbjs.requestBids({\r\n        timeout: PREBID_TIMEOUT_MS,\r\n        adUnitCodes: [slotId],\r\n        bidsBackHandler: () => {\r\n          window.adnpbjs.setTargetingForGPTAsync([slotId]);\r\n          resolve();\r\n        }\r\n      })\r\n    );\r\n  }\r\n\r\n  async function runBids(slotEl) {\r\n    \r\n    const slotId = slotEl.id;\r\n    const safeBids = (bidsFn) => Promise.race([\r\n      new Promise((resolve) => bidsFn(slotEl, resolve)),\r\n      new Promise((resolve) => setTimeout(resolve, 3000))\r\n    ]);\r\n    const pbjsBids = safeBids(runPrebidBids);\r\n    await Promise.allSettled([pbjsBids]);\r\n  }\r\n\r\n  async function createAdCmd(slotName) {\r\n    const slotEl = document.querySelector(`[data-adpath=\"${slotName}\"]`);\r\n    if (!slotEl) {\r\n      console.warn('Failed to find ad to create by id:', slotName);\r\n      return;\r\n    }\r\n\r\n    collectAds();\r\n\r\n    let adUnit = adsConfig[slotName];\r\n    if (!adUnit) {\r\n      console.warn('Failed to find ad with the following id:', slotName);\r\n      return;\r\n    }\r\n\r\n    const sizeMapping = googletag\r\n      .sizeMapping()\r\n      .addSize([980, 200], adUnit.sizeMapping.desktop)\r\n      .addSize([730, 200], adUnit.sizeMapping.tablet)\r\n      .addSize([0, 0], adUnit.sizeMapping.mobile)\r\n      .build();\r\n\r\n    const adPath = slotEl.dataset.adpath;\r\n    let refreshIteration = adsConfig[adPath].refreshIteration;\r\n    refreshIteration++;\r\n\r\n    const slot = googletag\r\n      .defineSlot(adUnit.id, adUnit.size)\r\n      .setTargeting('refreshIteration', refreshIteration.toString())\r\n      .setTargeting('intent_iq_group', 'U')\r\n      .defineSizeMapping(sizeMapping)\r\n      .addService(window.googletag.pubads());\r\n\r\n    slotEl.id = slot.getSlotElementId();\r\n\r\n    const pbjsAdUnit = newPbjsAdUnits.find(adUnit => adUnit.code === slotName);\r\n    if (pbjsAdUnit) {\r\n      pbjsAdUnit.code = slotEl.id;\r\n      window.adnpbjs.addAdUnits(pbjsAdUnit);\r\n    }\r\n\r\n    slotsMap[slotEl.id] = slot;\r\n    activeSlotIds.push(slotEl.id);\r\n\r\n    const init = async () => {\r\n      try {\r\n        await runBids(slotEl);\r\n        window.googletag.enableServices();\r\n        window.googletag.display(slotEl.id);\r\n        if (googletag.pubads().isInitialLoadDisabled()) {\r\n          window.googletag.pubads().refresh([slot]);\r\n        }\r\n      } catch (err) {\r\n        console.error('Failed to run bids for ad slot: %s, %s', slotEl.id, err);\r\n      }\r\n    };\r\n\r\n    const isLazyLoaded = adsConfig[adPath]?.isLazyLoaded !== false;\r\n    if (isLazyLoaded) {\r\n      lazyLoader.add(slotEl, init);\r\n    } else {\r\n      init();\r\n    }\r\n  }\r\n\r\n  async function refreshAd(slot, slotId, adUnit) {\r\n    try {\r\n      const adUnitToRefresh = googletag\r\n        .pubads()\r\n        .getSlots()\r\n        .filter((slot) => slot.getSlotElementId() === slotId)\r\n        .at(0);\r\n\r\n      if (!adUnitToRefresh) {\r\n        return;\r\n      }\r\n\r\n      adUnit.refreshIteration++;\r\n      slot.setTargeting('refreshIteration', adUnit.refreshIteration.toString());\r\n\r\n      const slotEl = document.getElementById(adUnitToRefresh.getSlotElementId());\r\n      await runBids(slotEl);\r\n\r\n      window.googletag.pubads().refresh([slotsMap[slotEl.id]]);\r\n    } catch (err) {\r\n      console.error('Failed to refresh ad:', slotId, err.message);\r\n    }\r\n  }\r\n\r\n  function destroyAdCmd(slotName) {\r\n    const slotEl = document.querySelector(`[data-adpath=\"${slotName}\"]`);\r\n    if (!slotEl) {\r\n      console.warn('Failed to find ad to destroy by id:', slotName);\r\n      return;\r\n    }\r\n\r\n    const slotId = slotEl.id;\r\n    if (slotId && slotsMap[slotId]) {\r\n      window.googletag.destroySlots([slotsMap[slotId]]);\r\n      delete slotsMap[slotId];\r\n      const idx = activeSlotIds.indexOf(slotId);\r\n      if (idx > -1) {\r\n        activeSlotIds.splice(idx, 1);\r\n      }\r\n    }\r\n\r\n    slotEl.innerHTML = '';\r\n    slotEl.id = '';\r\n    slotEl.removeAttribute('data-onpage');\r\n    if (slotId.toLowerCase().includes('sticky_footer')) {\r\n        slotEl.parentElement.parentElement.remove();\r\n    }\r\n  }\r\n\r\n  function createNativeCmd() {\r\n    createScript('https://cdn.taboola.com/libtrc/adnimationnetwork/loader.js', (scriptEl) => {\r\n      scriptEl.id = 'tb_loader_script';\r\n      scriptEl.onload = () => {\r\n        window.performance?.mark?.('tbl_ic');\r\n      };\r\n    });\r\n\r\n    createScript('data:text/javascript;charset=utf-8,_taboola.push({flush:true})', (scriptEl) => {\r\n      scriptEl.setAttribute('data-taboola-flush', 'true');\r\n      scriptEl.defer = true;\r\n    });\r\n  }\r\n\r\n  function destroyNativeCmd() {\r\n    const footerEl = document.querySelector('.adn-footer');\r\n    if (footerEl) {\r\n      footerEl.innerHTML = '';\r\n    }\r\n  }\r\n\r\n  function createNative() {\r\n    window.googletag.cmd.push(createNativeCmd);\r\n  }\r\n\r\n  function destroyNative() {\r\n    window.googletag.cmd.push(destroyNativeCmd);\r\n  }\r\n\r\n  function createAd(slotName) {\r\n    window.googletag.cmd.push(() => createAdCmd(slotName));\r\n  }\r\n\r\n  function destroyAd(slotName) {\r\n    window.googletag.cmd.push(() => destroyAdCmd(slotName));\r\n  }\r\n\r\n  function createInterstitial() {\r\n    window.googletag.cmd.push(createInterstitialCmd);\r\n  }\r\n\r\n  // ----------------------------------------------\r\n  // Exports\r\n  // ----------------------------------------------\r\n\r\n  window.adn = {\r\n    createAd,\r\n    destroyAd,\r\n    createNative,\r\n    destroyNative,\r\n    createInterstitial,\r\n  };\r\n\r\n  // ----------------------------------------------\r\n  // Utils\r\n  // ----------------------------------------------\r\n\r\n  async function getIpInfo() {\r\n    try {\r\n      const cached = localStorage.getItem('ipinfo');\r\n      if (cached) return JSON.parse(cached);\r\n      const key = '7c4d73767e64472ea502eacdbc47386b';\r\n      const url = `https://d2dvy74lyjayxz.cloudfront.net/?key=${key}`;\r\n      const res = await fetch(url);\r\n      if (!res.ok) throw new Error(`HTTP-${res.status}`);\r\n      const ipInfo = await res.json();\r\n      localStorage.setItem('ipinfo', JSON.stringify(ipInfo));\r\n      localStorage.removeItem('adngeo'); // Old version cleanup\r\n      return ipInfo;\r\n    } catch (err) {\r\n      console.error('Failed to get ip info:', err.message);\r\n      return null;\r\n    }\r\n  }\r\n\r\n  async function getCountry() {\r\n    const ipInfo = await getIpInfo();\r\n    return ipInfo?.country ?? 'US';\r\n  }\r\n\r\n  async function getPlatform() {\r\n    const ipInfo = await getIpInfo();\r\n    return ['ios','android','mobile','desktop'].find(k => ipInfo?.[k]) ?? 'desktop';\r\n  }\r\n\r\n  async function waitForElement(selector) {\r\n    let cnt = 0;\r\n    const timeout = 100;\r\n    const threshold = 3000 / timeout;\r\n    return new Promise((resolve) => {\r\n      let interval = setInterval(() => {\r\n        const el = document.querySelector(selector);\r\n        if (el) {\r\n          clearInterval(interval);\r\n          resolve(el);\r\n        }\r\n        if (++cnt === threshold) {\r\n          cnt = 0;\r\n          console.warn('Still waiting for selector:', selector);\r\n        }\r\n      }, timeout);\r\n    });\r\n  }\r\n\r\n  const onDomReady = (function() {\r\n    const callbacks = [];\r\n\r\n    document.addEventListener('DOMContentLoaded', () => {\r\n      callbacks.forEach((callback) => callback());\r\n      callbacks.length = 0;\r\n    });\r\n\r\n    const interval = setInterval(() => {\r\n      if (\r\n        document.readyState === 'complete' ||\r\n        document.readyState === 'interactive'\r\n      ) {\r\n        clearInterval(interval);\r\n        callbacks.forEach((callback) => callback());\r\n        callbacks.length = 0;\r\n      }\r\n    }, 100);\r\n\r\n    return (callback) => {\r\n      if (\r\n        document.readyState === 'complete' ||\r\n        document.readyState === 'interactive'\r\n      ) {\r\n        setTimeout(callback, 0);\r\n      } else {\r\n        callbacks.push(callback);\r\n      }\r\n    };\r\n  })();\r\n\r\n  // Find \"URL_PATHS_BLACKLIST\" under the \"Configuration\" section.\r\n  // There you can add any additional URL paths to blacklist.\r\n  function isBlacklistedUrl() {\r\n    const { pathname } = window.location;\r\n    const list = URL_PATHS_BLACKLIST ?? [];\r\n    const isBlacklisted = list.some((path) =>\r\n      path === '/' ? pathname === path : pathname.includes(path));\r\n    return isBlacklisted;\r\n  }\r\n\r\n  function observeSlots() {\r\n    const isVisible = (element) => {\r\n      const style = window.getComputedStyle(element);\r\n      const isDisplayed = style.display !== 'none';\r\n      const isVisible = style.visibility !== 'hidden';\r\n      return isDisplayed && isVisible;\r\n    };\r\n\r\n    const isStyleChanged = (mutation) =>\r\n      mutation.type === 'attributes' &&\r\n      (\r\n        mutation.attributeName === 'style' ||\r\n        mutation.attributeName === 'class'\r\n      );\r\n\r\n    const isVisibilityChanged = (mutation) => {\r\n      const oldStyle = mutation.oldValue || '';\r\n      const newStyle = mutation.target.getAttribute('style') || '';\r\n      const wasHidden = oldStyle.includes('hidden') || oldStyle.includes('none');\r\n      const isHidden = newStyle.includes('hidden') || newStyle.includes('none');\r\n      return wasHidden !== isHidden;\r\n    }\r\n\r\n    const handleAdded = (node) => {\r\n      const slot = node.getAttribute('data-adpath');\r\n      console.log('Added:', slot);\r\n      createAd(slot);\r\n    }\r\n\r\n    const handleRemoved = (node) => {\r\n      const slot = node.getAttribute('data-adpath');\r\n      console.log('Removed:', slot);\r\n      destroyAd(slot);\r\n    }\r\n\r\n    const isAdSlot = (node) => node.hasAttribute?.('data-adpath');\r\n\r\n    const getSlots = (nodeList) =>\r\n      Array.from(nodeList)\r\n        .filter((node) => node.nodeType === Node.ELEMENT_NODE)\r\n        .flatMap((node) => Array.from(node.querySelectorAll('[data-adpath]')).concat(node))\r\n        .filter(isAdSlot);\r\n\r\n    const handleMutations = (mutations) =>\r\n      mutations.forEach((mutation) => {\r\n        const addedNodes = getSlots(mutation.addedNodes);\r\n        const removedNodes = getSlots(mutation.removedNodes);\r\n\r\n        addedNodes.forEach(handleAdded);\r\n        removedNodes.forEach(handleRemoved);\r\n\r\n        if (\r\n          !addedNodes.includes(mutation.target) &&\r\n          !removedNodes.includes(mutation.target) &&\r\n          isStyleChanged(mutation) &&\r\n          isVisibilityChanged(mutation)\r\n        ) {\r\n          const childNodes = getSlots(mutation.target);\r\n          childNodes.forEach((node) => {\r\n            if (isVisible(node)) {\r\n              handleAdded(node);\r\n            } else {\r\n              handleRemoved(node);\r\n            }\r\n          });\r\n        }\r\n      });\r\n\r\n    const config = {\r\n      subtree: true,\r\n      childList: true,\r\n      attributes: true,\r\n      attributeFilter: ['style', 'class'],\r\n      attributeOldValue: true\r\n    };\r\n\r\n    const observer = new MutationObserver(handleMutations);\r\n    observer.observe(document, config);\r\n  }\r\n\r\n  // ----------------------------------------------\r\n  // Custom\r\n  // ----------------------------------------------\r\n  function createStickyBanner() {\r\n  const addCloseButton = (stickyBannerSizeDiv) => {\r\n    const el = document.createElement('div');\r\n    el.innerText = 'Close';\r\n    el.style.position = 'absolute';\r\n    el.style.top = '-20px';\r\n    el.style.right = '0px';\r\n    el.style.height = '20px';\r\n    el.style.width = '50px';\r\n    el.style.color = 'white';\r\n    el.style.borderRadius = '2px';\r\n    el.style.backgroundColor = 'black';\r\n    el.style.cursor = 'pointer';\r\n    el.style.fontSize = '14px';\r\n    el.style.textAlign = 'center';\r\n    el.classList.add('closeButton');\r\n    el.onclick = function() {\r\n      stickyBannerParent.remove();\r\n    };\r\n    stickyBannerSizeDiv.append(el);\r\n  };\r\n\r\n  const stickyBannerParent = document.createElement('div');\r\n  stickyBannerParent.classList.add('adnSticky');\r\n  stickyBannerParent.style.position = 'fixed';\r\n  stickyBannerParent.style.display = 'flex';\r\n  stickyBannerParent.style.justifyContent = 'space-evenly';\r\n  stickyBannerParent.style.bottom = '0px';\r\n  stickyBannerParent.style.width = '100%';\r\n  stickyBannerParent.style.backgroundColor = 'transparent';\r\n  stickyBannerParent.style.zIndex = '9999999999';\r\n  \r\n  // Use visibility hidden to keep the DIV active in the DOM without display: none\r\n  stickyBannerParent.style.visibility = 'hidden';\r\n\r\n  const stickyBannerSizeDiv = document.createElement('div');\r\n  stickyBannerSizeDiv.style.position = 'relative';\r\n\r\n  const stickyBanner = document.createElement('div');\r\n  \r\n  // Assign an explicit ID if wrapper script requires it\r\n  const slotId = 'div-gpt-ad-sticky-footer';\r\n  stickyBanner.id = slotId;\r\n  \r\n  stickyBanner.dataset.onpage = 'true';\r\n  stickyBanner.dataset.adpath = '/22624224542/WatchersNews/Sticky_Footer';\r\n\r\n  stickyBannerSizeDiv.append(stickyBanner);\r\n  stickyBannerParent.append(stickyBannerSizeDiv);\r\n  document.body.append(stickyBannerParent);\r\n\r\n  googletag.cmd.push(() => {\r\n    googletag.pubads().addEventListener('slotRenderEnded', (event) => {\r\n      const slotElementId = event.slot.getSlotElementId();\r\n      \r\n      if (slotElementId.includes('Sticky_Footer') || slotElementId === slotId) {\r\n        if (!event.isEmpty) {\r\n          // Reveal the banner and attach close button on fill\r\n          stickyBannerParent.style.visibility = 'visible';\r\n          addCloseButton(stickyBannerSizeDiv);\r\n        } else {\r\n          // Destroy the element entirely on no-fill\r\n          stickyBannerParent.remove();\r\n        }\r\n      }\r\n    });\r\n  });\r\n}\r\n\r\n(function () {\r\n  function injectInContentAds() {\r\n    const container = document.querySelector('.entry-content.single-content, .entry-content');\r\n    if (!container) return false;\r\n\r\n    // 1. Select direct child paragraphs, excluding empty ones and reference/citation lists\r\n    const paragraphs = Array.from(\r\n      container.querySelectorAll(':scope > p.wp-block-paragraph, :scope > p')\r\n    ).filter((p) => {\r\n      const text = p.textContent.trim();\r\n      if (!text) return false;\r\n\r\n      // Exclude trailing references/footnotes from being ad targets\r\n      if (/^references:?$/i.test(text)) return false;\r\n      if (/^\\[?\\d+\\]?|^\\d+\\s+/i.test(text) && p.querySelector('sup')) return false;\r\n\r\n      return true;\r\n    });\r\n\r\n    if (!paragraphs.length) return false;\r\n\r\n    let adCount = 0;\r\n    let paragraphsSinceLastAd = 0;\r\n    const PARAGRAPH_INTERVAL = 2; // Target cadence\r\n    const MAX_ADS = 10;\r\n\r\n    for (let i = 0; i < paragraphs.length; i++) {\r\n      if (adCount >= MAX_ADS) break;\r\n\r\n      paragraphsSinceLastAd++;\r\n\r\n      if (paragraphsSinceLastAd >= PARAGRAPH_INTERVAL) {\r\n        const pElement = paragraphs[i];\r\n        const nextSibling = pElement.nextElementSibling;\r\n\r\n        // 2. Prevent ad placement directly before videos, embeds, widgets, or author boxes\r\n        const isBlocked =\r\n          nextSibling &&\r\n          (nextSibling.tagName === 'ASIDE' ||\r\n            nextSibling.tagName === 'FIGURE' || // YouTube embeds\r\n            /^H[1-6]$/.test(nextSibling.tagName) ||\r\n            nextSibling.classList.contains('custom-injected-ad') ||\r\n            nextSibling.classList.contains('wp-block-embed') ||\r\n            nextSibling.classList.contains('m-a-box') || // Author bio box\r\n            nextSibling.classList.contains('kt_simple_share_container') || // Social share bar\r\n            nextSibling.classList.contains('molongui-clearfix') ||\r\n            nextSibling.querySelector?.('[data-ep-type]'));\r\n\r\n        if (isBlocked) {\r\n          continue; // Defer to the next paragraph\r\n        }\r\n\r\n        const slotId = `div-gpt-ad-incontent-${adCount}`;\r\n        const adPath = `/22624224542/WatchersNews/InContent_${adCount}`;\r\n\r\n        // Guard against duplicate injection on re-runs\r\n        if (document.getElementById(slotId)) {\r\n          adCount++;\r\n          paragraphsSinceLastAd = 0;\r\n          continue;\r\n        }\r\n\r\n        const adContainer = document.createElement('div');\r\n        adContainer.id = slotId;\r\n        adContainer.className = 'custom-injected-ad';\r\n        adContainer.dataset.onpage = 'true';\r\n        adContainer.dataset.adpath = adPath;\r\n\r\n        adContainer.style.textAlign = 'center';\r\n        adContainer.style.marginTop = '30px';\r\n        adContainer.style.marginBottom = '30px';\r\n        adContainer.style.minHeight = '250px';\r\n                //adContainer.style.backgroundColor = 'yellow';\r\n\r\n        pElement.insertAdjacentElement('afterend', adContainer);\r\n\r\n        if (window.googletag && googletag.apiReady) {\r\n          googletag.cmd.push(function () {\r\n            const slot = googletag\r\n              .defineSlot(\r\n                adPath,\r\n                [[300, 250], [336, 280], [468, 60], [728, 90]],\r\n                slotId\r\n              )\r\n              .addService(googletag.pubads());\r\n\r\n            googletag.display(slotId);\r\n            googletag.pubads().refresh([slot]);\r\n          });\r\n        }\r\n\r\n        adCount++;\r\n        paragraphsSinceLastAd = 0;\r\n      }\r\n    }\r\n\r\n    return true;\r\n  }\r\n\r\n  if (!injectInContentAds()) {\r\n    const observer = new MutationObserver((mutations, obs) => {\r\n      if (injectInContentAds()) {\r\n        obs.disconnect();\r\n      }\r\n    });\r\n\r\n    observer.observe(document.documentElement, {\r\n      childList: true,\r\n      subtree: true,\r\n    });\r\n  }\r\n})();\r\n\r\n(function () {\r\n  function injectAtfAd() {\r\n    // Prevent execution on the homepage\r\n    if (window.location.pathname === '/' || window.location.pathname === '/index.html') {\r\n      return true; // Return true to prevent unnecessary MutationObserver execution\r\n    }\r\n\r\n    // Updated selector matching the article body container\r\n    const target = document.querySelector('#article-body-text, .entry-content');\r\n    if (!target) return false;\r\n\r\n    const adPath = '/22624224542/WatchersNews/ATF';\r\n    const slotId = 'div-gpt-ad-atf';\r\n\r\n    // Skip if already injected\r\n    if (document.getElementById(slotId)) return true;\r\n\r\n    // Create Container Element\r\n    const el = document.createElement('div');\r\n    el.id = slotId;\r\n    el.className = 'custom-injected-ad';\r\n    el.dataset.onpage = 'true';\r\n    el.dataset.adpath = adPath;\r\n    el.style.textAlign = 'center';\r\n    el.style.marginTop = '40px';\r\n    el.style.marginBottom = '40px';\r\n    el.style.minHeight = '250px';\r\n        //el.style.backgroundColor = 'yellow';\r\n\r\n    // Inject directly before the article container\r\n    target.before(el);\r\n\r\n    // Register and Trigger GPT Call\r\n    if (window.googletag && googletag.apiReady) {\r\n      googletag.cmd.push(function () {\r\n        const slot = googletag.defineSlot(\r\n          adPath,\r\n          [[300, 250], [336, 280], [728, 90], [970, 90], [970, 250]],\r\n          slotId\r\n        ).addService(googletag.pubads());\r\n\r\n        googletag.display(slotId);\r\n        googletag.pubads().refresh([slot]);\r\n      });\r\n    }\r\n\r\n    return true;\r\n  }\r\n\r\n  // Handle execution timing with MutationObserver fallback\r\n  if (!injectAtfAd()) {\r\n    const observer = new MutationObserver((mutations, obs) => {\r\n      if (injectAtfAd()) {\r\n        obs.disconnect(); // Stop observing once ATF ad is successfully placed\r\n      }\r\n    });\r\n\r\n    observer.observe(document.documentElement, {\r\n      childList: true,\r\n      subtree: true,\r\n    });\r\n  }\r\n})();\r\n\r\n  \r\n  function injectTruvidPlayer() {\r\n  const articleBody = document.querySelector('.entry-content.single-content, .entry-content');\r\n  if (!articleBody) return false;\r\n\r\n  const firstParagraph = articleBody.querySelector(':scope > p');\r\n  if (!firstParagraph) return false;\r\n\r\n  const SRC = \"https://go.trvdp.com/init/19097.js?pid=14660\";\r\n\r\n  // Prevent duplicate injection\r\n  if (document.querySelector(`script[src=\"${SRC}\"]`)) return true;\r\n\r\n  const wrapper = document.createElement(\"div\");\r\n  wrapper.className = \"custom-injected-video\";\r\n  wrapper.style.paddingBottom = \"10px\";\r\n  wrapper.style.marginBottom = \"20px\";\r\n\r\n  const s = document.createElement(\"script\");\r\n  s.setAttribute(\"data-cfasync\", \"false\");\r\n  s.async = true;\r\n  s.type = \"text/javascript\";\r\n  s.src = SRC;\r\n\r\n  wrapper.appendChild(s);\r\n  firstParagraph.insertAdjacentElement('afterend', wrapper);\r\n  return true;\r\n}\r\n\r\nfunction injectVDOPlayer() {\r\n  const DIV_ID = \"v-WatchersNews\";\r\n  const SCRIPT_SRC = \"//a.vdo.ai/core/v-WatchersNews/vdo.ai.js\";\r\n\r\n  // Target the article body container\r\n  const containerWrapper = document.querySelector('.entry-content.single-content, .entry-content');\r\n  if (!containerWrapper) return false;\r\n\r\n  // Find the first paragraph containing actual text\r\n  const paragraphs = Array.from(containerWrapper.querySelectorAll(':scope > p'));\r\n  const targetParagraph = paragraphs.find((p) => p.textContent.trim().length > 0);\r\n  if (!targetParagraph) return false;\r\n\r\n  let playerContainer = document.getElementById(DIV_ID);\r\n  if (!playerContainer) {\r\n    playerContainer = document.createElement(\"div\");\r\n    playerContainer.id = DIV_ID;\r\n  }\r\n\r\n  // Insert player directly after the first real paragraph\r\n  targetParagraph.insertAdjacentElement(\"afterend\", playerContainer);\r\n\r\n  if (document.querySelector(`script[src*=\"${SCRIPT_SRC}\"]`)) {\r\n    return true;\r\n  }\r\n\r\n  const scriptTag = document.createElement(\"script\");\r\n  scriptTag.setAttribute(\"data-cfasync\", \"false\");\r\n  scriptTag.defer = true;\r\n  scriptTag.async = true;\r\n  scriptTag.src = (window.location.protocol === 'https:' ? 'https:' : 'http:') + SCRIPT_SRC;\r\n\r\n  document.head.appendChild(scriptTag);\r\n  return true;\r\n}\r\n\r\n  \r\n\r\n  onDomReady(async () => {\r\n    try {\r\n      \r\n      createStickyBanner();\r\n        // if (window.location.href === \"https://watchers.news/2026/10/29/lake-worth-pier-and-south-port-everglades-reach-record-water-levels-king-tides-flood-floridas-atlantic-coast/\") {\r\n        //     injectVDOPlayer();\r\n        // }   \r\n\r\n         if (window.location.href === \"https://watchers.news/2026/10/29/lake-worth-pier-and-south-port-everglades-reach-record-water-levels-king-tides-flood-floridas-atlantic-coast/\") {\r\n            injectTruvidPlayer();\r\n        }   \r\n\r\n\r\n      \r\n      // Add custom slots creation logic here 👇\r\n\r\n    } catch(err) {\r\n      console.error('Failed to create slots:', err.stack);\r\n    }\r\n\r\n    // Must be called last\r\n    initAds();\r\n    observeSlots();\r\n  });\r\n\r\n})(window, document);\r\n"]}