\n\n\n',Xt=e=>{const t=e?"gray":"white";return``};var ei=o(3128),ti=o.n(ei),ii=o(8075),ri=o.n(ii),ni=o(8462),si=o.n(ni),oi=o(653),ai=o.n(oi),ci=o(7950),li=o.n(ci);const di=e=>"boolean"==typeof e,ui=e=>si()(e),hi=e=>"[object String]"===Object.prototype.toString.call(e),gi=e=>{var t;return li()(t=["top","bottom"]).call(t,e)};const pi=()=>Math.round((new Date).getTime()/1e3);var fi=e=>{const t=new a("user_engagement"),i="utsid-send";let n,o=0,c=!1,l=!1,d={clientHints:{},isScrollable:0,totalClicks:0,sessionLength:0,ippMissclicks:0,visible:0,caught:0,lastevent:0,isFullscreen:0,isTabFocused:0,eventImps:0,retryCounts:0,isScrolled:0,isMouseMoved:0,pagePercentageSeen:0,belowTheFoldSeen:0,touchEnd:0,touchMove:0,clicksByType:{idle:0,input:0,video:0,button:0,link:0,img:0},browsingTopics:[],ufp:ie()},u=L(),g=pi();function p(){var i,r;0===d.isFullscreen&&(d.isFullscreen=document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement?1:0),d.isTabFocused=document.hidden||document.mozHidden||document.webkitHidden?0:1,d.sessionStartTime=g,d.sessionId=u,d.sessionLength=pi()-g,d.timeZoneOffset=(new Date).getTimezoneOffset(),d.zones=[],e&&(d.zones=e.getZoneIds()),d.pUrl=encodeURIComponent(I()),d.pReferrer=encodeURIComponent((()=>{const e=document.referrer;return e?O(e):""})()),d.pTitle=encodeURI(U()),d.pDescription=encodeURIComponent(F("description",t)),d.pKeywords=encodeURIComponent(F("keywords",t)),d.pHasIframes=(()=>{const e=document.getElementsByTagName("iframe");return e.length?e.length:0})(),d.pWidth=Math.ceil(window.scrollWidth||document.body.scrollWidth),d.pHeight=Math.ceil(window.scrollHeight||document.body.scrollHeight),d.vWidth=Math.ceil(window.innerWidth||document.body.clientWidth),d.vHeight=Math.ceil(window.innerHeight||document.body.clientHeight),d.inIframe=R(),sessionStorage.getItem("template")&&(d.ippTemplate=sessionStorage.getItem("template")),d.visible=(i=d.vWidth,r=d.vHeight,R()&&(i<10||r<10)?0:1),d.caught=(()=>{let e=0;if(R())try{window.top.location.href}catch(t){e=1}return e})(),d.isScrollable=((e,t)=>{if(e>t){const i=.05;return e-t>Math.ceil(t*i)?1:0}return 0})(d.pHeight,d.vHeight)}function f(){t.debug("Touch move detected."),d.touchMove++,l=!0}function m(){1!==d.isMouseMoved&&(t.debug("Mouse move tracked"),d.isMouseMoved=1,l=!0)}function v(){t.debug("Touch end detected."),d.touchEnd++,l=!0,b()}function b(){if(t.debug("checkScrolling()"),d.pHeight<=d.vHeight)return d.pagePercentageSeen=100,void(d.belowTheFoldSeen=100);var e=Math.ceil(window.scrollTop||document.body.scrollTop),i=Math.ceil((e+d.vHeight)/d.pHeight*100);i>100&&(i=100),i!=d.pagePercentageSeen&&(t.debug("Scroll event detected."),d.isScrolled=1,l=!0),i>d.pagePercentageSeen&&(t.debug("Page percentage seen updated."),d.pagePercentageSeen=i,l=!0);var r=Math.ceil(e/(d.pHeight-d.vHeight)*100);r>100&&(r=100),r>d.belowTheFoldSeen&&(t.debug("Bellow the fold percentage seen updated."),d.belowTheFoldSeen=r,l=!0)}function y(){d.ippMissclicks++,l=!0}function w(e){t.debug("Click tracked"),d.totalClicks++;var i=e.target,r=null;do{null!==r&&""!==r||(r=k(i)),i=i.parentElement}while(i&&"body"!==i.nodeName.toLowerCase()&&"document"!==i.nodeName.toLowerCase());null===r&&(r="idle"),d.clicksByType[r]++,l=!0}function k(e){var t=null,i=["a","video","button","input","textarea","img","select"];return-1!==h()(i).call(i,e.nodeName.toLowerCase())&&("a"===(t=e.nodeName.toLowerCase())?t="link":"textarea"!==t&&"select"!==t||(t="input")),t}function A(){t.debug("Impression tracked"),d.eventImps++}function T(){t.debug("Retry tracked!"),d.retryCounts++}function x(){var e="//usrpubtrk.com/ut/hb.php?cb="+Math.random();return e+="&v=1",t.debug("Target Url: "+e.toString()),e}function S(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!c){if(c=!0,p(),e&&(d.lastevent=1),t.isDebugEnabled&&t.debug("send payload:",JSON.parse(Fe()(d))),"navigator"in window&&"sendBeacon"in window.navigator&&void 0!==navigator.sendBeacon&&void 0!==Blob){d.sentTimestamp=r()();var i=new Blob([Fe()(d)],{type:"text/plain; charset=UTF-8"});navigator.sendBeacon(x(),i)}else{var n="XMLHttpRequest"in window?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP");n.open("POST",x(),!0),n.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{d.sentTimestamp=r()(),n.send(Fe()(d))}catch(e){}}d.lastevent=0,c=!1}}function C(){t.debug("visibility state is",document.visibilityState),"hidden"===document.visibilityState&&l?(clearInterval(n),S(),l=!1):"visible"===document.visibilityState&&(n=he()(N,6e4))}function P(){var e=new CustomEvent(i,{detail:{issued:"UT",data:{utsid:u}}});document.dispatchEvent(e)}function N(){if(d.sessionLength=pi()-g,d.sessionLength>=7200)return t.debug("Session limit reached! Send last payload and tear down"),S(),clearInterval(n),t.debug("detaching behavior listeners"),document.removeEventListener("click",w,!1),document.removeEventListener("mousemove",m,!1),document.removeEventListener("scroll",b,!1),document.removeEventListener("in-page-missclick",y,!1),document.removeEventListener("impression-event",A,!1),document.removeEventListener("impression-retry-event",T,!1),document.removeEventListener("touchend",v,!1),document.removeEventListener("touchmove",f,!1),document.removeEventListener("touchcancel",b,!1),document.removeEventListener("visibilitychange",C),void window.removeEventListener("beforeunload",S);0!==o&&1!==o&&5!==o&&10!==o&&o%30!=0||S(),o++}!async function e(){if("complete"===document.readyState||"interactive"===document.readyState)return d.clientHints=await E(t,true),d.browsingTopics=await async function(){let e=[];if("browsingTopics"in document&&document.featurePolicy.allowsFeature("browsing-topics"))try{e=await document.browsingTopics(),t.debug("document.browsingTopics() return value:",e)}catch(e){t.debug("Error calling document.browsingTopics(): ",e)}return e}(),"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0?(document.addEventListener("touchend",v,!1),document.addEventListener("touchmove",f,!1),document.addEventListener("touchcancel",b,!1)):(document.addEventListener("mousemove",m,!1),document.addEventListener("scroll",b,!1)),document.addEventListener("click",w,!1),document.addEventListener("impression-event",A,!1),document.addEventListener("impression-retry-event",T,!1),document.addEventListener("in-page-missclick",y,!1),p(),b(),0===o&&N(),n=he()(N,6e4),window[i]=u,P(),s()(P,2e4),document.addEventListener("visibilitychange",C),void window.addEventListener("beforeunload",(()=>{S(!0)}));s()(e,100)}()},mi=o(3038),vi=o.n(mi);const bi="sandboxedDetector";var yi=class{#i;#ue;#he;#ge=!1;#pe=!1;#fe=!1;constructor(e,t,i){this.#i=e,this.#ue=t,this.#he=i}isSandboxed(){return this.#pe}load(){var e;if(this.#ge)return void this.#i.debug("already checked");if(this.#ge=!0,this.#i.debug("load sandbox detector"),!R())return void this.#i.debug("not in iframe. exit");this.#i.debug("iframe detected");const i=this.#he.getState();if(i&&i.expiresAt>r()())return this.#i.debug("previous state present. Expires at:",new Date(i.expiresAt)),i.isSandboxed?(this.#i.debug("sandboxed recently! show overlay"),void(this.#pe=!0)):void this.#i.debug("not sandboxed recently. dont check further");this.#i.debug("attach detector listener to events");const n={zoneId:bi,callback:t()(e=this.#me).call(e,this)};J||this.#ue.subscribe("mousedown",n,!0),this.#ue.subscribe("click",n,!0)}#me(e){if(!e.isTrusted)return void this.#i.debug(`${e.type} on ${e.target.tagName}. Detector skipped: event is not trusted`,e);if(this.#ue.isShowingPop)return void this.#i.debug("detector skipped: pop being currently shown");this.#ue.isShowingPop=!0,this.#i.debug("detector taking action. prevent other pops from showing");let t=null;try{t=window.open("about:blank","_blank")}catch(e){this.#i.error("detector error",e)}t&&t.close(),null===t&&(this.#i.debug("sandbox detected"),this.#pe=!0),this.#he.setState({expiresAt:r()()+36e5,isSandboxed:this.#pe}),J||this.#ue.unsubscribe("mousedown",bi,!0),this.#ue.unsubscribe("click",bi,!0),s()((()=>{this.#ue.isShowingPop=!1}),300)}showSandboxWarningOverlay(){this.#fe||(this.#fe=!0,this.#i.debug("show sandbox warning overlay"),this.#ve())}#be(){const e=document.createElement("div");e.id="sbxwo",vi()(e.style,{position:"fixed",top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(0, 0, 0, 0.8)",color:"#fff",zIndex:1e4,display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",padding:"20px",boxSizing:"border-box",textAlign:"center"});const t=document.createElement("div");t.innerHTML="\n
Ad Functionality Blocked
\n
\n It looks like your page is running in a sandbox that blocks certain functionality.\n This setting is preventing our ads from working properly.\n Please disable the sandbox restrictions or adjust your settings.\n
\n To continue playing please remove Sandbox from iframe tab or add "allow-popups" to Sandbox\n
\n ',e.appendChild(t),document.body.appendChild(e)}};const wi="x4G9Tq2Kw6R7v1Dy3P0B5N8Lc9M2zF",ki="ZpQw9XkLmN8c3vR3",Ai="adblock-settings",Ti=(()=>{let e=document.currentScript;return e||(e=document.getElementById("aclib")),e||(e=document.getElementById("adcash-lib")),e})();let xi=null;var Si=class{#ye;#we={pop:!1,autoTag:!1,inPagePush:!1,interstitial:!1,videoSlider:!1};#ke;#v;#Ae=new(ri());#Te=new(ri());#i;#xe=!1;#Se=!1;#Ce={mousedown:[],click:[],touchstart:[]};#Ee={mousedown:[],scroll:[],click:[],touchstart:[]};#m="adexchangeclear.com";#k="65.0";#o=null;#Ie="aclib";#Re;#Oe=!1;isShowingPop=!1;#S;#Le=!1;#Pe={};#Ne;constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(xi)return xi;xi=this;let t="aclib";if(e.classes&&(this.#Pe=e.classes,t="aclib_adbl"),this.#i=new a(t),window.addEventListener("mousedown",(e=>{var t;this.#i.debug("win mousedown with capture: in"),x()(t=this.#Ce.mousedown).call(t,(t=>{this.#i.debug("win mousedown with capture: calling observer"),t.callback(e)}))}),!0),window.addEventListener("mousedown",(e=>{var t;this.#i.debug("win mousedown: in"),x()(t=this.#Ee.mousedown).call(t,(t=>{this.#i.debug("win mousedown: calling observer"),t.callback(e)}))}),!1),window.addEventListener("click",(e=>{var t;this.#i.debug("win click with capture: in"),x()(t=this.#Ce.click).call(t,(t=>{this.#i.debug("win click with capture: calling observer"),t.callback(e)}))}),!0),window.addEventListener("click",(e=>{var t;this.#i.debug("win click: in"),x()(t=this.#Ee.click).call(t,(t=>{this.#i.debug("win click: calling observer"),t.callback(e)}))}),!1),document.addEventListener("mousedown",(e=>{var t;this.#i.debug("doc mousedown: in"),x()(t=this.#Ee.mousedown).call(t,(t=>{this.#i.debug("doc mousedown: calling observer"),t.callback(e)}))})),document.addEventListener("mousedown",(e=>{var t;this.#i.debug("doc mousedown with capture: in"),x()(t=this.#Ce.mousedown).call(t,(t=>{this.#i.debug("doc mousedown with capture: calling observer"),t.callback(e)}))}),!0),window.addEventListener("scroll",(e=>{var t;x()(t=this.#Ee.scroll).call(t,(t=>{t.callback(e)}))})),document.addEventListener("click",(e=>{var t;this.#i.debug("doc click: in"),x()(t=this.#Ee.click).call(t,(t=>{this.#i.debug("doc click: calling observer"),t.callback(e)}))})),document.addEventListener("click",(e=>{var t;this.#i.debug("doc click with capture: in"),x()(t=this.#Ce.click).call(t,(t=>{this.#i.debug("doc click with capture: calling observer"),t.callback(e)}))}),!0),this.getClientHints(),this.#Re=L(),this.#S=ie(),this.#Ne=new yi(new a("sd"),xi,new ze("sndbxchckiborjforqp2")),this.#i.debug("init adcash lib. listeners attached. ready to publish"),this.#i.debug("is mobile device:",J),window[wi]&&(this.#o=JSON.parse(Fe()(window[wi])),this.#ye=this.#o.cdnDomain,delete window[wi]),window[ki]&&(this.#o=JSON.parse(function(e){var t;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"xR9tB2pL6q7MwVe";const r=atob(e);return A()(t=[...r]).call(t,((e,t)=>String.fromCharCode(e.charCodeAt(0)^i.charCodeAt(t%i.length)))).join("")}(window[ki])),this.#ye=this.#o.cdnDomain,delete window[ki]),this.#o||(this.#ye=new(m())(Ti.src).host,Ti.hasAttribute(Ai)&&(this.#o=JSON.parse(Ti.getAttribute(Ai)),Ti.removeAttribute(Ai))),this.#o&&this.#i.debug("adblock settings:",this.#o),Ti.getAttribute("data-preview"))return this.#i.debug("preview mode"),void(this.#Le=!0);this.#Ue(),this.#$e(),this.#Fe(),this.#Ne.load()}isSandboxed(){return this.#Ne.isSandboxed()}showSandboxWarningOverlay(){this.#Ne.showSandboxWarningOverlay()}async getClientHints(e){if(void 0===this.#ke){this.#ke=await E(this.#i,!0);let e="";for(const t in this.#ke)e+=`&${t}=${this.#ke[t]}`;this.#v=e}return e?this.#ke:this.#v}getCdnDomain(){return this.#ye}getSesionRandomString(){return this.#Re}enableAdbMode(){this.#i.debug("enable adb mode"),this.#Oe=!0}isAdbMode(){return this.#Oe}subscribe(e,t,i){if(!this.#Ce[e]||!this.#Ee[e])throw new Error(`${e} is not observable!`);i?this.#Ce[e].push(t):this.#Ee[e].push(t)}unsubscribe(e,t,i){if(!this.#Ce[e]||!this.#Ee[e])throw new Error(`${e} is not observable!`);if(i)for(let i=0;i{const t=document.createElement("link");t.rel="dns-prefetch",t.href=`//${e}`,document.head.appendChild(t)}))}s()(t()(e=this.#Ue).call(e,this),100)}getZoneIds(){return w()(this.#Ae)}runPop(e){const{zoneId:t,delay:i,targetElementsCssSelector:r,triggerOnTargetElementsClick:n,targetCountries:s,triggerOnTargetCountries:o,sub1:a,sub2:c,publisherUrl:l,storeUrl:d,c1:u,c2:h,c3:g,pubHash:p,pubClickId:f,pubValue:m,fallbackOn:v,isAutoTag:b,collectiveZoneId:y,aggressivity:w,recordPageView:k,linkedZoneId:A,abTest:T,tagVersionSuffix:x}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");if(void 0!==i&&(!ui(i)||i<0))throw new Error("delay is not an integer or is less than zero");if(void 0!==r){if(!hi(r))throw new Error("targetElementsCssSelector is not a string");if(!(e=>{try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0})(r))throw new Error("targetElementsCssSelector is not a valid css selector");if(!di(n))throw new Error("triggerOnTargetElementsClick is not a boolean")}if(void 0!==s){if(!(e=>{if(!ai()(e))return!1;if(0===e.length)return!1;for(let t=0;t{window.PopUnder&&(this.#Ae.add(S.zoneId),new PopUnder(S),clearInterval(e))}),100)}else{this.#i.debug("loading suv5 script on page"),this.#xe=!0;const e=document.createElement("script");e.type="text/javascript",e.src=`${location.protocol}//${this.#ye}/script/suv5.js`,e.onload=()=>{this.#we.pop=!0,this.#xe=!1,b?this.#Ae.add(y):this.#Ae.add(S.zoneId),new PopUnder(S)},e.onerror=()=>{this.#we.pop=!1,this.#xe=!1,this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}runInPagePush(e){if(this.#we.inPagePush)return void this.#i.error("in-page push zone already loaded on page");this.#we.inPagePush=!0;const{zoneId:t,delay:i,maxAds:r,renderPosDesktop:n,renderPosMobile:s,offsetTop:o,sub1:a,isAutoTag:c,collectiveZoneId:l,linkedZoneId:d,aggressivity:u,recordPageView:h,abTest:g,tagVersionSuffix:p}=e;let{refreshRate:f}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");if(void 0!==f&&(!ui(f)||f<0))throw new Error("refreshRate is not an integer or is less than zero");if(void 0!==i&&(!ui(i)||i<0))throw new Error("delay is not an integer or is less than zero");if(void 0!==r&&(!ui(r)||r<1))throw new Error("maxAds is not an integer or is less than one");if(void 0!==n&&!gi(n))throw new Error("renderPosDesktop is not valid");if(void 0!==s&&!gi(s))throw new Error("renderPosMobile is not valid");if(void 0!==o&&(!ui(o)||o<0))throw new Error("offsetTop is not an integer or is less than zero");this.#i.debug("loading in-page push on page"),c?this.#Ae.add(l):this.#Ae.add(t),void 0!==f&&f>0&&f<10&&(f<5?f*=60:f=30),this.#i.debug("ipp rr set to",f);const m={zoneId:t,refreshRate:f??60,delay:i??0,maxAds:r??1,renderPosDesktop:n??"top",renderPosMobile:s??"top",offsetTop:o??0,sub1:a,isAutoTag:c,collectiveZoneId:l,linkedZoneId:d,aggressivity:u,recordPageView:h,abTest:g,tagVersionSuffix:p,adserverDomain:this.#m,adblockSettings:this.#o,adcashGlobalName:this.#Ie,isLoadedAsPartOfLibrary:!1,uniqueFingerprint:this.#S};if(this.#Pe.InPagePush)return m.isLoadedAsPartOfLibrary=!0,void new this.#Pe.InPagePush(m);if(window.InPagePush)new window.InPagePush(m);else{const e=document.createElement("script");e.type="text/javascript",e.src=`${window.location.protocol}//${this.#ye}/script/inpagepush.js`,e.setAttribute("nipp","1"),e.onload=()=>{new window.InPagePush(m)},e.onerror=()=>{this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}runBanner(e){const{zoneId:t,width:i,height:r,renderIn:n,sub1:s,currentScript:o}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");if(void 0!==i&&!ui(i))throw new Error("Banner width is not an integer");if(void 0!==r&&!ui(r))throw new Error("Banner height is not an integer");let a;this.#i.debug("loading banner on page",t),n||(document.currentScript&&document.currentScript.parentElement&&(a=document.currentScript.parentElement),o&&(a=o.parentElement));const c={zoneId:t,width:i,height:r,renderIn:n,currentElement:a,sub1:s,adcashGlobalName:this.#Ie,uniqueFingerprint:this.#S,adblockSettings:this.#o};if(this.#Pe.Banner)new this.#Pe.Banner(c);else if(this.#we.banner||this.#Se){if(window.Banner)return this.#Ae.add(c.zoneId),void new Banner(c);const e=he()((()=>{window.Banner&&(this.#Ae.add(c.zoneId),new Banner(c),clearInterval(e))}),100)}else{this.#Se=!0;const e=document.createElement("script");e.type="text/javascript",e.src=`${location.protocol}//${this.#ye}/script/banner.js`,e.onload=()=>{this.#we.banner=!0,this.#Se=!1,this.#Ae.add(c.zoneId),new Banner(c)},e.onerror=()=>{this.#we.banner=!1,this.#Se=!1,this.#i.error(`failed loading ${e.src}`)},e.setAttribute("data-adel","ban"),e.setAttribute("a-lib","1"),document.head.appendChild(e)}}runInterstitial(e){if(this.#we.interstitial)return void this.#i.error("interstitial zone already loaded on page");this.#we.interstitial=!0;const{zoneId:t,sub1:i,isAutoTag:r,collectiveZoneId:n,linkedZoneId:s,aggressivity:o,recordPageView:a,abTest:c,tagVersionSuffix:l}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");this.#i.debug("loading interstitial on page");const d={zoneId:t,sub1:i,isAutoTag:r,collectiveZoneId:n,linkedZoneId:s,aggressivity:o,recordPageView:a,abTest:c,tagVersionSuffix:l,adcashGlobalName:this.#Ie,adserverDomain:this.#m,adblockSettings:this.#o,uniqueFingerprint:this.#S,isLoadedAsPartOfLibrary:!1};if(this.#Ae.add(t),this.#Pe.Interstitial)return d.isLoadedAsPartOfLibrary=!0,void new this.#Pe.Interstitial(d);if(window.Interstitial)new Interstitial(d);else{const e=document.createElement("script");e.type="text/javascript",e.src=`${location.protocol}//${this.#ye}/script/interstitial.js`,e.setAttribute("a-lib","1"),e.onload=()=>{new Interstitial(d)},e.onerror=()=>{this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}async#ze(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.#i.debug("fetch collective zone config");let i=`${window.location.protocol}//${this.#m}/ad/czcf.php`;if(this.isAdbMode()){const e=`/${ee("abcdefgh0123456789")}`;i=`${window.location.protocol}//${this.#o.adserverDomain}${e}`}i+=`?cz=${e}`,i+=`&atv=${this.#k}`;const r=await this.getClientHints();let n;r&&(i+=r),this.isAdbMode()&&(i+="&sadbl=2",i+="&fmt=atg",i=te(i)),this.#i.debug("collective zone config url: ",i);try{n=await fetch(i)}catch(i){return this.#i.error(i),this.#o&&t?(this.#i.debug("collective zone config fetch failed: try alt domain and path"),this.enableAdbMode(),this.#ze(e,!1)):null}return 200!==n.status?null:(n=await n.json(),se(n))}async runAutoTag(e){if(this.#we.autoTag)return void this.#i.error("autotag zone already loaded on page");this.#we.autoTag=!0;const t=e.zoneId;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");const i=await this.#ze(t);if(!i)return void this.#i.error(`failed to fetch collective zone config! czid: ${t}`);if(this.#i.debug("collective zone config:",i),!i.rotationList){this.#i.debug("running in NORMAL MODE (no rotation)");const r=i.indexedFormats;let n=!0;for(const s in r){switch(s){case"suv4":case"pop":this.runPop({zoneId:r[s].zoneId.toString(),targetElementsCssSelector:r[s]["element-list"],triggerOnTargetElementsClick:"allow"===r[s]["element-action"],targetCountries:r[s]["country-list"],triggerOnTargetCountries:"allow"===r[s]["country-action"],isAutoTag:!0,collectiveZoneId:t,aggressivity:i.aggressivity,abTest:i.ab_test,recordPageView:n,tagVersionSuffix:e.tagVersionSuffix});break;case"interstitial":this.runInterstitial({zoneId:r[s].zoneId.toString(),isAutoTag:!0,collectiveZoneId:t,aggressivity:i.aggressivity,abTest:i.ab_test,recordPageView:n,tagVersionSuffix:e.tagVersionSuffix});break;case"ippg":this.runInPagePush({zoneId:r[s].zoneId.toString(),refreshRate:r[s].rr,delay:r[s].d,maxAds:r[s].mads,renderPosDesktop:r[s]["render-pos-desktop"],renderPosMobile:r[s]["render-pos-mobile"],offsetTop:r[s]["offset-top"],isAutoTag:!0,collectiveZoneId:t,aggressivity:i.aggressivity,abTest:i.ab_test,recordPageView:n,tagVersionSuffix:e.tagVersionSuffix});break;default:this.#i.error(`ad format type not recognised from collective zone config. adformat.type: ${s}; czid: ${t}`)}n=!1}return}this.#i.debug("running in ROTATION MODE (rotation present)");const r={adcashGlobalName:this.#Ie,collectiveZoneConfig:i,adserverDomain:this.#m,adblockSettings:this.#o,clientHintsQueryStr:this.#v,tagVersionSuffix:e.tagVersionSuffix,isLoadedAsPartOfLibrary:!1,uniqueFingerprint:this.#S};if(this.#Pe.AutoTagRotation)return this.#Ae.add(t),r.isLoadedAsPartOfLibrary=!0,void new this.#Pe.AutoTagRotation(r);this.#i.debug("loading autotag rotation script on page");const n=document.createElement("script");n.type="text/javascript",n.src=`${location.protocol}//${this.#ye}/script/atagv2.js`,n.onload=()=>{this.#Ae.add(t),new De(r)},n.onerror=()=>{this.#i.error(`failed loading ${n.src}`)},document.head.appendChild(n)}runVideoSlider(e){if(this.#we.videoSlider)return void this.#i.error("videoslider zone already loaded on page");this.#we.videoSlider=!0;const{zoneId:t,sub1:i,vastXml:r,useAlternative:n,linkedZoneId:s}=e;if(!t)throw new Error("mandatory zoneId is not provided!");if(!hi(t))throw new Error("zoneId is not a string!");const o={zoneId:t,sub1:i,adserverDomain:this.#m,adcashGlobalName:this.#Ie,uniqueFingerprint:this.#S,isPreviewMode:this.#Le,useAlternative:n,vastXml:r,linkedZoneId:s,adblockSettings:this.#o};if(this.#Pe.VideoSlider)return o.isLoadedAsPartOfLibrary=!0,void new this.#Pe.VideoSlider(o);if(window.VideoSlider)new VideoSlider(o);else{const e=document.createElement("script");e.type="text/javascript",Math.round(Math.random())?(e.src=`${window.location.protocol}//${this.#ye}/script/videoSliderAlt.js`,o.tagVersionSuffix="-b",this.#i.debug("VideoSlider A/B test: using alternative video slider")):(e.src=`${window.location.protocol}//${this.#ye}/script/videoSlider.js`,o.tagVersionSuffix="-a",this.#i.debug("VideoSlider A/B test: using video slider")),e.onload=()=>{this.#Ae.add(t),new VideoSlider(o)},e.onerror=()=>{this.#i.error(`failed loading ${e.src}`)},document.head.appendChild(e)}}};const Ci=new a("aclib_adblock_index");window.Adcash?Ci.debug("lib already on page. exit"):(Ci.debug("load lib on page"),function(){var e;const t={aclib:new Si(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Adcash:Si,AtcshAltNm:Si};x()(e=it()(t)).call(e,(e=>{ti()(window,e,{value:t[e]})}))}({classes:{AutoTagRotation:De,PopUnder:class{#s;#y=null;#t={};#L=!1;#De=!1;#Be=!1;#Me=!1;#P;#b=!1;#R=!0;#i;#k="65.0";#N=null;#Ve=12;#T=!1;constructor(e){var i,n;this.#i=new a(`suv5_${e.zoneId}`),this.#s=window[e.adcashGlobalName],e.tagVersionSuffix&&(this.#k+=e.tagVersionSuffix),this.#i.debug("tag version:",this.#k),this.#i.debug("init pop with config:",e),this.#t=e,this.elementTargeting=new je(this.#t.targetElementsCssSelector,this.#t.triggerOnTargetElementsClick,this.#t.zoneId),!J||this.elementTargeting.isPresent()||this.#t.linkedZoneId||(this.#R=!1),this.#i.debug("useCapture:",this.#R),this.overlays=new He(this.elementTargeting,t()(i=this.#U).call(i,this),t()(n=this.#He).call(n,this),this.#i,this.#t.zoneId,this.#R),this.#z(),this.localStorage=new ze(`suv5_${e.zoneId}_state`);const o=this.localStorage.getState();o&&o.adbExpiresAt>r()()&&this.#s.enableAdbMode();const c=r()();if(o&&o.renderAfterTimestamp>c){var l;const e=o.renderAfterTimestamp-c;this.#i.debug(`previous state present. bid after ${e/1e3} sec`),s()(t()(l=this.#je).call(l,this),e)}else this.#je()}async#C(){const e=await this.#s.getClientHints(!1);let t=`${window.location.protocol}//${this.#t.adserverDomain}/script/suurl5.php`;if(this.#t.adblockSettings&&this.#s.isAdbMode()){const{adserverDomain:e}=this.#t.adblockSettings,i=`/${ee("abcdefgh0123456789")}`;t=`${window.location.protocol}//${e}${i}`}if(t+=`?r=${this.#t.zoneId}`,this.#b&&(t+="&rbd=1"),this.#t.targetCountries){const e=this.#t.targetCountries.join(",");this.#t.triggerOnTargetCountries?t+="&allowed_countries="+encodeURIComponent(e):t+="&excluded_countries="+encodeURIComponent(e)}return t=t+e+"&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())+"&ufp="+encodeURIComponent(this.#t.uniqueFingerprint)+"&ts="+r()()+"&srs="+this.#s.getSesionRandomString()+"&atv="+this.#k,this.#t.sub1&&(t+=`&sub1=${encodeURIComponent(this.#t.sub1)}`),this.#t.sub2&&(t+=`&sub2=${encodeURIComponent(this.#t.sub2)}`),this.#t.publisherUrl&&(t+=`&pu=${encodeURIComponent(this.#t.publisherUrl)}`),this.#t.storeUrl&&(t+=`&storeurl=${encodeURIComponent(this.#t.storeUrl)}`),this.#t.c1&&(t+=`&c1=${encodeURIComponent(this.#t.c1)}`),this.#t.c2&&(t+=`&c2=${encodeURIComponent(this.#t.c2)}`),this.#t.c3&&(t+=`&c3=${encodeURIComponent(this.#t.c3)}`),this.#t.pubHash&&(t+=`&pub_hash=${encodeURIComponent(this.#t.pubHash)}`),this.#t.pubClickId&&(t+=`&pub_clickid=${encodeURIComponent(this.#t.pubClickId)}`),this.#t.pubValue&&(t+=`&pub_value=${encodeURIComponent(this.#t.pubValue)}`),this.#t.fallbackOn&&(t+=`&fallbackon=${encodeURIComponent(this.#t.fallbackOn)}`),this.#t.adblockSettings&&(t+="&abtg=1"),this.#t.isAutoTag&&(t+="&atag=1"),this.#t.aggressivity&&(t+=`&aggr=${this.#t.aggressivity}`),this.#t.collectiveZoneId&&(t+=`&czid=${this.#t.collectiveZoneId}`),this.#t.recordPageView&&(t+="&ppv=1"),this.#t.linkedZoneId&&(t+=`&pblcz=${this.#t.linkedZoneId}`),this.#t.abTest&&(t+=`&ab_test=${this.#t.abTest}`),this.#t.adblockSettings&&this.#t.adblockSettings.adbVersion&&(t+=`&adbv=${this.#t.adblockSettings.adbVersion}`),this.#s.isSandboxed()&&(t+="&sbx=1"),this.#t.adblockSettings&&this.#s.isAdbMode()?(t+="&sadbl=2",t+="&fmt=suv5",this.#i.debug(`bid url: ${t}`),te(t)):(this.#i.debug(`bid url: ${t}`),t)}#F(e){try{let t=this.#N?this.#N(""):window.open("");return t.document.open(),t.document.writeln('
17 OCT 2024 - Welcome Back to TorrentFunk! Get your pirate hat back out. Streaming is dying and torrents are the new trend. Account Registration works again and so do Torrent Uploads. We invite you all to start uploading torrents again!
TORRENT DETAILS
Programming The Arduino Getting Started
TORRENT SUMMARY
Status:
All the torrents in this section have been verified by our verification system
You want to learn Arduino programming from the beginning ?
You want to write Arduino code that works, and that you can understand ?
You want to really do things by yourself, instead of reading theory and copying/pasting some code ?
Then you are in the right place!
The goal of this course is to give you, step by step, the Arduino programming foundation that you need, along with a ton of practice, so you will be more confident to create much more complex and nice Arduino programs in the future.
You don’t need any special knowledge or programming experience to start this course, I will explain everything in details.
Every line of code that you see in this course will be written in front of you. I will write code, and you will also write code. No copy and paste.
For every important step on this course, you will do a programming activity to practice and get a better understanding.
Along the different activities, I’ll also give you some programming best practices that I’ve learned myself, so you’ll improve much faster than if you were just alone.
Why this course ?
Because I found that it’s hard to find a tutorial or course online that is mainly focused on Arduino programming.
I recognize that plugging out-of-the-box components can be cool, because you feel that you are making complex things, but for real, you are just using easy-to-plug blocks that work by themselves. And now, when you need to make something more complex by yourself, or even a basic thing that has no “fancy” component doing it for you, then at this point, you feel lost, and need to go back to the basics. Or you find some random code from the Internet that you can copy and paste, and hope that this code will just work out of the box.
I personally come from a programming background. So, when I first started to program on Arduino, I quickly noticed how limited most people are, just because they don’t have the required programming basics.
What I found is that most people are limited by the programming side. When you use Arduino, OK this is a hardware board, but the true value you add to your circuit, robot, or anything else, comes from the programming side. You can’t skip that if you want to become an advanced Arduino Maker.
So… Start your learning today and unleash your programming creativity !
Here is an overview of what you will learn through the course:
Install the Arduino IDE and upload a program to your Arduino board
C programming in the Arduino environment
Setup a basic Arduino circuit
Use digital and analog pins to control external hardware components
Communicate with the outside
Store values on your Arduino board
Create a multitask program
Separate your program into reusable blocks of code
… and much more !
Please make sure to read the following. This course is NOT for you if :
You want an Arduino course specialized in hardware
You just want to quickly plug components, copy and paste some code
You are not interested in software development
You already have strong basics in Arduino programming
Who this course is for:
Beginners who want to learn the Arduino through programming and practising
People who are tired of copying/pasting from the Internet because they don’t understand the code
Makers who already have a running project, but feel that they lack the programming foundation they need
Developers who already have some basic programming experience, and want to dive in Arduino programming
Requirements
An Arduino board
Some basic hardware components (detailed list in the first section) if you plan to program with a real circuit
[TutsNode.net] - Programming the Arduino Getting Started/2 - Your First Steps with Arduino Programming/10 - activity-1-solution.zip
543 B
[TutsNode.net] - Programming the Arduino Getting Started/2 - Your First Steps with Arduino Programming/11 - Debug Your Program.mp4
7.5 MB
[TutsNode.net] - Programming the Arduino Getting Started/2 - Your First Steps with Arduino Programming/13 - Your-first-steps-with-Arduino-programming-Summary.pdf
110.6 KB
[TutsNode.net] - Programming the Arduino Getting Started/2 - Your First Steps with Arduino Programming/4 - Intro.mp4
453.7 KB
[TutsNode.net] - Programming the Arduino Getting Started/2 - Your First Steps with Arduino Programming/8 - Upload Your First Program.mp4
14.2 MB
[TutsNode.net] - Programming the Arduino Getting Started/3 - C Programming for Arduino Part 1/15 - Variables.mp4
18.1 MB
[TutsNode.net] - Programming the Arduino Getting Started/3 - C Programming for Arduino Part 1/16 - Variables Data Types.mp4
18.1 MB
[TutsNode.net] - Programming the Arduino Getting Started/3 - C Programming for Arduino Part 1/17 - Functions.mp4
18.5 MB
[TutsNode.net] - Programming the Arduino Getting Started/3 - C Programming for Arduino Part 1/18 - Scope.mp4
12.5 MB
[TutsNode.net] - Programming the Arduino Getting Started/3 - C Programming for Arduino Part 1/20 - Activity 2 Solution.mp4
12.4 MB
[TutsNode.net] - Programming the Arduino Getting Started/3 - C Programming for Arduino Part 1/20 - activity-2-solution.zip
595 B
[TutsNode.net] - Programming the Arduino Getting Started/4 - C Programming for Arduino Part 2/22 - Conditions.mp4
17.1 MB
[TutsNode.net] - Programming the Arduino Getting Started/4 - C Programming for Arduino Part 2/23 - Conditional Operators.mp4
27.1 MB
[TutsNode.net] - Programming the Arduino Getting Started/4 - C Programming for Arduino Part 2/24 - Switch Statement.mp4
9.2 MB
[TutsNode.net] - Programming the Arduino Getting Started/4 - C Programming for Arduino Part 2/26 - Activity 3 Solution.mp4
14.3 MB
[TutsNode.net] - Programming the Arduino Getting Started/4 - C Programming for Arduino Part 2/26 - activity-3-solution.zip
663 B
[TutsNode.net] - Programming the Arduino Getting Started/5 - C Programming for Arduino Part 3/27 - Loops.mp4
20.2 MB
[TutsNode.net] - Programming the Arduino Getting Started/5 - C Programming for Arduino Part 3/28 - Arrays.mp4
20.8 MB
[TutsNode.net] - Programming the Arduino Getting Started/5 - C Programming for Arduino Part 3/31 - Activity 4 Solution.mp4
11.6 MB
[TutsNode.net] - Programming the Arduino Getting Started/5 - C Programming for Arduino Part 3/31 - activity-4-solution.zip
649 B
[TutsNode.net] - Programming the Arduino Getting Started/5 - C Programming for Arduino Part 3/32 - C-programming-for-Arduino-Summary.pdf
58.9 KB
[TutsNode.net] - Programming the Arduino Getting Started/6 - Build a Simple Arduino Circuit Step by Step/34 - Understand How a Breadboard Works.mp4
15.4 MB
[TutsNode.net] - Programming the Arduino Getting Started/6 - Build a Simple Arduino Circuit Step by Step/35 - Pick the Right Resistors.mp4
15.9 MB
[TutsNode.net] - Programming the Arduino Getting Started/6 - Build a Simple Arduino Circuit Step by Step/36 - Arduino-programming-Hardware-setup-Summary.pdf
131.2 KB
[TutsNode.net] - Programming the Arduino Getting Started/6 - Build a Simple Arduino Circuit Step by Step/36 - Build Your First Small Circuit.mp4
90.1 MB
[TutsNode.net] - Programming the Arduino Getting Started/6 - Build a Simple Arduino Circuit Step by Step/36 - schema-1-led.png
290.8 KB
[TutsNode.net] - Programming the Arduino Getting Started/7 - Use Digital Pins to Control Hardware Components/38 - Hardware Setup Add 3 LEDs.mp4
119.6 MB
[TutsNode.net] - Programming the Arduino Getting Started/7 - Use Digital Pins to Control Hardware Components/38 - schema-4-leds.png
310.3 KB
[TutsNode.net] - Programming the Arduino Getting Started/7 - Use Digital Pins to Control Hardware Components/42 - activity-5-solution.zip
595 B
[TutsNode.net] - Programming the Arduino Getting Started/7 - Use Digital Pins to Control Hardware Components/44 - Activity 6 Solution.mp4
26.9 MB
[TutsNode.net] - Programming the Arduino Getting Started/7 - Use Digital Pins to Control Hardware Components/44 - activity-6-solution.zip
694 B
[TutsNode.net] - Programming the Arduino Getting Started/7 - Use Digital Pins to Control Hardware Components/45 - Hardware Setup Add a Push Button.mp4
78.4 MB
[TutsNode.net] - Programming the Arduino Getting Started/7 - Use Digital Pins to Control Hardware Components/45 - schema-button.png
319.1 KB
[TutsNode.net] - Programming the Arduino Getting Started/7 - Use Digital Pins to Control Hardware Components/46 - digitalRead function.mp4
7.7 MB
[TutsNode.net] - Programming the Arduino Getting Started/7 - Use Digital Pins to Control Hardware Components/48 - Activity 7 Solution.mp4
10.6 MB
[TutsNode.net] - Programming the Arduino Getting Started/7 - Use Digital Pins to Control Hardware Components/48 - activity-7-solution.zip
749 B
[TutsNode.net] - Programming the Arduino Getting Started/7 - Use Digital Pins to Control Hardware Components/49 - analogWrite function.mp4
33 MB
[TutsNode.net] - Programming the Arduino Getting Started/7 - Use Digital Pins to Control Hardware Components/50 - Arduino-programming-Digital-I-Os-Summary.pdf
126.4 KB
[TutsNode.net] - Programming the Arduino Getting Started/8 - Communicate With The User Make Your Programs More Dynamic/52 - Read Data From Serial.mp4
9.2 MB
[TutsNode.net] - Programming the Arduino Getting Started/8 - Communicate With The User Make Your Programs More Dynamic/54 - Activity 8 Solution.mp4
22.6 MB
[TutsNode.net] - Programming the Arduino Getting Started/8 - Communicate With The User Make Your Programs More Dynamic/54 - activity-8-solution.zip
764 B
[TutsNode.net] - Programming the Arduino Getting Started/8 - Communicate With The User Make Your Programs More Dynamic/55 - Use the EEPROM memory.mp4
13.6 MB
[TutsNode.net] - Programming the Arduino Getting Started/8 - Communicate With The User Make Your Programs More Dynamic/57 - Activity 9 Solution.mp4
13.2 MB
[TutsNode.net] - Programming the Arduino Getting Started/8 - Communicate With The User Make Your Programs More Dynamic/57 - activity-9-solution.zip
859 B
[TutsNode.net] - Programming the Arduino Getting Started/8 - Communicate With The User Make Your Programs More Dynamic/58 - Arduino-programming-Communicate-with-the-user-Summary.pdf
47.1 KB
[TutsNode.net] - Programming the Arduino Getting Started/9 - Use Analog Pins/60 - Hardware Setup Add a Potentiometer.mp4
96.5 MB
[TutsNode.net] - Programming the Arduino Getting Started/9 - Use Analog Pins/60 - schema-potentiometer.png
331.6 KB
[TutsNode.net] - Programming the Arduino Getting Started/9 - Use Analog Pins/63 - Activity 10 Solution.mp4
16.4 MB
[TutsNode.net] - Programming the Arduino Getting Started/9 - Use Analog Pins/63 - activity-10-solution.zip
780 B
[TutsNode.net] - Programming the Arduino Getting Started/9 - Use Analog Pins/64 - Use an Analog Pin as a Digital Pin.mp4
32.1 MB
[TutsNode.net] - Programming the Arduino Getting Started/9 - Use Analog Pins/65 - Arduino-programming-Analog-I-Os-Summary.pdf