PageSourceSearch

https://www.expressvpn.com/wp-ws-cache/themes/expressvpn/assets/js/general.js?ver=1790768416

js expressvpn.com collected 2026-10-01 07:20:02 UTC 35,457 bytes, 1 lines download raw bytes

1window.initializationTracker=window.initializationTracker||new Set,window.safeInit=function(e,t){window.initializationTracker.has(e)||(window.initializationTracker.add(e),"function"==typeof t&&t())},document.addEventListener("DOMContentLoaded",function(){!function(){const e={rootMargin:"0px 0px 100px 0px",threshold:.01},t=new IntersectionObserver(function(e,t){e.forEach(e=>{if(e.isIntersecting){const o=e.target;o.querySelectorAll("img[data-src]").forEach(e=>{e.setAttribute("src",e.getAttribute("data-src")),e.removeAttribute("data-src"),e.hasAttribute("data-srcset")&&(e.setAttribute("srcset",e.getAttribute("data-srcset")),e.removeAttribute("data-srcset"))}),t.unobserve(o)}})},e);document.querySelectorAll('[data-force-load="true"]').forEach(e=>t.observe(e));const o=new IntersectionObserver(function(e,t){e.forEach(e=>{if(e.isIntersecting){const o=e.target;"IMG"===o.tagName&&o.hasAttribute("data-src")&&(o.setAttribute("src",o.getAttribute("data-src")),o.removeAttribute("data-src"),o.hasAttribute("data-srcset")&&(o.setAttribute("srcset",o.getAttribute("data-srcset")),o.removeAttribute("data-srcset")),t.unobserve(o))}})},e);document.querySelectorAll("img[data-src]").forEach(e=>{e.closest('[data-force-load="true"]')||o.observe(e)})}()}),function(){let e=!1,t=!1;function o(){n(),i()}function n(){if(e)return;e=!0;const t=document.querySelectorAll('script[data-loading="lazy"]');!function e(o){if(o>=t.length)return;const n=t[o],i=n.dataset.src;if(!i)return void e(o+1);if(n.src&&n.src===i)return n.removeAttribute("data-loading"),void e(o+1);const r=document.createElement("script");Array.from(n.attributes).forEach(e=>{"data-src"!==e.name&&"data-loading"!==e.name&&r.setAttribute(e.name,e.value)}),r.src=i,r.onload=function(){const t=new CustomEvent("lazyScriptLoaded",{detail:{src:r.src}});document.dispatchEvent(t),n.removeAttribute("data-loading"),e(o+1)},r.onerror=function(){console.error("Failed to load script:",i),n.removeAttribute("data-loading"),e(o+1)},n.parentNode.insertBefore(r,n)}(0)}function i(){if(t)return;t=!0,document.removeEventListener("scroll",o,{passive:!0}),document.removeEventListener("click",o,{passive:!0}),document.removeEventListener("touchstart",o,{passive:!0}),document.removeEventListener("touchmove",o,{passive:!0});document.querySelectorAll('link[data-loading="lazy"]').forEach(e=>{const t=e.dataset.href;t&&(!e.href||e.href!==t&&e.getAttribute("href")!==t?(e.href=t,e.removeAttribute("data-loading")):e.removeAttribute("data-loading"))})}document.addEventListener("scroll",o,{passive:!0}),document.addEventListener("click",o,{passive:!0}),document.addEventListener("touchstart",o,{passive:!0}),document.addEventListener("touchmove",o,{passive:!0}),document.addEventListener("DOMContentLoaded",function(){if("IntersectionObserver"in window){var e=document.querySelectorAll(".swiper");if(e.length){var t=new IntersectionObserver(function(){t.disconnect(),n()},{rootMargin:"400px 0px"});e.forEach(function(e){t.observe(e)})}}"requestIdleCallback"in window?requestIdleCallback(function(){n(),i()},{timeout:2e3}):setTimeout(function(){n(),i()},200)}),window.LazyLoadFiles=function(){n(),i()}}(),window.setCookie=(e,t,o=0)=>{let n="";if(o){const e=new Date;e.setTime(e.getTime()+24*o*60*60*1e3),n=`; expires=${e.toUTCString()}`}const i=window.location.hostname,r=i.split("."),c=r.length>1?`.${r.slice(-2).join(".")}`:i;document.cookie=`${e}=${encodeURIComponent(t)}${n}; path=/; domain=${c}`},window.getCookie=e=>{const t=`; ${document.cookie}`.split(`; ${e}=`);return 2===t.length?decodeURIComponent(t.pop().split(";").shift()):null},window.deleteCookie=e=>{const t=window.location.hostname,o=t.split("."),n=o.length>1?`.${o.slice(-2).join(".")}`:t,i="expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";document.cookie=`${e}=; ${i}`,document.cookie=`${e}=; ${i}; domain=${t}`,document.cookie=`${e}=; ${i}; domain=${n}`};const QueryString=(()=>{const e=new URLSearchParams(window.location.search),t={};for(const[o,n]of e.entries())t[o]=decodeURIComponent(n);return t})(),queryParamToCookieMap=[{queryParam:"gclid",cookieName:"gclid",days:30},{queryParam:"bc",cookieName:"BC",days:15},{queryParam:"yclid",cookieName:"yclid",days:30},{queryParam:"msclkid",cookieName:"msclkid",days:30},{queryParam:"tblcid",cookieName:"tblcid",days:30},{queryParam:"a_fid",cookieName:"aid",days:30}
1,{queryParam:"special_offer",cookieName:"special_offer",days:30},{queryParam:"data1",cookieName:"data1",days:30},{queryParam:"data2",cookieName:"data2",days:30},{queryParam:"data3",cookieName:"data3",days:30},{queryParam:"referrer_id",cookieName:"referrer_id",days:30},{queryParam:"xvid",cookieName:"xvid",days:30},{queryParam:"ref_id",cookieName:"refID",days:30},{queryParam:"xvs",cookieName:"xvs",days:30},{queryParam:"xvt",cookieName:"xvt",days:30},{queryParam:"xwsid",cookieName:"xwsid",days:30},{queryParam:"offer_code",cookieName:"offer_code",days:30},{queryParam:"campaignid",cookieName:"campaignid",days:30},{queryParam:"creative",cookieName:"creative",days:30},{queryParam:"keyword",cookieName:"keyword",days:30},{queryParam:"matchtype",cookieName:"matchtype",days:30},{queryParam:"network",cookieName:"network",days:30},{queryParam:"cp",cookieName:"cp",days:30},{queryParam:"code",cookieName:"user_coupon_code",days:30},{queryParam:"rtid",cookieName:"rtid",days:30}],processQueryParams=()=>{queryParamToCookieMap.forEach(({queryParam:e,cookieName:t,days:o})=>{QueryString[e]&&(window.deleteCookie(t),window.setCookie(t,QueryString[e],o))})},storeUtmParamsIndividually=()=>{["utm_source","utm_medium","utm_campaign"].forEach(e=>{QueryString[e]?window.setCookie(e,QueryString[e],30):window.setCookie(e,"",-1)})},generateXvid=()=>{const e=new Uint8Array(16);return window.crypto.getRandomValues(e),btoa(String.fromCharCode.apply(null,e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")},processXvid=()=>{let e=window.getCookie("xvid");e||(e=generateXvid(),window.setCookie("xvid",e,365)),window.xvid=e},processXwsid=()=>{window.getCookie("xwsid")||void 0===window.pageviewId||window.setCookie("xwsid",pageviewId,180)},processLocale=()=>{let e=document.documentElement.getAttribute("lang")||"";const t=window.getCookie("locale")||"";"en"===e.toLowerCase()&&(e=""),"en"===t.toLowerCase()&&(e=""),window.setCookie("locale",e,30)},processXvLp=()=>{if(!window.getCookie("xv_lp")){const e=window.location.pathname;window.setCookie("xv_lp",e,30)}},processTrafficSource=()=>{const e=document.referrer,t=["google.","bing.","yahoo.","duckduckgo.","yandex.","baidu."];let o=!1;if(e)try{const n=new URL(e);for(const e of t)if(n.hostname.includes(e)){o=!0;break}o?window.setCookie("xvsrcorganic",n.hostname,30):window.setCookie("xvsrcwebsite",n.hostname,30)}catch(e){console.warn("Invalid referrer URL",e)}else window.setCookie("xvsrcdirect","1",30);const n=window.getCookie("source");if(console.log("[Source Debug] processTrafficSource start — raw document.cookie:",document.cookie),console.log("[Source Debug] referrer:",e,"| location.href:",window.location.href),console.log("[Source Debug] existingSource cookie value on entry:",n),null===n||"direct"===n){console.log("[Source Debug] guard passed — recalculating source (existingSource was null or direct)");let o="direct",n="default (no branch matched)",i=null;try{const e=window.getCookie("utm");e&&(i=JSON.parse(e))}catch(e){i=null}console.log("[Source Debug] inputs — gclid(query/cookie):",QueryString.gclid,window.getCookie("gclid"),"| yclid:",QueryString.yclid,window.getCookie("yclid"),"| fbclid:",QueryString.fbclid,window.getCookie("fbclid"),"| msclkid:",QueryString.msclkid,window.getCookie("msclkid"),"| gbraid:",QueryString.gbraid,"| wbraid:",QueryString.wbraid),console.log("[Source Debug] inputs — aid:",window.getCookie("aid")||QueryString.aid||QueryString.a_fid||QueryString.a_aid,"| irclickid:",window.getCookie("irclickid")||QueryString.irclickid),console.log("[Source Debug] inputs — xvsrcorganic:",window.getCookie("xvsrcorganic"),"| xvsrcwebsite:",window.getCookie("xvsrcwebsite"),"| xvsrcdirect:",window.getCookie("xvsrcdirect")),console.log("[Source Debug] inputs — utm_source:",QueryString.utm_source,"| utm_medium:",QueryString.utm_medium,"| utmFromCookie:",i),window.getCookie("referrer_id")||QueryString.referrer_id?(o="referral",n="referrer_id cookie/query"):["email","edm","apps","mobile"].includes((QueryString.utm_medium||i?.utm_medium||"").toLowerCase())||["customer_email","email","edm","apps","mobile","mac_app","windows_app","system_email","android_app","android_apprt","ios_app","linux_app","router_app","ios-pns","aft_ios"].includes((QueryString.utm_source||i?.utm_source||"").toLowerCase())||["ios-iap","googleplay-iap"].includes((QueryString.payment_method||"").toLowerCase())?(o="crm",n="utm_medium/utm_source/payment_method matched CRM list"):window.getCookie("aid")||window.getCookie("irclickid")||QueryString.aid||QueryString.a_fid||QueryString.a_aid||QueryString.irclickid?(o="affiliates",n="aid/irclickid cookie or query present"):QueryString.gclid||QueryString.yclid||QueryString.fbclid||QueryString.msclkid||QueryString.gbraid||QueryString.wbraid||window.getCookie("gclid")||window.getCookie("yclid")||window.getCookie("fbclid")||window.getCookie("msclkid")||window.getCookie("gbraid")||window.getCookie("wbraid")?(o="ppc",n="PPC click ID present in query or cookie"):window.getCookie("xvsrcorganic")||t.some(t=>e.includes(t))?(o="search",n="xvsrcorganic cookie or referrer matched known search engine"):(window.getCookie("xvsrcwebsite")||e&&e.startsWith("http"))&&(o="organic",n='xvsrcwebsite cookie or referrer starts with http (fallback "other website" branch)'),console.log("[
1Source Debug] decided sourceValue:",o,"| reason:",n),window.setCookie("source",o,30),console.log("[Source Debug] source cookie written:",o)}else console.log("[Source Debug] guard SKIPPED recalculation — existingSource was already set to a non-direct value:",n,"(this means the value shown was NOT decided by this run of advScripts.js — check when/where it was set: a prior visit, or the Lambda@Edge function)")},loadTrackingCss=()=>{const e=`https://www.expressvpn.com/frtr/assets/css/astyle.css?xvid=${encodeURIComponent(window.getCookie("xvid")||"")}&referer_url=&page_url=${encodeURIComponent(window.location.href)}`,t=document.createElement("link");t.rel="stylesheet",t.href=e,document.head.appendChild(t)},checkIOS=()=>{let e=navigator.userAgent||navigator.vendor||window.opera;(/iPhone|iPad|iPod/.test(e)||navigator.userAgent.includes("Macintosh")&&navigator.maxTouchPoints>1)&&window.setCookie("is_ios","1",0)},initQueryParamProcessing=()=>{window.getCookie("FullAdvParams")&&window.deleteCookie("FullAdvParams"),window.getCookie("mp_ZXhwcmVzc3Zwbg")&&window.deleteCookie("mp_ZXhwcmVzc3Zwbg"),window.getCookie("landing_page")&&window.deleteCookie("landing_page"),processQueryParams(),storeUtmParamsIndividually(),processXvid(),processXwsid(),processLocale(),processXvLp(),processTrafficSource(),checkIOS(),(window.location.pathname.includes("/top/")||window.location.pathname.includes("/influencers")||"true"===document.documentElement.getAttribute("data-tracking-css"))&&loadTrackingCss(),window.location.search&&window.setCookie("FullAdvParams",window.location.search.substring(1),30),QueryString.servereventstatus&&window.setCookie("servereventstatus",QueryString.servereventstatus,1),QueryString.mb_id&&window.setCookie("mb_id",QueryString.mb_id,0)};function closeModal(e){e.preventDefault(),document.querySelector("html").classList.remove("open-modal")}function openModal(e){e.preventDefault(),document.querySelector("html").classList.add("open-modal")}initQueryParamProcessing(),document.addEventListener("DOMContentLoaded",function(){const e=document.querySelectorAll('#lang-btn, [data-click="lang-btn"], .footer-old__lang'),t=document.querySelector(".modal__close");e&&(e.forEach(function(e){e.addEventListener("click",function(e){openModal(e)})}),t&&t.addEventListener("click",e=>{closeModal(e)}),document.addEventListener("keydown",e=>{"Escape"===e.key&&document.querySelector("html").classList.contains("open-modal")&&closeModal(e)}),document.addEventListener("click",e=>{const t=document.querySelector(".modal__block");document.querySelector("html").classList.contains("open-modal")&&t&&!t.contains(e.target)&&!e.target.closest('#lang-btn, [data-click="lang-btn"], .footer-old__lang')&&closeModal(e)}))});const HEADER=document.querySelector(".header"),CTASticky=document.querySelector(".sticky-cta-block"),stickyMsg=document.querySelector(".hero .message"),BODY=document.body,HERO=document.querySelector(".hero"),HERO_CONTENT=document.querySelector(".hero .hero__content"),HERO_BUTTON=document.querySelector(".hero .button"),TABS_COMPONENT=document.querySelector(".tabs-component"),MAIN_EL=document.querySelector(".main"),DEAL_TIMERS=document.querySelectorAll(".deal-timer");let parentPaddingTop=0,elementMarginBottom=0;stickyMsg&&(parentPaddingTop=parseInt(window.getComputedStyle(stickyMsg.parentElement).paddingTop)||0,elementMarginBottom=parseInt(window.getComputedStyle(stickyMsg).marginBottom)||0);const landingPaths=["/start/","/top/"],normalizedPath=window.location.pathname.endsWith("/")?window.location.pathname:window.location.pathname+"/",isSpecificLandingPage=!landingPaths.some(e=>normalizedPath.includes(e));let isScrolling=!1;function onScroll(){isScrolling||(window.requestAnimationFrame(()=>{stickyHeader(),isScrolling=!1}),isScrolling=!0)}function mainTopSpace(){if(!HEADER)return;const e=TABS_COMPONENT&&TABS_COMPONENT.classList.contains("tabs-component--blog-nav-top"),t=BODY.classList.contains("single-post")||BODY.classList.contains("page-latest")||BODY.classList.contains("page-blog")||BODY.classList.contains("blog-cat")||BODY.classList.contains("blog-tag");"new"===document.documentElement.getAttribute("data-menu")&&t&&MAIN_EL&&(MAIN_EL.style.paddingTop=e?"0px":`${HEADER.offsetHeight}px`),e&&TABS_COMPONENT.style.setProperty("margin-top",`${HEADER.offsetHeight}px`,"important")}function setFooterSpace(){if(CTASticky){const e=document.querySelector(".footer");if(!e)return;const t=CTASticky.offsetHeight;window.matchMedia("(max-width: 767px)").matches?e.style.paddingBottom=`${t+25}px`:e.style.paddingBottom="25px"}}window.addEventListener("scroll",onScroll,{passive:!0}),window.addEventListener("load",()=>{stickyHeader(),mainTopSpace(),setFooterSpace(),initHeroButtonStickyCta()}),window.addEventListener("resize",()=>{mainTopSpace(),setFooterSpace()}),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",mainTopSpace):mainTopSpace();const MOBILE_MAX_WIDTH=768;function isHeroButtonControlled(){return!!(HERO_BUTTON&&window.innerWidth<MOBILE_MAX_WIDTH)}function initHeroButtonStickyCta(){if(!CTASticky||!HERO_BUTTON||stickyMsg)return;function e(){let e=HEADER.offsetHeight;return DEAL_TIMERS.forEach(t=>{e+=t.offsetHeight}),e}function t(e){const t=e[0].isIntersecting;CTASticky.classList.toggle("active",!t),BODY.classList.toggle("has-sticky-cta",!t)}let o,n=null,i=null;function r(){n&&n.disconnect(),window.innerWidth>=MOBILE_MAX_WIDTH?i=null:(i=e(),n=new IntersectionObserver(t,{rootMargin:`-${i}px 0px 0px 0px`,threshold:0}),n.observe(HERO_BUTTON))}r(),window.addEventListener("resize",()=>{clearTimeout(o),o=setTimeout(r,150)}),DEAL_TIMERS.length&&new MutationObserver(()=>{e()!==i&&r()}).observe(BODY,{attributes:!0,attributeFilter:["class"]})}function stickyHeader(){const e=window.scrollY,t=window.innerWidth>991;let o=0;HERO&&HERO_CONTENT&&(o=HERO.offsetHeight-HERO_CONTENT.offsetHeight);const n=HEADER.offsetHeight;let i=n;
1TABS_COMPONENT&&DEAL_TIMERS.length&&DEAL_TIMERS.forEach(e=>{i+=e.offsetHeight});const r=stickyMsg?stickyMsg.offsetHeight:0,c=!!document.querySelector(".tabs-component__btn--active");e>0&&((t||isSpecificLandingPage)&&(HEADER.classList.add("scroll"),TABS_COMPONENT&&(TABS_COMPONENT.style.top=`${i}px`)),t&&stickyMsg&&(stickyMsg.classList.add("fixed"),stickyMsg.style.top=`${n}px`,stickyMsg.parentElement.style.paddingTop=`${parentPaddingTop+r+elementMarginBottom}px`),c)||(isHeroButtonControlled()||(e>o?CTASticky&&!stickyMsg&&(CTASticky.classList.add("active"),BODY.classList.add("has-sticky-cta")):CTASticky&&(CTASticky.classList.remove("active"),BODY.classList.remove("has-sticky-cta"))),0===e&&(HEADER.classList.remove("scroll"),stickyMsg&&(stickyMsg.classList.remove("fixed"),stickyMsg.parentElement.style.paddingTop=parentPaddingTop+"px")))}function mobileMenuOld(e,t,o){e.forEach(o=>{o.addEventListener("click",o=>{o.stopPropagation(),t.classList.toggle("is-active"),e.forEach(e=>{e.classList.toggle("is-active")})})}),document.addEventListener("click",({target:n})=>{t.classList.contains("is-active")&&!t.contains(n)&&!Array.from(e).some(e=>e.contains(n))&&o&&(t.classList.remove("is-active"),e.forEach(e=>{e.classList.remove("is-active")}))}),t.addEventListener("click",e=>e.stopPropagation())}function mobileMenuAccordionOld(){document.querySelectorAll(".navbar__menu > li > button").forEach(e=>{e.addEventListener("click",()=>{const t=e.nextElementSibling,o=t.classList.contains("is-active");document.querySelectorAll(":not(.navbar__menu-dropdown-box) .navbar__menu-dropdown, .navbar__menu-dropdown-box").forEach(e=>{e.classList.remove("is-active"),e.previousElementSibling.classList.remove("is-active")}),o||(t.classList.add("is-active"),e.classList.add("is-active"),e.scrollIntoView({behavior:"smooth",block:"start",inline:"nearest"}))})})}let checkMenuSizeTimeout;function checkMenuSize(){const e=document.querySelector("#menu");if(!e)return;const t=e.offsetHeight,o=window.getComputedStyle(e),n=parseFloat(o.lineHeight),i=t>2*parseFloat(n)+12;document.body.classList.toggle("menu-hidden",i)}function mobileMenu(e,t,o){e.forEach(o=>{o.addEventListener("click",o=>{o.stopPropagation(),t.classList.toggle("is-active"),e.forEach(e=>{e.classList.toggle("is-active")})})}),document.addEventListener("click",({target:n})=>{t.classList.contains("is-active")&&!t.contains(n)&&!Array.from(e).some(e=>e.contains(n))&&o&&(t.classList.remove("is-active"),e.forEach(e=>{e.classList.remove("is-active")}))}),t.addEventListener("click",e=>e.stopPropagation())}function mobileMenuAccordion(){const e=document.querySelectorAll(".mobile-menu .navbar__menu > li button:not(.navbar__dropdown-back)"),t=document.querySelectorAll(".mobile-menu .navbar__menu > li .navbar__dropdown-back");e.forEach(e=>{e.addEventListener("click",()=>{e.nextElementSibling.classList.add("is-active")})}),t.forEach(e=>{e.addEventListener("click",()=>{e.parentNode.classList.remove("is-active")})})}function initLatestNewsLoadMore(){const e=document.getElementById("show-more-news");e&&"true"!==e.dataset.lnInit&&(e.dataset.lnInit="true",e.addEventListener("click",function(t){t.preventDefault();const o=document.querySelectorAll(".latest-news .latest-news__item.hide");let n=0;for(let e=0;e<o.length&&n<3;e++)o[e].classList.remove("hide"),n++;document.querySelectorAll(".latest-news .latest-news__item.hide").length||e.classList.add("hide")}))}function pricingCards(){const e=document.querySelector(".pricing-cards__control");if(!e)return;const t=document.getElementById("pricing-teams-data"),o=t?JSON.parse(t.textContent).tiers:[],n={monthly:1,annually:12,biennial:24},i={monthly:"1 Month",annually:"12 Months",biennial:"24 Months"};function r(e){const t=function(e){return o.find(t=>e>=t.min&&e<=t.max)||o[o.length-1]}(e);document.querySelectorAll(".pricing-cards__item[data-plan]").forEach(o=>{const r=o.dataset.plan,c=t[r],a=(c*e*n[r]).toFixed(2);o.querySelector(".pricing-cards__price-current").textContent=c.toFixed(2),o.querySelector(".js-renewal-total").textContent=a,o.querySelector(".js-renewal-count").textContent=String(e);const s=o.querySelector(".button");if(s){const t=i[r],o=c.toFixed(2),n=new URLSearchParams({licenses:e,plan:t,price:o,billingCycle:t});s.href=`/checkout2?${n.toString()}`}})}const c=document.querySelector(".notification-bar"),a=e.querySelector(".pricing-cards__control-minus"),s=e.querySelector(".pricing-cards__control-plus"),d=e.querySelector(".pricing-cards__control-field"),l=parseInt(d.min,10)||5;function u(e){const t=Math.max(l,Math.min(50,e));d.value=String(t),r(t),d.value>49?c.classList.add("is-active"):c.classList.remove("is-active")}a.addEventListener("click",()=>u(parseInt(d.value,10)-1)),s.addEventListener("click",()=>u(parseInt(d.value,10)+1)),d.addEventListener("change",()=>u(parseInt(d.value,10))),r(parseInt(d.value,10))}function isCookieBannerVisible(){const e=document.querySelector("#shadowHost"),t=e&&e.shadowRoot;return!!t&&!(!t.querySelector(".first-layer")&&!t.querySelector(".second-layer"))}function stickyBottom(){const e=document.querySelector(".sticky-bottom"),t=e&&e.querySelector(".sticky-bottom__close");if(!e||e.dataset.stickyBottomBound)return;function o(){!e.classList.contains("is-closed")&&isCookieBannerVisible()?e.classList.add("up"):e.classList.remove("up")}e.dataset.stickyBottomBound="1";let n=!1,i=!1;function r(){if(i=!1,window.innerWidth<768)return;if(n)return;const t=document.querySelector(".hero");if(t){const o=350;t.getBoundingClientRect().bottom<window.innerHeight-o?e.classList.add("active"):e.classList.remove("active")}else window.scrollY>200?e.classList.add("active"):e.classList.remove("active")}function c(){e.style.bottom="",o()}window.addEventListener("scroll",()=>{i||(i=!0,requestAnimationFrame(r))},{passive:!0}),r(),e.addEventListener("click",o=>
1t&&t.contains(o.target)?(e.classList.contains("active")?(e.classList.remove("active"),window.innerWidth>=768&&(n=!0)):e.classList.add("short"),void c()):e.classList.contains("short")?(e.classList.remove("short"),void c()):(e.classList.add("active"),void c())),document.addEventListener("click",t=>{if(e.classList.contains("active")&&!e.contains(t.target)){if(window.innerWidth>=768&&!n)return;e.classList.remove("active"),c()}}),"undefined"!=typeof ResizeObserver&&new ResizeObserver(c).observe(e),window.addEventListener("resize",c),function(){let e=null;function t(){const t=document.querySelector("#shadowHost"),n=t&&t.shadowRoot;return n?(e||(e=new MutationObserver(o),e.observe(n,{childList:!0,subtree:!0})),o(),!0):(o(),!1)}if(t())return;const n=new MutationObserver(()=>{t()&&n.disconnect()});n.observe(document.body,{childList:!0,subtree:!0}),o()}(),c()}document.addEventListener("DOMContentLoaded",()=>{if("old"!==document.documentElement.getAttribute("data-menu"))return;mobileMenuAccordionOld();const e=document.querySelectorAll(".menu-toggle"),t=document.querySelector(".mobile-menu");let o=document.querySelector("html").classList.contains("open-modal");function n(){window.matchMedia("(min-width: 1300px)").matches&&(t.classList.remove("is-active"),e.forEach(e=>{e.classList.remove("is-active")}))}e.length&&t&&(mobileMenuOld(e,t,o),n(),window.addEventListener("resize",n))}),checkMenuSize(),window.addEventListener("resize",()=>{clearTimeout(checkMenuSizeTimeout),checkMenuSizeTimeout=setTimeout(checkMenuSize,0)}),document.addEventListener("DOMContentLoaded",()=>{if("new"!==document.documentElement.getAttribute("data-menu"))return;document.querySelectorAll("#menu .navbar__dropdown").forEach(e=>{const t=e.querySelector(".navbar__dropdown-buttons");if(!t)return;const o=t.querySelectorAll("button[data-tab]"),n=e.querySelectorAll(".navbar__dropdown-main-col");let i=!1;if(o.length>0&&n.length>0){const e=o[0].getAttribute("data-tab");o[0].classList.add("active");const t=document.getElementById(e);t?t.classList.add("active"):n[0].classList.add("active")}o.forEach(n=>{n.addEventListener("mouseenter",()=>{if(!i){o.forEach(e=>e.classList.remove("active"));e.querySelectorAll(".navbar__dropdown-main-col").forEach(e=>e.classList.remove("active")),n.classList.add("active");const t=n.getAttribute("data-tab");if(t){let o=e.querySelector('[id="'+t.replace(/"/g,'\\"')+'"]');if(!o){const n=document.getElementById(t);n&&e.contains(n)&&(o=n)}o&&o.classList.add("active")}}}),n.addEventListener("click",()=>{const r=n.getAttribute("data-tab");i=!0,t.classList.add("selected"),o.forEach(e=>{e.classList.remove("active"),e.classList.remove("selected")});if(e.querySelectorAll(".navbar__dropdown-main-col").forEach(e=>e.classList.remove("active")),n.classList.add("selected"),r){let t=e.querySelector("#"+r);if(!t){const o=document.getElementById(r);if(!o||!e.contains(o))return;t=o}t&&(t.classList.add("active"),requestAnimationFrame(()=>{t.classList.contains("active")||t.classList.add("active"),setTimeout(()=>{t.classList.contains("active")||t.classList.add("active")},10)}))}})})});const e=document.querySelectorAll(".menu-toggle"),t=document.querySelector(".mobile-menu");let o=document.querySelector("html").classList.contains("open-modal");function n(){window.matchMedia("(min-width: 1300px)").matches&&(t.classList.remove("is-active"),e.forEach(e=>{e.classList.remove("is-active")}))}e.length&&t&&(mobileMenu(e,t,o),mobileMenuAccordion(),n(),window.addEventListener("resize",n))}),function(){"use strict";const e=".modal-blocker",t="country_redirect_preference",o=["AE"],n=["/tos","/privacy-policy","/privacy-policy-identity-defender","/tos/ex
1port-control-policy"],i=["teams.expressvpn.com"];function r(){const o=document.querySelector(e);if(!o)return;o.removeAttribute("hidden"),o.style.display="flex",document.body.style.overflow="hidden",document.documentElement.style.overflow="hidden";const n=o.querySelector("a.button");if(n){const e=document.documentElement.getAttribute("data-country"),o=t+"_"+(e?e.toUpperCase().toLowerCase():"uae"),i=function(e){!function(e,t,o){const n=new Date;n.setTime(n.getTime()+24*o*60*60*1e3);const i="expires="+n.toUTCString();document.cookie=e+"="+t+";"+i+";path=/"}(o,"1",30),n.removeEventListener("click",i)};n.addEventListener("click",i)}}function c(){const t=document.querySelector(e);t&&(t.setAttribute("hidden",""),document.body.style.overflow="",document.documentElement.style.overflow="")}function a(){const a=document.querySelector(e);if(!a)return;const s=document.documentElement.getAttribute("data-country");if(!s)return void c();const d=s.toUpperCase();if(-1===o.indexOf(d))return void c();if(function(){const e=window.location.pathname.replace(/\/$/,"")||"/";for(let t=0;t<n.length;t++){const o=n[t].replace(/\/$/,"");if(e===o||e.startsWith(o+"/"))return!0}const t=window.location.hostname;for(let e=0;e<i.length;e++)if(t===i[e]||t.endsWith("."+i[e]))return!0;return!1}())return void c();const l=a.getAttribute("data-target-url");if(!l)return void c();if(function(e){if(!e)return!1;const t=window.location.pathname.replace(/\/$/,"")||"/",o=(e.replace(/\/$/,"")||"/").split("/").filter(Boolean);if(0===o.length)return!1;const n=o[0].toLowerCase(),i=t.split("/").filter(Boolean);return 0!==i.length&&i[0].toLowerCase()===n}(l))return void c();const u=window.location.origin+(l.startsWith("/")?l:"/"+l);"1"!==function(e){const t=e+"=",o=document.cookie.split(";");for(let e=0;e<o.length;e++){let n=o[e];for(;" "===n.charAt(0);)n=n.substring(1,n.length);if(0===n.indexOf(t))return n.substring(t.length,n.length)}return null}(t+"_"+d.toLowerCase())?r():window.location.href=u}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",a):a()}(),document.addEventListener("DOMContentLoaded",()=>{(()=>{const e=document.querySelectorAll(".deal-timer--countdown");e&&e.forEach(e=>{const t=e.getAttribute("data-end-date");if(!t)return;const o=new Date(t).getTime();if(isNaN(o))return;const n=e.querySelector(".timer__list");if(!n)return;const i=n.querySelector(".timer__days"),r=n.querySelector(".timer__hours"),c=n.querySelector(".timer__mins"),a=n.querySelector(".timer__sec");let s;function d(){const t=Date.now(),n=o-t;let d=0,l=0,u=0,m=0;if(n>0)d=Math.floor(n/864e5),l=Math.floor(n%864e5/36e5),u=Math.floor(n%36e5/6e4),m=Math.floor(n%6e4/1e3);else if(s&&clearInterval(s),e.style.display="none",!Array.from(document.querySelectorAll(".deal-timer")).some(function(t){return t!==e&&"none"!==t.style.display})){document.body.classList.remove("deal-timer-active"),document.body.style.paddingTop="";var g=document.querySelector(".header");g&&(g.style.top="")}i&&(i.textContent=String(d)),r&&(r.textContent=String(l)),c&&(c.textContent=String(u)),a&&(a.textContent=String(m))}d(),s=setInterval(d,1e3)})})(),(()=>{const e=document.querySelector(".mini-timer");if(!e)return;const t=new Date(e.dataset.expire).getTime(),o=e.querySelector(".t-days"),n=e.querySelector(".t-hours"),i=e.querySelector(".t-mins"),r=e.querySelector(".t-sec");let c;function a(){const e=(new Date).getTime(),a=t-e;let s=0,d=0,l=0,u=0;a>0?(s=Math.floor(a/864e5),d=Math.floor(a%864e5/36e5),l=Math.floor(a%36e5/6e4),u=Math.floor(a%6e4/1e3)):c&&clearInterval(c),o&&(o.textContent=s),n&&(n.textContent=d),i&&(i.textContent=l),r&&(r.textContent=u),o&&o.classList.toggle("hidden",0===s),n&&n.classList.toggle("hidden",0===s&&0===d)}a(),c=setInterval(a,1e3)})()}),function(){"use strict";const e=function(){const e=navigator.userAgent||navigator.vendor||window.opera,t=navigator.platform||"";return/iPad|iPhone|iPod/.test(e)&&!window.MSStream||/Macintosh/i.test(e)&&navigator.maxTouchPoints>1?"ios":/android/i.test(e)?"android":/Windows|Win32|Win64|WinCE/i.test(e)||/Windows/.test(t)?"windows":/Macintosh|MacIntel|MacPPC|Mac68K/i.test(e)||/Mac/.test(t)?"macos":/Linux/i.test(e)&&!/android/i.test(e)?"linux":"default"}();document.documentElement.setAttribute("data-device",e)}(),document.addEventListener("DOMContentLoaded",()=>{const e=document.querySelector(".animate");if(!e)return;const t=e.parentElement,o=Array.from(e.querySelectorAll("span"));if(!o.length)return;const n=()=>{const o=t.getBoundingClientRect(),n=e.getBoundingClientRect(),i=n.left-o.left,r=
1o.right-n.right;e.style.justifyItems=Math.abs(i-r)<15?"center":"start"};"undefined"!=typeof ResizeObserver?new ResizeObserver(()=>{n()}).observe(t):window.addEventListener("resize",n),setTimeout(n,100);const i=e=>{o.forEach(e=>e.classList.remove("next")),o[(e+1)%o.length].classList.add("next")};o[0].classList.add("active"),i(0),setInterval(()=>{const e=o.findIndex(e=>e.classList.contains("active")),t=(e+1)%o.length;o[e].classList.remove("active"),o[t].classList.remove("next"),o[t].classList.add("active"),i(t),setTimeout(n,50)},2e3)}),document.addEventListener("DOMContentLoaded",function(){initLatestNewsLoadMore()}),document.addEventListener("lazyScriptLoaded",function(){initLatestNewsLoadMore()}),document.addEventListener("DOMContentLoaded",function(){const e="open-modal--deal",t=Date.parse("2026-09-23T00:00:00Z");const o=function(){const e=function(){const e=Array.from(document.querySelectorAll(".deal-modal[data-xp-key]"));if(!e.length)return;const t=e[0].getAttribute("data-xp-key"),o="data-xp-"+t.toLowerCase().replace(/[^a-z0-9-]/g,"-");let n=document.documentElement.getAttribute(o);if(null===n)try{const e=a("xvldcontext"),o=e?JSON.parse(decodeURIComponent(e)):null;n=o&&o.experiments&&o.experiments[t]||null}catch(e){n=null}const i=null!==n&&e.find(e=>e.getAttribute("data-xp-var")===n)||e.find(e=>e.hasAttribute("data-xp-default"))||null;return e.forEach(e=>{e!==i&&(e.style.display="none")}),i}();return void 0!==e?e:document.querySelector(".deal-modal")}();if(!o)return;const n=o.classList.contains("modal--legal-mandatory"),i=o.querySelector(".modal__close"),r=o.querySelector(".modal__block");let c=!1;function a(e){const t=e+"=",o=document.cookie.split(";");for(let e=0;e<o.length;e++){let n=o[e];for(;" "===n.charAt(0);)n=n.substring(1);if(0===n.indexOf(t))return n.substring(t.length)}return null}function s(){return!n&&a("dealModalShown")}function d(){return document.documentElement.classList.contains(e)}function l(){return window.matchMedia("(hover: none) and (pointer: coarse)").matches||"ontouchstart"in window&&navigator.maxTouchPoints>0}function u(t){t.preventDefault(),n||function(e,t,o){const n=new Date(Date.now()+36e5*o).toUTCString();document.cookie=e+"="+t+"; expires="+n+"; path=/; SameSite=Lax"}("dealModalShown","1",24),document.documentElement.classList.remove(e),document.body.style.overflow="";const o=document.querySelector(".sticky-cta-block");o&&o.removeAttribute("style")}function m(t){t.preventDefault(),document.documentElement.classList.add(e),document.body.style.overflow="hidden";const o=document.querySelector(".sticky-cta-block");o&&(o.style.display="none")}document.addEventListener("keydown",e=>{e.ctrlKey&&e.altKey&&"e"===e.key&&m(e)}),n?(m({preventDefault(){}}),r&&r.addEventListener("click",e=>{e.target.closest("a, button")&&u(e)})):Date.now()<t&&(!function(){if(c||l())return;function e(e){if(s()||d())return;const t="number"==typeof e.clientY?e.clientY:null;null===t||t>5||m(e)}function t(e){s()||d()||null===e.relatedTarget&&("number"==typeof e.clientY&&e.clientY>5||m(e))}c=!0,document.documentElement.addEventListener("mouseleave",e),document.documentElement.addEventListener("mouseout",t)}(),l()&&setTimeout(function(){if(s())return;const e={preventDefault(){}};let t=0,o=0;function n(){window.removeEventListener("scroll",r),document.removeEventListener("touchstart",c),document.removeEventListener("touchmove",a)}function i(){d()||(n(),m(e))}function r(){const e=function(){const e=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight);return Math.max(0,e-window.innerHeight)}();e<=0||window.scrollY/e>=.5&&i()}function c(e){e.touches.length&&(t=e.touches[0].clientY,o=Date.now())}function a(e){if(!e.touches.length)return;const n=Date.now(),r=n-o;if(r>0){(e.touches[0].clientY-t)/r>1.5&&i()}t=e.touches[0].clientY,o=n}window.addEventListener("scroll",r,{passive:!0}),document.addEventListener("touchstart",c,{passive:!0}),document.addEventListener("touchmove",a,{passive:!0})},5e3),i&&i.addEventListener("click",e=>u(e)),document.addEventListener("keydown",e=>{"Escape"===e.key&&d()&&u(e)}),document.addEventListener("click",e=>{d()&&r&&!r.contains(e.target)&&u(e)}))}),document.addEventListener("DOMContentLoaded",function(){pricingCards()}),document.addEventListener("DOMContentLoaded",stickyBottom),document.addEventListener("lazyScriptLoaded",stickyBottom),document.addEventListener("DOMContentLoaded",()=>{const e=document.querySelectorAll("canvas[data-anim]");if(e.length){(async()=>{const{DotLottie:e}=await(import("/wp-ws/themes/expressvpn/assets/js/dotlottie-web/index.js"));return e})().then(t=>
1{e.forEach(e=>{const o=e.dataset.anim;new t({canvas:e,src:o,loop:!0,autoplay:!0,renderConfig:{autoResize:!0,devicePixelRatio:1}})})}).catch(e=>{console.error("Failed to load DotLottie:",e)})}}),document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll("[data-filter-with-slider-section]").forEach(function(e){const t=Array.from(e.querySelectorAll("[data-filter-with-slider-card]")),o=e.querySelector("[data-filter-with-slider-year]"),n=e.querySelector("[data-filter-with-slider-topic]"),i=e.querySelector("[data-filter-with-slider-load-more]"),r=i?i.closest(".organic-cards__load-more-wrap"):null;if(!t.length)return;const c="is-hidden",a=Number(e.dataset.filterVisibleLimit)||6;let s=a;function d(e){const t=o?o.value:"",i=n?n.value:"",r=e.dataset.filterYear||"",c=e.dataset.filterTopic||"",a=e.dataset.filterTopics||"",s=!t||r===t,d=!i||c===i||-1!==a.indexOf("|"+i+"|");return s&&d}function l(){const e=t.filter(function(e){return d(e)});let o=0;t.forEach(function(e){d(e)&&o<s?(e.classList.remove(c),o++):e.classList.add(c)}),function(e){if(!i)return;const t=e>s;r?r.style.display=t?"":"none":i.style.display=t?"":"none"}(e.length)}function u(){s=a,l()}o&&o.addEventListener("change",u),n&&n.addEventListener("change",u),i&&i.addEventListener("click",function(){s+=a,l()}),l()})});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.