PageSourceSearch

https://www.beenverified.com/content-assets/growthbook.d51347085570cd5b00c71fa4d9a4525a.js

js beenverified.com collected 2026-10-01 10:34:45 UTC 47,896 bytes, 1 lines download raw bytes

1(()=>{var dt=Object.defineProperty,ht=Object.defineProperties;var gt=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var we=Object.prototype.hasOwnProperty,Ce=Object.prototype.propertyIsEnumerable;var Se=(t,e,r)=>e in t?dt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,d=(t,e)=>{for(var r in e||(e={}))we.call(e,r)&&Se(t,r,e[r]);if(H)for(var r of H(e))Ce.call(e,r)&&Se(t,r,e[r]);return t},A=(t,e)=>ht(t,gt(e));var Ve=(t,e)=>{var r={};for(var s in t)we.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(t!=null&&H)for(var s of H(t))e.indexOf(s)<0&&Ce.call(t,s)&&(r[s]=t[s]);return r};var f=(t,e,r)=>new Promise((s,i)=>{var n=l=>{try{a(r.next(l))}catch(u){i(u)}},o=l=>{try{a(r.throw(l))}catch(u){i(u)}},a=l=>l.done?s(l.value):Promise.resolve(l.value).then(n,o);a((r=r.apply(t,e)).next())});var Ne={fetch:globalThis.fetch?globalThis.fetch.bind(globalThis):void 0,SubtleCrypto:globalThis.crypto?globalThis.crypto.subtle:void 0,EventSource:globalThis.EventSource};function Be(){return Ne}function ae(t){let e=2166136261,r=t.length;for(let s=0;s<r;s++)e^=t.charCodeAt(s),e+=(e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24);return e>>>0}function L(t,e,r){return r===2?ae(ae(t+e)+"")%1e4/1e4:r===1?ae(e+t)%1e3/1e3:null}function pt(t){return t<=0?[]:new Array(t).fill(1/t)}function q(t,e){return t>=e[0]&&t<e[1]}function Oe(t,e){let r=L("__"+e[0],t,1);return r===null?!1:r>=e[1]&&r<e[2]}function Te(t,e){for(let r=0;r<e.length;r++)if(q(t,e[r]))return r;return-1}function le(t){try{let e=t.replace(/([^\\])\//g,"$1\\/");return new RegExp(e)}catch(e){console.error(e);return}}function j(t,e){if(!e.length)return!1;let r=!1,s=!1;for(let i=0;i<e.length;i++){let n=kt(t,e[i].type,e[i].pattern);if(e[i].include===!1){if(n)return!1}else r=!0,n&&(s=!0)}return s||!r}function yt(t,e,r){try{let s=e.replace(/[*.+?^${}()|[\]\\]/g,"\\$&").replace(/_____/g,".*");return r&&(s="\\/?"+s.replace(/(^\/|\/$)/g,"")+"\\/?"),new RegExp("^"+s+"$","i").test(t)}catch(s){return!1}}function bt(t,e){try{let r=new URL(e.replace(/^([^:/?]*)\./i,"https://$1.").replace(/\*/g,"_____"),"https://_____"),s=[[t.host,r.host,!1],[t.pathname,r.pathname,!0]];return r.hash&&s.push([t.hash,r.hash,!1]),r.searchParams.forEach((i,n)=>{s.push([t.searchParams.get(n)||"",i,!1])}),!s.some(i=>!yt(i[0],i[1],i[2]))}catch(r){return!1}}function kt(t,e,r){try{let s=new URL(t,"https://_");if(e==="regex"){let i=le(r);return i?i.test(s.href)||i.test(s.href.substring(s.origin.length)):!1}else if(e==="simple")return bt(s,r);return!1}catch(s){return!1}}function Fe(t,e,r){e=e===void 0?1:e,e<0?e=0:e>1&&(e=1);let s=pt(t);r=r||s,r.length!==t&&(r=s);let i=r.reduce((o,a)=>a+o,0);(i<.99||i>1.01)&&(r=s);let n=0;return r.map(o=>{let a=n;return n+=o,[a,a+e*o]})}function Re(t,e,r){if(!e)return null;let s=e.split("?")[1];if(!s)return null;let i=s.replace(/#.*/,"").split("&").map(n=>n.split("=",2)).filter(n=>{let[o]=n;return o===t}).map(n=>{let[,o]=n;return parseInt(o)});return i.length>0&&i[0]>=0&&i[0]<r?i[0]:null}function Ue(t){try{return t()}catch(e){return console.error(e),!1}}var ue=t=>Uint8Array.from(atob(t),e=>e.charCodeAt(0));function C(t,e,r){return f(this,null,function*(){if(e=e||"",r=r||globalThis.crypto&&globalThis.crypto.subtle||Ne.SubtleCrypto,!r)throw new Error("No SubtleCrypto implementation found");try{let s=yield r.importKey("raw",ue(e),{name:"AES-CBC",length:128},!0,["encrypt","decrypt"]),[i,n]=t.split("."),o=yield r.decrypt({name:"AES-CBC",iv:ue(i)},s,ue(n));return new TextDecoder().decode(o)}catch(s){throw new Error("Failed to decrypt")}})}function M(t){return typeof t=="string"?t:JSON.stringify(t)}function y(t){typeof t=="number"&&(t=t+""),(!t||typeof t!="string")&&(t="0");let e=t.replace(/(^v|\+.*$)/g,"").split(/[-.]/);return e.length===3&&e.push("~"),e.map(r=>r.match(/^[0-9]+$/)?r.padStart(5," "):r).join("-")}function Le(){let t;try{t="1.6.1"}catch(e){t=""}return t}function Me(t,e){let r,s;try{r=new URL(t),s=new URL(e)}catch(i){return console.error(`Unable to merge query strings: ${i}`),e}return r.searchParams.forEach((i,n)=>{s.searchParams.has(n)||s.searchParams.set(n,i)}),s.toString()}function De(t){return typeof t=="object"&&t!==null}function J(t){return t.urlPatterns&&t.variations.some(e=>De(e)&&"urlRedirect"in e)?"redirect":t.variations.some(e=>De(e)&&(e.domMutations||"js"in e||"css"in e))?"visual":"unknown"}function G(t,e){return f(this,null,function*(){return new Promise(r=>{let s=!1,i,n=o=>{s||(s=!0,i&&clearTimeout(i),r(o||null))};e&&(i=setTimeout(()=>n(),e)),t.then(o=>n(o)).catch(()=>n())})})}var p={staleTTL:1e3*60,maxAge:1e3*60*60*4,cacheKey:"gbFeaturesCache",backgroundSync:!0,maxEntries:10,disableIdleStreams:!1,idleStreamInterval:2e4,disableCache:!1},m=Be(),N={fetchFeaturesCall:t=>{let{host:e,clientKey:r,headers:s}=t;return m.fetch(`${e}/api/features/${r}`,{headers:s})},fetchRemoteEvalCall:t=>{let{host:e,clientKey:r,payload:s,headers:i}=t,n={method:"POST",headers:d({"Content-Type":"application/json"},i),body:JSON.stringify(s)};return m.fetch(`${e}/api/eval/${r}`,n)},eventSourceCall:t=>{let{host:e,clientKey:r,headers:s}=t;return s?new m.EventSource(`${e}/sub/${r}`,{headers:s}):new m.EventSource(`${e}/sub/${r}`)},startIdleListener:()=>{let t;if(!(typeof window!="undefined"&&typeof document!="undefined"))return;let r=()=>{document.visibilityState==="visible"?(window.clearTimeout(t),Et()):document.visibilityState==="hidden"&&(t=window.setTimeout(mt,p.idleStreamInterval))};return document.addEventListener("visibilitychange",r),()=>document.removeEventListener("visibilitychange",r)},stopIdleListener:()=>{}};try{globalThis.localStorage&&(m.localStorage=globalThis.localStorage)}catch(t){}var B=new Map,Pe=!1,E=new Map,x=new Map,O=new Map,T=new Set;function Ke(t){Object.assign(p,t),p.backgroundSync||Ct()}function $e(t){return f(this,null,function*(){let{instance:e,timeout:r,skipCache:s,allowStale:i,backgroundSync:n}=t;return n||(p.backgroundSync=!1),_t({instance:e,allowStale:i,timeout:r,skipCache:s})})}function vt(t){let e=P(t),r=B.get(e)||new Set;r.add(t),B.set(e,r)}
1function He(t){B.forEach(e=>e.delete(t))}function mt(){O.forEach(t=>{t&&(t.state="idle",he(t))})}function Et(){O.forEach(t=>{t&&t.state==="idle"&&ge(t)})}function Ie(){return f(this,null,function*(){try{if(!m.localStorage)return;yield m.localStorage.setItem(p.cacheKey,JSON.stringify(Array.from(E.entries())))}catch(t){}})}function _t(t){return f(this,null,function*(){let{instance:e,allowStale:r,timeout:s,skipCache:i}=t,n=P(e),o=fe(e),a=new Date,l=new Date(a.getTime()-p.maxAge+p.staleTTL);yield At();let u=!p.disableCache&&!i?E.get(o):void 0;return u&&(r||u.staleAt>a)&&u.staleAt>l?(u.sse&&T.add(n),u.staleAt<a?ce(e):de(e),{data:u.data,success:!0,source:"cache"}):(yield G(ce(e),s))||{data:null,success:!1,source:"timeout",error:new Error("Timeout")}})}function P(t){let[e,r]=t.getApiInfo();return`${e}||${r}`}function fe(t){let e=P(t);if(!("isRemoteEval"in t)||!t.isRemoteEval())return e;let r=t.getAttributes(),s=t.getCacheKeyAttributes()||Object.keys(t.getAttributes()),i={};s.forEach(a=>{i[a]=r[a]});let n=t.getForcedVariations(),o=t.getUrl();return`${e}||${JSON.stringify({ca:i,fv:n,url:o})}`}function At(){return f(this,null,function*(){if(!Pe){Pe=!0;try{if(m.localStorage){let t=yield m.localStorage.getItem(p.cacheKey);if(!p.disableCache&&t){let e=JSON.parse(t);e&&Array.isArray(e)&&e.forEach(r=>{let[s,i]=r;E.set(s,A(d({},i),{staleAt:new Date(i.staleAt)}))}),qe()}}}catch(t){}if(!p.disableIdleStreams){let t=N.startIdleListener();t&&(N.stopIdleListener=t)}}})}function qe(){let t=Array.from(E.entries()).map(r=>{let[s,i]=r;return{key:s,staleAt:i.staleAt.getTime()}}).sort((r,s)=>r.staleAt-s.staleAt),e=Math.min(Math.max(0,E.size-p.maxEntries),E.size);for(let r=0;r<e;r++)E.delete(t[r].key)}function je(t,e,r){let s=r.dateUpdated||"",i=new Date(Date.now()+p.staleTTL),n=p.disableCache?void 0:E.get(e);if(n&&s&&n.version===s){n.staleAt=i,Ie();return}p.disableCache||(E.set(e,{data:r,version:s,staleAt:i,sse:T.has(t)}),qe()),Ie();let o=B.get(t);o&&o.forEach(a=>St(a,r))}function St(t,e){return f(this,null,function*(){yield t.setPayload(e||t.getPayload())})}function ce(t){return f(this,null,function*(){let{apiHost:e,apiRequestHeaders:r}=t.getApiHosts(),s=t.getClientKey(),i="isRemoteEval"in t&&t.isRemoteEval(),n=P(t),o=fe(t),a=x.get(o);return a||(a=(i?N.fetchRemoteEvalCall({host:e,clientKey:s,payload:{attributes:t.getAttributes(),forcedVariations:t.getForcedVariations(),forcedFeatures:Array.from(t.getForcedFeatures().entries()),url:t.getUrl()},headers:r}):N.fetchFeaturesCall({host:e,clientKey:s,headers:r})).then(u=>{if(!u.ok)throw new Error(`HTTP error: ${u.status}`);return u.headers.get("x-sse-support")==="enabled"&&T.add(n),u.json()}).then(u=>(je(n,o,u),de(t),x.delete(o),{data:u,success:!0,source:"network"})).catch(u=>(x.delete(o),{data:null,source:"error",success:!1,error:u})),x.set(o,a)),a})}function de(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=P(t),s=fe(t),{streamingHost:i,streamingHostRequestHeaders:n}=t.getApiHosts(),o=t.getClientKey();if(e&&T.add(r),p.backgroundSync&&T.has(r)&&m.EventSource){if(O.has(r))return;let a={src:null,host:i,clientKey:o,headers:n,cb:l=>{try{if(l.type==="features-updated"){let u=B.get(r);u&&u.forEach(c=>{ce(c)})}else if(l.type==="features"){let u=JSON.parse(l.data);je(r,s,u)}a.errors=0}catch(u){Je(a)}},errors:0,state:"active"};O.set(r,a),ge(a)}}function Je(t){if(t.state!=="idle"&&(t.errors++,t.errors>3||t.src&&t.src.readyState===2)){let e=Math.pow(3,t.errors-3)*(1e3+Math.random()*1e3);he(t),setTimeout(()=>{["idle","active"].includes(t.state)||ge(t)},Math.min(e,3e5))}}function he(t){t.src&&(t.src.onopen=null,t.src.onerror=null,t.src.close(),t.src=null,t.state==="active"&&(t.state="disabled"))}function ge(t){t.src=N.eventSourceCall({host:t.host,clientKey:t.clientKey,headers:t.headers}),t.state="active",t.src.addEventListener("features",t.cb),t.src.addEventListener("features-updated",t.cb),t.src.onerror=()=>Je(t),t.src.onopen=()=>{t.errors=0}}function wt(t,e){he(t),O.delete(e)}function Ct(){T.clear(),O.forEach(wt),B.clear(),N.stopIdleListener()}function z(t,e){if(e.streaming){if(!t.getClientKey())throw new Error("Mu
1st specify clientKey to enable streaming");e.payload&&de(t,!0),vt(t)}}var Vt=/^[a-zA-Z:_][a-zA-Z0-9:_.-]*$/,be={revert:function(){}},X=new Map,ke=new Set;function Dt(t){return t==="html"?{childList:!0,subtree:!0,attributes:!0,characterData:!0}:{childList:!1,subtree:!1,attributes:!0,attributeFilter:[t]}}function Y(t){var e=X.get(t);return e||(e={element:t,attributes:{}},X.set(t,e)),e}function ee(t,e,r,s,i){var n=r(t),o={isDirty:!1,originalValue:n,virtualValue:n,mutations:[],el:t,_positionTimeout:null,observer:new MutationObserver(function(){if(!(e==="position"&&o._positionTimeout)){e==="position"&&(o._positionTimeout=setTimeout(function(){o._positionTimeout=null},1e3));var a=r(t);e==="position"&&a.parentNode===o.virtualValue.parentNode&&a.insertBeforeNode===o.virtualValue.insertBeforeNode||a!==o.virtualValue&&(o.originalValue=a,i(o))}}),mutationRunner:i,setValue:s,getCurrentValue:r};return e==="position"&&t.parentNode?o.observer.observe(t.parentNode,{childList:!0,subtree:!0,attributes:!1,characterData:!1}):o.observer.observe(t,Dt(e)),o}function te(t,e){var r=e.getCurrentValue(e.el);e.virtualValue=t,t&&typeof t!="string"?(!r||t.parentNode!==r.parentNode||t.insertBeforeNode!==r.insertBeforeNode)&&(e.isDirty=!0,Ge()):t!==r&&(e.isDirty=!0,Ge())}function Nt(t){var e=t.originalValue;t.mutations.forEach(function(r){return e=r.mutate(e)}),te(qt(e),t)}function Bt(t){var e=new Set(t.originalValue.split(/\s+/).filter(Boolean));t.mutations.forEach(function(r){return r.mutate(e)}),te(Array.from(e).filter(Boolean).join(" "),t)}function Ot(t){var e=t.originalValue;t.mutations.forEach(function(r){return e=r.mutate(e)}),te(e,t)}function Tt(t){var e=t.parentSelector,r=t.insertBeforeSelector,s=document.querySelector(e);if(!s)return null;var i=r?document.querySelector(r):null;return r&&!i?null:{parentNode:s,insertBeforeNode:i}}function Ft(t){var e=t.originalValue;t.mutations.forEach(function(r){var s=r.mutate(),i=Tt(s);e=i||e}),te(e,t)}var Rt=function(e){return e.innerHTML},Ut=function(e,r){return e.innerHTML=r};function ze(t){var e=Y(t);return e.html||(e.html=ee(t,"html",Rt,Ut,Nt)),e.html}var Lt=function(e){return{parentNode:e.parentElement,insertBeforeNode:e.nextElementSibling}},Mt=function(e,r){r.insertBeforeNode&&!r.parentNode.contains(r.insertBeforeNode)||r.parentNode.insertBefore(e,r.insertBeforeNode)};function Qe(t){var e=Y(t);return e.position||(e.position=ee(t,"position",Lt,Mt,Ft)),e.position}var Pt=function(e,r){return r?e.className=r:e.removeAttribute("class")},It=function(e){return e.className};function We(t){var e=Y(t);return e.classes||(e.classes=ee(t,"class",It,Pt,Bt)),e.classes}var Kt=function(e){return function(r){var s;return(s=r.getAttribute(e))!=null?s:null}},$t=function(e){return function(r,s){return s!==null?r.setAttribute(e,s):r.removeAttribute(e)}};function Ze(t,e){var r=Y(t);return r.attributes[e]||(r.attributes[e]=ee(t,e,Kt(e),$t(e),Ot)),r.attributes[e]}function Ht(t,e){var r=X.get(t);if(r)if(e==="html"){var s,i;(s=r.html)==null||(i=s.observer)==null||i.disconnect(),delete r.html}else if(e==="class"){var n,o;(n=r.classes)==null||(o=n.observer)==null||o.disconnect(),delete r.classes}else if(e==="position"){var a,l;(a=r.position)==null||(l=a.observer)==null||l.disconnect(),delete r.position}else{var u,c,h;(u=r.attributes)==null||(c=u[e])==null||(h=c.observer)==null||h.disconnect(),delete r.attributes[e]}}var Q;function qt(t){return Q||(Q=document.createElement("div")),Q.innerHTML=t,Q.innerHTML}function W(t,e,r){if(r.isDirty){r.isDirty=!1;var s=r.virtualValue;r.mutations.length||Ht(t,e),r.setValue(t,s)}}function jt(t,e){t.html&&W(e,"html",t.html),t.classes&&W(e,"class",t.classes),t.position&&W(e,"position",t.position),Object.keys(t.attributes).forEach(function(r){W(e,r,t.attributes[r])})}function Ge(){X.forEach(jt)}function Jt(t,e){var r=null;t.kind==="html"?r=ze(e):t.kind==="class"?r=We(e):t.kind==="attribute"?r=Ze(e,t.attribute):t.kind==="position"&&(r=Qe(e)),r&&(r.mutations.push(t),r.mutationRunner(r))}function Gt(t,e){var r=null;if(t.kind==="html"?r=ze(e):t.kind==="class"?r=We(e):t.kind==="attribute"?r=Ze(e,t.attribute):t.kind==="position"&&(r=Qe(e)),!!r){var s=r.mutations.indexOf(t);s!==-1&&r.mutations.splice(s,1),r.mutationRunner(r)}}function Xe(t){if(!(t.kind==="position"&&t.elements.size===1)){var e=new Set(t.elements),r=document.querySelectorAll(t.selector);r.forEach(function(s){e.has(s)||(t.elements.add(s),Jt(t,s))})}}
1function xt(t){t.elements.forEach(function(e){return Gt(t,e)}),t.elements.clear(),ke.delete(t)}function xe(){ke.forEach(Xe)}var pe;function zt(){typeof document!="undefined"&&(pe||(pe=new MutationObserver(function(){xe()})),xe(),pe.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}zt();function re(t){return typeof document=="undefined"?be:(ke.add(t),Xe(t),{revert:function(){xt(t)}})}function ye(t,e){return re({kind:"html",elements:new Set,mutate:e,selector:t})}function Ye(t,e){return re({kind:"position",elements:new Set,mutate:e,selector:t})}function I(t,e){return re({kind:"class",elements:new Set,mutate:e,selector:t})}function Z(t,e,r){return Vt.test(e)?e==="class"||e==="className"?I(t,function(s){var i=r(Array.from(s).join(" "));s.clear(),i&&i.split(/\s+/g).filter(Boolean).forEach(function(n){return s.add(n)})}):re({kind:"attribute",attribute:e,elements:new Set,mutate:r,selector:t}):be}function Qt(t){var e=t.selector,r=t.action,s=t.value,i=t.attribute,n=t.parentSelector,o=t.insertBeforeSelector;if(i==="html"){if(r==="append")return ye(e,function(a){return a+(s!=null?s:"")});if(r==="set")return ye(e,function(){return s!=null?s:""})}else if(i==="class"){if(r==="append")return I(e,function(a){s&&a.add(s)});if(r==="remove")return I(e,function(a){s&&a.delete(s)});if(r==="set")return I(e,function(a){a.clear(),s&&a.add(s)})}else if(i==="position"){if(r==="set"&&n)return Ye(e,function(){return{insertBeforeSelector:o,parentSelector:n}})}else{if(r==="append")return Z(e,i,function(a){return a!==null?a+(s!=null?s:""):s!=null?s:""});if(r==="set")return Z(e,i,function(){return s!=null?s:""});if(r==="remove")return Z(e,i,function(){return null})}return be}var Wt={html:ye,classes:I,attribute:Z,position:Ye,declarative:Qt},et=Wt;var ve={};function S(t,e,r){r=r||{};for(let[s,i]of Object.entries(e))switch(s){case"$or":if(!tt(t,i,r))return!1;break;case"$nor":if(tt(t,i,r))return!1;break;case"$and":if(!rr(t,i,r))return!1;break;case"$not":if(S(t,i,r))return!1;break;default:if(!K(i,Zt(t,s),r))return!1}return!0}function Zt(t,e){let r=e.split("."),s=t;for(let i=0;i<r.length;i++)if(s&&typeof s=="object"&&r[i]in s)s=s[r[i]];else return null;return s}function Xt(t){return ve[t]||(ve[t]=new RegExp(t.replace(/([^\\])\//g,"$1\\/"))),ve[t]}function K(t,e,r){if(typeof t=="string")return e+""===t;if(typeof t=="number")return e*1===t;if(typeof t=="boolean")return e!==null&&!!e===t;if(t===null)return e===null;if(Array.isArray(t)||!rt(t))return JSON.stringify(e)===JSON.stringify(t);for(let s in t)if(!tr(s,e,t[s],r))return!1;return!0}function rt(t){let e=Object.keys(t);return e.length>0&&e.filter(r=>r[0]==="$").length===e.length}function Yt(t){if(t===null)return"null";if(Array.isArray(t))return"array";let e=typeof t;return["string","number","boolean","object","undefined"].includes(e)?e:"unknown"}function er(t,e,r){if(!Array.isArray(t))return!1;let s=rt(e)?i=>K(e,i,r):i=>S(i,e,r);for(let i=0;i<t.length;i++)if(t[i]&&s(t[i]))return!0;return!1}function se(t,e){return Array.isArray(t)?t.some(r=>e.includes(r)):e.includes(t)}function tr(t,e,r,s){switch(t){case"$veq":return y(e)===y(r);case"$vne":return y(e)!==y(r);case"$vgt":return y(e)>y(r);case"$vgte":return y(e)>=y(r);case"$vlt":return y(e)<y(r);case"$vlte":return y(e)<=y(r);case"$eq":return e===r;case"$ne":return e!==r;case"$lt":return e<r;case"$lte":return e<=r;case"$gt":return e>r;case"$gte":return e>=r;case"$exists":return r?e!=null:e==null;case"$in":return Array.isArray(r)?se(e,r):!1;case"$inGroup":return se(e,s[r]||[]);case"$notInGroup":return!se(e,s[r]||[]);case"$nin":return Array.isArray(r)?!se(e,r):!1;case"$not":return!K(r,e,s);case"$size":return Array.isArray(e)?K(r,e.length,s):!1;case"$elemMatch":return er(e,r,s);case"$all":if(!Array.isArray(e))return!1;for(let i=0;i<r.length;i++){let n=!1;for(let o=0;o<e.length;o++)if(K(r[i],e[o],s)){n=!0;break}if(!n)return!1}return!0;case"$regex":try{return Xt(r).test(e)}catch(i){return!1}case"$type":return Yt(e)===r;default:return console.error("Unknown operator: "+t),!1}}function tt(t,e,r){if(!e.length)return!0;for(let s=0;s<e.length;s++)if(S(t,e[s],r))return!0;return!1}function rr(t,e,r){for(let s=0;s<e.length;s++)if(!S(t,e[s],r))return!1;return!0}var sr="Feature Evaluated",ir="Experiment Viewed";function nr(t){let e=new Map;return t.global.forcedFeatureValues&&t.global.forcedFeatureValues.forEac
1h((r,s)=>e.set(s,r)),t.user.forcedFeatureValues&&t.user.forcedFeatureValues.forEach((r,s)=>e.set(s,r)),e}function or(t){return t.global.forcedVariations&&t.user.forcedVariations?d(d({},t.global.forcedVariations),t.user.forcedVariations):t.global.forcedVariations?t.global.forcedVariations:t.user.forcedVariations?t.user.forcedVariations:{}}function F(t){return f(this,null,function*(){try{yield t()}catch(e){}})}function st(t,e,r){if(t.user.trackedExperiments){let i=oe(e,r);if(t.user.trackedExperiments.has(i))return[];t.user.trackedExperiments.add(i)}t.user.enableDevMode&&t.user.devLogs&&t.user.devLogs.push({experiment:e,result:r,timestamp:Date.now().toString(),logType:"experiment"});let s=[];if(t.global.trackingCallback){let i=t.global.trackingCallback;s.push(F(()=>i(e,r,t.user)))}if(t.user.trackingCallback){let i=t.user.trackingCallback;s.push(F(()=>i(e,r)))}if(t.global.eventLogger){let i=t.global.eventLogger;s.push(F(()=>i(ir,{experimentId:e.key,variationId:r.key,hashAttribute:r.hashAttribute,hashValue:r.hashValue},t.user)))}return s}function ar(t,e,r){if(t.user.trackedFeatureUsage){let s=JSON.stringify(r.value);if(t.user.trackedFeatureUsage[e]===s)return;t.user.trackedFeatureUsage[e]=s,t.user.enableDevMode&&t.user.devLogs&&t.user.devLogs.push({featureKey:e,result:r,timestamp:Date.now().toString(),logType:"feature"})}if(t.global.onFeatureUsage){let s=t.global.onFeatureUsage;F(()=>s(e,r,t.user))}if(t.user.onFeatureUsage){let s=t.user.onFeatureUsage;F(()=>s(e,r))}if(t.global.eventLogger){let s=t.global.eventLogger;F(()=>s(sr,{feature:e,source:r.source,value:r.value,ruleId:r.source==="defaultValue"?"$default":r.ruleId||"",variationId:r.experimentResult?r.experimentResult.key:""},t.user))}}function ie(t,e){if(e.stack.evaluatedFeatures.has(t))return w(e,t,null,"cyclicPrerequisite");e.stack.evaluatedFeatures.add(t),e.stack.id=t;let r=nr(e);if(r.has(t))return w(e,t,r.get(t),"override");if(!e.global.features||!e.global.features[t])return w(e,t,null,"unknownFeature");let s=e.global.features[t];if(s.rules){let i=new Set(e.stack.evaluatedFeatures);e:for(let n of s.rules){if(n.parentConditions)for(let l of n.parentConditions){e.stack.evaluatedFeatures=new Set(i);let u=ie(l.id,e);if(u.source==="cyclicPrerequisite")return w(e,t,null,"cyclicPrerequisite");let c={value:u.value};if(!S(c,l.condition||{})){if(l.gate)return w(e,t,null,"prerequisite");continue e}}if(n.filters&&ot(n.filters,e))continue;if("force"in n){if(n.condition&&!nt(n.condition,e)||!ur(e,n.seed||t,n.hashAttribute,e.user.saveStickyBucketAssignmentDoc&&!n.disableStickyBucketing?n.fallbackAttribute:void 0,n.range,n.coverage,n.hashVersion))continue;return n.tracks&&n.tracks.forEach(l=>{!st(e,l.experiment,l.result).length&&e.global.saveDeferredTrack&&e.global.saveDeferredTrack({experiment:l.experiment,result:l.result})}),w(e,t,n.force,"force",n.id)}if(!n.variations)continue;let o={variations:n.variations,key:n.key||t};"coverage"in n&&(o.coverage=n.coverage),n.weights&&(o.weights=n.weights),n.hashAttribute&&(o.hashAttribute=n.hashAttribute),n.fallbackAttribute&&(o.fallbackAttribute=n.fallbackAttribute),n.disableStickyBucketing&&(o.disableStickyBucketing=n.disableStickyBucketing),n.bucketVersion!==void 0&&(o.bucketVersion=n.bucketVersion),n.minBucketVersion!==void 0&&(o.minBucketVersion=n.minBucketVersion),n.namespace&&(o.namespace=n.namespace),n.meta&&(o.meta=n.meta),n.ranges&&(o.ranges=n.ranges),n.name&&(o.name=n.name),n.phase&&(o.phase=n.phase),n.seed&&(o.seed=n.seed),n.hashVersion&&(o.hashVersion=n.hashVersion),n.filters&&(o.filters=n.filters),n.condition&&(o.condition=n.condition);let{result:a}=ne(o,t,e);if(e.global.onExperimentEval&&e.global.onExperimentEval(o,a),a.inExperiment&&!a.passthrough)return w(e,t,a.value,"experiment",n.id,o,a)}}return w(e,t,s.defaultValue===void 0?null:s.defaultValue,"defaultValue")}function ne(t,e,r){let s=t.key,i=t.variations.length;if(i<2)return{result:g(r,t,-1,!1,e)};if(r.global.enabled===!1||r.user.enabled===!1)return{result:g(r,t,-1,!1,e)};if(t=lr(t,r),t.urlPatterns&&!j(r.user.url||"",t.urlPatterns))return{result:g(r,t,-1,!1,e)};let n=Re(s,r.user.url||"",i);if(n!==null)return{result:g(r,t,n,!1,e)};let o=or(r);if(s in o){let v=o[s];return{result:g(r,t,v,!1,e)}}if(t.status==="draft"||t.active===!1)return{result:g(r,t,-1,!1,e)};let{hashAttribute:a,hashValue:l}=V(r,t.hashAttribute,r.user.saveStickyBucketAssignmentDoc&&!t.disableStickyBucketing?t.fallbackAttribute:void 0);if(!l)return{result:g(r,t,-1,!1,e)};let u=-1,c=!1,h=!1;if(r.user.saveStickyBucketAssignmentDoc&&!t.disableStickyBucketing){let{variation:v,versionIsBlocked:D}=dr({ctx:r,expKey:t.key,expBucketVersion:t.bucketVersion,expHashAttribute:t.hashAttribute,expFallbackAttribute:t.fallbackAttribute,expMinBucketVersion:t.minBucketVersion,expMeta:t.meta});c=v>=0,u=v,h=!!D}if(!c){if(t.filters){if(ot(t.filters,r))return{result:g(r,t,-1,!1,e)}}else if(t.namespace&&!Oe(l,t.namespace))return{result:g(r,t,-1,!1,e)};if(t.include&&!Ue(t.include))return{result:g(r,t,-1,!1,e)};if(t.condition&&!nt(t.condition,r))return{result:g(r,t,-1,!1,e)};if(t.parentConditions){let v=new Set(r.stack.evaluatedFeatures);for(let D of t.parentConditions){r.stack.evaluatedFeatures=new Set(v);let U=ie(D.id,r);if(U.source==="cyclicPrerequisite")return{result:g(r,t,-1,!1,e)};let ft={value:U.value};if(!S(ft,D.condition||{}))return{result:g(r,t,-1,!1,e)}}}if(t.groups&&!fr(t.groups,r))return{result:g(r,t,-1,!1,e)}}if(t.url&&!cr(t.url,r))return{result:g(r,t,-1,!1,e)};let k=L(t.seed||s,l,t.hashVersion||1);if(k===null)return{result:g(r,t,-1,!1,e)};if(!c){let v=t.ranges||Fe(i,t.coverage===void 0?1:t.coverage,t.weights);u=Te(k,v)}if(h)return{result:g(r,t,-1,!1,e,void 0,!0)};if(u<0)return{result:g(r,t,-1,!1,e)};if("force"in t)return{result:g(r,t,t.force===void 0?-1:t.force,!1,e)};if(r.global.qaMode||r.user.qaMode)return{result:g(r,t,-1,!1,e)};if(t.status==="stopped")return{result:g(r,t,-1,!1,e)};let b=g(r,t,u,!0,e,k,c);if(r.user.saveStickyBucketAssignmentDoc&&!t.disableStickyBucketing){let{changed:v,key:D,doc:U}=gr(r,a,M(l),{[me(t.key,t.bucketVersion)]:b.key});v&&(r.user.stickyBucketAssignmentDocs=r.user.stickyBucketAssignmentDocs||{},r.user.stickyBucketAssignmentDocs[D]=U,r.user.saveStickyBucketAssignmentDoc(U))}let _=st(r,t,b);_.length===0&&r.global.saveDeferredTrack&&r.global.saveDeferredTrack({experiment:t,result:b});let ct=_.length?_.length===1?_[0]:Promise.all(_).then(()=>{}):void 0;return"changeId"in t&&t.changeId&&r.global.recordChangeId&&r.global.recordChangeId(t.changeId),{result:b,trackingCall:ct}}function w(t,e,r,s,i,n,o){let a={value:r,on:!!r,off:!r,source:s,ruleId:i||""};return n&&(a.experiment=n),o&&(a.experimentResult=o),s!=="override"&&ar(t,e,a),a}function it(t){return d(d({},t.user.attributes),t.user.attributeOverrides)}function nt(t,e){return S(it(e),t,e.global.savedGroups||{})}function ot(t,e){return t.some(r=>{let{hashValue:s}=V(e,r.attribute);if(!s)return!0;let i=L(r.seed,s,r.hashVersion||2);return i===null?!0:!r.ranges.some(n=>q(i,n))})}function ur(t,e,r,s,i,n,o){if(!i&&n===void 0)return!0;
1if(!i&&n===0)return!1;let{hashValue:a}=V(t,r,s);if(!a)return!1;let l=L(e,a,o||1);return l===null?!1:i?q(l,i):n!==void 0?l<=n:!0}function g(t,e,r,s,i,n,o){let a=!0;(r<0||r>=e.variations.length)&&(r=0,a=!1);let{hashAttribute:l,hashValue:u}=V(t,e.hashAttribute,t.user.saveStickyBucketAssignmentDoc&&!e.disableStickyBucketing?e.fallbackAttribute:void 0),c=e.meta?e.meta[r]:{},h={key:c.key||""+r,featureId:i,inExperiment:a,hashUsed:s,variationId:r,value:e.variations[r],hashAttribute:l,hashValue:u,stickyBucketUsed:!!o};return c.name&&(h.name=c.name),n!==void 0&&(h.bucket=n),c.passthrough&&(h.passthrough=c.passthrough),h}function lr(t,e){let r=t.key,s=e.global.overrides;return s&&s[r]&&(t=Object.assign({},t,s[r]),typeof t.url=="string"&&(t.url=le(t.url))),t}function V(t,e,r){let s=e||"id",i="",n=it(t);return n[s]&&(i=n[s]),!i&&r&&(n[r]&&(i=n[r]),i&&(s=r)),{hashAttribute:s,hashValue:i}}function cr(t,e){let r=e.user.url;if(!r)return!1;let s=r.replace(/^https?:\/\//,"").replace(/^[^/]*\//,"/");return!!(t.test(r)||t.test(s))}function fr(t,e){let r=e.global.groups||{};for(let s=0;s<t.length;s++)if(r[t[s]])return!0;return!1}function dr(t){let{ctx:e,expKey:r,expBucketVersion:s,expHashAttribute:i,expFallbackAttribute:n,expMinBucketVersion:o,expMeta:a}=t;s=s||0,o=o||0,i=i||"id",a=a||[];let l=me(r,s),u=hr(e,i,n);if(o>0)for(let k=0;k<=o;k++){let b=me(r,k);if(u[b]!==void 0)return{variation:-1,versionIsBlocked:!0}}let c=u[l];if(c===void 0)return{variation:-1};let h=a.findIndex(k=>k.key===c);return h<0?{variation:-1}:{variation:h}}function me(t,e){return e=e||0,`${t}__${e}`}function Ee(t,e){return`${t}||${e}`}function hr(t,e,r){if(!t.user.stickyBucketAssignmentDocs)return{};let{hashAttribute:s,hashValue:i}=V(t,e),n=Ee(s,M(i)),{hashAttribute:o,hashValue:a}=V(t,r),l=a?Ee(o,M(a)):null,u={};return l&&t.user.stickyBucketAssignmentDocs[l]&&Object.assign(u,t.user.stickyBucketAssignmentDocs[l].assignments||{}),t.user.stickyBucketAssignmentDocs[n]&&Object.assign(u,t.user.stickyBucketAssignmentDocs[n].assignments||{}),u}function gr(t,e,r,s){let i=Ee(e,r),n=t.user.stickyBucketAssignmentDocs&&t.user.stickyBucketAssignmentDocs[i]?t.user.stickyBucketAssignmentDocs[i].assignments||{}:{},o=d(d({},n),s),a=JSON.stringify(n)!==JSON.stringify(o);return{key:i,doc:{attributeName:e,attributeValue:r,assignments:o},changed:a}}function pr(t,e){let r=new Set,s=e&&e.features?e.features:t.global.features||{},i=e&&e.experiments?e.experiments:t.global.experiments||[];return Object.keys(s).forEach(n=>{let o=s[n];if(o.rules)for(let a of o.rules)a.variations&&(r.add(a.hashAttribute||"id"),a.fallbackAttribute&&r.add(a.fallbackAttribute))}),i.map(n=>{r.add(n.hashAttribute||"id"),n.fallbackAttribute&&r.add(n.fallbackAttribute)}),Array.from(r)}function at(t,e,r){return f(this,null,function*(){let s=_e(t,r);return e.getAllAssignments(s)})}function _e(t,e){let r={};return pr(t,e).forEach(i=>{let{hashValue:n}=V(t,i);r[i]=M(n)}),r}function ut(t,e,r){return f(this,null,function*(){if(t=d({},t),t.encryptedFeatures){try{t.features=JSON.parse(yield C(t.encryptedFeatures,e,r))}catch(s){console.error(s)}delete t.encryptedFeatures}if(t.encryptedExperiments){try{t.experiments=JSON.parse(yield C(t.encryptedExperiments,e,r))}catch(s){console.error(s)}delete t.encryptedExperiments}if(t.encryptedSavedGroups){try{t.savedGroups=JSON.parse(yield C(t.encryptedSavedGroups,e,r))}catch(s){console.error(s)}delete t.encryptedSavedGroups}return t})}function lt(t){let e=t.apiHost||"https://cdn.growthbook.io";return{apiHost:e.replace(/\/*$/,""),streamingHost:(t.streamingHost||e).replace(/\/*$/,""),apiRequestHeaders:t.apiHostRequestHeaders,streamingHostRequestHeaders:t.streamingHostRequestHeaders}}function oe(t,e){return e.hashAttribute+e.hashValue+t.key+e.variationId}var R=typeof window!="undefined"&&typeof document!="undefined",yr=Le(),$=class{constructor(e){if(e=e||{},this.version=yr,this._options=this.context=e,this._renderer=e.renderer||null,this._trackedExperiments=new Set,this._completedChangeIds=new Set,this._trackedFeatures={},this.debug=!!e.debug,this._subscriptions=new Set,this.ready=!1,this._assigned=new Map,this._activeAutoExperiments=new Map,this._triggeredExpKeys=new Set,this._initialized=!1,this._redirectedUrl="",this._deferredTrackingCalls=new Map,this._autoExperimentsAllowed=!e.disableExperimentsOnLoad,this._destroyCallbacks=[],this.logs=[],this.log=this.log.bind(this),this._saveDeferredTrack=this._saveDeferredTrack.bind(this),this._fireSubscriptions=this._fireSubscriptions.bind(this),this._recordChangedId=this._recordChangedId.bind(this),e.remoteEval){if(e.decryptionKey)throw new Error("Encryption is not available for remoteEval");if(!e.clientKey)throw new Error("Missing clientKey");let r=!1;try{r=!!new URL(e.apiHost||"").hostname.match(/growthbook\.io$/i)}catch(s){}if(r)throw new Error("Cannot use remoteEval on GrowthBook Cloud")}
1else if(e.cacheKeyAttributes)throw new Error("cacheKeyAttributes are only used for remoteEval");if(e.stickyBucketService){let r=e.stickyBucketService;this._saveStickyBucketAssignmentDoc=s=>r.saveAssignments(s)}if(e.plugins)for(let r of e.plugins)r(this);if(e.features&&(this.ready=!0),R&&e.enableDevMode&&(window._growthbook=this,document.dispatchEvent(new Event("gbloaded"))),e.experiments&&(this.ready=!0,this._updateAllAutoExperiments()),this._options.stickyBucketService&&this._options.stickyBucketAssignmentDocs)for(let r in this._options.stickyBucketAssignmentDocs){let s=this._options.stickyBucketAssignmentDocs[r];s&&this._options.stickyBucketService.saveAssignments(s).catch(()=>{})}this.ready&&this.refreshStickyBuckets(this.getPayload())}setPayload(e){return f(this,null,function*(){this._payload=e;let r=yield ut(e,this._options.decryptionKey);this._decryptedPayload=r,yield this.refreshStickyBuckets(r),r.features&&(this._options.features=r.features),r.savedGroups&&(this._options.savedGroups=r.savedGroups),r.experiments&&(this._options.experiments=r.experiments,this._updateAllAutoExperiments()),this.ready=!0,this._render()})}initSync(e){this._initialized=!0;let r=e.payload;if(r.encryptedExperiments||r.encryptedFeatures)throw new Error("initSync does not support encrypted payloads");return this._options.stickyBucketService&&!this._options.stickyBucketAssignmentDocs&&(this._options.stickyBucketAssignmentDocs=this.generateStickyBucketAssignmentDocsSync(this._options.stickyBucketService,r)),this._payload=r,this._decryptedPayload=r,r.features&&(this._options.features=r.features),r.experiments&&(this._options.experiments=r.experiments,this._updateAllAutoExperiments()),this.ready=!0,z(this,e),this}init(e){return f(this,null,function*(){if(this._initialized=!0,e=e||{},e.cacheSettings&&Ke(e.cacheSettings),e.payload)return yield this.setPayload(e.payload),z(this,e),{success:!0,source:"init"};{let r=yield this._refresh(A(d({},e),{allowStale:!0})),{data:s}=r,i=Ve(r,["data"]);return z(this,e),yield this.setPayload(s||{}),i}})}loadFeatures(e){return f(this,null,function*(){var r;e=e||{},yield this.init({skipCache:e.skipCache,timeout:e.timeout,streaming:((r=this._options.backgroundSync)!=null?r:!0)&&(e.autoRefresh||this._options.subscribeToChanges)})})}refreshFeatures(e){return f(this,null,function*(){let r=yield this._refresh(A(d({},e||{}),{allowStale:!1}));r.data&&(yield this.setPayload(r.data))})}getApiInfo(){return[this.getApiHosts().apiHost,this.getClientKey()]}getApiHosts(){return lt(this._options)}getClientKey(){return this._options.clientKey||""}getPayload(){return this._payload||{features:this.getFeatures(),experiments:this.getExperiments()}}getDecryptedPayload(){return this._decryptedPayload||this.getPayload()}isRemoteEval(){return this._options.remoteEval||!1}getCacheKeyAttributes(){return this._options.cacheKeyAttributes}_refresh(e){return f(this,null,function*(){var o;let{timeout:r,skipCache:s,allowStale:i,streaming:n}=e;if(!this._options.clientKey)throw new Error("Missing clientKey");return $e({instance:this,timeout:r,skipCache:s||this._options.disableCache,allowStale:i,backgroundSync:(o=n!=null?n:this._options.backgroundSync)!=null?o:!0})})}_render(){if(this._renderer)try{this._renderer()}catch(e){console.error("Failed to render",e)}}setFeatures(e){this._options.features=e,this.ready=!0,this._render()}setEncryptedFeatures(e,r,s){return f(this,null,function*(){let i=yield C(e,r||this._options.decryptionKey,s);this.setFeatures(JSON.parse(i))})}setExperiments(e){this._options.experiments=e,this.ready=!0,this._updateAllAutoExperiments()}setEncryptedExperiments(e,r,s){return f(this,null,function*(){let i=yield C(e,r||this._options.decryptionKey,s);this.setExperiments(JSON.parse(i))})}setAttributes(e){return f(this,null,function*(){if(this._options.attributes=e,this._options.stickyBucketService&&(yield this.refreshStickyBuckets()),this._options.remoteEval){yield this._refreshForRemoteEval();return}this._render(),this._updateAllAutoExperiments()})}updateAttributes(e){return f(this,null,function*(){return this.setAttributes(d(d({},this._options.attributes),e))})}setAttributeOverrides(e){return f(this,null,function*(){if(this._options.attributeOverrides=e,this._options.stickyBucketService&&(yield this.refreshStickyBuckets()),this._options.remoteEval){yield this._refreshForRemoteEval();return}this._render(),this._updateAllAutoExperiments()})}setForcedVariations(e){return f(this,null,function*(){if(this._options.forcedVariations=e||{},this._options.remoteEval){yield this._refreshForRemoteEval();return}this._render(),this._updateAllAutoExperiments()})}setForcedFeatures(e){this._options.forcedFeatureValues=e,this._render()}setURL(e){return f(this,null,function*(){if(e!==this._options.url){if(this._options.url=e,this._redirectedUrl="",this._options.remoteEval){yield this._refreshForRemoteEval(),this._updateAllAutoExperiments(!0);return}this._updateAllAutoExperiments(!0)}})}getAttributes(){return d(d({},this._options.attributes),this._options.attributeOverrides)}getForcedVariations(){return this._options.forcedVariations||{}}getForcedFeatures(){return this._options.forcedFeatureValues||new Map}getStickyBucketAssignmentDocs(){return this._options.stickyBucketAssignmentDocs||{}}getUrl(){return this._options.url||""}getFeatures(){return this._options.features||{}}getExperiments(){return this._options.experiments||[]}getCompletedChangeIds(){return Array.from(this._completedChangeIds)}subscribe(e){return this._subscriptions.add(e),()=>{this._subscriptions.delete(e)}}_refreshForRemoteEval(){return f(this,null,function*(){if(!this._options.remoteEval||!this._initialized)return;let e=yield this._refresh({allowStale:!1});e.data&&(yield this.setPayload(e.data))})}getAllResults(){return new Map(this._assigned)}onDestroy(e){this._destroyCallbacks.push(e)}isDestroyed(){return!!this._destroyed}
1destroy(){this._destroyed=!0,this._destroyCallbacks.forEach(e=>{try{e()}catch(r){console.error(r)}}),this._subscriptions.clear(),this._assigned.clear(),this._trackedExperiments.clear(),this._completedChangeIds.clear(),this._deferredTrackingCalls.clear(),this._trackedFeatures={},this._destroyCallbacks=[],this._payload=void 0,this._saveStickyBucketAssignmentDoc=void 0,He(this),this.logs=[],R&&window._growthbook===this&&delete window._growthbook,this._activeAutoExperiments.forEach(e=>{e.undo()}),this._activeAutoExperiments.clear(),this._triggeredExpKeys.clear()}setRenderer(e){this._renderer=e}forceVariation(e,r){if(this._options.forcedVariations=this._options.forcedVariations||{},this._options.forcedVariations[e]=r,this._options.remoteEval){this._refreshForRemoteEval();return}this._updateAllAutoExperiments(),this._render()}run(e){let{result:r}=ne(e,null,this._getEvalContext());return this._fireSubscriptions(e,r),r}triggerExperiment(e){return this._triggeredExpKeys.add(e),this._options.experiments?this._options.experiments.filter(s=>s.key===e).map(s=>this._runAutoExperiment(s)).filter(s=>s!==null):null}triggerAutoExperiments(){this._autoExperimentsAllowed=!0,this._updateAllAutoExperiments(!0)}_getEvalContext(){return{user:this._getUserContext(),global:this._getGlobalContext(),stack:{evaluatedFeatures:new Set}}}_getUserContext(){return{attributes:this._options.user?d(d({},this._options.user),this._options.attributes):this._options.attributes,enableDevMode:this._options.enableDevMode,blockedChangeIds:this._options.blockedChangeIds,stickyBucketAssignmentDocs:this._options.stickyBucketAssignmentDocs,url:this._getContextUrl(),forcedVariations:this._options.forcedVariations,forcedFeatureValues:this._options.forcedFeatureValues,attributeOverrides:this._options.attributeOverrides,saveStickyBucketAssignmentDoc:this._saveStickyBucketAssignmentDoc,trackingCallback:this._options.trackingCallback,onFeatureUsage:this._options.onFeatureUsage,devLogs:this.logs,trackedExperiments:this._trackedExperiments,trackedFeatureUsage:this._trackedFeatures}}_getGlobalContext(){return{features:this._options.features,experiments:this._options.experiments,log:this.log,enabled:this._options.enabled,qaMode:this._options.qaMode,savedGroups:this._options.savedGroups,groups:this._options.groups,overrides:this._options.overrides,onExperimentEval:this._subscriptions.size>0?this._fireSubscriptions:void 0,recordChangeId:this._recordChangedId,saveDeferredTrack:this._saveDeferredTrack,eventLogger:this._options.eventLogger}}_runAutoExperiment(e,r){var l;let s=this._activeAutoExperiments.get(e);if(e.manual&&!this._triggeredExpKeys.has(e.key)&&!s)return null;let i=this._isAutoExperimentBlockedByContext(e),n,o;i?n=g(this._getEvalContext(),e,-1,!1,""):({result:n,trackingCall:o}=ne(e,null,this._getEvalContext()),this._fireSubscriptions(e,n));let a=JSON.stringify(n.value);if(!r&&n.inExperiment&&s&&s.valueHash===a)return n;if(s&&this._undoActiveAutoExperiment(e),n.inExperiment){let u=J(e);if(u==="redirect"&&n.value.urlRedirect&&e.urlPatterns){let c=e.persistQueryString?Me(this._getContextUrl(),n.value.urlRedirect):n.value.urlRedirect;if(j(c,e.urlPatterns))return this.log("Skipping redirect because original URL matches redirect URL",{id:e.key}),n;this._redirectedUrl=c;let{navigate:h,delay:k}=this._getNavigateFunction();if(h)if(R)Promise.all([...o?[G(o,(l=this._options.maxNavigateDelay)!=null?l:1e3)]:[],new Promise(b=>{var _;return window.setTimeout(b,(_=this._options.navigateDelay)!=null?_:k)})]).then(()=>{try{h(c)}catch(b){console.error(b)}});else try{h(c)}catch(b){console.error(b)}}else if(u==="visual"){let c=this._options.applyDomChangesCallback?this._options.applyDomChangesCallback(n.value):this._applyDOMChanges(n.value);c&&this._activeAutoExperiments.set(e,{undo:c,valueHash:a})}}return n}_undoActiveAutoExperiment(e){let r=this._activeAutoExperiments.get(e);r&&(r.undo(),this._activeAutoExperiments.delete(e))}_updateAllAutoExperiments(e){if(!this._autoExperimentsAllowed)return;let r=this._options.experiments||[],s=new Set(r);this._activeAutoExperiments.forEach((i,n)=>{s.has(n)||(i.undo(),this._activeAutoExperiments.delete(n))});for(let i of r){let n=this._runAutoExperiment(i,e);if(n!=null&&n.inExperiment&&J(i)==="redirect")break}}_fireSubscriptions(e,r){let s=e.key,i=this._assigned.get(s);(!i||i.result.inExperiment!==r.inExperiment||i.result.variationId!==r.variationId)&&(this._assigned.set(s,{experiment:e,result:r}),this._subscriptions.forEach(n=>{try{n(e,r)}catch(o){console.error(o)}}))}_recordChangedId(e){this._completedChangeIds.add(e)}isOn(e){return this.evalFeature(e).on}isOff(e){return this.evalFeature(e).off}getFeatureValue(e,r){let s=this.evalFeature(e).value;return s===null?r:s}feature(e){return this.evalFeature(e)}evalFeature(e){return ie(e,this._getEvalContext())}log(e,r){this.debug&&(this._options.log?this._options.log(e,r):console.log(e,r))}getDeferredTrackingCalls(){return Array.from(this._deferredTrackingCalls.values())}setDeferredTrackingCalls(e){this._deferredTrackingCalls=new Map(e.filter(r=>r&&r.experiment&&r.result).map(r=>[oe(r.experiment,r.result),r]))}fireDeferredTrackingCalls(){return f(this,null,function*(){if(!this._options.trackingCallback)return;let e=[];
1this._deferredTrackingCalls.forEach(r=>{!r||!r.experiment||!r.result?console.error("Invalid deferred tracking call",{call:r}):e.push(this._options.trackingCallback(r.experiment,r.result))}),this._deferredTrackingCalls.clear(),yield Promise.all(e)})}setTrackingCallback(e){this._options.trackingCallback=e,this.fireDeferredTrackingCalls()}setEventLogger(e){this._options.eventLogger=e}logEvent(e,r){return f(this,null,function*(){if(this._destroyed){console.error("Cannot log event to destroyed GrowthBook instance");return}if(this._options.enableDevMode&&this.logs.push({eventName:e,properties:r,timestamp:Date.now().toString(),logType:"event"}),this._options.eventLogger)try{yield this._options.eventLogger(e,r||{},this._getUserContext())}catch(s){console.error(s)}else console.error("No event logger configured")})}_saveDeferredTrack(e){this._deferredTrackingCalls.set(oe(e.experiment,e.result),e)}_getContextUrl(){return this._options.url||(R?window.location.href:"")}_isAutoExperimentBlockedByContext(e){let r=J(e);if(r==="visual"){if(this._options.disableVisualExperiments||this._options.disableJsInjection&&e.variations.some(s=>s.js))return!0}else if(r==="redirect"){if(this._options.disableUrlRedirectExperiments)return!0;try{let s=new URL(this._getContextUrl());for(let i of e.variations){if(!i||!i.urlRedirect)continue;let n=new URL(i.urlRedirect);if(this._options.disableCrossOriginUrlRedirectExperiments&&(n.protocol!==s.protocol||n.host!==s.host))return!0}}catch(s){return this.log("Error parsing current or redirect URL",{id:e.key,error:s}),!0}}else return!0;return!!(e.changeId&&(this._options.blockedChangeIds||[]).includes(e.changeId))}getRedirectUrl(){return this._redirectedUrl}_getNavigateFunction(){return this._options.navigate?{navigate:this._options.navigate,delay:0}:R?{navigate:e=>{window.location.replace(e)},delay:100}:{navigate:null,delay:0}}_applyDOMChanges(e){if(!R)return;let r=[];if(e.css){let s=document.createElement("style");s.innerHTML=e.css,document.head.appendChild(s),r.push(()=>s.remove())}if(e.js){let s=document.createElement("script");s.innerHTML=e.js,this._options.jsInjectionNonce&&(s.nonce=this._options.jsInjectionNonce),document.head.appendChild(s),r.push(()=>s.remove())}return e.domMutations&&e.domMutations.forEach(s=>{r.push(et.declarative(s).revert)}),()=>{r.forEach(s=>s())}}refreshStickyBuckets(e){return f(this,null,function*(){if(this._options.stickyBucketService){let r=this._getEvalContext(),s=yield at(r,this._options.stickyBucketService,e);this._options.stickyBucketAssignmentDocs=s}})}generateStickyBucketAssignmentDocsSync(e,r){if(!("getAllAssignmentsSync"in e)){console.error("generating StickyBucketAssignmentDocs docs requires StickyBucketServiceSync");return}let s=this._getEvalContext(),i=_e(s,r);return e.getAllAssignmentsSync(i)}inDevMode(){return!!this._options.enableDevMode}};function br(t){let e=t.match(/Edg/)?"edge":t.match(/Chrome/)?"chrome":t.match(/Firefox/)?"firefox":t.match(/Safari/)?"safari":"unknown",r=t.match(/Mobi/)?"mobile":"desktop";return{browser:e,deviceType:r}}function kr(t){return t?{url:t.href,path:t.pathname,host:t.host,query:t.search}:{}}function Ae(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(typeof window=="undefined")throw new Error("autoAttributesPlugin only works in the browser");let e=t.uuidCookieName||"gbuuid",r=t.uuidKey||"id",s=t.uuid||"";function i(){vr(e,s)}function n(){return s||(s=mr(e),s)||(s=Er(window.crypto)),s}document.addEventListener("growthbookpersist",()=>{i()});function o(a){var h;let l=navigator.userAgent,u=n();((h=a.uuidAutoPersist)!=null?h:!a.uuid)&&i();let c=location;return d(d(A(d(A(d({},Ar()),{[r]:u}),kr(c)),{pageTitle:document.title}),br(l)),_r(c))}return a=>{if("createScopedInstance"in a)return;let l=o(t);l.url&&a.setURL(l.url),a.updateAttributes(l);let u=l.url,c=setInterval(()=>{location.href!==u&&(u=location.href,a.setURL(u),a.updateAttributes(o(t)))},500),h=()=>{location.href!==u&&(u=location.href,a.setURL(u)),a.updateAttributes(o(t))};document.addEventListener("growthbookrefresh",h),"onDestroy"in a&&a.onDestroy(()=>{clearInterval(c),document.removeEventListener("growthbookrefresh",h)})}}function vr(t,e){let r=new Date;r.setTime(r.getTime()+1440*60*1e3*400),document.cookie=t+"="+e+";path=/;expires="+r.toUTCString()}function mr(t){let r=("; "+document.cookie).split(`; ${t}=`);return r.length===2?r[1].split(";")[0]:""}function Er(t){return t&&t.randomUUID?t.randomUUID():("10000000-1000-4000-8000"+-1e11).replace(/[018]/g,e=>{let r=t&&t.getRandomValues?t.getRandomValues(new Uint8Array(1))[0]:Math.floor(Math.random()*256);return(e^r&15>>e/4).toString(16)})}function _r(t){let e={};try{let r=sessionStorage.getItem("utm_params");r&&(e=JSON.parse(r))}catch(r){}if(t&&t.search){let r=new URLSearchParams(t.search),s=!1;if(["source","medium","campaign","term","content"].forEach(i=>
1{let n=`utm_${i}`,o="utm"+i[0].toUpperCase()+i.slice(1);r.has(n)&&(e[o]=r.get(n)||"",s=!0)}),s)try{sessionStorage.setItem("utm_params",JSON.stringify(e))}catch(i){}}return e}function Ar(){if(typeof window=="undefined"||!window.dataLayer||!window.dataLayer.forEach)return{};let t={};return window.dataLayer.forEach(e=>{!e||typeof e!="object"||"length"in e||"event"in e||Object.keys(e).forEach(r=>{if(typeof r!="string"||r.match(/^(gtm)/))return;let s=e[r],i=typeof s;["string","number","boolean"].includes(i)&&(t[r]=s)})}),t}var Sr=new $({apiHost:"https://gbbv.beenverified.com",clientKey:"sdk-w9zDVPrcDn5Qb2E",decryptionKey:"mmS7pFInJv7eZG/CfqNS8g==",enableDevMode:!0,plugins:[Ae()],attributes:{environment:"production"}});function wr(){return new Promise(t=>{if(typeof gtag!="undefined"){t(!0);return}let e=setInterval(()=>{typeof gtag!="undefined"&&(clearInterval(e),t(!0))},50);setTimeout(()=>{clearInterval(e),t(!1)},600)})}var es=(function(){return f(this,null,function*(){try{yield wr();let e=yield Sr.init({streaming:!0});return console.log(e),e}catch(e){throw console.error("Failed to initialize Growthbook:",e),e}})})();})();

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.