×
We have Changed our Official Domain name to TheMoviezFlix.art Save our new official domain.

Download Constantine: City of Demons (2018) {English With Subtitles} 480p [300MB] || 720p [600MB] || 1080p [1.45GB]

✅ Download Constantine: City of Demons (2018) Movie (English With Subtitles) 720p, 480p & 1080p. This movie and available in 720p, 480p & 1080p qualities. This movie is based on Animation, Fantasy, Horror. This Movie is not available in Hindi. This movie is only available in English Audio with Subtitles. Click on the Download links below to proceedDownload Constantine: City of Demons (2018) {English With Subtitles} 480p [300MB] || 720p [600MB] || 1080p [1.45GB]

TheMoviesFlix.sbs is The Best Website/Platform For Hollywood HD Movies. We Provide Direct Google Drive Download Links For Fast And Secure Downloading. Just Click On Download Button And Follow Steps To Download And Watch Movies Online For Free.

Constantine: City of Demons (2018–2019)

1 min|Animation, Short, Action|24 Mar 2018
7.5Rating: 7.5 / 10 from 6,601 users
An animated series centering on the adventures of supernatural detective John Constantine.

Download Constantine: City of Demons (2018) English Subbed 720p & 480p~ TheMoviesFlix.sbs

Movie Info:

  • Full Name: Constantine: City of Demons (2018)
  • Language: English
  • Subtitles: Yes (English)
  • Size: 300MB, 600MB & 1.45GB
  • Quality: 480p, 720p & 1080p – BluRay
  • Format: Mkv

Storyline:

A decade after a tragic mistake, family man Chas and occult investigator John Constantine (voiced by Matt Ryan) set out to cure Chas’s daughter Trish from a mysterious supernatural coma. With the help of the mysterious Nightmare Nurse, the influential Queen of Angels, and brutal Aztec God Mictlantecuhtli, the pair just might have a chance at outsmarting the demon Beroul to save Trish’s soul. In a world of shadows and dark magic, not everything is what it seems, and there’s always a price to pay. The path to redemption is never easy, and if Constantine is to succeed, he must navigate through the dark urban underbelly of Los Angeles, outwit the most cunning spawns of hell, and come face to face with arch-nemesis Nergal – all while battling his own inner demons!

ScreenShots:

Download Constantine: City of Demons (2018) {English With Subtitles} 480p [300MB] || 720p [600MB] || 1080p [1.45GB]
Download Constantine: City of Demons (2018) {English With Subtitles} 480p [300MB] || 720p [600MB] || 1080p [1.45GB]
Download Constantine: City of Demons (2018) {English With Subtitles} 480p [300MB] || 720p [600MB] || 1080p [1.45GB]

Download Constantine: City of Demons (2018) English 480p Esubs [300MB]

Download Links

Download Constantine: City of Demons (2018) English 720p Esubs [600MB]

Download Links

Download Constantine: City of Demons (2018) English 1080p Esubs  [1.45GB]

Download Links

Leave a Reply

Your email address will not be published. Required fields are marked *

`),this.#E()})).catch((e=>{if(e&&this.#i.error(e),e&&this.#o&&!this.#T)return this.#i.debug("fetch call failed. Switch to adblck domain and path"),this.#T=!0,this.#s.enableAdbMode(),void this.show();this.#n(ae)}))}#E(){this.#i.debug("render"),this.#A.render(this.#y)}#C(e){let t=`${window.location.protocol}//${this.#m}/script/interstitial.php`;if(this.#o&&this.#s.isAdbMode()){const{adserverDomain:e}=this.#o,i=`/${ee("abcdefgh0123456789")}`;t=`${window.location.protocol}//${e}${i}`}return t+=`?r=${this.#l}`,this.#b&&(t+="&rbd=1"),this.#v&&(t+=this.#v),t=t+"&atag=1"+`&czid=${this.#u}`+`&aggr=${this.#h}`+`&seqid=${e}`+`&ufp=${encodeURIComponent(this.#S)}`+`&srs=${this.#s.getSesionRandomString()}`+`&cbpage=${encodeURIComponent(I())}`+`&atv=${this.#k}`+`&cbref=${encodeURIComponent($())}`,this.#o&&(t+="&abtg=1"),this.#g&&(t+="&ppv=1"),this.#f&&(t+=`&ab_test=${this.#f}`),!1===this.#p&&(t+="&cap=0"),this.#o&&this.#o.adbVersion&&(t+=`&adbv=${this.#o.adbVersion}`),this.#s.isSandboxed()&&(t+="&sbx=1"),this.#o&&this.#s.isAdbMode()?(t+="&sadbl=2",t+="&fmt=intrn",this.#i.debug(`bid url: ${t}`),te(t)):(this.#i.debug(`bid url: ${t}`),t)}};const Re=6e5,Oe='[doskip*="1"]',Le="znid";var Pe=class{targetElementsCssSelector=null;shouldTriggerPopOnTargetClick=!1;constructor(e,t,i){this.targetElementsCssSelector=e,this.shouldTriggerPopOnTargetClick=t,this.zoneId=i}isPresent(){return!!this.targetElementsCssSelector}isActionAllowedOnElement(e){if(!this.isPresent())return!0;if(e.hasAttribute(Le))return e.getAttribute(Le)===this.zoneId;if(e.hasAttribute("doskip"))return!1;const t=w()(document.querySelectorAll(Oe));for(const i of t)if(i.contains(e))return!1;return this.#I(e)?this.shouldTriggerPopOnTargetClick:!this.shouldTriggerPopOnTargetClick}#I(e){const t=document.querySelectorAll(this.targetElementsCssSelector);do{for(let i=0;i{var e,t,i;const r=(e,t)=>{try{const i=t.getBoundingClientRect();e.style.top=`${i.top+window.scrollY}px`,e.style.left=`${i.left+window.scrollX}px`,e.style.width=`${i.width}px`,e.style.height=`${i.height}px`}catch(e){}};x()(e=this.iframesToOverlays).call(e,(e=>{let{overlay:t,iframe:i}=e;return r(t,i)})),x()(t=this.videosToOverlays).call(t,(e=>{let{overlay:t,video:i}=e;return r(t,i)})),x()(i=this.anchorsToOverlays).call(i,(e=>{let{overlay:t,anchor:i}=e;return r(t,i)}))}),500)}clearOverlaysResizeIntervalChecker(){try{clearInterval(this.overlaysResizeIntervalChecker)}catch(e){}}#O(e){const t=document.createElement("div");if(t.addEventListener("mousedown",(e=>{this.#i.debug("mousedown on overlay"),e.stopPropagation(),e.preventDefault(),this.desktopClickListener(e)}),this.#R),e===document.body)t.id="dontfoid",t.style.top="0px",t.style.left="0px",t.style.width=`${window.innerWidth||document.body.clientWidth}px`,t.style.height=`${window.innerHeight||document.body.clientHeight}px`,t.style.position="fixed";else{const i=e.getBoundingClientRect();t.style.top=`${i.top+window.scrollY}px`,t.style.left=`${i.left+window.scrollX}px`,t.style.width=`${i.width}px`,t.style.height=`${i.height}px`,t.style.position="absolute",t.setAttribute("donto","")}return t.setAttribute(Le,this.#l),t.style.zIndex=2147483647,t.style.backgroundColor="transparent",e===document.body?document.body.appendChild(t):e.parentNode.appendChild(t),t}attachVideoOverlays(){const e=document.querySelectorAll("video");for(let t=0;t false"),this.#R=!1),this.overlays=new Ne(this.elementTargeting,t()(i=this.#U).call(i,this),this.#i,this.#t.zoneId,this.#R),e.tagVersionSuffix&&(this.#k+=e.tagVersionSuffix),this.#i.debug("tag version:",this.#k)}show(){this.#y=null,this.#P=null,this.#L=!1,fetch(this.#C()).then((e=>200===e.status||202===e.status?e.json():(204===e.status&&(this.hasNoInventory=!0,this.#i.debug(`no inventory! reset after ${this.#w} sec`),s()((()=>{this.hasNoInventory=!1}),1e3*this.#w),this.#w<7200&&(this.#w*=5)),l().reject()))).then(se).then((e=>{if(this.#i.debug("response:",e),e.capped_ttl)return this.isCapped=!0,this.#i.debug(`capped! reset after ${e.capped_ttl} sec`),s()((()=>{this.isCapped=!1}),1e3*e.capped_ttl),void this.#t.actionCallback(ce);if(this.#w>12&&(this.#w=12),!this.#b){this.#b=!0;const t=e.delay??0;return this.#i.debug("delay is",t),void s()((()=>{this.#$(e)}),1e3*t)}this.#$(e)})).catch((e=>{if(e&&this.#i.error(e),e&&this.#t.adblockSettings&&!this.#T)return this.#i.debug("fetch call failed. Switch to adblck domain and path"),this.#s.enableAdbMode(),this.#T=!0,void this.show();this.#t.actionCallback(ce)}))}#C(){let e=`${window.location.protocol}//${this.#t.adserverDomain}/script/suurl5.php`;if(this.#t.adblockSettings&&this.#s.isAdbMode()){const{adserverDomain:t}=this.#t.adblockSettings,i=`/${ee("abcdefgh0123456789")}`;e=`${window.location.protocol}//${t}${i}`}if(e+=`?r=${this.#t.zoneId}`,this.#b&&(e+="&rbd=1"),this.#t.targetCountries){const t=this.#t.targetCountries.join(",");this.#t.triggerOnTargetCountries?e+="&allowed_countries="+encodeURIComponent(t):e+="&excluded_countries="+encodeURIComponent(t)}return e=e+this.#t.clientHintsQueryStr+"&atag=1&cbur="+Math.random()+"&cbiframe="+R()+"&cbWidth="+P()+"&cbHeight="+N()+"&cbtitle="+encodeURIComponent(U())+"&cbpage="+encodeURIComponent(I())+"&cbref="+encodeURIComponent($())+"&cbdescription="+encodeURIComponent(F("description"))+"&cbkeywords="+encodeURIComponent(F("keywords"))+"&cbcdn="+encodeURIComponent(this.#s.getCdnDomain())+"&ts="+r()()+"&atv="+this.#k+"&ufp="+encodeURIComponent(this.#t.uniqueFingerprint)+"&srs="+this.#s.getSesionRandomString(),this.#t.adblockSettings&&(e+="&abtg=1"),this.#t.aggressivity&&(e+=`&aggr=${this.#t.aggressivity}`),this.#t.collectiveZoneId&&(e+=`&czid=${this.#t.collectiveZoneId}`),this.#t.recordPageView&&(e+="&ppv=1"),this.#t.abTest&&(e+=`&ab_test=${this.#t.abTest}`),!1===this.#t.adsCapping&&(e+="&cap=0"),this.#t.adblockSettings&&this.#t.adblockSettings.adbVersion&&(e+=`&adbv=${this.#t.adblockSettings.adbVersion}`),this.#s.isSandboxed()&&(e+="&sbx=1"),this.#t.adblockSettings&&this.#s.isAdbMode()?(e+="&sadbl=2",e+="&fmt=suv5",this.#i.debug(`bid url: ${e}`),te(e)):(this.#i.debug(`bid url: ${e}`),e)}#F(e){try{let t=this.#N?this.#N(""):window.open("");return t.document.open(),t.document.writeln('`),void(!this.#b&&this.#t.delay>0?(this.#i.debug(`delay present. render after: ${this.#t.delay} sec`),s()(t()(c=this.#E).call(c,this),1e3*this.#t.delay)):this.#E())))}#nt(e){this.#i.debug("fallback script str:",e);const t=(new DOMParser).parseFromString(e,"text/html").querySelector("script");if(!t)return void this.#i.error("invalid fallback script. move on");this.#i.debug("fallback script:",t);const i=document.createElement("script");for(const e of t.attributes)i.setAttribute(e.name,e.value);i.src||(i.textContent=t.textContent),document.body.appendChild(i)}#rt(e){this.#i.debug("hp data:",e);const t={zoneId:e.pop_zone_id.toString(),linkedZoneId:e.source_zone_id.toString()};var i;e.attributes&&(e.attributes["element-list"]&&(t.targetElementsCssSelector=e.attributes["element-list"],t.triggerOnTargetElementsClick="allow"===e.attributes["element-action"]),e.attributes["country-list"]&&(t.targetCountries=We()(i=e.attributes["country-list"]).call(i).split(","),t.triggerOnTargetCountries="allow"===e.attributes["country-action"])),this.#s.runPop(t)}#Qe(e){if(this.#Me)return void this.#i.debug("hs already attached!");if(this.#Xe)return void this.#i.debug("hs not allowed when autotag");this.#Me=!0,this.#i.debug("attach hs!"),this.#i.debug("hs data:",e);const t={zoneId:e.slider_zone_id.toString(),linkedZoneId:e.source_zone_id.toString()};this.#s.runVideoSlider(t)}#n(){if(this.#t.showOnInnerLinkClick&&this.#it)return this.#i.debug("redirect to inner link"),void(window.location.href=this.#it);this.#tt=!1,this.#t.refreshRate>0?(this.#i.debug(`rebid after ${this.#t.refreshRate} sec`),s()((()=>{this.#b=!0,this.#je()}),1e3*this.#t.refreshRate)):this.#i.debug("no rebidding. finish")}#st(){const e=document.querySelectorAll("a"),t=new(m())(I()).hostname;for(let i=0;i{t.stopPropagation?t.stopPropagation():t.cancelBubble=!0,t.preventDefault?t.preventDefault():t.returnValue=!1,this.#tt||(this.#i.debug("click on inner link detected. render ad"),this.#tt=!0,this.#it=e[i].href,this.#A.render(this.#y))}),{capture:!0})}#E(){this.#i.debug("render"),this.#t.showOnInnerLinkClick?(this.#i.debug("google friendly interstitial. ad will be rendered on inner link click"),this.#st()):this.#A.render(this.#y)}#C(){let e=`${window.location.protocol}//${this.#m}/script/interstitial.php`;if(this.#o&&this.#s.isAdbMode()){const{adserverDomain:t}=this.#o,i=`/${ee("abcdefgh0123456789")}`;e=`${window.location.protocol}//${t}${i}`}return e+=`?r=${this.#l}`,this.#b&&(e+="&rbd=1"),this.#v&&(e+=this.#v),e=e+`&srs=${this.#s.getSesionRandomString()}`+`&ufp=${encodeURIComponent(this.#S)}`+`&cbpage=${encodeURIComponent(I())}`+`&atv=${this.#k}`+`&cbref=${encodeURIComponent($())}`,this.#Je&&(e+=`&sub1=${encodeURIComponent(this.#Je)}`),this.#Xe&&(e+="&atag=1"),this.#u&&(e+=`&czid=${this.#u}`),this.#et&&(e+=`&pblcz=${this.#et}`),this.#h&&(e+=`&aggr=${this.#h}`),this.#o&&(e+="&abtg=1"),this.#g&&(e+="&ppv=1"),this.#f&&(e+=`&ab_test=${this.#f}`),this.#o&&this.#o.adbVersion&&(e+=`&adbv=${this.#o.adbVersion}`),this.#s.isSandboxed()&&(e+="&sbx=1"),this.#o&&this.#s.isAdbMode()?(e+="&sadbl=2",e+="&fmt=intrn",this.#i.debug(`bid url: ${e}`),te(e)):(this.#i.debug(`bid url: ${e}`),e)}},InPagePush:class{#t={};#i;#s;#v="";#ot;#b=!1;#at=!1;#Me=!1;#k="64.3";#ct=[];#lt=null;#Ve=10;#T=!1;constructor(e){this.#i=new a(`ipp_new_${e.zoneId}`),this.#i.debug("init ipp with config:",e),this.#t=e,this.#s=window[e.adcashGlobalName],customElements.get("in-page-message")||customElements.define("in-page-message",et),e.tagVersionSuffix&&(this.#k+=e.tagVersionSuffix),S(window,"resize",(()=>{var e;x()(e=this.#ct).call(e,(e=>{let{htmlElement:t}=e;t&&t.resize()}))})),this.#s.getClientHints(!1).then((e=>{this.#v=e})).finally((()=>{s()((()=>{this.#je()}),1e3*this.#t.delay)}))}#C(){let e=`${window.location.protocol}//${this.#t.adserverDomain}/script/push.php`;if(this.#t.adblockSettings&&this.#s.isAdbMode()){const{adserverDomain:t}=this.#t.adblockSettings,i=`/${ee("abcdefgh0123456789")}`;e=`${window.location.protocol}//${t}${i}`}return e+=`?r=${this.#t.zoneId}&ipp=1`,this.#ot=J?this.#t.renderPosMobile:this.#t.renderPosDesktop,e+=`&mads=${this.#t.maxAds}&position=${this.#ot}`,this.#t.isAutoTag&&(e+=`&czid=${this.#t.collectiveZoneId}&atag=1`),this.#t.aggressivity&&(e+=`&aggr=${this.#t.aggressivity}`),this.#t.adblockSettings&&(e+="&abtg=1"),this.#b&&(e+="&rbd=1"),this.#t.recordPageView&&(e+="&ppv=1"),this.#t.linkedZoneId&&(e+=`&pblcz=${this.#t.linkedZoneId}`),this.#t.abTest&&(e+=`&ab_test=${this.#t.abTest}`),this.#t.sub1&&(e+=`&sub1=${encodeURIComponent(this.#t.sub1)}`),this.#t.adblockSettings&&this.#t.adblockSettings.adbVersion&&(e+=`&adbv=${this.#t.adblockSettings.adbVersion}`),this.#s.isSandboxed()&&(e+="&sbx=1"),e=e+`&srs=${this.#s.getSesionRandomString()}`+`&ufp=${encodeURIComponent(this.#t.uniqueFingerprint)}`+`&cbpage=${encodeURIComponent(I())}`+`&atv=${this.#k}`+`&cbref=${encodeURIComponent($())}`,this.#v&&(e+=this.#v),this.#lt&&(e+="&ipptr=1"),this.#t.adblockSettings&&this.#s.isAdbMode()?(e+="&sadbl=2",e+="&fmt=ippg",this.#i.debug(`bid url: ${e}`),te(e)):(this.#i.debug(`bid url: ${e}`),e)}#dt(e){var i;this.#i.debug(`rebid after ${e} sec`),s()(t()(i=this.#je).call(i,this),1e3*e)}#ut(){this.#t.refreshRate>0&&this.#dt(this.#t.refreshRate)}#qe(){this.#Ve<1200&&(this.#Ve*=2)}#Ze(){this.#Ve=10}#ht(){this.#dt(this.#Ve),this.#qe()}async#je(){if(this.#gt()>=this.#t.maxAds||document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)return this.#i.debug("max ads reached or fullscreen."),void this.#ut();let e,t;try{if(e=await fetch(this.#C()),!e.ok)throw new Error(`HTTP error! Status: ${e.status}`)}catch(e){return this.#i.error(e),this.#t.adblockSettings&&!this.#T?(this.#i.debug("fetch failed. adb present - switch to adb mode"),this.#T=!0,this.#s.enableAdbMode(),void this.#je()):this.#s.isAdbMode()?void this.#i.debug("fetch failed with adb mode on. exit"):void this.#ht()}return 204===e.status?(this.#i.debug("unsold inventory!"),this.#b=!0,void this.#ht()):200!==e.status&&202!==e.status?(this.#i.error(`response status ${e.status} not recognised!`),void this.#ht()):(this.#b=!0,t=await e.json(),t=se(t),this.#i.debug("response data:",t),202===e.status?(t.hp&&this.#pt(t.hp),t.hs&&this.#Qe(t.hs),t.capped_ttl?(this.#i.debug("capped!"),void this.#dt(t.capped_ttl)):void this.#ht()):(t.hp&&this.#pt(t.hp),t.hs&&this.#Qe(t.hs),t.fallback?this.#nt(t.fallback)?void this.#i.debug("fallback rendered. exit!"):void this.#ht():(this.#Ze(),this.#t.refreshRate=t.rr,this.#v&&(t.impression_url&&(t.impression_url+=this.#v),t.click_url&&(t.click_url+=this.#v)),2===t.type?this.#lt?this.#i.debug("custom ipp html already present"):this.#ft({script:t.script||"",link:t.click_url,impressionLink:t.impression_url||null}):(this.#ct.push({title:t.title||"",description:t.description||"",icon:t.icon||t.image,link:t.click_url,impressionLink:t.impression_url||null}),this.#mt()),void this.#ut())))}#gt(){return this.#lt?this.#ct.length+1:this.#ct.length}#nt(e){this.#i.debug("fallback script str decoded:",e);const t=(new DOMParser).parseFromString(e,"text/html").querySelector("script");if(!t)return this.#i.error("invalid fallback script. move on"),!1;this.#i.debug("fallback script:",t);const i=document.createElement("script");for(const e of t.attributes)i.setAttribute(e.name,e.value);return i.src||(i.textContent=t.textContent),document.body.appendChild(i),!0}#pt(e){if(this.#at)return void this.#i.debug("hp already attached");if(this.#t.isAutoTag)return void this.#i.debug("hp not allowed when autotag");this.#at=!0,this.#i.debug("attach hp. hp data:",e);const t={zoneId:e.pop_zone_id.toString(),linkedZoneId:e.source_zone_id.toString(),isHPop:!0};var i;e.attributes&&(e.attributes["element-list"]&&(t.targetElementsCssSelector=e.attributes["element-list"],t.triggerOnTargetElementsClick="allow"===e.attributes["element-action"]),e.attributes["country-list"]&&(t.targetCountries=We()(i=e.attributes["country-list"]).call(i).split(","),t.triggerOnTargetCountries="allow"===e.attributes["country-action"])),this.#s.runPop(t)}#Qe(e){if(this.#Me)return void this.#i.debug("hs already attached!");if(this.#t.isAutoTag)return void this.#i.debug("hs not allowed when autotag");this.#Me=!0,this.#i.debug("attach hs!"),this.#i.debug("hs data:",e);const t={zoneId:e.slider_zone_id.toString(),linkedZoneId:e.source_zone_id.toString()};this.#s.runVideoSlider(t)}#ft(e){this.#lt=e;const t=(new DOMParser).parseFromString(this.#lt.script,"text/html").querySelector("script"),i=document.createElement("script");if(t)for(const e of t.attributes)i.setAttribute(e.name,e.value);i.src||(i.innerText=t.innerText);const r=()=>{this.#i.debug("CT-CLICK"),fetch(this.#lt.link,{mode:"no-cors"}),document.removeEventListener("ct-click",r)},n=()=>{this.#i.debug("CT-CLOSE"),document.removeEventListener("ct-click",r),document.removeEventListener("ct-close",n),this.#lt=null,document.body.removeChild(i)};S(document,"ct-click",r),S(document,"ct-close",n);let s=this.#lt.impressionLink;window[Je]&&(s+=`&utsid=${window[Je]}`),s+=`&cbpage=${encodeURIComponent(I())}`,s+=`&cbref=${encodeURIComponent($())}`,(async()=>{try{await fetch(s.toString())}catch(e){return this.#i.debug(e),void(this.#t.adblockSettings&&!this.#s.isAdbMode()&&(this.#i.debug("imp failed: try alt domain and path"),this.#s.enableAdbMode()))}document.dispatchEvent(new CustomEvent("impression-event"))})(),i.onerror=()=>{this.#i.debug("custom html script failed to load"),this.#lt=null},document.body.appendChild(i)}#mt(){var e,t;this.#i.debug("drawing.."),x()(e=this.#ct).call(e,(e=>{let{htmlElement:t}=e;t&&t.remove()})),x()(t=this.#ct).call(t,((e,t)=>{const i=document.createElement("in-page-message");i.setAttribute("doskip","1"),i.setAttribute("id",t.toString()),i.setAttribute("data-icon",e.icon),i.setAttribute("data-title",e.title),i.setAttribute("data-description",e.description),i.setAttribute("data-offset-top",this.#t.offsetTop),i.setAttribute("data-render-pos-desktop",this.#t.renderPosDesktop),i.setAttribute("data-render-pos-mobile",this.#t.renderPosMobile),e.impressionLink&&(i.setAttribute("data-imp-link",e.impressionLink),e.impressionLink=null,document.dispatchEvent(new CustomEvent("impression-event"))),i.addEventListener(Qe,(()=>{var r;if(J||this.#t.adblockSettings&&this.#s.isAdbMode()){const t=document.createElement("a");t.href=e.link,t.rel="noopener, noreferrer",t.target="_blank",t.click()}else try{window.open(e.link,"_blank","noopener,noreferrer")}catch{}i.remove(),Ge()(r=this.#ct).call(r,t,1),this.#mt()})),i.addEventListener(Ye,(()=>{var e;i.remove(),Ge()(e=this.#ct).call(e,t,1),this.#mt()})),e.htmlElement=i,document.body.appendChild(i)}))}},Banner:class{#s;#t={};#i;#vt="";#bt;#l=null;#yt=null;#wt=null;#kt=null;#At;#Tt;#m="adexchangeclear.com";#ye="velocecdn.com";#xt;#o;#T=!1;#Me=!1;#k="64.3";constructor(e){this.#i=new a(`banner_${e.zoneId}`),this.#s=window[e.adcashGlobalName],this.#i.debug("init banner with config:",e),this.#t=e,this.#l=this.#t.zoneId,this.#yt=this.#t.width,this.#wt=this.#t.height,this.#kt=this.#t.renderIn,this.#o=this.#t.adblockSettings,this.#t.currentScript&&(this.#xt=this.#t.currentScript),this.#At=this.#Tt=document.body.clientWidth||window.innerWidth,e.tagVersionSuffix&&(this.#k+=e.tagVersionSuffix),this.#i.debug("tag version:",this.#k),this.#St()}#Ct(){const e=this.#bt.impression_url;(new Image).src=e}async#St(){this.#i.debug("get initial ad and config"),this.#vt=await E(this.#i);const e=await this.#Et();let t;this.#i.debug("URL to fetch",e);try{t=await fetch(e)}catch(e){return this.#i.error(e),this.#o&&!this.#T?(this.#i.debug("fetch failed: try alt domain and path"),this.#T=!0,this.#s.enableAdbMode(),void this.#St()):this.#s.isAdbMode()?void this.#i.debug("fetch failed: alt domain and path blocked. exit"):void this.#i.debug("fetch failed. exit")}if(200===t.status||202===t.status){this.#i.debug("initial fetch received 200 or 202");const e=await t.json();this.#bt=se(e),this.#It(),this.#bt.hs&&this.#Qe(this.#bt.hs)}else 204===t.status&&this.#i.debug("initial fetch received 204. No inventory")}async#Et(){let e=`${window.location.protocol}//${this.#m}/script/banner.php`;if(this.#o&&this.#s.isAdbMode()){const{adserverDomain:t}=this.#o,i=`/${ee("abcdefgh0123456789")}`;e=`${window.location.protocol}//${t}${i}`}return e+=`?r=${this.#l}`,e+=`&cbpage=${encodeURIComponent(I())}`,e+=`&cbref=${encodeURIComponent($())}`,e+=`&cbdescription=${encodeURIComponent(F("description"))}`,e+=`&cbkeywords=${encodeURIComponent(F("keywords"))}`,e+=`&cbtitle=${encodeURIComponent(U())}`,e+=`&srs=${L()}`,e+=`&ufp=${encodeURIComponent(this.#t.uniqueFingerprint)}`,e+=`&atv=${this.#k}`,this.#t.sub1&&(e+=`&sub1=${encodeURIComponent(this.#t.sub1)}`),this.#o&&this.#s.isAdbMode()?(e+="&sadbl=2",e+="&fmt=bnr",te(e)):e}#It(){if(!this.#bt||"undefined"===this.#bt)return;if(this.#bt.hp&&(this.#Rt(this.#bt.hp),1===it()(this.#bt).length))return;if(this.#bt.capped_ttl)return void this.#i.debug("capped");let e;e=this.#kt?document.querySelector(this.#kt):this.#t.currentElement?this.#t.currentElement:this.#xt.parentElement,this.#Ot(e);const t=this.#Lt();e.appendChild(t)}#Lt(){let e;return this.#bt.fallback?(this.#i.debug("Banner type - fallback"),e=this.#Pt()):1===this.#bt.render_image?(this.#i.debug("Banner type - image"),e=this.#Nt()):(this.#i.debug("Banner type - html"),e=this.#Ut()),this.#bt.fallback||this.#Ct(),this.#s||this.#$t(),e}#Nt(){const e=document.createElement("a");e.href=this.#bt.click_url,e.target="_blank",e.rel="noopener, noreferrer",e.style.display="block",e.style.width=`${this.#yt?this.#yt:this.#bt.width}px`,e.style.height=`${this.#wt?this.#wt:this.#bt.height}px`,e.style.position="relative",e.style.top=0,e.style.left=0,e.style.right=0,e.style.bottom=0,e.setAttribute("doskip","1"),e.setAttribute(Ce,"1");const t=document.createElement("img");if(t.src=this.#bt.image_url,t.target="_blank",t.width=this.#yt?this.#yt:this.#bt.width,t.height=this.#wt?this.#wt:this.#bt.height,this.#bt.width>this.#At&&this.#bt.force_resize){const i=(this.#yt?this.#yt:this.#bt.width)/this.#Tt;e.style.width=`${this.#Tt}px`,e.style.height=`${Math.round((this.#wt?this.#wt:this.#bt.height)/i)}px`,t.style="max-width: 100%;",t.width=this.#Tt,t.height=Math.round((this.#wt?this.#wt:this.#bt.height)/i)}return e.appendChild(t),e}#Ut(){const e=document.createElement("div");e.id=`b_${this.#l}`,e.style.display="block",e.style.width=`${this.#yt?this.#yt:this.#bt.width}px`,e.style.height=`${this.#wt?this.#wt:this.#bt.height}px`,e.style.position="relative",e.style.inset="0",e.setAttribute("doskip","1");const t=document.createElement("iframe");t.srcdoc=this.#bt.html,t.style.zIndex=10,t.style.height="100%",t.style.width="100%",t.style.border="none",t.setAttribute("sandbox","allow-scripts"),t.setAttribute("referrerpolicy","no-referrer");const i=document.createElement("div");return i.style.top=0,i.style.left=0,i.style.width="100%",i.style.height="100%",i.style.position="absolute",i.style.zIndex=11,i.style.backgroundColor="transparent",i.addEventListener("click",(e=>{this.#i.debug(`${e.type} on overlay`),this.#i.debug("click recorded:",this.#bt.click_url),window.open(this.#bt.click_url,"_blank","noopener,noreferrer")})),e.appendChild(t),e.appendChild(i),e}#Pt(){const e=`b_${this.#l}`,t=document.createElement("iframe");return t.id=e,t.style.border="medium none",t.style.padding="0",t.style.margin="0",t.style.width=`${this.#yt?this.#yt:this.#bt.width}px`,t.style.height=`${this.#wt?this.#wt:this.#bt.height}px`,t.width=this.#yt?this.#yt:this.#bt.width,t.height=this.#wt?this.#wt:this.#bt.height,t.scrolling="no",t.vspace="0",t.hspace="0",t.allowtransparency="true",t.allowfullscreen="true",t.srcdoc=this.#bt.fallback,t}#Qe(e){if(this.#Me)return void this.#i.debug("hs already attached!");this.#Me=!0,this.#i.debug("attach hs!"),this.#i.debug("hs data:",e);const t={zoneId:e.slider_zone_id.toString(),linkedZoneId:e.source_zone_id.toString()};this.#s.runVideoSlider(t)}#Rt=e=>{if(this.#s){const i={zoneId:e.pop_zone_id.toString(),linkedZoneId:e.source_zone_id.toString()};var t;return e.attributes&&(e.attributes["element-list"]&&(i.targetElementsCssSelector=e.attributes["element-list"],i.triggerOnTargetElementsClick="allow"===e.attributes["element-action"]),e.attributes["country-list"]&&(i.targetCountries=We()(t=e.attributes["country-list"]).call(t).split(","),i.triggerOnTargetCountries="allow"===e.attributes["country-action"])),void this.#s.runPop(i)}const i=document.createElement("script");var r;i.type="text/javascript",i.src=`//${this.#ye}/script/suv4.js`,i.setAttribute("zid",e.pop_zone_id),i.setAttribute("lpzi",e.source_zone_id),i.setAttribute("data-adel","lwsu"),i.setAttribute("adlm","ipvipplm"),e.attributes&&x()(r=it()(e.attributes)).call(r,(t=>{i.setAttribute(t,e.attributes[t])})),document.body.appendChild(i)};#Ot(e){if(this.#i.debug("Initial viewport:",this.#At),this.#bt.width>this.#At&&this.#bt.force_resize){var t=window.getComputedStyle(e),i=nt()(t.paddingLeft),r=nt()(t.marginLeft);this.#Tt=e.clientWidth-i-r,this.#i.debug("Parent element width:",this.#Tt)}}#$t(){const e=document.createElement("a");e.style.display="none",e.style.visibility="hidden",e.style.position="relative",e.style.left="-1000px",e.style.top="-1000px",e.href=this.#bt.bot_link,document.body.appendChild(e)}},VideoSlider:class{#s;#i;#Ft=5;#zt=!0;#t={};#Dt={};#Bt;#Mt="";#b=!1;#k="64.3";#v="";#S="";#Vt;#Ht;#jt=null;#_t=null;#at=!1;constructor(e){if(this.#i=new a("slider_alt"),this.#t=e,this.#s=window[e.adcashGlobalName],this.#S=e.uniqueFingerprint,this.#Mt=`${window.location.protocol}//${this.#t.adserverDomain}`,this.#Vt=J?320:426,this.#Ht=J?180:240,this.#t.isPreviewMode)return this.#Dt.renderPosition="right",this.#Dt.closeButtonDelay=10,void this.#je().catch((e=>{this.#i.error(e)}));this.#t.tagVersionSuffix&&(this.#k+=this.#t.tagVersionSuffix),this.#s.getClientHints(!1).then((e=>(this.#v=e,this.#Wt()))).then((()=>{var e;this.#Dt.hp&&this.#pt(this.#Dt.hp),s()(t()(e=this.#je).call(e,this),this.#Dt.delay)})).catch((e=>{this.#i.error(e)}))}#qt(){let e=`${this.#Mt}/video/slider.php`;if(this.#t.adblockSettings&&this.#s.isAdbMode()){const{adserverDomain:t}=this.#t.adblockSettings,i=`/${ee("abcdefgh0123456789")}`;e=`${window.location.protocol}//${t}${i}`}return e+=`?r=${this.#t.zoneId}`,e+=`&atv=${this.#k}`,this.#t.adblockSettings&&(e+="&abtg=1"),this.#t.adblockSettings&&this.#t.adblockSettings.adbVersion&&(e+=`&adbv=${this.#t.adblockSettings.adbVersion}`),this.#t.adblockSettings&&this.#s.isAdbMode()&&(e+="&sadbl=2",e+="&fmt=vid",e=te(e)),e}async#Wt(){let e=0,t=1;for(;e<3;)try{let e=await fetch(this.#qt());if(200!==e.status)throw new Error(`HTTP Error. Status: ${e.status}: ${e.statusText}`);return e=await e.json(),this.#Dt=se(e),void this.#i.debug("Zone config loaded:",this.#Dt)}catch(i){this.#i.error("Error fetching zone config",i),this.#t.adblockSettings&&!this.#s.isAdbMode()&&this.#s.enableAdbMode(),this.#i.debug(`Retry in ${t}s`),await oe(1e3*t),t*=5,e++}throw new Error("Failed to fetch zone configuration after 3 attempts")}async#je(){let e;try{e=await this.#Zt()}catch(e){return this.#i.error("Get VAST Ad error:",e),void this.#i.debug("exit")}this.#b=!0,this.#Gt(e)}#Kt(){let e=`${this.#Mt}/video/select.php`;if(this.#t.adblockSettings&&this.#s.isAdbMode()){const{adserverDomain:t}=this.#t.adblockSettings,i=`/${ee("abcdefgh0123456789")}`;e=`${window.location.protocol}//${t}${i}`}return e+=`?r=${this.#t.zoneId}`,this.#t.sub1&&(e+=`&sub1=${encodeURIComponent(this.#t.sub1)}`),this.#b&&(e+="&rbd=1"),this.#v&&(e+=this.#v),this.#s.isSandboxed()&&(e+="&sbx=1"),e=`${e}&srs=${this.#s.getSesionRandomString()}&ufp=${encodeURIComponent(this.#S)}&cbpage=${encodeURIComponent(I())}&atv=${this.#k}&cbref=${encodeURIComponent($())}`,this.#t.adblockSettings&&(e+="&abtg=1"),this.#t.adblockSettings&&this.#t.adblockSettings.adbVersion&&(e+=`&adbv=${this.#t.adblockSettings.adbVersion}`),this.#t.adblockSettings&&this.#s.isAdbMode()?(e+="&sadbl=2",e+="&fmt=vast",this.#i.debug(`bid url: ${e}`),te(e)):(this.#i.debug("bid url:",e),e)}#Qt(e){if(!e||0===e.length)return null;const t=window.innerWidth,i=navigator.connection||navigator.mozConnection||navigator.webkitConnection,r=i?i.effectiveType:"4g";this.#i.debug("network speed",r),ot()(e).call(e,((e,t)=>Number(t.width)-Number(e.width)));let n=e[e.length-1];for(const i of e)if(Number(i.width)<=t){n="slow-2g"===r||"2g"===r?e[e.length-1]:"3g"===r?ct()(e).call(e,(e=>Number(e.width)<=480))||n:i;break}return this.#i.debug("file selected",n),n.fileURL}async#Zt(){var e;const t=this.#Kt();let i;if(this.#i.debug("Fetching VAST ad from:",t),this.#_t=new Qt,this.#t.isPreviewMode){const e=(new DOMParser).parseFromString(this.#t.vastXml,"application/xml");i=await this.#_t.parseVAST(e)}else try{i=await this.#_t.get(t)}catch(e){if(this.#i.error("Error fetching VAST ad",e),this.#t.adblockSettings&&!this.#s.isAdbMode())return this.#s.enableAdbMode(),this.#Zt()}if(this.#i.debug("Res:",i),!i||!i.ads.length)throw new Error("No ads found in VAST response");const r=i.ads[0];this.#i.debug("Ad:",r);const n=ct()(e=r.creatives).call(e,(e=>"linear"===e.type));if(!n||!n.mediaFiles.length)throw new Error("No valid media file found in VAST response");this.#i.debug("Creative:",n),n.skipDelay&&n.skipDelay>-1?(this.#i.debug("Skip delay present:",n.skipDelay),this.#Ft=n.skipDelay):this.#Ft=this.#Dt.closeButtonDelay;const s=this.#Qt(n.mediaFiles);if(!s)throw new Error("No suitable media file found.");this.#i.debug("Media file selected:",s);const o=n.videoClickThroughURLTemplate?.url||null;if(!o)throw new Error("No Clickthrough URL found!");return{mediaFileURL:s,clickThroughURL:o,ad:r,creative:n}}#Gt(e){const{mediaFileURL:t,clickThroughURL:i,ad:r,creative:n}=e;this.#Bt=document.createElement("div"),this.#Bt.setAttribute("doskip","1");const o=this.#Bt.attachShadow({mode:"open"}),a=((e,t,i)=>{const r=document.createElement("div");return r.style.position="fixed",r.style.bottom="10px",r.style.width=`${e}px`,r.style.height=`${t}px`,r.style.background="black",r.style.borderRadius="8px",r.style.overflow="hidden",r.style.zIndex="2147483645",r.style.boxShadow="0px 4px 8px rgba(0, 0, 0, 0.2)",r.style.cursor="pointer","left"===i?(r.style.left="0px",r.style.transform="translateX(-100%)"):(r.style.right="0px",r.style.transform="translateX(100%)"),r.style.willChange="transform",r.style.transition="transform 0.5s ease-in-out",r})(this.#Vt,this.#Ht,this.#Dt.renderPosition);this.#i.debug("video src",t);const c=document.createElement("video");c.src=t,c.width=this.#Vt,c.height=this.#Ht,c.muted=!0,c.style.borderRadius="8px",c.style.objectFit="cover",c.style.display="block",c.controls=!1,c.setAttribute("playsinline",""),c.setAttribute("webkit-playsinline",""),c.setAttribute("autoplay",""),c.setAttribute("preload","auto"),this.#jt=new Yt(null,r,n);let l=!1;c.addEventListener("play",(()=>{l||(this.#jt.track("start"),this.#jt.trackImpression(),this.#jt.track("creativeView"),l=!0)}));const d={first:!1,mid:!1,third:!1};c.addEventListener("timeupdate",(()=>{const e=c.currentTime/c.duration;e>=.25&&!d.first&&(this.#jt.track("firstQuartile"),d.first=!0),e>=.5&&!d.mid&&(this.#jt.track("midpoint"),d.mid=!0),e>=.75&&!d.third&&(this.#jt.track("thirdQuartile"),d.third=!0)})),c.addEventListener("ended",(()=>{this.#i.debug("video ended"),this.#jt.track("complete"),this.#Yt()})),c.addEventListener("error",(e=>{this.#i.error("video error",e),this.#Yt()}));const u=(()=>{const e=document.createElement("div");e.style.position="absolute",e.style.top="50%",e.style.left="50%",e.style.transform="translate(-50%, -50%)",e.style.background="rgba(0, 0, 0, 0.5)",e.style.borderRadius="50%",e.style.padding="10px",e.style.display="flex",e.style.alignItems="center",e.style.justifyContent="center";const t=document.createElement("div");t.style.width="30px",t.style.height="30px",t.style.border="3px solid rgba(255, 255, 255, 0.3)",t.style.borderTop="3px solid white",t.style.borderRadius="50%";const i=e.attachShadow({mode:"open"}),r=document.createElement("style");return r.textContent="\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n div {\n animation: spin 1s linear infinite;\n }\n ",i.appendChild(r),i.appendChild(t),e.style.display="none",e})();c.addEventListener("waiting",(()=>{this.#i.debug("video waiting"),u.style.display="block"})),c.addEventListener("stalled",(()=>{this.#i.debug("video stalled")})),c.addEventListener("playing",(()=>{u.style.display="none"})),a.addEventListener("click",(e=>{e.preventDefault(),e.stopPropagation(),i&&(this.#jt.track("clickthrough"),window.open(i,"_blank","noopener,noreferrer"))}));let h=!1;c.addEventListener("canplaythrough",(()=>{this.#i.debug("canplaythrough triggered"),h||(this.#i.debug("Video loaded successfully, showing ad..."),((e,t,i,r,n)=>{const s=performance.now();requestAnimationFrame((function t(r){const o=r-s,a=Math.min(o/300,1),c=0+a*(2-a)*(i-0);e.style[n]=`${c}px`,a<1&&requestAnimationFrame(t)}))})(a,0,this.#Vt+10,0,"left"===this.#Dt.renderPosition?"left":"right"),h=!0)}));const g=(()=>{const e=document.createElement("div");return e.innerHTML=Jt,e.style.position="absolute",e.style.top="5px",e.style.left="5px",e.style.cursor="pointer",e.style.background="rgba(0,0,0,0.5)",e.style.width="32px",e.style.height="32px",e.style.display="flex",e.style.alignItems="center",e.style.justifyContent="center",e.style.borderRadius="50%",e})();g.onclick=e=>{this.#i.debug("mute button click"),e.stopPropagation(),c.muted=!c.muted,g.innerHTML=c.muted?Jt:'\n\n\n\n',this.#jt.track(c.muted?"mute":"unmute")};const p=((e,t)=>{const i=document.createElement("div");if(i.style.position="absolute",i.style.top="5px",i.style.right="5px",i.style.cursor="default",i.style.overflow="hidden",i.style.color="white",i.disabled=!0,e){i.style.height="24px",i.style.display="flex",i.style.alignItems="center",i.style.justifyContent="center",i.style.borderRadius="8px",i.style.background="rgba(0,0,0,0.5)",i.style.padding="4px 10px",i.style.fontFamily="'Arial', sans-serif",i.style.fontWeight="bold",i.style.letterSpacing="0.5px",i.style.fontSize="13px",i.style.whiteSpace="nowrap",i.style.gap="6px";let e=Math.ceil(t/1e3);i.innerHTML=`Close ad in ${e}`;const r=he()((()=>{e-=1,e>0?i.innerText=`Close ad in ${e}`:(clearInterval(r),i.innerHTML=`Close ad ${Xt(!1)}`,i.style.background="rgba(0,0,0,0.5)",i.style.cursor="pointer",i.disabled=!1)}),1e3)}else i.style.width="32px",i.style.height="32px",i.style.display="flex",i.style.alignItems="center",i.style.justifyContent="center",i.style.borderRadius="50%",i.style.background="rgba(255,255,255,0.3)",i.innerHTML=Xt(!0);return s()((()=>{e||(i.innerHTML=Xt(!1),i.style.background="rgba(0,0,0,0.5)",i.style.cursor="pointer",i.disabled=!1)}),t),i})(this.#zt,1e3*this.#Ft);p.onclick=e=>{this.#i.debug("close button click"),p.disabled?e.stopPropagation():(e.stopPropagation(),c.ended||this.#jt.track("skip"),this.#jt.track("close"),this.#Yt())},a.appendChild(u),a.appendChild(c),a.appendChild(g),a.appendChild(p),o.appendChild(a),document.body.appendChild(this.#Bt)}#Yt(){var e;this.#Bt.remove(),this.#Bt=null,this.#jt=null,this.#_t=null,this.#t.isPreviewMode||(this.#Dt.refreshRate>0?(this.#i.debug(`try bidding again after ${this.#Dt.refreshRate}s`),s()(t()(e=this.#je).call(e,this),1e3*this.#Dt.refreshRate)):this.#i.debug("no rr. exit"))}#pt(e){if(this.#at)return void this.#i.debug("hp already attached");this.#at=!0,this.#i.debug("attach hp. hp data:",e);const t={zoneId:e.pop_zone_id.toString(),linkedZoneId:e.source_zone_id.toString()};var i;e.attributes&&(e.attributes["element-list"]&&(t.targetElementsCssSelector=e.attributes["element-list"],t.triggerOnTargetElementsClick="allow"===e.attributes["element-action"]),e.attributes["country-list"]&&(t.targetCountries=We()(i=e.attributes["country-list"]).call(i).split(","),t.triggerOnTargetCountries="allow"===e.attributes["country-action"])),this.#s.runPop(t)}}}}))}()}();