PageSourceSearch

https://brale.xyz/assets/root-D98yNvbO.js

js brale.xyz collected 2026-10-03 23:03:09 UTC 57,174 bytes, 31 lines download raw bytes

1import{D as e,F as t,G as n,N as r,O as i,T as a,a as o,b as s,i as c,k as l,ot as u,rt as d,s as f,t as p,w as m}from"./jsx-runtime-vlDczagz.js";import{In as ee,Rn as te,Vn as ne,a as re,c as ie,s as ae}from"./layout-1UWg9V41.js";import{o as oe,s as h}from"./constants-Hr0ije_t.js";import{t as se}from"./error-EFL0LJTu.js";import{n as ce}from"./get-meta-CJ8PcTDR.js";import{t as le}from"./get-urls-BCfmkOh6.js";import{i as ue,n as de,t as fe}from"./structured-data-schemas-C08RWoFs.js";var pe={fetch:globalThis.fetch?globalThis.fetch.bind(globalThis):void 0,SubtleCrypto:globalThis.crypto?globalThis.crypto.subtle:void 0,EventSource:globalThis.EventSource};function me(){return pe}function he(e){let t=2166136261,n=e.length;for(let r=0;r<n;r++)t^=e.charCodeAt(r),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return t>>>0}function g(e,t,n){return n===2?he(he(e+t)+``)%1e4/1e4:n===1?he(t+e)%1e3/1e3:null}function ge(e){return e<=0?[]:Array(e).fill(1/e)}function _e(e,t){return e>=t[0]&&e<t[1]}function ve(e,t){let n=g(`__`+t[0],e,1);return n!==null&&n>=t[1]&&n<t[2]}function ye(e,t){for(let n=0;n<t.length;n++)if(_e(e,t[n]))return n;return-1}function be(e){try{let t=e.replace(/([^\\])\//g,`$1\\/`);return new RegExp(t)}catch(e){console.error(e);return}}function xe(e,t){if(!t.length)return!1;let n=!1,r=!1;for(let i=0;i<t.length;i++){let a=we(e,t[i].type,t[i].pattern);if(t[i].include===!1){if(a)return!1}else n=!0,a&&(r=!0)}return r||!n}function Se(e,t,n){try{let r=t.replace(/[*.+?^${}()|[\]\\]/g,`\\$&`).replace(/_____/g,`.*`);return n&&(r=`\\/?`+r.replace(/(^\/|\/$)/g,``)+`\\/?`),RegExp(`^`+r+`$`,`i`).test(e)}catch{return!1}}function Ce(e,t){try{let n=new URL(t.replace(/^([^:/?]*)\./i,`https://$1.`).replace(/\*/g,`_____`),`https://_____`),r=[[e.host,n.host,!1],[e.pathname,n.pathname,!0]];return n.hash&&r.push([e.hash,n.hash,!1]),n.searchParams.forEach((t,n)=>{r.push([e.searchParams.get(n)||``,t,!1])}),!r.some(e=>!Se(e[0],e[1],e[2]))}catch{return!1}}function we(e,t,n){try{let r=new URL(e,`https://_`);if(t===`regex`){let e=be(n);return e?e.test(r.href)||e.test(r.href.substring(r.origin.length)):!1}return t===`simple`&&Ce(r,n)}catch{return!1}}function Te(e,t,n){t=t===void 0?1:t,t<0?t=0:t>1&&(t=1);let r=ge(e);n||=r,n.length!==e&&(n=r);let i=n.reduce((e,t)=>t+e,0);(i<.99||i>1.01)&&(n=r);let a=0;return n.map(e=>{let n=a;return a+=e,[n,n+t*e]})}function Ee(e,t,n){if(!t)return null;let r=t.split(`?`)[1];if(!r)return null;let i=r.replace(/#.*/,``).split(`&`).map(e=>e.split(`=`,2)).filter(t=>{let[n]=t;return n===e}).map(e=>{let[,t]=e;return parseInt(t)});return i.length>0&&i[0]>=0&&i[0]<n?i[0]:null}function De(e){try{return e()}catch(e){return console.error(e),!1}}var Oe=e=>Uint8Array.from(atob(e),e=>e.charCodeAt(0));async function _(e,t,n){if(t||=``,n=n||globalThis.crypto&&globalThis.crypto.subtle||pe.SubtleCrypto,!n)throw Error(`No SubtleCrypto implementation found`);try{let r=await n.importKey(`raw`,Oe(t),{name:`AES-CBC`,length:128},!0,[`encrypt`,`decrypt`]),[i,a]=e.split(`.`),o=await n.decrypt({name:`AES-CBC`,iv:Oe(i)},r,Oe(a));return new TextDecoder().decode(o)}catch{throw Error(`Failed to decrypt`)}}function v(e){return typeof e==`string`?e:JSON.stringify(e)}function y(e){typeof e==`number`&&(e+=``),(!e||typeof e!=`string`)&&(e=`0`);let t=e.replace(/(^v|\+.*$)/g,``).split(/[-.]/);return t.length===3&&t.push(`~`),t.map(e=>e.match(/^[0-9]+$/)?e.padStart(5,` `):e).join(`-`)}function ke(){let e;try{e=`1.7.0`}catch{e=``}return e}function Ae(e,t){let n,r;try{n=new URL(e),r=new URL(t)}catch(e){return console.error(`Unable to merge query strings: ${e}`),t}return n.searchParams.forEach((e,t)=>{r.searchParams.has(t)||r.searchParams.set(t,e)}),r.toString()}function je(e){return typeof e==`object`&&!!e}function b(e){return e.urlPatterns&&e.variations.some(e=>je(e)&&`urlRedirect`in e)?`redirect`:e.variations.some(e=>je(e)&&(e.domMutations||`js`in e||`css`in e))?`visual`:`unknown`}async function Me(e,t){return new Promise(n=>{let r=!1,i,a=e=>{r||(r=!0,i&&clearTimeout(i),n(e||null))};t&&(i=setTimeout(()=>a(),t)),e.then(e=>a(e)).catch(()=>a())})}function Ne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Pe(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];
1t%2?Ne(Object(n),!0).forEach(function(t){Fe(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ne(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Fe(e,t,n){return(t=Ie(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ie(e){var t=Le(e,`string`);return typeof t==`symbol`?t:t+``}function Le(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var x={staleTTL:6e4,maxAge:144e5,cacheKey:`gbFeaturesCache`,backgroundSync:!0,maxEntries:10,disableIdleStreams:!1,idleStreamInterval:2e4,disableCache:!1},S=me(),C={fetchFeaturesCall:e=>{let{host:t,clientKey:n,headers:r}=e;return S.fetch(`${t}/api/features/${n}`,{headers:r})},fetchRemoteEvalCall:e=>{let{host:t,clientKey:n,payload:r,headers:i}=e,a={method:`POST`,headers:Pe({"Content-Type":`application/json`},i),body:JSON.stringify(r)};return S.fetch(`${t}/api/eval/${n}`,a)},eventSourceCall:e=>{let{host:t,clientKey:n,headers:r}=e;return r?new S.EventSource(`${t}/sub/${n}`,{headers:r}):new S.EventSource(`${t}/sub/${n}`)},startIdleListener:()=>{let e;if(!(typeof window<`u`&&typeof document<`u`))return;let t=()=>{document.visibilityState===`visible`?(window.clearTimeout(e),We()):document.visibilityState===`hidden`&&(e=window.setTimeout(Ue,x.idleStreamInterval))};return document.addEventListener(`visibilitychange`,t),()=>document.removeEventListener(`visibilitychange`,t)},stopIdleListener:()=>{}};try{globalThis.localStorage&&(S.localStorage=globalThis.localStorage)}catch{}var w=new Map,Re=!1,T=new Map,E=new Map,D=new Map,O=new Set;function ze(e){Object.assign(x,e),x.backgroundSync||it()}async function Be(e){let{instance:t,timeout:n,skipCache:r,allowStale:i,backgroundSync:a}=e;return a||(x.backgroundSync=!1),Ke({instance:t,allowStale:i,timeout:n,skipCache:r})}function Ve(e){let t=k(e),n=w.get(t)||new Set;n.add(e),w.set(t,n)}function He(e){w.forEach(t=>t.delete(e))}function Ue(){D.forEach(e=>{e&&(e.state=`idle`,tt(e))})}function We(){D.forEach(e=>{e&&e.state===`idle`&&nt(e)})}async function Ge(){try{if(!S.localStorage)return;await S.localStorage.setItem(x.cacheKey,JSON.stringify(Array.from(T.entries())))}catch{}}async function Ke(e){let{instance:t,allowStale:n,timeout:r,skipCache:i}=e,a=k(t),o=qe(t),s=new Date,c=new Date(s.getTime()-x.maxAge+x.staleTTL);await Je();let l=!x.disableCache&&!i?T.get(o):void 0;return l&&(n||l.staleAt>s)&&l.staleAt>c?(l.sse&&O.add(a),l.staleAt<s?Qe(t):$e(t),{data:l.data,success:!0,source:`cache`}):await Me(Qe(t),r)||{data:null,success:!1,source:`timeout`,error:Error(`Timeout`)}}function k(e){let[t,n]=e.getApiInfo();return`${t}||${n}`}function qe(e){let t=k(e);if(!(`isRemoteEval`in e)||!e.isRemoteEval())return t;let n=e.getAttributes(),r=e.getCacheKeyAttributes()||Object.keys(e.getAttributes()),i={};r.forEach(e=>{i[e]=n[e]});let a=e.getForcedVariations(),o=e.getUrl();return`${t}||${JSON.stringify({ca:i,fv:a,url:o})}`}async function Je(){if(!Re){Re=!0;try{if(S.localStorage){let e=await S.localStorage.getItem(x.cacheKey);if(!x.disableCache&&e){let t=JSON.parse(e);t&&Array.isArray(t)&&t.forEach(e=>{let[t,n]=e;T.set(t,Pe(Pe({},n),{},{staleAt:new Date(n.staleAt)}))}),Ye()}}}catch{}if(!x.disableIdleStreams){let e=C.startIdleListener();e&&(C.stopIdleListener=e)}}}function Ye(){let e=Array.from(T.entries()).map(e=>{let[t,n]=e;return{key:t,staleAt:n.staleAt.getTime()}}).sort((e,t)=>e.staleAt-t.staleAt),t=Math.min(Math.max(0,T.size-x.maxEntries),T.size);for(let n=0;n<t;n++)T.delete(e[n].key)}function Xe(e,t,n){let r=n.dateUpdated||``,i=new Date(Date.now()+x.staleTTL),a=x.disableCache?void 0:T.get(t);if(a&&r&&a.version===r){a.staleAt=i,Ge();return}x.disableCache||(T.set(t,{data:n,version:r,staleAt:i,sse:O.has(e)}),Ye()),Ge();let o=w.get(e);o&&o.forEach(e=>Ze(e,n))}async function Ze(e,t){await e.setPayload(t||e.getPayload())}async function Qe(e){let{apiHost:t,apiRequestHeaders:n}
1=e.getApiHosts(),r=e.getClientKey(),i=`isRemoteEval`in e&&e.isRemoteEval(),a=k(e),o=qe(e),s=E.get(o);return s||(s=(i?C.fetchRemoteEvalCall({host:t,clientKey:r,payload:{attributes:e.getAttributes(),forcedVariations:e.getForcedVariations(),forcedFeatures:Array.from(e.getForcedFeatures().entries()),url:e.getUrl()},headers:n}):C.fetchFeaturesCall({host:t,clientKey:r,headers:n})).then(e=>{if(!e.ok)throw Error(`HTTP error: ${e.status}`);return e.headers.get(`x-sse-support`)===`enabled`&&O.add(a),e.json()}).then(t=>(Xe(a,o,t),$e(e),E.delete(o),{data:t,success:!0,source:`network`})).catch(e=>(E.delete(o),{data:null,source:`error`,success:!1,error:e})),E.set(o,s)),s}function $e(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=k(e),r=qe(e),{streamingHost:i,streamingHostRequestHeaders:a}=e.getApiHosts(),o=e.getClientKey();if(t&&O.add(n),x.backgroundSync&&O.has(n)&&S.EventSource){if(D.has(n))return;let e={src:null,host:i,clientKey:o,headers:a,cb:t=>{try{if(t.type===`features-updated`){let e=w.get(n);e&&e.forEach(e=>{Qe(e)})}else if(t.type===`features`){let e=JSON.parse(t.data);Xe(n,r,e)}e.errors=0}catch{et(e)}},errors:0,state:`active`};D.set(n,e),nt(e)}}function et(e){if(e.state!==`idle`&&(e.errors++,e.errors>3||e.src&&e.src.readyState===2)){let t=3**(e.errors-3)*(1e3+Math.random()*1e3);tt(e),setTimeout(()=>{[`idle`,`active`].includes(e.state)||nt(e)},Math.min(t,3e5))}}function tt(e){e.src&&(e.src.onopen=null,e.src.onerror=null,e.src.close(),e.src=null,e.state===`active`&&(e.state=`disabled`))}function nt(e){e.src=C.eventSourceCall({host:e.host,clientKey:e.clientKey,headers:e.headers}),e.state=`active`,e.src.addEventListener(`features`,e.cb),e.src.addEventListener(`features-updated`,e.cb),e.src.onerror=()=>et(e),e.src.onopen=()=>{e.errors=0}}function rt(e,t){tt(e),D.delete(t)}function it(){O.clear(),D.forEach(rt),w.clear(),C.stopIdleListener()}function A(e,t){if(t.streaming){if(!e.getClientKey())throw Error(`Must specify clientKey to enable streaming`);t.payload&&$e(e,!0),Ve(e)}}var at=/^[a-zA-Z:_][a-zA-Z0-9:_.-]*$/,ot={revert:function(){}},j=new Map,st=new Set;function ct(e){return e===`html`?{childList:!0,subtree:!0,attributes:!0,characterData:!0}:{childList:!1,subtree:!1,attributes:!0,attributeFilter:[e]}}function M(e){var t=j.get(e);return t||(t={element:e,attributes:{}},j.set(e,t)),t}function N(e,t,n,r,i){var a=n(e),o={isDirty:!1,originalValue:a,virtualValue:a,mutations:[],el:e,_positionTimeout:null,observer:new MutationObserver(function(){if(!(t===`position`&&o._positionTimeout)){t===`position`&&(o._positionTimeout=setTimeout(function(){o._positionTimeout=null},1e3));var r=n(e);(t!==`position`||r.parentNode!==o.virtualValue.parentNode||r.insertBeforeNode!==o.virtualValue.insertBeforeNode)&&r!==o.virtualValue&&(o.originalValue=r,i(o))}}),mutationRunner:i,setValue:r,getCurrentValue:n};return t===`position`&&e.parentNode?o.observer.observe(e.parentNode,{childList:!0,subtree:!0,attributes:!1,characterData:!1}):o.observer.observe(e,ct(t)),o}function P(e,t){var n=t.getCurrentValue(t.el);t.virtualValue=e,e&&typeof e!=`string`?(!n||e.parentNode!==n.parentNode||e.insertBeforeNode!==n.insertBeforeNode)&&(t.isDirty=!0,At()):e!==n&&(t.isDirty=!0,At())}function lt(e){var t=e.originalValue;e.mutations.forEach(function(e){return t=e.mutate(t)}),P(Ot(t),e)}function ut(e){var t=new Set(e.originalValue.split(/\s+/).filter(Boolean));e.mutations.forEach(function(e){return e.mutate(t)}),P(Array.from(t).filter(Boolean).join(` `),e)}function dt(e){var t=e.originalValue;e.mutations.forEach(function(e){return t=e.mutate(t)}),P(t,e)}function ft(e){var t=e.parentSelector,n=e.insertBeforeSelector,r=document.querySelector(t);if(!r)return null;var i=n?document.querySelector(n):null;return n&&!i?null:{parentNode:r,insertBeforeNode:i}}function pt(e){var t=e.originalValue;e.mutations.forEach(function(e){t=ft(e.mutate())||t}),P(t,e)}var mt=function(e){return e.innerHTML},ht=function(e,t){return e.innerHTML=t};function gt(e){var t=M(e);return t.html||=N(e,`html`,mt,ht,lt),t.html}var _t=function(e){return{parentNode:e.parentElement,insertBeforeNode:e.nextElementSibling}},vt=function(e,t){(!t.insertBeforeNode||t.parentNode.contains(t.insertBeforeNode))&&t.parentNode.insertBefore(e,t.insertBeforeNode)};function yt(e){var t=M(e);return t.position||=N(e,`position`,_t,vt,pt),t.position}var bt=function(e,t){return t?e.className=t:e.removeAttribute(`class`)},xt=function(e){return e.className};function St(e){var t=M(e);return t.classes||=N(e,`class`,xt,bt,ut),t.classes}var Ct=function(e){return function(t){return t.getAttribute(e)??null}},wt=function(e){return function(t,n){return n===null?t.removeAttribute(e):t.setAttribute(e,n)}};function Tt(e,t){var n=M(e);return n.attributes[t]||(n.attributes[t]=N(e,t,Ct(t),wt(t),dt)),n.attributes[t]}function Et(e,t){var n=j.get(e);if(n){if(t===`html`){var r,i;(r=n.html)==null||(i=r.observer)==null||i.disconnect(),delete n.html}else if(t===`class`){var a,o;(a=n.classes)==null||(o=a.observer)==null||o.disconnect(),delete n.classes}else if(t===`position`){var s,c;(s=n.position)==null||(c=s.observer)==null||c.disconnect(),delete n.position}else{var l,u,d;(l=n.attributes)==null||(u=l[t])==null||(d=u.observer)==null||d.disconnect(),delete n.attributes[t]}}}var Dt;function Ot(e){return Dt||=document.createElement(`div`),Dt.innerHTML=e,Dt.innerHTML}function F(e,t,n){if(n.isDirty){n.isDirty=!1;var r=n.virtualValue;n.mutations.length||Et(e,t),n.setValue(e,r)}}function kt(e,t){e.html&&F(t,`html`,e.html),e.classes&&F(t,`class`,e.classes),e.position&&F(t,`position`,e.position),Object.keys(e.attributes).forEac
1h(function(n){F(t,n,e.attributes[n])})}function At(){j.forEach(kt)}function jt(e,t){var n=null;e.kind===`html`?n=gt(t):e.kind===`class`?n=St(t):e.kind===`attribute`?n=Tt(t,e.attribute):e.kind===`position`&&(n=yt(t)),n&&(n.mutations.push(e),n.mutationRunner(n))}function Mt(e,t){var n=null;if(e.kind===`html`?n=gt(t):e.kind===`class`?n=St(t):e.kind===`attribute`?n=Tt(t,e.attribute):e.kind===`position`&&(n=yt(t)),n){var r=n.mutations.indexOf(e);r!==-1&&n.mutations.splice(r,1),n.mutationRunner(n)}}function Nt(e){if(e.kind!==`position`||e.elements.size!==1){var t=new Set(e.elements);document.querySelectorAll(e.selector).forEach(function(n){t.has(n)||(e.elements.add(n),jt(e,n))})}}function Pt(e){e.elements.forEach(function(t){return Mt(e,t)}),e.elements.clear(),st.delete(e)}function Ft(){st.forEach(Nt)}var It;function Lt(){typeof document>`u`||(It||=new MutationObserver(function(){Ft()}),Ft(),It.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}Lt();function I(e){return typeof document>`u`?ot:(st.add(e),Nt(e),{revert:function(){Pt(e)}})}function Rt(e,t){return I({kind:`html`,elements:new Set,mutate:t,selector:e})}function zt(e,t){return I({kind:`position`,elements:new Set,mutate:t,selector:e})}function L(e,t){return I({kind:`class`,elements:new Set,mutate:t,selector:e})}function R(e,t,n){return at.test(t)?t===`class`||t===`className`?L(e,function(e){var t=n(Array.from(e).join(` `));e.clear(),t&&t.split(/\s+/g).filter(Boolean).forEach(function(t){return e.add(t)})}):I({kind:`attribute`,attribute:t,elements:new Set,mutate:n,selector:e}):ot}function Bt(e){var t=e.selector,n=e.action,r=e.value,i=e.attribute,a=e.parentSelector,o=e.insertBeforeSelector;if(i===`html`){if(n===`append`)return Rt(t,function(e){return e+(r??``)});if(n===`set`)return Rt(t,function(){return r??``})}else if(i===`class`){if(n===`append`)return L(t,function(e){r&&e.add(r)});if(n===`remove`)return L(t,function(e){r&&e.delete(r)});if(n===`set`)return L(t,function(e){e.clear(),r&&e.add(r)})}else if(i===`position`){if(n===`set`&&a)return zt(t,function(){return{insertBeforeSelector:o,parentSelector:a}})}else if(n===`append`)return R(t,i,function(e){return e===null?r??``:e+(r??``)});else if(n===`set`)return R(t,i,function(){return r??``});else if(n===`remove`)return R(t,i,function(){return null});return ot}var Vt={html:Rt,classes:L,attribute:R,position:zt,declarative:Bt},z={};function B(e,t,n){n||={};for(let[r,i]of Object.entries(t))switch(r){case`$or`:if(!Yt(e,i,n))return!1;break;case`$nor`:if(Yt(e,i,n))return!1;break;case`$and`:if(!Xt(e,i,n))return!1;break;case`$not`:if(B(e,i,n))return!1;break;default:if(!V(i,Ht(e,r),n))return!1}return!0}function Ht(e,t){let n=t.split(`.`),r=e;for(let e=0;e<n.length;e++)if(r&&typeof r==`object`&&n[e]in r)r=r[n[e]];else return null;return r}function Ut(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=`${e}${t?`/i`:``}`;return z[n]||(z[n]=new RegExp(e.replace(/([^\\])\//g,`$1\\/`),t?`i`:void 0)),z[n]}function V(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(typeof e==`string`)return r?String(t).toLowerCase()===e.toLowerCase():t+``===e;if(typeof e==`number`)return t*1===e;if(typeof e==`boolean`)return t!==null&&!!t===e;if(e===null)return t===null;if(Array.isArray(e)||!Wt(e))return JSON.stringify(t)===JSON.stringify(e);for(let r in e)if(!Jt(r,t,e[r],n))return!1;return!0}function Wt(e){let t=Object.keys(e);return t.length>0&&t.filter(e=>e[0]===`$`).length===t.length}function Gt(e){if(e===null)return`null`;if(Array.isArray(e))return`array`;let t=typeof e;return[`string`,`number`,`boolean`,`object`,`undefined`].includes(t)?t:`unknown`}function Kt(e,t,n){if(!Array.isArray(e))return!1;let r=Wt(t)?e=>V(t,e,n):e=>B(e,t,n);for(let t=0;t<e.length;t++)if(e[t]&&r(e[t]))return!0;return!1}function H(e,t){if(arguments.length>2&&arguments[2]!==void 0&&arguments[2]){let n=e=>typeof e==`string`?e.toLowerCase():e;return Array.isArray(e)?e.some(e=>t.some(t=>n(e)===n(t))):t.some(t=>n(e)===n(t))}return Array.isArray(e)?e.some(e=>t.includes(e)):t.includes(e)}function qt(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(!Array.isArray(e))return!1;for(let i=0;i<t.length;i++){let a=!1;for(let o=0;o<e.length;o++)if(V(t[i],e[o],n,r)){a=!0;break}if(!a)return!1}return!0}function Jt(e,t,n,r){switch(e){case`$veq`:return y(t)===y(n);case`$vne`:return y(t)!==y(n);case`$vgt`:return y(t)>y(n);case`$vgte`:return y(t)>=y(n);case`$vlt`:return y(t)<y(n);case`$vlte`:return y(t)<=y(n);case`$eq`:return t===n;case`$ne`:return t!==n;case`$lt`:return t<n;case`$lte`:return t<=n;case`$gt`:return t>n;case`$gte`:return t>=n;case`$exists`:return n?t!=null:t==null;case`$in`:return Array.isArray(n)?H(t,n):!1;case`$ini`:return Array.isArray(n)?H(t,n,!0):!1;case`$inGroup`:return H(t,r[n]||[]);case`$notInGroup`:return!H(t,r[n]||[]);case`$nin`:return Array.isArray(n)?!H(t,n):!1;case`$nini`:return Array.isArray(n)?!H(t,n,!0):!1;case`$not`:return!V(n,t,r);case`$size`:return Array.isArray(t)?V(n,t.length,r):!1;case`$elemMatch`:return Kt(t,n,r);case`$all`:return Array.isArray(n)?qt(t,n,r):!1;case`$alli`:return Array.isArray(n)?qt(t,n,r,!0):!1;case`$regex`:try{return Ut(n).test(t)}catch{return!1}case`$regexi`:try{return Ut(n,!0).test(t)}catch{return!1}case`$type`:return Gt(t)===n;default:return console.error(`Unknown operator: `+e),!1}}function Yt(e,t,n){if(!t.length)return!0;for(let r=0;r<t.length;r++)if(B(e,t[r],n))return!0;return!1}function Xt(e,t,n){for(let r=0;r<t.length;r++)if(!B(e,t[r],n))return!1;return!0}function Zt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function U(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];
1t%2?Zt(Object(n),!0).forEach(function(t){Qt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Qt(e,t,n){return(t=$t(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $t(e){var t=en(e,`string`);return typeof t==`symbol`?t:t+``}function en(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var tn=`Feature Evaluated`,nn=`Experiment Viewed`;function rn(e){let t=new Map;return e.global.forcedFeatureValues&&e.global.forcedFeatureValues.forEach((e,n)=>t.set(n,e)),e.user.forcedFeatureValues&&e.user.forcedFeatureValues.forEach((e,n)=>t.set(n,e)),t}function an(e){return e.global.forcedVariations&&e.user.forcedVariations?U(U({},e.global.forcedVariations),e.user.forcedVariations):e.global.forcedVariations?e.global.forcedVariations:e.user.forcedVariations?e.user.forcedVariations:{}}async function W(e){try{await e()}catch{}}function on(e,t,n){if(e.user.trackedExperiments){let r=kn(t,n);if(e.user.trackedExperiments.has(r))return[];e.user.trackedExperiments.add(r)}e.user.enableDevMode&&e.user.devLogs&&e.user.devLogs.push({experiment:t,result:n,timestamp:Date.now().toString(),logType:`experiment`});let r=[];if(e.global.trackingCallback){let i=e.global.trackingCallback;r.push(W(()=>i(t,n,K(e.user))))}if(e.user.trackingCallback){let i=e.user.trackingCallback;r.push(W(()=>i(t,n,K(e.user))))}if(e.global.eventLogger){let i=e.global.eventLogger;r.push(W(()=>i(nn,{experimentId:t.key,variationId:n.key,hashAttribute:n.hashAttribute,hashValue:n.hashValue},K(e.user))))}return r}function sn(e,t,n){if(e.user.trackedFeatureUsage){var r;let i=JSON.stringify(n.value);if(e.user.trackedFeatureUsage[t]===i)return;e.user.trackedFeatureUsage[t]=i,e.user.enableDevMode&&e.user.devLogs&&e.user.devLogs.push({featureKey:t,result:n,timestamp:Date.now().toString(),logType:`feature`}),(r=e.user.featureUsageSubs)!=null&&r.size&&e.user.featureUsageSubs.forEach(e=>{try{e(t,n)}catch(e){console.error(e)}})}if(e.global.onFeatureUsage){let r=e.global.onFeatureUsage;W(()=>r(t,n,K(e.user)))}if(e.user.onFeatureUsage){let r=e.user.onFeatureUsage;W(()=>r(t,n))}if(e.global.eventLogger){let r=e.global.eventLogger;W(()=>r(tn,{feature:t,source:n.source,value:n.value,ruleId:n.source===`defaultValue`?`$default`:n.ruleId||``,variationId:n.experimentResult?n.experimentResult.key:``},K(e.user)))}}function cn(e,t){if(t.stack.evaluatedFeatures.has(e))return G(t,e,null,`cyclicPrerequisite`);t.stack.evaluatedFeatures.add(e),t.stack.id=e;let n=rn(t);if(n.has(e))return G(t,e,n.get(e),`override`);if(!t.global.features||!t.global.features[e])return G(t,e,null,`unknownFeature`);let r=t.global.features[e];if(r.rules){let n=new Set(t.stack.evaluatedFeatures);rules:for(let i of r.rules){if(i.parentConditions)for(let r of i.parentConditions){t.stack.evaluatedFeatures=new Set(n);let i=cn(r.id,t);if(i.source===`cyclicPrerequisite`)return G(t,e,null,`cyclicPrerequisite`);if(!B({value:i.value},r.condition||{})){if(r.gate)return G(t,e,null,`prerequisite`);continue rules}}if(i.filters&&mn(i.filters,t))continue;if(`force`in i){if(i.condition&&!q(i.condition,t)||!hn(t,i.seed||e,i.hashAttribute,t.user.saveStickyBucketAssignmentDoc&&!i.disableStickyBucketing?i.fallbackAttribute:void 0,i.range,i.coverage,i.hashVersion))continue;return i.tracks&&i.tracks.forEach(e=>{!on(t,e.experiment,e.result).length&&t.global.saveDeferredTrack&&t.global.saveDeferredTrack({experiment:e.experiment,result:e.result,user:K(t.user)})}),G(t,e,i.force,`force`,i.id)}let r=i.contextualVariations??i.variations;if(!r)continue;let a={variations:r,key:i.key||e};`coverage`in i&&(a.coverage=i.coverage),i.weights&&(a.weights=i.weights),i.hashAttribute&&(a.hashAttribute=i.hashAttribute),i.fallbackAttribute&&(a.fallbackAttribute=i.fallbackAttribute),i.disableStickyBucketing&&(a.disableStickyBucketing=i.disableStickyBucketing),i.bucketVersion!==void 0&&(a.bucketVersion=i.bucketVersion),i.minBucketVersion!==void 0&&(a.minBucketVersion=i.minBucketVersion),i.namespace&&(a.namespace=i.namespace),i.meta&&(a.meta=i.meta),i.ranges&&(a.ranges=i.ranges),i.name&&(a.name=i.name),i.phase&&(a.phase=i.phase),i.seed&&(a.seed=i.seed),i.hashVersion&&(a.hashVersion=i.hashVersion),i.filters&&(a.filters=i.filters),i.condition&&(a.condition=i.condition),i.contextualBanditRef&&pn(a,i.contextualBanditRef,e,t);let{result:o}=ln(a,e,t);if(a.contextualBandit&&!(o.hashUsed&&o.inExperiment)&&delete a.contextualBandit,t.global.onExperimentEval&&t.global.onExperimentEval(a,o),o.inExperiment&&!o.passthrough)return G(t,e,o.value,`experiment`,i.id,a,o)}}return G(t,e,r.defaultValue===void 0?null:r.defaultValue,`defaultValue`)}
1function ln(e,t,n){let r=e.key,i=e.variations.length;if(i<2||n.global.enabled===!1||n.user.enabled===!1||(e=gn(e,n),e.contextualBandit&&e.weights&&(e.contextualBandit=U(U({},e.contextualBandit),{},{variationWeights:e.weights})),e.urlPatterns&&!xe(n.user.url||``,e.urlPatterns)))return{result:J(n,e,-1,!1,t)};let a=Ee(r,n.user.url||``,i);if(a!==null)return{result:J(n,e,a,!1,t)};let o=an(n);if(r in o){let i=o[r];return{result:J(n,e,i,!1,t)}}if(e.status===`draft`||e.active===!1)return{result:J(n,e,-1,!1,t)};let{hashAttribute:s,hashValue:c}=Y(n,e.hashAttribute,n.user.saveStickyBucketAssignmentDoc&&!e.disableStickyBucketing?e.fallbackAttribute:void 0);if(!c)return{result:J(n,e,-1,!1,t)};let l=-1,u=!1,d=!1;if(n.user.saveStickyBucketAssignmentDoc&&!e.disableStickyBucketing){let{variation:t,versionIsBlocked:r}=yn({ctx:n,expKey:e.key,expBucketVersion:e.bucketVersion,expHashAttribute:e.hashAttribute,expFallbackAttribute:e.fallbackAttribute,expMinBucketVersion:e.minBucketVersion,expMeta:e.meta});u=t>=0,l=t,d=!!r}if(!u){if(e.filters){if(mn(e.filters,n))return{result:J(n,e,-1,!1,t)}}else if(e.namespace&&!ve(c,e.namespace))return{result:J(n,e,-1,!1,t)};if(e.include&&!De(e.include)||e.condition&&!q(e.condition,n))return{result:J(n,e,-1,!1,t)};if(e.parentConditions){let r=new Set(n.stack.evaluatedFeatures);for(let i of e.parentConditions){n.stack.evaluatedFeatures=new Set(r);let a=cn(i.id,n);if(a.source===`cyclicPrerequisite`||!B({value:a.value},i.condition||{}))return{result:J(n,e,-1,!1,t)}}}if(e.groups&&!vn(e.groups,n))return{result:J(n,e,-1,!1,t)}}if(e.url&&!_n(e.url,n))return{result:J(n,e,-1,!1,t)};let f=g(e.seed||r,c,e.hashVersion||1);if(f===null)return{result:J(n,e,-1,!1,t)};if(u||(l=ye(f,e.ranges||Te(i,e.coverage===void 0?1:e.coverage,e.weights))),d)return{result:J(n,e,-1,!1,t,void 0,!0)};if(l<0)return{result:J(n,e,-1,!1,t)};if(`force`in e)return{result:J(n,e,e.force===void 0?-1:e.force,!1,t)};if(n.global.qaMode||n.user.qaMode||e.status===`stopped`)return{result:J(n,e,-1,!1,t)};let p=J(n,e,l,!0,t,f,u);if(n.user.saveStickyBucketAssignmentDoc&&!e.disableStickyBucketing){let{changed:t,key:r,doc:i}=Cn(n,s,v(c),{[bn(e.key,e.bucketVersion)]:p.key});t&&(n.user.stickyBucketAssignmentDocs=n.user.stickyBucketAssignmentDocs||{},n.user.stickyBucketAssignmentDocs[r]=i,n.user.saveStickyBucketAssignmentDoc(i))}let m=on(n,e,p);m.length===0&&n.global.saveDeferredTrack&&n.global.saveDeferredTrack({experiment:e,result:p,user:K(n.user)});let ee=m.length?m.length===1?m[0]:Promise.all(m).then(()=>{}):void 0;return`changeId`in e&&e.changeId&&n.global.recordChangeId&&n.global.recordChangeId(e.changeId),{result:p,trackingCall:ee}}function G(e,t,n,r,i,a,o){let s={value:n,on:!!n,off:!n,source:r,ruleId:i||``};return a&&(s.experiment=a),o&&(s.experimentResult=o),r!==`override`&&sn(e,t,s),s}function un(e){return U(U({},e.attributes),e.attributeOverrides)}function K(e){return{attributes:un(e),url:e.url}}function dn(e,t){for(let n of e.contexts||[])if(q(n.condition||{},t))return{leafId:n.leafId,weights:n.weights};return null}var fn=-1;function pn(e,t,n,r){let i=r.global.contextualBandits?.[t];if(!i)return;let a=null;if(i.contexts&&i.contexts.length)try{a=dn(i,r)}catch{}if(a){e.weights=a.weights,e.contextualBandit={leafId:a.leafId,variationWeights:a.weights,banditVersion:i.banditVersion};return}e.contextualBandit={leafId:fn,variationWeights:e.weights??ge(e.variations.length),banditVersion:i.banditVersion}}function q(e,t){return B(un(t.user),e,t.global.savedGroups||{})}function mn(e,t){return e.some(e=>{let{hashValue:n}=Y(t,e.attribute);if(!n)return!0;let r=g(e.seed,n,e.hashVersion||2);return r===null||!e.ranges.some(e=>_e(r,e))})}function hn(e,t,n,r,i,a,o){if(!i&&a===void 0)return!0;if(!i&&a===0)return!1;let{hashValue:s}=Y(e,n,r);if(!s)return!1;let c=g(t,s,o||1);return c===null?!1:i?_e(c,i):a===void 0||c<=a}function J(e,t,n,r,i,a,o){let s=!0;(n<0||n>=t.variations.length)&&(n=0,s=!1);let{hashAttribute:c,hashValue:l}=Y(e,t.hashAttribute,e.user.saveStickyBucketAssignmentDoc&&!t.disableStickyBucketing?t.fallbackAttribute:void 0),u=t.meta?t.meta[n]:{},d={key:u.key||``+n,featureId:i,inExperiment:s,hashUsed:r,variationId:n,value:t.variations[n],hashAttribute:c,hashValue:l,stickyBucketUsed:!!o};u.name&&(d.name=u.name),a!==void 0&&(d.bucket=a),u.passthrough&&(d.passthrough=u.passthrough);let f=t.contextualBandit;return f&&r&&s&&(d.leafId=f.leafId,d.variationWeights=f.variationWeights,f.banditVersion!==void 0&&(d.banditVersion=f.banditVersion)),d}function gn(e,t){let n=e.key,r=t.global.overrides;return r&&r[n]&&(e=Object.assign({},e,r[n]),typeof e.url==`string`&&(e.url=be(e.url))),e}function Y(e,t,n){let r=t||`id`,i=``,a=un(e.user);return a[r]&&(i=a[r]),!i&&n&&(a[n]&&(i=a[n]),i&&(r=n)),{hashAttribute:r,hashValue:i}}function _n(e,t){let n=t.user.url;if(!n)return!1;let r=n.replace(/^https?:\/\//,``).replace(/^[^/]*\//,`/`);return!!(e.test(n)||e.test(r))}function vn(e,t){let n=t.global.groups||{};for(let t=0;t<e.length;t++)if(n[e[t]])return!0;return!1}function yn(e){let{ctx:t,expKey:n,expBucketVersion:r,expHashAttribute:i,expFallbackAttribute:a,expMinBucketVersion:o,expMeta:s}=e;r||=0,o||=0,i||=`id`,s||=[];let c=bn(n,r),l=Sn(t,i,a);if(o>0){for(let e=0;e<o;e++)if(l[bn(n,e)]!==void 0)return{variation:-1,versionIsBlocked:!0}}let u=l[c];if(u===void 0)return{variation:-1};let d=s.findIndex(e=>e.key===u);return d<0?{variation:-1}:{variation:d}}function bn(e,t){return t||=0,`${e}__${t}`}function xn(e,t){return`${e}||${t}`}function Sn(e,t,n){if(!e.user.stickyBucketAssignmentDocs)return{};let{hashAttribute:r,hashValue:i}=Y(e,t),a=xn(r,v(i)),{hashAttribute:o,hashValue:s}=Y(e,n),c=s?xn(o,v(s)):null,l={};return c&&e.user.stickyBucketAssignmentDocs[c]&&Object.assign(l,e.user.stickyBucketAssignmentDocs[c].assignments||{}),e.user.stickyBucketAssignmentDocs[a]&&Object.assign(l,e.user.stickyBucketAssignmentDocs[a].assignments||{}),l}function Cn(e,t,n,r){let i=xn(t,n),a=e.user.stickyBucketAssignmentDocs&&e.user.stickyBucketAssignmentDocs[i]&&e.user.stickyBucketAssignmentDocs[i].assignments||{},o=U(U({},a),r),s=JSON.stringify(a)!==JSON.stringify(o);return{key:i,doc:{attributeName:t,attributeValue:n,assignments:o},changed:s}}function wn(e,t){let n=new Set,r=t&&t.features?t.features:e.global.features||{},i=t&&t.experiments?t.experiments:e.global.experiments||[];
1return Object.keys(r).forEach(e=>{let t=r[e];if(t.rules)for(let e of t.rules)(e.variations||e.contextualVariations)&&(n.add(e.hashAttribute||`id`),e.fallbackAttribute&&n.add(e.fallbackAttribute))}),i.map(e=>{n.add(e.hashAttribute||`id`),e.fallbackAttribute&&n.add(e.fallbackAttribute)}),Array.from(n)}async function Tn(e,t,n){let r=En(e,n);return t.getAllAssignments(r)}function En(e,t){let n={};return wn(e,t).forEach(t=>{let{hashValue:r}=Y(e,t);n[t]=v(r)}),n}async function Dn(e,t,n){if(e=U({},e),e.encryptedFeatures){try{e.features=JSON.parse(await _(e.encryptedFeatures,t,n))}catch(e){console.error(e)}delete e.encryptedFeatures}if(e.encryptedExperiments){try{e.experiments=JSON.parse(await _(e.encryptedExperiments,t,n))}catch(e){console.error(e)}delete e.encryptedExperiments}if(e.encryptedSavedGroups){try{e.savedGroups=JSON.parse(await _(e.encryptedSavedGroups,t,n))}catch(e){console.error(e)}delete e.encryptedSavedGroups}if(e.encryptedContextualBandits){try{e.contextualBandits=JSON.parse(await _(e.encryptedContextualBandits,t,n))}catch(e){console.error(e)}delete e.encryptedContextualBandits}return e}function On(e){let t=e.apiHost||`https://cdn.growthbook.io`;return{apiHost:t.replace(/\/*$/,``),streamingHost:(e.streamingHost||t).replace(/\/*$/,``),apiRequestHeaders:e.apiHostRequestHeaders,streamingHostRequestHeaders:e.streamingHostRequestHeaders}}function kn(e,t){return t.hashAttribute+t.hashValue+e.key+t.variationId}var An=[`data`];function jn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function X(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?jn(Object(n),!0).forEach(function(t){Mn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Mn(e,t,n){return(t=Nn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Nn(e){var t=Pn(e,`string`);return typeof t==`symbol`?t:t+``}function Pn(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Fn(e,t){if(e==null)return{};var n,r,i=In(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function In(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var Z=typeof window<`u`&&typeof document<`u`,Ln=ke(),Rn=class{constructor(e){if(e||={},this.version=Ln,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._featureUsageSubs=new Set,this._customEventSubs=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._onExperimentEval=this._onExperimentEval.bind(this),this._fireSubscriptions=this._fireSubscriptions.bind(this),this._recordChangedId=this._recordChangedId.bind(this),e.remoteEval){if(e.decryptionKey)throw Error(`Encryption is not available for remoteEval`);if(!e.clientKey)throw Error(`Missing clientKey`);let t=!1;try{t=!!new URL(e.apiHost||``).hostname.match(/growthbook\.io$/i)}catch{}if(t)throw Error(`Cannot use remoteEval on GrowthBook Cloud`)}else if(e.cacheKeyAttributes)throw Error(`cacheKeyAttributes are only used for remoteEval`);if(e.stickyBucketService){let t=e.stickyBucketService;this._saveStickyBucketAssignmentDoc=e=>t.saveAssignments(e)}if(e.plugins)for(let t of e.plugins)t(this);if(e.features&&(this.ready=!0),Z&&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 e in this._options.stickyBucketAssignmentDocs){let t=this._options.stickyBucketAssignmentDocs[e];
1t&&this._options.stickyBucketService.saveAssignments(t).catch(()=>{})}this.ready&&this.refreshStickyBuckets(this.getPayload())}async setPayload(e){this._payload=e;let t=await Dn(e,this._options.decryptionKey);this._decryptedPayload=t,await this.refreshStickyBuckets(t),t.features&&(this._options.features=t.features),t.savedGroups&&(this._options.savedGroups=t.savedGroups),t.contextualBandits&&(this._options.contextualBandits=t.contextualBandits),t.experiments&&(this._options.experiments=t.experiments,this._updateAllAutoExperiments()),this.ready=!0,this._render()}initSync(e){this._initialized=!0;let t=e.payload;if(t.encryptedExperiments||t.encryptedFeatures)throw Error(`initSync does not support encrypted payloads`);return this._options.stickyBucketService&&!this._options.stickyBucketAssignmentDocs&&(this._options.stickyBucketAssignmentDocs=this.generateStickyBucketAssignmentDocsSync(this._options.stickyBucketService,t)),this._payload=t,this._decryptedPayload=t,t.features&&(this._options.features=t.features),t.savedGroups&&(this._options.savedGroups=t.savedGroups),t.contextualBandits&&(this._options.contextualBandits=t.contextualBandits),t.experiments&&(this._options.experiments=t.experiments,this._updateAllAutoExperiments()),this.ready=!0,A(this,e),this}async init(e){if(this._initialized=!0,e||={},e.cacheSettings&&ze(e.cacheSettings),e.payload)return await this.setPayload(e.payload),A(this,e),{success:!0,source:`init`};{let t=await this._refresh(X(X({},e),{},{allowStale:!0})),{data:n}=t,r=Fn(t,An);return A(this,e),await this.setPayload(n||{}),r}}async loadFeatures(e){e||={},await this.init({skipCache:e.skipCache,timeout:e.timeout,streaming:(this._options.backgroundSync??!0)&&(e.autoRefresh||this._options.subscribeToChanges)})}async refreshFeatures(e){let t=await this._refresh(X(X({},e||{}),{},{allowStale:!1}));t.data&&await this.setPayload(t.data)}getApiInfo(){return[this.getApiHosts().apiHost,this.getClientKey()]}getApiHosts(){return On(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}async _refresh(e){let{timeout:t,skipCache:n,allowStale:r,streaming:i}=e;if(!this._options.clientKey)throw Error(`Missing clientKey`);return Be({instance:this,timeout:t,skipCache:n||this._options.disableCache,allowStale:r,backgroundSync:i??this._options.backgroundSync??!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()}async setEncryptedFeatures(e,t,n){let r=await _(e,t||this._options.decryptionKey,n);this.setFeatures(JSON.parse(r))}setExperiments(e){this._options.experiments=e,this.ready=!0,this._updateAllAutoExperiments()}async setEncryptedExperiments(e,t,n){let r=await _(e,t||this._options.decryptionKey,n);this.setExperiments(JSON.parse(r))}async setAttributes(e){if(this._options.attributes=e,this._options.stickyBucketService&&await this.refreshStickyBuckets(),this._options.remoteEval){await this._refreshForRemoteEval();return}this._render(),this._updateAllAutoExperiments()}async updateAttributes(e){return this.setAttributes(X(X({},this._options.attributes),e))}async setAttributeOverrides(e){if(this._options.attributeOverrides=e,this._options.stickyBucketService&&await this.refreshStickyBuckets(),this._options.remoteEval){await this._refreshForRemoteEval();return}this._render(),this._updateAllAutoExperiments()}async setForcedVariations(e){if(this._options.forcedVariations=e||{},this._options.remoteEval){await this._refreshForRemoteEval();return}this._render(),this._updateAllAutoExperiments()}setForcedFeatures(e){this._options.forcedFeatureValues=e,this._render()}async setURL(e){if(e!==this._options.url){if(this._options.url=e,this._redirectedUrl=``,this._options.remoteEval){await this._refreshForRemoteEval(),this._updateAllAutoExperiments(!0);return}this._updateAllAutoExperiments(!0)}}getAttributes(){return X(X({},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)}}_subscribeFeatureUsage(e){return this._featureUsageSubs.add(e),()=>this._featureUsageSubs.delete(e)}_subscribeCustomEvents(e){return this._customEventSubs.add(e),()=>this._customEventSubs.delete(e)}async _refreshForRemoteEval(){if(!this._options.remoteEval||!this._initialized)return;let e=await this._refresh({allowStale:!1});e.data&&await this.setPayload(e.data)}getAllResults(){return new Map(this._assigned)}onDestroy(e){this._destroyCallbacks.push(e)}isDestroyed(){return!!this._destroyed}destroy(e){e||={}
1,this._destroyed=!0,this._destroyCallbacks.forEach(e=>{try{e()}catch(e){console.error(e)}}),this._subscriptions.clear(),this._featureUsageSubs.clear(),this._customEventSubs.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),e.destroyAllStreams&&it(),this.logs=[],Z&&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,t){if(this._options.forcedVariations=this._options.forcedVariations||{},this._options.forcedVariations[e]=t,this._options.remoteEval){this._refreshForRemoteEval();return}this._updateAllAutoExperiments(),this._render()}run(e){let{result:t}=ln(e,null,this._getEvalContext());return this._onExperimentEval(e,t),t}triggerExperiment(e){return this._triggeredExpKeys.add(e),this._options.experiments?this._options.experiments.filter(t=>t.key===e).map(e=>this._runAutoExperiment(e)).filter(e=>e!==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?X(X({},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,featureUsageSubs:this._featureUsageSubs,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,contextualBandits:this._options.contextualBandits,groups:this._options.groups,overrides:this._options.overrides,onExperimentEval:this._onExperimentEval,recordChangeId:this._recordChangedId,saveDeferredTrack:this._saveDeferredTrack,eventLogger:this._options.eventLogger}}_runAutoExperiment(e,t){let n=this._activeAutoExperiments.get(e);if(e.manual&&!this._triggeredExpKeys.has(e.key)&&!n)return null;let r=this._isAutoExperimentBlockedByContext(e),i,a;r?i=J(this._getEvalContext(),e,-1,!1,``):({result:i,trackingCall:a}=ln(e,null,this._getEvalContext()),this._onExperimentEval(e,i));let o=JSON.stringify(i.value);if(!t&&i.inExperiment&&n&&n.valueHash===o)return i;if(n&&this._undoActiveAutoExperiment(e),i.inExperiment){let t=b(e);if(t===`redirect`&&i.value.urlRedirect&&e.urlPatterns){let t=e.persistQueryString?Ae(this._getContextUrl(),i.value.urlRedirect):i.value.urlRedirect;if(xe(t,e.urlPatterns))return this.log(`Skipping redirect because original URL matches redirect URL`,{id:e.key}),i;this._redirectedUrl=t;let{navigate:n,delay:r}=this._getNavigateFunction();if(n){if(Z)Promise.all([...a?[Me(a,this._options.maxNavigateDelay??1e3)]:[],new Promise(e=>window.setTimeout(e,this._options.navigateDelay??r))]).then(()=>{try{n(t)}catch(e){console.error(e)}});else try{n(t)}catch(e){console.error(e)}}}else if(t===`visual`){let t=this._options.applyDomChangesCallback?this._options.applyDomChangesCallback(i.value):this._applyDOMChanges(i.value);t&&this._activeAutoExperiments.set(e,{undo:t,valueHash:o})}}return i}_undoActiveAutoExperiment(e){let t=this._activeAutoExperiments.get(e);t&&(t.undo(),this._activeAutoExperiments.delete(e))}_updateAllAutoExperiments(e){if(!this._autoExperimentsAllowed)return;let t=this._options.experiments||[],n=new Set(t);
1this._activeAutoExperiments.forEach((e,t)=>{n.has(t)||(e.undo(),this._activeAutoExperiments.delete(t))});for(let n of t){let t=this._runAutoExperiment(n,e);if(t&&t.inExperiment&&b(n)===`redirect`)break}}_onExperimentEval(e,t){let n=this._assigned.get(e.key);this._assigned.set(e.key,{experiment:e,result:t}),this._subscriptions.size>0&&this._fireSubscriptions(e,t,n)}_fireSubscriptions(e,t,n){(!n||n.result.inExperiment!==t.inExperiment||n.result.variationId!==t.variationId)&&this._subscriptions.forEach(n=>{try{n(e,t)}catch(e){console.error(e)}})}_recordChangedId(e){this._completedChangeIds.add(e)}isOn(e){return this.evalFeature(e).on}isOff(e){return this.evalFeature(e).off}getFeatureValue(e,t){let n=this.evalFeature(e).value;return n===null?t:n}feature(e){return this.evalFeature(e)}evalFeature(e){return cn(e,this._getEvalContext())}log(e,t){this.debug&&(this._options.log?this._options.log(e,t):console.log(e,t))}getDeferredTrackingCalls(){return Array.from(this._deferredTrackingCalls.values())}setDeferredTrackingCalls(e){this._deferredTrackingCalls=new Map(e.filter(e=>e&&e.experiment&&e.result).map(e=>[kn(e.experiment,e.result),e]))}async fireDeferredTrackingCalls(){if(!this._options.trackingCallback)return;let e=[];this._deferredTrackingCalls.forEach(t=>{!t||!t.experiment||!t.result?console.error(`Invalid deferred tracking call`,{call:t}):e.push(this._options.trackingCallback(t.experiment,t.result,t.user))}),this._deferredTrackingCalls.clear(),await Promise.all(e)}setTrackingCallback(e){this._options.trackingCallback=e,this.fireDeferredTrackingCalls()}setFeatureUsageCallback(e){this._options.onFeatureUsage=e}setEventLogger(e){this._options.eventLogger=e}async logEvent(e,t){if(this._destroyed){console.error(`Cannot log event to destroyed GrowthBook instance`);return}if(this._options.enableDevMode&&this.logs.push({eventName:e,properties:t,timestamp:Date.now().toString(),logType:`event`}),this._customEventSubs.size&&this._customEventSubs.forEach(n=>{try{n(e,t||{})}catch(e){console.error(e)}}),this._options.eventLogger)try{await this._options.eventLogger(e,t||{},K(this._getUserContext()))}catch(e){console.error(e)}else console.error(`No event logger configured`)}_saveDeferredTrack(e){this._deferredTrackingCalls.set(kn(e.experiment,e.result),e)}_getContextUrl(){return this._options.url||(Z?window.location.href:``)}_isAutoExperimentBlockedByContext(e){let t=b(e);if(t===`visual`){if(this._options.disableVisualExperiments||this._options.disableJsInjection&&e.variations.some(e=>e.js))return!0}else if(t===`redirect`){if(this._options.disableUrlRedirectExperiments)return!0;try{let t=new URL(this._getContextUrl());for(let n of e.variations){if(!n||!n.urlRedirect)continue;let e=new URL(n.urlRedirect);if(this._options.disableCrossOriginUrlRedirectExperiments&&(e.protocol!==t.protocol||e.host!==t.host))return!0}}catch(t){return this.log(`Error parsing current or redirect URL`,{id:e.key,error:t}),!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}:Z?{navigate:e=>{window.location.replace(e)},delay:100}:{navigate:null,delay:0}}_applyDOMChanges(e){if(!Z)return;let t=[];if(e.css){let n=document.createElement(`style`);n.innerHTML=e.css,document.head.appendChild(n),t.push(()=>n.remove())}if(e.js){let n=document.createElement(`script`);n.innerHTML=e.js,this._options.jsInjectionNonce&&(n.nonce=this._options.jsInjectionNonce),document.head.appendChild(n),t.push(()=>n.remove())}return e.domMutations&&e.domMutations.forEach(e=>{t.push(Vt.declarative(e).revert)}),()=>{t.forEach(e=>e())}}async refreshStickyBuckets(e){if(this._options.stickyBucketService){let t=await Tn(this._getEvalContext(),this._options.stickyBucketService,e);this._options.stickyBucketAssignmentDocs=t}}generateStickyBucketAssignmentDocsSync(e,t){if(!(`getAllAssignmentsSync`in e)){console.error(`generating StickyBucketAssignmentDocs docs requires StickyBucketServiceSync`);return}let n=En(this._getEvalContext(),t);return e.getAllAssignmentsSync(n)}inDevMode(){return!!this._options.enableDevMode}},Q=u(d(),1),zn=`GTM-PSRTQFTD`,Bn=`G-ZM1CBNJ9KC`;
1function Vn(){return`https://www.googletagmanager.com/gtag/js?id=${Bn}`}function Hn(){return`https://www.googletagmanager.com/ns.html?id=${zn}`}function Un(){return`
2    window.dataLayer = window.dataLayer || [];
3    function gtag(){dataLayer.push(arguments);}
4    gtag('js', new Date());
5    gtag('config', '${Bn}');
6  `}function Wn(){return`
7    (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
8    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
9    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
10    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
11    })(window,document,'script','dataLayer','${zn}');
12  `}function Gn(){let e=Vn();if(!document.querySelector(`script[src="${e}"]`)){let t=document.createElement(`script`);t.async=!0,t.src=e,document.head.appendChild(t)}if(!document.getElementById(`gtag-init`)){let e=document.createElement(`script`);e.id=`gtag-init`,e.innerHTML=Un(),document.head.appendChild(e)}if(!document.getElementById(`gtm-bootstrap`)){let e=document.createElement(`script`);e.id=`gtm-bootstrap`,e.innerHTML=Wn(),document.head.appendChild(e)}}var $=p();function Kn(){return(0,Q.useEffect)(()=>{Gn()},[]),null}function qn(){let e=i();return(0,Q.useEffect)(()=>{window.dataLayer=window.dataLayer??[],window.dataLayer.push({event:`page_view`,page_location:window.location.href,page_path:e.pathname+e.search,page_title:document.title})},[e.pathname,e.search]),(0,$.jsx)(`noscript`,{children:(0,$.jsx)(`iframe`,{title:`Google Tag Manager`,src:Hn(),height:`0`,width:`0`,className:`hidden`})})}function Jn({part:e}){return e===`head`?(0,$.jsx)(Kn,{}):(0,$.jsx)(qn,{})}var Yn=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`,Xn=(e=21)=>{let t=``,n=e|0;for(;n-->0;)t+=Yn[Math.random()*64|0];return t},Zn=`brale_xyz_uid`,Qn={apiKeys:{dev:`key_dev_165dbbf77c428a4e`,local:`key_loca_6e0da5c70aef5eae`,prod:`key_prod_fa0fb514447c742a`}},$n=60,er=new Map;async function tr(e){let t=er.get(e);if(t!=null&&Date.now()<t.expiresAt)return t.features;try{let t=await(await fetch(`https://cdn.growthbook.io/api/features/${Qn.apiKeys[e]}`)).json();return er.set(e,{features:t.features,expiresAt:Date.now()+$n*1e3}),t.features}catch{return t?.features??{}}}async function nr({env:e,isClient:t,growthBook:n}){if(t){let e=rr();e!=null&&n.setAttributes({id:e})}let r=await tr(e);n.setPayload({features:r})}function rr(){try{let e=localStorage.getItem(Zn);return e??(e=Xn(),localStorage.setItem(Zn,e)),e}catch(e){console.error(e);return}}var ir=``;function ar(e){let t=cr(e);return!(t===ir||t.startsWith(`/action/`)||t.startsWith(`/.well-known/`)||(t.split(`/`).pop()??``).includes(`.`))}function or(e,t){if(!ar(e))return null;let n=cr(e).split(`/`).filter(Boolean);if(n.length===0)return null;let r=sr(t),i=[{name:`Home`,path:ir}],a=``;for(let e=0;e<n.length;e++){let t=n[e];a=a?`${a}/${t}`:t;let o=e===n.length-1?r??fe(a):fe(a);i.push({name:o,path:a})}return i}function sr(e){let t=e[e.length-1]?.loaderData;if(!t||typeof t!=`object`)return;let n=t,r=n.post;if(r&&typeof r==`object`&&`title`in r){let e=r.title;if(typeof e==`string`&&e.trim())return e.trim()}let i=n.token;if(i&&typeof i==`object`&&`ticker`in i&&`name`in i){let{ticker:e,name:t}=i;if(typeof e==`string`&&typeof t==`string`)return de(`${e} (${t})`)}}function cr(e){if(!e||e===`/`)return ir;let t=e;for(;t.length>1&&t.endsWith(`/`);)t=t.slice(0,-1);return t.startsWith(`/`)?t.slice(1):t}function lr(e){return e!==void 0&&e.structuredData!==void 0&&typeof e.structuredData==`function`}function ur(e){return JSON.stringify(e).replace(/</g,`\\u003c`)}function dr(){let e=i(),t=l(),n=t.flatMap(({loaderData:t,handle:n,id:r,params:i},a,o)=>{if(t!==void 0&&lr(n)){let s=n.structuredData({id:r,data:t,params:i,location:e,parentsData:o.slice(0,a).map(({loaderData:e})=>e)});if(s)return s}return[]}),r=or(e.pathname,t);if(r&&n.push(ue(r)),n.length===0)return null;let a=ur(n.length===1?n[0]:n);return(0,$.jsx)(`script`,{type:`application/ld+json`,dangerouslySetInnerHTML:{__html:a}})}var fr=`/assets/app-CJzcUXqa.css`;te.autoAddCss=!1;var{desc:pr,path:mr,title:hr}=oe.home,gr=`(() => {
13  try {
14    if (!document.cookie.includes("intercom-")) return;
15    const { hostname } = location;
16    const parts = hostname.split(".");
17    const domains = new Set([hostname, "." + hostname]);
18    if (parts.length > 1) {
19      const apex = parts.slice(-2).join(".");
20      domains.add(apex);
21      domains.add("." + apex);
22    }
23    const expired = "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
24    for (const cookie of document.cookie.split(";")) {
25      const name = cookie.split("=")[0].trim();
26      if (!name.startsWith("intercom-")) continue;
27      for (const d of domains) document.cookie = name + expired + "; domain=" + d;
28      document.cookie = name + expired;
29    }
30  } catch {}
31})();`,_r=()=>[{rel:`alternate`,href:`/feed.xml`,type:`application/rss+xml`}
31,{rel:`apple-touch-icon`,href:`/favicon/apple-touch-icon.png`,sizes:`180x180`},{rel:`icon`,href:`/favicon/favicon.ico`,sizes:`any`},{rel:`icon`,href:`/favicon/favicon.svg`,type:`image/svg+xml`},{rel:`manifest`,href:`/favicon/site.webmanifest`},{rel:`mask-icon`,href:`/favicon/favicon.svg`},{rel:`preload`,as:`font`,type:`font/woff2`,href:`/fonts/InterVariable.woff2`,crossOrigin:`anonymous`},{rel:`stylesheet`,href:fr}],vr=({loaderData:e})=>{if(e){let t=`${e.urls.base}${h.image.path}`;return[...ce({desc:pr,title:hr,url:le(mr)}),{property:`og:image`,content:t},{property:`og:type`,content:`website`},{name:`theme-color`,content:`#000`},{property:`twitter:alt`,content:h.image.alt},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:creator`,content:h.social.twitter},{property:`twitter:domain`,content:h.domain},{name:`twitter:image`,content:t},{name:`twitter:site`,content:h.social.twitter}]}return[]},yr=m(function(){return(0,$.jsxs)(br,{children:[(0,$.jsx)(s,{}),(0,$.jsx)(ne,{})]})});function br({children:t}){let n=e(),[r]=(0,Q.useState)(()=>new Rn({features:n.features}));return(0,Q.useEffect)(()=>{nr({env:n.env,isClient:!0,growthBook:r})},[n.env,r]),(0,$.jsx)(Q.StrictMode,{children:(0,$.jsx)(ee,{growthbook:r,children:(0,$.jsx)(ae,{specifiedTheme:n.theme,children:(0,$.jsx)(xr,{children:t})})})})}function xr({children:t}){let n=e(),[r]=ie();return(0,$.jsx)(Sr,{data:n,theme:r,children:t})}function Sr({children:e,data:t,theme:n}){let r=t?.enableAnalytics??!1;return(0,$.jsxs)(`html`,{lang:`en`,suppressHydrationWarning:!0,className:`hover:prose-a:no-underline min-h-full scroll-smooth antialiased ${n??``}`,children:[(0,$.jsxs)(`head`,{children:[(0,$.jsx)(`meta`,{charSet:`utf-8`}),(0,$.jsx)(`meta`,{name:`viewport`,content:`width=device-width, initial-scale=1`}),(0,$.jsx)(`script`,{dangerouslySetInnerHTML:{__html:gr}}),(0,$.jsx)(o,{}),(0,$.jsx)(c,{}),(0,$.jsx)(dr,{}),r?(0,$.jsx)(Jn,{part:`head`}):null,(0,$.jsx)(`script`,{src:`https://assets.calendly.com/assets/external/widget.js`,type:`text/javascript`,async:!0,id:`calendly`}),t&&(0,$.jsx)(re,{ssrTheme:!!t?.theme})]}),(0,$.jsxs)(`body`,{className:`bg-background flex min-h-screen flex-col`,children:[r?(0,$.jsx)(Jn,{part:`body`}):null,e,(0,$.jsx)(f,{})]})]})}var Cr=a(()=>{let e=r(),i=t(`root`),a=new Rn({features:{}}),o=n(e)?e.status:500;return(0,$.jsx)(ae,{specifiedTheme:i?.theme??null,children:(0,$.jsx)(wr,{data:i,children:(0,$.jsx)(ee,{growthbook:a,children:(0,$.jsx)(se,{statusCode:o})})})})});function wr({children:e,data:t}){let[n]=ie();return(0,$.jsx)(Sr,{data:t,theme:n,children:e})}export{Cr as ErrorBoundary,yr as default,_r as links,vr as meta};

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.