1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,972046,e=>{"use strict";var t,i,r,n,s=e.i(830764),a=e.i(340826),o=e.i(222609);e.i(693922);var c=e.i(838701),l=((t={})[t.heap=0]="heap",t[t.hubspot=1]="hubspot",t[t.google=2]="google",t);let h=(...e)=>{window._hsq||(window._hsq=[]),window._hsq.push(...e)};var u=((i={}).clientSideError="clientSideError",i.findRooms="pe2459975_obe_find_rooms",i.bookNow="pe2459975_obe_book_now",i.completeBooking="pe2459975_obe_complete_booking",i.cancelBooking="pe2459975_obe_cancel_booking",i),d=((r={}).clientSideError="clientSideError",r.bookingSuccess="SuccessfulBooking",r.loginFailed="LoginFailed",r.loginSuccess="LoginSuccess",r.recaptchaFailed="RecaptchaFailed",r.gateView="GateView",r),p=((n={}).clientSideError="clientSideError",n.consentUpdated="consentUpdated",n.gateView="gateView",n);let f=e=>{switch(e.provider){case 0:{let{name:t,properties:i}=e;window?.heap?.track(t,i);break}case 2:{let{name:t,properties:i}=e,r=(0,o.getAnalytics)();(0,c.logEvent)(r,t,i);break}case 1:{let{name:t,properties:i}=e;h(["trackCustomBehavioralEvent",{name:t,properties:i}])}}};e.s(["AnalyticsProvider",()=>l,"GoogleEvent",()=>p,"HeapEvent",()=>d,"HubspotWidgetAnalyticCTAEvent",()=>u,"identifyUser",0,e=>{(({id:e})=>{let t=(0,o.getAnalytics)();e&&(0,c.setUserId)(t,e)})(e),(({id:e,email:t,membershipType:i})=>{if(!window.heap)return console.warn("Heap has not been initialized");window.heap.identify||console.warn("Heap identify function does not exist"),window.heap.addUserProperties||console.warn("Heap addUserProperties function does not exist"),e&&window.heap.identify?.(e);let r={};t&&(r.email=t),i&&(r.MembershipLevel=s.MembershipTypeLabels[i]),window.heap.addUserProperties?.(r)})(e),(({email:e})=>{e&&h(["identify",{email:e}])})(e)},"sendHubspotIdentity",0,(e,t={})=>h(["identify",{email:e,...t}],["trackPageView"]),"setAnalyticCookiePreferences",0,e=>{window&&e!==a.CookieConsent.unknown&&(window._hsp=window._hsp||[],window._hsp.push(["setHubSpotConsent",{advertisement:e===a.CookieConsent.all,analytics:!0,functionality:!0}])),f({provider:2,name:"consentUpdated"})},"trackCustomEvent",0,f])},340826,e=>{"use strict";e.s(["CookieConsent",0,{all:"A",essential:"E",unknown:"X"}])},137305,871075,463337,e=>{"use strict";var t,i,r=e.i(365259);let n=function(e){let t=[],i=0;for(let r=0;r<e.length;r++){let n=e.charCodeAt(r);n<128?t[i++]=n:(n<2048?t[i++]=n>>6|192:((64512&n)==55296&&r+1<e.length&&(64512&e.charCodeAt(r+1))==56320?(n=65536+((1023&n)<<10)+(1023&e.charCodeAt(++r)),t[i++]=n>>18|240,t[i++]=n>>12&63|128):t[i++]=n>>12|224,t[i++]=n>>6&63|128),t[i++]=63&n|128)}return t},s=function(e){let t=[],i=0,r=0;for(;i<e.length;){let n=e[i++];if(n<128)t[r++]=String.fromCharCode(n);else if(n>191&&n<224){let s=e[i++];t[r++]=String.fromCharCode((31&n)<<6|63&s)}else if(n>239&&n<365){let s=((7&n)<<18|(63&e[i++])<<12|(63&e[i++])<<6|63&e[i++])-65536;t[r++]=String.fromCharCode(55296+(s>>10)),t[r++]=String.fromCharCode(56320+(1023&s))}else{let s=e[i++],a=e[i++];t[r++]=String.fromCharCode((15&n)<<12|(63&s)<<6|63&a)}}return t.join("")},a={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:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();let i=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let t=0;t<e.length;t+=3){let n=e[t],s=t+1<e.length,a=s?e[t+1]:0,o=t+2<e.length,c=o?e[t+2]:0,l=n>>2,h=(3&n)<<4|a>>4,u=(15&a)<<2|c>>6,d=63&c;!o&&(d=64,s||(u=64)),r.push(i[l],i[h],i[u],i[d])}return r.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(n(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):s(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();let i=t?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let t=0;t<e.length;
1){let n=i[e.charAt(t++)],s=t<e.length?i[e.charAt(t)]:0,a=++t<e.length?i[e.charAt(t)]:64,c=++t<e.length?i[e.charAt(t)]:64;if(++t,null==n||null==s||null==a||null==c)throw new o;let l=n<<2|s>>4;if(r.push(l),64!==a){let e=s<<4&240|a>>2;if(r.push(e),64!==c){let e=a<<6&192|c;r.push(e)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class o extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let c=function(e){let t=n(e);return a.encodeByteArray(t,!0)},l=function(e){try{return a.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null},h=()=>{try{return("u">typeof self?self:"u">typeof window?window:e.g).__FIREBASE_DEFAULTS__||(()=>{if(void 0===r.default||void 0===r.default.env)return;let e=r.default.env.__FIREBASE_DEFAULTS__;if(e)return JSON.parse(e)})()||(()=>{let e;if("u"<typeof document)return;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}let t=e&&l(e[1]);return t&&JSON.parse(t)})()}catch(e){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);return}};class u{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(e){return(t,i)=>{t?this.reject(t):this.resolve(i),"function"==typeof e&&(this.promise.catch(()=>{}),1===e.length?e(t):e(t,i))}}}function d(e){try{return(e.startsWith("http://")||e.startsWith("https://")?new URL(e).hostname:e).endsWith(".cloudworkstations.dev")}catch{return!1}}async function p(e){return(await fetch(e,{credentials:"include"})).ok}let f={},g=!1;function m(){return"u">typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function w(){return"u">typeof WorkerGlobalScope&&"u">typeof self&&self instanceof WorkerGlobalScope}class y extends Error{constructor(e,t,i){super(t),this.code=e,this.customData=i,this.name="FirebaseError",Object.setPrototypeOf(this,y.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,_.prototype.create)}}class _{constructor(e,t,i){this.service=e,this.serviceName=t,this.errors=i}create(e,...t){var i,r;let n=t[0]||{},s=`${this.service}/${e}`,a=this.errors[e],o=a?(i=a,r=n,i.replace(v,(e,t)=>{let i=r[t];return null!=i?String(i):`<${t}?>`})):"Error",c=`${this.serviceName}: ${o} (${s}).`;return new y(s,c,n)}}let v=/\{\$([^}]+)}/g;function I(e){return null!==e&&"object"==typeof e}class b{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(()=>{e(this)}).catch(e=>{this.error(e)})}next(e){this.forEachObserver(t=>{t.next(e)})}error(e){this.forEachObserver(t=>{t.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,i){let r;if(void 0===e&&void 0===t&&void 0===i)throw Error("Missing Observer.");void 0===(r=!function(e,t){if("object"!=typeof e||null===e)return!1;for(let i of t)if(i in e&&"function"==typeof e[i])return!0;return!1}(e,["next","error","complete"])?{next:e,error:t,complete:i}:e).next&&(r.next=E),void 0===r.error&&(r.error=E),void 0===r.complete&&(r.complete=E);let n=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?r.error(this.finalError):r.complete()}catch(e){}}),this.observers.push(r),n}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t<this.observers.length;t++)this.sendOne(t,e)}sendOne(e,t){this.task.then(()=>
1{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"u">typeof console&&console.error&&console.error(e)}})}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}}function E(){}e.s(["Deferred",0,u,"ErrorFactory",0,_,"FirebaseError",0,y,"areCookiesEnabled",0,function(){return!("u"<typeof navigator)&&!!navigator.cookieEnabled},"assert",0,function(e,t){if(!e)throw Error("Firebase Database (${JSCORE_VERSION}) INTERNAL ASSERT FAILED: "+t)},"base64Decode",0,l,"base64urlEncodeWithoutPadding",0,function(e){return c(e).replace(/\./g,"")},"calculateBackoffMillis",0,function(e,t=1e3,i=2){let r=t*Math.pow(i,e),n=Math.round(.5*r*(Math.random()-.5)*2);return Math.min(144e5,r+n)},"createSubscribe",0,function(e,t){let i=new b(e,t);return i.subscribe.bind(i)},"deepEqual",0,function e(t,i){if(t===i)return!0;let r=Object.keys(t),n=Object.keys(i);for(let s of r){if(!n.includes(s))return!1;let r=t[s],a=i[s];if(I(r)&&I(a)){if(!e(r,a))return!1}else if(r!==a)return!1}for(let e of n)if(!r.includes(e))return!1;return!0},"extractQuerystring",0,function(e){let t=e.indexOf("?");if(!t)return"";let i=e.indexOf("#",t);return e.substring(t,i>0?i:void 0)},"getDefaultAppConfig",0,()=>h()?.config,"getDefaultEmulatorHost",0,e=>h()?.emulatorHosts?.[e],"getExperimentalSetting",0,e=>h()?.[`_${e}`],"getModularInstance",0,function(e){return e&&e._delegate?e._delegate:e},"getUA",0,m,"isBrowser",0,function(){return"u">typeof window||w()},"isBrowserExtension",0,function(){let e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id},"isCloudWorkstation",0,d,"isCloudflareWorker",0,function(){return"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent},"isEmpty",0,function(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0},"isIE",0,function(){let e=m();return e.indexOf("MSIE ")>=0||e.indexOf("Trident/")>=0},"isIndexedDBAvailable",0,function(){try{return"object"==typeof indexedDB}catch(e){return!1}},"isMobileCordova",0,function(){return"u">typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(m())},"isReactNative",0,function(){return"object"==typeof navigator&&"ReactNative"===navigator.product},"isWebWorker",0,w,"pingServer",0,p,"querystring",0,function(e){let t=[];for(let[i,r]of Object.entries(e))Array.isArray(r)?r.forEach(e=>{t.push(encodeURIComponent(i)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(i)+"="+encodeURIComponent(r));return t.length?"&"+t.join("&"):""},"querystringDecode",0,function(e){let t={};return e.replace(/^\?/,"").split("&").forEach(e=>{if(e){let[i,r]=e.split("=");
1t[decodeURIComponent(i)]=decodeURIComponent(r)}}),t},"updateEmulatorBanner",0,function(e,t){if("u"<typeof window||"u"<typeof document||!d(window.location.host)||f[e]===t||f[e]||g)return;function i(e){return`__firebase__banner__${e}`}f[e]=t;let r="__firebase__banner",n=function(){let e={prod:[],emulator:[]};for(let t of Object.keys(f))f[t]?e.emulator.push(t):e.prod.push(t);return e}().prod.length>0;function s(){let e,t,s=(e=document.getElementById(r),t=!1,e||((e=document.createElement("div")).setAttribute("id",r),t=!0),{created:t,element:e}),a=i("text"),o=document.getElementById(a)||document.createElement("span"),c=i("learnmore"),l=document.getElementById(c)||document.createElement("a"),h=i("preprendIcon"),u=document.getElementById(h)||document.createElementNS("http://www.w3.org/2000/svg","svg");if(s.created){let e,t=s.element;t.style.display="flex",t.style.background="#7faaf0",t.style.position="fixed",t.style.bottom="5px",t.style.left="5px",t.style.padding=".5em",t.style.borderRadius="5px",t.style.alignItems="center",l.setAttribute("id",c),l.innerText="Learn more",l.href="https://firebase.google.com/docs/studio/preview-apps#preview-backend",l.setAttribute("target","__blank"),l.style.paddingLeft="5px",l.style.textDecoration="underline";let i=((e=document.createElement("span")).style.cursor="pointer",e.style.marginLeft="16px",e.style.fontSize="24px",e.innerHTML=" ×",e.onclick=()=>{let e;g=!0,(e=document.getElementById(r))&&e.remove()},e);u.setAttribute("width","24"),u.setAttribute("id",h),u.setAttribute("height","24"),u.setAttribute("viewBox","0 0 24 24"),u.setAttribute("fill","none"),u.style.marginLeft="-6px",t.append(u,o,l,i),document.body.appendChild(t)}n?(o.innerText="Preview backend disconnected.",u.innerHTML=`<g clip-path="url(#clip0_6013_33858)"> 2<path d="M4.8 17.6L12 5.6L19.2 17.6H4.8ZM6.91667 16.4H17.0833L12 7.93333L6.91667 16.4ZM12 15.6C12.1667 15.6 12.3056 15.5444 12.4167 15.4333C12.5389 15.3111 12.6 15.1667 12.6 15C12.6 14.8333 12.5389 14.6944 12.4167 14.5833C12.3056 14.4611 12.1667 14.4 12 14.4C11.8333 14.4 11.6889 14.4611 11.5667 14.5833C11.4556 14.6944 11.4 14.8333 11.4 15C11.4 15.1667 11.4556 15.3111 11.5667 15.4333C11.6889 15.5444 11.8333 15.6 12 15.6ZM11.4 13.6H12.6V10.4H11.4V13.6Z" fill="#212121"/> 3</g> 4<defs> 5<clipPath id="clip0_6013_33858"> 6<rect width="24" height="24" fill="white"/> 7</clipPath> 8</defs>`):(u.innerHTML=`<g clip-path="url(#clip0_6083_34804)"> 9<path d="M11.4 15.2H12.6V11.2H11.4V15.2ZM12 10C12.1667 10 12.3056 9.94444 12.4167 9.83333C12.5389 9.71111 12.6 9.56667 12.6 9.4C12.6 9.23333 12.5389 9.09444 12.4167 8.98333C12.3056 8.86111 12.1667 8.8 12 8.8C11.8333 8.8 11.6889 8.86111 11.5667 8.98333C11.4556 9.09444 11.4 9.23333 11.4 9.4C11.4 9.56667 11.4556 9.71111 11.5667 9.83333C11.6889 9.94444 11.8333 10 12 10ZM12 18.4C11.1222 18.4 10.2944 18.2333 9.51667 17.9C8.73889 17.5667 8.05556 17.1111 7.46667 16.5333C6.88889 15.9444 6.43333 15.2611 6.1 14.4833C5.76667 13.7056 5.6 12.8778 5.6 12C5.6 11.1111 5.76667 10.2833 6.1 9.51667C6.43333 8.73889 6.88889 8.06111 7.46667 7.48333C8.05556 6.89444 8.73889 6.43333 9.51667 6.1C10.2944 5.76667 11.1222 5.6 12 5.6C12.8889 5.6 13.7167 5.76667 14.4833 6.1C15.2611 6.43333 15.9389 6.89444 16.5167 7.48333C17.1056 8.06111 17.5667 8.73889 17.9 9.51667C18.2333 10.2833 18.4 11.1111 18.4 12C18.4 12.8778 18.2333 13.7056 17.9 14.4833C17.5667 15.2611 17.1056 15.9444 16.5167 16.5333C15.9389 17.1111 15.2611 17.5667 14.4833 17.9C13.7167 18.2333 12.8889 18.4 12 18.4ZM12 17.2C13.4444 17.2 14.6722 16.6944 15.6833 15.6833C16.6944 14.6722 17.2 13.4444 17.2 12C17.2 10.5556 16.6944 9.32778 15.6833 8.31667C14.6722 7.30555 13.4444 6.8 12 6.8C10.5556 6.8 9.32778 7.30555 8.31667 8.31667C7.30556 9.32778 6.8 10.5556 6.8 12C6.8 13.4444 7.30556 14.6722 8.31667 15.6833C9.32778 16.6944 10.5556 17.2 12 17.2Z" fill="#212121"/> 10</g> 11<defs> 12<clipPath id="clip0_6083_34804"> 13<rect width="24" height="24" fill="white"/> 14</clipPath> 15</defs>`,o.innerText="Preview backend running in this workspace."),o.setAttribute("id",a)}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",s):s()},"validateIndexedDBOpenable",0,function(){return new Promise((e,t)=>
15{try{let i=!0,r="validate-browser-context-for-indexeddb-analytics-module",n=self.indexedDB.open(r);n.onsuccess=()=>{n.result.close(),i||self.indexedDB.deleteDatabase(r),e(!0)},n.onupgradeneeded=()=>{i=!1},n.onerror=()=>{t(n.error?.message||"")}}catch(e){t(e)}})}],871075);let C="[DEFAULT]";class T{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){let t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){let e=new u;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{let i=this.getOrInitializeService({instanceIdentifier:t});i&&e.resolve(i)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){let t=this.normalizeInstanceIdentifier(e?.identifier),i=e?.optional??!1;if(this.isInitialized(t)||this.shouldAutoInitialize())try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(i)return null;throw e}if(i)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("EAGER"===e.instantiationMode)try{this.getOrInitializeService({instanceIdentifier:C})}catch(e){}for(let[e,t]of this.instancesDeferred.entries()){let i=this.normalizeInstanceIdentifier(e);try{let e=this.getOrInitializeService({instanceIdentifier:i});t.resolve(e)}catch(e){}}}}clearInstance(e=C){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){let e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=C){return this.instances.has(e)}getOptions(e=C){return this.instancesOptions.get(e)||{}}initialize(e={}){let{options:t={}}=e,i=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(i))throw Error(`${this.name}(${i}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);let r=this.getOrInitializeService({instanceIdentifier:i,options:t});for(let[e,t]of this.instancesDeferred.entries())i===this.normalizeInstanceIdentifier(e)&&t.resolve(r);return r}onInit(e,t){let i=this.normalizeInstanceIdentifier(t),r=this.onInitCallbacks.get(i)??new Set;r.add(e),this.onInitCallbacks.set(i,r);let n=this.instances.get(i);return n&&e(n,i),()=>{r.delete(e)}}invokeOnInitCallbacks(e,t){let i=this.onInitCallbacks.get(t);if(i)for(let r of i)try{r(e,t)}catch{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){var i;let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(i=e)===C?void 0:i,options:t}),this.instances.set(e,r),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(r,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,r)}catch{}return r||null}normalizeInstanceIdentifier(e=C){return this.component?this.component.multipleInstances?e:C:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}e.s(["Component",0,class{constructor(e,t,i){this.name=e,this.instanceFactory=t,this.type=i,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}},"ComponentContainer",0,class{constructor(e){this.name=e,this.providers=new Map}addComponent(e){let t=this.getProvider(e.name);if(t.isComponentSet())throw Error(`Component ${e.name} has already been registered with ${this.name}`);t.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);let t=new T(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}],137305);let S=[];(t=i||(i={}))[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";let k={debug:i.DEBUG,verbose:i.VERBOSE,info:i.INFO,warn:i.WARN,error:i.ERROR,silent:i.S
15ILENT},A=i.INFO,R={[i.DEBUG]:"log",[i.VERBOSE]:"log",[i.INFO]:"info",[i.WARN]:"warn",[i.ERROR]:"error"},P=(e,t,...i)=>{if(t<e.logLevel)return;let r=new Date().toISOString(),n=R[t];if(n)console[n](`[${r}] ${e.name}:`,...i);else throw Error(`Attempted to log a message with an invalid logType (value: ${t})`)};e.s(["LogLevel",0,i,"Logger",0,class{constructor(e){this.name=e,this._logLevel=A,this._logHandler=P,this._userLogHandler=null,S.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in i))throw TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?k[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw 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,i.DEBUG,...e),this._logHandler(this,i.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,i.VERBOSE,...e),this._logHandler(this,i.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,i.INFO,...e),this._logHandler(this,i.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,i.WARN,...e),this._logHandler(this,i.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,i.ERROR,...e),this._logHandler(this,i.ERROR,...e)}},"setLogLevel",0,function(e){S.forEach(t=>{t.setLogLevel(e)})},"setUserLogHandler",0,function(e,t){for(let r of S){let n=null;t&&t.level&&(n=k[t.level]),null===e?r.userLogHandler=null:r.userLogHandler=(t,r,...s)=>{let a=s.map(e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}}).filter(e=>e).join(" ");r>=(n??t.logLevel)&&e({level:i[r].toLowerCase(),message:a,args:s,type:t.name})}}}],463337)},63508,e=>{"use strict";let t,i,r,n=new WeakMap,s=new WeakMap,a=new WeakMap,o=new WeakMap,c=new WeakMap,l={get(e,t,i){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||a.get(e);if("store"===t)return i.objectStoreNames[1]?void 0:i.objectStore(i.objectStoreNames[0])}return h(e[t])},set:(e,t,i)=>(e[t]=i,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function h(e){if(e instanceof IDBRequest){let t;return(t=new Promise((t,i)=>{let r=()=>{e.removeEventListener("success",n),e.removeEventListener("error",s)},n=()=>{t(h(e.result)),r()},s=()=>{i(e.error),r()};e.addEventListener("success",n),e.addEventListener("error",s)})).then(t=>{t instanceof IDBCursor&&n.set(t,e)}).catch(()=>{}),c.set(t,e),t}if(o.has(e))return o.get(e);let t=function(e){if("function"==typeof e)return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(r||(r=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(u(this),t),h(n.get(this))}:function(...t){return h(e.apply(u(this),t))}:function(t,...i){let r=e.call(u(this),t,...i);return a.set(r,t.sort?t.sort():[t]),h(r)};return e instanceof IDBTransaction&&function(e){if(s.has(e))return;let t=new Promise((t,i)=>{let r=()=>{e.removeEventListener("complete",n),e.removeEventListener("error",s),e.removeEventListener("abort",s)},n=()=>{t(),r()},s=()=>{i(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",n),e.addEventListener("error",s),e.addEventListener("abort",s)});s.set(e,t)}(e),(i||(i=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(t=>e instanceof t)?new Proxy(e,l):e}(e);return t!==e&&(o.set(e,t),c.set(t,e)),t}let u=e=>c.get(e),d=["get","getKey","getAll","getAllKeys","count"],p=["put","add","delete","clear"],f=new Map;function g(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(f.get(t))return f.get(t);let i=t.replace(/FromIndex$/,""),r=t!==i,n=p.includes(i);if(!(i in(r?IDBIndex:IDBObjectStore).prototype)||!(n||d.includes(i)))return;let s=async function(e,...t){let s=this.transaction(e,n?"readwrite":"readonly"),a=s.store;
15return r&&(a=a.index(t.shift())),(await Promise.all([a[i](...t),n&&s.done]))[0]};return f.set(t,s),s}l={...t=l,get:(e,i,r)=>g(e,i)||t.get(e,i,r),has:(e,i)=>!!g(e,i)||t.has(e,i)},e.s(["openDB",0,function(e,t,{blocked:i,upgrade:r,blocking:n,terminated:s}={}){let a=indexedDB.open(e,t),o=h(a);return r&&a.addEventListener("upgradeneeded",e=>{r(h(a.result),e.oldVersion,e.newVersion,h(a.transaction),e)}),i&&a.addEventListener("blocked",e=>i(e.oldVersion,e.newVersion,e)),o.then(e=>{s&&e.addEventListener("close",()=>s()),n&&e.addEventListener("versionchange",e=>n(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}],63508)},222609,207900,714888,838701,693922,e=>{"use strict";let t,i,r,n,s,a,o,c;var l,h=e.i(137305),u=e.i(463337),d=e.i(871075),p=e.i(63508);class f{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{let t;if(t=e.getComponent(),t?.type!=="VERSION")return null;{let t=e.getImmediate();return`${t.library}/${t.version}`}}).filter(e=>e).join(" ")}}let g="@firebase/app",m="0.14.7",w=new u.Logger("@firebase/app"),y="[DEFAULT]",_={[g]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/data-connect":"fire-data-connect","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","@firebase/ai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},v=new Map,I=new Map,b=new Map;function E(e,t){try{e.container.addComponent(t)}catch(i){w.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,i)}}function C(e){let t=e.name;if(b.has(t))return w.debug(`There were multiple attempts to register component ${t}.`),!1;
15for(let i of(b.set(t,e),v.values()))E(i,e);for(let t of I.values())E(t,e);return!0}function T(e,t){let i=e.container.getProvider("heartbeat").getImmediate({optional:!0});return i&&i.triggerHeartbeat(),e.container.getProvider(t)}function S(e){return null!=e&&void 0!==e.settings}let k=new d.ErrorFactory("app","Firebase",{"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.","invalid-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."});class A{constructor(e,t,i){this._isDeleted=!1,this._options={...e},this._config={...t},this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=i,this.container.addComponent(new h.Component("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 k.create("app-deleted",{appName:this._name})}}let R="12.8.0";function P(e,t={}){let i=e;"object"!=typeof t&&(t={name:t});let r={name:y,automaticDataCollectionEnabled:!0,...t},n=r.name;if("string"!=typeof n||!n)throw k.create("bad-app-name",{appName:String(n)});if(i||(i=(0,d.getDefaultAppConfig)()),!i)throw k.create("no-options");let s=v.get(n);if(s)if((0,d.deepEqual)(i,s.options)&&(0,d.deepEqual)(r,s.config))return s;else throw k.create("duplicate-app",{appName:n});let a=new h.ComponentContainer(n);for(let e of b.values())a.addComponent(e);let o=new A(i,r,a);return v.set(n,o),o}function O(e=y){let t=v.get(e);if(!t&&e===y&&(0,d.getDefaultAppConfig)())return P();if(!t)throw k.create("no-app",{appName:e});return t}function N(e,t,i){let r=_[e]??e;i&&(r+=`-${i}`);let n=r.match(/\s|\//),s=t.match(/\s|\//);if(n||s){let e=[`Unable to register library "${r}" with version "${t}":`];n&&e.push(`library name "${r}" contains illegal characters (whitespace or "/")`),n&&s&&e.push("and"),s&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),w.warn(e.join(" "));return}C(new h.Component(`${r}-version`,()=>({library:r,version:t}),"VERSION"))}let D="firebase-heartbeat-store",M=null;function L(){return M||(M=(0,p.openDB)("firebase-heartbeat-database",1,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(D)}catch(e){console.warn(e)}}}).catch(e=>{throw k.create("idb-open",{originalErrorMessage:e.message})})),M}async function F(e){try{let t=(await L()).transaction(D),i=await t.objectStore(D).get(x(e));return await t.done,i}catch(e){if(e instanceof d.FirebaseError)w.warn(e.message);else{let t=k.create("idb-get",{originalErrorMessage:e?.message});w.warn(t.message)}}}async function U(e,t){try{let i=(await L()).transaction(D,"readwrite"),r=i.objectStore(D);await r.put(t,x(e)),await i.done}catch(e){if(e instanceof d.FirebaseError)w.warn(e.message);else{let t=k.create("idb-set",{originalErrorMessage:e?.message});w.warn(t.message)}}}function x(e){return`${e.name}!${e.options.appId}`}class B{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new H(t),this._heartbeatsCachePromise=this._storage.read().then(e=>(this._heartbeatsCache=e,e))}async triggerHeartbeat(){try{let e=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),t=V();if(this._heartbeatsCache?.heartbeats==null&&(this._heartbeatsCache=await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null)||this._heartbeatsCache.lastSentHeartbeatDate===t||this._heartbeatsCache.heartbeats.some(e=>e.date===t))return;if(this._heartbeatsCache.heartbeats.push({date:t,agent:e}),this._heartbeatsCache.heartbeats.length>30){let e=function(e){if(0===e.length)return -1;let t=0,i=e[0].date;for(let r=1;r<e.length;r++)e[r].date<i&&(i=e[r].date,t=r);return t}(this._heartbeatsCache.heartbeats);this._heartbeatsCache.heartbeats.splice(e,1)}return this._storage.overwrite(this._heartbeatsCache)}catch(e){w.warn(e)}}async getHeartbeatsHeader(){try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,this._heartbeatsCache?.heartbeats==null||0===this._heartbeatsCache.heartbeats.length)return"";let e=V(),{heartbeatsToSend:t,unsentEntries:i}=function(e,t=1024){let i=[],r=e.slice();for(let n of e){let e=i.find(e=>e.agent===n.agent);if(e){if(e.dates.push(n.date),j(i)>t){e.dates.pop();break}}else if(i.push({agent:n.agent,dates:[n.date]}),j(i)>t){i.pop();break}r=r.slice(1)}return{heartbeatsToSend:i,unsentEntries:r}}(this._heartbeatsCache.heartbeats),r=(0,d.base64urlEncodeWithoutPadding)(JSON.stringify({version:2,heartbeats:t}));return this._heartbeatsCache.lastSentHeartbeatDate=e,i.length>0?(this._heartbeatsCache.heartbeats=i,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),r}catch(e){return w.warn(e),""}}}function V(){return new Date().toISOString().substring(0,10)}class H{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!(0,d.isIndexedDBAvailable)()&&(0,d.validateIndexedDBOpenable)().then(()=>!0).catch(()=>!1)}async read(){if(!await this._canUseIndexedDBPromise)return{heartbeats:[]};{let e=await F(this.app);return e?.heartbeats?e:{heartbeats:[]}}}async overwrite(e){if(await this._canUseIndexedDBPromise){let t=await this.read();return U(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){if(await this._canUseIndexedDBPromise){let t=await this.read();return U(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}}function j(e){return(0,d.base64urlEncodeWithoutPadding)(JSON.stringify({version:2,heartbeats:e})).length}
15C(new h.Component("platform-logger",e=>new f(e),"PRIVATE")),C(new h.Component("heartbeat",e=>new B(e),"PRIVATE")),N(g,m,""),N(g,m,"esm2020"),N("fire-js",""),N("firebase","12.8.0","app");var W=d;function $(){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."}}let z=new W.ErrorFactory("auth","Firebase",$()),q=new u.Logger("@firebase/auth");function K(e,...t){q.logLevel<=u.LogLevel.ERROR&&q.error(`Auth (${R}): ${e}`,...t)}function G(e,...t){throw Q(e,...t)}function J(e,...t){return Q(e,...t)}function Y(e,t,i){let r={...$(),[t]:i};return new W.ErrorFactory("auth","Firebase",r).create(t,{appName:e.name})}function X(e){return Y(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function Q(e,...t){if("string"!=typeof e){let i=t[0],r=[...t.slice(1)];return r[0]&&(r[0].appName=e.name),e._errorFactory.create(i,...r)}return z.create(e,...t)}function Z(e,t,...i){if(!e)throw Q(t,...i)}function ee(e){let t="INTERNAL ASSERTION FAILED: "+e;throw K(t),Error(t)}function et(){return"u">typeof self&&self.location?.protocol||null}class ei{constructor(e,t){this.shortDelay=e,this.longDelay=t,function(e,t){e||ee(t)}(t>e,"Short delay should be less than long delay!"),this.isMobile=(0,W.isMobileCordova)()||(0,W.isReactNative)()}get(){return!("u">typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&("http:"===et()||"https:"===et()||(0,W.isBrowserExtension)()||"connection"in navigator))||navigator.onLine?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}class er{static initialize(e,t,i){this.fetchImpl=e,t&&(this.headersImpl=t),i&&(this.responseImpl=i)}static fetch(){return this.fetchImpl?this.fetchImpl:"u">typeof self&&"fetch"in self?self.fetch:"u">typeof globalThis&&globalThis.fetch?globalThis.fetch:"u">typeof fetch?fetch:void ee("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){return this.headersImpl?this.headersImpl:"u">typeof self&&"Headers"in self?self.Headers:"u">typeof globalThis&&globalThis.Headers?globalThis.Headers:"u">typeof Headers?Headers:void ee("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){return this.responseImpl?this.responseImpl:"u">typeof self&&"Response"in self?self.Response:"u">typeof globalThis&&globalThis.Response?globalThis.Response:"u">typeof Response?Response:void ee("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}let en={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-rec
15aptcha-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"},es=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],ea=new ei(3e4,6e4);function eo(e,t){return e.tenantId&&!t.tenantId?{...t,tenantId:e.tenantId}:t}async function ec(e,t,i,r,n={}){return el(e,n,async()=>{let n={},s={};r&&("GET"===t?s=r:n={body:JSON.stringify(r)});let a=(0,W.querystring)({key:e.config.apiKey,...s}).slice(1),o=await e._getAdditionalHeaders();o["Content-Type"]="application/json",e.languageCode&&(o["X-Firebase-Locale"]=e.languageCode);let c={method:t,headers:o,...n};return(0,W.isCloudflareWorker)()||(c.referrerPolicy="no-referrer"),e.emulatorConfig&&(0,W.isCloudWorkstation)(e.emulatorConfig.host)&&(c.credentials="include"),er.fetch()(await eu(e,e.config.apiHost,i,a),c)})}async function el(e,t,i){e._canInitEmulator=!1;let r={...en,...t};try{let t=new ed(e),n=await Promise.race([i(),t.promise]);t.clearNetworkTimeout();let s=await n.json();if("needConfirmation"in s)throw ep(e,"account-exists-with-different-credential",s);if(n.ok&&!("errorMessage"in s))return s;{let[t,i]=(n.ok?s.errorMessage:s.error.message).split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===t)throw ep(e,"credential-already-in-use",s);if("EMAIL_EXISTS"===t)throw ep(e,"email-already-in-use",s);if("USER_DISABLED"===t)throw ep(e,"user-disabled",s);let a=r[t]||t.toLowerCase().replace(/[_\s]+/g,"-");if(i)throw Y(e,a,i);G(e,a)}}catch(t){if(t instanceof W.FirebaseError)throw t;G(e,"network-request-failed",{message:String(t)})}}async function eh(e,t,i,r,n={}){let s=await ec(e,t,i,r,n);return"mfaPendingCredential"in s&&G(e,"multi-factor-auth-required",{_serverResponse:s}),s}async function eu(e,t,i,r){let n=`${t}${i}?${r}`,s=e.config.emulator?function(e,t){var i;i=e.emulator,i||ee("Emulator should always be set here");let{url:r}=e.emulator;return t?`${r}${t.startsWith("/")?t.slice(1):t}`:r}(e.config,n):`${e.config.apiScheme}://${n}`;return es.includes(i)&&(await e._persistenceManagerAvailable,"COOKIE"===e._getPersistenceType())?e._getPersistence()._getFinalTarget(s).toString():s}class ed{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>{this.timer=setTimeout(()=>t(J(this.auth,"network-request-failed")),ea.get())})}}function ep(e,t,i){let r={appName:e.name};i.email&&(r.email=i.email),i.phoneNumber&&(r.phoneNumber=i.phoneNumber);let n=J(e,t,r);return n.customData._tokenResponse=i,n}function ef(e){return void 0!==e&&void 0!==e.enterprise}class eg{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(e){if(!this.recaptchaEnforcementState||0===this.recaptchaEnforcementState.length)return null;for(let t of this.recaptchaEnforcementState)if(t.provider&&t.provider===e)switch(t.enforcementState){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PROVIDER")}}async function em(e,t){return ec(e,"GET","/v2/recaptchaConfig",eo(e,t))}async function ew(e,t){return ec(e,"POST","/v1/accounts:delete",t)}async function ey(e,t){return ec(e,"POST","/v1/accounts:lookup",t)}function e_(e){if(e)try{let t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}async function ev(e,t=!1){let i=(0,W.getModularInstance)(e),r=await i.getIdToken(t),n=eb(r);Z(n&&n.exp&&n.auth_time&&n.iat,i.auth,"internal-error");let s="object"==typeof n.firebase?n.firebase:void 0,a=s?.sign_in_provider;return{claims:n,token:r,authTime:e_(eI(n.auth_time)),issuedAtTime:e_(eI(n.iat)),expirationTime:e_(eI(n.exp)),signInProvider:a||null,signInSecondFactor:s?.sign_in_second_factor||null}}function eI(e){return 1e3*Number(e)}function eb(e){let[t,i,r]=e.split(".");if(void 0===t||void 0===i||void 0===r)return K("JWT malformed, contained fewer than 3 sections"),null;try{let e=(0,W.base64Decode)(i);if(!e)return K("Failed to decode base64 JWT payload"),null;return JSON.parse(e)}catch(e){return K("Caught error parsing JWT payload as JSON",e?.toString()),null}}function eE(e){let t=eb(e);return Z(t,"internal-error"),Z(void 0!==t.exp,"internal-error"),Z(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function eC(e,t,i=!1){if(i)return t;try{return await t}catch(t){throw t instanceof W.FirebaseError&&function({code:e}){return"auth/user-disabled"===e||"auth/user-token-expired"===e}(t)&&e.auth.currentUser===e&&await e.auth.signOut(),t}}class eT{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,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(e){if(!e)return this.errorBackoff=3e4,Math.max(0,(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5);{let e=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),e}}schedule(e=!1){if(!this.isRunning)return;let t=this.getInterval(e);this.timerId=setTimeout(async()=>{await this.iteration()},t)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){e?.code==="auth/network-request-failed"&&this.schedule(!0);return}this.schedule()}}class eS{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=e_(this.lastLoginAt),this.creationTime=e_(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function ek(e){var t,i;let r=e.auth,n=await e.getIdToken(),s=await eC(e,ey(r,{idToken:n}));Z(s?.users.length,r,"internal-error");let a=s.users[0];e._notifyReloadListener(a);let o=a.providerUserInfo?.length?eR(a.providerUserInfo):[],c=(t=e.providerData,i=o,[...t.filter(e=>!i.some(t=>t.providerId===e.providerId)),...i]),l=e.isAnonymous,h=!(e.email&&a.passwordHash)&&!c?.length;Object.assign(e,{uid:a.localId,displayName:a.displayName||null,photoURL:a.photoUrl||null,email:a.email||null,emailVerified:a.emailVerified||!1,phoneNumber:a.phoneNumber||null,tenantId:a.tenantId||null,providerData:c,metadata:new eS(a.createdAt,a.lastLoginAt),isAnonymous:!!l&&h})}async function eA(e){let t=(0,W.getModularInstance)(e);await ek(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}function eR(e){return e.map(({providerId:e,...t})=>
15({providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}))}async function eP(e,t){let i=await el(e,{},async()=>{let i=(0,W.querystring)({grant_type:"refresh_token",refresh_token:t}).slice(1),{tokenApiHost:r,apiKey:n}=e.config,s=await eu(e,r,"/v1/token",`key=${n}`),a=await e._getAdditionalHeaders();a["Content-Type"]="application/x-www-form-urlencoded";let o={method:"POST",headers:a,body:i};return e.emulatorConfig&&(0,W.isCloudWorkstation)(e.emulatorConfig.host)&&(o.credentials="include"),er.fetch()(s,o)});return{accessToken:i.access_token,expiresIn:i.expires_in,refreshToken:i.refresh_token}}async function eO(e,t){return ec(e,"POST","/v2/accounts:revokeToken",eo(e,t))}class eN{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){Z(e.idToken,"internal-error"),Z(void 0!==e.idToken,"internal-error"),Z(void 0!==e.refreshToken,"internal-error");let t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):eE(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){Z(0!==e.length,"internal-error");let t=eE(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(Z(this.refreshToken,e,"user-token-expired"),this.refreshToken)?(await this.refresh(e,this.refreshToken),this.accessToken):null:this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){let{accessToken:i,refreshToken:r,expiresIn:n}=await eP(e,t);this.updateTokensAndExpiration(i,r,Number(n))}updateTokensAndExpiration(e,t,i){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*i}static fromJSON(e,t){let{refreshToken:i,accessToken:r,expirationTime:n}=t,s=new eN;return i&&(Z("string"==typeof i,"internal-error",{appName:e}),s.refreshToken=i),r&&(Z("string"==typeof r,"internal-error",{appName:e}),s.accessToken=r),n&&(Z("number"==typeof n,"internal-error",{appName:e}),s.expirationTime=n),s}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 eN,this.toJSON())}_performRefresh(){return ee("not implemented")}}function eD(e,t){Z("string"==typeof e||void 0===e,"internal-error",{appName:t})}class eM{constructor({uid:e,auth:t,stsTokenManager:i,...r}){this.providerId="firebase",this.proactiveRefresh=new eT(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=i,this.accessToken=i.accessToken,this.displayName=r.displayName||null,this.email=r.email||null,this.emailVerified=r.emailVerified||!1,this.phoneNumber=r.phoneNumber||null,this.photoURL=r.photoURL||null,this.isAnonymous=r.isAnonymous||!1,this.tenantId=r.tenantId||null,this.providerData=r.providerData?[...r.providerData]:[],this.metadata=new eS(r.createdAt||void 0,r.lastLoginAt||void 0)}async getIdToken(e){let t=await eC(this,this.stsTokenManager.getToken(this.auth,e));return Z(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return ev(this,e)}reload(){return eA(this)}_assign(e){this!==e&&(Z(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(e=>({...e})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){let t=new eM({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return t.metadata._copy(this.metadata),t}_onReload(e){Z(!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,t=!1){let i=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),i=!0),t&&await ek(this),await this.auth._persistUserIfCurrent(this),i&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(S(this.auth.app))return Promise.reject(X(this.auth));let e=await this.getIdToken();return await eC(this,ew(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,isA
15nonymous: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,t){let i=t.displayName??void 0,r=t.email??void 0,n=t.phoneNumber??void 0,s=t.photoURL??void 0,a=t.tenantId??void 0,o=t._redirectEventId??void 0,c=t.createdAt??void 0,l=t.lastLoginAt??void 0,{uid:h,emailVerified:u,isAnonymous:d,providerData:p,stsTokenManager:f}=t;Z(h&&f,e,"internal-error");let g=eN.fromJSON(this.name,f);Z("string"==typeof h,e,"internal-error"),eD(i,e.name),eD(r,e.name),Z("boolean"==typeof u,e,"internal-error"),Z("boolean"==typeof d,e,"internal-error"),eD(n,e.name),eD(s,e.name),eD(a,e.name),eD(o,e.name),eD(c,e.name),eD(l,e.name);let m=new eM({uid:h,auth:e,email:r,emailVerified:u,displayName:i,isAnonymous:d,photoURL:s,phoneNumber:n,tenantId:a,stsTokenManager:g,createdAt:c,lastLoginAt:l});return p&&Array.isArray(p)&&(m.providerData=p.map(e=>({...e}))),o&&(m._redirectEventId=o),m}static async _fromIdTokenResponse(e,t,i=!1){let r=new eN;r.updateFromServerResponse(t);let n=new eM({uid:t.localId,auth:e,stsTokenManager:r,isAnonymous:i});return await ek(n),n}static async _fromGetAccountInfoResponse(e,t,i){let r=t.users[0];Z(void 0!==r.localId,"internal-error");let n=void 0!==r.providerUserInfo?eR(r.providerUserInfo):[],s=!(r.email&&r.passwordHash)&&!n?.length,a=new eN;a.updateFromIdToken(i);let o=new eM({uid:r.localId,auth:e,stsTokenManager:a,isAnonymous:s});return Object.assign(o,{uid:r.localId,displayName:r.displayName||null,photoURL:r.photoUrl||null,email:r.email||null,emailVerified:r.emailVerified||!1,phoneNumber:r.phoneNumber||null,tenantId:r.tenantId||null,providerData:n,metadata:new eS(r.createdAt,r.lastLoginAt),isAnonymous:!(r.email&&r.passwordHash)&&!n?.length}),o}}let eL=new Map;function eF(e){e instanceof Function||ee("Expected a class definition");let t=eL.get(e);return t?(t instanceof e||ee("Instance stored in cache mismatched with class"),t):(t=new e,eL.set(e,t),t)}class eU{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){let t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}function ex(e,t,i){return`firebase:${e}:${t}:${i}`}eU.type="NONE";class eB{constructor(e,t,i){this.persistence=e,this.auth=t,this.userKey=i;const{config:r,name:n}=this.auth;this.fullUserKey=ex(this.userKey,r.apiKey,n),this.fullPersistenceKey=ex("persistence",r.apiKey,n),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){let e=await this.persistence._get(this.fullUserKey);if(!e)return null;if("string"==typeof e){let t=await ey(this.auth,{idToken:e}).catch(()=>void 0);return t?eM._fromGetAccountInfoResponse(this.auth,t,e):null}return eM._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;let t=await this.getCurrentUser();if(await this.removeCurrentUser(),this.persistence=e,t)return this.setCurrentUser(t)}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,i="authUser"){if(!t.length)return new eB(eF(eU),e,i);let r=(await Promise.all(t.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e),n=r[0]||eF(eU),s=ex(i,e.config.apiKey,e.name),a=null;for(let i of t)try{let t=await i._get(s);if(t){let r;if("string"==typeof t){let i=await ey(e,{idToken:t}).catch(()=>void 0);if(!i)break;r=await eM._fromGetAccountInfoResponse(e,i,t)}else r=eM._fromJSON(e,t);i!==n&&(a=r),n=i;break}}catch{}let o=r.filter(e=>e._shouldAllowMigration);return n._shouldAllowMigration&&o.length&&(n=o[0],a&&await n._set(s,a.toJSON()),await Promise.all(t.map(async e=>{if(e!==n)try{await e._remove(s)}catch{}}))),new eB(n,e,i)}}function eV(e){let t=e.toLowerCase();if(t.includes("opera/")||t.includes("opr/")||t.includes("opios/"))return"Opera";{if(function(e=(0,W.getUA)()){return/iemobile/i.test(e)}(t))return"IEMobile";if(t.includes("msie")||t.includes("trident/"))return"IE";if(t.includes("edge/"))return"Edge";if(function(e=(0,W.getUA)()){return/firefox\//i.test(e)}(t))return"Firefox";if(t.includes("silk/"))return"Silk";if(function(e=(0,W.getUA)()){return/blackberry/i.test(e)}(t))return"Blackberry";if(function(e=(0,W.getUA)()){return/webos/i.test(e)}(t))return"Webos";if(function(e=(0,W.getUA)()){let t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}(t))return"Safari";if((t.includes("chrome/")||function(e=(0,W.getUA)()){return/crios\//i.test(e)}(t))&&!t.includes("edge/"))return"Chrome";if(function(e=(0,W.getUA)()){return/android/i.test(e)}(t))return"Android";let i=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/);if(i?.length===2)return i[1]}return"Other"}function eH(e,t=[]){let i;switch(e){case"Browser":i=eV((0,W.getUA)());break;case"Worker":i=`${eV((0,W.getUA)())}-${e}`;break;default:i=e}let r=t.length?t.join(","):"FirebaseCore-web";return`${i}/JsCore/${R}/${r}`}class ej{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){let i=t=>new Promise((i,r)=>{try{let r=e(t);i(r)}catch(e){r(e)}});i.onAbort=t,this.queue.push(i);let r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;let t=[];try{for(let i of this.queue)await i(e),i.onAbort&&t.push(i.onAbort)}catch(e){for(let e of(t.reverse(),t))try{e()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:e?.message})}}}async function eW(e,t={}){return ec(e,"GET","/v2/passwordPolicy",eo(e,t))}class e${constructor(e){const t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??6,t.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=t.maxPasswordLength),void 0!==t.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=t.containsLowercaseCharacter),void 0!==t.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=t.containsUppercaseCharacter),void 0!==t.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=t.containsNumericCharacter),void 0!==t.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=t.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=e.allowedNonAlphanumericCharacters?.join("")??"",this.forceUpgradeOnSignin=e.forceUpgradeOnSignin??!1,this.schemaVersion=e.schemaVersion}validatePassword(e){let t={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,t),this.validatePasswordCharacterOptions(e,t),t.isValid&&
15(t.isValid=t.meetsMinPasswordLength??!0),t.isValid&&(t.isValid=t.meetsMaxPasswordLength??!0),t.isValid&&(t.isValid=t.containsLowercaseLetter??!0),t.isValid&&(t.isValid=t.containsUppercaseLetter??!0),t.isValid&&(t.isValid=t.containsNumericCharacter??!0),t.isValid&&(t.isValid=t.containsNonAlphanumericCharacter??!0),t}validatePasswordLengthOptions(e,t){let i=this.customStrengthOptions.minPasswordLength,r=this.customStrengthOptions.maxPasswordLength;i&&(t.meetsMinPasswordLength=e.length>=i),r&&(t.meetsMaxPasswordLength=e.length<=r)}validatePasswordCharacterOptions(e,t){let i;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let r=0;r<e.length;r++)i=e.charAt(r),this.updatePasswordCharacterOptionsStatuses(t,i>="a"&&i<="z",i>="A"&&i<="Z",i>="0"&&i<="9",this.allowedNonAlphanumericCharacters.includes(i))}updatePasswordCharacterOptionsStatuses(e,t,i,r,n){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=t)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=i)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=r)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=n))}}class ez{constructor(e,t,i,r){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=i,this.config=r,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new eK(this),this.idTokenSubscription=new eK(this),this.beforeStateQueue=new ej(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=z,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=r.sdkClientVersion,this._persistenceManagerAvailable=new Promise(e=>this._resolvePersistenceManagerAvailable=e)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=eF(t)),this._initializationPromise=this.queue(async()=>{if(!this._deleted){if(this.persistenceManager=await eB.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(t),this.lastNotifiedUid=this.currentUser?.uid||null,this._deleted||(this._isInitialized=!0)}}}),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;let 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{let t=await ey(this,{idToken:e}),i=await eM._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(i)}catch(e){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(S(this.app)){let e=this.app.settings.authIdToken;return e?new Promise(t=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(e).then(t,t))}):this.directlySetCurrentUser(null)}let t=await this.assertedPersistence.getCurrentUser(),i=t,r=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();let t=this.redirectUser?._redirectEventId,n=i?._redirectEventId,s=await this.tryRedirectSignIn(e);(!t||t===n)&&s?.user&&(i=s.user,r=!0)}if(!i)return this.directlySetCurrentUser(null);if(!i._redirectEventId){if(r)try{await this.beforeStateQueue.runMiddleware(i)}catch(e){i=t,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(e))}return i?this.reloadAndSetCurrentUserOrClear(i):this.directlySetCurrentUser(null)}
15return(Z(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===i._redirectEventId)?this.directlySetCurrentUser(i):this.reloadAndSetCurrentUserOrClear(i)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await ek(e)}catch(e){if(e?.code!=="auth/network-request-failed")return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("u"<typeof navigator)return null;let e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(e){if(S(this.app))return Promise.reject(X(this));let t=e?(0,W.getModularInstance)(e):null;return t&&Z(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&Z(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return S(this.app)?Promise.reject(X(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return S(this.app)?Promise.reject(X(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(eF(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();let t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){let e=new e$(await eW(this));null===this.tenantId?this._projectPasswordPolicy=e:this._tenantPasswordPolicies[this.tenantId]=e}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new W.ErrorFactory("auth","Firebase",e())}onAuthStateChanged(e,t,i){return this.registerStateListener(this.authStateSubscription,e,t,i)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,i){return this.registerStateListener(this.idTokenSubscription,e,t,i)}authStateReady(){return new Promise((e,t)=>{if(this.currentUser)e();else{let i=this.onAuthStateChanged(()=>{i(),e()},t)}})}async revokeAccessToken(e){if(this.currentUser){let t={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()};null!=this.tenantId&&(t.tenantId=this.tenantId),await eO(this,t)}}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}async _setRedirectUser(e,t){let i=await this.getOrInitRedirectPersistenceManager(t);return null===e?i.removeCurrentUser():i.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){let t=e&&eF(e)||this._popupRedirectResolver;Z(t,this,"argument-error"),this.redirectPersistenceManager=await eB.create(this,[eF(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){return(this._isInitialized&&await this.queue(async()=>{}),this._currentUser?._redirectEventId===e)?this._currentUser:this.redirectUser?._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(){if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);let e=this.currentUser?.uid??null;this.lastNotifiedUid!==e&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,t,i,r){if(this._deleted)return()=>{};let n="function"==typeof t?t:t.next.bind(t),s=!1,a=this._isInitialized?Promise.resolve():this._initializationPromise;if(Z(a,this,"internal-error"),a.then(()=>{s||n(this.currentUser)}),"function"==typeof t){let n=e.addObserver(t,i,r);return()=>{s=!0,n()}}{let i=e.addObserver(t);return()=>{s=!0,i()}}}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 Z(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){!e||this.frameworks.includes(e)||(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=eH(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){let e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);let t=await this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader();t&&(e["X-Firebase-Client"]=t);let i=await this._getAppCheckToken();return i&&(e["X-Firebase-AppCheck"]=i),e}async _getAppCheckToken(){if(S(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;let e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken();return e?.error&&function(e,...t){q.logLevel<=u.LogLevel.WARN&&q.warn(`Auth (${R}): ${e}`,...t)}(`Error while retrieving App Check token: ${e.error}`),e?.token}}function eq(e){return(0,W.getModularInstance)(e)}class eK{constructor(e){this.auth=e,this.observer=null,this.addObserver=(0,W.createSubscribe)(e=>this.observer=e)}get next(){return Z(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let eG={async loadJS(){throw Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};class eJ{constructor(){this.enterprise=new eY}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class eY{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}let eX="NO_RECAPTCHA";class eQ{constructor(e){this.type="recaptcha-enterprise",this.auth=eq(e)}async verify(e="verify",t=!1){async function i(e){if(!t){if(null==e.tenantId&&null!=e._agentRecaptchaConfig)return e._agentRecaptchaConfig.siteKey;if(null!=e.tenantId&&void 0!==e._tenantRecaptchaConfigs[e.tenantId])return e._tenantRecaptchaConfigs[e.tenantId].siteKey}return new Promise(async(t,i)=>
15{em(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(r=>{if(void 0===r.recaptchaKey)i(Error("recaptcha Enterprise site key undefined"));else{let i=new eg(r);return null==e.tenantId?e._agentRecaptchaConfig=i:e._tenantRecaptchaConfigs[e.tenantId]=i,t(i.siteKey)}}).catch(e=>{i(e)})})}function r(t,i,r){let n=window.grecaptcha;ef(n)?n.enterprise.ready(()=>{n.enterprise.execute(t,{action:e}).then(e=>{i(e)}).catch(()=>{i(eX)})}):r(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?new eJ().execute("siteKey",{action:"verify"}):new Promise((e,n)=>{i(this.auth).then(i=>{if(!t&&ef(window.grecaptcha))r(i,e,n);else{var s;if("u"<typeof window)return void n(Error("RecaptchaVerifier is only supported in browser"));let t=eG.recaptchaEnterpriseScript;0!==t.length&&(t+=i),(s=t,eG.loadJS(s)).then(()=>{r(i,e,n)}).catch(e=>{n(e)})}}).catch(e=>{n(e)})})}}async function eZ(e,t,i,r=!1,n=!1){let s,a=new eQ(e);if(n)s=eX;else try{s=await a.verify(i)}catch(e){s=await a.verify(i,!0)}let o={...t};if("mfaSmsEnrollment"===i||"mfaSmsSignIn"===i){if("phoneEnrollmentInfo"in o){let e=o.phoneEnrollmentInfo.phoneNumber,t=o.phoneEnrollmentInfo.recaptchaToken;Object.assign(o,{phoneEnrollmentInfo:{phoneNumber:e,recaptchaToken:t,captchaResponse:s,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}else if("phoneSignInInfo"in o){let e=o.phoneSignInInfo.recaptchaToken;Object.assign(o,{phoneSignInInfo:{recaptchaToken:e,captchaResponse:s,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})}return o}return r?Object.assign(o,{captchaResp:s}):Object.assign(o,{captchaResponse:s}),Object.assign(o,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(o,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),o}async function e0(e,t,i,r,n){if("EMAIL_PASSWORD_PROVIDER"===n)if(!e._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER"))return r(e,t).catch(async n=>{if("auth/missing-recaptcha-token"!==n.code)return Promise.reject(n);{console.log(`${i} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);let n=await eZ(e,t,i,"getOobCode"===i);return r(e,n)}});else{let n=await eZ(e,t,i,"getOobCode"===i);return r(e,n)}if("PHONE_PROVIDER"!==n)return Promise.reject(n+" provider is not supported.");if(e._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")){let n=await eZ(e,t,i);return r(e,n).catch(async n=>{if(e._getRecaptchaConfig()?.getProviderEnforcementState("PHONE_PROVIDER")==="AUDIT"&&("auth/missing-recaptcha-token"===n.code||"auth/invalid-app-credential"===n.code)){console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${i} flow.`);let n=await eZ(e,t,i,!1,!0);return r(e,n)}return Promise.reject(n)})}{let n=await eZ(e,t,i,!1,!0);return r(e,n)}}async function e1(e){let t=eq(e),i=new eg(await em(t,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}));null==t.tenantId?t._agentRecaptchaConfig=i:t._tenantRecaptchaConfigs[t.tenantId]=i,i.isAnyProviderEnabled()&&new eQ(t).verify()}class e6{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return ee("not implemented")}_getIdTokenResponse(e){return ee("not implemented")}_linkToIdToken(e,t){return ee("not implemented")}_getReauthenticationResolver(e){return ee("not implemented")}}async function e3(e,t){return ec(e,"POST","/v1/accounts:signUp",t)}async function e4(e,t){return eh(e,"POST","/v1/accounts:signInWithPassword",eo(e,t))}async function e2(e,t){return eh(e,"POST","/v1/accounts:signInWithEmailLink",eo(e,t))}async function e5(e,t){return eh(e,"POST","/v1/accounts:signInWithEmailLink",eo(e,t))}class e8 extends e6{constructor(e,t,i,r=null){super("password",i),this._email=e,this._password=t,this._tenantId=r}static _fromEmailAndPassword(e,t){return new e8(e,t,"password")}static _fromEmailAndCode(e,t,i=null){return new e8(e,t,"emailLink",i)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){let t="string"==typeof e?JSON.parse(e):e;if(t?.email&&t?.password){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);else if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return e0(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",e4,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return e2(e,{email:this._email,oobCode:this._password});default:G(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return e0(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",e3,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return e5(e,{idToken:t,email:this._email,oobCode:this._password});default:G(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function e7(e,t){return eh(e,"POST","/v1/accounts:signInWithIdp",eo(e,t))}class e9 extends e6{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){let t=new e9(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&
15(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):G("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){let{providerId:t,signInMethod:i,...r}="string"==typeof e?JSON.parse(e):e;if(!t||!i)return null;let n=new e9(t,i);return n.idToken=r.idToken||void 0,n.accessToken=r.accessToken||void 0,n.secret=r.secret,n.nonce=r.nonce,n.pendingToken=r.pendingToken||null,n}_getIdTokenResponse(e){return e7(e,this.buildRequest())}_linkToIdToken(e,t){let i=this.buildRequest();return i.idToken=t,e7(e,i)}_getReauthenticationResolver(e){let t=this.buildRequest();return t.autoCreate=!1,e7(e,t)}buildRequest(){let e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{let t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=(0,W.querystring)(t)}return e}}async function te(e,t){return ec(e,"POST","/v1/accounts:sendVerificationCode",eo(e,t))}async function tt(e,t){return eh(e,"POST","/v1/accounts:signInWithPhoneNumber",eo(e,t))}async function ti(e,t){let i=await eh(e,"POST","/v1/accounts:signInWithPhoneNumber",eo(e,t));if(i.temporaryProof)throw ep(e,"account-exists-with-different-credential",i);return i}let tr={USER_NOT_FOUND:"user-not-found"};async function tn(e,t){return eh(e,"POST","/v1/accounts:signInWithPhoneNumber",eo(e,{...t,operation:"REAUTH"}),tr)}class ts extends e6{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new ts({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new ts({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return tt(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return ti(e,{idToken:t,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return tn(e,this._makeVerificationRequest())}_makeVerificationRequest(){let{temporaryProof:e,phoneNumber:t,verificationId:i,verificationCode:r}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:i,code:r}}toJSON(){let e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){"string"==typeof e&&(e=JSON.parse(e));let{verificationId:t,verificationCode:i,phoneNumber:r,temporaryProof:n}=e;return i||t||r||n?new ts({verificationId:t,verificationCode:i,phoneNumber:r,temporaryProof:n}):null}}class ta{constructor(e){const t=(0,W.querystringDecode)((0,W.extractQuerystring)(e)),i=t.apiKey??null,r=t.oobCode??null,n=function(e){switch(e){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}}(t.mode??null);Z(i&&r&&n,"argument-error"),this.apiKey=i,this.operation=n,this.code=r,this.continueUrl=t.continueUrl??null,this.languageCode=t.lang??null,this.tenantId=t.tenantId??null}static parseLink(e){let t,i,r,n=(i=(t=(0,W.querystringDecode)((0,W.extractQuerystring)(e)).link)?(0,W.querystringDecode)((0,W.extractQuerystring)(t)).deep_link_id:null,((r=(0,W.querystringDecode)((0,W.extractQuerystring)(e)).deep_link_id)?(0,W.querystringDecode)((0,W.extractQuerystring)(r)).link:null)||r||i||t||e);try{return new ta(n)}catch{return null}}}class to{constructor(){this.providerId=to.PROVIDER_ID}static credential(e,t){return e8._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){let i=ta.parseLink(t);return Z(i,"argument-error"),e8._fromEmailAndCode(e,i.code,i.tenantId)}}to.PROVIDER_ID="password",to.EMAIL_PASSWORD_SIGN_IN_METHOD="password",to.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class tc{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 tl extends tc{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class th extends tl{constructor(){super("facebook.com")}static credential(e){return e9._fromParams({providerId:th.PROVIDER_ID,signInMethod:th.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return th.credentialFromTaggedObject(e)}static credentialFromError(e){return th.credentialFromTaggedObject(e.customData||{})}
15static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return th.credential(e.oauthAccessToken)}catch{return null}}}th.FACEBOOK_SIGN_IN_METHOD="facebook.com",th.PROVIDER_ID="facebook.com";class tu extends tl{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return e9._fromParams({providerId:tu.PROVIDER_ID,signInMethod:tu.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return tu.credentialFromTaggedObject(e)}static credentialFromError(e){return tu.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthIdToken:t,oauthAccessToken:i}=e;if(!t&&!i)return null;try{return tu.credential(t,i)}catch{return null}}}tu.GOOGLE_SIGN_IN_METHOD="google.com",tu.PROVIDER_ID="google.com";class td extends tl{constructor(){super("github.com")}static credential(e){return e9._fromParams({providerId:td.PROVIDER_ID,signInMethod:td.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return td.credentialFromTaggedObject(e)}static credentialFromError(e){return td.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e)||!e.oauthAccessToken)return null;try{return td.credential(e.oauthAccessToken)}catch{return null}}}td.GITHUB_SIGN_IN_METHOD="github.com",td.PROVIDER_ID="github.com";class tp extends tl{constructor(){super("twitter.com")}static credential(e,t){return e9._fromParams({providerId:tp.PROVIDER_ID,signInMethod:tp.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return tp.credentialFromTaggedObject(e)}static credentialFromError(e){return tp.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{oauthAccessToken:t,oauthTokenSecret:i}=e;if(!t||!i)return null;try{return tp.credential(t,i)}catch{return null}}}tp.TWITTER_SIGN_IN_METHOD="twitter.com",tp.PROVIDER_ID="twitter.com";class tf{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,i,r=!1){return new tf({user:await eM._fromIdTokenResponse(e,i,r),providerId:tg(i),_tokenResponse:i,operationType:t})}static async _forOperation(e,t,i){return await e._updateTokensIfNecessary(i,!0),new tf({user:e,providerId:tg(i),_tokenResponse:i,operationType:t})}}function tg(e){return e.providerId?e.providerId:"phoneNumber"in e?"phone":null}class tm extends W.FirebaseError{constructor(e,t,i,r){super(t.code,t.message),this.operationType=i,this.user=r,Object.setPrototypeOf(this,tm.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:i}}static _fromErrorAndOperation(e,t,i,r){return new tm(e,t,i,r)}}function tw(e,t,i,r){return("reauthenticate"===t?i._getReauthenticationResolver(e):i._getIdTokenResponse(e)).catch(i=>{if("auth/multi-factor-auth-required"===i.code)throw tm._fromErrorAndOperation(e,i,t,r);throw i})}async function ty(e,t,i=!1){let r=await eC(e,t._linkToIdToken(e.auth,await e.getIdToken()),i);return tf._forOperation(e,"link",r)}async function t_(e,t,i=!1){let{auth:r}=e;if(S(r.app))return Promise.reject(X(r));let n="reauthenticate";try{let s=await eC(e,tw(r,n,t,e),i);Z(s.idToken,r,"internal-error");let a=eb(s.idToken);Z(a,r,"internal-error");let{sub:o}=a;return Z(e.uid===o,r,"user-mismatch"),tf._forOperation(e,n,s)}catch(e){throw e?.code==="auth/user-not-found"&&G(r,"user-mismatch"),e}}async function tv(e,t,i=!1){if(S(e.app))return Promise.reject(X(e));let r="signIn",n=await tw(e,r,t),s=await tf._fromIdTokenResponse(e,r,n);return i||await e._updateCurrentUser(s.user),s}function tI(e,t){return ec(e,"POST","/v2/accounts/mfaEnrollment:start",eo(e,t))}new WeakMap;let tb="__sak";class tE{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){let t=this.receivers.find(t=>t.isListeningto(e));if(t)return t;let i=new tE(e);return this.receivers.push(i),i}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let{eventId:t,eventType:i,data:r}=e.data,n=this.handlersMap[i];if(!n?.size)return;e.ports[0].postMessage({status:"ack",eventId:t,eventType:i});let s=Array.from(n).map(async t=>t(e.origin,r)),a=await Promise.all(s.map(async e=>{try{let t=await e;return{fulfilled:!0,value:t}}catch(e){return{fulfilled:!1,reason:e}}}));e.ports[0].postMessage({status:"done",eventId:t,eventType:i,response:a})}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}
15function tC(e="",t=10){let i="";for(let e=0;e<t;e++)i+=Math.floor(10*Math.random());return e+i}tE.receivers=[];class tT{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,t,i=50){let r,n,s="u">typeof MessageChannel?new MessageChannel:null;if(!s)throw Error("connection_unavailable");return new Promise((a,o)=>{let c=tC("",20);s.port1.start();let l=setTimeout(()=>{o(Error("unsupported_event"))},i);n={messageChannel:s,onMessage(e){if(e.data.eventId===c)switch(e.data.status){case"ack":clearTimeout(l),r=setTimeout(()=>{o(Error("timeout"))},3e3);break;case"done":clearTimeout(r),a(e.data.response);break;default:clearTimeout(l),clearTimeout(r),o(Error("invalid_response"))}}},this.handlers.add(n),s.port1.addEventListener("message",n.onMessage),this.target.postMessage({eventType:e,eventId:c,data:t},[s.port2])}).finally(()=>{n&&this.removeMessageHandler(n)})}}function tS(){return void 0!==window.WorkerGlobalScope&&"function"==typeof window.importScripts}async function tk(){if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}}let tA="firebaseLocalStorageDb",tR="firebaseLocalStorage",tP="fbase_key";class tO{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}}function tN(e,t){return e.transaction([tR],t?"readwrite":"readonly").objectStore(tR)}function tD(){let e=indexedDB.open(tA,1);return new Promise((t,i)=>{e.addEventListener("error",()=>{i(e.error)}),e.addEventListener("upgradeneeded",()=>{let t=e.result;try{t.createObjectStore(tR,{keyPath:tP})}catch(e){i(e)}}),e.addEventListener("success",async()=>{let i=e.result;i.objectStoreNames.contains(tR)?t(i):(i.close(),await new tO(indexedDB.deleteDatabase(tA)).toPromise(),t(await tD()))})})}async function tM(e,t,i){return new tO(tN(e,!0).put({[tP]:t,value:i})).toPromise()}async function tL(e,t){let i=tN(e,!1).get(t),r=await new tO(i).toPromise();return void 0===r?null:r.value}function tF(e,t){return new tO(tN(e,!0).delete(t)).toPromise()}class tU{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=await tD()),this.db}async _withRetries(e){let t=0;for(;;)try{let t=await this._openDb();return await e(t)}catch(e){if(t++>3)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return tS()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=tE._getInstance(tS()?self:null),this.receiver._subscribe("keyChanged",async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)})),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){if(this.activeServiceWorker=await tk(),!this.activeServiceWorker)return;this.sender=new tT(this.activeServiceWorker);let e=await this.sender._send("ping",{},800);e&&e[0]?.fulfilled&&e[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){if(this.sender&&this.activeServiceWorker&&(navigator?.serviceWorker?.controller||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch{}}async _isAvailable(){try{if(!indexedDB)return!1;let e=await tD();return await tM(e,tb,"1"),await tF(e,tb),!0}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,t){return this._withPendingWrite(async()=>(await this._withRetries(i=>tM(i,e,t)),this.localCache[e]=t,this.notifyServiceWorker(e)))}async _get(e){let t=await this._withRetries(t=>tL(t,e));return this.localCache[e]=t,t}async _remove(e){return this._withPendingWrite(async()=>(await this._withRetries(t=>tF(t,e)),delete this.localCache[e],this.notifyServiceWorker(e)))}async _poll(){let e=await this._withRetries(e=>new tO(tN(e,!1).getAll()).toPromise());if(!e||0!==this.pendingWrites)return[];let t=[],i=new Set;if(0!==e.length)for(let{fbase_key:r,value:n}of e)i.add(r),JSON.stringify(this.localCache[r])!==JSON.stringify(n)&&(this.notifyListeners(r,n),t.push(r));for(let e of Object.keys(this.localCache))this.localCache[e]&&!i.has(e)&&(this.notifyListeners(e,null),t.push(e));return t}notifyListeners(e,t){this.localCache[e]=t;let i=this.listeners[e];if(i)for(let e of Array.from(i))e(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&this.stopPolling()}}function tx(e,t){return ec(e,"POST","/v2/accounts/mfaSignIn:start",eo(e,t))}tU.type="LOCAL",new ei(3e4,6e4);let tB="recaptcha";async function tV(e,t,i){if(!e._getRecaptchaConfig())try{await e1(e)}catch(e){console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}try{let r;if(r="string"==typeof t?{phoneNumber:t}
15:t,"session"in r){let t=r.session;if("phoneNumber"in r){Z("enroll"===t.type,e,"internal-error");let n={idToken:t.credential,phoneEnrollmentInfo:{phoneNumber:r.phoneNumber,clientType:"CLIENT_TYPE_WEB"}},s=async(e,t)=>{if(t.phoneEnrollmentInfo.captchaResponse===eX){Z(i?.type===tB,e,"argument-error");let r=await tH(e,t,i);return tI(e,r)}return tI(e,t)},a=e0(e,n,"mfaSmsEnrollment",s,"PHONE_PROVIDER");return(await a.catch(e=>Promise.reject(e))).phoneSessionInfo.sessionInfo}{Z("signin"===t.type,e,"internal-error");let n=r.multiFactorHint?.uid||r.multiFactorUid;Z(n,e,"missing-multi-factor-info");let s={mfaPendingCredential:t.credential,mfaEnrollmentId:n,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}},a=async(e,t)=>{if(t.phoneSignInInfo.captchaResponse===eX){Z(i?.type===tB,e,"argument-error");let r=await tH(e,t,i);return tx(e,r)}return tx(e,t)},o=e0(e,s,"mfaSmsSignIn",a,"PHONE_PROVIDER");return(await o.catch(e=>Promise.reject(e))).phoneResponseInfo.sessionInfo}}{let t={phoneNumber:r.phoneNumber,clientType:"CLIENT_TYPE_WEB"},n=async(e,t)=>{if(t.captchaResponse===eX){Z(i?.type===tB,e,"argument-error");let r=await tH(e,t,i);return te(e,r)}return te(e,t)},s=e0(e,t,"sendVerificationCode",n,"PHONE_PROVIDER");return(await s.catch(e=>Promise.reject(e))).sessionInfo}}finally{i?._reset()}}async function tH(e,t,i){Z(i.type===tB,e,"argument-error");let r=await i.verify();Z("string"==typeof r,e,"argument-error");let n={...t};if("phoneEnrollmentInfo"in n){let e=n.phoneEnrollmentInfo.phoneNumber,t=n.phoneEnrollmentInfo.captchaResponse,i=n.phoneEnrollmentInfo.clientType,s=n.phoneEnrollmentInfo.recaptchaVersion;return Object.assign(n,{phoneEnrollmentInfo:{phoneNumber:e,recaptchaToken:r,captchaResponse:t,clientType:i,recaptchaVersion:s}}),n}if(!("phoneSignInInfo"in n))return Object.assign(n,{recaptchaToken:r}),n;{let e=n.phoneSignInInfo.captchaResponse,t=n.phoneSignInInfo.clientType,i=n.phoneSignInInfo.recaptchaVersion;return Object.assign(n,{phoneSignInInfo:{recaptchaToken:r,captchaResponse:e,clientType:t,recaptchaVersion:i}}),n}}class tj{constructor(e){this.providerId=tj.PROVIDER_ID,this.auth=eq(e)}verifyPhoneNumber(e,t){return tV(this.auth,e,(0,W.getModularInstance)(t))}static credential(e,t){return ts._fromVerification(e,t)}static credentialFromResult(e){return tj.credentialFromTaggedObject(e)}static credentialFromError(e){return tj.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;let{phoneNumber:t,temporaryProof:i}=e;return t&&i?ts._fromTokenResponse(t,i):null}}tj.PROVIDER_ID="phone",tj.PHONE_SIGN_IN_METHOD="phone";class tW extends e6{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return e7(e,this._buildIdpRequest())}_linkToIdToken(e,t){return e7(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return e7(e,this._buildIdpRequest())}_buildIdpRequest(e){let t={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&&(t.idToken=e),t}}function t$(e){return tv(e.auth,new tW(e),e.bypassAuthState)}function tz(e){let{auth:t,user:i}=e;return Z(i,t,"internal-error"),t_(i,new tW(e),e.bypassAuthState)}async function tq(e){let{auth:t,user:i}=e;return Z(i,t,"internal-error"),ty(i,new tW(e),e.bypassAuthState)}class tK{constructor(e,t,i,r,n=!1){this.auth=e,this.resolver=i,this.user=r,this.bypassAuthState=n,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise(async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}})}async onAuthEvent(e){let{urlResponse:t,sessionId:i,postBody:r,tenantId:n,error:s,type:a}=e;if(s)return void this.reject(s);let o={auth:this.auth,requestUri:t,sessionId:i,tenantId:n||void 0,postBody:r||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(o))}catch(e){this.reject(e)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return t$;case"linkViaPopup":case"linkViaRedirect":return tq;case"reauthViaPopup":case"reauthViaRedirect":return tz;default:G(this.auth,"internal-error")}}resolve(e){var t;t=this.pendingPromise,t||ee("Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){var t;t=this.pendingPromise,t||ee("Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}
15let tG=new ei(2e3,1e4);class tJ extends tK{constructor(e,t,i,r,n){super(e,t,r,n),this.provider=i,this.authWindow=null,this.pollId=null,tJ.currentPopupAction&&tJ.currentPopupAction.cancel(),tJ.currentPopupAction=this}async executeNotNull(){let e=await this.execute();return Z(e,this.auth,"internal-error"),e}async onExecution(){var e;e=1===this.filter.length,e||ee("Popup operations only handle one event");let t=tC();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],t),this.authWindow.associatedEvent=t,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(J(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(J(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,tJ.currentPopupAction=null}pollUserCancellation(){let e=()=>{if(this.authWindow?.window?.closed){this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(J(this.auth,"popup-closed-by-user"))},8e3);return}this.pollId=window.setTimeout(e,tG.get())};e()}}tJ.currentPopupAction=null,new ei(3e4,6e4),new ei(5e3,15e3),encodeURIComponent("fac");var tY="@firebase/auth",tX="1.12.0";class tQ{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.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;let t=this.auth.onIdTokenChanged(t=>{e(t?.stsTokenManager.accessToken||null)});this.internalListeners.set(e,t),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();let t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){Z(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}(0,W.getExperimentalSetting)("authIdTokenMaxAge"),eG={loadJS:e=>new Promise((t,i)=>{let r=document.createElement("script");r.setAttribute("src",e),r.onload=t,r.onerror=e=>{let t=J("internal-error");t.customData=e,i(t)},r.type="text/javascript",r.charset="UTF-8",(document.getElementsByTagName("head")?.[0]??document).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="},l="Browser",C(new h.Component("auth",(e,{options:t})=>{let i,r,n=e.getProvider("app").getImmediate(),s=e.getProvider("heartbeat"),a=e.getProvider("app-check-internal"),{apiKey:o,authDomain:c}=n.options;Z(o&&!o.includes(":"),"invalid-api-key",{appName:n.name});let h=new ez(n,s,a,{apiKey:o,authDomain:c,clientPlatform:l,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:eH(l)});return r=(Array.isArray(i=t?.persistence||[])?i:[i]).map(eF),t?.errorMap&&h._updateErrorMap(t.errorMap),h._initializeWithPersistence(r,t?.popupRedirectResolver),h},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,i)=>{e.getProvider("auth-internal").initialize()}
15)),C(new h.Component("auth-internal",e=>new tQ(eq(e.getProvider("auth").getImmediate())),"PRIVATE").setInstantiationMode("EXPLICIT")),N(tY,tX,function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}(l)),N(tY,tX,"esm2020");let tZ="@firebase/installations",t0="0.6.19",t1=`w:${t0}`,t6="FIS_v2",t3=new d.ErrorFactory("installations","Installations",{"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."});function t4(e){return e instanceof d.FirebaseError&&e.code.includes("request-failed")}function t2({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function t5(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function t8(e,t){let i=(await t.json()).error;return t3.create("request-failed",{requestName:e,serverCode:i.code,serverMessage:i.message,serverStatus:i.status})}function t7({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}async function t9(e){let t=await e();return t.status>=500&&t.status<600?e():t}async function ie({appConfig:e,heartbeatServiceProvider:t},{fid:i}){let r=t2(e),n=t7(e),s=t.getImmediate({optional:!0});if(s){let e=await s.getHeartbeatsHeader();e&&n.append("x-firebase-client",e)}let a={method:"POST",headers:n,body:JSON.stringify({fid:i,authVersion:t6,appId:e.appId,sdkVersion:t1})},o=await t9(()=>fetch(r,a));if(o.ok){let e=await o.json();return{fid:e.fid||i,registrationStatus:2,refreshToken:e.refreshToken,authToken:t5(e.authToken)}}throw await t8("Create Installation",o)}function it(e){return new Promise(t=>{setTimeout(t,e)})}let ii=/^[cdef][\w-]{21}$/;function ir(e){return`${e.appName}!${e.appId}`}let is=new Map;function ia(e,t){var i,r;let n,s=ir(e);io(s,t),i=s,r=t,(n=(!ic&&"BroadcastChannel"in self&&((ic=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{io(e.data.key,e.data.fid)}),ic))&&n.postMessage({key:i,fid:r}),0===is.size&&ic&&(ic.close(),ic=null)}function io(e,t){let i=is.get(e);if(i)for(let e of i)e(t)}let ic=null,il="firebase-installations-store",ih=null;function iu(){return ih||(ih=(0,p.openDB)("firebase-installations-database",1,{upgrade:(e,t)=>{0===t&&e.createObjectStore(il)}})),ih}async function id(e,t){let i=ir(e),r=(await iu()).transaction(il,"readwrite"),n=r.objectStore(il),s=await n.get(i);return await n.put(t,i),await r.done,s&&s.fid===t.fid||ia(e,t.fid),t}async function ip(e){let t=ir(e),i=(await iu()).transaction(il,"readwrite");await i.objectStore(il).delete(t),await i.done}async function ig(e,t){let i=ir(e),r=(await iu()).transaction(il,"readwrite"),n=r.objectStore(il),s=await n.get(i),a=t(s);return void 0===a?await n.delete(i):await n.put(a,i),await r.done,a&&(!s||s.fid!==a.fid)&&ia(e,a.fid),a}async function im(e){let t,i=await ig(e.appConfig,i=>{let r=function(e,t){if(0===t.registrationStatus){if(!navigator.onLine)return{installationEntry:t,registrationPromise:Promise.reject(t3.create("app-offline"))};let i={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=iw(e,i);return{installationEntry:i,registrationPromise:r}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:iy(e)}:{installationEntry:t}}(e,iv(i||{fid:function(){try{var e;let t=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(t),t[0]=112+t[0]%16;let i=(e=t,btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_").substr(0,22));return ii.test(i)?i:""}catch{return""}}(),registrationStatus:0}));return t=r.registrationPromise,r.installationEntry});return""===i.fid?{installationEntry:await t}:{installationEntry:i,registrationPromise:t}}async function iw(e,t){try{let i=await ie(e,t);return id(e.appConfig,i)}catch(i){throw t4(i)&&409===i.customData.serverCode?await ip(e.appConfig):await id(e.appConfig,{fid:t.fid,registrationStatus:0}),i}}async function iy(e){let t=await i_(e.appConfig);for(;1===t.registrationStatus;)await it(100),t=await i_(e.appConfig);if(0===t.registrationStatus){let{installationEntry:t,registrationPromise:i}=await im(e);return i||t}return t}function i_(e){return ig(e,e=>{if(!e)throw t3.create("installation-not-found");return iv(e)})}function iv(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+1e4<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function iI({appConfig:e,heartbeatServiceProvider:t},i){let r=function(e,{fid:t}){return`${t2(e)}/${t}/authTokens:generate`}(e,i),n=function(e,{refreshToken:t}){var i;let r=t7(e);return r.append("Authorization",(i=t,`${t6} ${i}`)),r}(e,i),s=t.getImmediate({optional:!0});if(s){let e=await s.getHeartbeatsHeader();e&&n.append("x-firebase-client",e)}let a={method:"POST",headers:n,body:JSON.stringify({installation:{sdkVersion:t1,appId:e.appId}})},o=await t9(()=>fetch(r,a));if(o.ok)return t5(await o.json());throw await t8("Generate Auth Token",o)}
15async function ib(e,t=!1){let i,r=await ig(e.appConfig,r=>{var n,s,a;let o;if(!iS(r))throw t3.create("not-registered");let c=r.authToken;if(!t&&2===(n=c).requestStatus&&(s=n,!((o=Date.now())<s.creationTime)&&!(s.creationTime+s.expiresIn<o+36e5)))return r;if(1===c.requestStatus)return i=iE(e,t),r;{let t;if(!navigator.onLine)throw t3.create("app-offline");let n=(a=r,t={requestStatus:1,requestTime:Date.now()},{...a,authToken:t});return i=iT(e,n),n}});return i?await i:r.authToken}async function iE(e,t){let i=await iC(e.appConfig);for(;1===i.authToken.requestStatus;)await it(100),i=await iC(e.appConfig);let r=i.authToken;return 0===r.requestStatus?ib(e,t):r}function iC(e){return ig(e,e=>{var t;if(!iS(e))throw t3.create("not-registered");return 1===(t=e.authToken).requestStatus&&t.requestTime+1e4<Date.now()?{...e,authToken:{requestStatus:0}}:e})}async function iT(e,t){try{let i=await iI(e,t),r={...t,authToken:i};return await id(e.appConfig,r),i}catch(i){if(t4(i)&&(401===i.customData.serverCode||404===i.customData.serverCode))await ip(e.appConfig);else{let i={...t,authToken:{requestStatus:0}};await id(e.appConfig,i)}throw i}}function iS(e){return void 0!==e&&2===e.registrationStatus}async function ik(e){let{installationEntry:t,registrationPromise:i}=await im(e);return i?i.catch(console.error):ib(e).catch(console.error),t.fid}async function iA(e,t=!1){return await iR(e),(await ib(e,t)).token}async function iR(e){let{registrationPromise:t}=await im(e);t&&await t}function iP(e){return t3.create("missing-app-config-values",{valueName:e})}let iO="installations";C(new h.Component(iO,e=>{let t=e.getProvider("app").getImmediate(),i=function(e){if(!e||!e.options)throw iP("App Configuration");if(!e.name)throw iP("App Name");for(let t of["projectId","apiKey","appId"])if(!e.options[t])throw iP(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t),r=T(t,"heartbeat");return{app:t,appConfig:i,heartbeatServiceProvider:r,_delete:()=>Promise.resolve()}},"PUBLIC")),C(new h.Component("installations-internal",e=>{let t=T(e.getProvider("app").getImmediate(),iO).getImmediate();return{getId:()=>ik(t),getToken:e=>iA(t,e)}},"PRIVATE")),N(tZ,t0),N(tZ,t0,"esm2020");let iN="@firebase/remote-config",iD="0.8.0";class iM{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}let iL="remote-config",iF=new d.ErrorFactory("remoteconfig","Remote Config",{"already-initialized":"Remote Config already initialized","registration-window":"Undefined window object. This SDK only supports usage in a browser environment.","registration-project-id":"Undefined project identifier. Check Firebase app initialization.","registration-api-key":"Undefined API key. Check Firebase app initialization.","registration-app-id":"Undefined app identifier. Check Firebase app initialization.","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}.","storage-delete":"Error thrown when deleting from storage. Original error: {$originalErrorMessage}.","fetch-client-network":"Fetch client failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-timeout":'The config fetch request timed out. Configure timeout using "fetchTimeoutMillis" SDK setting.',"fetch-throttle":'The config fetch request timed out while in an exponential backoff state. Configure timeout using "fetchTimeoutMillis" SDK setting. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.',"fetch-client-parse":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","indexed-db-unavailable":"Indexed DB is not supported by current browser","custom-signal-max-allowed-signals":"Setting more than {$maxSignals} custom signals is not supported.","stream-error":"The stream was not able to connect to the backend: {$originalErrorMessage}.","realtime-unavailable":"The Realtime service is unavailable: {$originalErrorMessage}","update-message-invalid":"The stream invalidation message was unparsable: {$originalErrorMessage}","update-not-fetched":"Unable to fetch the latest config: {$originalErrorMessage}","analytics-unavailable":"Connection to Firebase Analytics failed: {$originalErrorMessage}"}),iU=["1","true","t","yes","y","on"];class ix{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&iU.indexOf(this._value.toLowerCase())>=0}asNumber(){if("static"===this._source)return 0;let e=Number(this._value);return isNaN(e)&&(e=0),e}getSource(){return this._source}}class iB{constructor(e){this.storage=e._storage,this.logger=e._logger,this.analyticsProvider=e._analyticsProvider}async updateActiveExperiments(e){let t=await this.storage.getActiveExperiments()||new Set,i=this.createExperimentInfoMap(e);return this.addActiveExperiments(i),this.removeInactiveExperiments(t,i),this.storage.setActiveExperiments(new Set(i.keys()))}createExperimentInfoMap(e){let t=new Map;for(let i of e)t.set(i.experimentId,i);return t}addActiveExperiments(e){let t={};for(let[i,r]of e.entries())t[`firebase${i}`]=r.variantId;this.addExperimentToAnalytics(t)}removeInactiveExperiments(e,t){let i={};for(let r of e)t.has(r)||(i[`firebase${r}`]=null);this.addExperimentToAnalytics(i)}addExperimentToAnalytics(e){if(0!==Object.keys(e).length)try{let t=this.analyticsProvider.getImmediate({optional:!0});t?(t.setUserProperties(e),t.logEvent("set_firebase_experiment_state")):this.logger.warn("Analytics import failed. Verify if you have imported Firebase Analytics in your app code.")}catch(e){throw iF.create("analytics-unavailable",{originalErrorMessage:e?.message})}}}function iV(e=O(),t={}){let i=T(e=(0,d.getModularInstance)(e),iL);if(i.isInitialized()){let e=i.getOptions();if((0,d.deepEqual)(e,t))return i.getImmediate();throw iF.create("already-initialized")}i.initialize({options:t});let r=i.getImmediate();return t.initialFetchResponse&&(r._initializePromise=Promise.all([r._storage.setLastSuccessfulFetchResponse(t.initialFetchResponse),r._storage.setActiveConfigEtag(t.initialFetchResponse?.eTag||""),r._storage.setActiveConfigTemplateVersion(t.initialFetchResponse.templateVersion||0),r._storageCache.setLastSuccessfulFetchTimestampMillis(Date.now()),r._storageCache.setLastFetchStatus("success"),r._storageCache.setActiveConfig(t.initialFetchResponse?.config||{})]).then(),r._isInitializationComplete=!0),r}async function iH(e){let t=(0,d.getModularInstance)(e),[i,r]=await Promise.all([t._storage.getLastSuccessfulFetchResponse(),t._storage.getActiveConfigEtag()]);if(!i||!i.config||!i.eTag||!i.templateVersion||i.eTag===r)return!1;let n=new iB(t),s=i.experiments?n.updateActiveExperiments(i.experiments):Promise.resolve();return await Promise.all([t._storageCache.setActiveConfig(i.config),t._storage.setActiveConfigEtag(i.eTag),t._storage.setActiveConfigTemplateVersion(i.templateVersion),s]),!0}async function ij(e){let t=(0,d.getModularInstance)(e),i=new iM;setTimeout(async()=>{i.abort()},t.settings.fetchTimeoutMillis);let r=t._storageCache.getCustomSignals();r&&t._logger.debug(`Fetching config with custom signals: ${JSON.stringify(r)}`);try{await t._client.fetch({cacheMaxAgeMillis:t.settings.minimumFetchIntervalMillis,signal:i,customSignals:r}),await t._storageCache.setLastFetchStatus("success")}
15catch(i){let e=i instanceof d.FirebaseError&&-1!==i.code.indexOf("fetch-throttle")?"throttle":"failure";throw await t._storageCache.setLastFetchStatus(e),i}}class iW{constructor(e,t,i,r){this.client=e,this.storage=t,this.storageCache=i,this.logger=r}isCachedDataFresh(e,t){if(!t)return this.logger.debug("Config fetch cache check. Cache unpopulated."),!1;let i=Date.now()-t,r=i<=e;return this.logger.debug(`Config fetch cache check. Cache age millis: ${i}. Cache max age millis (minimumFetchIntervalMillis setting): ${e}. Is cache hit: ${r}.`),r}async fetch(e){let[t,i]=await Promise.all([this.storage.getLastSuccessfulFetchTimestampMillis(),this.storage.getLastSuccessfulFetchResponse()]);if(i&&this.isCachedDataFresh(e.cacheMaxAgeMillis,t))return i;e.eTag=i&&i.eTag;let r=await this.client.fetch(e),n=[this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())];return 200===r.status&&n.push(this.storage.setLastSuccessfulFetchResponse(r)),await Promise.all(n),r}}class i${constructor(e,t,i,r,n,s){this.firebaseInstallations=e,this.sdkVersion=t,this.namespace=i,this.projectId=r,this.apiKey=n,this.appId=s}async fetch(e){let t,i,r,n,s,[a,o]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken()]),c=window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfig.googleapis.com",l=`${c}/v1/projects/${this.projectId}/namespaces/${this.namespace}:fetch?key=${this.apiKey}`,h=fetch(l,{method:"POST",headers:{"Content-Type":"application/json","Content-Encoding":"gzip","If-None-Match":e.eTag||"*"},body:JSON.stringify({sdk_version:this.sdkVersion,app_instance_id:a,app_instance_id_token:o,app_id:this.appId,language_code:function(e=navigator){return e.languages&&e.languages[0]||e.language}(),custom_signals:e.customSignals})}),u=new Promise((t,i)=>{e.signal.addEventListener(()=>{let e=Error("The operation was aborted.");e.name="AbortError",i(e)})});try{await Promise.race([h,u]),t=await h}catch(t){let e="fetch-client-network";throw t?.name==="AbortError"&&(e="fetch-timeout"),iF.create(e,{originalErrorMessage:t?.message})}let d=t.status,p=t.headers.get("ETag")||void 0;if(200===t.status){let e;try{e=await t.json()}catch(e){throw iF.create("fetch-client-parse",{originalErrorMessage:e?.message})}i=e.entries,r=e.state,n=e.templateVersion,s=e.experimentDescriptions}if("INSTANCE_STATE_UNSPECIFIED"===r?d=500:"NO_CHANGE"===r?d=304:("NO_TEMPLATE"===r||"EMPTY_CONFIG"===r)&&(i={},s=[]),304!==d&&200!==d)throw iF.create("fetch-status",{httpStatus:d});return{status:d,eTag:p,config:i,templateVersion:n,experiments:s}}}class iz{constructor(e,t){this.client=e,this.storage=t}async fetch(e){let t=await this.storage.getThrottleMetadata()||{backoffCount:0,throttleEndTimeMillis:Date.now()};return this.attemptFetch(e,t)}async attemptFetch(e,{throttleEndTimeMillis:t,backoffCount:i}){var r;await (r=e.signal,new Promise((e,i)=>{let n=setTimeout(e,Math.max(t-Date.now(),0));r.addEventListener(()=>{clearTimeout(n),i(iF.create("fetch-throttle",{throttleEndTimeMillis:t}))})}));try{let t=await this.client.fetch(e);return await this.storage.deleteThrottleMetadata(),t}catch(r){if(!function(e){if(!(e instanceof d.FirebaseError)||!e.customData)return!1;let t=Number(e.customData.httpStatus);return 429===t||500===t||503===t||504===t}(r))throw r;let t={throttleEndTimeMillis:Date.now()+(0,d.calculateBackoffMillis)(i),backoffCount:i+1};return await this.storage.setThrottleMetadata(t),this.attemptFetch(e,t)}}}class iq{get fetchTimeMillis(){return this._storageCache.getLastSuccessfulFetchTimestampMillis()||-1}get lastFetchStatus(){return this._storageCache.getLastFetchStatus()||"no-fetch-yet"}constructor(e,t,i,r,n,s,a){this.app=e,this._client=t,this._storageCache=i,this._storage=r,this._logger=n,this._realtimeHandler=s,this._analyticsProvider=a,this._isInitializationComplete=!1,this.settings={fetchTimeoutMillis:6e4,minimumFetchIntervalMillis:432e5},this.defaultConfig={}}}function iK(e,t){let i=e.target.error||void 0;return iF.create(t,{originalErrorMessage:i&&i?.message})}let iG="app_namespace_store";class iJ{getLastFetchStatus(){return this.get("last_fetch_status")}setLastFetchStatus(e){return this.set("last_fetch_status",e)}getLastSuccessfulFetchTimestampMillis(){return this.get("last_successful_fetch_timestamp_millis")}setLastSuccessfulFetchTimestampMillis(e){return this.set("last_successful_fetch_timestamp_millis",e)}getLastSuccessfulFetchResponse(){return this.get("last_successful_fetch_response")}setLastSuccessfulFetchResponse(e){return this.set("last_successful_fetch_response",e)}getActiveConfig(){return this.get("active_config")}setActiveConfig(e){return this.set("active_config",e)}getActiveConfigEtag(){return this.get("active_config_etag")}setActiveConfigEtag(e){return this.set("active_config_etag",e)}getActiveExperiments(){return this.get("active_experiments")}setActiveExperiments(e){return this.set("active_experiments",e)}getThrottleMetadata(){return this.get("throttle_metadata")}setThrottleMetadata(e){return this.set("throttle_metadata",e)}deleteThrottleMetadata(){return this.delete("throttle_metadata")}getCustomSignals(){return this.get("custom_signals")}getRealtimeBackoffMetadata(){return this.get("realtime_backoff_metadata")}setRealtimeBackoffMetadata(e){return this.set("realtime_backoff_metadata",e)}getActiveConfigTemplateVersion(){return this.get("last_known_template_version")}setActiveConfigTemplateVersion(e){return this.set("last_known_template_version",e)}}class iY extends iJ{constructor(e,t,i,r=new Promise((e,t)=>
15{try{let i=indexedDB.open("firebase_remote_config",1);i.onerror=e=>{t(iK(e,"storage-open"))},i.onsuccess=t=>{e(t.target.result)},i.onupgradeneeded=e=>{let t=e.target.result;0===e.oldVersion&&t.createObjectStore(iG,{keyPath:"compositeKey"})}}catch(e){t(iF.create("storage-open",{originalErrorMessage:e?.message}))}})){super(),this.appId=e,this.appName=t,this.namespace=i,this.openDbPromise=r}async setCustomSignals(e){let t=(await this.openDbPromise).transaction([iG],"readwrite"),i=iQ(e,await this.getWithTransaction("custom_signals",t)||{});return await this.setWithTransaction("custom_signals",i,t),i}async getWithTransaction(e,t){return new Promise((i,r)=>{let n=t.objectStore(iG),s=this.createCompositeKey(e);try{let e=n.get(s);e.onerror=e=>{r(iK(e,"storage-get"))},e.onsuccess=e=>{let t=e.target.result;t?i(t.value):i(void 0)}}catch(e){r(iF.create("storage-get",{originalErrorMessage:e?.message}))}})}async setWithTransaction(e,t,i){return new Promise((r,n)=>{let s=i.objectStore(iG),a=this.createCompositeKey(e);try{let e=s.put({compositeKey:a,value:t});e.onerror=e=>{n(iK(e,"storage-set"))},e.onsuccess=()=>{r()}}catch(e){n(iF.create("storage-set",{originalErrorMessage:e?.message}))}})}async get(e){let t=(await this.openDbPromise).transaction([iG],"readonly");return this.getWithTransaction(e,t)}async set(e,t){let i=(await this.openDbPromise).transaction([iG],"readwrite");return this.setWithTransaction(e,t,i)}async delete(e){let t=await this.openDbPromise;return new Promise((i,r)=>{let n=t.transaction([iG],"readwrite").objectStore(iG),s=this.createCompositeKey(e);try{let e=n.delete(s);e.onerror=e=>{r(iK(e,"storage-delete"))},e.onsuccess=()=>{i()}}catch(e){r(iF.create("storage-delete",{originalErrorMessage:e?.message}))}})}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class iX extends iJ{constructor(){super(...arguments),this.storage={}}async get(e){return Promise.resolve(this.storage[e])}async set(e,t){return this.storage[e]=t,Promise.resolve(void 0)}async delete(e){return this.storage[e]=void 0,Promise.resolve()}async setCustomSignals(e){let t=this.storage.custom_signals||{};return this.storage.custom_signals=iQ(e,t),Promise.resolve(this.storage.custom_signals)}}function iQ(e,t){let i=Object.fromEntries(Object.entries({...t,...e}).filter(([e,t])=>null!==t).map(([e,t])=>"number"==typeof t?[e,t.toString()]:[e,t]));if(Object.keys(i).length>100)throw iF.create("custom-signal-max-allowed-signals",{maxSignals:100});return i}class iZ{constructor(e){this.storage=e}getLastFetchStatus(){return this.lastFetchStatus}getLastSuccessfulFetchTimestampMillis(){return this.lastSuccessfulFetchTimestampMillis}getActiveConfig(){return this.activeConfig}getCustomSignals(){return this.customSignals}async loadFromStorage(){let e=this.storage.getLastFetchStatus(),t=this.storage.getLastSuccessfulFetchTimestampMillis(),i=this.storage.getActiveConfig(),r=this.storage.getCustomSignals(),n=await e;n&&(this.lastFetchStatus=n);let s=await t;s&&(this.lastSuccessfulFetchTimestampMillis=s);let a=await i;a&&(this.activeConfig=a);let o=await r;o&&(this.customSignals=o)}setLastFetchStatus(e){return this.lastFetchStatus=e,this.storage.setLastFetchStatus(e)}setLastSuccessfulFetchTimestampMillis(e){return this.lastSuccessfulFetchTimestampMillis=e,this.storage.setLastSuccessfulFetchTimestampMillis(e)}setActiveConfig(e){return this.activeConfig=e,this.storage.setActiveConfig(e)}async setCustomSignals(e){this.customSignals=await this.storage.setCustomSignals(e)}}class i0{constructor(e){this.allowedEvents_=e,this.listeners_={},(0,d.assert)(Array.isArray(e)&&e.length>0,"Requires a non-empty array")}trigger(e,...t){if(Array.isArray(this.listeners_[e])){let i=[...this.listeners_[e]];for(let e=0;e<i.length;e++)i[e].callback.apply(i[e].context,t)}}on(e,t,i){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:t,context:i});let r=this.getInitialEvent(e);r&&t.apply(i,r)}off(e,t,i){this.validateEventType_(e);let r=this.listeners_[e]||[];for(let e=0;e<r.length;e++)if(r[e].callback===t&&(!i||i===r[e].context))return void r.splice(e,1)}validateEventType_(e){(0,d.assert)(this.allowedEvents_.find(t=>t===e),"Unknown event: "+e)}}class i1 extends i0{static getInstance(){return new i1}constructor(){let e,t;super(["visible"]),"u">typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(t="visibilitychange",e="hidden"):void 0!==document.mozHidden?(t="mozvisibilitychange",e="mozHidden"):void 0!==document.msHidden?(t="msvisibilitychange",e="msHidden"):void 0!==document.webkitHidden&&(t="webkitvisibilitychange",e="webkitHidden")),this.visible_=!0,t&&document.addEventListener(t,()=>{let t=!document[e];t!==this.visible_&&(this.visible_=t,this.trigger("visible",t))},!1)}getInitialEvent(e){return(0,d.assert)("visible"===e,"Unknown event type: "+e),[this.visible_]}}let i6="featureDisabled",i3="retryIntervalSeconds",i4="latestTemplateVersionNumber";class i2{constructor(e,t,i,r,n,s,a,o,c,l){this.firebaseInstallations=e,this.storage=t,this.sdkVersion=i,this.namespace=r,this.projectId=n,this.apiKey=s,this.appId=a,this.logger=o,this.storageCache=c,this.cachingClient=l,this.observers=new Set,this.isConnectionActive=!1,this.isRealtimeDisabled=!1,this.httpRetriesRemaining=8,this.isInBackgroun
15d=!1,this.decoder=new TextDecoder("utf-8"),this.isClosingConnection=!1,this.propagateError=e=>this.observers.forEach(t=>t.error?.(e)),this.isStatusCodeRetryable=e=>!e||[408,429,502,503,504].includes(e),this.setRetriesRemaining(),i1.getInstance().on("visible",this.onVisibilityChange,this)}async setRetriesRemaining(){let e=await this.storage.getRealtimeBackoffMetadata(),t=e?.numFailedStreams||0;this.httpRetriesRemaining=Math.max(8-t,1)}async updateBackoffMetadataWithLastFailedStreamConnectionTime(e){let t=((await this.storage.getRealtimeBackoffMetadata())?.numFailedStreams||0)+1,i=(0,d.calculateBackoffMillis)(t,6e4,2);await this.storage.setRealtimeBackoffMetadata({backoffEndTimeMillis:new Date(e.getTime()+i),numFailedStreams:t})}async updateBackoffMetadataWithRetryInterval(e){let t=new Date(Date.now()+1e3*e);await this.storage.setRealtimeBackoffMetadata({backoffEndTimeMillis:t,numFailedStreams:0}),await this.retryHttpConnectionWhenBackoffEnds()}async closeRealtimeHttpConnection(){if(!this.isClosingConnection){this.isClosingConnection=!0;try{this.reader&&await this.reader.cancel()}catch(e){this.logger.debug("Failed to cancel the reader, connection was lost.")}finally{this.reader=void 0}this.controller&&(await this.controller.abort(),this.controller=void 0),this.isClosingConnection=!1}}async resetRealtimeBackoff(){await this.storage.setRealtimeBackoffMetadata({backoffEndTimeMillis:new Date(-1),numFailedStreams:0})}resetRetryCount(){this.httpRetriesRemaining=8}async establishRealtimeConnection(e,t,i,r){let n=await this.storage.getActiveConfigEtag(),s=await this.storage.getActiveConfigTemplateVersion(),a={"X-Goog-Api-Key":this.apiKey,"X-Goog-Firebase-Installations-Auth":i,"Content-Type":"application/json",Accept:"application/json","If-None-Match":n||"*","Content-Encoding":"gzip"},o={project:this.projectId,namespace:this.namespace,lastKnownVersionNumber:s,appId:this.appId,sdkVersion:this.sdkVersion,appInstanceId:t};return await fetch(e,{method:"POST",headers:a,body:JSON.stringify(o),signal:r})}getRealtimeUrl(){let e=window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfigrealtime.googleapis.com";return new URL(`${e}/v1/projects/${this.projectId}/namespaces/${this.namespace}
15:streamFetchInvalidations?key=${this.apiKey}`)}async createRealtimeConnection(){let[e,t]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken(!1)]);this.controller=new AbortController;let i=this.getRealtimeUrl();return await this.establishRealtimeConnection(i,e,t,this.controller.signal)}async retryHttpConnectionWhenBackoffEnds(){let e=await this.storage.getRealtimeBackoffMetadata();e||(e={backoffEndTimeMillis:new Date(-1),numFailedStreams:0});let t=Math.max(0,new Date(e.backoffEndTimeMillis).getTime()-Date.now());await this.makeRealtimeHttpConnection(t)}setIsHttpConnectionRunning(e){this.isConnectionActive=e}checkAndSetHttpConnectionFlagIfNotRunning(){let e=this.canEstablishStreamConnection();return e&&this.setIsHttpConnectionRunning(!0),e}fetchResponseIsUpToDate(e,t){return null!=e.config&&e.templateVersion?e.templateVersion>=t:"success"===this.storageCache.getLastFetchStatus()}parseAndValidateConfigUpdateMessage(e){let t=e.indexOf("{"),i=e.indexOf("}",t);return t<0||i<0||t>=i?"":e.substring(t,i+1)}isEventListenersEmpty(){return 0===this.observers.size}getRandomInt(e){return Math.floor(Math.random()*e)}executeAllListenerCallbacks(e){this.observers.forEach(t=>t.next(e))}getChangedParams(e,t){let i=new Set,r=new Set(Object.keys(e||{})),n=new Set(Object.keys(t||{}));for(let s of r)n.has(s)&&e[s]===t[s]||i.add(s);for(let e of n)r.has(e)||i.add(e);return i}async fetchLatestConfig(e,t){let i=e-1,r=this.storageCache.getCustomSignals();r&&this.logger.debug(`Fetching config with custom signals: ${JSON.stringify(r)}`);let n=new iM;try{let e=await this.cachingClient.fetch({cacheMaxAgeMillis:0,signal:n,customSignals:r,fetchType:"REALTIME",fetchAttempt:3-i}),s=await this.storage.getActiveConfig();if(!this.fetchResponseIsUpToDate(e,t)){this.logger.debug("Fetched template version is the same as SDK's current version. Retrying fetch."),await this.autoFetch(i,t);return}if(null==e.config)return void this.logger.debug("The fetch succeeded, but the backend had no updates.");null==s&&(s={});let a=this.getChangedParams(e.config,s);if(0===a.size)return void this.logger.debug("Config was fetched, but no params changed.");this.executeAllListenerCallbacks({getUpdatedKeys:()=>new Set(a)})}catch(i){let e=i instanceof Error?i.message:String(i),t=iF.create("update-not-fetched",{originalErrorMessage:`Failed to auto-fetch config update: ${e}`});this.propagateError(t)}}async autoFetch(e,t){if(0===e){let e=iF.create("update-not-fetched",{originalErrorMessage:"Unable to fetch the latest version of the template."});this.propagateError(e);return}let i=1e3*this.getRandomInt(4);await new Promise(e=>setTimeout(e,i)),await this.fetchLatestConfig(e,t)}async handleNotifications(e){let t,i="";for(;;){let{done:r,value:n}=await e.read();if(r)break;if(i+=t=this.decoder.decode(n,{stream:!0}),t.includes("}")){if(0===(i=this.parseAndValidateConfigUpdateMessage(i)).length)continue;try{let e=JSON.parse(i);if(this.isEventListenersEmpty())break;if(i6 in e&&!0===e[i6]){let e=iF.create("realtime-unavailable",{originalErrorMessage:"The server is temporarily unavailable. Try again in a few minutes."});this.propagateError(e);break}if(i4 in e){let t=await this.storage.getActiveConfigTemplateVersion(),i=Number(e[i4]);t&&i>t&&await this.autoFetch(3,i)}if(i3 in e){let t=Number(e[i3]);await this.updateBackoffMetadataWithRetryInterval(t)}}catch(t){this.logger.debug("Unable to parse latest config update message.",t);let e=t instanceof Error?t.message:String(t);this.propagateError(iF.create("update-message-invalid",{originalErrorMessage:e}))}i=""}}}async listenForNotifications(e){try{await this.handleNotifications(e)}catch(e){this.isInBackground||this.logger.debug("Real-time connection was closed due to an exception.")}}async prepareAndBeginRealtimeHttpStream(){let e,t;if(!this.checkAndSetHttpConnectionFlagIfNotRunning())return;let i=await this.storage.getRealtimeBackoffMetadata();i||(i={backoffEndTimeMillis:new Date(-1),numFailedStreams:0});let r=i.backoffEndTimeMillis.getTime();if(Date.now()<r)return void await this.retryHttpConnectionWhenBackoffEnds();try{if(t=(e=await this.createRealtimeConnection()).status,e.ok&&e.body){this.resetRetryCount(),await this.resetRealtimeBackoff();let t=e.body.getReader();this.reader=t,await this.listenForNotifications(t)}}
15catch(e){this.isInBackground?this.resetRetryCount():this.logger.debug("Exception connecting to real-time RC backend. Retrying the connection...:",e)}finally{await this.closeRealtimeHttpConnection(),this.setIsHttpConnectionRunning(!1);let i=!this.isInBackground&&(void 0===t||this.isStatusCodeRetryable(t));if(i&&await this.updateBackoffMetadataWithLastFailedStreamConnectionTime(new Date),i||e?.ok)await this.retryHttpConnectionWhenBackoffEnds();else{let e=`Unable to connect to the server. HTTP status code: ${t}`,i=iF.create("stream-error",{originalErrorMessage:e});this.propagateError(i)}}}canEstablishStreamConnection(){let e=this.observers.size>0,t=!this.isRealtimeDisabled,i=!this.isConnectionActive,r=!this.isInBackground;return e&&t&&i&&r}async makeRealtimeHttpConnection(e){if(this.canEstablishStreamConnection()){if(this.httpRetriesRemaining>0)this.httpRetriesRemaining--,await new Promise(t=>setTimeout(t,e)),this.prepareAndBeginRealtimeHttpStream();else if(!this.isInBackground){let e=iF.create("stream-error",{originalErrorMessage:"Unable to connect to the server. Check your connection and try again."});this.propagateError(e)}}}async beginRealtime(){this.observers.size>0&&await this.makeRealtimeHttpConnection(0)}addObserver(e){this.observers.add(e),this.beginRealtime()}removeObserver(e){this.observers.has(e)&&this.observers.delete(e)}async onVisibilityChange(e){this.isInBackground=!e,e?e&&await this.beginRealtime():await this.closeRealtimeHttpConnection()}}async function i5(e){return e=(0,d.getModularInstance)(e),await ij(e),iH(e)}C(new h.Component(iL,function(e,{options:t}){let i,r=e.getProvider("app").getImmediate(),n=e.getProvider("installations-internal").getImmediate(),s=e.getProvider("analytics-internal"),{projectId:a,apiKey:o,appId:c}=r.options;if(!a)throw iF.create("registration-project-id");if(!o)throw iF.create("registration-api-key");if(!c)throw iF.create("registration-app-id");let l=t?.templateId||"firebase",h=(0,d.isIndexedDBAvailable)()?new iY(c,r.name,l):new iX,p=new iZ(h),f=new u.Logger(iN);f.logLevel=u.LogLevel.ERROR;let g=new iW(new iz(new i$(n,R,l,a,o,c),h),h,p,f),m=new i2(n,h,R,l,a,o,c,f,p,g),w=new iq(r,g,p,h,f,m,s);return(i=(0,d.getModularInstance)(w))._initializePromise||(i._initializePromise=i._storageCache.loadFromStorage().then(()=>{i._isInitializationComplete=!0})),i._initializePromise,w},"PUBLIC").setMultipleInstances(!0)),N(iN,iD),N(iN,iD,"esm2020"),e.s(["fetchAndActivate",0,i5,"getRemoteConfig",0,iV,"getString",0,function(e,t){var i,r;let n,s;return(i=(0,d.getModularInstance)(e),r=t,(n=(0,d.getModularInstance)(i))._isInitializationComplete||n._logger.debug(`A value was requested for key "${r}" before SDK initialization completed. Await on ensureInitialized if the intent was to get a previously activated value.`),(s=n._storageCache.getActiveConfig())&&void 0!==s[r]?new ix("remote",s[r]):n.defaultConfig&&void 0!==n.defaultConfig[r]?new ix("default",String(n.defaultConfig[r])):(n._logger.debug(`Returning static value for key "${r}". Define a default or remote value if this is unintentional.`),new ix("static"))).asString()}],207900),e.s([],714888);var i8=e.i(804316);let i7="analytics",i9="https://www.googletagmanager.com/gtag/js",re=new u.Logger("@firebase/analytics"),rt=new d.ErrorFactory("analytics","Analytics",{"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}","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.',"invali
15d-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function ri(e){if(!e.startsWith(i9)){let t=rt.create("invalid-gtag-resource",{gtagURL:e});return re.warn(t.message),""}return e}function rr(e){return Promise.all(e.map(e=>e.catch(e=>e)))}async function rn(e,t,i,r,n,s){let a=r[n];try{if(a)await t[a];else{let e=(await rr(i)).find(e=>e.measurementId===n);e&&await t[e.appId]}}catch(e){re.error(e)}e("config",n,s)}async function rs(e,t,i,r,n){try{let s=[];if(n&&n.send_to){let e=n.send_to;Array.isArray(e)||(e=[e]);let r=await rr(i);for(let i of e){let e=r.find(e=>e.measurementId===i),n=e&&t[e.appId];if(n)s.push(n);else{s=[];break}}}0===s.length&&(s=Object.values(t)),await Promise.all(s),e("event",r,n||{})}catch(e){re.error(e)}}let ra=new class{constructor(e={},t=1e3){this.throttleMetadata=e,this.intervalMillis=t}getThrottleMetadata(e){return this.throttleMetadata[e]}setThrottleMetadata(e,t){this.throttleMetadata[e]=t}deleteThrottleMetadata(e){delete this.throttleMetadata[e]}};async function ro(e){let{appId:t,apiKey:i}=e,r={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":i})},n="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig".replace("{app-id}",t),s=await fetch(n,r);if(200!==s.status&&304!==s.status){let e="";try{let t=await s.json();t.error?.message&&(e=t.error.message)}catch(e){}throw rt.create("config-fetch-failed",{httpStatus:s.status,responseMessage:e})}return s.json()}async function rc(e,t=ra,i){let{appId:r,apiKey:n,measurementId:s}=e.options;if(!r)throw rt.create("no-app-id");if(!n){if(s)return{measurementId:s,appId:r};throw rt.create("no-api-key")}let a=t.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()},o=new rh;return setTimeout(async()=>{o.abort()},void 0!==i?i:6e4),rl({appId:r,apiKey:n,measurementId:s},a,o,t)}async function rl(e,{throttleEndTimeMillis:t,backoffCount:i},r,n=ra){let{appId:s,measurementId:a}=e;try{var o,c;await (o=r,c=t,new Promise((e,t)=>{let i=setTimeout(e,Math.max(c-Date.now(),0));o.addEventListener(()=>{clearTimeout(i),t(rt.create("fetch-throttle",{throttleEndTimeMillis:c}))})}))}catch(e){if(a)return re.warn(`Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID ${a} provided in the "measurementId" field in the local Firebase config. [${e?.message}]`),{appId:s,measurementId:a};throw e}try{let t=await ro(e);return n.deleteThrottleMetadata(s),t}catch(c){if(!function(e){if(!(e instanceof d.FirebaseError)||!e.customData)return!1;let t=Number(e.customData.httpStatus);return 429===t||500===t||503===t||504===t}(c)){if(n.deleteThrottleMetadata(s),a)return re.warn(`Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID ${a} provided in the "measurementId" field in the local Firebase config. [${c?.message}]`),{appId:s,measurementId:a};throw c}let t=503===Number(c?.customData?.httpStatus)?(0,d.calculateBackoffMillis)(i,n.intervalMillis,30):(0,d.calculateBackoffMillis)(i,n.intervalMillis),o={throttleEndTimeMillis:Date.now()+t,backoffCount:i+1};return n.setThrottleMetadata(s,o),re.debug(`Calling attemptFetch again in ${t} millis`),rl(e,o,r,n)}}class rh{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function ru(e,t,i,r,n){if(n&&n.global)return void e("event",i,r);{let n=await t;e("event",i,{...r,send_to:n})}}async function rd(e,t,i,r){if(r&&r.global)return e("set",{user_id:i}),Promise.resolve();e("config",await t,{update:!0,user_id:i})}async function rp(e,t,i,r){if(r&&r.global){let t={};for(let e of Object.keys(i))t[`user_properties.${e}`]=i[e];return e("set",t),Promise.resolve()}e("config",await t,{update:!0,user_properties:i})}async function rf(){if(!(0,d.isIndexedDBAvailable)())return re.warn(rt.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await (0,d.validateIndexedDBOpenable)()}catch(e){return re.warn(rt.create("indexeddb-unavailable",{errorInfo:e?.toString()}).message),!1}return!0}async function rg(e,r,n,s,a,o,c){var l,h;let u,d,p,f,g=rc(e);g.then(t=>{n[t.measurementId]=t.appId,e.options.measurementId&&t.measurementId!==e.options.measurementId&&re.warn(`The measurement ID in the local Firebase config (${e.options.measurementId}) does not match the measurement ID fetched from the server (${t.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(e=>re.error(e)),r.push(g);let m=rf().then(e=>e?s.getId():void 0),[w,y]=await Promise.all([g,m]);!function(e){for(let t of Object.values(window.document.getElementsByTagName("script")))if(t.src&&t.src.includes(i9)&&t.src.includes(e))return t;return null}(o)&&(l=w.measurementId,h={createScriptURL:ri},window.trustedTypes&&(u=window.trustedTypes.createPolicy("firebase-js-sdk-policy",h)),d=u,p=document.createElement("script"),f=`${i9}?l=${o}&id=${l}`,p.src=d?d?.createScriptURL(f):f,p.async=!0,document.head.appendChild(p)),i&&(a("consent","default",i),i=void 0),a("js",new Date);let _=c?.config??{};return _.origin="firebase",_.update=!0,null!=y&&(_.firebase_id=y),a("config",w.measurementId,_),t&&(a("set",t),t=void 0),w.measurementId}class rm{constructor(e){this.app=e}_delete(){return delete rw[this.app.options.appId],Promise.resolve()}}let rw={},ry=[],r_={},rv="dataLayer",rI=!1;
15function rb(e=O()){let t=T(e=(0,d.getModularInstance)(e),i7);return t.isInitialized()?t.getImmediate():function(e,t={}){let i=T(e,i7);if(i.isInitialized()){let e=i.getImmediate();if((0,d.deepEqual)(t,i.getOptions()))return e;throw rt.create("already-initialized")}return i.initialize({options:t})}(e)}function rE(e,t,i,r){e=(0,d.getModularInstance)(e),ru(n,rw[e.app.options.appId],t,i,r).catch(e=>re.error(e))}let rC="@firebase/analytics",rT="0.10.19";C(new h.Component(i7,(e,{options:t})=>(function(e,t,i){let s=[];if((0,d.isBrowserExtension)()&&s.push("This is a browser extension environment."),(0,d.areCookiesEnabled)()||s.push("Cookies are not available."),s.length>0){let e=s.map((e,t)=>`(${t+1}) ${e}`).join(" "),t=rt.create("invalid-analytics-context",{errorInfo:e});re.warn(t.message)}let a=e.options.appId;if(!a)throw rt.create("no-app-id");if(!e.options.apiKey)if(e.options.measurementId)re.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 ${e.options.measurementId} provided in the "measurementId" field in the local Firebase config.`);else throw rt.create("no-api-key");if(null!=rw[a])throw rt.create("already-exists",{id:a});if(!rI){var o,c;let e,t;e=[],Array.isArray(window[rv])?e=window[rv]:window[rv]=e;let{wrappedGtag:i,gtagCore:s}=(o="gtag",t=function(){window[rv].push(arguments)},window[o]&&"function"==typeof window[o]&&(t=window[o]),window[o]=(c=t,async function(e,...t){try{if("event"===e){let[e,i]=t;await rs(c,rw,ry,e,i)}else if("config"===e){let[e,i]=t;await rn(c,rw,ry,r_,e,i)}else if("consent"===e){let[e,i]=t;c("consent",e,i)}else if("get"===e){let[e,i,r]=t;c("get",e,i,r)}else if("set"===e){let[e]=t;c("set",e)}else c(e,...t)}catch(e){re.error(e)}}),{gtagCore:t,wrappedGtag:window[o]});n=i,r=s,rI=!0}return rw[a]=rg(e,ry,r_,t,r,rv,i),new rm(e)})(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t),"PUBLIC")),C(new h.Component("analytics-internal",function(e){try{let t=e.getProvider(i7).getImmediate();return{logEvent:(e,i,r)=>rE(t,e,i,r),setUserProperties:(e,i)=>{var r;return r=t,void(r=(0,d.getModularInstance)(r),rp(n,rw[r.app.options.appId],e,i).c
15atch(e=>re.error(e)))}}}catch(e){throw rt.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),N(rC,rT),N(rC,rT,"esm2020"),e.s(["getAnalytics",0,rb,"logEvent",0,rE,"setUserId",0,function(e,t,i){e=(0,d.getModularInstance)(e),rd(n,rw[e.app.options.appId],t,i).catch(e=>re.error(e))}],838701),e.s([],693922);let rS={apiKey:i8.FB_API_KEY,authDomain:i8.FB_DOMAIN,projectId:i8.FB_PROJECT_ID,storageBucket:i8.FB_STORAGE_BUCKET,messagingSenderId:i8.FB_MESSAGE_SENDER_ID,appId:i8.FB_APP_ID,measurementId:i8.FB_MEASUREMENT_ID},rk=async()=>(s||(s=P(rS,"indagare-web-app")),o||(o=iV(s)),o.settings.minimumFetchIntervalMillis=0,await i5(o),o);e.s(["getAnalytics",0,()=>(s||(s=P(rS,"indagare-web-app")),c||(c=rb(s)),c),"getAuth",0,()=>(s||(s=P(rS,"indagare-web-app")),a||(a=function(e,t){let i=T(e,"auth");if(i.isInitialized()){let e=i.getImmediate(),r=i.getOptions();if((0,W.deepEqual)(r,t??{}))return e;G(e,"already-initialized")}return i.initialize({options:t})}(s,{persistence:tU})),a),"getConfig",0,rk],222609)}]);
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.