{"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","biddersWhiteList","appnexus","magnite","msft","pubmatic","rubicon","openx","unruly","country","adagio","adyoulike","amx","anyclip","contxtful","conversant","criteo","exco","fluct","gamoshi","ix","kueezrtb","medianet","oms","onetag","pixfuture","programmaticx","richaudience","rise","seedtag","sharethrough","smartadserver","smilewanted","sovrn","sparteo","ssp_geniee","teads","underdogmedia","vidazoo","yandex","getCountry","bidders","bidder","params","pubId","placementId","cId","pId","tagId","placement","tagid","networkId","placement_id","supplyPartnerId","cid","crid","accountId","siteId","zoneId","unit","delDomain","org","publisherId","filter","name","toLowerCase","replace","includes","bidderSettings","storageAllowed","adnimation","sonobi","taboola","s2sBidders","endsWith","map","s2sAliases","fromEntries","slice","GDPR_GEOS","needsGdpr","async","maxMs","Promise","resolve","start","Date","now","check","__tcfapi","setTimeout","isGdprRequired","pbjsConfig","s2sConfig","enabled","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","gvlMapping","amxS2S","magniteS2S","riseS2S","kueezrtbS2S","adagioS2S","gdpr","cmpApi","defaultGdprScope","actionTimeout","usp","gtag","dataLayer","push","arguments","googletag","cmd","pubads","addEventListener","onImpressionViewable","onFirstAdVisible","setConfig","collapseDiv","_taboola","GA_ID","PREBID_TIMEOUT_MS","createScript","src","preCreate","scriptEl","querySelector","console","warn","attemptLoad","createElement","fetchPriority","defer","remove","head","appendChild","pathname","location","some","path","isBlacklistedUrl","scriptsToLoad","all","then","log","handleSlotRenderEnded","removeEventListener","IntentIqObject","intentIq_2072952453","partner","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","targeting","slotEl","getElementById","runBids","refresh","message","refreshAd","firstAdLogged","isEmpty","performance","runApsBids","runPrebidBids","que","requestBids","adUnitCodes","bidsBackHandler","setTargetingForGPTAsync","safeBids","bidsFn","race","pbjsBids","allSettled","createAdCmd","slotName","length","adsEl","querySelectorAll","adPath","adpath","sizes","slotBidders","ATF","Content","ContentATF","ContentBTF","BTF","Side","SideATF","Sticky","STANDARD_SIZES","prebidSizes","standardSizes","every","Array","isArray","w","h","isNative","sw","sh","bids","code","mediaTypes","setBidderConfig","config","ortb2","source","ext","schain","ver","complete","nodes","asi","sid","hp","collectAds","addSize","build","defineSlot","defineSizeMapping","addService","intent_iq_group","pbjsAdUnit","find","addAdUnits","init","enableServices","display","getConfig","disableInitialLoad","createNativeCmd","onload","mark","destroyNativeCmd","footerEl","innerHTML","createAd","destroyAd","destroySlots","idx","indexOf","splice","removeAttribute","parentElement","destroyAdCmd","createInterstitial","createInterstitialCmd","getIpInfo","cached","localStorage","getItem","JSON","parse","url","res","fetch","ok","Error","ipInfo","json","setItem","stringify","removeItem","adn","createNative","destroyNative","observeSlots","handleAdded","node","getAttribute","handleRemoved","isAdSlot","hasAttribute","nodeList","from","nodeType","Node","ELEMENT_NODE","flatMap","concat","MutationObserver","mutations","mutation","addedNodes","removedNodes","type","attributeName","isStyleChanged","oldStyle","oldValue","newStyle","isVisibilityChanged","style","getComputedStyle","isDisplayed","isVisible","visibility","subtree","childList","attributes","attributeFilter","attributeOldValue","createWrappedAd","minWidth","adStyles","ad","onpage","assign","marginTop","marginBottom","minHeight","wrapper","justifyContent","inner","marginLeft","marginRight","textAlign","labelLine","alignItems","fontSize","color","left","right","line","flex","height","background","label","innerText","padding","whiteSpace","bottom","reveal","disconnect","clearInterval","poller","clearTimeout","revealIfFilled","iframe","offsetWidth","img","offsetHeight","ins","adHasRendered","existingSlot","getServices","responseInfo","getResponseInformation","setInterval","defineOutOfPageSlot","enums","OutOfPageFormat","INTERSTITIAL","callbacks","interval","readyState","onDomReady","addCloseButton","stickyBannerSizeDiv","el","borderRadius","backgroundColor","cursor","classList","onclick","append","stickyBannerParent","zIndex","stickyBanner","body","flag","innerWidth","createStickyBanner","paragraphs","pIndex","adIndex","targetP","wrappedAd","insertAdjacentElement","addInContentAdUnits","nextElementSibling","addCategoryUnit","target0","previousElementSibling","insertBefore","target1","addSectionAdUnits","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,GAMtB,MAAMC,EAAsBC,OAAOC,OAAO,IAKpCC,EAAYF,OAAOC,OAAO,CAC9B,uDAAwD,CACtDE,GAAM,uDACNC,KAAQ,CACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,IACN,CAAC,IAAK,IACN,CAAC,IAAK,MAERC,SAAY,UACZC,cAAgB,EAChBC,iBAAoB,EACpBC,YAAe,CACbC,QAAW,CACT,CAAC,IAAK,IACN,CAAC,IAAK,IACN,CAAC,IAAK,MAERC,OAAU,CACR,CAAC,IAAK,KAERC,OAAU,CACR,CAAC,IAAK,KACN,CAAC,IAAK,OAGVC,YAAe,KAEjB,2DAA4D,CAC1DT,GAAM,2DACNC,KAAQ,CACN,CAAC,IAAK,IACN,CAAC,IAAK,IACN,CAAC,IAAK,KAERC,SAAY,SACZC,cAAgB,EAChBC,iBAAoB,EACpBC,YAAe,CACbC,QAAW,CACT,CAAC,IAAK,IACN,CAAC,IAAK,KAERC,OAAU,CACR,CAAC,IAA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","file":"I2TEqHrBJz","sourcesContent":[null,null,null,"// Last updated: 2026-10-18T12:22:07.938Z by Matt\r\n(async function(window, document) {\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\n  const adsConfig = Object.freeze({\r\n    \"/339474670,23062573313/CapitalismInstitute/Section_1\": {\r\n      \"id\": \"/339474670,23062573313/CapitalismInstitute/Section_1\",\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\": \"Content\",\r\n      \"isLazyLoaded\": true,\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    \"/339474670,23062573313/CapitalismInstitute/Sticky_Footer\": {\r\n      \"id\": \"/339474670,23062573313/CapitalismInstitute/Sticky_Footer\",\r\n      \"size\": [\r\n        [320, 50],\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        ]\r\n      },\r\n      \"refreshTime\": 45000\r\n    },\r\n    \"/339474670,23062573313/CapitalismInstitute/Category\": {\r\n      \"id\": \"/339474670,23062573313/CapitalismInstitute/Category\",\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    \"/339474670,23062573313/CapitalismInstitute/InContent_1\": {\r\n      \"id\": \"/339474670,23062573313/CapitalismInstitute/InContent_1\",\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\": \"Content\",\r\n      \"isLazyLoaded\": true,\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    \"/339474670,23062573313/CapitalismInstitute/Section_0\": {\r\n      \"id\": \"/339474670,23062573313/CapitalismInstitute/Section_0\",\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\": \"Content\",\r\n      \"isLazyLoaded\": true,\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    \"/339474670,23062573313/CapitalismInstitute/InContent_0\": {\r\n      \"id\": \"/339474670,23062573313/CapitalismInstitute/InContent_0\",\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\": \"Content\",\r\n      \"isLazyLoaded\": true,\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    \"/339474670,23062573313/CapitalismInstitute/InContent_2\": {\r\n      \"id\": \"/339474670,23062573313/CapitalismInstitute/InContent_2\",\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\": \"Content\",\r\n      \"isLazyLoaded\": true,\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    \"/339474670,23062573313/CapitalismInstitute/InContent_3\": {\r\n      \"id\": \"/339474670,23062573313/CapitalismInstitute/InContent_3\",\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\": \"Content\",\r\n      \"isLazyLoaded\": true,\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    \"/339474670,23062573313/CapitalismInstitute/InContent_4\": {\r\n      \"id\": \"/339474670,23062573313/CapitalismInstitute/InContent_4\",\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\": \"Content\",\r\n      \"isLazyLoaded\": true,\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  });\r\n  1\r\n\r\n  const biddersWhiteList = Object.freeze({\r\n    \"appnexus\":[\"US\",\"GB\",\"CA\",\"IL\",\"JP\",\"AU\",\"NZ\",\"IN\",\"BR\",\"ID\",\"EG\",\"AE\",\"SA\",\"AR\",\"CL\",\"MY\",\"PH\",\"PT\",\"HK\",\"SG\",\"NL\",\"BE\",\"IE\",\"NO\",\"SE\",\"FI\",\"DK\",\"CH\",\"DE\",\"TR\",\"PL\",\"RO\",\"CZ\",\"ZA\"],\r\n    \"magnite\":[\"US\",\"GB\",\"IL\",\"PS\",\"TR\",\"CA\",\"DE\",\"GH\",\"ZA\",\"FR\",\"ES\",\"IT\",\"AU\",\"NZ\",\"IN\",\"MX\",\"PL\",\"EC\",\"KR\",\"UA\",\"SA\",\"NL\",\"BE\",\"BD\",\"AE\",\"SG\",\"AM\",\"JP\",\"BR\",\"NG\",\"TH\",\"MY\",\"HK\",\"UZ\",\"SE\",\"AT\",\"PH\",\"VN\",\"CL\",\"IE\",\"CH\",\"NO\",\"FI\",\"DK\",\"PT\"],\r\n    \"msft\":[\"US\",\"GB\",\"CA\",\"IL\",\"JP\",\"AU\",\"NZ\",\"IN\",\"BR\",\"ID\",\"EG\",\"AE\",\"SA\",\"AR\",\"CL\",\"MY\",\"PH\",\"PT\",\"HK\",\"SG\",\"NL\",\"BE\",\"IE\",\"NO\",\"SE\",\"FI\",\"DK\",\"CH\",\"DE\",\"TR\",\"PL\",\"RO\",\"CZ\",\"ZA\"],\r\n    \"pubmatic\":[\"US\",\"CA\",\"GB\",\"IE\",\"AU\",\"NZ\",\"DE\",\"AT\",\"CH\",\"NL\",\"BE\",\"NO\",\"SE\",\"FI\",\"DK\",\"IL\",\"PR\"],\r\n    \"rubicon\":[\"US\",\"GB\",\"IL\",\"PS\",\"TR\",\"CA\",\"DE\",\"GH\",\"ZA\",\"FR\",\"ES\",\"IT\",\"AU\",\"NZ\",\"IN\",\"MX\",\"PL\",\"EC\",\"KR\",\"UA\",\"SA\",\"NL\",\"BE\",\"BD\",\"AE\",\"SG\",\"AM\",\"JP\",\"BR\",\"NG\",\"TH\",\"MY\",\"HK\",\"UZ\",\"SE\",\"AT\",\"PH\",\"VN\",\"CL\",\"IE\",\"CH\",\"NO\",\"FI\",\"DK\",\"PT\"],\r\n    \"openx\":[\"US\",\"CA\"],\r\n    \"unruly\":[\"US\",\"GB\"],\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;\r\n  };\r\n\r\n  const bidders = ([\r\n    \r\n    {bidder:'onetag',params:{pubId:'62d98ebd4882fb0'}},\r\n    {bidder:'onetagS2S',params:{pubId:'62d98ebd4882fb0'}},    \r\n    {bidder:'contxtful',params:{placementId:'p101162'}},\r\n    {bidder:'kueezrtb',params:{cId:'67069130e9adfe700e62cd64',pId:'65lk7c192882r0011813fn9'}},\r\n    {bidder:'kueezrtbS2S',params:{cId:'69c3c16baf44ad0f3cf16a7c',pId:'65lk7c192882r0011813fn9'}},    \r\n    //{bidder:'pubmatic',params:{publisherId:'166665'}},\r\n    {bidder:'amx',params:{tagId:'YWRuaW1hdGlvbi5jb20'}},\r\n    {bidder: \"amxS2S\", params: { tagId: \"9k5RSyLDj\"}},         \r\n    {bidder:'adyoulike',params:{placement:'3b2355218d4a138e6e6cff706513ec62'}},\r\n    {bidder: \"sovrn\", params: {tagid: \"1308743\"}},\r\n    {bidder: \"sovrnS2S\", params: {tagid: \"1308744\"}},  \r\n    {bidder: 'sparteo', params: {networkId: '2b124411-dc3b-4083-998e-84c8175f32cf'}},   \r\n    {bidder: 'msft', params: {placement_id: 37477863}},      \r\n    // {bidder: 'msftS2S', params: {placement_id: 36782526}},   \r\n    // {bidder: \"adagioS2S\", params: {\"organizationId\": \"1570\", \"site\": \"capitalisminstitute-org\", \"placement\": \"capitalisminstitute_ros\"}},                 \r\n    //{bidder: \"openx\", params: {unit: \"xxx\", delDomain: \"adnimation-d.openx.net\"}},\r\n    {bidder: \"gamoshi\", params: {supplyPartnerId: 27935}},       \r\n    {bidder: \"programmaticX\", params: {cId: \"68b7586707e74665e7350267\", pId: \"87ac37v189832w0572283vi3\"}},\r\n    {bidder: `vidazooS2S`, params: {cId: `640af7e8a3aca06fc94e206c`, pId: `59ac17c192832d0011283fe3`}},  \r\n    {bidder: \"medianetS2S\",params: {cid: \"8CUAID4GW\", crid: \"788465678\"}},\r\n    {bidder: `vidazoo`, params: {cId: `640af7e8a3aca06fc94e206c`, pId: `59ac17c192832d0011283fe3`}},  \r\n    {bidder: \"medianet\",params: {cid: \"8CUAID4GW\", crid: \"788465678\"}},  \r\n    //{bidder:'pubmaticS2S',params:{publisherId:'166665'}},  \r\n    {bidder:'magnite', params: {accountId: 24664, siteId: 628255, zoneId: 4071689}},\r\n    {bidder:'magniteS2S', params: {accountId: 24664, siteId: 628255, zoneId: 4071691}},    \r\n    {bidder: \"openx\", params: {unit: \"565146573\", delDomain: \"adnimation-d.openx.net\"}},\r\n    {bidder: \"openxS2S\", params: {unit: \"565182163\", delDomain: \"adnimation-d.openx.net\"}},     \r\n    {bidder: 'rise', params: {org: '67dae7b0eee76c00011b7cab'}},\r\n    {bidder: 'riseS2S', params: {org: '67dae7b0eee76c00011b7cab'}},                     \r\n    {bidder:'pubmatic',params:{publisherId:'166665'}},\r\n    {bidder:'pubmaticS2S',params:{publisherId:'166665'}},  \r\n    {bidder:'appnexus',params:{placementId:37477863}},\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    \"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 GDPR_GEOS = Object.freeze(['AT','BE','BG','HR','CY','CZ','DK','EE','FI','FR','DE','GR','HU','IE','IT','LV','LT','LU','MT','NL','PL','PT','RO','SK','SI','ES','SE','IS','LI','NO','GB','CH']);\n  const CMP_WAIT_MS = 3000;\n  function waitForTcfApi(maxMs){return new Promise((resolve)=>{const start=Date.now();(function check(){if(typeof window.__tcfapi==='function')return resolve(true);if(Date.now()-start>=maxMs)return resolve(false);setTimeout(check,50);})();});}\n  async function isGdprRequired(country){const hasCmp=await waitForTcfApi(CMP_WAIT_MS);return hasCmp||GDPR_GEOS.includes(country);}\n  const needsGdpr = await isGdprRequired(await getCountry());\n\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    'gvlMapping': {'amxS2S':737,'magniteS2S':52,'riseS2S':1043,'kueezrtbS2S':1165,'adagioS2S':617,'anyclip':1400,'exco':444},\n    // 'consentManagement': {\n      'gdpr': needsGdpr && {'cmpApi':'iab','defaultGdprScope':true,'timeout':500,'actionTimeout':2000},\n      'usp': { 'cmpApi':'iab', 'timeout':500 }\n    });\r\n\r\n  // ----------------------------------------------\r\n  // Placeholders\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.setConfig({ collapseDiv: 'ON_NO_FILL' }));\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-BDK0GS5SPK';\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://c.amazon-adsystem.com/aax2/apstag.js'));\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  // LiveRamp\r\n  createScript('https://ats-wrapper.privacymanager.io/ats-modules/0be89a95-ae11-4cbd-835e-96949f1deee2/ats.js');\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    // initAps();\r\n    initIiq();\r\n  }\r\n\r\n  function initAps() {\r\n    window.apstag.init({\r\n      pubID: '83d5088d-5f70-4acf-a888-15a83bf33932',\r\n      adServer: 'googletag',\r\n      schain: {\r\n        complete: 1,\r\n            ver: '1.0',\r\n                nodes: [\r\n                    {\r\n                        asi: 'zerodegreeads.com',\r\n                        sid: '2026ZD016',\r\n                        hp: 1\r\n                    }\r\n                ]\r\n        }\r\n    });\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        ContentATF: \"ContentATF\",\r\n        ContentBTF: \"ContentBTF\",\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: \"2012713\"\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      window.adnpbjs.setBidderConfig({\r\n        bidders: ['sparteo'],\r\n        config: {\r\n          ortb2: {\r\n            source: {\r\n              ext: {\r\n                schain: {\r\n                  ver: \"1.0\",\r\n                  complete: 1,\r\n                  nodes: [{\r\n                    asi: \"zerodegreeads.com\",\r\n                    sid: \"2026ZD016\",\r\n                    hp: 1\r\n                  }]\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  function runApsBids(slotEl, resolve) {\r\n    return;\r\n\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 apsBids = safeBids(runApsBids);\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      .defineSizeMapping(sizeMapping)\r\n      .addService(window.googletag.pubads());\r\n\r\n    slot.setConfig({ targeting: { refreshIteration: refreshIteration.toString(), intent_iq_group: 'U' } });\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.getConfig('disableInitialLoad').disableInitialLoad) {\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.setConfig({ targeting: { 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\r\n  function createStickyBanner() {\r\n  \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 = '#7e0f07';\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      this.parentElement.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  const stickyBannerSizeDiv = document.createElement('div');\r\n  stickyBannerSizeDiv.style.position = 'relative';\r\n\r\n  const stickyBanner = document.createElement('div');\r\n  stickyBanner.dataset.onpage = true;\r\n  stickyBanner.dataset.adpath = '/339474670,23062573313/CapitalismInstitute/Sticky_Footer';\r\n\r\n  stickyBannerSizeDiv.append(stickyBanner);\r\n  stickyBannerParent.append(stickyBannerSizeDiv);\r\n  document.body.append(stickyBannerParent);\r\n\r\n  let flag = true;\r\n  googletag.cmd.push(() => {\r\n    googletag.pubads().addEventListener('slotRenderEnded', (event) => {\r\n      if (\r\n        event.slot.getSlotElementId().includes('Sticky_Footer') &&\r\n        !event.isEmpty &&\r\n        flag\r\n      ) {\r\n        flag = false;\r\n\r\n        // ✅ Only add close button on desktop\r\n        if (window.innerWidth > 768) {\r\n          addCloseButton(stickyBannerSizeDiv);\r\n        }\r\n      }\r\n    });\r\n    googletag.enableServices();\r\n  });\r\n}\r\n\r\n// function addInContentAdUnits() {\r\n//   const paragraphs = document.querySelectorAll('#content-container > span > p');\r\n//   if (!paragraphs.length) return;\r\n\r\n//   const maxAds = 5;\r\n//   const positions = [0, 3, 7, 11, 15]; // after 1st p, after 4th p, then every 4th p after that\r\n\r\n//   positions.slice(0, maxAds).forEach((pIndex, adIndex) => {\r\n//     const targetP = paragraphs[pIndex];\r\n//     if (!targetP) return;\r\n\r\n//     const adPath = `/339474670,23062573313/CapitalismInstitute/InContent_${adIndex}`;\r\n\r\n//     // Prevent duplicate injection\r\n//     const nextEl = targetP.nextElementSibling;\r\n//     if (nextEl?.dataset?.adpath === adPath) return;\r\n\r\n//     const el = document.createElement('div');\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 = 'pink';\r\n\r\n//     targetP.insertAdjacentElement('afterend', el);\r\n//   });\r\n// }\r\n\r\nfunction createWrappedAd(adPath, minWidth, adStyles = {}) {\r\n  const ad = document.createElement('div');\r\n  ad.dataset.onpage = 'true';\r\n  ad.dataset.adpath = adPath;\r\n\r\n  Object.assign(ad.style, {\r\n    marginTop: '10px',\r\n    marginBottom: '10px',\r\n    minHeight: '150px',\r\n    width: '100%',\r\n    ...adStyles\r\n  });\r\n\r\n  const wrapper = document.createElement('div');\r\n  Object.assign(wrapper.style, {\r\n    width: '100%',\r\n    display: 'none',\r\n    justifyContent: 'center'\r\n  });\r\n\r\n  const inner = document.createElement('div');\r\n  Object.assign(inner.style, {\r\n    width: `min(${minWidth}, 100%)`,\r\n    marginLeft: 'auto',\r\n    marginRight: 'auto',\r\n    textAlign: 'center'\r\n  });\r\n\r\n  const labelLine = document.createElement('div');\r\n  Object.assign(labelLine.style, {\r\n    display: 'flex',\r\n    alignItems: 'center',\r\n    fontSize: '12px',\r\n    color: '#666',\r\n    marginBottom: '8px'\r\n  });\r\n\r\n  const left = document.createElement('div');\r\n  const right = document.createElement('div');\r\n\r\n  [left, right].forEach(line => {\r\n    line.style.flex = '1';\r\n    line.style.height = '1px';\r\n    line.style.background = '#ccc';\r\n  });\r\n\r\n  const label = document.createElement('span');\r\n  label.innerText = 'Advertisement';\r\n  label.style.padding = '0 10px';\r\n  label.style.whiteSpace = 'nowrap';\r\n\r\n  const bottom = document.createElement('hr');\r\n  bottom.style.width = '100%';\r\n  bottom.style.marginTop = '8px';\r\n\r\n  labelLine.appendChild(left);\r\n  labelLine.appendChild(label);\r\n  labelLine.appendChild(right);\r\n\r\n  inner.appendChild(labelLine);\r\n  inner.appendChild(ad);\r\n  inner.appendChild(bottom);\r\n  wrapper.appendChild(inner);\r\n\r\n  // --- Reveal logic ---\r\n\r\n  function reveal() {\r\n    console.log(`[Ad] Filled — revealing wrapper for: ${adPath}`);\r\n    wrapper.style.display = 'flex';\r\n    console.log(`[Ad] Borders and \"Advertisement\" label added for: ${adPath}`);\r\n    observer.disconnect();\r\n    clearInterval(poller);\r\n    clearTimeout(timeout);\r\n  }\r\n\r\n  // Primary: GPT slotRenderEnded event\r\n  window.googletag = window.googletag || { cmd: [] };\r\n  googletag.cmd.push(() => {\r\n    // Catch-up: check if this slot already rendered before our listener registered\r\n    const existingSlot = googletag.pubads().getSlots()\r\n      .find(slot => slot.getAdUnitPath() === adPath);\r\n\r\n    if (existingSlot) {\r\n      const services = existingSlot.getServices?.() ?? [];\r\n      // getSlotResponseInformation is available if the slot already received a response\r\n      const responseInfo = existingSlot.getResponseInformation?.();\r\n      if (responseInfo !== null) {\r\n        reveal();\r\n        return;\r\n      }\r\n    }\r\n\r\n    // Otherwise listen for it\r\n    googletag.pubads().addEventListener('slotRenderEnded', (event) => {\r\n      if (event.slot.getAdUnitPath() === adPath && !event.isEmpty) {\r\n        reveal();\r\n      } else if (event.slot.getAdUnitPath() === adPath && event.isEmpty) {\r\n        console.warn(`[Ad] Not filled (GPT slotRenderEnded — empty) for: ${adPath}`);\r\n      }\r\n    });\r\n  });\r\n\r\n  // Fallback: MutationObserver + poller for non-GPT ads\r\n  function adHasRendered() {\r\n    const iframe = ad.querySelector('iframe');\r\n    if (iframe && (iframe.offsetWidth > 0 || iframe.src)) return true;\r\n\r\n    const img = ad.querySelector('img');\r\n    if (img && img.offsetWidth > 0 && img.offsetHeight > 0) return true;\r\n\r\n    const ins = ad.querySelector('ins');\r\n    if (ins && ins.getAttribute('data-ad-status') === 'filled') return true;\r\n\r\n    return false;\r\n  }\r\n\r\n  function revealIfFilled() {\r\n    if (adHasRendered()) reveal();\r\n  }\r\n\r\n  const observer = new MutationObserver(revealIfFilled);\r\n  observer.observe(ad, {\r\n    childList: true,\r\n    subtree: true,\r\n    attributes: true\r\n  });\r\n\r\n  const poller = setInterval(revealIfFilled, 500);\r\n\r\n  const timeout = setTimeout(() => {\r\n    observer.disconnect();\r\n    clearInterval(poller);\r\n    console.warn(`[Ad] Not filled — timeout reached, observer and poller stopped for: ${adPath}`);\r\n    console.warn(`[Ad] Borders and \"Advertisement\" label NOT added for: ${adPath}`);\r\n  }, 15000);\r\n\r\n  revealIfFilled();\r\n\r\n  return wrapper;\r\n}\r\n\r\nfunction addInContentAdUnits() {\r\n  const paragraphs = document.querySelectorAll('#content-container > span > p');\r\n  if (!paragraphs.length) return;\r\n\r\n  const maxAds = 5;\r\n  const positions = [0, 3, 7, 11, 15];\r\n\r\n  positions.slice(0, maxAds).forEach((pIndex, adIndex) => {\r\n    const targetP = paragraphs[pIndex];\r\n    if (!targetP) return;\r\n\r\n    const adPath = `/339474670,23062573313/CapitalismInstitute/InContent_${adIndex}`;\r\n\r\n    // Prevent duplicate injection\r\n    if (document.querySelector(`[data-onpage=\"true\"][data-adpath=\"${adPath}\"]`)) return;\r\n\r\n    const wrappedAd = createWrappedAd(adPath, '970px', {\r\n      textAlign: 'center'\r\n    });\r\n\r\n    targetP.insertAdjacentElement('afterend', wrappedAd);\r\n  });\r\n}\r\n\r\nfunction addCategoryUnit() {\r\n  \r\n  const el = document.createElement('div');\r\n  el.dataset.onpage = true;\r\n  el.dataset.adpath = '/339474670,23062573313/CapitalismInstitute/Category';\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 = 'green';\r\n\r\n  const target = document.querySelector('.ct-section-inner-wrap > div > section > .ct-section-inner-wrap > div');\r\n\r\n  if (!target) return;\r\n\r\n  // Prevent duplicate injection\r\n  if (target.nextElementSibling?.dataset?.adpath === el.dataset.adpath) return;\r\n\r\n  target.insertAdjacentElement('afterend', el);\r\n}\r\n\r\nfunction addSectionAdUnits() {\r\n\r\n  const createAd = (adPath) => {\r\n    const ad = document.createElement('div');\r\n    ad.dataset.onpage = true;\r\n    ad.dataset.adpath = adPath;\r\n\r\n    Object.assign(ad.style, {\r\n      marginTop: '40px',\r\n      marginBottom: '40px',\r\n      minHeight: '250px',\r\n      width: '100%'\r\n    });\r\n\r\n    // ✅ wrapper handles centering\r\n    const wrapper = document.createElement('div');\r\n    Object.assign(wrapper.style, {\r\n      display: 'flex',\r\n      justifyContent: 'center',\r\n      width: '100%'\r\n    });\r\n\r\n    // optional: constrain width if needed (e.g. 970)\r\n    const inner = document.createElement('div');\r\n    inner.style.width = 'min(970px, 100%)';\r\n\r\n    inner.appendChild(ad);\r\n    wrapper.appendChild(inner);\r\n\r\n    return wrapper;\r\n  };\r\n\r\n  // Section_0 → before #div_block-61-14\r\n  const target0 = document.querySelector('#div_block-61-14');\r\n  if (target0 && target0.parentElement) {\r\n    if (target0.previousElementSibling?.dataset?.adpath !== '/339474670,23062573313/CapitalismInstitute/Section_0') {\r\n      target0.parentElement.insertBefore(\r\n        createAd('/339474670,23062573313/CapitalismInstitute/Section_0'),\r\n        target0\r\n      );\r\n    }\r\n  }\r\n\r\n  // Section_1 → before #div_block-117-14\r\n  const target1 = document.querySelector('#div_block-117-14');\r\n  if (target1 && target1.parentElement) {\r\n    if (target1.previousElementSibling?.dataset?.adpath !== '/339474670,23062573313/CapitalismInstitute/Section_1') {\r\n      target1.parentElement.insertBefore(\r\n        createAd('/339474670,23062573313/CapitalismInstitute/Section_1'),\r\n        target1\r\n      );\r\n    }\r\n  }\r\n}\r\n\r\nfunction createInterstitialCmd() {\r\n  \r\n  const slot = window.googletag.defineOutOfPageSlot(\r\n    '/339474670,23062573313/CapitalismInstitute/CapitalismInstitute_Interstitial', window.googletag.enums.OutOfPageFormat.INTERSTITIAL);\r\n\r\n  if (!slot) {\r\n    console.error('Failed to define out of page slot - Interstitial');\r\n    return;\r\n  }\r\n\r\n  slot.addService(window.googletag.pubads());\r\n  window.googletag.enableServices();\r\n  window.googletag.display(slot);\r\n  \r\n}\r\n\r\nfunction injectTruvidPlayer() {\r\n\r\n  const selector = \"#content-container > span > p\";\r\n  const anchor = document.querySelector(selector);\r\n\r\n  if (!anchor) return;\r\n\r\n  const SRC = \"https://go.trvdp.com/init/17728.js?pid=13857\";\r\n\r\n  // Prevent duplicate injection\r\n  if (document.querySelector(`script[src=\"${SRC}\"]`)) return;\r\n\r\n  const container = document.createElement(\"div\");\r\n  container.style.paddingBottom = \"10px\";\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  container.appendChild(s);\r\n\r\n  anchor.insertAdjacentElement(\"afterend\", container);\r\n}\r\n\r\n  onDomReady(async () => {\r\n\r\n    try {\r\n        \r\n        createInterstitial();\r\n        createStickyBanner();\r\n        addInContentAdUnits();\r\n        addCategoryUnit();\r\n        addSectionAdUnits();\r\n\r\n        // if (window.location.href === \"https://capitalisminstitute.org/la-council-president-claims-racial-profiling-in-traffic-stop-but-police-say-he-broke-the-law/\") {\r\n        //injectTruvidPlayer();\r\n        // }        \r\n        \r\n      // Add custom slots creation logic here 👇\r\n    } catch(err) {\r\n      console.error('Failed to create slots:', err.stack);\r\n    }finally{\r\n        // Must be called last\r\n        initAds();\r\n        observeSlots();\r\n    }\r\n\r\n});\r\n\r\n})(window, document);\r\n"]}