PageSourceSearch

https://www.sondo.ai/_nuxt/CE9BS92s.js

js sondo.ai collected 2026-10-01 15:42:02 UTC 143,549 bytes, 3 lines download raw bytes

1const Mi=()=>{};var hn={};const Qn=function(t){const e=[];let n=0;for(let r=0;r<t.length;r++){let i=t.charCodeAt(r);i<128?e[n++]=i:i<2048?(e[n++]=i>>6|192,e[n++]=i&63|128):(i&64512)===55296&&r+1<t.length&&(t.charCodeAt(r+1)&64512)===56320?(i=65536+((i&1023)<<10)+(t.charCodeAt(++r)&1023),e[n++]=i>>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=i&63|128):(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=i&63|128)}return e},Li=function(t){const e=[];let n=0,r=0;for(;n<t.length;){const i=t[n++];if(i<128)e[r++]=String.fromCharCode(i);else if(i>191&&i<224){const s=t[n++];e[r++]=String.fromCharCode((i&31)<<6|s&63)}else if(i>239&&i<365){const s=t[n++],o=t[n++],a=t[n++],c=((i&7)<<18|(s&63)<<12|(o&63)<<6|a&63)-65536;e[r++]=String.fromCharCode(55296+(c>>10)),e[r++]=String.fromCharCode(56320+(c&1023))}else{const s=t[n++],o=t[n++];e[r++]=String.fromCharCode((i&15)<<12|(s&63)<<6|o&63)}}return e.join("")},Nt={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:typeof atob=="function",encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let i=0;i<t.length;i+=3){const s=t[i],o=i+1<t.length,a=o?t[i+1]:0,c=i+2<t.length,l=c?t[i+2]:0,d=s>>2,h=(s&3)<<4|a>>4;let p=(a&15)<<2|l>>6,M=l&63;c||(M=64,o||(p=64)),r.push(n[d],n[h],n[p],n[M])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(Qn(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):Li(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();const n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let i=0;i<t.length;){const s=n[t.charAt(i++)],a=i<t.length?n[t.charAt(i)]:0;++i;const l=i<t.length?n[t.charAt(i)]:64;++i;const h=i<t.length?n[t.charAt(i)]:64;if(++i,s==null||a==null||l==null||h==null)throw new Ui;const p=s<<2|a>>4;if(r.push(p),l!==64){const M=a<<4&240|l>>2;if(r.push(M),h!==64){const Z=l<<6&192|h;r.push(Z)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t<this.ENCODED_VALS.length;t++)this.byteToCharMap_[t]=this.ENCODED_VALS.charAt(t),this.charToByteMap_[this.byteToCharMap_[t]]=t,this.byteToCharMapWebSafe_[t]=this.ENCODED_VALS_WEBSAFE.charAt(t),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[t]]=t,t>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}};
1class Ui extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const Fi=function(t){const e=Qn(t);return Nt.encodeByteArray(e,!0)},Zn=function(t){return Fi(t).replace(/\./g,"")},xe=function(t){try{return Nt.decodeString(t,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function er(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("Unable to locate global object.")}const $i=()=>er().__FIREBASE_DEFAULTS__,xi=()=>{if(typeof process>"u"||typeof hn>"u")return;const t=hn.__FIREBASE_DEFAULTS__;if(t)return JSON.parse(t)},Bi=()=>{if(typeof document>"u")return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch{return}const e=t&&xe(t[1]);return e&&JSON.parse(e)},Mt=()=>{try{return Mi()||$i()||xi()||Bi()}catch(t){`${t}`;return}},Hi=t=>{var e,n;return(n=(e=Mt())==null?void 0:e.emulatorHosts)==null?void 0:n[t]},tr=()=>{var t;return(t=Mt())==null?void 0:t.config},nr=t=>{var e;return(e=Mt())==null?void 0:e[`_${t}`]};class de{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,n)=>{this.resolve=e,this.reject=n})}wrapCallback(e){return(n,r)=>{n?this.reject(n):this.resolve(r),typeof e=="function"&&(this.promise.catch(()=>{}),e.length===1?e(n):e(n,r))}}}function y(){return typeof navigator<"u"&&typeof navigator.userAgent=="string"?navigator.userAgent:""}function Vi(){return typeof window<"u"&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(y())}function Wi(){return typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers"}function Lt(){const t=typeof chrome=="object"?chrome.runtime:typeof browser=="object"?browser.runtime:void 0;return typeof t=="object"&&t.id!==void 0}function ji(){return typeof navigator=="object"&&navigator.product==="ReactNative"}function zi(){const t=y();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0}function be(){try{return typeof indexedDB=="object"}catch{return!1}}function Ut(){return new Promise((t,e)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),n||self.indexedDB.deleteDatabase(r),t(!0)},i.onupgradeneeded=()=>{n=!1},i.onerror=()=>{var s;e(((s=i.error)==null?void 0:s.message)||"")}}catch(n){e(n)}})}function rr(){return!(typeof navigator>"u"||!navigator.cookieEnabled)}const qi="FirebaseError";class D extends Error{constructor(e,n,r){super(n),this.code=e,this.customData=r,this.name=qi,Object.setPrototypeOf(this,D.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,Y.prototype.create)}}class Y{constructor(e,n,r){this.service=e,this.serviceName=n,this.errors=r}create(e,...n){const r=n[0]||{},i=`${this.service}/${e}`,s=this.errors[e],o=s?Ki(s,r):"Error",a=`${this.serviceName}: ${o} (${i}).`;return new D(i,a,r)}}function Ki(t,e){return t.replace(Gi,(n,r)=>{const i=e[r];return i!=null?String(i):`<${r}?>`})}const Gi=/\{\$([^}]+)}/g;function fn(t){return JSON.parse(t)}const Ji=function(t){let e={},n={},r={},i="";try{const s=t.split(".");e=fn(xe(s[0])||""),n=fn(xe(s[1])||""),i=s[2],r=n.d||{},delete n.d}catch{}return{header:e,claims:n,data:r,signature:i}},Yi=function(t){const e=Ji(t).claims;return typeof e=="object"&&e.hasOwnProperty("iat")?e.iat:null};function Xi(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}function ne(t,e){if(t===e)return!0;const n=Object.keys(t),r=Object.keys(e);for(const i of n){if(!r.includes(i))return!1;const s=t[i],o=e[i];if(pn(s)&&pn(o)){if(!ne(s,o))return!1}else if(s!==o)return!1}for(const i of r)if(!n.includes(i))return!1;return!0}function pn(t){return t!==null&&typeof t=="object"}function ve(t){const e=[];for(const[n,r]of Object.entries(t))Array.isArray(r)?r.forEach(i=>{e.push(encodeURIComponent(n)+"="+encodeURIComponent(i))}):e.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return e.length?"&"+e.join("&"):""}function pe(t){const e={};return t.replace(/^\?/,"").split("&").forEach(r=>{if(r){const[i,s]=r.split("=");e[decodeURIComponent(i)]=decodeURIComponent(s)}}),e}function ge(t){const e=t.indexOf("?");if(!e)return"";const n=t.indexOf("#",e);return t.substring(e,n>0?n:void 0)}function Qi(t,e){const n=new Zi(t,e);return n.subscribe.bind(n)}class Zi{constructor(e,n){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Prom
1ise.resolve(),this.finalized=!1,this.onNoObservers=n,this.task.then(()=>{e(this)}).catch(r=>{this.error(r)})}next(e){this.forEachObserver(n=>{n.next(e)})}error(e){this.forEachObserver(n=>{n.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,n,r){let i;if(e===void 0&&n===void 0&&r===void 0)throw new Error("Missing Observer.");es(e,["next","error","complete"])?i=e:i={next:e,error:n,complete:r},i.next===void 0&&(i.next=at),i.error===void 0&&(i.error=at),i.complete===void 0&&(i.complete=at);const s=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch{}}),this.observers.push(i),s}unsubscribeOne(e){this.observers===void 0||this.observers[e]===void 0||(delete this.observers[e],this.observerCount-=1,this.observerCount===0&&this.onNoObservers!==void 0&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let n=0;n<this.observers.length;n++)this.sendOne(n,e)}sendOne(e,n){this.task.then(()=>{if(this.observers!==void 0&&this.observers[e]!==void 0)try{n(this.observers[e])}catch(r){typeof console<"u"&&console.error&&console.error(r)}})}close(e){this.finalized||(this.finalized=!0,e!==void 0&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}}function es(t,e){if(typeof t!="object"||t===null)return!1;for(const n of e)if(n in t&&typeof t[n]=="function")return!0;return!1}function at(){}const ts=1e3,ns=2,rs=14400*1e3,is=.5;function It(t,e=ts,n=ns){const r=e*Math.pow(n,t),i=Math.round(is*r*(Math.random()-.5)*2);return Math.min(rs,r+i)}function m(t){return t&&t._delegate?t._delegate:t}function Ft(t){try{return(t.startsWith("http://")||t.startsWith("https://")?new URL(t).hostname:t).endsWith(".cloudworkstations.dev")}catch{return!1}}async function ss(t){return(await fetch(t,{credentials:"include"})).ok}class T{constructor(e,n,r){this.name=e,this.instanceFactory=n,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const ee="[DEFAULT]";class os{constructor(e,n){this.name=e,this.container=n,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){const r=new de;if(this.instancesDeferred.set(n,r),this.isInitialized(n)||this.shouldAutoInitialize())try{const i=this.getOrInitializeService({instanceIdentifier:n});i&&r.resolve(i)}catch{}}return this.instancesDeferred.get(n).promise}getImmediate(e){const n=this.normalizeInstanceIdentifier(e==null?void 0:e.identifier),r=(e==null?void 0:e.optional)??!1;if(this.isInitialized(n)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:n})}catch(i){if(r)return null;throw i}else{if(r)return null;throw Error(`Service ${this.name} is not available`)}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,!!this.shouldAutoInitialize()){if(cs(e))try{this.getOrInitializeService({instanceIdentifier:ee})}catch{}for(const[n,r]of this.instancesDeferred.entries()){const i=this.normalizeInstanceIdentifier(n);try{const s=this.getOrInitializeService({instanceIdentifier:i});r.resolve(s)}catch{}}}}clearInstance(e=ee){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter(n=>"INTERNAL"in n).map(n=>n.INTERNAL.delete()),...e.filter(n=>"_delete"in n).map(n=>n._delete())])}isComponentSet(){return this.component!=null}isInitialized(e=ee){return this.instances.has(e)}getOptions(e=ee){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:n={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(`${this.name}(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const i=this.getOrInitializeService({instanceIdentifier:r,options:n});for(const[s,o]of this.instancesDeferred.entries()){const a=this.normalizeInstanceIdentifier(s);r===a&&o.resolve(i)}return i}onInit(e,n){const r=this.normalizeInstanceIdentifier(n),i=this.onInitCallbacks.get(r)??new Set;i.add(e),this.onInitCallbacks.set(r,i);const s=this.instances.get(r);return s&&e(s,r),()=>{i.delete(e)}}invokeOnInitCallbacks(e,n){const r=this.onInitCallbacks.get(n);if(r)for(const i of r)try{i(e,n)}catch{}}getOrInitializeService({instanceIdentifier:e,options:n={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:as(e),options:n}),this.instances.set(e,r),this.instancesOptions.set(e,n),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}return r||null}normalizeInstanceIdentifier(e=ee){return this.component?this.component.multipleInstances?e:ee:e}shouldAutoInitialize(){return!!this.component&&this.component.instantiationMode!=="EXPLICIT"}}function as(t){return t===ee?void 0:t}function cs(t){return t.instantiationMode==="EAGER"}class ls{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const n=this.getProvider(e.name);if(n.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);n.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const n=new os(e,this);return this.providers.set(e,n),n}getProviders(){return Array.from(this.providers.values())}}var f;(function(t){t[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT"})(f||(f={}));const us={debug:f.DEBUG,verbose:f.VERBOSE,info:f.INFO,warn:f.WARN,error:f.ERROR,silent:f.SILENT},ds=f.INFO,hs={[f.DEBUG]:"log",[f.VERBOSE]:"log",[f.INFO]:"info",[f.WARN]:"warn",[f.ERROR]:"error"},fs=(t,e,...n)=>{if(e<t.logLevel)return;const r=new Date().toISOString(),i=hs[e];if(i)console[i](`[${r}]  ${t.name}:`,...n);
1else throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`)};class Ye{constructor(e){this.name=e,this._logLevel=ds,this._logHandler=fs,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in f))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel=typeof e=="string"?us[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if(typeof e!="function")throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,f.DEBUG,...e),this._logHandler(this,f.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,f.VERBOSE,...e),this._logHandler(this,f.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,f.INFO,...e),this._logHandler(this,f.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,f.WARN,...e),this._logHandler(this,f.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,f.ERROR,...e),this._logHandler(this,f.ERROR,...e)}}const ps=(t,e)=>e.some(n=>t instanceof n);let gn,mn;function gs(){return gn||(gn=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function ms(){return mn||(mn=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const ir=new WeakMap,wt=new WeakMap,sr=new WeakMap,ct=new WeakMap,$t=new WeakMap;function _s(t){const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("success",s),t.removeEventListener("error",o)},s=()=>{n(G(t.result)),i()},o=()=>{r(t.error),i()};t.addEventListener("success",s),t.addEventListener("error",o)});return e.then(n=>{n instanceof IDBCursor&&ir.set(n,t)}).catch(()=>{}),$t.set(e,t),e}function Is(t){if(wt.has(t))return;const e=new Promise((n,r)=>{const i=()=>{t.removeEventListener("complete",s),t.removeEventListener("error",o),t.removeEventListener("abort",o)},s=()=>{n(),i()},o=()=>{r(t.error||new DOMException("AbortError","AbortError")),i()};t.addEventListener("complete",s),t.addEventListener("error",o),t.addEventListener("abort",o)});wt.set(t,e)}let yt={get(t,e,n){if(t instanceof IDBTransaction){if(e==="done")return wt.get(t);if(e==="objectStoreNames")return t.objectStoreNames||sr.get(t);if(e==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return G(t[e])},set(t,e,n){return t[e]=n,!0},has(t,e){return t instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in t}};function ws(t){yt=t(yt)}function ys(t){return t===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...n){const r=t.call(lt(this),e,...n);return sr.set(r,e.sort?e.sort():[e]),G(r)}:ms().includes(t)?function(...e){return t.apply(lt(this),e),G(ir.get(this))}:function(...e){return G(t.apply(lt(this),e))}}function Es(t){return typeof t=="function"?ys(t):(t instanceof IDBTransaction&&Is(t),ps(t,gs())?new Proxy(t,yt):t)}function G(t){if(t instanceof IDBRequest)return _s(t);if(ct.has(t))return ct.get(t);const e=Es(t);return e!==t&&(ct.set(t,e),$t.set(e,t)),e}const lt=t=>$t.get(t);function or(t,e,{blocked:n,upgrade:r,blocking:i,terminated:s}={}){const o=indexedDB.open(t,e),a=G(o);return r&&o.addEventListener("upgradeneeded",c=>{r(G(o.result),c.oldVersion,c.newVersion,G(o.transaction),c)}),n&&o.addEventListener("blocked",c=>n(c.oldVersion,c.newVersion,c)),a.then(c=>{s&&c.addEventListener("close",()=>s()),i&&c.addEventListener("versionchange",l=>i(l.oldVersion,l.newVersion,l))}).catch(()=>{}),a}const Ts=["get","getKey","getAll","getAllKeys","count"],bs=["put","add","delete","clear"],ut=new Map;function _n(t,e){if(!(t instanceof IDBDatabase&&!(e in t)&&typeof e=="string"))return;if(ut.get(e))return ut.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,i=bs.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!(i||Ts.includes(n)))return;const s=async function(o,...a){const c=this.transaction(o,i?"readwrite":"readonly");let l=c.store;
1return r&&(l=l.index(a.shift())),(await Promise.all([l[n](...a),i&&c.done]))[0]};return ut.set(e,s),s}ws(t=>({...t,get:(e,n,r)=>_n(e,n)||t.get(e,n,r),has:(e,n)=>!!_n(e,n)||t.has(e,n)}));class vs{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(n=>{if(As(n)){const r=n.getImmediate();return`${r.library}/${r.version}`}else return null}).filter(n=>n).join(" ")}}function As(t){const e=t.getComponent();return(e==null?void 0:e.type)==="VERSION"}const Et="@firebase/app",In="0.14.11";const F=new Ye("@firebase/app"),ks="@firebase/app-compat",Ss="@firebase/analytics-compat",Cs="@firebase/analytics",Ps="@firebase/app-check-compat",Rs="@firebase/app-check",Os="@firebase/auth",Ds="@firebase/auth-compat",Ns="@firebase/database",Ms="@firebase/data-connect",Ls="@firebase/database-compat",Us="@firebase/functions",Fs="@firebase/functions-compat",$s="@firebase/installations",xs="@firebase/installations-compat",Bs="@firebase/messaging",Hs="@firebase/messaging-compat",Vs="@firebase/performance",Ws="@firebase/performance-compat",js="@firebase/remote-config",zs="@firebase/remote-config-compat",qs="@firebase/storage",Ks="@firebase/storage-compat",Gs="@firebase/firestore",Js="@firebase/ai",Ys="@firebase/firestore-compat",Xs="firebase",Qs="12.12.0";const Tt="[DEFAULT]",Zs={[Et]:"fire-core",[ks]:"fire-core-compat",[Cs]:"fire-analytics",[Ss]:"fire-analytics-compat",[Rs]:"fire-app-check",[Ps]:"fire-app-check-compat",[Os]:"fire-auth",[Ds]:"fire-auth-compat",[Ns]:"fire-rtdb",[Ms]:"fire-data-connect",[Ls]:"fire-rtdb-compat",[Us]:"fire-fn",[Fs]:"fire-fn-compat",[$s]:"fire-iid",[xs]:"fire-iid-compat",[Bs]:"fire-fcm",[Hs]:"fire-fcm-compat",[Vs]:"fire-perf",[Ws]:"fire-perf-compat",[js]:"fire-rc",[zs]:"fire-rc-compat",[qs]:"fire-gcs",[Ks]:"fire-gcs-compat",[Gs]:"fire-fst",[Ys]:"fire-fst-compat",[Js]:"fire-vertex","fire-js":"fire-js",[Xs]:"fire-js-all"};const _e=new Map,eo=new Map,bt=new Map;function wn(t,e){try{t.container.addComponent(e)}catch(n){F.debug(`Component ${e.name} failed to register with FirebaseApp ${t.name}`,n)}}function S(t){const e=t.name;if(bt.has(e))return F.debug(`There were multiple attempts to register component ${e}.`),!1;bt.set(e,t);for(const n of _e.values())wn(n,t);for(const n of eo.values())wn(n,t);return!0}function B(t,e){const n=t.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),t.container.getProvider(e)}function E(t){return t==null?!1:t.settings!==void 0}const to={"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invali
1d-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."},J=new Y("app","Firebase",to);class no{constructor(e,n,r){this._isDeleted=!1,this._options={...e},this._config={...n},this._name=n.name,this._automaticDataCollectionEnabled=n.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new T("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw J.create("app-deleted",{appName:this._name})}}const Ae=Qs;function ro(t,e={}){let n=t;typeof e!="object"&&(e={name:e});const r={name:Tt,automaticDataCollectionEnabled:!0,...e},i=r.name;if(typeof i!="string"||!i)throw J.create("bad-app-name",{appName:String(i)});if(n||(n=tr()),!n)throw J.create("no-options");const s=_e.get(i);if(s){if(ne(n,s.options)&&ne(r,s.config))return s;throw J.create("duplicate-app",{appName:i})}const o=new ls(i);for(const c of bt.values())o.addComponent(c);const a=new no(n,r,o);return _e.set(i,a),a}function xt(t=Tt){const e=_e.get(t);if(!e&&t===Tt&&tr())return ro();if(!e)throw J.create("no-app",{appName:t});return e}function Ju(){return Array.from(_e.values())}function A(t,e,n){let r=Zs[t]??t;n&&(r+=`-${n}`);const i=r.match(/\s|\//),s=e.match(/\s|\//);if(i||s){const o=[`Unable to register library "${r}" with version "${e}":`];i&&o.push(`library name "${r}" contains illegal characters (whitespace or "/")`),i&&s&&o.push("and"),s&&o.push(`version name "${e}" contains illegal characters (whitespace or "/")`),F.warn(o.join(" "));return}S(new T(`${r}-version`,()=>({library:r,version:e}),"VERSION"))}const io="firebase-heartbeat-database",so=1,Ie="firebase-heartbeat-store";let dt=null;function ar(){return dt||(dt=or(io,so,{upgrade:(t,e)=>{switch(e){case 0:try{t.createObjectStore(Ie)}catch(n){console.warn(n)}}}}).catch(t=>{throw J.create("idb-open",{originalErrorMessage:t.message})})),dt}async function oo(t){try{const n=(await ar()).transaction(Ie),r=await n.objectStore(Ie).get(cr(t));return await n.done,r}catch(e){if(e instanceof D)F.warn(e.message);else{const n=J.create("idb-get",{originalErrorMessage:e==null?void 0:e.message});F.warn(n.message)}}}async function yn(t,e){try{const r=(await ar()).transaction(Ie,"readwrite");await r.objectStore(Ie).put(e,cr(t)),await r.done}catch(n){if(n instanceof D)F.warn(n.message);else{const r=J.create("idb-set",{originalErrorMessage:n==null?void 0:n.message});F.warn(r.message)}}}function cr(t){return`${t.name}!${t.options.appId}`}const ao=1024,co=30;class lo{constructor(e){this.container=e,this._heartbeatsCache=null;const n=this.container.getProvider("app").getImmediate();this._storage=new ho(n),this._heartbeatsCachePromise=this._storage.read().then(r=>(this._heartbeatsCache=r,r))}async triggerHeartbeat(){var e,n;try{const i=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),s=En();if(((e=this._heartbeatsCache)==null?void 0:e.heartbeats)==null&&(this._heartbeatsCache=await this._heartbeatsCachePromise,((n=this._heartbeatsCache)==null?void 0:n.heartbeats)==null)||this._heartbeatsCache.lastSentHeartbeatDate===s||this._heartbeatsCache.heartbeats.some(o=>o.date===s))return;if(this._heartbeatsCache.heartbeats.push({date:s,agent:i}),this._heartbeatsCache.heartbeats.length>co){const o=fo(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(o,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(r){F.warn(r)}}async getHeartbeatsHeader(){var e;try{if(this._heartbeatsCache===null&&await this._heartbeatsCachePromise,((e=this._heartbeatsCache)==null?void 0:e.heartbeats)==null||this._heartbeatsCache.heartbeats.length===0)return"";const n=En(),{heartbeatsToSend:r,unsentEntries:i}=uo(this._heartbeatsCache.heartbeats),s=Zn(JSON.stringify({version:2,heartbeats:r}));return this._heartbeatsCache.lastSentHeartbeatDate=n,i.length>0?(this._heartbeatsCache.heartbeats=i,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),s}catch(n){return F.warn(n),""}}}function En(){return new Date().toISOString().substring(0,10)}function uo(t,e=ao){const n=[];let r=t.slice();for(const i of t){const s=n.find(o=>o.agent===i.agent);if(s){if(s.dates.push(i.date),Tn(n)>e){s.dates.pop();break}}else if(n.push({agent:i.agent,dates:[i.date]}),Tn(n)>e){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}class ho{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return be()?Ut().then(()=>!0).catch(()=>!1):!1}async read(){if(await this._canUseIndexedDBPromise){const n=await oo(this.app);return n!=null&&n.heartbeats?n:{heartbeats:[]}}else return{heartbeats:[]}}async overwrite(e){if(await this._canUseIndexedDBPromise){const r=await this.read();return yn(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}else return}async add(e){if(await this._canUseIndexedDBPromise){const r=await this.read();return yn(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}else return}}function Tn(t){return Zn(JSON.stringify({version:2,heartbeats:t})).length}function fo(t){if(t.length===0)return-1;let e=0,n=t[0].date;for(let r=1;r<t.length;r++)t[r].date<n&&(n=t[r].date,e=r);return e}function po(t){S(new T("platform-logger",e=>new vs(e),"PRIVATE")),S(new T("heartbeat",e=>new lo(e),"PRIVATE")),A(Et,In,t),A(Et,In,"esm2020"),A("fire-js","")}po("");var go="firebase",mo="12.12.1";A(go,mo,"app");function lr(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}const _o=lr,ur=new Y("auth","Firebase",lr());const Be=new Ye("@firebase/auth");function Io(t,...e){Be.logLevel<=f.WARN&&Be.warn(`Auth (${Ae}): ${t}`,...e)}function Ne(t,...e){Be.logLevel<=f.ERROR&&Be.error(`Auth (${Ae}): ${t}`,...e)}function b(t,...e){throw Vt(t,...e)}function k(t,...e){return Vt(t,...e)}function Bt(t,e,n){const r={..._o(),[e]:n};return new Y("auth","Firebase",r).create(e,{appName:t.name})}function C(t){return Bt(t,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function Ht(t,e,n){const r=n;if(!(e instanceof r))throw r.name!==e.constructor.name&&b(t,"argument-error"),Bt(t,"argument-error",`Type of ${e.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`)}function Vt(t,...e){if(typeof t!="string"){const n=e[0],r=[...e.slice(1)];return r[0]&&(r[0].appName=t.name),t._errorFactory.create(n,...r)}return ur.create(t,...e)}function u(t,e,...n){if(!t)throw Vt(e,...n)}function L(t){const e="INTERNAL ASSERTION FAILED: "+t;throw Ne(e),new Error(e)}function $(t,e){t||L(e)}function vt(){var t;return typeof self<"u"&&((t=self.location)==null?void 0:t.href)||""}function wo(){return bn()==="http:"||bn()==="https:"}function bn(){var t;return typeof self<"u"&&((t=self.location)==null?void 0:t.protocol)||null}function yo(){return typeof navigator<"u"&&navigator&&"onLine"in navigator&&typeof navigator.onLine=="boolean"&&(wo()||Lt()||"connection"in navigator)?navigator.onLine:!0}function Eo(){if(typeof navigator>"u")return null;const t=navigator;return t.languages&&t.languages[0]||t.language||null}class ke{constructor(e,n){this.shortDelay=e,this.longDelay=n,$(n>
1e,"Short delay should be less than long delay!"),this.isMobile=Vi()||ji()}get(){return yo()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}function Wt(t,e){$(t.emulator,"Emulator should always be set here");const{url:n}=t.emulator;return e?`${n}${e.startsWith("/")?e.slice(1):e}`:n}class dr{static initialize(e,n,r){this.fetchImpl=e,n&&(this.headersImpl=n),r&&(this.responseImpl=r)}static fetch(){if(this.fetchImpl)return this.fetchImpl;if(typeof self<"u"&&"fetch"in self)return self.fetch;if(typeof globalThis<"u"&&globalThis.fetch)return globalThis.fetch;if(typeof fetch<"u")return fetch;L("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){if(this.headersImpl)return this.headersImpl;if(typeof self<"u"&&"Headers"in self)return self.Headers;if(typeof globalThis<"u"&&globalThis.Headers)return globalThis.Headers;if(typeof Headers<"u")return Headers;L("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){if(this.responseImpl)return this.responseImpl;if(typeof self<"u"&&"Response"in self)return self.Response;if(typeof globalThis<"u"&&globalThis.Response)return globalThis.Response;if(typeof Response<"u")return Response;L("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}const To={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"};const bo=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],vo=new ke(3e4,6e4);function X(t,e){return t.tenantId&&!e.tenantId?{...e,tenantId:t.tenantId}:e}async function Q(t,e,n,r,i={}){return hr(t,i,async()=>{let s={},o={};r&&(e==="GET"?o=r:s={body:JSON.stringify(r)});const a=ve({key:t.config.apiKey,...o}).slice(1),c=await t._getAdditionalHeaders();c["Content-Type"]="application/json",t.languageCode&&(c["X-Firebase-Locale"]=t.languageCode);const l={method:e,headers:c,...s};return Wi()||(l.referrerPolicy="no-referrer"),t.emulatorConfig&&Ft(t.emulatorConfig.host)&&(l.credentials="include"),dr.fetch()(await fr(t,t.config.apiHost,n,a),l)})}async function hr(t,e,n){t._canInitEmulator=!1;const r={...To,...e};try{const i=new ko(t),s=await Promise.race([n(),i.promise]);i.clearNetworkTimeout();const o=await s.json();if("needConfirmation"in o)throw Re(t,"account-exists-with-different-credential",o);if(s.ok&&!("errorMessage"in o))return o;{const a=s.ok?o.errorMessage:o.error.message,[c,l]=a.split(" : ");if(c==="FEDERATED_USER_ID_ALREADY_LINKED")throw Re(t,"credential-already-in-use",o);if(c==="EMAIL_EXISTS")throw Re(t,"email-already-in-use",o);if(c==="USER_DISABLED")throw Re(t,"user-disabled",o);const d=r[c]||c.toLowerCase().replace(/[_\s]+/g,"-");if(l)throw Bt(t,d,l);b(t,d)}}catch(i){if(i instanceof D)throw i;b(t,"network-request-failed",{message:String(i)})}}async function Se(t,e,n,r,i={}){const s=await Q(t,e,n,r,i);return"mfaPendingCredential"in s&&b(t,"multi-factor-auth-required",{_serverResponse:s}),s}async function fr(t,e,n,r){const i=`${e}${n}?${r}`,s=t,o=s.config.emulator?Wt(t.config,i):`${t.config.apiScheme}://${i}`;return bo.includes(n)&&(await s._persistenceManagerAvailable,s._getPersistenceType()==="COOKIE")?s._getPersistence()._getFinalTarget(o).toString():o}function Ao(t){switch(t){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}}class ko{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((n,r)=>{this.timer=setTimeout(()=>r(k(this.auth,"network-request-failed")),vo.get())})}}function Re(t,e,n){const r={appName:t.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);const i=k(t,e,r);return i.customData._tokenResponse=n,i}function vn(t){return t!==void 0&&t.enterprise!==void 0}class So{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],e.recaptchaKey===void 0)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(e){if(!this.recaptchaEnforcementState||this.recaptchaEnforcementState.length===0)return null;for(const n of this.recaptchaEnforcementState)if(n.provider&&n.provider===e)return Ao(n.enforcementState);return null}isProviderEnabled(e){return this.getProviderEnforcementState(e)==="ENFORCE"||this.getProviderEnforcementState(e)==="AUDIT"}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PRO
1VIDER")}}async function Co(t,e){return Q(t,"GET","/v2/recaptchaConfig",X(t,e))}async function Po(t,e){return Q(t,"POST","/v1/accounts:delete",e)}async function He(t,e){return Q(t,"POST","/v1/accounts:lookup",e)}function me(t){if(t)try{const e=new Date(Number(t));if(!isNaN(e.getTime()))return e.toUTCString()}catch{}}async function Ro(t,e=!1){const n=m(t),r=await n.getIdToken(e),i=Xe(r);u(i&&i.exp&&i.auth_time&&i.iat,n.auth,"internal-error");const s=typeof i.firebase=="object"?i.firebase:void 0,o=s==null?void 0:s.sign_in_provider;return{claims:i,token:r,authTime:me(ht(i.auth_time)),issuedAtTime:me(ht(i.iat)),expirationTime:me(ht(i.exp)),signInProvider:o||null,signInSecondFactor:(s==null?void 0:s.sign_in_second_factor)||null}}function ht(t){return Number(t)*1e3}function Xe(t){const[e,n,r]=t.split(".");if(e===void 0||n===void 0||r===void 0)return Ne("JWT malformed, contained fewer than 3 sections"),null;try{const i=xe(n);return i?JSON.parse(i):(Ne("Failed to decode base64 JWT payload"),null)}catch(i){return Ne("Caught error parsing JWT payload as JSON",i==null?void 0:i.toString()),null}}function An(t){const e=Xe(t);return u(e,"internal-error"),u(typeof e.exp<"u","internal-error"),u(typeof e.iat<"u","internal-error"),Number(e.exp)-Number(e.iat)}async function we(t,e,n=!1){if(n)return e;try{return await e}catch(r){throw r instanceof D&&Oo(r)&&t.auth.currentUser===t&&await t.auth.signOut(),r}}function Oo({code:t}){return t==="auth/user-disabled"||t==="auth/user-token-expired"}class Do{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,this.timerId!==null&&clearTimeout(this.timerId))}getInterval(e){if(e){const n=this.errorBackoff;return this.errorBackoff=Math.min(this.errorBackoff*2,96e4),n}else{this.errorBackoff=3e4;const r=(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5;return Math.max(0,r)}}schedule(e=!1){if(!this.isRunning)return;const n=this.getInterval(e);this.timerId=setTimeout(async()=>{await this.iteration()},n)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){(e==null?void 0:e.code)==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()}}class At{constructor(e,n){this.createdAt=e,this.lastLoginAt=n,this._initializeTime()}_initializeTime(){this.lastSignInTime=me(this.lastLoginAt),this.creationTime=me(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function ye(t){var h;const e=t.auth,n=await t.getIdToken(),r=await we(t,He(e,{idToken:n}));u(r==null?void 0:r.users.length,e,"internal-error");const i=r.users[0];t._notifyReloadListener(i);const s=(h=i.providerUserInfo)!=null&&h.length?pr(i.providerUserInfo):[],o=Mo(t.providerData,s),a=t.isAnonymous,c=!(t.email&&i.passwordHash)&&!(o!=null&&o.length),l=a?c:!1,d={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:o,metadata:new At(i.createdAt,i.lastLoginAt),isAnonymous:l};Object.assign(t,d)}async function No(t){const e=m(t);await ye(e),await e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)}function Mo(t,e){return[...t.filter(r=>!e.some(i=>i.providerId===r.providerId)),...e]}function pr(t){return t.map(({providerId:e,...n})=>({providerId:e,uid:n.rawId||"",displayName:n.displayName||null,email:n.email||null,phoneNumber:n.phoneNumber||null,photoURL:n.photoUrl||null}))}async function Lo(t,e){const n=await hr(t,{},async()=>{const r=ve({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:i,apiKey:s}=t.config,o=await fr(t,i,"/v1/token",`key=${s}`),a=await t._getAdditionalHeaders();a["Content-Type"]="application/x-www-form-urlencoded";const c={method:"POST",headers:a,body:r};return t.emulatorConfig&&Ft(t.emulatorConfig.host)&&(c.credentials="include"),dr.fetch()(o,c)});return{accessToken:n.access_token,expiresIn:n.expires_in,refreshToken:n.refresh_token}}async function Uo(t,e){return Q(t,"POST","/v2/accounts:revokeToken",X(t,e))}class ae{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){u(e.idToken,"internal-error"),u(typeof e.idToken<"u","internal-error"),u(typeof e.refreshToken<"u","internal-error");
1const n="expiresIn"in e&&typeof e.expiresIn<"u"?Number(e.expiresIn):An(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,n)}updateFromIdToken(e){u(e.length!==0,"internal-error");const n=An(e);this.updateTokensAndExpiration(e,null,n)}async getToken(e,n=!1){return!n&&this.accessToken&&!this.isExpired?this.accessToken:(u(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null)}clearRefreshToken(){this.refreshToken=null}async refresh(e,n){const{accessToken:r,refreshToken:i,expiresIn:s}=await Lo(e,n);this.updateTokensAndExpiration(r,i,Number(s))}updateTokensAndExpiration(e,n,r){this.refreshToken=n||null,this.accessToken=e||null,this.expirationTime=Date.now()+r*1e3}static fromJSON(e,n){const{refreshToken:r,accessToken:i,expirationTime:s}=n,o=new ae;return r&&(u(typeof r=="string","internal-error",{appName:e}),o.refreshToken=r),i&&(u(typeof i=="string","internal-error",{appName:e}),o.accessToken=i),s&&(u(typeof s=="number","internal-error",{appName:e}),o.expirationTime=s),o}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new ae,this.toJSON())}_performRefresh(){return L("not implemented")}}function H(t,e){u(typeof t=="string"||typeof t>"u","internal-error",{appName:e})}class v{constructor({uid:e,auth:n,stsTokenManager:r,...i}){this.providerId="firebase",this.proactiveRefresh=new Do(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=n,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=i.displayName||null,this.email=i.email||null,this.emailVerified=i.emailVerified||!1,this.phoneNumber=i.phoneNumber||null,this.photoURL=i.photoURL||null,this.isAnonymous=i.isAnonymous||!1,this.tenantId=i.tenantId||null,this.providerData=i.providerData?[...i.providerData]:[],this.metadata=new At(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){const n=await we(this,this.stsTokenManager.getToken(this.auth,e));return u(n,this.auth,"internal-error"),this.accessToken!==n&&(this.accessToken=n,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),n}getIdTokenResult(e){return Ro(this,e)}reload(){return No(this)}_assign(e){this!==e&&(u(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(n=>({...n})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){const n=new v({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return n.metadata._copy(this.metadata),n}_onReload(e){u(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,n=!1){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),n&&await ye(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(E(this.auth.app))return Promise.reject(C(this.auth));const e=await this.getIdToken();return await we(this,Po(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return{uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>({...e})),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId,...this.metadata.toJSON(),apiKey:this.auth.config.apiKey,appName:this.auth.name}}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,n){const r=n.displayName??void 0,i=n.email??void 0,s=n.phoneNumber??void 0,o=n.photoURL??void 0,a=n.tenantId??void 0,c=n._redirectEventId??void 0,l=n.createdAt??void 0,d=n.lastLoginAt??void 0,{uid:h,emailVerified:p,isAnonymous:M,providerData:Z,stsTokenManager:dn}=n;u(h&&dn,e,"internal-error");const Di=ae.fromJSON(this.name,dn);u(typeof h=="string",e,"internal-error"),H(r,e.name),H(i,e.name),u(typeof p=="boolean",e,"internal-error"),u(typeof M=="boolean",e,"internal-error"),H(s,e.name),H(o,e.name),H(a,e.name),H(c,e.name),H(l,e.name),H(d,e.name);const ot=new v({uid:h,auth:e,email:i,emailVerified:p,displayName:r,isAnonymous:M,photoURL:o,phoneNumber:s,tenantId:a,stsTokenManager:Di,createdAt:l,lastLoginAt:d});return Z&&Array.isArray(Z)&&(ot.providerData=Z.map(Ni=>({...Ni}))),c&&(ot._redirectEventId=c),ot}static async _fromIdTokenResponse(e,n,r=!1){const i=new ae;i.updateFromServerResponse(n);const s=new v({uid:n.localId,auth:e,stsTokenManager:i,isAnonymous:r});return await ye(s),s}static async _fromGetAccountInfoResponse(e,n,r){const i=n.users[0];u(i.localId!==void 0,"internal-error");const s=i.providerUserInfo!==void 0?pr(i.providerUserInfo):[],o=!(i.email&&i.passwordHash)&&!(s!=null&&s.length),a=new ae;a.updateFromIdToken(r);const c=new v({uid:i.localId,auth:e,stsTokenManager:a,isAnonymous:o}),l={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:s,metadata:new At(i.createdAt,i.lastLoginAt),isAnonymous:!(i.email&&i.passwordHash)&&!(s!=null&&s.length)};return Object.assign(c,l),c}}const kn=new Map;function U(t){$(t instanceof Function,"Expected a class definition");let e=kn.get(t);return e?($(e instanceof t,"Instance stored in cache mismatched with class"),e):(e=new t,kn.set(t,e),e)}class gr{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,n){this.storage[e]=n}async _get(e){const n=this.storage[e];return n===void 0?null:n}async _remove(e){delete this.storage[e]}_addListener(e,n){}_removeListener(e,n){}}gr.type="NONE";const Sn=gr;function Me(t,e,n){return`firebase:${t}:${e}:${n}`}class ce{constructor(e,n,r){this.persistence=e,this.auth=n,this.userKey=r;const{config:i,name:s}=this.auth;this.fullUserKey=Me(this.userKey,i.apiKey,s),this.fullPersistenceKey=Me("persistence",i.apiKey,s),this.boundEventHandler=n._onStorageEvent.bind(n),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){const e=await this.persistence._get(this.fullUserKey);if(!e)return null;if(typeof e=="string"){const n=await He(this.auth,{idToken:e}).catch(()=>{});return n?v._fromGetAccountInfoResponse(this.auth,n,e):null}return v._fromJSON(this.auth,e)}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence===e)return;const n=await this.getCurrentUser();if(await this.removeCurrentUser(),this.persistence=e,n)return this.setCurrentUser(n)}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,n,r="authUser"){if(!n.length)return new ce(U(Sn),e,r);const i=(await Promise.all(n.map(async l=>{if(await l._isAvailable())return l}))).filter(l=>l);let s=i[0]||U(Sn);const o=Me(r,e.config.apiKey,e.name);let a=null;for(const l of n)try{const d=await l._get(o);if(d){let h;
1if(typeof d=="string"){const p=await He(e,{idToken:d}).catch(()=>{});if(!p)break;h=await v._fromGetAccountInfoResponse(e,p,d)}else h=v._fromJSON(e,d);l!==s&&(a=h),s=l;break}}catch{}const c=i.filter(l=>l._shouldAllowMigration);return!s._shouldAllowMigration||!c.length?new ce(s,e,r):(s=c[0],a&&await s._set(o,a.toJSON()),await Promise.all(n.map(async l=>{if(l!==s)try{await l._remove(o)}catch{}})),new ce(s,e,r))}}function Cn(t){const e=t.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(wr(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(mr(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(Er(e))return"Blackberry";if(Tr(e))return"Webos";if(_r(e))return"Safari";if((e.includes("chrome/")||Ir(e))&&!e.includes("edge/"))return"Chrome";if(yr(e))return"Android";{const n=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,r=t.match(n);if((r==null?void 0:r.length)===2)return r[1]}return"Other"}function mr(t=y()){return/firefox\//i.test(t)}function _r(t=y()){const e=t.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function Ir(t=y()){return/crios\//i.test(t)}function wr(t=y()){return/iemobile/i.test(t)}function yr(t=y()){return/android/i.test(t)}function Er(t=y()){return/blackberry/i.test(t)}function Tr(t=y()){return/webos/i.test(t)}function jt(t=y()){return/iphone|ipad|ipod/i.test(t)||/macintosh/i.test(t)&&/mobile/i.test(t)}function Fo(t=y()){var e;return jt(t)&&!!((e=window.navigator)!=null&&e.standalone)}function $o(){return zi()&&document.documentMode===10}function br(t=y()){return jt(t)||yr(t)||Tr(t)||Er(t)||/windows phone/i.test(t)||wr(t)}function vr(t,e=[]){let n;switch(t){case"Browser":n=Cn(y());break;case"Worker":n=`${Cn(y())}-${t}`;break;default:n=t}const r=e.length?e.join(","):"FirebaseCore-web";return`${n}/JsCore/${Ae}/${r}`}class xo{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,n){const r=s=>new Promise((o,a)=>{try{const c=e(s);o(c)}catch(c){a(c)}});r.onAbort=n,this.queue.push(r);const i=this.queue.length-1;return()=>{this.queue[i]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;const n=[];try{for(const r of this.queue)await r(e),r.onAbort&&n.push(r.onAbort)}catch(r){n.reverse();for(const i of n)try{i()}catch{}throw this.auth._errorFactory.create("login-blocked",{originalMessage:r==null?void 0:r.message})}}}async function Bo(t,e={}){return Q(t,"GET","/v2/passwordPolicy",X(t,e))}const Ho=6;class Vo{constructor(e){var r;const n=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=n.minPasswordLength??Ho,n.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=n.maxPasswordLength),n.containsLowercaseCharacter!==void 0&&(this.customStrengthOptions.containsLowercaseLetter=n.containsLowercaseCharacter),n.containsUppercaseCharacter!==void 0&&(this.customStrengthOptions.containsUppercaseLetter=n.containsUppercaseCharacter),n.containsNumericCharacter!==void 0&&(this.customStrengthOptions.containsNumericCharacter=n.containsNumericCharacter),n.containsNonAlphanumericCharacter!==void 0&&(this.customStrengthOptions.containsNonAlphanumericCharacter=n.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,this.enforcementState==="ENFORCEMENT_STATE_UNSPECIFIED"&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=((r=e.allowedNonAlphanumericCharacters)==null?void 0:r.join(""))??"",this.forceUpgradeOnSignin=e.forceUpgradeOnSignin??!1,this.schemaVersion=e.schemaVersion}validatePassword(e){const n={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,n),this.validatePasswordCharacterOptions(e,n),n.isValid&&(n.isValid=n.meetsMinPasswordLength??!0),n.isValid&&(n.isValid=n.meetsMaxPasswordLength??!0),n.isValid&&(n.isValid=n.containsLowercaseLetter??!0),n.isValid&&(n.isValid=n.containsUppercaseLetter??!0),n.isValid&&(n.isValid=n.containsNumericCharacter??!0),n.isValid&&(n.isValid=n.containsNonAlphanumericCharacter??!0),n}validatePasswordLengthOptions(e,n){const r=this.customStrengthOptions.minPasswordLength,i=this.customStrengthOptions.maxPasswordLength;r&&(n.meetsMinPasswordLength=e.length>=r),i&&(n.meetsMaxPasswordLength=e.length<=i)}validatePasswordCharacterOptions(e,n){this.updatePasswordCharacterOptionsStatuses(n,!1,
1!1,!1,!1);let r;for(let i=0;i<e.length;i++)r=e.charAt(i),this.updatePasswordCharacterOptionsStatuses(n,r>="a"&&r<="z",r>="A"&&r<="Z",r>="0"&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,n,r,i,s){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=n)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=r)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=i)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=s))}}class Wo{constructor(e,n,r,i){this.app=e,this.heartbeatServiceProvider=n,this.appCheckServiceProvider=r,this.config=i,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new Pn(this),this.idTokenSubscription=new Pn(this),this.beforeStateQueue=new xo(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=ur,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=i.sdkClientVersion,this._persistenceManagerAvailable=new Promise(s=>this._resolvePersistenceManagerAvailable=s)}_initializeWithPersistence(e,n){return n&&(this._popupRedirectResolver=U(n)),this._initializationPromise=this.queue(async()=>{var r,i,s;if(!this._deleted&&(this.persistenceManager=await ce.create(this,e),(r=this._resolvePersistenceManagerAvailable)==null||r.call(this),!this._deleted)){if((i=this._popupRedirectResolver)!=null&&i._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch{}await this.initializeCurrentUser(n),this.lastNotifiedUid=((s=this.currentUser)==null?void 0:s.uid)||null,!this._deleted&&(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;const e=await this.assertedPersistence.getCurrentUser();if(!(!this.currentUser&&!e)){if(this.currentUser&&e&&this.currentUser.uid===e.uid){this._currentUser._assign(e),await this.currentUser.getIdToken();return}await this._updateCurrentUser(e,!0)}}async initializeCurrentUserFromIdToken(e){try{const n=await He(this,{idToken:e}),r=await v._fromGetAccountInfoResponse(this,n,e);await this.directlySetCurrentUser(r)}catch(n){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",n),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){var s;if(E(this.app)){const o=this.app.settings.authIdToken;return o?new Promise(a=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(o).then(a,a))}):this.directlySetCurrentUser(null)}const n=await this.assertedPersistence.getCurrentUser();let r=n,i=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();const o=(s=this.redirectUser)==null?void 0:s._redirectEventId,a=r==null?void 0:r._redirectEventId,c=await this.tryRedirectSignIn(e);(!o||o===a)&&(c!=null&&c.user)&&(r=c.user,i=!0)}if(!r)return this.directlySetCurrentUser(null);if(!r._redirectEventId){if(i)try{await this.beforeStateQueue.runMiddleware(r)}catch(o){r=n,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(o))}return r?this.reloadAndSetCurrentUserOrClear(r):this.directlySetCurrentUser(null)}return u(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===r._redirectEventId?this.directlySetCurrentUser(r):this.reloadAndSetCurrentUserOrClear(r)}async tryRedirectSignIn(e){let n=null;try{n=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch{await this._setRedirectUser(null)}return n}async reloadAndSetCurrentUserOrClear(e){try{await ye(e)}catch(n){if((n==null?void 0:n.code)!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=Eo()}async _delete(){this._deleted=!0}
1async updateCurrentUser(e){if(E(this.app))return Promise.reject(C(this));const n=e?m(e):null;return n&&u(n.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(n&&n._clone(this))}async _updateCurrentUser(e,n=!1){if(!this._deleted)return e&&u(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),n||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return E(this.app)?Promise.reject(C(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return E(this.app)?Promise.reject(C(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(U(e))})}_getRecaptchaConfig(){return this.tenantId==null?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();const n=this._getPasswordPolicyInternal();return n.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):n.validatePassword(e)}_getPasswordPolicyInternal(){return this.tenantId===null?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){const e=await Bo(this),n=new Vo(e);this.tenantId===null?this._projectPasswordPolicy=n:this._tenantPasswordPolicies[this.tenantId]=n}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new Y("auth","Firebase",e())}onAuthStateChanged(e,n,r){return this.registerStateListener(this.authStateSubscription,e,n,r)}beforeAuthStateChanged(e,n){return this.beforeStateQueue.pushCallback(e,n)}onIdTokenChanged(e,n,r){return this.registerStateListener(this.idTokenSubscription,e,n,r)}authStateReady(){return new Promise((e,n)=>{if(this.currentUser)e();else{const r=this.onAuthStateChanged(()=>{r(),e()},n)}})}async revokeAccessToken(e){if(this.currentUser){const n=await this.currentUser.getIdToken(),r={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:n};this.tenantId!=null&&(r.tenantId=this.tenantId),await Uo(this,r)}}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:(e=this._currentUser)==null?void 0:e.toJSON()}}async _setRedirectUser(e,n){const r=await this.getOrInitRedirectPersistenceManager(n);return e===null?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){const n=e&&U(e)||this._popupRedirectResolver;u(n,this,"argument-error"),this.redirectPersistenceManager=await ce.create(this,[U(n._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){var n,r;return this._isInitialized&&await this.queue(async()=>{}),((n=this._currentUser)==null?void 0:n._redirectEventId)===e?this._currentUser:((r=this.redirectUser)==null?void 0:r._redirectEventId)===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var n;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);const e=((n=this.currentUser)==null?void 0:n.uid)??null;this.lastNotifiedUid!==e&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,n,r,i){if(this._deleted)return()=>{};const s=typeof n=="function"?n:n.next.bind(n);let o=!1;const a=this._isInitialized?Promise.resolve():this._initializationPromise;if(u(a,this,"internal-error"),a.then(()=>{o||s(this.currentUser)}),typeof n=="function"){const c=e.addObserver(n,r,i);return()=>{o=!0,c()}}else{const c=e.addObserver(n);return()=>{o=!0,c()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return u(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=vr(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var i;const e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);const n=await((i=this.heartbeatServiceProvider.getImmediate({optional:!0}))==null?void 0:i.getHeartbeatsHeader());n&&(e["X-Firebase-Client"]=n);const r=await this._getAppCheckToken();return r&&(e["X-Firebase-AppCheck"]=r),e}async _getAppCheckToken(){var n;if(E(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;const e=await((n=this.appCheckServiceProvider.getImmediate({optional:!0}))==null?void 0:n.getToken());return e!=null&&e.error&&Io(`Error while retrieving App Check token: ${e.error}`),e==null?void 0:e.token}}function N(t){return m(t)}class Pn{constructor(e){this.auth=e,this.observer=null,this.addObserver=Qi(n=>this.observer=n)}get next(){return u(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let Qe={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function jo(t){Qe=t}function Ar(t){return Qe.loadJS(t)}function zo(){return Qe.recaptchaEnterpriseScript}function qo(){return Qe.gapiScript}function Ko(t){return`__${t}${Math.floor(Math.random()*1e6)}`}class Go{constructor(){this.enterprise=new Jo}ready(e){e()}execute(e,n){return Promise.resolve("token")}render(e,n){return""}}class Jo{ready(e){e()}execute(e,n){return Promise.resolve("token")}render(e,n){return""}}const Yo="recaptcha-enterprise",kr="NO_RECAPTCHA";class Xo{constructor(e){this.type=Yo,this.auth=N(e)}
1async verify(e="verify",n=!1){async function r(s){if(!n){if(s.tenantId==null&&s._agentRecaptchaConfig!=null)return s._agentRecaptchaConfig.siteKey;if(s.tenantId!=null&&s._tenantRecaptchaConfigs[s.tenantId]!==void 0)return s._tenantRecaptchaConfigs[s.tenantId].siteKey}return new Promise(async(o,a)=>{Co(s,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(c=>{if(c.recaptchaKey===void 0)a(new Error("recaptcha Enterprise site key undefined"));else{const l=new So(c);return s.tenantId==null?s._agentRecaptchaConfig=l:s._tenantRecaptchaConfigs[s.tenantId]=l,o(l.siteKey)}}).catch(c=>{a(c)})})}function i(s,o,a){const c=window.grecaptcha;vn(c)?c.enterprise.ready(()=>{c.enterprise.execute(s,{action:e}).then(l=>{o(l)}).catch(()=>{o(kr)})}):a(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?new Go().execute("siteKey",{action:"verify"}):new Promise((s,o)=>{r(this.auth).then(a=>{if(!n&&vn(window.grecaptcha))i(a,s,o);else{if(typeof window>"u"){o(new Error("RecaptchaVerifier is only supported in browser"));return}let c=zo();c.length!==0&&(c+=a),Ar(c).then(()=>{i(a,s,o)}).catch(l=>{o(l)})}}).catch(a=>{o(a)})})}}async function Rn(t,e,n,r=!1,i=!1){const s=new Xo(t);let o;if(i)o=kr;else try{o=await s.verify(n)}catch{o=await s.verify(n,!0)}const a={...e};if(n==="mfaSmsEnrollment"||n==="mfaSmsSignIn"){if("phoneEnrollmentInfo"in a){const c=a.phoneEnrollmentInfo.phoneNumber,l=a.phoneEnrollmentInfo.recaptchaToken;Object.assign(a,{phoneEnrollmentInfo:{phoneNumber:c,recaptchaToken:l,captchaResponse:o,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}else if("phoneSignInInfo"in a){const c=a.phoneSignInInfo.recaptchaToken;Object.assign(a,{phoneSignInInfo:{recaptchaToken:c,captchaResponse:o,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}return a}return r?Object.assign(a,{captchaResp:o}):Object.assign(a,{captchaResponse:o}),Object.assign(a,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(a,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),a}async function kt(t,e,n,r,i){var s;if((s=t._getRecaptchaConfig())!=null&&s.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")){const o=await Rn(t,e,n,n==="getOobCode");return r(t,o)}else return r(t,e).catch(async o=>{if(o.code==="auth/missing-recaptcha-token"){`${n}`;const a=await Rn(t,e,n,n==="getOobCode");return r(t,a)}else return Promise.reject(o)})}function Qo(t,e){const n=B(t,"auth");if(n.isInitialized()){const i=n.getImmediate(),s=n.getOptions();if(ne(s,e??{}))return i;b(i,"already-initialized")}return n.initialize({options:e})}function Zo(t,e){const n=(e==null?void 0:e.persistence)||[],r=(Array.isArray(n)?n:[n]).map(U);e!=null&&e.errorMap&&t._updateErrorMap(e.errorMap),t._initializeWithPersistence(r,e==null?void 0:e.popupRedirectResolver)}function ea(t,e,n){const r=N(t);
1u(/^https?:\/\//.test(e),r,"invalid-emulator-scheme");const i=!1,s=Sr(e),{host:o,port:a}=ta(e),c=a===null?"":`:${a}`,l={url:`${s}//${o}${c}/`},d=Object.freeze({host:o,port:a,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});if(!r._canInitEmulator){u(r.config.emulator&&r.emulatorConfig,r,"emulator-config-failed"),u(ne(l,r.config.emulator)&&ne(d,r.emulatorConfig),r,"emulator-config-failed");return}r.config.emulator=l,r.emulatorConfig=d,r.settings.appVerificationDisabledForTesting=!0,Ft(o)?ss(`${s}//${o}${c}`):na()}function Sr(t){const e=t.indexOf(":");return e<0?"":t.substr(0,e+1)}function ta(t){const e=Sr(t),n=/(\/\/)?([^?#/]+)/.exec(t.substr(e.length));if(!n)return{host:"",port:null};const r=n[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);if(i){const s=i[1];return{host:s,port:On(r.substr(s.length+1))}}else{const[s,o]=r.split(":");return{host:s,port:On(o)}}}function On(t){if(!t)return null;const e=Number(t);return isNaN(e)?null:e}function na(){function t(){const e=document.createElement("p"),n=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",n.position="fixed",n.width="100%",n.backgroundColor="#ffffff",n.border=".1em solid #000000",n.color="#b50000",n.bottom="0px",n.left="0px",n.margin="0px",n.zIndex="10000",n.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}typeof window<"u"&&typeof document<"u"&&(document.readyState==="loading"?window.addEventListener("DOMContentLoaded",t):t())}class zt{constructor(e,n){this.providerId=e,this.signInMethod=n}toJSON(){return L("not implemented")}_getIdTokenResponse(e){return L("not implemented")}_linkToIdToken(e,n){return L("not implemented")}_getReauthenticationResolver(e){return L("not implemented")}}async function ra(t,e){return Q(t,"POST","/v1/accounts:signUp",e)}async function ia(t,e){return Se(t,"POST","/v1/accounts:signInWithPassword",X(t,e))}async function sa(t,e){return Se(t,"POST","/v1/accounts:signInWithEmailLink",X(t,e))}async function oa(t,e){return Se(t,"POST","/v1/accounts:signInWithEmailLink",X(t,e))}class Ee extends zt{constructor(e,n,r,i=null){super("password",r),this._email=e,this._password=n,this._tenantId=i}static _fromEmailAndPassword(e,n){return new Ee(e,n,"password")}static _fromEmailAndCode(e,n,r=null){return new Ee(e,n,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){const n=typeof e=="string"?JSON.parse(e):e;if(n!=null&&n.email&&(n!=null&&n.password)){if(n.signInMethod==="password")return this._fromEmailAndPassword(n.email,n.password);if(n.signInMethod==="emailLink")return this._fromEmailAndCode(n.email,n.password,n.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":const n={returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};return kt(e,n,"signInWithPassword",ia);case"emailLink":return sa(e,{email:this._email,oobCode:this._password});default:b(e,"internal-error")}}async _linkToIdToken(e,n){switch(this.signInMethod){case"password":const r={idToken:n,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"};return kt(e,r,"signUpPassword",ra);case"emailLink":return oa(e,{idToken:n,email:this._email,oobCode:this._password});default:b(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function le(t,e){return Se(t,"POST","/v1/accounts:signInWithIdp",X(t,e))}const aa="http://localhost";class x extends zt{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const n=new x(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(n.idToken=e.idToken),e.accessToken&&(n.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(n.nonce=e.nonce),e.pendingToken&&(n.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(n.accessToken=e.oauthToken,n.secret=e.oauthTokenSecret):b("argument-error"),n}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,n
1once:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){const n=typeof e=="string"?JSON.parse(e):e,{providerId:r,signInMethod:i,...s}=n;if(!r||!i)return null;const o=new x(r,i);return o.idToken=s.idToken||void 0,o.accessToken=s.accessToken||void 0,o.secret=s.secret,o.nonce=s.nonce,o.pendingToken=s.pendingToken||null,o}_getIdTokenResponse(e){const n=this.buildRequest();return le(e,n)}_linkToIdToken(e,n){const r=this.buildRequest();return r.idToken=n,le(e,r)}_getReauthenticationResolver(e){const n=this.buildRequest();return n.autoCreate=!1,le(e,n)}buildRequest(){const e={requestUri:aa,returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{const n={};this.idToken&&(n.id_token=this.idToken),this.accessToken&&(n.access_token=this.accessToken),this.secret&&(n.oauth_token_secret=this.secret),n.providerId=this.providerId,this.nonce&&!this.pendingToken&&(n.nonce=this.nonce),e.postBody=ve(n)}return e}}function ca(t){switch(t){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}}function la(t){const e=pe(ge(t)).link,n=e?pe(ge(e)).deep_link_id:null,r=pe(ge(t)).deep_link_id;return(r?pe(ge(r)).link:null)||r||n||e||t}class qt{constructor(e){const n=pe(ge(e)),r=n.apiKey??null,i=n.oobCode??null,s=ca(n.mode??null);u(r&&i&&s,"argument-error"),this.apiKey=r,this.operation=s,this.code=i,this.continueUrl=n.continueUrl??null,this.languageCode=n.lang??null,this.tenantId=n.tenantId??null}static parseLink(e){const n=la(e);try{return new qt(n)}catch{return null}}}class he{constructor(){this.providerId=he.PROVIDER_ID}static credential(e,n){return Ee._fromEmailAndPassword(e,n)}static credentialWithLink(e,n){const r=qt.parseLink(n);return u(r,"argument-error"),Ee._fromEmailAndCode(e,r.code,r.tenantId)}}he.PROVIDER_ID="password";he.EMAIL_PASSWORD_SIGN_IN_METHOD="password";he.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class Ce{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class fe extends Ce{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Le extends fe{static credentialFromJSON(e){const n=typeof e=="string"?JSON.parse(e):e;return u("providerId"in n&&"signInMethod"in n,"argument-error"),x._fromParams(n)}credential(e){return this._credential({...e,nonce:e.rawNonce})}_credential(e){return u(e.idToken||e.accessToken,"argument-error"),x._fromParams({...e,providerId:this.providerId,sign
1InMethod:this.providerId})}static credentialFromResult(e){return Le.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return Le.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthIdToken:n,oauthAccessToken:r,oauthTokenSecret:i,pendingToken:s,nonce:o,providerId:a}=e;if(!r&&!i&&!n&&!s||!a)return null;try{return new Le(a)._credential({idToken:n,accessToken:r,nonce:o,pendingToken:s})}catch{return null}}}class V extends fe{constructor(){super("facebook.com")}static credential(e){return x._fromParams({providerId:V.PROVIDER_ID,signInMethod:V.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return V.credentialFromTaggedObject(e)}static credentialFromError(e){return V.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return V.credential(e.oauthAccessToken)}catch{return null}}}V.FACEBOOK_SIGN_IN_METHOD="facebook.com";V.PROVIDER_ID="facebook.com";class W extends fe{constructor(){super("google.com"),this.addScope("profile")}static credential(e,n){return x._fromParams({providerId:W.PROVIDER_ID,signInMethod:W.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:n})}static credentialFromResult(e){return W.credentialFromTaggedObject(e)}static credentialFromError(e){return W.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthIdToken:n,oauthAccessToken:r}=e;if(!n&&!r)return null;try{return W.credential(n,r)}catch{return null}}}W.GOOGLE_SIGN_IN_METHOD="google.com";W.PROVIDER_ID="google.com";class j extends fe{constructor(){super("github.com")}static credential(e){return x._fromParams({providerId:j.PROVIDER_ID,signInMethod:j.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return j.credentialFromTaggedObject(e)}static credentialFromError(e){return j.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return j.credential(e.oauthAccessToken)}catch{return null}}}j.GITHUB_SIGN_IN_METHOD="github.com";j.PROVIDER_ID="github.com";class z extends fe{constructor(){super("twitter.com")}static credential(e,n){return x._fromParams({providerId:z.PROVIDER_ID,signInMethod:z.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:n})}static credentialFromResult(e){return z.credentialFromTaggedObject(e)}static credentialFromError(e){return z.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthAccessToken:n,oauthTokenSecret:r}=e;if(!n||!r)return null;try{return z.credential(n,r)}catch{return null}}}z.TWITTER_SIGN_IN_METHOD="twitter.com";z.PROVIDER_ID="twitter.com";async function ua(t,e){return Se(t,"POST","/v1/accounts:signUp",X(t,e))}class re{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,n,r,i=!1){const s=await v._fromIdTokenResponse(e,r,i),o=Dn(r);return new re({user:s,providerId:o,_tokenResponse:r,operationType:n})}static async _forOperation(e,n,r){await e._updateTokensIfNecessary(r,!0);const i=Dn(r);return new re({user:e,providerId:i,_tokenResponse:r,operationType:n})}}function Dn(t){return t.providerId?t.providerId:"phoneNumber"in t?"phone":null}class Ve extends D{constructor(e,n,r,i){super(n.code,n.message),this.operationType=r,this.user=i,Object.setPrototypeOf(this,Ve.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:n.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,n,r,i){return new Ve(e,n,r,i)}}function Cr(t,e,n,r){return(e==="reauthenticate"?n._getReauthenticationResolver(t):n._getIdTokenResponse(t)).catch(s=>{throw s.code==="auth/multi-factor-auth-required"?Ve._fromErrorAndOperation(t,s,e,r):s})}function da(t){return new Set(t.map(({providerId:e})=>e).filter(e=>!!e))}async function Pr(t,e,n=!1){const r=await we(t,e._linkToIdToken(t.auth,await t.getIdToken()),n);return re._forOperation(t,"link",r)}async function ha(t,e,n){await ye(e);const r=da(e.providerData);u(r.has(n)===t,e.auth,"provider-already-linked")}async function fa(t,e,n=!1){const{auth:r}=t;if(E(r.app))return Promise.reject(C(r));const i="reauthenticate";try{const s=await we(t,Cr(r,i,e,t),n);u(s.idToken,r,"internal-error");const o=Xe(s.idToken);u(o,r,"internal-error");const{sub:a}=o;return u(t.uid===a,r,"user-mismatch"),re._forOperation(t,i,s)}catch(s){throw(s==null?void 0:s.code)==="auth/user-not-found"&&b(r,"user-mismatch"),s}}async function Rr(t,e,n=!1){if(E(t.app))return Promise.reject(C(t));const r="signIn",i=await Cr(t,r,e),s=await re._fromIdTokenResponse(t,r,i);return n||await t._updateCurrentUser(s.user),s}async function pa(t,e){return Rr(N(t),e)}async function Yu(t,e){const n=m(t);return await ha(!1,n,e.providerId),Pr(n,e)}async function Or(t){const e=N(t);e._getPasswordPolicyInternal()&&await e._updatePasswordPolicy()}async function Xu(t,e,n){if(E(t.app))return Promise.reject(C(t));const r=N(t),o=await kt(r,{returnSecureToken:!0,email:e,password:n,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",ua).catch(c=>{throw c.code==="auth/password-does-not-meet-requirements"&&Or(t),c}),a=await re._fromIdTokenResponse(r,"signIn",o);return await r._updateCurrentUser(a.user),a}function Qu(t,e,n){return E(t.app)?Promise.reject(C(t)):pa(m(t),he.credential(e,n)).catch(async r=>{throw r.code==="auth/password-does-not-meet-requirements"&&Or(t),r})}function ga(t){var i,s;if(!t)return null;const{providerId:e}
1=t,n=t.rawUserInfo?JSON.parse(t.rawUserInfo):{},r=t.isNewUser||t.kind==="identitytoolkit#SignupNewUserResponse";if(!e&&(t!=null&&t.idToken)){const o=(s=(i=Xe(t.idToken))==null?void 0:i.firebase)==null?void 0:s.sign_in_provider;if(o){const a=o!=="anonymous"&&o!=="custom"?o:null;return new ue(r,a)}}if(!e)return null;switch(e){case"facebook.com":return new ma(r,n);case"github.com":return new _a(r,n);case"google.com":return new Ia(r,n);case"twitter.com":return new wa(r,n,t.screenName||null);case"custom":case"anonymous":return new ue(r,null);default:return new ue(r,e,n)}}class ue{constructor(e,n,r={}){this.isNewUser=e,this.providerId=n,this.profile=r}}class Dr extends ue{constructor(e,n,r,i){super(e,n,r),this.username=i}}class ma extends ue{constructor(e,n){super(e,"facebook.com",n)}}class _a extends Dr{constructor(e,n){super(e,"github.com",n,typeof(n==null?void 0:n.login)=="string"?n==null?void 0:n.login:null)}}class Ia extends ue{constructor(e,n){super(e,"google.com",n)}}class wa extends Dr{constructor(e,n,r){super(e,"twitter.com",n,r)}}function Zu(t){const{user:e,_tokenResponse:n}=t;return e.isAnonymous&&!n?{providerId:null,isNewUser:!1,profile:null}:ga(n)}function ed(t,e){return m(t).setPersistence(e)}function ya(t,e,n,r){return m(t).onIdTokenChanged(e,n,r)}function Ea(t,e,n){return m(t).beforeAuthStateChanged(e,n)}function td(t,e,n,r){return m(t).onAuthStateChanged(e,n,r)}function nd(t){return m(t).signOut()}const We="__sak";class Nr{constructor(e,n){this.storageRetriever=e,this.type=n}_isAvailable(){try{return this.storage?(this.storage.setItem(We,"1"),this.storage.removeItem(We),Promise.resolve(!0)):Promise.resolve(!1)}catch{return Promise.resolve(!1)}}_set(e,n){return this.storage.setItem(e,JSON.stringify(n)),Promise.resolve()}_get(e){const n=this.storage.getItem(e);return Promise.resolve(n?JSON.parse(n):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}const Ta=1e3,ba=10;class Mr extends Nr{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,n)=>this.onStorageEvent(e,n),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=br(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(const n of Object.keys(this.listeners)){const r=this.storage.getItem(n),i=this.localCache[n];r!==i&&e(n,i,r)}}onStorageEvent(e,n=!1){if(!e.key){this.forAllChangedKeys((o,a,c)=>{this.notifyListeners(o,c)});return}const r=e.key;n?this.detachListener():this.stopPolling();const i=()=>{const o=this.storage.getItem(r);!n&&this.localCache[r]===o||this.notifyListeners(r,o)},s=this.storage.getItem(r);$o()&&s!==e.newValue&&e.newValue!==e.oldValue?setTimeout(i,ba):i()}notifyListeners(e,n){this.localCache[e]=n;const r=this.listeners[e];if(r)for(const i of Array.from(r))i(n&&JSON.parse(n))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,n,r)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:n,newValue:r}),!0)})},Ta)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,n){Object.keys(this.listeners).length===0&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(n)}_removeListener(e,n){this.listeners[e]&&(this.listeners[e].delete(n),this.listeners[e].size===0&&delete this.listeners[e]),Ob
1ject.keys(this.listeners).length===0&&(this.detachListener(),this.stopPolling())}async _set(e,n){await super._set(e,n),this.localCache[e]=JSON.stringify(n)}async _get(e){const n=await super._get(e);return this.localCache[e]=JSON.stringify(n),n}async _remove(e){await super._remove(e),delete this.localCache[e]}}Mr.type="LOCAL";const va=Mr;class Lr extends Nr{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,n){}_removeListener(e,n){}}Lr.type="SESSION";const Ur=Lr;function Aa(t){return Promise.all(t.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(n){return{fulfilled:!1,reason:n}}}))}class Ze{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){const n=this.receivers.find(i=>i.isListeningto(e));if(n)return n;const r=new Ze(e);return this.receivers.push(r),r}isListeningto(e){return this.eventTarget===e}async handleEvent(e){const n=e,{eventId:r,eventType:i,data:s}=n.data,o=this.handlersMap[i];if(!(o!=null&&o.size))return;n.ports[0].postMessage({status:"ack",eventId:r,eventType:i});const a=Array.from(o).map(async l=>l(n.origin,s)),c=await Aa(a);n.ports[0].postMessage({status:"done",eventId:r,eventType:i,response:c})}_subscribe(e,n){Object.keys(this.handlersMap).length===0&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(n)}_unsubscribe(e,n){this.handlersMap[e]&&n&&this.handlersMap[e].delete(n),(!n||this.handlersMap[e].size===0)&&delete this.handlersMap[e],Object.keys(this.handlersMap).length===0&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}Ze.receivers=[];function Kt(t="",e=10){let n="";for(let r=0;r<e;r++)n+=Math.floor(Math.random()*10);return t+n}class ka{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,n,r=50){const i=typeof MessageChannel<"u"?new MessageChannel:null;if(!i)throw new Error("connection_unavailable");let s,o;return new Promise((a,c)=>{const l=Kt("",20);i.port1.start();const d=setTimeout(()=>{c(new Error("unsupported_event"))},r);o={messageChannel:i,onMessage(h){const p=h;if(p.data.eventId===l)switch(p.data.status){case"ack":clearTimeout(d),s=setTimeout(()=>{c(new Error("timeout"))},3e3);break;case"done":clearTimeout(s),a(p.data.response);break;default:clearTimeout(d),clearTimeout(s),c(new Error("invalid_response"));break}}},this.handlers.add(o),i.port1.addEventListener("message",o.onMessage),this.target.postMessage({eventType:e,eventId:l,data:n},[i.port2])}).finally(()=>{o&&this.removeMessageHandler(o)})}}function P(){return window}function Sa(t){P().location.href=t}function Fr(){return typeof P().WorkerGlobalScope<"u"&&typeof P().importScripts=="function"}async function Ca(){if(!(navigator!=null&&navigator.serviceWorker))return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}}function Pa(){var t;return((t=navigator==null?void 0:navigator.serviceWorker)==null?void 0:t.controller)||null}function Ra(){return Fr()?self:null}const $r="firebaseLocalStorageDb",Oa=1,je="firebaseLocalStorage",xr="fbase_key";class Pe{constructor(e){this.request=e}toPromise(){return new Promise((e,n)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{n(this.request.error)})})}}function et(t,e){return t.transaction([je],e?"readwrite":"readonly").objectStore(je)}function Da(){const t=indexedDB.deleteDatabase($r);return new Pe(t).toPromise()}function St(){const t=indexedDB.open($r,Oa);return new Promise((e,n)=>{t.addEventListener("error",()=>{n(t.error)}),t.addEventListener("upgradeneeded",()=>{const r=t.result;try{r.createObjectStore(je,{keyPath:xr})}catch(i){n(i)}}),t.addEventListener("success",async()=>{const r=t.result;r.objectStoreNames.contains(je)?e(r):(r.close(),await Da(),e(await St()))})})}async function Nn(t,e,n){const r=et(t,!0).put({[xr]:e,value:n});
1return new Pe(r).toPromise()}async function Na(t,e){const n=et(t,!1).get(e),r=await new Pe(n).toPromise();return r===void 0?null:r.value}function Mn(t,e){const n=et(t,!0).delete(e);return new Pe(n).toPromise()}const Ma=800,La=3;class Br{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}async _openDb(){return this.db?this.db:(this.db=await St(),this.db)}async _withRetries(e){let n=0;for(;;)try{const r=await this._openDb();return await e(r)}catch(r){if(n++>La)throw r;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return Fr()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Ze._getInstance(Ra()),this.receiver._subscribe("keyChanged",async(e,n)=>({keyProcessed:(await this._poll()).includes(n.key)}
1)),this.receiver._subscribe("ping",async(e,n)=>["keyChanged"])}async initializeSender(){var n,r;if(this.activeServiceWorker=await Ca(),!this.activeServiceWorker)return;this.sender=new ka(this.activeServiceWorker);const e=await this.sender._send("ping",{},800);e&&(n=e[0])!=null&&n.fulfilled&&(r=e[0])!=null&&r.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){if(!(!this.sender||!this.activeServiceWorker||Pa()!==this.activeServiceWorker))try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch{}}async _isAvailable(){try{if(!indexedDB)return!1;const e=await St();return await Nn(e,We,"1"),await Mn(e,We),!0}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,n){return this._withPendingWrite(async()=>(await this._withRetries(r=>Nn(r,e,n)),this.localCache[e]=n,this.notifyServiceWorker(e)))}async _get(e){const n=await this._withRetries(r=>Na(r,e));return this.localCache[e]=n,n}async _remove(e){return this._withPendingWrite(async()=>(await this._withRetries(n=>Mn(n,e)),delete this.localCache[e],this.notifyServiceWorker(e)))}async _poll(){const e=await this._withRetries(i=>{const s=et(i,!1).getAll();return new Pe(s).toPromise()});if(!e)return[];if(this.pendingWrites!==0)return[];const n=[],r=new Set;if(e.length!==0)for(const{fbase_key:i,value:s}of e)r.add(i),JSON.stringify(this.localCache[i])!==JSON.stringify(s)&&(this.notifyListeners(i,s),n.push(i));for(const i of Object.keys(this.localCache))this.localCache[i]&&!r.has(i)&&(this.notifyListeners(i,null),n.push(i));return n}notifyListeners(e,n){this.localCache[e]=n;const r=this.listeners[e];if(r)for(const i of Array.from(r))i(n)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),Ma)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,n){Object.keys(this.listeners).length===0&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(n)}_removeListener(e,n){this.listeners[e]&&(this.listeners[e].delete(n),this.listeners[e].size===0&&delete this.listeners[e]),Ob
1ject.keys(this.listeners).length===0&&this.stopPolling()}}Br.type="LOCAL";const Ua=Br;new ke(3e4,6e4);function tt(t,e){return e?U(e):(u(t._popupRedirectResolver,t,"argument-error"),t._popupRedirectResolver)}class Gt extends zt{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return le(e,this._buildIdpRequest())}_linkToIdToken(e,n){return le(e,this._buildIdpRequest(n))}_getReauthenticationResolver(e){return le(e,this._buildIdpRequest())}_buildIdpRequest(e){const n={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(n.idToken=e),n}}function Fa(t){return Rr(t.auth,new Gt(t),t.bypassAuthState)}function $a(t){const{auth:e,user:n}=t;return u(n,e,"internal-error"),fa(n,new Gt(t),t.bypassAuthState)}async function xa(t){const{auth:e,user:n}=t;return u(n,e,"internal-error"),Pr(n,new Gt(t),t.bypassAuthState)}class Hr{constructor(e,n,r,i,s=!1){this.auth=e,this.resolver=r,this.user=i,this.bypassAuthState=s,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(n)?n:[n]}execute(){return new Promise(async(e,n)=>{this.pendingPromise={resolve:e,reject:n};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(r){this.reject(r)}})}async onAuthEvent(e){const{urlResponse:n,sessionId:r,postBody:i,tenantId:s,error:o,type:a}=e;if(o){this.reject(o);return}const c={auth:this.auth,requestUri:n,sessionId:r,tenantId:s||void 0,postBody:i||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(c))}catch(l){this.reject(l)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return Fa;case"linkViaPopup":case"linkViaRedirect":return xa;case"reauthViaPopup":case"reauthViaRedirect":return $a;default:b(this.auth,"internal-error")}}resolve(e){$(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){$(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}const Ba=new ke(2e3,1e4);async function rd(t,e,n){if(E(t.app))return Promise.reject(k(t,"operation-not-supported-in-this-environment"));const r=N(t);Ht(t,e,Ce);const i=tt(r,n);return new q(r,"signInViaPopup",e,i).executeNotNull()}async function id(t,e,n){const r=m(t);Ht(r.auth,e,Ce);const i=tt(r.auth,n);return new q(r.auth,"linkViaPopup",e,i,r).executeNotNull()}class q extends Hr{constructor(e,n,r,i,s){super(e,n,i,s),this.provider=r,this.authWindow=null,this.pollId=null,q.currentPopupAction&&q.currentPopupAction.cancel(),q.currentPopupAction=this}async executeNotNull(){const e=await this.execute();return u(e,this.auth,"internal-error"),e}async onExecution(){$(this.filter.length===1,"Popup operations only handle one event");const e=Kt();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(n=>{this.reject(n)}),this.resolver._isIframeWebStorageSupported(this.auth,n=>{n||this.reject(k(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){var e;return((e=this.authWindow)==null?void 0:e.associatedEvent)||null}cancel(){this.reject(k(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,q.currentPopupAction=null}pollUserCancellation(){const e=()=>{var n,r;if((r=(n=this.authWindow)==null?void 0:n.window)!=null&&r.closed){this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(k(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(e,Ba.get())};e()}}q.currentPopupAction=null;const Ha="pendingRedirect",Ue=new Map;class Va extends Hr{constructor(e,n,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],n,void 0,r),this.eventId=null}async execute(){let e=Ue.get(this.auth._key());if(!e){try{const r=await Wa(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(r)}catch(n){e=()=>Promise.reject(n)}Ue.set(this.auth._key(),e)}return this.bypassAuthState||Ue.set(this.auth._key(),()=>Promise.resolve(null)),e()}
1async onAuthEvent(e){if(e.type==="signInViaRedirect")return super.onAuthEvent(e);if(e.type==="unknown"){this.resolve(null);return}if(e.eventId){const n=await this.auth._redirectUserForId(e.eventId);if(n)return this.user=n,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}}async function Wa(t,e){const n=Wr(e),r=Vr(t);if(!await r._isAvailable())return!1;const i=await r._get(n)==="true";return await r._remove(n),i}async function ja(t,e){return Vr(t)._set(Wr(e),"true")}function za(t,e){Ue.set(t._key(),e)}function Vr(t){return U(t._redirectPersistence)}function Wr(t){return Me(Ha,t.config.apiKey,t.name)}function sd(t,e,n){return qa(t,e,n)}async function qa(t,e,n){if(E(t.app))return Promise.reject(C(t));const r=N(t);Ht(t,e,Ce),await r._initializationPromise;const i=tt(r,n);return await ja(i,r),i._openRedirect(r,e,"signInViaRedirect")}async function od(t,e){return await N(t)._initializationPromise,jr(t,e,!1)}async function jr(t,e,n=!1){if(E(t.app))return Promise.reject(C(t));const r=N(t),i=tt(r,e),o=await new Va(r,i,n).execute();return o&&!n&&(delete o.user._redirectEventId,await r._persistUserIfCurrent(o.user),await r._setRedirectUser(null,e)),o}const Ka=600*1e3;class Ga{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(e){if(this.hasEventBeenHandled(e))return!1;let n=!1;return this.consumers.forEach(r=>{this.isEventForConsumer(e,r)&&(n=!0,this.sendToConsumer(e,r),this.saveEventToCache(e))}),this.hasHandledPotentialRedirect||!Ja(e)||(this.hasHandledPotentialRedirect=!0,n||(this.queuedRedirectEvent=e,n=!0)),n}sendToConsumer(e,n){var r;if(e.error&&!zr(e)){const i=((r=e.error.code)==null?void 0:r.split("auth/")[1])||"internal-error";n.onError(k(this.auth,i))}else n.onAuthEvent(e)}isEventForConsumer(e,n){const r=n.eventId===null||!!e.eventId&&e.eventId===n.eventId;return n.filter.includes(e.type)&&r}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=Ka&&this.cachedEventUids.clear(),this.cachedEventUids.has(Ln(e))}saveEventToCache(e){this.cachedEventUids.add(Ln(e)),this.lastProcessedEventTime=Date.now()}}function Ln(t){return[t.type,t.eventId,t.sessionId,t.tenantId].filter(e=>e).join("-")}function zr({type:t,error:e}){return t==="unknown"&&(e==null?void 0:e.code)==="auth/no-auth-event"}function Ja(t){switch(t.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return zr(t);default:return!1}}async function Ya(t,e={}){return Q(t,"GET","/v1/projects",e)}const Xa=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Qa=/^https?/;async function Za(t){if(t.config.emulator)return;const{authorizedDomains:e}=await Ya(t);for(const n of e)try{if(ec(n))return}catch{}b(t,"unauthorized-domain")}function ec(t){const e=vt(),{protocol:n,hostname:r}=new URL(e);if(t.startsWith("chrome-extension://")){const o=new URL(t);return o.hostname===""&&r===""?n==="chrome-extension:"&&t.replace("chrome-extension://","")===e.replace("chrome-extension://",""):n==="chrome-extension:"&&o.hostname===r}if(!Qa.test(n))return!1;if(Xa.test(t))return r===t;const i=t.replace(/\./g,"\\.");return new RegExp("^(.+\\."+i+"|"+i+")$","i").test(r)}const tc=new ke(3e4,6e4);function Un(){const t=P().___jsl;if(t!=null&&t.H){for(const e of Object.keys(t.H))if(t.H[e].r=t.H[e].r||[],t.H[e].L=t.H[e].L||[],t.H[e].r=[...t.H[e].L],t.CP)for(let n=0;n<t.CP.length;n++)t.CP[n]=null}}function nc(t){return new Promise((e,n)=>{var i,s,o;function r(){Un(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Un(),n(k(t,"network-request-failed"))},timeout:tc.get()})}if((s=(i=P().gapi)==null?void 0:i.iframes)!=null&&s.Iframe)e(gapi.iframes.getContext());else if((o=P().gapi)!=null&&o.load)r();else{const a=Ko("iframefcb");return P()[a]=()=>{gapi.load?r():n(k(t,"network-request-failed"))},Ar(`${qo()}?onload=${a}`).catch(c=>n(c))}}).catch(e=>{throw Fe=null,e})}let Fe=null;function rc(t){return Fe=Fe||nc(t),Fe}const ic=new ke(5e3,15e3),sc="__/auth/iframe",oc="emulator/auth/iframe",ac={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},cc=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function lc(t){const e=t.config;u(e.authDomain,t,"auth-domain-config-required");const n=e.emulator?Wt(e,oc):`https://${t.config.authDomain}/${sc}`,r={apiKey:e.apiKey,appName:t.name,v:Ae},i=cc.get(t.config.apiHost);i&&(r.eid=i);const s=t._getFrameworks();return s.length&&(r.fw=s.join(",")),`${n}?${ve(r).slice(1)}`}async function uc(t){const e=await rc(t),n=P().gapi;return u(n,t,"internal-error"),e.open({where:document.body,url:lc(t),messageHandlersFilter:n.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:ac,dontclear:!0},r=>new Promise(async(i,s)=>{await r.restyle({setHideOnLeave:!1});const o=k(t,"network-request-failed"),a=P().setTimeout(()=>{s(o)},ic.get());function c(){P().clearTimeout(a),i(r)}r.ping(c).then(c,()=>{s(o)})}))}const dc={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"},hc=500,fc=600,pc="_blank",gc="http://localhost";class Fn{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch{}}}function mc(t,e,n,r=hc,i=fc){const s=Math.max((window.screen.availHeight-i)/2,0).toString(),o=Math.max((window.screen.availWi
1dth-r)/2,0).toString();let a="";const c={...dc,width:r.toString(),height:i.toString(),top:s,left:o},l=y().toLowerCase();n&&(a=Ir(l)?pc:n),mr(l)&&(e=e||gc,c.scrollbars="yes");const d=Object.entries(c).reduce((p,[M,Z])=>`${p}${M}=${Z},`,"");if(Fo(l)&&a!=="_self")return _c(e||"",a),new Fn(null);const h=window.open(e||"",a,d);u(h,t,"popup-blocked");try{h.focus()}catch{}return new Fn(h)}function _c(t,e){const n=document.createElement("a");n.href=t,n.target=e;const r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),n.dispatchEvent(r)}const Ic="__/auth/handler",wc="emulator/auth/handler",yc=encodeURIComponent("fac");async function $n(t,e,n,r,i,s){u(t.config.authDomain,t,"auth-domain-config-required"),u(t.config.apiKey,t,"invalid-api-key");const o={apiKey:t.config.apiKey,appName:t.name,authType:n,redirectUrl:r,v:Ae,eventId:i};if(e instanceof Ce){e.setDefaultLanguage(t.languageCode),o.providerId=e.providerId||"",Xi(e.getCustomParameters())||(o.customParameters=JSON.str
1ingify(e.getCustomParameters()));for(const[d,h]of Object.entries({}))o[d]=h}if(e instanceof fe){const d=e.getScopes().filter(h=>h!=="");d.length>0&&(o.scopes=d.join(","))}t.tenantId&&(o.tid=t.tenantId);const a=o;for(const d of Object.keys(a))a[d]===void 0&&delete a[d];const c=await t._getAppCheckToken(),l=c?`#${yc}=${encodeURIComponent(c)}`:"";return`${Ec(t)}?${ve(a).slice(1)}${l}`}function Ec({config:t}){return t.emulator?Wt(t,wc):`https://${t.authDomain}/${Ic}`}const ft="webStorageSupport";class Tc{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Ur,this._completeRedirectFn=jr,this._overrideRedirectResult=za}async _openPopup(e,n,r,i){var o;$((o=this.eventManagers[e._key()])==null?void 0:o.manager,"_initialize() not called before _openPopup()");const s=await $n(e,n,r,vt(),i);return mc(e,s,Kt())}async _openRedirect(e,n,r,i){await this._originValidation(e);const s=await $n(e,n,r,vt(),i);return Sa(s),new Promise(()=>{})}_initialize(e){const n=e._key();if(this.eventManagers[n]){const{manager:i,promise:s}=this.eventManagers[n];return i?Promise.resolve(i):($(s,"If manager is not set, promise should be"),s)}const r=this.initAndGetManager(e);return this.eventManagers[n]={promise:r},r.catch(()=>{delete this.eventManagers[n]}),r}async initAndGetManager(e){const n=await uc(e),r=new Ga(e);return n.register("authEvent",i=>(u(i==null?void 0:i.authEvent,e,"invalid-auth-event"),{status:r.onEvent(i.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:r},this.iframes[e._key()]=n,r}_isIframeWebStorageSupported(e,n){this.iframes[e._key()].send(ft,{type:ft},i=>{var o;const s=(o=i==null?void 0:i[0])==null?void 0:o[ft];s!==void 0&&n(!!s),b(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){const n=e._key();return this.originValidationPromises[n]||(this.originValidationPromises[n]=Za(e)),this.originValidationPromises[n]}get _shouldInitProactively(){return br()||_r()||jt()}}const bc=Tc;var xn="@firebase/auth",Bn="1.13.0";class vc{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),((e=this.auth.currentUser)==null?void 0:e.uid)||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;const n=this.auth.onIdTokenChanged(r=>{e((r==null?void 0:r.stsTokenManager.accessToken)||null)});this.internalListeners.set(e,n),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();const n=this.internalListeners.get(e);n&&(this.internalListeners.delete(e),n(),this.updateProactiveRefresh())}assertAuthConfigured(){u(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}function Ac(t){switch(t){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}function kc(t){S(new T("auth",(e,{options:n})=>{const r=e.getProvider("app").getImmediate(),i=e.getProvider("heartbeat"),s=e.getProvider("app-check-internal"),{apiKey:o,authDomain:a}=r.options;u(o&&!o.includes(":"),"invalid-api-key",{appName:r.name});const c={apiKey:o,authDomain:a,clientPlatform:t,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:vr(t)},l=new Wo(r,i,s,c);return Zo(l,n),l},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,n,r)=>{e.getProvider("auth-internal").initialize()})),S(new T("auth-internal",e=>{const n=N(e.getProvider("auth").getImmediate());return(r=>new vc(r))(n)},"PRIVATE").setInstantiationMode("EXPLICIT")),A(xn,Bn,Ac(t)),A(xn,Bn,"esm2020")}const Sc=300,Cc=nr("authIdTokenMaxAge")||Sc;let Hn=null;const Pc=t=>async e=>{const n=e&&await e.getIdTokenResult(),r=n&&(new Date().getTime()-Date.parse(n.issuedAtTime))/1e3;if(r&&r>Cc)return;const i=n==null?void 0:n.token;Hn!==i&&(Hn=i,await fetch(t,{method:i?"POST":"DELETE",headers:i?{Authorization:`Bearer ${i}`}:{}}))};function ad(t=xt()){const e=B(t,"auth");if(e.isInitialized())return e.getImmediate();const n=Qo(t,{popupRedirectResolver:bc,persistence:[Ua,va,Ur]}),r=nr("authTokenSyncURL");if(r&&typeof isSecureContext=="boolean"&&isSecureContext){const s=new URL(r,location.origin);if(location.origin===s.origin){const o=Pc(s.toString());Ea(n,o,()=>o(n.currentUser)),ya(n,a=>o(a))}}const i=Hi("auth");return i&&ea(n,`http://${i}`),n}function Rc(){var t;return((t=document.getElementsByTagName("head"))==null?void 0:t[0])??document}
1jo({loadJS(t){return new Promise((e,n)=>{const r=document.createElement("script");r.setAttribute("src",t),r.onload=e,r.onerror=i=>{const s=k("internal-error");s.customData=i,n(s)},r.type="text/javascript",r.charset="UTF-8",Rc().appendChild(r)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="});kc("Browser");const Ct=new Map,qr={activated:!1,tokenObservers:[]},Oc={initialized:!1,enabled:!1};function g(t){return Ct.get(t)||{...qr}}function Dc(t,e){return Ct.set(t,e),Ct.get(t)}function nt(){return Oc}const Jt="https://content-firebaseappcheck.googleapis.com/v1",Nc="exchangeRecaptchaV3Token",Mc="exchangeRecaptchaEnterpriseToken",Lc="exchangeDebugToken",Vn={RETRIAL_MIN_WAIT:30*1e3,RETRIAL_MAX_WAIT:960*1e3},Uc=1440*60*1e3;class Fc{constructor(e,n,r,i,s){if(this.operation=e,this.retryPolicy=n,this.getWaitDuration=r,this.lowerBound=i,this.upperBound=s,this.pending=null,this.nextErrorWaitInterval=i,i>s)throw new Error("Proactive refresh lower bound greater than upper bound!")}start(){this.nextErrorWaitInterval=this.lowerBound,this.process(!0).catch(()=>{})}stop(){this.pending&&(this.pending.reject("cancelled"),this.pending=null)}isRunning(){return!!this.pending}async process(e){this.stop();try{this.pending=new de,this.pending.promise.catch(n=>{}),await $c(this.getNextRun(e)),this.pending.resolve(),await this.pending.promise,this.pending=new de,this.pending.promise.catch(n=>{}),await this.operation(),this.pending.resolve(),await this.pending.promise,this.process(!0).catch(()=>{})}catch(n){this.retryPolicy(n)?this.process(!1).catch(()=>{}):this.stop()}}getNextRun(e){if(e)return this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration();{const n=this.nextErrorWaitInterval;return this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),n}}}function $c(t){return new Promise(e=>{setTimeout(e,t)})}const xc={"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.","initial-throttle":"{$httpStatus} error. Attempts allowed again after {$time}",throttled:"Requests throttled due to previous {$httpStatus} error. Attempts allowed again after {$time}"},I=new Y("appCheck","AppCheck",xc);function ze(t=!1){var e;return t?(e=self.grecaptcha)==null?void 0:e.enterprise:self.grecaptcha}function Yt(t){if(!g(t).activated)throw I.create("use-before-activation",{appName:t.name})}function Xt(t){const e=Math.round(t/1e3),n=Math.floor(e/(3600*24)),r=Math.floor((e-n*3600*24)/3600),i=Math.floor((e-n*3600*24-r*3600)/60),s=e-n*3600*24-r*3600-i*60;let o="";return n&&(o+=Oe(n)+"d:"),r&&(o+=Oe(r)+"h:"),o+=Oe(i)+"m:"+Oe(s)+"s",o}function Oe(t){return t===0?"00":t>=10?t.toString():"0"+t}async function rt({url:t,body:e},n){const r={"Content-Type":"application/json"},i=n.getImmediate({optional:!0});if(i){const h=await i.getHeartbeatsHeader();h&&(r["X-Firebase-Client"]=h)}const s={method:"POST",body:JSON.stringify(e),headers:r};let o;try{o=await fetch(t,s)}catch(h){throw I.create("fetch-network-error",{originalErrorMessage:h==null?void 0:h.message})}if(o.status!==200)throw I.create("fetch-status-error",{httpStatus:o.status});let a;try{a=await o.json()}catch(h){throw I.create("fetch-parse-error",{originalErrorMessage:h==null?void 0:h.message})}const c=a.ttl.match(/^([\d.]+)(s)$/);if(!c||!c[2]||isNaN(Number(c[1])))throw I.create("fetch-parse-error",{originalErrorMessage:`ttl field (timeToLive) is not in standard Protobuf Duration format: ${a.ttl}`});const l=Number(c[1])*1e3,d=Date.now();return{token:a.token,expireTimeMillis:d+l,issuedAtTimeMillis:d}}
1function Bc(t,e){const{projectId:n,appId:r,apiKey:i}=t.options;return{url:`${Jt}/projects/${n}/apps/${r}:${Nc}?key=${i}`,body:{recaptcha_v3_token:e}}}function Hc(t,e){const{projectId:n,appId:r,apiKey:i}=t.options;return{url:`${Jt}/projects/${n}/apps/${r}:${Mc}?key=${i}`,body:{recaptcha_enterprise_token:e}}}function Kr(t,e){const{projectId:n,appId:r,apiKey:i}=t.options;return{url:`${Jt}/projects/${n}/apps/${r}:${Lc}?key=${i}`,body:{debug_token:e}}}const Vc="firebase-app-check-database",Wc=1,Te="firebase-app-check-store",Gr="debug-token";let De=null;function Jr(){return De||(De=new Promise((t,e)=>{try{const n=indexedDB.open(Vc,Wc);n.onsuccess=r=>{t(r.target.result)},n.onerror=r=>{var i;e(I.create("storage-open",{originalErrorMessage:(i=r.target.error)==null?void 0:i.message}))},n.onupgradeneeded=r=>{const i=r.target.result;r.oldVersion===0&&i.createObjectStore(Te,{keyPath:"compositeKey"})}}catch(n){e(I.create("storage-open",{originalErrorMessage:n==null?void 0:n.message}))}}),De)}function jc(t){return Xr(Qr(t))}function zc(t,e){return Yr(Qr(t),e)}function qc(t){return Yr(Gr,t)}function Kc(){return Xr(Gr)}async function Yr(t,e){const r=(await Jr()).transaction(Te,"readwrite"),s=r.objectStore(Te).put({compositeKey:t,value:e});return new Promise((o,a)=>{s.onsuccess=c=>{o()},r.onerror=c=>{var l;a(I.create("storage-set",{originalErrorMessage:(l=c.target.error)==null?void 0:l.message}))}})}async function Xr(t){const n=(await Jr()).transaction(Te,"readonly"),i=n.objectStore(Te).get(t);return new Promise((s,o)=>{i.onsuccess=a=>{const c=a.target.result;s(c?c.value:void 0)},n.onerror=a=>{var c;o(I.create("storage-get",{originalErrorMessage:(c=a.target.error)==null?void 0:c.message}))}})}function Qr(t){return`${t.options.appId}-${t.name}`}const K=new Ye("@firebase/app-check");async function Gc(t){if(be()){let e;try{e=await jc(t)}catch(n){K.warn(`Failed to read token from IndexedDB. Error: ${n}`)}return e}}function pt(t,e){return be()?zc(t,e).catch(n=>{K.warn(`Failed to write token to IndexedDB. Error: ${n}`)}):Promise.resolve()}async function Jc(){let t;try{t=await Kc()}catch{}if(t)return t;{const e=crypto.randomUUID();return qc(e).catch(n=>K.warn(`Failed to persist debug token to IndexedDB. Error: ${n}`)),e}}function Qt(){return nt().enabled}async function Zt(){const t=nt();if(t.enabled&&t.token)return t.token.promise;throw Error(`
2            Can't get debug token in production mode.
3        `)}function Yc(){const t=er(),e=nt();if(e.initialized=!0,typeof t.FIREBASE_APPCHECK_DEBUG_TOKEN!="string"&&t.FIREBASE_APPCHECK_DEBUG_TOKEN!==!0)return;e.enabled=!0;const n=new de;e.token=n,typeof t.FIREBASE_APPCHECK_DEBUG_TOKEN=="string"?n.resolve(t.FIREBASE_APPCHECK_DEBUG_TOKEN):n.resolve(Jc())}const Xc={error:"UNKNOWN_ERROR"};function Qc(t){return Nt.encodeString(JSON.stringify(t),!1)}async function qe(t,e=!1,n=!1){const r=t.app;Yt(r);const i=g(r);let s=i.token,o;if(s&&!oe(s)&&(i.token=void 0,s=void 0),!s){const l=await i.cachedTokenPromise;l&&(oe(l)?s=l:await pt(r,void 0))}if(!e&&s&&oe(s))return{token:s.token};let a=!1;if(Qt())try{const l=await Zt();i.exchangeTokenPromise||(i.exchangeTokenPromise=rt(Kr(r,l),t.heartbeatServiceProvider).finally(()=>{i.exchangeTokenPromise=void 0}),a=!0);const d=await i.exchangeTokenPromise;return await pt(r,d),i.token=d,{token:d.token}}catch(l){return l.code==="appCheck/throttled"||l.code==="appCheck/initial-throttle"?K.warn(l.message):n&&K.error(l),gt(l)}try{i.exchangeTokenPromise||(i.exchangeTokenPromise=i.provider.getToken().finally(()=>{i.exchangeTokenPromise=void 0}),a=!0),s=await g(r).exchangeTokenPromise}catch(l){l.code==="appCheck/throttled"||l.code==="appCheck/initial-throttle"?K.warn(l.message):n&&K.error(l),o=l}let c;return s?o?oe(s)?c={token:s.token,internalError:o}:c=gt(o):(c={token:s.token},i.token=s,await pt(r,s)):c=gt(o),a&&ei(r,c),c}async function Zr(t){const e=t.app;Yt(e);const{provider:n}=g(e);if(Qt()){const r=await Zt(),{token:i}=await rt(Kr(e,r),t.heartbeatServiceProvider);return{token:i}}else{const{token:r}=await n.getToken();return{token:r}}}function en(t,e,n,r){const{app:i}=t,s=g(i),o={next:n,error:r,type:e};if(s.tokenObservers=[...s.tokenObservers,o],s.token&&oe(s.token)){const a=s.token;Promise.resolve().then(()=>{n({token:a.token}),Wn(t)}
3).catch(()=>{})}s.cachedTokenPromise.then(()=>Wn(t))}function tn(t,e){const n=g(t),r=n.tokenObservers.filter(i=>i.next!==e);r.length===0&&n.tokenRefresher&&n.tokenRefresher.isRunning()&&n.tokenRefresher.stop(),n.tokenObservers=r}function Wn(t){const{app:e}=t,n=g(e);let r=n.tokenRefresher;r||(r=Zc(t),n.tokenRefresher=r),!r.isRunning()&&n.isTokenAutoRefreshEnabled&&r.start()}function Zc(t){const{app:e}=t;return new Fc(async()=>{const n=g(e);let r;if(n.token?r=await qe(t,!0):r=await qe(t),r.error)throw r.error;if(r.internalError)throw r.internalError},()=>!0,()=>{const n=g(e);if(n.token){let r=n.token.issuedAtTimeMillis+(n.token.expireTimeMillis-n.token.issuedAtTimeMillis)*.5+3e5;const i=n.token.expireTimeMillis-300*1e3;return r=Math.min(r,i),Math.max(0,r-Date.now())}else return 0},Vn.RETRIAL_MIN_WAIT,Vn.RETRIAL_MAX_WAIT)}function ei(t,e){const n=g(t).tokenObservers;for(const r of n)try{r.type==="EXTERNAL"&&e.error!=null?r.error(e.error):r.next(e)}catch{}}function oe(t){return t.expireTimeMillis-Date.now()>0}function gt(t){return{token:Qc(Xc),error:t}}class el{constructor(e,n){this.app=e,this.heartbeatServiceProvider=n}_delete(){const{tokenObservers:e}=g(this.app);for(const n of e)tn(this.app,n.next);return Promise.resolve()}}function tl(t,e){return new el(t,e)}function nl(t){return{getToken:e=>qe(t,e),getLimitedUseToken:()=>Zr(t),addTokenListener:e=>en(t,"INTERNAL",e),removeTokenListener:e=>tn(t.app,e)}}const rl="@firebase/app-check",il="0.11.2";const sl="https://www.google.com/recaptcha/api.js",ol="https://www.google.com/recaptcha/enterprise.js";function al(t,e){const n=new de,r=g(t);r.reCAPTCHAState={initialized:n};const i=ti(t),s=ze(!1);return s?Ke(t,e,s,i,n):ul(()=>{const o=ze(!1);if(!o)throw new Error("no recaptcha");Ke(t,e,o,i,n)}),n.promise}function cl(t,e){const n=new de,r=g(t);r.reCAPTCHAState={initialized:n};const i=ti(t),s=ze(!0);return s?Ke(t,e,s,i,n):dl(()=>{const o=ze(!0);if(!o)throw new Error("no recaptcha");Ke(t,e,o,i,n)}),n.promise}function Ke(t,e,n,r,i){n.ready(()=>{ll(t,e,n,r),i.resolve(n)})}function ti(t){const e=`fire_app_check_${t.name}`,n=document.createElement("div");return n.id=e,n.style.display="none",document.body.appendChild(n),e}async function ni(t){Yt(t);const n=await g(t).reCAPTCHAState.initialized.promise;return new Promise((r,i)=>{const s=g(t).reCAPTCHAState;n.ready(()=>{r(n.execute(s.widgetId,{action:"fire_app_check"}))})})}function ll(t,e,n,r){const i=n.render(r,{sitekey:e,size:"invisible",callback:()=>{g(t).reCAPTCHAState.succeeded=!0},"error-callback":()=>{g(t).reCAPTCHAState.succeeded=!1}}),s=g(t);s.reCAPTCHAState={...s.reCAPTCHAState,widgetId:i}}function ul(t){const e=document.createElement("script");e.src=sl,e.onload=t,document.head.appendChild(e)}function dl(t){const e=document.createElement("script");e.src=ol,e.onload=t,document.head.appendChild(e)}class nn{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){var r,i,s;ii(this._throttleData);const e=await ni(this._app).catch(o=>{throw I.create("recaptcha-error")});if(!((r=g(this._app).reCAPTCHAState)!=null&&r.succeeded))throw I.create("recaptcha-error");let n;try{n=await rt(Bc(this._app,e),this._heartbeatServiceProvider)}catch(o){throw(i=o.code)!=null&&i.includes("fetch-status-error")?(this._throttleData=ri(Number((s=o.customData)==null?void 0:s.httpStatus),this._throttleData),I.create("initial-throttle",{time:Xt(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):o}return this._throttleData=null,n}initialize(e){this._app=e,this._heartbeatServiceProvider=B(e,"heartbeat"),al(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof nn?this._siteKey===e._siteKey:!1}}class rn{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){var r,i,s;ii(this._throttleData);const e=await ni(this._app).catch(o=>{throw I.create("recaptcha-error")});if(!((r=g(this._app).reCAPTCHAState)!=null&&r.succeeded))throw I.create("recaptcha-error");let n;try{n=await rt(Hc(this._app,e),this._heartbeatServiceProvider)}catch(o){throw(i=o.code)!=null&&i.includes("fetch-status-error")?(this._throttleData=ri(Number((s=o.customData)==null?void 0:s.httpStatus),this._throttleData),I.create("initial-throttle",{time:Xt(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):o}return this._throttleData=null,n}initialize(e){this._app=e,this._heartbeatServiceProvider=B(e,"heartbeat"),cl(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof rn?this._siteKey===e._siteKey:!1}}class sn{constructor(e){this._customProviderOptions=e}async getToken(){const e=await this._customProviderOptions.getToken(),n=Yi(e.token),r=n!==null&&n<Date.now()&&n>0?n*1e3:Date.now();return{...e,issuedAtTimeMillis:r}}initialize(e){this._app=e}isEqual(e){return e instanceof sn?this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString():!1}}function ri(t,e){if(t===404||t===403)return{backoffCount:1,allowRequestsAfter:Date.now()+Uc,httpStatus:t};{const n=e?e.backoffCount:0,r=It(n,1e3,2);return{backoffCount:n+1,allowRequestsAfter:Date.now()+r,httpStatus:t}}}function ii(t){if(t&&Date.now()-t.allowRequestsAfter<=0)throw I.create("throttled",{time:Xt(t.allowRequestsAfter-Date.now()),httpStatus:t.httpStatus})}function hl(t=xt(),e){t=m(t);const n=B(t,"app-check");if(nt().initialized||Yc(),Qt()&&Zt().then(i=>console.log(`App Check debug token: ${i}
3. You will need to add it to your app's App Check settings in the Firebase console for it to work.`)),n.isInitialized()){const i=n.getImmediate(),s=n.getOptions();if(s.isTokenAutoRefreshEnabled===e.isTokenAutoRefreshEnabled&&s.provider.isEqual(e.provider))return i;throw I.create("already-initialized",{appName:t.name})}const r=n.initialize({options:e});return fl(t,e.provider,e.isTokenAutoRefreshEnabled),g(t).isTokenAutoRefreshEnabled&&en(r,"INTERNAL",()=>{}),r}function fl(t,e,n=!1){const r=Dc(t,{...qr});r.activated=!0,r.provider=e,r.cachedTokenPromise=Gc(t).then(i=>(i&&oe(i)&&(r.token=i,ei(t,{token:i.token})),i)),r.isTokenAutoRefreshEnabled=n&&t.automaticDataCollectionEnabled,!t.automaticDataCollectionEnabled&&n&&K.warn("`isTokenAutoRefreshEnabled` is true but `automaticDataCollectionEnabled` was set to false during `initializeApp()`. This blocks automatic token refresh."),r.provider.initialize(t)}function pl(t,e){const n=t.app,r=g(n);r.tokenRefresher&&(e===!0?r.tokenRefresher.start():r.tokenRefresher.stop()),r.isTokenAutoRefreshEnabled=e}async function gl(t,e){const n=await qe(t,e);if(n.error)throw n.error;if(n.internalError)throw n.internalError;return{token:n.token}}function ml(t){return Zr(t)}function _l(t,e,n,r){let i=()=>{},s=()=>{};return e.next!=null?i=e.next.bind(e):i=e,e.error!=null?s=e.error.bind(e):n&&(s=n),en(t,"EXTERNAL",i,s),()=>tn(t.app,i)}const Il="app-check",jn="app-check-internal";function wl(){S(new T(Il,t=>{const e=t.getProvider("app").getImmediate(),n=t.getProvider("heartbeat");return tl(e,n)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((t,e,n)=>{t.getProvider(jn).initialize()})),S(new T(jn,t=>{const e=t.getProvider("app-check").getImmediate();return nl(e)},"PUBLIC").setInstantiationMode("EXPLICIT")),A(rl,il)}wl();const cd=Object.freeze(Object.defineProperty({__proto__:null,CustomProvider:sn,ReCaptchaEnterpriseProvider:rn,ReCaptchaV3Provider:nn,getLimitedUseToken:ml,getToken:gl,initializeAppCheck:hl,onTokenChanged:_l,setTokenAutoRefreshEnabled:pl},Symbol.toStringTag,{value:"Module"})),si="@firebase/installations",on="0.6.21";const oi=1e4,ai=`w:${on}`,ci="FIS_v2",yl="https://firebaseinstallations.googleapis.com/v1",El=3600*1e3,Tl="installations",bl="Installations";const vl={"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"not-registered":"Firebase Installation is not registered.","installation-not-found":"Firebase Installation not found.","request-failed":'{$requestName} request failed with error "{$serverCode} {$serverStatus}: {$serverMessage}"',"app-offline":"Could not process request. Application offline.","delete-pending-registration":"Can't delete installation while there is a pending registration request."},ie=new Y(Tl,bl,vl);function li(t){return t instanceof D&&t.code.includes("request-failed")}function ui({projectId:t}){return`${yl}/projects/${t}/installations`}function di(t){return{token:t.token,requestStatus:2,expiresIn:kl(t.expiresIn),creationTime:Date.now()}}async function hi(t,e){const r=(await e.json()).error;return ie.create("request-failed",{requestName:t,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function fi({apiKey:t}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":t})}function Al(t,{refreshToken:e}){const n=fi(t);return n.append("Authorization",Sl(e)),n}async function pi(t){const e=await t();return e.status>=500&&e.status<600?t():e}function kl(t){return Number(t.replace("s","000"))}function Sl(t){return`${ci} ${t}`}async function Cl({appConfig:t,heartbeatServiceProvider:e},{fid:n}){const r=ui(t),i=fi(t),s=e.getImmediate({optional:!0});if(s){const l=await s.getHeartbeatsHeader();l&&i.append("x-firebase-client",l)}const o={fid:n,authVersion:ci,appId:t.appId,sdkVersion:ai},a={method:"POST",headers:i,body:JSON.stringify(o)},c=await pi(()=>fetch(r,a));if(c.ok){const l=await c.json();return{fid:l.fid||n,registrationStatus:2,refreshToken:l.refreshToken,authToken:di(l.authToken)}}else throw await hi("Create Installation",c)}function gi(t){return new Promise(e=>{setTimeout(e,t)})}function Pl(t){return btoa(String.fromCharCode(...t)).replace(/\+/g,"-").replace(/\//g,"_")}const Rl=/^[cdef][\w-]{21}$/,Pt="";function Ol(){try{const t=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(t),t[0]=112+t[0]%16;const n=Dl(t);return Rl.test(n)?n:Pt}catch{return Pt}}function Dl(t){return Pl(t).substr(0,22)}function it(t){return`${t.appName}!${t.appId}`}const mi=new Map;function _i(t,e){const n=it(t);Ii(n,e),Nl(n,e)}function Ii(t,e){const n=mi.get(t);if(n)for(const r of n)r(e)}function Nl(t,e){const n=Ml();n&&n.postMessage({key:t,fid:e}),Ll()}let te=null;function Ml(){return!te&&"BroadcastChannel"in self&&(te=new BroadcastChannel("[Firebase] FID Change"),te.onmessage=t=>{Ii(t.data.key,t.data.fid)}),te}function Ll(){mi.size===0&&te&&(te.close(),te=null)}const Ul="firebase-installations-database",Fl=1,se="firebase-installations-store";let mt=null;function an(){return mt||(mt=or(Ul,Fl,{upgrade:(t,e)=>{e===0&&t.createObjectStore(se)}})),mt}async function Ge(t,e){const n=it(t),i=(await an()).transaction(se,"readwrite"),s=i.objectStore(se),o=await s.get(n);return await s.put(e,n),await i.done,(!o||o.fid!==e.fid)&&_i(t,e.fi
3d),e}async function wi(t){const e=it(t),r=(await an()).transaction(se,"readwrite");await r.objectStore(se).delete(e),await r.done}async function st(t,e){const n=it(t),i=(await an()).transaction(se,"readwrite"),s=i.objectStore(se),o=await s.get(n),a=e(o);return a===void 0?await s.delete(n):await s.put(a,n),await i.done,a&&(!o||o.fid!==a.fid)&&_i(t,a.fid),a}async function cn(t){let e;const n=await st(t.appConfig,r=>{const i=$l(r),s=xl(t,i);return e=s.registrationPromise,s.installationEntry});return n.fid===Pt?{installationEntry:await e}:{installationEntry:n,registrationPromise:e}}function $l(t){const e=t||{fid:Ol(),registrationStatus:0};return yi(e)}function xl(t,e){if(e.registrationStatus===0){if(!navigator.onLine){const i=Promise.reject(ie.create("app-offline"));return{installationEntry:e,registrationPromise:i}}const n={fid:e.fid,registrationStatus:1,registrationTime:Date.now()},r=Bl(t,n);return{installationEntry:n,registrationPromise:r}}else return e.registrationStatus===1?{installationEntry:e,registrationPromise:Hl(t)}:{installationEntry:e}}async function Bl(t,e){try{const n=await Cl(t,e);return Ge(t.appConfig,n)}catch(n){throw li(n)&&n.customData.serverCode===409?await wi(t.appConfig):await Ge(t.appConfig,{fid:e.fid,registrationStatus:0}),n}}async function Hl(t){let e=await zn(t.appConfig);for(;e.registrationStatus===1;)await gi(100),e=await zn(t.appConfig);if(e.registrationStatus===0){const{installationEntry:n,registrationPromise:r}=await cn(t);return r||n}return e}function zn(t){return st(t,e=>{if(!e)throw ie.create("installation-not-found");return yi(e)})}function yi(t){return Vl(t)?{fid:t.fid,registrationStatus:0}:t}function Vl(t){return t.registrationStatus===1&&t.registrationTime+oi<Date.now()}async function Wl({appConfig:t,heartbeatServiceProvider:e},n){const r=jl(t,n),i=Al(t,n),s=e.getImmediate({optional:!0});if(s){const l=await s.getHeartbeatsHeader();l&&i.append("x-firebase-client",l)}const o={installation:{sdkVersion:ai,appId:t.appId}},a={method:"POST",headers:i,body:JSON.stringify(o)},c=await pi(()=>fetch(r,a));if(c.ok){const l=await c.json();return di(l)}else throw await hi("Generate Auth Token",c)}function jl(t,{fid:e}){return`${ui(t)}/${e}/authTokens:generate`}async function ln(t,e=!1){let n;const r=await st(t.appConfig,s=>{if(!Ei(s))throw ie.create("not-registered");const o=s.authToken;if(!e&&Kl(o))return s;if(o.requestStatus===1)return n=zl(t,e),s;{if(!navigator.onLine)throw ie.create("app-offline");const a=Jl(s);return n=ql(t,a),a}});return n?await n:r.authToken}async function zl(t,e){let n=await qn(t.appConfig);for(;n.authToken.requestStatus===1;)await gi(100),n=await qn(t.appConfig);const r=n.authToken;return r.requestStatus===0?ln(t,e):r}function qn(t){return st(t,e=>{if(!Ei(e))throw ie.create("not-registered");const n=e.authToken;return Yl(n)?{...e,authToken:{requestStatus:0}}:e})}async function ql(t,e){try{const n=await Wl(t,e),r={...e,authToken:n};return await Ge(t.appConfig,r),n}catch(n){if(li(n)&&(n.customData.serverCode===401||n.customData.serverCode===404))await wi(t.appConfig);else{const r={...e,authToken:{requestStatus:0}};await Ge(t.appConfig,r)}throw n}}function Ei(t){return t!==void 0&&t.registrationStatus===2}function Kl(t){return t.requestStatus===2&&!Gl(t)}function Gl(t){const e=Date.now();return e<t.creationTime||t.creationTime+t.expiresIn<e+El}function Jl(t){const e={requestStatus:1,requestTime:Date.now()};return{...t,authToken:e}}function Yl(t){return t.requestStatus===1&&t.requestTime+oi<Date.now()}async function Xl(t){const e=t,{installationEntry:n,registrationPromise:r}=await cn(e);return r?r.catch(console.error):ln(e).catch(console.error),n.fid}async function Ql(t,e=!1){const n=t;return await Zl(n),(await ln(n,e)).token}async function Zl(t){const{registrationPromise:e}=await cn(t);e&&await e}function eu(t){if(!t||!t.options)throw _t("App Configuration");if(!t.name)throw _t("App Name");const e=["projectId","apiKey","appId"];for(const n of e)if(!t.options[n])throw _t(n);return{appName:t.name,projectId:t.options.projectId,apiKey:t.options.apiKey,appId:t.options.appId}}function _t(t){return ie.create("missing-app-config-values",{valueName:t})}const Ti="installations",tu="installations-internal",nu=t=>{const e=t.getProvider("app").getImmediate(),n=eu(e),r=B(e,"heartbeat");return{app:e,appConfig:n,heartbeatServiceProvider:r,_delete:()=>Promise.resolve()}},ru=t=>{const e=t.getProvider("app").getImmediate(),n=B(e,Ti).getImmediate();return{getId:()=>Xl(n),getToken:i=>Ql(n,i)}};function iu(){S(new T(Ti,nu,"PUBLIC")),S(new T(tu,ru,"PRIVATE"))}iu();A(si,on);A(si,on,"esm2020");const Je="analytics",su="firebase_id",ou="origin",au=60*1e3,cu="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",un="https://www.googletagmanager.com/gtag/js";const _=new Ye("@firebase/analytics");const lu={"already-exists":"A Firebase Analytics instance with the appId {$id}  already exists. Only one Firebase Analytics instance can be created for each appId.","already-initialized":"initializeAnalytics() cannot be called again with different options than those it was initially called with. It can be called again with the same options to return the existing instance, or getAnalytics() can be used to get a reference to the already-initialized instance.","already-initialized-settings":"Firebase Analytics has already been initialized.settings() must be called before initializing any Analytics instanceor it will have no effect.","interop-component-reg-failed":"Firebase Analytics Interop Component failed to instantiate: {$reason}
3","invalid-analytics-context":"Firebase Analytics is not supported in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","indexeddb-unavailable":"IndexedDB unavailable or restricted in this environment. Wrap initialization of analytics in analytics.isSupported() to prevent initialization in unsupported environments. Details: {$errorInfo}","fetch-throttle":"The config fetch request timed out while in an exponential backoff state. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.","config-fetch-failed":"Dynamic config fetch failed: [{$httpStatus}] {$responseMessage}","no-api-key":'The "apiKey" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid API key.',"no-app-id":'The "appId" field is empty in the local Firebase config. Firebase Analytics requires this field tocontain a valid app ID.',"no-client-id":'The "client_id" field is empty.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."},w=new Y("analytics","Analytics",lu);function uu(t){if(!t.startsWith(un)){const e=w.create("invalid-gtag-resource",{gtagURL:t});return _.warn(e.message),""}return t}function bi(t){return Promise.all(t.map(e=>e.catch(n=>n)))}function du(t,e){let n;return window.trustedTypes&&(n=window.trustedTypes.createPolicy(t,e)),n}function hu(t,e){const n=du("firebase-js-sdk-policy",{createScriptURL:uu}),r=document.createElement("script"),i=`${un}?l=${t}&id=${e}`;r.src=n?n==null?void 0:n.createScriptURL(i):i,r.async=!0,document.head.appendChild(r)}function fu(t){let e=[];return Array.isArray(window[t])?e=window[t]:window[t]=e,e}async function pu(t,e,n,r,i,s){const o=r[i];try{if(o)await e[o];else{const c=(await bi(n)).find(l=>l.measurementId===i);c&&await e[c.appId]}}catch(a){_.error(a)}t("config",i,s)}async function gu(t,e,n,r,i){try{let s=[];if(i&&i.send_to){let o=i.send_to;Array.isArray(o)||(o=[o]);const a=await bi(n);for(const c of o){const l=a.find(h=>h.measurementId===c),d=l&&e[l.appId];if(d)s.push(d);else{s=[];break}}}s.length===0&&(s=Object.values(e)),await Promise.all(s),t("event",r,i||{})}catch(s){_.error(s)}}function mu(t,e,n,r){async function i(s,...o){try{if(s==="event"){const[a,c]=o;await gu(t,e,n,a,c)}else if(s==="config"){const[a,c]=o;await pu(t,e,n,r,a,c)}else if(s==="consent"){const[a,c]=o;t("consent",a,c)}else if(s==="get"){const[a,c,l]=o;t("get",a,c,l)}else if(s==="set"){const[a]=o;t("set",a)}else t(s,...o)}catch(a){_.error(a)}}return i}function _u(t,e,n,r,i){let s=function(...o){window[r].push(arguments)};return window[i]&&typeof window[i]=="function"&&(s=window[i]),window[i]=mu(s,t,e,n),{gtagCore:s,wrappedGtag:window[i]}}function Iu(t){const e=window.document.getElementsByTagName("script");for(const n of Object.values(e))if(n.src&&n.src.includes(un)&&n.src.includes(t))return n;return null}const wu=30,yu=1e3;class Eu{constructor(e={},n=yu){this.throttleMetadata=e,this.intervalMillis=n}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,n){this.throttleMetadata[e]=n}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}}const vi=new Eu;function Tu(t){return new Headers({Accept:"application/json","x-goog-api-key":t})}async function bu(t){var o;const{appId:e,apiKey:n}=t,r={method:"GET",headers:Tu(n)},i=cu.replace("{app-id}",e),s=await fetch(i,r);if(s.status!==200&&s.status!==304){let a="";try{const c=await s.json();(o=c.error)!=null&&o.message&&(a=c.error.message)}catch{}throw w.create("config-fetch-failed",{httpStatus:s.status,responseMessage:a})}return s.json()}async function vu(t,e=vi,n){const{appId:r,apiKey:i,measurementId:s}=t.options;if(!r)throw w.create("no-app-id");if(!i){if(s)return{measurementId:s,appId:r};throw w.create("no-api-key")}const o=e.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()},a=new Su;return setTimeout(async()=>{a.abort()},au),Ai({appId:r,apiKey:i,measurementId:s},o,a,e)}async function Ai(t,{throttleEndTimeMillis:e,backoffCount:n},r,i=vi){var a;const{appId:s,measurementId:o}=t;try{await Au(r,e)}catch(c){if(o)return _.warn(`Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID ${o} provided in the "measurementId" field in the local Firebase config. [${c==null?void 0:c.message}
3]`),{appId:s,measurementId:o};throw c}try{const c=await bu(t);return i.deleteThrottleMetadata(s),c}catch(c){const l=c;if(!ku(l)){if(i.deleteThrottleMetadata(s),o)return _.warn(`Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID ${o} provided in the "measurementId" field in the local Firebase config. [${l==null?void 0:l.message}]`),{appId:s,measurementId:o};throw c}const d=Number((a=l==null?void 0:l.customData)==null?void 0:a.httpStatus)===503?It(n,i.intervalMillis,wu):It(n,i.intervalMillis),h={throttleEndTimeMillis:Date.now()+d,backoffCount:n+1};return i.setThrottleMetadata(s,h),_.debug(`Calling attemptFetch again in ${d} millis`),Ai(t,h,r,i)}}function Au(t,e){return new Promise((n,r)=>{const i=Math.max(e-Date.now(),0),s=setTimeout(n,i);t.addEventListener(()=>{clearTimeout(s),r(w.create("fetch-throttle",{throttleEndTimeMillis:e}))})})}function ku(t){if(!(t instanceof D)||!t.customData)return!1;const e=Number(t.customData.httpStatus);return e===429||e===500||e===503||e===504}class Su{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}let Rt;async function Cu(t,e,n,r,i){if(i&&i.global){t("event",n,r);return}else{const s=await e,o={...r,send_to:s};t("event",n,o)}}async function Pu(t,e,n,r){if(r&&r.global)return t("set",{screen_name:n}),Promise.resolve();{const i=await e;t("config",i,{update:!0,screen_name:n})}}async function Ru(t,e,n,r){if(r&&r.global)return t("set",{user_id:n}),Promise.resolve();{const i=await e;t("config",i,{update:!0,user_id:n})}}async function Ou(t,e,n,r){if(r&&r.global){const i={};for(const s of Object.keys(n))i[`user_properties.${s}`]=n[s];return t("set",i),Promise.resolve()}else{const i=await e;t("config",i,{update:!0,user_properties:n})}}async function Du(t,e){const n=await e;return new Promise((r,i)=>{t("get",n,"client_id",s=>{s||i(w.create("no-client-id")),r(s)})})}async function Nu(t,e){const n=await t;window[`ga-disable-${n}`]=!e}let Ot;function ki(t){Ot=t}function Si(t){Rt=t}async function Mu(){if(be())try{await Ut()}catch(t){return _.warn(w.create("indexeddb-unavailable",{errorInfo:t==null?void 0:t.toString()}).message),!1}else return _.warn(w.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;return!0}async function Lu(t,e,n,r,i,s,o){const a=vu(t);a.then(p=>{n[p.measurementId]=p.appId,t.options.measurementId&&p.measurementId!==t.options.measurementId&&_.warn(`The measurement ID in the local Firebase config (${t.options.measurementId}) does not match the measurement ID fetched from the server (${p.measurementId}). To ensure analytics events are always sent to the correct Analytics property, update the measurement ID field in the local config or remove it from the local config.`)}).catch(p=>_.error(p)),e.push(a);const c=Mu().then(p=>{if(p)return r.getId()}),[l,d]=await Promise.all([a,c]);Iu(s)||hu(s,l.measurementId),Ot&&(i("consent","default",Ot),ki(void 0)),i("js",new Date);const h=(o==null?void 0:o.config)??{};return h[ou]="firebase",h.update=!0,d!=null&&(h[su]=d),i("config",l.measurementId,h),Rt&&(i("set",Rt),Si(void 0)),l.measurementId}class Uu{constructor(e){this.app=e}_delete(){return delete R[this.app.options.appId],Promise.resolve()}}let R={},Kn=[];const Gn={};let $e="dataLayer",Ci="gtag",Jn,O,Dt=!1;function Fu(t){if(Dt)throw w.create("already-initialized");t.dataLayerName&&($e=t.dataLayerName),t.gtagName&&(Ci=t.gtagName)}function $u(){const t=[];if(Lt()&&t.push("This is a browser extension environment."),rr()||t.push("Cookies are not available."),t.length>0){const e=t.map((r,i)=>`(${i+1}) ${r}`).join(" "),n=w.create("invalid-analytics-context",{errorInfo:e});_.warn(n.message)}}function xu(t,e,n){$u();const r=t.options.appId;if(!r)throw w.create("no-app-id");if(!t.options.apiKey)if(t.options.measurementId)_.warn(`The "apiKey" field is empty in the local Firebase config. This is needed to fetch the latest measurement ID for this Firebase app. Falling back to the measurement ID ${t.options.measurementId} provided in the "measurementId" field in the local Firebase config.`);else throw w.create("no-api-key");if(R[r]!=null)throw w.create("already-exists",{id:r});if(!Dt){fu($e);const{wrappedGtag:s,gtagCore:o}=_u(R,Kn,Gn,$e,Ci);O=s,Jn=o,Dt=!0}return R[r]=Lu(t,Kn,Gn,e,Jn,$e,n),new Uu(t)}function Bu(t=xt()){t=m(t);const e=B(t,Je);return e.isInitialized()?e.getImmediate():Pi(t)}function Pi(t,e={}){const n=B(t,Je);if(n.isInitialized()){const i=n.getImmediate();if(ne(e,n.getOptions()))return i;throw w.create("already-initialized")}return n.initialize({options:e})}async function Hu(){if(Lt()||!rr()||!be())return!1;try{return await Ut()}catch{return!1}}function Vu(t,e,n){t=m(t),Pu(O,R[t.app.options.appId],e,n).catch(r=>_.error(r))}async function Wu(t){return t=m(t),Du(O,R[t.app.options.appId])}function ju(t,e,n){t=m(t),Ru(O,R[t.app.options.appId],e,n).catch(r=>_.error(r))}function Ri(t,e,n){t=m(t),Ou(O,R[t.app.options.appId],e,n).catch(r=>_.error(r))}function zu(t,e){t=m(t),Nu(R[t.app.options.appId],e).catch(n=>_.error(n))}function qu(t){O?O("set",t):Si(t)}function Oi(t,e,n,r){t=m(t),Cu(O,R[t.app.options.appId],e,n,r).catch(i=>_.error(i))}function Ku(t){O?O("consent","update",t):ki(t)}
3const Yn="@firebase/analytics",Xn="0.10.21";function Gu(){S(new T(Je,(e,{options:n})=>{const r=e.getProvider("app").getImmediate(),i=e.getProvider("installations-internal").getImmediate();return xu(r,i,n)},"PUBLIC")),S(new T("analytics-internal",t,"PRIVATE")),A(Yn,Xn),A(Yn,Xn,"esm2020");function t(e){try{const n=e.getProvider(Je).getImmediate();return{logEvent:(r,i,s)=>Oi(n,r,i,s),setUserProperties:(r,i)=>Ri(n,r,i)}}catch(n){throw w.create("interop-component-reg-failed",{reason:n})}}}Gu();const ld=Object.freeze(Object.defineProperty({__proto__:null,getAnalytics:Bu,getGoogleAnalyticsClientId:Wu,initializeAnalytics:Pi,isSupported:Hu,logEvent:Oi,setAnalyticsCollectionEnabled:zu,setConsent:Ku,setCurrentScreen:Vu,setDefaultEventParameters:qu,setUserId:ju,setUserProperties:Ri,settings:Fu},Symbol.toStringTag,{value:"Module"}));export{V as F,W as G,Le as O,xt as a,Qo as b,bc as c,va as d,ad as e,ed as f,Ju as g,nd as h,ro as i,rd as j,id as k,Yu as l,od as m,Zu as n,td as o,Qu as p,Xu as q,cd as r,sd as s,ld as t};

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.