DOSAR

Celulele stem recoltate din sangele ombilical: Casco pentru sanatate

June 25th, 2007, com Comenteaza

Amalia tocmai a sărbătorit, cu “sampafnia” cea mai bună din lume, respectiv laptele mamei, başca o grămadă de jucării, împlinirea respectabilei vârste de patru luni. Imbrăcată ca o prinţesă, a ieşit apoi pentru plimbarea de după-amiază, în Parcul Naţional, din Bucureşti. Intr-o caleaşcă sub formă de cărucior, „trasă” de tataie. Şi monitorizată atent de „serviciul de pază şi protecţie maternă”. Pentru primul interviu din viaţa ei, a fost admirabilă. Cu un gângurit şi un zâmbet, ne-a lămurit cum stau lucrurile. Chiar dacă Amalia nu ştie, încă, are ceva în plus faţă de majoritatea bebeluşilor de seama ei. Un „depozit” de sănătate,într-o „bancă” din Slovacia. Dacă, Doamne-fereşte, în viaţă va avea «Se-a face cu boli foarte grave, vreo 70 la număr, vindecarea îi este asigurată. Simplu, apelând la rezerva ei de sănătate. La „piesele de scimb”. Adică la miraculoasele celule stem. Pe care părinţii au avut grijă să i le recolteze, la naştere.

Raluca Balaşcan, mama Amaliei, a aflat de recoltarea sângelui ombilical de pe internet şi de la televizor. I s-a părut un subiect interesant, aşa că 1-a aprofundat. A intrat pe site-ul Eurocord-Slouacia, apoi pe cel al reprezentantei din România, respec­tiv Cord Blood Center, din Cluj. Informaţiile au convins-o că este cel mai înţelept lucru pe care poţi să-1 faci pentru sănătatea copilului tău, chiar la naştere. Când s-a apropiat barza, a procedat întocmai: „Am sunat la Cluj şi, sincer, am fost surprinsă de cât de serioşi sunt reprezentanţii fi­lialei. Era seară, după program, mi-au spus că mă caută ei, în ziua următoare. O fi ca la noi, am gândit, de azi pe mâine, dar nici vorbă. M-a sunat chiar directorul, deşi era pe la Budapesta. Am semnat con­tractele foarte repede şi mi-au trimis chi­tul de recoltare, sigilat. Am avut noroc că m-am grăbit, pentru că am născut pre­matur, la opt luni. Medicul meu nici nu era în Bucureşti, m-a asistat prin telefon. Auzeam cum vorbeşte cu doctoriţa Grigoriu, de la Municipal, cum îi dă indi­caţii. Am înţeles că recoltarea sângelui ombilical e un procedeu destul de simplu, îl poate face orice medic. După nici o lună de la naştere, am primit analizele, ceea ce îmi garanta că sângele recoltat este bun pentru un eventual transplant. De-abia atunci am plătit, în trei tranşe, în total vreo 30 şi ceva de milioane. Sunt foarte bucuroasă că am reuşit să fac asta pentru sănătatea copilului meu. Am cercetat prin arborele nostru genealogic şi am găsit nişte cancere, pe la rude. Acum stau liniştită. Mi-am sfătuit toate prietenele să procedeze la fel. Naşa Amaliei, care locuieşte în Italia, aşteaptă să nască şi a semnat contractul de recoltare tot cu firma din Cluj.”

Până mai ieri, placenta şi cordonul ombilical erau considerate deşeuri şi se ardeau laolaltă cu alte resturi din spitale. Cercetările medicale au dovedit, însă, că tocmai acolo stă speranţa şi rezerva de sănătate a umanităţii. Celulele stem, recoltate din sângele ombilical, ajută la vindecarea unor boli dintre cele mai grave, majoritatea mortale: leucemie, can­cer, tumori cerebrale, limfodenoame, scle­roză, diabet, Alzheimer, Parkinson, afec­ţiuni cardiace, hepatice etc. Aşa stând lucrurile, s-a trecut la „colectarea” acestor celule. De ani buni, în ţările dezvoltate, şi din aprilie 2006, în România. Recoltarea se face după tăierea cordonului ombilical, în circuit închis, imediat după naştere, pen­tru a evita coagularea. Sângele este prelu­at, apoi, de reprezentanţii societăţii din Cluj, care îl transportă, în maximum trei zile, până în laboratoarele din Slovacia. Acolo se fac toate analizele necesare şi celulele „alese” rămân la păstrare, în con­tainere cu azot lichid, până când pro­prietarul are nevoie de ele. Cam aşa sună, în mare, povestea miraculoaselor celule salvatoare de vieţi. Pentru amănunte, mergem la Cluj.

800 de bebeluşi din România au „piese de schimb”, In caz de boală

Ultimul raport de cercetare al Grupului de Studii Sociale 2000 despre atitu­dini şi percepţii cu privire la transplantul de organe a relevat faptul că aproape jumătate dintre români au auzit de recoltarea de sânge placentar la naşterea unui copil. Dintre cei care au auzit de pro­cedură, 39,3% l-ar da spre păstrare în folo­sul copilului lor, iar 29,1% l-ar dona unei bănci publice. Studiul a fost efectuat în perioada 10-15 aprilie 2007, în mediul urban, pe un eşantion reprezenta­tiv la nivel naţional.

Am ajuns la sediul Cord Blood Center, din Splaiul Independentei, nr. 1-4, cam în acelaşi timp cu două viitoare mămici. Ramona Moldovan stă să nască un băietei, ca să zic aşa, peste vreo două săptămâni. Corina Corneu mai are o lună până îşi va tine fetita în braţe. O s-o cheme Ştefania. Doamnele au venit să semneze contractele şi să afle cât mai multe detalii. Pentru că tot informaţii vreau şi eu, dr. Dan Sergiu Habago, country manager, profită de situaţie şi ne adună într-o „conferinţă de presă”. întreruptă, ce-i drept, de zeci de telefoane, pe aceeaşi temă. Scuze pentru viitoarele mămici, că eu am vrut şi amănunte care, poate, nu le interesau.

Celulele stern sunt un adevărat sistem de reparare a organismului. Când o celulă musculară, nervoasă, osoasă sau de orice altă natură este afectată, celula stern îi ia locul. Simplu, ca şi când pentru sănătatea noastră ar exista nişte piese de schimb. Se defectează un „şurub”, nici o problemă, îl înlocuim. Chiar dacă el se numeşte ţesut hepatic sau cardiac. Celulele stern au proprietatea de a se diferenţia şi a forma alte celule, ţesuturi, organe, vase de sânge, această calitate fiind mană cerească pentru trata­mentul unor boli dintre cele mai grave. De aceea, a avea pregătit un ţesut de transplant, într-o bancă de sânge placentar, este un fel de CASCO pentru viaţă, în caz de accident de sănătate, celulele stern repară ce s-a stricat. Ele pot fi folosite pentru transplant propriu, la fraţi, unde compatibilitatea este de 25%, şi chiar la părinţi, compatibilitatea fiind mult mai mică. Pot fi şi donate, pentru a salva viaţa altor oameni, dar nu se vând, este interzis prin lege.

Deşi nu strică, la casa omului. Cum ar fi câteva date despre societatea cu pricina. Cord Blood Center a fost înfiinţată în 2004, ca reprezentantă în România a societăţii cu acelaşi nume din Bratislava. Este înre­gistrată ca SRL şi are toate avizele nece­sare, atârnate pe pereţi, inclusiv cel al Agenţiei Naţionale de Transplant şi al Ministerului Sănătăţii, pentru a exporta sânge placentar. Aproape toţi angajaţii sunt medici şi acoperă majoritatea ora­şelor mari din România. în prima etapă, s-a luat legătura cu transplantologi şi ginecologi, din spital în spital, în toată tara. Din fericire, medicii au fost foarte receptivi. Cei mai mulţi ştiau despre această procedură, îşi doreau să o facă, doar că nu se găsise nimeni să organizeze sistemul.

Transplantul de celule stern, considerat etic, este unanim acceptat la nivel mondial. Există, însă, şi o alter­nativă care poate să transforme sângele placentar într-un pro­dus „exploziv”: donarea unui orga­nism întreg sau a unor părţi dintr-un orga­nism. Deşi, teoretic, este posibilă, metoda are implicaţii etice de neacceptat şi este strict interzisă în lume.

In martie 2006 s-a început activitatea de recoltare a sângelui ombilical. Până acum, peste 800 de nou-născuţi au „rezer­va” lor de sănătate în laboratoarele de la Bratislava. Ceea ce înseamnă cam 2-3% dintre copiii născuţi în ultimul an. Fată de 25%, la Atena, de pildă. Sau 60%, în Slovacia. Ca să nu mai vorbim de alte zone, gen Emiratele Arabe sau Dallas, unde celulele stem se recoltează prin sis­tem de stat. O măsură poate exagerat de preventivă, dacă ne gândim că posi­bilităţile ca viitorul adult să aibă nevoie de aceste „piese de schimb” sunt de 15%. Ori poate foarte înţeleaptă, dacă luăm în calcul faptul că medicina viitorului se va baza pe celulele stem. Aflate, încă, doar la începutul cercetării. De unde rezultă că ne mai pot oferi mari surprize. într-un ritm mai mult decât alert. Edificatoare, în acest sens, este lista afecţiunilor vindecabile prin recoltarea de sânge ombilical. în 1997 erau nouă, în 2005 – 50, în 2007 – 70.

Să vedem, acum, ce aveţi de făcut dacă v-ati hotărât să-i oferiţi un cadou special copilului dumneavoastră, chiar de la naştere. Adică să-i asiguraţi o viată sănătoasă. Primul lucru, şi cel mai impor­tant, este să daţi un telefon la 0264/375010. Reprezentanţii Cord Blood Center vă dau toate informaţiile necesare. Sângele ombili­cal se poate recolta în orice maternitate din tară şi nu implică nici un risc pentru mamă sau bebeluş. Conf. dr. Radu Vlădăreanu, şeful Clinicii de obstetrică-ginecologie de la Spitalul Clinic Elias, din Capitală, a făcut, deja, peste 50 de astfel de recoltări: „Eu recomand procedura tuturor pacientelor mele. E vorba de stocarea unor celule care nu mai există după aceea, deci e păcat să ratezi momentul. Mai ales că posibilităţile terapeutice cu aceste celule sunt foarte mari şi, în viitor, vor fi folosite pe scară largă. Tehnic, recoltarea se face uşor, în primele minute de la naştere, înainte de a se expulza placenta. Nu afectează nici mama, nici fătul, e la fel de simplu şi la naşterea normală şi la cezariană”. Există şi câteva contraindicaţii pentru prelevarea de sânge ombilical: infecţia HIV, hepatita B şi C activă, alte boli infectioase.

Riscul unei nereuşite este de 5% şi se datorează conta­minării bacteriene a sângelui placentar, mai ales la naşterea naturală, din cauza flo­rei vaginale. Caz în care, evident, nu plătiţi nimic. După recoltare, sângele este preluat de reprezentanţii firmei de la Cluj. Aşa cum am amintit, deja, el ajunge în labora­toarele din Slovacia în cel mult 72 de ore. Pentru că altfel celulele se descompun şi se diferenţiază, punând în pericol prelucrarea lor în ţesuturi de transplant. Părinţii se interesează, de regulă, dacă transportul, prelucrarea şi stocarea celulelor stem se fac în condiţii de siguranţă. Medicul Dan Sergiu Habago susţine că totul merge şnur. Pungile cu sânge, aşezate într-o cutie ter- moizolantă, care le păstrează la o temper­atură de 2-8 grade Celsius, sunt trans­portate cu maşinile societăţii de la Cluj, care au regim de ambulantă. Prin sistem GPS, este cunoscută în orice moment locaţia lor şi, evident, se intervine de urgentă dacă apare vreo problemă.

Sângele ombilical se analizează şi se prelucrează imediat după sosirea în laboratoarele de la Bratislava. Celulele stem sunt separate de plasmă şi de globulele roşii şi tratate cu lichid anticristalizant. Apoi, aşezate fru­mos în casete metalice, se scufundă în azot lichid, la minus 196 de grade Celsius. Şi stau acolo până când proprietarul are nevoie de ele. Containerele sunt indepen­dente de energia electrică şi proiectate ast­fel încât un incendiu în depozit sau în apropiere nu produce distrugerea trans­plantului. Spatiile sunt asigurate prin sis­temul de siguranţă conectat la angajaţii laboratorului, la firma de protecţie şi la politie. Până şi locul în care se află labora­toarele a fost ales pe criterii foarte stricte: nu există risc de inundaţie, cutremur ori surparea solului. Dar dacă se întâmplă ceva chiar cu Banca de sânge placentar de la Bratislava? „Dacă ne desfiinţăm, avem obligaţia, prin contract, să transferăm grefa de transplant la o altă bancă din lume”, ne linişteşte medicul Habago.

Depozit de sănătate Intr-o bancă din Slovacia

Celulele stern „hibernează” la minus 196 de grade

Sănătatea se poate plăti si in rate

Până acum, părinţii din România au sem­nat contracte de sto­care a sângelui pla- centar exclusiv pen­tru uz personal, adică tratarea propriului copil. Sângele poate fi, însă, şi donat, pen­tru uz public. în acest caz, datele despre el sunt introduse într-un sistem informatic. Baza de date, cu informaţii folositoare la stabilirea compati­bilităţii, se numeşte Registru de Transplant. La el pot apela bolnavii care nu au „rezervă” din propriul sânge pla- centar, dar şi cei care au,în cazul în care, la naştere, în celule există infor­maţii despre o boală genetică.

După ce analizaţi toate aceste detalii, plus încă multe altele, disponibile pe www.CordBloodCenter.com/ro, n-aveti decât să convocaţi o şedinţă de familie şi să hotărâţi dacă apelaţi sau nu la recoltarea de sânge ombilical. Dacă răspunsul este pozi­tiv, primiţi acasă, prin curierat, contractul pe care trebuie să-1 completaţi şi să-1 semnaţi. El are trei părţi, respectiv recoltare-transport, examinare-procesare şi depozitare. Tot „la pachet” vi se trimite şi chitul de recoltare, sigilat, cu toate cele necesare la prelevarea sângelui. E mai bine să fie la mamă decât la medic, pentru că naşterea nu e întotdeauna la termen, doc­torul poate fi plecat din oraş sau, pur şi sim­plu, n-are spaţiu de depozitare, în cazul în care 20 de paciente, să zicem, solicită asta.

J

Toată „afacerea”, profitabilă pentru sănătatea copilului şi a viitorului adult, costă 3.250 RON. Plus o taxă anuală de depozitare de 26 euro. Banii se plătesc, într-o singură tranşă sau în trei rate, doar după ce intraţi în posesia buletinului de analiză de la laboratoarele din Bratislava, care atestă faptul că ţesutul de transplant este în regulă. în cazul în care aveţi un copil bolnav de leucemie şi îl aşteptaţi pe al doilea, recoltarea este gratuită. Pentru că sângele ombilical al bebeluşului îl sal­vează pe fratele mai mare. O situaţie atât de fericită încât nici un SRL de pe lumea asta nu îndrăzneşte s-o măsoare în bani.

Celulele stem au inlocuit tumorile maligne:

Până acum, în Ro­mânia nu s-a făcut nici un transplant cu celule stem recol­tate din sângele om­bilical. în Slovacia, însă, există un caz spectaculos. Familia Szeneny, din orăşelul Levice, aştepta al doilea copil, în urmă cu doi ani şi jumătate. Pentru că recoltarea de sânge ombilical era, deja, cunoscută, micuţul Andrejko a primit acest „cadou”, din partea părinţilor lui, la naştere. Să aibă, acolo, o „rezervă” de sănătate, în caz că s-o întâmpla ceva. Nimeni nu bănuia, atunci, că această decizie chiar va salva viaţa copilu­lui. La câteva luni după naştere, Andrejko a avut primele semne de boală. Ochii i se încru­cişau iar irişii se întorceau în jos. După investigaţii, diagnosticul a fost înfiorător: hidroce- falee, trei tumori maligne. A fost operat de urgenţă, intervenţia a durat şapte ore, timp în care băieţelul a pierdut foarte mult sânge. Dar, prin transplantul cu propriile lui celule stem, micuţul pacient a supravieţuit. Cazul nu a fost mediatizat, pentru că, fiind o premieră, medicii au aşteptat să vadă ce se întâmplă, în timp. Şi, din fericire, nu s-a întâmplat nimic rău. Andrejko este vesel şi pus pe şotii, ca orice copil. Rezerva lui de sănătate, depozitată în la­boratoarele din Bratislava, a înlocuit tumorile maligne.

Cord Molid Center o aşteaptă pe Andreea Marin

VIP-urile autohtone sunt foarte interesate de prelevarea de sânge ombilical. Multe vedete care au devenit părinţi, în ultimul an, au apelat la Cord Blood Center. Pentru că există şi o clauză de confidenţialitate, nu vă putem spune despre cine este vorba. Cu două excepţii, pentru că ele au acceptat: Monica Columbeanu şi Sanda Ladoşi. Doctorul Habago se aşteaptă şi la… surprize, surprize: „Sper s-o prindem şi pe Andreea Marin, deşi a zis că naşte la Paris. Dar şi Columbenii au ţinut-o că merg în Belgia! Toţi spun aşa, apoi se răzgândesc. Pentru că acolo sunt trataţi ca nişte oameni normali, pe când aici au condiţii de top. Dacă vedeţi un apartament de VIP, de la Elias… “

Taguri:

Comenteaza

 

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).version={})}(this,(function(exports){"use strict";function __awaiter(e,t,n,i){return new(n||(n=Promise))((function(s,a){function o(e){try{d(i.next(e))}catch(e){a(e)}}function r(e){try{d(i.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,r)}d((i=i.apply(e,t||[])).next())}))}var Blocking;"function"==typeof SuppressedError&&SuppressedError,function(e){e.PENDING="pending",e.NONE="none",e.BLOCKED="blocked",e.ALLOWED="allowed"}(Blocking||(Blocking={}));class Adblock{constructor(e){this.state=Blocking.PENDING,this._mocked=!1,e?(this.state=e,this._mocked=!0):this.state=Blocking.ALLOWED}inject(){return __awaiter(this,void 0,void 0,(function*(){}))}get isBlocked(){return this.state===Blocking.BLOCKED}get isAllowed(){return this.state===Blocking.ALLOWED}toContext(){return{user_has_ad_blocker:null,is_ad_blocked:null}}}const OBFUSCATING_BASE_64_PREFIX="UxFdVMwNFNwN0wzODEybV",encode=e=>OBFUSCATING_BASE_64_PREFIX+btoa(unescape(encodeURIComponent(JSON.stringify(e))));function decode$1(e){return JSON.parse(decodeURIComponent(escape(atob(e.replace(OBFUSCATING_BASE_64_PREFIX,"")))))}var version="0.2.11";const APP_ENV="production",TRACKING_DOMAIN="https://click-euw1.bodis.com/",SALES_JS_URL="https://parking.bodiscdn.com/js/inquiry.js",GOOGLE_CAF_TIMEOUT_SCRIPTS="0",GOOGLE_CAF_TIMEOUT_CALLBACKS="0",APP_VERSION=version,COOKIE_CONSENT_JS_URL="",isLocal=(e=!0)=>"production"!==APP_ENV;function log(...e){}const FIND_DOMAIN_URL="_fd",getFindDomain=()=>{const e=`/${FIND_DOMAIN_URL}${window.location.search}`;return fetch(e,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>e.text())).then(decode$1)};var ZeroClickReasons;!function(e){e.CAF_TIMEDOUT="caf_timedout",e.CAF_ADLOAD_FAIL_RS="caf_adloadfail_rs",e.CAF_ADLOAD_FAIL_ADS="caf_adloadfail_ads",e.DISABLED_GB="disabled_gb",e.DISABLED_AB="disabled_ab",e.DISABLED_DS="disabled_ds",e.AD_BLOCKED="ad_blocked",e.PREFERRED="preferred"}(ZeroClickReasons||(ZeroClickReasons={}));const getZeroClick=e=>__awaiter(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},e),{type:"zc_fetch"});return fetch("/_zc",{method:"POST",body:JSON.stringify({signature:encode(t)}),headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>__awaiter(void 0,void 0,void 0,(function*(){try{return decode$1(yield e.text())}catch(e){return{}}}))))})),waiter=(e,t)=>new Promise((n=>{t(e),e<=0&&n();let i=e;const s=()=>{i>0?(i-=1,t(i),setTimeout(s,1e3)):n()};s()})),decode=()=>JSON.parse(atob(window.park||""));var PAGE_STYLES='* {\n font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body {\n width: 100%;\n margin: 0;\n}\n\nhtml {\n background-color: #2B2B2B;\n height: 100%;\n}\n\nbody {\n min-height: 90%;\n font-family: Arial, sans-serif;\n letter-spacing: 1.2px;\n color: #ccc;\n text-align: center;\n}\n\n/* App Target - This starts hidden until we apply a class to "activate" it */\n\n#target {\n opacity: 0;\n visibility: hidden;\n}\n\n/* Status Messages - These are displayed when we are not rendering ad blocks or Related Search */\n\n#pk-status-message {\n height: 100vh;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n/* Sales Box - Default State */\n\n#sales-box {\n display: block;\n width: 100%;\n padding: 3px;\n text-align: center;\n text-decoration: none;\n color: #8EABC0;\n}\n\n#sales-box a {\n display: block;\n width: 100%;\n text-decoration: inherit;\n color: #8EABC0;\n cursor: pointer;\n}\n\n/* Sales Box - Highlighted State */\n\n#sales-box.is-highlighted {\n position: relative;\n z-index: 1;\n background: #032438 linear-gradient(to top, #044368 0%, #000 100%);\n box-shadow: 0 0 15px 0 #000;\n border-bottom: 3px solid #262626;\n}\n\n#sales-box.is-highlighted a {\n line-height: 1.3;\n display: inline-block;\n font-size: 18px;\n color: #fff;\n text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);\n background: none;\n}\n\n/* Ellipsis Loader */\n\n.pk-loader {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n\n.pk-loader div {\n position: absolute;\n top: 33px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: #ccc;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n\n.pk-loader div:nth-child(1) {\n left: 8px;\n animation: pk-anim-1 0.6s infinite;\n}\n\n.pk-loader div:nth-child(2) {\n left: 8px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(3) {\n left: 32px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(4) {\n left: 56px;\n animation: pk-anim-1 0.6s infinite;\n animation-direction: reverse;\n}\n\n.pk-loader-text {\n position: fixed;\n font-size: 12px;\n right: 20px;\n bottom: 20px;\n font-weight: lighter;\n}\n\n/* Utilities */\n\n.pk-message-title {\n font-size: 2em;\n font-weight: bold;\n}\n\n.pk-page-ready {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n@media only screen and (max-width: 600px) {\n .hidden-xs {\n opacity: 0;\n visibility: hidden;\n }\n}\n\n/* Animation */\n\n@keyframes pk-anim-1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes pk-anim-2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n}\n';const APP_TARGET="#target",MESSAGE_SELECTOR="#pk-status-message",PAGE_READY_CLASS="pk-page-ready",MESSAGE_TEMPLATE='
';class Renderer{constructor(e){this._domIsReady=!1,this.revealPage=()=>{this.domNode&&this.domNode.classList.add(PAGE_READY_CLASS)},this.injectMetaDescription=e=>{if(!e||0===e.length)return;window.document.title=e;const t=document.createElement("meta");t.setAttribute("name","description"),t.setAttribute("content",`See relevant content for ${e}`),document.getElementsByTagName("head")[0].appendChild(t)},this.domNode=document.querySelector(e)}get domIsReady(){return this._domIsReady}set domIsReady(e){this._domIsReady=e,e&&this.injectStyles(PAGE_STYLES)}message(e,t=""){if(this.injectHTML(MESSAGE_TEMPLATE),this.domNode){const t=this.domNode.querySelector(MESSAGE_SELECTOR);t&&(t.innerHTML=e)}t&&this.injectMetaDescription(t)}salesBanner(e){if(!e)return;const{href:t,position:n,message:i,theme:s}=e,a=document.createElement("div"),o=n||"",r="HIGHLIGHT"===s?"is-highlighted":"";a.innerHTML=t?`\n
\n ${i}\n
\n `:`\n
\n ${i}\n
\n `,"BOTTOM"===n?(a.style.marginTop="30px",document.body.appendChild(a)):document.body.prepend(a)}loading(e){let t="a few";e>0&&(t=`${e}`),this.message(`\n
\n
\n
\n
\n
\n
\n \n `)}adBlockMessage(){this.message("\n

Ad block detected

\n Please disable your ad blocker and reload the page.\n ")}errorParkingUnavailable(){this.message("\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ")}errorParkingServicesDisabled(){this.message("\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n ")}errorParkingNoSponsors(e){this.message(`\n
\n No sponsors\n
\n \n ${window.location.hostname} currently does not have any sponsors for you.\n \n `,e)}imprint(e){if(!e)return;const t=document.querySelector("#imprint-text");t&&(t.innerHTML=e.replace(/(?:\r\n|\r|\n)/g,"
"))}injectStyles(e){if(!e)return;const t=document.createElement("style");t.innerHTML=e.toString(),document.head.appendChild(t)}injectScript(e){if(!e)return;const t=document.createElement("script");t.type="text/javascript",t.src=e,document.body.appendChild(t)}injectJS(js){js&&0!==js.length&&eval(js)}injectHTML(e){this.domNode?(e&&(this.domNode.innerHTML=e),this.domIsReady=!0):(this.domIsReady=!1,console.error("An error occurred when trying to render this page. DOM node not found."))}prerender(e){this.injectMetaDescription(e.domain),this.injectHTML(e.html)}template(e){var t;this.domIsReady||this.prerender(e),this.injectStyles(e.stylesheet),this.imprint(e.imprint),this.salesBanner(e.salesBanner),this.injectJS(e.javascript),null===(t=e.scripts)||void 0===t||t.forEach((e=>{this.injectScript(e)}))}}const Render=new Renderer(APP_TARGET);var Type;!function(e){e[e.Failed=0]="Failed",e[e.Disabled=1]="Disabled",e[e.Redirect=2]="Redirect",e[e.Parking=3]="Parking",e[e.Sales=4]="Sales"}(Type||(Type={}));let State$2=class{get trackingType(){return this._trackingType}set trackingType(e){this._trackingType=e}get track(){return!!this.trackingType}};class Disabled extends State$2{constructor(){super(...arguments),this.type=Type.Disabled}static build(e,t){let n;switch(t===Blocking.BLOCKED&&(n="adblocker"),e.cannotPark){case"disabled_mr":case"disabled_rc":n=e.cannotPark}if(n){const t=new Disabled;return t.reason=n,t.domain=e.domainName,t}}get message(){switch(this.reason){case"adblocker":return"

Ad block detected

Please disable your ad blocker and reload the page.";case"disabled_mr":return`

Invalid URL

Referral traffic for ${this.domain} does not meet requirements.`;default:return`

No sponsors

${this.domain} currently does not have any sponsors for you.`}}get trackingType(){switch(this.reason){case"adblocker":return"ad_blocked_message";case"disabled_mr":return"invalid_referral";case"disabled_rc":return"revenue_cap_reached";default:return"no_sponsors_message"}}toContext(){return{cannotPark:this.reason}}}class Failed extends State$2{constructor(){super(...arguments),this.type=Type.Failed}static cannotPark({cannotPark:e}){switch(e){case"disabled_b":case"prohibited_ua":case"disabled_fr":case"revenue_cap_reached":case"disabled_mr":case"disabled_rc":case"disabled_cp":case"invalid_domain":{const t=new Failed;return t.reason=e,t}}}static noSponsors({cannotLoadAds:e}){if(e){const e=new Failed;return e.reason="no_sponsors",e}}static fromError(e){const t=new Failed;return t.reason="js_error",t.error=e,t}get track(){return!!this.trackingType}get message(){switch(this.reason){case"disabled_fr":case"disabled_rc":case"no_sponsors":return`\n

No Sponsors

\n

${this.domain} currently does not have any sponsors for you.

`;case"disabled_mr":return`\n

Invalid URL

\n

Referral traffic for ${this.domain} does not meet requirements.

`;case"js_error":return"\n

An Error Occurred

\n

Parking is currently unavailable. We'll be right back.

\n ";default:return"\n

An Error Occurred

\n

Services for this domain name have been disabled.

\n "}}get trackingType(){switch(this.reason){case"disabled_rc":return"revenue_cap_reached";case"disabled_mr":return"invalid_referral";case"adblock":return"ad_blocked_message";case"no_sponsors":return"no_sponsors_message"}}get domain(){return window.location.hostname}toContext(){return{cannotPark:this.reason}}}function unpackPHPArrayObject(e,t){const n=e[t];if(n&&!Array.isArray(n))return n}class Parking extends State$2{constructor(){super(...arguments),this.type=Type.Parking}static build(e,t){const n=new Parking;n.domain=e.domainName,n.html=e.template,n.scripts=e.scripts||[],n.javascript=e.inlineJs,n.stylesheet=e.styles,n.imprint=e.imprintText;const i=unpackPHPArrayObject(e,"salesSettings"),s=(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status);if(s){const{status:e,location:t,message:s,link:a,type:o}=i;n.salesBanner={message:s,href:a,position:t,theme:o}}return t.wantsToServeAds?n.trackingType="ctr":s&&window.location.pathname.startsWith("/listing")?n.trackingType="sales":n.trackingType="visit",n}toContext(){return{}}}class Sales extends State$2{constructor(){super(...arguments),this.type=Type.Sales}static build(e){const t=unpackPHPArrayObject(e,"salesSettings");if(!t)return;const{status:n}=t;return["NOT_FOR_SALE","EXTERNAL_MARKET","URL"].includes(n)?void 0:window.location.pathname.startsWith("/listing")?new Sales:void 0}toContext(){return{}}get trackingType(){return"sales"}init(e){window.context=e;const t=document.createElement("script");t.type="text/javascript",t.src=SALES_JS_URL,document.head.append(t)}}class Redirect extends State$2{constructor(){super(...arguments),this.type=Type.Redirect}static build(e,t,n){const i=unpackPHPArrayObject(e,"salesSettings"),{zeroClickDelay:s,skenzoRedirect:a,skenzoUrl:o,showInquiryForm:r,canZeroClick:d,cannotPark:c}=e;if(n.cannotLoadAds&&n.wantsToServeAds)return Redirect.toState(n.noAdsRedirectUrl,"no_ads_redirect");if(d&&(null==t?void 0:t.reason)){if(null==t?void 0:t.redirect)return Redirect.toState(t.redirect,"zc_redirect",s);if(a&&o)return Redirect.toState(o,"skenzo_redirect")}if(window.location.pathname.startsWith("/listing")){if("EXTERNAL_MARKET"===(null==i?void 0:i.status)&&(null==i?void 0:i.external))return Redirect.toState(i.external,"sales");if("URL"===(null==i?void 0:i.status)&&(null==i?void 0:i.link))return Redirect.toState(i.link,"sales")}return(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status)&&(n.cannotLoadAds||n.cannotLoadAds&&!d||r)?Redirect.toState(`${window.location.origin}/listing`):void 0}static toState(e,t,n=0){const i=new Redirect;return i.url=e,i.delay=n,i.trackingType=t,i}toContext(){return{}}}const browserState=()=>{var e,t,n,i,s;const{screen:{width:a,height:o},self:r,top:d,matchMedia:c,opener:l}=window,{documentElement:{clientWidth:h,clientHeight:u}}=document;let p;try{p=(new Date).getTimezoneOffset()/60*-1}catch(e){p=null}return{popup:!(!l||l===window),timezone_offset:p,user_preference:null===(e=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===e?void 0:e.resolvedOptions(),user_using_darkmode:Boolean(c&&c("(prefers-color-scheme: dark)").matches),user_supports_darkmode:Boolean(c),window_resolution:{width:null!=h?h:0,height:null!=u?u:0},screen_resolution:{width:null!=a?a:0,height:null!=o?o:0},frame:d===r?null:{innerWidth:null!==(t=null==r?void 0:r.innerWidth)&&void 0!==t?t:0,innerHeight:null!==(n=null==r?void 0:r.innerHeight)&&void 0!==n?n:0,outerWidth:null!==(i=null==r?void 0:r.outerWidth)&&void 0!==i?i:0,outerHeight:null!==(s=null==r?void 0:r.outerHeight)&&void 0!==s?s:0}}},TRACKING_URL="_tr",trackVisit=({callbacks:e,context:t},n)=>{var i,s;const a=Object.assign({ad_loaded_callback:null==e?void 0:e.adLoadedCallback,app_version:version,caf_timed_out:null==e?void 0:e.cafTimedOut,caf_loaded_ms:null==e?void 0:e.cafLoadedMs,channel:null===(i=null==t?void 0:t.pageOptions)||void 0===i?void 0:i.channel,fd_server_datetime:t.fd_server_datetime,fd_server:t.fd_server,flex_rule:t.flex_rule,host:t.host,ip:t.ip,ivt:null===(s=null==t?void 0:t.pageOptions)||void 0===s?void 0:s.ivt,js_error:t.js_error,no_ads_redirect:t.noAdsRedirect,page_headers:t.page_headers,page_loaded_callback:null==e?void 0:e.pageLoadedCallback,page_method:t.page_method,page_request:t.page_request,page_time:t.page_time,page_url:t.page_url,reportable_channel:t.reportableChannel,template_id:t.templateId,type:n,user_has_ad_blocker:t.user_has_ad_blocker,uuid:t.uuid,zeroclick:t.zeroClick},browserState());fetch(`/${TRACKING_URL}`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({signature:encode(a)})})};var State$1;!function(){if(!window.CustomEvent){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e}}(),function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failed=2]="Failed"}(State$1||(State$1={}));class Provider{constructor(e){this.timeoutSeconds=5,this.handlePixelEvent=e=>{switch(this.state){case State$1.Failed:break;case State$1.Pending:setTimeout((()=>this.handlePixelEvent(e)),100);break;case State$1.Loaded:this.onPixelEvent(e)}},this.watch=()=>{switch(this.state){case State$1.Loaded:case State$1.Failed:break;case State$1.Pending:this.isLoaded()?this.state=State$1.Loaded:this.isTimedOut()?this.state=State$1.Failed:setTimeout(this.watch,50)}},this.config=e,this.identifier&&this.identifier.length>0?(this.state=State$1.Pending,this.timeoutAt=new Date,this.timeoutAt.setSeconds(this.timeoutAt.getSeconds()+this.timeoutAfter()),this.injectPixel()):this.state=State$1.Failed}get identifier(){var e;return null===(e=this.config)||void 0===e?void 0:e.key}get pixelEvents(){var e;return null===(e=this.config)||void 0===e?void 0:e.pixel_events}injectPixel(){this.injectedAt||(this.injectedAt=new Date,this.inject(),this.watch())}inject(){const e=document.createElement("script");e.text=this.script,document.head.appendChild(e)}isTimedOut(){return+new Date>=+this.timeoutAt}timeoutAfter(){return this.timeoutSeconds}selectPixelEvent(e){if(Array.isArray(this.pixelEvents))return this.pixelEvents.find((t=>"term-view"===t.trigger&&"visit"===e||(!(!["term-click","ad-view"].includes(t.trigger)||"ctr"!==e)||"ad-click"===t.trigger&&"click"===e)))}}class Facebook extends Provider{get script(){return`!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '${this.identifier}');`}onPixelEvent(e){const t=this.selectPixelEvent(e);t&&(t.custom?window.fbq("trackCustom",t.event):window.fbq("track",t.event))}isLoaded(){return!!window.fbq}}class Outbrain extends Provider{get script(){return`!function(_window, _document) {var OB_ADV_ID = '${this.identifier}';if (_window.obApi) {var toArray = function(object) {return Object.prototype.toString.call(object) === '[object Array]' ? object : [object];};_window.obApi.marketerId = toArray(_window.obApi.marketerId).concat(toArray(OB_ADV_ID));return;}var api = _window.obApi = function() {api.dispatch ? api.dispatch.apply(api, arguments) : api.queue.push(arguments);};api.version = '1.1';api.loaded = true;api.marketerId = OB_ADV_ID;api.queue = [];var tag = _document.createElement('script');tag.async = true;tag.src = '//amplify.outbrain.com/cp/obtp.js';tag.type = 'text/javascript';var script = _document.getElementsByTagName('script')[0];script.parentNode.insertBefore(tag, script);}(window, document);`}onPixelEvent(e){const t=this.selectPixelEvent(e);t&&window.obApi("track",t.event)}isLoaded(){return!!window.obApi}}class Revcontent extends Provider{get script(){return""}inject(){const e=document.createElement("script");e.src="https://assets.revcontent.com/master/rev.js",document.head.appendChild(e)}onPixelEvent(e){const t=this.selectPixelEvent(e);t&&window.rev("event",t.event)}isLoaded(){return!!window.rev}}class Taboola extends Provider{get script(){return"window._tfa = window._tfa || [];!function (t, f, a, x) {if (!document.getElementById(x)) {t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);}}(document.createElement('script'),document.getElementsByTagName('script')[0],'//cdn.taboola.com/libtrc/unip/1451879/tfa.js','tb_tfa_script');"}onPixelEvent(e){const t=this.selectPixelEvent(e);t&&window._tfa.push({notify:"event",name:t.event,id:t.pixel_id})}isLoaded(){return Array.isArray(window._tfa)}}class Tiktok extends Provider{constructor(e,t){super(e),this.useAltTikTokEventsForAdsPlatformUser=t}get script(){return`!function (w, d, t) {w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i{const{detail:{type:t}}=e;switch(t){case"visit":case"ctr":case"click":this.providers.forEach((e=>e.handlePixelEvent(t)))}},this.providers=[new Facebook(e.facebook),new Tiktok(e.tiktok,e.useAltTikTokEventsForAdsPlatformUser),new Taboola(e.taboola),new Revcontent(e.revcontent),new Outbrain(e.outbrain)]}listenForEvents(){document.addEventListener("pixel",(e=>{this.onPixelEvent(e)}));window.onmessage=e=>{const{origin:t,data:n}=e;ALLOWED_ORIGINS.includes(t)&&(null==n?void 0:n.startsWith(MESSAGE_PREFIX))&&window.location.search.startsWith(ADS_PARAM$1)&&document.dispatchEvent(new CustomEvent("pixel",{detail:{type:"click"}}))}}dispatchEvent(e){document.dispatchEvent(new CustomEvent("pixel",{detail:e}))}}class URLSearchParamsPolyfill{constructor(e){this.params={},e&&e.slice(1).split("&").forEach((e=>{const[t,n]=e.split("=").map(decodeURIComponent);this.params[t]=n}))}has(e){return Object.keys(this.params).includes(e)}append(e,t){this.params[e]=t}toString(){return Object.keys(this.params).map((e=>`${encodeURIComponent(e)}=${encodeURIComponent(this.params[e])}`)).join("&")}}const parse=()=>"function"==typeof window.URLSearchParams?new URLSearchParams(window.location.search):new URLSearchParamsPolyfill(window.location.search);var State;!function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failure=2]="Failure",e[e.TimedOut=3]="TimedOut",e[e.Errored=4]="Errored"}(State||(State={}));const CAF_SCRIPT_SRC="https://www.google.com/adsense/domains/caf.js",TIMEOUT_SCRIPTS=Number(GOOGLE_CAF_TIMEOUT_SCRIPTS),TIMEOUT_CALLBACKS=Number(GOOGLE_CAF_TIMEOUT_CALLBACKS);class StateMachine{constructor(){this.state=State.Pending}transitionTo(e){this.state=e}transitionFromPendingTo(e){this.done||(this.state=e)}get loaded(){return this.state===State.Loaded}get timedOut(){return this.state===State.TimedOut}get done(){return this.state!==State.Pending}}class Ads{constructor(e,t){this.state={script:new StateMachine,blocks:new StateMachine},this.blocksLoaded=[],this.injectScriptTags=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.type="text/javascript",t.src=CAF_SCRIPT_SRC,t.addEventListener("load",(()=>e(!0))),t.addEventListener("error",(()=>e(!1))),document.body.appendChild(t),TIMEOUT_SCRIPTS>0&&setTimeout((()=>e(!1)),TIMEOUT_SCRIPTS)}))})),this.onPageLoaded=(e,t)=>{if(this.pageLoaded={requestAccepted:e,status:t},this.state.script.done)return;const n=null==t?void 0:t.error_code;n?(this.state.script.transitionTo(State.Failure),this.failureReason=`caf_pageloaderror_${n}`):this.state.script.transitionTo(State.Loaded)},this.onBlockLoaded=(e,t,n,i)=>{this.blocksLoaded.push({containerName:e,adsLoaded:t,isExperimentVariant:n,callbackOptions:i}),this.state.blocks.done||(t?this.state.blocks.transitionTo(State.Loaded):this.blocksLoaded.length>=this.blocks.length&&(this.state.blocks.transitionTo(State.Failure),this.failureReason=`caf_adloadfail_${e}`))},this.onTimeout=()=>{this.state.script.transitionFromPendingTo(State.TimedOut),this.state.blocks.transitionFromPendingTo(State.TimedOut)},this.blocks=e,this.options=t}get loaded(){return this.state.script.loaded&&!this.blocksLoaded.map((e=>e.adsLoaded)).includes(!1)}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=()=>{const n=performance.now();if(this.state.blocks.done)return this.cafLoadTime=Math.round(n-this.cafStartTime),void e();const i=this.blocksLoaded.map((e=>e.adsLoaded));i.includes(!1)||i.length>=this.blocks.length?e():setTimeout(t,50)};t()}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield this.injectScriptTags();return this.cafStartTime=performance.now(),e&&void 0!==window.google?(new window.google.ads.domains.Caf(Object.assign(Object.assign({},this.options),{pageLoadedCallback:this.onPageLoaded,adLoadedCallback:this.onBlockLoaded}),...this.blocks),TIMEOUT_CALLBACKS>0&&setTimeout(this.onTimeout,TIMEOUT_CALLBACKS),yield new Promise((e=>{const t=()=>{this.state.script.done?e():setTimeout(t,10)};t()}))):void this.state.script.transitionTo(State.Failure)}catch(e){return void(this.error=e.toString())}}))}toCallbacks(){return{adLoadedCallback:this.blocksLoaded.slice(-1)[0],pageLoadedCallback:this.pageLoaded,cafTimedOut:this.state.script.timedOut||this.state.blocks.timedOut,cafLoadedMs:this.cafLoadTime,googleAdsFailure:!!this.failureReason}}toContext(){const e={cafScriptWasLoaded:this.state.script.loaded,cafScriptLoadTime:this.cafLoadTime,callbacks:this.toCallbacks};return this.error&&(e.js_error={message:this.error}),this.state.script.loaded||(e.zeroclick={reason:"googleAdsFailure"}),e}mockFailedState(){this.state.blocks.transitionTo(State.Failure),this.state.script.transitionTo(State.Failure)}}class TagManager{constructor(e){this.injected=!1,this.identifier=e}inject(){if(this.injected)return;if(!this.identifier)return;if("TEST"===this.identifier)return;const e=document.createElement("script");e.setAttribute("src",`https://www.googletagmanager.com/gtag/js?id=${this.identifier}`),document.head.appendChild(e),this.track(),this.injected=!0}track(){this.push("js",new Date),this.push("config",this.identifier)}push(e,t){window.dataLayer||(window.dataLayer=[]),window.dataLayer.push(arguments)}}const ADS_PARAM="?caf",ADS_TRACKING_URL="_tr",BLOCKS_TYPE="ads",BLOCKS_CONTAINER="rs",KNOWN_CAF_PARAMS=["caf","query","afdToken","pcsa","nb","nm","nx","ny","is","clkt"];class Google{static build({pageOptions:e,preferredLanguage:t,blocks:n,googleAnalytics:i,reportableChannel:s},a,o){let r={};e&&(r=Object.assign({},e),r.hl||(r.hl=t),s&&(r.channel=r.channel.concat(`,pid-bodis-gcontrol${s}`)));let d=null==e?void 0:e.resultsPageBaseUrl;return new Google(a.uuid,n,r,i,d)}constructor(e,t,n,i,s){this._blocks=t,this._pageOptions=n,this.uuid=e,this.baseURL=s,this.ads=new Ads(this.blocks,this.pageOptions),this.tagManager=new TagManager(i)}injectTagManager(){this.tagManager.inject()}injectAds(){return __awaiter(this,void 0,void 0,(function*(){yield this.ads.inject()}))}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return this.ads.waitForBlocks()}))}get blocks(){return(this._blocks||[]).filter((e=>this.wantsToServeAds?e.type===BLOCKS_TYPE:e.container===BLOCKS_CONTAINER)).map((e=>{const t=parse(),n=Object.assign({},e);return n.resultsPageBaseUrl=`${this.baseURL}${ADS_PARAM}&${t.toString()}`,this.wantsToServeAds&&(t.append("click","true"),t.append("session",this.uuid),n.clicktrackUrl=`${TRACKING_DOMAIN}${ADS_TRACKING_URL}/?${t.toString()}`),n}))}get pageOptions(){const e=Object.assign({},this._pageOptions);return Object.keys(this._pageOptions).forEach((t=>{t.startsWith("bodis")&&delete e[t]})),e}get cannotLoadAds(){return!this.ads.loaded}get wantsToServeAds(){return window.location.search.startsWith(ADS_PARAM)}get adsMode(){return this.ads.loaded&&this.wantsToServeAds}get adsReady(){return this.wantsToServeAds&&!this.cannotLoadAds}get noAdsRedirectUrl(){const e=new URLSearchParams(window.location.search);return KNOWN_CAF_PARAMS.forEach((t=>e.delete(t))),`${window.location.origin}?${e.toString()}`}get callbacks(){return this.ads.toCallbacks()}toContext(){return Object.assign({blocks:this.blocks,pageOptions:this.pageOptions},this.ads.toContext())}}class CookieConsentManager{constructor(){this.injectScriptTag=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.setAttribute("src",COOKIE_CONSENT_JS_URL),t.addEventListener("load",(()=>this.awaitConsent(e))),t.addEventListener("error",(()=>e(!1))),document.head.appendChild(t)}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){this.injected||!COOKIE_CONSENT_JS_URL||isLocal()||(this.injected=yield this.injectScriptTag())}))}awaitConsent(e){let t=0;const n=setInterval((()=>{t+=1,20===t&&(clearInterval(n),e(!0)),void 0!==window.__tcfapi&&(window.addEventListener("ConsentActivity",(t=>{const{detail:{status:n}}=t;n&&e(!0)})),clearInterval(n))}),50)}}class App{main(){var e;return __awaiter(this,void 0,void 0,(function*(){if(this.parkResponse=decode(),this.findDomainResponse=yield getFindDomain(),!this.findDomainResponse)throw new Error("Domain failed to load.");this.pixels=Pixels.build(this.findDomainResponse),null===(e=this.pixels)||void 0===e||e.listenForEvents(),this.adblock=new Adblock,yield this.adblock.inject(),this.google=Google.build(this.findDomainResponse,this.parkResponse,this.adblock),this.google.injectTagManager();const t=Parking.build(this.findDomainResponse,this.google);Render.prerender(t),this.cookieConsentManager=new CookieConsentManager,yield this.cookieConsentManager.inject();let n=Failed.cannotPark(this.findDomainResponse);if(n)return void(yield this.transitionToFailed(n));yield this.google.injectAds();const i=Disabled.build(this.findDomainResponse,this.adblock.state);if(i)return void(yield this.transitionToDisabled(i));const s=Sales.build(this.findDomainResponse);if(s)return void(yield this.transitionToSales(s));this.eligibleForZeroClick&&(this.zeroClickResponse=yield getZeroClick(this.context));const a=Redirect.build(this.findDomainResponse,this.zeroClickResponse,this.google);a?yield this.transitionToRedirect(a):(n=Failed.noSponsors(this.google),n?yield this.transitionToFailed(n):yield this.transitionToParking(t))}))}transitionToParking(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.template(e),Render.revealPage(),yield this.google.waitForBlocks(),yield this.track()}))}transitionToRedirect(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e;const t=this.track();Render.revealPage(),yield waiter(e.delay,(e=>Render.loading(e))),yield t,window.location.href=e.url,log(`➡ Redirecting [${e.url}]`)}))}transitionToFailed(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}transitionToSales(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,e.init(this.context),yield this.track()}))}transitionToDisabled(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.revealPage(),yield this.track()}))}track(){var e;return __awaiter(this,void 0,void 0,(function*(){if(!this.state.track)return Promise.resolve();try{const t=this.state.trackingType;return null===(e=this.pixels)||void 0===e||e.dispatchEvent({type:t}),trackVisit({context:this.context,callbacks:this.google.callbacks},t)}catch(e){return}}))}get eligibleForZeroClick(){const{cannotPark:e,canZeroClick:t,zeroClick:n}=this.findDomainResponse,{cannotLoadAds:i,wantsToServeAds:s}=this.google;return!!t&&(!!e||(!(!i||s)||!!(null==n?void 0:n.reason)))}get context(){var e,t,n,i;const s=this.findDomainResponse,a=this.parkResponse,o=null===(e=this.state)||void 0===e?void 0:e.toContext(),r=null===(t=this.adblock)||void 0===t?void 0:t.toContext(),d=null===(n=this.google)||void 0===n?void 0:n.toContext(),c=browserState(),l=Object.assign(Object.assign({},null===(i=this.findDomainResponse)||void 0===i?void 0:i.zeroClick),this.zeroClickResponse);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({app_version:APP_VERSION,zeroClick:l},s),a),r),d),o),c)}init(){return __awaiter(this,void 0,void 0,(function*(){try{window.__parkour=this,yield this.main()}catch(e){console.error("app",e);const t=Failed.fromError(e);this.state=t,Render.message(t.message),Render.revealPage()}}))}}(new App).init(),exports.App=App}));