New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More

firebase

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

firebase - npm Package Compare versions

Comparing version

to
11.3.0-canary.84dfeca39

@@ -5,3 +5,3 @@ import { registerVersion } from '@firebase/app';

var name = "firebase";
var version = "11.3.0-canary.70e08cf95";
var version = "11.3.0-canary.84dfeca39";

@@ -8,0 +8,0 @@ /**

@@ -8,3 +8,3 @@ 'use strict';

var name = "firebase";
var version = "11.3.0-canary.70e08cf95";
var version = "11.3.0-canary.84dfeca39";

@@ -11,0 +11,0 @@ /**

@@ -5,3 +5,3 @@ import firebase from '@firebase/app-compat';

var name = "firebase";
var version = "11.3.0-canary.70e08cf95";
var version = "11.3.0-canary.84dfeca39";

@@ -8,0 +8,0 @@ /**

@@ -10,3 +10,3 @@ 'use strict';

var name = "firebase";
var version = "11.3.0-canary.70e08cf95";
var version = "11.3.0-canary.84dfeca39";

@@ -13,0 +13,0 @@ /**

@@ -15,3 +15,3 @@ import firebase from '@firebase/app-compat';

var name$1 = "firebase";
var version$1 = "11.3.0-canary.70e08cf95";
var version$1 = "11.3.0-canary.84dfeca39";

@@ -37,3 +37,3 @@ /**

var name = "firebase";
var version = "11.3.0-canary.70e08cf95";
var version = "11.3.0-canary.84dfeca39";

@@ -40,0 +40,0 @@ /**

@@ -13,3 +13,3 @@ 'use strict';

var name$1 = "firebase";
var version$1 = "11.3.0-canary.70e08cf95";
var version$1 = "11.3.0-canary.84dfeca39";

@@ -35,3 +35,3 @@ /**

var name = "firebase";
var version = "11.3.0-canary.70e08cf95";
var version = "11.3.0-canary.84dfeca39";

@@ -38,0 +38,0 @@ /**

@@ -1,2 +0,2 @@

((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(wt,yt){try{!(function(){function M(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t,r,e=M(wt);(j=t=t||{})[j.DEBUG=0]="DEBUG",j[j.VERBOSE=1]="VERBOSE",j[j.INFO=2]="INFO",j[j.WARN=3]="WARN",j[j.ERROR=4]="ERROR",j[j.SILENT=5]="SILENT";let B={debug:t.DEBUG,verbose:t.VERBOSE,info:t.INFO,warn:t.WARN,error:t.ERROR,silent:t.SILENT},F=t.INFO,H={[t.DEBUG]:"log",[t.VERBOSE]:"log",[t.INFO]:"info",[t.WARN]:"warn",[t.ERROR]:"error"},x=(e,t,...a)=>{if(!(t<e.logLevel)){var r=(new Date).toISOString(),n=H[t];if(!n)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[n](`[${r}] ${e.name}:`,...a)}};function V(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function $(){try{return"object"==typeof indexedDB}catch(e){}}function q(){return new Promise((r,n)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(t);a.onsuccess=()=>{a.result.close(),e||self.indexedDB.deleteDatabase(t),r(!0)},a.onupgradeneeded=()=>{e=!1},a.onerror=()=>{var e;n((null==(e=a.error)?void 0:e.message)||"")}}catch(e){n(e)}})}function U(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class o extends Error{constructor(e,t,a){super(t),this.code=e,this.customData=a,this.name="FirebaseError",Object.setPrototypeOf(this,o.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,n.prototype.create)}}class n{constructor(e,t,a){this.service=e,this.serviceName=t,this.errors=a}create(e,...t){var r,a=t[0]||{},n=this.service+"/"+e,i=this.errors[e],i=i?(r=a,i.replace(W,(e,t)=>{var a=r[t];return null!=a?String(a):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${n}).`;return new o(n,i,a)}}let W=/\{\$([^}]+)}/g,G=1e3,K=2,z=144e5,J=.5;function Y(e,t=G,a=K){var r=t*Math.pow(a,e),n=Math.round(J*r*(Math.random()-.5)*2);return Math.min(z,r+n)}function i(e){return e&&e._delegate?e._delegate:e}class a{constructor(e,t,a){this.name=e,this.instanceFactory=t,this.type=a,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}}let X=(t,e)=>e.some(e=>t instanceof e),Z,Q;let ee=new WeakMap,s=new WeakMap,te=new WeakMap,l=new WeakMap,c=new WeakMap;let d={get(e,t,a){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||te.get(e);if("store"===t)return a.objectStoreNames[1]?void 0:a.objectStore(a.objectStoreNames[0])}return u(e[t])},set(e,t,a){return e[t]=a,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function ae(r){return r!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(Q=Q||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(r)?function(...e){return r.apply(p(this),e),u(ee.get(this))}:function(...e){return u(r.apply(p(this),e))}:function(e,...t){var a=r.call(p(this),e,...t);return te.set(a,e.sort?e.sort():[e]),u(a)}}function re(e){var i,t;return"function"==typeof e?ae(e):(e instanceof IDBTransaction&&(i=e,s.has(i)||(t=new Promise((e,t)=>{let a=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",n),i.removeEventListener("abort",n)},r=()=>{e(),a()},n=()=>{t(i.error||new DOMException("AbortError","AbortError")),a()};i.addEventListener("complete",r),i.addEventListener("error",n),i.addEventListener("abort",n)}),s.set(i,t))),X(e,Z=Z||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,d):e)}function u(e){var i,t;return e instanceof IDBRequest?(i=e,(t=new Promise((e,t)=>{let a=()=>{i.removeEventListener("success",r),i.removeEventListener("error",n)},r=()=>{e(u(i.result)),a()},n=()=>{t(i.error),a()};i.addEventListener("success",r),i.addEventListener("error",n)})).then(e=>{e instanceof IDBCursor&&ee.set(e,i)}).catch(()=>{}),c.set(t,i),t):l.has(e)?l.get(e):((t=re(e))!==e&&(l.set(e,t),c.set(t,e)),t)}let p=e=>c.get(e);let ne=["get","getKey","getAll","getAllKeys","count"],ie=["put","add","delete","clear"],f=new Map;function oe(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(f.get(t))return f.get(t);let n=t.replace(/FromIndex$/,""),i=t!==n,o=ie.includes(n);var a;return n in(i?IDBIndex:IDBObjectStore).prototype&&(o||ne.includes(n))?(a=async function(e,...t){var a=this.transaction(e,o?"readwrite":"readonly");let r=a.store;return i&&(r=r.index(t.shift())),(await Promise.all([r[n](...t),o&&a.done]))[0]},f.set(t,a),a):void 0}}d={...r=d,get:(e,t,a)=>oe(e,t)||r.get(e,t,a),has:(e,t)=>!!oe(e,t)||r.has(e,t)};var g="@firebase/installations",h="0.6.12-canary.70e08cf95";let se=1e4,le="w:"+h,ce="FIS_v2",de="https://firebaseinstallations.googleapis.com/v1",ue=36e5;let m=new n("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 pe(e){return e instanceof o&&e.code.includes("request-failed")}function fe({projectId:e}){return de+`/projects/${e}/installations`}function ge(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function he(e,t){var a=(await t.json()).error;return m.create("request-failed",{requestName:e,serverCode:a.code,serverMessage:a.message,serverStatus:a.status})}function me({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function ve(e,{refreshToken:t}){var a=me(e);return a.append("Authorization",(e=t,ce+" "+e)),a}async function we(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function ye(t){return new Promise(e=>{setTimeout(e,t)})}let Ie=/^[cdef][\w-]{21}$/,v="";function be(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return Ie.test(t)?t:v}catch(e){return v}}function w(e){return e.appName+"!"+e.appId}let Ee=new Map;function _e(e,t){var a=w(e),e=(Te(a,t),a),a=(()=>(!y&&"BroadcastChannel"in self&&((y=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Te(e.data.key,e.data.fid)}),y))();a&&a.postMessage({key:e,fid:t}),0===Ee.size&&y&&(y.close(),y=null)}function Te(e,t){var a=Ee.get(e);if(a)for(var r of a)r(t)}let y=null;let Se="firebase-installations-database",Ce=1,I="firebase-installations-store",De=null;function b(){return De=De||((e,t,{blocked:a,upgrade:r,blocking:n,terminated:i})=>{let o=indexedDB.open(e,t);var s=u(o);return r&&o.addEventListener("upgradeneeded",e=>{r(u(o.result),e.oldVersion,e.newVersion,u(o.transaction),e)}),a&&o.addEventListener("blocked",e=>a(e.oldVersion,e.newVersion,e)),s.then(e=>{i&&e.addEventListener("close",()=>i()),n&&e.addEventListener("versionchange",e=>n(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s})(Se,Ce,{upgrade:(e,t)=>{0===t&&e.createObjectStore(I)}})}async function E(e,t){var a=w(e),r=(await b()).transaction(I,"readwrite"),n=r.objectStore(I),i=await n.get(a);return await n.put(t,a),await r.done,i&&i.fid===t.fid||_e(e,t.fid),t}async function Le(e){var t=w(e),a=(await b()).transaction(I,"readwrite");await a.objectStore(I).delete(t),await a.done}async function _(e,t){var a=w(e),r=(await b()).transaction(I,"readwrite"),n=r.objectStore(I),i=await n.get(a),o=t(i);return void 0===o?await n.delete(a):await n.put(o,a),await r.done,!o||i&&i.fid===o.fid||_e(e,o.fid),o}async function T(a){let r;var e=await _(a.appConfig,e=>{var t=Pe(e||{fid:be(),registrationStatus:0}),t=((e,t)=>{var a,r;return 0===t.registrationStatus?navigator.onLine?(a={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=(async(t,a)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:a})=>{let r=fe(e);var n=me(e),i=((i=t.getImmediate({optional:!0}))&&(i=await i.getHeartbeatsHeader())&&n.append("x-firebase-client",i),{fid:a,authVersion:ce,appId:e.appId,sdkVersion:le});let o={method:"POST",headers:n,body:JSON.stringify(i)};if((n=await we(()=>fetch(r,o))).ok)return{fid:(i=await n.json()).fid||a,registrationStatus:2,refreshToken:i.refreshToken,authToken:ge(i.authToken)};throw await he("Create Installation",n)})(t,a);return E(t.appConfig,e)}catch(e){throw pe(e)&&409===e.customData.serverCode?await Le(t.appConfig):await E(t.appConfig,{fid:a.fid,registrationStatus:0}),e}})(e,a),{installationEntry:a,registrationPromise:r}):(a=Promise.reject(m.create("app-offline")),{installationEntry:t,registrationPromise:a}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await Oe(e.appConfig);for(;1===t.registrationStatus;)await ye(100),t=await Oe(e.appConfig);var a,r;return 0!==t.registrationStatus?t:({installationEntry:a,registrationPromise:r}=await T(e),r||a)})(e)}:{installationEntry:t}})(a,t);return r=t.registrationPromise,t.installationEntry});return e.fid===v?{installationEntry:await r}:{installationEntry:e,registrationPromise:r}}function Oe(e){return _(e,e=>{if(e)return Pe(e);throw m.create("installation-not-found")})}function Pe(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+se<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function Ne({appConfig:e,heartbeatServiceProvider:t},a){[n,i]=[e,a.fid];let r=fe(n)+`/${i}/authTokens:generate`;var n,i,o=ve(e,a),s=t.getImmediate({optional:!0}),s=(s&&(s=await s.getHeartbeatsHeader())&&o.append("x-firebase-client",s),{installation:{sdkVersion:le,appId:e.appId}});let l={method:"POST",headers:o,body:JSON.stringify(s)};o=await we(()=>fetch(r,l));if(o.ok)return ge(await o.json());throw await he("Generate Auth Token",o)}async function S(r,n=!1){let i;var e=await _(r.appConfig,e=>{if(!ke(e))throw m.create("not-registered");var t,a=e.authToken;if(n||2!==(t=a).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+ue})(t)){if(1===a.requestStatus)return i=(async(e,t)=>{let a=await Ae(e.appConfig);for(;1===a.authToken.requestStatus;)await ye(100),a=await Ae(e.appConfig);var r=a.authToken;return 0===r.requestStatus?S(e,t):r})(r,n),e;if(navigator.onLine)return t=e,a={requestStatus:1,requestTime:Date.now()},a=Object.assign(Object.assign({},t),{authToken:a}),i=(async(t,a)=>{try{var e=await Ne(t,a),r=Object.assign(Object.assign({},a),{authToken:e});return await E(t.appConfig,r),e}catch(e){var n;throw!pe(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(n=Object.assign(Object.assign({},a),{authToken:{requestStatus:0}}),await E(t.appConfig,n)):await Le(t.appConfig),e}})(r,a),a;throw m.create("app-offline")}return e});return i?await i:e.authToken}function Ae(e){return _(e,e=>{var t,a;if(ke(e))return t=e.authToken,1===(a=t).requestStatus&&a.requestTime+se<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw m.create("not-registered")})}function ke(e){return void 0!==e&&2===e.registrationStatus}async function Re(e,t=!1){var a=e,r=(await(!(r=(await T(a)).registrationPromise)||!await r),await S(a,t));return r.token}function C(e){return m.create("missing-app-config-values",{valueName:e})}let je="installations",Me=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw C("App Configuration");if(!e.name)throw C("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw C(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:yt._getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},Be=e=>{var t=e.getProvider("app").getImmediate();let a=yt._getProvider(t,je).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:a,registrationPromise:r}=await T(t);return(r||S(t)).catch(console.error),a.fid})(a),getToken:e=>Re(a,e)}};yt._registerComponent(new a(je,Me,"PUBLIC")),yt._registerComponent(new a("installations-internal",Be,"PRIVATE")),yt.registerVersion(g,h),yt.registerVersion(g,h,"esm2017");let Fe="analytics",He="firebase_id",xe="origin",Ve=6e4,$e="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",D="https://www.googletagmanager.com/gtag/js",N=new class{constructor(e){this.name=e,this._logLevel=F,this._logHandler=x,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in t))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?B[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,t.DEBUG,...e),this._logHandler(this,t.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,t.VERBOSE,...e),this._logHandler(this,t.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,t.INFO,...e),this._logHandler(this,t.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,t.WARN,...e),this._logHandler(this,t.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,t.ERROR,...e),this._logHandler(this,t.ERROR,...e)}}("@firebase/analytics"),L=new n("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.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function qe(e){var t;return e.startsWith(D)?e:(t=L.create("invalid-gtag-resource",{gtagURL:e}),N.warn(t.message),"")}function Ue(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function We(e,t){var a=((e,t)=>{let a;return a=window.trustedTypes?window.trustedTypes.createPolicy(e,t):a})("firebase-js-sdk-policy",{createScriptURL:qe}),r=document.createElement("script"),n=D+`?l=${e}&id=`+t;r.src=a?null==a?void 0:a.createScriptURL(n):n,r.async=!0,document.head.appendChild(r)}function Ge(D,L,O,P){return async function(e,...t){try{if("event"===e){var[a,r]=t,n=D,i=L,o=O,s=a,l=r;try{let a=[];if(l&&l.send_to){let e=l.send_to;Array.isArray(e)||(e=[e]);var c=await Ue(o);for(let t of e){var d=c.find(e=>e.measurementId===t),u=d&&i[d.appId];if(!u){a=[];break}a.push(u)}}0===a.length&&(a=Object.values(i)),await Promise.all(a),n("event",s,l||{})}catch(e){N.error(e)}}else if("config"===e){var p,[f,g]=t,h=D,m=L,v=O,w=f,y=g,I=P[w];try{I?await m[I]:(p=(await Ue(v)).find(e=>e.measurementId===w))&&await m[p.appId]}catch(e){N.error(e)}h("config",w,y)}else{var b,E,_,T,S,C;"consent"===e?([b,E]=t,D("consent",b,E)):"get"===e?([_,T,S]=t,D("get",_,T,S)):"set"===e?([C]=t,D("set",C)):D(e,...t)}}catch(e){N.error(e)}}}let Ke=30;let ze=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 Je(e){var t,{appId:a,apiKey:r}=e,r={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},a=$e.replace("{app-id}",a),a=await fetch(a,r);if(200===a.status||304===a.status)return a.json();{let e="";try{var n=await a.json();null!=(t=n.error)&&t.message&&(e=n.error.message)}catch(e){}throw L.create("config-fetch-failed",{httpStatus:a.status,responseMessage:e})}}async function Ye(e,t=ze,a){var{appId:r,apiKey:n,measurementId:i}=e.options;if(!r)throw L.create("no-app-id");if(!n){if(i)return{measurementId:i,appId:r};throw L.create("no-api-key")}var o=t.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let s=new Qe;return setTimeout(async()=>{s.abort()},void 0!==a?a:Ve),async function n(i,{throttleEndTimeMillis:e,backoffCount:o},s,l=ze){var c;let{appId:d,measurementId:u}=i;try{await Xe(s,e)}catch(e){if(u)return N.warn("Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID "+u+` provided in the "measurementId" field in the local Firebase config. [${null==e?void 0:e.message}]`),{appId:d,measurementId:u};throw e}try{let e=await Je(i);return l.deleteThrottleMetadata(d),e}catch(e){let t=e;if(!Ze(t)){if(l.deleteThrottleMetadata(d),u)return N.warn("Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID "+u+` provided in the "measurementId" field in the local Firebase config. [${null==t?void 0:t.message}]`),{appId:d,measurementId:u};throw e}let a=503===Number(null==(c=null==t?void 0:t.customData)?void 0:c.httpStatus)?Y(o,l.intervalMillis,Ke):Y(o,l.intervalMillis),r={throttleEndTimeMillis:Date.now()+a,backoffCount:o+1};return l.setThrottleMetadata(d,r),N.debug(`Calling attemptFetch again in ${a} millis`),n(i,r,s,l)}}({appId:r,apiKey:n,measurementId:i},o,s,t)}function Xe(n,i){return new Promise((e,t)=>{var a=Math.max(i-Date.now(),0);let r=setTimeout(e,a);n.addEventListener(()=>{clearTimeout(r),t(L.create("fetch-throttle",{throttleEndTimeMillis:i}))})})}function Ze(e){var t;return!!(e instanceof o&&e.customData)&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)}class Qe{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function et(t,e,a,r,n,i,o){var s=Ye(t),l=(s.then(e=>{a[e.measurementId]=e.appId,t.options.measurementId&&e.measurementId!==t.options.measurementId&&N.warn(`The measurement ID in the local Firebase config (${t.options.measurementId})`+` does not match the measurement ID fetched from the server (${e.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=>N.error(e)),e.push(s),(async()=>{if(!$())return N.warn(L.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await q()}catch(e){return N.warn(L.create("indexeddb-unavailable",{errorInfo:null==e?void 0:e.toString()}).message),!1}return!0})().then(e=>{if(e)return r.getId()})),[s,l]=await Promise.all([s,l]),c=((e=>{var t,a=window.document.getElementsByTagName("script");for(t of Object.values(a))if(t.src&&t.src.includes(D)&&t.src.includes(e))return t})(i)||We(i,s.measurementId),n("js",new Date),null!=(c=null==o?void 0:o.config)?c:{});return c[xe]="firebase",c.update=!0,null!=l&&(c[He]=l),n("config",s.measurementId,c),s.measurementId}class tt{constructor(e){this.app=e}_delete(){return delete O[this.app.options.appId],Promise.resolve()}}let O={},at=[],rt={},P="dataLayer",nt="gtag",it,A,k=!1;function ot(e){if(k)throw L.create("already-initialized");e.dataLayerName&&(P=e.dataLayerName),e.gtagName&&(nt=e.gtagName)}function st(e,t,a){r=[],V()&&r.push("This is a browser extension environment."),U()||r.push("Cookies are not available."),0<r.length&&(r=r.map((e,t)=>`(${t+1}) `+e).join(" "),r=L.create("invalid-analytics-context",{errorInfo:r}),N.warn(r.message));var r=e.options.appId;if(!r)throw L.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw L.create("no-api-key");N.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.')}if(null!=O[r])throw L.create("already-exists",{id:r});if(!k){{var n=P;let e=[];Array.isArray(window[n])?e=window[n]:window[n]=e,e}var{wrappedGtag:i,gtagCore:o}=((e,t,a,r,n)=>{let i=function(){window[r].push(arguments)};return window[n]&&"function"==typeof window[n]&&(i=window[n]),window[n]=Ge(i,e,t,a),{gtagCore:i,wrappedGtag:window[n]}})(O,at,rt,P,nt);A=i,it=o,k=!0}return O[r]=et(e,at,rt,t,it,P,a),new tt(e)}async function lt(){if(V())return!1;if(!U())return!1;if(!$())return!1;try{return await q()}catch(e){return!1}}function ct(e,t,a){e=i(e),(async(e,t,a,r)=>{if(r&&r.global)return e("set",{screen_name:a}),Promise.resolve();e("config",await t,{update:!0,screen_name:a})})(A,O[e.app.options.appId],t,a).catch(e=>N.error(e))}function dt(e,t,a){e=i(e),(async(e,t,a,r)=>{if(r&&r.global)return e("set",{user_id:a}),Promise.resolve();e("config",await t,{update:!0,user_id:a})})(A,O[e.app.options.appId],t,a).catch(e=>N.error(e))}function ut(e,t,a){e=i(e),(async(e,t,a,r)=>{if(r&&r.global){var n,i={};for(n of Object.keys(a))i["user_properties."+n]=a[n];return e("set",i),Promise.resolve()}e("config",await t,{update:!0,user_properties:a})})(A,O[e.app.options.appId],t,a).catch(e=>N.error(e))}function pt(e,t){e=i(e),(async(e,t)=>{var a=await e;window["ga-disable-"+a]=!t})(O[e.app.options.appId],t).catch(e=>N.error(e))}function ft(e,t,a,r){e=i(e),(async(e,t,a,r,n)=>{var i;n&&n.global?e("event",a,r):(i=await t,e("event",a,Object.assign(Object.assign({},r),{send_to:i})))})(A,O[e.app.options.appId],t,a,r).catch(e=>N.error(e))}let gt="@firebase/analytics",ht="0.10.11-canary.70e08cf95";yt._registerComponent(new a(Fe,(e,{options:t})=>st(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t),"PUBLIC")),yt._registerComponent(new a("analytics-internal",function(e){try{let r=e.getProvider(Fe).getImmediate();return{logEvent:(e,t,a)=>ft(r,e,t,a)}}catch(e){throw L.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),yt.registerVersion(gt,ht),yt.registerVersion(gt,ht,"esm2017");var R,j;class mt{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,a){ft(this._delegate,e,t,a)}setCurrentScreen(e,t){ct(this._delegate,e,t)}setUserId(e,t){dt(this._delegate,e,t)}setUserProperties(e,t){ut(this._delegate,e,t)}setAnalyticsCollectionEnabled(e){pt(this._delegate,e)}}(j=R=R||{}).ADD_SHIPPING_INFO="add_shipping_info",j.ADD_PAYMENT_INFO="add_payment_info",j.ADD_TO_CART="add_to_cart",j.ADD_TO_WISHLIST="add_to_wishlist",j.BEGIN_CHECKOUT="begin_checkout",j.CHECKOUT_PROGRESS="checkout_progress",j.EXCEPTION="exception",j.GENERATE_LEAD="generate_lead",j.LOGIN="login",j.PAGE_VIEW="page_view",j.PURCHASE="purchase",j.REFUND="refund",j.REMOVE_FROM_CART="remove_from_cart",j.SCREEN_VIEW="screen_view",j.SEARCH="search",j.SELECT_CONTENT="select_content",j.SELECT_ITEM="select_item",j.SELECT_PROMOTION="select_promotion",j.SET_CHECKOUT_OPTION="set_checkout_option",j.SHARE="share",j.SIGN_UP="sign_up",j.TIMING_COMPLETE="timing_complete",j.VIEW_CART="view_cart",j.VIEW_ITEM="view_item",j.VIEW_ITEM_LIST="view_item_list",j.VIEW_PROMOTION="view_promotion",j.VIEW_SEARCH_RESULTS="view_search_results";let vt=e=>{var t=e.getProvider("app-compat").getImmediate(),a=e.getProvider("analytics").getImmediate();return new mt(t,a)};g={Analytics:mt,settings:ot,isSupported:lt,EventName:R},e.default.INTERNAL.registerComponent(new a("analytics-compat",vt,"PUBLIC").setServiceProps(g).setMultipleInstances(!0)),e.default.registerVersion("@firebase/analytics-compat","0.2.17-canary.70e08cf95")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-analytics-compat.js - be sure to load firebase-app.js first.")}});
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(wt,yt){try{!(function(){function M(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t,r,e=M(wt);(j=t=t||{})[j.DEBUG=0]="DEBUG",j[j.VERBOSE=1]="VERBOSE",j[j.INFO=2]="INFO",j[j.WARN=3]="WARN",j[j.ERROR=4]="ERROR",j[j.SILENT=5]="SILENT";let B={debug:t.DEBUG,verbose:t.VERBOSE,info:t.INFO,warn:t.WARN,error:t.ERROR,silent:t.SILENT},F=t.INFO,H={[t.DEBUG]:"log",[t.VERBOSE]:"log",[t.INFO]:"info",[t.WARN]:"warn",[t.ERROR]:"error"},x=(e,t,...a)=>{if(!(t<e.logLevel)){var r=(new Date).toISOString(),n=H[t];if(!n)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[n](`[${r}] ${e.name}:`,...a)}};function V(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function $(){try{return"object"==typeof indexedDB}catch(e){}}function q(){return new Promise((r,n)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(t);a.onsuccess=()=>{a.result.close(),e||self.indexedDB.deleteDatabase(t),r(!0)},a.onupgradeneeded=()=>{e=!1},a.onerror=()=>{var e;n((null==(e=a.error)?void 0:e.message)||"")}}catch(e){n(e)}})}function U(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class o extends Error{constructor(e,t,a){super(t),this.code=e,this.customData=a,this.name="FirebaseError",Object.setPrototypeOf(this,o.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,n.prototype.create)}}class n{constructor(e,t,a){this.service=e,this.serviceName=t,this.errors=a}create(e,...t){var r,a=t[0]||{},n=this.service+"/"+e,i=this.errors[e],i=i?(r=a,i.replace(W,(e,t)=>{var a=r[t];return null!=a?String(a):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${n}).`;return new o(n,i,a)}}let W=/\{\$([^}]+)}/g,G=1e3,K=2,z=144e5,J=.5;function Y(e,t=G,a=K){var r=t*Math.pow(a,e),n=Math.round(J*r*(Math.random()-.5)*2);return Math.min(z,r+n)}function i(e){return e&&e._delegate?e._delegate:e}class a{constructor(e,t,a){this.name=e,this.instanceFactory=t,this.type=a,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}}let X=(t,e)=>e.some(e=>t instanceof e),Z,Q;let ee=new WeakMap,s=new WeakMap,te=new WeakMap,l=new WeakMap,c=new WeakMap;let d={get(e,t,a){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||te.get(e);if("store"===t)return a.objectStoreNames[1]?void 0:a.objectStore(a.objectStoreNames[0])}return u(e[t])},set(e,t,a){return e[t]=a,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function ae(r){return r!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(Q=Q||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(r)?function(...e){return r.apply(p(this),e),u(ee.get(this))}:function(...e){return u(r.apply(p(this),e))}:function(e,...t){var a=r.call(p(this),e,...t);return te.set(a,e.sort?e.sort():[e]),u(a)}}function re(e){var i,t;return"function"==typeof e?ae(e):(e instanceof IDBTransaction&&(i=e,s.has(i)||(t=new Promise((e,t)=>{let a=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",n),i.removeEventListener("abort",n)},r=()=>{e(),a()},n=()=>{t(i.error||new DOMException("AbortError","AbortError")),a()};i.addEventListener("complete",r),i.addEventListener("error",n),i.addEventListener("abort",n)}),s.set(i,t))),X(e,Z=Z||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,d):e)}function u(e){var i,t;return e instanceof IDBRequest?(i=e,(t=new Promise((e,t)=>{let a=()=>{i.removeEventListener("success",r),i.removeEventListener("error",n)},r=()=>{e(u(i.result)),a()},n=()=>{t(i.error),a()};i.addEventListener("success",r),i.addEventListener("error",n)})).then(e=>{e instanceof IDBCursor&&ee.set(e,i)}).catch(()=>{}),c.set(t,i),t):l.has(e)?l.get(e):((t=re(e))!==e&&(l.set(e,t),c.set(t,e)),t)}let p=e=>c.get(e);let ne=["get","getKey","getAll","getAllKeys","count"],ie=["put","add","delete","clear"],f=new Map;function oe(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(f.get(t))return f.get(t);let n=t.replace(/FromIndex$/,""),i=t!==n,o=ie.includes(n);var a;return n in(i?IDBIndex:IDBObjectStore).prototype&&(o||ne.includes(n))?(a=async function(e,...t){var a=this.transaction(e,o?"readwrite":"readonly");let r=a.store;return i&&(r=r.index(t.shift())),(await Promise.all([r[n](...t),o&&a.done]))[0]},f.set(t,a),a):void 0}}d={...r=d,get:(e,t,a)=>oe(e,t)||r.get(e,t,a),has:(e,t)=>!!oe(e,t)||r.has(e,t)};var g="@firebase/installations",h="0.6.12-canary.84dfeca39";let se=1e4,le="w:"+h,ce="FIS_v2",de="https://firebaseinstallations.googleapis.com/v1",ue=36e5;let m=new n("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 pe(e){return e instanceof o&&e.code.includes("request-failed")}function fe({projectId:e}){return de+`/projects/${e}/installations`}function ge(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function he(e,t){var a=(await t.json()).error;return m.create("request-failed",{requestName:e,serverCode:a.code,serverMessage:a.message,serverStatus:a.status})}function me({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function ve(e,{refreshToken:t}){var a=me(e);return a.append("Authorization",(e=t,ce+" "+e)),a}async function we(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function ye(t){return new Promise(e=>{setTimeout(e,t)})}let Ie=/^[cdef][\w-]{21}$/,v="";function be(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return Ie.test(t)?t:v}catch(e){return v}}function w(e){return e.appName+"!"+e.appId}let Ee=new Map;function _e(e,t){var a=w(e),e=(Te(a,t),a),a=(()=>(!y&&"BroadcastChannel"in self&&((y=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Te(e.data.key,e.data.fid)}),y))();a&&a.postMessage({key:e,fid:t}),0===Ee.size&&y&&(y.close(),y=null)}function Te(e,t){var a=Ee.get(e);if(a)for(var r of a)r(t)}let y=null;let Se="firebase-installations-database",Ce=1,I="firebase-installations-store",De=null;function b(){return De=De||((e,t,{blocked:a,upgrade:r,blocking:n,terminated:i})=>{let o=indexedDB.open(e,t);var s=u(o);return r&&o.addEventListener("upgradeneeded",e=>{r(u(o.result),e.oldVersion,e.newVersion,u(o.transaction),e)}),a&&o.addEventListener("blocked",e=>a(e.oldVersion,e.newVersion,e)),s.then(e=>{i&&e.addEventListener("close",()=>i()),n&&e.addEventListener("versionchange",e=>n(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s})(Se,Ce,{upgrade:(e,t)=>{0===t&&e.createObjectStore(I)}})}async function E(e,t){var a=w(e),r=(await b()).transaction(I,"readwrite"),n=r.objectStore(I),i=await n.get(a);return await n.put(t,a),await r.done,i&&i.fid===t.fid||_e(e,t.fid),t}async function Le(e){var t=w(e),a=(await b()).transaction(I,"readwrite");await a.objectStore(I).delete(t),await a.done}async function _(e,t){var a=w(e),r=(await b()).transaction(I,"readwrite"),n=r.objectStore(I),i=await n.get(a),o=t(i);return void 0===o?await n.delete(a):await n.put(o,a),await r.done,!o||i&&i.fid===o.fid||_e(e,o.fid),o}async function T(a){let r;var e=await _(a.appConfig,e=>{var t=Pe(e||{fid:be(),registrationStatus:0}),t=((e,t)=>{var a,r;return 0===t.registrationStatus?navigator.onLine?(a={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=(async(t,a)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:a})=>{let r=fe(e);var n=me(e),i=((i=t.getImmediate({optional:!0}))&&(i=await i.getHeartbeatsHeader())&&n.append("x-firebase-client",i),{fid:a,authVersion:ce,appId:e.appId,sdkVersion:le});let o={method:"POST",headers:n,body:JSON.stringify(i)};if((n=await we(()=>fetch(r,o))).ok)return{fid:(i=await n.json()).fid||a,registrationStatus:2,refreshToken:i.refreshToken,authToken:ge(i.authToken)};throw await he("Create Installation",n)})(t,a);return E(t.appConfig,e)}catch(e){throw pe(e)&&409===e.customData.serverCode?await Le(t.appConfig):await E(t.appConfig,{fid:a.fid,registrationStatus:0}),e}})(e,a),{installationEntry:a,registrationPromise:r}):(a=Promise.reject(m.create("app-offline")),{installationEntry:t,registrationPromise:a}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await Oe(e.appConfig);for(;1===t.registrationStatus;)await ye(100),t=await Oe(e.appConfig);var a,r;return 0!==t.registrationStatus?t:({installationEntry:a,registrationPromise:r}=await T(e),r||a)})(e)}:{installationEntry:t}})(a,t);return r=t.registrationPromise,t.installationEntry});return e.fid===v?{installationEntry:await r}:{installationEntry:e,registrationPromise:r}}function Oe(e){return _(e,e=>{if(e)return Pe(e);throw m.create("installation-not-found")})}function Pe(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+se<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function Ne({appConfig:e,heartbeatServiceProvider:t},a){[n,i]=[e,a.fid];let r=fe(n)+`/${i}/authTokens:generate`;var n,i,o=ve(e,a),s=t.getImmediate({optional:!0}),s=(s&&(s=await s.getHeartbeatsHeader())&&o.append("x-firebase-client",s),{installation:{sdkVersion:le,appId:e.appId}});let l={method:"POST",headers:o,body:JSON.stringify(s)};o=await we(()=>fetch(r,l));if(o.ok)return ge(await o.json());throw await he("Generate Auth Token",o)}async function S(r,n=!1){let i;var e=await _(r.appConfig,e=>{if(!ke(e))throw m.create("not-registered");var t,a=e.authToken;if(n||2!==(t=a).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+ue})(t)){if(1===a.requestStatus)return i=(async(e,t)=>{let a=await Ae(e.appConfig);for(;1===a.authToken.requestStatus;)await ye(100),a=await Ae(e.appConfig);var r=a.authToken;return 0===r.requestStatus?S(e,t):r})(r,n),e;if(navigator.onLine)return t=e,a={requestStatus:1,requestTime:Date.now()},a=Object.assign(Object.assign({},t),{authToken:a}),i=(async(t,a)=>{try{var e=await Ne(t,a),r=Object.assign(Object.assign({},a),{authToken:e});return await E(t.appConfig,r),e}catch(e){var n;throw!pe(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(n=Object.assign(Object.assign({},a),{authToken:{requestStatus:0}}),await E(t.appConfig,n)):await Le(t.appConfig),e}})(r,a),a;throw m.create("app-offline")}return e});return i?await i:e.authToken}function Ae(e){return _(e,e=>{var t,a;if(ke(e))return t=e.authToken,1===(a=t).requestStatus&&a.requestTime+se<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw m.create("not-registered")})}function ke(e){return void 0!==e&&2===e.registrationStatus}async function Re(e,t=!1){var a=e,r=(await(!(r=(await T(a)).registrationPromise)||!await r),await S(a,t));return r.token}function C(e){return m.create("missing-app-config-values",{valueName:e})}let je="installations",Me=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw C("App Configuration");if(!e.name)throw C("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw C(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:yt._getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},Be=e=>{var t=e.getProvider("app").getImmediate();let a=yt._getProvider(t,je).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:a,registrationPromise:r}=await T(t);return(r||S(t)).catch(console.error),a.fid})(a),getToken:e=>Re(a,e)}};yt._registerComponent(new a(je,Me,"PUBLIC")),yt._registerComponent(new a("installations-internal",Be,"PRIVATE")),yt.registerVersion(g,h),yt.registerVersion(g,h,"esm2017");let Fe="analytics",He="firebase_id",xe="origin",Ve=6e4,$e="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",D="https://www.googletagmanager.com/gtag/js",N=new class{constructor(e){this.name=e,this._logLevel=F,this._logHandler=x,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in t))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?B[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,t.DEBUG,...e),this._logHandler(this,t.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,t.VERBOSE,...e),this._logHandler(this,t.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,t.INFO,...e),this._logHandler(this,t.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,t.WARN,...e),this._logHandler(this,t.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,t.ERROR,...e),this._logHandler(this,t.ERROR,...e)}}("@firebase/analytics"),L=new n("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.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function qe(e){var t;return e.startsWith(D)?e:(t=L.create("invalid-gtag-resource",{gtagURL:e}),N.warn(t.message),"")}function Ue(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function We(e,t){var a=((e,t)=>{let a;return a=window.trustedTypes?window.trustedTypes.createPolicy(e,t):a})("firebase-js-sdk-policy",{createScriptURL:qe}),r=document.createElement("script"),n=D+`?l=${e}&id=`+t;r.src=a?null==a?void 0:a.createScriptURL(n):n,r.async=!0,document.head.appendChild(r)}function Ge(D,L,O,P){return async function(e,...t){try{if("event"===e){var[a,r]=t,n=D,i=L,o=O,s=a,l=r;try{let a=[];if(l&&l.send_to){let e=l.send_to;Array.isArray(e)||(e=[e]);var c=await Ue(o);for(let t of e){var d=c.find(e=>e.measurementId===t),u=d&&i[d.appId];if(!u){a=[];break}a.push(u)}}0===a.length&&(a=Object.values(i)),await Promise.all(a),n("event",s,l||{})}catch(e){N.error(e)}}else if("config"===e){var p,[f,g]=t,h=D,m=L,v=O,w=f,y=g,I=P[w];try{I?await m[I]:(p=(await Ue(v)).find(e=>e.measurementId===w))&&await m[p.appId]}catch(e){N.error(e)}h("config",w,y)}else{var b,E,_,T,S,C;"consent"===e?([b,E]=t,D("consent",b,E)):"get"===e?([_,T,S]=t,D("get",_,T,S)):"set"===e?([C]=t,D("set",C)):D(e,...t)}}catch(e){N.error(e)}}}let Ke=30;let ze=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 Je(e){var t,{appId:a,apiKey:r}=e,r={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},a=$e.replace("{app-id}",a),a=await fetch(a,r);if(200===a.status||304===a.status)return a.json();{let e="";try{var n=await a.json();null!=(t=n.error)&&t.message&&(e=n.error.message)}catch(e){}throw L.create("config-fetch-failed",{httpStatus:a.status,responseMessage:e})}}async function Ye(e,t=ze,a){var{appId:r,apiKey:n,measurementId:i}=e.options;if(!r)throw L.create("no-app-id");if(!n){if(i)return{measurementId:i,appId:r};throw L.create("no-api-key")}var o=t.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let s=new Qe;return setTimeout(async()=>{s.abort()},void 0!==a?a:Ve),async function n(i,{throttleEndTimeMillis:e,backoffCount:o},s,l=ze){var c;let{appId:d,measurementId:u}=i;try{await Xe(s,e)}catch(e){if(u)return N.warn("Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID "+u+` provided in the "measurementId" field in the local Firebase config. [${null==e?void 0:e.message}]`),{appId:d,measurementId:u};throw e}try{let e=await Je(i);return l.deleteThrottleMetadata(d),e}catch(e){let t=e;if(!Ze(t)){if(l.deleteThrottleMetadata(d),u)return N.warn("Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID "+u+` provided in the "measurementId" field in the local Firebase config. [${null==t?void 0:t.message}]`),{appId:d,measurementId:u};throw e}let a=503===Number(null==(c=null==t?void 0:t.customData)?void 0:c.httpStatus)?Y(o,l.intervalMillis,Ke):Y(o,l.intervalMillis),r={throttleEndTimeMillis:Date.now()+a,backoffCount:o+1};return l.setThrottleMetadata(d,r),N.debug(`Calling attemptFetch again in ${a} millis`),n(i,r,s,l)}}({appId:r,apiKey:n,measurementId:i},o,s,t)}function Xe(n,i){return new Promise((e,t)=>{var a=Math.max(i-Date.now(),0);let r=setTimeout(e,a);n.addEventListener(()=>{clearTimeout(r),t(L.create("fetch-throttle",{throttleEndTimeMillis:i}))})})}function Ze(e){var t;return!!(e instanceof o&&e.customData)&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)}class Qe{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function et(t,e,a,r,n,i,o){var s=Ye(t),l=(s.then(e=>{a[e.measurementId]=e.appId,t.options.measurementId&&e.measurementId!==t.options.measurementId&&N.warn(`The measurement ID in the local Firebase config (${t.options.measurementId})`+` does not match the measurement ID fetched from the server (${e.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=>N.error(e)),e.push(s),(async()=>{if(!$())return N.warn(L.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await q()}catch(e){return N.warn(L.create("indexeddb-unavailable",{errorInfo:null==e?void 0:e.toString()}).message),!1}return!0})().then(e=>{if(e)return r.getId()})),[s,l]=await Promise.all([s,l]),c=((e=>{var t,a=window.document.getElementsByTagName("script");for(t of Object.values(a))if(t.src&&t.src.includes(D)&&t.src.includes(e))return t})(i)||We(i,s.measurementId),n("js",new Date),null!=(c=null==o?void 0:o.config)?c:{});return c[xe]="firebase",c.update=!0,null!=l&&(c[He]=l),n("config",s.measurementId,c),s.measurementId}class tt{constructor(e){this.app=e}_delete(){return delete O[this.app.options.appId],Promise.resolve()}}let O={},at=[],rt={},P="dataLayer",nt="gtag",it,A,k=!1;function ot(e){if(k)throw L.create("already-initialized");e.dataLayerName&&(P=e.dataLayerName),e.gtagName&&(nt=e.gtagName)}function st(e,t,a){r=[],V()&&r.push("This is a browser extension environment."),U()||r.push("Cookies are not available."),0<r.length&&(r=r.map((e,t)=>`(${t+1}) `+e).join(" "),r=L.create("invalid-analytics-context",{errorInfo:r}),N.warn(r.message));var r=e.options.appId;if(!r)throw L.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw L.create("no-api-key");N.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.')}if(null!=O[r])throw L.create("already-exists",{id:r});if(!k){{var n=P;let e=[];Array.isArray(window[n])?e=window[n]:window[n]=e,e}var{wrappedGtag:i,gtagCore:o}=((e,t,a,r,n)=>{let i=function(){window[r].push(arguments)};return window[n]&&"function"==typeof window[n]&&(i=window[n]),window[n]=Ge(i,e,t,a),{gtagCore:i,wrappedGtag:window[n]}})(O,at,rt,P,nt);A=i,it=o,k=!0}return O[r]=et(e,at,rt,t,it,P,a),new tt(e)}async function lt(){if(V())return!1;if(!U())return!1;if(!$())return!1;try{return await q()}catch(e){return!1}}function ct(e,t,a){e=i(e),(async(e,t,a,r)=>{if(r&&r.global)return e("set",{screen_name:a}),Promise.resolve();e("config",await t,{update:!0,screen_name:a})})(A,O[e.app.options.appId],t,a).catch(e=>N.error(e))}function dt(e,t,a){e=i(e),(async(e,t,a,r)=>{if(r&&r.global)return e("set",{user_id:a}),Promise.resolve();e("config",await t,{update:!0,user_id:a})})(A,O[e.app.options.appId],t,a).catch(e=>N.error(e))}function ut(e,t,a){e=i(e),(async(e,t,a,r)=>{if(r&&r.global){var n,i={};for(n of Object.keys(a))i["user_properties."+n]=a[n];return e("set",i),Promise.resolve()}e("config",await t,{update:!0,user_properties:a})})(A,O[e.app.options.appId],t,a).catch(e=>N.error(e))}function pt(e,t){e=i(e),(async(e,t)=>{var a=await e;window["ga-disable-"+a]=!t})(O[e.app.options.appId],t).catch(e=>N.error(e))}function ft(e,t,a,r){e=i(e),(async(e,t,a,r,n)=>{var i;n&&n.global?e("event",a,r):(i=await t,e("event",a,Object.assign(Object.assign({},r),{send_to:i})))})(A,O[e.app.options.appId],t,a,r).catch(e=>N.error(e))}let gt="@firebase/analytics",ht="0.10.11-canary.84dfeca39";yt._registerComponent(new a(Fe,(e,{options:t})=>st(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t),"PUBLIC")),yt._registerComponent(new a("analytics-internal",function(e){try{let r=e.getProvider(Fe).getImmediate();return{logEvent:(e,t,a)=>ft(r,e,t,a)}}catch(e){throw L.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),yt.registerVersion(gt,ht),yt.registerVersion(gt,ht,"esm2017");var R,j;class mt{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,a){ft(this._delegate,e,t,a)}setCurrentScreen(e,t){ct(this._delegate,e,t)}setUserId(e,t){dt(this._delegate,e,t)}setUserProperties(e,t){ut(this._delegate,e,t)}setAnalyticsCollectionEnabled(e){pt(this._delegate,e)}}(j=R=R||{}).ADD_SHIPPING_INFO="add_shipping_info",j.ADD_PAYMENT_INFO="add_payment_info",j.ADD_TO_CART="add_to_cart",j.ADD_TO_WISHLIST="add_to_wishlist",j.BEGIN_CHECKOUT="begin_checkout",j.CHECKOUT_PROGRESS="checkout_progress",j.EXCEPTION="exception",j.GENERATE_LEAD="generate_lead",j.LOGIN="login",j.PAGE_VIEW="page_view",j.PURCHASE="purchase",j.REFUND="refund",j.REMOVE_FROM_CART="remove_from_cart",j.SCREEN_VIEW="screen_view",j.SEARCH="search",j.SELECT_CONTENT="select_content",j.SELECT_ITEM="select_item",j.SELECT_PROMOTION="select_promotion",j.SET_CHECKOUT_OPTION="set_checkout_option",j.SHARE="share",j.SIGN_UP="sign_up",j.TIMING_COMPLETE="timing_complete",j.VIEW_CART="view_cart",j.VIEW_ITEM="view_item",j.VIEW_ITEM_LIST="view_item_list",j.VIEW_PROMOTION="view_promotion",j.VIEW_SEARCH_RESULTS="view_search_results";let vt=e=>{var t=e.getProvider("app-compat").getImmediate(),a=e.getProvider("analytics").getImmediate();return new mt(t,a)};g={Analytics:mt,settings:ot,isSupported:lt,EventName:R},e.default.INTERNAL.registerComponent(new a("analytics-compat",vt,"PUBLIC").setServiceProps(g).setMultipleInstances(!0)),e.default.registerVersion("@firebase/analytics-compat","0.2.17-canary.84dfeca39")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-analytics-compat.js - be sure to load firebase-app.js first.")}});
//# sourceMappingURL=firebase-analytics-compat.js.map

@@ -1,3 +0,3 @@

import{registerVersion as e,_registerComponent as t,_getProvider,getApp as n}from"https://www.gstatic.com/firebasejs/11.3.0-canary.70e08cf95/firebase-app.js";var r;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(r||(r={}));const a={debug:r.DEBUG,verbose:r.VERBOSE,info:r.INFO,warn:r.WARN,error:r.ERROR,silent:r.SILENT},i=r.INFO,o={[r.DEBUG]:"log",[r.VERBOSE]:"log",[r.INFO]:"info",[r.WARN]:"warn",[r.ERROR]:"error"},defaultLogHandler=(e,t,...n)=>{if(t<e.logLevel)return;const r=(new Date).toISOString(),a=o[t];if(!a)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[a](`[${r}] ${e.name}:`,...n)};function isBrowserExtension(){const e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(e){return!1}}function validateIndexedDBOpenable(){return new Promise(((e,t)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(r);a.onsuccess=()=>{a.result.close(),n||self.indexedDB.deleteDatabase(r),e(!0)},a.onupgradeneeded=()=>{n=!1},a.onerror=()=>{var e;t((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}function areCookiesEnabled(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},r=`${this.service}/${e}`,a=this.errors[e],i=a?function replaceTemplate(e,t){return e.replace(s,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(a,n):"Error",o=`${this.serviceName}: ${i} (${r}).`;return new FirebaseError(r,o,n)}}const s=/\{\$([^}]+)}/g;function deepEqual(e,t){if(e===t)return!0;const n=Object.keys(e),r=Object.keys(t);for(const a of n){if(!r.includes(a))return!1;const n=e[a],i=t[a];if(isObject(n)&&isObject(i)){if(!deepEqual(n,i))return!1}else if(n!==i)return!1}for(const e of r)if(!n.includes(e))return!1;return!0}function isObject(e){return null!==e&&"object"==typeof e}function calculateBackoffMillis(e,t=1e3,n=2){const r=t*Math.pow(n,e),a=Math.round(.5*r*(Math.random()-.5)*2);return Math.min(144e5,r+a)}function getModularInstance(e){return e&&e._delegate?e._delegate:e}class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}let c,l;const u=new WeakMap,d=new WeakMap,p=new WeakMap,f=new WeakMap,g=new WeakMap;let h={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return d.get(e);if("objectStoreNames"===t)return e.objectStoreNames||p.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return wrap(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return l||(l=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(unwrap(this),t),wrap(u.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...n){const r=e.call(unwrap(this),t,...n);return p.set(r,t.sort?t.sort():[t]),wrap(r)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(d.has(e))return;const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("complete",complete),e.removeEventListener("error",error),e.removeEventListener("abort",error)},complete=()=>{t(),unlisten()},error=()=>{n(e.error||new DOMException("AbortError","AbortError")),unlisten()};e.addEventListener("complete",complete),e.addEventListener("error",error),e.addEventListener("abort",error)}));d.set(e,t)}(e),t=e,function getIdbProxyableTypes(){return c||(c=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}().some((e=>t instanceof e))?new Proxy(e,h):e);var t}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("success",success),e.removeEventListener("error",error)},success=()=>{t(wrap(e.result)),unlisten()},error=()=>{n(e.error),unlisten()};e.addEventListener("success",success),e.addEventListener("error",error)}));return t.then((t=>{t instanceof IDBCursor&&u.set(t,e)})).catch((()=>{})),g.set(t,e),t}(e);if(f.has(e))return f.get(e);const t=transformCachableValue(e);return t!==e&&(f.set(e,t),g.set(t,e)),t}const unwrap=e=>g.get(e);const m=["get","getKey","getAll","getAllKeys","count"],y=["put","add","delete","clear"],w=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(w.get(t))return w.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,a=y.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!a&&!m.includes(n))return;const method=async function(e,...t){const i=this.transaction(e,a?"readwrite":"readonly");let o=i.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),a&&i.done]))[0]};return w.set(t,method),method}!function replaceTraps(e){h=e(h)}((e=>Object.assign(Object.assign({},e),{get:(t,n,r)=>getMethod(t,n)||e.get(t,n,r),has:(t,n)=>!!getMethod(t,n)||e.has(t,n)})));const I="@firebase/installations",v="0.6.12-canary.70e08cf95",b=1e4,E=`w:${v}`,T="FIS_v2",C=36e5,D=new 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 isServerError(e){return e instanceof FirebaseError&&e.code.includes("request-failed")}function getInstallationsEndpoint({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function extractAuthTokenInfoFromResponse(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function getErrorFromResponse(e,t){const n=(await t.json()).error;return D.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function getHeaders$1({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function getHeadersWithAuth(e,{refreshToken:t}){const n=getHeaders$1(e);return n.append("Authorization",function getAuthorizationHeader(e){return`${T} ${e}`}(t)),n}async function retryIfServerError(e){const t=await e();return t.status>=500&&t.status<600?e():t}function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}const A=/^[cdef][\w-]{21}$/;function generateFid(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function encode(e){const t=function bufferToBase64UrlSafe(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(e);return A.test(t)?t:""}catch(e){return""}}function getKey(e){return`${e.appName}!${e.appId}`}const S=new Map;function fidChanged(e,t){const n=getKey(e);callFidChangeCallbacks(n,t),function broadcastFidChange(e,t){const n=function getBroadcastChannel(){!k&&"BroadcastChannel"in self&&(k=new BroadcastChannel("[Firebase] FID Change"),k.onmessage=e=>{callFidChangeCallbacks(e.data.key,e.data.fid)});return k}();n&&n.postMessage({key:e,fid:t});!function closeBroadcastChannel(){0===S.size&&k&&(k.close(),k=null)}()}(n,t)}function callFidChangeCallbacks(e,t){const n=S.get(e);if(n)for(const e of n)e(t)}let k=null;const R="firebase-installations-store";let F=null;function getDbPromise(){return F||(F=function openDB(e,t,{blocked:n,upgrade:r,blocking:a,terminated:i}={}){const o=indexedDB.open(e,t),s=wrap(o);return r&&o.addEventListener("upgradeneeded",(e=>{r(wrap(o.result),e.oldVersion,e.newVersion,wrap(o.transaction),e)})),n&&o.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),s.then((e=>{i&&e.addEventListener("close",(()=>i())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),s}("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(R)}})),F}async function set(e,t){const n=getKey(e),r=(await getDbPromise()).transaction(R,"readwrite"),a=r.objectStore(R),i=await a.get(n);return await a.put(t,n),await r.done,i&&i.fid===t.fid||fidChanged(e,t.fid),t}async function remove(e){const t=getKey(e),n=(await getDbPromise()).transaction(R,"readwrite");await n.objectStore(R).delete(t),await n.done}async function update(e,t){const n=getKey(e),r=(await getDbPromise()).transaction(R,"readwrite"),a=r.objectStore(R),i=await a.get(n),o=t(i);return void 0===o?await a.delete(n):await a.put(o,n),await r.done,!o||i&&i.fid===o.fid||fidChanged(e,o.fid),o}async function getInstallationEntry(e){let t;const n=await update(e.appConfig,(n=>{const r=function updateOrCreateInstallationEntry(e){const t=e||{fid:generateFid(),registrationStatus:0};return clearTimedOutRequest(t)}(n),a=function triggerRegistrationIfNecessary(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(D.create("app-offline"))}}const n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=async function registerInstallation(e,t){try{const n=await async function createInstallationRequest({appConfig:e,heartbeatServiceProvider:t},{fid:n}){const r=getInstallationsEndpoint(e),a=getHeaders$1(e),i=t.getImmediate({optional:!0});if(i){const e=await i.getHeartbeatsHeader();e&&a.append("x-firebase-client",e)}const o={fid:n,authVersion:T,appId:e.appId,sdkVersion:E},s={method:"POST",headers:a,body:JSON.stringify(o)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){const e=await c.json();return{fid:e.fid||n,registrationStatus:2,refreshToken:e.refreshToken,authToken:extractAuthTokenInfoFromResponse(e.authToken)}}throw await getErrorFromResponse("Create Installation",c)}(e,t);return set(e.appConfig,n)}catch(n){throw isServerError(n)&&409===n.customData.serverCode?await remove(e.appConfig):await set(e.appConfig,{fid:t.fid,registrationStatus:0}),n}}(e,n);return{installationEntry:n,registrationPromise:r}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:waitUntilFidRegistration(e)}:{installationEntry:t}}(e,r);return t=a.registrationPromise,a.installationEntry}));return""===n.fid?{installationEntry:await t}:{installationEntry:n,registrationPromise:t}}async function waitUntilFidRegistration(e){let t=await updateInstallationRequest(e.appConfig);for(;1===t.registrationStatus;)await sleep(100),t=await updateInstallationRequest(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:n}=await getInstallationEntry(e);return n||t}return t}function updateInstallationRequest(e){return update(e,(e=>{if(!e)throw D.create("installation-not-found");return clearTimedOutRequest(e)}))}function clearTimedOutRequest(e){return function hasInstallationRequestTimedOut(e){return 1===e.registrationStatus&&e.registrationTime+b<Date.now()}(e)?{fid:e.fid,registrationStatus:0}:e}async function generateAuthTokenRequest({appConfig:e,heartbeatServiceProvider:t},n){const r=function getGenerateAuthTokenEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}/authTokens:generate`}(e,n),a=getHeadersWithAuth(e,n),i=t.getImmediate({optional:!0});if(i){const e=await i.getHeartbeatsHeader();e&&a.append("x-firebase-client",e)}const o={installation:{sdkVersion:E,appId:e.appId}},s={method:"POST",headers:a,body:JSON.stringify(o)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){return extractAuthTokenInfoFromResponse(await c.json())}throw await getErrorFromResponse("Generate Auth Token",c)}async function refreshAuthToken(e,t=!1){let n;const r=await update(e.appConfig,(r=>{if(!isEntryRegistered(r))throw D.create("not-registered");const a=r.authToken;if(!t&&function isAuthTokenValid(e){return 2===e.requestStatus&&!function isAuthTokenExpired(e){const t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+C}(e)}(a))return r;if(1===a.requestStatus)return n=async function waitUntilAuthTokenRequest(e,t){let n=await updateAuthTokenRequest(e.appConfig);for(;1===n.authToken.requestStatus;)await sleep(100),n=await updateAuthTokenRequest(e.appConfig);const r=n.authToken;return 0===r.requestStatus?refreshAuthToken(e,t):r}(e,t),r;{if(!navigator.onLine)throw D.create("app-offline");const t=function makeAuthTokenRequestInProgressEntry(e){const t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(r);return n=async function fetchAuthTokenFromServer(e,t){try{const n=await generateAuthTokenRequest(e,t),r=Object.assign(Object.assign({},t),{authToken:n});return await set(e.appConfig,r),n}catch(n){if(!isServerError(n)||401!==n.customData.serverCode&&404!==n.customData.serverCode){const n=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await set(e.appConfig,n)}else await remove(e.appConfig);throw n}}(e,t),t}}));return n?await n:r.authToken}function updateAuthTokenRequest(e){return update(e,(e=>{if(!isEntryRegistered(e))throw D.create("not-registered");return function hasAuthTokenRequestTimedOut(e){return 1===e.requestStatus&&e.requestTime+b<Date.now()}(e.authToken)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e}))}function isEntryRegistered(e){return void 0!==e&&2===e.registrationStatus}async function getToken(e,t=!1){const n=e;await async function completeInstallationRegistration(e){const{registrationPromise:t}=await getInstallationEntry(e);t&&await t}(n);return(await refreshAuthToken(n,t)).token}function getMissingValueError(e){return D.create("missing-app-config-values",{valueName:e})}const O="installations",publicFactory=e=>{const t=e.getProvider("app").getImmediate(),n=function extractAppConfig(e){if(!e||!e.options)throw getMissingValueError("App Configuration");if(!e.name)throw getMissingValueError("App Name");const t=["projectId","apiKey","appId"];for(const n of t)if(!e.options[n])throw getMissingValueError(n);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:n,heartbeatServiceProvider:_getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},internalFactory=e=>{const t=e.getProvider("app").getImmediate(),n=_getProvider(t,O).getImmediate();return{getId:()=>async function getId(e){const t=e,{installationEntry:n,registrationPromise:r}=await getInstallationEntry(t);return r?r.catch(console.error):refreshAuthToken(t).catch(console.error),n.fid}(n),getToken:e=>getToken(n,e)}};!function registerInstallations(){t(new Component(O,publicFactory,"PUBLIC")),t(new Component("installations-internal",internalFactory,"PRIVATE"))}(),e(I,v),e(I,v,"esm2017");const P="analytics",M="https://www.googletagmanager.com/gtag/js",L=new class Logger{constructor(e){this.name=e,this._logLevel=i,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in r))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?a[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,r.DEBUG,...e),this._logHandler(this,r.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,r.VERBOSE,...e),this._logHandler(this,r.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,r.INFO,...e),this._logHandler(this,r.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,r.WARN,...e),this._logHandler(this,r.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,r.ERROR,...e),this._logHandler(this,r.ERROR,...e)}}("@firebase/analytics"),B=new 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.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function createGtagTrustedTypesScriptURL(e){if(!e.startsWith(M)){const t=B.create("invalid-gtag-resource",{gtagURL:e});return L.warn(t.message),""}return e}function promiseAllSettled(e){return Promise.all(e.map((e=>e.catch((e=>e)))))}function insertScriptTag(e,t){const n=function createTrustedTypesPolicy(e,t){let n;return window.trustedTypes&&(n=window.trustedTypes.createPolicy(e,t)),n}("firebase-js-sdk-policy",{createScriptURL:createGtagTrustedTypesScriptURL}),r=document.createElement("script"),a=`${M}?l=${e}&id=${t}`;r.src=n?null==n?void 0:n.createScriptURL(a):a,r.async=!0,document.head.appendChild(r)}function wrapGtag(e,t,n,r){return async function gtagWrapper(a,...i){try{if("event"===a){const[r,a]=i;await async function gtagOnEvent(e,t,n,r,a){try{let i=[];if(a&&a.send_to){let e=a.send_to;Array.isArray(e)||(e=[e]);const r=await promiseAllSettled(n);for(const n of e){const e=r.find((e=>e.measurementId===n)),a=e&&t[e.appId];if(!a){i=[];break}i.push(a)}}0===i.length&&(i=Object.values(t)),await Promise.all(i),e("event",r,a||{})}catch(e){L.error(e)}}(e,t,n,r,a)}else if("config"===a){const[a,o]=i;await async function gtagOnConfig(e,t,n,r,a,i){const o=r[a];try{if(o)await t[o];else{const e=(await promiseAllSettled(n)).find((e=>e.measurementId===a));e&&await t[e.appId]}}catch(e){L.error(e)}e("config",a,i)}(e,t,n,r,a,o)}else if("consent"===a){const[t,n]=i;e("consent",t,n)}else if("get"===a){const[t,n,r]=i;e("get",t,n,r)}else if("set"===a){const[t]=i;e("set",t)}else e(a,...i)}catch(e){L.error(e)}}}const j=new class RetryData{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]}};function getHeaders(e){return new Headers({Accept:"application/json","x-goog-api-key":e})}async function fetchDynamicConfigWithRetry(e,t=j,n){const{appId:r,apiKey:a,measurementId:i}=e.options;if(!r)throw B.create("no-app-id");if(!a){if(i)return{measurementId:i,appId:r};throw B.create("no-api-key")}const o=t.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()},s=new AnalyticsAbortSignal;return setTimeout((async()=>{s.abort()}),void 0!==n?n:6e4),attemptFetchDynamicConfigWithRetry({appId:r,apiKey:a,measurementId:i},o,s,t)}async function attemptFetchDynamicConfigWithRetry(e,{throttleEndTimeMillis:t,backoffCount:n},r,a=j){var i;const{appId:o,measurementId:s}=e;try{await function setAbortableTimeout(e,t){return new Promise(((n,r)=>{const a=Math.max(t-Date.now(),0),i=setTimeout(n,a);e.addEventListener((()=>{clearTimeout(i),r(B.create("fetch-throttle",{throttleEndTimeMillis:t}))}))}))}(r,t)}catch(e){if(s)return L.warn(`Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID ${s} provided in the "measurementId" field in the local Firebase config. [${null==e?void 0:e.message}]`),{appId:o,measurementId:s};throw e}try{const t=await async function fetchDynamicConfig(e){var t;const{appId:n,apiKey:r}=e,a={method:"GET",headers:getHeaders(r)},i="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig".replace("{app-id}",n),o=await fetch(i,a);if(200!==o.status&&304!==o.status){let e="";try{const n=await o.json();(null===(t=n.error)||void 0===t?void 0:t.message)&&(e=n.error.message)}catch(e){}throw B.create("config-fetch-failed",{httpStatus:o.status,responseMessage:e})}return o.json()}(e);return a.deleteThrottleMetadata(o),t}catch(t){const c=t;if(!function isRetriableError(e){if(!(e instanceof FirebaseError&&e.customData))return!1;const t=Number(e.customData.httpStatus);return 429===t||500===t||503===t||504===t}(c)){if(a.deleteThrottleMetadata(o),s)return L.warn(`Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID ${s} provided in the "measurementId" field in the local Firebase config. [${null==c?void 0:c.message}]`),{appId:o,measurementId:s};throw t}const l=503===Number(null===(i=null==c?void 0:c.customData)||void 0===i?void 0:i.httpStatus)?calculateBackoffMillis(n,a.intervalMillis,30):calculateBackoffMillis(n,a.intervalMillis),u={throttleEndTimeMillis:Date.now()+l,backoffCount:n+1};return a.setThrottleMetadata(o,u),L.debug(`Calling attemptFetch again in ${l} millis`),attemptFetchDynamicConfigWithRetry(e,u,r,a)}}class AnalyticsAbortSignal{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach((e=>e()))}}let $,x;function _setConsentDefaultForInit(e){x=e}function _setDefaultEventParametersForInit(e){$=e}async function _initializeAnalytics(e,t,n,r,a,i,o){var s;const c=fetchDynamicConfigWithRetry(e);c.then((t=>{n[t.measurementId]=t.appId,e.options.measurementId&&t.measurementId!==e.options.measurementId&&L.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=>L.error(e))),t.push(c);const l=async function validateIndexedDB(){if(!isIndexedDBAvailable())return L.warn(B.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await validateIndexedDBOpenable()}catch(e){return L.warn(B.create("indexeddb-unavailable",{errorInfo:null==e?void 0:e.toString()}).message),!1}return!0}().then((e=>e?r.getId():void 0)),[u,d]=await Promise.all([c,l]);(function findGtagScriptOnPage(e){const t=window.document.getElementsByTagName("script");for(const n of Object.values(t))if(n.src&&n.src.includes(M)&&n.src.includes(e))return n;return null})(i)||insertScriptTag(i,u.measurementId),x&&(a("consent","default",x),_setConsentDefaultForInit(void 0)),a("js",new Date);const p=null!==(s=null==o?void 0:o.config)&&void 0!==s?s:{};return p.origin="firebase",p.update=!0,null!=d&&(p.firebase_id=d),a("config",u.measurementId,p),$&&(a("set",$),_setDefaultEventParametersForInit(void 0)),u.measurementId}class AnalyticsService{constructor(e){this.app=e}_delete(){return delete _[this.app.options.appId],Promise.resolve()}}let _={},q=[];const N={};let H,U,V="dataLayer",z="gtag",W=!1;function settings(e){if(W)throw B.create("already-initialized");e.dataLayerName&&(V=e.dataLayerName),e.gtagName&&(z=e.gtagName)}function factory(e,t,n){!function warnOnBrowserContextMismatch(){const e=[];if(isBrowserExtension()&&e.push("This is a browser extension environment."),areCookiesEnabled()||e.push("Cookies are not available."),e.length>0){const t=e.map(((e,t)=>`(${t+1}) ${e}`)).join(" "),n=B.create("invalid-analytics-context",{errorInfo:t});L.warn(n.message)}}();const r=e.options.appId;if(!r)throw B.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw B.create("no-api-key");L.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.`)}if(null!=_[r])throw B.create("already-exists",{id:r});if(!W){!function getOrCreateDataLayer(e){let t=[];return Array.isArray(window[e])?t=window[e]:window[e]=t,t}(V);const{wrappedGtag:e,gtagCore:t}=function wrapOrCreateGtag(e,t,n,r,a){let gtagCore=function(...e){window[r].push(arguments)};return window[a]&&"function"==typeof window[a]&&(gtagCore=window[a]),window[a]=wrapGtag(gtagCore,e,t,n),{gtagCore:gtagCore,wrappedGtag:window[a]}}(_,q,N,V,z);U=e,H=t,W=!0}_[r]=_initializeAnalytics(e,q,N,t,H,V,n);return new AnalyticsService(e)}function getAnalytics(e=n()){e=getModularInstance(e);const t=_getProvider(e,P);return t.isInitialized()?t.getImmediate():initializeAnalytics(e)}function initializeAnalytics(e,t={}){const n=_getProvider(e,P);if(n.isInitialized()){const e=n.getImmediate();if(deepEqual(t,n.getOptions()))return e;throw B.create("already-initialized")}return n.initialize({options:t})}async function isSupported(){if(isBrowserExtension())return!1;if(!areCookiesEnabled())return!1;if(!isIndexedDBAvailable())return!1;try{return await validateIndexedDBOpenable()}catch(e){return!1}}function setCurrentScreen(e,t,n){e=getModularInstance(e),async function setCurrentScreen$1(e,t,n,r){if(r&&r.global)return e("set",{screen_name:n}),Promise.resolve();e("config",await t,{update:!0,screen_name:n})}(U,_[e.app.options.appId],t,n).catch((e=>L.error(e)))}async function getGoogleAnalyticsClientId(e){return e=getModularInstance(e),async function internalGetGoogleAnalyticsClientId(e,t){const n=await t;return new Promise(((t,r)=>{e("get",n,"client_id",(e=>{e||r(B.create("no-client-id")),t(e)}))}))}(U,_[e.app.options.appId])}function setUserId(e,t,n){e=getModularInstance(e),async function setUserId$1(e,t,n,r){if(r&&r.global)return e("set",{user_id:n}),Promise.resolve();e("config",await t,{update:!0,user_id:n})}(U,_[e.app.options.appId],t,n).catch((e=>L.error(e)))}function setUserProperties(e,t,n){e=getModularInstance(e),async function setUserProperties$1(e,t,n,r){if(r&&r.global){const t={};for(const e of Object.keys(n))t[`user_properties.${e}`]=n[e];return e("set",t),Promise.resolve()}e("config",await t,{update:!0,user_properties:n})}(U,_[e.app.options.appId],t,n).catch((e=>L.error(e)))}function setAnalyticsCollectionEnabled(e,t){e=getModularInstance(e),async function setAnalyticsCollectionEnabled$1(e,t){const n=await e;window[`ga-disable-${n}`]=!t}(_[e.app.options.appId],t).catch((e=>L.error(e)))}function setDefaultEventParameters(e){U?U("set",e):_setDefaultEventParametersForInit(e)}function logEvent(e,t,n,r){e=getModularInstance(e),async function logEvent$1(e,t,n,r,a){if(a&&a.global)e("event",n,r);else{const a=await t;e("event",n,Object.assign(Object.assign({},r),{send_to:a}))}}(U,_[e.app.options.appId],t,n,r).catch((e=>L.error(e)))}function setConsent(e){U?U("consent","update",e):_setConsentDefaultForInit(e)}const G="@firebase/analytics",K="0.10.11-canary.70e08cf95";!function registerAnalytics(){t(new Component(P,((e,{options:t})=>factory(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t)),"PUBLIC")),t(new Component("analytics-internal",(function internalFactory(e){try{const t=e.getProvider(P).getImmediate();return{logEvent:(e,n,r)=>logEvent(t,e,n,r)}}catch(e){throw B.create("interop-component-reg-failed",{reason:e})}}),"PRIVATE")),e(G,K),e(G,K,"esm2017")}();export{getAnalytics,getGoogleAnalyticsClientId,initializeAnalytics,isSupported,logEvent,setAnalyticsCollectionEnabled,setConsent,setCurrentScreen,setDefaultEventParameters,setUserId,setUserProperties,settings};
import{registerVersion as e,_registerComponent as t,_getProvider,getApp as n}from"https://www.gstatic.com/firebasejs/11.3.0-canary.84dfeca39/firebase-app.js";var r;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(r||(r={}));const a={debug:r.DEBUG,verbose:r.VERBOSE,info:r.INFO,warn:r.WARN,error:r.ERROR,silent:r.SILENT},i=r.INFO,o={[r.DEBUG]:"log",[r.VERBOSE]:"log",[r.INFO]:"info",[r.WARN]:"warn",[r.ERROR]:"error"},defaultLogHandler=(e,t,...n)=>{if(t<e.logLevel)return;const r=(new Date).toISOString(),a=o[t];if(!a)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[a](`[${r}] ${e.name}:`,...n)};function isBrowserExtension(){const e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(e){return!1}}function validateIndexedDBOpenable(){return new Promise(((e,t)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(r);a.onsuccess=()=>{a.result.close(),n||self.indexedDB.deleteDatabase(r),e(!0)},a.onupgradeneeded=()=>{n=!1},a.onerror=()=>{var e;t((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}function areCookiesEnabled(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},r=`${this.service}/${e}`,a=this.errors[e],i=a?function replaceTemplate(e,t){return e.replace(s,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(a,n):"Error",o=`${this.serviceName}: ${i} (${r}).`;return new FirebaseError(r,o,n)}}const s=/\{\$([^}]+)}/g;function deepEqual(e,t){if(e===t)return!0;const n=Object.keys(e),r=Object.keys(t);for(const a of n){if(!r.includes(a))return!1;const n=e[a],i=t[a];if(isObject(n)&&isObject(i)){if(!deepEqual(n,i))return!1}else if(n!==i)return!1}for(const e of r)if(!n.includes(e))return!1;return!0}function isObject(e){return null!==e&&"object"==typeof e}function calculateBackoffMillis(e,t=1e3,n=2){const r=t*Math.pow(n,e),a=Math.round(.5*r*(Math.random()-.5)*2);return Math.min(144e5,r+a)}function getModularInstance(e){return e&&e._delegate?e._delegate:e}class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}let c,l;const u=new WeakMap,d=new WeakMap,p=new WeakMap,f=new WeakMap,g=new WeakMap;let h={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return d.get(e);if("objectStoreNames"===t)return e.objectStoreNames||p.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return wrap(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return l||(l=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(unwrap(this),t),wrap(u.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...n){const r=e.call(unwrap(this),t,...n);return p.set(r,t.sort?t.sort():[t]),wrap(r)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(d.has(e))return;const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("complete",complete),e.removeEventListener("error",error),e.removeEventListener("abort",error)},complete=()=>{t(),unlisten()},error=()=>{n(e.error||new DOMException("AbortError","AbortError")),unlisten()};e.addEventListener("complete",complete),e.addEventListener("error",error),e.addEventListener("abort",error)}));d.set(e,t)}(e),t=e,function getIdbProxyableTypes(){return c||(c=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}().some((e=>t instanceof e))?new Proxy(e,h):e);var t}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("success",success),e.removeEventListener("error",error)},success=()=>{t(wrap(e.result)),unlisten()},error=()=>{n(e.error),unlisten()};e.addEventListener("success",success),e.addEventListener("error",error)}));return t.then((t=>{t instanceof IDBCursor&&u.set(t,e)})).catch((()=>{})),g.set(t,e),t}(e);if(f.has(e))return f.get(e);const t=transformCachableValue(e);return t!==e&&(f.set(e,t),g.set(t,e)),t}const unwrap=e=>g.get(e);const m=["get","getKey","getAll","getAllKeys","count"],y=["put","add","delete","clear"],w=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(w.get(t))return w.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,a=y.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!a&&!m.includes(n))return;const method=async function(e,...t){const i=this.transaction(e,a?"readwrite":"readonly");let o=i.store;return r&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),a&&i.done]))[0]};return w.set(t,method),method}!function replaceTraps(e){h=e(h)}((e=>Object.assign(Object.assign({},e),{get:(t,n,r)=>getMethod(t,n)||e.get(t,n,r),has:(t,n)=>!!getMethod(t,n)||e.has(t,n)})));const I="@firebase/installations",v="0.6.12-canary.84dfeca39",b=1e4,E=`w:${v}`,T="FIS_v2",C=36e5,D=new 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 isServerError(e){return e instanceof FirebaseError&&e.code.includes("request-failed")}function getInstallationsEndpoint({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function extractAuthTokenInfoFromResponse(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function getErrorFromResponse(e,t){const n=(await t.json()).error;return D.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function getHeaders$1({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function getHeadersWithAuth(e,{refreshToken:t}){const n=getHeaders$1(e);return n.append("Authorization",function getAuthorizationHeader(e){return`${T} ${e}`}(t)),n}async function retryIfServerError(e){const t=await e();return t.status>=500&&t.status<600?e():t}function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}const A=/^[cdef][\w-]{21}$/;function generateFid(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function encode(e){const t=function bufferToBase64UrlSafe(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(e);return A.test(t)?t:""}catch(e){return""}}function getKey(e){return`${e.appName}!${e.appId}`}const S=new Map;function fidChanged(e,t){const n=getKey(e);callFidChangeCallbacks(n,t),function broadcastFidChange(e,t){const n=function getBroadcastChannel(){!k&&"BroadcastChannel"in self&&(k=new BroadcastChannel("[Firebase] FID Change"),k.onmessage=e=>{callFidChangeCallbacks(e.data.key,e.data.fid)});return k}();n&&n.postMessage({key:e,fid:t});!function closeBroadcastChannel(){0===S.size&&k&&(k.close(),k=null)}()}(n,t)}function callFidChangeCallbacks(e,t){const n=S.get(e);if(n)for(const e of n)e(t)}let k=null;const R="firebase-installations-store";let F=null;function getDbPromise(){return F||(F=function openDB(e,t,{blocked:n,upgrade:r,blocking:a,terminated:i}={}){const o=indexedDB.open(e,t),s=wrap(o);return r&&o.addEventListener("upgradeneeded",(e=>{r(wrap(o.result),e.oldVersion,e.newVersion,wrap(o.transaction),e)})),n&&o.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),s.then((e=>{i&&e.addEventListener("close",(()=>i())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),s}("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(R)}})),F}async function set(e,t){const n=getKey(e),r=(await getDbPromise()).transaction(R,"readwrite"),a=r.objectStore(R),i=await a.get(n);return await a.put(t,n),await r.done,i&&i.fid===t.fid||fidChanged(e,t.fid),t}async function remove(e){const t=getKey(e),n=(await getDbPromise()).transaction(R,"readwrite");await n.objectStore(R).delete(t),await n.done}async function update(e,t){const n=getKey(e),r=(await getDbPromise()).transaction(R,"readwrite"),a=r.objectStore(R),i=await a.get(n),o=t(i);return void 0===o?await a.delete(n):await a.put(o,n),await r.done,!o||i&&i.fid===o.fid||fidChanged(e,o.fid),o}async function getInstallationEntry(e){let t;const n=await update(e.appConfig,(n=>{const r=function updateOrCreateInstallationEntry(e){const t=e||{fid:generateFid(),registrationStatus:0};return clearTimedOutRequest(t)}(n),a=function triggerRegistrationIfNecessary(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(D.create("app-offline"))}}const n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=async function registerInstallation(e,t){try{const n=await async function createInstallationRequest({appConfig:e,heartbeatServiceProvider:t},{fid:n}){const r=getInstallationsEndpoint(e),a=getHeaders$1(e),i=t.getImmediate({optional:!0});if(i){const e=await i.getHeartbeatsHeader();e&&a.append("x-firebase-client",e)}const o={fid:n,authVersion:T,appId:e.appId,sdkVersion:E},s={method:"POST",headers:a,body:JSON.stringify(o)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){const e=await c.json();return{fid:e.fid||n,registrationStatus:2,refreshToken:e.refreshToken,authToken:extractAuthTokenInfoFromResponse(e.authToken)}}throw await getErrorFromResponse("Create Installation",c)}(e,t);return set(e.appConfig,n)}catch(n){throw isServerError(n)&&409===n.customData.serverCode?await remove(e.appConfig):await set(e.appConfig,{fid:t.fid,registrationStatus:0}),n}}(e,n);return{installationEntry:n,registrationPromise:r}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:waitUntilFidRegistration(e)}:{installationEntry:t}}(e,r);return t=a.registrationPromise,a.installationEntry}));return""===n.fid?{installationEntry:await t}:{installationEntry:n,registrationPromise:t}}async function waitUntilFidRegistration(e){let t=await updateInstallationRequest(e.appConfig);for(;1===t.registrationStatus;)await sleep(100),t=await updateInstallationRequest(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:n}=await getInstallationEntry(e);return n||t}return t}function updateInstallationRequest(e){return update(e,(e=>{if(!e)throw D.create("installation-not-found");return clearTimedOutRequest(e)}))}function clearTimedOutRequest(e){return function hasInstallationRequestTimedOut(e){return 1===e.registrationStatus&&e.registrationTime+b<Date.now()}(e)?{fid:e.fid,registrationStatus:0}:e}async function generateAuthTokenRequest({appConfig:e,heartbeatServiceProvider:t},n){const r=function getGenerateAuthTokenEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}/authTokens:generate`}(e,n),a=getHeadersWithAuth(e,n),i=t.getImmediate({optional:!0});if(i){const e=await i.getHeartbeatsHeader();e&&a.append("x-firebase-client",e)}const o={installation:{sdkVersion:E,appId:e.appId}},s={method:"POST",headers:a,body:JSON.stringify(o)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){return extractAuthTokenInfoFromResponse(await c.json())}throw await getErrorFromResponse("Generate Auth Token",c)}async function refreshAuthToken(e,t=!1){let n;const r=await update(e.appConfig,(r=>{if(!isEntryRegistered(r))throw D.create("not-registered");const a=r.authToken;if(!t&&function isAuthTokenValid(e){return 2===e.requestStatus&&!function isAuthTokenExpired(e){const t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+C}(e)}(a))return r;if(1===a.requestStatus)return n=async function waitUntilAuthTokenRequest(e,t){let n=await updateAuthTokenRequest(e.appConfig);for(;1===n.authToken.requestStatus;)await sleep(100),n=await updateAuthTokenRequest(e.appConfig);const r=n.authToken;return 0===r.requestStatus?refreshAuthToken(e,t):r}(e,t),r;{if(!navigator.onLine)throw D.create("app-offline");const t=function makeAuthTokenRequestInProgressEntry(e){const t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(r);return n=async function fetchAuthTokenFromServer(e,t){try{const n=await generateAuthTokenRequest(e,t),r=Object.assign(Object.assign({},t),{authToken:n});return await set(e.appConfig,r),n}catch(n){if(!isServerError(n)||401!==n.customData.serverCode&&404!==n.customData.serverCode){const n=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await set(e.appConfig,n)}else await remove(e.appConfig);throw n}}(e,t),t}}));return n?await n:r.authToken}function updateAuthTokenRequest(e){return update(e,(e=>{if(!isEntryRegistered(e))throw D.create("not-registered");return function hasAuthTokenRequestTimedOut(e){return 1===e.requestStatus&&e.requestTime+b<Date.now()}(e.authToken)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e}))}function isEntryRegistered(e){return void 0!==e&&2===e.registrationStatus}async function getToken(e,t=!1){const n=e;await async function completeInstallationRegistration(e){const{registrationPromise:t}=await getInstallationEntry(e);t&&await t}(n);return(await refreshAuthToken(n,t)).token}function getMissingValueError(e){return D.create("missing-app-config-values",{valueName:e})}const O="installations",publicFactory=e=>{const t=e.getProvider("app").getImmediate(),n=function extractAppConfig(e){if(!e||!e.options)throw getMissingValueError("App Configuration");if(!e.name)throw getMissingValueError("App Name");const t=["projectId","apiKey","appId"];for(const n of t)if(!e.options[n])throw getMissingValueError(n);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:n,heartbeatServiceProvider:_getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},internalFactory=e=>{const t=e.getProvider("app").getImmediate(),n=_getProvider(t,O).getImmediate();return{getId:()=>async function getId(e){const t=e,{installationEntry:n,registrationPromise:r}=await getInstallationEntry(t);return r?r.catch(console.error):refreshAuthToken(t).catch(console.error),n.fid}(n),getToken:e=>getToken(n,e)}};!function registerInstallations(){t(new Component(O,publicFactory,"PUBLIC")),t(new Component("installations-internal",internalFactory,"PRIVATE"))}(),e(I,v),e(I,v,"esm2017");const P="analytics",M="https://www.googletagmanager.com/gtag/js",L=new class Logger{constructor(e){this.name=e,this._logLevel=i,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in r))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?a[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,r.DEBUG,...e),this._logHandler(this,r.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,r.VERBOSE,...e),this._logHandler(this,r.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,r.INFO,...e),this._logHandler(this,r.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,r.WARN,...e),this._logHandler(this,r.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,r.ERROR,...e),this._logHandler(this,r.ERROR,...e)}}("@firebase/analytics"),B=new 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.',"invalid-gtag-resource":"Trusted Types detected an invalid gtag resource: {$gtagURL}."});function createGtagTrustedTypesScriptURL(e){if(!e.startsWith(M)){const t=B.create("invalid-gtag-resource",{gtagURL:e});return L.warn(t.message),""}return e}function promiseAllSettled(e){return Promise.all(e.map((e=>e.catch((e=>e)))))}function insertScriptTag(e,t){const n=function createTrustedTypesPolicy(e,t){let n;return window.trustedTypes&&(n=window.trustedTypes.createPolicy(e,t)),n}("firebase-js-sdk-policy",{createScriptURL:createGtagTrustedTypesScriptURL}),r=document.createElement("script"),a=`${M}?l=${e}&id=${t}`;r.src=n?null==n?void 0:n.createScriptURL(a):a,r.async=!0,document.head.appendChild(r)}function wrapGtag(e,t,n,r){return async function gtagWrapper(a,...i){try{if("event"===a){const[r,a]=i;await async function gtagOnEvent(e,t,n,r,a){try{let i=[];if(a&&a.send_to){let e=a.send_to;Array.isArray(e)||(e=[e]);const r=await promiseAllSettled(n);for(const n of e){const e=r.find((e=>e.measurementId===n)),a=e&&t[e.appId];if(!a){i=[];break}i.push(a)}}0===i.length&&(i=Object.values(t)),await Promise.all(i),e("event",r,a||{})}catch(e){L.error(e)}}(e,t,n,r,a)}else if("config"===a){const[a,o]=i;await async function gtagOnConfig(e,t,n,r,a,i){const o=r[a];try{if(o)await t[o];else{const e=(await promiseAllSettled(n)).find((e=>e.measurementId===a));e&&await t[e.appId]}}catch(e){L.error(e)}e("config",a,i)}(e,t,n,r,a,o)}else if("consent"===a){const[t,n]=i;e("consent",t,n)}else if("get"===a){const[t,n,r]=i;e("get",t,n,r)}else if("set"===a){const[t]=i;e("set",t)}else e(a,...i)}catch(e){L.error(e)}}}const j=new class RetryData{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]}};function getHeaders(e){return new Headers({Accept:"application/json","x-goog-api-key":e})}async function fetchDynamicConfigWithRetry(e,t=j,n){const{appId:r,apiKey:a,measurementId:i}=e.options;if(!r)throw B.create("no-app-id");if(!a){if(i)return{measurementId:i,appId:r};throw B.create("no-api-key")}const o=t.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()},s=new AnalyticsAbortSignal;return setTimeout((async()=>{s.abort()}),void 0!==n?n:6e4),attemptFetchDynamicConfigWithRetry({appId:r,apiKey:a,measurementId:i},o,s,t)}async function attemptFetchDynamicConfigWithRetry(e,{throttleEndTimeMillis:t,backoffCount:n},r,a=j){var i;const{appId:o,measurementId:s}=e;try{await function setAbortableTimeout(e,t){return new Promise(((n,r)=>{const a=Math.max(t-Date.now(),0),i=setTimeout(n,a);e.addEventListener((()=>{clearTimeout(i),r(B.create("fetch-throttle",{throttleEndTimeMillis:t}))}))}))}(r,t)}catch(e){if(s)return L.warn(`Timed out fetching this Firebase app's measurement ID from the server. Falling back to the measurement ID ${s} provided in the "measurementId" field in the local Firebase config. [${null==e?void 0:e.message}]`),{appId:o,measurementId:s};throw e}try{const t=await async function fetchDynamicConfig(e){var t;const{appId:n,apiKey:r}=e,a={method:"GET",headers:getHeaders(r)},i="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig".replace("{app-id}",n),o=await fetch(i,a);if(200!==o.status&&304!==o.status){let e="";try{const n=await o.json();(null===(t=n.error)||void 0===t?void 0:t.message)&&(e=n.error.message)}catch(e){}throw B.create("config-fetch-failed",{httpStatus:o.status,responseMessage:e})}return o.json()}(e);return a.deleteThrottleMetadata(o),t}catch(t){const c=t;if(!function isRetriableError(e){if(!(e instanceof FirebaseError&&e.customData))return!1;const t=Number(e.customData.httpStatus);return 429===t||500===t||503===t||504===t}(c)){if(a.deleteThrottleMetadata(o),s)return L.warn(`Failed to fetch this Firebase app's measurement ID from the server. Falling back to the measurement ID ${s} provided in the "measurementId" field in the local Firebase config. [${null==c?void 0:c.message}]`),{appId:o,measurementId:s};throw t}const l=503===Number(null===(i=null==c?void 0:c.customData)||void 0===i?void 0:i.httpStatus)?calculateBackoffMillis(n,a.intervalMillis,30):calculateBackoffMillis(n,a.intervalMillis),u={throttleEndTimeMillis:Date.now()+l,backoffCount:n+1};return a.setThrottleMetadata(o,u),L.debug(`Calling attemptFetch again in ${l} millis`),attemptFetchDynamicConfigWithRetry(e,u,r,a)}}class AnalyticsAbortSignal{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach((e=>e()))}}let $,x;function _setConsentDefaultForInit(e){x=e}function _setDefaultEventParametersForInit(e){$=e}async function _initializeAnalytics(e,t,n,r,a,i,o){var s;const c=fetchDynamicConfigWithRetry(e);c.then((t=>{n[t.measurementId]=t.appId,e.options.measurementId&&t.measurementId!==e.options.measurementId&&L.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=>L.error(e))),t.push(c);const l=async function validateIndexedDB(){if(!isIndexedDBAvailable())return L.warn(B.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await validateIndexedDBOpenable()}catch(e){return L.warn(B.create("indexeddb-unavailable",{errorInfo:null==e?void 0:e.toString()}).message),!1}return!0}().then((e=>e?r.getId():void 0)),[u,d]=await Promise.all([c,l]);(function findGtagScriptOnPage(e){const t=window.document.getElementsByTagName("script");for(const n of Object.values(t))if(n.src&&n.src.includes(M)&&n.src.includes(e))return n;return null})(i)||insertScriptTag(i,u.measurementId),x&&(a("consent","default",x),_setConsentDefaultForInit(void 0)),a("js",new Date);const p=null!==(s=null==o?void 0:o.config)&&void 0!==s?s:{};return p.origin="firebase",p.update=!0,null!=d&&(p.firebase_id=d),a("config",u.measurementId,p),$&&(a("set",$),_setDefaultEventParametersForInit(void 0)),u.measurementId}class AnalyticsService{constructor(e){this.app=e}_delete(){return delete _[this.app.options.appId],Promise.resolve()}}let _={},q=[];const N={};let H,U,V="dataLayer",z="gtag",W=!1;function settings(e){if(W)throw B.create("already-initialized");e.dataLayerName&&(V=e.dataLayerName),e.gtagName&&(z=e.gtagName)}function factory(e,t,n){!function warnOnBrowserContextMismatch(){const e=[];if(isBrowserExtension()&&e.push("This is a browser extension environment."),areCookiesEnabled()||e.push("Cookies are not available."),e.length>0){const t=e.map(((e,t)=>`(${t+1}) ${e}`)).join(" "),n=B.create("invalid-analytics-context",{errorInfo:t});L.warn(n.message)}}();const r=e.options.appId;if(!r)throw B.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw B.create("no-api-key");L.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.`)}if(null!=_[r])throw B.create("already-exists",{id:r});if(!W){!function getOrCreateDataLayer(e){let t=[];return Array.isArray(window[e])?t=window[e]:window[e]=t,t}(V);const{wrappedGtag:e,gtagCore:t}=function wrapOrCreateGtag(e,t,n,r,a){let gtagCore=function(...e){window[r].push(arguments)};return window[a]&&"function"==typeof window[a]&&(gtagCore=window[a]),window[a]=wrapGtag(gtagCore,e,t,n),{gtagCore:gtagCore,wrappedGtag:window[a]}}(_,q,N,V,z);U=e,H=t,W=!0}_[r]=_initializeAnalytics(e,q,N,t,H,V,n);return new AnalyticsService(e)}function getAnalytics(e=n()){e=getModularInstance(e);const t=_getProvider(e,P);return t.isInitialized()?t.getImmediate():initializeAnalytics(e)}function initializeAnalytics(e,t={}){const n=_getProvider(e,P);if(n.isInitialized()){const e=n.getImmediate();if(deepEqual(t,n.getOptions()))return e;throw B.create("already-initialized")}return n.initialize({options:t})}async function isSupported(){if(isBrowserExtension())return!1;if(!areCookiesEnabled())return!1;if(!isIndexedDBAvailable())return!1;try{return await validateIndexedDBOpenable()}catch(e){return!1}}function setCurrentScreen(e,t,n){e=getModularInstance(e),async function setCurrentScreen$1(e,t,n,r){if(r&&r.global)return e("set",{screen_name:n}),Promise.resolve();e("config",await t,{update:!0,screen_name:n})}(U,_[e.app.options.appId],t,n).catch((e=>L.error(e)))}async function getGoogleAnalyticsClientId(e){return e=getModularInstance(e),async function internalGetGoogleAnalyticsClientId(e,t){const n=await t;return new Promise(((t,r)=>{e("get",n,"client_id",(e=>{e||r(B.create("no-client-id")),t(e)}))}))}(U,_[e.app.options.appId])}function setUserId(e,t,n){e=getModularInstance(e),async function setUserId$1(e,t,n,r){if(r&&r.global)return e("set",{user_id:n}),Promise.resolve();e("config",await t,{update:!0,user_id:n})}(U,_[e.app.options.appId],t,n).catch((e=>L.error(e)))}function setUserProperties(e,t,n){e=getModularInstance(e),async function setUserProperties$1(e,t,n,r){if(r&&r.global){const t={};for(const e of Object.keys(n))t[`user_properties.${e}`]=n[e];return e("set",t),Promise.resolve()}e("config",await t,{update:!0,user_properties:n})}(U,_[e.app.options.appId],t,n).catch((e=>L.error(e)))}function setAnalyticsCollectionEnabled(e,t){e=getModularInstance(e),async function setAnalyticsCollectionEnabled$1(e,t){const n=await e;window[`ga-disable-${n}`]=!t}(_[e.app.options.appId],t).catch((e=>L.error(e)))}function setDefaultEventParameters(e){U?U("set",e):_setDefaultEventParametersForInit(e)}function logEvent(e,t,n,r){e=getModularInstance(e),async function logEvent$1(e,t,n,r,a){if(a&&a.global)e("event",n,r);else{const a=await t;e("event",n,Object.assign(Object.assign({},r),{send_to:a}))}}(U,_[e.app.options.appId],t,n,r).catch((e=>L.error(e)))}function setConsent(e){U?U("consent","update",e):_setConsentDefaultForInit(e)}const G="@firebase/analytics",K="0.10.11-canary.84dfeca39";!function registerAnalytics(){t(new Component(P,((e,{options:t})=>factory(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t)),"PUBLIC")),t(new Component("analytics-internal",(function internalFactory(e){try{const t=e.getProvider(P).getImmediate();return{logEvent:(e,n,r)=>logEvent(t,e,n,r)}}catch(e){throw B.create("interop-component-reg-failed",{reason:e})}}),"PRIVATE")),e(G,K),e(G,K,"esm2017")}();export{getAnalytics,getGoogleAnalyticsClientId,initializeAnalytics,isSupported,logEvent,setAnalyticsCollectionEnabled,setConsent,setCurrentScreen,setDefaultEventParameters,setUserId,setUserProperties,settings};
//# sourceMappingURL=firebase-analytics.js.map

@@ -1,4 +0,4 @@

((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(Te,Ce){try{!(function(){function B(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t,e,r=B(Te);let 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(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var a=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,o=[];for(let l=0;l<r.length;l+=3){var i=r[l],n=l+1<r.length,s=n?r[l+1]:0,h=l+2<r.length,c=h?r[l+2]:0;let e=(15&s)<<2|c>>6,t=63&c;h||(t=64,n)||(e=64),o.push(a[i>>2],a[(3&i)<<4|s>>4],a[e],a[t])}return o.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray((t=>{var r=[];let a=0;for(let o=0;o<t.length;o++){let e=t.charCodeAt(o);e<128?r[a++]=e:(e<2048?r[a++]=e>>6|192:(55296==(64512&e)&&o+1<t.length&&56320==(64512&t.charCodeAt(o+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++o)),r[a++]=e>>18|240,r[a++]=e>>12&63|128):r[a++]=e>>12|224,r[a++]=e>>6&63|128),r[a++]=63&e|128)}return r})(e),t)},decodeString(r,a){if(this.HAS_NATIVE_SUPPORT&&!a)return atob(r);{var o=this.decodeStringToByteArray(r,a);var i=[];let e=0,t=0;for(;e<o.length;){var n,s,h,c=o[e++];c<128?i[t++]=String.fromCharCode(c):191<c&&c<224?(n=o[e++],i[t++]=String.fromCharCode((31&c)<<6|63&n)):239<c&&c<365?(n=((7&c)<<18|(63&o[e++])<<12|(63&o[e++])<<6|63&o[e++])-65536,i[t++]=String.fromCharCode(55296+(n>>10)),i[t++]=String.fromCharCode(56320+(1023&n))):(s=o[e++],h=o[e++],i[t++]=String.fromCharCode((15&c)<<12|(63&s)<<6|63&h))}return i.join("");return}},decodeStringToByteArray(e,t){this.init_();var r=t?this.charToByteMapWebSafe_:this.charToByteMap_,a=[];for(let h=0;h<e.length;){var o=r[e.charAt(h++)],i=h<e.length?r[e.charAt(h)]:0,n=++h<e.length?r[e.charAt(h)]:64,s=++h<e.length?r[e.charAt(h)]:64;if(++h,null==o||null==i||null==n||null==s)throw new H;a.push(o<<2|i>>4),64!==n&&(a.push(i<<4&240|n>>2),64!==s)&&a.push(n<<6&192|s)}return a},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)>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class H extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let n=function(e){try{return a.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};class s{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(r){return(e,t)=>{e?this.reject(e):this.resolve(t),"function"==typeof r&&(this.promise.catch(()=>{}),1===r.length?r(e):r(e,t))}}}function o(){try{return"object"==typeof indexedDB}catch(e){}}class h extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,h.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,i.prototype.create)}}class i{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var a,r=t[0]||{},o=this.service+"/"+e,i=this.errors[e],i=i?(a=r,i.replace(x,(e,t)=>{var r=a[t];return null!=r?String(r):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${o}).`;return new h(o,i,r)}}let x=/\{\$([^}]+)}/g;function c(e){return JSON.parse(e)}function j(e){var t=(e=>{let t={},r={},a={},o="";try{var i=e.split(".");t=c(n(i[0])||""),r=c(n(i[1])||""),o=i[2],a=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:a,signature:o}})(e).claims;return"object"==typeof t&&t.hasOwnProperty("iat")?t.iat:null}let W=144e5,F=.5;class l{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}(e=t=t||{})[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT";let $={debug:t.DEBUG,verbose:t.VERBOSE,info:t.INFO,warn:t.WARN,error:t.ERROR,silent:t.SILENT},V=t.INFO,K={[t.DEBUG]:"log",[t.VERBOSE]:"log",[t.INFO]:"info",[t.WARN]:"warn",[t.ERROR]:"error"},U=(e,t,...r)=>{if(!(t<e.logLevel)){var a=(new Date).toISOString(),o=K[t];if(!o)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[o](`[${a}] ${e.name}:`,...r)}};let p=new Map,u={activated:!1,tokenObservers:[]},d={initialized:!1,enabled:!1};function g(e){return p.get(e)||Object.assign({},u)}let f="https://content-firebaseappcheck.googleapis.com/v1",z="exchangeDebugToken",q={OFFSET_DURATION:3e5,RETRIAL_MIN_WAIT:3e4,RETRIAL_MAX_WAIT:96e4};class G{constructor(e,t,r,a,o){if(this.operation=e,this.retryPolicy=t,this.getWaitDuration=r,this.lowerBound=a,this.upperBound=o,this.pending=null,o<(this.nextErrorWaitInterval=a))throw new Error("Proactive refresh lower bound greater than upper bound!")}start(){this.nextErrorWaitInterval=this.lowerBound,this.process(!0).catch(()=>{})}stop(){this.pending&&(this.pending.reject("cancelled"),this.pending=null)}isRunning(){return!!this.pending}async process(e){this.stop();try{this.pending=new s,this.pending.promise.catch(e=>{}),t=this.getNextRun(e),await new Promise(e=>{setTimeout(e,t)}),this.pending.resolve(),await this.pending.promise,this.pending=new s,this.pending.promise.catch(e=>{}),await this.operation(),this.pending.resolve(),await this.pending.promise,this.process(!0).catch(()=>{})}catch(e){this.retryPolicy(e)?this.process(!1).catch(()=>{}):this.stop()}var t}getNextRun(e){var t;return e?(this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration()):(t=this.nextErrorWaitInterval,this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),t)}}let v=new i("appCheck","AppCheck",{"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.",throttled:"Requests throttled due to {$httpStatus} error. Attempts allowed again after {$time}"});function E(e=!1){var t;return e?null==(t=self.grecaptcha)?void 0:t.enterprise:self.grecaptcha}function _(e){if(!g(e).activated)throw v.create("use-before-activation",{appName:e.name})}function w(e){var t=Math.round(e/1e3),r=Math.floor(t/86400),a=Math.floor((t-3600*r*24)/3600),o=Math.floor((t-3600*r*24-3600*a)/60),t=t-3600*r*24-3600*a-60*o;let i="";return r&&(i+=m(r)+"d:"),a&&(i+=m(a)+"h:"),i+=m(o)+"m:"+m(t)+"s"}function m(e){return 0===e?"00":10<=e?e.toString():"0"+e}async function k({url:e,body:t},r){var a={"Content-Type":"application/json"},o=r.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&(a["X-Firebase-Client"]=o),{method:"POST",body:JSON.stringify(t),headers:a});let i;try{i=await fetch(e,o)}catch(e){throw v.create("fetch-network-error",{originalErrorMessage:null==e?void 0:e.message})}if(200!==i.status)throw v.create("fetch-status-error",{httpStatus:i.status});let n;try{n=await i.json()}catch(e){throw v.create("fetch-parse-error",{originalErrorMessage:null==e?void 0:e.message})}var a=n.ttl.match(/^([\d.]+)(s)$/);if(a&&a[2]&&!isNaN(Number(a[1])))return o=1e3*Number(a[1]),a=Date.now(),{token:n.token,expireTimeMillis:a+o,issuedAtTimeMillis:a};throw v.create("fetch-parse-error",{originalErrorMessage:"ttl field (timeToLive) is not in standard Protobuf Duration format: "+n.ttl})}function X(e,t){var{projectId:r,appId:a,apiKey:o}=e.options;return{url:`${f}/projects/${r}/apps/${a}:${z}?key=`+o,body:{debug_token:t}}}let J="firebase-app-check-database",Y=1,b="firebase-app-check-store",Z="debug-token",Q=null;function ee(){return Q=Q||new Promise((t,r)=>{try{var e=indexedDB.open(J,Y);e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{var t;r(v.create("storage-open",{originalErrorMessage:null==(t=e.target.error)?void 0:t.message}))},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(b,{keyPath:"compositeKey"})}}catch(e){r(v.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}})}async function te(e,t){let a=(await ee()).transaction(b,"readwrite"),o=a.objectStore(b).put({compositeKey:e,value:t});return new Promise((t,r)=>{o.onsuccess=e=>{t()},a.onerror=e=>{var t;r(v.create("storage-set",{originalErrorMessage:null==(t=e.target.error)?void 0:t.message}))}})}async function re(e){let t=(await ee()).transaction(b,"readonly"),o=t.objectStore(b).get(e);return new Promise((r,a)=>{o.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)},t.onerror=e=>{var t;a(v.create("storage-get",{originalErrorMessage:null==(t=e.target.error)?void 0:t.message}))}})}function ae(e){return e.options.appId+"-"+e.name}let y=new class{constructor(e){this.name=e,this._logLevel=V,this._logHandler=U,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in t))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?$[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,t.DEBUG,...e),this._logHandler(this,t.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,t.VERBOSE,...e),this._logHandler(this,t.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,t.INFO,...e),this._logHandler(this,t.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,t.WARN,...e),this._logHandler(this,t.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,t.ERROR,...e),this._logHandler(this,t.ERROR,...e)}}("@firebase/app-check");async function oe(t){if(o()){let e=void 0;try{e=await re(ae(t))}catch(e){y.warn("Failed to read token from IndexedDB. Error: "+e)}return e}}function A(e,t){return o()?te(ae(e),t).catch(e=>{y.warn("Failed to write token to IndexedDB. Error: "+e)}):Promise.resolve()}async function ie(){let e=void 0;try{e=await re(Z)}catch(e){}var t,r;return e||(t=crypto.randomUUID(),r=t,te(Z,r).catch(e=>y.warn("Failed to persist debug token to IndexedDB. Error: "+e)),t)}function T(){return d.enabled}async function C(){var e=d;if(e.enabled&&e.token)return e.token.promise;throw Error(`
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(Te,Ce){try{!(function(){function B(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t,e,r=B(Te);let 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(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var a=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,o=[];for(let l=0;l<r.length;l+=3){var i=r[l],n=l+1<r.length,s=n?r[l+1]:0,c=l+2<r.length,h=c?r[l+2]:0;let e=(15&s)<<2|h>>6,t=63&h;c||(t=64,n)||(e=64),o.push(a[i>>2],a[(3&i)<<4|s>>4],a[e],a[t])}return o.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray((t=>{var r=[];let a=0;for(let o=0;o<t.length;o++){let e=t.charCodeAt(o);e<128?r[a++]=e:(e<2048?r[a++]=e>>6|192:(55296==(64512&e)&&o+1<t.length&&56320==(64512&t.charCodeAt(o+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++o)),r[a++]=e>>18|240,r[a++]=e>>12&63|128):r[a++]=e>>12|224,r[a++]=e>>6&63|128),r[a++]=63&e|128)}return r})(e),t)},decodeString(r,a){if(this.HAS_NATIVE_SUPPORT&&!a)return atob(r);{var o=this.decodeStringToByteArray(r,a);var i=[];let e=0,t=0;for(;e<o.length;){var n,s,c,h=o[e++];h<128?i[t++]=String.fromCharCode(h):191<h&&h<224?(n=o[e++],i[t++]=String.fromCharCode((31&h)<<6|63&n)):239<h&&h<365?(n=((7&h)<<18|(63&o[e++])<<12|(63&o[e++])<<6|63&o[e++])-65536,i[t++]=String.fromCharCode(55296+(n>>10)),i[t++]=String.fromCharCode(56320+(1023&n))):(s=o[e++],c=o[e++],i[t++]=String.fromCharCode((15&h)<<12|(63&s)<<6|63&c))}return i.join("");return}},decodeStringToByteArray(e,t){this.init_();var r=t?this.charToByteMapWebSafe_:this.charToByteMap_,a=[];for(let c=0;c<e.length;){var o=r[e.charAt(c++)],i=c<e.length?r[e.charAt(c)]:0,n=++c<e.length?r[e.charAt(c)]:64,s=++c<e.length?r[e.charAt(c)]:64;if(++c,null==o||null==i||null==n||null==s)throw new H;a.push(o<<2|i>>4),64!==n&&(a.push(i<<4&240|n>>2),64!==s)&&a.push(n<<6&192|s)}return a},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)>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class H extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let n=function(e){try{return a.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};class s{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(r){return(e,t)=>{e?this.reject(e):this.resolve(t),"function"==typeof r&&(this.promise.catch(()=>{}),1===r.length?r(e):r(e,t))}}}function o(){try{return"object"==typeof indexedDB}catch(e){}}class c extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,c.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,i.prototype.create)}}class i{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var a,r=t[0]||{},o=this.service+"/"+e,i=this.errors[e],i=i?(a=r,i.replace(x,(e,t)=>{var r=a[t];return null!=r?String(r):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${o}).`;return new c(o,i,r)}}let x=/\{\$([^}]+)}/g;function h(e){return JSON.parse(e)}function j(e){var t=(e=>{let t={},r={},a={},o="";try{var i=e.split(".");t=h(n(i[0])||""),r=h(n(i[1])||""),o=i[2],a=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:a,signature:o}})(e).claims;return"object"==typeof t&&t.hasOwnProperty("iat")?t.iat:null}let W=144e5,F=.5;class l{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}(e=t=t||{})[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT";let $={debug:t.DEBUG,verbose:t.VERBOSE,info:t.INFO,warn:t.WARN,error:t.ERROR,silent:t.SILENT},V=t.INFO,K={[t.DEBUG]:"log",[t.VERBOSE]:"log",[t.INFO]:"info",[t.WARN]:"warn",[t.ERROR]:"error"},U=(e,t,...r)=>{if(!(t<e.logLevel)){var a=(new Date).toISOString(),o=K[t];if(!o)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[o](`[${a}] ${e.name}:`,...r)}};let p=new Map,z={activated:!1,tokenObservers:[]},u={initialized:!1,enabled:!1};function d(e){return p.get(e)||Object.assign({},z)}let g="https://content-firebaseappcheck.googleapis.com/v1",q="exchangeDebugToken",G={OFFSET_DURATION:3e5,RETRIAL_MIN_WAIT:3e4,RETRIAL_MAX_WAIT:96e4};class X{constructor(e,t,r,a,o){if(this.operation=e,this.retryPolicy=t,this.getWaitDuration=r,this.lowerBound=a,this.upperBound=o,this.pending=null,o<(this.nextErrorWaitInterval=a))throw new Error("Proactive refresh lower bound greater than upper bound!")}start(){this.nextErrorWaitInterval=this.lowerBound,this.process(!0).catch(()=>{})}stop(){this.pending&&(this.pending.reject("cancelled"),this.pending=null)}isRunning(){return!!this.pending}async process(e){this.stop();try{this.pending=new s,this.pending.promise.catch(e=>{}),t=this.getNextRun(e),await new Promise(e=>{setTimeout(e,t)}),this.pending.resolve(),await this.pending.promise,this.pending=new s,this.pending.promise.catch(e=>{}),await this.operation(),this.pending.resolve(),await this.pending.promise,this.process(!0).catch(()=>{})}catch(e){this.retryPolicy(e)?this.process(!1).catch(()=>{}):this.stop()}var t}getNextRun(e){var t;return e?(this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration()):(t=this.nextErrorWaitInterval,this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),t)}}let f=new i("appCheck","AppCheck",{"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.",throttled:"Requests throttled due to {$httpStatus} error. Attempts allowed again after {$time}"});function v(e=!1){var t;return e?null==(t=self.grecaptcha)?void 0:t.enterprise:self.grecaptcha}function E(e){if(!d(e).activated)throw f.create("use-before-activation",{appName:e.name})}function w(e){var t=Math.round(e/1e3),r=Math.floor(t/86400),a=Math.floor((t-3600*r*24)/3600),o=Math.floor((t-3600*r*24-3600*a)/60),t=t-3600*r*24-3600*a-60*o;let i="";return r&&(i+=_(r)+"d:"),a&&(i+=_(a)+"h:"),i+=_(o)+"m:"+_(t)+"s"}function _(e){return 0===e?"00":10<=e?e.toString():"0"+e}async function m({url:e,body:t},r){var a={"Content-Type":"application/json"},o=r.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&(a["X-Firebase-Client"]=o),{method:"POST",body:JSON.stringify(t),headers:a});let i;try{i=await fetch(e,o)}catch(e){throw f.create("fetch-network-error",{originalErrorMessage:null==e?void 0:e.message})}if(200!==i.status)throw f.create("fetch-status-error",{httpStatus:i.status});let n;try{n=await i.json()}catch(e){throw f.create("fetch-parse-error",{originalErrorMessage:null==e?void 0:e.message})}var a=n.ttl.match(/^([\d.]+)(s)$/);if(a&&a[2]&&!isNaN(Number(a[1])))return o=1e3*Number(a[1]),a=Date.now(),{token:n.token,expireTimeMillis:a+o,issuedAtTimeMillis:a};throw f.create("fetch-parse-error",{originalErrorMessage:"ttl field (timeToLive) is not in standard Protobuf Duration format: "+n.ttl})}function J(e,t){var{projectId:r,appId:a,apiKey:o}=e.options;return{url:`${g}/projects/${r}/apps/${a}:${q}?key=`+o,body:{debug_token:t}}}let Y="firebase-app-check-database",Z=1,k="firebase-app-check-store",Q="debug-token",ee=null;function te(){return ee=ee||new Promise((t,r)=>{try{var e=indexedDB.open(Y,Z);e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{var t;r(f.create("storage-open",{originalErrorMessage:null==(t=e.target.error)?void 0:t.message}))},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(k,{keyPath:"compositeKey"})}}catch(e){r(f.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}})}async function re(e,t){let a=(await te()).transaction(k,"readwrite"),o=a.objectStore(k).put({compositeKey:e,value:t});return new Promise((t,r)=>{o.onsuccess=e=>{t()},a.onerror=e=>{var t;r(f.create("storage-set",{originalErrorMessage:null==(t=e.target.error)?void 0:t.message}))}})}async function ae(e){let t=(await te()).transaction(k,"readonly"),o=t.objectStore(k).get(e);return new Promise((r,a)=>{o.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)},t.onerror=e=>{var t;a(f.create("storage-get",{originalErrorMessage:null==(t=e.target.error)?void 0:t.message}))}})}function oe(e){return e.options.appId+"-"+e.name}let b=new class{constructor(e){this.name=e,this._logLevel=V,this._logHandler=U,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in t))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?$[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,t.DEBUG,...e),this._logHandler(this,t.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,t.VERBOSE,...e),this._logHandler(this,t.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,t.INFO,...e),this._logHandler(this,t.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,t.WARN,...e),this._logHandler(this,t.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,t.ERROR,...e),this._logHandler(this,t.ERROR,...e)}}("@firebase/app-check");async function ie(t){if(o()){let e=void 0;try{e=await ae(oe(t))}catch(e){b.warn("Failed to read token from IndexedDB. Error: "+e)}return e}}function y(e,t){return o()?re(oe(e),t).catch(e=>{b.warn("Failed to write token to IndexedDB. Error: "+e)}):Promise.resolve()}async function ne(){let e=void 0;try{e=await ae(Q)}catch(e){}var t,r;return e||(t=crypto.randomUUID(),r=t,re(Q,r).catch(e=>b.warn("Failed to persist debug token to IndexedDB. Error: "+e)),t)}function A(){return u.enabled}async function T(){var e=u;if(e.enabled&&e.token)return e.token.promise;throw Error(`
Can't get debug token in production mode.
`)}function ne(){var e,t=(()=>{if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")})(),r=d;r.initialized=!0,"string"!=typeof t.FIREBASE_APPCHECK_DEBUG_TOKEN&&!0!==t.FIREBASE_APPCHECK_DEBUG_TOKEN||(r.enabled=!0,e=new s,r.token=e,"string"==typeof t.FIREBASE_APPCHECK_DEBUG_TOKEN?e.resolve(t.FIREBASE_APPCHECK_DEBUG_TOKEN):e.resolve(ie()))}let se={error:"UNKNOWN_ERROR"};async function S(e,t=!1){var r,a=e.app;_(a);let o=g(a),i=o.token,n=void 0;if(i&&!I(i)&&(o.token=void 0,i=void 0),i||(r=await o.cachedTokenPromise)&&(I(r)?i=r:await A(a,void 0)),!t&&i&&I(i))return{token:i.token};let s=!1;if(T())return o.exchangeTokenPromise||(o.exchangeTokenPromise=k(X(a,await C()),e.heartbeatServiceProvider).finally(()=>{o.exchangeTokenPromise=void 0}),s=!0),await A(a,r=await o.exchangeTokenPromise),{token:(o.token=r).token};try{o.exchangeTokenPromise||(o.exchangeTokenPromise=o.provider.getToken().finally(()=>{o.exchangeTokenPromise=void 0}),s=!0),i=await g(a).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code?y.warn(e.message):y.error(e),n=e}let h;return i?n?h=I(i)?{token:i.token,internalError:n}:le(n):(h={token:i.token},await A(a,o.token=i)):h=le(n),s&&ce(a,h),h}function R(t,e,r,a){var o=t.app,o=g(o),i={next:r,error:a,type:e};if(o.tokenObservers=[...o.tokenObservers,i],o.token&&I(o.token)){let e=o.token;Promise.resolve().then(()=>{r({token:e.token}),he(t)}).catch(()=>{})}o.cachedTokenPromise.then(()=>he(t))}function P(e,t){var r=g(e),a=r.tokenObservers.filter(e=>e.next!==t);0===a.length&&r.tokenRefresher&&r.tokenRefresher.isRunning()&&r.tokenRefresher.stop(),r.tokenObservers=a}function he(e){var t=e.app,t=g(t);let r=t.tokenRefresher;r||(r=(r=>{let a=r.app;return new G(async()=>{var e=g(a);let t;if((t=e.token?await S(r,!0):await S(r)).error)throw t.error;if(t.internalError)throw t.internalError},()=>!0,()=>{var e,t=g(a);return t.token?(e=t.token.issuedAtTimeMillis+.5*(t.token.expireTimeMillis-t.token.issuedAtTimeMillis)+3e5,t=t.token.expireTimeMillis-3e5,e=Math.min(e,t),Math.max(0,e-Date.now())):0},q.RETRIAL_MIN_WAIT,q.RETRIAL_MAX_WAIT)})(e),t.tokenRefresher=r),!r.isRunning()&&t.isTokenAutoRefreshEnabled&&r.start()}function ce(e,t){var r;for(r of g(e).tokenObservers)try{"EXTERNAL"===r.type&&null!=t.error?r.error(t.error):r.next(t)}catch(e){}}function I(e){return 0<e.expireTimeMillis-Date.now()}function le(e){return{token:(t=se,a.encodeString(JSON.stringify(t),!1)),error:e};var t}class pe{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){var e,t=g(this.app).tokenObservers;for(e of t)P(this.app,e.next);return Promise.resolve()}}function ue(t){return{getToken:e=>S(t,e),getLimitedUseToken:()=>(async e=>{var t=e.app,r=(_(t),g(t)).provider;return T()?{token:t=(await k(X(t,await C()),e.heartbeatServiceProvider)).token}:{token:t=(await r.getToken()).token}})(t),addTokenListener:e=>R(t,"INTERNAL",e),removeTokenListener:e=>P(t.app,e)}}let de="https://www.google.com/recaptcha/api.js",ge="https://www.google.com/recaptcha/enterprise.js";function fe(t,r){let a=new s;g(t).reCAPTCHAState={initialized:a};let o=Ee(t);var e,i=E(!1);return i?D(t,r,i,o,a):(e=()=>{var e=E(!1);if(!e)throw new Error("no recaptcha");D(t,r,e,o,a)},(i=document.createElement("script")).src=de,i.onload=e,document.head.appendChild(i)),a.promise}function ve(t,r){let a=new s;g(t).reCAPTCHAState={initialized:a};let o=Ee(t);var e,i=E(!0);return i?D(t,r,i,o,a):(e=()=>{var e=E(!0);if(!e)throw new Error("no recaptcha");D(t,r,e,o,a)},(i=document.createElement("script")).src=ge,i.onload=e,document.head.appendChild(i)),a.promise}function D(a,o,i,n,s){i.ready(()=>{var e,t,r;e=a,t=i.render(n,{sitekey:o,size:"invisible",callback:()=>{g(e).reCAPTCHAState.succeeded=!0},"error-callback":()=>{g(e).reCAPTCHAState.succeeded=!1}}),(r=g(e)).reCAPTCHAState=Object.assign(Object.assign({},r.reCAPTCHAState),{widgetId:t}),s.resolve(i)})}function Ee(e){var t="fire_app_check_"+e.name,r=document.createElement("div");return r.id=t,r.style.display="none",document.body.appendChild(r),t}async function _e(a){_(a);let o=await g(a).reCAPTCHAState.initialized.promise;return new Promise((e,t)=>{let r=g(a).reCAPTCHAState;o.ready(()=>{e(o.execute(r.widgetId,{action:"fire_app_check"}))})})}class O{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){me(this._throttleData);var t,r=await _e(this._app).catch(e=>{throw v.create("recaptcha-error")});if(null==(t=g(this._app).reCAPTCHAState)||!t.succeeded)throw v.create("recaptcha-error");let e;try{e=await k(((e,t)=>{var{projectId:r,appId:a,apiKey:o}=e.options;return{url:f+`/projects/${r}/apps/${a}:exchangeRecaptchaV3Token?key=`+o,body:{recaptcha_v3_token:t}}})(this._app,r),this._heartbeatServiceProvider)}catch(e){throw null!=(t=e.code)&&t.includes("fetch-status-error")?(this._throttleData=we(Number(null==(r=e.customData)?void 0:r.httpStatus),this._throttleData),v.create("throttled",{time:w(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,e}initialize(e){this._app=e,this._heartbeatServiceProvider=Ce._getProvider(e,"heartbeat"),fe(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof O&&this._siteKey===e._siteKey}}class N{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){me(this._throttleData);var t,r=await _e(this._app).catch(e=>{throw v.create("recaptcha-error")});if(null==(t=g(this._app).reCAPTCHAState)||!t.succeeded)throw v.create("recaptcha-error");let e;try{e=await k(((e,t)=>{var{projectId:r,appId:a,apiKey:o}=e.options;return{url:f+`/projects/${r}/apps/${a}:exchangeRecaptchaEnterpriseToken?key=`+o,body:{recaptcha_enterprise_token:t}}})(this._app,r),this._heartbeatServiceProvider)}catch(e){throw null!=(t=e.code)&&t.includes("fetch-status-error")?(this._throttleData=we(Number(null==(r=e.customData)?void 0:r.httpStatus),this._throttleData),v.create("throttled",{time:w(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,e}initialize(e){this._app=e,this._heartbeatServiceProvider=Ce._getProvider(e,"heartbeat"),ve(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof N&&this._siteKey===e._siteKey}}class M{constructor(e){this._customProviderOptions=e}async getToken(){var e=await this._customProviderOptions.getToken(),t=j(e.token),t=null!==t&&t<Date.now()&&0<t?1e3*t:Date.now();return Object.assign(Object.assign({},e),{issuedAtTimeMillis:t})}initialize(e){this._app=e}isEqual(e){return e instanceof M&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function we(e,t){var r,a,o;return 404===e||403===e?{backoffCount:1,allowRequestsAfter:Date.now()+864e5,httpStatus:e}:(r=t?t.backoffCount:0,t=2,a=1e3*Math.pow(t,r),o=Math.round(F*a*(Math.random()-.5)*2),a=Math.min(W,a+o),{backoffCount:r+1,allowRequestsAfter:Date.now()+a,httpStatus:e})}function me(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw v.create("throttled",{time:w(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function ke(e=Ce.getApp(),r){e=(n=e)&&n._delegate?n._delegate:n;var t=Ce._getProvider(e,"app-check");if(d.initialized||ne(),T()&&C().then(e=>console.log(`App Check debug token: ${e}. You will need to add it to your app's App Check settings in the Firebase console for it to work.`)),t.isInitialized()){var a=t.getImmediate(),o=t.getOptions();if(o.isTokenAutoRefreshEnabled===r.isTokenAutoRefreshEnabled&&o.provider.isEqual(r.provider))return a;throw v.create("already-initialized",{appName:e.name})}o=t.initialize({options:r});{var i=e,n=r.provider;r=r.isTokenAutoRefreshEnabled;let t=((e,t)=>(p.set(e,t),p.get(e)))(i,Object.assign({},u));t.activated=!0,t.provider=n,t.cachedTokenPromise=oe(i).then(e=>(e&&I(e)&&(t.token=e,ce(i,{token:e.token})),e)),t.isTokenAutoRefreshEnabled=void 0===r?i.automaticDataCollectionEnabled:r,t.provider.initialize(i)}return g(e).isTokenAutoRefreshEnabled&&R(o,"INTERNAL",()=>{}),o}let be="app-check-internal";Ce._registerComponent(new l("app-check",e=>{var t,r=e.getProvider("app").getImmediate(),a=e.getProvider("heartbeat");return e=r,t=a,new pe(e,t)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider(be).initialize()})),Ce._registerComponent(new l(be,e=>ue(e.getProvider("app-check").getImmediate()),"PUBLIC").setInstantiationMode("EXPLICIT")),Ce.registerVersion("@firebase/app-check","0.8.11-canary.70e08cf95");let L=new i("appCheck","AppCheck",{"use-before-activation":"App Check is being used before activate() is called for FirebaseApp {$appName}. Call activate() before instantiating other Firebase services."});class ye{constructor(e){this.app=e}activate(e,t){let r;r="string"==typeof e?new O(e):e instanceof N||e instanceof O||e instanceof M?e:new M({getToken:e.getToken}),this._delegate=ke(this.app,{provider:r,isTokenAutoRefreshEnabled:t})}setTokenAutoRefreshEnabled(e){if(!this._delegate)throw L.create("use-before-activation",{appName:this.app.name});var t,r;t=this._delegate,e=e,(r=g(t.app)).tokenRefresher&&(!0===e?r.tokenRefresher.start():r.tokenRefresher.stop()),r.isTokenAutoRefreshEnabled=e}getToken(e){if(this._delegate)return(async(e,t)=>{var r=await S(e,t);if(r.error)throw r.error;return{token:r.token}})(this._delegate,e);throw L.create("use-before-activation",{appName:this.app.name})}onTokenChanged(r,a,e){if(this._delegate){var o=this._delegate;let e=()=>{},t=()=>{};return e=null!=r.next?r.next.bind(r):r,null!=r.error?t=r.error.bind(r):a&&(t=a),R(o,"EXTERNAL",e,t),()=>P(o.app,e)}throw L.create("use-before-activation",{appName:this.app.name})}}let Ae=e=>{var t=e.getProvider("app-compat").getImmediate();return new ye(t)};r.default.INTERNAL.registerComponent(new l("appCheck-compat",Ae,"PUBLIC").setServiceProps({ReCaptchaEnterpriseProvider:N,ReCaptchaV3Provider:O,CustomProvider:M})),r.default.registerVersion("@firebase/app-check-compat","0.3.18-canary.70e08cf95")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-app-check-compat.js - be sure to load firebase-app.js first.")}});
`)}function se(){var e,t=(()=>{if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")})(),r=u;r.initialized=!0,"string"!=typeof t.FIREBASE_APPCHECK_DEBUG_TOKEN&&!0!==t.FIREBASE_APPCHECK_DEBUG_TOKEN||(r.enabled=!0,e=new s,r.token=e,"string"==typeof t.FIREBASE_APPCHECK_DEBUG_TOKEN?e.resolve(t.FIREBASE_APPCHECK_DEBUG_TOKEN):e.resolve(ne()))}let ce={error:"UNKNOWN_ERROR"};async function C(e,t=!1){var r,a=e.app;E(a);let o=d(a),i=o.token,n=void 0;if(i&&!P(i)&&(o.token=void 0,i=void 0),i||(r=await o.cachedTokenPromise)&&(P(r)?i=r:await y(a,void 0)),!t&&i&&P(i))return{token:i.token};let s=!1;if(A())try{o.exchangeTokenPromise||(o.exchangeTokenPromise=m(J(a,await T()),e.heartbeatServiceProvider).finally(()=>{o.exchangeTokenPromise=void 0}),s=!0);var c=await o.exchangeTokenPromise;return await y(a,c),{token:(o.token=c).token}}catch(e){return"appCheck/throttled"===e.code?b.warn(e.message):b.error(e),I(e)}try{o.exchangeTokenPromise||(o.exchangeTokenPromise=o.provider.getToken().finally(()=>{o.exchangeTokenPromise=void 0}),s=!0),i=await d(a).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code?b.warn(e.message):b.error(e),n=e}let h;return i?n?h=P(i)?{token:i.token,internalError:n}:I(n):(h={token:i.token},await y(a,o.token=i)):h=I(n),s&&le(a,h),h}function S(t,e,r,a){var o=t.app,o=d(o),i={next:r,error:a,type:e};if(o.tokenObservers=[...o.tokenObservers,i],o.token&&P(o.token)){let e=o.token;Promise.resolve().then(()=>{r({token:e.token}),he(t)}).catch(()=>{})}o.cachedTokenPromise.then(()=>he(t))}function R(e,t){var r=d(e),a=r.tokenObservers.filter(e=>e.next!==t);0===a.length&&r.tokenRefresher&&r.tokenRefresher.isRunning()&&r.tokenRefresher.stop(),r.tokenObservers=a}function he(e){var t=e.app,t=d(t);let r=t.tokenRefresher;r||(r=(r=>{let a=r.app;return new X(async()=>{var e=d(a);let t;if((t=e.token?await C(r,!0):await C(r)).error)throw t.error;if(t.internalError)throw t.internalError},()=>!0,()=>{var e,t=d(a);return t.token?(e=t.token.issuedAtTimeMillis+.5*(t.token.expireTimeMillis-t.token.issuedAtTimeMillis)+3e5,t=t.token.expireTimeMillis-3e5,e=Math.min(e,t),Math.max(0,e-Date.now())):0},G.RETRIAL_MIN_WAIT,G.RETRIAL_MAX_WAIT)})(e),t.tokenRefresher=r),!r.isRunning()&&t.isTokenAutoRefreshEnabled&&r.start()}function le(e,t){var r;for(r of d(e).tokenObservers)try{"EXTERNAL"===r.type&&null!=t.error?r.error(t.error):r.next(t)}catch(e){}}function P(e){return 0<e.expireTimeMillis-Date.now()}function I(e){return{token:(t=ce,a.encodeString(JSON.stringify(t),!1)),error:e};var t}class pe{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){var e,t=d(this.app).tokenObservers;for(e of t)R(this.app,e.next);return Promise.resolve()}}function ue(t){return{getToken:e=>C(t,e),getLimitedUseToken:()=>(async e=>{var t=e.app,r=(E(t),d(t)).provider;return A()?{token:t=(await m(J(t,await T()),e.heartbeatServiceProvider)).token}:{token:t=(await r.getToken()).token}})(t),addTokenListener:e=>S(t,"INTERNAL",e),removeTokenListener:e=>R(t.app,e)}}let de="https://www.google.com/recaptcha/api.js",ge="https://www.google.com/recaptcha/enterprise.js";function fe(t,r){let a=new s;d(t).reCAPTCHAState={initialized:a};let o=Ee(t);var e,i=v(!1);return i?D(t,r,i,o,a):(e=()=>{var e=v(!1);if(!e)throw new Error("no recaptcha");D(t,r,e,o,a)},(i=document.createElement("script")).src=de,i.onload=e,document.head.appendChild(i)),a.promise}function ve(t,r){let a=new s;d(t).reCAPTCHAState={initialized:a};let o=Ee(t);var e,i=v(!0);return i?D(t,r,i,o,a):(e=()=>{var e=v(!0);if(!e)throw new Error("no recaptcha");D(t,r,e,o,a)},(i=document.createElement("script")).src=ge,i.onload=e,document.head.appendChild(i)),a.promise}function D(a,o,i,n,s){i.ready(()=>{var e,t,r;e=a,t=i.render(n,{sitekey:o,size:"invisible",callback:()=>{d(e).reCAPTCHAState.succeeded=!0},"error-callback":()=>{d(e).reCAPTCHAState.succeeded=!1}}),(r=d(e)).reCAPTCHAState=Object.assign(Object.assign({},r.reCAPTCHAState),{widgetId:t}),s.resolve(i)})}function Ee(e){var t="fire_app_check_"+e.name,r=document.createElement("div");return r.id=t,r.style.display="none",document.body.appendChild(r),t}async function we(a){E(a);let o=await d(a).reCAPTCHAState.initialized.promise;return new Promise((e,t)=>{let r=d(a).reCAPTCHAState;o.ready(()=>{e(o.execute(r.widgetId,{action:"fire_app_check"}))})})}class O{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){me(this._throttleData);var t,r=await we(this._app).catch(e=>{throw f.create("recaptcha-error")});if(null==(t=d(this._app).reCAPTCHAState)||!t.succeeded)throw f.create("recaptcha-error");let e;try{e=await m(((e,t)=>{var{projectId:r,appId:a,apiKey:o}=e.options;return{url:g+`/projects/${r}/apps/${a}:exchangeRecaptchaV3Token?key=`+o,body:{recaptcha_v3_token:t}}})(this._app,r),this._heartbeatServiceProvider)}catch(e){throw null!=(t=e.code)&&t.includes("fetch-status-error")?(this._throttleData=_e(Number(null==(r=e.customData)?void 0:r.httpStatus),this._throttleData),f.create("throttled",{time:w(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,e}initialize(e){this._app=e,this._heartbeatServiceProvider=Ce._getProvider(e,"heartbeat"),fe(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof O&&this._siteKey===e._siteKey}}class N{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){me(this._throttleData);var t,r=await we(this._app).catch(e=>{throw f.create("recaptcha-error")});if(null==(t=d(this._app).reCAPTCHAState)||!t.succeeded)throw f.create("recaptcha-error");let e;try{e=await m(((e,t)=>{var{projectId:r,appId:a,apiKey:o}=e.options;return{url:g+`/projects/${r}/apps/${a}:exchangeRecaptchaEnterpriseToken?key=`+o,body:{recaptcha_enterprise_token:t}}})(this._app,r),this._heartbeatServiceProvider)}catch(e){throw null!=(t=e.code)&&t.includes("fetch-status-error")?(this._throttleData=_e(Number(null==(r=e.customData)?void 0:r.httpStatus),this._throttleData),f.create("throttled",{time:w(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,e}initialize(e){this._app=e,this._heartbeatServiceProvider=Ce._getProvider(e,"heartbeat"),ve(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof N&&this._siteKey===e._siteKey}}class M{constructor(e){this._customProviderOptions=e}async getToken(){var e=await this._customProviderOptions.getToken(),t=j(e.token),t=null!==t&&t<Date.now()&&0<t?1e3*t:Date.now();return Object.assign(Object.assign({},e),{issuedAtTimeMillis:t})}initialize(e){this._app=e}isEqual(e){return e instanceof M&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function _e(e,t){var r,a,o;return 404===e||403===e?{backoffCount:1,allowRequestsAfter:Date.now()+864e5,httpStatus:e}:(r=t?t.backoffCount:0,t=2,a=1e3*Math.pow(t,r),o=Math.round(F*a*(Math.random()-.5)*2),a=Math.min(W,a+o),{backoffCount:r+1,allowRequestsAfter:Date.now()+a,httpStatus:e})}function me(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw f.create("throttled",{time:w(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function ke(e=Ce.getApp(),r){e=(n=e)&&n._delegate?n._delegate:n;var t=Ce._getProvider(e,"app-check");if(u.initialized||se(),A()&&T().then(e=>console.log(`App Check debug token: ${e}. You will need to add it to your app's App Check settings in the Firebase console for it to work.`)),t.isInitialized()){var a=t.getImmediate(),o=t.getOptions();if(o.isTokenAutoRefreshEnabled===r.isTokenAutoRefreshEnabled&&o.provider.isEqual(r.provider))return a;throw f.create("already-initialized",{appName:e.name})}o=t.initialize({options:r});{var i=e,n=r.provider;r=r.isTokenAutoRefreshEnabled;let t=((e,t)=>(p.set(e,t),p.get(e)))(i,Object.assign({},z));t.activated=!0,t.provider=n,t.cachedTokenPromise=ie(i).then(e=>(e&&P(e)&&(t.token=e,le(i,{token:e.token})),e)),t.isTokenAutoRefreshEnabled=void 0===r?i.automaticDataCollectionEnabled:r,t.provider.initialize(i)}return d(e).isTokenAutoRefreshEnabled&&S(o,"INTERNAL",()=>{}),o}let be="app-check-internal";Ce._registerComponent(new l("app-check",e=>{var t,r=e.getProvider("app").getImmediate(),a=e.getProvider("heartbeat");return e=r,t=a,new pe(e,t)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider(be).initialize()})),Ce._registerComponent(new l(be,e=>ue(e.getProvider("app-check").getImmediate()),"PUBLIC").setInstantiationMode("EXPLICIT")),Ce.registerVersion("@firebase/app-check","0.8.11-canary.84dfeca39");let L=new i("appCheck","AppCheck",{"use-before-activation":"App Check is being used before activate() is called for FirebaseApp {$appName}. Call activate() before instantiating other Firebase services."});class ye{constructor(e){this.app=e}activate(e,t){let r;r="string"==typeof e?new O(e):e instanceof N||e instanceof O||e instanceof M?e:new M({getToken:e.getToken}),this._delegate=ke(this.app,{provider:r,isTokenAutoRefreshEnabled:t})}setTokenAutoRefreshEnabled(e){if(!this._delegate)throw L.create("use-before-activation",{appName:this.app.name});var t,r;t=this._delegate,e=e,(r=d(t.app)).tokenRefresher&&(!0===e?r.tokenRefresher.start():r.tokenRefresher.stop()),r.isTokenAutoRefreshEnabled=e}getToken(e){if(this._delegate)return(async(e,t)=>{var r=await C(e,t);if(r.error)throw r.error;return{token:r.token}})(this._delegate,e);throw L.create("use-before-activation",{appName:this.app.name})}onTokenChanged(r,a,e){if(this._delegate){var o=this._delegate;let e=()=>{},t=()=>{};return e=null!=r.next?r.next.bind(r):r,null!=r.error?t=r.error.bind(r):a&&(t=a),S(o,"EXTERNAL",e,t),()=>R(o.app,e)}throw L.create("use-before-activation",{appName:this.app.name})}}let Ae=e=>{var t=e.getProvider("app-compat").getImmediate();return new ye(t)};r.default.INTERNAL.registerComponent(new l("appCheck-compat",Ae,"PUBLIC").setServiceProps({ReCaptchaEnterpriseProvider:N,ReCaptchaV3Provider:O,CustomProvider:M})),r.default.registerVersion("@firebase/app-check-compat","0.3.18-canary.84dfeca39")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-app-check-compat.js - be sure to load firebase-app.js first.")}});
//# sourceMappingURL=firebase-app-check-compat.js.map

@@ -1,3 +0,3 @@

import{_getProvider,getApp as e,_registerComponent as t,registerVersion as r}from"https://www.gstatic.com/firebasejs/11.3.0-canary.70e08cf95/firebase-app.js";const n={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_();const r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t<e.length;t+=3){const o=e[t],i=t+1<e.length,a=i?e[t+1]:0,s=t+2<e.length,c=s?e[t+2]:0,h=o>>2,l=(3&o)<<4|a>>4;let u=(15&a)<<2|c>>6,d=63&c;s||(d=64,i||(u=64)),n.push(r[h],r[l],r[u],r[d])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(function(e){const t=[];let r=0;for(let n=0;n<e.length;n++){let o=e.charCodeAt(n);o<128?t[r++]=o:o<2048?(t[r++]=o>>6|192,t[r++]=63&o|128):55296==(64512&o)&&n+1<e.length&&56320==(64512&e.charCodeAt(n+1))?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++n)),t[r++]=o>>18|240,t[r++]=o>>12&63|128,t[r++]=o>>6&63|128,t[r++]=63&o|128):(t[r++]=o>>12|224,t[r++]=o>>6&63|128,t[r++]=63&o|128)}return t}(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let r=0,n=0;for(;r<e.length;){const o=e[r++];if(o<128)t[n++]=String.fromCharCode(o);else if(o>191&&o<224){const i=e[r++];t[n++]=String.fromCharCode((31&o)<<6|63&i)}else if(o>239&&o<365){const i=((7&o)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(i>>10)),t[n++]=String.fromCharCode(56320+(1023&i))}else{const i=e[r++],a=e[r++];t[n++]=String.fromCharCode((15&o)<<12|(63&i)<<6|63&a)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t<e.length;){const o=r[e.charAt(t++)],i=t<e.length?r[e.charAt(t)]:0;++t;const a=t<e.length?r[e.charAt(t)]:64;++t;const s=t<e.length?r[e.charAt(t)]:64;if(++t,null==o||null==i||null==a||null==s)throw new DecodeBase64StringError;const c=o<<2|i>>4;if(n.push(c),64!==a){const e=i<<4&240|a>>2;if(n.push(e),64!==s){const e=a<<6&192|s;n.push(e)}}}return n},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 DecodeBase64StringError extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const base64Decode=function(e){try{return n.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};class Deferred{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,r))}}}function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(e){return!1}}class FirebaseError extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){const r=t[0]||{},n=`${this.service}/${e}`,i=this.errors[e],a=i?function replaceTemplate(e,t){return e.replace(o,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}(i,r):"Error",s=`${this.serviceName}: ${a} (${n}).`;return new FirebaseError(n,s,r)}}const o=/\{\$([^}]+)}/g;function jsonEval(e){return JSON.parse(e)}const issuedAtTime=function(e){const t=function(e){let t={},r={},n={},o="";try{const i=e.split(".");t=jsonEval(base64Decode(i[0])||""),r=jsonEval(base64Decode(i[1])||""),o=i[2],n=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:o}}(e).claims;return"object"==typeof t&&t.hasOwnProperty("iat")?t.iat:null};class Component{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}var i;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(i||(i={}));const a={debug:i.DEBUG,verbose:i.VERBOSE,info:i.INFO,warn:i.WARN,error:i.ERROR,silent:i.SILENT},s=i.INFO,c={[i.DEBUG]:"log",[i.VERBOSE]:"log",[i.INFO]:"info",[i.WARN]:"warn",[i.ERROR]:"error"},defaultLogHandler=(e,t,...r)=>{if(t<e.logLevel)return;const n=(new Date).toISOString(),o=c[t];if(!o)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[o](`[${n}] ${e.name}:`,...r)};const h=new Map,l={activated:!1,tokenObservers:[]},u={initialized:!1,enabled:!1};function getStateReference(e){return h.get(e)||Object.assign({},l)}function getDebugState(){return u}const d="https://content-firebaseappcheck.googleapis.com/v1",p=3e4,g=96e4;class Refresher{constructor(e,t,r,n,o){if(this.operation=e,this.retryPolicy=t,this.getWaitDuration=r,this.lowerBound=n,this.upperBound=o,this.pending=null,this.nextErrorWaitInterval=n,n>o)throw new Error("Proactive refresh lower bound greater than upper bound!")}start(){this.nextErrorWaitInterval=this.lowerBound,this.process(!0).catch((()=>{}))}stop(){this.pending&&(this.pending.reject("cancelled"),this.pending=null)}isRunning(){return!!this.pending}async process(e){this.stop();try{this.pending=new Deferred,this.pending.promise.catch((e=>{})),await function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}(this.getNextRun(e)),this.pending.resolve(),await this.pending.promise,this.pending=new Deferred,this.pending.promise.catch((e=>{})),await this.operation(),this.pending.resolve(),await this.pending.promise,this.process(!0).catch((()=>{}))}catch(e){this.retryPolicy(e)?this.process(!1).catch((()=>{})):this.stop()}}getNextRun(e){if(e)return this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration();{const e=this.nextErrorWaitInterval;return this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),e}}}const f=new ErrorFactory("appCheck","AppCheck",{"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.",throttled:"Requests throttled due to {$httpStatus} error. Attempts allowed again after {$time}"});function getRecaptcha(e=!1){var t;return e?null===(t=self.grecaptcha)||void 0===t?void 0:t.enterprise:self.grecaptcha}function ensureActivated(e){if(!getStateReference(e).activated)throw f.create("use-before-activation",{appName:e.name})}function getDurationString(e){const t=Math.round(e/1e3),r=Math.floor(t/86400),n=Math.floor((t-3600*r*24)/3600),o=Math.floor((t-3600*r*24-3600*n)/60),i=t-3600*r*24-3600*n-60*o;let a="";return r&&(a+=pad(r)+"d:"),n&&(a+=pad(n)+"h:"),a+=pad(o)+"m:"+pad(i)+"s",a}function pad(e){return 0===e?"00":e>=10?e.toString():"0"+e}async function exchangeToken({url:e,body:t},r){const n={"Content-Type":"application/json"},o=r.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&(n["X-Firebase-Client"]=e)}const i={method:"POST",body:JSON.stringify(t),headers:n};let a,s;try{a=await fetch(e,i)}catch(e){throw f.create("fetch-network-error",{originalErrorMessage:null==e?void 0:e.message})}if(200!==a.status)throw f.create("fetch-status-error",{httpStatus:a.status});try{s=await a.json()}catch(e){throw f.create("fetch-parse-error",{originalErrorMessage:null==e?void 0:e.message})}const c=s.ttl.match(/^([\d.]+)(s)$/);if(!c||!c[2]||isNaN(Number(c[1])))throw f.create("fetch-parse-error",{originalErrorMessage:`ttl field (timeToLive) is not in standard Protobuf Duration format: ${s.ttl}`});const h=1e3*Number(c[1]),l=Date.now();return{token:s.token,expireTimeMillis:l+h,issuedAtTimeMillis:l}}function getExchangeDebugTokenRequest(e,t){const{projectId:r,appId:n,apiKey:o}=e.options;return{url:`${d}/projects/${r}/apps/${n}:exchangeDebugToken?key=${o}`,body:{debug_token:t}}}const k="firebase-app-check-store",T="debug-token";let E=null;function getDBPromise(){return E||(E=new Promise(((e,t)=>{try{const r=indexedDB.open("firebase-app-check-database",1);r.onsuccess=t=>{e(t.target.result)},r.onerror=e=>{var r;t(f.create("storage-open",{originalErrorMessage:null===(r=e.target.error)||void 0===r?void 0:r.message}))},r.onupgradeneeded=e=>{const t=e.target.result;if(0===e.oldVersion)t.createObjectStore(k,{keyPath:"compositeKey"})}}catch(e){t(f.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}})),E)}async function write(e,t){const r=(await getDBPromise()).transaction(k,"readwrite"),n=r.objectStore(k).put({compositeKey:e,value:t});return new Promise(((e,t)=>{n.onsuccess=t=>{e()},r.onerror=e=>{var r;t(f.create("storage-set",{originalErrorMessage:null===(r=e.target.error)||void 0===r?void 0:r.message}))}}))}async function read(e){const t=(await getDBPromise()).transaction(k,"readonly"),r=t.objectStore(k).get(e);return new Promise(((e,n)=>{r.onsuccess=t=>{const r=t.target.result;e(r?r.value:void 0)},t.onerror=e=>{var t;n(f.create("storage-get",{originalErrorMessage:null===(t=e.target.error)||void 0===t?void 0:t.message}))}}))}function computeKey(e){return`${e.options.appId}-${e.name}`}const m=new class Logger{constructor(e){this.name=e,this._logLevel=s,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in i))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?a[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,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)}}("@firebase/app-check");async function readTokenFromStorage(e){if(isIndexedDBAvailable()){let t;try{t=await function readTokenFromIndexedDB(e){return read(computeKey(e))}(e)}catch(e){m.warn(`Failed to read token from IndexedDB. Error: ${e}`)}return t}}function writeTokenToStorage(e,t){return isIndexedDBAvailable()?function writeTokenToIndexedDB(e,t){return write(computeKey(e),t)}(e,t).catch((e=>{m.warn(`Failed to write token to IndexedDB. Error: ${e}`)})):Promise.resolve()}async function readOrCreateDebugTokenFromStorage(){let e;try{e=await function readDebugTokenFromIndexedDB(){return read(T)}()}catch(e){}if(e)return e;{const e=crypto.randomUUID();return function writeDebugTokenToIndexedDB(e){return write(T,e)}(e).catch((e=>m.warn(`Failed to persist debug token to IndexedDB. Error: ${e}`))),e}}function isDebugMode(){return getDebugState().enabled}async function getDebugToken(){const e=getDebugState();if(e.enabled&&e.token)return e.token.promise;throw Error("\n Can't get debug token in production mode.\n ")}function initializeDebugMode(){const e=function getGlobal(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}(),t=getDebugState();if(t.initialized=!0,"string"!=typeof e.FIREBASE_APPCHECK_DEBUG_TOKEN&&!0!==e.FIREBASE_APPCHECK_DEBUG_TOKEN)return;t.enabled=!0;const r=new Deferred;t.token=r,"string"==typeof e.FIREBASE_APPCHECK_DEBUG_TOKEN?r.resolve(e.FIREBASE_APPCHECK_DEBUG_TOKEN):r.resolve(readOrCreateDebugTokenFromStorage())}const v={error:"UNKNOWN_ERROR"};async function getToken$2(e,t=!1){const r=e.app;ensureActivated(r);const n=getStateReference(r);let o,i=n.token;if(i&&!isValid(i)&&(n.token=void 0,i=void 0),!i){const e=await n.cachedTokenPromise;e&&(isValid(e)?i=e:await writeTokenToStorage(r,void 0))}if(!t&&i&&isValid(i))return{token:i.token};let a,s=!1;if(isDebugMode()){n.exchangeTokenPromise||(n.exchangeTokenPromise=exchangeToken(getExchangeDebugTokenRequest(r,await getDebugToken()),e.heartbeatServiceProvider).finally((()=>{n.exchangeTokenPromise=void 0})),s=!0);const t=await n.exchangeTokenPromise;return await writeTokenToStorage(r,t),n.token=t,{token:t.token}}try{n.exchangeTokenPromise||(n.exchangeTokenPromise=n.provider.getToken().finally((()=>{n.exchangeTokenPromise=void 0})),s=!0),i=await getStateReference(r).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code?m.warn(e.message):m.error(e),o=e}return i?o?a=isValid(i)?{token:i.token,internalError:o}:makeDummyTokenResult(o):(a={token:i.token},n.token=i,await writeTokenToStorage(r,i)):a=makeDummyTokenResult(o),s&&notifyTokenListeners(r,a),a}async function getLimitedUseToken$1(e){const t=e.app;ensureActivated(t);const{provider:r}=getStateReference(t);if(isDebugMode()){const r=await getDebugToken(),{token:n}=await exchangeToken(getExchangeDebugTokenRequest(t,r),e.heartbeatServiceProvider);return{token:n}}{const{token:e}=await r.getToken();return{token:e}}}function addTokenListener(e,t,r,n){const{app:o}=e,i=getStateReference(o),a={next:r,error:n,type:t};if(i.tokenObservers=[...i.tokenObservers,a],i.token&&isValid(i.token)){const t=i.token;Promise.resolve().then((()=>{r({token:t.token}),initTokenRefresher(e)})).catch((()=>{}))}i.cachedTokenPromise.then((()=>initTokenRefresher(e)))}function removeTokenListener(e,t){const r=getStateReference(e),n=r.tokenObservers.filter((e=>e.next!==t));0===n.length&&r.tokenRefresher&&r.tokenRefresher.isRunning()&&r.tokenRefresher.stop(),r.tokenObservers=n}function initTokenRefresher(e){const{app:t}=e,r=getStateReference(t);let n=r.tokenRefresher;n||(n=function createTokenRefresher(e){const{app:t}=e;return new Refresher((async()=>{let r;if(r=getStateReference(t).token?await getToken$2(e,!0):await getToken$2(e),r.error)throw r.error;if(r.internalError)throw r.internalError}),(()=>!0),(()=>{const e=getStateReference(t);if(e.token){let t=e.token.issuedAtTimeMillis+.5*(e.token.expireTimeMillis-e.token.issuedAtTimeMillis)+3e5;const r=e.token.expireTimeMillis-3e5;return t=Math.min(t,r),Math.max(0,t-Date.now())}return 0}),p,g)}(e),r.tokenRefresher=n),!n.isRunning()&&r.isTokenAutoRefreshEnabled&&n.start()}function notifyTokenListeners(e,t){const r=getStateReference(e).tokenObservers;for(const e of r)try{"EXTERNAL"===e.type&&null!=t.error?e.error(t.error):e.next(t)}catch(e){}}function isValid(e){return e.expireTimeMillis-Date.now()>0}function makeDummyTokenResult(e){return{token:(t=v,n.encodeString(JSON.stringify(t),!1)),error:e};var t}class AppCheckService{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){const{tokenObservers:e}=getStateReference(this.app);for(const t of e)removeTokenListener(this.app,t.next);return Promise.resolve()}}const w="https://www.google.com/recaptcha/api.js",b="https://www.google.com/recaptcha/enterprise.js";function initializeV3(e,t){const r=new Deferred;getStateReference(e).reCAPTCHAState={initialized:r};const n=makeDiv(e),o=getRecaptcha(!1);return o?queueWidgetRender(e,t,o,n,r):function loadReCAPTCHAV3Script(e){const t=document.createElement("script");t.src=w,t.onload=e,document.head.appendChild(t)}((()=>{const o=getRecaptcha(!1);if(!o)throw new Error("no recaptcha");queueWidgetRender(e,t,o,n,r)})),r.promise}function initializeEnterprise(e,t){const r=new Deferred;getStateReference(e).reCAPTCHAState={initialized:r};const n=makeDiv(e),o=getRecaptcha(!0);return o?queueWidgetRender(e,t,o,n,r):function loadReCAPTCHAEnterpriseScript(e){const t=document.createElement("script");t.src=b,t.onload=e,document.head.appendChild(t)}((()=>{const o=getRecaptcha(!0);if(!o)throw new Error("no recaptcha");queueWidgetRender(e,t,o,n,r)})),r.promise}function queueWidgetRender(e,t,r,n,o){r.ready((()=>{!function renderInvisibleWidget(e,t,r,n){const o=r.render(n,{sitekey:t,size:"invisible",callback:()=>{getStateReference(e).reCAPTCHAState.succeeded=!0},"error-callback":()=>{getStateReference(e).reCAPTCHAState.succeeded=!1}}),i=getStateReference(e);i.reCAPTCHAState=Object.assign(Object.assign({},i.reCAPTCHAState),{widgetId:o})}(e,t,r,n),o.resolve(r)}))}function makeDiv(e){const t=`fire_app_check_${e.name}`,r=document.createElement("div");return r.id=t,r.style.display="none",document.body.appendChild(r),t}async function getToken$1(e){ensureActivated(e);const t=getStateReference(e).reCAPTCHAState,r=await t.initialized.promise;return new Promise(((t,n)=>{const o=getStateReference(e).reCAPTCHAState;r.ready((()=>{t(r.execute(o.widgetId,{action:"fire_app_check"}))}))}))}class ReCaptchaV3Provider{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){var e,t,r;throwIfThrottled(this._throttleData);const n=await getToken$1(this._app).catch((e=>{throw f.create("recaptcha-error")}));if(!(null===(e=getStateReference(this._app).reCAPTCHAState)||void 0===e?void 0:e.succeeded))throw f.create("recaptcha-error");let o;try{o=await exchangeToken(function getExchangeRecaptchaV3TokenRequest(e,t){const{projectId:r,appId:n,apiKey:o}=e.options;return{url:`${d}/projects/${r}/apps/${n}:exchangeRecaptchaV3Token?key=${o}`,body:{recaptcha_v3_token:t}}}(this._app,n),this._heartbeatServiceProvider)}catch(e){throw(null===(t=e.code)||void 0===t?void 0:t.includes("fetch-status-error"))?(this._throttleData=setBackoff(Number(null===(r=e.customData)||void 0===r?void 0:r.httpStatus),this._throttleData),f.create("throttled",{time:getDurationString(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,o}initialize(e){this._app=e,this._heartbeatServiceProvider=_getProvider(e,"heartbeat"),initializeV3(e,this._siteKey).catch((()=>{}))}isEqual(e){return e instanceof ReCaptchaV3Provider&&this._siteKey===e._siteKey}}class ReCaptchaEnterpriseProvider{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){var e,t,r;throwIfThrottled(this._throttleData);const n=await getToken$1(this._app).catch((e=>{throw f.create("recaptcha-error")}));if(!(null===(e=getStateReference(this._app).reCAPTCHAState)||void 0===e?void 0:e.succeeded))throw f.create("recaptcha-error");let o;try{o=await exchangeToken(function getExchangeRecaptchaEnterpriseTokenRequest(e,t){const{projectId:r,appId:n,apiKey:o}=e.options;return{url:`${d}/projects/${r}/apps/${n}:exchangeRecaptchaEnterpriseToken?key=${o}`,body:{recaptcha_enterprise_token:t}}}(this._app,n),this._heartbeatServiceProvider)}catch(e){throw(null===(t=e.code)||void 0===t?void 0:t.includes("fetch-status-error"))?(this._throttleData=setBackoff(Number(null===(r=e.customData)||void 0===r?void 0:r.httpStatus),this._throttleData),f.create("throttled",{time:getDurationString(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,o}initialize(e){this._app=e,this._heartbeatServiceProvider=_getProvider(e,"heartbeat"),initializeEnterprise(e,this._siteKey).catch((()=>{}))}isEqual(e){return e instanceof ReCaptchaEnterpriseProvider&&this._siteKey===e._siteKey}}class CustomProvider{constructor(e){this._customProviderOptions=e}async getToken(){const e=await this._customProviderOptions.getToken(),t=issuedAtTime(e.token),r=null!==t&&t<Date.now()&&t>0?1e3*t:Date.now();return Object.assign(Object.assign({},e),{issuedAtTimeMillis:r})}initialize(e){this._app=e}isEqual(e){return e instanceof CustomProvider&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function setBackoff(e,t){if(404===e||403===e)return{backoffCount:1,allowRequestsAfter:Date.now()+864e5,httpStatus:e};{const r=t?t.backoffCount:0,n=function calculateBackoffMillis(e,t=1e3,r=2){const n=t*Math.pow(r,e),o=Math.round(.5*n*(Math.random()-.5)*2);return Math.min(144e5,n+o)}(r,1e3,2);return{backoffCount:r+1,allowRequestsAfter:Date.now()+n,httpStatus:e}}}function throwIfThrottled(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw f.create("throttled",{time:getDurationString(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function initializeAppCheck(t=e(),r){t=function getModularInstance(e){return e&&e._delegate?e._delegate:e}(t);const n=_getProvider(t,"app-check");if(getDebugState().initialized||initializeDebugMode(),isDebugMode()&&getDebugToken().then((e=>console.log(`App Check debug token: ${e}. You will need to add it to your app's App Check settings in the Firebase console for it to work.`))),n.isInitialized()){const e=n.getImmediate(),o=n.getOptions();if(o.isTokenAutoRefreshEnabled===r.isTokenAutoRefreshEnabled&&o.provider.isEqual(r.provider))return e;throw f.create("already-initialized",{appName:t.name})}const o=n.initialize({options:r});return function _activate(e,t,r){const n=function setInitialState(e,t){return h.set(e,t),h.get(e)}(e,Object.assign({},l));n.activated=!0,n.provider=t,n.cachedTokenPromise=readTokenFromStorage(e).then((t=>(t&&isValid(t)&&(n.token=t,notifyTokenListeners(e,{token:t.token})),t))),n.isTokenAutoRefreshEnabled=void 0===r?e.automaticDataCollectionEnabled:r,n.provider.initialize(e)}(t,r.provider,r.isTokenAutoRefreshEnabled),getStateReference(t).isTokenAutoRefreshEnabled&&addTokenListener(o,"INTERNAL",(()=>{})),o}function setTokenAutoRefreshEnabled(e,t){const r=getStateReference(e.app);r.tokenRefresher&&(!0===t?r.tokenRefresher.start():r.tokenRefresher.stop()),r.isTokenAutoRefreshEnabled=t}async function getToken(e,t){const r=await getToken$2(e,t);if(r.error)throw r.error;return{token:r.token}}function getLimitedUseToken(e){return getLimitedUseToken$1(e)}function onTokenChanged(e,t,r,n){let nextFn=()=>{},errorFn=()=>{};return nextFn=null!=t.next?t.next.bind(t):t,null!=t.error?errorFn=t.error.bind(t):r&&(errorFn=r),addTokenListener(e,"EXTERNAL",nextFn,errorFn),()=>removeTokenListener(e.app,nextFn)}const S="app-check-internal";!function registerAppCheck(){t(new Component("app-check",(e=>function factory(e,t){return new AppCheckService(e,t)}(e.getProvider("app").getImmediate(),e.getProvider("heartbeat"))),"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback(((e,t,r)=>{e.getProvider(S).initialize()}))),t(new Component(S,(e=>function internalFactory(e){return{getToken:t=>getToken$2(e,t),getLimitedUseToken:()=>getLimitedUseToken$1(e),addTokenListener:t=>addTokenListener(e,"INTERNAL",t),removeTokenListener:t=>removeTokenListener(e.app,t)}}(e.getProvider("app-check").getImmediate())),"PUBLIC").setInstantiationMode("EXPLICIT")),r("@firebase/app-check","0.8.11-canary.70e08cf95")}();export{CustomProvider,ReCaptchaEnterpriseProvider,ReCaptchaV3Provider,getLimitedUseToken,getToken,initializeAppCheck,onTokenChanged,setTokenAutoRefreshEnabled};
import{_getProvider,getApp as e,_registerComponent as t,registerVersion as r}from"https://www.gstatic.com/firebasejs/11.3.0-canary.84dfeca39/firebase-app.js";const n={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_();const r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let t=0;t<e.length;t+=3){const o=e[t],i=t+1<e.length,a=i?e[t+1]:0,s=t+2<e.length,c=s?e[t+2]:0,h=o>>2,l=(3&o)<<4|a>>4;let u=(15&a)<<2|c>>6,d=63&c;s||(d=64,i||(u=64)),n.push(r[h],r[l],r[u],r[d])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(function(e){const t=[];let r=0;for(let n=0;n<e.length;n++){let o=e.charCodeAt(n);o<128?t[r++]=o:o<2048?(t[r++]=o>>6|192,t[r++]=63&o|128):55296==(64512&o)&&n+1<e.length&&56320==(64512&e.charCodeAt(n+1))?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++n)),t[r++]=o>>18|240,t[r++]=o>>12&63|128,t[r++]=o>>6&63|128,t[r++]=63&o|128):(t[r++]=o>>12|224,t[r++]=o>>6&63|128,t[r++]=63&o|128)}return t}(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let r=0,n=0;for(;r<e.length;){const o=e[r++];if(o<128)t[n++]=String.fromCharCode(o);else if(o>191&&o<224){const i=e[r++];t[n++]=String.fromCharCode((31&o)<<6|63&i)}else if(o>239&&o<365){const i=((7&o)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536;t[n++]=String.fromCharCode(55296+(i>>10)),t[n++]=String.fromCharCode(56320+(1023&i))}else{const i=e[r++],a=e[r++];t[n++]=String.fromCharCode((15&o)<<12|(63&i)<<6|63&a)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let t=0;t<e.length;){const o=r[e.charAt(t++)],i=t<e.length?r[e.charAt(t)]:0;++t;const a=t<e.length?r[e.charAt(t)]:64;++t;const s=t<e.length?r[e.charAt(t)]:64;if(++t,null==o||null==i||null==a||null==s)throw new DecodeBase64StringError;const c=o<<2|i>>4;if(n.push(c),64!==a){const e=i<<4&240|a>>2;if(n.push(e),64!==s){const e=a<<6&192|s;n.push(e)}}}return n},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 DecodeBase64StringError extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const base64Decode=function(e){try{return n.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};class Deferred{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,r))}}}function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(e){return!1}}class FirebaseError extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){const r=t[0]||{},n=`${this.service}/${e}`,i=this.errors[e],a=i?function replaceTemplate(e,t){return e.replace(o,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}(i,r):"Error",s=`${this.serviceName}: ${a} (${n}).`;return new FirebaseError(n,s,r)}}const o=/\{\$([^}]+)}/g;function jsonEval(e){return JSON.parse(e)}const issuedAtTime=function(e){const t=function(e){let t={},r={},n={},o="";try{const i=e.split(".");t=jsonEval(base64Decode(i[0])||""),r=jsonEval(base64Decode(i[1])||""),o=i[2],n=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:o}}(e).claims;return"object"==typeof t&&t.hasOwnProperty("iat")?t.iat:null};class Component{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}var i;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(i||(i={}));const a={debug:i.DEBUG,verbose:i.VERBOSE,info:i.INFO,warn:i.WARN,error:i.ERROR,silent:i.SILENT},s=i.INFO,c={[i.DEBUG]:"log",[i.VERBOSE]:"log",[i.INFO]:"info",[i.WARN]:"warn",[i.ERROR]:"error"},defaultLogHandler=(e,t,...r)=>{if(t<e.logLevel)return;const n=(new Date).toISOString(),o=c[t];if(!o)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[o](`[${n}] ${e.name}:`,...r)};const h=new Map,l={activated:!1,tokenObservers:[]},u={initialized:!1,enabled:!1};function getStateReference(e){return h.get(e)||Object.assign({},l)}function getDebugState(){return u}const d="https://content-firebaseappcheck.googleapis.com/v1",p=3e4,g=96e4;class Refresher{constructor(e,t,r,n,o){if(this.operation=e,this.retryPolicy=t,this.getWaitDuration=r,this.lowerBound=n,this.upperBound=o,this.pending=null,this.nextErrorWaitInterval=n,n>o)throw new Error("Proactive refresh lower bound greater than upper bound!")}start(){this.nextErrorWaitInterval=this.lowerBound,this.process(!0).catch((()=>{}))}stop(){this.pending&&(this.pending.reject("cancelled"),this.pending=null)}isRunning(){return!!this.pending}async process(e){this.stop();try{this.pending=new Deferred,this.pending.promise.catch((e=>{})),await function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}(this.getNextRun(e)),this.pending.resolve(),await this.pending.promise,this.pending=new Deferred,this.pending.promise.catch((e=>{})),await this.operation(),this.pending.resolve(),await this.pending.promise,this.process(!0).catch((()=>{}))}catch(e){this.retryPolicy(e)?this.process(!1).catch((()=>{})):this.stop()}}getNextRun(e){if(e)return this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration();{const e=this.nextErrorWaitInterval;return this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),e}}}const f=new ErrorFactory("appCheck","AppCheck",{"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.",throttled:"Requests throttled due to {$httpStatus} error. Attempts allowed again after {$time}"});function getRecaptcha(e=!1){var t;return e?null===(t=self.grecaptcha)||void 0===t?void 0:t.enterprise:self.grecaptcha}function ensureActivated(e){if(!getStateReference(e).activated)throw f.create("use-before-activation",{appName:e.name})}function getDurationString(e){const t=Math.round(e/1e3),r=Math.floor(t/86400),n=Math.floor((t-3600*r*24)/3600),o=Math.floor((t-3600*r*24-3600*n)/60),i=t-3600*r*24-3600*n-60*o;let a="";return r&&(a+=pad(r)+"d:"),n&&(a+=pad(n)+"h:"),a+=pad(o)+"m:"+pad(i)+"s",a}function pad(e){return 0===e?"00":e>=10?e.toString():"0"+e}async function exchangeToken({url:e,body:t},r){const n={"Content-Type":"application/json"},o=r.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&(n["X-Firebase-Client"]=e)}const i={method:"POST",body:JSON.stringify(t),headers:n};let a,s;try{a=await fetch(e,i)}catch(e){throw f.create("fetch-network-error",{originalErrorMessage:null==e?void 0:e.message})}if(200!==a.status)throw f.create("fetch-status-error",{httpStatus:a.status});try{s=await a.json()}catch(e){throw f.create("fetch-parse-error",{originalErrorMessage:null==e?void 0:e.message})}const c=s.ttl.match(/^([\d.]+)(s)$/);if(!c||!c[2]||isNaN(Number(c[1])))throw f.create("fetch-parse-error",{originalErrorMessage:`ttl field (timeToLive) is not in standard Protobuf Duration format: ${s.ttl}`});const h=1e3*Number(c[1]),l=Date.now();return{token:s.token,expireTimeMillis:l+h,issuedAtTimeMillis:l}}function getExchangeDebugTokenRequest(e,t){const{projectId:r,appId:n,apiKey:o}=e.options;return{url:`${d}/projects/${r}/apps/${n}:exchangeDebugToken?key=${o}`,body:{debug_token:t}}}const k="firebase-app-check-store",T="debug-token";let E=null;function getDBPromise(){return E||(E=new Promise(((e,t)=>{try{const r=indexedDB.open("firebase-app-check-database",1);r.onsuccess=t=>{e(t.target.result)},r.onerror=e=>{var r;t(f.create("storage-open",{originalErrorMessage:null===(r=e.target.error)||void 0===r?void 0:r.message}))},r.onupgradeneeded=e=>{const t=e.target.result;if(0===e.oldVersion)t.createObjectStore(k,{keyPath:"compositeKey"})}}catch(e){t(f.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}})),E)}async function write(e,t){const r=(await getDBPromise()).transaction(k,"readwrite"),n=r.objectStore(k).put({compositeKey:e,value:t});return new Promise(((e,t)=>{n.onsuccess=t=>{e()},r.onerror=e=>{var r;t(f.create("storage-set",{originalErrorMessage:null===(r=e.target.error)||void 0===r?void 0:r.message}))}}))}async function read(e){const t=(await getDBPromise()).transaction(k,"readonly"),r=t.objectStore(k).get(e);return new Promise(((e,n)=>{r.onsuccess=t=>{const r=t.target.result;e(r?r.value:void 0)},t.onerror=e=>{var t;n(f.create("storage-get",{originalErrorMessage:null===(t=e.target.error)||void 0===t?void 0:t.message}))}}))}function computeKey(e){return`${e.options.appId}-${e.name}`}const m=new class Logger{constructor(e){this.name=e,this._logLevel=s,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in i))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?a[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,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)}}("@firebase/app-check");async function readTokenFromStorage(e){if(isIndexedDBAvailable()){let t;try{t=await function readTokenFromIndexedDB(e){return read(computeKey(e))}(e)}catch(e){m.warn(`Failed to read token from IndexedDB. Error: ${e}`)}return t}}function writeTokenToStorage(e,t){return isIndexedDBAvailable()?function writeTokenToIndexedDB(e,t){return write(computeKey(e),t)}(e,t).catch((e=>{m.warn(`Failed to write token to IndexedDB. Error: ${e}`)})):Promise.resolve()}async function readOrCreateDebugTokenFromStorage(){let e;try{e=await function readDebugTokenFromIndexedDB(){return read(T)}()}catch(e){}if(e)return e;{const e=crypto.randomUUID();return function writeDebugTokenToIndexedDB(e){return write(T,e)}(e).catch((e=>m.warn(`Failed to persist debug token to IndexedDB. Error: ${e}`))),e}}function isDebugMode(){return getDebugState().enabled}async function getDebugToken(){const e=getDebugState();if(e.enabled&&e.token)return e.token.promise;throw Error("\n Can't get debug token in production mode.\n ")}function initializeDebugMode(){const e=function getGlobal(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}(),t=getDebugState();if(t.initialized=!0,"string"!=typeof e.FIREBASE_APPCHECK_DEBUG_TOKEN&&!0!==e.FIREBASE_APPCHECK_DEBUG_TOKEN)return;t.enabled=!0;const r=new Deferred;t.token=r,"string"==typeof e.FIREBASE_APPCHECK_DEBUG_TOKEN?r.resolve(e.FIREBASE_APPCHECK_DEBUG_TOKEN):r.resolve(readOrCreateDebugTokenFromStorage())}const v={error:"UNKNOWN_ERROR"};async function getToken$2(e,t=!1){const r=e.app;ensureActivated(r);const n=getStateReference(r);let o,i=n.token;if(i&&!isValid(i)&&(n.token=void 0,i=void 0),!i){const e=await n.cachedTokenPromise;e&&(isValid(e)?i=e:await writeTokenToStorage(r,void 0))}if(!t&&i&&isValid(i))return{token:i.token};let a,s=!1;if(isDebugMode())try{n.exchangeTokenPromise||(n.exchangeTokenPromise=exchangeToken(getExchangeDebugTokenRequest(r,await getDebugToken()),e.heartbeatServiceProvider).finally((()=>{n.exchangeTokenPromise=void 0})),s=!0);const t=await n.exchangeTokenPromise;return await writeTokenToStorage(r,t),n.token=t,{token:t.token}}catch(e){return"appCheck/throttled"===e.code?m.warn(e.message):m.error(e),makeDummyTokenResult(e)}try{n.exchangeTokenPromise||(n.exchangeTokenPromise=n.provider.getToken().finally((()=>{n.exchangeTokenPromise=void 0})),s=!0),i=await getStateReference(r).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code?m.warn(e.message):m.error(e),o=e}return i?o?a=isValid(i)?{token:i.token,internalError:o}:makeDummyTokenResult(o):(a={token:i.token},n.token=i,await writeTokenToStorage(r,i)):a=makeDummyTokenResult(o),s&&notifyTokenListeners(r,a),a}async function getLimitedUseToken$1(e){const t=e.app;ensureActivated(t);const{provider:r}=getStateReference(t);if(isDebugMode()){const r=await getDebugToken(),{token:n}=await exchangeToken(getExchangeDebugTokenRequest(t,r),e.heartbeatServiceProvider);return{token:n}}{const{token:e}=await r.getToken();return{token:e}}}function addTokenListener(e,t,r,n){const{app:o}=e,i=getStateReference(o),a={next:r,error:n,type:t};if(i.tokenObservers=[...i.tokenObservers,a],i.token&&isValid(i.token)){const t=i.token;Promise.resolve().then((()=>{r({token:t.token}),initTokenRefresher(e)})).catch((()=>{}))}i.cachedTokenPromise.then((()=>initTokenRefresher(e)))}function removeTokenListener(e,t){const r=getStateReference(e),n=r.tokenObservers.filter((e=>e.next!==t));0===n.length&&r.tokenRefresher&&r.tokenRefresher.isRunning()&&r.tokenRefresher.stop(),r.tokenObservers=n}function initTokenRefresher(e){const{app:t}=e,r=getStateReference(t);let n=r.tokenRefresher;n||(n=function createTokenRefresher(e){const{app:t}=e;return new Refresher((async()=>{let r;if(r=getStateReference(t).token?await getToken$2(e,!0):await getToken$2(e),r.error)throw r.error;if(r.internalError)throw r.internalError}),(()=>!0),(()=>{const e=getStateReference(t);if(e.token){let t=e.token.issuedAtTimeMillis+.5*(e.token.expireTimeMillis-e.token.issuedAtTimeMillis)+3e5;const r=e.token.expireTimeMillis-3e5;return t=Math.min(t,r),Math.max(0,t-Date.now())}return 0}),p,g)}(e),r.tokenRefresher=n),!n.isRunning()&&r.isTokenAutoRefreshEnabled&&n.start()}function notifyTokenListeners(e,t){const r=getStateReference(e).tokenObservers;for(const e of r)try{"EXTERNAL"===e.type&&null!=t.error?e.error(t.error):e.next(t)}catch(e){}}function isValid(e){return e.expireTimeMillis-Date.now()>0}function makeDummyTokenResult(e){return{token:(t=v,n.encodeString(JSON.stringify(t),!1)),error:e};var t}class AppCheckService{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){const{tokenObservers:e}=getStateReference(this.app);for(const t of e)removeTokenListener(this.app,t.next);return Promise.resolve()}}const w="https://www.google.com/recaptcha/api.js",b="https://www.google.com/recaptcha/enterprise.js";function initializeV3(e,t){const r=new Deferred;getStateReference(e).reCAPTCHAState={initialized:r};const n=makeDiv(e),o=getRecaptcha(!1);return o?queueWidgetRender(e,t,o,n,r):function loadReCAPTCHAV3Script(e){const t=document.createElement("script");t.src=w,t.onload=e,document.head.appendChild(t)}((()=>{const o=getRecaptcha(!1);if(!o)throw new Error("no recaptcha");queueWidgetRender(e,t,o,n,r)})),r.promise}function initializeEnterprise(e,t){const r=new Deferred;getStateReference(e).reCAPTCHAState={initialized:r};const n=makeDiv(e),o=getRecaptcha(!0);return o?queueWidgetRender(e,t,o,n,r):function loadReCAPTCHAEnterpriseScript(e){const t=document.createElement("script");t.src=b,t.onload=e,document.head.appendChild(t)}((()=>{const o=getRecaptcha(!0);if(!o)throw new Error("no recaptcha");queueWidgetRender(e,t,o,n,r)})),r.promise}function queueWidgetRender(e,t,r,n,o){r.ready((()=>{!function renderInvisibleWidget(e,t,r,n){const o=r.render(n,{sitekey:t,size:"invisible",callback:()=>{getStateReference(e).reCAPTCHAState.succeeded=!0},"error-callback":()=>{getStateReference(e).reCAPTCHAState.succeeded=!1}}),i=getStateReference(e);i.reCAPTCHAState=Object.assign(Object.assign({},i.reCAPTCHAState),{widgetId:o})}(e,t,r,n),o.resolve(r)}))}function makeDiv(e){const t=`fire_app_check_${e.name}`,r=document.createElement("div");return r.id=t,r.style.display="none",document.body.appendChild(r),t}async function getToken$1(e){ensureActivated(e);const t=getStateReference(e).reCAPTCHAState,r=await t.initialized.promise;return new Promise(((t,n)=>{const o=getStateReference(e).reCAPTCHAState;r.ready((()=>{t(r.execute(o.widgetId,{action:"fire_app_check"}))}))}))}class ReCaptchaV3Provider{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){var e,t,r;throwIfThrottled(this._throttleData);const n=await getToken$1(this._app).catch((e=>{throw f.create("recaptcha-error")}));if(!(null===(e=getStateReference(this._app).reCAPTCHAState)||void 0===e?void 0:e.succeeded))throw f.create("recaptcha-error");let o;try{o=await exchangeToken(function getExchangeRecaptchaV3TokenRequest(e,t){const{projectId:r,appId:n,apiKey:o}=e.options;return{url:`${d}/projects/${r}/apps/${n}:exchangeRecaptchaV3Token?key=${o}`,body:{recaptcha_v3_token:t}}}(this._app,n),this._heartbeatServiceProvider)}catch(e){throw(null===(t=e.code)||void 0===t?void 0:t.includes("fetch-status-error"))?(this._throttleData=setBackoff(Number(null===(r=e.customData)||void 0===r?void 0:r.httpStatus),this._throttleData),f.create("throttled",{time:getDurationString(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,o}initialize(e){this._app=e,this._heartbeatServiceProvider=_getProvider(e,"heartbeat"),initializeV3(e,this._siteKey).catch((()=>{}))}isEqual(e){return e instanceof ReCaptchaV3Provider&&this._siteKey===e._siteKey}}class ReCaptchaEnterpriseProvider{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){var e,t,r;throwIfThrottled(this._throttleData);const n=await getToken$1(this._app).catch((e=>{throw f.create("recaptcha-error")}));if(!(null===(e=getStateReference(this._app).reCAPTCHAState)||void 0===e?void 0:e.succeeded))throw f.create("recaptcha-error");let o;try{o=await exchangeToken(function getExchangeRecaptchaEnterpriseTokenRequest(e,t){const{projectId:r,appId:n,apiKey:o}=e.options;return{url:`${d}/projects/${r}/apps/${n}:exchangeRecaptchaEnterpriseToken?key=${o}`,body:{recaptcha_enterprise_token:t}}}(this._app,n),this._heartbeatServiceProvider)}catch(e){throw(null===(t=e.code)||void 0===t?void 0:t.includes("fetch-status-error"))?(this._throttleData=setBackoff(Number(null===(r=e.customData)||void 0===r?void 0:r.httpStatus),this._throttleData),f.create("throttled",{time:getDurationString(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,o}initialize(e){this._app=e,this._heartbeatServiceProvider=_getProvider(e,"heartbeat"),initializeEnterprise(e,this._siteKey).catch((()=>{}))}isEqual(e){return e instanceof ReCaptchaEnterpriseProvider&&this._siteKey===e._siteKey}}class CustomProvider{constructor(e){this._customProviderOptions=e}async getToken(){const e=await this._customProviderOptions.getToken(),t=issuedAtTime(e.token),r=null!==t&&t<Date.now()&&t>0?1e3*t:Date.now();return Object.assign(Object.assign({},e),{issuedAtTimeMillis:r})}initialize(e){this._app=e}isEqual(e){return e instanceof CustomProvider&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function setBackoff(e,t){if(404===e||403===e)return{backoffCount:1,allowRequestsAfter:Date.now()+864e5,httpStatus:e};{const r=t?t.backoffCount:0,n=function calculateBackoffMillis(e,t=1e3,r=2){const n=t*Math.pow(r,e),o=Math.round(.5*n*(Math.random()-.5)*2);return Math.min(144e5,n+o)}(r,1e3,2);return{backoffCount:r+1,allowRequestsAfter:Date.now()+n,httpStatus:e}}}function throwIfThrottled(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw f.create("throttled",{time:getDurationString(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function initializeAppCheck(t=e(),r){t=function getModularInstance(e){return e&&e._delegate?e._delegate:e}(t);const n=_getProvider(t,"app-check");if(getDebugState().initialized||initializeDebugMode(),isDebugMode()&&getDebugToken().then((e=>console.log(`App Check debug token: ${e}. You will need to add it to your app's App Check settings in the Firebase console for it to work.`))),n.isInitialized()){const e=n.getImmediate(),o=n.getOptions();if(o.isTokenAutoRefreshEnabled===r.isTokenAutoRefreshEnabled&&o.provider.isEqual(r.provider))return e;throw f.create("already-initialized",{appName:t.name})}const o=n.initialize({options:r});return function _activate(e,t,r){const n=function setInitialState(e,t){return h.set(e,t),h.get(e)}(e,Object.assign({},l));n.activated=!0,n.provider=t,n.cachedTokenPromise=readTokenFromStorage(e).then((t=>(t&&isValid(t)&&(n.token=t,notifyTokenListeners(e,{token:t.token})),t))),n.isTokenAutoRefreshEnabled=void 0===r?e.automaticDataCollectionEnabled:r,n.provider.initialize(e)}(t,r.provider,r.isTokenAutoRefreshEnabled),getStateReference(t).isTokenAutoRefreshEnabled&&addTokenListener(o,"INTERNAL",(()=>{})),o}function setTokenAutoRefreshEnabled(e,t){const r=getStateReference(e.app);r.tokenRefresher&&(!0===t?r.tokenRefresher.start():r.tokenRefresher.stop()),r.isTokenAutoRefreshEnabled=t}async function getToken(e,t){const r=await getToken$2(e,t);if(r.error)throw r.error;return{token:r.token}}function getLimitedUseToken(e){return getLimitedUseToken$1(e)}function onTokenChanged(e,t,r,n){let nextFn=()=>{},errorFn=()=>{};return nextFn=null!=t.next?t.next.bind(t):t,null!=t.error?errorFn=t.error.bind(t):r&&(errorFn=r),addTokenListener(e,"EXTERNAL",nextFn,errorFn),()=>removeTokenListener(e.app,nextFn)}const S="app-check-internal";!function registerAppCheck(){t(new Component("app-check",(e=>function factory(e,t){return new AppCheckService(e,t)}(e.getProvider("app").getImmediate(),e.getProvider("heartbeat"))),"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback(((e,t,r)=>{e.getProvider(S).initialize()}))),t(new Component(S,(e=>function internalFactory(e){return{getToken:t=>getToken$2(e,t),getLimitedUseToken:()=>getLimitedUseToken$1(e),addTokenListener:t=>addTokenListener(e,"INTERNAL",t),removeTokenListener:t=>removeTokenListener(e.app,t)}}(e.getProvider("app-check").getImmediate())),"PUBLIC").setInstantiationMode("EXPLICIT")),r("@firebase/app-check","0.8.11-canary.84dfeca39")}();export{CustomProvider,ReCaptchaEnterpriseProvider,ReCaptchaV3Provider,getLimitedUseToken,getToken,initializeAppCheck,onTokenChanged,setTokenAutoRefreshEnabled};
//# sourceMappingURL=firebase-app-check.js.map

@@ -1,2 +0,2 @@

((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).firebase=t()})(this,function(){let r=function(t){var r=[];let n=0;for(let a=0;a<t.length;a++){let e=t.charCodeAt(a);e<128?r[n++]=e:(e<2048?r[n++]=e>>6|192:(55296==(64512&e)&&a+1<t.length&&56320==(64512&t.charCodeAt(a+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++a)),r[n++]=e>>18|240,r[n++]=e>>12&63|128):r[n++]=e>>12|224,r[n++]=e>>6&63|128),r[n++]=63&e|128)}return r},n={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(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,a=[];for(let h=0;h<r.length;h+=3){var i=r[h],s=h+1<r.length,o=s?r[h+1]:0,c=h+2<r.length,l=c?r[h+2]:0;let e=(15&o)<<2|l>>6,t=63&l;c||(t=64,s)||(e=64),a.push(n[i>>2],n[(3&i)<<4|o>>4],n[e],n[t])}return a.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(r(e),t)},decodeString(r,n){if(this.HAS_NATIVE_SUPPORT&&!n)return atob(r);{var a=this.decodeStringToByteArray(r,n);var i=[];let e=0,t=0;for(;e<a.length;){var s,o,c,l=a[e++];l<128?i[t++]=String.fromCharCode(l):191<l&&l<224?(s=a[e++],i[t++]=String.fromCharCode((31&l)<<6|63&s)):239<l&&l<365?(s=((7&l)<<18|(63&a[e++])<<12|(63&a[e++])<<6|63&a[e++])-65536,i[t++]=String.fromCharCode(55296+(s>>10)),i[t++]=String.fromCharCode(56320+(1023&s))):(o=a[e++],c=a[e++],i[t++]=String.fromCharCode((15&l)<<12|(63&o)<<6|63&c))}return i.join("");return}},decodeStringToByteArray(e,t){this.init_();var r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let c=0;c<e.length;){var a=r[e.charAt(c++)],i=c<e.length?r[e.charAt(c)]:0,s=++c<e.length?r[e.charAt(c)]:64,o=++c<e.length?r[e.charAt(c)]:64;if(++c,null==a||null==i||null==s||null==o)throw new F;n.push(a<<2|i>>4),64!==s&&(n.push(i<<4&240|s>>2),64!==o)&&n.push(s<<6&192|o)}return n},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)>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class F extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}function M(e){var t=r(e);return n.encodeByteArray(t,!0)}let i=function(e){return M(e).replace(/\./g,"")},j=function(e){try{return n.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function c(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:return new Date(t.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(var r in t)t.hasOwnProperty(r)&&"__proto__"!==r&&(e[r]=c(e[r],t[r]));return e}function z(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}let x=()=>z().__FIREBASE_DEFAULTS__,H=()=>{var e;return"undefined"!=typeof process&&void 0!==process.env&&(e=process.env.__FIREBASE_DEFAULTS__)?JSON.parse(e):void 0},V=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&j(e[1]);return t&&JSON.parse(t)}},$=()=>{try{return x()||H()||V()}catch(e){console.info("Unable to get __FIREBASE_DEFAULTS__ due to: "+e)}},W=()=>{var e;return null==(e=$())?void 0:e.config};class U{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(r){return(e,t)=>{e?this.reject(e):this.resolve(t),"function"==typeof r&&(this.promise.catch(()=>{}),1===r.length?r(e):r(e,t))}}}function J(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}class s extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,s.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,a.prototype.create)}}class a{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},a=this.service+"/"+e,i=this.errors[e],i=i?(n=r,i.replace(G,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${a}).`;return new s(a,i,r)}}let G=/\{\$([^}]+)}/g;function K(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function l(e,t){if(e!==t){var r,n,a=Object.keys(e),i=Object.keys(t);for(r of a){if(!i.includes(r))return;var s=e[r],o=t[r];if(Y(s)&&Y(o)){if(!l(s,o))return}else if(s!==o)return}for(n of i)if(!a.includes(n))return}return 1}function Y(e){return null!==e&&"object"==typeof e}function X(e,t){var r=new q(e,t);return r.subscribe.bind(r)}class q{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(t){this.forEachObserver(e=>{e.next(t)})}error(t){this.forEachObserver(e=>{e.error(t)}),this.close(t)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw new Error("Missing Observer.");void 0===(n=((e,t)=>{if("object"==typeof e&&null!==e)for(var r of t)if(r in e&&"function"==typeof e[r])return 1})(e,["next","error","complete"])?e:{next:e,error:t,complete:r}).next&&(n.next=o),void 0===n.error&&(n.error=o),void 0===n.complete&&(n.complete=o);var a=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}),this.observers.push(n),a}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],--this.observerCount,0===this.observerCount)&&void 0!==this.onNoObservers&&this.onNoObservers(this)}forEachObserver(t){if(!this.finalized)for(let e=0;e<this.observers.length;e++)this.sendOne(e,t)}sendOne(e,t){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=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 o(){}class h{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let d="[DEFAULT]";class Z{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){var t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){var r=new U;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{var n=this.getOrInitializeService({instanceIdentifier:t});n&&r.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),r=null!=(r=null==e?void 0:e.optional)&&r;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(r)return null;throw e}}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:d})}catch(e){}for(var[t,r]of this.instancesDeferred.entries()){t=this.normalizeInstanceIdentifier(t);try{var n=this.getOrInitializeService({instanceIdentifier:t});r.resolve(n)}catch(e){}}}}clearInstance(e=d){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){var 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=d){return this.instances.has(e)}getOptions(e=d){return this.instancesOptions.get(e)||{}}initialize(e={}){var{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(this.name+`(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);var n,a,i=this.getOrInitializeService({instanceIdentifier:r,options:t});for([n,a]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(n)&&a.resolve(i);return i}onInit(e,t){var r=this.normalizeInstanceIdentifier(t);let n=null!=(a=this.onInitCallbacks.get(r))?a:new Set;n.add(e),this.onInitCallbacks.set(r,n);var a=this.instances.get(r);return a&&e(a,r),()=>{n.delete(e)}}invokeOnInitCallbacks(e,t){var r=this.onInitCallbacks.get(t);if(r)for(var n of r)try{n(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e)===d?void 0:n,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(e){}var n;return r||null}normalizeInstanceIdentifier(e=d){return!this.component||this.component.multipleInstances?e:d}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Q{constructor(e){this.name=e,this.providers=new Map}addComponent(e){var t=this.getProvider(e.name);if(t.isComponentSet())throw new 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){var t;return this.providers.has(e)?this.providers.get(e):(t=new Z(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let p=[];var u,f;(e=u=u||{})[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT";let ee={debug:u.DEBUG,verbose:u.VERBOSE,info:u.INFO,warn:u.WARN,error:u.ERROR,silent:u.SILENT},te=u.INFO,re={[u.DEBUG]:"log",[u.VERBOSE]:"log",[u.INFO]:"info",[u.WARN]:"warn",[u.ERROR]:"error"},ne=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),a=re[t];if(!a)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[a](`[${n}] ${e.name}:`,...r)}};class ae{constructor(e){this.name=e,this._logLevel=te,this._logHandler=ne,this._userLogHandler=null,p.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in u))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?ee[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,u.DEBUG,...e),this._logHandler(this,u.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,u.VERBOSE,...e),this._logHandler(this,u.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,u.INFO,...e),this._logHandler(this,u.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,u.WARN,...e),this._logHandler(this,u.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,u.ERROR,...e),this._logHandler(this,u.ERROR,...e)}}let ie=(t,e)=>e.some(e=>t instanceof e),se,oe;let ce=new WeakMap,g=new WeakMap,le=new WeakMap,b=new WeakMap,v=new WeakMap;let m={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return g.get(e);if("objectStoreNames"===t)return e.objectStoreNames||le.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return _(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function he(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(oe=oe||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(y(this),e),_(ce.get(this))}:function(...e){return _(n.apply(y(this),e))}:function(e,...t){var r=n.call(y(this),e,...t);return le.set(r,e.sort?e.sort():[e]),_(r)}}function de(e){var i,t;return"function"==typeof e?he(e):(e instanceof IDBTransaction&&(i=e,g.has(i)||(t=new Promise((e,t)=>{let r=()=>{i.removeEventListener("complete",n),i.removeEventListener("error",a),i.removeEventListener("abort",a)},n=()=>{e(),r()},a=()=>{t(i.error||new DOMException("AbortError","AbortError")),r()};i.addEventListener("complete",n),i.addEventListener("error",a),i.addEventListener("abort",a)}),g.set(i,t))),ie(e,se=se||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,m):e)}function _(e){var i,t;return e instanceof IDBRequest?(i=e,(t=new Promise((e,t)=>{let r=()=>{i.removeEventListener("success",n),i.removeEventListener("error",a)},n=()=>{e(_(i.result)),r()},a=()=>{t(i.error),r()};i.addEventListener("success",n),i.addEventListener("error",a)})).then(e=>{e instanceof IDBCursor&&ce.set(e,i)}).catch(()=>{}),v.set(t,i),t):b.has(e)?b.get(e):((t=de(e))!==e&&(b.set(e,t),v.set(t,e)),t)}let y=e=>v.get(e);let pe=["get","getKey","getAll","getAllKeys","count"],ue=["put","add","delete","clear"],E=new Map;function fe(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(E.get(t))return E.get(t);let a=t.replace(/FromIndex$/,""),i=t!==a,s=ue.includes(a);var r;return a in(i?IDBIndex:IDBObjectStore).prototype&&(s||pe.includes(a))?(r=async function(e,...t){var r=this.transaction(e,s?"readwrite":"readonly");let n=r.store;return i&&(n=n.index(t.shift())),(await Promise.all([n[a](...t),s&&r.done]))[0]},E.set(t,r),r):void 0}}m={...f=m,get:(e,t,r)=>fe(e,t)||f.get(e,t,r),has:(e,t)=>!!fe(e,t)||f.has(e,t)};class ge{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{var t;return"VERSION"===(null==(t=e.getComponent())?void 0:t.type)?(t=e.getImmediate()).library+"/"+t.version:null}).filter(e=>e).join(" ")}}let C="@firebase/app",w="0.11.0-canary.70e08cf95",I=new ae("@firebase/app");var e;let D="[DEFAULT]",be={"@firebase/app":"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/vertexai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},S=new Map,O=new Map,A=new Map;function N(t,r){try{t.container.addComponent(r)}catch(e){I.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function ve(e,t){e.container.addOrOverwriteComponent(t)}function L(e){var t,r,n=e.name;if(A.has(n))return I.debug(`There were multiple attempts to register component ${n}.`),!1;A.set(n,e);for(t of S.values())N(t,e);for(r of O.values())N(r,e);return!0}function me(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function _e(e){return void 0!==e.options}let B=new a("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 ye{constructor(e,t,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new h("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 B.create("app-deleted",{appName:this._name})}}function Ee(e,t){var r=j(e.split(".")[1]);null===r?console.error(`FirebaseServerApp ${t} is invalid: second part could not be parsed.`):void 0===JSON.parse(r).exp?console.error(`FirebaseServerApp ${t} is invalid: expiration claim could not be parsed`):1e3*JSON.parse(r).exp-(new Date).getTime()<=0&&console.error(`FirebaseServerApp ${t} is invalid: the token has expired.`)}class Ce extends ye{constructor(e,t,r,n){var a=void 0!==t.automaticDataCollectionEnabled&&t.automaticDataCollectionEnabled,i={name:r,automaticDataCollectionEnabled:a};void 0!==e.apiKey?super(e,i,n):super(e.options,i,n),this._serverConfig=Object.assign({automaticDataCollectionEnabled:a},t),this._serverConfig.authIdToken&&Ee(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&Ee(this._serverConfig.appCheckToken,"appCheckToken"),this._finalizationRegistry=null,"undefined"!=typeof FinalizationRegistry&&(this._finalizationRegistry=new FinalizationRegistry(()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,R(C,w,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&null!==this._finalizationRegistry&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){t(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw B.create("server-app-deleted")}}let we="11.3.0-canary.70e08cf95";function T(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n=Object.assign({name:D,automaticDataCollectionEnabled:!1},t);let a=n.name;if("string"!=typeof a||!a)throw B.create("bad-app-name",{appName:String(a)});if(!(r=r||W()))throw B.create("no-options");var i=S.get(a);if(i){if(l(r,i.options)&&l(n,i.config))return i;throw B.create("duplicate-app",{appName:a})}var s,o=new Q(a);for(s of A.values())o.addComponent(s);i=new ye(r,n,o);return S.set(a,i),i}async function t(e){let t=!1;var r=e.name;S.has(r)?(t=!0,S.delete(r)):O.has(r)&&e.decRefCount()<=0&&(O.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function R(e,t,r){let n,a=null!=(n=be[e])?n:e;r&&(a+="-"+r);var i,s=a.match(/\s|\//),o=t.match(/\s|\//);s||o?(i=[`Unable to register library "${a}" with version "${t}":`],s&&i.push(`library name "${a}" contains illegal characters (whitespace or "/")`),s&&o&&i.push("and"),o&&i.push(`version name "${t}" contains illegal characters (whitespace or "/")`),I.warn(i.join(" "))):L(new h(a+"-version",()=>({library:a,version:t}),"VERSION"))}function Ie(e,t){if(null!==e&&"function"!=typeof e)throw B.create("invalid-log-argument");var r,i=e,n=t;for(r of p){let a=null;n&&n.level&&(a=ee[n.level]),r.userLogHandler=null===i?null:(e,t,...r)=>{var n=r.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(" ");t>=(null!=a?a:e.logLevel)&&i({level:u[t].toLowerCase(),message:n,args:r,type:e.name})}}}function De(e){var t;t=e,p.forEach(e=>{e.setLogLevel(t)})}let Se="firebase-heartbeat-database",Oe=1,k="firebase-heartbeat-store",Ae=null;function Ne(){return Ae=Ae||((e,t,{blocked:r,upgrade:n,blocking:a,terminated:i})=>{let s=indexedDB.open(e,t);var o=_(s);return n&&s.addEventListener("upgradeneeded",e=>{n(_(s.result),e.oldVersion,e.newVersion,_(s.transaction),e)}),r&&s.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{i&&e.addEventListener("close",()=>i()),a&&e.addEventListener("versionchange",e=>a(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o})(Se,Oe,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(k)}catch(e){console.warn(e)}}}).catch(e=>{throw B.create("idb-open",{originalErrorMessage:e.message})})}async function Le(e,t){try{var r=(await Ne()).transaction(k,"readwrite");await r.objectStore(k).put(t,Be(e)),await r.done}catch(e){e instanceof s?I.warn(e.message):(r=B.create("idb-set",{originalErrorMessage:null==e?void 0:e.message}),I.warn(r.message))}}function Be(e){return e.name+"!"+e.options.appId}class Te{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new ke(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){var e,r;try{var n,a=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString();let t=Re();if(null!=(null==(e=this._heartbeatsCache)?void 0:e.heartbeats)||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=(null==(r=this._heartbeatsCache)?void 0:r.heartbeats)))if(this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some(e=>e.date===t))return this._heartbeatsCache.heartbeats.push({date:t,agent:a}),30<this._heartbeatsCache.heartbeats.length&&(n=(e=>{if(0===e.length)return-1;let t=0,r=e[0].date;for(let n=1;n<e.length;n++)e[n].date<r&&(r=e[n].date,t=n);return t})(this._heartbeatsCache.heartbeats),this._heartbeatsCache.heartbeats.splice(n,1)),this._storage.overwrite(this._heartbeatsCache)}catch(e){I.warn(e)}}async getHeartbeatsHeader(){var e,t,r,n,a;try{return(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null==(e=this._heartbeatsCache)?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)?"":(t=Re(),{heartbeatsToSend:r,unsentEntries:n}=((e,t=1024)=>{let r=[],n=e.slice();for(let i of e){var a=r.find(e=>e.agent===i.agent);if(a){if(a.dates.push(i.date),Pe(r)>t){a.dates.pop();break}}else if(r.push({agent:i.agent,dates:[i.date]}),Pe(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),a=i(JSON.stringify({version:2,heartbeats:r})),this._heartbeatsCache.lastSentHeartbeatDate=t,0<n.length?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),a)}catch(e){return I.warn(e),""}}}function Re(){return(new Date).toISOString().substring(0,10)}class ke{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!(()=>{try{return"object"==typeof indexedDB}catch(e){}})()&&new Promise((n,a)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(t);r.onsuccess=()=>{r.result.close(),e||self.indexedDB.deleteDatabase(t),n(!0)},r.onupgradeneeded=()=>{e=!1},r.onerror=()=>{var e;a((null==(e=r.error)?void 0:e.message)||"")}}catch(e){a(e)}}).then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&null!=(e=await(async e=>{try{var t=(await Ne()).transaction(k),r=await t.objectStore(k).get(Be(e));return await t.done,r}catch(e){e instanceof s?I.warn(e.message):(t=B.create("idb-get",{originalErrorMessage:null==e?void 0:e.message}),I.warn(t.message))}})(this.app))&&e.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t,r;if(await this._canUseIndexedDBPromise)return r=await this.read(),Le(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}async add(e){var t,r;if(await this._canUseIndexedDBPromise)return r=await this.read(),Le(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}function Pe(e){return i(JSON.stringify({version:2,heartbeats:e})).length}e="",L(new h("platform-logger",e=>new ge(e),"PRIVATE")),L(new h("heartbeat",e=>new Te(e),"PRIVATE")),R(C,w,e),R(C,w,"esm2017"),R("fire-js","");var Fe=Object.freeze({__proto__:null,SDK_VERSION:we,_DEFAULT_ENTRY_NAME:D,_addComponent:N,_addOrOverwriteComponent:ve,_apps:S,_clearComponents:function(){A.clear()},_components:A,_getProvider:me,_isFirebaseApp:_e,_isFirebaseServerApp:function(e){return null!=e&&void 0!==e.settings},_registerComponent:L,_removeServiceInstance:function(e,t,r=D){me(e,t).clearInstance(r)},_serverApps:O,deleteApp:t,getApp:function(e=D){var t=S.get(e);if(!t&&e===D&&W())return T();if(t)return t;throw B.create("no-app",{appName:e})},getApps:function(){return Array.from(S.values())},initializeApp:T,initializeServerApp:function(e,t){if(("undefined"!=typeof window||J())&&!J())throw B.create("invalid-server-app-environment");void 0===t.automaticDataCollectionEnabled&&(t.automaticDataCollectionEnabled=!1);let r;r=_e(e)?e.options:e;var n=Object.assign(Object.assign({},t),r);if(void 0!==n.releaseOnDeref&&delete n.releaseOnDeref,void 0!==t.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw B.create("finalization-registry-not-supported",{});var n=""+[...JSON.stringify(n)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),a=O.get(n);if(a)a.incRefCount(t.releaseOnDeref);else{var i,s=new Q(n);for(i of A.values())s.addComponent(i);a=new Ce(r,t,n,s),O.set(n,a)}return a},onLog:Ie,registerVersion:R,setLogLevel:De,FirebaseError:s});class Me{constructor(e,t){this._delegate=e,this.firebase=t,N(e,new h("app-compat",()=>this,"PUBLIC")),this.container=e.container}get automaticDataCollectionEnabled(){return this._delegate.automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this._delegate.automaticDataCollectionEnabled=e}get name(){return this._delegate.name}get options(){return this._delegate.options}delete(){return new Promise(e=>{this._delegate.checkDestroyed(),e()}).then(()=>(this.firebase.INTERNAL.removeApp(this.name),t(this._delegate)))}_getService(e,t=D){this._delegate.checkDestroyed();var r,n=this._delegate.container.getProvider(e);return n.isInitialized()||"EXPLICIT"!==(null==(r=n.getComponent())?void 0:r.instantiationMode)||n.initialize(),n.getImmediate({identifier:t})}_removeServiceInstance(e,t=D){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){N(this._delegate,e)}_addOrOverwriteComponent(e){ve(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let je=new a("app-compat","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance."});function ze(a){let i={},s={__esModule:!0,initializeApp:function(e,t={}){var r=T(e,t);if(K(i,r.name))return i[r.name];var n=new a(r,s);return i[r.name]=n},app:o,registerVersion:R,setLogLevel:De,onLog:Ie,apps:null,SDK_VERSION:we,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;L(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw je.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&c(e,t.serviceProps),s[n]=e,a.prototype[n]=function(...e){return this._getService.bind(this,r).apply(this,t.multipleInstances?e:[])})}return"PUBLIC"===t.type?s[n]:null},removeApp:function(e){delete i[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var r=t;return r},modularAPIs:Fe}};function o(e){if(e=e||D,K(i,e))return i[e];throw je.create("no-app",{appName:e})}return s.default=s,Object.defineProperty(s,"apps",{get:function(){return Object.keys(i).map(e=>i[e])}}),o.App=a,s}var xe=function e(){let t=ze(Me);return t.INTERNAL=Object.assign(Object.assign({},t.INTERNAL),{createFirebaseNamespace:e,extendNamespace:function(e){c(t,e)},createSubscribe:X,ErrorFactory:a,deepExtend:c}),t}(),He=new ae("@firebase/app-compat");try{var Ve,P=z();void 0!==P.firebase&&(He.warn(`
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).firebase=t()})(this,function(){let r=function(t){var r=[];let n=0;for(let a=0;a<t.length;a++){let e=t.charCodeAt(a);e<128?r[n++]=e:(e<2048?r[n++]=e>>6|192:(55296==(64512&e)&&a+1<t.length&&56320==(64512&t.charCodeAt(a+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++a)),r[n++]=e>>18|240,r[n++]=e>>12&63|128):r[n++]=e>>12|224,r[n++]=e>>6&63|128),r[n++]=63&e|128)}return r},n={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(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,a=[];for(let h=0;h<r.length;h+=3){var i=r[h],s=h+1<r.length,o=s?r[h+1]:0,c=h+2<r.length,l=c?r[h+2]:0;let e=(15&o)<<2|l>>6,t=63&l;c||(t=64,s)||(e=64),a.push(n[i>>2],n[(3&i)<<4|o>>4],n[e],n[t])}return a.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(r(e),t)},decodeString(r,n){if(this.HAS_NATIVE_SUPPORT&&!n)return atob(r);{var a=this.decodeStringToByteArray(r,n);var i=[];let e=0,t=0;for(;e<a.length;){var s,o,c,l=a[e++];l<128?i[t++]=String.fromCharCode(l):191<l&&l<224?(s=a[e++],i[t++]=String.fromCharCode((31&l)<<6|63&s)):239<l&&l<365?(s=((7&l)<<18|(63&a[e++])<<12|(63&a[e++])<<6|63&a[e++])-65536,i[t++]=String.fromCharCode(55296+(s>>10)),i[t++]=String.fromCharCode(56320+(1023&s))):(o=a[e++],c=a[e++],i[t++]=String.fromCharCode((15&l)<<12|(63&o)<<6|63&c))}return i.join("");return}},decodeStringToByteArray(e,t){this.init_();var r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let c=0;c<e.length;){var a=r[e.charAt(c++)],i=c<e.length?r[e.charAt(c)]:0,s=++c<e.length?r[e.charAt(c)]:64,o=++c<e.length?r[e.charAt(c)]:64;if(++c,null==a||null==i||null==s||null==o)throw new F;n.push(a<<2|i>>4),64!==s&&(n.push(i<<4&240|s>>2),64!==o)&&n.push(s<<6&192|o)}return n},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)>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class F extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}function M(e){var t=r(e);return n.encodeByteArray(t,!0)}let i=function(e){return M(e).replace(/\./g,"")},j=function(e){try{return n.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function c(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:return new Date(t.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(var r in t)t.hasOwnProperty(r)&&"__proto__"!==r&&(e[r]=c(e[r],t[r]));return e}function z(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}let x=()=>z().__FIREBASE_DEFAULTS__,H=()=>{var e;return"undefined"!=typeof process&&void 0!==process.env&&(e=process.env.__FIREBASE_DEFAULTS__)?JSON.parse(e):void 0},V=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&j(e[1]);return t&&JSON.parse(t)}},$=()=>{try{return x()||H()||V()}catch(e){console.info("Unable to get __FIREBASE_DEFAULTS__ due to: "+e)}},W=()=>{var e;return null==(e=$())?void 0:e.config};class U{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(r){return(e,t)=>{e?this.reject(e):this.resolve(t),"function"==typeof r&&(this.promise.catch(()=>{}),1===r.length?r(e):r(e,t))}}}function J(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}class s extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,s.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,a.prototype.create)}}class a{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},a=this.service+"/"+e,i=this.errors[e],i=i?(n=r,i.replace(G,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${a}).`;return new s(a,i,r)}}let G=/\{\$([^}]+)}/g;function K(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function l(e,t){if(e!==t){var r,n,a=Object.keys(e),i=Object.keys(t);for(r of a){if(!i.includes(r))return;var s=e[r],o=t[r];if(Y(s)&&Y(o)){if(!l(s,o))return}else if(s!==o)return}for(n of i)if(!a.includes(n))return}return 1}function Y(e){return null!==e&&"object"==typeof e}function X(e,t){var r=new q(e,t);return r.subscribe.bind(r)}class q{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(t){this.forEachObserver(e=>{e.next(t)})}error(t){this.forEachObserver(e=>{e.error(t)}),this.close(t)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw new Error("Missing Observer.");void 0===(n=((e,t)=>{if("object"==typeof e&&null!==e)for(var r of t)if(r in e&&"function"==typeof e[r])return 1})(e,["next","error","complete"])?e:{next:e,error:t,complete:r}).next&&(n.next=o),void 0===n.error&&(n.error=o),void 0===n.complete&&(n.complete=o);var a=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}),this.observers.push(n),a}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],--this.observerCount,0===this.observerCount)&&void 0!==this.onNoObservers&&this.onNoObservers(this)}forEachObserver(t){if(!this.finalized)for(let e=0;e<this.observers.length;e++)this.sendOne(e,t)}sendOne(e,t){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=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 o(){}class h{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let d="[DEFAULT]";class Z{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){var t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){var r=new U;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{var n=this.getOrInitializeService({instanceIdentifier:t});n&&r.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),r=null!=(r=null==e?void 0:e.optional)&&r;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(r)return null;throw e}}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:d})}catch(e){}for(var[t,r]of this.instancesDeferred.entries()){t=this.normalizeInstanceIdentifier(t);try{var n=this.getOrInitializeService({instanceIdentifier:t});r.resolve(n)}catch(e){}}}}clearInstance(e=d){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){var 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=d){return this.instances.has(e)}getOptions(e=d){return this.instancesOptions.get(e)||{}}initialize(e={}){var{options:t={}}=e,r=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(r))throw Error(this.name+`(${r}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);var n,a,i=this.getOrInitializeService({instanceIdentifier:r,options:t});for([n,a]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(n)&&a.resolve(i);return i}onInit(e,t){var r=this.normalizeInstanceIdentifier(t);let n=null!=(a=this.onInitCallbacks.get(r))?a:new Set;n.add(e),this.onInitCallbacks.set(r,n);var a=this.instances.get(r);return a&&e(a,r),()=>{n.delete(e)}}invokeOnInitCallbacks(e,t){var r=this.onInitCallbacks.get(t);if(r)for(var n of r)try{n(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e)===d?void 0:n,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(e){}var n;return r||null}normalizeInstanceIdentifier(e=d){return!this.component||this.component.multipleInstances?e:d}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Q{constructor(e){this.name=e,this.providers=new Map}addComponent(e){var t=this.getProvider(e.name);if(t.isComponentSet())throw new 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){var t;return this.providers.has(e)?this.providers.get(e):(t=new Z(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let p=[];var u,f;(e=u=u||{})[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT";let ee={debug:u.DEBUG,verbose:u.VERBOSE,info:u.INFO,warn:u.WARN,error:u.ERROR,silent:u.SILENT},te=u.INFO,re={[u.DEBUG]:"log",[u.VERBOSE]:"log",[u.INFO]:"info",[u.WARN]:"warn",[u.ERROR]:"error"},ne=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),a=re[t];if(!a)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[a](`[${n}] ${e.name}:`,...r)}};class ae{constructor(e){this.name=e,this._logLevel=te,this._logHandler=ne,this._userLogHandler=null,p.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in u))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?ee[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,u.DEBUG,...e),this._logHandler(this,u.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,u.VERBOSE,...e),this._logHandler(this,u.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,u.INFO,...e),this._logHandler(this,u.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,u.WARN,...e),this._logHandler(this,u.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,u.ERROR,...e),this._logHandler(this,u.ERROR,...e)}}let ie=(t,e)=>e.some(e=>t instanceof e),se,oe;let ce=new WeakMap,g=new WeakMap,le=new WeakMap,b=new WeakMap,v=new WeakMap;let m={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return g.get(e);if("objectStoreNames"===t)return e.objectStoreNames||le.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return _(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function he(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(oe=oe||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(y(this),e),_(ce.get(this))}:function(...e){return _(n.apply(y(this),e))}:function(e,...t){var r=n.call(y(this),e,...t);return le.set(r,e.sort?e.sort():[e]),_(r)}}function de(e){var i,t;return"function"==typeof e?he(e):(e instanceof IDBTransaction&&(i=e,g.has(i)||(t=new Promise((e,t)=>{let r=()=>{i.removeEventListener("complete",n),i.removeEventListener("error",a),i.removeEventListener("abort",a)},n=()=>{e(),r()},a=()=>{t(i.error||new DOMException("AbortError","AbortError")),r()};i.addEventListener("complete",n),i.addEventListener("error",a),i.addEventListener("abort",a)}),g.set(i,t))),ie(e,se=se||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,m):e)}function _(e){var i,t;return e instanceof IDBRequest?(i=e,(t=new Promise((e,t)=>{let r=()=>{i.removeEventListener("success",n),i.removeEventListener("error",a)},n=()=>{e(_(i.result)),r()},a=()=>{t(i.error),r()};i.addEventListener("success",n),i.addEventListener("error",a)})).then(e=>{e instanceof IDBCursor&&ce.set(e,i)}).catch(()=>{}),v.set(t,i),t):b.has(e)?b.get(e):((t=de(e))!==e&&(b.set(e,t),v.set(t,e)),t)}let y=e=>v.get(e);let pe=["get","getKey","getAll","getAllKeys","count"],ue=["put","add","delete","clear"],E=new Map;function fe(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(E.get(t))return E.get(t);let a=t.replace(/FromIndex$/,""),i=t!==a,s=ue.includes(a);var r;return a in(i?IDBIndex:IDBObjectStore).prototype&&(s||pe.includes(a))?(r=async function(e,...t){var r=this.transaction(e,s?"readwrite":"readonly");let n=r.store;return i&&(n=n.index(t.shift())),(await Promise.all([n[a](...t),s&&r.done]))[0]},E.set(t,r),r):void 0}}m={...f=m,get:(e,t,r)=>fe(e,t)||f.get(e,t,r),has:(e,t)=>!!fe(e,t)||f.has(e,t)};class ge{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{var t;return"VERSION"===(null==(t=e.getComponent())?void 0:t.type)?(t=e.getImmediate()).library+"/"+t.version:null}).filter(e=>e).join(" ")}}let C="@firebase/app",w="0.11.0-canary.84dfeca39",I=new ae("@firebase/app");var e;let D="[DEFAULT]",be={"@firebase/app":"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/vertexai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},S=new Map,O=new Map,A=new Map;function N(t,r){try{t.container.addComponent(r)}catch(e){I.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function ve(e,t){e.container.addOrOverwriteComponent(t)}function L(e){var t,r,n=e.name;if(A.has(n))return I.debug(`There were multiple attempts to register component ${n}.`),!1;A.set(n,e);for(t of S.values())N(t,e);for(r of O.values())N(r,e);return!0}function me(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function _e(e){return void 0!==e.options}let B=new a("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 ye{constructor(e,t,r){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new h("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 B.create("app-deleted",{appName:this._name})}}function Ee(e,t){var r=j(e.split(".")[1]);null===r?console.error(`FirebaseServerApp ${t} is invalid: second part could not be parsed.`):void 0===JSON.parse(r).exp?console.error(`FirebaseServerApp ${t} is invalid: expiration claim could not be parsed`):1e3*JSON.parse(r).exp-(new Date).getTime()<=0&&console.error(`FirebaseServerApp ${t} is invalid: the token has expired.`)}class Ce extends ye{constructor(e,t,r,n){var a=void 0!==t.automaticDataCollectionEnabled&&t.automaticDataCollectionEnabled,i={name:r,automaticDataCollectionEnabled:a};void 0!==e.apiKey?super(e,i,n):super(e.options,i,n),this._serverConfig=Object.assign({automaticDataCollectionEnabled:a},t),this._serverConfig.authIdToken&&Ee(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&Ee(this._serverConfig.appCheckToken,"appCheckToken"),this._finalizationRegistry=null,"undefined"!=typeof FinalizationRegistry&&(this._finalizationRegistry=new FinalizationRegistry(()=>{this.automaticCleanup()})),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,R(C,w,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&null!==this._finalizationRegistry&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){t(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw B.create("server-app-deleted")}}let we="11.3.0-canary.84dfeca39";function T(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n=Object.assign({name:D,automaticDataCollectionEnabled:!1},t);let a=n.name;if("string"!=typeof a||!a)throw B.create("bad-app-name",{appName:String(a)});if(!(r=r||W()))throw B.create("no-options");var i=S.get(a);if(i){if(l(r,i.options)&&l(n,i.config))return i;throw B.create("duplicate-app",{appName:a})}var s,o=new Q(a);for(s of A.values())o.addComponent(s);i=new ye(r,n,o);return S.set(a,i),i}async function t(e){let t=!1;var r=e.name;S.has(r)?(t=!0,S.delete(r)):O.has(r)&&e.decRefCount()<=0&&(O.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function R(e,t,r){let n,a=null!=(n=be[e])?n:e;r&&(a+="-"+r);var i,s=a.match(/\s|\//),o=t.match(/\s|\//);s||o?(i=[`Unable to register library "${a}" with version "${t}":`],s&&i.push(`library name "${a}" contains illegal characters (whitespace or "/")`),s&&o&&i.push("and"),o&&i.push(`version name "${t}" contains illegal characters (whitespace or "/")`),I.warn(i.join(" "))):L(new h(a+"-version",()=>({library:a,version:t}),"VERSION"))}function Ie(e,t){if(null!==e&&"function"!=typeof e)throw B.create("invalid-log-argument");var r,i=e,n=t;for(r of p){let a=null;n&&n.level&&(a=ee[n.level]),r.userLogHandler=null===i?null:(e,t,...r)=>{var n=r.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(" ");t>=(null!=a?a:e.logLevel)&&i({level:u[t].toLowerCase(),message:n,args:r,type:e.name})}}}function De(e){var t;t=e,p.forEach(e=>{e.setLogLevel(t)})}let Se="firebase-heartbeat-database",Oe=1,k="firebase-heartbeat-store",Ae=null;function Ne(){return Ae=Ae||((e,t,{blocked:r,upgrade:n,blocking:a,terminated:i})=>{let s=indexedDB.open(e,t);var o=_(s);return n&&s.addEventListener("upgradeneeded",e=>{n(_(s.result),e.oldVersion,e.newVersion,_(s.transaction),e)}),r&&s.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{i&&e.addEventListener("close",()=>i()),a&&e.addEventListener("versionchange",e=>a(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o})(Se,Oe,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(k)}catch(e){console.warn(e)}}}).catch(e=>{throw B.create("idb-open",{originalErrorMessage:e.message})})}async function Le(e,t){try{var r=(await Ne()).transaction(k,"readwrite");await r.objectStore(k).put(t,Be(e)),await r.done}catch(e){e instanceof s?I.warn(e.message):(r=B.create("idb-set",{originalErrorMessage:null==e?void 0:e.message}),I.warn(r.message))}}function Be(e){return e.name+"!"+e.options.appId}class Te{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new ke(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){var e,r;try{var n,a=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString();let t=Re();if(null!=(null==(e=this._heartbeatsCache)?void 0:e.heartbeats)||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=(null==(r=this._heartbeatsCache)?void 0:r.heartbeats)))if(this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some(e=>e.date===t))return this._heartbeatsCache.heartbeats.push({date:t,agent:a}),30<this._heartbeatsCache.heartbeats.length&&(n=(e=>{if(0===e.length)return-1;let t=0,r=e[0].date;for(let n=1;n<e.length;n++)e[n].date<r&&(r=e[n].date,t=n);return t})(this._heartbeatsCache.heartbeats),this._heartbeatsCache.heartbeats.splice(n,1)),this._storage.overwrite(this._heartbeatsCache)}catch(e){I.warn(e)}}async getHeartbeatsHeader(){var e,t,r,n,a;try{return(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null==(e=this._heartbeatsCache)?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)?"":(t=Re(),{heartbeatsToSend:r,unsentEntries:n}=((e,t=1024)=>{let r=[],n=e.slice();for(let i of e){var a=r.find(e=>e.agent===i.agent);if(a){if(a.dates.push(i.date),Pe(r)>t){a.dates.pop();break}}else if(r.push({agent:i.agent,dates:[i.date]}),Pe(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),a=i(JSON.stringify({version:2,heartbeats:r})),this._heartbeatsCache.lastSentHeartbeatDate=t,0<n.length?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),a)}catch(e){return I.warn(e),""}}}function Re(){return(new Date).toISOString().substring(0,10)}class ke{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!(()=>{try{return"object"==typeof indexedDB}catch(e){}})()&&new Promise((n,a)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(t);r.onsuccess=()=>{r.result.close(),e||self.indexedDB.deleteDatabase(t),n(!0)},r.onupgradeneeded=()=>{e=!1},r.onerror=()=>{var e;a((null==(e=r.error)?void 0:e.message)||"")}}catch(e){a(e)}}).then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&null!=(e=await(async e=>{try{var t=(await Ne()).transaction(k),r=await t.objectStore(k).get(Be(e));return await t.done,r}catch(e){e instanceof s?I.warn(e.message):(t=B.create("idb-get",{originalErrorMessage:null==e?void 0:e.message}),I.warn(t.message))}})(this.app))&&e.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t,r;if(await this._canUseIndexedDBPromise)return r=await this.read(),Le(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:e.heartbeats})}async add(e){var t,r;if(await this._canUseIndexedDBPromise)return r=await this.read(),Le(this.app,{lastSentHeartbeatDate:null!=(t=e.lastSentHeartbeatDate)?t:r.lastSentHeartbeatDate,heartbeats:[...r.heartbeats,...e.heartbeats]})}}function Pe(e){return i(JSON.stringify({version:2,heartbeats:e})).length}e="",L(new h("platform-logger",e=>new ge(e),"PRIVATE")),L(new h("heartbeat",e=>new Te(e),"PRIVATE")),R(C,w,e),R(C,w,"esm2017"),R("fire-js","");var Fe=Object.freeze({__proto__:null,SDK_VERSION:we,_DEFAULT_ENTRY_NAME:D,_addComponent:N,_addOrOverwriteComponent:ve,_apps:S,_clearComponents:function(){A.clear()},_components:A,_getProvider:me,_isFirebaseApp:_e,_isFirebaseServerApp:function(e){return null!=e&&void 0!==e.settings},_registerComponent:L,_removeServiceInstance:function(e,t,r=D){me(e,t).clearInstance(r)},_serverApps:O,deleteApp:t,getApp:function(e=D){var t=S.get(e);if(!t&&e===D&&W())return T();if(t)return t;throw B.create("no-app",{appName:e})},getApps:function(){return Array.from(S.values())},initializeApp:T,initializeServerApp:function(e,t){if(("undefined"!=typeof window||J())&&!J())throw B.create("invalid-server-app-environment");void 0===t.automaticDataCollectionEnabled&&(t.automaticDataCollectionEnabled=!1);let r;r=_e(e)?e.options:e;var n=Object.assign(Object.assign({},t),r);if(void 0!==n.releaseOnDeref&&delete n.releaseOnDeref,void 0!==t.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw B.create("finalization-registry-not-supported",{});var n=""+[...JSON.stringify(n)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),a=O.get(n);if(a)a.incRefCount(t.releaseOnDeref);else{var i,s=new Q(n);for(i of A.values())s.addComponent(i);a=new Ce(r,t,n,s),O.set(n,a)}return a},onLog:Ie,registerVersion:R,setLogLevel:De,FirebaseError:s});class Me{constructor(e,t){this._delegate=e,this.firebase=t,N(e,new h("app-compat",()=>this,"PUBLIC")),this.container=e.container}get automaticDataCollectionEnabled(){return this._delegate.automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this._delegate.automaticDataCollectionEnabled=e}get name(){return this._delegate.name}get options(){return this._delegate.options}delete(){return new Promise(e=>{this._delegate.checkDestroyed(),e()}).then(()=>(this.firebase.INTERNAL.removeApp(this.name),t(this._delegate)))}_getService(e,t=D){this._delegate.checkDestroyed();var r,n=this._delegate.container.getProvider(e);return n.isInitialized()||"EXPLICIT"!==(null==(r=n.getComponent())?void 0:r.instantiationMode)||n.initialize(),n.getImmediate({identifier:t})}_removeServiceInstance(e,t=D){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){N(this._delegate,e)}_addOrOverwriteComponent(e){ve(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let je=new a("app-compat","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance."});function ze(a){let i={},s={__esModule:!0,initializeApp:function(e,t={}){var r=T(e,t);if(K(i,r.name))return i[r.name];var n=new a(r,s);return i[r.name]=n},app:o,registerVersion:R,setLogLevel:De,onLog:Ie,apps:null,SDK_VERSION:we,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;L(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw je.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&c(e,t.serviceProps),s[n]=e,a.prototype[n]=function(...e){return this._getService.bind(this,r).apply(this,t.multipleInstances?e:[])})}return"PUBLIC"===t.type?s[n]:null},removeApp:function(e){delete i[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var r=t;return r},modularAPIs:Fe}};function o(e){if(e=e||D,K(i,e))return i[e];throw je.create("no-app",{appName:e})}return s.default=s,Object.defineProperty(s,"apps",{get:function(){return Object.keys(i).map(e=>i[e])}}),o.App=a,s}var xe=function e(){let t=ze(Me);return t.INTERNAL=Object.assign(Object.assign({},t.INTERNAL),{createFirebaseNamespace:e,extendNamespace:function(e){c(t,e)},createSubscribe:X,ErrorFactory:a,deepExtend:c}),t}(),He=new ae("@firebase/app-compat");try{var Ve,P=z();void 0!==P.firebase&&(He.warn(`
Warning: Firebase is already defined in the global scope. Please make sure

@@ -7,3 +7,3 @@ Firebase library is only loaded once.

You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.
`)}catch(e){}P=xe;R("@firebase/app-compat","0.2.49-canary.70e08cf95",void 0);return P.registerVersion("firebase","11.3.0-canary.70e08cf95","app-compat-cdn"),P});
`)}catch(e){}P=xe;R("@firebase/app-compat","0.2.49-canary.84dfeca39",void 0);return P.registerVersion("firebase","11.3.0-canary.84dfeca39","app-compat-cdn"),P});
//# sourceMappingURL=firebase-app-compat.js.map

@@ -1,3 +0,3 @@

import{_removeServiceInstance as e,getApp as t,_getProvider,_registerComponent as r,registerVersion as n,_isFirebaseServerApp as i,SDK_VERSION as s}from"https://www.gstatic.com/firebasejs/11.3.0-canary.70e08cf95/firebase-app.js";class FirebaseError extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){const r=t[0]||{},n=`${this.service}/${e}`,i=this.errors[e],s=i?function replaceTemplate(e,t){return e.replace(o,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}(i,r):"Error",a=`${this.serviceName}: ${s} (${n}).`;return new FirebaseError(n,a,r)}}const o=/\{\$([^}]+)}/g;class Component{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}var a;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(a||(a={}));const c={debug:a.DEBUG,verbose:a.VERBOSE,info:a.INFO,warn:a.WARN,error:a.ERROR,silent:a.SILENT},h=a.INFO,l={[a.DEBUG]:"log",[a.VERBOSE]:"log",[a.INFO]:"info",[a.WARN]:"warn",[a.ERROR]:"error"},defaultLogHandler=(e,t,...r)=>{if(t<e.logLevel)return;const n=(new Date).toISOString(),i=l[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)};const u="@firebase/data-connect",p="0.3.0-canary.70e08cf95";let d="";class AppCheckTokenProvider{constructor(e,t){this.appCheckProvider=t,i(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=null==t?void 0:t.getImmediate({optional:!0}),this.appCheck||null==t||t.get().then((e=>this.appCheck=e)).catch()}getToken(){return this.serverAppAppCheckToken?Promise.resolve({token:this.serverAppAppCheckToken}):this.appCheck?this.appCheck.getToken():new Promise(((e,t)=>{setTimeout((()=>{this.appCheck?this.getToken().then(e,t):e(null)}),0)}))}addTokenChangeListener(e){var t;null===(t=this.appCheckProvider)||void 0===t||t.get().then((t=>t.addTokenListener(e)))}}const g="other",_="already-initialized",f="invalid-argument",C="unauthorized";class DataConnectError extends FirebaseError{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}const k=new class Logger{constructor(e){this.name=e,this._logLevel=h,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in a))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?c[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,a.DEBUG,...e),this._logHandler(this,a.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,a.VERBOSE,...e),this._logHandler(this,a.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,a.INFO,...e),this._logHandler(this,a.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,a.WARN,...e),this._logHandler(this,a.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,a.ERROR,...e),this._logHandler(this,a.ERROR,...e)}}("@firebase/data-connect");function setLogLevel(e){k.setLogLevel(e)}function logDebug(e){k.debug(`DataConnect (${d}): ${e}`)}function logError(e){k.error(`DataConnect (${d}): ${e}`)}class FirebaseAuthProvider{constructor(e,t,r){this._appName=e,this._options=t,this._authProvider=r,this._auth=r.getImmediate({optional:!0}),this._auth||r.onInit((e=>this._auth=e))}getToken(e){return this._auth?this._auth.getToken(e).catch((e=>e&&"auth/token-not-initialized"===e.code?(logDebug("Got auth/token-not-initialized error. Treating as null token."),null):(logError("Error received when attempting to retrieve token: "+JSON.stringify(e)),Promise.reject(e)))):new Promise(((t,r)=>{setTimeout((()=>{this._auth?this.getToken(e).then(t,r):t(null)}),0)}))}addTokenChangeListener(e){var t;null===(t=this._auth)||void 0===t||t.addAuthTokenListener(e)}removeTokenChangeListener(e){this._authProvider.get().then((t=>t.removeAuthTokenListener(e))).catch((e=>logError(e)))}}const v="query",m="mutation",T="SERVER",E="CACHE";let b;function getRefSerializer(e,t,r){return function toJSON(){return{data:t,refInfo:{name:e.name,variables:e.variables,connectorConfig:Object.assign({projectId:e.dataConnect.app.options.projectId},e.dataConnect.getSettings())},fetchTime:Date.now().toLocaleString(),source:r}}}!function setEncoder(e){b=e}((e=>JSON.stringify(e)));class QueryManager{constructor(e){this.transport=e,this._queries=new Map}track(e,t,r){const n={name:e,variables:t,refType:v},i=b(n),s={ref:n,subscriptions:[],currentCache:r||null,lastError:null};return function setIfNotExists(e,t,r){e.has(t)||e.set(t,r)}(this._queries,i,s),this._queries.get(i)}addSubscription(e,t,r,n){const i=b({name:e.name,variables:e.variables,refType:v}),s=this._queries.get(i),o={userCallback:t,errCallback:r},unsubscribe=()=>{const e=this._queries.get(i);e.subscriptions=e.subscriptions.filter((e=>e!==o))};if(n&&s.currentCache!==n&&(logDebug("Initial cache found. Comparing dates."),(!s.currentCache||s.currentCache&&function compareDates(e,t){const r=new Date(e),n=new Date(t);return r.getTime()<n.getTime()}(s.currentCache.fetchTime,n.fetchTime))&&(s.currentCache=n)),null!==s.currentCache){t({data:s.currentCache.data,source:E,ref:e,toJSON:getRefSerializer(e,s.currentCache.data,E),fetchTime:s.currentCache.fetchTime}),null!==s.lastError&&r&&r(void 0)}if(s.subscriptions.push({userCallback:t,errCallback:r,unsubscribe:unsubscribe}),!s.currentCache){logDebug(`No cache available for query ${e.name} with variables ${JSON.stringify(e.variables)}. Calling executeQuery.`);this.executeQuery(e).then(void 0,(e=>{}))}return unsubscribe}executeQuery(e){if(e.refType!==v)throw new DataConnectError(f,"ExecuteQuery can only execute query operation");const t=b({name:e.name,variables:e.variables,refType:v}),r=this._queries.get(t);return this.transport.invokeQuery(e.name,e.variables).then((t=>{const n=(new Date).toString(),i=Object.assign(Object.assign({},t),{source:T,ref:e,toJSON:getRefSerializer(e,t.data,T),fetchTime:n});return r.subscriptions.forEach((e=>{e.userCallback(i)})),r.currentCache={data:t.data,source:E,fetchTime:n},i}),(e=>{throw r.lastError=e,r.subscriptions.forEach((t=>{t.errCallback&&t.errCallback(e)})),e}))}enableEmulator(e,t){this.transport.useEmulator(e,t)}}const y={Base:"Base",Generated:"Generated",TanstackReactCore:"TanstackReactCore",GeneratedReact:"GeneratedReact",TanstackAngularCore:"TanstackAngularCore",GeneratedAngular:"GeneratedAngular"};function addToken(e,t){if(!t)return e;const r=new URL(e);return r.searchParams.append("key",t),r.toString()}let w=globalThis.fetch;function getGoogApiClientValue(e,t){let r="gl-js/ fire/"+d;return t!==y.Base&&t!==y.Generated?r+=" js/"+t.toLowerCase():(e||t===y.Generated)&&(r+=" js/gen"),r}function dcFetch(e,t,{signal:r},n,i,s,o,a){if(!w)throw new DataConnectError(g,"No Fetch Implementation detected!");const c={"Content-Type":"application/json","X-Goog-Api-Client":getGoogApiClientValue(o,a)};i&&(c["X-Firebase-Auth-Token"]=i),n&&(c["x-firebase-gmpid"]=n),s&&(c["X-Firebase-AppCheck"]=s);const h=JSON.stringify(t);return logDebug(`Making request out to ${e} with body: ${h}`),w(e,{body:h,method:"POST",headers:c,signal:r}).catch((e=>{throw new DataConnectError(g,"Failed to fetch: "+JSON.stringify(e))})).then((async e=>{let t=null;try{t=await e.json()}catch(e){throw new DataConnectError(g,JSON.stringify(e))}const r=function getMessage(e){if("message"in e)return e.message;return JSON.stringify(e)}(t);if(e.status>=400){if(logError("Error while performing request: "+JSON.stringify(t)),401===e.status)throw new DataConnectError(C,r);throw new DataConnectError(g,r)}return t})).then((e=>{if(e.errors&&e.errors.length){const t=JSON.stringify(e.errors);throw logError("DataConnect error while performing request: "+t),new DataConnectError(g,t)}return e}))}class RESTTransport{constructor(e,t,r,n,i,s,o=!1,a=y.Base){var c,h;this.apiKey=t,this.appId=r,this.authProvider=n,this.appCheckProvider=i,this._isUsingGen=o,this._callerSdkType=a,this._host="",this._location="l",this._connectorName="",this._secure=!0,this._project="p",this._accessToken=null,this._appCheckToken=null,this._lastToken=null,this.invokeQuery=(e,t)=>{const r=new AbortController;return this.withRetry((()=>dcFetch(addToken(`${this.endpointUrl}:executeQuery`,this.apiKey),{name:`projects/${this._project}/locations/${this._location}/services/${this._serviceName}/connectors/${this._connectorName}`,operationName:e,variables:t},r,this.appId,this._accessToken,this._appCheckToken,this._isUsingGen,this._callerSdkType)))},this.invokeMutation=(e,t)=>{const r=new AbortController;return this.withRetry((()=>dcFetch(addToken(`${this.endpointUrl}:executeMutation`,this.apiKey),{name:`projects/${this._project}/locations/${this._location}/services/${this._serviceName}/connectors/${this._connectorName}`,operationName:e,variables:t},r,this.appId,this._accessToken,this._appCheckToken,this._isUsingGen,this._callerSdkType)))},s&&("number"==typeof s.port&&(this._port=s.port),void 0!==s.sslEnabled&&(this._secure=s.sslEnabled),this._host=s.host);const{location:l,projectId:u,connector:p,service:d}=e;if(l&&(this._location=l),u&&(this._project=u),this._serviceName=d,!p)throw new DataConnectError(f,"Connector Name required!");this._connectorName=p,null===(c=this.authProvider)||void 0===c||c.addTokenChangeListener((e=>{logDebug(`New Token Available: ${e}`),this._accessToken=e})),null===(h=this.appCheckProvider)||void 0===h||h.addTokenChangeListener((e=>{const{token:t}=e;logDebug(`New App Check Token Available: ${t}`),this._appCheckToken=t}))}get endpointUrl(){return function urlBuilder(e,t){const{connector:r,location:n,projectId:i,service:s}=e,{host:o,sslEnabled:a,port:c}=t;let h=`${a?"https":"http"}://${o||"firebasedataconnect.googleapis.com"}`;if("number"==typeof c)h+=`:${c}`;else if(void 0!==c)throw logError("Port type is of an invalid type"),new DataConnectError(f,"Incorrect type for port passed in!");return`${h}/v1beta/projects/${i}/locations/${n}/services/${s}/connectors/${r}`}({connector:this._connectorName,location:this._location,projectId:this._project,service:this._serviceName},{host:this._host,sslEnabled:this._secure,port:this._port})}useEmulator(e,t,r){this._host=e,"number"==typeof t&&(this._port=t),void 0!==r&&(this._secure=r)}onTokenChanged(e){this._accessToken=e}async getWithAuth(e=!1){var t;let r=new Promise((e=>e(this._accessToken)));return this.appCheckProvider&&(this._appCheckToken=null===(t=await this.appCheckProvider.getToken())||void 0===t?void 0:t.token),r=this.authProvider?this.authProvider.getToken(e).then((e=>e?(this._accessToken=e.accessToken,this._accessToken):null)):new Promise((e=>e(""))),r}_setLastToken(e){this._lastToken=e}withRetry(e,t=!1){let r=!1;return this.getWithAuth(t).then((e=>(r=this._lastToken!==e,this._lastToken=e,e))).then(e).catch((n=>{if("code"in n&&n.code===C&&!t&&r)return logDebug("Retrying due to unauthorized"),this.withRetry(e,!0);throw n}))}_setCallerSdkType(e){this._callerSdkType=e}}function mutationRef(e,t,r){e.setInitialized();return{dataConnect:e,name:t,refType:m,variables:r}}class MutationManager{constructor(e){this._transport=e,this._inflight=[]}executeMutation(e){const t=this._transport.invokeMutation(e.name,e.variables),r=t.then((t=>Object.assign(Object.assign({},t),{source:T,ref:e,fetchTime:Date.now().toLocaleString()})));this._inflight.push(t);const removePromise=()=>this._inflight=this._inflight.filter((e=>e!==t));return t.then(removePromise,removePromise),r}}function executeMutation(e){return e.dataConnect._mutationManager.executeMutation(e)}function parseOptions(e){const[t,r]=e.split("://"),n="https"===t,[i,s]=r.split(":");return{host:i,port:Number(s),sslEnabled:n}}class DataConnect{constructor(e,t,r,n){if(this.app=e,this.dataConnectOptions=t,this._authProvider=r,this._appCheckProvider=n,this.isEmulator=!1,this._initialized=!1,this._isUsingGeneratedSdk=!1,this._callerSdkType=y.Base,"undefined"!=typeof process&&process.env){const e=process.env.FIREBASE_DATA_CONNECT_EMULATOR_HOST;e&&(logDebug("Found custom host. Using emulator"),this.isEmulator=!0,this._transportOptions=parseOptions(e))}}_useGeneratedSdk(){this._isUsingGeneratedSdk||(this._isUsingGeneratedSdk=!0)}_setCallerSdkType(e){this._callerSdkType=e,this._initialized&&this._transport._setCallerSdkType(e)}_delete(){return e(this.app,"data-connect",JSON.stringify(this.getSettings())),Promise.resolve()}getSettings(){const e=JSON.parse(JSON.stringify(this.dataConnectOptions));return delete e.projectId,e}setInitialized(){this._initialized||(void 0===this._transportClass&&(logDebug("transportClass not provided. Defaulting to RESTTransport."),this._transportClass=RESTTransport),this._authProvider&&(this._authTokenProvider=new FirebaseAuthProvider(this.app.name,this.app.options,this._authProvider)),this._appCheckProvider&&(this._appCheckTokenProvider=new AppCheckTokenProvider(this.app,this._appCheckProvider)),this._initialized=!0,this._transport=new this._transportClass(this.dataConnectOptions,this.app.options.apiKey,this.app.options.appId,this._authTokenProvider,this._appCheckTokenProvider,void 0,this._isUsingGeneratedSdk,this._callerSdkType),this._transportOptions&&this._transport.useEmulator(this._transportOptions.host,this._transportOptions.port,this._transportOptions.sslEnabled),this._queryManager=new QueryManager(this._transport),this._mutationManager=new MutationManager(this._transport))}enableEmulator(e){if(this._initialized&&!areTransportOptionsEqual(this._transportOptions,e))throw logError("enableEmulator called after initialization"),new DataConnectError(_,"DataConnect instance already initialized!");this._transportOptions=e,this.isEmulator=!0}}function areTransportOptionsEqual(e,t){return e.host===t.host&&e.port===t.port&&e.sslEnabled===t.sslEnabled}function connectDataConnectEmulator(e,t,r,n=!1){e.enableEmulator({host:t,port:r,sslEnabled:n})}function getDataConnect(e,r){let n,i;"location"in e?(i=e,n=t()):(i=r,n=e),n&&0!==Object.keys(n).length||(n=t());const s=_getProvider(n,"data-connect"),o=JSON.stringify(i);if(s.isInitialized(o)){const e=s.getImmediate({identifier:o}),t=s.getOptions(o);if(Object.keys(t).length>0)return logDebug("Re-using cached instance"),e}return validateDCOptions(i),logDebug("Creating new DataConnect instance"),s.initialize({instanceIdentifier:o,options:i})}function validateDCOptions(e){if(!e)throw new DataConnectError(f,"DC Option Required");return["connector","location","service"].forEach((t=>{if(null===e[t]||void 0===e[t])throw new DataConnectError(f,`${t} Required`)})),!0}function terminate(e){return e._delete()}function executeQuery(e){return e.dataConnect._queryManager.executeQuery(e)}function queryRef(e,t,r,n){return e.setInitialized(),e._queryManager.track(t,r,n),{dataConnect:e,refType:v,name:t,variables:r}}function toQueryRef(e){const{refInfo:{name:t,variables:r,connectorConfig:n}}=e;return queryRef(getDataConnect(n),t,r)}function validateArgs(e,t,r,n){let i,s;if(t&&"enableEmulator"in t?(i=t,s=r):(i=getDataConnect(e),s=t),!i||!s&&n)throw new DataConnectError(f,"Variables required.");return{dc:i,vars:s}}function subscribe(e,t,r,n){let i,s,o;if("refInfo"in e){const t=e,{data:r,source:n,fetchTime:o}=t;s={data:r,source:n,fetchTime:o},i=toQueryRef(t)}else i=e;if("function"==typeof t?o=t:(o=t.onNext,r=t.onErr,t.onComplete),!o)throw new DataConnectError(f,"Must provide onNext");return i.dataConnect._queryManager.addSubscription(i,o,r,s)}!function registerDataConnect(e){!function setSDKVersion(e){d=e}(s),r(new Component("data-connect",((e,{instanceIdentifier:t,options:r})=>{const n=e.getProvider("app").getImmediate(),i=e.getProvider("auth-internal"),s=e.getProvider("app-check-internal");let o=r;if(t&&(o=JSON.parse(t)),!n.options.projectId)throw new DataConnectError(f,"Project ID must be provided. Did you pass in a proper projectId to initializeApp?");return new DataConnect(n,Object.assign(Object.assign({},o),{projectId:n.options.projectId}),i,s)}),"PUBLIC").setMultipleInstances(!0)),n(u,p,e),n(u,p,"esm2017")}();export{y as CallerSdkTypeEnum,DataConnect,m as MUTATION_STR,MutationManager,v as QUERY_STR,E as SOURCE_CACHE,T as SOURCE_SERVER,areTransportOptionsEqual,connectDataConnectEmulator,executeMutation,executeQuery,getDataConnect,mutationRef,parseOptions,queryRef,setLogLevel,subscribe,terminate,toQueryRef,validateArgs,validateDCOptions};
import{_removeServiceInstance as e,getApp as t,_getProvider,_registerComponent as r,registerVersion as n,_isFirebaseServerApp as i,SDK_VERSION as s}from"https://www.gstatic.com/firebasejs/11.3.0-canary.84dfeca39/firebase-app.js";class FirebaseError extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){const r=t[0]||{},n=`${this.service}/${e}`,i=this.errors[e],s=i?function replaceTemplate(e,t){return e.replace(o,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}(i,r):"Error",a=`${this.serviceName}: ${s} (${n}).`;return new FirebaseError(n,a,r)}}const o=/\{\$([^}]+)}/g;class Component{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}var a;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(a||(a={}));const c={debug:a.DEBUG,verbose:a.VERBOSE,info:a.INFO,warn:a.WARN,error:a.ERROR,silent:a.SILENT},h=a.INFO,l={[a.DEBUG]:"log",[a.VERBOSE]:"log",[a.INFO]:"info",[a.WARN]:"warn",[a.ERROR]:"error"},defaultLogHandler=(e,t,...r)=>{if(t<e.logLevel)return;const n=(new Date).toISOString(),i=l[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)};const u="@firebase/data-connect",p="0.3.0-canary.84dfeca39";let d="";class AppCheckTokenProvider{constructor(e,t){this.appCheckProvider=t,i(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=null==t?void 0:t.getImmediate({optional:!0}),this.appCheck||null==t||t.get().then((e=>this.appCheck=e)).catch()}getToken(){return this.serverAppAppCheckToken?Promise.resolve({token:this.serverAppAppCheckToken}):this.appCheck?this.appCheck.getToken():new Promise(((e,t)=>{setTimeout((()=>{this.appCheck?this.getToken().then(e,t):e(null)}),0)}))}addTokenChangeListener(e){var t;null===(t=this.appCheckProvider)||void 0===t||t.get().then((t=>t.addTokenListener(e)))}}const g="other",_="already-initialized",f="invalid-argument",C="unauthorized";class DataConnectError extends FirebaseError{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}const k=new class Logger{constructor(e){this.name=e,this._logLevel=h,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in a))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?c[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,a.DEBUG,...e),this._logHandler(this,a.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,a.VERBOSE,...e),this._logHandler(this,a.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,a.INFO,...e),this._logHandler(this,a.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,a.WARN,...e),this._logHandler(this,a.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,a.ERROR,...e),this._logHandler(this,a.ERROR,...e)}}("@firebase/data-connect");function setLogLevel(e){k.setLogLevel(e)}function logDebug(e){k.debug(`DataConnect (${d}): ${e}`)}function logError(e){k.error(`DataConnect (${d}): ${e}`)}class FirebaseAuthProvider{constructor(e,t,r){this._appName=e,this._options=t,this._authProvider=r,this._auth=r.getImmediate({optional:!0}),this._auth||r.onInit((e=>this._auth=e))}getToken(e){return this._auth?this._auth.getToken(e).catch((e=>e&&"auth/token-not-initialized"===e.code?(logDebug("Got auth/token-not-initialized error. Treating as null token."),null):(logError("Error received when attempting to retrieve token: "+JSON.stringify(e)),Promise.reject(e)))):new Promise(((t,r)=>{setTimeout((()=>{this._auth?this.getToken(e).then(t,r):t(null)}),0)}))}addTokenChangeListener(e){var t;null===(t=this._auth)||void 0===t||t.addAuthTokenListener(e)}removeTokenChangeListener(e){this._authProvider.get().then((t=>t.removeAuthTokenListener(e))).catch((e=>logError(e)))}}const v="query",m="mutation",T="SERVER",E="CACHE";let b;function getRefSerializer(e,t,r){return function toJSON(){return{data:t,refInfo:{name:e.name,variables:e.variables,connectorConfig:Object.assign({projectId:e.dataConnect.app.options.projectId},e.dataConnect.getSettings())},fetchTime:Date.now().toLocaleString(),source:r}}}!function setEncoder(e){b=e}((e=>JSON.stringify(e)));class QueryManager{constructor(e){this.transport=e,this._queries=new Map}track(e,t,r){const n={name:e,variables:t,refType:v},i=b(n),s={ref:n,subscriptions:[],currentCache:r||null,lastError:null};return function setIfNotExists(e,t,r){e.has(t)||e.set(t,r)}(this._queries,i,s),this._queries.get(i)}addSubscription(e,t,r,n){const i=b({name:e.name,variables:e.variables,refType:v}),s=this._queries.get(i),o={userCallback:t,errCallback:r},unsubscribe=()=>{const e=this._queries.get(i);e.subscriptions=e.subscriptions.filter((e=>e!==o))};if(n&&s.currentCache!==n&&(logDebug("Initial cache found. Comparing dates."),(!s.currentCache||s.currentCache&&function compareDates(e,t){const r=new Date(e),n=new Date(t);return r.getTime()<n.getTime()}(s.currentCache.fetchTime,n.fetchTime))&&(s.currentCache=n)),null!==s.currentCache){t({data:s.currentCache.data,source:E,ref:e,toJSON:getRefSerializer(e,s.currentCache.data,E),fetchTime:s.currentCache.fetchTime}),null!==s.lastError&&r&&r(void 0)}if(s.subscriptions.push({userCallback:t,errCallback:r,unsubscribe:unsubscribe}),!s.currentCache){logDebug(`No cache available for query ${e.name} with variables ${JSON.stringify(e.variables)}. Calling executeQuery.`);this.executeQuery(e).then(void 0,(e=>{}))}return unsubscribe}executeQuery(e){if(e.refType!==v)throw new DataConnectError(f,"ExecuteQuery can only execute query operation");const t=b({name:e.name,variables:e.variables,refType:v}),r=this._queries.get(t);return this.transport.invokeQuery(e.name,e.variables).then((t=>{const n=(new Date).toString(),i=Object.assign(Object.assign({},t),{source:T,ref:e,toJSON:getRefSerializer(e,t.data,T),fetchTime:n});return r.subscriptions.forEach((e=>{e.userCallback(i)})),r.currentCache={data:t.data,source:E,fetchTime:n},i}),(e=>{throw r.lastError=e,r.subscriptions.forEach((t=>{t.errCallback&&t.errCallback(e)})),e}))}enableEmulator(e,t){this.transport.useEmulator(e,t)}}const y={Base:"Base",Generated:"Generated",TanstackReactCore:"TanstackReactCore",GeneratedReact:"GeneratedReact",TanstackAngularCore:"TanstackAngularCore",GeneratedAngular:"GeneratedAngular"};function addToken(e,t){if(!t)return e;const r=new URL(e);return r.searchParams.append("key",t),r.toString()}let w=globalThis.fetch;function getGoogApiClientValue(e,t){let r="gl-js/ fire/"+d;return t!==y.Base&&t!==y.Generated?r+=" js/"+t.toLowerCase():(e||t===y.Generated)&&(r+=" js/gen"),r}function dcFetch(e,t,{signal:r},n,i,s,o,a){if(!w)throw new DataConnectError(g,"No Fetch Implementation detected!");const c={"Content-Type":"application/json","X-Goog-Api-Client":getGoogApiClientValue(o,a)};i&&(c["X-Firebase-Auth-Token"]=i),n&&(c["x-firebase-gmpid"]=n),s&&(c["X-Firebase-AppCheck"]=s);const h=JSON.stringify(t);return logDebug(`Making request out to ${e} with body: ${h}`),w(e,{body:h,method:"POST",headers:c,signal:r}).catch((e=>{throw new DataConnectError(g,"Failed to fetch: "+JSON.stringify(e))})).then((async e=>{let t=null;try{t=await e.json()}catch(e){throw new DataConnectError(g,JSON.stringify(e))}const r=function getMessage(e){if("message"in e)return e.message;return JSON.stringify(e)}(t);if(e.status>=400){if(logError("Error while performing request: "+JSON.stringify(t)),401===e.status)throw new DataConnectError(C,r);throw new DataConnectError(g,r)}return t})).then((e=>{if(e.errors&&e.errors.length){const t=JSON.stringify(e.errors);throw logError("DataConnect error while performing request: "+t),new DataConnectError(g,t)}return e}))}class RESTTransport{constructor(e,t,r,n,i,s,o=!1,a=y.Base){var c,h;this.apiKey=t,this.appId=r,this.authProvider=n,this.appCheckProvider=i,this._isUsingGen=o,this._callerSdkType=a,this._host="",this._location="l",this._connectorName="",this._secure=!0,this._project="p",this._accessToken=null,this._appCheckToken=null,this._lastToken=null,this.invokeQuery=(e,t)=>{const r=new AbortController;return this.withRetry((()=>dcFetch(addToken(`${this.endpointUrl}:executeQuery`,this.apiKey),{name:`projects/${this._project}/locations/${this._location}/services/${this._serviceName}/connectors/${this._connectorName}`,operationName:e,variables:t},r,this.appId,this._accessToken,this._appCheckToken,this._isUsingGen,this._callerSdkType)))},this.invokeMutation=(e,t)=>{const r=new AbortController;return this.withRetry((()=>dcFetch(addToken(`${this.endpointUrl}:executeMutation`,this.apiKey),{name:`projects/${this._project}/locations/${this._location}/services/${this._serviceName}/connectors/${this._connectorName}`,operationName:e,variables:t},r,this.appId,this._accessToken,this._appCheckToken,this._isUsingGen,this._callerSdkType)))},s&&("number"==typeof s.port&&(this._port=s.port),void 0!==s.sslEnabled&&(this._secure=s.sslEnabled),this._host=s.host);const{location:l,projectId:u,connector:p,service:d}=e;if(l&&(this._location=l),u&&(this._project=u),this._serviceName=d,!p)throw new DataConnectError(f,"Connector Name required!");this._connectorName=p,null===(c=this.authProvider)||void 0===c||c.addTokenChangeListener((e=>{logDebug(`New Token Available: ${e}`),this._accessToken=e})),null===(h=this.appCheckProvider)||void 0===h||h.addTokenChangeListener((e=>{const{token:t}=e;logDebug(`New App Check Token Available: ${t}`),this._appCheckToken=t}))}get endpointUrl(){return function urlBuilder(e,t){const{connector:r,location:n,projectId:i,service:s}=e,{host:o,sslEnabled:a,port:c}=t;let h=`${a?"https":"http"}://${o||"firebasedataconnect.googleapis.com"}`;if("number"==typeof c)h+=`:${c}`;else if(void 0!==c)throw logError("Port type is of an invalid type"),new DataConnectError(f,"Incorrect type for port passed in!");return`${h}/v1beta/projects/${i}/locations/${n}/services/${s}/connectors/${r}`}({connector:this._connectorName,location:this._location,projectId:this._project,service:this._serviceName},{host:this._host,sslEnabled:this._secure,port:this._port})}useEmulator(e,t,r){this._host=e,"number"==typeof t&&(this._port=t),void 0!==r&&(this._secure=r)}onTokenChanged(e){this._accessToken=e}async getWithAuth(e=!1){var t;let r=new Promise((e=>e(this._accessToken)));return this.appCheckProvider&&(this._appCheckToken=null===(t=await this.appCheckProvider.getToken())||void 0===t?void 0:t.token),r=this.authProvider?this.authProvider.getToken(e).then((e=>e?(this._accessToken=e.accessToken,this._accessToken):null)):new Promise((e=>e(""))),r}_setLastToken(e){this._lastToken=e}withRetry(e,t=!1){let r=!1;return this.getWithAuth(t).then((e=>(r=this._lastToken!==e,this._lastToken=e,e))).then(e).catch((n=>{if("code"in n&&n.code===C&&!t&&r)return logDebug("Retrying due to unauthorized"),this.withRetry(e,!0);throw n}))}_setCallerSdkType(e){this._callerSdkType=e}}function mutationRef(e,t,r){e.setInitialized();return{dataConnect:e,name:t,refType:m,variables:r}}class MutationManager{constructor(e){this._transport=e,this._inflight=[]}executeMutation(e){const t=this._transport.invokeMutation(e.name,e.variables),r=t.then((t=>Object.assign(Object.assign({},t),{source:T,ref:e,fetchTime:Date.now().toLocaleString()})));this._inflight.push(t);const removePromise=()=>this._inflight=this._inflight.filter((e=>e!==t));return t.then(removePromise,removePromise),r}}function executeMutation(e){return e.dataConnect._mutationManager.executeMutation(e)}function parseOptions(e){const[t,r]=e.split("://"),n="https"===t,[i,s]=r.split(":");return{host:i,port:Number(s),sslEnabled:n}}class DataConnect{constructor(e,t,r,n){if(this.app=e,this.dataConnectOptions=t,this._authProvider=r,this._appCheckProvider=n,this.isEmulator=!1,this._initialized=!1,this._isUsingGeneratedSdk=!1,this._callerSdkType=y.Base,"undefined"!=typeof process&&process.env){const e=process.env.FIREBASE_DATA_CONNECT_EMULATOR_HOST;e&&(logDebug("Found custom host. Using emulator"),this.isEmulator=!0,this._transportOptions=parseOptions(e))}}_useGeneratedSdk(){this._isUsingGeneratedSdk||(this._isUsingGeneratedSdk=!0)}_setCallerSdkType(e){this._callerSdkType=e,this._initialized&&this._transport._setCallerSdkType(e)}_delete(){return e(this.app,"data-connect",JSON.stringify(this.getSettings())),Promise.resolve()}getSettings(){const e=JSON.parse(JSON.stringify(this.dataConnectOptions));return delete e.projectId,e}setInitialized(){this._initialized||(void 0===this._transportClass&&(logDebug("transportClass not provided. Defaulting to RESTTransport."),this._transportClass=RESTTransport),this._authProvider&&(this._authTokenProvider=new FirebaseAuthProvider(this.app.name,this.app.options,this._authProvider)),this._appCheckProvider&&(this._appCheckTokenProvider=new AppCheckTokenProvider(this.app,this._appCheckProvider)),this._initialized=!0,this._transport=new this._transportClass(this.dataConnectOptions,this.app.options.apiKey,this.app.options.appId,this._authTokenProvider,this._appCheckTokenProvider,void 0,this._isUsingGeneratedSdk,this._callerSdkType),this._transportOptions&&this._transport.useEmulator(this._transportOptions.host,this._transportOptions.port,this._transportOptions.sslEnabled),this._queryManager=new QueryManager(this._transport),this._mutationManager=new MutationManager(this._transport))}enableEmulator(e){if(this._initialized&&!areTransportOptionsEqual(this._transportOptions,e))throw logError("enableEmulator called after initialization"),new DataConnectError(_,"DataConnect instance already initialized!");this._transportOptions=e,this.isEmulator=!0}}function areTransportOptionsEqual(e,t){return e.host===t.host&&e.port===t.port&&e.sslEnabled===t.sslEnabled}function connectDataConnectEmulator(e,t,r,n=!1){e.enableEmulator({host:t,port:r,sslEnabled:n})}function getDataConnect(e,r){let n,i;"location"in e?(i=e,n=t()):(i=r,n=e),n&&0!==Object.keys(n).length||(n=t());const s=_getProvider(n,"data-connect"),o=JSON.stringify(i);if(s.isInitialized(o)){const e=s.getImmediate({identifier:o}),t=s.getOptions(o);if(Object.keys(t).length>0)return logDebug("Re-using cached instance"),e}return validateDCOptions(i),logDebug("Creating new DataConnect instance"),s.initialize({instanceIdentifier:o,options:i})}function validateDCOptions(e){if(!e)throw new DataConnectError(f,"DC Option Required");return["connector","location","service"].forEach((t=>{if(null===e[t]||void 0===e[t])throw new DataConnectError(f,`${t} Required`)})),!0}function terminate(e){return e._delete()}function executeQuery(e){return e.dataConnect._queryManager.executeQuery(e)}function queryRef(e,t,r,n){return e.setInitialized(),e._queryManager.track(t,r,n),{dataConnect:e,refType:v,name:t,variables:r}}function toQueryRef(e){const{refInfo:{name:t,variables:r,connectorConfig:n}}=e;return queryRef(getDataConnect(n),t,r)}function validateArgs(e,t,r,n){let i,s;if(t&&"enableEmulator"in t?(i=t,s=r):(i=getDataConnect(e),s=t),!i||!s&&n)throw new DataConnectError(f,"Variables required.");return{dc:i,vars:s}}function subscribe(e,t,r,n){let i,s,o;if("refInfo"in e){const t=e,{data:r,source:n,fetchTime:o}=t;s={data:r,source:n,fetchTime:o},i=toQueryRef(t)}else i=e;if("function"==typeof t?o=t:(o=t.onNext,r=t.onErr,t.onComplete),!o)throw new DataConnectError(f,"Must provide onNext");return i.dataConnect._queryManager.addSubscription(i,o,r,s)}!function registerDataConnect(e){!function setSDKVersion(e){d=e}(s),r(new Component("data-connect",((e,{instanceIdentifier:t,options:r})=>{const n=e.getProvider("app").getImmediate(),i=e.getProvider("auth-internal"),s=e.getProvider("app-check-internal");let o=r;if(t&&(o=JSON.parse(t)),!n.options.projectId)throw new DataConnectError(f,"Project ID must be provided. Did you pass in a proper projectId to initializeApp?");return new DataConnect(n,Object.assign(Object.assign({},o),{projectId:n.options.projectId}),i,s)}),"PUBLIC").setMultipleInstances(!0)),n(u,p,e),n(u,p,"esm2017")}();export{y as CallerSdkTypeEnum,DataConnect,m as MUTATION_STR,MutationManager,v as QUERY_STR,E as SOURCE_CACHE,T as SOURCE_SERVER,areTransportOptionsEqual,connectDataConnectEmulator,executeMutation,executeQuery,getDataConnect,mutationRef,parseOptions,queryRef,setLogLevel,subscribe,terminate,toQueryRef,validateArgs,validateDCOptions};
//# sourceMappingURL=firebase-data-connect.js.map

@@ -1,2 +0,2 @@

((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(j,R){try{!(function(){function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t,n=e(j);class s extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,s.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,r.prototype.create)}}class r{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){var r,n=t[0]||{},a=this.service+"/"+e,i=this.errors[e],i=i?(r=n,i.replace(o,(e,t)=>{var n=r[t];return null!=n?String(n):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${a}).`;return new s(a,i,n)}}let o=/\{\$([^}]+)}/g;function c(e){return e&&e._delegate?e._delegate:e}class a{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}let i="type.googleapis.com/google.protobuf.Int64Value",l="type.googleapis.com/google.protobuf.UInt64Value";function u(e,t){var n,r={};for(n in e)e.hasOwnProperty(n)&&(r[n]=t(e[n]));return r}function d(e){if(null==e)return null;if("number"==typeof(e=e instanceof Number?e.valueOf():e)&&isFinite(e))return e;if(!0===e||!1===e)return e;if("[object String]"===Object.prototype.toString.call(e))return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>d(e));if("function"==typeof e||"object"==typeof e)return u(e,e=>d(e));throw new Error("Data cannot be encoded in JSON: "+e)}function h(e){if(null==e)return e;if(e["@type"])switch(e["@type"]){case i:case l:var t=Number(e.value);if(isNaN(t))throw new Error("Data cannot be decoded from JSON: "+e);return t;default:throw new Error("Data cannot be decoded from JSON: "+e)}return Array.isArray(e)?e.map(e=>h(e)):"function"==typeof e||"object"==typeof e?u(e,e=>h(e)):e}let p="functions",m={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class f extends s{constructor(e,t,n){super(p+"/"+e,t||""),this.details=n,Object.setPrototypeOf(this,f.prototype)}}function g(e,t){let n=(e=>{if(200<=e&&e<300)return"ok";switch(e){case 0:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 500:return"internal";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"})(e),r=n,a=void 0;try{var i=t&&t.error;if(i){let e=i.status;if("string"==typeof e){if(!m[e])return new f("internal","internal");n=m[e],r=e}var s=i.message;"string"==typeof s&&(r=s),void 0!==(a=i.details)&&(a=h(a))}}catch(e){}return"ok"===n?null:new f(n,r,a)}class v{constructor(e,t,n,r){this.app=e,this.auth=null,this.messaging=null,this.appCheck=null,this.serverAppAppCheckToken=null,R._isFirebaseServerApp(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.auth=t.getImmediate({optional:!0}),this.messaging=n.getImmediate({optional:!0}),this.auth||t.get().then(e=>this.auth=e,()=>{}),this.messaging||n.get().then(e=>this.messaging=e,()=>{}),this.appCheck||null!=r&&r.get().then(e=>this.appCheck=e,()=>{})}async getAuthToken(){if(this.auth)try{var e=await this.auth.getToken();return null==e?void 0:e.accessToken}catch(e){}}async getMessagingToken(){if(this.messaging&&"Notification"in self&&"granted"===Notification.permission)try{return await this.messaging.getToken()}catch(e){}}async getAppCheckToken(e){var t;return this.serverAppAppCheckToken||(!this.appCheck||(t=e?await this.appCheck.getLimitedUseToken():await this.appCheck.getToken()).error?null:t.token)}async getContext(e){return{authToken:await this.getAuthToken(),messagingToken:await this.getMessagingToken(),appCheckToken:await this.getAppCheckToken(e)}}}let y="us-central1",w=/^data: (.*?)(?:\n|$)/;class k{constructor(e,t,n,r,a=y,i=(...e)=>fetch(...e)){this.app=e,this.fetchImpl=i,this.emulatorOrigin=null,this.contextProvider=new v(e,t,n,r),this.cancelAllRequests=new Promise(e=>{this.deleteService=()=>Promise.resolve(e())});try{var s=new URL(a);this.customDomain=s.origin+("/"===s.pathname?"":s.pathname),this.region=y}catch(e){this.customDomain=null,this.region=a}}_delete(){return this.deleteService()}_url(e){var t=this.app.options.projectId;return null!==this.emulatorOrigin?`${this.emulatorOrigin}/${t}/${this.region}/`+e:null!==this.customDomain?this.customDomain+"/"+e:`https://${this.region}-${t}.cloudfunctions.net/`+e}}function b(a,i,s){var e=e=>{return e=e,n=s||{},r=(t=a)._url(i),E(t,r,e,n);var t,n,r};return e.stream=(e,t)=>{return e=e,t=t,r=(n=a)._url(i),I(n,r,e,t||{});var n,r},e}async function T(e,t){var n={},r=await e.contextProvider.getContext(t.limitedUseAppCheckTokens);return r.authToken&&(n.Authorization="Bearer "+r.authToken),r.messagingToken&&(n["Firebase-Instance-ID-Token"]=r.messagingToken),null!==r.appCheckToken&&(n["X-Firebase-AppCheck"]=r.appCheckToken),n}async function E(e,t,n,r){var a={data:n=d(n)},i=await T(e,r),s=(n=>{let r=null;return{promise:new Promise((e,t)=>{r=setTimeout(()=>{t(new f("deadline-exceeded","deadline-exceeded"))},n)}),cancel:()=>{r&&clearTimeout(r)}}})(r.timeout||7e4),a=await Promise.race([(async(e,t,n,r)=>{n["Content-Type"]="application/json";let a;try{a=await r(e,{method:"POST",body:JSON.stringify(t),headers:n})}catch(e){return{status:0,json:null}}let i=null;try{i=await a.json()}catch(e){}return{status:a.status,json:i}})(t,a,i,e.fetchImpl),s.promise,e.cancelAllRequests]);if(s.cancel(),!a)throw new f("cancelled","Firebase Functions instance was deleted.");i=g(a.status,a.json);if(i)throw i;if(!a.json)throw new f("internal","Response is not valid JSON object.");let o=a.json.data;if(void 0===(o=void 0===o?a.json.result:o))throw new f("internal","Response is missing data field.");return{data:h(o)}}async function I(e,t,n,r){var a={data:n=d(n)},i=await T(e,r);i["Content-Type"]="application/json",i.Accept="text/event-stream";let s;try{s=await e.fetchImpl(t,{method:"POST",body:JSON.stringify(a),headers:i,signal:null==r?void 0:r.signal})}catch(e){if(e instanceof Error&&"AbortError"===e.name){let e=new f("cancelled","Request was cancelled.");return{data:Promise.reject(e),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(e)}}}}}}let t=g(0,null);return{data:Promise.reject(t),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(t)}}}}}}let o,c;a=new Promise((e,t)=>{o=e,c=t}),null!=(i=null==r?void 0:r.signal)&&i.addEventListener("abort",()=>{var e=new f("cancelled","Request was cancelled.");c(e)}),i=s.body.getReader();let l=((s,i,o,c)=>{let l=(e,t)=>{var n=e.match(w);if(n){n=n[1];try{var r,a=JSON.parse(n);"result"in a?i(h(a.result)):"message"in a?t.enqueue(h(a.message)):"error"in a&&(r=g(0,a),t.error(r),o(r))}catch(e){e instanceof f&&(t.error(e),o(e))}}},u=new TextDecoder;return new ReadableStream({start(a){let i="";return async function n(){if(null!=c&&c.aborted){let e=new f("cancelled","Request was cancelled");return a.error(e),o(e),Promise.resolve()}try{let{value:t,done:e}=await s.read();if(e)i.trim()&&l(i.trim(),a),a.close();else{if(null==c||!c.aborted){let e=(i+=u.decode(t,{stream:!0})).split("\n");i=e.pop()||"";for(var r of e)r.trim()&&l(r.trim(),a);return n()}{let e=new f("cancelled","Request was cancelled");a.error(e),o(e),void await s.cancel()}}}catch(e){let t=e instanceof f?e:g(0,null);a.error(t),o(t)}}()},cancel(){return s.cancel()}})})(i,o,c,null==r?void 0:r.signal);return{stream:{[Symbol.asyncIterator](){let n=l.getReader();return{async next(){var{value:e,done:t}=await n.read();return{value:e,done:t}},async return(){return await n.cancel(),{done:!0,value:void 0}}}}},data:a}}let A="@firebase/functions",N="0.12.2-canary.70e08cf95";function C(e,t,n){c(e).emulatorOrigin=`http://${t}:`+n}function P(e,t,n){return r=c(e),a=t,i=n,(s=e=>E(r,a,e,i||{})).stream=(e,t)=>I(r,a,e,t||{}),s;var r,a,i,s}R._registerComponent(new a(p,(e,{instanceIdentifier:t})=>{var n=e.getProvider("app").getImmediate(),r=e.getProvider("auth-internal"),a=e.getProvider("messaging-internal"),i=e.getProvider("app-check-internal");return new k(n,r,a,i,t)},"PUBLIC").setMultipleInstances(!0)),R.registerVersion(A,N,t),R.registerVersion(A,N,"esm2017");var O;class S{constructor(e,t){this.app=e,this._delegate=t,this._region=this._delegate.region,this._customDomain=this._delegate.customDomain}httpsCallable(e,t){return b(c(this._delegate),e,t)}httpsCallableFromURL(e,t){return P(this._delegate,e,t)}useFunctionsEmulator(e){var t=e.match("[a-zA-Z]+://([a-zA-Z0-9.-]+)(?::([0-9]+))?");if(null==t)throw new s("functions","No origin provided to useFunctionsEmulator()");if(null==t[2])throw new s("functions","Port missing in origin provided to useFunctionsEmulator()");return C(this._delegate,t[1],Number(t[2]))}useEmulator(e,t){return C(this._delegate,e,t)}}let D="us-central1",_=(e,{instanceIdentifier:t})=>{var n=e.getProvider("app-compat").getImmediate(),r=e.getProvider("functions").getImmediate({identifier:null!=t?t:D});return new S(n,r)};O={Functions:S},n.default.INTERNAL.registerComponent(new a("functions-compat",_,"PUBLIC").setServiceProps(O).setMultipleInstances(!0)),n.default.registerVersion("@firebase/functions-compat","0.3.19-canary.70e08cf95")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-functions-compat.js - be sure to load firebase-app.js first.")}});
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(j,R){try{!(function(){function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t,n=e(j);class s extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,s.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,r.prototype.create)}}class r{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){var r,n=t[0]||{},a=this.service+"/"+e,i=this.errors[e],i=i?(r=n,i.replace(o,(e,t)=>{var n=r[t];return null!=n?String(n):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${a}).`;return new s(a,i,n)}}let o=/\{\$([^}]+)}/g;function c(e){return e&&e._delegate?e._delegate:e}class a{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}let i="type.googleapis.com/google.protobuf.Int64Value",l="type.googleapis.com/google.protobuf.UInt64Value";function u(e,t){var n,r={};for(n in e)e.hasOwnProperty(n)&&(r[n]=t(e[n]));return r}function d(e){if(null==e)return null;if("number"==typeof(e=e instanceof Number?e.valueOf():e)&&isFinite(e))return e;if(!0===e||!1===e)return e;if("[object String]"===Object.prototype.toString.call(e))return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>d(e));if("function"==typeof e||"object"==typeof e)return u(e,e=>d(e));throw new Error("Data cannot be encoded in JSON: "+e)}function h(e){if(null==e)return e;if(e["@type"])switch(e["@type"]){case i:case l:var t=Number(e.value);if(isNaN(t))throw new Error("Data cannot be decoded from JSON: "+e);return t;default:throw new Error("Data cannot be decoded from JSON: "+e)}return Array.isArray(e)?e.map(e=>h(e)):"function"==typeof e||"object"==typeof e?u(e,e=>h(e)):e}let p="functions",m={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class f extends s{constructor(e,t,n){super(p+"/"+e,t||""),this.details=n,Object.setPrototypeOf(this,f.prototype)}}function g(e,t){let n=(e=>{if(200<=e&&e<300)return"ok";switch(e){case 0:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 500:return"internal";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"})(e),r=n,a=void 0;try{var i=t&&t.error;if(i){let e=i.status;if("string"==typeof e){if(!m[e])return new f("internal","internal");n=m[e],r=e}var s=i.message;"string"==typeof s&&(r=s),void 0!==(a=i.details)&&(a=h(a))}}catch(e){}return"ok"===n?null:new f(n,r,a)}class v{constructor(e,t,n,r){this.app=e,this.auth=null,this.messaging=null,this.appCheck=null,this.serverAppAppCheckToken=null,R._isFirebaseServerApp(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.auth=t.getImmediate({optional:!0}),this.messaging=n.getImmediate({optional:!0}),this.auth||t.get().then(e=>this.auth=e,()=>{}),this.messaging||n.get().then(e=>this.messaging=e,()=>{}),this.appCheck||null!=r&&r.get().then(e=>this.appCheck=e,()=>{})}async getAuthToken(){if(this.auth)try{var e=await this.auth.getToken();return null==e?void 0:e.accessToken}catch(e){}}async getMessagingToken(){if(this.messaging&&"Notification"in self&&"granted"===Notification.permission)try{return await this.messaging.getToken()}catch(e){}}async getAppCheckToken(e){var t;return this.serverAppAppCheckToken||(!this.appCheck||(t=e?await this.appCheck.getLimitedUseToken():await this.appCheck.getToken()).error?null:t.token)}async getContext(e){return{authToken:await this.getAuthToken(),messagingToken:await this.getMessagingToken(),appCheckToken:await this.getAppCheckToken(e)}}}let y="us-central1",w=/^data: (.*?)(?:\n|$)/;class k{constructor(e,t,n,r,a=y,i=(...e)=>fetch(...e)){this.app=e,this.fetchImpl=i,this.emulatorOrigin=null,this.contextProvider=new v(e,t,n,r),this.cancelAllRequests=new Promise(e=>{this.deleteService=()=>Promise.resolve(e())});try{var s=new URL(a);this.customDomain=s.origin+("/"===s.pathname?"":s.pathname),this.region=y}catch(e){this.customDomain=null,this.region=a}}_delete(){return this.deleteService()}_url(e){var t=this.app.options.projectId;return null!==this.emulatorOrigin?`${this.emulatorOrigin}/${t}/${this.region}/`+e:null!==this.customDomain?this.customDomain+"/"+e:`https://${this.region}-${t}.cloudfunctions.net/`+e}}function b(a,i,s){var e=e=>{return e=e,n=s||{},r=(t=a)._url(i),E(t,r,e,n);var t,n,r};return e.stream=(e,t)=>{return e=e,t=t,r=(n=a)._url(i),I(n,r,e,t||{});var n,r},e}async function T(e,t){var n={},r=await e.contextProvider.getContext(t.limitedUseAppCheckTokens);return r.authToken&&(n.Authorization="Bearer "+r.authToken),r.messagingToken&&(n["Firebase-Instance-ID-Token"]=r.messagingToken),null!==r.appCheckToken&&(n["X-Firebase-AppCheck"]=r.appCheckToken),n}async function E(e,t,n,r){var a={data:n=d(n)},i=await T(e,r),s=(n=>{let r=null;return{promise:new Promise((e,t)=>{r=setTimeout(()=>{t(new f("deadline-exceeded","deadline-exceeded"))},n)}),cancel:()=>{r&&clearTimeout(r)}}})(r.timeout||7e4),a=await Promise.race([(async(e,t,n,r)=>{n["Content-Type"]="application/json";let a;try{a=await r(e,{method:"POST",body:JSON.stringify(t),headers:n})}catch(e){return{status:0,json:null}}let i=null;try{i=await a.json()}catch(e){}return{status:a.status,json:i}})(t,a,i,e.fetchImpl),s.promise,e.cancelAllRequests]);if(s.cancel(),!a)throw new f("cancelled","Firebase Functions instance was deleted.");i=g(a.status,a.json);if(i)throw i;if(!a.json)throw new f("internal","Response is not valid JSON object.");let o=a.json.data;if(void 0===(o=void 0===o?a.json.result:o))throw new f("internal","Response is missing data field.");return{data:h(o)}}async function I(e,t,n,r){var a={data:n=d(n)},i=await T(e,r);i["Content-Type"]="application/json",i.Accept="text/event-stream";let s;try{s=await e.fetchImpl(t,{method:"POST",body:JSON.stringify(a),headers:i,signal:null==r?void 0:r.signal})}catch(e){if(e instanceof Error&&"AbortError"===e.name){let e=new f("cancelled","Request was cancelled.");return{data:Promise.reject(e),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(e)}}}}}}let t=g(0,null);return{data:Promise.reject(t),stream:{[Symbol.asyncIterator](){return{next(){return Promise.reject(t)}}}}}}let o,c;a=new Promise((e,t)=>{o=e,c=t}),null!=(i=null==r?void 0:r.signal)&&i.addEventListener("abort",()=>{var e=new f("cancelled","Request was cancelled.");c(e)}),i=s.body.getReader();let l=((s,i,o,c)=>{let l=(e,t)=>{var n=e.match(w);if(n){n=n[1];try{var r,a=JSON.parse(n);"result"in a?i(h(a.result)):"message"in a?t.enqueue(h(a.message)):"error"in a&&(r=g(0,a),t.error(r),o(r))}catch(e){e instanceof f&&(t.error(e),o(e))}}},u=new TextDecoder;return new ReadableStream({start(a){let i="";return async function n(){if(null!=c&&c.aborted){let e=new f("cancelled","Request was cancelled");return a.error(e),o(e),Promise.resolve()}try{let{value:t,done:e}=await s.read();if(e)i.trim()&&l(i.trim(),a),a.close();else{if(null==c||!c.aborted){let e=(i+=u.decode(t,{stream:!0})).split("\n");i=e.pop()||"";for(var r of e)r.trim()&&l(r.trim(),a);return n()}{let e=new f("cancelled","Request was cancelled");a.error(e),o(e),void await s.cancel()}}}catch(e){let t=e instanceof f?e:g(0,null);a.error(t),o(t)}}()},cancel(){return s.cancel()}})})(i,o,c,null==r?void 0:r.signal);return{stream:{[Symbol.asyncIterator](){let n=l.getReader();return{async next(){var{value:e,done:t}=await n.read();return{value:e,done:t}},async return(){return await n.cancel(),{done:!0,value:void 0}}}}},data:a}}let A="@firebase/functions",N="0.12.2-canary.84dfeca39";function C(e,t,n){c(e).emulatorOrigin=`http://${t}:`+n}function P(e,t,n){return r=c(e),a=t,i=n,(s=e=>E(r,a,e,i||{})).stream=(e,t)=>I(r,a,e,t||{}),s;var r,a,i,s}R._registerComponent(new a(p,(e,{instanceIdentifier:t})=>{var n=e.getProvider("app").getImmediate(),r=e.getProvider("auth-internal"),a=e.getProvider("messaging-internal"),i=e.getProvider("app-check-internal");return new k(n,r,a,i,t)},"PUBLIC").setMultipleInstances(!0)),R.registerVersion(A,N,t),R.registerVersion(A,N,"esm2017");var O;class S{constructor(e,t){this.app=e,this._delegate=t,this._region=this._delegate.region,this._customDomain=this._delegate.customDomain}httpsCallable(e,t){return b(c(this._delegate),e,t)}httpsCallableFromURL(e,t){return P(this._delegate,e,t)}useFunctionsEmulator(e){var t=e.match("[a-zA-Z]+://([a-zA-Z0-9.-]+)(?::([0-9]+))?");if(null==t)throw new s("functions","No origin provided to useFunctionsEmulator()");if(null==t[2])throw new s("functions","Port missing in origin provided to useFunctionsEmulator()");return C(this._delegate,t[1],Number(t[2]))}useEmulator(e,t){return C(this._delegate,e,t)}}let D="us-central1",_=(e,{instanceIdentifier:t})=>{var n=e.getProvider("app-compat").getImmediate(),r=e.getProvider("functions").getImmediate({identifier:null!=t?t:D});return new S(n,r)};O={Functions:S},n.default.INTERNAL.registerComponent(new a("functions-compat",_,"PUBLIC").setServiceProps(O).setMultipleInstances(!0)),n.default.registerVersion("@firebase/functions-compat","0.3.19-canary.84dfeca39")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-functions-compat.js - be sure to load firebase-app.js first.")}});
//# sourceMappingURL=firebase-functions-compat.js.map

@@ -1,3 +0,3 @@

import{_registerComponent as e,registerVersion as t,_getProvider,getApp as n,_isFirebaseServerApp as r}from"https://www.gstatic.com/firebasejs/11.3.0-canary.70e08cf95/firebase-app.js";const o={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_();const n=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let t=0;t<e.length;t+=3){const o=e[t],s=t+1<e.length,a=s?e[t+1]:0,i=t+2<e.length,c=i?e[t+2]:0,u=o>>2,l=(3&o)<<4|a>>4;let h=(15&a)<<2|c>>6,d=63&c;i||(d=64,s||(h=64)),r.push(n[u],n[l],n[h],n[d])}return r.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(function(e){const t=[];let n=0;for(let r=0;r<e.length;r++){let o=e.charCodeAt(r);o<128?t[n++]=o:o<2048?(t[n++]=o>>6|192,t[n++]=63&o|128):55296==(64512&o)&&r+1<e.length&&56320==(64512&e.charCodeAt(r+1))?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++r)),t[n++]=o>>18|240,t[n++]=o>>12&63|128,t[n++]=o>>6&63|128,t[n++]=63&o|128):(t[n++]=o>>12|224,t[n++]=o>>6&63|128,t[n++]=63&o|128)}return t}(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,r=0;for(;n<e.length;){const o=e[n++];if(o<128)t[r++]=String.fromCharCode(o);else if(o>191&&o<224){const s=e[n++];t[r++]=String.fromCharCode((31&o)<<6|63&s)}else if(o>239&&o<365){const s=((7&o)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536;t[r++]=String.fromCharCode(55296+(s>>10)),t[r++]=String.fromCharCode(56320+(1023&s))}else{const s=e[n++],a=e[n++];t[r++]=String.fromCharCode((15&o)<<12|(63&s)<<6|63&a)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const n=t?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let t=0;t<e.length;){const o=n[e.charAt(t++)],s=t<e.length?n[e.charAt(t)]:0;++t;const a=t<e.length?n[e.charAt(t)]:64;++t;const i=t<e.length?n[e.charAt(t)]:64;if(++t,null==o||null==s||null==a||null==i)throw new DecodeBase64StringError;const c=o<<2|s>>4;if(r.push(c),64!==a){const e=s<<4&240|a>>2;if(r.push(e),64!==i){const e=a<<6&192|i;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 DecodeBase64StringError extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const getDefaultsFromGlobal=()=>function getGlobal(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,getDefaultsFromCookie=()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&function(e){try{return o.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null}(e[1]);return t&&JSON.parse(t)},getDefaults=()=>{try{return getDefaultsFromGlobal()||(()=>{if("undefined"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||getDefaultsFromCookie()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},getDefaultEmulatorHostnameAndPort=e=>{const t=(e=>{var t,n;return null===(n=null===(t=getDefaults())||void 0===t?void 0:t.emulatorHosts)||void 0===n?void 0:n[e]})(e);if(!t)return;const n=t.lastIndexOf(":");if(n<=0||n+1===t.length)throw new Error(`Invalid host ${t} with no separate hostname and port!`);const r=parseInt(t.substring(n+1),10);return"["===t[0]?[t.substring(1,n-1),r]:[t.substring(0,n),r]};class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},r=`${this.service}/${e}`,o=this.errors[e],a=o?function replaceTemplate(e,t){return e.replace(s,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(o,n):"Error",i=`${this.serviceName}: ${a} (${r}).`;return new FirebaseError(r,i,n)}}const s=/\{\$([^}]+)}/g;function getModularInstance(e){return e&&e._delegate?e._delegate:e}class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}function mapValues(e,t){const n={};for(const r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}function encode(e){if(null==e)return null;if(e instanceof Number&&(e=e.valueOf()),"number"==typeof e&&isFinite(e))return e;if(!0===e||!1===e)return e;if("[object String]"===Object.prototype.toString.call(e))return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map((e=>encode(e)));if("function"==typeof e||"object"==typeof e)return mapValues(e,(e=>encode(e)));throw new Error("Data cannot be encoded in JSON: "+e)}function decode(e){if(null==e)return e;if(e["@type"])switch(e["@type"]){case"type.googleapis.com/google.protobuf.Int64Value":case"type.googleapis.com/google.protobuf.UInt64Value":{const t=Number(e.value);if(isNaN(t))throw new Error("Data cannot be decoded from JSON: "+e);return t}default:throw new Error("Data cannot be decoded from JSON: "+e)}return Array.isArray(e)?e.map((e=>decode(e))):"function"==typeof e||"object"==typeof e?mapValues(e,(e=>decode(e))):e}const a="functions",i={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class FunctionsError extends FirebaseError{constructor(e,t,n){super(`${a}/${e}`,t||""),this.details=n,Object.setPrototypeOf(this,FunctionsError.prototype)}}function _errorForResponse(e,t){let n,r=function codeForHTTPStatus(e){if(e>=200&&e<300)return"ok";switch(e){case 0:case 500:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"}(e),o=r;try{const e=t&&t.error;if(e){const t=e.status;if("string"==typeof t){if(!i[t])return new FunctionsError("internal","internal");r=i[t],o=t}const s=e.message;"string"==typeof s&&(o=s),n=e.details,void 0!==n&&(n=decode(n))}}catch(e){}return"ok"===r?null:new FunctionsError(r,o,n)}class ContextProvider{constructor(e,t,n,o){this.app=e,this.auth=null,this.messaging=null,this.appCheck=null,this.serverAppAppCheckToken=null,r(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.auth=t.getImmediate({optional:!0}),this.messaging=n.getImmediate({optional:!0}),this.auth||t.get().then((e=>this.auth=e),(()=>{})),this.messaging||n.get().then((e=>this.messaging=e),(()=>{})),this.appCheck||null==o||o.get().then((e=>this.appCheck=e),(()=>{}))}async getAuthToken(){if(this.auth)try{const e=await this.auth.getToken();return null==e?void 0:e.accessToken}catch(e){return}}async getMessagingToken(){if(this.messaging&&"Notification"in self&&"granted"===Notification.permission)try{return await this.messaging.getToken()}catch(e){return}}async getAppCheckToken(e){if(this.serverAppAppCheckToken)return this.serverAppAppCheckToken;if(this.appCheck){const t=e?await this.appCheck.getLimitedUseToken():await this.appCheck.getToken();return t.error?null:t.token}return null}async getContext(e){return{authToken:await this.getAuthToken(),messagingToken:await this.getMessagingToken(),appCheckToken:await this.getAppCheckToken(e)}}}const c="us-central1",u=/^data: (.*?)(?:\n|$)/;class FunctionsService{constructor(e,t,n,r,o=c,s=(...e)=>fetch(...e)){this.app=e,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new ContextProvider(e,t,n,r),this.cancelAllRequests=new Promise((e=>{this.deleteService=()=>Promise.resolve(e())}));try{const e=new URL(o);this.customDomain=e.origin+("/"===e.pathname?"":e.pathname),this.region=c}catch(e){this.customDomain=null,this.region=o}}_delete(){return this.deleteService()}_url(e){const t=this.app.options.projectId;if(null!==this.emulatorOrigin){return`${this.emulatorOrigin}/${t}/${this.region}/${e}`}return null!==this.customDomain?`${this.customDomain}/${e}`:`https://${this.region}-${t}.cloudfunctions.net/${e}`}}function httpsCallable$1(e,t,n){const callable=r=>function call(e,t,n,r){const o=e._url(t);return callAtURL(e,o,n,r)}(e,t,r,n||{});return callable.stream=(n,r)=>function stream(e,t,n,r){const o=e._url(t);return streamAtURL(e,o,n,r||{})}(e,t,n,r),callable}async function postJSON(e,t,n,r){let o;n["Content-Type"]="application/json";try{o=await r(e,{method:"POST",body:JSON.stringify(t),headers:n})}catch(e){return{status:0,json:null}}let s=null;try{s=await o.json()}catch(e){}return{status:o.status,json:s}}async function makeAuthHeaders(e,t){const n={},r=await e.contextProvider.getContext(t.limitedUseAppCheckTokens);return r.authToken&&(n.Authorization="Bearer "+r.authToken),r.messagingToken&&(n["Firebase-Instance-ID-Token"]=r.messagingToken),null!==r.appCheckToken&&(n["X-Firebase-AppCheck"]=r.appCheckToken),n}async function callAtURL(e,t,n,r){const o={data:n=encode(n)},s=await makeAuthHeaders(e,r),a=function failAfter(e){let t=null;return{promise:new Promise(((n,r)=>{t=setTimeout((()=>{r(new FunctionsError("deadline-exceeded","deadline-exceeded"))}),e)})),cancel:()=>{t&&clearTimeout(t)}}}(r.timeout||7e4),i=await Promise.race([postJSON(t,o,s,e.fetchImpl),a.promise,e.cancelAllRequests]);if(a.cancel(),!i)throw new FunctionsError("cancelled","Firebase Functions instance was deleted.");const c=_errorForResponse(i.status,i.json);if(c)throw c;if(!i.json)throw new FunctionsError("internal","Response is not valid JSON object.");let u=i.json.data;if(void 0===u&&(u=i.json.result),void 0===u)throw new FunctionsError("internal","Response is missing data field.");return{data:decode(u)}}async function streamAtURL(e,t,n,r){var o;const s={data:n=encode(n)},a=await makeAuthHeaders(e,r);let i,c,l;a["Content-Type"]="application/json",a.Accept="text/event-stream";try{i=await e.fetchImpl(t,{method:"POST",body:JSON.stringify(s),headers:a,signal:null==r?void 0:r.signal})}catch(e){if(e instanceof Error&&"AbortError"===e.name){const e=new FunctionsError("cancelled","Request was cancelled.");return{data:Promise.reject(e),stream:{[Symbol.asyncIterator]:()=>({next:()=>Promise.reject(e)})}}}const t=_errorForResponse(0,null);return{data:Promise.reject(t),stream:{[Symbol.asyncIterator]:()=>({next:()=>Promise.reject(t)})}}}const h=new Promise(((e,t)=>{c=e,l=t}));null===(o=null==r?void 0:r.signal)||void 0===o||o.addEventListener("abort",(()=>{const e=new FunctionsError("cancelled","Request was cancelled.");l(e)}));const d=function createResponseStream(e,t,n,r){const processLine=(e,r)=>{const o=e.match(u);if(!o)return;const s=o[1];try{const e=JSON.parse(s);if("result"in e)return void t(decode(e.result));if("message"in e)return void r.enqueue(decode(e.message));if("error"in e){const t=_errorForResponse(0,e);return r.error(t),void n(t)}}catch(e){if(e instanceof FunctionsError)return r.error(e),void n(e)}},o=new TextDecoder;return new ReadableStream({start(t){let s="";return pump();async function pump(){if(null==r?void 0:r.aborted){const e=new FunctionsError("cancelled","Request was cancelled");return t.error(e),n(e),Promise.resolve()}try{const{value:a,done:i}=await e.read();if(i)return s.trim()&&processLine(s.trim(),t),void t.close();if(null==r?void 0:r.aborted){const r=new FunctionsError("cancelled","Request was cancelled");return t.error(r),n(r),void await e.cancel()}s+=o.decode(a,{stream:!0});const c=s.split("\n");s=c.pop()||"";for(const e of c)e.trim()&&processLine(e.trim(),t);return pump()}catch(e){const r=e instanceof FunctionsError?e:_errorForResponse(0,null);t.error(r),n(r)}}},cancel:()=>e.cancel()})}(i.body.getReader(),c,l,null==r?void 0:r.signal);return{stream:{[Symbol.asyncIterator](){const e=d.getReader();return{async next(){const{value:t,done:n}=await e.read();return{value:t,done:n}},return:async()=>(await e.cancel(),{done:!0,value:void 0})}}},data:h}}const l="@firebase/functions",h="0.12.2-canary.70e08cf95";function getFunctions(e=n(),t=c){const r=_getProvider(getModularInstance(e),a).getImmediate({identifier:t}),o=getDefaultEmulatorHostnameAndPort("functions");return o&&connectFunctionsEmulator(r,...o),r}function connectFunctionsEmulator(e,t,n){!function connectFunctionsEmulator$1(e,t,n){e.emulatorOrigin=`http://${t}:${n}`}(getModularInstance(e),t,n)}function httpsCallable(e,t,n){return httpsCallable$1(getModularInstance(e),t,n)}function httpsCallableFromURL(e,t,n){return function httpsCallableFromURL$1(e,t,n){const callable=r=>callAtURL(e,t,r,n||{});return callable.stream=(n,r)=>streamAtURL(e,t,n,r||{}),callable}(getModularInstance(e),t,n)}!function registerFunctions(n){e(new Component(a,((e,{instanceIdentifier:t})=>{const n=e.getProvider("app").getImmediate(),r=e.getProvider("auth-internal"),o=e.getProvider("messaging-internal"),s=e.getProvider("app-check-internal");return new FunctionsService(n,r,o,s,t)}),"PUBLIC").setMultipleInstances(!0)),t(l,h,n),t(l,h,"esm2017")}();export{FunctionsError,connectFunctionsEmulator,getFunctions,httpsCallable,httpsCallableFromURL};
import{_registerComponent as e,registerVersion as t,_getProvider,getApp as n,_isFirebaseServerApp as r}from"https://www.gstatic.com/firebasejs/11.3.0-canary.84dfeca39/firebase-app.js";const o={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_();const n=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let t=0;t<e.length;t+=3){const o=e[t],s=t+1<e.length,a=s?e[t+1]:0,i=t+2<e.length,c=i?e[t+2]:0,u=o>>2,l=(3&o)<<4|a>>4;let h=(15&a)<<2|c>>6,d=63&c;i||(d=64,s||(h=64)),r.push(n[u],n[l],n[h],n[d])}return r.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(function(e){const t=[];let n=0;for(let r=0;r<e.length;r++){let o=e.charCodeAt(r);o<128?t[n++]=o:o<2048?(t[n++]=o>>6|192,t[n++]=63&o|128):55296==(64512&o)&&r+1<e.length&&56320==(64512&e.charCodeAt(r+1))?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++r)),t[n++]=o>>18|240,t[n++]=o>>12&63|128,t[n++]=o>>6&63|128,t[n++]=63&o|128):(t[n++]=o>>12|224,t[n++]=o>>6&63|128,t[n++]=63&o|128)}return t}(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,r=0;for(;n<e.length;){const o=e[n++];if(o<128)t[r++]=String.fromCharCode(o);else if(o>191&&o<224){const s=e[n++];t[r++]=String.fromCharCode((31&o)<<6|63&s)}else if(o>239&&o<365){const s=((7&o)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536;t[r++]=String.fromCharCode(55296+(s>>10)),t[r++]=String.fromCharCode(56320+(1023&s))}else{const s=e[n++],a=e[n++];t[r++]=String.fromCharCode((15&o)<<12|(63&s)<<6|63&a)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const n=t?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let t=0;t<e.length;){const o=n[e.charAt(t++)],s=t<e.length?n[e.charAt(t)]:0;++t;const a=t<e.length?n[e.charAt(t)]:64;++t;const i=t<e.length?n[e.charAt(t)]:64;if(++t,null==o||null==s||null==a||null==i)throw new DecodeBase64StringError;const c=o<<2|s>>4;if(r.push(c),64!==a){const e=s<<4&240|a>>2;if(r.push(e),64!==i){const e=a<<6&192|i;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 DecodeBase64StringError extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const getDefaultsFromGlobal=()=>function getGlobal(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,getDefaultsFromCookie=()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&function(e){try{return o.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null}(e[1]);return t&&JSON.parse(t)},getDefaults=()=>{try{return getDefaultsFromGlobal()||(()=>{if("undefined"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||getDefaultsFromCookie()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},getDefaultEmulatorHostnameAndPort=e=>{const t=(e=>{var t,n;return null===(n=null===(t=getDefaults())||void 0===t?void 0:t.emulatorHosts)||void 0===n?void 0:n[e]})(e);if(!t)return;const n=t.lastIndexOf(":");if(n<=0||n+1===t.length)throw new Error(`Invalid host ${t} with no separate hostname and port!`);const r=parseInt(t.substring(n+1),10);return"["===t[0]?[t.substring(1,n-1),r]:[t.substring(0,n),r]};class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},r=`${this.service}/${e}`,o=this.errors[e],a=o?function replaceTemplate(e,t){return e.replace(s,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(o,n):"Error",i=`${this.serviceName}: ${a} (${r}).`;return new FirebaseError(r,i,n)}}const s=/\{\$([^}]+)}/g;function getModularInstance(e){return e&&e._delegate?e._delegate:e}class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}function mapValues(e,t){const n={};for(const r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}function encode(e){if(null==e)return null;if(e instanceof Number&&(e=e.valueOf()),"number"==typeof e&&isFinite(e))return e;if(!0===e||!1===e)return e;if("[object String]"===Object.prototype.toString.call(e))return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map((e=>encode(e)));if("function"==typeof e||"object"==typeof e)return mapValues(e,(e=>encode(e)));throw new Error("Data cannot be encoded in JSON: "+e)}function decode(e){if(null==e)return e;if(e["@type"])switch(e["@type"]){case"type.googleapis.com/google.protobuf.Int64Value":case"type.googleapis.com/google.protobuf.UInt64Value":{const t=Number(e.value);if(isNaN(t))throw new Error("Data cannot be decoded from JSON: "+e);return t}default:throw new Error("Data cannot be decoded from JSON: "+e)}return Array.isArray(e)?e.map((e=>decode(e))):"function"==typeof e||"object"==typeof e?mapValues(e,(e=>decode(e))):e}const a="functions",i={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class FunctionsError extends FirebaseError{constructor(e,t,n){super(`${a}/${e}`,t||""),this.details=n,Object.setPrototypeOf(this,FunctionsError.prototype)}}function _errorForResponse(e,t){let n,r=function codeForHTTPStatus(e){if(e>=200&&e<300)return"ok";switch(e){case 0:case 500:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"}(e),o=r;try{const e=t&&t.error;if(e){const t=e.status;if("string"==typeof t){if(!i[t])return new FunctionsError("internal","internal");r=i[t],o=t}const s=e.message;"string"==typeof s&&(o=s),n=e.details,void 0!==n&&(n=decode(n))}}catch(e){}return"ok"===r?null:new FunctionsError(r,o,n)}class ContextProvider{constructor(e,t,n,o){this.app=e,this.auth=null,this.messaging=null,this.appCheck=null,this.serverAppAppCheckToken=null,r(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.auth=t.getImmediate({optional:!0}),this.messaging=n.getImmediate({optional:!0}),this.auth||t.get().then((e=>this.auth=e),(()=>{})),this.messaging||n.get().then((e=>this.messaging=e),(()=>{})),this.appCheck||null==o||o.get().then((e=>this.appCheck=e),(()=>{}))}async getAuthToken(){if(this.auth)try{const e=await this.auth.getToken();return null==e?void 0:e.accessToken}catch(e){return}}async getMessagingToken(){if(this.messaging&&"Notification"in self&&"granted"===Notification.permission)try{return await this.messaging.getToken()}catch(e){return}}async getAppCheckToken(e){if(this.serverAppAppCheckToken)return this.serverAppAppCheckToken;if(this.appCheck){const t=e?await this.appCheck.getLimitedUseToken():await this.appCheck.getToken();return t.error?null:t.token}return null}async getContext(e){return{authToken:await this.getAuthToken(),messagingToken:await this.getMessagingToken(),appCheckToken:await this.getAppCheckToken(e)}}}const c="us-central1",u=/^data: (.*?)(?:\n|$)/;class FunctionsService{constructor(e,t,n,r,o=c,s=(...e)=>fetch(...e)){this.app=e,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new ContextProvider(e,t,n,r),this.cancelAllRequests=new Promise((e=>{this.deleteService=()=>Promise.resolve(e())}));try{const e=new URL(o);this.customDomain=e.origin+("/"===e.pathname?"":e.pathname),this.region=c}catch(e){this.customDomain=null,this.region=o}}_delete(){return this.deleteService()}_url(e){const t=this.app.options.projectId;if(null!==this.emulatorOrigin){return`${this.emulatorOrigin}/${t}/${this.region}/${e}`}return null!==this.customDomain?`${this.customDomain}/${e}`:`https://${this.region}-${t}.cloudfunctions.net/${e}`}}function httpsCallable$1(e,t,n){const callable=r=>function call(e,t,n,r){const o=e._url(t);return callAtURL(e,o,n,r)}(e,t,r,n||{});return callable.stream=(n,r)=>function stream(e,t,n,r){const o=e._url(t);return streamAtURL(e,o,n,r||{})}(e,t,n,r),callable}async function postJSON(e,t,n,r){let o;n["Content-Type"]="application/json";try{o=await r(e,{method:"POST",body:JSON.stringify(t),headers:n})}catch(e){return{status:0,json:null}}let s=null;try{s=await o.json()}catch(e){}return{status:o.status,json:s}}async function makeAuthHeaders(e,t){const n={},r=await e.contextProvider.getContext(t.limitedUseAppCheckTokens);return r.authToken&&(n.Authorization="Bearer "+r.authToken),r.messagingToken&&(n["Firebase-Instance-ID-Token"]=r.messagingToken),null!==r.appCheckToken&&(n["X-Firebase-AppCheck"]=r.appCheckToken),n}async function callAtURL(e,t,n,r){const o={data:n=encode(n)},s=await makeAuthHeaders(e,r),a=function failAfter(e){let t=null;return{promise:new Promise(((n,r)=>{t=setTimeout((()=>{r(new FunctionsError("deadline-exceeded","deadline-exceeded"))}),e)})),cancel:()=>{t&&clearTimeout(t)}}}(r.timeout||7e4),i=await Promise.race([postJSON(t,o,s,e.fetchImpl),a.promise,e.cancelAllRequests]);if(a.cancel(),!i)throw new FunctionsError("cancelled","Firebase Functions instance was deleted.");const c=_errorForResponse(i.status,i.json);if(c)throw c;if(!i.json)throw new FunctionsError("internal","Response is not valid JSON object.");let u=i.json.data;if(void 0===u&&(u=i.json.result),void 0===u)throw new FunctionsError("internal","Response is missing data field.");return{data:decode(u)}}async function streamAtURL(e,t,n,r){var o;const s={data:n=encode(n)},a=await makeAuthHeaders(e,r);let i,c,l;a["Content-Type"]="application/json",a.Accept="text/event-stream";try{i=await e.fetchImpl(t,{method:"POST",body:JSON.stringify(s),headers:a,signal:null==r?void 0:r.signal})}catch(e){if(e instanceof Error&&"AbortError"===e.name){const e=new FunctionsError("cancelled","Request was cancelled.");return{data:Promise.reject(e),stream:{[Symbol.asyncIterator]:()=>({next:()=>Promise.reject(e)})}}}const t=_errorForResponse(0,null);return{data:Promise.reject(t),stream:{[Symbol.asyncIterator]:()=>({next:()=>Promise.reject(t)})}}}const h=new Promise(((e,t)=>{c=e,l=t}));null===(o=null==r?void 0:r.signal)||void 0===o||o.addEventListener("abort",(()=>{const e=new FunctionsError("cancelled","Request was cancelled.");l(e)}));const d=function createResponseStream(e,t,n,r){const processLine=(e,r)=>{const o=e.match(u);if(!o)return;const s=o[1];try{const e=JSON.parse(s);if("result"in e)return void t(decode(e.result));if("message"in e)return void r.enqueue(decode(e.message));if("error"in e){const t=_errorForResponse(0,e);return r.error(t),void n(t)}}catch(e){if(e instanceof FunctionsError)return r.error(e),void n(e)}},o=new TextDecoder;return new ReadableStream({start(t){let s="";return pump();async function pump(){if(null==r?void 0:r.aborted){const e=new FunctionsError("cancelled","Request was cancelled");return t.error(e),n(e),Promise.resolve()}try{const{value:a,done:i}=await e.read();if(i)return s.trim()&&processLine(s.trim(),t),void t.close();if(null==r?void 0:r.aborted){const r=new FunctionsError("cancelled","Request was cancelled");return t.error(r),n(r),void await e.cancel()}s+=o.decode(a,{stream:!0});const c=s.split("\n");s=c.pop()||"";for(const e of c)e.trim()&&processLine(e.trim(),t);return pump()}catch(e){const r=e instanceof FunctionsError?e:_errorForResponse(0,null);t.error(r),n(r)}}},cancel:()=>e.cancel()})}(i.body.getReader(),c,l,null==r?void 0:r.signal);return{stream:{[Symbol.asyncIterator](){const e=d.getReader();return{async next(){const{value:t,done:n}=await e.read();return{value:t,done:n}},return:async()=>(await e.cancel(),{done:!0,value:void 0})}}},data:h}}const l="@firebase/functions",h="0.12.2-canary.84dfeca39";function getFunctions(e=n(),t=c){const r=_getProvider(getModularInstance(e),a).getImmediate({identifier:t}),o=getDefaultEmulatorHostnameAndPort("functions");return o&&connectFunctionsEmulator(r,...o),r}function connectFunctionsEmulator(e,t,n){!function connectFunctionsEmulator$1(e,t,n){e.emulatorOrigin=`http://${t}:${n}`}(getModularInstance(e),t,n)}function httpsCallable(e,t,n){return httpsCallable$1(getModularInstance(e),t,n)}function httpsCallableFromURL(e,t,n){return function httpsCallableFromURL$1(e,t,n){const callable=r=>callAtURL(e,t,r,n||{});return callable.stream=(n,r)=>streamAtURL(e,t,n,r||{}),callable}(getModularInstance(e),t,n)}!function registerFunctions(n){e(new Component(a,((e,{instanceIdentifier:t})=>{const n=e.getProvider("app").getImmediate(),r=e.getProvider("auth-internal"),o=e.getProvider("messaging-internal"),s=e.getProvider("app-check-internal");return new FunctionsService(n,r,o,s,t)}),"PUBLIC").setMultipleInstances(!0)),t(l,h,n),t(l,h,"esm2017")}();export{FunctionsError,connectFunctionsEmulator,getFunctions,httpsCallable,httpsCallableFromURL};
//# sourceMappingURL=firebase-functions.js.map

@@ -1,2 +0,2 @@

((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(Ie,Se){try{!(function(){function M(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}let x=M(Ie);class o extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,o.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,a.prototype.create)}}class a{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var a,r=t[0]||{},n=this.service+"/"+e,i=this.errors[e],i=i?(a=r,i.replace(V,(e,t)=>{var r=a[t];return null!=r?String(r):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${n}).`;return new o(n,i,r)}}let V=/\{\$([^}]+)}/g;class e{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let $=(t,e)=>e.some(e=>t instanceof e),r,t;let n=new WeakMap,s=new WeakMap,i=new WeakMap,u=new WeakMap,c=new WeakMap;let l={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||i.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return p(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function _(a){return a!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(t=t||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(a)?function(...e){return a.apply(d(this),e),p(n.get(this))}:function(...e){return p(a.apply(d(this),e))}:function(e,...t){var r=a.call(d(this),e,...t);return i.set(r,e.sort?e.sort():[e]),p(r)}}function F(e){var i,t;return"function"==typeof e?_(e):(e instanceof IDBTransaction&&(i=e,s.has(i)||(t=new Promise((e,t)=>{let r=()=>{i.removeEventListener("complete",a),i.removeEventListener("error",n),i.removeEventListener("abort",n)},a=()=>{e(),r()},n=()=>{t(i.error||new DOMException("AbortError","AbortError")),r()};i.addEventListener("complete",a),i.addEventListener("error",n),i.addEventListener("abort",n)}),s.set(i,t))),$(e,r=r||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,l):e)}function p(e){var i,t;return e instanceof IDBRequest?(i=e,(t=new Promise((e,t)=>{let r=()=>{i.removeEventListener("success",a),i.removeEventListener("error",n)},a=()=>{e(p(i.result)),r()},n=()=>{t(i.error),r()};i.addEventListener("success",a),i.addEventListener("error",n)})).then(e=>{e instanceof IDBCursor&&n.set(e,i)}).catch(()=>{}),c.set(t,i),t):u.has(e)?u.get(e):((t=F(e))!==e&&(u.set(e,t),c.set(t,e)),t)}let d=e=>c.get(e);let K=["get","getKey","getAll","getAllKeys","count"],H=["put","add","delete","clear"],f=new Map;function g(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(f.get(t))return f.get(t);let n=t.replace(/FromIndex$/,""),i=t!==n,o=H.includes(n);var r;return n in(i?IDBIndex:IDBObjectStore).prototype&&(o||K.includes(n))?(r=async function(e,...t){var r=this.transaction(e,o?"readwrite":"readonly");let a=r.store;return i&&(a=a.index(t.shift())),(await Promise.all([a[n](...t),o&&r.done]))[0]},f.set(t,r),r):void 0}}l={...h=l,get:(e,t,r)=>g(e,t)||h.get(e,t,r),has:(e,t)=>!!g(e,t)||h.has(e,t)};var h,v="@firebase/installations",w="0.6.12-canary.70e08cf95";let m=1e4,y="w:"+w,R="FIS_v2",W="https://firebaseinstallations.googleapis.com/v1",z=36e5;var U;let b=new a("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 J(e){return e instanceof o&&e.code.includes("request-failed")}function I({projectId:e}){return W+`/projects/${e}/installations`}function G(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function S(e,t){var r=(await t.json()).error;return b.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function Y({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function Z(e,{refreshToken:t}){var r=Y(e);return r.append("Authorization",(e=t,R+" "+e)),r}async function C(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function Q(t){return new Promise(e=>{setTimeout(e,t)})}let X=/^[cdef][\w-]{21}$/,T="";function ee(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return X.test(t)?t:T}catch(e){return T}}function k(e){return e.appName+"!"+e.appId}let E=new Map;function te(e,t){var r=k(e),e=(re(r,t),r),r=ae();r&&r.postMessage({key:e,fid:t}),ne()}function re(e,t){var r=E.get(e);if(r)for(var a of r)a(t)}let j=null;function ae(){return!j&&"BroadcastChannel"in self&&((j=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{re(e.data.key,e.data.fid)}),j}function ne(){0===E.size&&j&&(j.close(),j=null)}let ie="firebase-installations-database",oe=1,D="firebase-installations-store",se=null;function P(){return se=se||((e,t,{blocked:r,upgrade:a,blocking:n,terminated:i})=>{let o=indexedDB.open(e,t);var s=p(o);return a&&o.addEventListener("upgradeneeded",e=>{a(p(o.result),e.oldVersion,e.newVersion,p(o.transaction),e)}),r&&o.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),s.then(e=>{i&&e.addEventListener("close",()=>i()),n&&e.addEventListener("versionchange",e=>n(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s})(ie,oe,{upgrade:(e,t)=>{0===t&&e.createObjectStore(D)}})}async function B(e,t){var r=k(e),a=(await P()).transaction(D,"readwrite"),n=a.objectStore(D),i=await n.get(r);return await n.put(t,r),await a.done,i&&i.fid===t.fid||te(e,t.fid),t}async function L(e){var t=k(e),r=(await P()).transaction(D,"readwrite");await r.objectStore(D).delete(t),await r.done}async function q(e,t){var r=k(e),a=(await P()).transaction(D,"readwrite"),n=a.objectStore(D),i=await n.get(r),o=t(i);return void 0===o?await n.delete(r):await n.put(o,r),await a.done,!o||i&&i.fid===o.fid||te(e,o.fid),o}async function N(r){let a;var e=await q(r.appConfig,e=>{var t=ce(e||{fid:ee(),registrationStatus:0}),t=((e,t)=>{var r,a;return 0===t.registrationStatus?navigator.onLine?(r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},a=(async(t,r)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:r})=>{let a=I(e);var n=Y(e),i=((i=t.getImmediate({optional:!0}))&&(i=await i.getHeartbeatsHeader())&&n.append("x-firebase-client",i),{fid:r,authVersion:R,appId:e.appId,sdkVersion:y});let o={method:"POST",headers:n,body:JSON.stringify(i)};if((n=await C(()=>fetch(a,o))).ok)return{fid:(i=await n.json()).fid||r,registrationStatus:2,refreshToken:i.refreshToken,authToken:G(i.authToken)};throw await S("Create Installation",n)})(t,r);return B(t.appConfig,e)}catch(e){throw J(e)&&409===e.customData.serverCode?await L(t.appConfig):await B(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:a}):(r=Promise.reject(b.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await ue(e.appConfig);for(;1===t.registrationStatus;)await Q(100),t=await ue(e.appConfig);var r,a;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:a}=await N(e),a||r)})(e)}:{installationEntry:t}})(r,t);return a=t.registrationPromise,t.installationEntry});return e.fid===T?{installationEntry:await a}:{installationEntry:e,registrationPromise:a}}function ue(e){return q(e,e=>{if(e)return ce(e);throw b.create("installation-not-found")})}function ce(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+m<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function le({appConfig:e,heartbeatServiceProvider:t},r){[n,i]=[e,r.fid];let a=I(n)+`/${i}/authTokens:generate`;var n,i,o=Z(e,r),s=t.getImmediate({optional:!0}),s=(s&&(s=await s.getHeartbeatsHeader())&&o.append("x-firebase-client",s),{installation:{sdkVersion:y,appId:e.appId}});let u={method:"POST",headers:o,body:JSON.stringify(s)};o=await C(()=>fetch(a,u));if(o.ok)return G(await o.json());throw await S("Generate Auth Token",o)}async function O(a,n=!1){let i;var e=await q(a.appConfig,e=>{if(!de(e))throw b.create("not-registered");var t,r=e.authToken;if(n||2!==(t=r).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+z})(t)){if(1===r.requestStatus)return i=(async(e,t)=>{let r=await pe(e.appConfig);for(;1===r.authToken.requestStatus;)await Q(100),r=await pe(e.appConfig);var a=r.authToken;return 0===a.requestStatus?O(e,t):a})(a,n),e;if(navigator.onLine)return t=e,r={requestStatus:1,requestTime:Date.now()},r=Object.assign(Object.assign({},t),{authToken:r}),i=(async(t,r)=>{try{var e=await le(t,r),a=Object.assign(Object.assign({},r),{authToken:e});return await B(t.appConfig,a),e}catch(e){var n;throw!J(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(n=Object.assign(Object.assign({},r),{authToken:{requestStatus:0}}),await B(t.appConfig,n)):await L(t.appConfig),e}})(a,r),r;throw b.create("app-offline")}return e});return i?await i:e.authToken}function pe(e){return q(e,e=>{var t,r;if(de(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+m<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw b.create("not-registered")})}function de(e){return void 0!==e&&2===e.registrationStatus}async function fe(e){var t=e,{installationEntry:r,registrationPromise:a}=await N(t);return(a||O(t)).catch(console.error),r.fid}async function ge(e,t=!1){var r=e,a=(await(!(a=(await N(r)).registrationPromise)||!await a),await O(r,t));return a.token}async function he(e,t){[a,n]=[e,t.fid];let r=I(a)+"/"+n;var a,n;let i={method:"DELETE",headers:Z(e,t)};var o=await C(()=>fetch(r,i));if(!o.ok)throw await S("Delete Installation",o)}function ve(t,n){let i=t.appConfig;{t=i;var r=n,a=(ae(),k(t));let e=E.get(a);e||(e=new Set,E.set(a,e)),e.add(r)}return()=>{var e,t,r,a;e=i,t=n,r=k(e),(a=E.get(r))&&(a.delete(t),0===a.size&&E.delete(r),ne())}}function A(e){return b.create("missing-app-config-values",{valueName:e})}let we="installations",me=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw A("App Configuration");if(!e.name)throw A("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw A(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:Se._getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},ye=e=>{var t=e.getProvider("app").getImmediate();let r=Se._getProvider(t,we).getImmediate();return{getId:()=>fe(r),getToken:e=>ge(r,e)}};Se._registerComponent(new e(we,me,"PUBLIC")),Se._registerComponent(new e("installations-internal",ye,"PRIVATE")),Se.registerVersion(v,w),Se.registerVersion(v,w,"esm2017");class be{constructor(e,t){this.app=e,this._delegate=t}getId(){return fe(this._delegate)}getToken(e){return ge(this._delegate,e)}delete(){return(async e=>{var t=e.appConfig,r=await q(t,e=>{if(!e||0!==e.registrationStatus)return e});if(r){if(1===r.registrationStatus)throw b.create("delete-pending-registration");if(2===r.registrationStatus){if(!navigator.onLine)throw b.create("app-offline");await he(t,r),await L(t)}}})(this._delegate)}onIdChange(e){return ve(this._delegate,e)}}(U=x.default).INTERNAL.registerComponent(new e("installations-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("installations").getImmediate();return new be(t,r)},"PUBLIC")),U.registerVersion("@firebase/installations-compat","0.2.12-canary.70e08cf95")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-installations-compat.js - be sure to load firebase-app.js first.")}});
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(Ie,Se){try{!(function(){function M(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}let x=M(Ie);class o extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,o.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,a.prototype.create)}}class a{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var a,r=t[0]||{},n=this.service+"/"+e,i=this.errors[e],i=i?(a=r,i.replace(V,(e,t)=>{var r=a[t];return null!=r?String(r):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${n}).`;return new o(n,i,r)}}let V=/\{\$([^}]+)}/g;class e{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let $=(t,e)=>e.some(e=>t instanceof e),r,t;let n=new WeakMap,s=new WeakMap,i=new WeakMap,u=new WeakMap,c=new WeakMap;let l={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||i.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return p(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function _(a){return a!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(t=t||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(a)?function(...e){return a.apply(d(this),e),p(n.get(this))}:function(...e){return p(a.apply(d(this),e))}:function(e,...t){var r=a.call(d(this),e,...t);return i.set(r,e.sort?e.sort():[e]),p(r)}}function F(e){var i,t;return"function"==typeof e?_(e):(e instanceof IDBTransaction&&(i=e,s.has(i)||(t=new Promise((e,t)=>{let r=()=>{i.removeEventListener("complete",a),i.removeEventListener("error",n),i.removeEventListener("abort",n)},a=()=>{e(),r()},n=()=>{t(i.error||new DOMException("AbortError","AbortError")),r()};i.addEventListener("complete",a),i.addEventListener("error",n),i.addEventListener("abort",n)}),s.set(i,t))),$(e,r=r||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,l):e)}function p(e){var i,t;return e instanceof IDBRequest?(i=e,(t=new Promise((e,t)=>{let r=()=>{i.removeEventListener("success",a),i.removeEventListener("error",n)},a=()=>{e(p(i.result)),r()},n=()=>{t(i.error),r()};i.addEventListener("success",a),i.addEventListener("error",n)})).then(e=>{e instanceof IDBCursor&&n.set(e,i)}).catch(()=>{}),c.set(t,i),t):u.has(e)?u.get(e):((t=F(e))!==e&&(u.set(e,t),c.set(t,e)),t)}let d=e=>c.get(e);let K=["get","getKey","getAll","getAllKeys","count"],H=["put","add","delete","clear"],f=new Map;function g(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(f.get(t))return f.get(t);let n=t.replace(/FromIndex$/,""),i=t!==n,o=H.includes(n);var r;return n in(i?IDBIndex:IDBObjectStore).prototype&&(o||K.includes(n))?(r=async function(e,...t){var r=this.transaction(e,o?"readwrite":"readonly");let a=r.store;return i&&(a=a.index(t.shift())),(await Promise.all([a[n](...t),o&&r.done]))[0]},f.set(t,r),r):void 0}}l={...h=l,get:(e,t,r)=>g(e,t)||h.get(e,t,r),has:(e,t)=>!!g(e,t)||h.has(e,t)};var h,v="@firebase/installations",w="0.6.12-canary.84dfeca39";let m=1e4,y="w:"+w,R="FIS_v2",W="https://firebaseinstallations.googleapis.com/v1",z=36e5;var U;let b=new a("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 J(e){return e instanceof o&&e.code.includes("request-failed")}function I({projectId:e}){return W+`/projects/${e}/installations`}function G(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function S(e,t){var r=(await t.json()).error;return b.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function Y({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function Z(e,{refreshToken:t}){var r=Y(e);return r.append("Authorization",(e=t,R+" "+e)),r}async function C(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function Q(t){return new Promise(e=>{setTimeout(e,t)})}let X=/^[cdef][\w-]{21}$/,T="";function ee(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return X.test(t)?t:T}catch(e){return T}}function k(e){return e.appName+"!"+e.appId}let E=new Map;function te(e,t){var r=k(e),e=(re(r,t),r),r=ae();r&&r.postMessage({key:e,fid:t}),ne()}function re(e,t){var r=E.get(e);if(r)for(var a of r)a(t)}let j=null;function ae(){return!j&&"BroadcastChannel"in self&&((j=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{re(e.data.key,e.data.fid)}),j}function ne(){0===E.size&&j&&(j.close(),j=null)}let ie="firebase-installations-database",oe=1,D="firebase-installations-store",se=null;function P(){return se=se||((e,t,{blocked:r,upgrade:a,blocking:n,terminated:i})=>{let o=indexedDB.open(e,t);var s=p(o);return a&&o.addEventListener("upgradeneeded",e=>{a(p(o.result),e.oldVersion,e.newVersion,p(o.transaction),e)}),r&&o.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),s.then(e=>{i&&e.addEventListener("close",()=>i()),n&&e.addEventListener("versionchange",e=>n(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s})(ie,oe,{upgrade:(e,t)=>{0===t&&e.createObjectStore(D)}})}async function B(e,t){var r=k(e),a=(await P()).transaction(D,"readwrite"),n=a.objectStore(D),i=await n.get(r);return await n.put(t,r),await a.done,i&&i.fid===t.fid||te(e,t.fid),t}async function L(e){var t=k(e),r=(await P()).transaction(D,"readwrite");await r.objectStore(D).delete(t),await r.done}async function q(e,t){var r=k(e),a=(await P()).transaction(D,"readwrite"),n=a.objectStore(D),i=await n.get(r),o=t(i);return void 0===o?await n.delete(r):await n.put(o,r),await a.done,!o||i&&i.fid===o.fid||te(e,o.fid),o}async function N(r){let a;var e=await q(r.appConfig,e=>{var t=ce(e||{fid:ee(),registrationStatus:0}),t=((e,t)=>{var r,a;return 0===t.registrationStatus?navigator.onLine?(r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},a=(async(t,r)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:r})=>{let a=I(e);var n=Y(e),i=((i=t.getImmediate({optional:!0}))&&(i=await i.getHeartbeatsHeader())&&n.append("x-firebase-client",i),{fid:r,authVersion:R,appId:e.appId,sdkVersion:y});let o={method:"POST",headers:n,body:JSON.stringify(i)};if((n=await C(()=>fetch(a,o))).ok)return{fid:(i=await n.json()).fid||r,registrationStatus:2,refreshToken:i.refreshToken,authToken:G(i.authToken)};throw await S("Create Installation",n)})(t,r);return B(t.appConfig,e)}catch(e){throw J(e)&&409===e.customData.serverCode?await L(t.appConfig):await B(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:a}):(r=Promise.reject(b.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await ue(e.appConfig);for(;1===t.registrationStatus;)await Q(100),t=await ue(e.appConfig);var r,a;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:a}=await N(e),a||r)})(e)}:{installationEntry:t}})(r,t);return a=t.registrationPromise,t.installationEntry});return e.fid===T?{installationEntry:await a}:{installationEntry:e,registrationPromise:a}}function ue(e){return q(e,e=>{if(e)return ce(e);throw b.create("installation-not-found")})}function ce(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+m<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function le({appConfig:e,heartbeatServiceProvider:t},r){[n,i]=[e,r.fid];let a=I(n)+`/${i}/authTokens:generate`;var n,i,o=Z(e,r),s=t.getImmediate({optional:!0}),s=(s&&(s=await s.getHeartbeatsHeader())&&o.append("x-firebase-client",s),{installation:{sdkVersion:y,appId:e.appId}});let u={method:"POST",headers:o,body:JSON.stringify(s)};o=await C(()=>fetch(a,u));if(o.ok)return G(await o.json());throw await S("Generate Auth Token",o)}async function O(a,n=!1){let i;var e=await q(a.appConfig,e=>{if(!de(e))throw b.create("not-registered");var t,r=e.authToken;if(n||2!==(t=r).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+z})(t)){if(1===r.requestStatus)return i=(async(e,t)=>{let r=await pe(e.appConfig);for(;1===r.authToken.requestStatus;)await Q(100),r=await pe(e.appConfig);var a=r.authToken;return 0===a.requestStatus?O(e,t):a})(a,n),e;if(navigator.onLine)return t=e,r={requestStatus:1,requestTime:Date.now()},r=Object.assign(Object.assign({},t),{authToken:r}),i=(async(t,r)=>{try{var e=await le(t,r),a=Object.assign(Object.assign({},r),{authToken:e});return await B(t.appConfig,a),e}catch(e){var n;throw!J(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(n=Object.assign(Object.assign({},r),{authToken:{requestStatus:0}}),await B(t.appConfig,n)):await L(t.appConfig),e}})(a,r),r;throw b.create("app-offline")}return e});return i?await i:e.authToken}function pe(e){return q(e,e=>{var t,r;if(de(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+m<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw b.create("not-registered")})}function de(e){return void 0!==e&&2===e.registrationStatus}async function fe(e){var t=e,{installationEntry:r,registrationPromise:a}=await N(t);return(a||O(t)).catch(console.error),r.fid}async function ge(e,t=!1){var r=e,a=(await(!(a=(await N(r)).registrationPromise)||!await a),await O(r,t));return a.token}async function he(e,t){[a,n]=[e,t.fid];let r=I(a)+"/"+n;var a,n;let i={method:"DELETE",headers:Z(e,t)};var o=await C(()=>fetch(r,i));if(!o.ok)throw await S("Delete Installation",o)}function ve(t,n){let i=t.appConfig;{t=i;var r=n,a=(ae(),k(t));let e=E.get(a);e||(e=new Set,E.set(a,e)),e.add(r)}return()=>{var e,t,r,a;e=i,t=n,r=k(e),(a=E.get(r))&&(a.delete(t),0===a.size&&E.delete(r),ne())}}function A(e){return b.create("missing-app-config-values",{valueName:e})}let we="installations",me=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw A("App Configuration");if(!e.name)throw A("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw A(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:Se._getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},ye=e=>{var t=e.getProvider("app").getImmediate();let r=Se._getProvider(t,we).getImmediate();return{getId:()=>fe(r),getToken:e=>ge(r,e)}};Se._registerComponent(new e(we,me,"PUBLIC")),Se._registerComponent(new e("installations-internal",ye,"PRIVATE")),Se.registerVersion(v,w),Se.registerVersion(v,w,"esm2017");class be{constructor(e,t){this.app=e,this._delegate=t}getId(){return fe(this._delegate)}getToken(e){return ge(this._delegate,e)}delete(){return(async e=>{var t=e.appConfig,r=await q(t,e=>{if(!e||0!==e.registrationStatus)return e});if(r){if(1===r.registrationStatus)throw b.create("delete-pending-registration");if(2===r.registrationStatus){if(!navigator.onLine)throw b.create("app-offline");await he(t,r),await L(t)}}})(this._delegate)}onIdChange(e){return ve(this._delegate,e)}}(U=x.default).INTERNAL.registerComponent(new e("installations-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("installations").getImmediate();return new be(t,r)},"PUBLIC")),U.registerVersion("@firebase/installations-compat","0.2.12-canary.84dfeca39")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-installations-compat.js - be sure to load firebase-app.js first.")}});
//# sourceMappingURL=firebase-installations-compat.js.map

@@ -1,3 +0,3 @@

import{registerVersion as e,_getProvider,getApp as t,_registerComponent as n}from"https://www.gstatic.com/firebasejs/11.3.0-canary.70e08cf95/firebase-app.js";class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},a=`${this.service}/${e}`,o=this.errors[e],i=o?function replaceTemplate(e,t){return e.replace(r,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(o,n):"Error",s=`${this.serviceName}: ${i} (${a}).`;return new FirebaseError(a,s,n)}}const r=/\{\$([^}]+)}/g;class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}let a,o;const i=new WeakMap,s=new WeakMap,c=new WeakMap,u=new WeakMap,l=new WeakMap;let d={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||c.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return wrap(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return o||(o=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(unwrap(this),t),wrap(i.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...n){const r=e.call(unwrap(this),t,...n);return c.set(r,t.sort?t.sort():[t]),wrap(r)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(s.has(e))return;const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("complete",complete),e.removeEventListener("error",error),e.removeEventListener("abort",error)},complete=()=>{t(),unlisten()},error=()=>{n(e.error||new DOMException("AbortError","AbortError")),unlisten()};e.addEventListener("complete",complete),e.addEventListener("error",error),e.addEventListener("abort",error)}));s.set(e,t)}(e),t=e,function getIdbProxyableTypes(){return a||(a=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}().some((e=>t instanceof e))?new Proxy(e,d):e);var t}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("success",success),e.removeEventListener("error",error)},success=()=>{t(wrap(e.result)),unlisten()},error=()=>{n(e.error),unlisten()};e.addEventListener("success",success),e.addEventListener("error",error)}));return t.then((t=>{t instanceof IDBCursor&&i.set(t,e)})).catch((()=>{})),l.set(t,e),t}(e);if(u.has(e))return u.get(e);const t=transformCachableValue(e);return t!==e&&(u.set(e,t),l.set(t,e)),t}const unwrap=e=>l.get(e);const p=["get","getKey","getAll","getAllKeys","count"],f=["put","add","delete","clear"],g=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(g.get(t))return g.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,a=f.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!a&&!p.includes(n))return;const method=async function(e,...t){const o=this.transaction(e,a?"readwrite":"readonly");let i=o.store;return r&&(i=i.index(t.shift())),(await Promise.all([i[n](...t),a&&o.done]))[0]};return g.set(t,method),method}!function replaceTraps(e){d=e(d)}((e=>Object.assign(Object.assign({},e),{get:(t,n,r)=>getMethod(t,n)||e.get(t,n,r),has:(t,n)=>!!getMethod(t,n)||e.has(t,n)})));const h="@firebase/installations",m="0.6.12-canary.70e08cf95",w=1e4,I=`w:${m}`,y="FIS_v2",b=36e5,v=new 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 isServerError(e){return e instanceof FirebaseError&&e.code.includes("request-failed")}function getInstallationsEndpoint({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function extractAuthTokenInfoFromResponse(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function getErrorFromResponse(e,t){const n=(await t.json()).error;return v.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function getHeaders({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function getHeadersWithAuth(e,{refreshToken:t}){const n=getHeaders(e);return n.append("Authorization",function getAuthorizationHeader(e){return`${y} ${e}`}(t)),n}async function retryIfServerError(e){const t=await e();return t.status>=500&&t.status<600?e():t}function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}const E=/^[cdef][\w-]{21}$/;function generateFid(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function encode(e){const t=function bufferToBase64UrlSafe(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(e);return E.test(t)?t:""}catch(e){return""}}function getKey(e){return`${e.appName}!${e.appId}`}const C=new Map;function fidChanged(e,t){const n=getKey(e);callFidChangeCallbacks(n,t),function broadcastFidChange(e,t){const n=getBroadcastChannel();n&&n.postMessage({key:e,fid:t});closeBroadcastChannel()}(n,t)}function callFidChangeCallbacks(e,t){const n=C.get(e);if(n)for(const e of n)e(t)}let T=null;function getBroadcastChannel(){return!T&&"BroadcastChannel"in self&&(T=new BroadcastChannel("[Firebase] FID Change"),T.onmessage=e=>{callFidChangeCallbacks(e.data.key,e.data.fid)}),T}function closeBroadcastChannel(){0===C.size&&T&&(T.close(),T=null)}const k="firebase-installations-store";let S=null;function getDbPromise(){return S||(S=function openDB(e,t,{blocked:n,upgrade:r,blocking:a,terminated:o}={}){const i=indexedDB.open(e,t),s=wrap(i);return r&&i.addEventListener("upgradeneeded",(e=>{r(wrap(i.result),e.oldVersion,e.newVersion,wrap(i.transaction),e)})),n&&i.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),s.then((e=>{o&&e.addEventListener("close",(()=>o())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),s}("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(k)}})),S}async function set(e,t){const n=getKey(e),r=(await getDbPromise()).transaction(k,"readwrite"),a=r.objectStore(k),o=await a.get(n);return await a.put(t,n),await r.done,o&&o.fid===t.fid||fidChanged(e,t.fid),t}async function remove(e){const t=getKey(e),n=(await getDbPromise()).transaction(k,"readwrite");await n.objectStore(k).delete(t),await n.done}async function update(e,t){const n=getKey(e),r=(await getDbPromise()).transaction(k,"readwrite"),a=r.objectStore(k),o=await a.get(n),i=t(o);return void 0===i?await a.delete(n):await a.put(i,n),await r.done,!i||o&&o.fid===i.fid||fidChanged(e,i.fid),i}async function getInstallationEntry(e){let t;const n=await update(e.appConfig,(n=>{const r=function updateOrCreateInstallationEntry(e){const t=e||{fid:generateFid(),registrationStatus:0};return clearTimedOutRequest(t)}(n),a=function triggerRegistrationIfNecessary(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(v.create("app-offline"))}}const n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=async function registerInstallation(e,t){try{const n=await async function createInstallationRequest({appConfig:e,heartbeatServiceProvider:t},{fid:n}){const r=getInstallationsEndpoint(e),a=getHeaders(e),o=t.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&a.append("x-firebase-client",e)}const i={fid:n,authVersion:y,appId:e.appId,sdkVersion:I},s={method:"POST",headers:a,body:JSON.stringify(i)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){const e=await c.json();return{fid:e.fid||n,registrationStatus:2,refreshToken:e.refreshToken,authToken:extractAuthTokenInfoFromResponse(e.authToken)}}throw await getErrorFromResponse("Create Installation",c)}(e,t);return set(e.appConfig,n)}catch(n){throw isServerError(n)&&409===n.customData.serverCode?await remove(e.appConfig):await set(e.appConfig,{fid:t.fid,registrationStatus:0}),n}}(e,n);return{installationEntry:n,registrationPromise:r}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:waitUntilFidRegistration(e)}:{installationEntry:t}}(e,r);return t=a.registrationPromise,a.installationEntry}));return""===n.fid?{installationEntry:await t}:{installationEntry:n,registrationPromise:t}}async function waitUntilFidRegistration(e){let t=await updateInstallationRequest(e.appConfig);for(;1===t.registrationStatus;)await sleep(100),t=await updateInstallationRequest(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:n}=await getInstallationEntry(e);return n||t}return t}function updateInstallationRequest(e){return update(e,(e=>{if(!e)throw v.create("installation-not-found");return clearTimedOutRequest(e)}))}function clearTimedOutRequest(e){return function hasInstallationRequestTimedOut(e){return 1===e.registrationStatus&&e.registrationTime+w<Date.now()}(e)?{fid:e.fid,registrationStatus:0}:e}async function generateAuthTokenRequest({appConfig:e,heartbeatServiceProvider:t},n){const r=function getGenerateAuthTokenEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}/authTokens:generate`}(e,n),a=getHeadersWithAuth(e,n),o=t.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&a.append("x-firebase-client",e)}const i={installation:{sdkVersion:I,appId:e.appId}},s={method:"POST",headers:a,body:JSON.stringify(i)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){return extractAuthTokenInfoFromResponse(await c.json())}throw await getErrorFromResponse("Generate Auth Token",c)}async function refreshAuthToken(e,t=!1){let n;const r=await update(e.appConfig,(r=>{if(!isEntryRegistered(r))throw v.create("not-registered");const a=r.authToken;if(!t&&function isAuthTokenValid(e){return 2===e.requestStatus&&!function isAuthTokenExpired(e){const t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+b}(e)}(a))return r;if(1===a.requestStatus)return n=async function waitUntilAuthTokenRequest(e,t){let n=await updateAuthTokenRequest(e.appConfig);for(;1===n.authToken.requestStatus;)await sleep(100),n=await updateAuthTokenRequest(e.appConfig);const r=n.authToken;return 0===r.requestStatus?refreshAuthToken(e,t):r}(e,t),r;{if(!navigator.onLine)throw v.create("app-offline");const t=function makeAuthTokenRequestInProgressEntry(e){const t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(r);return n=async function fetchAuthTokenFromServer(e,t){try{const n=await generateAuthTokenRequest(e,t),r=Object.assign(Object.assign({},t),{authToken:n});return await set(e.appConfig,r),n}catch(n){if(!isServerError(n)||401!==n.customData.serverCode&&404!==n.customData.serverCode){const n=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await set(e.appConfig,n)}else await remove(e.appConfig);throw n}}(e,t),t}}));return n?await n:r.authToken}function updateAuthTokenRequest(e){return update(e,(e=>{if(!isEntryRegistered(e))throw v.create("not-registered");return function hasAuthTokenRequestTimedOut(e){return 1===e.requestStatus&&e.requestTime+w<Date.now()}(e.authToken)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e}))}function isEntryRegistered(e){return void 0!==e&&2===e.registrationStatus}async function getId(e){const t=e,{installationEntry:n,registrationPromise:r}=await getInstallationEntry(t);return r?r.catch(console.error):refreshAuthToken(t).catch(console.error),n.fid}async function getToken(e,t=!1){const n=e;await async function completeInstallationRegistration(e){const{registrationPromise:t}=await getInstallationEntry(e);t&&await t}(n);return(await refreshAuthToken(n,t)).token}async function deleteInstallationRequest(e,t){const n=function getDeleteEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}`}(e,t),r={method:"DELETE",headers:getHeadersWithAuth(e,t)},a=await retryIfServerError((()=>fetch(n,r)));if(!a.ok)throw await getErrorFromResponse("Delete Installation",a)}async function deleteInstallations(e){const{appConfig:t}=e,n=await update(t,(e=>{if(!e||0!==e.registrationStatus)return e}));if(n){if(1===n.registrationStatus)throw v.create("delete-pending-registration");if(2===n.registrationStatus){if(!navigator.onLine)throw v.create("app-offline");await deleteInstallationRequest(t,n),await remove(t)}}}function onIdChange(e,t){const{appConfig:n}=e;return function addCallback(e,t){getBroadcastChannel();const n=getKey(e);let r=C.get(n);r||(r=new Set,C.set(n,r)),r.add(t)}(n,t),()=>{!function removeCallback(e,t){const n=getKey(e),r=C.get(n);r&&(r.delete(t),0===r.size&&C.delete(n),closeBroadcastChannel())}(n,t)}}function getInstallations(e=t()){return _getProvider(e,"installations").getImmediate()}function getMissingValueError(e){return v.create("missing-app-config-values",{valueName:e})}const D="installations",publicFactory=e=>{const t=e.getProvider("app").getImmediate(),n=function extractAppConfig(e){if(!e||!e.options)throw getMissingValueError("App Configuration");if(!e.name)throw getMissingValueError("App Name");const t=["projectId","apiKey","appId"];for(const n of t)if(!e.options[n])throw getMissingValueError(n);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:n,heartbeatServiceProvider:_getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},internalFactory=e=>{const t=e.getProvider("app").getImmediate(),n=_getProvider(t,D).getImmediate();return{getId:()=>getId(n),getToken:e=>getToken(n,e)}};!function registerInstallations(){n(new Component(D,publicFactory,"PUBLIC")),n(new Component("installations-internal",internalFactory,"PRIVATE"))}(),e(h,m),e(h,m,"esm2017");export{deleteInstallations,getId,getInstallations,getToken,onIdChange};
import{registerVersion as e,_getProvider,getApp as t,_registerComponent as n}from"https://www.gstatic.com/firebasejs/11.3.0-canary.84dfeca39/firebase-app.js";class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},a=`${this.service}/${e}`,o=this.errors[e],i=o?function replaceTemplate(e,t){return e.replace(r,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(o,n):"Error",s=`${this.serviceName}: ${i} (${a}).`;return new FirebaseError(a,s,n)}}const r=/\{\$([^}]+)}/g;class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}let a,o;const i=new WeakMap,s=new WeakMap,c=new WeakMap,u=new WeakMap,l=new WeakMap;let d={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||c.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return wrap(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return o||(o=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(unwrap(this),t),wrap(i.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...n){const r=e.call(unwrap(this),t,...n);return c.set(r,t.sort?t.sort():[t]),wrap(r)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(s.has(e))return;const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("complete",complete),e.removeEventListener("error",error),e.removeEventListener("abort",error)},complete=()=>{t(),unlisten()},error=()=>{n(e.error||new DOMException("AbortError","AbortError")),unlisten()};e.addEventListener("complete",complete),e.addEventListener("error",error),e.addEventListener("abort",error)}));s.set(e,t)}(e),t=e,function getIdbProxyableTypes(){return a||(a=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}().some((e=>t instanceof e))?new Proxy(e,d):e);var t}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("success",success),e.removeEventListener("error",error)},success=()=>{t(wrap(e.result)),unlisten()},error=()=>{n(e.error),unlisten()};e.addEventListener("success",success),e.addEventListener("error",error)}));return t.then((t=>{t instanceof IDBCursor&&i.set(t,e)})).catch((()=>{})),l.set(t,e),t}(e);if(u.has(e))return u.get(e);const t=transformCachableValue(e);return t!==e&&(u.set(e,t),l.set(t,e)),t}const unwrap=e=>l.get(e);const p=["get","getKey","getAll","getAllKeys","count"],f=["put","add","delete","clear"],g=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(g.get(t))return g.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,a=f.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!a&&!p.includes(n))return;const method=async function(e,...t){const o=this.transaction(e,a?"readwrite":"readonly");let i=o.store;return r&&(i=i.index(t.shift())),(await Promise.all([i[n](...t),a&&o.done]))[0]};return g.set(t,method),method}!function replaceTraps(e){d=e(d)}((e=>Object.assign(Object.assign({},e),{get:(t,n,r)=>getMethod(t,n)||e.get(t,n,r),has:(t,n)=>!!getMethod(t,n)||e.has(t,n)})));const h="@firebase/installations",m="0.6.12-canary.84dfeca39",w=1e4,I=`w:${m}`,y="FIS_v2",b=36e5,v=new 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 isServerError(e){return e instanceof FirebaseError&&e.code.includes("request-failed")}function getInstallationsEndpoint({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function extractAuthTokenInfoFromResponse(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function getErrorFromResponse(e,t){const n=(await t.json()).error;return v.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function getHeaders({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function getHeadersWithAuth(e,{refreshToken:t}){const n=getHeaders(e);return n.append("Authorization",function getAuthorizationHeader(e){return`${y} ${e}`}(t)),n}async function retryIfServerError(e){const t=await e();return t.status>=500&&t.status<600?e():t}function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}const E=/^[cdef][\w-]{21}$/;function generateFid(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function encode(e){const t=function bufferToBase64UrlSafe(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(e);return E.test(t)?t:""}catch(e){return""}}function getKey(e){return`${e.appName}!${e.appId}`}const C=new Map;function fidChanged(e,t){const n=getKey(e);callFidChangeCallbacks(n,t),function broadcastFidChange(e,t){const n=getBroadcastChannel();n&&n.postMessage({key:e,fid:t});closeBroadcastChannel()}(n,t)}function callFidChangeCallbacks(e,t){const n=C.get(e);if(n)for(const e of n)e(t)}let T=null;function getBroadcastChannel(){return!T&&"BroadcastChannel"in self&&(T=new BroadcastChannel("[Firebase] FID Change"),T.onmessage=e=>{callFidChangeCallbacks(e.data.key,e.data.fid)}),T}function closeBroadcastChannel(){0===C.size&&T&&(T.close(),T=null)}const k="firebase-installations-store";let S=null;function getDbPromise(){return S||(S=function openDB(e,t,{blocked:n,upgrade:r,blocking:a,terminated:o}={}){const i=indexedDB.open(e,t),s=wrap(i);return r&&i.addEventListener("upgradeneeded",(e=>{r(wrap(i.result),e.oldVersion,e.newVersion,wrap(i.transaction),e)})),n&&i.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),s.then((e=>{o&&e.addEventListener("close",(()=>o())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),s}("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(k)}})),S}async function set(e,t){const n=getKey(e),r=(await getDbPromise()).transaction(k,"readwrite"),a=r.objectStore(k),o=await a.get(n);return await a.put(t,n),await r.done,o&&o.fid===t.fid||fidChanged(e,t.fid),t}async function remove(e){const t=getKey(e),n=(await getDbPromise()).transaction(k,"readwrite");await n.objectStore(k).delete(t),await n.done}async function update(e,t){const n=getKey(e),r=(await getDbPromise()).transaction(k,"readwrite"),a=r.objectStore(k),o=await a.get(n),i=t(o);return void 0===i?await a.delete(n):await a.put(i,n),await r.done,!i||o&&o.fid===i.fid||fidChanged(e,i.fid),i}async function getInstallationEntry(e){let t;const n=await update(e.appConfig,(n=>{const r=function updateOrCreateInstallationEntry(e){const t=e||{fid:generateFid(),registrationStatus:0};return clearTimedOutRequest(t)}(n),a=function triggerRegistrationIfNecessary(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(v.create("app-offline"))}}const n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=async function registerInstallation(e,t){try{const n=await async function createInstallationRequest({appConfig:e,heartbeatServiceProvider:t},{fid:n}){const r=getInstallationsEndpoint(e),a=getHeaders(e),o=t.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&a.append("x-firebase-client",e)}const i={fid:n,authVersion:y,appId:e.appId,sdkVersion:I},s={method:"POST",headers:a,body:JSON.stringify(i)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){const e=await c.json();return{fid:e.fid||n,registrationStatus:2,refreshToken:e.refreshToken,authToken:extractAuthTokenInfoFromResponse(e.authToken)}}throw await getErrorFromResponse("Create Installation",c)}(e,t);return set(e.appConfig,n)}catch(n){throw isServerError(n)&&409===n.customData.serverCode?await remove(e.appConfig):await set(e.appConfig,{fid:t.fid,registrationStatus:0}),n}}(e,n);return{installationEntry:n,registrationPromise:r}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:waitUntilFidRegistration(e)}:{installationEntry:t}}(e,r);return t=a.registrationPromise,a.installationEntry}));return""===n.fid?{installationEntry:await t}:{installationEntry:n,registrationPromise:t}}async function waitUntilFidRegistration(e){let t=await updateInstallationRequest(e.appConfig);for(;1===t.registrationStatus;)await sleep(100),t=await updateInstallationRequest(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:n}=await getInstallationEntry(e);return n||t}return t}function updateInstallationRequest(e){return update(e,(e=>{if(!e)throw v.create("installation-not-found");return clearTimedOutRequest(e)}))}function clearTimedOutRequest(e){return function hasInstallationRequestTimedOut(e){return 1===e.registrationStatus&&e.registrationTime+w<Date.now()}(e)?{fid:e.fid,registrationStatus:0}:e}async function generateAuthTokenRequest({appConfig:e,heartbeatServiceProvider:t},n){const r=function getGenerateAuthTokenEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}/authTokens:generate`}(e,n),a=getHeadersWithAuth(e,n),o=t.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&a.append("x-firebase-client",e)}const i={installation:{sdkVersion:I,appId:e.appId}},s={method:"POST",headers:a,body:JSON.stringify(i)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){return extractAuthTokenInfoFromResponse(await c.json())}throw await getErrorFromResponse("Generate Auth Token",c)}async function refreshAuthToken(e,t=!1){let n;const r=await update(e.appConfig,(r=>{if(!isEntryRegistered(r))throw v.create("not-registered");const a=r.authToken;if(!t&&function isAuthTokenValid(e){return 2===e.requestStatus&&!function isAuthTokenExpired(e){const t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+b}(e)}(a))return r;if(1===a.requestStatus)return n=async function waitUntilAuthTokenRequest(e,t){let n=await updateAuthTokenRequest(e.appConfig);for(;1===n.authToken.requestStatus;)await sleep(100),n=await updateAuthTokenRequest(e.appConfig);const r=n.authToken;return 0===r.requestStatus?refreshAuthToken(e,t):r}(e,t),r;{if(!navigator.onLine)throw v.create("app-offline");const t=function makeAuthTokenRequestInProgressEntry(e){const t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(r);return n=async function fetchAuthTokenFromServer(e,t){try{const n=await generateAuthTokenRequest(e,t),r=Object.assign(Object.assign({},t),{authToken:n});return await set(e.appConfig,r),n}catch(n){if(!isServerError(n)||401!==n.customData.serverCode&&404!==n.customData.serverCode){const n=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await set(e.appConfig,n)}else await remove(e.appConfig);throw n}}(e,t),t}}));return n?await n:r.authToken}function updateAuthTokenRequest(e){return update(e,(e=>{if(!isEntryRegistered(e))throw v.create("not-registered");return function hasAuthTokenRequestTimedOut(e){return 1===e.requestStatus&&e.requestTime+w<Date.now()}(e.authToken)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e}))}function isEntryRegistered(e){return void 0!==e&&2===e.registrationStatus}async function getId(e){const t=e,{installationEntry:n,registrationPromise:r}=await getInstallationEntry(t);return r?r.catch(console.error):refreshAuthToken(t).catch(console.error),n.fid}async function getToken(e,t=!1){const n=e;await async function completeInstallationRegistration(e){const{registrationPromise:t}=await getInstallationEntry(e);t&&await t}(n);return(await refreshAuthToken(n,t)).token}async function deleteInstallationRequest(e,t){const n=function getDeleteEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}`}(e,t),r={method:"DELETE",headers:getHeadersWithAuth(e,t)},a=await retryIfServerError((()=>fetch(n,r)));if(!a.ok)throw await getErrorFromResponse("Delete Installation",a)}async function deleteInstallations(e){const{appConfig:t}=e,n=await update(t,(e=>{if(!e||0!==e.registrationStatus)return e}));if(n){if(1===n.registrationStatus)throw v.create("delete-pending-registration");if(2===n.registrationStatus){if(!navigator.onLine)throw v.create("app-offline");await deleteInstallationRequest(t,n),await remove(t)}}}function onIdChange(e,t){const{appConfig:n}=e;return function addCallback(e,t){getBroadcastChannel();const n=getKey(e);let r=C.get(n);r||(r=new Set,C.set(n,r)),r.add(t)}(n,t),()=>{!function removeCallback(e,t){const n=getKey(e),r=C.get(n);r&&(r.delete(t),0===r.size&&C.delete(n),closeBroadcastChannel())}(n,t)}}function getInstallations(e=t()){return _getProvider(e,"installations").getImmediate()}function getMissingValueError(e){return v.create("missing-app-config-values",{valueName:e})}const D="installations",publicFactory=e=>{const t=e.getProvider("app").getImmediate(),n=function extractAppConfig(e){if(!e||!e.options)throw getMissingValueError("App Configuration");if(!e.name)throw getMissingValueError("App Name");const t=["projectId","apiKey","appId"];for(const n of t)if(!e.options[n])throw getMissingValueError(n);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:n,heartbeatServiceProvider:_getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},internalFactory=e=>{const t=e.getProvider("app").getImmediate(),n=_getProvider(t,D).getImmediate();return{getId:()=>getId(n),getToken:e=>getToken(n,e)}};!function registerInstallations(){n(new Component(D,publicFactory,"PUBLIC")),n(new Component("installations-internal",internalFactory,"PRIVATE"))}(),e(h,m),e(h,m,"esm2017");export{deleteInstallations,getId,getInstallations,getToken,onIdChange};
//# sourceMappingURL=firebase-installations.js.map

@@ -1,2 +0,2 @@

((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(on,sn){try{!(function(){function x(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a,B=x(on);function L(){try{return"object"==typeof indexedDB}catch(e){return!1}}class o extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,o.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,i.prototype.create)}}class i{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){var a,n=t[0]||{},i=this.service+"/"+e,r=this.errors[e],r=r?(a=n,r.replace(F,(e,t)=>{var n=a[t];return null!=n?String(n):`<${t}?>`})):"Error",r=this.serviceName+`: ${r} (${i}).`;return new o(i,r,n)}}let F=/\{\$([^}]+)}/g;function r(e){return e&&e._delegate?e._delegate:e}class e{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}let R=(t,e)=>e.some(e=>t instanceof e),H,q;let V=new WeakMap,s=new WeakMap,W=new WeakMap,n=new WeakMap,c=new WeakMap;let d={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||W.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return p(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function $(a){return a!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(q=q||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(a)?function(...e){return a.apply(l(this),e),p(V.get(this))}:function(...e){return p(a.apply(l(this),e))}:function(e,...t){var n=a.call(l(this),e,...t);return W.set(n,e.sort?e.sort():[e]),p(n)}}function U(e){var r,t;return"function"==typeof e?$(e):(e instanceof IDBTransaction&&(r=e,s.has(r)||(t=new Promise((e,t)=>{let n=()=>{r.removeEventListener("complete",a),r.removeEventListener("error",i),r.removeEventListener("abort",i)},a=()=>{e(),n()},i=()=>{t(r.error||new DOMException("AbortError","AbortError")),n()};r.addEventListener("complete",a),r.addEventListener("error",i),r.addEventListener("abort",i)}),s.set(r,t))),R(e,H=H||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,d):e)}function p(e){var r,t;return e instanceof IDBRequest?(r=e,(t=new Promise((e,t)=>{let n=()=>{r.removeEventListener("success",a),r.removeEventListener("error",i)},a=()=>{e(p(r.result)),n()},i=()=>{t(r.error),n()};r.addEventListener("success",a),r.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&V.set(e,r)}).catch(()=>{}),c.set(t,r),t):n.has(e)?n.get(e):((t=U(e))!==e&&(n.set(e,t),c.set(t,e)),t)}let l=e=>c.get(e);function t(e,t,{blocked:n,upgrade:a,blocking:i,terminated:r}={}){let o=indexedDB.open(e,t);var s=p(o);return a&&o.addEventListener("upgradeneeded",e=>{a(p(o.result),e.oldVersion,e.newVersion,p(o.transaction),e)}),n&&o.addEventListener("blocked",e=>n(e.oldVersion,e.newVersion,e)),s.then(e=>{r&&e.addEventListener("close",()=>r()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s}function u(e,{blocked:t}={}){var n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",e=>t(e.oldVersion,e)),p(n).then(()=>{})}let G=["get","getKey","getAll","getAllKeys","count"],J=["put","add","delete","clear"],f=new Map;function z(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(f.get(t))return f.get(t);let i=t.replace(/FromIndex$/,""),r=t!==i,o=J.includes(i);var n;return i in(r?IDBIndex:IDBObjectStore).prototype&&(o||G.includes(i))?(n=async function(e,...t){var n=this.transaction(e,o?"readwrite":"readonly");let a=n.store;return r&&(a=a.index(t.shift())),(await Promise.all([a[i](...t),o&&n.done]))[0]},f.set(t,n),n):void 0}}d={...a=d,get:(e,t,n)=>z(e,t)||a.get(e,t,n),has:(e,t)=>!!z(e,t)||a.has(e,t)};var Y="@firebase/installations",g="0.6.12-canary.70e08cf95";let Q=1e4,Z="w:"+g,X="FIS_v2",ee="https://firebaseinstallations.googleapis.com/v1",te=36e5;var w,h,v,m;let b=new i("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 ne(e){return e instanceof o&&e.code.includes("request-failed")}function ae({projectId:e}){return ee+`/projects/${e}/installations`}function ie(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function re(e,t){var n=(await t.json()).error;return b.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function oe({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function se(e,{refreshToken:t}){var n=oe(e);return n.append("Authorization",(e=t,X+" "+e)),n}async function ce(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function de(t){return new Promise(e=>{setTimeout(e,t)})}let pe=/^[cdef][\w-]{21}$/,y="";function le(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return pe.test(t)?t:y}catch(e){return y}}function k(e){return e.appName+"!"+e.appId}let ue=new Map;function fe(e,t){var n=k(e),e=(ge(n,t),n),n=(()=>(!I&&"BroadcastChannel"in self&&((I=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{ge(e.data.key,e.data.fid)}),I))();n&&n.postMessage({key:e,fid:t}),0===ue.size&&I&&(I.close(),I=null)}function ge(e,t){var n=ue.get(e);if(n)for(var a of n)a(t)}let I=null;let we="firebase-installations-database",he=1,S="firebase-installations-store",ve=null;function T(){return ve=ve||t(we,he,{upgrade:(e,t)=>{0===t&&e.createObjectStore(S)}})}async function C(e,t){var n=k(e),a=(await T()).transaction(S,"readwrite"),i=a.objectStore(S),r=await i.get(n);return await i.put(t,n),await a.done,r&&r.fid===t.fid||fe(e,t.fid),t}async function me(e){var t=k(e),n=(await T()).transaction(S,"readwrite");await n.objectStore(S).delete(t),await n.done}async function _(e,t){var n=k(e),a=(await T()).transaction(S,"readwrite"),i=a.objectStore(S),r=await i.get(n),o=t(r);return void 0===o?await i.delete(n):await i.put(o,n),await a.done,!o||r&&r.fid===o.fid||fe(e,o.fid),o}async function D(n){let a;var e=await _(n.appConfig,e=>{var t=ye(e||{fid:le(),registrationStatus:0}),t=((e,t)=>{var n,a;return 0===t.registrationStatus?navigator.onLine?(n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},a=(async(t,n)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:n})=>{let a=ae(e);var i=oe(e),r=((r=t.getImmediate({optional:!0}))&&(r=await r.getHeartbeatsHeader())&&i.append("x-firebase-client",r),{fid:n,authVersion:X,appId:e.appId,sdkVersion:Z});let o={method:"POST",headers:i,body:JSON.stringify(r)};if((i=await ce(()=>fetch(a,o))).ok)return{fid:(r=await i.json()).fid||n,registrationStatus:2,refreshToken:r.refreshToken,authToken:ie(r.authToken)};throw await re("Create Installation",i)})(t,n);return C(t.appConfig,e)}catch(e){throw ne(e)&&409===e.customData.serverCode?await me(t.appConfig):await C(t.appConfig,{fid:n.fid,registrationStatus:0}),e}})(e,n),{installationEntry:n,registrationPromise:a}):(n=Promise.reject(b.create("app-offline")),{installationEntry:t,registrationPromise:n}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await be(e.appConfig);for(;1===t.registrationStatus;)await de(100),t=await be(e.appConfig);var n,a;return 0!==t.registrationStatus?t:({installationEntry:n,registrationPromise:a}=await D(e),a||n)})(e)}:{installationEntry:t}})(n,t);return a=t.registrationPromise,t.installationEntry});return e.fid===y?{installationEntry:await a}:{installationEntry:e,registrationPromise:a}}function be(e){return _(e,e=>{if(e)return ye(e);throw b.create("installation-not-found")})}function ye(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+Q<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function ke({appConfig:e,heartbeatServiceProvider:t},n){[i,r]=[e,n.fid];let a=ae(i)+`/${r}/authTokens:generate`;var i,r,o=se(e,n),s=t.getImmediate({optional:!0}),s=(s&&(s=await s.getHeartbeatsHeader())&&o.append("x-firebase-client",s),{installation:{sdkVersion:Z,appId:e.appId}});let c={method:"POST",headers:o,body:JSON.stringify(s)};o=await ce(()=>fetch(a,c));if(o.ok)return ie(await o.json());throw await re("Generate Auth Token",o)}async function Ie(a,i=!1){let r;var e=await _(a.appConfig,e=>{if(!Te(e))throw b.create("not-registered");var t,n=e.authToken;if(i||2!==(t=n).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+te})(t)){if(1===n.requestStatus)return r=(async(e,t)=>{let n=await Se(e.appConfig);for(;1===n.authToken.requestStatus;)await de(100),n=await Se(e.appConfig);var a=n.authToken;return 0===a.requestStatus?Ie(e,t):a})(a,i),e;if(navigator.onLine)return t=e,n={requestStatus:1,requestTime:Date.now()},n=Object.assign(Object.assign({},t),{authToken:n}),r=(async(t,n)=>{try{var e=await ke(t,n),a=Object.assign(Object.assign({},n),{authToken:e});return await C(t.appConfig,a),e}catch(e){var i;throw!ne(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i=Object.assign(Object.assign({},n),{authToken:{requestStatus:0}}),await C(t.appConfig,i)):await me(t.appConfig),e}})(a,n),n;throw b.create("app-offline")}return e});return r?await r:e.authToken}function Se(e){return _(e,e=>{var t,n;if(Te(e))return t=e.authToken,1===(n=t).requestStatus&&n.requestTime+Q<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw b.create("not-registered")})}function Te(e){return void 0!==e&&2===e.registrationStatus}async function Ce(e,t=!1){var n=e,a=(await(!(a=(await D(n)).registrationPromise)||!await a),await Ie(n,t));return a.token}function _e(e){return b.create("missing-app-config-values",{valueName:e})}let De="installations",je=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw _e("App Configuration");if(!e.name)throw _e("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw _e(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:sn._getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},Pe=e=>{var t=e.getProvider("app").getImmediate();let n=sn._getProvider(t,De).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:n,registrationPromise:a}=await D(t);return(a||Ie(t)).catch(console.error),n.fid})(n),getToken:e=>Ce(n,e)}};sn._registerComponent(new e(De,je,"PUBLIC")),sn._registerComponent(new e("installations-internal",Pe,"PRIVATE")),sn.registerVersion(Y,g),sn.registerVersion(Y,g,"esm2017");let Oe="/firebase-messaging-sw.js",Ee="/firebase-cloud-messaging-push-scope",Me="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",Ae="https://fcmregistrations.googleapis.com/v1",Ke="google.c.a.c_id",Ne="google.c.a.c_l",xe="google.c.a.ts",Be="google.c.a.e",Le=1e4;function j(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(m=w=w||{}).PUSH_RECEIVED="push-received",m.NOTIFICATION_CLICKED="notification-clicked";let Fe="fcm_token_details_db",Re=5,He="fcm_token_object_Store";async function qe(s){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(Fe))return null;let c=null;return(await t(Fe,Re,{upgrade:async(e,t,n,a)=>{var i,r,o;t<2||e.objectStoreNames.contains(He)&&(i=await(o=a.objectStore(He)).index("fcmSenderId").get(s),await o.clear(),i)&&(2===t?(o=i).auth&&o.p256dh&&o.endpoint&&(c={token:o.fcmToken,createTime:null!=(r=o.createTime)?r:Date.now(),subscriptionOptions:{auth:o.auth,p256dh:o.p256dh,endpoint:o.endpoint,swScope:o.swScope,vapidKey:"string"==typeof o.vapidKey?o.vapidKey:j(o.vapidKey)}}):3===t?(r=i,c={token:r.fcmToken,createTime:r.createTime,subscriptionOptions:{auth:j(r.auth),p256dh:j(r.p256dh),endpoint:r.endpoint,swScope:r.swScope,vapidKey:j(r.vapidKey)}}):4===t&&(o=i,c={token:o.fcmToken,createTime:o.createTime,subscriptionOptions:{auth:j(o.auth),p256dh:j(o.p256dh),endpoint:o.endpoint,swScope:o.swScope,vapidKey:j(o.vapidKey)}}))}})).close(),await u(Fe),await u("fcm_vapid_details_db"),await u("undefined"),(e=>{var t;if(e&&e.subscriptionOptions)return t=e.subscriptionOptions,"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length})(c)?c:null}let Ve="firebase-messaging-database",We=1,P="firebase-messaging-store",$e=null;function Ue(){return $e=$e||t(Ve,We,{upgrade:(e,t)=>{0===t&&e.createObjectStore(P)}})}async function Ge(e){var t=ze(e),t=await(await Ue()).transaction(P).objectStore(P).get(t);return t||((t=await qe(e.appConfig.senderId))?(await Je(e,t),t):void 0)}async function Je(e,t){var n=ze(e),a=(await Ue()).transaction(P,"readwrite");return await a.objectStore(P).put(t,n),await a.done,t}function ze({appConfig:e}){return e.appId}let O=new i("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function Ye(e,t){var n={method:"DELETE",headers:await Ze(e)};try{var a,i=await(await fetch(Qe(e.appConfig)+"/"+t,n)).json();if(i.error)throw a=i.error.message,O.create("token-unsubscribe-failed",{errorInfo:a})}catch(e){throw O.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function Qe({projectId:e}){return Ae+`/projects/${e}/registrations`}async function Ze({appConfig:e,installations:t}){var n=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":"FIS "+n})}function Xe({p256dh:e,auth:t,endpoint:n,vapidKey:a}){var i={web:{endpoint:n,auth:t,p256dh:e}};return a!==Me&&(i.web.applicationPubKey=a),i}let et=6048e5;async function tt(e){var t,n,a,i,r,o=await(async(e,t)=>{var n=await e.pushManager.getSubscription();return n||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(e=>{var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),n=atob(t),a=new Uint8Array(n.length);for(let i=0;i<n.length;++i)a[i]=n.charCodeAt(i);return a})(t)})})(e.swRegistration,e.vapidKey),o={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:o.endpoint,auth:j(o.getKey("auth")),p256dh:j(o.getKey("p256dh"))},s=await Ge(e.firebaseDependencies);if(s){if(t=s.subscriptionOptions,n=o.vapidKey===t.vapidKey,a=o.endpoint===t.endpoint,i=o.auth===t.auth,r=o.p256dh===t.p256dh,n&&a&&i&&r)return Date.now()>=s.createTime+et?(async(e,t)=>{try{var n=await(async(e,t)=>{var n=await Ze(e),a=Xe(t.subscriptionOptions),n={method:"PATCH",headers:n,body:JSON.stringify(a)};let i;try{var r=await fetch(Qe(e.appConfig)+"/"+t.token,n);i=await r.json()}catch(e){throw O.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw a=i.error.message,O.create("token-update-failed",{errorInfo:a});if(i.token)return i.token;throw O.create("token-update-no-token")})(e.firebaseDependencies,t),a=Object.assign(Object.assign({},t),{token:n,createTime:Date.now()});return await Je(e.firebaseDependencies,a),n}catch(e){throw e}})(e,{token:s.token,createTime:Date.now(),subscriptionOptions:o}):s.token;try{await Ye(e.firebaseDependencies,s.token)}catch(e){console.warn(e)}}return at(e.firebaseDependencies,o)}async function nt(e){var t,n=await Ge(e.firebaseDependencies),n=(n&&(await Ye(e.firebaseDependencies,n.token),n=ze(e.firebaseDependencies),await(t=(await Ue()).transaction(P,"readwrite")).objectStore(P).delete(n),await t.done),await e.swRegistration.pushManager.getSubscription());return!n||n.unsubscribe()}async function at(e,t){var n={token:await(async(e,t)=>{var n=await Ze(e),a=Xe(t),n={method:"POST",headers:n,body:JSON.stringify(a)};let i;try{var r=await fetch(Qe(e.appConfig),n);i=await r.json()}catch(e){throw O.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw a=i.error.message,O.create("token-subscribe-failed",{errorInfo:a});if(i.token)return i.token;throw O.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await Je(e,n),n.token}function it(e){var t,n,a,i,r={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return a=r,(n=e).notification&&(a.notification={},(t=n.notification.title)&&(a.notification.title=t),(t=n.notification.body)&&(a.notification.body=t),(t=n.notification.image)&&(a.notification.image=t),t=n.notification.icon)&&(a.notification.icon=t),n=r,(a=e).data&&(n.data=a.data),n=r,((a=e).fcmOptions||null!=(i=a.notification)&&i.click_action)&&(n.fcmOptions={},(i=null!=(i=null==(i=a.fcmOptions)?void 0:i.link)?i:null==(i=a.notification)?void 0:i.click_action)&&(n.fcmOptions.link=i),i=null==(i=a.fcmOptions)?void 0:i.analytics_label)&&(n.fcmOptions.analyticsLabel=i),r}var rt="AzSCbw63g1R0nCw85jG8",ot="Iaya3yLKwmgvh7cF0q4",st=[];for(let K=0;K<rt.length;K++)st.push(rt.charAt(K)),K<ot.length&&st.push(ot.charAt(K));function ct(e){return O.create("missing-app-config-values",{valueName:e})}st.join("");class dt{constructor(e,t,n){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var a=(e=>{if(!e||!e.options)throw ct("App Configuration Object");if(!e.name)throw ct("App Name");var t,n=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!n[t])throw ct(t);return{appName:e.name,projectId:n.projectId,apiKey:n.apiKey,appId:n.appId,senderId:n.messagingSenderId}})(e);this.firebaseDependencies={app:e,appConfig:a,installations:t,analyticsProvider:n}}_delete(){return Promise.resolve()}}async function pt(e){try{e.swRegistration=await navigator.serviceWorker.register(Oe,{scope:Ee}),e.swRegistration.update().catch(()=>{}),t=e.swRegistration,await new Promise((n,e)=>{let a=setTimeout(()=>e(new Error(`Service worker not registered after ${Le} ms`)),Le),i=t.installing||t.waiting;t.active?(clearTimeout(a),n()):i?i.onstatechange=e=>{var t;"activated"===(null==(t=e.target)?void 0:t.state)&&(i.onstatechange=null,clearTimeout(a),n())}:(clearTimeout(a),e(new Error("No incoming service worker found.")))})}catch(e){throw O.create("failed-service-worker-registration",{browserErrorMessage:null==e?void 0:e.message})}var t}async function lt(e,t){if(!navigator)throw O.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw O.create("permission-blocked");a=e,await!((n=null==t?void 0:t.vapidKey)?a.vapidKey=n:a.vapidKey||(a.vapidKey=Me));var n=e,a=null==t?void 0:t.serviceWorkerRegistration;if(a||n.swRegistration||await pt(n),a||!n.swRegistration){if(!(a instanceof ServiceWorkerRegistration))throw O.create("invalid-sw-registration");n.swRegistration=a}return await 0,tt(e)}async function ut(e,t,n){var a=(e=>{switch(e){case w.NOTIFICATION_CLICKED:return"notification_open";case w.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}})(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(a,{message_id:n[Ke],message_name:n[Ne],message_time:n[xe],message_device_time:Math.floor(Date.now()/1e3)})}async function ft(e,t){var n,a=t.data;a.isFirebaseMessaging&&(e.onMessageHandler&&a.messageType===w.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(it(a)):e.onMessageHandler.next(it(a))),"object"==typeof(t=n=a.data))&&t&&Ke in t&&"1"===n[Be]&&await ut(e,a.messageType,n)}let gt="@firebase/messaging",wt="0.12.16-canary.70e08cf95",ht=e=>{let t=new dt(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>ft(t,e)),t},vt=e=>{let t=e.getProvider("messaging").getImmediate();return{getToken:e=>lt(t,e)}};function mt(e){return(async e=>{if(navigator)return e.swRegistration||await pt(e),nt(e);throw O.create("only-available-in-window")})(e=r(e))}function bt(e,t){var n=e=r(e),e=t;if(navigator)return n.onMessageHandler=e,()=>{n.onMessageHandler=null};throw O.create("only-available-in-window")}sn._registerComponent(new e("messaging",ht,"PUBLIC")),sn._registerComponent(new e("messaging-internal",vt,"PRIVATE")),sn.registerVersion(gt,wt),sn.registerVersion(gt,wt,"esm2017");let yt="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",kt="https://fcmregistrations.googleapis.com/v1",It="FCM_MSG",St="google.c.a.c_id",Tt=3,Ct=1;function E(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(m=h=h||{})[m.DATA_MESSAGE=1]="DATA_MESSAGE",m[m.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION",(m=v=v||{}).PUSH_RECEIVED="push-received",m.NOTIFICATION_CLICKED="notification-clicked";let _t="fcm_token_details_db",Dt=5,jt="fcm_token_object_Store";async function Pt(s){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(_t))return null;let c=null;return(await t(_t,Dt,{upgrade:async(e,t,n,a)=>{var i,r,o;t<2||e.objectStoreNames.contains(jt)&&(i=await(o=a.objectStore(jt)).index("fcmSenderId").get(s),await o.clear(),i)&&(2===t?(o=i).auth&&o.p256dh&&o.endpoint&&(c={token:o.fcmToken,createTime:null!=(r=o.createTime)?r:Date.now(),subscriptionOptions:{auth:o.auth,p256dh:o.p256dh,endpoint:o.endpoint,swScope:o.swScope,vapidKey:"string"==typeof o.vapidKey?o.vapidKey:E(o.vapidKey)}}):3===t?(r=i,c={token:r.fcmToken,createTime:r.createTime,subscriptionOptions:{auth:E(r.auth),p256dh:E(r.p256dh),endpoint:r.endpoint,swScope:r.swScope,vapidKey:E(r.vapidKey)}}):4===t&&(o=i,c={token:o.fcmToken,createTime:o.createTime,subscriptionOptions:{auth:E(o.auth),p256dh:E(o.p256dh),endpoint:o.endpoint,swScope:o.swScope,vapidKey:E(o.vapidKey)}}))}})).close(),await u(_t),await u("fcm_vapid_details_db"),await u("undefined"),(e=>{var t;if(e&&e.subscriptionOptions)return t=e.subscriptionOptions,"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length})(c)?c:null}let Ot="firebase-messaging-database",Et=1,M="firebase-messaging-store",Mt=null;function At(){return Mt=Mt||t(Ot,Et,{upgrade:(e,t)=>{0===t&&e.createObjectStore(M)}})}async function Kt(e){var t=xt(e),t=await(await At()).transaction(M).objectStore(M).get(t);return t||((t=await Pt(e.appConfig.senderId))?(await Nt(e,t),t):void 0)}async function Nt(e,t){var n=xt(e),a=(await At()).transaction(M,"readwrite");return await a.objectStore(M).put(t,n),await a.done,t}function xt({appConfig:e}){return e.appId}let A=new i("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function Bt(e,t){var n={method:"DELETE",headers:await Ft(e)};try{var a,i=await(await fetch(Lt(e.appConfig)+"/"+t,n)).json();if(i.error)throw a=i.error.message,A.create("token-unsubscribe-failed",{errorInfo:a})}catch(e){throw A.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function Lt({projectId:e}){return kt+`/projects/${e}/registrations`}async function Ft({appConfig:e,installations:t}){var n=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":"FIS "+n})}function Rt({p256dh:e,auth:t,endpoint:n,vapidKey:a}){var i={web:{endpoint:n,auth:t,p256dh:e}};return a!==yt&&(i.web.applicationPubKey=a),i}let Ht=6048e5;async function qt(e){var t,n,a,i,r,o=await(async(e,t)=>{var n=await e.pushManager.getSubscription();return n||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(e=>{var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),n=atob(t),a=new Uint8Array(n.length);for(let i=0;i<n.length;++i)a[i]=n.charCodeAt(i);return a})(t)})})(e.swRegistration,e.vapidKey),o={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:o.endpoint,auth:E(o.getKey("auth")),p256dh:E(o.getKey("p256dh"))},s=await Kt(e.firebaseDependencies);if(s){if(t=s.subscriptionOptions,n=o.vapidKey===t.vapidKey,a=o.endpoint===t.endpoint,i=o.auth===t.auth,r=o.p256dh===t.p256dh,n&&a&&i&&r)return Date.now()>=s.createTime+Ht?(async(e,t)=>{try{var n=await(async(e,t)=>{var n=await Ft(e),a=Rt(t.subscriptionOptions),n={method:"PATCH",headers:n,body:JSON.stringify(a)};let i;try{var r=await fetch(Lt(e.appConfig)+"/"+t.token,n);i=await r.json()}catch(e){throw A.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw a=i.error.message,A.create("token-update-failed",{errorInfo:a});if(i.token)return i.token;throw A.create("token-update-no-token")})(e.firebaseDependencies,t),a=Object.assign(Object.assign({},t),{token:n,createTime:Date.now()});return await Nt(e.firebaseDependencies,a),n}catch(e){throw e}})(e,{token:s.token,createTime:Date.now(),subscriptionOptions:o}):s.token;try{await Bt(e.firebaseDependencies,s.token)}catch(e){console.warn(e)}}return Wt(e.firebaseDependencies,o)}async function Vt(e){var t,n=await Kt(e.firebaseDependencies),n=(n&&(await Bt(e.firebaseDependencies,n.token),n=xt(e.firebaseDependencies),await(t=(await At()).transaction(M,"readwrite")).objectStore(M).delete(n),await t.done),await e.swRegistration.pushManager.getSubscription());return!n||n.unsubscribe()}async function Wt(e,t){var n={token:await(async(e,t)=>{var n=await Ft(e),a=Rt(t),n={method:"POST",headers:n,body:JSON.stringify(a)};let i;try{var r=await fetch(Lt(e.appConfig),n);i=await r.json()}catch(e){throw A.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw a=i.error.message,A.create("token-subscribe-failed",{errorInfo:a});if(i.token)return i.token;throw A.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await Nt(e,n),n.token}var $t="AzSCbw63g1R0nCw85jG8",Ut="Iaya3yLKwmgvh7cF0q4",Gt=[];for(let N=0;N<$t.length;N++)Gt.push($t.charAt(N)),N<Ut.length&&Gt.push(Ut.charAt(N));async function Jt(e,t){var n=((e,t)=>{var n,a={};return e.from&&(a.project_number=e.from),e.fcmMessageId&&(a.message_id=e.fcmMessageId),a.instance_id=t,a.message_type=(e.notification?h.DISPLAY_NOTIFICATION:h.DATA_MESSAGE).toString(),a.sdk_platform=Tt.toString(),a.package_name=self.origin.replace(/(^\w+:|^)\/\//,""),e.collapse_key&&(a.collapse_key=e.collapse_key),a.event=Ct.toString(),null!=(n=e.fcmOptions)&&n.analytics_label&&(a.analytics_label=null==(n=e.fcmOptions)?void 0:n.analytics_label),a})(t,await e.firebaseDependencies.installations.getId()),a=n,t=t.productId,n={};n.event_time_ms=Math.floor(Date.now()).toString(),n.source_extension_json_proto3=JSON.stringify({messaging_client_event:a}),t&&(n.compliance_data=(e=>({privacy_context:{prequest:{origin_associated_product_id:e}}}))(t)),e.logEvents.push(n)}async function zt(e,t){var n=(({data:e})=>{if(!e)return null;try{return e.json()}catch(e){return null}})(e);if(n){t.deliveryMetricsExportedToBigQueryEnabled&&await Jt(t,n);var a,i,r,o=await Qt();if(o.some(e=>"visible"===e.visibilityState&&!e.url.startsWith("chrome-extension://"))){var s,e=o,c=n;c.isFirebaseMessaging=!0,c.messageType=v.PUSH_RECEIVED;for(s of e)s.postMessage(c)}else n.notification&&await(e=>{var t=e.actions,n=Notification.maxActions;return t&&n&&t.length>n&&console.warn(`This browser only supports ${n} actions. The remaining actions will not be displayed.`),self.registration.showNotification(null!=(t=e.title)?t:"",e)})((e=n,(o=Object.assign({},e.notification)).data={[It]:e},o)),t&&t.onBackgroundMessageHandler&&(o={from:(e=n).from,collapseKey:e.collapse_key,messageId:e.fcmMessageId},i=o,(a=e).notification&&(i.notification={},(n=a.notification.title)&&(i.notification.title=n),(n=a.notification.body)&&(i.notification.body=n),(n=a.notification.image)&&(i.notification.image=n),n=a.notification.icon)&&(i.notification.icon=n),a=o,(i=e).data&&(a.data=i.data),a=o,((i=e).fcmOptions||null!=(r=i.notification)&&r.click_action)&&(a.fcmOptions={},(r=null!=(r=null==(r=i.fcmOptions)?void 0:r.link)?r:null==(r=i.notification)?void 0:r.click_action)&&(a.fcmOptions.link=r),r=null==(r=i.fcmOptions)?void 0:r.analytics_label)&&(a.fcmOptions.analyticsLabel=r),n=o,"function"==typeof t.onBackgroundMessageHandler?await t.onBackgroundMessageHandler(n):t.onBackgroundMessageHandler.next(n))}}async function Yt(e){var t=null==(t=null==(t=e.notification)?void 0:t.data)?void 0:t[It];if(t&&!e.action){e.stopImmediatePropagation(),e.notification.close();var n=(e=>{var t=null!=(t=null==(t=e.fcmOptions)?void 0:t.link)?t:null==(t=e.notification)?void 0:t.click_action;return t||((e=>"object"==typeof e&&e&&St in e)(e.data)?self.location.origin:null)})(t);if(n){var a,i=new URL(n,self.location.href),r=new URL(self.location.origin);if(i.host===r.host){let e=await(async e=>{var t;for(t of await Qt()){var n=new URL(t.url,self.location.href);if(e.host===n.host)return t}return null})(i);if(e?e=await e.focus():(e=await self.clients.openWindow(n),a=3e3,await new Promise(e=>{setTimeout(e,a)})),e)return t.messageType=v.NOTIFICATION_CLICKED,t.isFirebaseMessaging=!0,e.postMessage(t)}}}}function Qt(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function Zt(e){return A.create("missing-app-config-values",{valueName:e})}Gt.join("");class Xt{constructor(e,t,n){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var a=(e=>{if(!e||!e.options)throw Zt("App Configuration Object");if(!e.name)throw Zt("App Name");var t,n=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!n[t])throw Zt(t);return{appName:e.name,projectId:n.projectId,apiKey:n.apiKey,appId:n.appId,senderId:n.messagingSenderId}})(e);this.firebaseDependencies={app:e,appConfig:a,installations:t,analyticsProvider:n}}_delete(){return Promise.resolve()}}let en=e=>{let t=new Xt(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return self.addEventListener("push",e=>{e.waitUntil(zt(e,t))}),self.addEventListener("pushsubscriptionchange",e=>{e.waitUntil((async(e,t)=>{var n;(n=e.newSubscription)?(n=await Kt(t.firebaseDependencies),await Vt(t),t.vapidKey=null!=(n=null==(n=null==n?void 0:n.subscriptionOptions)?void 0:n.vapidKey)?n:yt,await qt(t)):await Vt(t)})(e,t))}),self.addEventListener("notificationclick",e=>{e.waitUntil(Yt(e))}),t};function tn(e,t){var n=e=r(e),e=t;if(void 0!==self.document)throw A.create("only-available-in-sw");return n.onBackgroundMessageHandler=e,()=>{n.onBackgroundMessageHandler=null}}sn._registerComponent(new e("messaging-sw",en,"PUBLIC"));class nn{constructor(e,t){this.app=e,this._delegate=t,this.app=e,this._delegate=t}async getToken(e){return(async(e,t)=>lt(e=r(e),t))(this._delegate,e)}async deleteToken(){return mt(this._delegate)}onMessage(e){return bt(this._delegate,e)}onBackgroundMessage(e){return tn(this._delegate,e)}}let an=e=>self&&"ServiceWorkerGlobalScope"in self?new nn(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging-sw").getImmediate()):new nn(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging").getImmediate()),rn={isSupported:function(){return self&&"ServiceWorkerGlobalScope"in self?L()&&"PushManager"in self&&"Notification"in self&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey"):"undefined"!=typeof window&&L()&&!("undefined"==typeof navigator||!navigator.cookieEnabled)&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}};B.default.INTERNAL.registerComponent(new e("messaging-compat",an,"PUBLIC").setServiceProps(rn)),B.default.registerVersion("@firebase/messaging-compat","0.2.16-canary.70e08cf95")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-messaging-compat.js - be sure to load firebase-app.js first.")}});
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(on,sn){try{!(function(){function x(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a,B=x(on);function L(){try{return"object"==typeof indexedDB}catch(e){return!1}}class o extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,o.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,i.prototype.create)}}class i{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){var a,n=t[0]||{},i=this.service+"/"+e,r=this.errors[e],r=r?(a=n,r.replace(F,(e,t)=>{var n=a[t];return null!=n?String(n):`<${t}?>`})):"Error",r=this.serviceName+`: ${r} (${i}).`;return new o(i,r,n)}}let F=/\{\$([^}]+)}/g;function r(e){return e&&e._delegate?e._delegate:e}class e{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}let R=(t,e)=>e.some(e=>t instanceof e),H,q;let V=new WeakMap,s=new WeakMap,W=new WeakMap,n=new WeakMap,c=new WeakMap;let d={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||W.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return p(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function $(a){return a!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(q=q||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(a)?function(...e){return a.apply(l(this),e),p(V.get(this))}:function(...e){return p(a.apply(l(this),e))}:function(e,...t){var n=a.call(l(this),e,...t);return W.set(n,e.sort?e.sort():[e]),p(n)}}function U(e){var r,t;return"function"==typeof e?$(e):(e instanceof IDBTransaction&&(r=e,s.has(r)||(t=new Promise((e,t)=>{let n=()=>{r.removeEventListener("complete",a),r.removeEventListener("error",i),r.removeEventListener("abort",i)},a=()=>{e(),n()},i=()=>{t(r.error||new DOMException("AbortError","AbortError")),n()};r.addEventListener("complete",a),r.addEventListener("error",i),r.addEventListener("abort",i)}),s.set(r,t))),R(e,H=H||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,d):e)}function p(e){var r,t;return e instanceof IDBRequest?(r=e,(t=new Promise((e,t)=>{let n=()=>{r.removeEventListener("success",a),r.removeEventListener("error",i)},a=()=>{e(p(r.result)),n()},i=()=>{t(r.error),n()};r.addEventListener("success",a),r.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&V.set(e,r)}).catch(()=>{}),c.set(t,r),t):n.has(e)?n.get(e):((t=U(e))!==e&&(n.set(e,t),c.set(t,e)),t)}let l=e=>c.get(e);function t(e,t,{blocked:n,upgrade:a,blocking:i,terminated:r}={}){let o=indexedDB.open(e,t);var s=p(o);return a&&o.addEventListener("upgradeneeded",e=>{a(p(o.result),e.oldVersion,e.newVersion,p(o.transaction),e)}),n&&o.addEventListener("blocked",e=>n(e.oldVersion,e.newVersion,e)),s.then(e=>{r&&e.addEventListener("close",()=>r()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s}function u(e,{blocked:t}={}){var n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",e=>t(e.oldVersion,e)),p(n).then(()=>{})}let G=["get","getKey","getAll","getAllKeys","count"],J=["put","add","delete","clear"],f=new Map;function z(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(f.get(t))return f.get(t);let i=t.replace(/FromIndex$/,""),r=t!==i,o=J.includes(i);var n;return i in(r?IDBIndex:IDBObjectStore).prototype&&(o||G.includes(i))?(n=async function(e,...t){var n=this.transaction(e,o?"readwrite":"readonly");let a=n.store;return r&&(a=a.index(t.shift())),(await Promise.all([a[i](...t),o&&n.done]))[0]},f.set(t,n),n):void 0}}d={...a=d,get:(e,t,n)=>z(e,t)||a.get(e,t,n),has:(e,t)=>!!z(e,t)||a.has(e,t)};var Y="@firebase/installations",g="0.6.12-canary.84dfeca39";let Q=1e4,Z="w:"+g,X="FIS_v2",ee="https://firebaseinstallations.googleapis.com/v1",te=36e5;var w,h,v,m;let b=new i("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 ne(e){return e instanceof o&&e.code.includes("request-failed")}function ae({projectId:e}){return ee+`/projects/${e}/installations`}function ie(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function re(e,t){var n=(await t.json()).error;return b.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function oe({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function se(e,{refreshToken:t}){var n=oe(e);return n.append("Authorization",(e=t,X+" "+e)),n}async function ce(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function de(t){return new Promise(e=>{setTimeout(e,t)})}let pe=/^[cdef][\w-]{21}$/,y="";function le(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return pe.test(t)?t:y}catch(e){return y}}function k(e){return e.appName+"!"+e.appId}let ue=new Map;function fe(e,t){var n=k(e),e=(ge(n,t),n),n=(()=>(!I&&"BroadcastChannel"in self&&((I=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{ge(e.data.key,e.data.fid)}),I))();n&&n.postMessage({key:e,fid:t}),0===ue.size&&I&&(I.close(),I=null)}function ge(e,t){var n=ue.get(e);if(n)for(var a of n)a(t)}let I=null;let we="firebase-installations-database",he=1,S="firebase-installations-store",ve=null;function T(){return ve=ve||t(we,he,{upgrade:(e,t)=>{0===t&&e.createObjectStore(S)}})}async function C(e,t){var n=k(e),a=(await T()).transaction(S,"readwrite"),i=a.objectStore(S),r=await i.get(n);return await i.put(t,n),await a.done,r&&r.fid===t.fid||fe(e,t.fid),t}async function me(e){var t=k(e),n=(await T()).transaction(S,"readwrite");await n.objectStore(S).delete(t),await n.done}async function _(e,t){var n=k(e),a=(await T()).transaction(S,"readwrite"),i=a.objectStore(S),r=await i.get(n),o=t(r);return void 0===o?await i.delete(n):await i.put(o,n),await a.done,!o||r&&r.fid===o.fid||fe(e,o.fid),o}async function D(n){let a;var e=await _(n.appConfig,e=>{var t=ye(e||{fid:le(),registrationStatus:0}),t=((e,t)=>{var n,a;return 0===t.registrationStatus?navigator.onLine?(n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},a=(async(t,n)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:n})=>{let a=ae(e);var i=oe(e),r=((r=t.getImmediate({optional:!0}))&&(r=await r.getHeartbeatsHeader())&&i.append("x-firebase-client",r),{fid:n,authVersion:X,appId:e.appId,sdkVersion:Z});let o={method:"POST",headers:i,body:JSON.stringify(r)};if((i=await ce(()=>fetch(a,o))).ok)return{fid:(r=await i.json()).fid||n,registrationStatus:2,refreshToken:r.refreshToken,authToken:ie(r.authToken)};throw await re("Create Installation",i)})(t,n);return C(t.appConfig,e)}catch(e){throw ne(e)&&409===e.customData.serverCode?await me(t.appConfig):await C(t.appConfig,{fid:n.fid,registrationStatus:0}),e}})(e,n),{installationEntry:n,registrationPromise:a}):(n=Promise.reject(b.create("app-offline")),{installationEntry:t,registrationPromise:n}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await be(e.appConfig);for(;1===t.registrationStatus;)await de(100),t=await be(e.appConfig);var n,a;return 0!==t.registrationStatus?t:({installationEntry:n,registrationPromise:a}=await D(e),a||n)})(e)}:{installationEntry:t}})(n,t);return a=t.registrationPromise,t.installationEntry});return e.fid===y?{installationEntry:await a}:{installationEntry:e,registrationPromise:a}}function be(e){return _(e,e=>{if(e)return ye(e);throw b.create("installation-not-found")})}function ye(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+Q<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function ke({appConfig:e,heartbeatServiceProvider:t},n){[i,r]=[e,n.fid];let a=ae(i)+`/${r}/authTokens:generate`;var i,r,o=se(e,n),s=t.getImmediate({optional:!0}),s=(s&&(s=await s.getHeartbeatsHeader())&&o.append("x-firebase-client",s),{installation:{sdkVersion:Z,appId:e.appId}});let c={method:"POST",headers:o,body:JSON.stringify(s)};o=await ce(()=>fetch(a,c));if(o.ok)return ie(await o.json());throw await re("Generate Auth Token",o)}async function Ie(a,i=!1){let r;var e=await _(a.appConfig,e=>{if(!Te(e))throw b.create("not-registered");var t,n=e.authToken;if(i||2!==(t=n).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+te})(t)){if(1===n.requestStatus)return r=(async(e,t)=>{let n=await Se(e.appConfig);for(;1===n.authToken.requestStatus;)await de(100),n=await Se(e.appConfig);var a=n.authToken;return 0===a.requestStatus?Ie(e,t):a})(a,i),e;if(navigator.onLine)return t=e,n={requestStatus:1,requestTime:Date.now()},n=Object.assign(Object.assign({},t),{authToken:n}),r=(async(t,n)=>{try{var e=await ke(t,n),a=Object.assign(Object.assign({},n),{authToken:e});return await C(t.appConfig,a),e}catch(e){var i;throw!ne(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i=Object.assign(Object.assign({},n),{authToken:{requestStatus:0}}),await C(t.appConfig,i)):await me(t.appConfig),e}})(a,n),n;throw b.create("app-offline")}return e});return r?await r:e.authToken}function Se(e){return _(e,e=>{var t,n;if(Te(e))return t=e.authToken,1===(n=t).requestStatus&&n.requestTime+Q<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw b.create("not-registered")})}function Te(e){return void 0!==e&&2===e.registrationStatus}async function Ce(e,t=!1){var n=e,a=(await(!(a=(await D(n)).registrationPromise)||!await a),await Ie(n,t));return a.token}function _e(e){return b.create("missing-app-config-values",{valueName:e})}let De="installations",je=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw _e("App Configuration");if(!e.name)throw _e("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw _e(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:sn._getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},Pe=e=>{var t=e.getProvider("app").getImmediate();let n=sn._getProvider(t,De).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:n,registrationPromise:a}=await D(t);return(a||Ie(t)).catch(console.error),n.fid})(n),getToken:e=>Ce(n,e)}};sn._registerComponent(new e(De,je,"PUBLIC")),sn._registerComponent(new e("installations-internal",Pe,"PRIVATE")),sn.registerVersion(Y,g),sn.registerVersion(Y,g,"esm2017");let Oe="/firebase-messaging-sw.js",Ee="/firebase-cloud-messaging-push-scope",Me="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",Ae="https://fcmregistrations.googleapis.com/v1",Ke="google.c.a.c_id",Ne="google.c.a.c_l",xe="google.c.a.ts",Be="google.c.a.e",Le=1e4;function j(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(m=w=w||{}).PUSH_RECEIVED="push-received",m.NOTIFICATION_CLICKED="notification-clicked";let Fe="fcm_token_details_db",Re=5,He="fcm_token_object_Store";async function qe(s){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(Fe))return null;let c=null;return(await t(Fe,Re,{upgrade:async(e,t,n,a)=>{var i,r,o;t<2||e.objectStoreNames.contains(He)&&(i=await(o=a.objectStore(He)).index("fcmSenderId").get(s),await o.clear(),i)&&(2===t?(o=i).auth&&o.p256dh&&o.endpoint&&(c={token:o.fcmToken,createTime:null!=(r=o.createTime)?r:Date.now(),subscriptionOptions:{auth:o.auth,p256dh:o.p256dh,endpoint:o.endpoint,swScope:o.swScope,vapidKey:"string"==typeof o.vapidKey?o.vapidKey:j(o.vapidKey)}}):3===t?(r=i,c={token:r.fcmToken,createTime:r.createTime,subscriptionOptions:{auth:j(r.auth),p256dh:j(r.p256dh),endpoint:r.endpoint,swScope:r.swScope,vapidKey:j(r.vapidKey)}}):4===t&&(o=i,c={token:o.fcmToken,createTime:o.createTime,subscriptionOptions:{auth:j(o.auth),p256dh:j(o.p256dh),endpoint:o.endpoint,swScope:o.swScope,vapidKey:j(o.vapidKey)}}))}})).close(),await u(Fe),await u("fcm_vapid_details_db"),await u("undefined"),(e=>{var t;if(e&&e.subscriptionOptions)return t=e.subscriptionOptions,"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length})(c)?c:null}let Ve="firebase-messaging-database",We=1,P="firebase-messaging-store",$e=null;function Ue(){return $e=$e||t(Ve,We,{upgrade:(e,t)=>{0===t&&e.createObjectStore(P)}})}async function Ge(e){var t=ze(e),t=await(await Ue()).transaction(P).objectStore(P).get(t);return t||((t=await qe(e.appConfig.senderId))?(await Je(e,t),t):void 0)}async function Je(e,t){var n=ze(e),a=(await Ue()).transaction(P,"readwrite");return await a.objectStore(P).put(t,n),await a.done,t}function ze({appConfig:e}){return e.appId}let O=new i("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function Ye(e,t){var n={method:"DELETE",headers:await Ze(e)};try{var a,i=await(await fetch(Qe(e.appConfig)+"/"+t,n)).json();if(i.error)throw a=i.error.message,O.create("token-unsubscribe-failed",{errorInfo:a})}catch(e){throw O.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function Qe({projectId:e}){return Ae+`/projects/${e}/registrations`}async function Ze({appConfig:e,installations:t}){var n=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":"FIS "+n})}function Xe({p256dh:e,auth:t,endpoint:n,vapidKey:a}){var i={web:{endpoint:n,auth:t,p256dh:e}};return a!==Me&&(i.web.applicationPubKey=a),i}let et=6048e5;async function tt(e){var t,n,a,i,r,o=await(async(e,t)=>{var n=await e.pushManager.getSubscription();return n||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(e=>{var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),n=atob(t),a=new Uint8Array(n.length);for(let i=0;i<n.length;++i)a[i]=n.charCodeAt(i);return a})(t)})})(e.swRegistration,e.vapidKey),o={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:o.endpoint,auth:j(o.getKey("auth")),p256dh:j(o.getKey("p256dh"))},s=await Ge(e.firebaseDependencies);if(s){if(t=s.subscriptionOptions,n=o.vapidKey===t.vapidKey,a=o.endpoint===t.endpoint,i=o.auth===t.auth,r=o.p256dh===t.p256dh,n&&a&&i&&r)return Date.now()>=s.createTime+et?(async(e,t)=>{try{var n=await(async(e,t)=>{var n=await Ze(e),a=Xe(t.subscriptionOptions),n={method:"PATCH",headers:n,body:JSON.stringify(a)};let i;try{var r=await fetch(Qe(e.appConfig)+"/"+t.token,n);i=await r.json()}catch(e){throw O.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw a=i.error.message,O.create("token-update-failed",{errorInfo:a});if(i.token)return i.token;throw O.create("token-update-no-token")})(e.firebaseDependencies,t),a=Object.assign(Object.assign({},t),{token:n,createTime:Date.now()});return await Je(e.firebaseDependencies,a),n}catch(e){throw e}})(e,{token:s.token,createTime:Date.now(),subscriptionOptions:o}):s.token;try{await Ye(e.firebaseDependencies,s.token)}catch(e){console.warn(e)}}return at(e.firebaseDependencies,o)}async function nt(e){var t,n=await Ge(e.firebaseDependencies),n=(n&&(await Ye(e.firebaseDependencies,n.token),n=ze(e.firebaseDependencies),await(t=(await Ue()).transaction(P,"readwrite")).objectStore(P).delete(n),await t.done),await e.swRegistration.pushManager.getSubscription());return!n||n.unsubscribe()}async function at(e,t){var n={token:await(async(e,t)=>{var n=await Ze(e),a=Xe(t),n={method:"POST",headers:n,body:JSON.stringify(a)};let i;try{var r=await fetch(Qe(e.appConfig),n);i=await r.json()}catch(e){throw O.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw a=i.error.message,O.create("token-subscribe-failed",{errorInfo:a});if(i.token)return i.token;throw O.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await Je(e,n),n.token}function it(e){var t,n,a,i,r={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return a=r,(n=e).notification&&(a.notification={},(t=n.notification.title)&&(a.notification.title=t),(t=n.notification.body)&&(a.notification.body=t),(t=n.notification.image)&&(a.notification.image=t),t=n.notification.icon)&&(a.notification.icon=t),n=r,(a=e).data&&(n.data=a.data),n=r,((a=e).fcmOptions||null!=(i=a.notification)&&i.click_action)&&(n.fcmOptions={},(i=null!=(i=null==(i=a.fcmOptions)?void 0:i.link)?i:null==(i=a.notification)?void 0:i.click_action)&&(n.fcmOptions.link=i),i=null==(i=a.fcmOptions)?void 0:i.analytics_label)&&(n.fcmOptions.analyticsLabel=i),r}var rt="AzSCbw63g1R0nCw85jG8",ot="Iaya3yLKwmgvh7cF0q4",st=[];for(let K=0;K<rt.length;K++)st.push(rt.charAt(K)),K<ot.length&&st.push(ot.charAt(K));function ct(e){return O.create("missing-app-config-values",{valueName:e})}st.join("");class dt{constructor(e,t,n){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var a=(e=>{if(!e||!e.options)throw ct("App Configuration Object");if(!e.name)throw ct("App Name");var t,n=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!n[t])throw ct(t);return{appName:e.name,projectId:n.projectId,apiKey:n.apiKey,appId:n.appId,senderId:n.messagingSenderId}})(e);this.firebaseDependencies={app:e,appConfig:a,installations:t,analyticsProvider:n}}_delete(){return Promise.resolve()}}async function pt(e){try{e.swRegistration=await navigator.serviceWorker.register(Oe,{scope:Ee}),e.swRegistration.update().catch(()=>{}),t=e.swRegistration,await new Promise((n,e)=>{let a=setTimeout(()=>e(new Error(`Service worker not registered after ${Le} ms`)),Le),i=t.installing||t.waiting;t.active?(clearTimeout(a),n()):i?i.onstatechange=e=>{var t;"activated"===(null==(t=e.target)?void 0:t.state)&&(i.onstatechange=null,clearTimeout(a),n())}:(clearTimeout(a),e(new Error("No incoming service worker found.")))})}catch(e){throw O.create("failed-service-worker-registration",{browserErrorMessage:null==e?void 0:e.message})}var t}async function lt(e,t){if(!navigator)throw O.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw O.create("permission-blocked");a=e,await!((n=null==t?void 0:t.vapidKey)?a.vapidKey=n:a.vapidKey||(a.vapidKey=Me));var n=e,a=null==t?void 0:t.serviceWorkerRegistration;if(a||n.swRegistration||await pt(n),a||!n.swRegistration){if(!(a instanceof ServiceWorkerRegistration))throw O.create("invalid-sw-registration");n.swRegistration=a}return await 0,tt(e)}async function ut(e,t,n){var a=(e=>{switch(e){case w.NOTIFICATION_CLICKED:return"notification_open";case w.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}})(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(a,{message_id:n[Ke],message_name:n[Ne],message_time:n[xe],message_device_time:Math.floor(Date.now()/1e3)})}async function ft(e,t){var n,a=t.data;a.isFirebaseMessaging&&(e.onMessageHandler&&a.messageType===w.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(it(a)):e.onMessageHandler.next(it(a))),"object"==typeof(t=n=a.data))&&t&&Ke in t&&"1"===n[Be]&&await ut(e,a.messageType,n)}let gt="@firebase/messaging",wt="0.12.16-canary.84dfeca39",ht=e=>{let t=new dt(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>ft(t,e)),t},vt=e=>{let t=e.getProvider("messaging").getImmediate();return{getToken:e=>lt(t,e)}};function mt(e){return(async e=>{if(navigator)return e.swRegistration||await pt(e),nt(e);throw O.create("only-available-in-window")})(e=r(e))}function bt(e,t){var n=e=r(e),e=t;if(navigator)return n.onMessageHandler=e,()=>{n.onMessageHandler=null};throw O.create("only-available-in-window")}sn._registerComponent(new e("messaging",ht,"PUBLIC")),sn._registerComponent(new e("messaging-internal",vt,"PRIVATE")),sn.registerVersion(gt,wt),sn.registerVersion(gt,wt,"esm2017");let yt="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",kt="https://fcmregistrations.googleapis.com/v1",It="FCM_MSG",St="google.c.a.c_id",Tt=3,Ct=1;function E(e){var t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(m=h=h||{})[m.DATA_MESSAGE=1]="DATA_MESSAGE",m[m.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION",(m=v=v||{}).PUSH_RECEIVED="push-received",m.NOTIFICATION_CLICKED="notification-clicked";let _t="fcm_token_details_db",Dt=5,jt="fcm_token_object_Store";async function Pt(s){if("databases"in indexedDB&&!(await indexedDB.databases()).map(e=>e.name).includes(_t))return null;let c=null;return(await t(_t,Dt,{upgrade:async(e,t,n,a)=>{var i,r,o;t<2||e.objectStoreNames.contains(jt)&&(i=await(o=a.objectStore(jt)).index("fcmSenderId").get(s),await o.clear(),i)&&(2===t?(o=i).auth&&o.p256dh&&o.endpoint&&(c={token:o.fcmToken,createTime:null!=(r=o.createTime)?r:Date.now(),subscriptionOptions:{auth:o.auth,p256dh:o.p256dh,endpoint:o.endpoint,swScope:o.swScope,vapidKey:"string"==typeof o.vapidKey?o.vapidKey:E(o.vapidKey)}}):3===t?(r=i,c={token:r.fcmToken,createTime:r.createTime,subscriptionOptions:{auth:E(r.auth),p256dh:E(r.p256dh),endpoint:r.endpoint,swScope:r.swScope,vapidKey:E(r.vapidKey)}}):4===t&&(o=i,c={token:o.fcmToken,createTime:o.createTime,subscriptionOptions:{auth:E(o.auth),p256dh:E(o.p256dh),endpoint:o.endpoint,swScope:o.swScope,vapidKey:E(o.vapidKey)}}))}})).close(),await u(_t),await u("fcm_vapid_details_db"),await u("undefined"),(e=>{var t;if(e&&e.subscriptionOptions)return t=e.subscriptionOptions,"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length})(c)?c:null}let Ot="firebase-messaging-database",Et=1,M="firebase-messaging-store",Mt=null;function At(){return Mt=Mt||t(Ot,Et,{upgrade:(e,t)=>{0===t&&e.createObjectStore(M)}})}async function Kt(e){var t=xt(e),t=await(await At()).transaction(M).objectStore(M).get(t);return t||((t=await Pt(e.appConfig.senderId))?(await Nt(e,t),t):void 0)}async function Nt(e,t){var n=xt(e),a=(await At()).transaction(M,"readwrite");return await a.objectStore(M).put(t,n),await a.done,t}function xt({appConfig:e}){return e.appId}let A=new i("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function Bt(e,t){var n={method:"DELETE",headers:await Ft(e)};try{var a,i=await(await fetch(Lt(e.appConfig)+"/"+t,n)).json();if(i.error)throw a=i.error.message,A.create("token-unsubscribe-failed",{errorInfo:a})}catch(e){throw A.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function Lt({projectId:e}){return kt+`/projects/${e}/registrations`}async function Ft({appConfig:e,installations:t}){var n=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":"FIS "+n})}function Rt({p256dh:e,auth:t,endpoint:n,vapidKey:a}){var i={web:{endpoint:n,auth:t,p256dh:e}};return a!==yt&&(i.web.applicationPubKey=a),i}let Ht=6048e5;async function qt(e){var t,n,a,i,r,o=await(async(e,t)=>{var n=await e.pushManager.getSubscription();return n||e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(e=>{var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),n=atob(t),a=new Uint8Array(n.length);for(let i=0;i<n.length;++i)a[i]=n.charCodeAt(i);return a})(t)})})(e.swRegistration,e.vapidKey),o={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:o.endpoint,auth:E(o.getKey("auth")),p256dh:E(o.getKey("p256dh"))},s=await Kt(e.firebaseDependencies);if(s){if(t=s.subscriptionOptions,n=o.vapidKey===t.vapidKey,a=o.endpoint===t.endpoint,i=o.auth===t.auth,r=o.p256dh===t.p256dh,n&&a&&i&&r)return Date.now()>=s.createTime+Ht?(async(e,t)=>{try{var n=await(async(e,t)=>{var n=await Ft(e),a=Rt(t.subscriptionOptions),n={method:"PATCH",headers:n,body:JSON.stringify(a)};let i;try{var r=await fetch(Lt(e.appConfig)+"/"+t.token,n);i=await r.json()}catch(e){throw A.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw a=i.error.message,A.create("token-update-failed",{errorInfo:a});if(i.token)return i.token;throw A.create("token-update-no-token")})(e.firebaseDependencies,t),a=Object.assign(Object.assign({},t),{token:n,createTime:Date.now()});return await Nt(e.firebaseDependencies,a),n}catch(e){throw e}})(e,{token:s.token,createTime:Date.now(),subscriptionOptions:o}):s.token;try{await Bt(e.firebaseDependencies,s.token)}catch(e){console.warn(e)}}return Wt(e.firebaseDependencies,o)}async function Vt(e){var t,n=await Kt(e.firebaseDependencies),n=(n&&(await Bt(e.firebaseDependencies,n.token),n=xt(e.firebaseDependencies),await(t=(await At()).transaction(M,"readwrite")).objectStore(M).delete(n),await t.done),await e.swRegistration.pushManager.getSubscription());return!n||n.unsubscribe()}async function Wt(e,t){var n={token:await(async(e,t)=>{var n=await Ft(e),a=Rt(t),n={method:"POST",headers:n,body:JSON.stringify(a)};let i;try{var r=await fetch(Lt(e.appConfig),n);i=await r.json()}catch(e){throw A.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error)throw a=i.error.message,A.create("token-subscribe-failed",{errorInfo:a});if(i.token)return i.token;throw A.create("token-subscribe-no-token")})(e,t),createTime:Date.now(),subscriptionOptions:t};return await Nt(e,n),n.token}var $t="AzSCbw63g1R0nCw85jG8",Ut="Iaya3yLKwmgvh7cF0q4",Gt=[];for(let N=0;N<$t.length;N++)Gt.push($t.charAt(N)),N<Ut.length&&Gt.push(Ut.charAt(N));async function Jt(e,t){var n=((e,t)=>{var n,a={};return e.from&&(a.project_number=e.from),e.fcmMessageId&&(a.message_id=e.fcmMessageId),a.instance_id=t,a.message_type=(e.notification?h.DISPLAY_NOTIFICATION:h.DATA_MESSAGE).toString(),a.sdk_platform=Tt.toString(),a.package_name=self.origin.replace(/(^\w+:|^)\/\//,""),e.collapse_key&&(a.collapse_key=e.collapse_key),a.event=Ct.toString(),null!=(n=e.fcmOptions)&&n.analytics_label&&(a.analytics_label=null==(n=e.fcmOptions)?void 0:n.analytics_label),a})(t,await e.firebaseDependencies.installations.getId()),a=n,t=t.productId,n={};n.event_time_ms=Math.floor(Date.now()).toString(),n.source_extension_json_proto3=JSON.stringify({messaging_client_event:a}),t&&(n.compliance_data=(e=>({privacy_context:{prequest:{origin_associated_product_id:e}}}))(t)),e.logEvents.push(n)}async function zt(e,t){var n=(({data:e})=>{if(!e)return null;try{return e.json()}catch(e){return null}})(e);if(n){t.deliveryMetricsExportedToBigQueryEnabled&&await Jt(t,n);var a,i,r,o=await Qt();if(o.some(e=>"visible"===e.visibilityState&&!e.url.startsWith("chrome-extension://"))){var s,e=o,c=n;c.isFirebaseMessaging=!0,c.messageType=v.PUSH_RECEIVED;for(s of e)s.postMessage(c)}else n.notification&&await(e=>{var t=e.actions,n=Notification.maxActions;return t&&n&&t.length>n&&console.warn(`This browser only supports ${n} actions. The remaining actions will not be displayed.`),self.registration.showNotification(null!=(t=e.title)?t:"",e)})((e=n,(o=Object.assign({},e.notification)).data={[It]:e},o)),t&&t.onBackgroundMessageHandler&&(o={from:(e=n).from,collapseKey:e.collapse_key,messageId:e.fcmMessageId},i=o,(a=e).notification&&(i.notification={},(n=a.notification.title)&&(i.notification.title=n),(n=a.notification.body)&&(i.notification.body=n),(n=a.notification.image)&&(i.notification.image=n),n=a.notification.icon)&&(i.notification.icon=n),a=o,(i=e).data&&(a.data=i.data),a=o,((i=e).fcmOptions||null!=(r=i.notification)&&r.click_action)&&(a.fcmOptions={},(r=null!=(r=null==(r=i.fcmOptions)?void 0:r.link)?r:null==(r=i.notification)?void 0:r.click_action)&&(a.fcmOptions.link=r),r=null==(r=i.fcmOptions)?void 0:r.analytics_label)&&(a.fcmOptions.analyticsLabel=r),n=o,"function"==typeof t.onBackgroundMessageHandler?await t.onBackgroundMessageHandler(n):t.onBackgroundMessageHandler.next(n))}}async function Yt(e){var t=null==(t=null==(t=e.notification)?void 0:t.data)?void 0:t[It];if(t&&!e.action){e.stopImmediatePropagation(),e.notification.close();var n=(e=>{var t=null!=(t=null==(t=e.fcmOptions)?void 0:t.link)?t:null==(t=e.notification)?void 0:t.click_action;return t||((e=>"object"==typeof e&&e&&St in e)(e.data)?self.location.origin:null)})(t);if(n){var a,i=new URL(n,self.location.href),r=new URL(self.location.origin);if(i.host===r.host){let e=await(async e=>{var t;for(t of await Qt()){var n=new URL(t.url,self.location.href);if(e.host===n.host)return t}return null})(i);if(e?e=await e.focus():(e=await self.clients.openWindow(n),a=3e3,await new Promise(e=>{setTimeout(e,a)})),e)return t.messageType=v.NOTIFICATION_CLICKED,t.isFirebaseMessaging=!0,e.postMessage(t)}}}}function Qt(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function Zt(e){return A.create("missing-app-config-values",{valueName:e})}Gt.join("");class Xt{constructor(e,t,n){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var a=(e=>{if(!e||!e.options)throw Zt("App Configuration Object");if(!e.name)throw Zt("App Name");var t,n=e.options;for(t of["projectId","apiKey","appId","messagingSenderId"])if(!n[t])throw Zt(t);return{appName:e.name,projectId:n.projectId,apiKey:n.apiKey,appId:n.appId,senderId:n.messagingSenderId}})(e);this.firebaseDependencies={app:e,appConfig:a,installations:t,analyticsProvider:n}}_delete(){return Promise.resolve()}}let en=e=>{let t=new Xt(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return self.addEventListener("push",e=>{e.waitUntil(zt(e,t))}),self.addEventListener("pushsubscriptionchange",e=>{e.waitUntil((async(e,t)=>{var n;(n=e.newSubscription)?(n=await Kt(t.firebaseDependencies),await Vt(t),t.vapidKey=null!=(n=null==(n=null==n?void 0:n.subscriptionOptions)?void 0:n.vapidKey)?n:yt,await qt(t)):await Vt(t)})(e,t))}),self.addEventListener("notificationclick",e=>{e.waitUntil(Yt(e))}),t};function tn(e,t){var n=e=r(e),e=t;if(void 0!==self.document)throw A.create("only-available-in-sw");return n.onBackgroundMessageHandler=e,()=>{n.onBackgroundMessageHandler=null}}sn._registerComponent(new e("messaging-sw",en,"PUBLIC"));class nn{constructor(e,t){this.app=e,this._delegate=t,this.app=e,this._delegate=t}async getToken(e){return(async(e,t)=>lt(e=r(e),t))(this._delegate,e)}async deleteToken(){return mt(this._delegate)}onMessage(e){return bt(this._delegate,e)}onBackgroundMessage(e){return tn(this._delegate,e)}}let an=e=>self&&"ServiceWorkerGlobalScope"in self?new nn(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging-sw").getImmediate()):new nn(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging").getImmediate()),rn={isSupported:function(){return self&&"ServiceWorkerGlobalScope"in self?L()&&"PushManager"in self&&"Notification"in self&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey"):"undefined"!=typeof window&&L()&&!("undefined"==typeof navigator||!navigator.cookieEnabled)&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}};B.default.INTERNAL.registerComponent(new e("messaging-compat",an,"PUBLIC").setServiceProps(rn)),B.default.registerVersion("@firebase/messaging-compat","0.2.16-canary.84dfeca39")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-messaging-compat.js - be sure to load firebase-app.js first.")}});
//# sourceMappingURL=firebase-messaging-compat.js.map

@@ -1,3 +0,3 @@

import{registerVersion as e,_registerComponent as t,_getProvider,getApp as n}from"https://www.gstatic.com/firebasejs/11.3.0-canary.70e08cf95/firebase-app.js";class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},o=`${this.service}/${e}`,i=this.errors[e],a=i?function replaceTemplate(e,t){return e.replace(r,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(i,n):"Error",s=`${this.serviceName}: ${a} (${o}).`;return new FirebaseError(o,s,n)}}const r=/\{\$([^}]+)}/g;function getModularInstance(e){return e&&e._delegate?e._delegate:e}class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}let o,i;const a=new WeakMap,s=new WeakMap,c=new WeakMap,u=new WeakMap,d=new WeakMap;let l={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||c.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return wrap(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return i||(i=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(unwrap(this),t),wrap(a.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...n){const r=e.call(unwrap(this),t,...n);return c.set(r,t.sort?t.sort():[t]),wrap(r)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(s.has(e))return;const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("complete",complete),e.removeEventListener("error",error),e.removeEventListener("abort",error)},complete=()=>{t(),unlisten()},error=()=>{n(e.error||new DOMException("AbortError","AbortError")),unlisten()};e.addEventListener("complete",complete),e.addEventListener("error",error),e.addEventListener("abort",error)}));s.set(e,t)}(e),t=e,function getIdbProxyableTypes(){return o||(o=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}().some((e=>t instanceof e))?new Proxy(e,l):e);var t}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("success",success),e.removeEventListener("error",error)},success=()=>{t(wrap(e.result)),unlisten()},error=()=>{n(e.error),unlisten()};e.addEventListener("success",success),e.addEventListener("error",error)}));return t.then((t=>{t instanceof IDBCursor&&a.set(t,e)})).catch((()=>{})),d.set(t,e),t}(e);if(u.has(e))return u.get(e);const t=transformCachableValue(e);return t!==e&&(u.set(e,t),d.set(t,e)),t}const unwrap=e=>d.get(e);function openDB(e,t,{blocked:n,upgrade:r,blocking:o,terminated:i}={}){const a=indexedDB.open(e,t),s=wrap(a);return r&&a.addEventListener("upgradeneeded",(e=>{r(wrap(a.result),e.oldVersion,e.newVersion,wrap(a.transaction),e)})),n&&a.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),s.then((e=>{i&&e.addEventListener("close",(()=>i())),o&&e.addEventListener("versionchange",(e=>o(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),s}function deleteDB(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",(e=>t(e.oldVersion,e))),wrap(n).then((()=>{}))}const p=["get","getKey","getAll","getAllKeys","count"],f=["put","add","delete","clear"],g=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(g.get(t))return g.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,o=f.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!o&&!p.includes(n))return;const method=async function(e,...t){const i=this.transaction(e,o?"readwrite":"readonly");let a=i.store;return r&&(a=a.index(t.shift())),(await Promise.all([a[n](...t),o&&i.done]))[0]};return g.set(t,method),method}!function replaceTraps(e){l=e(l)}((e=>Object.assign(Object.assign({},e),{get:(t,n,r)=>getMethod(t,n)||e.get(t,n,r),has:(t,n)=>!!getMethod(t,n)||e.has(t,n)})));const h="@firebase/installations",w="0.6.12-canary.70e08cf95",y=1e4,m=`w:${w}`,b="FIS_v2",v=36e5,k=new 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 isServerError(e){return e instanceof FirebaseError&&e.code.includes("request-failed")}function getInstallationsEndpoint({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function extractAuthTokenInfoFromResponse(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function getErrorFromResponse(e,t){const n=(await t.json()).error;return k.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function getHeaders$1({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function getHeadersWithAuth(e,{refreshToken:t}){const n=getHeaders$1(e);return n.append("Authorization",function getAuthorizationHeader(e){return`${b} ${e}`}(t)),n}async function retryIfServerError(e){const t=await e();return t.status>=500&&t.status<600?e():t}function sleep$1(e){return new Promise((t=>{setTimeout(t,e)}))}const I=/^[cdef][\w-]{21}$/;function generateFid(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function encode(e){const t=function bufferToBase64UrlSafe(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(e);return I.test(t)?t:""}catch(e){return""}}function getKey$1(e){return`${e.appName}!${e.appId}`}const T=new Map;function fidChanged(e,t){const n=getKey$1(e);callFidChangeCallbacks(n,t),function broadcastFidChange(e,t){const n=function getBroadcastChannel(){!S&&"BroadcastChannel"in self&&(S=new BroadcastChannel("[Firebase] FID Change"),S.onmessage=e=>{callFidChangeCallbacks(e.data.key,e.data.fid)});return S}();n&&n.postMessage({key:e,fid:t});!function closeBroadcastChannel(){0===T.size&&S&&(S.close(),S=null)}()}(n,t)}function callFidChangeCallbacks(e,t){const n=T.get(e);if(n)for(const e of n)e(t)}let S=null;const E="firebase-installations-store";let C=null;function getDbPromise$1(){return C||(C=openDB("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(E)}})),C}async function set(e,t){const n=getKey$1(e),r=(await getDbPromise$1()).transaction(E,"readwrite"),o=r.objectStore(E),i=await o.get(n);return await o.put(t,n),await r.done,i&&i.fid===t.fid||fidChanged(e,t.fid),t}async function remove(e){const t=getKey$1(e),n=(await getDbPromise$1()).transaction(E,"readwrite");await n.objectStore(E).delete(t),await n.done}async function update(e,t){const n=getKey$1(e),r=(await getDbPromise$1()).transaction(E,"readwrite"),o=r.objectStore(E),i=await o.get(n),a=t(i);return void 0===a?await o.delete(n):await o.put(a,n),await r.done,!a||i&&i.fid===a.fid||fidChanged(e,a.fid),a}async function getInstallationEntry(e){let t;const n=await update(e.appConfig,(n=>{const r=function updateOrCreateInstallationEntry(e){const t=e||{fid:generateFid(),registrationStatus:0};return clearTimedOutRequest(t)}(n),o=function triggerRegistrationIfNecessary(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(k.create("app-offline"))}}const n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=async function registerInstallation(e,t){try{const n=await async function createInstallationRequest({appConfig:e,heartbeatServiceProvider:t},{fid:n}){const r=getInstallationsEndpoint(e),o=getHeaders$1(e),i=t.getImmediate({optional:!0});if(i){const e=await i.getHeartbeatsHeader();e&&o.append("x-firebase-client",e)}const a={fid:n,authVersion:b,appId:e.appId,sdkVersion:m},s={method:"POST",headers:o,body:JSON.stringify(a)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){const e=await c.json();return{fid:e.fid||n,registrationStatus:2,refreshToken:e.refreshToken,authToken:extractAuthTokenInfoFromResponse(e.authToken)}}throw await getErrorFromResponse("Create Installation",c)}(e,t);return set(e.appConfig,n)}catch(n){throw isServerError(n)&&409===n.customData.serverCode?await remove(e.appConfig):await set(e.appConfig,{fid:t.fid,registrationStatus:0}),n}}(e,n);return{installationEntry:n,registrationPromise:r}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:waitUntilFidRegistration(e)}:{installationEntry:t}}(e,r);return t=o.registrationPromise,o.installationEntry}));return""===n.fid?{installationEntry:await t}:{installationEntry:n,registrationPromise:t}}async function waitUntilFidRegistration(e){let t=await updateInstallationRequest(e.appConfig);for(;1===t.registrationStatus;)await sleep$1(100),t=await updateInstallationRequest(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:n}=await getInstallationEntry(e);return n||t}return t}function updateInstallationRequest(e){return update(e,(e=>{if(!e)throw k.create("installation-not-found");return clearTimedOutRequest(e)}))}function clearTimedOutRequest(e){return function hasInstallationRequestTimedOut(e){return 1===e.registrationStatus&&e.registrationTime+y<Date.now()}(e)?{fid:e.fid,registrationStatus:0}:e}async function generateAuthTokenRequest({appConfig:e,heartbeatServiceProvider:t},n){const r=function getGenerateAuthTokenEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}/authTokens:generate`}(e,n),o=getHeadersWithAuth(e,n),i=t.getImmediate({optional:!0});if(i){const e=await i.getHeartbeatsHeader();e&&o.append("x-firebase-client",e)}const a={installation:{sdkVersion:m,appId:e.appId}},s={method:"POST",headers:o,body:JSON.stringify(a)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){return extractAuthTokenInfoFromResponse(await c.json())}throw await getErrorFromResponse("Generate Auth Token",c)}async function refreshAuthToken(e,t=!1){let n;const r=await update(e.appConfig,(r=>{if(!isEntryRegistered(r))throw k.create("not-registered");const o=r.authToken;if(!t&&function isAuthTokenValid(e){return 2===e.requestStatus&&!function isAuthTokenExpired(e){const t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+v}(e)}(o))return r;if(1===o.requestStatus)return n=async function waitUntilAuthTokenRequest(e,t){let n=await updateAuthTokenRequest(e.appConfig);for(;1===n.authToken.requestStatus;)await sleep$1(100),n=await updateAuthTokenRequest(e.appConfig);const r=n.authToken;return 0===r.requestStatus?refreshAuthToken(e,t):r}(e,t),r;{if(!navigator.onLine)throw k.create("app-offline");const t=function makeAuthTokenRequestInProgressEntry(e){const t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(r);return n=async function fetchAuthTokenFromServer(e,t){try{const n=await generateAuthTokenRequest(e,t),r=Object.assign(Object.assign({},t),{authToken:n});return await set(e.appConfig,r),n}catch(n){if(!isServerError(n)||401!==n.customData.serverCode&&404!==n.customData.serverCode){const n=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await set(e.appConfig,n)}else await remove(e.appConfig);throw n}}(e,t),t}}));return n?await n:r.authToken}function updateAuthTokenRequest(e){return update(e,(e=>{if(!isEntryRegistered(e))throw k.create("not-registered");return function hasAuthTokenRequestTimedOut(e){return 1===e.requestStatus&&e.requestTime+y<Date.now()}(e.authToken)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e}))}function isEntryRegistered(e){return void 0!==e&&2===e.registrationStatus}async function getToken(e,t=!1){const n=e;await async function completeInstallationRegistration(e){const{registrationPromise:t}=await getInstallationEntry(e);t&&await t}(n);return(await refreshAuthToken(n,t)).token}function getMissingValueError$1(e){return k.create("missing-app-config-values",{valueName:e})}const D="installations",publicFactory=e=>{const t=e.getProvider("app").getImmediate(),n=function extractAppConfig$1(e){if(!e||!e.options)throw getMissingValueError$1("App Configuration");if(!e.name)throw getMissingValueError$1("App Name");const t=["projectId","apiKey","appId"];for(const n of t)if(!e.options[n])throw getMissingValueError$1(n);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:n,heartbeatServiceProvider:_getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},internalFactory=e=>{const t=e.getProvider("app").getImmediate(),n=_getProvider(t,D).getImmediate();return{getId:()=>async function getId(e){const t=e,{installationEntry:n,registrationPromise:r}=await getInstallationEntry(t);return r?r.catch(console.error):refreshAuthToken(t).catch(console.error),n.fid}(n),getToken:e=>getToken(n,e)}};!function registerInstallations(){t(new Component(D,publicFactory,"PUBLIC")),t(new Component("installations-internal",internalFactory,"PRIVATE"))}(),e(h,w),e(h,w,"esm2017");const M="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",A="FCM_MSG";var P,B;function arrayToBase64(e){const t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function base64ToArray(e){const t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;++e)r[e]=n.charCodeAt(e);return r}!function(e){e[e.DATA_MESSAGE=1]="DATA_MESSAGE",e[e.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION"}(P||(P={})),function(e){e.PUSH_RECEIVED="push-received",e.NOTIFICATION_CLICKED="notification-clicked"}(B||(B={}));const O="fcm_token_details_db",j="fcm_token_object_Store";const _="firebase-messaging-store";let x=null;function getDbPromise(){return x||(x=openDB("firebase-messaging-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(_)}})),x}async function dbGet(e){const t=getKey(e),n=await getDbPromise(),r=await n.transaction(_).objectStore(_).get(t);if(r)return r;{const t=await async function migrateOldDatabase(e){if("databases"in indexedDB){const e=(await indexedDB.databases()).map((e=>e.name));if(!e.includes(O))return null}let t=null;return(await openDB(O,5,{upgrade:async(n,r,o,i)=>{var a;if(r<2)return;if(!n.objectStoreNames.contains(j))return;const s=i.objectStore(j),c=await s.index("fcmSenderId").get(e);if(await s.clear(),c)if(2===r){const e=c;if(!e.auth||!e.p256dh||!e.endpoint)return;t={token:e.fcmToken,createTime:null!==(a=e.createTime)&&void 0!==a?a:Date.now(),subscriptionOptions:{auth:e.auth,p256dh:e.p256dh,endpoint:e.endpoint,swScope:e.swScope,vapidKey:"string"==typeof e.vapidKey?e.vapidKey:arrayToBase64(e.vapidKey)}}}else if(3===r){const e=c;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:arrayToBase64(e.auth),p256dh:arrayToBase64(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:arrayToBase64(e.vapidKey)}}}else if(4===r){const e=c;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:arrayToBase64(e.auth),p256dh:arrayToBase64(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:arrayToBase64(e.vapidKey)}}}}})).close(),await deleteDB(O),await deleteDB("fcm_vapid_details_db"),await deleteDB("undefined"),function checkTokenDetails(e){if(!e||!e.subscriptionOptions)return!1;const{subscriptionOptions:t}=e;return"number"==typeof e.createTime&&e.createTime>0&&"string"==typeof e.token&&e.token.length>0&&"string"==typeof t.auth&&t.auth.length>0&&"string"==typeof t.p256dh&&t.p256dh.length>0&&"string"==typeof t.endpoint&&t.endpoint.length>0&&"string"==typeof t.swScope&&t.swScope.length>0&&"string"==typeof t.vapidKey&&t.vapidKey.length>0}(t)?t:null}(e.appConfig.senderId);if(t)return await dbSet(e,t),t}}async function dbSet(e,t){const n=getKey(e),r=(await getDbPromise()).transaction(_,"readwrite");return await r.objectStore(_).put(t,n),await r.done,t}function getKey({appConfig:e}){return e.appId}const F=new ErrorFactory("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function requestDeleteToken(e,t){const n={method:"DELETE",headers:await getHeaders(e)};try{const r=await fetch(`${getEndpoint(e.appConfig)}/${t}`,n),o=await r.json();if(o.error){const e=o.error.message;throw F.create("token-unsubscribe-failed",{errorInfo:e})}}catch(e){throw F.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function getEndpoint({projectId:e}){return`https://fcmregistrations.googleapis.com/v1/projects/${e}/registrations`}async function getHeaders({appConfig:e,installations:t}){const n=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${n}`})}function getBody({p256dh:e,auth:t,endpoint:n,vapidKey:r}){const o={web:{endpoint:n,auth:t,p256dh:e}};return r!==M&&(o.web.applicationPubKey=r),o}async function getTokenInternal(e){const t=await async function getPushSubscription(e,t){const n=await e.pushManager.getSubscription();if(n)return n;return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:base64ToArray(t)})}(e.swRegistration,e.vapidKey),n={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:arrayToBase64(t.getKey("auth")),p256dh:arrayToBase64(t.getKey("p256dh"))},r=await dbGet(e.firebaseDependencies);if(r){if(function isTokenValid(e,t){const n=t.vapidKey===e.vapidKey,r=t.endpoint===e.endpoint,o=t.auth===e.auth,i=t.p256dh===e.p256dh;return n&&r&&o&&i}(r.subscriptionOptions,n))return Date.now()>=r.createTime+6048e5?async function updateToken(e,t){try{const n=await async function requestUpdateToken(e,t){const n=await getHeaders(e),r=getBody(t.subscriptionOptions),o={method:"PATCH",headers:n,body:JSON.stringify(r)};let i;try{const n=await fetch(`${getEndpoint(e.appConfig)}/${t.token}`,o);i=await n.json()}catch(e){throw F.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error){const e=i.error.message;throw F.create("token-update-failed",{errorInfo:e})}if(!i.token)throw F.create("token-update-no-token");return i.token}(e.firebaseDependencies,t),r=Object.assign(Object.assign({},t),{token:n,createTime:Date.now()});return await dbSet(e.firebaseDependencies,r),n}catch(e){throw e}}(e,{token:r.token,createTime:Date.now(),subscriptionOptions:n}):r.token;try{await requestDeleteToken(e.firebaseDependencies,r.token)}catch(e){console.warn(e)}return getNewToken(e.firebaseDependencies,n)}return getNewToken(e.firebaseDependencies,n)}async function deleteTokenInternal(e){const t=await dbGet(e.firebaseDependencies);t&&(await requestDeleteToken(e.firebaseDependencies,t.token),await async function dbRemove(e){const t=getKey(e),n=(await getDbPromise()).transaction(_,"readwrite");await n.objectStore(_).delete(t),await n.done}(e.firebaseDependencies));const n=await e.swRegistration.pushManager.getSubscription();return!n||n.unsubscribe()}async function getNewToken(e,t){const n=await async function requestGetToken(e,t){const n=await getHeaders(e),r=getBody(t),o={method:"POST",headers:n,body:JSON.stringify(r)};let i;try{const t=await fetch(getEndpoint(e.appConfig),o);i=await t.json()}catch(e){throw F.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error){const e=i.error.message;throw F.create("token-subscribe-failed",{errorInfo:e})}if(!i.token)throw F.create("token-subscribe-no-token");return i.token}(e,t),r={token:n,createTime:Date.now(),subscriptionOptions:t};return await dbSet(e,r),r.token}async function stageLog(e,t){const n=function createFcmEvent(e,t){var n,r;const o={};e.from&&(o.project_number=e.from);e.fcmMessageId&&(o.message_id=e.fcmMessageId);o.instance_id=t,e.notification?o.message_type=P.DISPLAY_NOTIFICATION.toString():o.message_type=P.DATA_MESSAGE.toString();o.sdk_platform=3..toString(),o.package_name=self.origin.replace(/(^\w+:|^)\/\//,""),!e.collapse_key||(o.collapse_key=e.collapse_key);o.event=1..toString(),!(null===(n=e.fcmOptions)||void 0===n?void 0:n.analytics_label)||(o.analytics_label=null===(r=e.fcmOptions)||void 0===r?void 0:r.analytics_label);return o}(t,await e.firebaseDependencies.installations.getId());!function createAndEnqueueLogEvent(e,t,n){const r={};r.event_time_ms=Math.floor(Date.now()).toString(),r.source_extension_json_proto3=JSON.stringify({messaging_client_event:t}),!n||(r.compliance_data=function buildComplianceData(e){const t={privacy_context:{prequest:{origin_associated_product_id:e}}};return t}(n));e.logEvents.push(r)}(e,n,t.productId)}async function onPush(e,t){const n=function getMessagePayloadInternal({data:e}){if(!e)return null;try{return e.json()}catch(e){return null}}(e);if(!n)return;t.deliveryMetricsExportedToBigQueryEnabled&&await stageLog(t,n);const r=await getClientList();if(function hasVisibleClients(e){return e.some((e=>"visible"===e.visibilityState&&!e.url.startsWith("chrome-extension://")))}(r))return function sendMessagePayloadInternalToWindows(e,t){t.isFirebaseMessaging=!0,t.messageType=B.PUSH_RECEIVED;for(const n of e)n.postMessage(t)}(r,n);if(n.notification&&await function showNotification(e){var t;const{actions:n}=e,{maxActions:r}=Notification;n&&r&&n.length>r&&console.warn(`This browser only supports ${r} actions. The remaining actions will not be displayed.`);return self.registration.showNotification(null!==(t=e.title)&&void 0!==t?t:"",e)}(function wrapInternalPayload(e){const t=Object.assign({},e.notification);return t.data={[A]:e},t}(n)),t&&t.onBackgroundMessageHandler){const e=function externalizePayload(e){const t={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return function propagateNotificationPayload(e,t){if(!t.notification)return;e.notification={};const n=t.notification.title;n&&(e.notification.title=n);const r=t.notification.body;r&&(e.notification.body=r);const o=t.notification.image;o&&(e.notification.image=o);const i=t.notification.icon;i&&(e.notification.icon=i)}(t,e),function propagateDataPayload(e,t){t.data&&(e.data=t.data)}(t,e),function propagateFcmOptions(e,t){var n,r,o,i,a;if(!t.fcmOptions&&!(null===(n=t.notification)||void 0===n?void 0:n.click_action))return;e.fcmOptions={};const s=null!==(o=null===(r=t.fcmOptions)||void 0===r?void 0:r.link)&&void 0!==o?o:null===(i=t.notification)||void 0===i?void 0:i.click_action;s&&(e.fcmOptions.link=s);const c=null===(a=t.fcmOptions)||void 0===a?void 0:a.analytics_label;c&&(e.fcmOptions.analyticsLabel=c)}(t,e),t}(n);"function"==typeof t.onBackgroundMessageHandler?await t.onBackgroundMessageHandler(e):t.onBackgroundMessageHandler.next(e)}}async function onNotificationClick(e){var t,n;const r=null===(n=null===(t=e.notification)||void 0===t?void 0:t.data)||void 0===n?void 0:n[A];if(!r)return;if(e.action)return;e.stopImmediatePropagation(),e.notification.close();const o=function getLink(e){var t,n,r;const o=null!==(n=null===(t=e.fcmOptions)||void 0===t?void 0:t.link)&&void 0!==n?n:null===(r=e.notification)||void 0===r?void 0:r.click_action;if(o)return o;return function isConsoleMessage(e){return"object"==typeof e&&!!e&&"google.c.a.c_id"in e}(e.data)?self.location.origin:null}(r);if(!o)return;const i=new URL(o,self.location.href),a=new URL(self.location.origin);if(i.host!==a.host)return;let s=await async function getWindowClient(e){const t=await getClientList();for(const n of t){const t=new URL(n.url,self.location.href);if(e.host===t.host)return n}return null}(i);return s?s=await s.focus():(s=await self.clients.openWindow(o),await function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}(3e3)),s?(r.messageType=B.NOTIFICATION_CLICKED,r.isFirebaseMessaging=!0,s.postMessage(r)):void 0}function getClientList(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function getMissingValueError(e){return F.create("missing-app-config-values",{valueName:e})}!function _mergeStrings(e,t){const n=[];for(let r=0;r<e.length;r++)n.push(e.charAt(r)),r<t.length&&n.push(t.charAt(r));return n.join("")}("AzSCbw63g1R0nCw85jG8","Iaya3yLKwmgvh7cF0q4");class MessagingService{constructor(e,t,n){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;const r=function extractAppConfig(e){if(!e||!e.options)throw getMissingValueError("App Configuration Object");if(!e.name)throw getMissingValueError("App Name");const t=["projectId","apiKey","appId","messagingSenderId"],{options:n}=e;for(const e of t)if(!n[e])throw getMissingValueError(e);return{appName:e.name,projectId:n.projectId,apiKey:n.apiKey,appId:n.appId,senderId:n.messagingSenderId}}(e);this.firebaseDependencies={app:e,appConfig:r,installations:t,analyticsProvider:n}}_delete(){return Promise.resolve()}}const SwMessagingFactory=e=>{const t=new MessagingService(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return self.addEventListener("push",(e=>{e.waitUntil(onPush(e,t))})),self.addEventListener("pushsubscriptionchange",(e=>{e.waitUntil(async function onSubChange(e,t){var n,r;const{newSubscription:o}=e;if(!o)return void await deleteTokenInternal(t);const i=await dbGet(t.firebaseDependencies);await deleteTokenInternal(t),t.vapidKey=null!==(r=null===(n=null==i?void 0:i.subscriptionOptions)||void 0===n?void 0:n.vapidKey)&&void 0!==r?r:M,await getTokenInternal(t)}(e,t))})),self.addEventListener("notificationclick",(e=>{e.waitUntil(onNotificationClick(e))})),t};async function isSwSupported(){return function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(e){return!1}}()&&await function validateIndexedDBOpenable(){return new Promise(((e,t)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",o=self.indexedDB.open(r);o.onsuccess=()=>{o.result.close(),n||self.indexedDB.deleteDatabase(r),e(!0)},o.onupgradeneeded=()=>{n=!1},o.onerror=()=>{var e;t((null===(e=o.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}()&&"PushManager"in self&&"Notification"in self&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}function getMessagingInSw(e=n()){return isSwSupported().then((e=>{if(!e)throw F.create("unsupported-browser")}),(e=>{throw F.create("indexed-db-unsupported")})),_getProvider(getModularInstance(e),"messaging-sw").getImmediate()}function onBackgroundMessage(e,t){return function onBackgroundMessage$1(e,t){if(void 0!==self.document)throw F.create("only-available-in-sw");return e.onBackgroundMessageHandler=t,()=>{e.onBackgroundMessageHandler=null}}(e=getModularInstance(e),t)}function experimentalSetDeliveryMetricsExportedToBigQueryEnabled(e,t){return function _setDeliveryMetricsExportedToBigQueryEnabled(e,t){e.deliveryMetricsExportedToBigQueryEnabled=t}(e=getModularInstance(e),t)}!function registerMessagingInSw(){t(new Component("messaging-sw",SwMessagingFactory,"PUBLIC"))}();export{experimentalSetDeliveryMetricsExportedToBigQueryEnabled,getMessagingInSw as getMessaging,isSwSupported as isSupported,onBackgroundMessage};
import{registerVersion as e,_registerComponent as t,_getProvider,getApp as n}from"https://www.gstatic.com/firebasejs/11.3.0-canary.84dfeca39/firebase-app.js";class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},o=`${this.service}/${e}`,i=this.errors[e],a=i?function replaceTemplate(e,t){return e.replace(r,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(i,n):"Error",s=`${this.serviceName}: ${a} (${o}).`;return new FirebaseError(o,s,n)}}const r=/\{\$([^}]+)}/g;function getModularInstance(e){return e&&e._delegate?e._delegate:e}class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}let o,i;const a=new WeakMap,s=new WeakMap,c=new WeakMap,u=new WeakMap,d=new WeakMap;let l={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||c.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return wrap(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return i||(i=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(unwrap(this),t),wrap(a.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...n){const r=e.call(unwrap(this),t,...n);return c.set(r,t.sort?t.sort():[t]),wrap(r)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(s.has(e))return;const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("complete",complete),e.removeEventListener("error",error),e.removeEventListener("abort",error)},complete=()=>{t(),unlisten()},error=()=>{n(e.error||new DOMException("AbortError","AbortError")),unlisten()};e.addEventListener("complete",complete),e.addEventListener("error",error),e.addEventListener("abort",error)}));s.set(e,t)}(e),t=e,function getIdbProxyableTypes(){return o||(o=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}().some((e=>t instanceof e))?new Proxy(e,l):e);var t}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("success",success),e.removeEventListener("error",error)},success=()=>{t(wrap(e.result)),unlisten()},error=()=>{n(e.error),unlisten()};e.addEventListener("success",success),e.addEventListener("error",error)}));return t.then((t=>{t instanceof IDBCursor&&a.set(t,e)})).catch((()=>{})),d.set(t,e),t}(e);if(u.has(e))return u.get(e);const t=transformCachableValue(e);return t!==e&&(u.set(e,t),d.set(t,e)),t}const unwrap=e=>d.get(e);function openDB(e,t,{blocked:n,upgrade:r,blocking:o,terminated:i}={}){const a=indexedDB.open(e,t),s=wrap(a);return r&&a.addEventListener("upgradeneeded",(e=>{r(wrap(a.result),e.oldVersion,e.newVersion,wrap(a.transaction),e)})),n&&a.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),s.then((e=>{i&&e.addEventListener("close",(()=>i())),o&&e.addEventListener("versionchange",(e=>o(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),s}function deleteDB(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",(e=>t(e.oldVersion,e))),wrap(n).then((()=>{}))}const p=["get","getKey","getAll","getAllKeys","count"],f=["put","add","delete","clear"],g=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(g.get(t))return g.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,o=f.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!o&&!p.includes(n))return;const method=async function(e,...t){const i=this.transaction(e,o?"readwrite":"readonly");let a=i.store;return r&&(a=a.index(t.shift())),(await Promise.all([a[n](...t),o&&i.done]))[0]};return g.set(t,method),method}!function replaceTraps(e){l=e(l)}((e=>Object.assign(Object.assign({},e),{get:(t,n,r)=>getMethod(t,n)||e.get(t,n,r),has:(t,n)=>!!getMethod(t,n)||e.has(t,n)})));const h="@firebase/installations",w="0.6.12-canary.84dfeca39",y=1e4,m=`w:${w}`,b="FIS_v2",v=36e5,k=new 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 isServerError(e){return e instanceof FirebaseError&&e.code.includes("request-failed")}function getInstallationsEndpoint({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function extractAuthTokenInfoFromResponse(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function getErrorFromResponse(e,t){const n=(await t.json()).error;return k.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function getHeaders$1({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function getHeadersWithAuth(e,{refreshToken:t}){const n=getHeaders$1(e);return n.append("Authorization",function getAuthorizationHeader(e){return`${b} ${e}`}(t)),n}async function retryIfServerError(e){const t=await e();return t.status>=500&&t.status<600?e():t}function sleep$1(e){return new Promise((t=>{setTimeout(t,e)}))}const I=/^[cdef][\w-]{21}$/;function generateFid(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function encode(e){const t=function bufferToBase64UrlSafe(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(e);return I.test(t)?t:""}catch(e){return""}}function getKey$1(e){return`${e.appName}!${e.appId}`}const T=new Map;function fidChanged(e,t){const n=getKey$1(e);callFidChangeCallbacks(n,t),function broadcastFidChange(e,t){const n=function getBroadcastChannel(){!S&&"BroadcastChannel"in self&&(S=new BroadcastChannel("[Firebase] FID Change"),S.onmessage=e=>{callFidChangeCallbacks(e.data.key,e.data.fid)});return S}();n&&n.postMessage({key:e,fid:t});!function closeBroadcastChannel(){0===T.size&&S&&(S.close(),S=null)}()}(n,t)}function callFidChangeCallbacks(e,t){const n=T.get(e);if(n)for(const e of n)e(t)}let S=null;const E="firebase-installations-store";let C=null;function getDbPromise$1(){return C||(C=openDB("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(E)}})),C}async function set(e,t){const n=getKey$1(e),r=(await getDbPromise$1()).transaction(E,"readwrite"),o=r.objectStore(E),i=await o.get(n);return await o.put(t,n),await r.done,i&&i.fid===t.fid||fidChanged(e,t.fid),t}async function remove(e){const t=getKey$1(e),n=(await getDbPromise$1()).transaction(E,"readwrite");await n.objectStore(E).delete(t),await n.done}async function update(e,t){const n=getKey$1(e),r=(await getDbPromise$1()).transaction(E,"readwrite"),o=r.objectStore(E),i=await o.get(n),a=t(i);return void 0===a?await o.delete(n):await o.put(a,n),await r.done,!a||i&&i.fid===a.fid||fidChanged(e,a.fid),a}async function getInstallationEntry(e){let t;const n=await update(e.appConfig,(n=>{const r=function updateOrCreateInstallationEntry(e){const t=e||{fid:generateFid(),registrationStatus:0};return clearTimedOutRequest(t)}(n),o=function triggerRegistrationIfNecessary(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(k.create("app-offline"))}}const n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=async function registerInstallation(e,t){try{const n=await async function createInstallationRequest({appConfig:e,heartbeatServiceProvider:t},{fid:n}){const r=getInstallationsEndpoint(e),o=getHeaders$1(e),i=t.getImmediate({optional:!0});if(i){const e=await i.getHeartbeatsHeader();e&&o.append("x-firebase-client",e)}const a={fid:n,authVersion:b,appId:e.appId,sdkVersion:m},s={method:"POST",headers:o,body:JSON.stringify(a)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){const e=await c.json();return{fid:e.fid||n,registrationStatus:2,refreshToken:e.refreshToken,authToken:extractAuthTokenInfoFromResponse(e.authToken)}}throw await getErrorFromResponse("Create Installation",c)}(e,t);return set(e.appConfig,n)}catch(n){throw isServerError(n)&&409===n.customData.serverCode?await remove(e.appConfig):await set(e.appConfig,{fid:t.fid,registrationStatus:0}),n}}(e,n);return{installationEntry:n,registrationPromise:r}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:waitUntilFidRegistration(e)}:{installationEntry:t}}(e,r);return t=o.registrationPromise,o.installationEntry}));return""===n.fid?{installationEntry:await t}:{installationEntry:n,registrationPromise:t}}async function waitUntilFidRegistration(e){let t=await updateInstallationRequest(e.appConfig);for(;1===t.registrationStatus;)await sleep$1(100),t=await updateInstallationRequest(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:n}=await getInstallationEntry(e);return n||t}return t}function updateInstallationRequest(e){return update(e,(e=>{if(!e)throw k.create("installation-not-found");return clearTimedOutRequest(e)}))}function clearTimedOutRequest(e){return function hasInstallationRequestTimedOut(e){return 1===e.registrationStatus&&e.registrationTime+y<Date.now()}(e)?{fid:e.fid,registrationStatus:0}:e}async function generateAuthTokenRequest({appConfig:e,heartbeatServiceProvider:t},n){const r=function getGenerateAuthTokenEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}/authTokens:generate`}(e,n),o=getHeadersWithAuth(e,n),i=t.getImmediate({optional:!0});if(i){const e=await i.getHeartbeatsHeader();e&&o.append("x-firebase-client",e)}const a={installation:{sdkVersion:m,appId:e.appId}},s={method:"POST",headers:o,body:JSON.stringify(a)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){return extractAuthTokenInfoFromResponse(await c.json())}throw await getErrorFromResponse("Generate Auth Token",c)}async function refreshAuthToken(e,t=!1){let n;const r=await update(e.appConfig,(r=>{if(!isEntryRegistered(r))throw k.create("not-registered");const o=r.authToken;if(!t&&function isAuthTokenValid(e){return 2===e.requestStatus&&!function isAuthTokenExpired(e){const t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+v}(e)}(o))return r;if(1===o.requestStatus)return n=async function waitUntilAuthTokenRequest(e,t){let n=await updateAuthTokenRequest(e.appConfig);for(;1===n.authToken.requestStatus;)await sleep$1(100),n=await updateAuthTokenRequest(e.appConfig);const r=n.authToken;return 0===r.requestStatus?refreshAuthToken(e,t):r}(e,t),r;{if(!navigator.onLine)throw k.create("app-offline");const t=function makeAuthTokenRequestInProgressEntry(e){const t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(r);return n=async function fetchAuthTokenFromServer(e,t){try{const n=await generateAuthTokenRequest(e,t),r=Object.assign(Object.assign({},t),{authToken:n});return await set(e.appConfig,r),n}catch(n){if(!isServerError(n)||401!==n.customData.serverCode&&404!==n.customData.serverCode){const n=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await set(e.appConfig,n)}else await remove(e.appConfig);throw n}}(e,t),t}}));return n?await n:r.authToken}function updateAuthTokenRequest(e){return update(e,(e=>{if(!isEntryRegistered(e))throw k.create("not-registered");return function hasAuthTokenRequestTimedOut(e){return 1===e.requestStatus&&e.requestTime+y<Date.now()}(e.authToken)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e}))}function isEntryRegistered(e){return void 0!==e&&2===e.registrationStatus}async function getToken(e,t=!1){const n=e;await async function completeInstallationRegistration(e){const{registrationPromise:t}=await getInstallationEntry(e);t&&await t}(n);return(await refreshAuthToken(n,t)).token}function getMissingValueError$1(e){return k.create("missing-app-config-values",{valueName:e})}const D="installations",publicFactory=e=>{const t=e.getProvider("app").getImmediate(),n=function extractAppConfig$1(e){if(!e||!e.options)throw getMissingValueError$1("App Configuration");if(!e.name)throw getMissingValueError$1("App Name");const t=["projectId","apiKey","appId"];for(const n of t)if(!e.options[n])throw getMissingValueError$1(n);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:n,heartbeatServiceProvider:_getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},internalFactory=e=>{const t=e.getProvider("app").getImmediate(),n=_getProvider(t,D).getImmediate();return{getId:()=>async function getId(e){const t=e,{installationEntry:n,registrationPromise:r}=await getInstallationEntry(t);return r?r.catch(console.error):refreshAuthToken(t).catch(console.error),n.fid}(n),getToken:e=>getToken(n,e)}};!function registerInstallations(){t(new Component(D,publicFactory,"PUBLIC")),t(new Component("installations-internal",internalFactory,"PRIVATE"))}(),e(h,w),e(h,w,"esm2017");const M="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",A="FCM_MSG";var P,B;function arrayToBase64(e){const t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function base64ToArray(e){const t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;++e)r[e]=n.charCodeAt(e);return r}!function(e){e[e.DATA_MESSAGE=1]="DATA_MESSAGE",e[e.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION"}(P||(P={})),function(e){e.PUSH_RECEIVED="push-received",e.NOTIFICATION_CLICKED="notification-clicked"}(B||(B={}));const O="fcm_token_details_db",j="fcm_token_object_Store";const _="firebase-messaging-store";let x=null;function getDbPromise(){return x||(x=openDB("firebase-messaging-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(_)}})),x}async function dbGet(e){const t=getKey(e),n=await getDbPromise(),r=await n.transaction(_).objectStore(_).get(t);if(r)return r;{const t=await async function migrateOldDatabase(e){if("databases"in indexedDB){const e=(await indexedDB.databases()).map((e=>e.name));if(!e.includes(O))return null}let t=null;return(await openDB(O,5,{upgrade:async(n,r,o,i)=>{var a;if(r<2)return;if(!n.objectStoreNames.contains(j))return;const s=i.objectStore(j),c=await s.index("fcmSenderId").get(e);if(await s.clear(),c)if(2===r){const e=c;if(!e.auth||!e.p256dh||!e.endpoint)return;t={token:e.fcmToken,createTime:null!==(a=e.createTime)&&void 0!==a?a:Date.now(),subscriptionOptions:{auth:e.auth,p256dh:e.p256dh,endpoint:e.endpoint,swScope:e.swScope,vapidKey:"string"==typeof e.vapidKey?e.vapidKey:arrayToBase64(e.vapidKey)}}}else if(3===r){const e=c;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:arrayToBase64(e.auth),p256dh:arrayToBase64(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:arrayToBase64(e.vapidKey)}}}else if(4===r){const e=c;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:arrayToBase64(e.auth),p256dh:arrayToBase64(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:arrayToBase64(e.vapidKey)}}}}})).close(),await deleteDB(O),await deleteDB("fcm_vapid_details_db"),await deleteDB("undefined"),function checkTokenDetails(e){if(!e||!e.subscriptionOptions)return!1;const{subscriptionOptions:t}=e;return"number"==typeof e.createTime&&e.createTime>0&&"string"==typeof e.token&&e.token.length>0&&"string"==typeof t.auth&&t.auth.length>0&&"string"==typeof t.p256dh&&t.p256dh.length>0&&"string"==typeof t.endpoint&&t.endpoint.length>0&&"string"==typeof t.swScope&&t.swScope.length>0&&"string"==typeof t.vapidKey&&t.vapidKey.length>0}(t)?t:null}(e.appConfig.senderId);if(t)return await dbSet(e,t),t}}async function dbSet(e,t){const n=getKey(e),r=(await getDbPromise()).transaction(_,"readwrite");return await r.objectStore(_).put(t,n),await r.done,t}function getKey({appConfig:e}){return e.appId}const F=new ErrorFactory("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function requestDeleteToken(e,t){const n={method:"DELETE",headers:await getHeaders(e)};try{const r=await fetch(`${getEndpoint(e.appConfig)}/${t}`,n),o=await r.json();if(o.error){const e=o.error.message;throw F.create("token-unsubscribe-failed",{errorInfo:e})}}catch(e){throw F.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function getEndpoint({projectId:e}){return`https://fcmregistrations.googleapis.com/v1/projects/${e}/registrations`}async function getHeaders({appConfig:e,installations:t}){const n=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${n}`})}function getBody({p256dh:e,auth:t,endpoint:n,vapidKey:r}){const o={web:{endpoint:n,auth:t,p256dh:e}};return r!==M&&(o.web.applicationPubKey=r),o}async function getTokenInternal(e){const t=await async function getPushSubscription(e,t){const n=await e.pushManager.getSubscription();if(n)return n;return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:base64ToArray(t)})}(e.swRegistration,e.vapidKey),n={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:arrayToBase64(t.getKey("auth")),p256dh:arrayToBase64(t.getKey("p256dh"))},r=await dbGet(e.firebaseDependencies);if(r){if(function isTokenValid(e,t){const n=t.vapidKey===e.vapidKey,r=t.endpoint===e.endpoint,o=t.auth===e.auth,i=t.p256dh===e.p256dh;return n&&r&&o&&i}(r.subscriptionOptions,n))return Date.now()>=r.createTime+6048e5?async function updateToken(e,t){try{const n=await async function requestUpdateToken(e,t){const n=await getHeaders(e),r=getBody(t.subscriptionOptions),o={method:"PATCH",headers:n,body:JSON.stringify(r)};let i;try{const n=await fetch(`${getEndpoint(e.appConfig)}/${t.token}`,o);i=await n.json()}catch(e){throw F.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error){const e=i.error.message;throw F.create("token-update-failed",{errorInfo:e})}if(!i.token)throw F.create("token-update-no-token");return i.token}(e.firebaseDependencies,t),r=Object.assign(Object.assign({},t),{token:n,createTime:Date.now()});return await dbSet(e.firebaseDependencies,r),n}catch(e){throw e}}(e,{token:r.token,createTime:Date.now(),subscriptionOptions:n}):r.token;try{await requestDeleteToken(e.firebaseDependencies,r.token)}catch(e){console.warn(e)}return getNewToken(e.firebaseDependencies,n)}return getNewToken(e.firebaseDependencies,n)}async function deleteTokenInternal(e){const t=await dbGet(e.firebaseDependencies);t&&(await requestDeleteToken(e.firebaseDependencies,t.token),await async function dbRemove(e){const t=getKey(e),n=(await getDbPromise()).transaction(_,"readwrite");await n.objectStore(_).delete(t),await n.done}(e.firebaseDependencies));const n=await e.swRegistration.pushManager.getSubscription();return!n||n.unsubscribe()}async function getNewToken(e,t){const n=await async function requestGetToken(e,t){const n=await getHeaders(e),r=getBody(t),o={method:"POST",headers:n,body:JSON.stringify(r)};let i;try{const t=await fetch(getEndpoint(e.appConfig),o);i=await t.json()}catch(e){throw F.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error){const e=i.error.message;throw F.create("token-subscribe-failed",{errorInfo:e})}if(!i.token)throw F.create("token-subscribe-no-token");return i.token}(e,t),r={token:n,createTime:Date.now(),subscriptionOptions:t};return await dbSet(e,r),r.token}async function stageLog(e,t){const n=function createFcmEvent(e,t){var n,r;const o={};e.from&&(o.project_number=e.from);e.fcmMessageId&&(o.message_id=e.fcmMessageId);o.instance_id=t,e.notification?o.message_type=P.DISPLAY_NOTIFICATION.toString():o.message_type=P.DATA_MESSAGE.toString();o.sdk_platform=3..toString(),o.package_name=self.origin.replace(/(^\w+:|^)\/\//,""),!e.collapse_key||(o.collapse_key=e.collapse_key);o.event=1..toString(),!(null===(n=e.fcmOptions)||void 0===n?void 0:n.analytics_label)||(o.analytics_label=null===(r=e.fcmOptions)||void 0===r?void 0:r.analytics_label);return o}(t,await e.firebaseDependencies.installations.getId());!function createAndEnqueueLogEvent(e,t,n){const r={};r.event_time_ms=Math.floor(Date.now()).toString(),r.source_extension_json_proto3=JSON.stringify({messaging_client_event:t}),!n||(r.compliance_data=function buildComplianceData(e){const t={privacy_context:{prequest:{origin_associated_product_id:e}}};return t}(n));e.logEvents.push(r)}(e,n,t.productId)}async function onPush(e,t){const n=function getMessagePayloadInternal({data:e}){if(!e)return null;try{return e.json()}catch(e){return null}}(e);if(!n)return;t.deliveryMetricsExportedToBigQueryEnabled&&await stageLog(t,n);const r=await getClientList();if(function hasVisibleClients(e){return e.some((e=>"visible"===e.visibilityState&&!e.url.startsWith("chrome-extension://")))}(r))return function sendMessagePayloadInternalToWindows(e,t){t.isFirebaseMessaging=!0,t.messageType=B.PUSH_RECEIVED;for(const n of e)n.postMessage(t)}(r,n);if(n.notification&&await function showNotification(e){var t;const{actions:n}=e,{maxActions:r}=Notification;n&&r&&n.length>r&&console.warn(`This browser only supports ${r} actions. The remaining actions will not be displayed.`);return self.registration.showNotification(null!==(t=e.title)&&void 0!==t?t:"",e)}(function wrapInternalPayload(e){const t=Object.assign({},e.notification);return t.data={[A]:e},t}(n)),t&&t.onBackgroundMessageHandler){const e=function externalizePayload(e){const t={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return function propagateNotificationPayload(e,t){if(!t.notification)return;e.notification={};const n=t.notification.title;n&&(e.notification.title=n);const r=t.notification.body;r&&(e.notification.body=r);const o=t.notification.image;o&&(e.notification.image=o);const i=t.notification.icon;i&&(e.notification.icon=i)}(t,e),function propagateDataPayload(e,t){t.data&&(e.data=t.data)}(t,e),function propagateFcmOptions(e,t){var n,r,o,i,a;if(!t.fcmOptions&&!(null===(n=t.notification)||void 0===n?void 0:n.click_action))return;e.fcmOptions={};const s=null!==(o=null===(r=t.fcmOptions)||void 0===r?void 0:r.link)&&void 0!==o?o:null===(i=t.notification)||void 0===i?void 0:i.click_action;s&&(e.fcmOptions.link=s);const c=null===(a=t.fcmOptions)||void 0===a?void 0:a.analytics_label;c&&(e.fcmOptions.analyticsLabel=c)}(t,e),t}(n);"function"==typeof t.onBackgroundMessageHandler?await t.onBackgroundMessageHandler(e):t.onBackgroundMessageHandler.next(e)}}async function onNotificationClick(e){var t,n;const r=null===(n=null===(t=e.notification)||void 0===t?void 0:t.data)||void 0===n?void 0:n[A];if(!r)return;if(e.action)return;e.stopImmediatePropagation(),e.notification.close();const o=function getLink(e){var t,n,r;const o=null!==(n=null===(t=e.fcmOptions)||void 0===t?void 0:t.link)&&void 0!==n?n:null===(r=e.notification)||void 0===r?void 0:r.click_action;if(o)return o;return function isConsoleMessage(e){return"object"==typeof e&&!!e&&"google.c.a.c_id"in e}(e.data)?self.location.origin:null}(r);if(!o)return;const i=new URL(o,self.location.href),a=new URL(self.location.origin);if(i.host!==a.host)return;let s=await async function getWindowClient(e){const t=await getClientList();for(const n of t){const t=new URL(n.url,self.location.href);if(e.host===t.host)return n}return null}(i);return s?s=await s.focus():(s=await self.clients.openWindow(o),await function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}(3e3)),s?(r.messageType=B.NOTIFICATION_CLICKED,r.isFirebaseMessaging=!0,s.postMessage(r)):void 0}function getClientList(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function getMissingValueError(e){return F.create("missing-app-config-values",{valueName:e})}!function _mergeStrings(e,t){const n=[];for(let r=0;r<e.length;r++)n.push(e.charAt(r)),r<t.length&&n.push(t.charAt(r));return n.join("")}("AzSCbw63g1R0nCw85jG8","Iaya3yLKwmgvh7cF0q4");class MessagingService{constructor(e,t,n){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;const r=function extractAppConfig(e){if(!e||!e.options)throw getMissingValueError("App Configuration Object");if(!e.name)throw getMissingValueError("App Name");const t=["projectId","apiKey","appId","messagingSenderId"],{options:n}=e;for(const e of t)if(!n[e])throw getMissingValueError(e);return{appName:e.name,projectId:n.projectId,apiKey:n.apiKey,appId:n.appId,senderId:n.messagingSenderId}}(e);this.firebaseDependencies={app:e,appConfig:r,installations:t,analyticsProvider:n}}_delete(){return Promise.resolve()}}const SwMessagingFactory=e=>{const t=new MessagingService(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return self.addEventListener("push",(e=>{e.waitUntil(onPush(e,t))})),self.addEventListener("pushsubscriptionchange",(e=>{e.waitUntil(async function onSubChange(e,t){var n,r;const{newSubscription:o}=e;if(!o)return void await deleteTokenInternal(t);const i=await dbGet(t.firebaseDependencies);await deleteTokenInternal(t),t.vapidKey=null!==(r=null===(n=null==i?void 0:i.subscriptionOptions)||void 0===n?void 0:n.vapidKey)&&void 0!==r?r:M,await getTokenInternal(t)}(e,t))})),self.addEventListener("notificationclick",(e=>{e.waitUntil(onNotificationClick(e))})),t};async function isSwSupported(){return function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(e){return!1}}()&&await function validateIndexedDBOpenable(){return new Promise(((e,t)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",o=self.indexedDB.open(r);o.onsuccess=()=>{o.result.close(),n||self.indexedDB.deleteDatabase(r),e(!0)},o.onupgradeneeded=()=>{n=!1},o.onerror=()=>{var e;t((null===(e=o.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}()&&"PushManager"in self&&"Notification"in self&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}function getMessagingInSw(e=n()){return isSwSupported().then((e=>{if(!e)throw F.create("unsupported-browser")}),(e=>{throw F.create("indexed-db-unsupported")})),_getProvider(getModularInstance(e),"messaging-sw").getImmediate()}function onBackgroundMessage(e,t){return function onBackgroundMessage$1(e,t){if(void 0!==self.document)throw F.create("only-available-in-sw");return e.onBackgroundMessageHandler=t,()=>{e.onBackgroundMessageHandler=null}}(e=getModularInstance(e),t)}function experimentalSetDeliveryMetricsExportedToBigQueryEnabled(e,t){return function _setDeliveryMetricsExportedToBigQueryEnabled(e,t){e.deliveryMetricsExportedToBigQueryEnabled=t}(e=getModularInstance(e),t)}!function registerMessagingInSw(){t(new Component("messaging-sw",SwMessagingFactory,"PUBLIC"))}();export{experimentalSetDeliveryMetricsExportedToBigQueryEnabled,getMessagingInSw as getMessaging,isSwSupported as isSupported,onBackgroundMessage};
//# sourceMappingURL=firebase-messaging-sw.js.map

@@ -1,3 +0,3 @@

import{registerVersion as e,_registerComponent as t,_getProvider,getApp as n}from"https://www.gstatic.com/firebasejs/11.3.0-canary.70e08cf95/firebase-app.js";class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},a=`${this.service}/${e}`,o=this.errors[e],i=o?function replaceTemplate(e,t){return e.replace(r,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(o,n):"Error",s=`${this.serviceName}: ${i} (${a}).`;return new FirebaseError(a,s,n)}}const r=/\{\$([^}]+)}/g;function getModularInstance(e){return e&&e._delegate?e._delegate:e}class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}let a,o;const i=new WeakMap,s=new WeakMap,c=new WeakMap,u=new WeakMap,d=new WeakMap;let p={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||c.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return wrap(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return o||(o=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(unwrap(this),t),wrap(i.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...n){const r=e.call(unwrap(this),t,...n);return c.set(r,t.sort?t.sort():[t]),wrap(r)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(s.has(e))return;const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("complete",complete),e.removeEventListener("error",error),e.removeEventListener("abort",error)},complete=()=>{t(),unlisten()},error=()=>{n(e.error||new DOMException("AbortError","AbortError")),unlisten()};e.addEventListener("complete",complete),e.addEventListener("error",error),e.addEventListener("abort",error)}));s.set(e,t)}(e),t=e,function getIdbProxyableTypes(){return a||(a=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}().some((e=>t instanceof e))?new Proxy(e,p):e);var t}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("success",success),e.removeEventListener("error",error)},success=()=>{t(wrap(e.result)),unlisten()},error=()=>{n(e.error),unlisten()};e.addEventListener("success",success),e.addEventListener("error",error)}));return t.then((t=>{t instanceof IDBCursor&&i.set(t,e)})).catch((()=>{})),d.set(t,e),t}(e);if(u.has(e))return u.get(e);const t=transformCachableValue(e);return t!==e&&(u.set(e,t),d.set(t,e)),t}const unwrap=e=>d.get(e);function openDB(e,t,{blocked:n,upgrade:r,blocking:a,terminated:o}={}){const i=indexedDB.open(e,t),s=wrap(i);return r&&i.addEventListener("upgradeneeded",(e=>{r(wrap(i.result),e.oldVersion,e.newVersion,wrap(i.transaction),e)})),n&&i.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),s.then((e=>{o&&e.addEventListener("close",(()=>o())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),s}function deleteDB(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",(e=>t(e.oldVersion,e))),wrap(n).then((()=>{}))}const l=["get","getKey","getAll","getAllKeys","count"],g=["put","add","delete","clear"],f=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(f.get(t))return f.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,a=g.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!a&&!l.includes(n))return;const method=async function(e,...t){const o=this.transaction(e,a?"readwrite":"readonly");let i=o.store;return r&&(i=i.index(t.shift())),(await Promise.all([i[n](...t),a&&o.done]))[0]};return f.set(t,method),method}!function replaceTraps(e){p=e(p)}((e=>Object.assign(Object.assign({},e),{get:(t,n,r)=>getMethod(t,n)||e.get(t,n,r),has:(t,n)=>!!getMethod(t,n)||e.has(t,n)})));const h="@firebase/installations",w="0.6.12-canary.70e08cf95",m=1e4,y=`w:${w}`,b="FIS_v2",v=36e5,k=new 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 isServerError(e){return e instanceof FirebaseError&&e.code.includes("request-failed")}function getInstallationsEndpoint({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function extractAuthTokenInfoFromResponse(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function getErrorFromResponse(e,t){const n=(await t.json()).error;return k.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function getHeaders$1({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function getHeadersWithAuth(e,{refreshToken:t}){const n=getHeaders$1(e);return n.append("Authorization",function getAuthorizationHeader(e){return`${b} ${e}`}(t)),n}async function retryIfServerError(e){const t=await e();return t.status>=500&&t.status<600?e():t}function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}const T=/^[cdef][\w-]{21}$/;function generateFid(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function encode(e){const t=function bufferToBase64UrlSafe(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(e);return T.test(t)?t:""}catch(e){return""}}function getKey$1(e){return`${e.appName}!${e.appId}`}const I=new Map;function fidChanged(e,t){const n=getKey$1(e);callFidChangeCallbacks(n,t),function broadcastFidChange(e,t){const n=function getBroadcastChannel(){!S&&"BroadcastChannel"in self&&(S=new BroadcastChannel("[Firebase] FID Change"),S.onmessage=e=>{callFidChangeCallbacks(e.data.key,e.data.fid)});return S}();n&&n.postMessage({key:e,fid:t});!function closeBroadcastChannel(){0===I.size&&S&&(S.close(),S=null)}()}(n,t)}function callFidChangeCallbacks(e,t){const n=I.get(e);if(n)for(const e of n)e(t)}let S=null;const E="firebase-installations-store";let D=null;function getDbPromise$1(){return D||(D=openDB("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(E)}})),D}async function set(e,t){const n=getKey$1(e),r=(await getDbPromise$1()).transaction(E,"readwrite"),a=r.objectStore(E),o=await a.get(n);return await a.put(t,n),await r.done,o&&o.fid===t.fid||fidChanged(e,t.fid),t}async function remove(e){const t=getKey$1(e),n=(await getDbPromise$1()).transaction(E,"readwrite");await n.objectStore(E).delete(t),await n.done}async function update(e,t){const n=getKey$1(e),r=(await getDbPromise$1()).transaction(E,"readwrite"),a=r.objectStore(E),o=await a.get(n),i=t(o);return void 0===i?await a.delete(n):await a.put(i,n),await r.done,!i||o&&o.fid===i.fid||fidChanged(e,i.fid),i}async function getInstallationEntry(e){let t;const n=await update(e.appConfig,(n=>{const r=function updateOrCreateInstallationEntry(e){const t=e||{fid:generateFid(),registrationStatus:0};return clearTimedOutRequest(t)}(n),a=function triggerRegistrationIfNecessary(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(k.create("app-offline"))}}const n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=async function registerInstallation(e,t){try{const n=await async function createInstallationRequest({appConfig:e,heartbeatServiceProvider:t},{fid:n}){const r=getInstallationsEndpoint(e),a=getHeaders$1(e),o=t.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&a.append("x-firebase-client",e)}const i={fid:n,authVersion:b,appId:e.appId,sdkVersion:y},s={method:"POST",headers:a,body:JSON.stringify(i)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){const e=await c.json();return{fid:e.fid||n,registrationStatus:2,refreshToken:e.refreshToken,authToken:extractAuthTokenInfoFromResponse(e.authToken)}}throw await getErrorFromResponse("Create Installation",c)}(e,t);return set(e.appConfig,n)}catch(n){throw isServerError(n)&&409===n.customData.serverCode?await remove(e.appConfig):await set(e.appConfig,{fid:t.fid,registrationStatus:0}),n}}(e,n);return{installationEntry:n,registrationPromise:r}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:waitUntilFidRegistration(e)}:{installationEntry:t}}(e,r);return t=a.registrationPromise,a.installationEntry}));return""===n.fid?{installationEntry:await t}:{installationEntry:n,registrationPromise:t}}async function waitUntilFidRegistration(e){let t=await updateInstallationRequest(e.appConfig);for(;1===t.registrationStatus;)await sleep(100),t=await updateInstallationRequest(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:n}=await getInstallationEntry(e);return n||t}return t}function updateInstallationRequest(e){return update(e,(e=>{if(!e)throw k.create("installation-not-found");return clearTimedOutRequest(e)}))}function clearTimedOutRequest(e){return function hasInstallationRequestTimedOut(e){return 1===e.registrationStatus&&e.registrationTime+m<Date.now()}(e)?{fid:e.fid,registrationStatus:0}:e}async function generateAuthTokenRequest({appConfig:e,heartbeatServiceProvider:t},n){const r=function getGenerateAuthTokenEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}/authTokens:generate`}(e,n),a=getHeadersWithAuth(e,n),o=t.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&a.append("x-firebase-client",e)}const i={installation:{sdkVersion:y,appId:e.appId}},s={method:"POST",headers:a,body:JSON.stringify(i)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){return extractAuthTokenInfoFromResponse(await c.json())}throw await getErrorFromResponse("Generate Auth Token",c)}async function refreshAuthToken(e,t=!1){let n;const r=await update(e.appConfig,(r=>{if(!isEntryRegistered(r))throw k.create("not-registered");const a=r.authToken;if(!t&&function isAuthTokenValid(e){return 2===e.requestStatus&&!function isAuthTokenExpired(e){const t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+v}(e)}(a))return r;if(1===a.requestStatus)return n=async function waitUntilAuthTokenRequest(e,t){let n=await updateAuthTokenRequest(e.appConfig);for(;1===n.authToken.requestStatus;)await sleep(100),n=await updateAuthTokenRequest(e.appConfig);const r=n.authToken;return 0===r.requestStatus?refreshAuthToken(e,t):r}(e,t),r;{if(!navigator.onLine)throw k.create("app-offline");const t=function makeAuthTokenRequestInProgressEntry(e){const t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(r);return n=async function fetchAuthTokenFromServer(e,t){try{const n=await generateAuthTokenRequest(e,t),r=Object.assign(Object.assign({},t),{authToken:n});return await set(e.appConfig,r),n}catch(n){if(!isServerError(n)||401!==n.customData.serverCode&&404!==n.customData.serverCode){const n=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await set(e.appConfig,n)}else await remove(e.appConfig);throw n}}(e,t),t}}));return n?await n:r.authToken}function updateAuthTokenRequest(e){return update(e,(e=>{if(!isEntryRegistered(e))throw k.create("not-registered");return function hasAuthTokenRequestTimedOut(e){return 1===e.requestStatus&&e.requestTime+m<Date.now()}(e.authToken)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e}))}function isEntryRegistered(e){return void 0!==e&&2===e.registrationStatus}async function getToken$2(e,t=!1){const n=e;await async function completeInstallationRegistration(e){const{registrationPromise:t}=await getInstallationEntry(e);t&&await t}(n);return(await refreshAuthToken(n,t)).token}function getMissingValueError$1(e){return k.create("missing-app-config-values",{valueName:e})}const C="installations",publicFactory=e=>{const t=e.getProvider("app").getImmediate(),n=function extractAppConfig$1(e){if(!e||!e.options)throw getMissingValueError$1("App Configuration");if(!e.name)throw getMissingValueError$1("App Name");const t=["projectId","apiKey","appId"];for(const n of t)if(!e.options[n])throw getMissingValueError$1(n);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:n,heartbeatServiceProvider:_getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},internalFactory=e=>{const t=e.getProvider("app").getImmediate(),n=_getProvider(t,C).getImmediate();return{getId:()=>async function getId(e){const t=e,{installationEntry:n,registrationPromise:r}=await getInstallationEntry(t);return r?r.catch(console.error):refreshAuthToken(t).catch(console.error),n.fid}(n),getToken:e=>getToken$2(n,e)}};!function registerInstallations(){t(new Component(C,publicFactory,"PUBLIC")),t(new Component("installations-internal",internalFactory,"PRIVATE"))}(),e(h,w),e(h,w,"esm2017");const P="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",A="google.c.a.c_id",M=1e4;var O,j;function arrayToBase64(e){const t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function base64ToArray(e){const t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;++e)r[e]=n.charCodeAt(e);return r}!function(e){e[e.DATA_MESSAGE=1]="DATA_MESSAGE",e[e.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION"}(O||(O={})),function(e){e.PUSH_RECEIVED="push-received",e.NOTIFICATION_CLICKED="notification-clicked"}(j||(j={}));const B="fcm_token_details_db",$="fcm_token_object_Store";const R="firebase-messaging-store";let F=null;function getDbPromise(){return F||(F=openDB("firebase-messaging-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(R)}})),F}async function dbGet(e){const t=getKey(e),n=await getDbPromise(),r=await n.transaction(R).objectStore(R).get(t);if(r)return r;{const t=await async function migrateOldDatabase(e){if("databases"in indexedDB){const e=(await indexedDB.databases()).map((e=>e.name));if(!e.includes(B))return null}let t=null;return(await openDB(B,5,{upgrade:async(n,r,a,o)=>{var i;if(r<2)return;if(!n.objectStoreNames.contains($))return;const s=o.objectStore($),c=await s.index("fcmSenderId").get(e);if(await s.clear(),c)if(2===r){const e=c;if(!e.auth||!e.p256dh||!e.endpoint)return;t={token:e.fcmToken,createTime:null!==(i=e.createTime)&&void 0!==i?i:Date.now(),subscriptionOptions:{auth:e.auth,p256dh:e.p256dh,endpoint:e.endpoint,swScope:e.swScope,vapidKey:"string"==typeof e.vapidKey?e.vapidKey:arrayToBase64(e.vapidKey)}}}else if(3===r){const e=c;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:arrayToBase64(e.auth),p256dh:arrayToBase64(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:arrayToBase64(e.vapidKey)}}}else if(4===r){const e=c;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:arrayToBase64(e.auth),p256dh:arrayToBase64(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:arrayToBase64(e.vapidKey)}}}}})).close(),await deleteDB(B),await deleteDB("fcm_vapid_details_db"),await deleteDB("undefined"),function checkTokenDetails(e){if(!e||!e.subscriptionOptions)return!1;const{subscriptionOptions:t}=e;return"number"==typeof e.createTime&&e.createTime>0&&"string"==typeof e.token&&e.token.length>0&&"string"==typeof t.auth&&t.auth.length>0&&"string"==typeof t.p256dh&&t.p256dh.length>0&&"string"==typeof t.endpoint&&t.endpoint.length>0&&"string"==typeof t.swScope&&t.swScope.length>0&&"string"==typeof t.vapidKey&&t.vapidKey.length>0}(t)?t:null}(e.appConfig.senderId);if(t)return await dbSet(e,t),t}}async function dbSet(e,t){const n=getKey(e),r=(await getDbPromise()).transaction(R,"readwrite");return await r.objectStore(R).put(t,n),await r.done,t}function getKey({appConfig:e}){return e.appId}const K=new ErrorFactory("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function requestDeleteToken(e,t){const n={method:"DELETE",headers:await getHeaders(e)};try{const r=await fetch(`${getEndpoint(e.appConfig)}/${t}`,n),a=await r.json();if(a.error){const e=a.error.message;throw K.create("token-unsubscribe-failed",{errorInfo:e})}}catch(e){throw K.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function getEndpoint({projectId:e}){return`https://fcmregistrations.googleapis.com/v1/projects/${e}/registrations`}async function getHeaders({appConfig:e,installations:t}){const n=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${n}`})}function getBody({p256dh:e,auth:t,endpoint:n,vapidKey:r}){const a={web:{endpoint:n,auth:t,p256dh:e}};return r!==P&&(a.web.applicationPubKey=r),a}async function getTokenInternal(e){const t=await async function getPushSubscription(e,t){const n=await e.pushManager.getSubscription();if(n)return n;return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:base64ToArray(t)})}(e.swRegistration,e.vapidKey),n={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:arrayToBase64(t.getKey("auth")),p256dh:arrayToBase64(t.getKey("p256dh"))},r=await dbGet(e.firebaseDependencies);if(r){if(function isTokenValid(e,t){const n=t.vapidKey===e.vapidKey,r=t.endpoint===e.endpoint,a=t.auth===e.auth,o=t.p256dh===e.p256dh;return n&&r&&a&&o}(r.subscriptionOptions,n))return Date.now()>=r.createTime+6048e5?async function updateToken(e,t){try{const n=await async function requestUpdateToken(e,t){const n=await getHeaders(e),r=getBody(t.subscriptionOptions),a={method:"PATCH",headers:n,body:JSON.stringify(r)};let o;try{const n=await fetch(`${getEndpoint(e.appConfig)}/${t.token}`,a);o=await n.json()}catch(e){throw K.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(o.error){const e=o.error.message;throw K.create("token-update-failed",{errorInfo:e})}if(!o.token)throw K.create("token-update-no-token");return o.token}(e.firebaseDependencies,t),r=Object.assign(Object.assign({},t),{token:n,createTime:Date.now()});return await dbSet(e.firebaseDependencies,r),n}catch(e){throw e}}(e,{token:r.token,createTime:Date.now(),subscriptionOptions:n}):r.token;try{await requestDeleteToken(e.firebaseDependencies,r.token)}catch(e){console.warn(e)}return getNewToken(e.firebaseDependencies,n)}return getNewToken(e.firebaseDependencies,n)}async function deleteTokenInternal(e){const t=await dbGet(e.firebaseDependencies);t&&(await requestDeleteToken(e.firebaseDependencies,t.token),await async function dbRemove(e){const t=getKey(e),n=(await getDbPromise()).transaction(R,"readwrite");await n.objectStore(R).delete(t),await n.done}(e.firebaseDependencies));const n=await e.swRegistration.pushManager.getSubscription();return!n||n.unsubscribe()}async function getNewToken(e,t){const n=await async function requestGetToken(e,t){const n=await getHeaders(e),r=getBody(t),a={method:"POST",headers:n,body:JSON.stringify(r)};let o;try{const t=await fetch(getEndpoint(e.appConfig),a);o=await t.json()}catch(e){throw K.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(o.error){const e=o.error.message;throw K.create("token-subscribe-failed",{errorInfo:e})}if(!o.token)throw K.create("token-subscribe-no-token");return o.token}(e,t),r={token:n,createTime:Date.now(),subscriptionOptions:t};return await dbSet(e,r),r.token}function externalizePayload(e){const t={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return function propagateNotificationPayload(e,t){if(!t.notification)return;e.notification={};const n=t.notification.title;n&&(e.notification.title=n);const r=t.notification.body;r&&(e.notification.body=r);const a=t.notification.image;a&&(e.notification.image=a);const o=t.notification.icon;o&&(e.notification.icon=o)}(t,e),function propagateDataPayload(e,t){if(!t.data)return;e.data=t.data}(t,e),function propagateFcmOptions(e,t){var n,r,a,o,i;if(!t.fcmOptions&&!(null===(n=t.notification)||void 0===n?void 0:n.click_action))return;e.fcmOptions={};const s=null!==(a=null===(r=t.fcmOptions)||void 0===r?void 0:r.link)&&void 0!==a?a:null===(o=t.notification)||void 0===o?void 0:o.click_action;s&&(e.fcmOptions.link=s);const c=null===(i=t.fcmOptions)||void 0===i?void 0:i.analytics_label;c&&(e.fcmOptions.analyticsLabel=c)}(t,e),t}function getMissingValueError(e){return K.create("missing-app-config-values",{valueName:e})}!function _mergeStrings(e,t){const n=[];for(let r=0;r<e.length;r++)n.push(e.charAt(r)),r<t.length&&n.push(t.charAt(r));return n.join("")}("AzSCbw63g1R0nCw85jG8","Iaya3yLKwmgvh7cF0q4");class MessagingService{constructor(e,t,n){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;const r=function extractAppConfig(e){if(!e||!e.options)throw getMissingValueError("App Configuration Object");if(!e.name)throw getMissingValueError("App Name");const t=["projectId","apiKey","appId","messagingSenderId"],{options:n}=e;for(const e of t)if(!n[e])throw getMissingValueError(e);return{appName:e.name,projectId:n.projectId,apiKey:n.apiKey,appId:n.appId,senderId:n.messagingSenderId}}(e);this.firebaseDependencies={app:e,appConfig:r,installations:t,analyticsProvider:n}}_delete(){return Promise.resolve()}}async function registerDefaultSw(e){try{e.swRegistration=await navigator.serviceWorker.register("/firebase-messaging-sw.js",{scope:"/firebase-cloud-messaging-push-scope"}),e.swRegistration.update().catch((()=>{})),await async function waitForRegistrationActive(e){return new Promise(((t,n)=>{const r=setTimeout((()=>n(new Error("Service worker not registered after 10000 ms"))),M),a=e.installing||e.waiting;e.active?(clearTimeout(r),t()):a?a.onstatechange=e=>{var n;"activated"===(null===(n=e.target)||void 0===n?void 0:n.state)&&(a.onstatechange=null,clearTimeout(r),t())}:(clearTimeout(r),n(new Error("No incoming service worker found.")))}))}(e.swRegistration)}catch(e){throw K.create("failed-service-worker-registration",{browserErrorMessage:null==e?void 0:e.message})}}async function getToken$1(e,t){if(!navigator)throw K.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw K.create("permission-blocked");return await async function updateVapidKey(e,t){t?e.vapidKey=t:e.vapidKey||(e.vapidKey=P)}(e,null==t?void 0:t.vapidKey),await async function updateSwReg(e,t){if(t||e.swRegistration||await registerDefaultSw(e),t||!e.swRegistration){if(!(t instanceof ServiceWorkerRegistration))throw K.create("invalid-sw-registration");e.swRegistration=t}}(e,null==t?void 0:t.serviceWorkerRegistration),getTokenInternal(e)}async function logToScion(e,t,n){const r=function getEventType(e){switch(e){case j.NOTIFICATION_CLICKED:return"notification_open";case j.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}}(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(r,{message_id:n[A],message_name:n["google.c.a.c_l"],message_time:n["google.c.a.ts"],message_device_time:Math.floor(Date.now()/1e3)})}async function messageEventListener(e,t){const n=t.data;if(!n.isFirebaseMessaging)return;e.onMessageHandler&&n.messageType===j.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(externalizePayload(n)):e.onMessageHandler.next(externalizePayload(n)));const r=n.data;(function isConsoleMessage(e){return"object"==typeof e&&!!e&&A in e})(r)&&"1"===r["google.c.a.e"]&&await logToScion(e,n.messageType,r)}const x="@firebase/messaging",q="0.12.16-canary.70e08cf95",WindowMessagingFactory=e=>{const t=new MessagingService(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",(e=>messageEventListener(t,e))),t},WindowMessagingInternalFactory=e=>{const t=e.getProvider("messaging").getImmediate();return{getToken:e=>getToken$1(t,e)}};async function isWindowSupported(){try{await function validateIndexedDBOpenable(){return new Promise(((e,t)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(r);a.onsuccess=()=>{a.result.close(),n||self.indexedDB.deleteDatabase(r),e(!0)},a.onupgradeneeded=()=>{n=!1},a.onerror=()=>{var e;t((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}()}catch(e){return!1}return"undefined"!=typeof window&&function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(e){return!1}}()&&function areCookiesEnabled(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}()&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}function getMessagingInWindow(e=n()){return isWindowSupported().then((e=>{if(!e)throw K.create("unsupported-browser")}),(e=>{throw K.create("indexed-db-unsupported")})),_getProvider(getModularInstance(e),"messaging").getImmediate()}async function getToken(e,t){return getToken$1(e=getModularInstance(e),t)}function deleteToken(e){return async function deleteToken$1(e){if(!navigator)throw K.create("only-available-in-window");return e.swRegistration||await registerDefaultSw(e),deleteTokenInternal(e)}(e=getModularInstance(e))}function onMessage(e,t){return function onMessage$1(e,t){if(!navigator)throw K.create("only-available-in-window");return e.onMessageHandler=t,()=>{e.onMessageHandler=null}}(e=getModularInstance(e),t)}!function registerMessagingInWindow(){t(new Component("messaging",WindowMessagingFactory,"PUBLIC")),t(new Component("messaging-internal",WindowMessagingInternalFactory,"PRIVATE")),e(x,q),e(x,q,"esm2017")}();export{deleteToken,getMessagingInWindow as getMessaging,getToken,isWindowSupported as isSupported,onMessage};
import{registerVersion as e,_registerComponent as t,_getProvider,getApp as n}from"https://www.gstatic.com/firebasejs/11.3.0-canary.84dfeca39/firebase-app.js";class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},a=`${this.service}/${e}`,o=this.errors[e],i=o?function replaceTemplate(e,t){return e.replace(r,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(o,n):"Error",s=`${this.serviceName}: ${i} (${a}).`;return new FirebaseError(a,s,n)}}const r=/\{\$([^}]+)}/g;function getModularInstance(e){return e&&e._delegate?e._delegate:e}class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}let a,o;const i=new WeakMap,s=new WeakMap,c=new WeakMap,u=new WeakMap,d=new WeakMap;let p={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return s.get(e);if("objectStoreNames"===t)return e.objectStoreNames||c.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return wrap(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return o||(o=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(unwrap(this),t),wrap(i.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...n){const r=e.call(unwrap(this),t,...n);return c.set(r,t.sort?t.sort():[t]),wrap(r)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(s.has(e))return;const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("complete",complete),e.removeEventListener("error",error),e.removeEventListener("abort",error)},complete=()=>{t(),unlisten()},error=()=>{n(e.error||new DOMException("AbortError","AbortError")),unlisten()};e.addEventListener("complete",complete),e.addEventListener("error",error),e.addEventListener("abort",error)}));s.set(e,t)}(e),t=e,function getIdbProxyableTypes(){return a||(a=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}().some((e=>t instanceof e))?new Proxy(e,p):e);var t}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("success",success),e.removeEventListener("error",error)},success=()=>{t(wrap(e.result)),unlisten()},error=()=>{n(e.error),unlisten()};e.addEventListener("success",success),e.addEventListener("error",error)}));return t.then((t=>{t instanceof IDBCursor&&i.set(t,e)})).catch((()=>{})),d.set(t,e),t}(e);if(u.has(e))return u.get(e);const t=transformCachableValue(e);return t!==e&&(u.set(e,t),d.set(t,e)),t}const unwrap=e=>d.get(e);function openDB(e,t,{blocked:n,upgrade:r,blocking:a,terminated:o}={}){const i=indexedDB.open(e,t),s=wrap(i);return r&&i.addEventListener("upgradeneeded",(e=>{r(wrap(i.result),e.oldVersion,e.newVersion,wrap(i.transaction),e)})),n&&i.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),s.then((e=>{o&&e.addEventListener("close",(()=>o())),a&&e.addEventListener("versionchange",(e=>a(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),s}function deleteDB(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",(e=>t(e.oldVersion,e))),wrap(n).then((()=>{}))}const l=["get","getKey","getAll","getAllKeys","count"],g=["put","add","delete","clear"],f=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(f.get(t))return f.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,a=g.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!a&&!l.includes(n))return;const method=async function(e,...t){const o=this.transaction(e,a?"readwrite":"readonly");let i=o.store;return r&&(i=i.index(t.shift())),(await Promise.all([i[n](...t),a&&o.done]))[0]};return f.set(t,method),method}!function replaceTraps(e){p=e(p)}((e=>Object.assign(Object.assign({},e),{get:(t,n,r)=>getMethod(t,n)||e.get(t,n,r),has:(t,n)=>!!getMethod(t,n)||e.has(t,n)})));const h="@firebase/installations",w="0.6.12-canary.84dfeca39",m=1e4,y=`w:${w}`,b="FIS_v2",v=36e5,k=new 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 isServerError(e){return e instanceof FirebaseError&&e.code.includes("request-failed")}function getInstallationsEndpoint({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function extractAuthTokenInfoFromResponse(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function getErrorFromResponse(e,t){const n=(await t.json()).error;return k.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function getHeaders$1({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function getHeadersWithAuth(e,{refreshToken:t}){const n=getHeaders$1(e);return n.append("Authorization",function getAuthorizationHeader(e){return`${b} ${e}`}(t)),n}async function retryIfServerError(e){const t=await e();return t.status>=500&&t.status<600?e():t}function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}const T=/^[cdef][\w-]{21}$/;function generateFid(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function encode(e){const t=function bufferToBase64UrlSafe(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(e);return T.test(t)?t:""}catch(e){return""}}function getKey$1(e){return`${e.appName}!${e.appId}`}const I=new Map;function fidChanged(e,t){const n=getKey$1(e);callFidChangeCallbacks(n,t),function broadcastFidChange(e,t){const n=function getBroadcastChannel(){!S&&"BroadcastChannel"in self&&(S=new BroadcastChannel("[Firebase] FID Change"),S.onmessage=e=>{callFidChangeCallbacks(e.data.key,e.data.fid)});return S}();n&&n.postMessage({key:e,fid:t});!function closeBroadcastChannel(){0===I.size&&S&&(S.close(),S=null)}()}(n,t)}function callFidChangeCallbacks(e,t){const n=I.get(e);if(n)for(const e of n)e(t)}let S=null;const E="firebase-installations-store";let D=null;function getDbPromise$1(){return D||(D=openDB("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(E)}})),D}async function set(e,t){const n=getKey$1(e),r=(await getDbPromise$1()).transaction(E,"readwrite"),a=r.objectStore(E),o=await a.get(n);return await a.put(t,n),await r.done,o&&o.fid===t.fid||fidChanged(e,t.fid),t}async function remove(e){const t=getKey$1(e),n=(await getDbPromise$1()).transaction(E,"readwrite");await n.objectStore(E).delete(t),await n.done}async function update(e,t){const n=getKey$1(e),r=(await getDbPromise$1()).transaction(E,"readwrite"),a=r.objectStore(E),o=await a.get(n),i=t(o);return void 0===i?await a.delete(n):await a.put(i,n),await r.done,!i||o&&o.fid===i.fid||fidChanged(e,i.fid),i}async function getInstallationEntry(e){let t;const n=await update(e.appConfig,(n=>{const r=function updateOrCreateInstallationEntry(e){const t=e||{fid:generateFid(),registrationStatus:0};return clearTimedOutRequest(t)}(n),a=function triggerRegistrationIfNecessary(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(k.create("app-offline"))}}const n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=async function registerInstallation(e,t){try{const n=await async function createInstallationRequest({appConfig:e,heartbeatServiceProvider:t},{fid:n}){const r=getInstallationsEndpoint(e),a=getHeaders$1(e),o=t.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&a.append("x-firebase-client",e)}const i={fid:n,authVersion:b,appId:e.appId,sdkVersion:y},s={method:"POST",headers:a,body:JSON.stringify(i)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){const e=await c.json();return{fid:e.fid||n,registrationStatus:2,refreshToken:e.refreshToken,authToken:extractAuthTokenInfoFromResponse(e.authToken)}}throw await getErrorFromResponse("Create Installation",c)}(e,t);return set(e.appConfig,n)}catch(n){throw isServerError(n)&&409===n.customData.serverCode?await remove(e.appConfig):await set(e.appConfig,{fid:t.fid,registrationStatus:0}),n}}(e,n);return{installationEntry:n,registrationPromise:r}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:waitUntilFidRegistration(e)}:{installationEntry:t}}(e,r);return t=a.registrationPromise,a.installationEntry}));return""===n.fid?{installationEntry:await t}:{installationEntry:n,registrationPromise:t}}async function waitUntilFidRegistration(e){let t=await updateInstallationRequest(e.appConfig);for(;1===t.registrationStatus;)await sleep(100),t=await updateInstallationRequest(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:n}=await getInstallationEntry(e);return n||t}return t}function updateInstallationRequest(e){return update(e,(e=>{if(!e)throw k.create("installation-not-found");return clearTimedOutRequest(e)}))}function clearTimedOutRequest(e){return function hasInstallationRequestTimedOut(e){return 1===e.registrationStatus&&e.registrationTime+m<Date.now()}(e)?{fid:e.fid,registrationStatus:0}:e}async function generateAuthTokenRequest({appConfig:e,heartbeatServiceProvider:t},n){const r=function getGenerateAuthTokenEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}/authTokens:generate`}(e,n),a=getHeadersWithAuth(e,n),o=t.getImmediate({optional:!0});if(o){const e=await o.getHeartbeatsHeader();e&&a.append("x-firebase-client",e)}const i={installation:{sdkVersion:y,appId:e.appId}},s={method:"POST",headers:a,body:JSON.stringify(i)},c=await retryIfServerError((()=>fetch(r,s)));if(c.ok){return extractAuthTokenInfoFromResponse(await c.json())}throw await getErrorFromResponse("Generate Auth Token",c)}async function refreshAuthToken(e,t=!1){let n;const r=await update(e.appConfig,(r=>{if(!isEntryRegistered(r))throw k.create("not-registered");const a=r.authToken;if(!t&&function isAuthTokenValid(e){return 2===e.requestStatus&&!function isAuthTokenExpired(e){const t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+v}(e)}(a))return r;if(1===a.requestStatus)return n=async function waitUntilAuthTokenRequest(e,t){let n=await updateAuthTokenRequest(e.appConfig);for(;1===n.authToken.requestStatus;)await sleep(100),n=await updateAuthTokenRequest(e.appConfig);const r=n.authToken;return 0===r.requestStatus?refreshAuthToken(e,t):r}(e,t),r;{if(!navigator.onLine)throw k.create("app-offline");const t=function makeAuthTokenRequestInProgressEntry(e){const t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(r);return n=async function fetchAuthTokenFromServer(e,t){try{const n=await generateAuthTokenRequest(e,t),r=Object.assign(Object.assign({},t),{authToken:n});return await set(e.appConfig,r),n}catch(n){if(!isServerError(n)||401!==n.customData.serverCode&&404!==n.customData.serverCode){const n=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await set(e.appConfig,n)}else await remove(e.appConfig);throw n}}(e,t),t}}));return n?await n:r.authToken}function updateAuthTokenRequest(e){return update(e,(e=>{if(!isEntryRegistered(e))throw k.create("not-registered");return function hasAuthTokenRequestTimedOut(e){return 1===e.requestStatus&&e.requestTime+m<Date.now()}(e.authToken)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e}))}function isEntryRegistered(e){return void 0!==e&&2===e.registrationStatus}async function getToken$2(e,t=!1){const n=e;await async function completeInstallationRegistration(e){const{registrationPromise:t}=await getInstallationEntry(e);t&&await t}(n);return(await refreshAuthToken(n,t)).token}function getMissingValueError$1(e){return k.create("missing-app-config-values",{valueName:e})}const C="installations",publicFactory=e=>{const t=e.getProvider("app").getImmediate(),n=function extractAppConfig$1(e){if(!e||!e.options)throw getMissingValueError$1("App Configuration");if(!e.name)throw getMissingValueError$1("App Name");const t=["projectId","apiKey","appId"];for(const n of t)if(!e.options[n])throw getMissingValueError$1(n);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:n,heartbeatServiceProvider:_getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},internalFactory=e=>{const t=e.getProvider("app").getImmediate(),n=_getProvider(t,C).getImmediate();return{getId:()=>async function getId(e){const t=e,{installationEntry:n,registrationPromise:r}=await getInstallationEntry(t);return r?r.catch(console.error):refreshAuthToken(t).catch(console.error),n.fid}(n),getToken:e=>getToken$2(n,e)}};!function registerInstallations(){t(new Component(C,publicFactory,"PUBLIC")),t(new Component("installations-internal",internalFactory,"PRIVATE"))}(),e(h,w),e(h,w,"esm2017");const P="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",A="google.c.a.c_id",M=1e4;var O,j;function arrayToBase64(e){const t=new Uint8Array(e);return btoa(String.fromCharCode(...t)).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function base64ToArray(e){const t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;++e)r[e]=n.charCodeAt(e);return r}!function(e){e[e.DATA_MESSAGE=1]="DATA_MESSAGE",e[e.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION"}(O||(O={})),function(e){e.PUSH_RECEIVED="push-received",e.NOTIFICATION_CLICKED="notification-clicked"}(j||(j={}));const B="fcm_token_details_db",$="fcm_token_object_Store";const R="firebase-messaging-store";let F=null;function getDbPromise(){return F||(F=openDB("firebase-messaging-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(R)}})),F}async function dbGet(e){const t=getKey(e),n=await getDbPromise(),r=await n.transaction(R).objectStore(R).get(t);if(r)return r;{const t=await async function migrateOldDatabase(e){if("databases"in indexedDB){const e=(await indexedDB.databases()).map((e=>e.name));if(!e.includes(B))return null}let t=null;return(await openDB(B,5,{upgrade:async(n,r,a,o)=>{var i;if(r<2)return;if(!n.objectStoreNames.contains($))return;const s=o.objectStore($),c=await s.index("fcmSenderId").get(e);if(await s.clear(),c)if(2===r){const e=c;if(!e.auth||!e.p256dh||!e.endpoint)return;t={token:e.fcmToken,createTime:null!==(i=e.createTime)&&void 0!==i?i:Date.now(),subscriptionOptions:{auth:e.auth,p256dh:e.p256dh,endpoint:e.endpoint,swScope:e.swScope,vapidKey:"string"==typeof e.vapidKey?e.vapidKey:arrayToBase64(e.vapidKey)}}}else if(3===r){const e=c;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:arrayToBase64(e.auth),p256dh:arrayToBase64(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:arrayToBase64(e.vapidKey)}}}else if(4===r){const e=c;t={token:e.fcmToken,createTime:e.createTime,subscriptionOptions:{auth:arrayToBase64(e.auth),p256dh:arrayToBase64(e.p256dh),endpoint:e.endpoint,swScope:e.swScope,vapidKey:arrayToBase64(e.vapidKey)}}}}})).close(),await deleteDB(B),await deleteDB("fcm_vapid_details_db"),await deleteDB("undefined"),function checkTokenDetails(e){if(!e||!e.subscriptionOptions)return!1;const{subscriptionOptions:t}=e;return"number"==typeof e.createTime&&e.createTime>0&&"string"==typeof e.token&&e.token.length>0&&"string"==typeof t.auth&&t.auth.length>0&&"string"==typeof t.p256dh&&t.p256dh.length>0&&"string"==typeof t.endpoint&&t.endpoint.length>0&&"string"==typeof t.swScope&&t.swScope.length>0&&"string"==typeof t.vapidKey&&t.vapidKey.length>0}(t)?t:null}(e.appConfig.senderId);if(t)return await dbSet(e,t),t}}async function dbSet(e,t){const n=getKey(e),r=(await getDbPromise()).transaction(R,"readwrite");return await r.objectStore(R).put(t,n),await r.done,t}function getKey({appConfig:e}){return e.appId}const K=new ErrorFactory("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function requestDeleteToken(e,t){const n={method:"DELETE",headers:await getHeaders(e)};try{const r=await fetch(`${getEndpoint(e.appConfig)}/${t}`,n),a=await r.json();if(a.error){const e=a.error.message;throw K.create("token-unsubscribe-failed",{errorInfo:e})}}catch(e){throw K.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function getEndpoint({projectId:e}){return`https://fcmregistrations.googleapis.com/v1/projects/${e}/registrations`}async function getHeaders({appConfig:e,installations:t}){const n=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${n}`})}function getBody({p256dh:e,auth:t,endpoint:n,vapidKey:r}){const a={web:{endpoint:n,auth:t,p256dh:e}};return r!==P&&(a.web.applicationPubKey=r),a}async function getTokenInternal(e){const t=await async function getPushSubscription(e,t){const n=await e.pushManager.getSubscription();if(n)return n;return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:base64ToArray(t)})}(e.swRegistration,e.vapidKey),n={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:arrayToBase64(t.getKey("auth")),p256dh:arrayToBase64(t.getKey("p256dh"))},r=await dbGet(e.firebaseDependencies);if(r){if(function isTokenValid(e,t){const n=t.vapidKey===e.vapidKey,r=t.endpoint===e.endpoint,a=t.auth===e.auth,o=t.p256dh===e.p256dh;return n&&r&&a&&o}(r.subscriptionOptions,n))return Date.now()>=r.createTime+6048e5?async function updateToken(e,t){try{const n=await async function requestUpdateToken(e,t){const n=await getHeaders(e),r=getBody(t.subscriptionOptions),a={method:"PATCH",headers:n,body:JSON.stringify(r)};let o;try{const n=await fetch(`${getEndpoint(e.appConfig)}/${t.token}`,a);o=await n.json()}catch(e){throw K.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(o.error){const e=o.error.message;throw K.create("token-update-failed",{errorInfo:e})}if(!o.token)throw K.create("token-update-no-token");return o.token}(e.firebaseDependencies,t),r=Object.assign(Object.assign({},t),{token:n,createTime:Date.now()});return await dbSet(e.firebaseDependencies,r),n}catch(e){throw e}}(e,{token:r.token,createTime:Date.now(),subscriptionOptions:n}):r.token;try{await requestDeleteToken(e.firebaseDependencies,r.token)}catch(e){console.warn(e)}return getNewToken(e.firebaseDependencies,n)}return getNewToken(e.firebaseDependencies,n)}async function deleteTokenInternal(e){const t=await dbGet(e.firebaseDependencies);t&&(await requestDeleteToken(e.firebaseDependencies,t.token),await async function dbRemove(e){const t=getKey(e),n=(await getDbPromise()).transaction(R,"readwrite");await n.objectStore(R).delete(t),await n.done}(e.firebaseDependencies));const n=await e.swRegistration.pushManager.getSubscription();return!n||n.unsubscribe()}async function getNewToken(e,t){const n=await async function requestGetToken(e,t){const n=await getHeaders(e),r=getBody(t),a={method:"POST",headers:n,body:JSON.stringify(r)};let o;try{const t=await fetch(getEndpoint(e.appConfig),a);o=await t.json()}catch(e){throw K.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(o.error){const e=o.error.message;throw K.create("token-subscribe-failed",{errorInfo:e})}if(!o.token)throw K.create("token-subscribe-no-token");return o.token}(e,t),r={token:n,createTime:Date.now(),subscriptionOptions:t};return await dbSet(e,r),r.token}function externalizePayload(e){const t={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return function propagateNotificationPayload(e,t){if(!t.notification)return;e.notification={};const n=t.notification.title;n&&(e.notification.title=n);const r=t.notification.body;r&&(e.notification.body=r);const a=t.notification.image;a&&(e.notification.image=a);const o=t.notification.icon;o&&(e.notification.icon=o)}(t,e),function propagateDataPayload(e,t){if(!t.data)return;e.data=t.data}(t,e),function propagateFcmOptions(e,t){var n,r,a,o,i;if(!t.fcmOptions&&!(null===(n=t.notification)||void 0===n?void 0:n.click_action))return;e.fcmOptions={};const s=null!==(a=null===(r=t.fcmOptions)||void 0===r?void 0:r.link)&&void 0!==a?a:null===(o=t.notification)||void 0===o?void 0:o.click_action;s&&(e.fcmOptions.link=s);const c=null===(i=t.fcmOptions)||void 0===i?void 0:i.analytics_label;c&&(e.fcmOptions.analyticsLabel=c)}(t,e),t}function getMissingValueError(e){return K.create("missing-app-config-values",{valueName:e})}!function _mergeStrings(e,t){const n=[];for(let r=0;r<e.length;r++)n.push(e.charAt(r)),r<t.length&&n.push(t.charAt(r));return n.join("")}("AzSCbw63g1R0nCw85jG8","Iaya3yLKwmgvh7cF0q4");class MessagingService{constructor(e,t,n){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;const r=function extractAppConfig(e){if(!e||!e.options)throw getMissingValueError("App Configuration Object");if(!e.name)throw getMissingValueError("App Name");const t=["projectId","apiKey","appId","messagingSenderId"],{options:n}=e;for(const e of t)if(!n[e])throw getMissingValueError(e);return{appName:e.name,projectId:n.projectId,apiKey:n.apiKey,appId:n.appId,senderId:n.messagingSenderId}}(e);this.firebaseDependencies={app:e,appConfig:r,installations:t,analyticsProvider:n}}_delete(){return Promise.resolve()}}async function registerDefaultSw(e){try{e.swRegistration=await navigator.serviceWorker.register("/firebase-messaging-sw.js",{scope:"/firebase-cloud-messaging-push-scope"}),e.swRegistration.update().catch((()=>{})),await async function waitForRegistrationActive(e){return new Promise(((t,n)=>{const r=setTimeout((()=>n(new Error("Service worker not registered after 10000 ms"))),M),a=e.installing||e.waiting;e.active?(clearTimeout(r),t()):a?a.onstatechange=e=>{var n;"activated"===(null===(n=e.target)||void 0===n?void 0:n.state)&&(a.onstatechange=null,clearTimeout(r),t())}:(clearTimeout(r),n(new Error("No incoming service worker found.")))}))}(e.swRegistration)}catch(e){throw K.create("failed-service-worker-registration",{browserErrorMessage:null==e?void 0:e.message})}}async function getToken$1(e,t){if(!navigator)throw K.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw K.create("permission-blocked");return await async function updateVapidKey(e,t){t?e.vapidKey=t:e.vapidKey||(e.vapidKey=P)}(e,null==t?void 0:t.vapidKey),await async function updateSwReg(e,t){if(t||e.swRegistration||await registerDefaultSw(e),t||!e.swRegistration){if(!(t instanceof ServiceWorkerRegistration))throw K.create("invalid-sw-registration");e.swRegistration=t}}(e,null==t?void 0:t.serviceWorkerRegistration),getTokenInternal(e)}async function logToScion(e,t,n){const r=function getEventType(e){switch(e){case j.NOTIFICATION_CLICKED:return"notification_open";case j.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}}(t);(await e.firebaseDependencies.analyticsProvider.get()).logEvent(r,{message_id:n[A],message_name:n["google.c.a.c_l"],message_time:n["google.c.a.ts"],message_device_time:Math.floor(Date.now()/1e3)})}async function messageEventListener(e,t){const n=t.data;if(!n.isFirebaseMessaging)return;e.onMessageHandler&&n.messageType===j.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(externalizePayload(n)):e.onMessageHandler.next(externalizePayload(n)));const r=n.data;(function isConsoleMessage(e){return"object"==typeof e&&!!e&&A in e})(r)&&"1"===r["google.c.a.e"]&&await logToScion(e,n.messageType,r)}const x="@firebase/messaging",q="0.12.16-canary.84dfeca39",WindowMessagingFactory=e=>{const t=new MessagingService(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",(e=>messageEventListener(t,e))),t},WindowMessagingInternalFactory=e=>{const t=e.getProvider("messaging").getImmediate();return{getToken:e=>getToken$1(t,e)}};async function isWindowSupported(){try{await function validateIndexedDBOpenable(){return new Promise(((e,t)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(r);a.onsuccess=()=>{a.result.close(),n||self.indexedDB.deleteDatabase(r),e(!0)},a.onupgradeneeded=()=>{n=!1},a.onerror=()=>{var e;t((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}()}catch(e){return!1}return"undefined"!=typeof window&&function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(e){return!1}}()&&function areCookiesEnabled(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}()&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}function getMessagingInWindow(e=n()){return isWindowSupported().then((e=>{if(!e)throw K.create("unsupported-browser")}),(e=>{throw K.create("indexed-db-unsupported")})),_getProvider(getModularInstance(e),"messaging").getImmediate()}async function getToken(e,t){return getToken$1(e=getModularInstance(e),t)}function deleteToken(e){return async function deleteToken$1(e){if(!navigator)throw K.create("only-available-in-window");return e.swRegistration||await registerDefaultSw(e),deleteTokenInternal(e)}(e=getModularInstance(e))}function onMessage(e,t){return function onMessage$1(e,t){if(!navigator)throw K.create("only-available-in-window");return e.onMessageHandler=t,()=>{e.onMessageHandler=null}}(e=getModularInstance(e),t)}!function registerMessagingInWindow(){t(new Component("messaging",WindowMessagingFactory,"PUBLIC")),t(new Component("messaging-internal",WindowMessagingInternalFactory,"PRIVATE")),e(x,q),e(x,q,"esm2017")}();export{deleteToken,getMessagingInWindow as getMessaging,getToken,isWindowSupported as isSupported,onMessage};
//# sourceMappingURL=firebase-messaging.js.map

@@ -1,2 +0,2 @@

((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(Mn,Ln){try{!(function(){function B(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t,j=B(Mn);class F extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,F.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,U.prototype.create)}}class U{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){var r,n=t[0]||{},a=this.service+"/"+e,i=this.errors[e],i=i?(r=n,i.replace(q,(e,t)=>{var n=r[t];return null!=n?String(n):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${a}).`;return new F(a,i,n)}}let q=/\{\$([^}]+)}/g;class e{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}(I=t=t||{})[I.DEBUG=0]="DEBUG",I[I.VERBOSE=1]="VERBOSE",I[I.INFO=2]="INFO",I[I.WARN=3]="WARN",I[I.ERROR=4]="ERROR",I[I.SILENT=5]="SILENT";let x={debug:t.DEBUG,verbose:t.VERBOSE,info:t.INFO,warn:t.WARN,error:t.ERROR,silent:t.SILENT},H=t.INFO,V={[t.DEBUG]:"log",[t.VERBOSE]:"log",[t.INFO]:"info",[t.WARN]:"warn",[t.ERROR]:"error"},$=(e,t,...n)=>{if(!(t<e.logLevel)){var r=(new Date).toISOString(),a=V[t];if(!a)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[a](`[${r}] ${e.name}:`,...n)}};function W(e){if("loading"===document.readyState)return"loading";var t=u();if(t){if(e<t.domInteractive)return"loading";if(0===t.domContentLoadedEventStart||e<t.domContentLoadedEventStart)return"dom-interactive";if(0===t.domComplete||e<t.domComplete)return"dom-content-loaded"}return"complete"}function K(e,t){var n="";try{for(;e&&9!==e.nodeType;){var r=e,a=r.id?"#"+r.id:ne(r)+(r.classList&&r.classList.value&&r.classList.value.trim()&&r.classList.value.trim().length?"."+r.classList.value.trim().replace(/\s+/g,"."):"");if(n.length+a.length>(t||100)-1)return n||a;if(n=n?a+">"+n:a,r.id)break;e=r.parentNode}}catch(e){}return n}function z(a,e){var o,s,i,c;o=function(e){n={},(e=e).entries.length&&(t=e.entries.reduce(function(e,t){return e&&e.value>t.value?e:t}))&&t.sources&&t.sources.length&&(r=(r=t.sources).find(function(e){return e.node&&1===e.node.nodeType})||r[0])&&(n={largestShiftTarget:K(r.node),largestShiftTime:t.startTime,largestShiftValue:t.value,largestShiftSource:r,largestShiftEntry:t,loadState:W(t.startTime)});var t,n,r=Object.assign(e,{attribution:n});a(r)},s=e||{},i=se(function(){function e(e){e.forEach(function(e){var t,n;e.hadRecentInput||(t=a[0],n=a[a.length-1],r&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(r+=e.value,a.push(e)):(r=e.value,a=[e]))}),r>n.value&&(n.value=r,n.entries=a,t())}var t,n=p("CLS",0),r=0,a=[],i=f("layout-shift",e);i&&(t=g(o,n,ge,s.reportAllChanges),m(function(){e(i.takeRecords()),t(!0)}),d(function(){n=p("CLS",r=0),t=g(o,n,ge,s.reportAllChanges),oe(function(){return t()})}),setTimeout(t,0))}),c=c||{},pe(function(){var t,n=de(),r=p("FCP"),a=f("paint",function(e){e.forEach(function(e){"first-contentful-paint"===e.name&&(a.disconnect(),e.startTime<n.firstHiddenTime)&&(r.value=Math.max(e.startTime-ie(),0),r.entries.push(e),t(!0))})});a&&(t=g(i,r,fe,c.reportAllChanges),d(function(e){r=p("FCP"),t=g(i,r,fe,c.reportAllChanges),oe(function(){r.value=performance.now()-e.timeStamp,t(!0)})}))})}function G(i,o){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(o=o||{},pe(function(){var e;ye();function t(t){Se(function(){t.forEach(_e);var e=Ee();e&&e.latency!==n.value&&(n.value=e.latency,n.entries=e.entries,a())})}var n=p("INP"),r=f("event",t,{durationThreshold:null!=(e=o.durationThreshold)?e:40}),a=g(i,n,Ie,o.reportAllChanges);r&&(r.observe({type:"first-input",buffered:!0}),m(function(){t(r.takeRecords()),a(!0)}),d(function(){we=be(),s.length=0,c.clear(),n=p("INP"),a=g(i,n,Ie,o.reportAllChanges)}))}))}function J(e){o=o.concat(e),Le()}function Z(){10<h.size&&h.forEach(function(e,t){c.has(t)||h.delete(t)});var n=s.map(function(e){return ke.get(e.entries[0])}),r=l.length-50;l=l.filter(function(e,t){return r<=t||n.includes(e)});for(var a=new Set,e=0;e<l.length;e++){var t=l[e];Ae(t.startTime,t.processingEnd).forEach(function(e){a.add(e)})}var i=o.length-1-50;o=o.filter(function(e,t){return e.startTime>Ce&&i<t||a.has(e)}),Me=-1}function X(c,e){ee=ee||f("long-animation-frame",J),G(function(e){t=(e=e).entries[0],s=ke.get(t),n=t.processingStart,r=s.processingEnd,s=s.entries.sort(function(e,t){return e.processingStart-t.processingStart}),a=Ae(t.startTime,r),i=(i=e.entries.find(function(e){return e.target}))&&i.target||h.get(t.interactionId),o=[t.startTime+t.duration,r].concat(a.map(function(e){return e.startTime+e.duration})),o=Math.max.apply(Math,o),i={interactionTarget:K(i),interactionTargetElement:i,interactionType:t.name.startsWith("key")?"keyboard":"pointer",interactionTime:t.startTime,nextPaintTime:o,processedEventEntries:s,longAnimationFrameEntries:a,inputDelay:n-t.startTime,processingDuration:r-n,presentationDelay:Math.max(o-r,0),loadState:W(t.startTime)};var t,n,r,a,i,o,s=Object.assign(e,{attribution:i});c(s)},e)}function Y(l,e){var o,s;o=function(e){s={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:(e=e).value},e.entries.length&&(t=u())&&(o=t.activationStart||0,r=(n=e.entries[e.entries.length-1]).url&&performance.getEntriesByType("resource").filter(function(e){return e.name===n.url})[0],c=Math.max(0,t.responseStart-o),a=Math.max(c,r?(r.requestStart||r.startTime)-o:0),i=Math.max(a,r?r.responseEnd-o:0),o=Math.max(i,n.startTime-o),s={element:K(n.element),timeToFirstByte:c,resourceLoadDelay:a-c,resourceLoadDuration:i-a,elementRenderDelay:o-i,navigationEntry:t,lcpEntry:n},n.url&&(s.url=n.url),r)&&(s.lcpResourceEntry=r);var t,n,r,a,i,o,s,c=Object.assign(e,{attribution:s});l(c)},s=e||{},pe(function(){function e(e){(e=s.reportAllChanges?e:e.slice(-1)).forEach(function(e){e.startTime<r.firstHiddenTime&&(a.value=Math.max(e.startTime-ie(),0),a.entries=[e],t())})}var t,n,r=de(),a=p("LCP"),i=f("largest-contentful-paint",e);i&&(t=g(o,a,Ne,s.reportAllChanges),n=se(function(){Pe[a.id]||(e(i.takeRecords()),i.disconnect(),Pe[a.id]=!0,t(!0))}),["keydown","click"].forEach(function(e){addEventListener(e,function(){return Se(n)},{once:!0,capture:!0})}),m(n),d(function(e){a=p("LCP"),t=g(o,a,Ne,s.reportAllChanges),oe(function(){a.value=performance.now()-e.timeStamp,Pe[a.id]=!0,t(!0)})}))})}var Q,ee,te,u=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&0<e.responseStart&&e.responseStart<performance.now())return e},ne=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},re=-1,ae=function(){return re},d=function(t){addEventListener("pageshow",function(e){e.persisted&&(re=e.timeStamp,t(e))},!0)},ie=function(){var e=u();return e&&e.activationStart||0},p=function(e,t){var n=u(),r="navigate";return 0<=ae()?r="back-forward-cache":n&&(document.prerendering||0<ie()?r="prerender":document.wasDiscarded?r="restore":n.type&&(r=n.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},f=function(e,t,n){try{var r;if(PerformanceObserver.supportedEntryTypes.includes(e))return(r=new PerformanceObserver(function(e){Promise.resolve().then(function(){t(e.getEntries())})})).observe(Object.assign({type:e,buffered:!0},n||{})),r}catch(e){}},g=function(t,n,r,a){var i,o;return function(e){0<=n.value&&(e||a)&&((o=n.value-(i||0))||void 0===i)&&(i=n.value,n.delta=o,n.rating=(e=n.value)>r[1]?"poor":e>r[0]?"needs-improvement":"good",t(n))}},oe=function(e){requestAnimationFrame(function(){return requestAnimationFrame(function(){return e()})})},m=function(e){document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&e()})},se=function(e){var t=!1;return function(){t||(e(),t=!0)}},n=-1,ce=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},r=function(e){"hidden"===document.visibilityState&&-1<n&&(n="visibilitychange"===e.type?e.timeStamp:0,ue())},le=function(){addEventListener("visibilitychange",r,!0),addEventListener("prerenderingchange",r,!0)},ue=function(){removeEventListener("visibilitychange",r,!0),removeEventListener("prerenderingchange",r,!0)},de=function(){return n<0&&(n=ce(),le(),d(function(){setTimeout(function(){n=ce(),le()},0)})),{get firstHiddenTime(){return n}}},pe=function(e){document.prerendering?addEventListener("prerenderingchange",function(){return e()},!0):e()},fe=[1800,3e3],ge=[.1,.25],me=0,he=1/0,a=0,ve=function(e){e.forEach(function(e){e.interactionId&&(he=Math.min(he,e.interactionId),a=Math.max(a,e.interactionId),me=a?(a-he)/7+1:0)})},be=function(){return Q?me:performance.interactionCount||0},ye=function(){"interactionCount"in performance||(Q=Q||f("event",ve,{type:"event",buffered:!0,durationThreshold:0}))},s=[],c=new Map,we=0,Ee=function(){var e=Math.min(s.length-1,Math.floor((be()-we)/50));return s[e]},Te=[],_e=function(t){var e,n;Te.forEach(function(e){return e(t)}),!t.interactionId&&"first-input"!==t.entryType||(n=s[s.length-1],((e=c.get(t.interactionId))||s.length<10||t.duration>n.latency)&&(e?t.duration>e.latency?(e.entries=[t],e.latency=t.duration):t.duration===e.latency&&t.startTime===e.entries[0].startTime&&e.entries.push(t):(n={id:t.interactionId,latency:t.duration,entries:[t]},c.set(n.id,n),s.push(n)),s.sort(function(e,t){return t.latency-e.latency}),10<s.length)&&s.splice(10).forEach(function(e){return c.delete(e.id)}))},Se=function(e){var t=self.requestIdleCallback||self.setTimeout,n=-1;return e=se(e),"hidden"===document.visibilityState?e():(n=t(e),m(e)),n},Ie=[200,500],o=[],l=[],Ce=0,ke=new WeakMap,h=new Map,Me=-1,Le=function(){Me<0&&(Me=Se(Z))},Ae=(Te.push(function(e){e.interactionId&&e.target&&!h.has(e.interactionId)&&h.set(e.interactionId,e.target)},function(e){var t,n=e.startTime+e.duration;Ce=Math.max(Ce,e.processingEnd);for(var r=l.length-1;0<=r;r--){var a=l[r];if(Math.abs(n-a.renderTime)<=8){(t=a).startTime=Math.min(e.startTime,t.startTime),t.processingStart=Math.min(e.processingStart,t.processingStart),t.processingEnd=Math.max(e.processingEnd,t.processingEnd),t.entries.push(e);break}}t||(t={startTime:e.startTime,processingStart:e.processingStart,processingEnd:e.processingEnd,renderTime:n,entries:[e]},l.push(t)),!e.interactionId&&"first-input"!==e.entryType||ke.set(e,t),Le()}),function(e,t){for(var n,r=[],a=0;n=o[a];a++)if(!(n.startTime+n.duration<e)){if(n.startTime>t)break;r.push(n)}return r}),Ne=[2500,4e3],Pe={};let Re=(t,e)=>e.some(e=>t instanceof e),Oe,De;let Be=new WeakMap,je=new WeakMap,Fe=new WeakMap,Ue=new WeakMap,qe=new WeakMap;let xe={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return je.get(e);if("objectStoreNames"===t)return e.objectStoreNames||Fe.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return v(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function He(r){return r!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(De=De||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(r)?function(...e){return r.apply($e(this),e),v(Be.get(this))}:function(...e){return v(r.apply($e(this),e))}:function(e,...t){var n=r.call($e(this),e,...t);return Fe.set(n,e.sort?e.sort():[e]),v(n)}}function Ve(e){var i,t;return"function"==typeof e?He(e):(e instanceof IDBTransaction&&(i=e,je.has(i)||(t=new Promise((e,t)=>{let n=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",a),i.removeEventListener("abort",a)},r=()=>{e(),n()},a=()=>{t(i.error||new DOMException("AbortError","AbortError")),n()};i.addEventListener("complete",r),i.addEventListener("error",a),i.addEventListener("abort",a)}),je.set(i,t))),Re(e,Oe=Oe||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,xe):e)}function v(e){var i,t;return e instanceof IDBRequest?(i=e,(t=new Promise((e,t)=>{let n=()=>{i.removeEventListener("success",r),i.removeEventListener("error",a)},r=()=>{e(v(i.result)),n()},a=()=>{t(i.error),n()};i.addEventListener("success",r),i.addEventListener("error",a)})).then(e=>{e instanceof IDBCursor&&Be.set(e,i)}).catch(()=>{}),qe.set(t,i),t):Ue.has(e)?Ue.get(e):((t=Ve(e))!==e&&(Ue.set(e,t),qe.set(t,e)),t)}let $e=e=>qe.get(e);let We=["get","getKey","getAll","getAllKeys","count"],Ke=["put","add","delete","clear"],ze=new Map;function Ge(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(ze.get(t))return ze.get(t);let a=t.replace(/FromIndex$/,""),i=t!==a,o=Ke.includes(a);var n;return a in(i?IDBIndex:IDBObjectStore).prototype&&(o||We.includes(a))?(n=async function(e,...t){var n=this.transaction(e,o?"readwrite":"readonly");let r=n.store;return i&&(r=r.index(t.shift())),(await Promise.all([r[a](...t),o&&n.done]))[0]},ze.set(t,n),n):void 0}}xe={...te=xe,get:(e,t,n)=>Ge(e,t)||te.get(e,t,n),has:(e,t)=>!!Ge(e,t)||te.has(e,t)};var i="@firebase/installations",Je="0.6.12-canary.70e08cf95";let Ze=1e4,Xe="w:"+Je,Ye="FIS_v2",Qe="https://firebaseinstallations.googleapis.com/v1",et=36e5;let b=new U("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 tt(e){return e instanceof F&&e.code.includes("request-failed")}function nt({projectId:e}){return Qe+`/projects/${e}/installations`}function rt(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function at(e,t){var n=(await t.json()).error;return b.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function it({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function ot(e,{refreshToken:t}){var n=it(e);return n.append("Authorization",(e=t,Ye+" "+e)),n}async function st(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function ct(t){return new Promise(e=>{setTimeout(e,t)})}let lt=/^[cdef][\w-]{21}$/,ut="";function dt(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return lt.test(t)?t:ut}catch(e){return ut}}function y(e){return e.appName+"!"+e.appId}let pt=new Map;function ft(e,t){var n=y(e),e=(gt(n,t),n),n=(()=>(!w&&"BroadcastChannel"in self&&((w=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{gt(e.data.key,e.data.fid)}),w))();n&&n.postMessage({key:e,fid:t}),0===pt.size&&w&&(w.close(),w=null)}function gt(e,t){var n=pt.get(e);if(n)for(var r of n)r(t)}let w=null;let mt="firebase-installations-database",ht=1,E="firebase-installations-store",vt=null;function bt(){return vt=vt||((e,t,{blocked:n,upgrade:r,blocking:a,terminated:i})=>{let o=indexedDB.open(e,t);var s=v(o);return r&&o.addEventListener("upgradeneeded",e=>{r(v(o.result),e.oldVersion,e.newVersion,v(o.transaction),e)}),n&&o.addEventListener("blocked",e=>n(e.oldVersion,e.newVersion,e)),s.then(e=>{i&&e.addEventListener("close",()=>i()),a&&e.addEventListener("versionchange",e=>a(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s})(mt,ht,{upgrade:(e,t)=>{0===t&&e.createObjectStore(E)}})}async function T(e,t){var n=y(e),r=(await bt()).transaction(E,"readwrite"),a=r.objectStore(E),i=await a.get(n);return await a.put(t,n),await r.done,i&&i.fid===t.fid||ft(e,t.fid),t}async function yt(e){var t=y(e),n=(await bt()).transaction(E,"readwrite");await n.objectStore(E).delete(t),await n.done}async function _(e,t){var n=y(e),r=(await bt()).transaction(E,"readwrite"),a=r.objectStore(E),i=await a.get(n),o=t(i);return void 0===o?await a.delete(n):await a.put(o,n),await r.done,!o||i&&i.fid===o.fid||ft(e,o.fid),o}async function wt(n){let r;var e=await _(n.appConfig,e=>{var t=Tt(e||{fid:dt(),registrationStatus:0}),t=((e,t)=>{var n,r;return 0===t.registrationStatus?navigator.onLine?(n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=(async(t,n)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:n})=>{let r=nt(e);var a=it(e),i=((i=t.getImmediate({optional:!0}))&&(i=await i.getHeartbeatsHeader())&&a.append("x-firebase-client",i),{fid:n,authVersion:Ye,appId:e.appId,sdkVersion:Xe});let o={method:"POST",headers:a,body:JSON.stringify(i)};if((a=await st(()=>fetch(r,o))).ok)return{fid:(i=await a.json()).fid||n,registrationStatus:2,refreshToken:i.refreshToken,authToken:rt(i.authToken)};throw await at("Create Installation",a)})(t,n);return T(t.appConfig,e)}catch(e){throw tt(e)&&409===e.customData.serverCode?await yt(t.appConfig):await T(t.appConfig,{fid:n.fid,registrationStatus:0}),e}})(e,n),{installationEntry:n,registrationPromise:r}):(n=Promise.reject(b.create("app-offline")),{installationEntry:t,registrationPromise:n}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await Et(e.appConfig);for(;1===t.registrationStatus;)await ct(100),t=await Et(e.appConfig);var n,r;return 0!==t.registrationStatus?t:({installationEntry:n,registrationPromise:r}=await wt(e),r||n)})(e)}:{installationEntry:t}})(n,t);return r=t.registrationPromise,t.installationEntry});return e.fid===ut?{installationEntry:await r}:{installationEntry:e,registrationPromise:r}}function Et(e){return _(e,e=>{if(e)return Tt(e);throw b.create("installation-not-found")})}function Tt(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+Ze<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function _t({appConfig:e,heartbeatServiceProvider:t},n){[a,i]=[e,n.fid];let r=nt(a)+`/${i}/authTokens:generate`;var a,i,o=ot(e,n),s=t.getImmediate({optional:!0}),s=(s&&(s=await s.getHeartbeatsHeader())&&o.append("x-firebase-client",s),{installation:{sdkVersion:Xe,appId:e.appId}});let c={method:"POST",headers:o,body:JSON.stringify(s)};o=await st(()=>fetch(r,c));if(o.ok)return rt(await o.json());throw await at("Generate Auth Token",o)}async function St(r,a=!1){let i;var e=await _(r.appConfig,e=>{if(!Ct(e))throw b.create("not-registered");var t,n=e.authToken;if(a||2!==(t=n).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+et})(t)){if(1===n.requestStatus)return i=(async(e,t)=>{let n=await It(e.appConfig);for(;1===n.authToken.requestStatus;)await ct(100),n=await It(e.appConfig);var r=n.authToken;return 0===r.requestStatus?St(e,t):r})(r,a),e;if(navigator.onLine)return t=e,n={requestStatus:1,requestTime:Date.now()},n=Object.assign(Object.assign({},t),{authToken:n}),i=(async(t,n)=>{try{var e=await _t(t,n),r=Object.assign(Object.assign({},n),{authToken:e});return await T(t.appConfig,r),e}catch(e){var a;throw!tt(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(a=Object.assign(Object.assign({},n),{authToken:{requestStatus:0}}),await T(t.appConfig,a)):await yt(t.appConfig),e}})(r,n),n;throw b.create("app-offline")}return e});return i?await i:e.authToken}function It(e){return _(e,e=>{var t,n;if(Ct(e))return t=e.authToken,1===(n=t).requestStatus&&n.requestTime+Ze<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw b.create("not-registered")})}function Ct(e){return void 0!==e&&2===e.registrationStatus}async function kt(e,t=!1){var n=e,r=(await(!(r=(await wt(n)).registrationPromise)||!await r),await St(n,t));return r.token}function Mt(e){return b.create("missing-app-config-values",{valueName:e})}let Lt="installations",At=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw Mt("App Configuration");if(!e.name)throw Mt("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw Mt(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:Ln._getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},Nt=e=>{var t=e.getProvider("app").getImmediate();let n=Ln._getProvider(t,Lt).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:n,registrationPromise:r}=await wt(t);return(r||St(t)).catch(console.error),n.fid})(n),getToken:e=>kt(n,e)}};Ln._registerComponent(new e(Lt,At,"PUBLIC")),Ln._registerComponent(new e("installations-internal",Nt,"PRIVATE")),Ln.registerVersion(i,Je),Ln.registerVersion(i,Je,"esm2017");let Pt="@firebase/performance",Rt="0.7.0-canary.70e08cf95",Ot=Rt,Dt="FB-PERF-TRACE-MEASURE",Bt="@firebase/performance/config",jt="@firebase/performance/configexpire";var S,I,i="Performance";let C=new U("performance",i,{"trace started":"Trace {$traceName} was started before.","trace stopped":"Trace {$traceName} is not running.","nonpositive trace startTime":"Trace {$traceName} startTime should be positive.","nonpositive trace duration":"Trace {$traceName} duration should be positive.","no window":"Window is not available.","no app id":"App id is not available.","no project id":"Project id is not available.","no api key":"Api key is not available.","invalid cc log":"Attempted to queue invalid cc event","FB not default":"Performance can only start when Firebase app instance is the default one.","RC response not ok":"RC response is not ok","invalid attribute name":"Attribute name {$attributeName} is invalid.","invalid attribute value":"Attribute value {$attributeValue} is invalid.","invalid custom metric name":"Custom metric name {$customMetricName} is invalid","invalid String merger input":"Input for String merger is invalid, contact support team to resolve.","already initialized":"initializePerformance() has already been called with different options. To avoid this error, call initializePerformance() with the same options as when it was originally called, or call getPerformance() to return the already initialized instance."}),k=new class{constructor(e){this.name=e,this._logLevel=H,this._logHandler=$,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in t))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?x[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,t.DEBUG,...e),this._logHandler(this,t.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,t.VERBOSE,...e),this._logHandler(this,t.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,t.INFO,...e),this._logHandler(this,t.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,t.WARN,...e),this._logHandler(this,t.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,t.ERROR,...e),this._logHandler(this,t.ERROR,...e)}}(i);k.logLevel=t.INFO;let Ft,Ut;class M{constructor(e){if(!(this.window=e))throw C.create("no window");this.performance=e.performance,this.PerformanceObserver=e.PerformanceObserver,this.windowLocation=e.location,this.navigator=e.navigator,this.document=e.document,this.navigator&&this.navigator.cookieEnabled&&(this.localStorage=e.localStorage),e.perfMetrics&&e.perfMetrics.onFirstInputDelay&&(this.onFirstInputDelay=e.perfMetrics.onFirstInputDelay),this.onLCP=Y,this.onINP=X,this.onCLS=z}getUrl(){return this.windowLocation.href.split("?")[0]}mark(e){this.performance&&this.performance.mark&&this.performance.mark(e)}measure(e,t,n){this.performance&&this.performance.measure&&this.performance.measure(e,t,n)}getEntriesByType(e){return this.performance&&this.performance.getEntriesByType?this.performance.getEntriesByType(e):[]}getEntriesByName(e){return this.performance&&this.performance.getEntriesByName?this.performance.getEntriesByName(e):[]}getTimeOrigin(){return this.performance&&(this.performance.timeOrigin||this.performance.timing.navigationStart)}requiredApisAvailable(){return fetch&&Promise&&"undefined"!=typeof navigator&&navigator.cookieEnabled?!!(()=>{try{return"object"==typeof indexedDB}catch(e){}})()||(k.info("IndexedDB is not supported by current browser"),!1):(k.info("Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled."),!1)}setupObserver(e,n){this.PerformanceObserver&&new this.PerformanceObserver(e=>{for(var t of e.getEntries())n(t)}).observe({entryTypes:[e]})}static getInstance(){return Ft=void 0===Ft?new M(Ut):Ft}}let L;function qt(e,t){var n=e.length-t.length;if(n<0||1<n)throw C.create("invalid String merger input");var r=[];for(let a=0;a<e.length;a++)r.push(e.charAt(a)),t.length>a&&r.push(t.charAt(a));return r.join("")}let xt;class A{constructor(){this.instrumentationEnabled=!0,this.dataCollectionEnabled=!0,this.loggingEnabled=!1,this.tracesSamplingRate=1,this.networkRequestsSamplingRate=1,this.logEndPointUrl="https://firebaselogging.googleapis.com/v0cc/log?format=json_proto",this.flTransportEndpointUrl=qt("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=qt("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return xt=void 0===xt?new A:xt}}(I=S=S||{})[I.UNKNOWN=0]="UNKNOWN",I[I.VISIBLE=1]="VISIBLE",I[I.HIDDEN=2]="HIDDEN";let Ht=["firebase_","google_","ga_"],Vt=new RegExp("^[a-zA-Z]\\w*$");function $t(e){var t=null==(t=e.options)?void 0:t.appId;if(t)return t;throw C.create("no app id")}let Wt="0.0.1",N={loggingEnabled:!0},Kt="FIREBASE_INSTALLATIONS_AUTH";function zt(e,t){var r,a,n=(()=>{var e=M.getInstance().localStorage;if(e){var t=e.getItem(jt);if(t&&(e=>Number(e)>Date.now())(t)){t=e.getItem(Bt);if(t)try{return JSON.parse(t)}catch(e){}}}})();return n?(Jt(n),Promise.resolve()):(a=t,(e=>{var t=e.getToken();return t.then(e=>{}),t})((r=e).installations).then(e=>{var t=(e=>{var t=null==(t=e.options)?void 0:t.projectId;if(t)return t;throw C.create("no project id")})(r.app),n=(e=>{var t=null==(t=e.options)?void 0:t.apiKey;if(t)return t;throw C.create("no api key")})(r.app),t=new Request(`https://firebaseremoteconfig.googleapis.com/v1/projects/${t}/namespaces/fireperf:fetch?key=`+n,{method:"POST",headers:{Authorization:Kt+" "+e},body:JSON.stringify({app_instance_id:a,app_instance_id_token:e,app_id:$t(r.app),app_version:Ot,sdk_version:Wt})});return fetch(t).then(e=>{if(e.ok)return e.json();throw C.create("RC response not ok")})}).catch(()=>{k.info(Gt)}).then(Jt).then(e=>{var t;e=e,t=M.getInstance().localStorage,e&&t&&(t.setItem(Bt,JSON.stringify(e)),t.setItem(jt,String(Date.now()+60*A.getInstance().configTimeToLive*60*1e3)))},()=>{}))}let Gt="Could not fetch config, will use default configs";function Jt(e){var t,n;return e&&(t=A.getInstance(),void 0!==(n=e.entries||{}).fpr_enabled?t.loggingEnabled="true"===String(n.fpr_enabled):t.loggingEnabled=N.loggingEnabled,n.fpr_log_source?t.logSource=Number(n.fpr_log_source):N.logSource&&(t.logSource=N.logSource),n.fpr_log_endpoint_url?t.logEndPointUrl=n.fpr_log_endpoint_url:N.logEndPointUrl&&(t.logEndPointUrl=N.logEndPointUrl),n.fpr_log_transport_key?t.transportKey=n.fpr_log_transport_key:N.transportKey&&(t.transportKey=N.transportKey),void 0!==n.fpr_vc_network_request_sampling_rate?t.networkRequestsSamplingRate=Number(n.fpr_vc_network_request_sampling_rate):void 0!==N.networkRequestsSamplingRate&&(t.networkRequestsSamplingRate=N.networkRequestsSamplingRate),void 0!==n.fpr_vc_trace_sampling_rate?t.tracesSamplingRate=Number(n.fpr_vc_trace_sampling_rate):void 0!==N.tracesSamplingRate&&(t.tracesSamplingRate=N.tracesSamplingRate),t.logTraceAfterSampling=Zt(t.tracesSamplingRate),t.logNetworkAfterSampling=Zt(t.networkRequestsSamplingRate)),e}function Zt(e){return Math.random()<=e}let Xt=1,Yt;function Qt(e){var n;return Xt=2,Yt=Yt||(n=e,(()=>{let n=M.getInstance().document;return new Promise(t=>{if(n&&"complete"!==n.readyState){let e=()=>{"complete"===n.readyState&&(n.removeEventListener("readystatechange",e),t())};n.addEventListener("readystatechange",e)}else t()})})().then(()=>{return e=n.installations,(t=e.getId()).then(e=>{L=e}),t;var e,t}).then(e=>zt(n,e)).then(()=>en(),()=>en()))}function en(){Xt=3}let tn=1e4,nn=1e3,rn=3,P=rn,R=[],an=!1;function on(e){setTimeout(()=>{0!==P&&(0<R.length&&sn(),on(tn))},e)}function sn(){let e=R.splice(0,nn);var t,n,r=e.map(e=>({source_extension_json_proto3:e.message,event_time_ms:String(e.eventTime)})),r={request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:A.getInstance().logSource,log_event:r};t=r,r=A.getInstance().getFlTransportFullUrl(),n=JSON.stringify(t),(navigator.sendBeacon&&navigator.sendBeacon(r,n)?Promise.resolve():fetch(r,{method:"POST",body:n,keepalive:!0}).then()).then(()=>{P=rn}).catch(()=>{R=[...e,...R],P--,k.info(`Tries left: ${P}.`),on(tn)})}function cn(t){return(...e)=>{e={message:t(...e),eventTime:Date.now()};if(!e.eventTime||!e.message)throw C.create("invalid cc log");R=[...R,e]}}function ln(){for(;0<R.length;)sn()}let O;function un(e,t){(O=O||{send:cn(fn),flush:ln}).send(e,t)}function dn(e){var t=A.getInstance();!t.instrumentationEnabled&&e.isAuto||(t.dataCollectionEnabled||e.isAuto)&&M.getInstance().requiredApisAvailable()&&(3===Xt?pn(e):Qt(e.performanceController).then(()=>pn(e),()=>pn(e)))}function pn(e){var t;L&&(t=A.getInstance()).loggingEnabled&&t.logTraceAfterSampling&&un(e,1)}function fn(e,t){var n,r;return 0===t?(n={url:e.url,http_method:e.httpMethod||0,http_response_code:200,response_payload_bytes:e.responsePayloadBytes,client_start_time_us:e.startTimeUs,time_to_response_initiated_us:e.timeToResponseInitiatedUs,time_to_response_completed_us:e.timeToResponseCompletedUs},n={application_info:gn(e.performanceController.app),network_request_metric:n},JSON.stringify(n)):(n={name:(t=e).name,is_auto:t.isAuto,client_start_time_us:t.startTimeUs,duration_us:t.durationUs},0!==Object.keys(t.counters).length&&(n.counters=t.counters),r=t.getAttributes(),0!==Object.keys(r).length&&(n.custom_attributes=r),r={application_info:gn(t.performanceController.app),trace_metric:n},JSON.stringify(r))}function gn(e){return{google_app_id:$t(e),app_instance_id:L,web_app_info:{sdk_version:Ot,page_url:M.getInstance().getUrl(),service_worker_status:null!=(t=M.getInstance().navigator)&&t.serviceWorker?t.serviceWorker.controller?2:3:1,visibility_state:(()=>{switch(M.getInstance().document.visibilityState){case"visible":return S.VISIBLE;case"hidden":return S.HIDDEN;default:return S.UNKNOWN}})(),effective_connection_type:(()=>{var e=M.getInstance().navigator.connection;switch(e&&e.effectiveType){case"slow-2g":return 1;case"2g":return 2;case"3g":return 3;case"4g":return 4;default:return 0}})()},application_process_state:0};var t}function mn(e,t){var n,r,a,i=t;i&&void 0!==i.responseStart&&(a=M.getInstance().getTimeOrigin(),a=Math.floor(1e3*(i.startTime+a)),n=i.responseStart?Math.floor(1e3*(i.responseStart-i.startTime)):void 0,r=Math.floor(1e3*(i.responseEnd-i.startTime)),i={performanceController:e,url:i.name&&i.name.split("?")[0],responsePayloadBytes:i.transferSize,startTimeUs:a,timeToResponseInitiatedUs:n,timeToResponseCompletedUs:r},t=i,(a=A.getInstance()).instrumentationEnabled)&&(n=t.url,r=a.logEndPointUrl.split("?")[0],i=a.flTransportEndpointUrl.split("?")[0],n!==r)&&n!==i&&a.loggingEnabled&&a.logNetworkAfterSampling&&un(t,0)}let hn=["_fp","_fcp","_fid","_lcp","_cls","_inp"];class D{constructor(e,t,n=!1,r){this.performanceController=e,this.name=t,this.isAuto=n,this.state=1,this.customAttributes={},this.counters={},this.api=M.getInstance(),this.randomId=Math.floor(1e6*Math.random()),this.isAuto||(this.traceStartMark=`FB-PERF-TRACE-START-${this.randomId}-`+this.name,this.traceStopMark=`FB-PERF-TRACE-STOP-${this.randomId}-`+this.name,this.traceMeasure=r||`${Dt}-${this.randomId}-`+this.name,r&&this.calculateTraceMetrics())}start(){if(1!==this.state)throw C.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(2!==this.state)throw C.create("trace stopped",{traceName:this.name});this.state=3,this.api.mark(this.traceStopMark),this.api.measure(this.traceMeasure,this.traceStartMark,this.traceStopMark),this.calculateTraceMetrics(),dn(this)}record(e,t,n){if(e<=0)throw C.create("nonpositive trace startTime",{traceName:this.name});if(t<=0)throw C.create("nonpositive trace duration",{traceName:this.name});if(this.durationUs=Math.floor(1e3*t),this.startTimeUs=Math.floor(1e3*e),n&&n.attributes&&(this.customAttributes=Object.assign({},n.attributes)),n&&n.metrics)for(var r of Object.keys(n.metrics))isNaN(Number(n.metrics[r]))||(this.counters[r]=Math.floor(Number(n.metrics[r])));dn(this)}incrementMetric(e,t=1){void 0===this.counters[e]?this.putMetric(e,t):this.putMetric(e,this.counters[e]+t)}putMetric(e,t){if(r=e,a=this.name,0===r.length||100<r.length||!(a&&a.startsWith("_wt_")&&-1<hn.indexOf(r))&&r.startsWith("_"))throw C.create("invalid custom metric name",{customMetricName:e});var n,r,a;this.counters[e]=(a=null!=t?t:0,(n=Math.floor(a))<a&&k.info(`Metric value should be an Integer, setting the value as : ${n}.`),n)}getMetric(e){return this.counters[e]||0}putAttribute(e,t){var n,r,a=!(0===(n=e).length||40<n.length||Ht.some(e=>n.startsWith(e))||!n.match(Vt)),i=0!==(r=t).length&&r.length<=100;if(a&&i)this.customAttributes[e]=t;else{if(!a)throw C.create("invalid attribute name",{attributeName:e});if(!i)throw C.create("invalid attribute value",{attributeValue:t})}}getAttribute(e){return this.customAttributes[e]}removeAttribute(e){void 0!==this.customAttributes[e]&&delete this.customAttributes[e]}getAttributes(){return Object.assign({},this.customAttributes)}setStartTime(e){this.startTimeUs=e}setDuration(e){this.durationUs=e}calculateTraceMetrics(){var e=this.api.getEntriesByName(this.traceMeasure),e=e&&e[0];e&&(this.durationUs=Math.floor(1e3*e.duration),this.startTimeUs=Math.floor(1e3*(e.startTime+this.api.getTimeOrigin())))}static createOobTrace(e,t,n,r,a){var i=M.getInstance().getUrl();if(i){var i=new D(e,"_wt_"+i,!0),o=Math.floor(1e3*M.getInstance().getTimeOrigin());i.setStartTime(o),t&&t[0]&&(i.setDuration(Math.floor(1e3*t[0].duration)),i.putMetric("domInteractive",Math.floor(1e3*t[0].domInteractive)),i.putMetric("domContentLoadedEventEnd",Math.floor(1e3*t[0].domContentLoadedEventEnd)),i.putMetric("loadEventEnd",Math.floor(1e3*t[0].loadEventEnd)));n&&((o=n.find(e=>"first-paint"===e.name))&&o.startTime&&i.putMetric("_fp",Math.floor(1e3*o.startTime)),(o=n.find(e=>"first-contentful-paint"===e.name))&&o.startTime&&i.putMetric("_fcp",Math.floor(1e3*o.startTime)),a)&&i.putMetric("_fid",Math.floor(1e3*a)),this.addWebVitalMetric(i,"_lcp","lcp_element",r.lcp),this.addWebVitalMetric(i,"_cls","cls_largestShiftTarget",r.cls),this.addWebVitalMetric(i,"_inp","inp_interactionTarget",r.inp),dn(i),O&&O.flush()}}static addWebVitalMetric(e,t,n,r){r&&(e.putMetric(t,Math.floor(1e3*r.value)),r.elementAttribution)&&e.putAttribute(n,r.elementAttribution)}static createUserTimingTrace(e,t){dn(new D(e,t,!1,t))}}let vn={},bn=!1,yn;function wn(r){L&&(setTimeout(()=>{{var t=r;let e=M.getInstance();"onpagehide"in window?e.document.addEventListener("pagehide",()=>Tn(t)):e.document.addEventListener("unload",()=>Tn(t)),e.document.addEventListener("visibilitychange",()=>{"hidden"===e.document.visibilityState&&Tn(t)}),e.onFirstInputDelay&&e.onFirstInputDelay(e=>{yn=e}),e.onLCP(e=>{var t;vn.lcp={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.element}}),e.onCLS(e=>{var t;vn.cls={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.largestShiftTarget}}),e.onINP(e=>{var t;vn.inp={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.interactionTarget}})}},0),setTimeout(()=>{var e,t=r,n=M.getInstance();for(e of n.getEntriesByType("resource"))mn(t,e);n.setupObserver("resource",e=>mn(t,e))},0),setTimeout(()=>{var e,t=r,n=M.getInstance();for(e of n.getEntriesByType("measure"))En(t,e);n.setupObserver("measure",e=>En(t,e))},0))}function En(e,t){var n=t.name;n.substring(0,Dt.length)!==Dt&&D.createUserTimingTrace(e,n)}function Tn(n){if(!bn){bn=!0;var r=M.getInstance();let e=r.getEntriesByType("navigation"),t=r.getEntriesByType("paint");setTimeout(()=>{D.createOobTrace(n,e,t,vn,yn)},0)}}class _n{constructor(e,t){this.app=e,this.installations=t,this.initialized=!1}_init(e){this.initialized||(void 0!==(null==e?void 0:e.dataCollectionEnabled)&&(this.dataCollectionEnabled=e.dataCollectionEnabled),void 0!==(null==e?void 0:e.instrumentationEnabled)&&(this.instrumentationEnabled=e.instrumentationEnabled),M.getInstance().requiredApisAvailable()?new Promise((r,a)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",n=self.indexedDB.open(t);n.onsuccess=()=>{n.result.close(),e||self.indexedDB.deleteDatabase(t),r(!0)},n.onupgradeneeded=()=>{e=!1},n.onerror=()=>{var e;a((null==(e=n.error)?void 0:e.message)||"")}}catch(e){a(e)}}).then(e=>{e&&(an||(on(5500),an=!0),Qt(this).then(()=>wn(this),()=>wn(this)),this.initialized=!0)}).catch(e=>{k.info("Environment doesn't support IndexedDB: "+e)}):k.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){A.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return A.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){A.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return A.getInstance().dataCollectionEnabled}}let Sn="[DEFAULT]";let In=(e,{options:t})=>{var n=e.getProvider("app").getImmediate(),r=e.getProvider("installations-internal").getImmediate();if(n.name!==Sn)throw C.create("FB not default");if("undefined"==typeof window)throw C.create("no window");e=window,Ut=e;n=new _n(n,r);return n._init(t),n};Ln._registerComponent(new e("performance",In,"PUBLIC")),Ln.registerVersion(Pt,Rt),Ln.registerVersion(Pt,Rt,"esm2017");class Cn{constructor(e,t){this.app=e,this._delegate=t}get instrumentationEnabled(){return this._delegate.instrumentationEnabled}set instrumentationEnabled(e){this._delegate.instrumentationEnabled=e}get dataCollectionEnabled(){return this._delegate.dataCollectionEnabled}set dataCollectionEnabled(e){this._delegate.dataCollectionEnabled=e}trace(e){return t=this._delegate,e=e,t=(n=t)&&n._delegate?n._delegate:n,new D(t,e);var t,n}}function kn(e){var t=e.getProvider("app-compat").getImmediate(),n=e.getProvider("performance").getImmediate();return new Cn(t,n)}(I=j.default).INTERNAL.registerComponent(new e("performance-compat",kn,"PUBLIC")),I.registerVersion("@firebase/performance-compat","0.2.13-canary.70e08cf95")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-performance-compat.js - be sure to load firebase-app.js first.")}});
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(Mn,Ln){try{!(function(){function B(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t,j=B(Mn);class F extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,F.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,U.prototype.create)}}class U{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){var r,n=t[0]||{},a=this.service+"/"+e,i=this.errors[e],i=i?(r=n,i.replace(q,(e,t)=>{var n=r[t];return null!=n?String(n):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${a}).`;return new F(a,i,n)}}let q=/\{\$([^}]+)}/g;class e{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}(I=t=t||{})[I.DEBUG=0]="DEBUG",I[I.VERBOSE=1]="VERBOSE",I[I.INFO=2]="INFO",I[I.WARN=3]="WARN",I[I.ERROR=4]="ERROR",I[I.SILENT=5]="SILENT";let x={debug:t.DEBUG,verbose:t.VERBOSE,info:t.INFO,warn:t.WARN,error:t.ERROR,silent:t.SILENT},H=t.INFO,V={[t.DEBUG]:"log",[t.VERBOSE]:"log",[t.INFO]:"info",[t.WARN]:"warn",[t.ERROR]:"error"},$=(e,t,...n)=>{if(!(t<e.logLevel)){var r=(new Date).toISOString(),a=V[t];if(!a)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[a](`[${r}] ${e.name}:`,...n)}};function W(e){if("loading"===document.readyState)return"loading";var t=u();if(t){if(e<t.domInteractive)return"loading";if(0===t.domContentLoadedEventStart||e<t.domContentLoadedEventStart)return"dom-interactive";if(0===t.domComplete||e<t.domComplete)return"dom-content-loaded"}return"complete"}function K(e,t){var n="";try{for(;e&&9!==e.nodeType;){var r=e,a=r.id?"#"+r.id:ne(r)+(r.classList&&r.classList.value&&r.classList.value.trim()&&r.classList.value.trim().length?"."+r.classList.value.trim().replace(/\s+/g,"."):"");if(n.length+a.length>(t||100)-1)return n||a;if(n=n?a+">"+n:a,r.id)break;e=r.parentNode}}catch(e){}return n}function z(a,e){var o,s,i,c;o=function(e){n={},(e=e).entries.length&&(t=e.entries.reduce(function(e,t){return e&&e.value>t.value?e:t}))&&t.sources&&t.sources.length&&(r=(r=t.sources).find(function(e){return e.node&&1===e.node.nodeType})||r[0])&&(n={largestShiftTarget:K(r.node),largestShiftTime:t.startTime,largestShiftValue:t.value,largestShiftSource:r,largestShiftEntry:t,loadState:W(t.startTime)});var t,n,r=Object.assign(e,{attribution:n});a(r)},s=e||{},i=se(function(){function e(e){e.forEach(function(e){var t,n;e.hadRecentInput||(t=a[0],n=a[a.length-1],r&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(r+=e.value,a.push(e)):(r=e.value,a=[e]))}),r>n.value&&(n.value=r,n.entries=a,t())}var t,n=p("CLS",0),r=0,a=[],i=f("layout-shift",e);i&&(t=g(o,n,ge,s.reportAllChanges),m(function(){e(i.takeRecords()),t(!0)}),d(function(){n=p("CLS",r=0),t=g(o,n,ge,s.reportAllChanges),oe(function(){return t()})}),setTimeout(t,0))}),c=c||{},pe(function(){var t,n=de(),r=p("FCP"),a=f("paint",function(e){e.forEach(function(e){"first-contentful-paint"===e.name&&(a.disconnect(),e.startTime<n.firstHiddenTime)&&(r.value=Math.max(e.startTime-ie(),0),r.entries.push(e),t(!0))})});a&&(t=g(i,r,fe,c.reportAllChanges),d(function(e){r=p("FCP"),t=g(i,r,fe,c.reportAllChanges),oe(function(){r.value=performance.now()-e.timeStamp,t(!0)})}))})}function G(i,o){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(o=o||{},pe(function(){var e;ye();function t(t){Se(function(){t.forEach(_e);var e=Ee();e&&e.latency!==n.value&&(n.value=e.latency,n.entries=e.entries,a())})}var n=p("INP"),r=f("event",t,{durationThreshold:null!=(e=o.durationThreshold)?e:40}),a=g(i,n,Ie,o.reportAllChanges);r&&(r.observe({type:"first-input",buffered:!0}),m(function(){t(r.takeRecords()),a(!0)}),d(function(){we=be(),s.length=0,c.clear(),n=p("INP"),a=g(i,n,Ie,o.reportAllChanges)}))}))}function J(e){o=o.concat(e),Le()}function Z(){10<h.size&&h.forEach(function(e,t){c.has(t)||h.delete(t)});var n=s.map(function(e){return ke.get(e.entries[0])}),r=l.length-50;l=l.filter(function(e,t){return r<=t||n.includes(e)});for(var a=new Set,e=0;e<l.length;e++){var t=l[e];Ae(t.startTime,t.processingEnd).forEach(function(e){a.add(e)})}var i=o.length-1-50;o=o.filter(function(e,t){return e.startTime>Ce&&i<t||a.has(e)}),Me=-1}function X(c,e){ee=ee||f("long-animation-frame",J),G(function(e){t=(e=e).entries[0],s=ke.get(t),n=t.processingStart,r=s.processingEnd,s=s.entries.sort(function(e,t){return e.processingStart-t.processingStart}),a=Ae(t.startTime,r),i=(i=e.entries.find(function(e){return e.target}))&&i.target||h.get(t.interactionId),o=[t.startTime+t.duration,r].concat(a.map(function(e){return e.startTime+e.duration})),o=Math.max.apply(Math,o),i={interactionTarget:K(i),interactionTargetElement:i,interactionType:t.name.startsWith("key")?"keyboard":"pointer",interactionTime:t.startTime,nextPaintTime:o,processedEventEntries:s,longAnimationFrameEntries:a,inputDelay:n-t.startTime,processingDuration:r-n,presentationDelay:Math.max(o-r,0),loadState:W(t.startTime)};var t,n,r,a,i,o,s=Object.assign(e,{attribution:i});c(s)},e)}function Y(l,e){var o,s;o=function(e){s={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:(e=e).value},e.entries.length&&(t=u())&&(o=t.activationStart||0,r=(n=e.entries[e.entries.length-1]).url&&performance.getEntriesByType("resource").filter(function(e){return e.name===n.url})[0],c=Math.max(0,t.responseStart-o),a=Math.max(c,r?(r.requestStart||r.startTime)-o:0),i=Math.max(a,r?r.responseEnd-o:0),o=Math.max(i,n.startTime-o),s={element:K(n.element),timeToFirstByte:c,resourceLoadDelay:a-c,resourceLoadDuration:i-a,elementRenderDelay:o-i,navigationEntry:t,lcpEntry:n},n.url&&(s.url=n.url),r)&&(s.lcpResourceEntry=r);var t,n,r,a,i,o,s,c=Object.assign(e,{attribution:s});l(c)},s=e||{},pe(function(){function e(e){(e=s.reportAllChanges?e:e.slice(-1)).forEach(function(e){e.startTime<r.firstHiddenTime&&(a.value=Math.max(e.startTime-ie(),0),a.entries=[e],t())})}var t,n,r=de(),a=p("LCP"),i=f("largest-contentful-paint",e);i&&(t=g(o,a,Ne,s.reportAllChanges),n=se(function(){Pe[a.id]||(e(i.takeRecords()),i.disconnect(),Pe[a.id]=!0,t(!0))}),["keydown","click"].forEach(function(e){addEventListener(e,function(){return Se(n)},{once:!0,capture:!0})}),m(n),d(function(e){a=p("LCP"),t=g(o,a,Ne,s.reportAllChanges),oe(function(){a.value=performance.now()-e.timeStamp,Pe[a.id]=!0,t(!0)})}))})}var Q,ee,te,u=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&0<e.responseStart&&e.responseStart<performance.now())return e},ne=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},re=-1,ae=function(){return re},d=function(t){addEventListener("pageshow",function(e){e.persisted&&(re=e.timeStamp,t(e))},!0)},ie=function(){var e=u();return e&&e.activationStart||0},p=function(e,t){var n=u(),r="navigate";return 0<=ae()?r="back-forward-cache":n&&(document.prerendering||0<ie()?r="prerender":document.wasDiscarded?r="restore":n.type&&(r=n.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},f=function(e,t,n){try{var r;if(PerformanceObserver.supportedEntryTypes.includes(e))return(r=new PerformanceObserver(function(e){Promise.resolve().then(function(){t(e.getEntries())})})).observe(Object.assign({type:e,buffered:!0},n||{})),r}catch(e){}},g=function(t,n,r,a){var i,o;return function(e){0<=n.value&&(e||a)&&((o=n.value-(i||0))||void 0===i)&&(i=n.value,n.delta=o,n.rating=(e=n.value)>r[1]?"poor":e>r[0]?"needs-improvement":"good",t(n))}},oe=function(e){requestAnimationFrame(function(){return requestAnimationFrame(function(){return e()})})},m=function(e){document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&e()})},se=function(e){var t=!1;return function(){t||(e(),t=!0)}},n=-1,ce=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},r=function(e){"hidden"===document.visibilityState&&-1<n&&(n="visibilitychange"===e.type?e.timeStamp:0,ue())},le=function(){addEventListener("visibilitychange",r,!0),addEventListener("prerenderingchange",r,!0)},ue=function(){removeEventListener("visibilitychange",r,!0),removeEventListener("prerenderingchange",r,!0)},de=function(){return n<0&&(n=ce(),le(),d(function(){setTimeout(function(){n=ce(),le()},0)})),{get firstHiddenTime(){return n}}},pe=function(e){document.prerendering?addEventListener("prerenderingchange",function(){return e()},!0):e()},fe=[1800,3e3],ge=[.1,.25],me=0,he=1/0,a=0,ve=function(e){e.forEach(function(e){e.interactionId&&(he=Math.min(he,e.interactionId),a=Math.max(a,e.interactionId),me=a?(a-he)/7+1:0)})},be=function(){return Q?me:performance.interactionCount||0},ye=function(){"interactionCount"in performance||(Q=Q||f("event",ve,{type:"event",buffered:!0,durationThreshold:0}))},s=[],c=new Map,we=0,Ee=function(){var e=Math.min(s.length-1,Math.floor((be()-we)/50));return s[e]},Te=[],_e=function(t){var e,n;Te.forEach(function(e){return e(t)}),!t.interactionId&&"first-input"!==t.entryType||(n=s[s.length-1],((e=c.get(t.interactionId))||s.length<10||t.duration>n.latency)&&(e?t.duration>e.latency?(e.entries=[t],e.latency=t.duration):t.duration===e.latency&&t.startTime===e.entries[0].startTime&&e.entries.push(t):(n={id:t.interactionId,latency:t.duration,entries:[t]},c.set(n.id,n),s.push(n)),s.sort(function(e,t){return t.latency-e.latency}),10<s.length)&&s.splice(10).forEach(function(e){return c.delete(e.id)}))},Se=function(e){var t=self.requestIdleCallback||self.setTimeout,n=-1;return e=se(e),"hidden"===document.visibilityState?e():(n=t(e),m(e)),n},Ie=[200,500],o=[],l=[],Ce=0,ke=new WeakMap,h=new Map,Me=-1,Le=function(){Me<0&&(Me=Se(Z))},Ae=(Te.push(function(e){e.interactionId&&e.target&&!h.has(e.interactionId)&&h.set(e.interactionId,e.target)},function(e){var t,n=e.startTime+e.duration;Ce=Math.max(Ce,e.processingEnd);for(var r=l.length-1;0<=r;r--){var a=l[r];if(Math.abs(n-a.renderTime)<=8){(t=a).startTime=Math.min(e.startTime,t.startTime),t.processingStart=Math.min(e.processingStart,t.processingStart),t.processingEnd=Math.max(e.processingEnd,t.processingEnd),t.entries.push(e);break}}t||(t={startTime:e.startTime,processingStart:e.processingStart,processingEnd:e.processingEnd,renderTime:n,entries:[e]},l.push(t)),!e.interactionId&&"first-input"!==e.entryType||ke.set(e,t),Le()}),function(e,t){for(var n,r=[],a=0;n=o[a];a++)if(!(n.startTime+n.duration<e)){if(n.startTime>t)break;r.push(n)}return r}),Ne=[2500,4e3],Pe={};let Re=(t,e)=>e.some(e=>t instanceof e),Oe,De;let Be=new WeakMap,je=new WeakMap,Fe=new WeakMap,Ue=new WeakMap,qe=new WeakMap;let xe={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return je.get(e);if("objectStoreNames"===t)return e.objectStoreNames||Fe.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return v(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function He(r){return r!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(De=De||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(r)?function(...e){return r.apply($e(this),e),v(Be.get(this))}:function(...e){return v(r.apply($e(this),e))}:function(e,...t){var n=r.call($e(this),e,...t);return Fe.set(n,e.sort?e.sort():[e]),v(n)}}function Ve(e){var i,t;return"function"==typeof e?He(e):(e instanceof IDBTransaction&&(i=e,je.has(i)||(t=new Promise((e,t)=>{let n=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",a),i.removeEventListener("abort",a)},r=()=>{e(),n()},a=()=>{t(i.error||new DOMException("AbortError","AbortError")),n()};i.addEventListener("complete",r),i.addEventListener("error",a),i.addEventListener("abort",a)}),je.set(i,t))),Re(e,Oe=Oe||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,xe):e)}function v(e){var i,t;return e instanceof IDBRequest?(i=e,(t=new Promise((e,t)=>{let n=()=>{i.removeEventListener("success",r),i.removeEventListener("error",a)},r=()=>{e(v(i.result)),n()},a=()=>{t(i.error),n()};i.addEventListener("success",r),i.addEventListener("error",a)})).then(e=>{e instanceof IDBCursor&&Be.set(e,i)}).catch(()=>{}),qe.set(t,i),t):Ue.has(e)?Ue.get(e):((t=Ve(e))!==e&&(Ue.set(e,t),qe.set(t,e)),t)}let $e=e=>qe.get(e);let We=["get","getKey","getAll","getAllKeys","count"],Ke=["put","add","delete","clear"],ze=new Map;function Ge(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(ze.get(t))return ze.get(t);let a=t.replace(/FromIndex$/,""),i=t!==a,o=Ke.includes(a);var n;return a in(i?IDBIndex:IDBObjectStore).prototype&&(o||We.includes(a))?(n=async function(e,...t){var n=this.transaction(e,o?"readwrite":"readonly");let r=n.store;return i&&(r=r.index(t.shift())),(await Promise.all([r[a](...t),o&&n.done]))[0]},ze.set(t,n),n):void 0}}xe={...te=xe,get:(e,t,n)=>Ge(e,t)||te.get(e,t,n),has:(e,t)=>!!Ge(e,t)||te.has(e,t)};var i="@firebase/installations",Je="0.6.12-canary.84dfeca39";let Ze=1e4,Xe="w:"+Je,Ye="FIS_v2",Qe="https://firebaseinstallations.googleapis.com/v1",et=36e5;let b=new U("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 tt(e){return e instanceof F&&e.code.includes("request-failed")}function nt({projectId:e}){return Qe+`/projects/${e}/installations`}function rt(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function at(e,t){var n=(await t.json()).error;return b.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function it({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function ot(e,{refreshToken:t}){var n=it(e);return n.append("Authorization",(e=t,Ye+" "+e)),n}async function st(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function ct(t){return new Promise(e=>{setTimeout(e,t)})}let lt=/^[cdef][\w-]{21}$/,ut="";function dt(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return lt.test(t)?t:ut}catch(e){return ut}}function y(e){return e.appName+"!"+e.appId}let pt=new Map;function ft(e,t){var n=y(e),e=(gt(n,t),n),n=(()=>(!w&&"BroadcastChannel"in self&&((w=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{gt(e.data.key,e.data.fid)}),w))();n&&n.postMessage({key:e,fid:t}),0===pt.size&&w&&(w.close(),w=null)}function gt(e,t){var n=pt.get(e);if(n)for(var r of n)r(t)}let w=null;let mt="firebase-installations-database",ht=1,E="firebase-installations-store",vt=null;function bt(){return vt=vt||((e,t,{blocked:n,upgrade:r,blocking:a,terminated:i})=>{let o=indexedDB.open(e,t);var s=v(o);return r&&o.addEventListener("upgradeneeded",e=>{r(v(o.result),e.oldVersion,e.newVersion,v(o.transaction),e)}),n&&o.addEventListener("blocked",e=>n(e.oldVersion,e.newVersion,e)),s.then(e=>{i&&e.addEventListener("close",()=>i()),a&&e.addEventListener("versionchange",e=>a(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s})(mt,ht,{upgrade:(e,t)=>{0===t&&e.createObjectStore(E)}})}async function T(e,t){var n=y(e),r=(await bt()).transaction(E,"readwrite"),a=r.objectStore(E),i=await a.get(n);return await a.put(t,n),await r.done,i&&i.fid===t.fid||ft(e,t.fid),t}async function yt(e){var t=y(e),n=(await bt()).transaction(E,"readwrite");await n.objectStore(E).delete(t),await n.done}async function _(e,t){var n=y(e),r=(await bt()).transaction(E,"readwrite"),a=r.objectStore(E),i=await a.get(n),o=t(i);return void 0===o?await a.delete(n):await a.put(o,n),await r.done,!o||i&&i.fid===o.fid||ft(e,o.fid),o}async function wt(n){let r;var e=await _(n.appConfig,e=>{var t=Tt(e||{fid:dt(),registrationStatus:0}),t=((e,t)=>{var n,r;return 0===t.registrationStatus?navigator.onLine?(n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=(async(t,n)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:n})=>{let r=nt(e);var a=it(e),i=((i=t.getImmediate({optional:!0}))&&(i=await i.getHeartbeatsHeader())&&a.append("x-firebase-client",i),{fid:n,authVersion:Ye,appId:e.appId,sdkVersion:Xe});let o={method:"POST",headers:a,body:JSON.stringify(i)};if((a=await st(()=>fetch(r,o))).ok)return{fid:(i=await a.json()).fid||n,registrationStatus:2,refreshToken:i.refreshToken,authToken:rt(i.authToken)};throw await at("Create Installation",a)})(t,n);return T(t.appConfig,e)}catch(e){throw tt(e)&&409===e.customData.serverCode?await yt(t.appConfig):await T(t.appConfig,{fid:n.fid,registrationStatus:0}),e}})(e,n),{installationEntry:n,registrationPromise:r}):(n=Promise.reject(b.create("app-offline")),{installationEntry:t,registrationPromise:n}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await Et(e.appConfig);for(;1===t.registrationStatus;)await ct(100),t=await Et(e.appConfig);var n,r;return 0!==t.registrationStatus?t:({installationEntry:n,registrationPromise:r}=await wt(e),r||n)})(e)}:{installationEntry:t}})(n,t);return r=t.registrationPromise,t.installationEntry});return e.fid===ut?{installationEntry:await r}:{installationEntry:e,registrationPromise:r}}function Et(e){return _(e,e=>{if(e)return Tt(e);throw b.create("installation-not-found")})}function Tt(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+Ze<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function _t({appConfig:e,heartbeatServiceProvider:t},n){[a,i]=[e,n.fid];let r=nt(a)+`/${i}/authTokens:generate`;var a,i,o=ot(e,n),s=t.getImmediate({optional:!0}),s=(s&&(s=await s.getHeartbeatsHeader())&&o.append("x-firebase-client",s),{installation:{sdkVersion:Xe,appId:e.appId}});let c={method:"POST",headers:o,body:JSON.stringify(s)};o=await st(()=>fetch(r,c));if(o.ok)return rt(await o.json());throw await at("Generate Auth Token",o)}async function St(r,a=!1){let i;var e=await _(r.appConfig,e=>{if(!Ct(e))throw b.create("not-registered");var t,n=e.authToken;if(a||2!==(t=n).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+et})(t)){if(1===n.requestStatus)return i=(async(e,t)=>{let n=await It(e.appConfig);for(;1===n.authToken.requestStatus;)await ct(100),n=await It(e.appConfig);var r=n.authToken;return 0===r.requestStatus?St(e,t):r})(r,a),e;if(navigator.onLine)return t=e,n={requestStatus:1,requestTime:Date.now()},n=Object.assign(Object.assign({},t),{authToken:n}),i=(async(t,n)=>{try{var e=await _t(t,n),r=Object.assign(Object.assign({},n),{authToken:e});return await T(t.appConfig,r),e}catch(e){var a;throw!tt(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(a=Object.assign(Object.assign({},n),{authToken:{requestStatus:0}}),await T(t.appConfig,a)):await yt(t.appConfig),e}})(r,n),n;throw b.create("app-offline")}return e});return i?await i:e.authToken}function It(e){return _(e,e=>{var t,n;if(Ct(e))return t=e.authToken,1===(n=t).requestStatus&&n.requestTime+Ze<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw b.create("not-registered")})}function Ct(e){return void 0!==e&&2===e.registrationStatus}async function kt(e,t=!1){var n=e,r=(await(!(r=(await wt(n)).registrationPromise)||!await r),await St(n,t));return r.token}function Mt(e){return b.create("missing-app-config-values",{valueName:e})}let Lt="installations",At=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw Mt("App Configuration");if(!e.name)throw Mt("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw Mt(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:Ln._getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},Nt=e=>{var t=e.getProvider("app").getImmediate();let n=Ln._getProvider(t,Lt).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:n,registrationPromise:r}=await wt(t);return(r||St(t)).catch(console.error),n.fid})(n),getToken:e=>kt(n,e)}};Ln._registerComponent(new e(Lt,At,"PUBLIC")),Ln._registerComponent(new e("installations-internal",Nt,"PRIVATE")),Ln.registerVersion(i,Je),Ln.registerVersion(i,Je,"esm2017");let Pt="@firebase/performance",Rt="0.7.0-canary.84dfeca39",Ot=Rt,Dt="FB-PERF-TRACE-MEASURE",Bt="@firebase/performance/config",jt="@firebase/performance/configexpire";var S,I,i="Performance";let C=new U("performance",i,{"trace started":"Trace {$traceName} was started before.","trace stopped":"Trace {$traceName} is not running.","nonpositive trace startTime":"Trace {$traceName} startTime should be positive.","nonpositive trace duration":"Trace {$traceName} duration should be positive.","no window":"Window is not available.","no app id":"App id is not available.","no project id":"Project id is not available.","no api key":"Api key is not available.","invalid cc log":"Attempted to queue invalid cc event","FB not default":"Performance can only start when Firebase app instance is the default one.","RC response not ok":"RC response is not ok","invalid attribute name":"Attribute name {$attributeName} is invalid.","invalid attribute value":"Attribute value {$attributeValue} is invalid.","invalid custom metric name":"Custom metric name {$customMetricName} is invalid","invalid String merger input":"Input for String merger is invalid, contact support team to resolve.","already initialized":"initializePerformance() has already been called with different options. To avoid this error, call initializePerformance() with the same options as when it was originally called, or call getPerformance() to return the already initialized instance."}),k=new class{constructor(e){this.name=e,this._logLevel=H,this._logHandler=$,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in t))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?x[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,t.DEBUG,...e),this._logHandler(this,t.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,t.VERBOSE,...e),this._logHandler(this,t.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,t.INFO,...e),this._logHandler(this,t.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,t.WARN,...e),this._logHandler(this,t.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,t.ERROR,...e),this._logHandler(this,t.ERROR,...e)}}(i);k.logLevel=t.INFO;let Ft,Ut;class M{constructor(e){if(!(this.window=e))throw C.create("no window");this.performance=e.performance,this.PerformanceObserver=e.PerformanceObserver,this.windowLocation=e.location,this.navigator=e.navigator,this.document=e.document,this.navigator&&this.navigator.cookieEnabled&&(this.localStorage=e.localStorage),e.perfMetrics&&e.perfMetrics.onFirstInputDelay&&(this.onFirstInputDelay=e.perfMetrics.onFirstInputDelay),this.onLCP=Y,this.onINP=X,this.onCLS=z}getUrl(){return this.windowLocation.href.split("?")[0]}mark(e){this.performance&&this.performance.mark&&this.performance.mark(e)}measure(e,t,n){this.performance&&this.performance.measure&&this.performance.measure(e,t,n)}getEntriesByType(e){return this.performance&&this.performance.getEntriesByType?this.performance.getEntriesByType(e):[]}getEntriesByName(e){return this.performance&&this.performance.getEntriesByName?this.performance.getEntriesByName(e):[]}getTimeOrigin(){return this.performance&&(this.performance.timeOrigin||this.performance.timing.navigationStart)}requiredApisAvailable(){return fetch&&Promise&&"undefined"!=typeof navigator&&navigator.cookieEnabled?!!(()=>{try{return"object"==typeof indexedDB}catch(e){}})()||(k.info("IndexedDB is not supported by current browser"),!1):(k.info("Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled."),!1)}setupObserver(e,n){this.PerformanceObserver&&new this.PerformanceObserver(e=>{for(var t of e.getEntries())n(t)}).observe({entryTypes:[e]})}static getInstance(){return Ft=void 0===Ft?new M(Ut):Ft}}let L;function qt(e,t){var n=e.length-t.length;if(n<0||1<n)throw C.create("invalid String merger input");var r=[];for(let a=0;a<e.length;a++)r.push(e.charAt(a)),t.length>a&&r.push(t.charAt(a));return r.join("")}let xt;class A{constructor(){this.instrumentationEnabled=!0,this.dataCollectionEnabled=!0,this.loggingEnabled=!1,this.tracesSamplingRate=1,this.networkRequestsSamplingRate=1,this.logEndPointUrl="https://firebaselogging.googleapis.com/v0cc/log?format=json_proto",this.flTransportEndpointUrl=qt("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=qt("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return xt=void 0===xt?new A:xt}}(I=S=S||{})[I.UNKNOWN=0]="UNKNOWN",I[I.VISIBLE=1]="VISIBLE",I[I.HIDDEN=2]="HIDDEN";let Ht=["firebase_","google_","ga_"],Vt=new RegExp("^[a-zA-Z]\\w*$");function $t(e){var t=null==(t=e.options)?void 0:t.appId;if(t)return t;throw C.create("no app id")}let Wt="0.0.1",N={loggingEnabled:!0},Kt="FIREBASE_INSTALLATIONS_AUTH";function zt(e,t){var r,a,n=(()=>{var e=M.getInstance().localStorage;if(e){var t=e.getItem(jt);if(t&&(e=>Number(e)>Date.now())(t)){t=e.getItem(Bt);if(t)try{return JSON.parse(t)}catch(e){}}}})();return n?(Jt(n),Promise.resolve()):(a=t,(e=>{var t=e.getToken();return t.then(e=>{}),t})((r=e).installations).then(e=>{var t=(e=>{var t=null==(t=e.options)?void 0:t.projectId;if(t)return t;throw C.create("no project id")})(r.app),n=(e=>{var t=null==(t=e.options)?void 0:t.apiKey;if(t)return t;throw C.create("no api key")})(r.app),t=new Request(`https://firebaseremoteconfig.googleapis.com/v1/projects/${t}/namespaces/fireperf:fetch?key=`+n,{method:"POST",headers:{Authorization:Kt+" "+e},body:JSON.stringify({app_instance_id:a,app_instance_id_token:e,app_id:$t(r.app),app_version:Ot,sdk_version:Wt})});return fetch(t).then(e=>{if(e.ok)return e.json();throw C.create("RC response not ok")})}).catch(()=>{k.info(Gt)}).then(Jt).then(e=>{var t;e=e,t=M.getInstance().localStorage,e&&t&&(t.setItem(Bt,JSON.stringify(e)),t.setItem(jt,String(Date.now()+60*A.getInstance().configTimeToLive*60*1e3)))},()=>{}))}let Gt="Could not fetch config, will use default configs";function Jt(e){var t,n;return e&&(t=A.getInstance(),void 0!==(n=e.entries||{}).fpr_enabled?t.loggingEnabled="true"===String(n.fpr_enabled):t.loggingEnabled=N.loggingEnabled,n.fpr_log_source?t.logSource=Number(n.fpr_log_source):N.logSource&&(t.logSource=N.logSource),n.fpr_log_endpoint_url?t.logEndPointUrl=n.fpr_log_endpoint_url:N.logEndPointUrl&&(t.logEndPointUrl=N.logEndPointUrl),n.fpr_log_transport_key?t.transportKey=n.fpr_log_transport_key:N.transportKey&&(t.transportKey=N.transportKey),void 0!==n.fpr_vc_network_request_sampling_rate?t.networkRequestsSamplingRate=Number(n.fpr_vc_network_request_sampling_rate):void 0!==N.networkRequestsSamplingRate&&(t.networkRequestsSamplingRate=N.networkRequestsSamplingRate),void 0!==n.fpr_vc_trace_sampling_rate?t.tracesSamplingRate=Number(n.fpr_vc_trace_sampling_rate):void 0!==N.tracesSamplingRate&&(t.tracesSamplingRate=N.tracesSamplingRate),t.logTraceAfterSampling=Zt(t.tracesSamplingRate),t.logNetworkAfterSampling=Zt(t.networkRequestsSamplingRate)),e}function Zt(e){return Math.random()<=e}let Xt=1,Yt;function Qt(e){var n;return Xt=2,Yt=Yt||(n=e,(()=>{let n=M.getInstance().document;return new Promise(t=>{if(n&&"complete"!==n.readyState){let e=()=>{"complete"===n.readyState&&(n.removeEventListener("readystatechange",e),t())};n.addEventListener("readystatechange",e)}else t()})})().then(()=>{return e=n.installations,(t=e.getId()).then(e=>{L=e}),t;var e,t}).then(e=>zt(n,e)).then(()=>en(),()=>en()))}function en(){Xt=3}let tn=1e4,nn=1e3,rn=3,P=rn,R=[],an=!1;function on(e){setTimeout(()=>{0!==P&&(0<R.length&&sn(),on(tn))},e)}function sn(){let e=R.splice(0,nn);var t,n,r=e.map(e=>({source_extension_json_proto3:e.message,event_time_ms:String(e.eventTime)})),r={request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:A.getInstance().logSource,log_event:r};t=r,r=A.getInstance().getFlTransportFullUrl(),n=JSON.stringify(t),(navigator.sendBeacon&&navigator.sendBeacon(r,n)?Promise.resolve():fetch(r,{method:"POST",body:n,keepalive:!0}).then()).then(()=>{P=rn}).catch(()=>{R=[...e,...R],P--,k.info(`Tries left: ${P}.`),on(tn)})}function cn(t){return(...e)=>{e={message:t(...e),eventTime:Date.now()};if(!e.eventTime||!e.message)throw C.create("invalid cc log");R=[...R,e]}}function ln(){for(;0<R.length;)sn()}let O;function un(e,t){(O=O||{send:cn(fn),flush:ln}).send(e,t)}function dn(e){var t=A.getInstance();!t.instrumentationEnabled&&e.isAuto||(t.dataCollectionEnabled||e.isAuto)&&M.getInstance().requiredApisAvailable()&&(3===Xt?pn(e):Qt(e.performanceController).then(()=>pn(e),()=>pn(e)))}function pn(e){var t;L&&(t=A.getInstance()).loggingEnabled&&t.logTraceAfterSampling&&un(e,1)}function fn(e,t){var n,r;return 0===t?(n={url:e.url,http_method:e.httpMethod||0,http_response_code:200,response_payload_bytes:e.responsePayloadBytes,client_start_time_us:e.startTimeUs,time_to_response_initiated_us:e.timeToResponseInitiatedUs,time_to_response_completed_us:e.timeToResponseCompletedUs},n={application_info:gn(e.performanceController.app),network_request_metric:n},JSON.stringify(n)):(n={name:(t=e).name,is_auto:t.isAuto,client_start_time_us:t.startTimeUs,duration_us:t.durationUs},0!==Object.keys(t.counters).length&&(n.counters=t.counters),r=t.getAttributes(),0!==Object.keys(r).length&&(n.custom_attributes=r),r={application_info:gn(t.performanceController.app),trace_metric:n},JSON.stringify(r))}function gn(e){return{google_app_id:$t(e),app_instance_id:L,web_app_info:{sdk_version:Ot,page_url:M.getInstance().getUrl(),service_worker_status:null!=(t=M.getInstance().navigator)&&t.serviceWorker?t.serviceWorker.controller?2:3:1,visibility_state:(()=>{switch(M.getInstance().document.visibilityState){case"visible":return S.VISIBLE;case"hidden":return S.HIDDEN;default:return S.UNKNOWN}})(),effective_connection_type:(()=>{var e=M.getInstance().navigator.connection;switch(e&&e.effectiveType){case"slow-2g":return 1;case"2g":return 2;case"3g":return 3;case"4g":return 4;default:return 0}})()},application_process_state:0};var t}function mn(e,t){var n,r,a,i=t;i&&void 0!==i.responseStart&&(a=M.getInstance().getTimeOrigin(),a=Math.floor(1e3*(i.startTime+a)),n=i.responseStart?Math.floor(1e3*(i.responseStart-i.startTime)):void 0,r=Math.floor(1e3*(i.responseEnd-i.startTime)),i={performanceController:e,url:i.name&&i.name.split("?")[0],responsePayloadBytes:i.transferSize,startTimeUs:a,timeToResponseInitiatedUs:n,timeToResponseCompletedUs:r},t=i,(a=A.getInstance()).instrumentationEnabled)&&(n=t.url,r=a.logEndPointUrl.split("?")[0],i=a.flTransportEndpointUrl.split("?")[0],n!==r)&&n!==i&&a.loggingEnabled&&a.logNetworkAfterSampling&&un(t,0)}let hn=["_fp","_fcp","_fid","_lcp","_cls","_inp"];class D{constructor(e,t,n=!1,r){this.performanceController=e,this.name=t,this.isAuto=n,this.state=1,this.customAttributes={},this.counters={},this.api=M.getInstance(),this.randomId=Math.floor(1e6*Math.random()),this.isAuto||(this.traceStartMark=`FB-PERF-TRACE-START-${this.randomId}-`+this.name,this.traceStopMark=`FB-PERF-TRACE-STOP-${this.randomId}-`+this.name,this.traceMeasure=r||`${Dt}-${this.randomId}-`+this.name,r&&this.calculateTraceMetrics())}start(){if(1!==this.state)throw C.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(2!==this.state)throw C.create("trace stopped",{traceName:this.name});this.state=3,this.api.mark(this.traceStopMark),this.api.measure(this.traceMeasure,this.traceStartMark,this.traceStopMark),this.calculateTraceMetrics(),dn(this)}record(e,t,n){if(e<=0)throw C.create("nonpositive trace startTime",{traceName:this.name});if(t<=0)throw C.create("nonpositive trace duration",{traceName:this.name});if(this.durationUs=Math.floor(1e3*t),this.startTimeUs=Math.floor(1e3*e),n&&n.attributes&&(this.customAttributes=Object.assign({},n.attributes)),n&&n.metrics)for(var r of Object.keys(n.metrics))isNaN(Number(n.metrics[r]))||(this.counters[r]=Math.floor(Number(n.metrics[r])));dn(this)}incrementMetric(e,t=1){void 0===this.counters[e]?this.putMetric(e,t):this.putMetric(e,this.counters[e]+t)}putMetric(e,t){if(r=e,a=this.name,0===r.length||100<r.length||!(a&&a.startsWith("_wt_")&&-1<hn.indexOf(r))&&r.startsWith("_"))throw C.create("invalid custom metric name",{customMetricName:e});var n,r,a;this.counters[e]=(a=null!=t?t:0,(n=Math.floor(a))<a&&k.info(`Metric value should be an Integer, setting the value as : ${n}.`),n)}getMetric(e){return this.counters[e]||0}putAttribute(e,t){var n,r,a=!(0===(n=e).length||40<n.length||Ht.some(e=>n.startsWith(e))||!n.match(Vt)),i=0!==(r=t).length&&r.length<=100;if(a&&i)this.customAttributes[e]=t;else{if(!a)throw C.create("invalid attribute name",{attributeName:e});if(!i)throw C.create("invalid attribute value",{attributeValue:t})}}getAttribute(e){return this.customAttributes[e]}removeAttribute(e){void 0!==this.customAttributes[e]&&delete this.customAttributes[e]}getAttributes(){return Object.assign({},this.customAttributes)}setStartTime(e){this.startTimeUs=e}setDuration(e){this.durationUs=e}calculateTraceMetrics(){var e=this.api.getEntriesByName(this.traceMeasure),e=e&&e[0];e&&(this.durationUs=Math.floor(1e3*e.duration),this.startTimeUs=Math.floor(1e3*(e.startTime+this.api.getTimeOrigin())))}static createOobTrace(e,t,n,r,a){var i=M.getInstance().getUrl();if(i){var i=new D(e,"_wt_"+i,!0),o=Math.floor(1e3*M.getInstance().getTimeOrigin());i.setStartTime(o),t&&t[0]&&(i.setDuration(Math.floor(1e3*t[0].duration)),i.putMetric("domInteractive",Math.floor(1e3*t[0].domInteractive)),i.putMetric("domContentLoadedEventEnd",Math.floor(1e3*t[0].domContentLoadedEventEnd)),i.putMetric("loadEventEnd",Math.floor(1e3*t[0].loadEventEnd)));n&&((o=n.find(e=>"first-paint"===e.name))&&o.startTime&&i.putMetric("_fp",Math.floor(1e3*o.startTime)),(o=n.find(e=>"first-contentful-paint"===e.name))&&o.startTime&&i.putMetric("_fcp",Math.floor(1e3*o.startTime)),a)&&i.putMetric("_fid",Math.floor(1e3*a)),this.addWebVitalMetric(i,"_lcp","lcp_element",r.lcp),this.addWebVitalMetric(i,"_cls","cls_largestShiftTarget",r.cls),this.addWebVitalMetric(i,"_inp","inp_interactionTarget",r.inp),dn(i),O&&O.flush()}}static addWebVitalMetric(e,t,n,r){r&&(e.putMetric(t,Math.floor(1e3*r.value)),r.elementAttribution)&&e.putAttribute(n,r.elementAttribution)}static createUserTimingTrace(e,t){dn(new D(e,t,!1,t))}}let vn={},bn=!1,yn;function wn(r){L&&(setTimeout(()=>{{var t=r;let e=M.getInstance();"onpagehide"in window?e.document.addEventListener("pagehide",()=>Tn(t)):e.document.addEventListener("unload",()=>Tn(t)),e.document.addEventListener("visibilitychange",()=>{"hidden"===e.document.visibilityState&&Tn(t)}),e.onFirstInputDelay&&e.onFirstInputDelay(e=>{yn=e}),e.onLCP(e=>{var t;vn.lcp={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.element}}),e.onCLS(e=>{var t;vn.cls={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.largestShiftTarget}}),e.onINP(e=>{var t;vn.inp={value:e.value,elementAttribution:null==(t=e.attribution)?void 0:t.interactionTarget}})}},0),setTimeout(()=>{var e,t=r,n=M.getInstance();for(e of n.getEntriesByType("resource"))mn(t,e);n.setupObserver("resource",e=>mn(t,e))},0),setTimeout(()=>{var e,t=r,n=M.getInstance();for(e of n.getEntriesByType("measure"))En(t,e);n.setupObserver("measure",e=>En(t,e))},0))}function En(e,t){var n=t.name;n.substring(0,Dt.length)!==Dt&&D.createUserTimingTrace(e,n)}function Tn(n){if(!bn){bn=!0;var r=M.getInstance();let e=r.getEntriesByType("navigation"),t=r.getEntriesByType("paint");setTimeout(()=>{D.createOobTrace(n,e,t,vn,yn)},0)}}class _n{constructor(e,t){this.app=e,this.installations=t,this.initialized=!1}_init(e){this.initialized||(void 0!==(null==e?void 0:e.dataCollectionEnabled)&&(this.dataCollectionEnabled=e.dataCollectionEnabled),void 0!==(null==e?void 0:e.instrumentationEnabled)&&(this.instrumentationEnabled=e.instrumentationEnabled),M.getInstance().requiredApisAvailable()?new Promise((r,a)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",n=self.indexedDB.open(t);n.onsuccess=()=>{n.result.close(),e||self.indexedDB.deleteDatabase(t),r(!0)},n.onupgradeneeded=()=>{e=!1},n.onerror=()=>{var e;a((null==(e=n.error)?void 0:e.message)||"")}}catch(e){a(e)}}).then(e=>{e&&(an||(on(5500),an=!0),Qt(this).then(()=>wn(this),()=>wn(this)),this.initialized=!0)}).catch(e=>{k.info("Environment doesn't support IndexedDB: "+e)}):k.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){A.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return A.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){A.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return A.getInstance().dataCollectionEnabled}}let Sn="[DEFAULT]";let In=(e,{options:t})=>{var n=e.getProvider("app").getImmediate(),r=e.getProvider("installations-internal").getImmediate();if(n.name!==Sn)throw C.create("FB not default");if("undefined"==typeof window)throw C.create("no window");e=window,Ut=e;n=new _n(n,r);return n._init(t),n};Ln._registerComponent(new e("performance",In,"PUBLIC")),Ln.registerVersion(Pt,Rt),Ln.registerVersion(Pt,Rt,"esm2017");class Cn{constructor(e,t){this.app=e,this._delegate=t}get instrumentationEnabled(){return this._delegate.instrumentationEnabled}set instrumentationEnabled(e){this._delegate.instrumentationEnabled=e}get dataCollectionEnabled(){return this._delegate.dataCollectionEnabled}set dataCollectionEnabled(e){this._delegate.dataCollectionEnabled=e}trace(e){return t=this._delegate,e=e,t=(n=t)&&n._delegate?n._delegate:n,new D(t,e);var t,n}}function kn(e){var t=e.getProvider("app-compat").getImmediate(),n=e.getProvider("performance").getImmediate();return new Cn(t,n)}(I=j.default).INTERNAL.registerComponent(new e("performance-compat",kn,"PUBLIC")),I.registerVersion("@firebase/performance-compat","0.2.13-canary.84dfeca39")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-performance-compat.js - be sure to load firebase-app.js first.")}});
//# sourceMappingURL=firebase-performance-compat.js.map

@@ -1,3 +0,3 @@

import{registerVersion as e,_registerComponent as t,_getProvider,getApp as c}from"https://www.gstatic.com/firebasejs/11.3.0-canary.70e08cf95/firebase-app.js";class FirebaseError extends Error{constructor(e,t,c){super(t),this.code=e,this.customData=c,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,c){this.service=e,this.serviceName=t,this.errors=c}create(e,...t){const c=t[0]||{},w=`${this.service}/${e}`,I=this.errors[e],_=I?function replaceTemplate(e,t){return e.replace(g,((e,c)=>{const g=t[c];return null!=g?String(g):`<${c}?>`}))}(I,c):"Error",k=`${this.serviceName}: ${_} (${w}).`;return new FirebaseError(w,k,c)}}const g=/\{\$([^}]+)}/g;function deepEqual(e,t){if(e===t)return!0;const c=Object.keys(e),g=Object.keys(t);for(const w of c){if(!g.includes(w))return!1;const c=e[w],I=t[w];if(isObject(c)&&isObject(I)){if(!deepEqual(c,I))return!1}else if(c!==I)return!1}for(const e of g)if(!c.includes(e))return!1;return!0}function isObject(e){return null!==e&&"object"==typeof e}function getModularInstance(e){return e&&e._delegate?e._delegate:e}var w;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(w||(w={}));const I={debug:w.DEBUG,verbose:w.VERBOSE,info:w.INFO,warn:w.WARN,error:w.ERROR,silent:w.SILENT},_=w.INFO,k={[w.DEBUG]:"log",[w.VERBOSE]:"log",[w.INFO]:"info",[w.WARN]:"warn",[w.ERROR]:"error"},defaultLogHandler=(e,t,...c)=>{if(t<e.logLevel)return;const g=(new Date).toISOString(),w=k[t];if(!w)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[w](`[${g}] ${e.name}:`,...c)};var C,R,n=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},r=function(e){if("loading"===document.readyState)return"loading";var t=n();if(t){if(e<t.domInteractive)return"loading";if(0===t.domContentLoadedEventStart||e<t.domContentLoadedEventStart)return"dom-interactive";if(0===t.domComplete||e<t.domComplete)return"dom-content-loaded"}return"complete"},i=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},a=function(e,t){var c="";try{for(;e&&9!==e.nodeType;){var g=e,w=g.id?"#"+g.id:i(g)+(g.classList&&g.classList.value&&g.classList.value.trim()&&g.classList.value.trim().length?"."+g.classList.value.trim().replace(/\s+/g,"."):"");if(c.length+w.length>(t||100)-1)return c||w;if(c=c?w+">"+c:w,g.id)break;e=g.parentNode}}catch(e){}return c},M=-1,u=function(e){addEventListener("pageshow",(function(t){t.persisted&&(M=t.timeStamp,e(t))}),!0)},s=function(){var e=n();return e&&e.activationStart||0},f=function(e,t){var c=n(),g="navigate";return M>=0?g="back-forward-cache":c&&(document.prerendering||s()>0?g="prerender":document.wasDiscarded?g="restore":c.type&&(g=c.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:g}},d=function(e,t,c){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var g=new PerformanceObserver((function(e){Promise.resolve().then((function(){t(e.getEntries())}))}));return g.observe(Object.assign({type:e,buffered:!0},c||{})),g}}catch(e){}},l=function(e,t,c,g){var w,I;return function(_){t.value>=0&&(_||g)&&((I=t.value-(w||0))||void 0===w)&&(w=t.value,t.delta=I,t.rating=function(e,t){return e>t[1]?"poor":e>t[0]?"needs-improvement":"good"}(t.value,c),e(t))}},m=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){document.addEventListener("visibilitychange",(function(){"hidden"===document.visibilityState&&e()}))},v=function(e){var t=!1;return function(){t||(e(),t=!0)}},L=-1,h=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},T=function(e){"hidden"===document.visibilityState&&L>-1&&(L="visibilitychange"===e.type?e.timeStamp:0,E())},y=function(){addEventListener("visibilitychange",T,!0),addEventListener("prerenderingchange",T,!0)},E=function(){removeEventListener("visibilitychange",T,!0),removeEventListener("prerenderingchange",T,!0)},S=function(){return L<0&&(L=h(),y(),u((function(){setTimeout((function(){L=h(),y()}),0)}))),{get firstHiddenTime(){return L}}},b=function(e){document.prerendering?addEventListener("prerenderingchange",(function(){return e()}),!0):e()},O=[1800,3e3],B=[.1,.25],D=function(e,t){!function(e,t){t=t||{},function(e,t){t=t||{},b((function(){var c,g=S(),w=f("FCP"),I=d("paint",(function(e){e.forEach((function(e){"first-contentful-paint"===e.name&&(I.disconnect(),e.startTime<g.firstHiddenTime&&(w.value=Math.max(e.startTime-s(),0),w.entries.push(e),c(!0)))}))}));I&&(c=l(e,w,O,t.reportAllChanges),u((function(g){w=f("FCP"),c=l(e,w,O,t.reportAllChanges),m((function(){w.value=performance.now()-g.timeStamp,c(!0)}))})))}))}(v((function(){var c,g=f("CLS",0),w=0,I=[],o=function(e){e.forEach((function(e){if(!e.hadRecentInput){var t=I[0],c=I[I.length-1];w&&e.startTime-c.startTime<1e3&&e.startTime-t.startTime<5e3?(w+=e.value,I.push(e)):(w=e.value,I=[e])}})),w>g.value&&(g.value=w,g.entries=I,c())},_=d("layout-shift",o);_&&(c=l(e,g,B,t.reportAllChanges),p((function(){o(_.takeRecords()),c(!0)})),u((function(){w=0,g=f("CLS",0),c=l(e,g,B,t.reportAllChanges),m((function(){return c()}))})),setTimeout(c,0))})))}((function(t){var c=function(e){var t,c={};if(e.entries.length){var g=e.entries.reduce((function(e,t){return e&&e.value>t.value?e:t}));if(g&&g.sources&&g.sources.length){var w=(t=g.sources).find((function(e){return e.node&&1===e.node.nodeType}))||t[0];w&&(c={largestShiftTarget:a(w.node),largestShiftTime:g.startTime,largestShiftValue:g.value,largestShiftSource:w,largestShiftEntry:g,loadState:r(g.startTime)})}}return Object.assign(e,{attribution:c})}(t);e(c)}),t)},q=0,j=1/0,U=0,A=function(e){e.forEach((function(e){e.interactionId&&(j=Math.min(j,e.interactionId),U=Math.max(U,e.interactionId),q=U?(U-j)/7+1:0)}))},F=function(){return C?q:performance.interactionCount||0},P=function(){"interactionCount"in performance||C||(C=d("event",A,{type:"event",buffered:!0,durationThreshold:0}))},$=[],x=new Map,V=0,W=[],H=function(e){if(W.forEach((function(t){return t(e)})),e.interactionId||"first-input"===e.entryType){var t=$[$.length-1],c=x.get(e.interactionId);if(c||$.length<10||e.duration>t.latency){if(c)e.duration>c.latency?(c.entries=[e],c.latency=e.duration):e.duration===c.latency&&e.startTime===c.entries[0].startTime&&c.entries.push(e);else{var g={id:e.interactionId,latency:e.duration,entries:[e]};x.set(g.id,g),$.push(g)}$.sort((function(e,t){return t.latency-e.latency})),$.length>10&&$.splice(10).forEach((function(e){return x.delete(e.id)}))}}},N=function(e){var t=self.requestIdleCallback||self.setTimeout,c=-1;return e=v(e),"hidden"===document.visibilityState?e():(c=t(e),p(e)),c},K=[200,500],z=function(e,t){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(t=t||{},b((function(){var c;P();var g,w=f("INP"),a=function(e){N((function(){e.forEach(H);var t=function(){var e=Math.min($.length-1,Math.floor((F()-V)/50));return $[e]}();t&&t.latency!==w.value&&(w.value=t.latency,w.entries=t.entries,g())}))},I=d("event",a,{durationThreshold:null!==(c=t.durationThreshold)&&void 0!==c?c:40});g=l(e,w,K,t.reportAllChanges),I&&(I.observe({type:"first-input",buffered:!0}),p((function(){a(I.takeRecords()),g(!0)})),u((function(){V=F(),$.length=0,x.clear(),w=f("INP"),g=l(e,w,K,t.reportAllChanges)})))})))},G=[],J=[],Z=0,ee=new WeakMap,te=new Map,ne=-1,Q=function(e){G=G.concat(e),X()},X=function(){ne<0&&(ne=N(Y))},Y=function(){te.size>10&&te.forEach((function(e,t){x.has(t)||te.delete(t)}));var e=$.map((function(e){return ee.get(e.entries[0])})),t=J.length-50;J=J.filter((function(c,g){return g>=t||e.includes(c)}));for(var c=new Set,g=0;g<J.length;g++){var w=J[g];nt(w.startTime,w.processingEnd).forEach((function(e){c.add(e)}))}var I=G.length-1-50;G=G.filter((function(e,t){return e.startTime>Z&&t>I||c.has(e)})),ne=-1};W.push((function(e){e.interactionId&&e.target&&!te.has(e.interactionId)&&te.set(e.interactionId,e.target)}),(function(e){var t,c=e.startTime+e.duration;Z=Math.max(Z,e.processingEnd);for(var g=J.length-1;g>=0;g--){var w=J[g];if(Math.abs(c-w.renderTime)<=8){(t=w).startTime=Math.min(e.startTime,t.startTime),t.processingStart=Math.min(e.processingStart,t.processingStart),t.processingEnd=Math.max(e.processingEnd,t.processingEnd),t.entries.push(e);break}}t||(t={startTime:e.startTime,processingStart:e.processingStart,processingEnd:e.processingEnd,renderTime:c,entries:[e]},J.push(t)),(e.interactionId||"first-input"===e.entryType)&&ee.set(e,t),X()}));var nt=function(e,t){for(var c,g=[],w=0;c=G[w];w++)if(!(c.startTime+c.duration<e)){if(c.startTime>t)break;g.push(c)}return g},rt=function(e,t){R||(R=d("long-animation-frame",Q)),z((function(t){var c=function(e){var t=e.entries[0],c=ee.get(t),g=t.processingStart,w=c.processingEnd,I=c.entries.sort((function(e,t){return e.processingStart-t.processingStart})),_=nt(t.startTime,w),k=e.entries.find((function(e){return e.target})),C=k&&k.target||te.get(t.interactionId),R=[t.startTime+t.duration,w].concat(_.map((function(e){return e.startTime+e.duration}))),M=Math.max.apply(Math,R),L={interactionTarget:a(C),interactionTargetElement:C,interactionType:t.name.startsWith("key")?"keyboard":"pointer",interactionTime:t.startTime,nextPaintTime:M,processedEventEntries:I,longAnimationFrameEntries:_,inputDelay:g-t.startTime,processingDuration:w-g,presentationDelay:Math.max(M-w,0),loadState:r(t.startTime)};return Object.assign(e,{attribution:L})}(t);e(c)}),t)},re=[2500,4e3],ie={},ot=function(e,t){!function(e,t){t=t||{},b((function(){var c,g=S(),w=f("LCP"),a=function(e){t.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime<g.firstHiddenTime&&(w.value=Math.max(e.startTime-s(),0),w.entries=[e],c())}))},I=d("largest-contentful-paint",a);if(I){c=l(e,w,re,t.reportAllChanges);var _=v((function(){ie[w.id]||(a(I.takeRecords()),I.disconnect(),ie[w.id]=!0,c(!0))}));["keydown","click"].forEach((function(e){addEventListener(e,(function(){return N(_)}),{once:!0,capture:!0})})),p(_),u((function(g){w=f("LCP"),c=l(e,w,re,t.reportAllChanges),m((function(){w.value=performance.now()-g.timeStamp,ie[w.id]=!0,c(!0)}))}))}}))}((function(t){var c=function(e){var t={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:e.value};if(e.entries.length){var c=n();if(c){var g=c.activationStart||0,w=e.entries[e.entries.length-1],I=w.url&&performance.getEntriesByType("resource").filter((function(e){return e.name===w.url}))[0],_=Math.max(0,c.responseStart-g),k=Math.max(_,I?(I.requestStart||I.startTime)-g:0),C=Math.max(k,I?I.responseEnd-g:0),R=Math.max(C,w.startTime-g);t={element:a(w.element),timeToFirstByte:_,resourceLoadDelay:k-_,resourceLoadDuration:C-k,elementRenderDelay:R-C,navigationEntry:c,lcpEntry:w},w.url&&(t.url=w.url),I&&(t.lcpResourceEntry=I)}}return Object.assign(e,{attribution:t})}(t);e(c)}),t)};class Component{constructor(e,t,c){this.name=e,this.instanceFactory=t,this.type=c,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}}let ae,oe;const se=new WeakMap,ce=new WeakMap,ue=new WeakMap,le=new WeakMap,de=new WeakMap;let fe={get(e,t,c){if(e instanceof IDBTransaction){if("done"===t)return ce.get(e);if("objectStoreNames"===t)return e.objectStoreNames||ue.get(e);if("store"===t)return c.objectStoreNames[1]?void 0:c.objectStore(c.objectStoreNames[0])}return wrap(e[t])},set:(e,t,c)=>(e[t]=c,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return oe||(oe=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(unwrap(this),t),wrap(se.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...c){const g=e.call(unwrap(this),t,...c);return ue.set(g,t.sort?t.sort():[t]),wrap(g)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(ce.has(e))return;const t=new Promise(((t,c)=>{const unlisten=()=>{e.removeEventListener("complete",complete),e.removeEventListener("error",error),e.removeEventListener("abort",error)},complete=()=>{t(),unlisten()},error=()=>{c(e.error||new DOMException("AbortError","AbortError")),unlisten()};e.addEventListener("complete",complete),e.addEventListener("error",error),e.addEventListener("abort",error)}));ce.set(e,t)}(e),t=e,function getIdbProxyableTypes(){return ae||(ae=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}().some((e=>t instanceof e))?new Proxy(e,fe):e);var t}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise(((t,c)=>{const unlisten=()=>{e.removeEventListener("success",success),e.removeEventListener("error",error)},success=()=>{t(wrap(e.result)),unlisten()},error=()=>{c(e.error),unlisten()};e.addEventListener("success",success),e.addEventListener("error",error)}));return t.then((t=>{t instanceof IDBCursor&&se.set(t,e)})).catch((()=>{})),de.set(t,e),t}(e);if(le.has(e))return le.get(e);const t=transformCachableValue(e);return t!==e&&(le.set(e,t),de.set(t,e)),t}const unwrap=e=>de.get(e);const pe=["get","getKey","getAll","getAllKeys","count"],ge=["put","add","delete","clear"],me=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(me.get(t))return me.get(t);const c=t.replace(/FromIndex$/,""),g=t!==c,w=ge.includes(c);if(!(c in(g?IDBIndex:IDBObjectStore).prototype)||!w&&!pe.includes(c))return;const method=async function(e,...t){const I=this.transaction(e,w?"readwrite":"readonly");let _=I.store;return g&&(_=_.index(t.shift())),(await Promise.all([_[c](...t),w&&I.done]))[0]};return me.set(t,method),method}!function replaceTraps(e){fe=e(fe)}((e=>Object.assign(Object.assign({},e),{get:(t,c,g)=>getMethod(t,c)||e.get(t,c,g),has:(t,c)=>!!getMethod(t,c)||e.has(t,c)})));const he="@firebase/installations",ve="0.6.12-canary.70e08cf95",Te=1e4,be=`w:${ve}`,ye="FIS_v2",Ee=36e5,we=new 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 isServerError(e){return e instanceof FirebaseError&&e.code.includes("request-failed")}function getInstallationsEndpoint({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function extractAuthTokenInfoFromResponse(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function getErrorFromResponse(e,t){const c=(await t.json()).error;return we.create("request-failed",{requestName:e,serverCode:c.code,serverMessage:c.message,serverStatus:c.status})}function getHeaders({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function getHeadersWithAuth(e,{refreshToken:t}){const c=getHeaders(e);return c.append("Authorization",function getAuthorizationHeader(e){return`${ye} ${e}`}(t)),c}async function retryIfServerError(e){const t=await e();return t.status>=500&&t.status<600?e():t}function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}const Se=/^[cdef][\w-]{21}$/;function generateFid(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function encode(e){const t=function bufferToBase64UrlSafe(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(e);return Se.test(t)?t:""}catch(e){return""}}function getKey(e){return`${e.appName}!${e.appId}`}const Ie=new Map;function fidChanged(e,t){const c=getKey(e);callFidChangeCallbacks(c,t),function broadcastFidChange(e,t){const c=function getBroadcastChannel(){!_e&&"BroadcastChannel"in self&&(_e=new BroadcastChannel("[Firebase] FID Change"),_e.onmessage=e=>{callFidChangeCallbacks(e.data.key,e.data.fid)});return _e}();c&&c.postMessage({key:e,fid:t});!function closeBroadcastChannel(){0===Ie.size&&_e&&(_e.close(),_e=null)}()}(c,t)}function callFidChangeCallbacks(e,t){const c=Ie.get(e);if(c)for(const e of c)e(t)}let _e=null;const Ae="firebase-installations-store";let ke=null;function getDbPromise(){return ke||(ke=function openDB(e,t,{blocked:c,upgrade:g,blocking:w,terminated:I}={}){const _=indexedDB.open(e,t),k=wrap(_);return g&&_.addEventListener("upgradeneeded",(e=>{g(wrap(_.result),e.oldVersion,e.newVersion,wrap(_.transaction),e)})),c&&_.addEventListener("blocked",(e=>c(e.oldVersion,e.newVersion,e))),k.then((e=>{I&&e.addEventListener("close",(()=>I())),w&&e.addEventListener("versionchange",(e=>w(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),k}("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(Ae)}})),ke}async function set(e,t){const c=getKey(e),g=(await getDbPromise()).transaction(Ae,"readwrite"),w=g.objectStore(Ae),I=await w.get(c);return await w.put(t,c),await g.done,I&&I.fid===t.fid||fidChanged(e,t.fid),t}async function remove(e){const t=getKey(e),c=(await getDbPromise()).transaction(Ae,"readwrite");await c.objectStore(Ae).delete(t),await c.done}async function update(e,t){const c=getKey(e),g=(await getDbPromise()).transaction(Ae,"readwrite"),w=g.objectStore(Ae),I=await w.get(c),_=t(I);return void 0===_?await w.delete(c):await w.put(_,c),await g.done,!_||I&&I.fid===_.fid||fidChanged(e,_.fid),_}async function getInstallationEntry(e){let t;const c=await update(e.appConfig,(c=>{const g=function updateOrCreateInstallationEntry(e){const t=e||{fid:generateFid(),registrationStatus:0};return clearTimedOutRequest(t)}(c),w=function triggerRegistrationIfNecessary(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(we.create("app-offline"))}}const c={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},g=async function registerInstallation(e,t){try{const c=await async function createInstallationRequest({appConfig:e,heartbeatServiceProvider:t},{fid:c}){const g=getInstallationsEndpoint(e),w=getHeaders(e),I=t.getImmediate({optional:!0});if(I){const e=await I.getHeartbeatsHeader();e&&w.append("x-firebase-client",e)}const _={fid:c,authVersion:ye,appId:e.appId,sdkVersion:be},k={method:"POST",headers:w,body:JSON.stringify(_)},C=await retryIfServerError((()=>fetch(g,k)));if(C.ok){const e=await C.json();return{fid:e.fid||c,registrationStatus:2,refreshToken:e.refreshToken,authToken:extractAuthTokenInfoFromResponse(e.authToken)}}throw await getErrorFromResponse("Create Installation",C)}(e,t);return set(e.appConfig,c)}catch(c){throw isServerError(c)&&409===c.customData.serverCode?await remove(e.appConfig):await set(e.appConfig,{fid:t.fid,registrationStatus:0}),c}}(e,c);return{installationEntry:c,registrationPromise:g}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:waitUntilFidRegistration(e)}:{installationEntry:t}}(e,g);return t=w.registrationPromise,w.installationEntry}));return""===c.fid?{installationEntry:await t}:{installationEntry:c,registrationPromise:t}}async function waitUntilFidRegistration(e){let t=await updateInstallationRequest(e.appConfig);for(;1===t.registrationStatus;)await sleep(100),t=await updateInstallationRequest(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:c}=await getInstallationEntry(e);return c||t}return t}function updateInstallationRequest(e){return update(e,(e=>{if(!e)throw we.create("installation-not-found");return clearTimedOutRequest(e)}))}function clearTimedOutRequest(e){return function hasInstallationRequestTimedOut(e){return 1===e.registrationStatus&&e.registrationTime+Te<Date.now()}(e)?{fid:e.fid,registrationStatus:0}:e}async function generateAuthTokenRequest({appConfig:e,heartbeatServiceProvider:t},c){const g=function getGenerateAuthTokenEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}/authTokens:generate`}(e,c),w=getHeadersWithAuth(e,c),I=t.getImmediate({optional:!0});if(I){const e=await I.getHeartbeatsHeader();e&&w.append("x-firebase-client",e)}const _={installation:{sdkVersion:be,appId:e.appId}},k={method:"POST",headers:w,body:JSON.stringify(_)},C=await retryIfServerError((()=>fetch(g,k)));if(C.ok){return extractAuthTokenInfoFromResponse(await C.json())}throw await getErrorFromResponse("Generate Auth Token",C)}async function refreshAuthToken(e,t=!1){let c;const g=await update(e.appConfig,(g=>{if(!isEntryRegistered(g))throw we.create("not-registered");const w=g.authToken;if(!t&&function isAuthTokenValid(e){return 2===e.requestStatus&&!function isAuthTokenExpired(e){const t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+Ee}(e)}(w))return g;if(1===w.requestStatus)return c=async function waitUntilAuthTokenRequest(e,t){let c=await updateAuthTokenRequest(e.appConfig);for(;1===c.authToken.requestStatus;)await sleep(100),c=await updateAuthTokenRequest(e.appConfig);const g=c.authToken;return 0===g.requestStatus?refreshAuthToken(e,t):g}(e,t),g;{if(!navigator.onLine)throw we.create("app-offline");const t=function makeAuthTokenRequestInProgressEntry(e){const t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(g);return c=async function fetchAuthTokenFromServer(e,t){try{const c=await generateAuthTokenRequest(e,t),g=Object.assign(Object.assign({},t),{authToken:c});return await set(e.appConfig,g),c}catch(c){if(!isServerError(c)||401!==c.customData.serverCode&&404!==c.customData.serverCode){const c=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await set(e.appConfig,c)}else await remove(e.appConfig);throw c}}(e,t),t}}));return c?await c:g.authToken}function updateAuthTokenRequest(e){return update(e,(e=>{if(!isEntryRegistered(e))throw we.create("not-registered");return function hasAuthTokenRequestTimedOut(e){return 1===e.requestStatus&&e.requestTime+Te<Date.now()}(e.authToken)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e}))}function isEntryRegistered(e){return void 0!==e&&2===e.registrationStatus}async function getToken(e,t=!1){const c=e;await async function completeInstallationRegistration(e){const{registrationPromise:t}=await getInstallationEntry(e);t&&await t}(c);return(await refreshAuthToken(c,t)).token}function getMissingValueError(e){return we.create("missing-app-config-values",{valueName:e})}const Ce="installations",publicFactory=e=>{const t=e.getProvider("app").getImmediate(),c=function extractAppConfig(e){if(!e||!e.options)throw getMissingValueError("App Configuration");if(!e.name)throw getMissingValueError("App Name");const t=["projectId","apiKey","appId"];for(const c of t)if(!e.options[c])throw getMissingValueError(c);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:c,heartbeatServiceProvider:_getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},internalFactory=e=>{const t=e.getProvider("app").getImmediate(),c=_getProvider(t,Ce).getImmediate();return{getId:()=>async function getId(e){const t=e,{installationEntry:c,registrationPromise:g}=await getInstallationEntry(t);return g?g.catch(console.error):refreshAuthToken(t).catch(console.error),c.fid}(c),getToken:e=>getToken(c,e)}};!function registerInstallations(){t(new Component(Ce,publicFactory,"PUBLIC")),t(new Component("installations-internal",internalFactory,"PRIVATE"))}(),e(he,ve),e(he,ve,"esm2017");const Re="@firebase/performance",Me="0.7.0-canary.70e08cf95",Le=Me,Pe="FB-PERF-TRACE-MEASURE",Oe="_wt_",Ne="_fcp",De="_fid",Be="_lcp",Fe="_inp",qe="_cls",je="@firebase/performance/config",Ue="@firebase/performance/configexpire",$e="Performance",xe=new ErrorFactory("performance",$e,{"trace started":"Trace {$traceName} was started before.","trace stopped":"Trace {$traceName} is not running.","nonpositive trace startTime":"Trace {$traceName} startTime should be positive.","nonpositive trace duration":"Trace {$traceName} duration should be positive.","no window":"Window is not available.","no app id":"App id is not available.","no project id":"Project id is not available.","no api key":"Api key is not available.","invalid cc log":"Attempted to queue invalid cc event","FB not default":"Performance can only start when Firebase app instance is the default one.","RC response not ok":"RC response is not ok","invalid attribute name":"Attribute name {$attributeName} is invalid.","invalid attribute value":"Attribute value {$attributeValue} is invalid.","invalid custom metric name":"Custom metric name {$customMetricName} is invalid","invalid String merger input":"Input for String merger is invalid, contact support team to resolve.","already initialized":"initializePerformance() has already been called with different options. To avoid this error, call initializePerformance() with the same options as when it was originally called, or call getPerformance() to return the already initialized instance."}),He=new class Logger{constructor(e){this.name=e,this._logLevel=_,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in w))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?I[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,w.DEBUG,...e),this._logHandler(this,w.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,w.VERBOSE,...e),this._logHandler(this,w.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,w.INFO,...e),this._logHandler(this,w.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,w.WARN,...e),this._logHandler(this,w.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,w.ERROR,...e),this._logHandler(this,w.ERROR,...e)}}($e);let Ve,ze,We,Ke;He.logLevel=w.INFO;class Api{constructor(e){if(this.window=e,!e)throw xe.create("no window");this.performance=e.performance,this.PerformanceObserver=e.PerformanceObserver,this.windowLocation=e.location,this.navigator=e.navigator,this.document=e.document,this.navigator&&this.navigator.cookieEnabled&&(this.localStorage=e.localStorage),e.perfMetrics&&e.perfMetrics.onFirstInputDelay&&(this.onFirstInputDelay=e.perfMetrics.onFirstInputDelay),this.onLCP=ot,this.onINP=rt,this.onCLS=D}getUrl(){return this.windowLocation.href.split("?")[0]}mark(e){this.performance&&this.performance.mark&&this.performance.mark(e)}measure(e,t,c){this.performance&&this.performance.measure&&this.performance.measure(e,t,c)}getEntriesByType(e){return this.performance&&this.performance.getEntriesByType?this.performance.getEntriesByType(e):[]}getEntriesByName(e){return this.performance&&this.performance.getEntriesByName?this.performance.getEntriesByName(e):[]}getTimeOrigin(){return this.performance&&(this.performance.timeOrigin||this.performance.timing.navigationStart)}requiredApisAvailable(){return fetch&&Promise&&function areCookiesEnabled(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}()?!!function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(e){return!1}}()||(He.info("IndexedDB is not supported by current browser"),!1):(He.info("Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled."),!1)}setupObserver(e,t){if(!this.PerformanceObserver)return;new this.PerformanceObserver((e=>{for(const c of e.getEntries())t(c)})).observe({entryTypes:[e]})}static getInstance(){return void 0===Ve&&(Ve=new Api(ze)),Ve}}function getIid(){return We}function mergeStrings(e,t){const c=e.length-t.length;if(c<0||c>1)throw xe.create("invalid String merger input");const g=[];for(let c=0;c<e.length;c++)g.push(e.charAt(c)),t.length>c&&g.push(t.charAt(c));return g.join("")}class SettingsService{constructor(){this.instrumentationEnabled=!0,this.dataCollectionEnabled=!0,this.loggingEnabled=!1,this.tracesSamplingRate=1,this.networkRequestsSamplingRate=1,this.logEndPointUrl="https://firebaselogging.googleapis.com/v0cc/log?format=json_proto",this.flTransportEndpointUrl=mergeStrings("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=mergeStrings("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return void 0===Ke&&(Ke=new SettingsService),Ke}}var Qe;!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.VISIBLE=1]="VISIBLE",e[e.HIDDEN=2]="HIDDEN"}(Qe||(Qe={}));const Ge=["firebase_","google_","ga_"],Je=new RegExp("^[a-zA-Z]\\w*$");function getServiceWorkerStatus(){const e=Api.getInstance().navigator;return(null==e?void 0:e.serviceWorker)?e.serviceWorker.controller?2:3:1}function getVisibilityState(){switch(Api.getInstance().document.visibilityState){case"visible":return Qe.VISIBLE;case"hidden":return Qe.HIDDEN;default:return Qe.UNKNOWN}}function getEffectiveConnectionType(){const e=Api.getInstance().navigator.connection;switch(e&&e.effectiveType){case"slow-2g":return 1;case"2g":return 2;case"3g":return 3;case"4g":return 4;default:return 0}}function getAppId(e){var t;const c=null===(t=e.options)||void 0===t?void 0:t.appId;if(!c)throw xe.create("no app id");return c}const Ze="0.0.1",Xe={loggingEnabled:!0},Ye="FIREBASE_INSTALLATIONS_AUTH";function getConfig(e,t){const c=function getStoredConfig(){const e=Api.getInstance().localStorage;if(!e)return;const t=e.getItem(Ue);if(!t||!function configValid(e){return Number(e)>Date.now()}(t))return;const c=e.getItem(je);if(!c)return;try{return JSON.parse(c)}catch(e){return}}();return c?(processConfig(c),Promise.resolve()):function getRemoteConfig(e,t){return function getAuthTokenPromise(e){const t=e.getToken();return t.then((e=>{})),t}(e.installations).then((c=>{const g=function getProjectId(e){var t;const c=null===(t=e.options)||void 0===t?void 0:t.projectId;if(!c)throw xe.create("no project id");return c}(e.app),w=function getApiKey(e){var t;const c=null===(t=e.options)||void 0===t?void 0:t.apiKey;if(!c)throw xe.create("no api key");return c}(e.app),I=new Request(`https://firebaseremoteconfig.googleapis.com/v1/projects/${g}/namespaces/fireperf:fetch?key=${w}`,{method:"POST",headers:{Authorization:`${Ye} ${c}`},body:JSON.stringify({app_instance_id:t,app_instance_id_token:c,app_id:getAppId(e.app),app_version:Le,sdk_version:Ze})});return fetch(I).then((e=>{if(e.ok)return e.json();throw xe.create("RC response not ok")}))})).catch((()=>{He.info(et)}))}(e,t).then(processConfig).then((e=>function storeConfig(e){const t=Api.getInstance().localStorage;if(!e||!t)return;t.setItem(je,JSON.stringify(e)),t.setItem(Ue,String(Date.now()+60*SettingsService.getInstance().configTimeToLive*60*1e3))}(e)),(()=>{}))}const et="Could not fetch config, will use default configs";function processConfig(e){if(!e)return e;const t=SettingsService.getInstance(),c=e.entries||{};return void 0!==c.fpr_enabled?t.loggingEnabled="true"===String(c.fpr_enabled):t.loggingEnabled=Xe.loggingEnabled,c.fpr_log_source?t.logSource=Number(c.fpr_log_source):Xe.logSource&&(t.logSource=Xe.logSource),c.fpr_log_endpoint_url?t.logEndPointUrl=c.fpr_log_endpoint_url:Xe.logEndPointUrl&&(t.logEndPointUrl=Xe.logEndPointUrl),c.fpr_log_transport_key?t.transportKey=c.fpr_log_transport_key:Xe.transportKey&&(t.transportKey=Xe.transportKey),void 0!==c.fpr_vc_network_request_sampling_rate?t.networkRequestsSamplingRate=Number(c.fpr_vc_network_request_sampling_rate):void 0!==Xe.networkRequestsSamplingRate&&(t.networkRequestsSamplingRate=Xe.networkRequestsSamplingRate),void 0!==c.fpr_vc_trace_sampling_rate?t.tracesSamplingRate=Number(c.fpr_vc_trace_sampling_rate):void 0!==Xe.tracesSamplingRate&&(t.tracesSamplingRate=Xe.tracesSamplingRate),t.logTraceAfterSampling=shouldLogAfterSampling(t.tracesSamplingRate),t.logNetworkAfterSampling=shouldLogAfterSampling(t.networkRequestsSamplingRate),e}function shouldLogAfterSampling(e){return Math.random()<=e}let tt,it=1;function getInitializationPromise(e){return it=2,tt=tt||function initializePerf(e){return function getDocumentReadyComplete(){const e=Api.getInstance().document;return new Promise((t=>{if(e&&"complete"!==e.readyState){const handler=()=>{"complete"===e.readyState&&(e.removeEventListener("readystatechange",handler),t())};e.addEventListener("readystatechange",handler)}else t()}))}().then((()=>function getIidPromise(e){const t=e.getId();return t.then((e=>{We=e})),t}(e.installations))).then((t=>getConfig(e,t))).then((()=>changeInitializationStatus()),(()=>changeInitializationStatus()))}(e),tt}function changeInitializationStatus(){it=3}let at,st=3,ct=[],ut=!1;function processQueue(e){setTimeout((()=>{0!==st&&(ct.length>0&&dispatchQueueEvents(),processQueue(1e4))}),e)}function dispatchQueueEvents(){const e=ct.splice(0,1e3),t=e.map((e=>({source_extension_json_proto3:e.message,event_time_ms:String(e.eventTime)})));(function postToFlEndpoint(e){const t=SettingsService.getInstance().getFlTransportFullUrl(),c=JSON.stringify(e);return navigator.sendBeacon&&navigator.sendBeacon(t,c)?Promise.resolve():fetch(t,{method:"POST",body:c,keepalive:!0}).then()})({request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:SettingsService.getInstance().logSource,log_event:t}).then((()=>{st=3})).catch((()=>{ct=[...e,...ct],st--,He.info(`Tries left: ${st}.`),processQueue(1e4)}))}function transportHandler(e){return(...t)=>{!function addToQueue(e){if(!e.eventTime||!e.message)throw xe.create("invalid cc log");ct=[...ct,e]}({message:e(...t),eventTime:Date.now()})}}function flushQueuedEvents(){for(;ct.length>0;)dispatchQueueEvents()}function sendLog(e,t){at||(at={send:transportHandler(serializer),flush:flushQueuedEvents}),at.send(e,t)}function logTrace(e){const t=SettingsService.getInstance();!t.instrumentationEnabled&&e.isAuto||(t.dataCollectionEnabled||e.isAuto)&&Api.getInstance().requiredApisAvailable()&&(!function isPerfInitialized(){return 3===it}()?getInitializationPromise(e.performanceController).then((()=>sendTraceLog(e)),(()=>sendTraceLog(e))):sendTraceLog(e))}function sendTraceLog(e){if(!getIid())return;const t=SettingsService.getInstance();t.loggingEnabled&&t.logTraceAfterSampling&&sendLog(e,1)}function serializer(e,t){return 0===t?function serializeNetworkRequest(e){const t={url:e.url,http_method:e.httpMethod||0,http_response_code:200,response_payload_bytes:e.responsePayloadBytes,client_start_time_us:e.startTimeUs,time_to_response_initiated_us:e.timeToResponseInitiatedUs,time_to_response_completed_us:e.timeToResponseCompletedUs},c={application_info:getApplicationInfo(e.performanceController.app),network_request_metric:t};return JSON.stringify(c)}(e):function serializeTrace(e){const t={name:e.name,is_auto:e.isAuto,client_start_time_us:e.startTimeUs,duration_us:e.durationUs};0!==Object.keys(e.counters).length&&(t.counters=e.counters);const c=e.getAttributes();0!==Object.keys(c).length&&(t.custom_attributes=c);const g={application_info:getApplicationInfo(e.performanceController.app),trace_metric:t};return JSON.stringify(g)}(e)}function getApplicationInfo(e){return{google_app_id:getAppId(e),app_instance_id:getIid(),web_app_info:{sdk_version:Le,page_url:Api.getInstance().getUrl(),service_worker_status:getServiceWorkerStatus(),visibility_state:getVisibilityState(),effective_connection_type:getEffectiveConnectionType()},application_process_state:0}}function createNetworkRequestEntry(e,t){const c=t;if(!c||void 0===c.responseStart)return;const g=Api.getInstance().getTimeOrigin(),w=Math.floor(1e3*(c.startTime+g)),I=c.responseStart?Math.floor(1e3*(c.responseStart-c.startTime)):void 0,_=Math.floor(1e3*(c.responseEnd-c.startTime));!function logNetworkRequest(e){const t=SettingsService.getInstance();if(!t.instrumentationEnabled)return;const c=e.url,g=t.logEndPointUrl.split("?")[0],w=t.flTransportEndpointUrl.split("?")[0];c!==g&&c!==w&&t.loggingEnabled&&t.logNetworkAfterSampling&&sendLog(e,0)}({performanceController:e,url:c.name&&c.name.split("?")[0],responsePayloadBytes:c.transferSize,startTimeUs:w,timeToResponseInitiatedUs:I,timeToResponseCompletedUs:_})}const lt=["_fp",Ne,De,Be,qe,Fe];class Trace{constructor(e,t,c=!1,g){this.performanceController=e,this.name=t,this.isAuto=c,this.state=1,this.customAttributes={},this.counters={},this.api=Api.getInstance(),this.randomId=Math.floor(1e6*Math.random()),this.isAuto||(this.traceStartMark=`FB-PERF-TRACE-START-${this.randomId}-${this.name}`,this.traceStopMark=`FB-PERF-TRACE-STOP-${this.randomId}-${this.name}`,this.traceMeasure=g||`${Pe}-${this.randomId}-${this.name}`,g&&this.calculateTraceMetrics())}start(){if(1!==this.state)throw xe.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(2!==this.state)throw xe.create("trace stopped",{traceName:this.name});this.state=3,this.api.mark(this.traceStopMark),this.api.measure(this.traceMeasure,this.traceStartMark,this.traceStopMark),this.calculateTraceMetrics(),logTrace(this)}record(e,t,c){if(e<=0)throw xe.create("nonpositive trace startTime",{traceName:this.name});if(t<=0)throw xe.create("nonpositive trace duration",{traceName:this.name});if(this.durationUs=Math.floor(1e3*t),this.startTimeUs=Math.floor(1e3*e),c&&c.attributes&&(this.customAttributes=Object.assign({},c.attributes)),c&&c.metrics)for(const e of Object.keys(c.metrics))isNaN(Number(c.metrics[e]))||(this.counters[e]=Math.floor(Number(c.metrics[e])));logTrace(this)}incrementMetric(e,t=1){void 0===this.counters[e]?this.putMetric(e,t):this.putMetric(e,this.counters[e]+t)}putMetric(e,t){if(!function isValidMetricName(e,t){return!(0===e.length||e.length>100)&&(t&&t.startsWith(Oe)&&lt.indexOf(e)>-1||!e.startsWith("_"))}(e,this.name))throw xe.create("invalid custom metric name",{customMetricName:e});this.counters[e]=function convertMetricValueToInteger(e){const t=Math.floor(e);return t<e&&He.info(`Metric value should be an Integer, setting the value as : ${t}.`),t}(null!=t?t:0)}getMetric(e){return this.counters[e]||0}putAttribute(e,t){const c=function isValidCustomAttributeName(e){return!(0===e.length||e.length>40)&&(!Ge.some((t=>e.startsWith(t)))&&!!e.match(Je))}(e),g=function isValidCustomAttributeValue(e){return 0!==e.length&&e.length<=100}(t);if(c&&g)this.customAttributes[e]=t;else{if(!c)throw xe.create("invalid attribute name",{attributeName:e});if(!g)throw xe.create("invalid attribute value",{attributeValue:t})}}getAttribute(e){return this.customAttributes[e]}removeAttribute(e){void 0!==this.customAttributes[e]&&delete this.customAttributes[e]}getAttributes(){return Object.assign({},this.customAttributes)}setStartTime(e){this.startTimeUs=e}setDuration(e){this.durationUs=e}calculateTraceMetrics(){const e=this.api.getEntriesByName(this.traceMeasure),t=e&&e[0];t&&(this.durationUs=Math.floor(1e3*t.duration),this.startTimeUs=Math.floor(1e3*(t.startTime+this.api.getTimeOrigin())))}static createOobTrace(e,t,c,g,w){const I=Api.getInstance().getUrl();if(!I)return;const _=new Trace(e,Oe+I,!0),k=Math.floor(1e3*Api.getInstance().getTimeOrigin());_.setStartTime(k),t&&t[0]&&(_.setDuration(Math.floor(1e3*t[0].duration)),_.putMetric("domInteractive",Math.floor(1e3*t[0].domInteractive)),_.putMetric("domContentLoadedEventEnd",Math.floor(1e3*t[0].domContentLoadedEventEnd)),_.putMetric("loadEventEnd",Math.floor(1e3*t[0].loadEventEnd)));if(c){const e=c.find((e=>"first-paint"===e.name));e&&e.startTime&&_.putMetric("_fp",Math.floor(1e3*e.startTime));const t=c.find((e=>"first-contentful-paint"===e.name));t&&t.startTime&&_.putMetric(Ne,Math.floor(1e3*t.startTime)),w&&_.putMetric(De,Math.floor(1e3*w))}this.addWebVitalMetric(_,Be,"lcp_element",g.lcp),this.addWebVitalMetric(_,qe,"cls_largestShiftTarget",g.cls),this.addWebVitalMetric(_,Fe,"inp_interactionTarget",g.inp),logTrace(_),function flushLogs(){at&&at.flush()}()}static addWebVitalMetric(e,t,c,g){g&&(e.putMetric(t,Math.floor(1e3*g.value)),g.elementAttribution&&e.putAttribute(c,g.elementAttribution))}static createUserTimingTrace(e,t){logTrace(new Trace(e,t,!1,t))}}let dt,ft={},pt=!1;function setupOobResources(e){getIid()&&(setTimeout((()=>function setupOobTraces(e){const t=Api.getInstance();"onpagehide"in window?t.document.addEventListener("pagehide",(()=>sendOobTrace(e))):t.document.addEventListener("unload",(()=>sendOobTrace(e)));t.document.addEventListener("visibilitychange",(()=>{"hidden"===t.document.visibilityState&&sendOobTrace(e)})),t.onFirstInputDelay&&t.onFirstInputDelay((e=>{dt=e}));t.onLCP((e=>{var t;ft.lcp={value:e.value,elementAttribution:null===(t=e.attribution)||void 0===t?void 0:t.element}})),t.onCLS((e=>{var t;ft.cls={value:e.value,elementAttribution:null===(t=e.attribution)||void 0===t?void 0:t.largestShiftTarget}})),t.onINP((e=>{var t;ft.inp={value:e.value,elementAttribution:null===(t=e.attribution)||void 0===t?void 0:t.interactionTarget}}))}(e)),0),setTimeout((()=>function setupNetworkRequests(e){const t=Api.getInstance(),c=t.getEntriesByType("resource");for(const t of c)createNetworkRequestEntry(e,t);t.setupObserver("resource",(t=>createNetworkRequestEntry(e,t)))}(e)),0),setTimeout((()=>function setupUserTimingTraces(e){const t=Api.getInstance(),c=t.getEntriesByType("measure");for(const t of c)createUserTimingTrace(e,t);t.setupObserver("measure",(t=>createUserTimingTrace(e,t)))}(e)),0))}function createUserTimingTrace(e,t){const c=t.name;c.substring(0,21)!==Pe&&Trace.createUserTimingTrace(e,c)}function sendOobTrace(e){if(!pt){pt=!0;const t=Api.getInstance(),c=t.getEntriesByType("navigation"),g=t.getEntriesByType("paint");setTimeout((()=>{Trace.createOobTrace(e,c,g,ft,dt)}),0)}}class PerformanceController{constructor(e,t){this.app=e,this.installations=t,this.initialized=!1}_init(e){this.initialized||(void 0!==(null==e?void 0:e.dataCollectionEnabled)&&(this.dataCollectionEnabled=e.dataCollectionEnabled),void 0!==(null==e?void 0:e.instrumentationEnabled)&&(this.instrumentationEnabled=e.instrumentationEnabled),Api.getInstance().requiredApisAvailable()?function validateIndexedDBOpenable(){return new Promise(((e,t)=>{try{let c=!0;const g="validate-browser-context-for-indexeddb-analytics-module",w=self.indexedDB.open(g);w.onsuccess=()=>{w.result.close(),c||self.indexedDB.deleteDatabase(g),e(!0)},w.onupgradeneeded=()=>{c=!1},w.onerror=()=>{var e;t((null===(e=w.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}().then((e=>{e&&(!function setupTransportService(){ut||(processQueue(5500),ut=!0)}(),getInitializationPromise(this).then((()=>setupOobResources(this)),(()=>setupOobResources(this))),this.initialized=!0)})).catch((e=>{He.info(`Environment doesn't support IndexedDB: ${e}`)})):He.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){SettingsService.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return SettingsService.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){SettingsService.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return SettingsService.getInstance().dataCollectionEnabled}}function getPerformance(e=c()){e=getModularInstance(e);return _getProvider(e,"performance").getImmediate()}function initializePerformance(e,t){e=getModularInstance(e);const c=_getProvider(e,"performance");if(c.isInitialized()){const e=c.getImmediate();if(deepEqual(c.getOptions(),null!=t?t:{}))return e;throw xe.create("already initialized")}return c.initialize({options:t})}function trace(e,t){return e=getModularInstance(e),new Trace(e,t)}const factory=(e,{options:t})=>{const c=e.getProvider("app").getImmediate(),g=e.getProvider("installations-internal").getImmediate();if("[DEFAULT]"!==c.name)throw xe.create("FB not default");if("undefined"==typeof window)throw xe.create("no window");!function setupApi(e){ze=e}(window);const w=new PerformanceController(c,g);return w._init(t),w};!function registerPerformance(){t(new Component("performance",factory,"PUBLIC")),e(Re,Me),e(Re,Me,"esm2017")}();export{getPerformance,initializePerformance,trace};
import{registerVersion as e,_registerComponent as t,_getProvider,getApp as c}from"https://www.gstatic.com/firebasejs/11.3.0-canary.84dfeca39/firebase-app.js";class FirebaseError extends Error{constructor(e,t,c){super(t),this.code=e,this.customData=c,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,c){this.service=e,this.serviceName=t,this.errors=c}create(e,...t){const c=t[0]||{},w=`${this.service}/${e}`,I=this.errors[e],_=I?function replaceTemplate(e,t){return e.replace(g,((e,c)=>{const g=t[c];return null!=g?String(g):`<${c}?>`}))}(I,c):"Error",k=`${this.serviceName}: ${_} (${w}).`;return new FirebaseError(w,k,c)}}const g=/\{\$([^}]+)}/g;function deepEqual(e,t){if(e===t)return!0;const c=Object.keys(e),g=Object.keys(t);for(const w of c){if(!g.includes(w))return!1;const c=e[w],I=t[w];if(isObject(c)&&isObject(I)){if(!deepEqual(c,I))return!1}else if(c!==I)return!1}for(const e of g)if(!c.includes(e))return!1;return!0}function isObject(e){return null!==e&&"object"==typeof e}function getModularInstance(e){return e&&e._delegate?e._delegate:e}var w;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(w||(w={}));const I={debug:w.DEBUG,verbose:w.VERBOSE,info:w.INFO,warn:w.WARN,error:w.ERROR,silent:w.SILENT},_=w.INFO,k={[w.DEBUG]:"log",[w.VERBOSE]:"log",[w.INFO]:"info",[w.WARN]:"warn",[w.ERROR]:"error"},defaultLogHandler=(e,t,...c)=>{if(t<e.logLevel)return;const g=(new Date).toISOString(),w=k[t];if(!w)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[w](`[${g}] ${e.name}:`,...c)};var C,R,n=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},r=function(e){if("loading"===document.readyState)return"loading";var t=n();if(t){if(e<t.domInteractive)return"loading";if(0===t.domContentLoadedEventStart||e<t.domContentLoadedEventStart)return"dom-interactive";if(0===t.domComplete||e<t.domComplete)return"dom-content-loaded"}return"complete"},i=function(e){var t=e.nodeName;return 1===e.nodeType?t.toLowerCase():t.toUpperCase().replace(/^#/,"")},a=function(e,t){var c="";try{for(;e&&9!==e.nodeType;){var g=e,w=g.id?"#"+g.id:i(g)+(g.classList&&g.classList.value&&g.classList.value.trim()&&g.classList.value.trim().length?"."+g.classList.value.trim().replace(/\s+/g,"."):"");if(c.length+w.length>(t||100)-1)return c||w;if(c=c?w+">"+c:w,g.id)break;e=g.parentNode}}catch(e){}return c},M=-1,u=function(e){addEventListener("pageshow",(function(t){t.persisted&&(M=t.timeStamp,e(t))}),!0)},s=function(){var e=n();return e&&e.activationStart||0},f=function(e,t){var c=n(),g="navigate";return M>=0?g="back-forward-cache":c&&(document.prerendering||s()>0?g="prerender":document.wasDiscarded?g="restore":c.type&&(g=c.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:g}},d=function(e,t,c){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var g=new PerformanceObserver((function(e){Promise.resolve().then((function(){t(e.getEntries())}))}));return g.observe(Object.assign({type:e,buffered:!0},c||{})),g}}catch(e){}},l=function(e,t,c,g){var w,I;return function(_){t.value>=0&&(_||g)&&((I=t.value-(w||0))||void 0===w)&&(w=t.value,t.delta=I,t.rating=function(e,t){return e>t[1]?"poor":e>t[0]?"needs-improvement":"good"}(t.value,c),e(t))}},m=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},p=function(e){document.addEventListener("visibilitychange",(function(){"hidden"===document.visibilityState&&e()}))},v=function(e){var t=!1;return function(){t||(e(),t=!0)}},L=-1,h=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},T=function(e){"hidden"===document.visibilityState&&L>-1&&(L="visibilitychange"===e.type?e.timeStamp:0,E())},y=function(){addEventListener("visibilitychange",T,!0),addEventListener("prerenderingchange",T,!0)},E=function(){removeEventListener("visibilitychange",T,!0),removeEventListener("prerenderingchange",T,!0)},S=function(){return L<0&&(L=h(),y(),u((function(){setTimeout((function(){L=h(),y()}),0)}))),{get firstHiddenTime(){return L}}},b=function(e){document.prerendering?addEventListener("prerenderingchange",(function(){return e()}),!0):e()},O=[1800,3e3],B=[.1,.25],D=function(e,t){!function(e,t){t=t||{},function(e,t){t=t||{},b((function(){var c,g=S(),w=f("FCP"),I=d("paint",(function(e){e.forEach((function(e){"first-contentful-paint"===e.name&&(I.disconnect(),e.startTime<g.firstHiddenTime&&(w.value=Math.max(e.startTime-s(),0),w.entries.push(e),c(!0)))}))}));I&&(c=l(e,w,O,t.reportAllChanges),u((function(g){w=f("FCP"),c=l(e,w,O,t.reportAllChanges),m((function(){w.value=performance.now()-g.timeStamp,c(!0)}))})))}))}(v((function(){var c,g=f("CLS",0),w=0,I=[],o=function(e){e.forEach((function(e){if(!e.hadRecentInput){var t=I[0],c=I[I.length-1];w&&e.startTime-c.startTime<1e3&&e.startTime-t.startTime<5e3?(w+=e.value,I.push(e)):(w=e.value,I=[e])}})),w>g.value&&(g.value=w,g.entries=I,c())},_=d("layout-shift",o);_&&(c=l(e,g,B,t.reportAllChanges),p((function(){o(_.takeRecords()),c(!0)})),u((function(){w=0,g=f("CLS",0),c=l(e,g,B,t.reportAllChanges),m((function(){return c()}))})),setTimeout(c,0))})))}((function(t){var c=function(e){var t,c={};if(e.entries.length){var g=e.entries.reduce((function(e,t){return e&&e.value>t.value?e:t}));if(g&&g.sources&&g.sources.length){var w=(t=g.sources).find((function(e){return e.node&&1===e.node.nodeType}))||t[0];w&&(c={largestShiftTarget:a(w.node),largestShiftTime:g.startTime,largestShiftValue:g.value,largestShiftSource:w,largestShiftEntry:g,loadState:r(g.startTime)})}}return Object.assign(e,{attribution:c})}(t);e(c)}),t)},q=0,j=1/0,U=0,A=function(e){e.forEach((function(e){e.interactionId&&(j=Math.min(j,e.interactionId),U=Math.max(U,e.interactionId),q=U?(U-j)/7+1:0)}))},F=function(){return C?q:performance.interactionCount||0},P=function(){"interactionCount"in performance||C||(C=d("event",A,{type:"event",buffered:!0,durationThreshold:0}))},$=[],x=new Map,V=0,W=[],H=function(e){if(W.forEach((function(t){return t(e)})),e.interactionId||"first-input"===e.entryType){var t=$[$.length-1],c=x.get(e.interactionId);if(c||$.length<10||e.duration>t.latency){if(c)e.duration>c.latency?(c.entries=[e],c.latency=e.duration):e.duration===c.latency&&e.startTime===c.entries[0].startTime&&c.entries.push(e);else{var g={id:e.interactionId,latency:e.duration,entries:[e]};x.set(g.id,g),$.push(g)}$.sort((function(e,t){return t.latency-e.latency})),$.length>10&&$.splice(10).forEach((function(e){return x.delete(e.id)}))}}},N=function(e){var t=self.requestIdleCallback||self.setTimeout,c=-1;return e=v(e),"hidden"===document.visibilityState?e():(c=t(e),p(e)),c},K=[200,500],z=function(e,t){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(t=t||{},b((function(){var c;P();var g,w=f("INP"),a=function(e){N((function(){e.forEach(H);var t=function(){var e=Math.min($.length-1,Math.floor((F()-V)/50));return $[e]}();t&&t.latency!==w.value&&(w.value=t.latency,w.entries=t.entries,g())}))},I=d("event",a,{durationThreshold:null!==(c=t.durationThreshold)&&void 0!==c?c:40});g=l(e,w,K,t.reportAllChanges),I&&(I.observe({type:"first-input",buffered:!0}),p((function(){a(I.takeRecords()),g(!0)})),u((function(){V=F(),$.length=0,x.clear(),w=f("INP"),g=l(e,w,K,t.reportAllChanges)})))})))},G=[],J=[],Z=0,ee=new WeakMap,te=new Map,ne=-1,Q=function(e){G=G.concat(e),X()},X=function(){ne<0&&(ne=N(Y))},Y=function(){te.size>10&&te.forEach((function(e,t){x.has(t)||te.delete(t)}));var e=$.map((function(e){return ee.get(e.entries[0])})),t=J.length-50;J=J.filter((function(c,g){return g>=t||e.includes(c)}));for(var c=new Set,g=0;g<J.length;g++){var w=J[g];nt(w.startTime,w.processingEnd).forEach((function(e){c.add(e)}))}var I=G.length-1-50;G=G.filter((function(e,t){return e.startTime>Z&&t>I||c.has(e)})),ne=-1};W.push((function(e){e.interactionId&&e.target&&!te.has(e.interactionId)&&te.set(e.interactionId,e.target)}),(function(e){var t,c=e.startTime+e.duration;Z=Math.max(Z,e.processingEnd);for(var g=J.length-1;g>=0;g--){var w=J[g];if(Math.abs(c-w.renderTime)<=8){(t=w).startTime=Math.min(e.startTime,t.startTime),t.processingStart=Math.min(e.processingStart,t.processingStart),t.processingEnd=Math.max(e.processingEnd,t.processingEnd),t.entries.push(e);break}}t||(t={startTime:e.startTime,processingStart:e.processingStart,processingEnd:e.processingEnd,renderTime:c,entries:[e]},J.push(t)),(e.interactionId||"first-input"===e.entryType)&&ee.set(e,t),X()}));var nt=function(e,t){for(var c,g=[],w=0;c=G[w];w++)if(!(c.startTime+c.duration<e)){if(c.startTime>t)break;g.push(c)}return g},rt=function(e,t){R||(R=d("long-animation-frame",Q)),z((function(t){var c=function(e){var t=e.entries[0],c=ee.get(t),g=t.processingStart,w=c.processingEnd,I=c.entries.sort((function(e,t){return e.processingStart-t.processingStart})),_=nt(t.startTime,w),k=e.entries.find((function(e){return e.target})),C=k&&k.target||te.get(t.interactionId),R=[t.startTime+t.duration,w].concat(_.map((function(e){return e.startTime+e.duration}))),M=Math.max.apply(Math,R),L={interactionTarget:a(C),interactionTargetElement:C,interactionType:t.name.startsWith("key")?"keyboard":"pointer",interactionTime:t.startTime,nextPaintTime:M,processedEventEntries:I,longAnimationFrameEntries:_,inputDelay:g-t.startTime,processingDuration:w-g,presentationDelay:Math.max(M-w,0),loadState:r(t.startTime)};return Object.assign(e,{attribution:L})}(t);e(c)}),t)},re=[2500,4e3],ie={},ot=function(e,t){!function(e,t){t=t||{},b((function(){var c,g=S(),w=f("LCP"),a=function(e){t.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime<g.firstHiddenTime&&(w.value=Math.max(e.startTime-s(),0),w.entries=[e],c())}))},I=d("largest-contentful-paint",a);if(I){c=l(e,w,re,t.reportAllChanges);var _=v((function(){ie[w.id]||(a(I.takeRecords()),I.disconnect(),ie[w.id]=!0,c(!0))}));["keydown","click"].forEach((function(e){addEventListener(e,(function(){return N(_)}),{once:!0,capture:!0})})),p(_),u((function(g){w=f("LCP"),c=l(e,w,re,t.reportAllChanges),m((function(){w.value=performance.now()-g.timeStamp,ie[w.id]=!0,c(!0)}))}))}}))}((function(t){var c=function(e){var t={timeToFirstByte:0,resourceLoadDelay:0,resourceLoadDuration:0,elementRenderDelay:e.value};if(e.entries.length){var c=n();if(c){var g=c.activationStart||0,w=e.entries[e.entries.length-1],I=w.url&&performance.getEntriesByType("resource").filter((function(e){return e.name===w.url}))[0],_=Math.max(0,c.responseStart-g),k=Math.max(_,I?(I.requestStart||I.startTime)-g:0),C=Math.max(k,I?I.responseEnd-g:0),R=Math.max(C,w.startTime-g);t={element:a(w.element),timeToFirstByte:_,resourceLoadDelay:k-_,resourceLoadDuration:C-k,elementRenderDelay:R-C,navigationEntry:c,lcpEntry:w},w.url&&(t.url=w.url),I&&(t.lcpResourceEntry=I)}}return Object.assign(e,{attribution:t})}(t);e(c)}),t)};class Component{constructor(e,t,c){this.name=e,this.instanceFactory=t,this.type=c,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}}let ae,oe;const se=new WeakMap,ce=new WeakMap,ue=new WeakMap,le=new WeakMap,de=new WeakMap;let fe={get(e,t,c){if(e instanceof IDBTransaction){if("done"===t)return ce.get(e);if("objectStoreNames"===t)return e.objectStoreNames||ue.get(e);if("store"===t)return c.objectStoreNames[1]?void 0:c.objectStore(c.objectStoreNames[0])}return wrap(e[t])},set:(e,t,c)=>(e[t]=c,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return oe||(oe=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(unwrap(this),t),wrap(se.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...c){const g=e.call(unwrap(this),t,...c);return ue.set(g,t.sort?t.sort():[t]),wrap(g)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(ce.has(e))return;const t=new Promise(((t,c)=>{const unlisten=()=>{e.removeEventListener("complete",complete),e.removeEventListener("error",error),e.removeEventListener("abort",error)},complete=()=>{t(),unlisten()},error=()=>{c(e.error||new DOMException("AbortError","AbortError")),unlisten()};e.addEventListener("complete",complete),e.addEventListener("error",error),e.addEventListener("abort",error)}));ce.set(e,t)}(e),t=e,function getIdbProxyableTypes(){return ae||(ae=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}().some((e=>t instanceof e))?new Proxy(e,fe):e);var t}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise(((t,c)=>{const unlisten=()=>{e.removeEventListener("success",success),e.removeEventListener("error",error)},success=()=>{t(wrap(e.result)),unlisten()},error=()=>{c(e.error),unlisten()};e.addEventListener("success",success),e.addEventListener("error",error)}));return t.then((t=>{t instanceof IDBCursor&&se.set(t,e)})).catch((()=>{})),de.set(t,e),t}(e);if(le.has(e))return le.get(e);const t=transformCachableValue(e);return t!==e&&(le.set(e,t),de.set(t,e)),t}const unwrap=e=>de.get(e);const pe=["get","getKey","getAll","getAllKeys","count"],ge=["put","add","delete","clear"],me=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(me.get(t))return me.get(t);const c=t.replace(/FromIndex$/,""),g=t!==c,w=ge.includes(c);if(!(c in(g?IDBIndex:IDBObjectStore).prototype)||!w&&!pe.includes(c))return;const method=async function(e,...t){const I=this.transaction(e,w?"readwrite":"readonly");let _=I.store;return g&&(_=_.index(t.shift())),(await Promise.all([_[c](...t),w&&I.done]))[0]};return me.set(t,method),method}!function replaceTraps(e){fe=e(fe)}((e=>Object.assign(Object.assign({},e),{get:(t,c,g)=>getMethod(t,c)||e.get(t,c,g),has:(t,c)=>!!getMethod(t,c)||e.has(t,c)})));const he="@firebase/installations",ve="0.6.12-canary.84dfeca39",Te=1e4,be=`w:${ve}`,ye="FIS_v2",Ee=36e5,we=new 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 isServerError(e){return e instanceof FirebaseError&&e.code.includes("request-failed")}function getInstallationsEndpoint({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function extractAuthTokenInfoFromResponse(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function getErrorFromResponse(e,t){const c=(await t.json()).error;return we.create("request-failed",{requestName:e,serverCode:c.code,serverMessage:c.message,serverStatus:c.status})}function getHeaders({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function getHeadersWithAuth(e,{refreshToken:t}){const c=getHeaders(e);return c.append("Authorization",function getAuthorizationHeader(e){return`${ye} ${e}`}(t)),c}async function retryIfServerError(e){const t=await e();return t.status>=500&&t.status<600?e():t}function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}const Se=/^[cdef][\w-]{21}$/;function generateFid(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function encode(e){const t=function bufferToBase64UrlSafe(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(e);return Se.test(t)?t:""}catch(e){return""}}function getKey(e){return`${e.appName}!${e.appId}`}const Ie=new Map;function fidChanged(e,t){const c=getKey(e);callFidChangeCallbacks(c,t),function broadcastFidChange(e,t){const c=function getBroadcastChannel(){!_e&&"BroadcastChannel"in self&&(_e=new BroadcastChannel("[Firebase] FID Change"),_e.onmessage=e=>{callFidChangeCallbacks(e.data.key,e.data.fid)});return _e}();c&&c.postMessage({key:e,fid:t});!function closeBroadcastChannel(){0===Ie.size&&_e&&(_e.close(),_e=null)}()}(c,t)}function callFidChangeCallbacks(e,t){const c=Ie.get(e);if(c)for(const e of c)e(t)}let _e=null;const Ae="firebase-installations-store";let ke=null;function getDbPromise(){return ke||(ke=function openDB(e,t,{blocked:c,upgrade:g,blocking:w,terminated:I}={}){const _=indexedDB.open(e,t),k=wrap(_);return g&&_.addEventListener("upgradeneeded",(e=>{g(wrap(_.result),e.oldVersion,e.newVersion,wrap(_.transaction),e)})),c&&_.addEventListener("blocked",(e=>c(e.oldVersion,e.newVersion,e))),k.then((e=>{I&&e.addEventListener("close",(()=>I())),w&&e.addEventListener("versionchange",(e=>w(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),k}("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(Ae)}})),ke}async function set(e,t){const c=getKey(e),g=(await getDbPromise()).transaction(Ae,"readwrite"),w=g.objectStore(Ae),I=await w.get(c);return await w.put(t,c),await g.done,I&&I.fid===t.fid||fidChanged(e,t.fid),t}async function remove(e){const t=getKey(e),c=(await getDbPromise()).transaction(Ae,"readwrite");await c.objectStore(Ae).delete(t),await c.done}async function update(e,t){const c=getKey(e),g=(await getDbPromise()).transaction(Ae,"readwrite"),w=g.objectStore(Ae),I=await w.get(c),_=t(I);return void 0===_?await w.delete(c):await w.put(_,c),await g.done,!_||I&&I.fid===_.fid||fidChanged(e,_.fid),_}async function getInstallationEntry(e){let t;const c=await update(e.appConfig,(c=>{const g=function updateOrCreateInstallationEntry(e){const t=e||{fid:generateFid(),registrationStatus:0};return clearTimedOutRequest(t)}(c),w=function triggerRegistrationIfNecessary(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(we.create("app-offline"))}}const c={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},g=async function registerInstallation(e,t){try{const c=await async function createInstallationRequest({appConfig:e,heartbeatServiceProvider:t},{fid:c}){const g=getInstallationsEndpoint(e),w=getHeaders(e),I=t.getImmediate({optional:!0});if(I){const e=await I.getHeartbeatsHeader();e&&w.append("x-firebase-client",e)}const _={fid:c,authVersion:ye,appId:e.appId,sdkVersion:be},k={method:"POST",headers:w,body:JSON.stringify(_)},C=await retryIfServerError((()=>fetch(g,k)));if(C.ok){const e=await C.json();return{fid:e.fid||c,registrationStatus:2,refreshToken:e.refreshToken,authToken:extractAuthTokenInfoFromResponse(e.authToken)}}throw await getErrorFromResponse("Create Installation",C)}(e,t);return set(e.appConfig,c)}catch(c){throw isServerError(c)&&409===c.customData.serverCode?await remove(e.appConfig):await set(e.appConfig,{fid:t.fid,registrationStatus:0}),c}}(e,c);return{installationEntry:c,registrationPromise:g}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:waitUntilFidRegistration(e)}:{installationEntry:t}}(e,g);return t=w.registrationPromise,w.installationEntry}));return""===c.fid?{installationEntry:await t}:{installationEntry:c,registrationPromise:t}}async function waitUntilFidRegistration(e){let t=await updateInstallationRequest(e.appConfig);for(;1===t.registrationStatus;)await sleep(100),t=await updateInstallationRequest(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:c}=await getInstallationEntry(e);return c||t}return t}function updateInstallationRequest(e){return update(e,(e=>{if(!e)throw we.create("installation-not-found");return clearTimedOutRequest(e)}))}function clearTimedOutRequest(e){return function hasInstallationRequestTimedOut(e){return 1===e.registrationStatus&&e.registrationTime+Te<Date.now()}(e)?{fid:e.fid,registrationStatus:0}:e}async function generateAuthTokenRequest({appConfig:e,heartbeatServiceProvider:t},c){const g=function getGenerateAuthTokenEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}/authTokens:generate`}(e,c),w=getHeadersWithAuth(e,c),I=t.getImmediate({optional:!0});if(I){const e=await I.getHeartbeatsHeader();e&&w.append("x-firebase-client",e)}const _={installation:{sdkVersion:be,appId:e.appId}},k={method:"POST",headers:w,body:JSON.stringify(_)},C=await retryIfServerError((()=>fetch(g,k)));if(C.ok){return extractAuthTokenInfoFromResponse(await C.json())}throw await getErrorFromResponse("Generate Auth Token",C)}async function refreshAuthToken(e,t=!1){let c;const g=await update(e.appConfig,(g=>{if(!isEntryRegistered(g))throw we.create("not-registered");const w=g.authToken;if(!t&&function isAuthTokenValid(e){return 2===e.requestStatus&&!function isAuthTokenExpired(e){const t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+Ee}(e)}(w))return g;if(1===w.requestStatus)return c=async function waitUntilAuthTokenRequest(e,t){let c=await updateAuthTokenRequest(e.appConfig);for(;1===c.authToken.requestStatus;)await sleep(100),c=await updateAuthTokenRequest(e.appConfig);const g=c.authToken;return 0===g.requestStatus?refreshAuthToken(e,t):g}(e,t),g;{if(!navigator.onLine)throw we.create("app-offline");const t=function makeAuthTokenRequestInProgressEntry(e){const t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(g);return c=async function fetchAuthTokenFromServer(e,t){try{const c=await generateAuthTokenRequest(e,t),g=Object.assign(Object.assign({},t),{authToken:c});return await set(e.appConfig,g),c}catch(c){if(!isServerError(c)||401!==c.customData.serverCode&&404!==c.customData.serverCode){const c=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await set(e.appConfig,c)}else await remove(e.appConfig);throw c}}(e,t),t}}));return c?await c:g.authToken}function updateAuthTokenRequest(e){return update(e,(e=>{if(!isEntryRegistered(e))throw we.create("not-registered");return function hasAuthTokenRequestTimedOut(e){return 1===e.requestStatus&&e.requestTime+Te<Date.now()}(e.authToken)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e}))}function isEntryRegistered(e){return void 0!==e&&2===e.registrationStatus}async function getToken(e,t=!1){const c=e;await async function completeInstallationRegistration(e){const{registrationPromise:t}=await getInstallationEntry(e);t&&await t}(c);return(await refreshAuthToken(c,t)).token}function getMissingValueError(e){return we.create("missing-app-config-values",{valueName:e})}const Ce="installations",publicFactory=e=>{const t=e.getProvider("app").getImmediate(),c=function extractAppConfig(e){if(!e||!e.options)throw getMissingValueError("App Configuration");if(!e.name)throw getMissingValueError("App Name");const t=["projectId","apiKey","appId"];for(const c of t)if(!e.options[c])throw getMissingValueError(c);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:c,heartbeatServiceProvider:_getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},internalFactory=e=>{const t=e.getProvider("app").getImmediate(),c=_getProvider(t,Ce).getImmediate();return{getId:()=>async function getId(e){const t=e,{installationEntry:c,registrationPromise:g}=await getInstallationEntry(t);return g?g.catch(console.error):refreshAuthToken(t).catch(console.error),c.fid}(c),getToken:e=>getToken(c,e)}};!function registerInstallations(){t(new Component(Ce,publicFactory,"PUBLIC")),t(new Component("installations-internal",internalFactory,"PRIVATE"))}(),e(he,ve),e(he,ve,"esm2017");const Re="@firebase/performance",Me="0.7.0-canary.84dfeca39",Le=Me,Pe="FB-PERF-TRACE-MEASURE",Oe="_wt_",Ne="_fcp",De="_fid",Be="_lcp",Fe="_inp",qe="_cls",je="@firebase/performance/config",Ue="@firebase/performance/configexpire",$e="Performance",xe=new ErrorFactory("performance",$e,{"trace started":"Trace {$traceName} was started before.","trace stopped":"Trace {$traceName} is not running.","nonpositive trace startTime":"Trace {$traceName} startTime should be positive.","nonpositive trace duration":"Trace {$traceName} duration should be positive.","no window":"Window is not available.","no app id":"App id is not available.","no project id":"Project id is not available.","no api key":"Api key is not available.","invalid cc log":"Attempted to queue invalid cc event","FB not default":"Performance can only start when Firebase app instance is the default one.","RC response not ok":"RC response is not ok","invalid attribute name":"Attribute name {$attributeName} is invalid.","invalid attribute value":"Attribute value {$attributeValue} is invalid.","invalid custom metric name":"Custom metric name {$customMetricName} is invalid","invalid String merger input":"Input for String merger is invalid, contact support team to resolve.","already initialized":"initializePerformance() has already been called with different options. To avoid this error, call initializePerformance() with the same options as when it was originally called, or call getPerformance() to return the already initialized instance."}),He=new class Logger{constructor(e){this.name=e,this._logLevel=_,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in w))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?I[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,w.DEBUG,...e),this._logHandler(this,w.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,w.VERBOSE,...e),this._logHandler(this,w.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,w.INFO,...e),this._logHandler(this,w.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,w.WARN,...e),this._logHandler(this,w.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,w.ERROR,...e),this._logHandler(this,w.ERROR,...e)}}($e);let Ve,ze,We,Ke;He.logLevel=w.INFO;class Api{constructor(e){if(this.window=e,!e)throw xe.create("no window");this.performance=e.performance,this.PerformanceObserver=e.PerformanceObserver,this.windowLocation=e.location,this.navigator=e.navigator,this.document=e.document,this.navigator&&this.navigator.cookieEnabled&&(this.localStorage=e.localStorage),e.perfMetrics&&e.perfMetrics.onFirstInputDelay&&(this.onFirstInputDelay=e.perfMetrics.onFirstInputDelay),this.onLCP=ot,this.onINP=rt,this.onCLS=D}getUrl(){return this.windowLocation.href.split("?")[0]}mark(e){this.performance&&this.performance.mark&&this.performance.mark(e)}measure(e,t,c){this.performance&&this.performance.measure&&this.performance.measure(e,t,c)}getEntriesByType(e){return this.performance&&this.performance.getEntriesByType?this.performance.getEntriesByType(e):[]}getEntriesByName(e){return this.performance&&this.performance.getEntriesByName?this.performance.getEntriesByName(e):[]}getTimeOrigin(){return this.performance&&(this.performance.timeOrigin||this.performance.timing.navigationStart)}requiredApisAvailable(){return fetch&&Promise&&function areCookiesEnabled(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}()?!!function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(e){return!1}}()||(He.info("IndexedDB is not supported by current browser"),!1):(He.info("Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled."),!1)}setupObserver(e,t){if(!this.PerformanceObserver)return;new this.PerformanceObserver((e=>{for(const c of e.getEntries())t(c)})).observe({entryTypes:[e]})}static getInstance(){return void 0===Ve&&(Ve=new Api(ze)),Ve}}function getIid(){return We}function mergeStrings(e,t){const c=e.length-t.length;if(c<0||c>1)throw xe.create("invalid String merger input");const g=[];for(let c=0;c<e.length;c++)g.push(e.charAt(c)),t.length>c&&g.push(t.charAt(c));return g.join("")}class SettingsService{constructor(){this.instrumentationEnabled=!0,this.dataCollectionEnabled=!0,this.loggingEnabled=!1,this.tracesSamplingRate=1,this.networkRequestsSamplingRate=1,this.logEndPointUrl="https://firebaselogging.googleapis.com/v0cc/log?format=json_proto",this.flTransportEndpointUrl=mergeStrings("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=mergeStrings("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return void 0===Ke&&(Ke=new SettingsService),Ke}}var Qe;!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.VISIBLE=1]="VISIBLE",e[e.HIDDEN=2]="HIDDEN"}(Qe||(Qe={}));const Ge=["firebase_","google_","ga_"],Je=new RegExp("^[a-zA-Z]\\w*$");function getServiceWorkerStatus(){const e=Api.getInstance().navigator;return(null==e?void 0:e.serviceWorker)?e.serviceWorker.controller?2:3:1}function getVisibilityState(){switch(Api.getInstance().document.visibilityState){case"visible":return Qe.VISIBLE;case"hidden":return Qe.HIDDEN;default:return Qe.UNKNOWN}}function getEffectiveConnectionType(){const e=Api.getInstance().navigator.connection;switch(e&&e.effectiveType){case"slow-2g":return 1;case"2g":return 2;case"3g":return 3;case"4g":return 4;default:return 0}}function getAppId(e){var t;const c=null===(t=e.options)||void 0===t?void 0:t.appId;if(!c)throw xe.create("no app id");return c}const Ze="0.0.1",Xe={loggingEnabled:!0},Ye="FIREBASE_INSTALLATIONS_AUTH";function getConfig(e,t){const c=function getStoredConfig(){const e=Api.getInstance().localStorage;if(!e)return;const t=e.getItem(Ue);if(!t||!function configValid(e){return Number(e)>Date.now()}(t))return;const c=e.getItem(je);if(!c)return;try{return JSON.parse(c)}catch(e){return}}();return c?(processConfig(c),Promise.resolve()):function getRemoteConfig(e,t){return function getAuthTokenPromise(e){const t=e.getToken();return t.then((e=>{})),t}(e.installations).then((c=>{const g=function getProjectId(e){var t;const c=null===(t=e.options)||void 0===t?void 0:t.projectId;if(!c)throw xe.create("no project id");return c}(e.app),w=function getApiKey(e){var t;const c=null===(t=e.options)||void 0===t?void 0:t.apiKey;if(!c)throw xe.create("no api key");return c}(e.app),I=new Request(`https://firebaseremoteconfig.googleapis.com/v1/projects/${g}/namespaces/fireperf:fetch?key=${w}`,{method:"POST",headers:{Authorization:`${Ye} ${c}`},body:JSON.stringify({app_instance_id:t,app_instance_id_token:c,app_id:getAppId(e.app),app_version:Le,sdk_version:Ze})});return fetch(I).then((e=>{if(e.ok)return e.json();throw xe.create("RC response not ok")}))})).catch((()=>{He.info(et)}))}(e,t).then(processConfig).then((e=>function storeConfig(e){const t=Api.getInstance().localStorage;if(!e||!t)return;t.setItem(je,JSON.stringify(e)),t.setItem(Ue,String(Date.now()+60*SettingsService.getInstance().configTimeToLive*60*1e3))}(e)),(()=>{}))}const et="Could not fetch config, will use default configs";function processConfig(e){if(!e)return e;const t=SettingsService.getInstance(),c=e.entries||{};return void 0!==c.fpr_enabled?t.loggingEnabled="true"===String(c.fpr_enabled):t.loggingEnabled=Xe.loggingEnabled,c.fpr_log_source?t.logSource=Number(c.fpr_log_source):Xe.logSource&&(t.logSource=Xe.logSource),c.fpr_log_endpoint_url?t.logEndPointUrl=c.fpr_log_endpoint_url:Xe.logEndPointUrl&&(t.logEndPointUrl=Xe.logEndPointUrl),c.fpr_log_transport_key?t.transportKey=c.fpr_log_transport_key:Xe.transportKey&&(t.transportKey=Xe.transportKey),void 0!==c.fpr_vc_network_request_sampling_rate?t.networkRequestsSamplingRate=Number(c.fpr_vc_network_request_sampling_rate):void 0!==Xe.networkRequestsSamplingRate&&(t.networkRequestsSamplingRate=Xe.networkRequestsSamplingRate),void 0!==c.fpr_vc_trace_sampling_rate?t.tracesSamplingRate=Number(c.fpr_vc_trace_sampling_rate):void 0!==Xe.tracesSamplingRate&&(t.tracesSamplingRate=Xe.tracesSamplingRate),t.logTraceAfterSampling=shouldLogAfterSampling(t.tracesSamplingRate),t.logNetworkAfterSampling=shouldLogAfterSampling(t.networkRequestsSamplingRate),e}function shouldLogAfterSampling(e){return Math.random()<=e}let tt,it=1;function getInitializationPromise(e){return it=2,tt=tt||function initializePerf(e){return function getDocumentReadyComplete(){const e=Api.getInstance().document;return new Promise((t=>{if(e&&"complete"!==e.readyState){const handler=()=>{"complete"===e.readyState&&(e.removeEventListener("readystatechange",handler),t())};e.addEventListener("readystatechange",handler)}else t()}))}().then((()=>function getIidPromise(e){const t=e.getId();return t.then((e=>{We=e})),t}(e.installations))).then((t=>getConfig(e,t))).then((()=>changeInitializationStatus()),(()=>changeInitializationStatus()))}(e),tt}function changeInitializationStatus(){it=3}let at,st=3,ct=[],ut=!1;function processQueue(e){setTimeout((()=>{0!==st&&(ct.length>0&&dispatchQueueEvents(),processQueue(1e4))}),e)}function dispatchQueueEvents(){const e=ct.splice(0,1e3),t=e.map((e=>({source_extension_json_proto3:e.message,event_time_ms:String(e.eventTime)})));(function postToFlEndpoint(e){const t=SettingsService.getInstance().getFlTransportFullUrl(),c=JSON.stringify(e);return navigator.sendBeacon&&navigator.sendBeacon(t,c)?Promise.resolve():fetch(t,{method:"POST",body:c,keepalive:!0}).then()})({request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:SettingsService.getInstance().logSource,log_event:t}).then((()=>{st=3})).catch((()=>{ct=[...e,...ct],st--,He.info(`Tries left: ${st}.`),processQueue(1e4)}))}function transportHandler(e){return(...t)=>{!function addToQueue(e){if(!e.eventTime||!e.message)throw xe.create("invalid cc log");ct=[...ct,e]}({message:e(...t),eventTime:Date.now()})}}function flushQueuedEvents(){for(;ct.length>0;)dispatchQueueEvents()}function sendLog(e,t){at||(at={send:transportHandler(serializer),flush:flushQueuedEvents}),at.send(e,t)}function logTrace(e){const t=SettingsService.getInstance();!t.instrumentationEnabled&&e.isAuto||(t.dataCollectionEnabled||e.isAuto)&&Api.getInstance().requiredApisAvailable()&&(!function isPerfInitialized(){return 3===it}()?getInitializationPromise(e.performanceController).then((()=>sendTraceLog(e)),(()=>sendTraceLog(e))):sendTraceLog(e))}function sendTraceLog(e){if(!getIid())return;const t=SettingsService.getInstance();t.loggingEnabled&&t.logTraceAfterSampling&&sendLog(e,1)}function serializer(e,t){return 0===t?function serializeNetworkRequest(e){const t={url:e.url,http_method:e.httpMethod||0,http_response_code:200,response_payload_bytes:e.responsePayloadBytes,client_start_time_us:e.startTimeUs,time_to_response_initiated_us:e.timeToResponseInitiatedUs,time_to_response_completed_us:e.timeToResponseCompletedUs},c={application_info:getApplicationInfo(e.performanceController.app),network_request_metric:t};return JSON.stringify(c)}(e):function serializeTrace(e){const t={name:e.name,is_auto:e.isAuto,client_start_time_us:e.startTimeUs,duration_us:e.durationUs};0!==Object.keys(e.counters).length&&(t.counters=e.counters);const c=e.getAttributes();0!==Object.keys(c).length&&(t.custom_attributes=c);const g={application_info:getApplicationInfo(e.performanceController.app),trace_metric:t};return JSON.stringify(g)}(e)}function getApplicationInfo(e){return{google_app_id:getAppId(e),app_instance_id:getIid(),web_app_info:{sdk_version:Le,page_url:Api.getInstance().getUrl(),service_worker_status:getServiceWorkerStatus(),visibility_state:getVisibilityState(),effective_connection_type:getEffectiveConnectionType()},application_process_state:0}}function createNetworkRequestEntry(e,t){const c=t;if(!c||void 0===c.responseStart)return;const g=Api.getInstance().getTimeOrigin(),w=Math.floor(1e3*(c.startTime+g)),I=c.responseStart?Math.floor(1e3*(c.responseStart-c.startTime)):void 0,_=Math.floor(1e3*(c.responseEnd-c.startTime));!function logNetworkRequest(e){const t=SettingsService.getInstance();if(!t.instrumentationEnabled)return;const c=e.url,g=t.logEndPointUrl.split("?")[0],w=t.flTransportEndpointUrl.split("?")[0];c!==g&&c!==w&&t.loggingEnabled&&t.logNetworkAfterSampling&&sendLog(e,0)}({performanceController:e,url:c.name&&c.name.split("?")[0],responsePayloadBytes:c.transferSize,startTimeUs:w,timeToResponseInitiatedUs:I,timeToResponseCompletedUs:_})}const lt=["_fp",Ne,De,Be,qe,Fe];class Trace{constructor(e,t,c=!1,g){this.performanceController=e,this.name=t,this.isAuto=c,this.state=1,this.customAttributes={},this.counters={},this.api=Api.getInstance(),this.randomId=Math.floor(1e6*Math.random()),this.isAuto||(this.traceStartMark=`FB-PERF-TRACE-START-${this.randomId}-${this.name}`,this.traceStopMark=`FB-PERF-TRACE-STOP-${this.randomId}-${this.name}`,this.traceMeasure=g||`${Pe}-${this.randomId}-${this.name}`,g&&this.calculateTraceMetrics())}start(){if(1!==this.state)throw xe.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(2!==this.state)throw xe.create("trace stopped",{traceName:this.name});this.state=3,this.api.mark(this.traceStopMark),this.api.measure(this.traceMeasure,this.traceStartMark,this.traceStopMark),this.calculateTraceMetrics(),logTrace(this)}record(e,t,c){if(e<=0)throw xe.create("nonpositive trace startTime",{traceName:this.name});if(t<=0)throw xe.create("nonpositive trace duration",{traceName:this.name});if(this.durationUs=Math.floor(1e3*t),this.startTimeUs=Math.floor(1e3*e),c&&c.attributes&&(this.customAttributes=Object.assign({},c.attributes)),c&&c.metrics)for(const e of Object.keys(c.metrics))isNaN(Number(c.metrics[e]))||(this.counters[e]=Math.floor(Number(c.metrics[e])));logTrace(this)}incrementMetric(e,t=1){void 0===this.counters[e]?this.putMetric(e,t):this.putMetric(e,this.counters[e]+t)}putMetric(e,t){if(!function isValidMetricName(e,t){return!(0===e.length||e.length>100)&&(t&&t.startsWith(Oe)&&lt.indexOf(e)>-1||!e.startsWith("_"))}(e,this.name))throw xe.create("invalid custom metric name",{customMetricName:e});this.counters[e]=function convertMetricValueToInteger(e){const t=Math.floor(e);return t<e&&He.info(`Metric value should be an Integer, setting the value as : ${t}.`),t}(null!=t?t:0)}getMetric(e){return this.counters[e]||0}putAttribute(e,t){const c=function isValidCustomAttributeName(e){return!(0===e.length||e.length>40)&&(!Ge.some((t=>e.startsWith(t)))&&!!e.match(Je))}(e),g=function isValidCustomAttributeValue(e){return 0!==e.length&&e.length<=100}(t);if(c&&g)this.customAttributes[e]=t;else{if(!c)throw xe.create("invalid attribute name",{attributeName:e});if(!g)throw xe.create("invalid attribute value",{attributeValue:t})}}getAttribute(e){return this.customAttributes[e]}removeAttribute(e){void 0!==this.customAttributes[e]&&delete this.customAttributes[e]}getAttributes(){return Object.assign({},this.customAttributes)}setStartTime(e){this.startTimeUs=e}setDuration(e){this.durationUs=e}calculateTraceMetrics(){const e=this.api.getEntriesByName(this.traceMeasure),t=e&&e[0];t&&(this.durationUs=Math.floor(1e3*t.duration),this.startTimeUs=Math.floor(1e3*(t.startTime+this.api.getTimeOrigin())))}static createOobTrace(e,t,c,g,w){const I=Api.getInstance().getUrl();if(!I)return;const _=new Trace(e,Oe+I,!0),k=Math.floor(1e3*Api.getInstance().getTimeOrigin());_.setStartTime(k),t&&t[0]&&(_.setDuration(Math.floor(1e3*t[0].duration)),_.putMetric("domInteractive",Math.floor(1e3*t[0].domInteractive)),_.putMetric("domContentLoadedEventEnd",Math.floor(1e3*t[0].domContentLoadedEventEnd)),_.putMetric("loadEventEnd",Math.floor(1e3*t[0].loadEventEnd)));if(c){const e=c.find((e=>"first-paint"===e.name));e&&e.startTime&&_.putMetric("_fp",Math.floor(1e3*e.startTime));const t=c.find((e=>"first-contentful-paint"===e.name));t&&t.startTime&&_.putMetric(Ne,Math.floor(1e3*t.startTime)),w&&_.putMetric(De,Math.floor(1e3*w))}this.addWebVitalMetric(_,Be,"lcp_element",g.lcp),this.addWebVitalMetric(_,qe,"cls_largestShiftTarget",g.cls),this.addWebVitalMetric(_,Fe,"inp_interactionTarget",g.inp),logTrace(_),function flushLogs(){at&&at.flush()}()}static addWebVitalMetric(e,t,c,g){g&&(e.putMetric(t,Math.floor(1e3*g.value)),g.elementAttribution&&e.putAttribute(c,g.elementAttribution))}static createUserTimingTrace(e,t){logTrace(new Trace(e,t,!1,t))}}let dt,ft={},pt=!1;function setupOobResources(e){getIid()&&(setTimeout((()=>function setupOobTraces(e){const t=Api.getInstance();"onpagehide"in window?t.document.addEventListener("pagehide",(()=>sendOobTrace(e))):t.document.addEventListener("unload",(()=>sendOobTrace(e)));t.document.addEventListener("visibilitychange",(()=>{"hidden"===t.document.visibilityState&&sendOobTrace(e)})),t.onFirstInputDelay&&t.onFirstInputDelay((e=>{dt=e}));t.onLCP((e=>{var t;ft.lcp={value:e.value,elementAttribution:null===(t=e.attribution)||void 0===t?void 0:t.element}})),t.onCLS((e=>{var t;ft.cls={value:e.value,elementAttribution:null===(t=e.attribution)||void 0===t?void 0:t.largestShiftTarget}})),t.onINP((e=>{var t;ft.inp={value:e.value,elementAttribution:null===(t=e.attribution)||void 0===t?void 0:t.interactionTarget}}))}(e)),0),setTimeout((()=>function setupNetworkRequests(e){const t=Api.getInstance(),c=t.getEntriesByType("resource");for(const t of c)createNetworkRequestEntry(e,t);t.setupObserver("resource",(t=>createNetworkRequestEntry(e,t)))}(e)),0),setTimeout((()=>function setupUserTimingTraces(e){const t=Api.getInstance(),c=t.getEntriesByType("measure");for(const t of c)createUserTimingTrace(e,t);t.setupObserver("measure",(t=>createUserTimingTrace(e,t)))}(e)),0))}function createUserTimingTrace(e,t){const c=t.name;c.substring(0,21)!==Pe&&Trace.createUserTimingTrace(e,c)}function sendOobTrace(e){if(!pt){pt=!0;const t=Api.getInstance(),c=t.getEntriesByType("navigation"),g=t.getEntriesByType("paint");setTimeout((()=>{Trace.createOobTrace(e,c,g,ft,dt)}),0)}}class PerformanceController{constructor(e,t){this.app=e,this.installations=t,this.initialized=!1}_init(e){this.initialized||(void 0!==(null==e?void 0:e.dataCollectionEnabled)&&(this.dataCollectionEnabled=e.dataCollectionEnabled),void 0!==(null==e?void 0:e.instrumentationEnabled)&&(this.instrumentationEnabled=e.instrumentationEnabled),Api.getInstance().requiredApisAvailable()?function validateIndexedDBOpenable(){return new Promise(((e,t)=>{try{let c=!0;const g="validate-browser-context-for-indexeddb-analytics-module",w=self.indexedDB.open(g);w.onsuccess=()=>{w.result.close(),c||self.indexedDB.deleteDatabase(g),e(!0)},w.onupgradeneeded=()=>{c=!1},w.onerror=()=>{var e;t((null===(e=w.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}().then((e=>{e&&(!function setupTransportService(){ut||(processQueue(5500),ut=!0)}(),getInitializationPromise(this).then((()=>setupOobResources(this)),(()=>setupOobResources(this))),this.initialized=!0)})).catch((e=>{He.info(`Environment doesn't support IndexedDB: ${e}`)})):He.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){SettingsService.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return SettingsService.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){SettingsService.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return SettingsService.getInstance().dataCollectionEnabled}}function getPerformance(e=c()){e=getModularInstance(e);return _getProvider(e,"performance").getImmediate()}function initializePerformance(e,t){e=getModularInstance(e);const c=_getProvider(e,"performance");if(c.isInitialized()){const e=c.getImmediate();if(deepEqual(c.getOptions(),null!=t?t:{}))return e;throw xe.create("already initialized")}return c.initialize({options:t})}function trace(e,t){return e=getModularInstance(e),new Trace(e,t)}const factory=(e,{options:t})=>{const c=e.getProvider("app").getImmediate(),g=e.getProvider("installations-internal").getImmediate();if("[DEFAULT]"!==c.name)throw xe.create("FB not default");if("undefined"==typeof window)throw xe.create("no window");!function setupApi(e){ze=e}(window);const w=new PerformanceController(c,g);return w._init(t),w};!function registerPerformance(){t(new Component("performance",factory,"PUBLIC")),e(Re,Me),e(Re,Me,"esm2017")}();export{getPerformance,initializePerformance,trace};
//# sourceMappingURL=firebase-performance.js.map

@@ -1,2 +0,2 @@

((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(Ge,Je){try{!(function(){function A(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g,r,R=A(Ge);function h(){try{return"object"==typeof indexedDB}catch(e){}}class c extends Error{constructor(e,t,a){super(t),this.code=e,this.customData=a,this.name="FirebaseError",Object.setPrototypeOf(this,c.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,s.prototype.create)}}class s{constructor(e,t,a){this.service=e,this.serviceName=t,this.errors=a}create(e,...t){var r,a=t[0]||{},s=this.service+"/"+e,i=this.errors[e],i=i?(r=a,i.replace(B,(e,t)=>{var a=r[t];return null!=a?String(a):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${s}).`;return new c(s,i,a)}}let B=/\{\$([^}]+)}/g;function i(e){return e&&e._delegate?e._delegate:e}class e{constructor(e,t,a){this.name=e,this.instanceFactory=t,this.type=a,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}}(w=g=g||{})[w.DEBUG=0]="DEBUG",w[w.VERBOSE=1]="VERBOSE",w[w.INFO=2]="INFO",w[w.WARN=3]="WARN",w[w.ERROR=4]="ERROR",w[w.SILENT=5]="SILENT";let x={debug:g.DEBUG,verbose:g.VERBOSE,info:g.INFO,warn:g.WARN,error:g.ERROR,silent:g.SILENT},H=g.INFO,$={[g.DEBUG]:"log",[g.VERBOSE]:"log",[g.INFO]:"info",[g.WARN]:"warn",[g.ERROR]:"error"},V=(e,t,...a)=>{if(!(t<e.logLevel)){var r=(new Date).toISOString(),s=$[t];if(!s)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[s](`[${r}] ${e.name}:`,...a)}};class q{constructor(e){this.name=e,this._logLevel=H,this._logHandler=V,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in g))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?x[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,g.DEBUG,...e),this._logHandler(this,g.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,g.VERBOSE,...e),this._logHandler(this,g.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,g.INFO,...e),this._logHandler(this,g.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,g.WARN,...e),this._logHandler(this,g.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,g.ERROR,...e),this._logHandler(this,g.ERROR,...e)}}let K=(t,e)=>e.some(e=>t instanceof e),a,t;let n=new WeakMap,o=new WeakMap,U=new WeakMap,l=new WeakMap,u=new WeakMap;let d={get(e,t,a){if(e instanceof IDBTransaction){if("done"===t)return o.get(e);if("objectStoreNames"===t)return e.objectStoreNames||U.get(e);if("store"===t)return a.objectStoreNames[1]?void 0:a.objectStore(a.objectStoreNames[0])}return f(e[t])},set(e,t,a){return e[t]=a,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function z(r){return r!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(t=t||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(r)?function(...e){return r.apply(p(this),e),f(n.get(this))}:function(...e){return f(r.apply(p(this),e))}:function(e,...t){var a=r.call(p(this),e,...t);return U.set(a,e.sort?e.sort():[e]),f(a)}}function W(e){var i,t;return"function"==typeof e?z(e):(e instanceof IDBTransaction&&(i=e,o.has(i)||(t=new Promise((e,t)=>{let a=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",s),i.removeEventListener("abort",s)},r=()=>{e(),a()},s=()=>{t(i.error||new DOMException("AbortError","AbortError")),a()};i.addEventListener("complete",r),i.addEventListener("error",s),i.addEventListener("abort",s)}),o.set(i,t))),K(e,a=a||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,d):e)}function f(e){var i,t;return e instanceof IDBRequest?(i=e,(t=new Promise((e,t)=>{let a=()=>{i.removeEventListener("success",r),i.removeEventListener("error",s)},r=()=>{e(f(i.result)),a()},s=()=>{t(i.error),a()};i.addEventListener("success",r),i.addEventListener("error",s)})).then(e=>{e instanceof IDBCursor&&n.set(e,i)}).catch(()=>{}),u.set(t,i),t):l.has(e)?l.get(e):((t=W(e))!==e&&(l.set(e,t),u.set(t,e)),t)}let p=e=>u.get(e);let G=["get","getKey","getAll","getAllKeys","count"],J=["put","add","delete","clear"],m=new Map;function Y(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(m.get(t))return m.get(t);let s=t.replace(/FromIndex$/,""),i=t!==s,n=J.includes(s);var a;return s in(i?IDBIndex:IDBObjectStore).prototype&&(n||G.includes(s))?(a=async function(e,...t){var a=this.transaction(e,n?"readwrite":"readonly");let r=a.store;return i&&(r=r.index(t.shift())),(await Promise.all([r[s](...t),n&&a.done]))[0]},m.set(t,a),a):void 0}}d={...r=d,get:(e,t,a)=>Y(e,t)||r.get(e,t,a),has:(e,t)=>!!Y(e,t)||r.has(e,t)};var Z="@firebase/installations",v="0.6.12-canary.70e08cf95";let Q=1e4,X="w:"+v,ee="FIS_v2",te="https://firebaseinstallations.googleapis.com/v1",ae=36e5;var w;let y=new s("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 re(e){return e instanceof c&&e.code.includes("request-failed")}function se({projectId:e}){return te+`/projects/${e}/installations`}function ie(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function ne(e,t){var a=(await t.json()).error;return y.create("request-failed",{requestName:e,serverCode:a.code,serverMessage:a.message,serverStatus:a.status})}function oe({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function ce(e,{refreshToken:t}){var a=oe(e);return a.append("Authorization",(e=t,ee+" "+e)),a}async function le(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function ue(t){return new Promise(e=>{setTimeout(e,t)})}let ge=/^[cdef][\w-]{21}$/,_="";function he(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return ge.test(t)?t:_}catch(e){return _}}function S(e){return e.appName+"!"+e.appId}let de=new Map;function fe(e,t){var a=S(e),e=(pe(a,t),a),a=(()=>(!b&&"BroadcastChannel"in self&&((b=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{pe(e.data.key,e.data.fid)}),b))();a&&a.postMessage({key:e,fid:t}),0===de.size&&b&&(b.close(),b=null)}function pe(e,t){var a=de.get(e);if(a)for(var r of a)r(t)}let b=null;let me="firebase-installations-database",ve=1,C="firebase-installations-store",we=null;function E(){return we=we||((e,t,{blocked:a,upgrade:r,blocking:s,terminated:i})=>{let n=indexedDB.open(e,t);var o=f(n);return r&&n.addEventListener("upgradeneeded",e=>{r(f(n.result),e.oldVersion,e.newVersion,f(n.transaction),e)}),a&&n.addEventListener("blocked",e=>a(e.oldVersion,e.newVersion,e)),o.then(e=>{i&&e.addEventListener("close",()=>i()),s&&e.addEventListener("versionchange",e=>s(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o})(me,ve,{upgrade:(e,t)=>{0===t&&e.createObjectStore(C)}})}async function I(e,t){var a=S(e),r=(await E()).transaction(C,"readwrite"),s=r.objectStore(C),i=await s.get(a);return await s.put(t,a),await r.done,i&&i.fid===t.fid||fe(e,t.fid),t}async function ye(e){var t=S(e),a=(await E()).transaction(C,"readwrite");await a.objectStore(C).delete(t),await a.done}async function T(e,t){var a=S(e),r=(await E()).transaction(C,"readwrite"),s=r.objectStore(C),i=await s.get(a),n=t(i);return void 0===n?await s.delete(a):await s.put(n,a),await r.done,!n||i&&i.fid===n.fid||fe(e,n.fid),n}async function L(a){let r;var e=await T(a.appConfig,e=>{var t=Se(e||{fid:he(),registrationStatus:0}),t=((e,t)=>{var a,r;return 0===t.registrationStatus?navigator.onLine?(a={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=(async(t,a)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:a})=>{let r=se(e);var s=oe(e),i=((i=t.getImmediate({optional:!0}))&&(i=await i.getHeartbeatsHeader())&&s.append("x-firebase-client",i),{fid:a,authVersion:ee,appId:e.appId,sdkVersion:X});let n={method:"POST",headers:s,body:JSON.stringify(i)};if((s=await le(()=>fetch(r,n))).ok)return{fid:(i=await s.json()).fid||a,registrationStatus:2,refreshToken:i.refreshToken,authToken:ie(i.authToken)};throw await ne("Create Installation",s)})(t,a);return I(t.appConfig,e)}catch(e){throw re(e)&&409===e.customData.serverCode?await ye(t.appConfig):await I(t.appConfig,{fid:a.fid,registrationStatus:0}),e}})(e,a),{installationEntry:a,registrationPromise:r}):(a=Promise.reject(y.create("app-offline")),{installationEntry:t,registrationPromise:a}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await _e(e.appConfig);for(;1===t.registrationStatus;)await ue(100),t=await _e(e.appConfig);var a,r;return 0!==t.registrationStatus?t:({installationEntry:a,registrationPromise:r}=await L(e),r||a)})(e)}:{installationEntry:t}})(a,t);return r=t.registrationPromise,t.installationEntry});return e.fid===_?{installationEntry:await r}:{installationEntry:e,registrationPromise:r}}function _e(e){return T(e,e=>{if(e)return Se(e);throw y.create("installation-not-found")})}function Se(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+Q<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function be({appConfig:e,heartbeatServiceProvider:t},a){[s,i]=[e,a.fid];let r=se(s)+`/${i}/authTokens:generate`;var s,i,n=ce(e,a),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&n.append("x-firebase-client",o),{installation:{sdkVersion:X,appId:e.appId}});let c={method:"POST",headers:n,body:JSON.stringify(o)};n=await le(()=>fetch(r,c));if(n.ok)return ie(await n.json());throw await ne("Generate Auth Token",n)}async function M(r,s=!1){let i;var e=await T(r.appConfig,e=>{if(!Ee(e))throw y.create("not-registered");var t,a=e.authToken;if(s||2!==(t=a).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+ae})(t)){if(1===a.requestStatus)return i=(async(e,t)=>{let a=await Ce(e.appConfig);for(;1===a.authToken.requestStatus;)await ue(100),a=await Ce(e.appConfig);var r=a.authToken;return 0===r.requestStatus?M(e,t):r})(r,s),e;if(navigator.onLine)return t=e,a={requestStatus:1,requestTime:Date.now()},a=Object.assign(Object.assign({},t),{authToken:a}),i=(async(t,a)=>{try{var e=await be(t,a),r=Object.assign(Object.assign({},a),{authToken:e});return await I(t.appConfig,r),e}catch(e){var s;throw!re(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(s=Object.assign(Object.assign({},a),{authToken:{requestStatus:0}}),await I(t.appConfig,s)):await ye(t.appConfig),e}})(r,a),a;throw y.create("app-offline")}return e});return i?await i:e.authToken}function Ce(e){return T(e,e=>{var t,a;if(Ee(e))return t=e.authToken,1===(a=t).requestStatus&&a.requestTime+Q<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw y.create("not-registered")})}function Ee(e){return void 0!==e&&2===e.registrationStatus}async function Ie(e,t=!1){var a=e,r=(await(!(r=(await L(a)).registrationPromise)||!await r),await M(a,t));return r.token}function P(e){return y.create("missing-app-config-values",{valueName:e})}let Te="installations",Le=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw P("App Configuration");if(!e.name)throw P("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw P(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:Je._getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},Me=e=>{var t=e.getProvider("app").getImmediate();let a=Je._getProvider(t,Te).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:a,registrationPromise:r}=await L(t);return(r||M(t)).catch(console.error),a.fid})(a),getToken:e=>Ie(a,e)}};Je._registerComponent(new e(Te,Le,"PUBLIC")),Je._registerComponent(new e("installations-internal",Me,"PRIVATE")),Je.registerVersion(Z,v),Je.registerVersion(Z,v,"esm2017");let D="@firebase/remote-config",Pe="0.5.0-canary.70e08cf95";class De{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}let F=new s("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."});let Fe=["1","true","t","yes","y","on"];class k{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&0<=Fe.indexOf(this._value.toLowerCase())}asNumber(){if("static"===this._source)return 0;let e=Number(this._value);return e=isNaN(e)?0:e}getSource(){return this._source}}async function ke(e){var t=i(e),[a,r]=await Promise.all([t._storage.getLastSuccessfulFetchResponse(),t._storage.getActiveConfigEtag()]);return!!(a&&a.config&&a.eTag&&a.eTag!==r)&&(await Promise.all([t._storageCache.setActiveConfig(a.config),t._storage.setActiveConfigEtag(a.eTag)]),!0)}function Oe(e){let t=i(e);return t._initializePromise||(t._initializePromise=t._storageCache.loadFromStorage().then(()=>{t._isInitializationComplete=!0})),t._initializePromise}async function je(t){var a=i(t);let e=new De;setTimeout(async()=>{e.abort()},a.settings.fetchTimeoutMillis);var r,s=a._storageCache.getCustomSignals();s&&a._logger.debug("Fetching config with custom signals: "+JSON.stringify(s));try{await a._client.fetch({cacheMaxAgeMillis:a.settings.minimumFetchIntervalMillis,signal:e,customSignals:s}),await a._storageCache.setLastFetchStatus("success")}catch(e){t="fetch-throttle";s=(r=e)instanceof c&&-1!==r.code.indexOf(t)?"throttle":"failure";throw await a._storageCache.setLastFetchStatus(s),e}}function Ne(a){var e,t,r=i(a);return[e={},t={}]=[r._storageCache.getActiveConfig(),r.defaultConfig],Object.keys(Object.assign(Object.assign({},e),t)).reduce((e,t)=>(e[t]=O(a,t),e),{})}function O(e,t){var a=i(e),r=(a._isInitializationComplete||a._logger.debug(`A value was requested for key "${t}" before SDK initialization completed.`+" Await on ensureInitialized if the intent was to get a previously activated value."),a._storageCache.getActiveConfig());return r&&void 0!==r[t]?new k("remote",r[t]):a.defaultConfig&&void 0!==a.defaultConfig[t]?new k("default",String(a.defaultConfig[t])):(a._logger.debug(`Returning static value for key "${t}".`+" Define a default or remote value if this is unintentional."),new k("static"))}class Ae{constructor(e,t,a,r){this.client=e,this.storage=t,this.storageCache=a,this.logger=r}isCachedDataFresh(e,t){var a;return t?(a=Date.now()-t,this.logger.debug("Config fetch cache check."+` Cache age millis: ${a}.`+` Cache max age millis (minimumFetchIntervalMillis setting): ${e}.`+` Is cache hit: ${a=a<=e}.`),a):(this.logger.debug("Config fetch cache check. Cache unpopulated."),!1)}async fetch(e){var[t,a]=await Promise.all([this.storage.getLastSuccessfulFetchTimestampMillis(),this.storage.getLastSuccessfulFetchResponse()]);if(a&&this.isCachedDataFresh(e.cacheMaxAgeMillis,t))return a;e.eTag=a&&a.eTag;t=await this.client.fetch(e),a=[this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())];return 200===t.status&&a.push(this.storage.setLastSuccessfulFetchResponse(t)),await Promise.all(a),t}}class Re{constructor(e,t,a,r,s,i){this.firebaseInstallations=e,this.sdkVersion=t,this.namespace=a,this.projectId=r,this.apiKey=s,this.appId=i}async fetch(a){var e,[t,r]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken()]),s=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfig.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:fetch?key=`+this.apiKey,i={"Content-Type":"application/json","Content-Encoding":"gzip","If-None-Match":a.eTag||"*"},t={sdk_version:this.sdkVersion,app_instance_id:t,app_instance_id_token:r,app_id:this.appId,language_code:(e=navigator).languages&&e.languages[0]||e.language,custom_signals:a.customSignals},r={method:"POST",headers:i,body:JSON.stringify(t)},i=fetch(s,r),t=new Promise((e,t)=>{a.signal.addEventListener(()=>{var e=new Error("The operation was aborted.");e.name="AbortError",t(e)})});let n;try{await Promise.race([i,t]),n=await i}catch(e){let t="fetch-client-network";throw"AbortError"===(null==e?void 0:e.name)&&(t="fetch-timeout"),F.create(t,{originalErrorMessage:null==e?void 0:e.message})}let o=n.status;s=n.headers.get("ETag")||void 0;let c,l;if(200===n.status){let e;try{e=await n.json()}catch(e){throw F.create("fetch-client-parse",{originalErrorMessage:null==e?void 0:e.message})}c=e.entries,l=e.state}if("INSTANCE_STATE_UNSPECIFIED"===l?o=500:"NO_CHANGE"===l?o=304:"NO_TEMPLATE"!==l&&"EMPTY_CONFIG"!==l||(c={}),304!==o&&200!==o)throw F.create("fetch-status",{httpStatus:o});return{status:o,eTag:s,config:c}}}class Be{constructor(e,t){this.client=e,this.storage=t}async fetch(e){var t=await this.storage.getThrottleMetadata()||{backoffCount:0,throttleEndTimeMillis:Date.now()};return this.attemptFetch(e,t)}async attemptFetch(t,{throttleEndTimeMillis:a,backoffCount:r}){var s,i,n;s=t.signal,i=a,await new Promise((e,t)=>{var a=Math.max(i-Date.now(),0);let r=setTimeout(e,a);s.addEventListener(()=>{clearTimeout(r),t(F.create("fetch-throttle",{throttleEndTimeMillis:i}))})});try{var o=await this.client.fetch(t);return await this.storage.deleteThrottleMetadata(),o}catch(e){if((e=>{var t;return e instanceof c&&e.customData&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)})(e))return n={throttleEndTimeMillis:Date.now()+(a=2,o=1e3*Math.pow(a,r),n=Math.round(.5*o*(Math.random()-.5)*2),Math.min(144e5,o+n)),backoffCount:r+1},await this.storage.setThrottleMetadata(n),this.attemptFetch(t,n);throw e}}}class xe{get fetchTimeMillis(){return this._storageCache.getLastSuccessfulFetchTimestampMillis()||-1}get lastFetchStatus(){return this._storageCache.getLastFetchStatus()||"no-fetch-yet"}constructor(e,t,a,r,s){this.app=e,this._client=t,this._storageCache=a,this._storage=r,this._logger=s,this._isInitializationComplete=!1,this.settings={fetchTimeoutMillis:6e4,minimumFetchIntervalMillis:432e5},this.defaultConfig={}}}function j(e,t){var a=e.target.error||void 0;return F.create(t,{originalErrorMessage:a&&(null==a?void 0:a.message)})}let N="app_namespace_store";class He{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)}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")}}class $e extends He{constructor(e,t,a,r=(()=>new Promise((t,a)=>{try{var e=indexedDB.open("firebase_remote_config",1);e.onerror=e=>{a(j(e,"storage-open"))},e.onsuccess=e=>{t(e.target.result)},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(N,{keyPath:"compositeKey"})}}catch(e){a(F.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}}))()){super(),this.appId=e,this.appName=t,this.namespace=a,this.openDbPromise=r}async setCustomSignals(e){var t=(await this.openDbPromise).transaction([N],"readwrite"),a=qe(e,await this.getWithTransaction("custom_signals",t)||{});return await this.setWithTransaction("custom_signals",a,t),a}async getWithTransaction(i,n){return new Promise((a,t)=>{var e=n.objectStore(N),r=this.createCompositeKey(i);try{var s=e.get(r);s.onerror=e=>{t(j(e,"storage-get"))},s.onsuccess=e=>{var t=e.target.result;a(t?t.value:void 0)}}catch(e){t(F.create("storage-get",{originalErrorMessage:null==e?void 0:e.message}))}})}async setWithTransaction(i,n,o){return new Promise((e,t)=>{var a=o.objectStore(N),r=this.createCompositeKey(i);try{var s=a.put({compositeKey:r,value:n});s.onerror=e=>{t(j(e,"storage-set"))},s.onsuccess=()=>{e()}}catch(e){t(F.create("storage-set",{originalErrorMessage:null==e?void 0:e.message}))}})}async get(e){var t=(await this.openDbPromise).transaction([N],"readonly");return this.getWithTransaction(e,t)}async set(e,t){var a=(await this.openDbPromise).transaction([N],"readwrite");return this.setWithTransaction(e,t,a)}async delete(i){let n=await this.openDbPromise;return new Promise((e,t)=>{var a=n.transaction([N],"readwrite").objectStore(N),r=this.createCompositeKey(i);try{var s=a.delete(r);s.onerror=e=>{t(j(e,"storage-delete"))},s.onsuccess=()=>{e()}}catch(e){t(F.create("storage-delete",{originalErrorMessage:null==e?void 0:e.message}))}})}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class Ve extends He{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){var t=this.storage.custom_signals||{};return this.storage.custom_signals=qe(e,t),Promise.resolve(this.storage.custom_signals)}}function qe(e,t){var a=Object.assign(Object.assign({},t),e),a=Object.fromEntries(Object.entries(a).filter(([,e])=>null!==e).map(([e,t])=>"number"==typeof t?[e,t.toString()]:[e,t]));if(100<Object.keys(a).length)throw F.create("custom-signal-max-allowed-signals",{maxSignals:100});return a}class Ke{constructor(e){this.storage=e}getLastFetchStatus(){return this.lastFetchStatus}getLastSuccessfulFetchTimestampMillis(){return this.lastSuccessfulFetchTimestampMillis}getActiveConfig(){return this.activeConfig}getCustomSignals(){return this.customSignals}async loadFromStorage(){var e=this.storage.getLastFetchStatus(),t=this.storage.getLastSuccessfulFetchTimestampMillis(),a=this.storage.getActiveConfig(),r=this.storage.getCustomSignals(),e=await e,e=(e&&(this.lastFetchStatus=e),await t),t=(e&&(this.lastSuccessfulFetchTimestampMillis=e),await a),e=(t&&(this.activeConfig=t),await r);e&&(this.customSignals=e)}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)}}async function Ue(){if(!h())return!1;try{return await new Promise((r,s)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(t);a.onsuccess=()=>{a.result.close(),e||self.indexedDB.deleteDatabase(t),r(!0)},a.onupgradeneeded=()=>{e=!1},a.onerror=()=>{var e;s((null==(e=a.error)?void 0:e.message)||"")}}catch(e){s(e)}})}catch(e){return!1}}Je._registerComponent(new e("remote-config",function(e,{options:t}){var a=e.getProvider("app").getImmediate(),r=e.getProvider("installations-internal").getImmediate(),{projectId:s,apiKey:i,appId:n}=a.options;if(!s)throw F.create("registration-project-id");if(!i)throw F.create("registration-api-key");if(!n)throw F.create("registration-app-id");var o=(null==t?void 0:t.templateId)||"firebase",c=h()?new $e(n,a.name,o):new Ve,l=new Ke(c),u=new q(D),r=(u.logLevel=g.ERROR,new Re(r,Je.SDK_VERSION,o,s,i,n)),o=new Be(r,c),s=new Ae(o,c,l,u),i=new xe(a,s,l,c,u);return Oe(i),i},"PUBLIC").setMultipleInstances(!0)),Je.registerVersion(D,Pe),Je.registerVersion(D,Pe,"esm2017");class ze{constructor(e,t){this.app=e,this._delegate=t}get defaultConfig(){return this._delegate.defaultConfig}set defaultConfig(e){this._delegate.defaultConfig=e}get fetchTimeMillis(){return this._delegate.fetchTimeMillis}get lastFetchStatus(){return this._delegate.lastFetchStatus}get settings(){return this._delegate.settings}set settings(e){this._delegate.settings=e}activate(){return ke(this._delegate)}ensureInitialized(){return Oe(this._delegate)}fetch(){return je(this._delegate)}fetchAndActivate(){return(async e=>(await je(e=i(e)),ke(e)))(this._delegate)}getAll(){return Ne(this._delegate)}getBoolean(e){return O(i(this._delegate),e).asBoolean()}getNumber(e){return O(i(this._delegate),e).asNumber()}getString(e){return O(i(this._delegate),e).asString()}getValue(e){return O(this._delegate,e)}setLogLevel(e){var t=this._delegate,a=i(t);switch(e){case"debug":a._logger.logLevel=g.DEBUG;break;case"silent":a._logger.logLevel=g.SILENT;break;default:a._logger.logLevel=g.ERROR}}}function We(e,{instanceIdentifier:t}){var a=e.getProvider("app-compat").getImmediate(),r=e.getProvider("remote-config").getImmediate({identifier:t});return new ze(a,r)}(w=R.default).INTERNAL.registerComponent(new e("remoteConfig-compat",We,"PUBLIC").setMultipleInstances(!0).setServiceProps({isSupported:Ue})),w.registerVersion("@firebase/remote-config-compat","0.2.12-canary.70e08cf95")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-remote-config-compat.js - be sure to load firebase-app.js first.")}});
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(Ge,Je){try{!(function(){function A(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g,r,R=A(Ge);function h(){try{return"object"==typeof indexedDB}catch(e){}}class c extends Error{constructor(e,t,a){super(t),this.code=e,this.customData=a,this.name="FirebaseError",Object.setPrototypeOf(this,c.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,s.prototype.create)}}class s{constructor(e,t,a){this.service=e,this.serviceName=t,this.errors=a}create(e,...t){var r,a=t[0]||{},s=this.service+"/"+e,i=this.errors[e],i=i?(r=a,i.replace(B,(e,t)=>{var a=r[t];return null!=a?String(a):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${s}).`;return new c(s,i,a)}}let B=/\{\$([^}]+)}/g;function i(e){return e&&e._delegate?e._delegate:e}class e{constructor(e,t,a){this.name=e,this.instanceFactory=t,this.type=a,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}}(w=g=g||{})[w.DEBUG=0]="DEBUG",w[w.VERBOSE=1]="VERBOSE",w[w.INFO=2]="INFO",w[w.WARN=3]="WARN",w[w.ERROR=4]="ERROR",w[w.SILENT=5]="SILENT";let x={debug:g.DEBUG,verbose:g.VERBOSE,info:g.INFO,warn:g.WARN,error:g.ERROR,silent:g.SILENT},H=g.INFO,$={[g.DEBUG]:"log",[g.VERBOSE]:"log",[g.INFO]:"info",[g.WARN]:"warn",[g.ERROR]:"error"},V=(e,t,...a)=>{if(!(t<e.logLevel)){var r=(new Date).toISOString(),s=$[t];if(!s)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[s](`[${r}] ${e.name}:`,...a)}};class q{constructor(e){this.name=e,this._logLevel=H,this._logHandler=V,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in g))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?x[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,g.DEBUG,...e),this._logHandler(this,g.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,g.VERBOSE,...e),this._logHandler(this,g.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,g.INFO,...e),this._logHandler(this,g.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,g.WARN,...e),this._logHandler(this,g.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,g.ERROR,...e),this._logHandler(this,g.ERROR,...e)}}let K=(t,e)=>e.some(e=>t instanceof e),a,t;let n=new WeakMap,o=new WeakMap,U=new WeakMap,l=new WeakMap,u=new WeakMap;let d={get(e,t,a){if(e instanceof IDBTransaction){if("done"===t)return o.get(e);if("objectStoreNames"===t)return e.objectStoreNames||U.get(e);if("store"===t)return a.objectStoreNames[1]?void 0:a.objectStore(a.objectStoreNames[0])}return f(e[t])},set(e,t,a){return e[t]=a,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function z(r){return r!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(t=t||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(r)?function(...e){return r.apply(p(this),e),f(n.get(this))}:function(...e){return f(r.apply(p(this),e))}:function(e,...t){var a=r.call(p(this),e,...t);return U.set(a,e.sort?e.sort():[e]),f(a)}}function W(e){var i,t;return"function"==typeof e?z(e):(e instanceof IDBTransaction&&(i=e,o.has(i)||(t=new Promise((e,t)=>{let a=()=>{i.removeEventListener("complete",r),i.removeEventListener("error",s),i.removeEventListener("abort",s)},r=()=>{e(),a()},s=()=>{t(i.error||new DOMException("AbortError","AbortError")),a()};i.addEventListener("complete",r),i.addEventListener("error",s),i.addEventListener("abort",s)}),o.set(i,t))),K(e,a=a||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,d):e)}function f(e){var i,t;return e instanceof IDBRequest?(i=e,(t=new Promise((e,t)=>{let a=()=>{i.removeEventListener("success",r),i.removeEventListener("error",s)},r=()=>{e(f(i.result)),a()},s=()=>{t(i.error),a()};i.addEventListener("success",r),i.addEventListener("error",s)})).then(e=>{e instanceof IDBCursor&&n.set(e,i)}).catch(()=>{}),u.set(t,i),t):l.has(e)?l.get(e):((t=W(e))!==e&&(l.set(e,t),u.set(t,e)),t)}let p=e=>u.get(e);let G=["get","getKey","getAll","getAllKeys","count"],J=["put","add","delete","clear"],m=new Map;function Y(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(m.get(t))return m.get(t);let s=t.replace(/FromIndex$/,""),i=t!==s,n=J.includes(s);var a;return s in(i?IDBIndex:IDBObjectStore).prototype&&(n||G.includes(s))?(a=async function(e,...t){var a=this.transaction(e,n?"readwrite":"readonly");let r=a.store;return i&&(r=r.index(t.shift())),(await Promise.all([r[s](...t),n&&a.done]))[0]},m.set(t,a),a):void 0}}d={...r=d,get:(e,t,a)=>Y(e,t)||r.get(e,t,a),has:(e,t)=>!!Y(e,t)||r.has(e,t)};var Z="@firebase/installations",v="0.6.12-canary.84dfeca39";let Q=1e4,X="w:"+v,ee="FIS_v2",te="https://firebaseinstallations.googleapis.com/v1",ae=36e5;var w;let y=new s("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 re(e){return e instanceof c&&e.code.includes("request-failed")}function se({projectId:e}){return te+`/projects/${e}/installations`}function ie(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function ne(e,t){var a=(await t.json()).error;return y.create("request-failed",{requestName:e,serverCode:a.code,serverMessage:a.message,serverStatus:a.status})}function oe({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function ce(e,{refreshToken:t}){var a=oe(e);return a.append("Authorization",(e=t,ee+" "+e)),a}async function le(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function ue(t){return new Promise(e=>{setTimeout(e,t)})}let ge=/^[cdef][\w-]{21}$/,_="";function he(){try{var e=new Uint8Array(17),t=((self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16,(e=>btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_"))(e).substr(0,22));return ge.test(t)?t:_}catch(e){return _}}function S(e){return e.appName+"!"+e.appId}let de=new Map;function fe(e,t){var a=S(e),e=(pe(a,t),a),a=(()=>(!b&&"BroadcastChannel"in self&&((b=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{pe(e.data.key,e.data.fid)}),b))();a&&a.postMessage({key:e,fid:t}),0===de.size&&b&&(b.close(),b=null)}function pe(e,t){var a=de.get(e);if(a)for(var r of a)r(t)}let b=null;let me="firebase-installations-database",ve=1,C="firebase-installations-store",we=null;function E(){return we=we||((e,t,{blocked:a,upgrade:r,blocking:s,terminated:i})=>{let n=indexedDB.open(e,t);var o=f(n);return r&&n.addEventListener("upgradeneeded",e=>{r(f(n.result),e.oldVersion,e.newVersion,f(n.transaction),e)}),a&&n.addEventListener("blocked",e=>a(e.oldVersion,e.newVersion,e)),o.then(e=>{i&&e.addEventListener("close",()=>i()),s&&e.addEventListener("versionchange",e=>s(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o})(me,ve,{upgrade:(e,t)=>{0===t&&e.createObjectStore(C)}})}async function I(e,t){var a=S(e),r=(await E()).transaction(C,"readwrite"),s=r.objectStore(C),i=await s.get(a);return await s.put(t,a),await r.done,i&&i.fid===t.fid||fe(e,t.fid),t}async function ye(e){var t=S(e),a=(await E()).transaction(C,"readwrite");await a.objectStore(C).delete(t),await a.done}async function T(e,t){var a=S(e),r=(await E()).transaction(C,"readwrite"),s=r.objectStore(C),i=await s.get(a),n=t(i);return void 0===n?await s.delete(a):await s.put(n,a),await r.done,!n||i&&i.fid===n.fid||fe(e,n.fid),n}async function L(a){let r;var e=await T(a.appConfig,e=>{var t=Se(e||{fid:he(),registrationStatus:0}),t=((e,t)=>{var a,r;return 0===t.registrationStatus?navigator.onLine?(a={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},r=(async(t,a)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:a})=>{let r=se(e);var s=oe(e),i=((i=t.getImmediate({optional:!0}))&&(i=await i.getHeartbeatsHeader())&&s.append("x-firebase-client",i),{fid:a,authVersion:ee,appId:e.appId,sdkVersion:X});let n={method:"POST",headers:s,body:JSON.stringify(i)};if((s=await le(()=>fetch(r,n))).ok)return{fid:(i=await s.json()).fid||a,registrationStatus:2,refreshToken:i.refreshToken,authToken:ie(i.authToken)};throw await ne("Create Installation",s)})(t,a);return I(t.appConfig,e)}catch(e){throw re(e)&&409===e.customData.serverCode?await ye(t.appConfig):await I(t.appConfig,{fid:a.fid,registrationStatus:0}),e}})(e,a),{installationEntry:a,registrationPromise:r}):(a=Promise.reject(y.create("app-offline")),{installationEntry:t,registrationPromise:a}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await _e(e.appConfig);for(;1===t.registrationStatus;)await ue(100),t=await _e(e.appConfig);var a,r;return 0!==t.registrationStatus?t:({installationEntry:a,registrationPromise:r}=await L(e),r||a)})(e)}:{installationEntry:t}})(a,t);return r=t.registrationPromise,t.installationEntry});return e.fid===_?{installationEntry:await r}:{installationEntry:e,registrationPromise:r}}function _e(e){return T(e,e=>{if(e)return Se(e);throw y.create("installation-not-found")})}function Se(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+Q<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function be({appConfig:e,heartbeatServiceProvider:t},a){[s,i]=[e,a.fid];let r=se(s)+`/${i}/authTokens:generate`;var s,i,n=ce(e,a),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&n.append("x-firebase-client",o),{installation:{sdkVersion:X,appId:e.appId}});let c={method:"POST",headers:n,body:JSON.stringify(o)};n=await le(()=>fetch(r,c));if(n.ok)return ie(await n.json());throw await ne("Generate Auth Token",n)}async function M(r,s=!1){let i;var e=await T(r.appConfig,e=>{if(!Ee(e))throw y.create("not-registered");var t,a=e.authToken;if(s||2!==(t=a).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+ae})(t)){if(1===a.requestStatus)return i=(async(e,t)=>{let a=await Ce(e.appConfig);for(;1===a.authToken.requestStatus;)await ue(100),a=await Ce(e.appConfig);var r=a.authToken;return 0===r.requestStatus?M(e,t):r})(r,s),e;if(navigator.onLine)return t=e,a={requestStatus:1,requestTime:Date.now()},a=Object.assign(Object.assign({},t),{authToken:a}),i=(async(t,a)=>{try{var e=await be(t,a),r=Object.assign(Object.assign({},a),{authToken:e});return await I(t.appConfig,r),e}catch(e){var s;throw!re(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(s=Object.assign(Object.assign({},a),{authToken:{requestStatus:0}}),await I(t.appConfig,s)):await ye(t.appConfig),e}})(r,a),a;throw y.create("app-offline")}return e});return i?await i:e.authToken}function Ce(e){return T(e,e=>{var t,a;if(Ee(e))return t=e.authToken,1===(a=t).requestStatus&&a.requestTime+Q<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e;throw y.create("not-registered")})}function Ee(e){return void 0!==e&&2===e.registrationStatus}async function Ie(e,t=!1){var a=e,r=(await(!(r=(await L(a)).registrationPromise)||!await r),await M(a,t));return r.token}function P(e){return y.create("missing-app-config-values",{valueName:e})}let Te="installations",Le=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw P("App Configuration");if(!e.name)throw P("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw P(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:Je._getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},Me=e=>{var t=e.getProvider("app").getImmediate();let a=Je._getProvider(t,Te).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:a,registrationPromise:r}=await L(t);return(r||M(t)).catch(console.error),a.fid})(a),getToken:e=>Ie(a,e)}};Je._registerComponent(new e(Te,Le,"PUBLIC")),Je._registerComponent(new e("installations-internal",Me,"PRIVATE")),Je.registerVersion(Z,v),Je.registerVersion(Z,v,"esm2017");let D="@firebase/remote-config",Pe="0.5.0-canary.84dfeca39";class De{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}let F=new s("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."});let Fe=["1","true","t","yes","y","on"];class k{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&0<=Fe.indexOf(this._value.toLowerCase())}asNumber(){if("static"===this._source)return 0;let e=Number(this._value);return e=isNaN(e)?0:e}getSource(){return this._source}}async function ke(e){var t=i(e),[a,r]=await Promise.all([t._storage.getLastSuccessfulFetchResponse(),t._storage.getActiveConfigEtag()]);return!!(a&&a.config&&a.eTag&&a.eTag!==r)&&(await Promise.all([t._storageCache.setActiveConfig(a.config),t._storage.setActiveConfigEtag(a.eTag)]),!0)}function Oe(e){let t=i(e);return t._initializePromise||(t._initializePromise=t._storageCache.loadFromStorage().then(()=>{t._isInitializationComplete=!0})),t._initializePromise}async function je(t){var a=i(t);let e=new De;setTimeout(async()=>{e.abort()},a.settings.fetchTimeoutMillis);var r,s=a._storageCache.getCustomSignals();s&&a._logger.debug("Fetching config with custom signals: "+JSON.stringify(s));try{await a._client.fetch({cacheMaxAgeMillis:a.settings.minimumFetchIntervalMillis,signal:e,customSignals:s}),await a._storageCache.setLastFetchStatus("success")}catch(e){t="fetch-throttle";s=(r=e)instanceof c&&-1!==r.code.indexOf(t)?"throttle":"failure";throw await a._storageCache.setLastFetchStatus(s),e}}function Ne(a){var e,t,r=i(a);return[e={},t={}]=[r._storageCache.getActiveConfig(),r.defaultConfig],Object.keys(Object.assign(Object.assign({},e),t)).reduce((e,t)=>(e[t]=O(a,t),e),{})}function O(e,t){var a=i(e),r=(a._isInitializationComplete||a._logger.debug(`A value was requested for key "${t}" before SDK initialization completed.`+" Await on ensureInitialized if the intent was to get a previously activated value."),a._storageCache.getActiveConfig());return r&&void 0!==r[t]?new k("remote",r[t]):a.defaultConfig&&void 0!==a.defaultConfig[t]?new k("default",String(a.defaultConfig[t])):(a._logger.debug(`Returning static value for key "${t}".`+" Define a default or remote value if this is unintentional."),new k("static"))}class Ae{constructor(e,t,a,r){this.client=e,this.storage=t,this.storageCache=a,this.logger=r}isCachedDataFresh(e,t){var a;return t?(a=Date.now()-t,this.logger.debug("Config fetch cache check."+` Cache age millis: ${a}.`+` Cache max age millis (minimumFetchIntervalMillis setting): ${e}.`+` Is cache hit: ${a=a<=e}.`),a):(this.logger.debug("Config fetch cache check. Cache unpopulated."),!1)}async fetch(e){var[t,a]=await Promise.all([this.storage.getLastSuccessfulFetchTimestampMillis(),this.storage.getLastSuccessfulFetchResponse()]);if(a&&this.isCachedDataFresh(e.cacheMaxAgeMillis,t))return a;e.eTag=a&&a.eTag;t=await this.client.fetch(e),a=[this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())];return 200===t.status&&a.push(this.storage.setLastSuccessfulFetchResponse(t)),await Promise.all(a),t}}class Re{constructor(e,t,a,r,s,i){this.firebaseInstallations=e,this.sdkVersion=t,this.namespace=a,this.projectId=r,this.apiKey=s,this.appId=i}async fetch(a){var e,[t,r]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken()]),s=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfig.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:fetch?key=`+this.apiKey,i={"Content-Type":"application/json","Content-Encoding":"gzip","If-None-Match":a.eTag||"*"},t={sdk_version:this.sdkVersion,app_instance_id:t,app_instance_id_token:r,app_id:this.appId,language_code:(e=navigator).languages&&e.languages[0]||e.language,custom_signals:a.customSignals},r={method:"POST",headers:i,body:JSON.stringify(t)},i=fetch(s,r),t=new Promise((e,t)=>{a.signal.addEventListener(()=>{var e=new Error("The operation was aborted.");e.name="AbortError",t(e)})});let n;try{await Promise.race([i,t]),n=await i}catch(e){let t="fetch-client-network";throw"AbortError"===(null==e?void 0:e.name)&&(t="fetch-timeout"),F.create(t,{originalErrorMessage:null==e?void 0:e.message})}let o=n.status;s=n.headers.get("ETag")||void 0;let c,l;if(200===n.status){let e;try{e=await n.json()}catch(e){throw F.create("fetch-client-parse",{originalErrorMessage:null==e?void 0:e.message})}c=e.entries,l=e.state}if("INSTANCE_STATE_UNSPECIFIED"===l?o=500:"NO_CHANGE"===l?o=304:"NO_TEMPLATE"!==l&&"EMPTY_CONFIG"!==l||(c={}),304!==o&&200!==o)throw F.create("fetch-status",{httpStatus:o});return{status:o,eTag:s,config:c}}}class Be{constructor(e,t){this.client=e,this.storage=t}async fetch(e){var t=await this.storage.getThrottleMetadata()||{backoffCount:0,throttleEndTimeMillis:Date.now()};return this.attemptFetch(e,t)}async attemptFetch(t,{throttleEndTimeMillis:a,backoffCount:r}){var s,i,n;s=t.signal,i=a,await new Promise((e,t)=>{var a=Math.max(i-Date.now(),0);let r=setTimeout(e,a);s.addEventListener(()=>{clearTimeout(r),t(F.create("fetch-throttle",{throttleEndTimeMillis:i}))})});try{var o=await this.client.fetch(t);return await this.storage.deleteThrottleMetadata(),o}catch(e){if((e=>{var t;return e instanceof c&&e.customData&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)})(e))return n={throttleEndTimeMillis:Date.now()+(a=2,o=1e3*Math.pow(a,r),n=Math.round(.5*o*(Math.random()-.5)*2),Math.min(144e5,o+n)),backoffCount:r+1},await this.storage.setThrottleMetadata(n),this.attemptFetch(t,n);throw e}}}class xe{get fetchTimeMillis(){return this._storageCache.getLastSuccessfulFetchTimestampMillis()||-1}get lastFetchStatus(){return this._storageCache.getLastFetchStatus()||"no-fetch-yet"}constructor(e,t,a,r,s){this.app=e,this._client=t,this._storageCache=a,this._storage=r,this._logger=s,this._isInitializationComplete=!1,this.settings={fetchTimeoutMillis:6e4,minimumFetchIntervalMillis:432e5},this.defaultConfig={}}}function j(e,t){var a=e.target.error||void 0;return F.create(t,{originalErrorMessage:a&&(null==a?void 0:a.message)})}let N="app_namespace_store";class He{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)}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")}}class $e extends He{constructor(e,t,a,r=(()=>new Promise((t,a)=>{try{var e=indexedDB.open("firebase_remote_config",1);e.onerror=e=>{a(j(e,"storage-open"))},e.onsuccess=e=>{t(e.target.result)},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(N,{keyPath:"compositeKey"})}}catch(e){a(F.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}}))()){super(),this.appId=e,this.appName=t,this.namespace=a,this.openDbPromise=r}async setCustomSignals(e){var t=(await this.openDbPromise).transaction([N],"readwrite"),a=qe(e,await this.getWithTransaction("custom_signals",t)||{});return await this.setWithTransaction("custom_signals",a,t),a}async getWithTransaction(i,n){return new Promise((a,t)=>{var e=n.objectStore(N),r=this.createCompositeKey(i);try{var s=e.get(r);s.onerror=e=>{t(j(e,"storage-get"))},s.onsuccess=e=>{var t=e.target.result;a(t?t.value:void 0)}}catch(e){t(F.create("storage-get",{originalErrorMessage:null==e?void 0:e.message}))}})}async setWithTransaction(i,n,o){return new Promise((e,t)=>{var a=o.objectStore(N),r=this.createCompositeKey(i);try{var s=a.put({compositeKey:r,value:n});s.onerror=e=>{t(j(e,"storage-set"))},s.onsuccess=()=>{e()}}catch(e){t(F.create("storage-set",{originalErrorMessage:null==e?void 0:e.message}))}})}async get(e){var t=(await this.openDbPromise).transaction([N],"readonly");return this.getWithTransaction(e,t)}async set(e,t){var a=(await this.openDbPromise).transaction([N],"readwrite");return this.setWithTransaction(e,t,a)}async delete(i){let n=await this.openDbPromise;return new Promise((e,t)=>{var a=n.transaction([N],"readwrite").objectStore(N),r=this.createCompositeKey(i);try{var s=a.delete(r);s.onerror=e=>{t(j(e,"storage-delete"))},s.onsuccess=()=>{e()}}catch(e){t(F.create("storage-delete",{originalErrorMessage:null==e?void 0:e.message}))}})}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class Ve extends He{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){var t=this.storage.custom_signals||{};return this.storage.custom_signals=qe(e,t),Promise.resolve(this.storage.custom_signals)}}function qe(e,t){var a=Object.assign(Object.assign({},t),e),a=Object.fromEntries(Object.entries(a).filter(([,e])=>null!==e).map(([e,t])=>"number"==typeof t?[e,t.toString()]:[e,t]));if(100<Object.keys(a).length)throw F.create("custom-signal-max-allowed-signals",{maxSignals:100});return a}class Ke{constructor(e){this.storage=e}getLastFetchStatus(){return this.lastFetchStatus}getLastSuccessfulFetchTimestampMillis(){return this.lastSuccessfulFetchTimestampMillis}getActiveConfig(){return this.activeConfig}getCustomSignals(){return this.customSignals}async loadFromStorage(){var e=this.storage.getLastFetchStatus(),t=this.storage.getLastSuccessfulFetchTimestampMillis(),a=this.storage.getActiveConfig(),r=this.storage.getCustomSignals(),e=await e,e=(e&&(this.lastFetchStatus=e),await t),t=(e&&(this.lastSuccessfulFetchTimestampMillis=e),await a),e=(t&&(this.activeConfig=t),await r);e&&(this.customSignals=e)}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)}}async function Ue(){if(!h())return!1;try{return await new Promise((r,s)=>{try{let e=!0,t="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(t);a.onsuccess=()=>{a.result.close(),e||self.indexedDB.deleteDatabase(t),r(!0)},a.onupgradeneeded=()=>{e=!1},a.onerror=()=>{var e;s((null==(e=a.error)?void 0:e.message)||"")}}catch(e){s(e)}})}catch(e){return!1}}Je._registerComponent(new e("remote-config",function(e,{options:t}){var a=e.getProvider("app").getImmediate(),r=e.getProvider("installations-internal").getImmediate(),{projectId:s,apiKey:i,appId:n}=a.options;if(!s)throw F.create("registration-project-id");if(!i)throw F.create("registration-api-key");if(!n)throw F.create("registration-app-id");var o=(null==t?void 0:t.templateId)||"firebase",c=h()?new $e(n,a.name,o):new Ve,l=new Ke(c),u=new q(D),r=(u.logLevel=g.ERROR,new Re(r,Je.SDK_VERSION,o,s,i,n)),o=new Be(r,c),s=new Ae(o,c,l,u),i=new xe(a,s,l,c,u);return Oe(i),i},"PUBLIC").setMultipleInstances(!0)),Je.registerVersion(D,Pe),Je.registerVersion(D,Pe,"esm2017");class ze{constructor(e,t){this.app=e,this._delegate=t}get defaultConfig(){return this._delegate.defaultConfig}set defaultConfig(e){this._delegate.defaultConfig=e}get fetchTimeMillis(){return this._delegate.fetchTimeMillis}get lastFetchStatus(){return this._delegate.lastFetchStatus}get settings(){return this._delegate.settings}set settings(e){this._delegate.settings=e}activate(){return ke(this._delegate)}ensureInitialized(){return Oe(this._delegate)}fetch(){return je(this._delegate)}fetchAndActivate(){return(async e=>(await je(e=i(e)),ke(e)))(this._delegate)}getAll(){return Ne(this._delegate)}getBoolean(e){return O(i(this._delegate),e).asBoolean()}getNumber(e){return O(i(this._delegate),e).asNumber()}getString(e){return O(i(this._delegate),e).asString()}getValue(e){return O(this._delegate,e)}setLogLevel(e){var t=this._delegate,a=i(t);switch(e){case"debug":a._logger.logLevel=g.DEBUG;break;case"silent":a._logger.logLevel=g.SILENT;break;default:a._logger.logLevel=g.ERROR}}}function We(e,{instanceIdentifier:t}){var a=e.getProvider("app-compat").getImmediate(),r=e.getProvider("remote-config").getImmediate({identifier:t});return new ze(a,r)}(w=R.default).INTERNAL.registerComponent(new e("remoteConfig-compat",We,"PUBLIC").setMultipleInstances(!0).setServiceProps({isSupported:Ue})),w.registerVersion("@firebase/remote-config-compat","0.2.12-canary.84dfeca39")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-remote-config-compat.js - be sure to load firebase-app.js first.")}});
//# sourceMappingURL=firebase-remote-config-compat.js.map

@@ -1,3 +0,3 @@

import{registerVersion as e,_registerComponent as t,_getProvider,getApp as n,SDK_VERSION as s}from"https://www.gstatic.com/firebasejs/11.3.0-canary.70e08cf95/firebase-app.js";function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(e){return!1}}class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},s=`${this.service}/${e}`,a=this.errors[e],i=a?function replaceTemplate(e,t){return e.replace(r,((e,n)=>{const s=t[n];return null!=s?String(s):`<${n}?>`}))}(a,n):"Error",o=`${this.serviceName}: ${i} (${s}).`;return new FirebaseError(s,o,n)}}const r=/\{\$([^}]+)}/g;function deepEqual(e,t){if(e===t)return!0;const n=Object.keys(e),s=Object.keys(t);for(const r of n){if(!s.includes(r))return!1;const n=e[r],a=t[r];if(isObject(n)&&isObject(a)){if(!deepEqual(n,a))return!1}else if(n!==a)return!1}for(const e of s)if(!n.includes(e))return!1;return!0}function isObject(e){return null!==e&&"object"==typeof e}function calculateBackoffMillis(e,t=1e3,n=2){const s=t*Math.pow(n,e),r=Math.round(.5*s*(Math.random()-.5)*2);return Math.min(144e5,s+r)}function getModularInstance(e){return e&&e._delegate?e._delegate:e}class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}var a;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(a||(a={}));const i={debug:a.DEBUG,verbose:a.VERBOSE,info:a.INFO,warn:a.WARN,error:a.ERROR,silent:a.SILENT},o=a.INFO,c={[a.DEBUG]:"log",[a.VERBOSE]:"log",[a.INFO]:"info",[a.WARN]:"warn",[a.ERROR]:"error"},defaultLogHandler=(e,t,...n)=>{if(t<e.logLevel)return;const s=(new Date).toISOString(),r=c[t];if(!r)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[r](`[${s}] ${e.name}:`,...n)};class Logger{constructor(e){this.name=e,this._logLevel=o,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in a))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?i[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,a.DEBUG,...e),this._logHandler(this,a.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,a.VERBOSE,...e),this._logHandler(this,a.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,a.INFO,...e),this._logHandler(this,a.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,a.WARN,...e),this._logHandler(this,a.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,a.ERROR,...e),this._logHandler(this,a.ERROR,...e)}}let l,u;const g=new WeakMap,h=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap;let m={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return h.get(e);if("objectStoreNames"===t)return e.objectStoreNames||d.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return wrap(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return u||(u=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(unwrap(this),t),wrap(g.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...n){const s=e.call(unwrap(this),t,...n);return d.set(s,t.sort?t.sort():[t]),wrap(s)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(h.has(e))return;const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("complete",complete),e.removeEventListener("error",error),e.removeEventListener("abort",error)},complete=()=>{t(),unlisten()},error=()=>{n(e.error||new DOMException("AbortError","AbortError")),unlisten()};e.addEventListener("complete",complete),e.addEventListener("error",error),e.addEventListener("abort",error)}));h.set(e,t)}(e),t=e,function getIdbProxyableTypes(){return l||(l=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}().some((e=>t instanceof e))?new Proxy(e,m):e);var t}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("success",success),e.removeEventListener("error",error)},success=()=>{t(wrap(e.result)),unlisten()},error=()=>{n(e.error),unlisten()};e.addEventListener("success",success),e.addEventListener("error",error)}));return t.then((t=>{t instanceof IDBCursor&&g.set(t,e)})).catch((()=>{})),p.set(t,e),t}(e);if(f.has(e))return f.get(e);const t=transformCachableValue(e);return t!==e&&(f.set(e,t),p.set(t,e)),t}const unwrap=e=>p.get(e);const w=["get","getKey","getAll","getAllKeys","count"],v=["put","add","delete","clear"],y=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(y.get(t))return y.get(t);const n=t.replace(/FromIndex$/,""),s=t!==n,r=v.includes(n);if(!(n in(s?IDBIndex:IDBObjectStore).prototype)||!r&&!w.includes(n))return;const method=async function(e,...t){const a=this.transaction(e,r?"readwrite":"readonly");let i=a.store;return s&&(i=i.index(t.shift())),(await Promise.all([i[n](...t),r&&a.done]))[0]};return y.set(t,method),method}!function replaceTraps(e){m=e(m)}((e=>Object.assign(Object.assign({},e),{get:(t,n,s)=>getMethod(t,n)||e.get(t,n,s),has:(t,n)=>!!getMethod(t,n)||e.has(t,n)})));const C="@firebase/installations",b="0.6.12-canary.70e08cf95",E=1e4,S=`w:${b}`,I="FIS_v2",T=36e5,_=new 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 isServerError(e){return e instanceof FirebaseError&&e.code.includes("request-failed")}function getInstallationsEndpoint({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function extractAuthTokenInfoFromResponse(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function getErrorFromResponse(e,t){const n=(await t.json()).error;return _.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function getHeaders({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function getHeadersWithAuth(e,{refreshToken:t}){const n=getHeaders(e);return n.append("Authorization",function getAuthorizationHeader(e){return`${I} ${e}`}(t)),n}async function retryIfServerError(e){const t=await e();return t.status>=500&&t.status<600?e():t}function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}const F=/^[cdef][\w-]{21}$/;function generateFid(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function encode(e){const t=function bufferToBase64UrlSafe(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(e);return F.test(t)?t:""}catch(e){return""}}function getKey(e){return`${e.appName}!${e.appId}`}const M=new Map;function fidChanged(e,t){const n=getKey(e);callFidChangeCallbacks(n,t),function broadcastFidChange(e,t){const n=function getBroadcastChannel(){!k&&"BroadcastChannel"in self&&(k=new BroadcastChannel("[Firebase] FID Change"),k.onmessage=e=>{callFidChangeCallbacks(e.data.key,e.data.fid)});return k}();n&&n.postMessage({key:e,fid:t});!function closeBroadcastChannel(){0===M.size&&k&&(k.close(),k=null)}()}(n,t)}function callFidChangeCallbacks(e,t){const n=M.get(e);if(n)for(const e of n)e(t)}let k=null;const R="firebase-installations-store";let L=null;function getDbPromise(){return L||(L=function openDB(e,t,{blocked:n,upgrade:s,blocking:r,terminated:a}={}){const i=indexedDB.open(e,t),o=wrap(i);return s&&i.addEventListener("upgradeneeded",(e=>{s(wrap(i.result),e.oldVersion,e.newVersion,wrap(i.transaction),e)})),n&&i.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),o.then((e=>{a&&e.addEventListener("close",(()=>a())),r&&e.addEventListener("versionchange",(e=>r(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),o}("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(R)}})),L}async function set(e,t){const n=getKey(e),s=(await getDbPromise()).transaction(R,"readwrite"),r=s.objectStore(R),a=await r.get(n);return await r.put(t,n),await s.done,a&&a.fid===t.fid||fidChanged(e,t.fid),t}async function remove(e){const t=getKey(e),n=(await getDbPromise()).transaction(R,"readwrite");await n.objectStore(R).delete(t),await n.done}async function update(e,t){const n=getKey(e),s=(await getDbPromise()).transaction(R,"readwrite"),r=s.objectStore(R),a=await r.get(n),i=t(a);return void 0===i?await r.delete(n):await r.put(i,n),await s.done,!i||a&&a.fid===i.fid||fidChanged(e,i.fid),i}async function getInstallationEntry(e){let t;const n=await update(e.appConfig,(n=>{const s=function updateOrCreateInstallationEntry(e){const t=e||{fid:generateFid(),registrationStatus:0};return clearTimedOutRequest(t)}(n),r=function triggerRegistrationIfNecessary(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(_.create("app-offline"))}}const n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},s=async function registerInstallation(e,t){try{const n=await async function createInstallationRequest({appConfig:e,heartbeatServiceProvider:t},{fid:n}){const s=getInstallationsEndpoint(e),r=getHeaders(e),a=t.getImmediate({optional:!0});if(a){const e=await a.getHeartbeatsHeader();e&&r.append("x-firebase-client",e)}const i={fid:n,authVersion:I,appId:e.appId,sdkVersion:S},o={method:"POST",headers:r,body:JSON.stringify(i)},c=await retryIfServerError((()=>fetch(s,o)));if(c.ok){const e=await c.json();return{fid:e.fid||n,registrationStatus:2,refreshToken:e.refreshToken,authToken:extractAuthTokenInfoFromResponse(e.authToken)}}throw await getErrorFromResponse("Create Installation",c)}(e,t);return set(e.appConfig,n)}catch(n){throw isServerError(n)&&409===n.customData.serverCode?await remove(e.appConfig):await set(e.appConfig,{fid:t.fid,registrationStatus:0}),n}}(e,n);return{installationEntry:n,registrationPromise:s}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:waitUntilFidRegistration(e)}:{installationEntry:t}}(e,s);return t=r.registrationPromise,r.installationEntry}));return""===n.fid?{installationEntry:await t}:{installationEntry:n,registrationPromise:t}}async function waitUntilFidRegistration(e){let t=await updateInstallationRequest(e.appConfig);for(;1===t.registrationStatus;)await sleep(100),t=await updateInstallationRequest(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:n}=await getInstallationEntry(e);return n||t}return t}function updateInstallationRequest(e){return update(e,(e=>{if(!e)throw _.create("installation-not-found");return clearTimedOutRequest(e)}))}function clearTimedOutRequest(e){return function hasInstallationRequestTimedOut(e){return 1===e.registrationStatus&&e.registrationTime+E<Date.now()}(e)?{fid:e.fid,registrationStatus:0}:e}async function generateAuthTokenRequest({appConfig:e,heartbeatServiceProvider:t},n){const s=function getGenerateAuthTokenEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}/authTokens:generate`}(e,n),r=getHeadersWithAuth(e,n),a=t.getImmediate({optional:!0});if(a){const e=await a.getHeartbeatsHeader();e&&r.append("x-firebase-client",e)}const i={installation:{sdkVersion:S,appId:e.appId}},o={method:"POST",headers:r,body:JSON.stringify(i)},c=await retryIfServerError((()=>fetch(s,o)));if(c.ok){return extractAuthTokenInfoFromResponse(await c.json())}throw await getErrorFromResponse("Generate Auth Token",c)}async function refreshAuthToken(e,t=!1){let n;const s=await update(e.appConfig,(s=>{if(!isEntryRegistered(s))throw _.create("not-registered");const r=s.authToken;if(!t&&function isAuthTokenValid(e){return 2===e.requestStatus&&!function isAuthTokenExpired(e){const t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+T}(e)}(r))return s;if(1===r.requestStatus)return n=async function waitUntilAuthTokenRequest(e,t){let n=await updateAuthTokenRequest(e.appConfig);for(;1===n.authToken.requestStatus;)await sleep(100),n=await updateAuthTokenRequest(e.appConfig);const s=n.authToken;return 0===s.requestStatus?refreshAuthToken(e,t):s}(e,t),s;{if(!navigator.onLine)throw _.create("app-offline");const t=function makeAuthTokenRequestInProgressEntry(e){const t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(s);return n=async function fetchAuthTokenFromServer(e,t){try{const n=await generateAuthTokenRequest(e,t),s=Object.assign(Object.assign({},t),{authToken:n});return await set(e.appConfig,s),n}catch(n){if(!isServerError(n)||401!==n.customData.serverCode&&404!==n.customData.serverCode){const n=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await set(e.appConfig,n)}else await remove(e.appConfig);throw n}}(e,t),t}}));return n?await n:s.authToken}function updateAuthTokenRequest(e){return update(e,(e=>{if(!isEntryRegistered(e))throw _.create("not-registered");return function hasAuthTokenRequestTimedOut(e){return 1===e.requestStatus&&e.requestTime+E<Date.now()}(e.authToken)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e}))}function isEntryRegistered(e){return void 0!==e&&2===e.registrationStatus}async function getToken(e,t=!1){const n=e;await async function completeInstallationRegistration(e){const{registrationPromise:t}=await getInstallationEntry(e);t&&await t}(n);return(await refreshAuthToken(n,t)).token}function getMissingValueError(e){return _.create("missing-app-config-values",{valueName:e})}const A="installations",publicFactory=e=>{const t=e.getProvider("app").getImmediate(),n=function extractAppConfig(e){if(!e||!e.options)throw getMissingValueError("App Configuration");if(!e.name)throw getMissingValueError("App Name");const t=["projectId","apiKey","appId"];for(const n of t)if(!e.options[n])throw getMissingValueError(n);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:n,heartbeatServiceProvider:_getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},internalFactory=e=>{const t=e.getProvider("app").getImmediate(),n=_getProvider(t,A).getImmediate();return{getId:()=>async function getId(e){const t=e,{installationEntry:n,registrationPromise:s}=await getInstallationEntry(t);return s?s.catch(console.error):refreshAuthToken(t).catch(console.error),n.fid}(n),getToken:e=>getToken(n,e)}};!function registerInstallations(){t(new Component(A,publicFactory,"PUBLIC")),t(new Component("installations-internal",internalFactory,"PRIVATE"))}(),e(C,b),e(C,b,"esm2017");const D="@firebase/remote-config",O="0.5.0-canary.70e08cf95";class RemoteConfigAbortSignal{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach((e=>e()))}}const P="remote-config",j=new 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."});const B=["1","true","t","yes","y","on"];class Value{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&B.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}}function getRemoteConfig(e=n(),t={}){var s,r;e=getModularInstance(e);const a=_getProvider(e,P);if(a.isInitialized()){if(deepEqual(a.getOptions(),t))return a.getImmediate();throw j.create("already-initialized")}a.initialize({options:t});const i=a.getImmediate();return t.initialFetchResponse&&(i._initializePromise=Promise.all([i._storage.setLastSuccessfulFetchResponse(t.initialFetchResponse),i._storage.setActiveConfigEtag((null===(s=t.initialFetchResponse)||void 0===s?void 0:s.eTag)||""),i._storageCache.setLastSuccessfulFetchTimestampMillis(Date.now()),i._storageCache.setLastFetchStatus("success"),i._storageCache.setActiveConfig((null===(r=t.initialFetchResponse)||void 0===r?void 0:r.config)||{})]).then(),i._isInitializationComplete=!0),i}async function activate(e){const t=getModularInstance(e),[n,s]=await Promise.all([t._storage.getLastSuccessfulFetchResponse(),t._storage.getActiveConfigEtag()]);return!!(n&&n.config&&n.eTag&&n.eTag!==s)&&(await Promise.all([t._storageCache.setActiveConfig(n.config),t._storage.setActiveConfigEtag(n.eTag)]),!0)}function ensureInitialized(e){const t=getModularInstance(e);return t._initializePromise||(t._initializePromise=t._storageCache.loadFromStorage().then((()=>{t._isInitializationComplete=!0}))),t._initializePromise}async function fetchConfig(e){const t=getModularInstance(e),n=new RemoteConfigAbortSignal;setTimeout((async()=>{n.abort()}),t.settings.fetchTimeoutMillis);const s=t._storageCache.getCustomSignals();s&&t._logger.debug(`Fetching config with custom signals: ${JSON.stringify(s)}`);try{await t._client.fetch({cacheMaxAgeMillis:t.settings.minimumFetchIntervalMillis,signal:n,customSignals:s}),await t._storageCache.setLastFetchStatus("success")}catch(e){const n=function hasErrorCode(e,t){return e instanceof FirebaseError&&-1!==e.code.indexOf(t)}(e,"fetch-throttle")?"throttle":"failure";throw await t._storageCache.setLastFetchStatus(n),e}}function getAll(e){const t=getModularInstance(e);return function getAllKeys(e={},t={}){return Object.keys(Object.assign(Object.assign({},e),t))}(t._storageCache.getActiveConfig(),t.defaultConfig).reduce(((t,n)=>(t[n]=getValue(e,n),t)),{})}function getBoolean(e,t){return getValue(getModularInstance(e),t).asBoolean()}function getNumber(e,t){return getValue(getModularInstance(e),t).asNumber()}function getString(e,t){return getValue(getModularInstance(e),t).asString()}function getValue(e,t){const n=getModularInstance(e);n._isInitializationComplete||n._logger.debug(`A value was requested for key "${t}" before SDK initialization completed. Await on ensureInitialized if the intent was to get a previously activated value.`);const s=n._storageCache.getActiveConfig();return s&&void 0!==s[t]?new Value("remote",s[t]):n.defaultConfig&&void 0!==n.defaultConfig[t]?new Value("default",String(n.defaultConfig[t])):(n._logger.debug(`Returning static value for key "${t}". Define a default or remote value if this is unintentional.`),new Value("static"))}function setLogLevel(e,t){const n=getModularInstance(e);switch(t){case"debug":n._logger.logLevel=a.DEBUG;break;case"silent":n._logger.logLevel=a.SILENT;break;default:n._logger.logLevel=a.ERROR}}async function setCustomSignals(e,t){const n=getModularInstance(e);if(0!==Object.keys(t).length){for(const e in t){if(e.length>250)return void n._logger.error(`Custom signal key ${e} is too long, max allowed length is 250.`);const s=t[e];if("string"==typeof s&&s.length>500)return void n._logger.error(`Value supplied for custom signal ${e} is too long, max allowed length is 500.`)}try{await n._storageCache.setCustomSignals(t)}catch(e){n._logger.error(`Error encountered while setting custom signals: ${e}`)}}}class CachingClient{constructor(e,t,n,s){this.client=e,this.storage=t,this.storageCache=n,this.logger=s}isCachedDataFresh(e,t){if(!t)return this.logger.debug("Config fetch cache check. Cache unpopulated."),!1;const n=Date.now()-t,s=n<=e;return this.logger.debug(`Config fetch cache check. Cache age millis: ${n}. Cache max age millis (minimumFetchIntervalMillis setting): ${e}. Is cache hit: ${s}.`),s}async fetch(e){const[t,n]=await Promise.all([this.storage.getLastSuccessfulFetchTimestampMillis(),this.storage.getLastSuccessfulFetchResponse()]);if(n&&this.isCachedDataFresh(e.cacheMaxAgeMillis,t))return n;e.eTag=n&&n.eTag;const s=await this.client.fetch(e),r=[this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())];return 200===s.status&&r.push(this.storage.setLastSuccessfulFetchResponse(s)),await Promise.all(r),s}}function getUserLanguage(e=navigator){return e.languages&&e.languages[0]||e.language}class RestClient{constructor(e,t,n,s,r,a){this.firebaseInstallations=e,this.sdkVersion=t,this.namespace=n,this.projectId=s,this.apiKey=r,this.appId=a}async fetch(e){const[t,n]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken()]),s=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfig.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:fetch?key=${this.apiKey}`,r={"Content-Type":"application/json","Content-Encoding":"gzip","If-None-Match":e.eTag||"*"},a={sdk_version:this.sdkVersion,app_instance_id:t,app_instance_id_token:n,app_id:this.appId,language_code:getUserLanguage(),custom_signals:e.customSignals},i={method:"POST",headers:r,body:JSON.stringify(a)},o=fetch(s,i),c=new Promise(((t,n)=>{e.signal.addEventListener((()=>{const e=new Error("The operation was aborted.");e.name="AbortError",n(e)}))}));let l;try{await Promise.race([o,c]),l=await o}catch(e){let t="fetch-client-network";throw"AbortError"===(null==e?void 0:e.name)&&(t="fetch-timeout"),j.create(t,{originalErrorMessage:null==e?void 0:e.message})}let u=l.status;const g=l.headers.get("ETag")||void 0;let h,d;if(200===l.status){let e;try{e=await l.json()}catch(e){throw j.create("fetch-client-parse",{originalErrorMessage:null==e?void 0:e.message})}h=e.entries,d=e.state}if("INSTANCE_STATE_UNSPECIFIED"===d?u=500:"NO_CHANGE"===d?u=304:"NO_TEMPLATE"!==d&&"EMPTY_CONFIG"!==d||(h={}),304!==u&&200!==u)throw j.create("fetch-status",{httpStatus:u});return{status:u,eTag:g,config:h}}}class RetryingClient{constructor(e,t){this.client=e,this.storage=t}async fetch(e){const t=await this.storage.getThrottleMetadata()||{backoffCount:0,throttleEndTimeMillis:Date.now()};return this.attemptFetch(e,t)}async attemptFetch(e,{throttleEndTimeMillis:t,backoffCount:n}){await function setAbortableTimeout(e,t){return new Promise(((n,s)=>{const r=Math.max(t-Date.now(),0),a=setTimeout(n,r);e.addEventListener((()=>{clearTimeout(a),s(j.create("fetch-throttle",{throttleEndTimeMillis:t}))}))}))}(e.signal,t);try{const t=await this.client.fetch(e);return await this.storage.deleteThrottleMetadata(),t}catch(t){if(!function isRetriableError(e){if(!(e instanceof FirebaseError&&e.customData))return!1;const t=Number(e.customData.httpStatus);return 429===t||500===t||503===t||504===t}(t))throw t;const s={throttleEndTimeMillis:Date.now()+calculateBackoffMillis(n),backoffCount:n+1};return await this.storage.setThrottleMetadata(s),this.attemptFetch(e,s)}}}class RemoteConfig{get fetchTimeMillis(){return this._storageCache.getLastSuccessfulFetchTimestampMillis()||-1}get lastFetchStatus(){return this._storageCache.getLastFetchStatus()||"no-fetch-yet"}constructor(e,t,n,s,r){this.app=e,this._client=t,this._storageCache=n,this._storage=s,this._logger=r,this._isInitializationComplete=!1,this.settings={fetchTimeoutMillis:6e4,minimumFetchIntervalMillis:432e5},this.defaultConfig={}}}function toFirebaseError(e,t){const n=e.target.error||void 0;return j.create(t,{originalErrorMessage:n&&(null==n?void 0:n.message)})}const N="app_namespace_store";class Storage{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)}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")}}class IndexedDbStorage extends Storage{constructor(e,t,n,s=function openDatabase(){return new Promise(((e,t)=>{try{const n=indexedDB.open("firebase_remote_config",1);n.onerror=e=>{t(toFirebaseError(e,"storage-open"))},n.onsuccess=t=>{e(t.target.result)},n.onupgradeneeded=e=>{const t=e.target.result;0===e.oldVersion&&t.createObjectStore(N,{keyPath:"compositeKey"})}}catch(e){t(j.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}}))}()){super(),this.appId=e,this.appName=t,this.namespace=n,this.openDbPromise=s}async setCustomSignals(e){const t=(await this.openDbPromise).transaction([N],"readwrite"),n=mergeCustomSignals(e,await this.getWithTransaction("custom_signals",t)||{});return await this.setWithTransaction("custom_signals",n,t),n}async getWithTransaction(e,t){return new Promise(((n,s)=>{const r=t.objectStore(N),a=this.createCompositeKey(e);try{const e=r.get(a);e.onerror=e=>{s(toFirebaseError(e,"storage-get"))},e.onsuccess=e=>{const t=e.target.result;n(t?t.value:void 0)}}catch(e){s(j.create("storage-get",{originalErrorMessage:null==e?void 0:e.message}))}}))}async setWithTransaction(e,t,n){return new Promise(((s,r)=>{const a=n.objectStore(N),i=this.createCompositeKey(e);try{const e=a.put({compositeKey:i,value:t});e.onerror=e=>{r(toFirebaseError(e,"storage-set"))},e.onsuccess=()=>{s()}}catch(e){r(j.create("storage-set",{originalErrorMessage:null==e?void 0:e.message}))}}))}async get(e){const t=(await this.openDbPromise).transaction([N],"readonly");return this.getWithTransaction(e,t)}async set(e,t){const n=(await this.openDbPromise).transaction([N],"readwrite");return this.setWithTransaction(e,t,n)}async delete(e){const t=await this.openDbPromise;return new Promise(((n,s)=>{const r=t.transaction([N],"readwrite").objectStore(N),a=this.createCompositeKey(e);try{const e=r.delete(a);e.onerror=e=>{s(toFirebaseError(e,"storage-delete"))},e.onsuccess=()=>{n()}}catch(e){s(j.create("storage-delete",{originalErrorMessage:null==e?void 0:e.message}))}}))}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class InMemoryStorage extends Storage{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){const t=this.storage.custom_signals||{};return this.storage.custom_signals=mergeCustomSignals(e,t),Promise.resolve(this.storage.custom_signals)}}function mergeCustomSignals(e,t){const n=Object.assign(Object.assign({},t),e),s=Object.fromEntries(Object.entries(n).filter((([e,t])=>null!==t)).map((([e,t])=>"number"==typeof t?[e,t.toString()]:[e,t])));if(Object.keys(s).length>100)throw j.create("custom-signal-max-allowed-signals",{maxSignals:100});return s}class StorageCache{constructor(e){this.storage=e}getLastFetchStatus(){return this.lastFetchStatus}getLastSuccessfulFetchTimestampMillis(){return this.lastSuccessfulFetchTimestampMillis}getActiveConfig(){return this.activeConfig}getCustomSignals(){return this.customSignals}async loadFromStorage(){const e=this.storage.getLastFetchStatus(),t=this.storage.getLastSuccessfulFetchTimestampMillis(),n=this.storage.getActiveConfig(),s=this.storage.getCustomSignals(),r=await e;r&&(this.lastFetchStatus=r);const a=await t;a&&(this.lastSuccessfulFetchTimestampMillis=a);const i=await n;i&&(this.activeConfig=i);const o=await s;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)}}async function fetchAndActivate(e){return e=getModularInstance(e),await fetchConfig(e),activate(e)}async function isSupported(){if(!isIndexedDBAvailable())return!1;try{return await function validateIndexedDBOpenable(){return new Promise(((e,t)=>{try{let n=!0;const s="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(s);r.onsuccess=()=>{r.result.close(),n||self.indexedDB.deleteDatabase(s),e(!0)},r.onupgradeneeded=()=>{n=!1},r.onerror=()=>{var e;t((null===(e=r.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}()}catch(e){return!1}}!function registerRemoteConfig(){t(new Component(P,(function remoteConfigFactory(e,{options:t}){const n=e.getProvider("app").getImmediate(),r=e.getProvider("installations-internal").getImmediate(),{projectId:i,apiKey:o,appId:c}=n.options;if(!i)throw j.create("registration-project-id");if(!o)throw j.create("registration-api-key");if(!c)throw j.create("registration-app-id");const l=(null==t?void 0:t.templateId)||"firebase",u=isIndexedDBAvailable()?new IndexedDbStorage(c,n.name,l):new InMemoryStorage,g=new StorageCache(u),h=new Logger(D);h.logLevel=a.ERROR;const d=new RestClient(r,s,l,i,o,c),f=new RetryingClient(d,u),p=new CachingClient(f,u,g,h),m=new RemoteConfig(n,p,g,u,h);return ensureInitialized(m),m}),"PUBLIC").setMultipleInstances(!0)),e(D,O),e(D,O,"esm2017")}();export{activate,ensureInitialized,fetchAndActivate,fetchConfig,getAll,getBoolean,getNumber,getRemoteConfig,getString,getValue,isSupported,setCustomSignals,setLogLevel};
import{registerVersion as e,_registerComponent as t,_getProvider,getApp as n,SDK_VERSION as s}from"https://www.gstatic.com/firebasejs/11.3.0-canary.84dfeca39/firebase-app.js";function isIndexedDBAvailable(){try{return"object"==typeof indexedDB}catch(e){return!1}}class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},s=`${this.service}/${e}`,a=this.errors[e],i=a?function replaceTemplate(e,t){return e.replace(r,((e,n)=>{const s=t[n];return null!=s?String(s):`<${n}?>`}))}(a,n):"Error",o=`${this.serviceName}: ${i} (${s}).`;return new FirebaseError(s,o,n)}}const r=/\{\$([^}]+)}/g;function deepEqual(e,t){if(e===t)return!0;const n=Object.keys(e),s=Object.keys(t);for(const r of n){if(!s.includes(r))return!1;const n=e[r],a=t[r];if(isObject(n)&&isObject(a)){if(!deepEqual(n,a))return!1}else if(n!==a)return!1}for(const e of s)if(!n.includes(e))return!1;return!0}function isObject(e){return null!==e&&"object"==typeof e}function calculateBackoffMillis(e,t=1e3,n=2){const s=t*Math.pow(n,e),r=Math.round(.5*s*(Math.random()-.5)*2);return Math.min(144e5,s+r)}function getModularInstance(e){return e&&e._delegate?e._delegate:e}class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}var a;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(a||(a={}));const i={debug:a.DEBUG,verbose:a.VERBOSE,info:a.INFO,warn:a.WARN,error:a.ERROR,silent:a.SILENT},o=a.INFO,c={[a.DEBUG]:"log",[a.VERBOSE]:"log",[a.INFO]:"info",[a.WARN]:"warn",[a.ERROR]:"error"},defaultLogHandler=(e,t,...n)=>{if(t<e.logLevel)return;const s=(new Date).toISOString(),r=c[t];if(!r)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[r](`[${s}] ${e.name}:`,...n)};class Logger{constructor(e){this.name=e,this._logLevel=o,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in a))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?i[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,a.DEBUG,...e),this._logHandler(this,a.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,a.VERBOSE,...e),this._logHandler(this,a.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,a.INFO,...e),this._logHandler(this,a.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,a.WARN,...e),this._logHandler(this,a.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,a.ERROR,...e),this._logHandler(this,a.ERROR,...e)}}let l,u;const g=new WeakMap,h=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap;let m={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return h.get(e);if("objectStoreNames"===t)return e.objectStoreNames||d.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return wrap(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?function getCursorAdvanceMethods(){return u||(u=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}().includes(e)?function(...t){return e.apply(unwrap(this),t),wrap(g.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...n){const s=e.call(unwrap(this),t,...n);return d.set(s,t.sort?t.sort():[t]),wrap(s)}}function transformCachableValue(e){return"function"==typeof e?wrapFunction(e):(e instanceof IDBTransaction&&function cacheDonePromiseForTransaction(e){if(h.has(e))return;const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("complete",complete),e.removeEventListener("error",error),e.removeEventListener("abort",error)},complete=()=>{t(),unlisten()},error=()=>{n(e.error||new DOMException("AbortError","AbortError")),unlisten()};e.addEventListener("complete",complete),e.addEventListener("error",error),e.addEventListener("abort",error)}));h.set(e,t)}(e),t=e,function getIdbProxyableTypes(){return l||(l=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}().some((e=>t instanceof e))?new Proxy(e,m):e);var t}function wrap(e){if(e instanceof IDBRequest)return function promisifyRequest(e){const t=new Promise(((t,n)=>{const unlisten=()=>{e.removeEventListener("success",success),e.removeEventListener("error",error)},success=()=>{t(wrap(e.result)),unlisten()},error=()=>{n(e.error),unlisten()};e.addEventListener("success",success),e.addEventListener("error",error)}));return t.then((t=>{t instanceof IDBCursor&&g.set(t,e)})).catch((()=>{})),p.set(t,e),t}(e);if(f.has(e))return f.get(e);const t=transformCachableValue(e);return t!==e&&(f.set(e,t),p.set(t,e)),t}const unwrap=e=>p.get(e);const w=["get","getKey","getAll","getAllKeys","count"],v=["put","add","delete","clear"],y=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(y.get(t))return y.get(t);const n=t.replace(/FromIndex$/,""),s=t!==n,r=v.includes(n);if(!(n in(s?IDBIndex:IDBObjectStore).prototype)||!r&&!w.includes(n))return;const method=async function(e,...t){const a=this.transaction(e,r?"readwrite":"readonly");let i=a.store;return s&&(i=i.index(t.shift())),(await Promise.all([i[n](...t),r&&a.done]))[0]};return y.set(t,method),method}!function replaceTraps(e){m=e(m)}((e=>Object.assign(Object.assign({},e),{get:(t,n,s)=>getMethod(t,n)||e.get(t,n,s),has:(t,n)=>!!getMethod(t,n)||e.has(t,n)})));const C="@firebase/installations",b="0.6.12-canary.84dfeca39",E=1e4,S=`w:${b}`,I="FIS_v2",T=36e5,_=new 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 isServerError(e){return e instanceof FirebaseError&&e.code.includes("request-failed")}function getInstallationsEndpoint({projectId:e}){return`https://firebaseinstallations.googleapis.com/v1/projects/${e}/installations`}function extractAuthTokenInfoFromResponse(e){return{token:e.token,requestStatus:2,expiresIn:(t=e.expiresIn,Number(t.replace("s","000"))),creationTime:Date.now()};var t}async function getErrorFromResponse(e,t){const n=(await t.json()).error;return _.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function getHeaders({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function getHeadersWithAuth(e,{refreshToken:t}){const n=getHeaders(e);return n.append("Authorization",function getAuthorizationHeader(e){return`${I} ${e}`}(t)),n}async function retryIfServerError(e){const t=await e();return t.status>=500&&t.status<600?e():t}function sleep(e){return new Promise((t=>{setTimeout(t,e)}))}const F=/^[cdef][\w-]{21}$/;function generateFid(){try{const e=new Uint8Array(17);(self.crypto||self.msCrypto).getRandomValues(e),e[0]=112+e[0]%16;const t=function encode(e){const t=function bufferToBase64UrlSafe(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(e);return F.test(t)?t:""}catch(e){return""}}function getKey(e){return`${e.appName}!${e.appId}`}const M=new Map;function fidChanged(e,t){const n=getKey(e);callFidChangeCallbacks(n,t),function broadcastFidChange(e,t){const n=function getBroadcastChannel(){!k&&"BroadcastChannel"in self&&(k=new BroadcastChannel("[Firebase] FID Change"),k.onmessage=e=>{callFidChangeCallbacks(e.data.key,e.data.fid)});return k}();n&&n.postMessage({key:e,fid:t});!function closeBroadcastChannel(){0===M.size&&k&&(k.close(),k=null)}()}(n,t)}function callFidChangeCallbacks(e,t){const n=M.get(e);if(n)for(const e of n)e(t)}let k=null;const R="firebase-installations-store";let L=null;function getDbPromise(){return L||(L=function openDB(e,t,{blocked:n,upgrade:s,blocking:r,terminated:a}={}){const i=indexedDB.open(e,t),o=wrap(i);return s&&i.addEventListener("upgradeneeded",(e=>{s(wrap(i.result),e.oldVersion,e.newVersion,wrap(i.transaction),e)})),n&&i.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),o.then((e=>{a&&e.addEventListener("close",(()=>a())),r&&e.addEventListener("versionchange",(e=>r(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),o}("firebase-installations-database",1,{upgrade:(e,t)=>{if(0===t)e.createObjectStore(R)}})),L}async function set(e,t){const n=getKey(e),s=(await getDbPromise()).transaction(R,"readwrite"),r=s.objectStore(R),a=await r.get(n);return await r.put(t,n),await s.done,a&&a.fid===t.fid||fidChanged(e,t.fid),t}async function remove(e){const t=getKey(e),n=(await getDbPromise()).transaction(R,"readwrite");await n.objectStore(R).delete(t),await n.done}async function update(e,t){const n=getKey(e),s=(await getDbPromise()).transaction(R,"readwrite"),r=s.objectStore(R),a=await r.get(n),i=t(a);return void 0===i?await r.delete(n):await r.put(i,n),await s.done,!i||a&&a.fid===i.fid||fidChanged(e,i.fid),i}async function getInstallationEntry(e){let t;const n=await update(e.appConfig,(n=>{const s=function updateOrCreateInstallationEntry(e){const t=e||{fid:generateFid(),registrationStatus:0};return clearTimedOutRequest(t)}(n),r=function triggerRegistrationIfNecessary(e,t){if(0===t.registrationStatus){if(!navigator.onLine){return{installationEntry:t,registrationPromise:Promise.reject(_.create("app-offline"))}}const n={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},s=async function registerInstallation(e,t){try{const n=await async function createInstallationRequest({appConfig:e,heartbeatServiceProvider:t},{fid:n}){const s=getInstallationsEndpoint(e),r=getHeaders(e),a=t.getImmediate({optional:!0});if(a){const e=await a.getHeartbeatsHeader();e&&r.append("x-firebase-client",e)}const i={fid:n,authVersion:I,appId:e.appId,sdkVersion:S},o={method:"POST",headers:r,body:JSON.stringify(i)},c=await retryIfServerError((()=>fetch(s,o)));if(c.ok){const e=await c.json();return{fid:e.fid||n,registrationStatus:2,refreshToken:e.refreshToken,authToken:extractAuthTokenInfoFromResponse(e.authToken)}}throw await getErrorFromResponse("Create Installation",c)}(e,t);return set(e.appConfig,n)}catch(n){throw isServerError(n)&&409===n.customData.serverCode?await remove(e.appConfig):await set(e.appConfig,{fid:t.fid,registrationStatus:0}),n}}(e,n);return{installationEntry:n,registrationPromise:s}}return 1===t.registrationStatus?{installationEntry:t,registrationPromise:waitUntilFidRegistration(e)}:{installationEntry:t}}(e,s);return t=r.registrationPromise,r.installationEntry}));return""===n.fid?{installationEntry:await t}:{installationEntry:n,registrationPromise:t}}async function waitUntilFidRegistration(e){let t=await updateInstallationRequest(e.appConfig);for(;1===t.registrationStatus;)await sleep(100),t=await updateInstallationRequest(e.appConfig);if(0===t.registrationStatus){const{installationEntry:t,registrationPromise:n}=await getInstallationEntry(e);return n||t}return t}function updateInstallationRequest(e){return update(e,(e=>{if(!e)throw _.create("installation-not-found");return clearTimedOutRequest(e)}))}function clearTimedOutRequest(e){return function hasInstallationRequestTimedOut(e){return 1===e.registrationStatus&&e.registrationTime+E<Date.now()}(e)?{fid:e.fid,registrationStatus:0}:e}async function generateAuthTokenRequest({appConfig:e,heartbeatServiceProvider:t},n){const s=function getGenerateAuthTokenEndpoint(e,{fid:t}){return`${getInstallationsEndpoint(e)}/${t}/authTokens:generate`}(e,n),r=getHeadersWithAuth(e,n),a=t.getImmediate({optional:!0});if(a){const e=await a.getHeartbeatsHeader();e&&r.append("x-firebase-client",e)}const i={installation:{sdkVersion:S,appId:e.appId}},o={method:"POST",headers:r,body:JSON.stringify(i)},c=await retryIfServerError((()=>fetch(s,o)));if(c.ok){return extractAuthTokenInfoFromResponse(await c.json())}throw await getErrorFromResponse("Generate Auth Token",c)}async function refreshAuthToken(e,t=!1){let n;const s=await update(e.appConfig,(s=>{if(!isEntryRegistered(s))throw _.create("not-registered");const r=s.authToken;if(!t&&function isAuthTokenValid(e){return 2===e.requestStatus&&!function isAuthTokenExpired(e){const t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+T}(e)}(r))return s;if(1===r.requestStatus)return n=async function waitUntilAuthTokenRequest(e,t){let n=await updateAuthTokenRequest(e.appConfig);for(;1===n.authToken.requestStatus;)await sleep(100),n=await updateAuthTokenRequest(e.appConfig);const s=n.authToken;return 0===s.requestStatus?refreshAuthToken(e,t):s}(e,t),s;{if(!navigator.onLine)throw _.create("app-offline");const t=function makeAuthTokenRequestInProgressEntry(e){const t={requestStatus:1,requestTime:Date.now()};return Object.assign(Object.assign({},e),{authToken:t})}(s);return n=async function fetchAuthTokenFromServer(e,t){try{const n=await generateAuthTokenRequest(e,t),s=Object.assign(Object.assign({},t),{authToken:n});return await set(e.appConfig,s),n}catch(n){if(!isServerError(n)||401!==n.customData.serverCode&&404!==n.customData.serverCode){const n=Object.assign(Object.assign({},t),{authToken:{requestStatus:0}});await set(e.appConfig,n)}else await remove(e.appConfig);throw n}}(e,t),t}}));return n?await n:s.authToken}function updateAuthTokenRequest(e){return update(e,(e=>{if(!isEntryRegistered(e))throw _.create("not-registered");return function hasAuthTokenRequestTimedOut(e){return 1===e.requestStatus&&e.requestTime+E<Date.now()}(e.authToken)?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e}))}function isEntryRegistered(e){return void 0!==e&&2===e.registrationStatus}async function getToken(e,t=!1){const n=e;await async function completeInstallationRegistration(e){const{registrationPromise:t}=await getInstallationEntry(e);t&&await t}(n);return(await refreshAuthToken(n,t)).token}function getMissingValueError(e){return _.create("missing-app-config-values",{valueName:e})}const A="installations",publicFactory=e=>{const t=e.getProvider("app").getImmediate(),n=function extractAppConfig(e){if(!e||!e.options)throw getMissingValueError("App Configuration");if(!e.name)throw getMissingValueError("App Name");const t=["projectId","apiKey","appId"];for(const n of t)if(!e.options[n])throw getMissingValueError(n);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t);return{app:t,appConfig:n,heartbeatServiceProvider:_getProvider(t,"heartbeat"),_delete:()=>Promise.resolve()}},internalFactory=e=>{const t=e.getProvider("app").getImmediate(),n=_getProvider(t,A).getImmediate();return{getId:()=>async function getId(e){const t=e,{installationEntry:n,registrationPromise:s}=await getInstallationEntry(t);return s?s.catch(console.error):refreshAuthToken(t).catch(console.error),n.fid}(n),getToken:e=>getToken(n,e)}};!function registerInstallations(){t(new Component(A,publicFactory,"PUBLIC")),t(new Component("installations-internal",internalFactory,"PRIVATE"))}(),e(C,b),e(C,b,"esm2017");const D="@firebase/remote-config",O="0.5.0-canary.84dfeca39";class RemoteConfigAbortSignal{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach((e=>e()))}}const P="remote-config",j=new 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."});const B=["1","true","t","yes","y","on"];class Value{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&B.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}}function getRemoteConfig(e=n(),t={}){var s,r;e=getModularInstance(e);const a=_getProvider(e,P);if(a.isInitialized()){if(deepEqual(a.getOptions(),t))return a.getImmediate();throw j.create("already-initialized")}a.initialize({options:t});const i=a.getImmediate();return t.initialFetchResponse&&(i._initializePromise=Promise.all([i._storage.setLastSuccessfulFetchResponse(t.initialFetchResponse),i._storage.setActiveConfigEtag((null===(s=t.initialFetchResponse)||void 0===s?void 0:s.eTag)||""),i._storageCache.setLastSuccessfulFetchTimestampMillis(Date.now()),i._storageCache.setLastFetchStatus("success"),i._storageCache.setActiveConfig((null===(r=t.initialFetchResponse)||void 0===r?void 0:r.config)||{})]).then(),i._isInitializationComplete=!0),i}async function activate(e){const t=getModularInstance(e),[n,s]=await Promise.all([t._storage.getLastSuccessfulFetchResponse(),t._storage.getActiveConfigEtag()]);return!!(n&&n.config&&n.eTag&&n.eTag!==s)&&(await Promise.all([t._storageCache.setActiveConfig(n.config),t._storage.setActiveConfigEtag(n.eTag)]),!0)}function ensureInitialized(e){const t=getModularInstance(e);return t._initializePromise||(t._initializePromise=t._storageCache.loadFromStorage().then((()=>{t._isInitializationComplete=!0}))),t._initializePromise}async function fetchConfig(e){const t=getModularInstance(e),n=new RemoteConfigAbortSignal;setTimeout((async()=>{n.abort()}),t.settings.fetchTimeoutMillis);const s=t._storageCache.getCustomSignals();s&&t._logger.debug(`Fetching config with custom signals: ${JSON.stringify(s)}`);try{await t._client.fetch({cacheMaxAgeMillis:t.settings.minimumFetchIntervalMillis,signal:n,customSignals:s}),await t._storageCache.setLastFetchStatus("success")}catch(e){const n=function hasErrorCode(e,t){return e instanceof FirebaseError&&-1!==e.code.indexOf(t)}(e,"fetch-throttle")?"throttle":"failure";throw await t._storageCache.setLastFetchStatus(n),e}}function getAll(e){const t=getModularInstance(e);return function getAllKeys(e={},t={}){return Object.keys(Object.assign(Object.assign({},e),t))}(t._storageCache.getActiveConfig(),t.defaultConfig).reduce(((t,n)=>(t[n]=getValue(e,n),t)),{})}function getBoolean(e,t){return getValue(getModularInstance(e),t).asBoolean()}function getNumber(e,t){return getValue(getModularInstance(e),t).asNumber()}function getString(e,t){return getValue(getModularInstance(e),t).asString()}function getValue(e,t){const n=getModularInstance(e);n._isInitializationComplete||n._logger.debug(`A value was requested for key "${t}" before SDK initialization completed. Await on ensureInitialized if the intent was to get a previously activated value.`);const s=n._storageCache.getActiveConfig();return s&&void 0!==s[t]?new Value("remote",s[t]):n.defaultConfig&&void 0!==n.defaultConfig[t]?new Value("default",String(n.defaultConfig[t])):(n._logger.debug(`Returning static value for key "${t}". Define a default or remote value if this is unintentional.`),new Value("static"))}function setLogLevel(e,t){const n=getModularInstance(e);switch(t){case"debug":n._logger.logLevel=a.DEBUG;break;case"silent":n._logger.logLevel=a.SILENT;break;default:n._logger.logLevel=a.ERROR}}async function setCustomSignals(e,t){const n=getModularInstance(e);if(0!==Object.keys(t).length){for(const e in t){if(e.length>250)return void n._logger.error(`Custom signal key ${e} is too long, max allowed length is 250.`);const s=t[e];if("string"==typeof s&&s.length>500)return void n._logger.error(`Value supplied for custom signal ${e} is too long, max allowed length is 500.`)}try{await n._storageCache.setCustomSignals(t)}catch(e){n._logger.error(`Error encountered while setting custom signals: ${e}`)}}}class CachingClient{constructor(e,t,n,s){this.client=e,this.storage=t,this.storageCache=n,this.logger=s}isCachedDataFresh(e,t){if(!t)return this.logger.debug("Config fetch cache check. Cache unpopulated."),!1;const n=Date.now()-t,s=n<=e;return this.logger.debug(`Config fetch cache check. Cache age millis: ${n}. Cache max age millis (minimumFetchIntervalMillis setting): ${e}. Is cache hit: ${s}.`),s}async fetch(e){const[t,n]=await Promise.all([this.storage.getLastSuccessfulFetchTimestampMillis(),this.storage.getLastSuccessfulFetchResponse()]);if(n&&this.isCachedDataFresh(e.cacheMaxAgeMillis,t))return n;e.eTag=n&&n.eTag;const s=await this.client.fetch(e),r=[this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())];return 200===s.status&&r.push(this.storage.setLastSuccessfulFetchResponse(s)),await Promise.all(r),s}}function getUserLanguage(e=navigator){return e.languages&&e.languages[0]||e.language}class RestClient{constructor(e,t,n,s,r,a){this.firebaseInstallations=e,this.sdkVersion=t,this.namespace=n,this.projectId=s,this.apiKey=r,this.appId=a}async fetch(e){const[t,n]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken()]),s=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfig.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:fetch?key=${this.apiKey}`,r={"Content-Type":"application/json","Content-Encoding":"gzip","If-None-Match":e.eTag||"*"},a={sdk_version:this.sdkVersion,app_instance_id:t,app_instance_id_token:n,app_id:this.appId,language_code:getUserLanguage(),custom_signals:e.customSignals},i={method:"POST",headers:r,body:JSON.stringify(a)},o=fetch(s,i),c=new Promise(((t,n)=>{e.signal.addEventListener((()=>{const e=new Error("The operation was aborted.");e.name="AbortError",n(e)}))}));let l;try{await Promise.race([o,c]),l=await o}catch(e){let t="fetch-client-network";throw"AbortError"===(null==e?void 0:e.name)&&(t="fetch-timeout"),j.create(t,{originalErrorMessage:null==e?void 0:e.message})}let u=l.status;const g=l.headers.get("ETag")||void 0;let h,d;if(200===l.status){let e;try{e=await l.json()}catch(e){throw j.create("fetch-client-parse",{originalErrorMessage:null==e?void 0:e.message})}h=e.entries,d=e.state}if("INSTANCE_STATE_UNSPECIFIED"===d?u=500:"NO_CHANGE"===d?u=304:"NO_TEMPLATE"!==d&&"EMPTY_CONFIG"!==d||(h={}),304!==u&&200!==u)throw j.create("fetch-status",{httpStatus:u});return{status:u,eTag:g,config:h}}}class RetryingClient{constructor(e,t){this.client=e,this.storage=t}async fetch(e){const t=await this.storage.getThrottleMetadata()||{backoffCount:0,throttleEndTimeMillis:Date.now()};return this.attemptFetch(e,t)}async attemptFetch(e,{throttleEndTimeMillis:t,backoffCount:n}){await function setAbortableTimeout(e,t){return new Promise(((n,s)=>{const r=Math.max(t-Date.now(),0),a=setTimeout(n,r);e.addEventListener((()=>{clearTimeout(a),s(j.create("fetch-throttle",{throttleEndTimeMillis:t}))}))}))}(e.signal,t);try{const t=await this.client.fetch(e);return await this.storage.deleteThrottleMetadata(),t}catch(t){if(!function isRetriableError(e){if(!(e instanceof FirebaseError&&e.customData))return!1;const t=Number(e.customData.httpStatus);return 429===t||500===t||503===t||504===t}(t))throw t;const s={throttleEndTimeMillis:Date.now()+calculateBackoffMillis(n),backoffCount:n+1};return await this.storage.setThrottleMetadata(s),this.attemptFetch(e,s)}}}class RemoteConfig{get fetchTimeMillis(){return this._storageCache.getLastSuccessfulFetchTimestampMillis()||-1}get lastFetchStatus(){return this._storageCache.getLastFetchStatus()||"no-fetch-yet"}constructor(e,t,n,s,r){this.app=e,this._client=t,this._storageCache=n,this._storage=s,this._logger=r,this._isInitializationComplete=!1,this.settings={fetchTimeoutMillis:6e4,minimumFetchIntervalMillis:432e5},this.defaultConfig={}}}function toFirebaseError(e,t){const n=e.target.error||void 0;return j.create(t,{originalErrorMessage:n&&(null==n?void 0:n.message)})}const N="app_namespace_store";class Storage{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)}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")}}class IndexedDbStorage extends Storage{constructor(e,t,n,s=function openDatabase(){return new Promise(((e,t)=>{try{const n=indexedDB.open("firebase_remote_config",1);n.onerror=e=>{t(toFirebaseError(e,"storage-open"))},n.onsuccess=t=>{e(t.target.result)},n.onupgradeneeded=e=>{const t=e.target.result;0===e.oldVersion&&t.createObjectStore(N,{keyPath:"compositeKey"})}}catch(e){t(j.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}}))}()){super(),this.appId=e,this.appName=t,this.namespace=n,this.openDbPromise=s}async setCustomSignals(e){const t=(await this.openDbPromise).transaction([N],"readwrite"),n=mergeCustomSignals(e,await this.getWithTransaction("custom_signals",t)||{});return await this.setWithTransaction("custom_signals",n,t),n}async getWithTransaction(e,t){return new Promise(((n,s)=>{const r=t.objectStore(N),a=this.createCompositeKey(e);try{const e=r.get(a);e.onerror=e=>{s(toFirebaseError(e,"storage-get"))},e.onsuccess=e=>{const t=e.target.result;n(t?t.value:void 0)}}catch(e){s(j.create("storage-get",{originalErrorMessage:null==e?void 0:e.message}))}}))}async setWithTransaction(e,t,n){return new Promise(((s,r)=>{const a=n.objectStore(N),i=this.createCompositeKey(e);try{const e=a.put({compositeKey:i,value:t});e.onerror=e=>{r(toFirebaseError(e,"storage-set"))},e.onsuccess=()=>{s()}}catch(e){r(j.create("storage-set",{originalErrorMessage:null==e?void 0:e.message}))}}))}async get(e){const t=(await this.openDbPromise).transaction([N],"readonly");return this.getWithTransaction(e,t)}async set(e,t){const n=(await this.openDbPromise).transaction([N],"readwrite");return this.setWithTransaction(e,t,n)}async delete(e){const t=await this.openDbPromise;return new Promise(((n,s)=>{const r=t.transaction([N],"readwrite").objectStore(N),a=this.createCompositeKey(e);try{const e=r.delete(a);e.onerror=e=>{s(toFirebaseError(e,"storage-delete"))},e.onsuccess=()=>{n()}}catch(e){s(j.create("storage-delete",{originalErrorMessage:null==e?void 0:e.message}))}}))}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class InMemoryStorage extends Storage{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){const t=this.storage.custom_signals||{};return this.storage.custom_signals=mergeCustomSignals(e,t),Promise.resolve(this.storage.custom_signals)}}function mergeCustomSignals(e,t){const n=Object.assign(Object.assign({},t),e),s=Object.fromEntries(Object.entries(n).filter((([e,t])=>null!==t)).map((([e,t])=>"number"==typeof t?[e,t.toString()]:[e,t])));if(Object.keys(s).length>100)throw j.create("custom-signal-max-allowed-signals",{maxSignals:100});return s}class StorageCache{constructor(e){this.storage=e}getLastFetchStatus(){return this.lastFetchStatus}getLastSuccessfulFetchTimestampMillis(){return this.lastSuccessfulFetchTimestampMillis}getActiveConfig(){return this.activeConfig}getCustomSignals(){return this.customSignals}async loadFromStorage(){const e=this.storage.getLastFetchStatus(),t=this.storage.getLastSuccessfulFetchTimestampMillis(),n=this.storage.getActiveConfig(),s=this.storage.getCustomSignals(),r=await e;r&&(this.lastFetchStatus=r);const a=await t;a&&(this.lastSuccessfulFetchTimestampMillis=a);const i=await n;i&&(this.activeConfig=i);const o=await s;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)}}async function fetchAndActivate(e){return e=getModularInstance(e),await fetchConfig(e),activate(e)}async function isSupported(){if(!isIndexedDBAvailable())return!1;try{return await function validateIndexedDBOpenable(){return new Promise(((e,t)=>{try{let n=!0;const s="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(s);r.onsuccess=()=>{r.result.close(),n||self.indexedDB.deleteDatabase(s),e(!0)},r.onupgradeneeded=()=>{n=!1},r.onerror=()=>{var e;t((null===(e=r.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}}))}()}catch(e){return!1}}!function registerRemoteConfig(){t(new Component(P,(function remoteConfigFactory(e,{options:t}){const n=e.getProvider("app").getImmediate(),r=e.getProvider("installations-internal").getImmediate(),{projectId:i,apiKey:o,appId:c}=n.options;if(!i)throw j.create("registration-project-id");if(!o)throw j.create("registration-api-key");if(!c)throw j.create("registration-app-id");const l=(null==t?void 0:t.templateId)||"firebase",u=isIndexedDBAvailable()?new IndexedDbStorage(c,n.name,l):new InMemoryStorage,g=new StorageCache(u),h=new Logger(D);h.logLevel=a.ERROR;const d=new RestClient(r,s,l,i,o,c),f=new RetryingClient(d,u),p=new CachingClient(f,u,g,h),m=new RemoteConfig(n,p,g,u,h);return ensureInitialized(m),m}),"PUBLIC").setMultipleInstances(!0)),e(D,O),e(D,O,"esm2017")}();export{activate,ensureInitialized,fetchAndActivate,fetchConfig,getAll,getBoolean,getNumber,getRemoteConfig,getString,getValue,isSupported,setCustomSignals,setLogLevel};
//# sourceMappingURL=firebase-remote-config.js.map
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(tt,rt){try{!(function(){function L(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}let M=L(tt),B=function(t){var r=[];let s=0;for(let n=0;n<t.length;n++){let e=t.charCodeAt(n);e<128?r[s++]=e:(e<2048?r[s++]=e>>6|192:(55296==(64512&e)&&n+1<t.length&&56320==(64512&t.charCodeAt(n+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++n)),r[s++]=e>>18|240,r[s++]=e>>12&63|128):r[s++]=e>>12|224,r[s++]=e>>6&63|128),r[s++]=63&e|128)}return r},F={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(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var s=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,n=[];for(let u=0;u<r.length;u+=3){var i=r[u],a=u+1<r.length,o=a?r[u+1]:0,h=u+2<r.length,l=h?r[u+2]:0;let e=(15&o)<<2|l>>6,t=63&l;h||(t=64,a)||(e=64),n.push(s[i>>2],s[(3&i)<<4|o>>4],s[e],s[t])}return n.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(B(e),t)},decodeString(r,s){if(this.HAS_NATIVE_SUPPORT&&!s)return atob(r);{var n=this.decodeStringToByteArray(r,s);var i=[];let e=0,t=0;for(;e<n.length;){var a,o,h,l=n[e++];l<128?i[t++]=String.fromCharCode(l):191<l&&l<224?(a=n[e++],i[t++]=String.fromCharCode((31&l)<<6|63&a)):239<l&&l<365?(a=((7&l)<<18|(63&n[e++])<<12|(63&n[e++])<<6|63&n[e++])-65536,i[t++]=String.fromCharCode(55296+(a>>10)),i[t++]=String.fromCharCode(56320+(1023&a))):(o=n[e++],h=n[e++],i[t++]=String.fromCharCode((15&l)<<12|(63&o)<<6|63&h))}return i.join("");return}},decodeStringToByteArray(e,t){this.init_();var r=t?this.charToByteMapWebSafe_:this.charToByteMap_,s=[];for(let h=0;h<e.length;){var n=r[e.charAt(h++)],i=h<e.length?r[e.charAt(h)]:0,a=++h<e.length?r[e.charAt(h)]:64,o=++h<e.length?r[e.charAt(h)]:64;if(++h,null==n||null==i||null==a||null==o)throw new q;s.push(n<<2|i>>4),64!==a&&(s.push(i<<4&240|a>>2),64!==o)&&s.push(a<<6&192|o)}return s},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)>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class q extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let V=function(e){var t=B(e);return F.encodeByteArray(t,!0)},H=function(e){return V(e).replace(/\./g,"")};class a extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,a.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,j.prototype.create)}}class j{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var s,r=t[0]||{},n=this.service+"/"+e,i=this.errors[e],i=i?(s=r,i.replace(W,(e,t)=>{var r=s[t];return null!=r?String(r):`<${t}?>`})):"Error",i=this.serviceName+`: ${i} (${n}).`;return new a(n,i,r)}}let W=/\{\$([^}]+)}/g;function s(e){return e&&e._delegate?e._delegate:e}class z{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}let G="firebasestorage.googleapis.com",X="storageBucket";class p extends a{constructor(e,t,r=0){super(n(e),`Firebase Storage: ${t} (${n(e)})`),this.status_=r,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,p.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return n(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=this._baseMessage+`
`+this.customData.serverResponse:this.message=this._baseMessage}}var f,i,e,$;function n(e){return"storage/"+e}function o(){return new p(f.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function K(){return new p(f.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again.")}function Z(){return new p(f.CANCELED,"User canceled the upload/download.")}function J(){return new p(f.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function h(e){return new p(f.INVALID_ARGUMENT,e)}function Y(){return new p(f.APP_DELETED,"The Firebase app was deleted.")}function Q(e){return new p(f.INVALID_ROOT_OPERATION,"The operation '"+e+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}function l(e,t){return new p(f.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function u(e){throw new p(f.INTERNAL_ERROR,"Internal error: "+e)}(e=f=f||{}).UNKNOWN="unknown",e.OBJECT_NOT_FOUND="object-not-found",e.BUCKET_NOT_FOUND="bucket-not-found",e.PROJECT_NOT_FOUND="project-not-found",e.QUOTA_EXCEEDED="quota-exceeded",e.UNAUTHENTICATED="unauthenticated",e.UNAUTHORIZED="unauthorized",e.UNAUTHORIZED_APP="unauthorized-app",e.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",e.INVALID_CHECKSUM="invalid-checksum",e.CANCELED="canceled",e.INVALID_EVENT_NAME="invalid-event-name",e.INVALID_URL="invalid-url",e.INVALID_DEFAULT_BUCKET="invalid-default-bucket",e.NO_DEFAULT_BUCKET="no-default-bucket",e.CANNOT_SLICE_BLOB="cannot-slice-blob",e.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",e.NO_DOWNLOAD_URL="no-download-url",e.INVALID_ARGUMENT="invalid-argument",e.INVALID_ARGUMENT_COUNT="invalid-argument-count",e.APP_DELETED="app-deleted",e.INVALID_ROOT_OPERATION="invalid-root-operation",e.INVALID_FORMAT="invalid-format",e.INTERNAL_ERROR="internal-error",e.UNSUPPORTED_ENVIRONMENT="unsupported-environment";class _{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){var e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){return"/b/"+encodeURIComponent(this.bucket)+"/o"}static makeFromBucketSpec(t,e){let r;try{r=_.makeFromUrl(t,e)}catch(e){return new _(t,"")}if(""===r.path)return r;throw e=t,new p(f.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+e+"'.")}static makeFromUrl(e,t){let r=null;var s="([A-Za-z0-9.\\-_]+)";var n=new RegExp("^gs://"+s+"(/(.*))?$","i");function i(e){e.path_=decodeURIComponent(e.path)}var a=t.replace(/[.]/g,"\\."),a=new RegExp(`^https?://${a}/v[A-Za-z0-9_]+/b/${s}/o(/([^?#]*).*)?$`,"i"),o=t===G?"(?:storage.googleapis.com|storage.cloud.google.com)":t,h=[{regex:n,indices:{bucket:1,path:3},postModify:function(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:a,indices:{bucket:1,path:3},postModify:i},{regex:new RegExp(`^https?://${o}/${s}/([^?#]*)`,"i"),indices:{bucket:1,path:2},postModify:i}];for(let d=0;d<h.length;d++){var l=h[d],u=l.regex.exec(e);if(u){var c=u[l.indices.bucket];let e=u[l.indices.path];e=e||"",r=new _(c,e),l.postModify(r);break}}if(null==r)throw t=e,new p(f.INVALID_URL,"Invalid URL '"+t+"'.");return r}}class ee{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=0){}}function c(e){return"string"==typeof e||e instanceof String}function te(e){return d()&&e instanceof Blob}function d(){return"undefined"!=typeof Blob}function g(e,t,r,s){if(s<t)throw h(`Invalid value for '${e}'. Expected ${t} or greater.`);if(r<s)throw h(`Invalid value for '${e}'. Expected ${r} or less.`)}function m(e,t,r){let s=null==r?"https://"+t:t;return`${r}://${s}/v0`+e}function re(e){var t,r,s=encodeURIComponent;let n="?";for(t in e)e.hasOwnProperty(t)&&(r=s(t)+"="+s(e[t]),n=n+r+"&");return n=n.slice(0,-1)}function se(e,t){var r=500<=e&&e<600,s=-1!==[408,429].indexOf(e),n=-1!==t.indexOf(e);return r||s||n}(e=i=i||{})[e.NO_ERROR=0]="NO_ERROR",e[e.NETWORK_ERROR=1]="NETWORK_ERROR",e[e.ABORT=2]="ABORT";class ne{constructor(e,t,r,s,n,i,a,o,h,l,u,c=!0){this.url_=e,this.method_=t,this.headers_=r,this.body_=s,this.successCodes_=n,this.additionalRetryCodes_=i,this.callback_=a,this.errorCallback_=o,this.timeout_=h,this.progressCallback_=l,this.connectionFactory_=u,this.retry=c,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()})}start_(){var e=(n,e)=>{if(e)n(!1,new v(!1,null,!0));else{let r=this.connectionFactory_(),s=(this.pendingConnection_=r,e=>{var t=e.loaded,r=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,r)});null!==this.progressCallback_&&r.addUploadProgressListener(s),r.send(this.url_,this.method_,this.body_,this.headers_).then(()=>{null!==this.progressCallback_&&r.removeUploadProgressListener(s),this.pendingConnection_=null;var e=r.getErrorCode()===i.NO_ERROR,t=r.getStatus();!e||se(t,this.additionalRetryCodes_)&&this.retry?(e=r.getErrorCode()===i.ABORT,n(!1,new v(!1,null,e))):(e=-1!==this.successCodes_.indexOf(t),n(!0,new v(e,r)))})}},t=(e,t)=>{var r=this.resolve_,s=this.reject_,n=t.connection;if(t.wasSuccessCode)try{var i=this.callback_(n,n.getResponse());void 0!==i?r(i):r()}catch(e){s(e)}else null!==n?((i=o()).serverResponse=n.getErrorText(),this.errorCallback_?s(this.errorCallback_(n,i)):s(i)):t.canceled?s((this.appDelete_?Y:Z)()):s(K())};this.canceled_?t(0,new v(!1,null,!0)):this.backoffId_=((t,r,e)=>{let s=1,n=null,i=null,a=!1,o=0;function h(){return 2===o}let l=!1;function u(...e){l||(l=!0,r.apply(null,e))}function c(e){n=setTimeout(()=>{n=null,t(_,h())},e)}function d(){i&&clearTimeout(i)}function _(e,...t){if(l)d();else if(e)d(),u.call(null,e,...t);else if(h()||a)d(),u.call(null,e,...t);else{s<64&&(s*=2);let e;c(e=1===o?(o=2,0):1e3*(s+Math.random()))}}let p=!1;function f(e){p||(p=!0,d(),l)||(null!==n?(e||(o=2),clearTimeout(n),c(0)):e||(o=1))}return c(0),i=setTimeout(()=>{f(a=!0)},e),f})(e,t,this.timeout_)}getPromise(){return this.promise_}cancel(e){this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_&&(0,this.backoffId_)(!1),null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class v{constructor(e,t,r){this.wasSuccessCode=e,this.connection=t,this.canceled=!!r}}function ie(...t){var r="undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0;if(void 0!==r){var s=new r;for(let e=0;e<t.length;e++)s.append(t[e]);return s.getBlob()}if(d())return new Blob(t);throw new p(f.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}function ae(e){if("undefined"==typeof atob)throw new p(f.UNSUPPORTED_ENVIRONMENT,"base-64 is missing. Make sure to install the required polyfills. See https://firebase.google.com/docs/web/environments-js-sdk#polyfills for more information.");return atob(e)}let b={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class T{constructor(e,t){this.data=e,this.contentType=t||null}}function oe(e,t){switch(e){case b.RAW:return new T(he(t));case b.BASE64:case b.BASE64URL:return new T(le(e,t));case b.DATA_URL:return new T((r=t,(s=new ue(r)).base64?le(b.BASE64,s.rest):(e=>{let t;try{t=decodeURIComponent(e)}catch(e){throw l(b.DATA_URL,"Malformed data URL.")}return he(t)})(s.rest)),(r=t,new ue(r).contentType))}var r,s;throw o()}function he(t){var r,s,n=[];for(let i=0;i<t.length;i++){let e=t.charCodeAt(i);e<=127?n.push(e):e<=2047?n.push(192|e>>6,128|63&e):55296==(64512&e)?i<t.length-1&&56320==(64512&t.charCodeAt(i+1))?(r=e,s=t.charCodeAt(++i),e=65536|(1023&r)<<10|1023&s,n.push(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)):n.push(239,191,189):56320==(64512&e)?n.push(239,191,189):n.push(224|e>>12,128|e>>6&63,128|63&e)}return new Uint8Array(n)}function le(t,e){switch(t){case b.BASE64:var r=-1!==e.indexOf("-"),s=-1!==e.indexOf("_");if(r||s)throw l(t,"Invalid character '"+(r?"-":"_")+"' found: is it base64url encoded?");break;case b.BASE64URL:s=-1!==e.indexOf("+"),r=-1!==e.indexOf("/");if(s||r)throw l(t,"Invalid character '"+(s?"+":"/")+"' found: is it base64 encoded?");e=e.replace(/-/g,"+").replace(/_/g,"/")}let n;try{n=ae(e)}catch(e){if(e.message.includes("polyfill"))throw e;throw l(t,"Invalid character found")}var i=new Uint8Array(n.length);for(let a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return i}class ue{constructor(e){this.base64=!1,this.contentType=null;var t=e.match(/^data:([^,]+)?,/);if(null===t)throw l(b.DATA_URL,"Must be formatted 'data:[<mediatype>][;base64],<data>");var r,s,t=t[1]||null;null!=t&&(this.base64=(s=";base64",(r=t).length>=s.length&&r.substring(r.length-s.length)===s),this.contentType=this.base64?t.substring(0,t.length-";base64".length):t),this.rest=e.substring(e.indexOf(",")+1)}}class R{constructor(e,t){let r=0,s="";te(e)?(this.data_=e,r=e.size,s=e.type):e instanceof ArrayBuffer?(t?this.data_=new Uint8Array(e):(this.data_=new Uint8Array(e.byteLength),this.data_.set(new Uint8Array(e))),r=this.data_.length):e instanceof Uint8Array&&(t?this.data_=e:(this.data_=new Uint8Array(e.length),this.data_.set(e)),r=e.length),this.size_=r,this.type_=s}size(){return this.size_}type(){return this.type_}slice(e,t){var r,s,n,i;return te(this.data_)?(r=this.data_,n=e,i=t,null===(r=(s=r).webkitSlice?s.webkitSlice(n,i):s.mozSlice?s.mozSlice(n,i):s.slice?s.slice(n,i):null)?null:new R(r)):(r=new Uint8Array(this.data_.buffer,e,t-e),new R(r,!0))}static getBlob(...e){if(d())return n=e.map(e=>e instanceof R?e.data_:e),new R(ie.apply(null,n));{var n=e.map(e=>c(e)?oe(b.RAW,e).data:e.data_);let t=0,r=(n.forEach(e=>{t+=e.byteLength}),new Uint8Array(t)),s=0;return n.forEach(e=>{for(let t=0;t<e.length;t++)r[s++]=e[t]}),new R(r,!0)}}uploadData(){return this.data_}}function y(e){let t;try{t=JSON.parse(e)}catch(e){return null}return"object"!=typeof(e=t)||Array.isArray(e)?null:t}function ce(e){var t=e.lastIndexOf("/",e.length-2);return-1===t?e:e.slice(t+1)}function de(e,t){return t}class r{constructor(e,t,r,s){this.server=e,this.local=t||e,this.writable=!!r,this.xform=s||de}}let E=null;function w(){var e,t;return E||((e=[]).push(new r("bucket")),e.push(new r("generation")),e.push(new r("metageneration")),e.push(new r("name","fullPath",!0)),(t=new r("name")).xform=function(e,t){return!c(t=t)||t.length<2?t:ce(t)},e.push(t),(t=new r("size")).xform=function(e,t){return void 0!==t?Number(t):t},e.push(t),e.push(new r("timeCreated")),e.push(new r("updated")),e.push(new r("md5Hash",null,!0)),e.push(new r("cacheControl",null,!0)),e.push(new r("contentDisposition",null,!0)),e.push(new r("contentEncoding",null,!0)),e.push(new r("contentLanguage",null,!0)),e.push(new r("contentType",null,!0)),e.push(new r("metadata","customMetadata",!0)),E=e),E}function _e(r,s){Object.defineProperty(r,"ref",{get:function(){var e=r.bucket,t=r.fullPath,e=new _(e,t);return s._makeStorageReference(e)}})}function pe(e,t,r){var s=y(t);if(null===s)return null;var t=e,n=s,i=r,a={type:"file"},o=i.length;for(let l=0;l<o;l++){var h=i[l];a[h.local]=h.xform(a,n[h.server])}return _e(a,t),a}function fe(e,t){var r={},s=t.length;for(let i=0;i<s;i++){var n=t[i];n.writable&&(r[n.server]=e[n.local])}return JSON.stringify(r)}let ge="prefixes",me="items";function ve(e,t,r){var s=y(r);if(null===s)return null;var n=e,i=t,r=s,a={prefixes:[],items:[],nextPageToken:r.nextPageToken};if(r[ge])for(var o of r[ge]){o=o.replace(/\/$/,""),o=n._makeStorageReference(new _(i,o));a.prefixes.push(o)}if(r[me])for(var h of r[me]){h=n._makeStorageReference(new _(i,h.name));a.items.push(h)}return a}class k{constructor(e,t,r,s){this.url=e,this.method=t,this.handler=r,this.timeout=s,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}function A(e){if(!e)throw o()}function C(s,n){return function(e,t){var r=pe(s,t,n);return A(null!==r),r}}function be(s,n){return function(e,t){var r=ve(s,n,t);return A(null!==r),r}}function Te(o,s){return function(e,t){var r=pe(o,t,s);A(null!==r);{var n=r,i=o.host,a=o._protocol;if(null===(r=y(t)))return null;if(!c(r.downloadTokens))return null;if(0===(r=r.downloadTokens).length)return null;let s=encodeURIComponent;return r.split(",").map(e=>{var t=n.bucket,r=n.fullPath;return m("/b/"+s(t)+"/o/"+s(r),i,a)+re({alt:"media",token:e})})[0]}}}function S(n){return function(e,t){let r;var s;return(r=401===e.getStatus()?e.getErrorText().includes("Firebase App Check token is invalid")?new p(f.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project."):new p(f.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again."):402===e.getStatus()?(s=n.bucket,new p(f.QUOTA_EXCEEDED,"Quota for bucket '"+s+"' exceeded, please view quota on https://firebase.google.com/pricing/.")):403===e.getStatus()?(s=n.path,new p(f.UNAUTHORIZED,"User does not have permission to access '"+s+"'.")):t).status=e.getStatus(),r.serverResponse=t.serverResponse,r}}function O(s){let n=S(s);return function(e,t){let r=n(e,t);return(r=404===e.getStatus()?(e=s.path,new p(f.OBJECT_NOT_FOUND,"Object '"+e+"' does not exist.")):r).serverResponse=t.serverResponse,r}}function Re(e,t,r){var s=m(t.fullServerUrl(),e.host,e._protocol),n=e.maxOperationRetryTime,s=new k(s,"GET",C(e,r),n);return s.errorHandler=O(t),s}function ye(e,t,r){var s=Object.assign({},r);return s.fullPath=e.path,s.size=t.size(),s.contentType||(s.contentType=(r=t,(e=null)&&e.contentType||r&&r.type()||"application/octet-stream")),s}function Ee(e,t,r,s,n){var i=t.bucketOnlyServerUrl(),a={"X-Goog-Upload-Protocol":"multipart"};var o=(()=>{let e="";for(let t=0;t<2;t++)e+=Math.random().toString().slice(2);return e})(),h=(a["Content-Type"]="multipart/related; boundary="+o,ye(t,s,n)),l="--"+o+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+fe(h,r)+"\r\n--"+o+"\r\nContent-Type: "+h.contentType+"\r\n\r\n",o="\r\n--"+o+"--",l=R.getBlob(l,s,o);if(null===l)throw J();o={name:h.fullPath},h=m(i,e.host,e._protocol),i=e.maxUploadRetryTime,h=new k(h,"POST",C(e,r),i);return h.urlParams=o,h.headers=a,h.body=l.uploadData(),h.errorHandler=S(t),h}class U{constructor(e,t,r,s){this.current=e,this.total=t,this.finalized=!!r,this.metadata=s||null}}function we(e,t){let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){A(!1)}return A(!!r&&-1!==(t||["active"]).indexOf(r)),r}function ke(e,t,r,s,n){var i=t.bucketOnlyServerUrl(),a=ye(t,s,n),o={name:a.fullPath},i=m(i,e.host,e._protocol),h={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":""+s.size(),"X-Goog-Upload-Header-Content-Type":a.contentType,"Content-Type":"application/json; charset=utf-8"},a=fe(a,r),l=e.maxUploadRetryTime;i=new k(i,"POST",function(e){we(e);let t;try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){A(!1)}return A(c(t)),t},l);return i.urlParams=o,i.headers=h,i.body=a,i.errorHandler=S(t),i}function Ae(e,t,r,n){var s=e.maxUploadRetryTime,s=new k(r,"POST",function(e){var t=we(e,["active","final"]);let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){A(!1)}r||A(!1);var s=Number(r);return A(!isNaN(s)),new U(s,n.size(),"final"===t)},s);return s.headers={"X-Goog-Upload-Command":"query"},s.errorHandler=S(t),s}function Ce(e,a,t,o,r,h,s,n){let l=new U(0,0);if(s?(l.current=s.current,l.total=s.total):(l.current=0,l.total=o.size()),o.size()!==l.total)throw new p(f.SERVER_FILE_WRONG_SIZE,"Server recorded incorrect upload file size, please retry the upload.");var i=l.total-l.current;let u=i;0<r&&(u=Math.min(u,r));var c=l.current,d=c+u;let _="";i={"X-Goog-Upload-Command":_=0===u?"finalize":i===u?"upload, finalize":"upload","X-Goog-Upload-Offset":""+l.current},c=o.slice(c,d);if(null===c)throw J();d=a.maxUploadRetryTime,d=new k(t,"POST",function(e,t){var r=we(e,["active","final"]),s=l.current+u,n=o.size();let i;return i="final"===r?C(a,h)(e,t):null,new U(s,n,"final"===r,i)},d);return d.headers=i,d.body=c.uploadData(),d.progressCallback=n||null,d.errorHandler=S(e),d}let Se={STATE_CHANGED:"state_changed"},t={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function Oe(e){switch(e){case"running":case"pausing":case"canceling":return t.RUNNING;case"paused":return t.PAUSED;case"success":return t.SUCCESS;case"canceled":return t.CANCELED;default:return t.ERROR}}class Ue{constructor(e,t,r){var s;"function"==typeof e||null!=t||null!=r?(this.next=e,this.error=null!=t?t:void 0,this.complete=null!=r?r:void 0):(this.next=(s=e).next,this.error=s.error,this.complete=s.complete)}}function N(t){return(...e)=>{Promise.resolve().then(()=>t(...e))}}class Ne extends class{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=i.NO_ERROR,this.sendPromise_=new Promise(e=>{this.xhr_.addEventListener("abort",()=>{this.errorCode_=i.ABORT,e()}),this.xhr_.addEventListener("error",()=>{this.errorCode_=i.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,r,s){if(this.sent_)throw u("cannot .send() more than once");if(this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==s)for(var n in s)s.hasOwnProperty(n)&&this.xhr_.setRequestHeader(n,s[n].toString());return void 0!==r?this.xhr_.send(r):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(this.sent_)return this.errorCode_;throw u("cannot .getErrorCode() before sending")}getStatus(){if(!this.sent_)throw u("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return-1}}getResponse(){if(this.sent_)return this.xhr_.response;throw u("cannot .getResponse() before sending")}getErrorText(){if(this.sent_)return this.xhr_.statusText;throw u("cannot .getErrorText() before sending")}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}{initXhr(){this.xhr_.responseType="text"}}function x(){return new Ne}class xe{isExponentialBackoffExpired(){return this.sleepTime>this.maxSleepTime}constructor(e,t,r=null){this._transferred=0,this._needToFetchStatus=!1,this._needToFetchMetadata=!1,this._observers=[],this._error=void 0,this._uploadUrl=void 0,this._request=void 0,this._chunkMultiplier=1,this._resolve=void 0,this._reject=void 0,this._ref=e,this._blob=t,this._metadata=r,this._mappings=w(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals(f.CANCELED))this._needToFetchStatus=!0,this.completeTransitions_();else{var t=this.isExponentialBackoffExpired();if(se(e.status,[])){if(!t)return this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,void this.completeTransitions_();e=K()}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals(f.CANCELED)?this.completeTransitions_():(this._error=e,this._transition("error"))},this.sleepTime=0,this.maxSleepTime=this._ref.storage.maxUploadRetryTime,this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t,this._start()}),this._promise.then(null,()=>{})}_makeProgressCallback(){let t=this._transferred;return e=>this._updateProgress(t+e)}_shouldDoResumable(e){return 262144<e.size()}_start(){"running"===this._state&&void 0===this._request&&(this._resumable?void 0===this._uploadUrl?this._createResumable():this._needToFetchStatus?this._fetchStatus():this._needToFetchMetadata?this._fetchMetadata():this.pendingTimeout=setTimeout(()=>{this.pendingTimeout=void 0,this._continueUpload()},this.sleepTime):this._oneShotUpload())}_resolveToken(r){Promise.all([this._ref.storage._getAuthToken(),this._ref.storage._getAppCheckToken()]).then(([e,t])=>{switch(this._state){case"running":r(e,t);break;case"canceling":this._transition("canceled");break;case"pausing":this._transition("paused")}})}_createResumable(){this._resolveToken((e,t)=>{var r=ke(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,x,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._uploadUrl=e,this._needToFetchStatus=!1,this.completeTransitions_()},this._errorHandler)})}_fetchStatus(){let s=this._uploadUrl;this._resolveToken((e,t)=>{var r=Ae(this._ref.storage,this._ref._location,s,this._blob),r=this._ref.storage._makeRequest(r,x,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._updateProgress(e.current),this._needToFetchStatus=!1,e.finalized&&(this._needToFetchMetadata=!0),this.completeTransitions_()},this._errorHandler)})}_continueUpload(){let n=262144*this._chunkMultiplier,i=new U(this._transferred,this._blob.size()),a=this._uploadUrl;this._resolveToken((e,t)=>{let r;try{r=Ce(this._ref._location,this._ref.storage,a,this._blob,n,this._mappings,i,this._makeProgressCallback())}catch(e){return this._error=e,void this._transition("error")}var s=this._ref.storage._makeRequest(r,x,e,t,!1);(this._request=s).getPromise().then(e=>{this._increaseMultiplier(),this._request=void 0,this._updateProgress(e.current),e.finalized?(this._metadata=e.metadata,this._transition("success")):this.completeTransitions_()},this._errorHandler)})}_increaseMultiplier(){2*(262144*this._chunkMultiplier)<33554432&&(this._chunkMultiplier*=2)}_fetchMetadata(){this._resolveToken((e,t)=>{var r=Re(this._ref.storage,this._ref._location,this._mappings),r=this._ref.storage._makeRequest(r,x,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._metadata=e,this._transition("success")},this._metadataErrorHandler)})}_oneShotUpload(){this._resolveToken((e,t)=>{var r=Ee(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,x,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._metadata=e,this._updateProgress(this._blob.size()),this._transition("success")},this._errorHandler)})}_updateProgress(e){var t=this._transferred;this._transferred=e,this._transferred!==t&&this._notifyObservers()}_transition(e){if(this._state!==e)switch(e){case"canceling":case"pausing":this._state=e,void 0!==this._request?this._request.cancel():this.pendingTimeout&&(clearTimeout(this.pendingTimeout),this.pendingTimeout=void 0,this.completeTransitions_());break;case"running":var t="paused"===this._state;this._state=e,t&&(this._notifyObservers(),this._start());break;case"paused":this._state=e,this._notifyObservers();break;case"canceled":this._error=Z(),this._state=e,this._notifyObservers();break;case"error":case"success":this._state=e,this._notifyObservers()}}completeTransitions_(){switch(this._state){case"pausing":this._transition("paused");break;case"canceling":this._transition("canceled");break;case"running":this._start()}}get snapshot(){var e=Oe(this._state);return{bytesTransferred:this._transferred,totalBytes:this._blob.size(),state:e,metadata:this._metadata,task:this,ref:this._ref}}on(e,t,r,s){let n=new Ue(t||void 0,r||void 0,s||void 0);return this._addObserver(n),()=>{this._removeObserver(n)}}then(e,t){return this._promise.then(e,t)}catch(e){return this.then(null,e)}_addObserver(e){this._observers.push(e),this._notifyObserver(e)}_removeObserver(e){var t=this._observers.indexOf(e);-1!==t&&this._observers.splice(t,1)}_notifyObservers(){this._finishPromise(),this._observers.slice().forEach(e=>{this._notifyObserver(e)})}_finishPromise(){if(void 0!==this._resolve){let e=!0;switch(Oe(this._state)){case t.SUCCESS:N(this._resolve.bind(null,this.snapshot))();break;case t.CANCELED:case t.ERROR:N(this._reject.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(Oe(this._state)){case t.RUNNING:case t.PAUSED:e.next&&N(e.next.bind(e,this.snapshot))();break;case t.SUCCESS:e.complete&&N(e.complete.bind(e))();break;case t.CANCELED:case t.ERROR:default:e.error&&N(e.error.bind(e,this._error))()}}resume(){var e="paused"===this._state||"pausing"===this._state;return e&&this._transition("running"),e}pause(){var e="running"===this._state;return e&&this._transition("pausing"),e}cancel(){var e="running"===this._state||"pausing"===this._state;return e&&this._transition("canceling"),e}}class I{constructor(e,t){this._service=e,t instanceof _?this._location=t:this._location=_.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new I(e,t)}get root(){var e=new _(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return ce(this._location.path)}get storage(){return this._service}get parent(){var e,t,r=0===(e=this._location.path).length?null:-1===(r=e.lastIndexOf("/"))?"":e.slice(0,r);return null===r?null:(t=new _(this._location.bucket,r),new I(this._service,t))}_throwIfRoot(e){if(""===this._location.path)throw Q(e)}}function Ie(e){let t={prefixes:[],items:[]};return async function e(t,r,s){let n={pageToken:s};let i=await Pe(t,n);r.prefixes.push(...i.prefixes);r.items.push(...i.items);null!=i.nextPageToken&&await e(t,r,i.nextPageToken)}(e,t).then(()=>t)}function Pe(e,t){null!=t&&"number"==typeof t.maxResults&&g("options.maxResults",1,1e3,t.maxResults);var r,s,n,i,a,o=t||{},h=(t=e.storage,r=e._location,s="/",n=o.pageToken,i=o.maxResults,o={},r.isRoot?o.prefix="":o.prefix=r.path+"/",s&&0<s.length&&(o.delimiter=s),n&&(o.pageToken=n),i&&(o.maxResults=i),a=m(a=r.bucketOnlyServerUrl(),t.host,t._protocol),h=t.maxOperationRetryTime,(a=new k(a,"GET",be(t,r.bucket),h)).urlParams=o,a.errorHandler=S(r),a);return e.storage.makeRequestWithTokens(h,x)}function De(e,t){e._throwIfRoot("updateMetadata");r=e.storage,s=e._location,t=t,n=w(),i=m(s.fullServerUrl(),r.host,r._protocol),a=fe(t,n),o=r.maxOperationRetryTime,(i=new k(i,"PATCH",C(r,n),o)).headers={"Content-Type":"application/json; charset=utf-8"},i.body=a,i.errorHandler=O(s);var r,s,n,i,a,o=i;return e.storage.makeRequestWithTokens(o,x)}function Le(e){e._throwIfRoot("getDownloadURL");t=e.storage,r=e._location,s=w(),n=m(r.fullServerUrl(),t.host,t._protocol),i=t.maxOperationRetryTime,(n=new k(n,"GET",Te(t,s),i)).errorHandler=O(r);var t,r,s,n,i=n;return e.storage.makeRequestWithTokens(i,x).then(e=>{if(null===e)throw new p(f.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}function Me(e){e._throwIfRoot("deleteObject");t=e.storage,s=m((r=e._location).fullServerUrl(),t.host,t._protocol),n=t.maxOperationRetryTime,(s=new k(s,"DELETE",function(e,t){},n)).successCodes=[200,204],s.errorHandler=O(r);var t,r,s,n=s;return e.storage.makeRequestWithTokens(n,x)}function Be(e,t){r=e._location.path,s=t.split("/").filter(e=>0<e.length).join("/");var r,s=0===r.length?s:r+"/"+s,s=new _(e._location.bucket,s);return new I(e.storage,s)}function Fe(e,t){if(e instanceof je){var r=e;if(null==r._bucket)throw new p(f.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+X+"' property when initializing the app?");r=new I(r,r._bucket);return null!=t?Fe(r,t):r}return void 0!==t?Be(e,t):e}function qe(e,t){if(t&&/^[A-Za-z]+:\/\//.test(t)){if(e instanceof je)return r=e,s=t,new I(r,s);throw h("To use ref(service, url), the first argument must be a Storage instance.")}return Fe(e,t);var r,s}function Ve(e,t){var r=null==t?void 0:t[X];return null==r?null:_.makeFromBucketSpec(r,e)}function He(e,t,r,s={}){e.host=t+":"+r,e._protocol="http";var n=s.mockUserToken;n&&(e._overrideAuthToken="string"==typeof n?n:((e,t)=>{if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');var r=t||"demo-project",s=e.iat||0,n=e.sub||e.user_id;if(n)return r=Object.assign({iss:"https://securetoken.google.com/"+r,aud:r,iat:s,exp:s+3600,auth_time:s,sub:n,user_id:n,firebase:{sign_in_provider:"custom",identities:{}}},e),[H(JSON.stringify({alg:"none",type:"JWT"})),H(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")})(n,e.app.options.projectId))}class je{constructor(e,t,r,s,n){this.app=e,this._authProvider=t,this._appCheckProvider=r,this._url=s,this._firebaseVersion=n,this._bucket=null,this._host=G,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,this._bucket=null!=s?_.makeFromBucketSpec(s,this._host):Ve(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=_.makeFromBucketSpec(this._url,e):this._bucket=Ve(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){g("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){g("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;var e=this._authProvider.getImmediate({optional:!0});if(e){e=await e.getToken();if(null!==e)return e.accessToken}return null}async _getAppCheckToken(){var e;return rt._isFirebaseServerApp(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:(e=this._appCheckProvider.getImmediate({optional:!0}))?(await e.getToken()).token:null}_delete(){return this._deleted||(this._deleted=!0,this._requests.forEach(e=>e.cancel()),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new I(this,e)}_makeRequest(t,r,s,n,i=!0){if(this._deleted)return new ee(Y());{[t,s,n,r,i,a,o=!0]=[t,this._appId,s,n,r,this._firebaseVersion,i],l=re(t.urlParams),l=t.url+l,u=Object.assign({},t.headers),h=u,(s=s)&&(h["X-Firebase-GMPID"]=s),h=u,null!==(s=n)&&0<s.length&&(h.Authorization="Firebase "+s),n=a,u["X-Firebase-Storage-Version"]="webjs/"+(null!=n?n:"AppManager"),h=u,null!==(s=r)&&(h["X-Firebase-AppCheck"]=s);let e=new ne(l,t.method,u,t.body,t.successCodes,t.additionalRetryCodes,t.handler,t.errorHandler,t.timeout,t.progressCallback,i,o);return this._requests.add(e),e.getPromise().then(()=>this._requests.delete(e),()=>this._requests.delete(e)),e}var a,o,h,l,u}async makeRequestWithTokens(e,t){var[r,s]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,r,s).getPromise()}}let We="@firebase/storage",ze="0.13.6-canary.70e08cf95";function Ge(e,t,r){return e=s(e),t=t,r=r,(e=e)._throwIfRoot("uploadBytesResumable"),new xe(e,new R(t),r)}function Xe(e){return e=s(e),(e=e)._throwIfRoot("getMetadata"),t=Re(e.storage,e._location,w()),e.storage.makeRequestWithTokens(t,x);var t}function $e(e,t){return qe(e=s(e),t)}function Ke(e,{instanceIdentifier:t}){var r=e.getProvider("app").getImmediate(),s=e.getProvider("auth-internal"),n=e.getProvider("app-check-internal");return new je(r,s,n,t,rt.SDK_VERSION)}rt._registerComponent(new z("storage",Ke,"PUBLIC").setMultipleInstances(!0)),rt.registerVersion(We,ze,""),rt.registerVersion(We,ze,"esm2017");class P{constructor(e,t,r){this._delegate=e,this.task=t,this.ref=r}get bytesTransferred(){return this._delegate.bytesTransferred}get metadata(){return this._delegate.metadata}get state(){return this._delegate.state}get totalBytes(){return this._delegate.totalBytes}}class Ze{constructor(e,t){this._delegate=e,this._ref=t,this.cancel=this._delegate.cancel.bind(this._delegate),this.catch=this._delegate.catch.bind(this._delegate),this.pause=this._delegate.pause.bind(this._delegate),this.resume=this._delegate.resume.bind(this._delegate)}get snapshot(){return new P(this._delegate.snapshot,this,this._ref)}then(t,e){return this._delegate.then(e=>{if(t)return t(new P(e,this,this._ref))},e)}on(e,t,r,s){let n=void 0;return t&&(n="function"==typeof t?e=>t(new P(e,this,this._ref)):{next:t.next?e=>t.next(new P(e,this,this._ref)):void 0,complete:t.complete||void 0,error:t.error||void 0}),this._delegate.on(e,n,r||void 0,s||void 0)}}class Je{constructor(e,t){this._delegate=e,this._service=t}get prefixes(){return this._delegate.prefixes.map(e=>new D(e,this._service))}get items(){return this._delegate.items.map(e=>new D(e,this._service))}get nextPageToken(){return this._delegate.nextPageToken||null}}class D{constructor(e,t){this._delegate=e,this.storage=t}get name(){return this._delegate.name}get bucket(){return this._delegate.bucket}get fullPath(){return this._delegate.fullPath}toString(){return this._delegate.toString()}child(e){var t=Be(this._delegate,e);return new D(t,this.storage)}get root(){return new D(this._delegate.root,this.storage)}get parent(){var e=this._delegate.parent;return null==e?null:new D(e,this.storage)}put(e,t){return this._throwIfRoot("put"),new Ze(Ge(this._delegate,e,t),this)}putString(e,t=b.RAW,r){this._throwIfRoot("putString");var s=oe(t,e),n=Object.assign({},r);return null==n.contentType&&null!=s.contentType&&(n.contentType=s.contentType),new Ze(new xe(this._delegate,new R(s.data,!0),n),this)}listAll(){return Ie(s(this._delegate)).then(e=>new Je(e,this.storage))}list(e){return t=this._delegate,e=e||void 0,Pe(t=s(t),e).then(e=>new Je(e,this.storage));var t}getMetadata(){return Xe(this._delegate)}updateMetadata(e){return De(s(this._delegate),e)}getDownloadURL(){return Le(s(this._delegate))}delete(){return this._throwIfRoot("delete"),Me(s(this._delegate))}_throwIfRoot(e){if(""===this._delegate._location.path)throw Q(e)}}class Ye{constructor(e,t){this.app=e,this._delegate=t}get maxOperationRetryTime(){return this._delegate.maxOperationRetryTime}get maxUploadRetryTime(){return this._delegate.maxUploadRetryTime}ref(e){if(Qe(e))throw h("ref() expected a child path but got a URL, use refFromURL instead.");return new D($e(this._delegate,e),this)}refFromURL(e){if(!Qe(e))throw h("refFromURL() expected a full URL but got a child path, use ref() instead.");try{_.makeFromUrl(e,this._delegate.host)}catch(e){throw h("refFromUrl() expected a valid full URL but got an invalid one.")}return new D($e(this._delegate,e),this)}setMaxUploadRetryTime(e){this._delegate.maxUploadRetryTime=e}setMaxOperationRetryTime(e){this._delegate.maxOperationRetryTime=e}useEmulator(e,t,r={}){var s;[e,t,r,s={}]=[this._delegate,e,t,r],He(e,t,r,s)}}function Qe(e){return/^[A-Za-z]+:\/\//.test(e)}function et(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),s=e.getProvider("storage").getImmediate({identifier:t});return new Ye(r,s)}e=M.default,$={TaskState:t,TaskEvent:Se,StringFormat:b,Storage:Ye,Reference:D},e.INTERNAL.registerComponent(new z("storage-compat",et,"PUBLIC").setServiceProps($).setMultipleInstances(!0)),e.registerVersion("@firebase/storage-compat","0.3.16-canary.70e08cf95")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-storage-compat.js - be sure to load firebase-app.js first.")}});
`+this.customData.serverResponse:this.message=this._baseMessage}}var f,i,e,$;function n(e){return"storage/"+e}function o(){return new p(f.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function K(){return new p(f.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again.")}function Z(){return new p(f.CANCELED,"User canceled the upload/download.")}function J(){return new p(f.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function h(e){return new p(f.INVALID_ARGUMENT,e)}function Y(){return new p(f.APP_DELETED,"The Firebase app was deleted.")}function Q(e){return new p(f.INVALID_ROOT_OPERATION,"The operation '"+e+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}function l(e,t){return new p(f.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function u(e){throw new p(f.INTERNAL_ERROR,"Internal error: "+e)}(e=f=f||{}).UNKNOWN="unknown",e.OBJECT_NOT_FOUND="object-not-found",e.BUCKET_NOT_FOUND="bucket-not-found",e.PROJECT_NOT_FOUND="project-not-found",e.QUOTA_EXCEEDED="quota-exceeded",e.UNAUTHENTICATED="unauthenticated",e.UNAUTHORIZED="unauthorized",e.UNAUTHORIZED_APP="unauthorized-app",e.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",e.INVALID_CHECKSUM="invalid-checksum",e.CANCELED="canceled",e.INVALID_EVENT_NAME="invalid-event-name",e.INVALID_URL="invalid-url",e.INVALID_DEFAULT_BUCKET="invalid-default-bucket",e.NO_DEFAULT_BUCKET="no-default-bucket",e.CANNOT_SLICE_BLOB="cannot-slice-blob",e.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",e.NO_DOWNLOAD_URL="no-download-url",e.INVALID_ARGUMENT="invalid-argument",e.INVALID_ARGUMENT_COUNT="invalid-argument-count",e.APP_DELETED="app-deleted",e.INVALID_ROOT_OPERATION="invalid-root-operation",e.INVALID_FORMAT="invalid-format",e.INTERNAL_ERROR="internal-error",e.UNSUPPORTED_ENVIRONMENT="unsupported-environment";class _{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){var e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){return"/b/"+encodeURIComponent(this.bucket)+"/o"}static makeFromBucketSpec(t,e){let r;try{r=_.makeFromUrl(t,e)}catch(e){return new _(t,"")}if(""===r.path)return r;throw e=t,new p(f.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+e+"'.")}static makeFromUrl(e,t){let r=null;var s="([A-Za-z0-9.\\-_]+)";var n=new RegExp("^gs://"+s+"(/(.*))?$","i");function i(e){e.path_=decodeURIComponent(e.path)}var a=t.replace(/[.]/g,"\\."),a=new RegExp(`^https?://${a}/v[A-Za-z0-9_]+/b/${s}/o(/([^?#]*).*)?$`,"i"),o=t===G?"(?:storage.googleapis.com|storage.cloud.google.com)":t,h=[{regex:n,indices:{bucket:1,path:3},postModify:function(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:a,indices:{bucket:1,path:3},postModify:i},{regex:new RegExp(`^https?://${o}/${s}/([^?#]*)`,"i"),indices:{bucket:1,path:2},postModify:i}];for(let d=0;d<h.length;d++){var l=h[d],u=l.regex.exec(e);if(u){var c=u[l.indices.bucket];let e=u[l.indices.path];e=e||"",r=new _(c,e),l.postModify(r);break}}if(null==r)throw t=e,new p(f.INVALID_URL,"Invalid URL '"+t+"'.");return r}}class ee{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=0){}}function c(e){return"string"==typeof e||e instanceof String}function te(e){return d()&&e instanceof Blob}function d(){return"undefined"!=typeof Blob}function g(e,t,r,s){if(s<t)throw h(`Invalid value for '${e}'. Expected ${t} or greater.`);if(r<s)throw h(`Invalid value for '${e}'. Expected ${r} or less.`)}function m(e,t,r){let s=null==r?"https://"+t:t;return`${r}://${s}/v0`+e}function re(e){var t,r,s=encodeURIComponent;let n="?";for(t in e)e.hasOwnProperty(t)&&(r=s(t)+"="+s(e[t]),n=n+r+"&");return n=n.slice(0,-1)}function se(e,t){var r=500<=e&&e<600,s=-1!==[408,429].indexOf(e),n=-1!==t.indexOf(e);return r||s||n}(e=i=i||{})[e.NO_ERROR=0]="NO_ERROR",e[e.NETWORK_ERROR=1]="NETWORK_ERROR",e[e.ABORT=2]="ABORT";class ne{constructor(e,t,r,s,n,i,a,o,h,l,u,c=!0){this.url_=e,this.method_=t,this.headers_=r,this.body_=s,this.successCodes_=n,this.additionalRetryCodes_=i,this.callback_=a,this.errorCallback_=o,this.timeout_=h,this.progressCallback_=l,this.connectionFactory_=u,this.retry=c,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()})}start_(){var e=(n,e)=>{if(e)n(!1,new v(!1,null,!0));else{let r=this.connectionFactory_(),s=(this.pendingConnection_=r,e=>{var t=e.loaded,r=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,r)});null!==this.progressCallback_&&r.addUploadProgressListener(s),r.send(this.url_,this.method_,this.body_,this.headers_).then(()=>{null!==this.progressCallback_&&r.removeUploadProgressListener(s),this.pendingConnection_=null;var e=r.getErrorCode()===i.NO_ERROR,t=r.getStatus();!e||se(t,this.additionalRetryCodes_)&&this.retry?(e=r.getErrorCode()===i.ABORT,n(!1,new v(!1,null,e))):(e=-1!==this.successCodes_.indexOf(t),n(!0,new v(e,r)))})}},t=(e,t)=>{var r=this.resolve_,s=this.reject_,n=t.connection;if(t.wasSuccessCode)try{var i=this.callback_(n,n.getResponse());void 0!==i?r(i):r()}catch(e){s(e)}else null!==n?((i=o()).serverResponse=n.getErrorText(),this.errorCallback_?s(this.errorCallback_(n,i)):s(i)):t.canceled?s((this.appDelete_?Y:Z)()):s(K())};this.canceled_?t(0,new v(!1,null,!0)):this.backoffId_=((t,r,e)=>{let s=1,n=null,i=null,a=!1,o=0;function h(){return 2===o}let l=!1;function u(...e){l||(l=!0,r.apply(null,e))}function c(e){n=setTimeout(()=>{n=null,t(_,h())},e)}function d(){i&&clearTimeout(i)}function _(e,...t){if(l)d();else if(e)d(),u.call(null,e,...t);else if(h()||a)d(),u.call(null,e,...t);else{s<64&&(s*=2);let e;c(e=1===o?(o=2,0):1e3*(s+Math.random()))}}let p=!1;function f(e){p||(p=!0,d(),l)||(null!==n?(e||(o=2),clearTimeout(n),c(0)):e||(o=1))}return c(0),i=setTimeout(()=>{f(a=!0)},e),f})(e,t,this.timeout_)}getPromise(){return this.promise_}cancel(e){this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_&&(0,this.backoffId_)(!1),null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class v{constructor(e,t,r){this.wasSuccessCode=e,this.connection=t,this.canceled=!!r}}function ie(...t){var r="undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0;if(void 0!==r){var s=new r;for(let e=0;e<t.length;e++)s.append(t[e]);return s.getBlob()}if(d())return new Blob(t);throw new p(f.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}function ae(e){if("undefined"==typeof atob)throw new p(f.UNSUPPORTED_ENVIRONMENT,"base-64 is missing. Make sure to install the required polyfills. See https://firebase.google.com/docs/web/environments-js-sdk#polyfills for more information.");return atob(e)}let b={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class T{constructor(e,t){this.data=e,this.contentType=t||null}}function oe(e,t){switch(e){case b.RAW:return new T(he(t));case b.BASE64:case b.BASE64URL:return new T(le(e,t));case b.DATA_URL:return new T((r=t,(s=new ue(r)).base64?le(b.BASE64,s.rest):(e=>{let t;try{t=decodeURIComponent(e)}catch(e){throw l(b.DATA_URL,"Malformed data URL.")}return he(t)})(s.rest)),(r=t,new ue(r).contentType))}var r,s;throw o()}function he(t){var r,s,n=[];for(let i=0;i<t.length;i++){let e=t.charCodeAt(i);e<=127?n.push(e):e<=2047?n.push(192|e>>6,128|63&e):55296==(64512&e)?i<t.length-1&&56320==(64512&t.charCodeAt(i+1))?(r=e,s=t.charCodeAt(++i),e=65536|(1023&r)<<10|1023&s,n.push(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)):n.push(239,191,189):56320==(64512&e)?n.push(239,191,189):n.push(224|e>>12,128|e>>6&63,128|63&e)}return new Uint8Array(n)}function le(t,e){switch(t){case b.BASE64:var r=-1!==e.indexOf("-"),s=-1!==e.indexOf("_");if(r||s)throw l(t,"Invalid character '"+(r?"-":"_")+"' found: is it base64url encoded?");break;case b.BASE64URL:s=-1!==e.indexOf("+"),r=-1!==e.indexOf("/");if(s||r)throw l(t,"Invalid character '"+(s?"+":"/")+"' found: is it base64 encoded?");e=e.replace(/-/g,"+").replace(/_/g,"/")}let n;try{n=ae(e)}catch(e){if(e.message.includes("polyfill"))throw e;throw l(t,"Invalid character found")}var i=new Uint8Array(n.length);for(let a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return i}class ue{constructor(e){this.base64=!1,this.contentType=null;var t=e.match(/^data:([^,]+)?,/);if(null===t)throw l(b.DATA_URL,"Must be formatted 'data:[<mediatype>][;base64],<data>");var r,s,t=t[1]||null;null!=t&&(this.base64=(s=";base64",(r=t).length>=s.length&&r.substring(r.length-s.length)===s),this.contentType=this.base64?t.substring(0,t.length-";base64".length):t),this.rest=e.substring(e.indexOf(",")+1)}}class R{constructor(e,t){let r=0,s="";te(e)?(this.data_=e,r=e.size,s=e.type):e instanceof ArrayBuffer?(t?this.data_=new Uint8Array(e):(this.data_=new Uint8Array(e.byteLength),this.data_.set(new Uint8Array(e))),r=this.data_.length):e instanceof Uint8Array&&(t?this.data_=e:(this.data_=new Uint8Array(e.length),this.data_.set(e)),r=e.length),this.size_=r,this.type_=s}size(){return this.size_}type(){return this.type_}slice(e,t){var r,s,n,i;return te(this.data_)?(r=this.data_,n=e,i=t,null===(r=(s=r).webkitSlice?s.webkitSlice(n,i):s.mozSlice?s.mozSlice(n,i):s.slice?s.slice(n,i):null)?null:new R(r)):(r=new Uint8Array(this.data_.buffer,e,t-e),new R(r,!0))}static getBlob(...e){if(d())return n=e.map(e=>e instanceof R?e.data_:e),new R(ie.apply(null,n));{var n=e.map(e=>c(e)?oe(b.RAW,e).data:e.data_);let t=0,r=(n.forEach(e=>{t+=e.byteLength}),new Uint8Array(t)),s=0;return n.forEach(e=>{for(let t=0;t<e.length;t++)r[s++]=e[t]}),new R(r,!0)}}uploadData(){return this.data_}}function y(e){let t;try{t=JSON.parse(e)}catch(e){return null}return"object"!=typeof(e=t)||Array.isArray(e)?null:t}function ce(e){var t=e.lastIndexOf("/",e.length-2);return-1===t?e:e.slice(t+1)}function de(e,t){return t}class r{constructor(e,t,r,s){this.server=e,this.local=t||e,this.writable=!!r,this.xform=s||de}}let E=null;function w(){var e,t;return E||((e=[]).push(new r("bucket")),e.push(new r("generation")),e.push(new r("metageneration")),e.push(new r("name","fullPath",!0)),(t=new r("name")).xform=function(e,t){return!c(t=t)||t.length<2?t:ce(t)},e.push(t),(t=new r("size")).xform=function(e,t){return void 0!==t?Number(t):t},e.push(t),e.push(new r("timeCreated")),e.push(new r("updated")),e.push(new r("md5Hash",null,!0)),e.push(new r("cacheControl",null,!0)),e.push(new r("contentDisposition",null,!0)),e.push(new r("contentEncoding",null,!0)),e.push(new r("contentLanguage",null,!0)),e.push(new r("contentType",null,!0)),e.push(new r("metadata","customMetadata",!0)),E=e),E}function _e(r,s){Object.defineProperty(r,"ref",{get:function(){var e=r.bucket,t=r.fullPath,e=new _(e,t);return s._makeStorageReference(e)}})}function pe(e,t,r){var s=y(t);if(null===s)return null;var t=e,n=s,i=r,a={type:"file"},o=i.length;for(let l=0;l<o;l++){var h=i[l];a[h.local]=h.xform(a,n[h.server])}return _e(a,t),a}function fe(e,t){var r={},s=t.length;for(let i=0;i<s;i++){var n=t[i];n.writable&&(r[n.server]=e[n.local])}return JSON.stringify(r)}let ge="prefixes",me="items";function ve(e,t,r){var s=y(r);if(null===s)return null;var n=e,i=t,r=s,a={prefixes:[],items:[],nextPageToken:r.nextPageToken};if(r[ge])for(var o of r[ge]){o=o.replace(/\/$/,""),o=n._makeStorageReference(new _(i,o));a.prefixes.push(o)}if(r[me])for(var h of r[me]){h=n._makeStorageReference(new _(i,h.name));a.items.push(h)}return a}class k{constructor(e,t,r,s){this.url=e,this.method=t,this.handler=r,this.timeout=s,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}function A(e){if(!e)throw o()}function C(s,n){return function(e,t){var r=pe(s,t,n);return A(null!==r),r}}function be(s,n){return function(e,t){var r=ve(s,n,t);return A(null!==r),r}}function Te(o,s){return function(e,t){var r=pe(o,t,s);A(null!==r);{var n=r,i=o.host,a=o._protocol;if(null===(r=y(t)))return null;if(!c(r.downloadTokens))return null;if(0===(r=r.downloadTokens).length)return null;let s=encodeURIComponent;return r.split(",").map(e=>{var t=n.bucket,r=n.fullPath;return m("/b/"+s(t)+"/o/"+s(r),i,a)+re({alt:"media",token:e})})[0]}}}function S(n){return function(e,t){let r;var s;return(r=401===e.getStatus()?e.getErrorText().includes("Firebase App Check token is invalid")?new p(f.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project."):new p(f.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again."):402===e.getStatus()?(s=n.bucket,new p(f.QUOTA_EXCEEDED,"Quota for bucket '"+s+"' exceeded, please view quota on https://firebase.google.com/pricing/.")):403===e.getStatus()?(s=n.path,new p(f.UNAUTHORIZED,"User does not have permission to access '"+s+"'.")):t).status=e.getStatus(),r.serverResponse=t.serverResponse,r}}function O(s){let n=S(s);return function(e,t){let r=n(e,t);return(r=404===e.getStatus()?(e=s.path,new p(f.OBJECT_NOT_FOUND,"Object '"+e+"' does not exist.")):r).serverResponse=t.serverResponse,r}}function Re(e,t,r){var s=m(t.fullServerUrl(),e.host,e._protocol),n=e.maxOperationRetryTime,s=new k(s,"GET",C(e,r),n);return s.errorHandler=O(t),s}function ye(e,t,r){var s=Object.assign({},r);return s.fullPath=e.path,s.size=t.size(),s.contentType||(s.contentType=(r=t,(e=null)&&e.contentType||r&&r.type()||"application/octet-stream")),s}function Ee(e,t,r,s,n){var i=t.bucketOnlyServerUrl(),a={"X-Goog-Upload-Protocol":"multipart"};var o=(()=>{let e="";for(let t=0;t<2;t++)e+=Math.random().toString().slice(2);return e})(),h=(a["Content-Type"]="multipart/related; boundary="+o,ye(t,s,n)),l="--"+o+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+fe(h,r)+"\r\n--"+o+"\r\nContent-Type: "+h.contentType+"\r\n\r\n",o="\r\n--"+o+"--",l=R.getBlob(l,s,o);if(null===l)throw J();o={name:h.fullPath},h=m(i,e.host,e._protocol),i=e.maxUploadRetryTime,h=new k(h,"POST",C(e,r),i);return h.urlParams=o,h.headers=a,h.body=l.uploadData(),h.errorHandler=S(t),h}class U{constructor(e,t,r,s){this.current=e,this.total=t,this.finalized=!!r,this.metadata=s||null}}function we(e,t){let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){A(!1)}return A(!!r&&-1!==(t||["active"]).indexOf(r)),r}function ke(e,t,r,s,n){var i=t.bucketOnlyServerUrl(),a=ye(t,s,n),o={name:a.fullPath},i=m(i,e.host,e._protocol),h={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":""+s.size(),"X-Goog-Upload-Header-Content-Type":a.contentType,"Content-Type":"application/json; charset=utf-8"},a=fe(a,r),l=e.maxUploadRetryTime;i=new k(i,"POST",function(e){we(e);let t;try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){A(!1)}return A(c(t)),t},l);return i.urlParams=o,i.headers=h,i.body=a,i.errorHandler=S(t),i}function Ae(e,t,r,n){var s=e.maxUploadRetryTime,s=new k(r,"POST",function(e){var t=we(e,["active","final"]);let r=null;try{r=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){A(!1)}r||A(!1);var s=Number(r);return A(!isNaN(s)),new U(s,n.size(),"final"===t)},s);return s.headers={"X-Goog-Upload-Command":"query"},s.errorHandler=S(t),s}function Ce(e,a,t,o,r,h,s,n){let l=new U(0,0);if(s?(l.current=s.current,l.total=s.total):(l.current=0,l.total=o.size()),o.size()!==l.total)throw new p(f.SERVER_FILE_WRONG_SIZE,"Server recorded incorrect upload file size, please retry the upload.");var i=l.total-l.current;let u=i;0<r&&(u=Math.min(u,r));var c=l.current,d=c+u;let _="";i={"X-Goog-Upload-Command":_=0===u?"finalize":i===u?"upload, finalize":"upload","X-Goog-Upload-Offset":""+l.current},c=o.slice(c,d);if(null===c)throw J();d=a.maxUploadRetryTime,d=new k(t,"POST",function(e,t){var r=we(e,["active","final"]),s=l.current+u,n=o.size();let i;return i="final"===r?C(a,h)(e,t):null,new U(s,n,"final"===r,i)},d);return d.headers=i,d.body=c.uploadData(),d.progressCallback=n||null,d.errorHandler=S(e),d}let Se={STATE_CHANGED:"state_changed"},t={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function Oe(e){switch(e){case"running":case"pausing":case"canceling":return t.RUNNING;case"paused":return t.PAUSED;case"success":return t.SUCCESS;case"canceled":return t.CANCELED;default:return t.ERROR}}class Ue{constructor(e,t,r){var s;"function"==typeof e||null!=t||null!=r?(this.next=e,this.error=null!=t?t:void 0,this.complete=null!=r?r:void 0):(this.next=(s=e).next,this.error=s.error,this.complete=s.complete)}}function N(t){return(...e)=>{Promise.resolve().then(()=>t(...e))}}class Ne extends class{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=i.NO_ERROR,this.sendPromise_=new Promise(e=>{this.xhr_.addEventListener("abort",()=>{this.errorCode_=i.ABORT,e()}),this.xhr_.addEventListener("error",()=>{this.errorCode_=i.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,r,s){if(this.sent_)throw u("cannot .send() more than once");if(this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==s)for(var n in s)s.hasOwnProperty(n)&&this.xhr_.setRequestHeader(n,s[n].toString());return void 0!==r?this.xhr_.send(r):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(this.sent_)return this.errorCode_;throw u("cannot .getErrorCode() before sending")}getStatus(){if(!this.sent_)throw u("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return-1}}getResponse(){if(this.sent_)return this.xhr_.response;throw u("cannot .getResponse() before sending")}getErrorText(){if(this.sent_)return this.xhr_.statusText;throw u("cannot .getErrorText() before sending")}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}{initXhr(){this.xhr_.responseType="text"}}function x(){return new Ne}class xe{isExponentialBackoffExpired(){return this.sleepTime>this.maxSleepTime}constructor(e,t,r=null){this._transferred=0,this._needToFetchStatus=!1,this._needToFetchMetadata=!1,this._observers=[],this._error=void 0,this._uploadUrl=void 0,this._request=void 0,this._chunkMultiplier=1,this._resolve=void 0,this._reject=void 0,this._ref=e,this._blob=t,this._metadata=r,this._mappings=w(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals(f.CANCELED))this._needToFetchStatus=!0,this.completeTransitions_();else{var t=this.isExponentialBackoffExpired();if(se(e.status,[])){if(!t)return this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,void this.completeTransitions_();e=K()}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals(f.CANCELED)?this.completeTransitions_():(this._error=e,this._transition("error"))},this.sleepTime=0,this.maxSleepTime=this._ref.storage.maxUploadRetryTime,this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t,this._start()}),this._promise.then(null,()=>{})}_makeProgressCallback(){let t=this._transferred;return e=>this._updateProgress(t+e)}_shouldDoResumable(e){return 262144<e.size()}_start(){"running"===this._state&&void 0===this._request&&(this._resumable?void 0===this._uploadUrl?this._createResumable():this._needToFetchStatus?this._fetchStatus():this._needToFetchMetadata?this._fetchMetadata():this.pendingTimeout=setTimeout(()=>{this.pendingTimeout=void 0,this._continueUpload()},this.sleepTime):this._oneShotUpload())}_resolveToken(r){Promise.all([this._ref.storage._getAuthToken(),this._ref.storage._getAppCheckToken()]).then(([e,t])=>{switch(this._state){case"running":r(e,t);break;case"canceling":this._transition("canceled");break;case"pausing":this._transition("paused")}})}_createResumable(){this._resolveToken((e,t)=>{var r=ke(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,x,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._uploadUrl=e,this._needToFetchStatus=!1,this.completeTransitions_()},this._errorHandler)})}_fetchStatus(){let s=this._uploadUrl;this._resolveToken((e,t)=>{var r=Ae(this._ref.storage,this._ref._location,s,this._blob),r=this._ref.storage._makeRequest(r,x,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._updateProgress(e.current),this._needToFetchStatus=!1,e.finalized&&(this._needToFetchMetadata=!0),this.completeTransitions_()},this._errorHandler)})}_continueUpload(){let n=262144*this._chunkMultiplier,i=new U(this._transferred,this._blob.size()),a=this._uploadUrl;this._resolveToken((e,t)=>{let r;try{r=Ce(this._ref._location,this._ref.storage,a,this._blob,n,this._mappings,i,this._makeProgressCallback())}catch(e){return this._error=e,void this._transition("error")}var s=this._ref.storage._makeRequest(r,x,e,t,!1);(this._request=s).getPromise().then(e=>{this._increaseMultiplier(),this._request=void 0,this._updateProgress(e.current),e.finalized?(this._metadata=e.metadata,this._transition("success")):this.completeTransitions_()},this._errorHandler)})}_increaseMultiplier(){2*(262144*this._chunkMultiplier)<33554432&&(this._chunkMultiplier*=2)}_fetchMetadata(){this._resolveToken((e,t)=>{var r=Re(this._ref.storage,this._ref._location,this._mappings),r=this._ref.storage._makeRequest(r,x,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._metadata=e,this._transition("success")},this._metadataErrorHandler)})}_oneShotUpload(){this._resolveToken((e,t)=>{var r=Ee(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(r,x,e,t);(this._request=r).getPromise().then(e=>{this._request=void 0,this._metadata=e,this._updateProgress(this._blob.size()),this._transition("success")},this._errorHandler)})}_updateProgress(e){var t=this._transferred;this._transferred=e,this._transferred!==t&&this._notifyObservers()}_transition(e){if(this._state!==e)switch(e){case"canceling":case"pausing":this._state=e,void 0!==this._request?this._request.cancel():this.pendingTimeout&&(clearTimeout(this.pendingTimeout),this.pendingTimeout=void 0,this.completeTransitions_());break;case"running":var t="paused"===this._state;this._state=e,t&&(this._notifyObservers(),this._start());break;case"paused":this._state=e,this._notifyObservers();break;case"canceled":this._error=Z(),this._state=e,this._notifyObservers();break;case"error":case"success":this._state=e,this._notifyObservers()}}completeTransitions_(){switch(this._state){case"pausing":this._transition("paused");break;case"canceling":this._transition("canceled");break;case"running":this._start()}}get snapshot(){var e=Oe(this._state);return{bytesTransferred:this._transferred,totalBytes:this._blob.size(),state:e,metadata:this._metadata,task:this,ref:this._ref}}on(e,t,r,s){let n=new Ue(t||void 0,r||void 0,s||void 0);return this._addObserver(n),()=>{this._removeObserver(n)}}then(e,t){return this._promise.then(e,t)}catch(e){return this.then(null,e)}_addObserver(e){this._observers.push(e),this._notifyObserver(e)}_removeObserver(e){var t=this._observers.indexOf(e);-1!==t&&this._observers.splice(t,1)}_notifyObservers(){this._finishPromise(),this._observers.slice().forEach(e=>{this._notifyObserver(e)})}_finishPromise(){if(void 0!==this._resolve){let e=!0;switch(Oe(this._state)){case t.SUCCESS:N(this._resolve.bind(null,this.snapshot))();break;case t.CANCELED:case t.ERROR:N(this._reject.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(Oe(this._state)){case t.RUNNING:case t.PAUSED:e.next&&N(e.next.bind(e,this.snapshot))();break;case t.SUCCESS:e.complete&&N(e.complete.bind(e))();break;case t.CANCELED:case t.ERROR:default:e.error&&N(e.error.bind(e,this._error))()}}resume(){var e="paused"===this._state||"pausing"===this._state;return e&&this._transition("running"),e}pause(){var e="running"===this._state;return e&&this._transition("pausing"),e}cancel(){var e="running"===this._state||"pausing"===this._state;return e&&this._transition("canceling"),e}}class I{constructor(e,t){this._service=e,t instanceof _?this._location=t:this._location=_.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new I(e,t)}get root(){var e=new _(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return ce(this._location.path)}get storage(){return this._service}get parent(){var e,t,r=0===(e=this._location.path).length?null:-1===(r=e.lastIndexOf("/"))?"":e.slice(0,r);return null===r?null:(t=new _(this._location.bucket,r),new I(this._service,t))}_throwIfRoot(e){if(""===this._location.path)throw Q(e)}}function Ie(e){let t={prefixes:[],items:[]};return async function e(t,r,s){let n={pageToken:s};let i=await Pe(t,n);r.prefixes.push(...i.prefixes);r.items.push(...i.items);null!=i.nextPageToken&&await e(t,r,i.nextPageToken)}(e,t).then(()=>t)}function Pe(e,t){null!=t&&"number"==typeof t.maxResults&&g("options.maxResults",1,1e3,t.maxResults);var r,s,n,i,a,o=t||{},h=(t=e.storage,r=e._location,s="/",n=o.pageToken,i=o.maxResults,o={},r.isRoot?o.prefix="":o.prefix=r.path+"/",s&&0<s.length&&(o.delimiter=s),n&&(o.pageToken=n),i&&(o.maxResults=i),a=m(a=r.bucketOnlyServerUrl(),t.host,t._protocol),h=t.maxOperationRetryTime,(a=new k(a,"GET",be(t,r.bucket),h)).urlParams=o,a.errorHandler=S(r),a);return e.storage.makeRequestWithTokens(h,x)}function De(e,t){e._throwIfRoot("updateMetadata");r=e.storage,s=e._location,t=t,n=w(),i=m(s.fullServerUrl(),r.host,r._protocol),a=fe(t,n),o=r.maxOperationRetryTime,(i=new k(i,"PATCH",C(r,n),o)).headers={"Content-Type":"application/json; charset=utf-8"},i.body=a,i.errorHandler=O(s);var r,s,n,i,a,o=i;return e.storage.makeRequestWithTokens(o,x)}function Le(e){e._throwIfRoot("getDownloadURL");t=e.storage,r=e._location,s=w(),n=m(r.fullServerUrl(),t.host,t._protocol),i=t.maxOperationRetryTime,(n=new k(n,"GET",Te(t,s),i)).errorHandler=O(r);var t,r,s,n,i=n;return e.storage.makeRequestWithTokens(i,x).then(e=>{if(null===e)throw new p(f.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}function Me(e){e._throwIfRoot("deleteObject");t=e.storage,s=m((r=e._location).fullServerUrl(),t.host,t._protocol),n=t.maxOperationRetryTime,(s=new k(s,"DELETE",function(e,t){},n)).successCodes=[200,204],s.errorHandler=O(r);var t,r,s,n=s;return e.storage.makeRequestWithTokens(n,x)}function Be(e,t){r=e._location.path,s=t.split("/").filter(e=>0<e.length).join("/");var r,s=0===r.length?s:r+"/"+s,s=new _(e._location.bucket,s);return new I(e.storage,s)}function Fe(e,t){if(e instanceof je){var r=e;if(null==r._bucket)throw new p(f.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+X+"' property when initializing the app?");r=new I(r,r._bucket);return null!=t?Fe(r,t):r}return void 0!==t?Be(e,t):e}function qe(e,t){if(t&&/^[A-Za-z]+:\/\//.test(t)){if(e instanceof je)return r=e,s=t,new I(r,s);throw h("To use ref(service, url), the first argument must be a Storage instance.")}return Fe(e,t);var r,s}function Ve(e,t){var r=null==t?void 0:t[X];return null==r?null:_.makeFromBucketSpec(r,e)}function He(e,t,r,s={}){e.host=t+":"+r,e._protocol="http";var n=s.mockUserToken;n&&(e._overrideAuthToken="string"==typeof n?n:((e,t)=>{if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');var r=t||"demo-project",s=e.iat||0,n=e.sub||e.user_id;if(n)return r=Object.assign({iss:"https://securetoken.google.com/"+r,aud:r,iat:s,exp:s+3600,auth_time:s,sub:n,user_id:n,firebase:{sign_in_provider:"custom",identities:{}}},e),[H(JSON.stringify({alg:"none",type:"JWT"})),H(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")})(n,e.app.options.projectId))}class je{constructor(e,t,r,s,n){this.app=e,this._authProvider=t,this._appCheckProvider=r,this._url=s,this._firebaseVersion=n,this._bucket=null,this._host=G,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,this._bucket=null!=s?_.makeFromBucketSpec(s,this._host):Ve(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=_.makeFromBucketSpec(this._url,e):this._bucket=Ve(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){g("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){g("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;var e=this._authProvider.getImmediate({optional:!0});if(e){e=await e.getToken();if(null!==e)return e.accessToken}return null}async _getAppCheckToken(){var e;return rt._isFirebaseServerApp(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:(e=this._appCheckProvider.getImmediate({optional:!0}))?(await e.getToken()).token:null}_delete(){return this._deleted||(this._deleted=!0,this._requests.forEach(e=>e.cancel()),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new I(this,e)}_makeRequest(t,r,s,n,i=!0){if(this._deleted)return new ee(Y());{[t,s,n,r,i,a,o=!0]=[t,this._appId,s,n,r,this._firebaseVersion,i],l=re(t.urlParams),l=t.url+l,u=Object.assign({},t.headers),h=u,(s=s)&&(h["X-Firebase-GMPID"]=s),h=u,null!==(s=n)&&0<s.length&&(h.Authorization="Firebase "+s),n=a,u["X-Firebase-Storage-Version"]="webjs/"+(null!=n?n:"AppManager"),h=u,null!==(s=r)&&(h["X-Firebase-AppCheck"]=s);let e=new ne(l,t.method,u,t.body,t.successCodes,t.additionalRetryCodes,t.handler,t.errorHandler,t.timeout,t.progressCallback,i,o);return this._requests.add(e),e.getPromise().then(()=>this._requests.delete(e),()=>this._requests.delete(e)),e}var a,o,h,l,u}async makeRequestWithTokens(e,t){var[r,s]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,r,s).getPromise()}}let We="@firebase/storage",ze="0.13.6-canary.84dfeca39";function Ge(e,t,r){return e=s(e),t=t,r=r,(e=e)._throwIfRoot("uploadBytesResumable"),new xe(e,new R(t),r)}function Xe(e){return e=s(e),(e=e)._throwIfRoot("getMetadata"),t=Re(e.storage,e._location,w()),e.storage.makeRequestWithTokens(t,x);var t}function $e(e,t){return qe(e=s(e),t)}function Ke(e,{instanceIdentifier:t}){var r=e.getProvider("app").getImmediate(),s=e.getProvider("auth-internal"),n=e.getProvider("app-check-internal");return new je(r,s,n,t,rt.SDK_VERSION)}rt._registerComponent(new z("storage",Ke,"PUBLIC").setMultipleInstances(!0)),rt.registerVersion(We,ze,""),rt.registerVersion(We,ze,"esm2017");class P{constructor(e,t,r){this._delegate=e,this.task=t,this.ref=r}get bytesTransferred(){return this._delegate.bytesTransferred}get metadata(){return this._delegate.metadata}get state(){return this._delegate.state}get totalBytes(){return this._delegate.totalBytes}}class Ze{constructor(e,t){this._delegate=e,this._ref=t,this.cancel=this._delegate.cancel.bind(this._delegate),this.catch=this._delegate.catch.bind(this._delegate),this.pause=this._delegate.pause.bind(this._delegate),this.resume=this._delegate.resume.bind(this._delegate)}get snapshot(){return new P(this._delegate.snapshot,this,this._ref)}then(t,e){return this._delegate.then(e=>{if(t)return t(new P(e,this,this._ref))},e)}on(e,t,r,s){let n=void 0;return t&&(n="function"==typeof t?e=>t(new P(e,this,this._ref)):{next:t.next?e=>t.next(new P(e,this,this._ref)):void 0,complete:t.complete||void 0,error:t.error||void 0}),this._delegate.on(e,n,r||void 0,s||void 0)}}class Je{constructor(e,t){this._delegate=e,this._service=t}get prefixes(){return this._delegate.prefixes.map(e=>new D(e,this._service))}get items(){return this._delegate.items.map(e=>new D(e,this._service))}get nextPageToken(){return this._delegate.nextPageToken||null}}class D{constructor(e,t){this._delegate=e,this.storage=t}get name(){return this._delegate.name}get bucket(){return this._delegate.bucket}get fullPath(){return this._delegate.fullPath}toString(){return this._delegate.toString()}child(e){var t=Be(this._delegate,e);return new D(t,this.storage)}get root(){return new D(this._delegate.root,this.storage)}get parent(){var e=this._delegate.parent;return null==e?null:new D(e,this.storage)}put(e,t){return this._throwIfRoot("put"),new Ze(Ge(this._delegate,e,t),this)}putString(e,t=b.RAW,r){this._throwIfRoot("putString");var s=oe(t,e),n=Object.assign({},r);return null==n.contentType&&null!=s.contentType&&(n.contentType=s.contentType),new Ze(new xe(this._delegate,new R(s.data,!0),n),this)}listAll(){return Ie(s(this._delegate)).then(e=>new Je(e,this.storage))}list(e){return t=this._delegate,e=e||void 0,Pe(t=s(t),e).then(e=>new Je(e,this.storage));var t}getMetadata(){return Xe(this._delegate)}updateMetadata(e){return De(s(this._delegate),e)}getDownloadURL(){return Le(s(this._delegate))}delete(){return this._throwIfRoot("delete"),Me(s(this._delegate))}_throwIfRoot(e){if(""===this._delegate._location.path)throw Q(e)}}class Ye{constructor(e,t){this.app=e,this._delegate=t}get maxOperationRetryTime(){return this._delegate.maxOperationRetryTime}get maxUploadRetryTime(){return this._delegate.maxUploadRetryTime}ref(e){if(Qe(e))throw h("ref() expected a child path but got a URL, use refFromURL instead.");return new D($e(this._delegate,e),this)}refFromURL(e){if(!Qe(e))throw h("refFromURL() expected a full URL but got a child path, use ref() instead.");try{_.makeFromUrl(e,this._delegate.host)}catch(e){throw h("refFromUrl() expected a valid full URL but got an invalid one.")}return new D($e(this._delegate,e),this)}setMaxUploadRetryTime(e){this._delegate.maxUploadRetryTime=e}setMaxOperationRetryTime(e){this._delegate.maxOperationRetryTime=e}useEmulator(e,t,r={}){var s;[e,t,r,s={}]=[this._delegate,e,t,r],He(e,t,r,s)}}function Qe(e){return/^[A-Za-z]+:\/\//.test(e)}function et(e,{instanceIdentifier:t}){var r=e.getProvider("app-compat").getImmediate(),s=e.getProvider("storage").getImmediate({identifier:t});return new Ye(r,s)}e=M.default,$={TaskState:t,TaskEvent:Se,StringFormat:b,Storage:Ye,Reference:D},e.INTERNAL.registerComponent(new z("storage-compat",et,"PUBLIC").setServiceProps($).setMultipleInstances(!0)),e.registerVersion("@firebase/storage-compat","0.3.16-canary.84dfeca39")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-storage-compat.js - be sure to load firebase-app.js first.")}});
//# sourceMappingURL=firebase-storage-compat.js.map

@@ -1,3 +0,3 @@

import{_getProvider,getApp as e,_registerComponent as t,registerVersion as n,_isFirebaseServerApp as r,SDK_VERSION as o}from"https://www.gstatic.com/firebasejs/11.3.0-canary.70e08cf95/firebase-app.js";const stringToByteArray$1=function(e){const t=[];let n=0;for(let r=0;r<e.length;r++){let o=e.charCodeAt(r);o<128?t[n++]=o:o<2048?(t[n++]=o>>6|192,t[n++]=63&o|128):55296==(64512&o)&&r+1<e.length&&56320==(64512&e.charCodeAt(r+1))?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++r)),t[n++]=o>>18|240,t[n++]=o>>12&63|128,t[n++]=o>>6&63|128,t[n++]=63&o|128):(t[n++]=o>>12|224,t[n++]=o>>6&63|128,t[n++]=63&o|128)}return t},s={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_();const n=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let t=0;t<e.length;t+=3){const o=e[t],s=t+1<e.length,i=s?e[t+1]:0,a=t+2<e.length,l=a?e[t+2]:0,c=o>>2,u=(3&o)<<4|i>>4;let h=(15&i)<<2|l>>6,d=63&l;a||(d=64,s||(h=64)),r.push(n[c],n[u],n[h],n[d])}return r.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(stringToByteArray$1(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,r=0;for(;n<e.length;){const o=e[n++];if(o<128)t[r++]=String.fromCharCode(o);else if(o>191&&o<224){const s=e[n++];t[r++]=String.fromCharCode((31&o)<<6|63&s)}else if(o>239&&o<365){const s=((7&o)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536;t[r++]=String.fromCharCode(55296+(s>>10)),t[r++]=String.fromCharCode(56320+(1023&s))}else{const s=e[n++],i=e[n++];t[r++]=String.fromCharCode((15&o)<<12|(63&s)<<6|63&i)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const n=t?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let t=0;t<e.length;){const o=n[e.charAt(t++)],s=t<e.length?n[e.charAt(t)]:0;++t;const i=t<e.length?n[e.charAt(t)]:64;++t;const a=t<e.length?n[e.charAt(t)]:64;if(++t,null==o||null==s||null==i||null==a)throw new DecodeBase64StringError;const l=o<<2|s>>4;if(r.push(l),64!==i){const e=s<<4&240|i>>2;if(r.push(e),64!==a){const e=i<<6&192|a;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 DecodeBase64StringError extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const base64urlEncodeWithoutPadding=function(e){return function(e){const t=stringToByteArray$1(e);return s.encodeByteArray(t,!0)}(e).replace(/\./g,"")};const getDefaultsFromGlobal=()=>function getGlobal(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,getDefaultsFromCookie=()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&function(e){try{return s.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null}(e[1]);return t&&JSON.parse(t)},getDefaults=()=>{try{return getDefaultsFromGlobal()||(()=>{if("undefined"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||getDefaultsFromCookie()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},getDefaultEmulatorHostnameAndPort=e=>{const t=(e=>{var t,n;return null===(n=null===(t=getDefaults())||void 0===t?void 0:t.emulatorHosts)||void 0===n?void 0:n[e]})(e);if(!t)return;const n=t.lastIndexOf(":");if(n<=0||n+1===t.length)throw new Error(`Invalid host ${t} with no separate hostname and port!`);const r=parseInt(t.substring(n+1),10);return"["===t[0]?[t.substring(1,n-1),r]:[t.substring(0,n),r]};class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},r=`${this.service}/${e}`,o=this.errors[e],s=o?function replaceTemplate(e,t){return e.replace(i,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(o,n):"Error",a=`${this.serviceName}: ${s} (${r}).`;return new FirebaseError(r,a,n)}}const i=/\{\$([^}]+)}/g;function getModularInstance(e){return e&&e._delegate?e._delegate:e}class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const a="firebasestorage.googleapis.com",l="storageBucket";class StorageError extends FirebaseError{constructor(e,t,n=0){super(prependCode(e),`Firebase Storage: ${t} (${prependCode(e)})`),this.status_=n,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,StorageError.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return prependCode(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=`${this._baseMessage}\n${this.customData.serverResponse}`:this.message=this._baseMessage}}var c,u;function prependCode(e){return"storage/"+e}function unknown(){return new StorageError(c.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function retryLimitExceeded(){return new StorageError(c.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again.")}function canceled(){return new StorageError(c.CANCELED,"User canceled the upload/download.")}function cannotSliceBlob(){return new StorageError(c.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function invalidArgument(e){return new StorageError(c.INVALID_ARGUMENT,e)}function appDeleted(){return new StorageError(c.APP_DELETED,"The Firebase app was deleted.")}function invalidRootOperation(e){return new StorageError(c.INVALID_ROOT_OPERATION,"The operation '"+e+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}function invalidFormat(e,t){return new StorageError(c.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function internalError(e){throw new StorageError(c.INTERNAL_ERROR,"Internal error: "+e)}!function(e){e.UNKNOWN="unknown",e.OBJECT_NOT_FOUND="object-not-found",e.BUCKET_NOT_FOUND="bucket-not-found",e.PROJECT_NOT_FOUND="project-not-found",e.QUOTA_EXCEEDED="quota-exceeded",e.UNAUTHENTICATED="unauthenticated",e.UNAUTHORIZED="unauthorized",e.UNAUTHORIZED_APP="unauthorized-app",e.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",e.INVALID_CHECKSUM="invalid-checksum",e.CANCELED="canceled",e.INVALID_EVENT_NAME="invalid-event-name",e.INVALID_URL="invalid-url",e.INVALID_DEFAULT_BUCKET="invalid-default-bucket",e.NO_DEFAULT_BUCKET="no-default-bucket",e.CANNOT_SLICE_BLOB="cannot-slice-blob",e.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",e.NO_DOWNLOAD_URL="no-download-url",e.INVALID_ARGUMENT="invalid-argument",e.INVALID_ARGUMENT_COUNT="invalid-argument-count",e.APP_DELETED="app-deleted",e.INVALID_ROOT_OPERATION="invalid-root-operation",e.INVALID_FORMAT="invalid-format",e.INTERNAL_ERROR="internal-error",e.UNSUPPORTED_ENVIRONMENT="unsupported-environment"}(c||(c={}));class Location{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){const e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){return"/b/"+encodeURIComponent(this.bucket)+"/o"}static makeFromBucketSpec(e,t){let n;try{n=Location.makeFromUrl(e,t)}catch(t){return new Location(e,"")}if(""===n.path)return n;throw function invalidDefaultBucket(e){return new StorageError(c.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+e+"'.")}(e)}static makeFromUrl(e,t){let n=null;const r="([A-Za-z0-9.\\-_]+)";const o=new RegExp("^gs://"+r+"(/(.*))?$","i");function httpModify(e){e.path_=decodeURIComponent(e.path)}const s=t.replace(/[.]/g,"\\."),i=[{regex:o,indices:{bucket:1,path:3},postModify:function gsModify(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:new RegExp(`^https?://${s}/v[A-Za-z0-9_]+/b/${r}/o(/([^?#]*).*)?$`,"i"),indices:{bucket:1,path:3},postModify:httpModify},{regex:new RegExp(`^https?://${t===a?"(?:storage.googleapis.com|storage.cloud.google.com)":t}/${r}/([^?#]*)`,"i"),indices:{bucket:1,path:2},postModify:httpModify}];for(let t=0;t<i.length;t++){const r=i[t],o=r.regex.exec(e);if(o){const e=o[r.indices.bucket];let t=o[r.indices.path];t||(t=""),n=new Location(e,t),r.postModify(n);break}}if(null==n)throw function invalidUrl(e){return new StorageError(c.INVALID_URL,"Invalid URL '"+e+"'.")}(e);return n}}class FailRequest{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=!1){}}function isString(e){return"string"==typeof e||e instanceof String}function isNativeBlob(e){return isNativeBlobDefined()&&e instanceof Blob}function isNativeBlobDefined(){return"undefined"!=typeof Blob}function validateNumber(e,t,n,r){if(r<t)throw invalidArgument(`Invalid value for '${e}'. Expected ${t} or greater.`);if(r>n)throw invalidArgument(`Invalid value for '${e}'. Expected ${n} or less.`)}function makeUrl(e,t,n){let r=t;return null==n&&(r=`https://${t}`),`${n}://${r}/v0${e}`}function makeQueryString(e){const t=encodeURIComponent;let n="?";for(const r in e)if(e.hasOwnProperty(r)){n=n+(t(r)+"="+t(e[r]))+"&"}return n=n.slice(0,-1),n}function isRetryStatusCode(e,t){const n=e>=500&&e<600,r=-1!==[408,429].indexOf(e),o=-1!==t.indexOf(e);return n||r||o}!function(e){e[e.NO_ERROR=0]="NO_ERROR",e[e.NETWORK_ERROR=1]="NETWORK_ERROR",e[e.ABORT=2]="ABORT"}(u||(u={}));class NetworkRequest{constructor(e,t,n,r,o,s,i,a,l,c,u,h=!0){this.url_=e,this.method_=t,this.headers_=n,this.body_=r,this.successCodes_=o,this.additionalRetryCodes_=s,this.callback_=i,this.errorCallback_=a,this.timeout_=l,this.progressCallback_=c,this.connectionFactory_=u,this.retry=h,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise(((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()}))}start_(){const doTheRequest=(e,t)=>{if(t)return void e(!1,new RequestEndStatus(!1,null,!0));const n=this.connectionFactory_();this.pendingConnection_=n;const progressListener=e=>{const t=e.loaded,n=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,n)};null!==this.progressCallback_&&n.addUploadProgressListener(progressListener),n.send(this.url_,this.method_,this.body_,this.headers_).then((()=>{null!==this.progressCallback_&&n.removeUploadProgressListener(progressListener),this.pendingConnection_=null;const t=n.getErrorCode()===u.NO_ERROR,r=n.getStatus();if(!t||isRetryStatusCode(r,this.additionalRetryCodes_)&&this.retry){const t=n.getErrorCode()===u.ABORT;return void e(!1,new RequestEndStatus(!1,null,t))}const o=-1!==this.successCodes_.indexOf(r);e(!0,new RequestEndStatus(o,n))}))},backoffDone=(e,t)=>{const n=this.resolve_,r=this.reject_,o=t.connection;if(t.wasSuccessCode)try{const e=this.callback_(o,o.getResponse());!function isJustDef(e){return void 0!==e}(e)?n():n(e)}catch(e){r(e)}else if(null!==o){const e=unknown();e.serverResponse=o.getErrorText(),this.errorCallback_?r(this.errorCallback_(o,e)):r(e)}else if(t.canceled){r(this.appDelete_?appDeleted():canceled())}else{r(retryLimitExceeded())}};this.canceled_?backoffDone(0,new RequestEndStatus(!1,null,!0)):this.backoffId_=function start(e,t,n){let r=1,o=null,s=null,i=!1,a=0;function canceled(){return 2===a}let l=!1;function triggerCallback(...e){l||(l=!0,t.apply(null,e))}function callWithDelay(t){o=setTimeout((()=>{o=null,e(responseHandler,canceled())}),t)}function clearGlobalTimeout(){s&&clearTimeout(s)}function responseHandler(e,...t){if(l)return void clearGlobalTimeout();if(e)return clearGlobalTimeout(),void triggerCallback.call(null,e,...t);if(canceled()||i)return clearGlobalTimeout(),void triggerCallback.call(null,e,...t);let n;r<64&&(r*=2),1===a?(a=2,n=0):n=1e3*(r+Math.random()),callWithDelay(n)}let c=!1;function stop(e){c||(c=!0,clearGlobalTimeout(),l||(null!==o?(e||(a=2),clearTimeout(o),callWithDelay(0)):e||(a=1)))}return callWithDelay(0),s=setTimeout((()=>{i=!0,stop(!0)}),n),stop}(doTheRequest,backoffDone,this.timeout_)}getPromise(){return this.promise_}cancel(e){this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_&&function stop(e){e(!1)}(this.backoffId_),null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class RequestEndStatus{constructor(e,t,n){this.wasSuccessCode=e,this.connection=t,this.canceled=!!n}}function getBlobBuilder(){return"undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0}function getBlob$1(...e){const t=getBlobBuilder();if(void 0!==t){const n=new t;for(let t=0;t<e.length;t++)n.append(e[t]);return n.getBlob()}if(isNativeBlobDefined())return new Blob(e);throw new StorageError(c.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}function decodeBase64(e){if("undefined"==typeof atob)throw function missingPolyFill(e){return new StorageError(c.UNSUPPORTED_ENVIRONMENT,`${e} is missing. Make sure to install the required polyfills. See https://firebase.google.com/docs/web/environments-js-sdk#polyfills for more information.`)}("base-64");return atob(e)}const h={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class StringData{constructor(e,t){this.data=e,this.contentType=t||null}}function dataFromString(e,t){switch(e){case h.RAW:return new StringData(utf8Bytes_(t));case h.BASE64:case h.BASE64URL:return new StringData(base64Bytes_(e,t));case h.DATA_URL:return new StringData(function dataURLBytes_(e){const t=new DataURLParts(e);return t.base64?base64Bytes_(h.BASE64,t.rest):function percentEncodedBytes_(e){let t;try{t=decodeURIComponent(e)}catch(e){throw invalidFormat(h.DATA_URL,"Malformed data URL.")}return utf8Bytes_(t)}(t.rest)}(t),function dataURLContentType_(e){return new DataURLParts(e).contentType}(t))}throw unknown()}function utf8Bytes_(e){const t=[];for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r<=127)t.push(r);else if(r<=2047)t.push(192|r>>6,128|63&r);else if(55296==(64512&r)){if(n<e.length-1&&56320==(64512&e.charCodeAt(n+1))){r=65536|(1023&r)<<10|1023&e.charCodeAt(++n),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r)}else t.push(239,191,189)}else 56320==(64512&r)?t.push(239,191,189):t.push(224|r>>12,128|r>>6&63,128|63&r)}return new Uint8Array(t)}function base64Bytes_(e,t){switch(e){case h.BASE64:{const n=-1!==t.indexOf("-"),r=-1!==t.indexOf("_");if(n||r){throw invalidFormat(e,"Invalid character '"+(n?"-":"_")+"' found: is it base64url encoded?")}break}case h.BASE64URL:{const n=-1!==t.indexOf("+"),r=-1!==t.indexOf("/");if(n||r){throw invalidFormat(e,"Invalid character '"+(n?"+":"/")+"' found: is it base64 encoded?")}t=t.replace(/-/g,"+").replace(/_/g,"/");break}}let n;try{n=decodeBase64(t)}catch(t){if(t.message.includes("polyfill"))throw t;throw invalidFormat(e,"Invalid character found")}const r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}class DataURLParts{constructor(e){this.base64=!1,this.contentType=null;const t=e.match(/^data:([^,]+)?,/);if(null===t)throw invalidFormat(h.DATA_URL,"Must be formatted 'data:[<mediatype>][;base64],<data>");const n=t[1]||null;null!=n&&(this.base64=function endsWith(e,t){if(!(e.length>=t.length))return!1;return e.substring(e.length-t.length)===t}(n,";base64"),this.contentType=this.base64?n.substring(0,n.length-7):n),this.rest=e.substring(e.indexOf(",")+1)}}class FbsBlob{constructor(e,t){let n=0,r="";isNativeBlob(e)?(this.data_=e,n=e.size,r=e.type):e instanceof ArrayBuffer?(t?this.data_=new Uint8Array(e):(this.data_=new Uint8Array(e.byteLength),this.data_.set(new Uint8Array(e))),n=this.data_.length):e instanceof Uint8Array&&(t?this.data_=e:(this.data_=new Uint8Array(e.length),this.data_.set(e)),n=e.length),this.size_=n,this.type_=r}size(){return this.size_}type(){return this.type_}slice(e,t){if(isNativeBlob(this.data_)){const n=function sliceBlob(e,t,n){return e.webkitSlice?e.webkitSlice(t,n):e.mozSlice?e.mozSlice(t,n):e.slice?e.slice(t,n):null}(this.data_,e,t);return null===n?null:new FbsBlob(n)}{const n=new Uint8Array(this.data_.buffer,e,t-e);return new FbsBlob(n,!0)}}static getBlob(...e){if(isNativeBlobDefined()){const t=e.map((e=>e instanceof FbsBlob?e.data_:e));return new FbsBlob(getBlob$1.apply(null,t))}{const t=e.map((e=>isString(e)?dataFromString(h.RAW,e).data:e.data_));let n=0;t.forEach((e=>{n+=e.byteLength}));const r=new Uint8Array(n);let o=0;return t.forEach((e=>{for(let t=0;t<e.length;t++)r[o++]=e[t]})),new FbsBlob(r,!0)}}uploadData(){return this.data_}}function jsonObjectOrNull(e){let t;try{t=JSON.parse(e)}catch(e){return null}return function isNonArrayObject(e){return"object"==typeof e&&!Array.isArray(e)}(t)?t:null}function lastComponent(e){const t=e.lastIndexOf("/",e.length-2);return-1===t?e:e.slice(t+1)}function noXform_(e,t){return t}class Mapping{constructor(e,t,n,r){this.server=e,this.local=t||e,this.writable=!!n,this.xform=r||noXform_}}let d=null;function getMappings(){if(d)return d;const e=[];e.push(new Mapping("bucket")),e.push(new Mapping("generation")),e.push(new Mapping("metageneration")),e.push(new Mapping("name","fullPath",!0));const t=new Mapping("name");t.xform=function mappingsXformPath(e,t){return function xformPath(e){return!isString(e)||e.length<2?e:lastComponent(e)}(t)},e.push(t);const n=new Mapping("size");return n.xform=function xformSize(e,t){return void 0!==t?Number(t):t},e.push(n),e.push(new Mapping("timeCreated")),e.push(new Mapping("updated")),e.push(new Mapping("md5Hash",null,!0)),e.push(new Mapping("cacheControl",null,!0)),e.push(new Mapping("contentDisposition",null,!0)),e.push(new Mapping("contentEncoding",null,!0)),e.push(new Mapping("contentLanguage",null,!0)),e.push(new Mapping("contentType",null,!0)),e.push(new Mapping("metadata","customMetadata",!0)),d=e,d}function fromResource(e,t,n){const r={type:"file"},o=n.length;for(let e=0;e<o;e++){const o=n[e];r[o.local]=o.xform(r,t[o.server])}return function addRef(e,t){Object.defineProperty(e,"ref",{get:function generateRef(){const n=e.bucket,r=e.fullPath,o=new Location(n,r);return t._makeStorageReference(o)}})}(r,e),r}function fromResourceString(e,t,n){const r=jsonObjectOrNull(t);if(null===r)return null;return fromResource(e,r,n)}function toResourceString(e,t){const n={},r=t.length;for(let o=0;o<r;o++){const r=t[o];r.writable&&(n[r.server]=e[r.local])}return JSON.stringify(n)}const p="prefixes",_="items";function fromResponseString(e,t,n){const r=jsonObjectOrNull(n);if(null===r)return null;return function fromBackendResponse(e,t,n){const r={prefixes:[],items:[],nextPageToken:n.nextPageToken};if(n[p])for(const o of n[p]){const n=o.replace(/\/$/,""),s=e._makeStorageReference(new Location(t,n));r.prefixes.push(s)}if(n[_])for(const o of n[_]){const n=e._makeStorageReference(new Location(t,o.name));r.items.push(n)}return r}(e,t,r)}class RequestInfo{constructor(e,t,n,r){this.url=e,this.method=t,this.handler=n,this.timeout=r,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}function handlerCheck(e){if(!e)throw unknown()}function metadataHandler(e,t){return function handler(n,r){const o=fromResourceString(e,r,t);return handlerCheck(null!==o),o}}function downloadUrlHandler(e,t){return function handler(n,r){const o=fromResourceString(e,r,t);return handlerCheck(null!==o),function downloadUrlFromResourceString(e,t,n,r){const o=jsonObjectOrNull(t);if(null===o)return null;if(!isString(o.downloadTokens))return null;const s=o.downloadTokens;if(0===s.length)return null;const i=encodeURIComponent;return s.split(",").map((t=>{const o=e.bucket,s=e.fullPath;return makeUrl("/b/"+i(o)+"/o/"+i(s),n,r)+makeQueryString({alt:"media",token:t})}))[0]}(o,r,e.host,e._protocol)}}function sharedErrorHandler(e){return function errorHandler(t,n){let r;return r=401===t.getStatus()?t.getErrorText().includes("Firebase App Check token is invalid")?function unauthorizedApp(){return new StorageError(c.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project.")}():function unauthenticated(){return new StorageError(c.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again.")}():402===t.getStatus()?function quotaExceeded(e){return new StorageError(c.QUOTA_EXCEEDED,"Quota for bucket '"+e+"' exceeded, please view quota on https://firebase.google.com/pricing/.")}(e.bucket):403===t.getStatus()?function unauthorized(e){return new StorageError(c.UNAUTHORIZED,"User does not have permission to access '"+e+"'.")}(e.path):n,r.status=t.getStatus(),r.serverResponse=n.serverResponse,r}}function objectErrorHandler(e){const t=sharedErrorHandler(e);return function errorHandler(n,r){let o=t(n,r);return 404===n.getStatus()&&(o=function objectNotFound(e){return new StorageError(c.OBJECT_NOT_FOUND,"Object '"+e+"' does not exist.")}(e.path)),o.serverResponse=r.serverResponse,o}}function getMetadata$2(e,t,n){const r=makeUrl(t.fullServerUrl(),e.host,e._protocol),o=e.maxOperationRetryTime,s=new RequestInfo(r,"GET",metadataHandler(e,n),o);return s.errorHandler=objectErrorHandler(t),s}function list$2(e,t,n,r,o){const s={};t.isRoot?s.prefix="":s.prefix=t.path+"/",n&&n.length>0&&(s.delimiter=n),r&&(s.pageToken=r),o&&(s.maxResults=o);const i=makeUrl(t.bucketOnlyServerUrl(),e.host,e._protocol),a=e.maxOperationRetryTime,l=new RequestInfo(i,"GET",function listHandler(e,t){return function handler(n,r){const o=fromResponseString(e,t,r);return handlerCheck(null!==o),o}}(e,t.bucket),a);return l.urlParams=s,l.errorHandler=sharedErrorHandler(t),l}function getBytes$1(e,t,n){const r=makeUrl(t.fullServerUrl(),e.host,e._protocol)+"?alt=media",o=e.maxOperationRetryTime,s=new RequestInfo(r,"GET",((e,t)=>t),o);return s.errorHandler=objectErrorHandler(t),void 0!==n&&(s.headers.Range=`bytes=0-${n}`,s.successCodes=[200,206]),s}function metadataForUpload_(e,t,n){const r=Object.assign({},n);return r.fullPath=e.path,r.size=t.size(),r.contentType||(r.contentType=function determineContentType_(e,t){return e&&e.contentType||t&&t.type()||"application/octet-stream"}(null,t)),r}function multipartUpload(e,t,n,r,o){const s=t.bucketOnlyServerUrl(),i={"X-Goog-Upload-Protocol":"multipart"};const a=function genBoundary(){let e="";for(let t=0;t<2;t++)e+=Math.random().toString().slice(2);return e}();i["Content-Type"]="multipart/related; boundary="+a;const l=metadataForUpload_(t,r,o),c="--"+a+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+toResourceString(l,n)+"\r\n--"+a+"\r\nContent-Type: "+l.contentType+"\r\n\r\n",u="\r\n--"+a+"--",h=FbsBlob.getBlob(c,r,u);if(null===h)throw cannotSliceBlob();const d={name:l.fullPath},p=makeUrl(s,e.host,e._protocol),_=e.maxUploadRetryTime,f=new RequestInfo(p,"POST",metadataHandler(e,n),_);return f.urlParams=d,f.headers=i,f.body=h.uploadData(),f.errorHandler=sharedErrorHandler(t),f}class ResumableUploadStatus{constructor(e,t,n,r){this.current=e,this.total=t,this.finalized=!!n,this.metadata=r||null}}function checkResumeHeader_(e,t){let n=null;try{n=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){handlerCheck(!1)}return handlerCheck(!!n&&-1!==(t||["active"]).indexOf(n)),n}const f=262144;function continueResumableUpload(e,t,n,r,o,s,i,a){const l=new ResumableUploadStatus(0,0);if(i?(l.current=i.current,l.total=i.total):(l.current=0,l.total=r.size()),r.size()!==l.total)throw function serverFileWrongSize(){return new StorageError(c.SERVER_FILE_WRONG_SIZE,"Server recorded incorrect upload file size, please retry the upload.")}();const u=l.total-l.current;let h=u;o>0&&(h=Math.min(h,o));const d=l.current,p=d+h;let _="";_=0===h?"finalize":u===h?"upload, finalize":"upload";const f={"X-Goog-Upload-Command":_,"X-Goog-Upload-Offset":`${l.current}`},g=r.slice(d,p);if(null===g)throw cannotSliceBlob();const m=t.maxUploadRetryTime,b=new RequestInfo(n,"POST",(function handler(e,n){const o=checkResumeHeader_(e,["active","final"]),i=l.current+h,a=r.size();let c;return c="final"===o?metadataHandler(t,s)(e,n):null,new ResumableUploadStatus(i,a,"final"===o,c)}),m);return b.headers=f,b.body=g.uploadData(),b.progressCallback=a||null,b.errorHandler=sharedErrorHandler(e),b}const g={STATE_CHANGED:"state_changed"},m={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function taskStateFromInternalTaskState(e){switch(e){case"running":case"pausing":case"canceling":return m.RUNNING;case"paused":return m.PAUSED;case"success":return m.SUCCESS;case"canceled":return m.CANCELED;default:return m.ERROR}}class Observer{constructor(e,t,n){if(function isFunction(e){return"function"==typeof e}(e)||null!=t||null!=n)this.next=e,this.error=null!=t?t:void 0,this.complete=null!=n?n:void 0;else{const t=e;this.next=t.next,this.error=t.error,this.complete=t.complete}}}function async(e){return(...t)=>{Promise.resolve().then((()=>e(...t)))}}class XhrConnection{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=u.NO_ERROR,this.sendPromise_=new Promise((e=>{this.xhr_.addEventListener("abort",(()=>{this.errorCode_=u.ABORT,e()})),this.xhr_.addEventListener("error",(()=>{this.errorCode_=u.NETWORK_ERROR,e()})),this.xhr_.addEventListener("load",(()=>{e()}))}))}send(e,t,n,r){if(this.sent_)throw internalError("cannot .send() more than once");if(this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==r)for(const e in r)r.hasOwnProperty(e)&&this.xhr_.setRequestHeader(e,r[e].toString());return void 0!==n?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(!this.sent_)throw internalError("cannot .getErrorCode() before sending");return this.errorCode_}getStatus(){if(!this.sent_)throw internalError("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return-1}}getResponse(){if(!this.sent_)throw internalError("cannot .getResponse() before sending");return this.xhr_.response}getErrorText(){if(!this.sent_)throw internalError("cannot .getErrorText() before sending");return this.xhr_.statusText}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}class XhrTextConnection extends XhrConnection{initXhr(){this.xhr_.responseType="text"}}function newTextConnection(){return new XhrTextConnection}class XhrBytesConnection extends XhrConnection{initXhr(){this.xhr_.responseType="arraybuffer"}}function newBytesConnection(){return new XhrBytesConnection}class XhrBlobConnection extends XhrConnection{initXhr(){this.xhr_.responseType="blob"}}function newBlobConnection(){return new XhrBlobConnection}class UploadTask{isExponentialBackoffExpired(){return this.sleepTime>this.maxSleepTime}constructor(e,t,n=null){this._transferred=0,this._needToFetchStatus=!1,this._needToFetchMetadata=!1,this._observers=[],this._error=void 0,this._uploadUrl=void 0,this._request=void 0,this._chunkMultiplier=1,this._resolve=void 0,this._reject=void 0,this._ref=e,this._blob=t,this._metadata=n,this._mappings=getMappings(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals(c.CANCELED))this._needToFetchStatus=!0,this.completeTransitions_();else{const t=this.isExponentialBackoffExpired();if(isRetryStatusCode(e.status,[])){if(!t)return this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,void this.completeTransitions_();e=retryLimitExceeded()}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals(c.CANCELED)?this.completeTransitions_():(this._error=e,this._transition("error"))},this.sleepTime=0,this.maxSleepTime=this._ref.storage.maxUploadRetryTime,this._promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t,this._start()})),this._promise.then(null,(()=>{}))}_makeProgressCallback(){const e=this._transferred;return t=>this._updateProgress(e+t)}_shouldDoResumable(e){return e.size()>262144}_start(){"running"===this._state&&void 0===this._request&&(this._resumable?void 0===this._uploadUrl?this._createResumable():this._needToFetchStatus?this._fetchStatus():this._needToFetchMetadata?this._fetchMetadata():this.pendingTimeout=setTimeout((()=>{this.pendingTimeout=void 0,this._continueUpload()}),this.sleepTime):this._oneShotUpload())}_resolveToken(e){Promise.all([this._ref.storage._getAuthToken(),this._ref.storage._getAppCheckToken()]).then((([t,n])=>{switch(this._state){case"running":e(t,n);break;case"canceling":this._transition("canceled");break;case"pausing":this._transition("paused")}}))}_createResumable(){this._resolveToken(((e,t)=>{const n=function createResumableUpload(e,t,n,r,o){const s=t.bucketOnlyServerUrl(),i=metadataForUpload_(t,r,o),a={name:i.fullPath},l=makeUrl(s,e.host,e._protocol),c={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":`${r.size()}`,"X-Goog-Upload-Header-Content-Type":i.contentType,"Content-Type":"application/json; charset=utf-8"},u=toResourceString(i,n),h=e.maxUploadRetryTime,d=new RequestInfo(l,"POST",(function handler(e){let t;checkResumeHeader_(e);try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){handlerCheck(!1)}return handlerCheck(isString(t)),t}),h);return d.urlParams=a,d.headers=c,d.body=u,d.errorHandler=sharedErrorHandler(t),d}(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(n,newTextConnection,e,t);this._request=r,r.getPromise().then((e=>{this._request=void 0,this._uploadUrl=e,this._needToFetchStatus=!1,this.completeTransitions_()}),this._errorHandler)}))}_fetchStatus(){const e=this._uploadUrl;this._resolveToken(((t,n)=>{const r=function getResumableUploadStatus(e,t,n,r){const o=e.maxUploadRetryTime,s=new RequestInfo(n,"POST",(function handler(e){const t=checkResumeHeader_(e,["active","final"]);let n=null;try{n=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){handlerCheck(!1)}n||handlerCheck(!1);const o=Number(n);return handlerCheck(!isNaN(o)),new ResumableUploadStatus(o,r.size(),"final"===t)}),o);return s.headers={"X-Goog-Upload-Command":"query"},s.errorHandler=sharedErrorHandler(t),s}(this._ref.storage,this._ref._location,e,this._blob),o=this._ref.storage._makeRequest(r,newTextConnection,t,n);this._request=o,o.getPromise().then((e=>{this._request=void 0,this._updateProgress(e.current),this._needToFetchStatus=!1,e.finalized&&(this._needToFetchMetadata=!0),this.completeTransitions_()}),this._errorHandler)}))}_continueUpload(){const e=f*this._chunkMultiplier,t=new ResumableUploadStatus(this._transferred,this._blob.size()),n=this._uploadUrl;this._resolveToken(((r,o)=>{let s;try{s=continueResumableUpload(this._ref._location,this._ref.storage,n,this._blob,e,this._mappings,t,this._makeProgressCallback())}catch(e){return this._error=e,void this._transition("error")}const i=this._ref.storage._makeRequest(s,newTextConnection,r,o,!1);this._request=i,i.getPromise().then((e=>{this._increaseMultiplier(),this._request=void 0,this._updateProgress(e.current),e.finalized?(this._metadata=e.metadata,this._transition("success")):this.completeTransitions_()}),this._errorHandler)}))}_increaseMultiplier(){2*(f*this._chunkMultiplier)<33554432&&(this._chunkMultiplier*=2)}_fetchMetadata(){this._resolveToken(((e,t)=>{const n=getMetadata$2(this._ref.storage,this._ref._location,this._mappings),r=this._ref.storage._makeRequest(n,newTextConnection,e,t);this._request=r,r.getPromise().then((e=>{this._request=void 0,this._metadata=e,this._transition("success")}),this._metadataErrorHandler)}))}_oneShotUpload(){this._resolveToken(((e,t)=>{const n=multipartUpload(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(n,newTextConnection,e,t);this._request=r,r.getPromise().then((e=>{this._request=void 0,this._metadata=e,this._updateProgress(this._blob.size()),this._transition("success")}),this._errorHandler)}))}_updateProgress(e){const t=this._transferred;this._transferred=e,this._transferred!==t&&this._notifyObservers()}_transition(e){if(this._state!==e)switch(e){case"canceling":case"pausing":this._state=e,void 0!==this._request?this._request.cancel():this.pendingTimeout&&(clearTimeout(this.pendingTimeout),this.pendingTimeout=void 0,this.completeTransitions_());break;case"running":const t="paused"===this._state;this._state=e,t&&(this._notifyObservers(),this._start());break;case"paused":case"error":case"success":this._state=e,this._notifyObservers();break;case"canceled":this._error=canceled(),this._state=e,this._notifyObservers()}}completeTransitions_(){switch(this._state){case"pausing":this._transition("paused");break;case"canceling":this._transition("canceled");break;case"running":this._start()}}get snapshot(){const e=taskStateFromInternalTaskState(this._state);return{bytesTransferred:this._transferred,totalBytes:this._blob.size(),state:e,metadata:this._metadata,task:this,ref:this._ref}}on(e,t,n,r){const o=new Observer(t||void 0,n||void 0,r||void 0);return this._addObserver(o),()=>{this._removeObserver(o)}}then(e,t){return this._promise.then(e,t)}catch(e){return this.then(null,e)}_addObserver(e){this._observers.push(e),this._notifyObserver(e)}_removeObserver(e){const t=this._observers.indexOf(e);-1!==t&&this._observers.splice(t,1)}_notifyObservers(){this._finishPromise();this._observers.slice().forEach((e=>{this._notifyObserver(e)}))}_finishPromise(){if(void 0!==this._resolve){let e=!0;switch(taskStateFromInternalTaskState(this._state)){case m.SUCCESS:async(this._resolve.bind(null,this.snapshot))();break;case m.CANCELED:case m.ERROR:async(this._reject.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(taskStateFromInternalTaskState(this._state)){case m.RUNNING:case m.PAUSED:e.next&&async(e.next.bind(e,this.snapshot))();break;case m.SUCCESS:e.complete&&async(e.complete.bind(e))();break;default:e.error&&async(e.error.bind(e,this._error))()}}resume(){const e="paused"===this._state||"pausing"===this._state;return e&&this._transition("running"),e}pause(){const e="running"===this._state;return e&&this._transition("pausing"),e}cancel(){const e="running"===this._state||"pausing"===this._state;return e&&this._transition("canceling"),e}}class Reference{constructor(e,t){this._service=e,this._location=t instanceof Location?t:Location.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new Reference(e,t)}get root(){const e=new Location(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return lastComponent(this._location.path)}get storage(){return this._service}get parent(){const e=function parent(e){if(0===e.length)return null;const t=e.lastIndexOf("/");return-1===t?"":e.slice(0,t)}(this._location.path);if(null===e)return null;const t=new Location(this._location.bucket,e);return new Reference(this._service,t)}_throwIfRoot(e){if(""===this._location.path)throw invalidRootOperation(e)}}function uploadBytes$1(e,t,n){e._throwIfRoot("uploadBytes");const r=multipartUpload(e.storage,e._location,getMappings(),new FbsBlob(t,!0),n);return e.storage.makeRequestWithTokens(r,newTextConnection).then((t=>({metadata:t,ref:e})))}function listAll$1(e){const t={prefixes:[],items:[]};return listAllHelper(e,t).then((()=>t))}async function listAllHelper(e,t,n){const r={pageToken:n},o=await list$1(e,r);t.prefixes.push(...o.prefixes),t.items.push(...o.items),null!=o.nextPageToken&&await listAllHelper(e,t,o.nextPageToken)}function list$1(e,t){null!=t&&"number"==typeof t.maxResults&&validateNumber("options.maxResults",1,1e3,t.maxResults);const n=t||{},r=list$2(e.storage,e._location,"/",n.pageToken,n.maxResults);return e.storage.makeRequestWithTokens(r,newTextConnection)}function updateMetadata$1(e,t){e._throwIfRoot("updateMetadata");const n=function updateMetadata$2(e,t,n,r){const o=makeUrl(t.fullServerUrl(),e.host,e._protocol),s=toResourceString(n,r),i=e.maxOperationRetryTime,a=new RequestInfo(o,"PATCH",metadataHandler(e,r),i);return a.headers={"Content-Type":"application/json; charset=utf-8"},a.body=s,a.errorHandler=objectErrorHandler(t),a}(e.storage,e._location,t,getMappings());return e.storage.makeRequestWithTokens(n,newTextConnection)}function getDownloadURL$1(e){e._throwIfRoot("getDownloadURL");const t=function getDownloadUrl(e,t,n){const r=makeUrl(t.fullServerUrl(),e.host,e._protocol),o=e.maxOperationRetryTime,s=new RequestInfo(r,"GET",downloadUrlHandler(e,n),o);return s.errorHandler=objectErrorHandler(t),s}(e.storage,e._location,getMappings());return e.storage.makeRequestWithTokens(t,newTextConnection).then((e=>{if(null===e)throw function noDownloadURL(){return new StorageError(c.NO_DOWNLOAD_URL,"The given file does not have any download URLs.")}();return e}))}function deleteObject$1(e){e._throwIfRoot("deleteObject");const t=function deleteObject$2(e,t){const n=makeUrl(t.fullServerUrl(),e.host,e._protocol),r=e.maxOperationRetryTime,o=new RequestInfo(n,"DELETE",(function handler(e,t){}),r);return o.successCodes=[200,204],o.errorHandler=objectErrorHandler(t),o}(e.storage,e._location);return e.storage.makeRequestWithTokens(t,newTextConnection)}function _getChild$1(e,t){const n=function child(e,t){const n=t.split("/").filter((e=>e.length>0)).join("/");return 0===e.length?n:e+"/"+n}(e._location.path,t),r=new Location(e._location.bucket,n);return new Reference(e.storage,r)}function refFromPath(e,t){if(e instanceof FirebaseStorageImpl){const n=e;if(null==n._bucket)throw function noDefaultBucket(){return new StorageError(c.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+l+"' property when initializing the app?")}();const r=new Reference(n,n._bucket);return null!=t?refFromPath(r,t):r}return void 0!==t?_getChild$1(e,t):e}function ref$1(e,t){if(t&&function isUrl(e){return/^[A-Za-z]+:\/\//.test(e)}(t)){if(e instanceof FirebaseStorageImpl)return function refFromURL(e,t){return new Reference(e,t)}(e,t);throw invalidArgument("To use ref(service, url), the first argument must be a Storage instance.")}return refFromPath(e,t)}function extractBucket(e,t){const n=null==t?void 0:t[l];return null==n?null:Location.makeFromBucketSpec(n,e)}function connectStorageEmulator$1(e,t,n,r={}){e.host=`${t}:${n}`,e._protocol="http";const{mockUserToken:o}=r;o&&(e._overrideAuthToken="string"==typeof o?o:function createMockUserToken(e,t){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=t||"demo-project",r=e.iat||0,o=e.sub||e.user_id;if(!o)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const s=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:r,exp:r+3600,auth_time:r,sub:o,user_id:o,firebase:{sign_in_provider:"custom",identities:{}}},e);return[base64urlEncodeWithoutPadding(JSON.stringify({alg:"none",type:"JWT"})),base64urlEncodeWithoutPadding(JSON.stringify(s)),""].join(".")}(o,e.app.options.projectId))}class FirebaseStorageImpl{constructor(e,t,n,r,o){this.app=e,this._authProvider=t,this._appCheckProvider=n,this._url=r,this._firebaseVersion=o,this._bucket=null,this._host=a,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,this._bucket=null!=r?Location.makeFromBucketSpec(r,this._host):extractBucket(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=Location.makeFromBucketSpec(this._url,e):this._bucket=extractBucket(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){validateNumber("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){validateNumber("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;const e=this._authProvider.getImmediate({optional:!0});if(e){const t=await e.getToken();if(null!==t)return t.accessToken}return null}async _getAppCheckToken(){if(r(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;const e=this._appCheckProvider.getImmediate({optional:!0});if(e){return(await e.getToken()).token}return null}_delete(){return this._deleted||(this._deleted=!0,this._requests.forEach((e=>e.cancel())),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new Reference(this,e)}_makeRequest(e,t,n,r,o=!0){if(this._deleted)return new FailRequest(appDeleted());{const s=function makeRequest(e,t,n,r,o,s,i=!0){const a=makeQueryString(e.urlParams),l=e.url+a,c=Object.assign({},e.headers);return function addGmpidHeader_(e,t){t&&(e["X-Firebase-GMPID"]=t)}(c,t),function addAuthHeader_(e,t){null!==t&&t.length>0&&(e.Authorization="Firebase "+t)}(c,n),function addVersionHeader_(e,t){e["X-Firebase-Storage-Version"]="webjs/"+(null!=t?t:"AppManager")}(c,s),function addAppCheckHeader_(e,t){null!==t&&(e["X-Firebase-AppCheck"]=t)}(c,r),new NetworkRequest(l,e.method,c,e.body,e.successCodes,e.additionalRetryCodes,e.handler,e.errorHandler,e.timeout,e.progressCallback,o,i)}(e,this._appId,n,r,t,this._firebaseVersion,o);return this._requests.add(s),s.getPromise().then((()=>this._requests.delete(s)),(()=>this._requests.delete(s))),s}}async makeRequestWithTokens(e,t){const[n,r]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,n,r).getPromise()}}const b="@firebase/storage",E="0.13.6-canary.70e08cf95",R="storage";function getBytes(e,t){return function getBytesInternal(e,t){e._throwIfRoot("getBytes");const n=getBytes$1(e.storage,e._location,t);return e.storage.makeRequestWithTokens(n,newBytesConnection).then((e=>void 0!==t?e.slice(0,t):e))}(e=getModularInstance(e),t)}function uploadBytes(e,t,n){return uploadBytes$1(e=getModularInstance(e),t,n)}function uploadString(e,t,n,r){return function uploadString$1(e,t,n=h.RAW,r){e._throwIfRoot("uploadString");const o=dataFromString(n,t),s=Object.assign({},r);return null==s.contentType&&null!=o.contentType&&(s.contentType=o.contentType),uploadBytes$1(e,o.data,s)}(e=getModularInstance(e),t,n,r)}function uploadBytesResumable(e,t,n){return function uploadBytesResumable$1(e,t,n){return e._throwIfRoot("uploadBytesResumable"),new UploadTask(e,new FbsBlob(t),n)}(e=getModularInstance(e),t,n)}function getMetadata(e){return function getMetadata$1(e){e._throwIfRoot("getMetadata");const t=getMetadata$2(e.storage,e._location,getMappings());return e.storage.makeRequestWithTokens(t,newTextConnection)}(e=getModularInstance(e))}function updateMetadata(e,t){return updateMetadata$1(e=getModularInstance(e),t)}function list(e,t){return list$1(e=getModularInstance(e),t)}function listAll(e){return listAll$1(e=getModularInstance(e))}function getDownloadURL(e){return getDownloadURL$1(e=getModularInstance(e))}function deleteObject(e){return deleteObject$1(e=getModularInstance(e))}function ref(e,t){return ref$1(e=getModularInstance(e),t)}function _getChild(e,t){return _getChild$1(e,t)}function getStorage(t=e(),n){t=getModularInstance(t);const r=_getProvider(t,R).getImmediate({identifier:n}),o=getDefaultEmulatorHostnameAndPort("storage");return o&&connectStorageEmulator(r,...o),r}function connectStorageEmulator(e,t,n,r={}){connectStorageEmulator$1(e,t,n,r)}function getBlob(e,t){return function getBlobInternal(e,t){e._throwIfRoot("getBlob");const n=getBytes$1(e.storage,e._location,t);return e.storage.makeRequestWithTokens(n,newBlobConnection).then((e=>void 0!==t?e.slice(0,t):e))}(e=getModularInstance(e),t)}function getStream(e,t){throw new Error("getStream() is only supported by NodeJS builds")}function factory(e,{instanceIdentifier:t}){const n=e.getProvider("app").getImmediate(),r=e.getProvider("auth-internal"),s=e.getProvider("app-check-internal");return new FirebaseStorageImpl(n,r,s,t,o)}!function registerStorage(){t(new Component(R,factory,"PUBLIC").setMultipleInstances(!0)),n(b,E,""),n(b,E,"esm2017")}();export{StorageError,c as StorageErrorCode,h as StringFormat,FbsBlob as _FbsBlob,Location as _Location,g as _TaskEvent,m as _TaskState,UploadTask as _UploadTask,dataFromString as _dataFromString,_getChild,invalidArgument as _invalidArgument,invalidRootOperation as _invalidRootOperation,connectStorageEmulator,deleteObject,getBlob,getBytes,getDownloadURL,getMetadata,getStorage,getStream,list,listAll,ref,updateMetadata,uploadBytes,uploadBytesResumable,uploadString};
import{_getProvider,getApp as e,_registerComponent as t,registerVersion as n,_isFirebaseServerApp as r,SDK_VERSION as o}from"https://www.gstatic.com/firebasejs/11.3.0-canary.84dfeca39/firebase-app.js";const stringToByteArray$1=function(e){const t=[];let n=0;for(let r=0;r<e.length;r++){let o=e.charCodeAt(r);o<128?t[n++]=o:o<2048?(t[n++]=o>>6|192,t[n++]=63&o|128):55296==(64512&o)&&r+1<e.length&&56320==(64512&e.charCodeAt(r+1))?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++r)),t[n++]=o>>18|240,t[n++]=o>>12&63|128,t[n++]=o>>6&63|128,t[n++]=63&o|128):(t[n++]=o>>12|224,t[n++]=o>>6&63|128,t[n++]=63&o|128)}return t},s={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_();const n=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let t=0;t<e.length;t+=3){const o=e[t],s=t+1<e.length,i=s?e[t+1]:0,a=t+2<e.length,l=a?e[t+2]:0,c=o>>2,u=(3&o)<<4|i>>4;let h=(15&i)<<2|l>>6,d=63&l;a||(d=64,s||(h=64)),r.push(n[c],n[u],n[h],n[d])}return r.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(stringToByteArray$1(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,r=0;for(;n<e.length;){const o=e[n++];if(o<128)t[r++]=String.fromCharCode(o);else if(o>191&&o<224){const s=e[n++];t[r++]=String.fromCharCode((31&o)<<6|63&s)}else if(o>239&&o<365){const s=((7&o)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536;t[r++]=String.fromCharCode(55296+(s>>10)),t[r++]=String.fromCharCode(56320+(1023&s))}else{const s=e[n++],i=e[n++];t[r++]=String.fromCharCode((15&o)<<12|(63&s)<<6|63&i)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const n=t?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let t=0;t<e.length;){const o=n[e.charAt(t++)],s=t<e.length?n[e.charAt(t)]:0;++t;const i=t<e.length?n[e.charAt(t)]:64;++t;const a=t<e.length?n[e.charAt(t)]:64;if(++t,null==o||null==s||null==i||null==a)throw new DecodeBase64StringError;const l=o<<2|s>>4;if(r.push(l),64!==i){const e=s<<4&240|i>>2;if(r.push(e),64!==a){const e=i<<6&192|a;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 DecodeBase64StringError extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const base64urlEncodeWithoutPadding=function(e){return function(e){const t=stringToByteArray$1(e);return s.encodeByteArray(t,!0)}(e).replace(/\./g,"")};const getDefaultsFromGlobal=()=>function getGlobal(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,getDefaultsFromCookie=()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&function(e){try{return s.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null}(e[1]);return t&&JSON.parse(t)},getDefaults=()=>{try{return getDefaultsFromGlobal()||(()=>{if("undefined"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||getDefaultsFromCookie()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},getDefaultEmulatorHostnameAndPort=e=>{const t=(e=>{var t,n;return null===(n=null===(t=getDefaults())||void 0===t?void 0:t.emulatorHosts)||void 0===n?void 0:n[e]})(e);if(!t)return;const n=t.lastIndexOf(":");if(n<=0||n+1===t.length)throw new Error(`Invalid host ${t} with no separate hostname and port!`);const r=parseInt(t.substring(n+1),10);return"["===t[0]?[t.substring(1,n-1),r]:[t.substring(0,n),r]};class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},r=`${this.service}/${e}`,o=this.errors[e],s=o?function replaceTemplate(e,t){return e.replace(i,((e,n)=>{const r=t[n];return null!=r?String(r):`<${n}?>`}))}(o,n):"Error",a=`${this.serviceName}: ${s} (${r}).`;return new FirebaseError(r,a,n)}}const i=/\{\$([^}]+)}/g;function getModularInstance(e){return e&&e._delegate?e._delegate:e}class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const a="firebasestorage.googleapis.com",l="storageBucket";class StorageError extends FirebaseError{constructor(e,t,n=0){super(prependCode(e),`Firebase Storage: ${t} (${prependCode(e)})`),this.status_=n,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,StorageError.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return prependCode(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=`${this._baseMessage}\n${this.customData.serverResponse}`:this.message=this._baseMessage}}var c,u;function prependCode(e){return"storage/"+e}function unknown(){return new StorageError(c.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function retryLimitExceeded(){return new StorageError(c.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again.")}function canceled(){return new StorageError(c.CANCELED,"User canceled the upload/download.")}function cannotSliceBlob(){return new StorageError(c.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function invalidArgument(e){return new StorageError(c.INVALID_ARGUMENT,e)}function appDeleted(){return new StorageError(c.APP_DELETED,"The Firebase app was deleted.")}function invalidRootOperation(e){return new StorageError(c.INVALID_ROOT_OPERATION,"The operation '"+e+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}function invalidFormat(e,t){return new StorageError(c.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function internalError(e){throw new StorageError(c.INTERNAL_ERROR,"Internal error: "+e)}!function(e){e.UNKNOWN="unknown",e.OBJECT_NOT_FOUND="object-not-found",e.BUCKET_NOT_FOUND="bucket-not-found",e.PROJECT_NOT_FOUND="project-not-found",e.QUOTA_EXCEEDED="quota-exceeded",e.UNAUTHENTICATED="unauthenticated",e.UNAUTHORIZED="unauthorized",e.UNAUTHORIZED_APP="unauthorized-app",e.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",e.INVALID_CHECKSUM="invalid-checksum",e.CANCELED="canceled",e.INVALID_EVENT_NAME="invalid-event-name",e.INVALID_URL="invalid-url",e.INVALID_DEFAULT_BUCKET="invalid-default-bucket",e.NO_DEFAULT_BUCKET="no-default-bucket",e.CANNOT_SLICE_BLOB="cannot-slice-blob",e.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",e.NO_DOWNLOAD_URL="no-download-url",e.INVALID_ARGUMENT="invalid-argument",e.INVALID_ARGUMENT_COUNT="invalid-argument-count",e.APP_DELETED="app-deleted",e.INVALID_ROOT_OPERATION="invalid-root-operation",e.INVALID_FORMAT="invalid-format",e.INTERNAL_ERROR="internal-error",e.UNSUPPORTED_ENVIRONMENT="unsupported-environment"}(c||(c={}));class Location{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){const e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){return"/b/"+encodeURIComponent(this.bucket)+"/o"}static makeFromBucketSpec(e,t){let n;try{n=Location.makeFromUrl(e,t)}catch(t){return new Location(e,"")}if(""===n.path)return n;throw function invalidDefaultBucket(e){return new StorageError(c.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+e+"'.")}(e)}static makeFromUrl(e,t){let n=null;const r="([A-Za-z0-9.\\-_]+)";const o=new RegExp("^gs://"+r+"(/(.*))?$","i");function httpModify(e){e.path_=decodeURIComponent(e.path)}const s=t.replace(/[.]/g,"\\."),i=[{regex:o,indices:{bucket:1,path:3},postModify:function gsModify(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:new RegExp(`^https?://${s}/v[A-Za-z0-9_]+/b/${r}/o(/([^?#]*).*)?$`,"i"),indices:{bucket:1,path:3},postModify:httpModify},{regex:new RegExp(`^https?://${t===a?"(?:storage.googleapis.com|storage.cloud.google.com)":t}/${r}/([^?#]*)`,"i"),indices:{bucket:1,path:2},postModify:httpModify}];for(let t=0;t<i.length;t++){const r=i[t],o=r.regex.exec(e);if(o){const e=o[r.indices.bucket];let t=o[r.indices.path];t||(t=""),n=new Location(e,t),r.postModify(n);break}}if(null==n)throw function invalidUrl(e){return new StorageError(c.INVALID_URL,"Invalid URL '"+e+"'.")}(e);return n}}class FailRequest{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=!1){}}function isString(e){return"string"==typeof e||e instanceof String}function isNativeBlob(e){return isNativeBlobDefined()&&e instanceof Blob}function isNativeBlobDefined(){return"undefined"!=typeof Blob}function validateNumber(e,t,n,r){if(r<t)throw invalidArgument(`Invalid value for '${e}'. Expected ${t} or greater.`);if(r>n)throw invalidArgument(`Invalid value for '${e}'. Expected ${n} or less.`)}function makeUrl(e,t,n){let r=t;return null==n&&(r=`https://${t}`),`${n}://${r}/v0${e}`}function makeQueryString(e){const t=encodeURIComponent;let n="?";for(const r in e)if(e.hasOwnProperty(r)){n=n+(t(r)+"="+t(e[r]))+"&"}return n=n.slice(0,-1),n}function isRetryStatusCode(e,t){const n=e>=500&&e<600,r=-1!==[408,429].indexOf(e),o=-1!==t.indexOf(e);return n||r||o}!function(e){e[e.NO_ERROR=0]="NO_ERROR",e[e.NETWORK_ERROR=1]="NETWORK_ERROR",e[e.ABORT=2]="ABORT"}(u||(u={}));class NetworkRequest{constructor(e,t,n,r,o,s,i,a,l,c,u,h=!0){this.url_=e,this.method_=t,this.headers_=n,this.body_=r,this.successCodes_=o,this.additionalRetryCodes_=s,this.callback_=i,this.errorCallback_=a,this.timeout_=l,this.progressCallback_=c,this.connectionFactory_=u,this.retry=h,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise(((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()}))}start_(){const doTheRequest=(e,t)=>{if(t)return void e(!1,new RequestEndStatus(!1,null,!0));const n=this.connectionFactory_();this.pendingConnection_=n;const progressListener=e=>{const t=e.loaded,n=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,n)};null!==this.progressCallback_&&n.addUploadProgressListener(progressListener),n.send(this.url_,this.method_,this.body_,this.headers_).then((()=>{null!==this.progressCallback_&&n.removeUploadProgressListener(progressListener),this.pendingConnection_=null;const t=n.getErrorCode()===u.NO_ERROR,r=n.getStatus();if(!t||isRetryStatusCode(r,this.additionalRetryCodes_)&&this.retry){const t=n.getErrorCode()===u.ABORT;return void e(!1,new RequestEndStatus(!1,null,t))}const o=-1!==this.successCodes_.indexOf(r);e(!0,new RequestEndStatus(o,n))}))},backoffDone=(e,t)=>{const n=this.resolve_,r=this.reject_,o=t.connection;if(t.wasSuccessCode)try{const e=this.callback_(o,o.getResponse());!function isJustDef(e){return void 0!==e}(e)?n():n(e)}catch(e){r(e)}else if(null!==o){const e=unknown();e.serverResponse=o.getErrorText(),this.errorCallback_?r(this.errorCallback_(o,e)):r(e)}else if(t.canceled){r(this.appDelete_?appDeleted():canceled())}else{r(retryLimitExceeded())}};this.canceled_?backoffDone(0,new RequestEndStatus(!1,null,!0)):this.backoffId_=function start(e,t,n){let r=1,o=null,s=null,i=!1,a=0;function canceled(){return 2===a}let l=!1;function triggerCallback(...e){l||(l=!0,t.apply(null,e))}function callWithDelay(t){o=setTimeout((()=>{o=null,e(responseHandler,canceled())}),t)}function clearGlobalTimeout(){s&&clearTimeout(s)}function responseHandler(e,...t){if(l)return void clearGlobalTimeout();if(e)return clearGlobalTimeout(),void triggerCallback.call(null,e,...t);if(canceled()||i)return clearGlobalTimeout(),void triggerCallback.call(null,e,...t);let n;r<64&&(r*=2),1===a?(a=2,n=0):n=1e3*(r+Math.random()),callWithDelay(n)}let c=!1;function stop(e){c||(c=!0,clearGlobalTimeout(),l||(null!==o?(e||(a=2),clearTimeout(o),callWithDelay(0)):e||(a=1)))}return callWithDelay(0),s=setTimeout((()=>{i=!0,stop(!0)}),n),stop}(doTheRequest,backoffDone,this.timeout_)}getPromise(){return this.promise_}cancel(e){this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_&&function stop(e){e(!1)}(this.backoffId_),null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class RequestEndStatus{constructor(e,t,n){this.wasSuccessCode=e,this.connection=t,this.canceled=!!n}}function getBlobBuilder(){return"undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0}function getBlob$1(...e){const t=getBlobBuilder();if(void 0!==t){const n=new t;for(let t=0;t<e.length;t++)n.append(e[t]);return n.getBlob()}if(isNativeBlobDefined())return new Blob(e);throw new StorageError(c.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}function decodeBase64(e){if("undefined"==typeof atob)throw function missingPolyFill(e){return new StorageError(c.UNSUPPORTED_ENVIRONMENT,`${e} is missing. Make sure to install the required polyfills. See https://firebase.google.com/docs/web/environments-js-sdk#polyfills for more information.`)}("base-64");return atob(e)}const h={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class StringData{constructor(e,t){this.data=e,this.contentType=t||null}}function dataFromString(e,t){switch(e){case h.RAW:return new StringData(utf8Bytes_(t));case h.BASE64:case h.BASE64URL:return new StringData(base64Bytes_(e,t));case h.DATA_URL:return new StringData(function dataURLBytes_(e){const t=new DataURLParts(e);return t.base64?base64Bytes_(h.BASE64,t.rest):function percentEncodedBytes_(e){let t;try{t=decodeURIComponent(e)}catch(e){throw invalidFormat(h.DATA_URL,"Malformed data URL.")}return utf8Bytes_(t)}(t.rest)}(t),function dataURLContentType_(e){return new DataURLParts(e).contentType}(t))}throw unknown()}function utf8Bytes_(e){const t=[];for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r<=127)t.push(r);else if(r<=2047)t.push(192|r>>6,128|63&r);else if(55296==(64512&r)){if(n<e.length-1&&56320==(64512&e.charCodeAt(n+1))){r=65536|(1023&r)<<10|1023&e.charCodeAt(++n),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r)}else t.push(239,191,189)}else 56320==(64512&r)?t.push(239,191,189):t.push(224|r>>12,128|r>>6&63,128|63&r)}return new Uint8Array(t)}function base64Bytes_(e,t){switch(e){case h.BASE64:{const n=-1!==t.indexOf("-"),r=-1!==t.indexOf("_");if(n||r){throw invalidFormat(e,"Invalid character '"+(n?"-":"_")+"' found: is it base64url encoded?")}break}case h.BASE64URL:{const n=-1!==t.indexOf("+"),r=-1!==t.indexOf("/");if(n||r){throw invalidFormat(e,"Invalid character '"+(n?"+":"/")+"' found: is it base64 encoded?")}t=t.replace(/-/g,"+").replace(/_/g,"/");break}}let n;try{n=decodeBase64(t)}catch(t){if(t.message.includes("polyfill"))throw t;throw invalidFormat(e,"Invalid character found")}const r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}class DataURLParts{constructor(e){this.base64=!1,this.contentType=null;const t=e.match(/^data:([^,]+)?,/);if(null===t)throw invalidFormat(h.DATA_URL,"Must be formatted 'data:[<mediatype>][;base64],<data>");const n=t[1]||null;null!=n&&(this.base64=function endsWith(e,t){if(!(e.length>=t.length))return!1;return e.substring(e.length-t.length)===t}(n,";base64"),this.contentType=this.base64?n.substring(0,n.length-7):n),this.rest=e.substring(e.indexOf(",")+1)}}class FbsBlob{constructor(e,t){let n=0,r="";isNativeBlob(e)?(this.data_=e,n=e.size,r=e.type):e instanceof ArrayBuffer?(t?this.data_=new Uint8Array(e):(this.data_=new Uint8Array(e.byteLength),this.data_.set(new Uint8Array(e))),n=this.data_.length):e instanceof Uint8Array&&(t?this.data_=e:(this.data_=new Uint8Array(e.length),this.data_.set(e)),n=e.length),this.size_=n,this.type_=r}size(){return this.size_}type(){return this.type_}slice(e,t){if(isNativeBlob(this.data_)){const n=function sliceBlob(e,t,n){return e.webkitSlice?e.webkitSlice(t,n):e.mozSlice?e.mozSlice(t,n):e.slice?e.slice(t,n):null}(this.data_,e,t);return null===n?null:new FbsBlob(n)}{const n=new Uint8Array(this.data_.buffer,e,t-e);return new FbsBlob(n,!0)}}static getBlob(...e){if(isNativeBlobDefined()){const t=e.map((e=>e instanceof FbsBlob?e.data_:e));return new FbsBlob(getBlob$1.apply(null,t))}{const t=e.map((e=>isString(e)?dataFromString(h.RAW,e).data:e.data_));let n=0;t.forEach((e=>{n+=e.byteLength}));const r=new Uint8Array(n);let o=0;return t.forEach((e=>{for(let t=0;t<e.length;t++)r[o++]=e[t]})),new FbsBlob(r,!0)}}uploadData(){return this.data_}}function jsonObjectOrNull(e){let t;try{t=JSON.parse(e)}catch(e){return null}return function isNonArrayObject(e){return"object"==typeof e&&!Array.isArray(e)}(t)?t:null}function lastComponent(e){const t=e.lastIndexOf("/",e.length-2);return-1===t?e:e.slice(t+1)}function noXform_(e,t){return t}class Mapping{constructor(e,t,n,r){this.server=e,this.local=t||e,this.writable=!!n,this.xform=r||noXform_}}let d=null;function getMappings(){if(d)return d;const e=[];e.push(new Mapping("bucket")),e.push(new Mapping("generation")),e.push(new Mapping("metageneration")),e.push(new Mapping("name","fullPath",!0));const t=new Mapping("name");t.xform=function mappingsXformPath(e,t){return function xformPath(e){return!isString(e)||e.length<2?e:lastComponent(e)}(t)},e.push(t);const n=new Mapping("size");return n.xform=function xformSize(e,t){return void 0!==t?Number(t):t},e.push(n),e.push(new Mapping("timeCreated")),e.push(new Mapping("updated")),e.push(new Mapping("md5Hash",null,!0)),e.push(new Mapping("cacheControl",null,!0)),e.push(new Mapping("contentDisposition",null,!0)),e.push(new Mapping("contentEncoding",null,!0)),e.push(new Mapping("contentLanguage",null,!0)),e.push(new Mapping("contentType",null,!0)),e.push(new Mapping("metadata","customMetadata",!0)),d=e,d}function fromResource(e,t,n){const r={type:"file"},o=n.length;for(let e=0;e<o;e++){const o=n[e];r[o.local]=o.xform(r,t[o.server])}return function addRef(e,t){Object.defineProperty(e,"ref",{get:function generateRef(){const n=e.bucket,r=e.fullPath,o=new Location(n,r);return t._makeStorageReference(o)}})}(r,e),r}function fromResourceString(e,t,n){const r=jsonObjectOrNull(t);if(null===r)return null;return fromResource(e,r,n)}function toResourceString(e,t){const n={},r=t.length;for(let o=0;o<r;o++){const r=t[o];r.writable&&(n[r.server]=e[r.local])}return JSON.stringify(n)}const p="prefixes",_="items";function fromResponseString(e,t,n){const r=jsonObjectOrNull(n);if(null===r)return null;return function fromBackendResponse(e,t,n){const r={prefixes:[],items:[],nextPageToken:n.nextPageToken};if(n[p])for(const o of n[p]){const n=o.replace(/\/$/,""),s=e._makeStorageReference(new Location(t,n));r.prefixes.push(s)}if(n[_])for(const o of n[_]){const n=e._makeStorageReference(new Location(t,o.name));r.items.push(n)}return r}(e,t,r)}class RequestInfo{constructor(e,t,n,r){this.url=e,this.method=t,this.handler=n,this.timeout=r,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}function handlerCheck(e){if(!e)throw unknown()}function metadataHandler(e,t){return function handler(n,r){const o=fromResourceString(e,r,t);return handlerCheck(null!==o),o}}function downloadUrlHandler(e,t){return function handler(n,r){const o=fromResourceString(e,r,t);return handlerCheck(null!==o),function downloadUrlFromResourceString(e,t,n,r){const o=jsonObjectOrNull(t);if(null===o)return null;if(!isString(o.downloadTokens))return null;const s=o.downloadTokens;if(0===s.length)return null;const i=encodeURIComponent;return s.split(",").map((t=>{const o=e.bucket,s=e.fullPath;return makeUrl("/b/"+i(o)+"/o/"+i(s),n,r)+makeQueryString({alt:"media",token:t})}))[0]}(o,r,e.host,e._protocol)}}function sharedErrorHandler(e){return function errorHandler(t,n){let r;return r=401===t.getStatus()?t.getErrorText().includes("Firebase App Check token is invalid")?function unauthorizedApp(){return new StorageError(c.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project.")}():function unauthenticated(){return new StorageError(c.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again.")}():402===t.getStatus()?function quotaExceeded(e){return new StorageError(c.QUOTA_EXCEEDED,"Quota for bucket '"+e+"' exceeded, please view quota on https://firebase.google.com/pricing/.")}(e.bucket):403===t.getStatus()?function unauthorized(e){return new StorageError(c.UNAUTHORIZED,"User does not have permission to access '"+e+"'.")}(e.path):n,r.status=t.getStatus(),r.serverResponse=n.serverResponse,r}}function objectErrorHandler(e){const t=sharedErrorHandler(e);return function errorHandler(n,r){let o=t(n,r);return 404===n.getStatus()&&(o=function objectNotFound(e){return new StorageError(c.OBJECT_NOT_FOUND,"Object '"+e+"' does not exist.")}(e.path)),o.serverResponse=r.serverResponse,o}}function getMetadata$2(e,t,n){const r=makeUrl(t.fullServerUrl(),e.host,e._protocol),o=e.maxOperationRetryTime,s=new RequestInfo(r,"GET",metadataHandler(e,n),o);return s.errorHandler=objectErrorHandler(t),s}function list$2(e,t,n,r,o){const s={};t.isRoot?s.prefix="":s.prefix=t.path+"/",n&&n.length>0&&(s.delimiter=n),r&&(s.pageToken=r),o&&(s.maxResults=o);const i=makeUrl(t.bucketOnlyServerUrl(),e.host,e._protocol),a=e.maxOperationRetryTime,l=new RequestInfo(i,"GET",function listHandler(e,t){return function handler(n,r){const o=fromResponseString(e,t,r);return handlerCheck(null!==o),o}}(e,t.bucket),a);return l.urlParams=s,l.errorHandler=sharedErrorHandler(t),l}function getBytes$1(e,t,n){const r=makeUrl(t.fullServerUrl(),e.host,e._protocol)+"?alt=media",o=e.maxOperationRetryTime,s=new RequestInfo(r,"GET",((e,t)=>t),o);return s.errorHandler=objectErrorHandler(t),void 0!==n&&(s.headers.Range=`bytes=0-${n}`,s.successCodes=[200,206]),s}function metadataForUpload_(e,t,n){const r=Object.assign({},n);return r.fullPath=e.path,r.size=t.size(),r.contentType||(r.contentType=function determineContentType_(e,t){return e&&e.contentType||t&&t.type()||"application/octet-stream"}(null,t)),r}function multipartUpload(e,t,n,r,o){const s=t.bucketOnlyServerUrl(),i={"X-Goog-Upload-Protocol":"multipart"};const a=function genBoundary(){let e="";for(let t=0;t<2;t++)e+=Math.random().toString().slice(2);return e}();i["Content-Type"]="multipart/related; boundary="+a;const l=metadataForUpload_(t,r,o),c="--"+a+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+toResourceString(l,n)+"\r\n--"+a+"\r\nContent-Type: "+l.contentType+"\r\n\r\n",u="\r\n--"+a+"--",h=FbsBlob.getBlob(c,r,u);if(null===h)throw cannotSliceBlob();const d={name:l.fullPath},p=makeUrl(s,e.host,e._protocol),_=e.maxUploadRetryTime,f=new RequestInfo(p,"POST",metadataHandler(e,n),_);return f.urlParams=d,f.headers=i,f.body=h.uploadData(),f.errorHandler=sharedErrorHandler(t),f}class ResumableUploadStatus{constructor(e,t,n,r){this.current=e,this.total=t,this.finalized=!!n,this.metadata=r||null}}function checkResumeHeader_(e,t){let n=null;try{n=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){handlerCheck(!1)}return handlerCheck(!!n&&-1!==(t||["active"]).indexOf(n)),n}const f=262144;function continueResumableUpload(e,t,n,r,o,s,i,a){const l=new ResumableUploadStatus(0,0);if(i?(l.current=i.current,l.total=i.total):(l.current=0,l.total=r.size()),r.size()!==l.total)throw function serverFileWrongSize(){return new StorageError(c.SERVER_FILE_WRONG_SIZE,"Server recorded incorrect upload file size, please retry the upload.")}();const u=l.total-l.current;let h=u;o>0&&(h=Math.min(h,o));const d=l.current,p=d+h;let _="";_=0===h?"finalize":u===h?"upload, finalize":"upload";const f={"X-Goog-Upload-Command":_,"X-Goog-Upload-Offset":`${l.current}`},g=r.slice(d,p);if(null===g)throw cannotSliceBlob();const m=t.maxUploadRetryTime,b=new RequestInfo(n,"POST",(function handler(e,n){const o=checkResumeHeader_(e,["active","final"]),i=l.current+h,a=r.size();let c;return c="final"===o?metadataHandler(t,s)(e,n):null,new ResumableUploadStatus(i,a,"final"===o,c)}),m);return b.headers=f,b.body=g.uploadData(),b.progressCallback=a||null,b.errorHandler=sharedErrorHandler(e),b}const g={STATE_CHANGED:"state_changed"},m={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function taskStateFromInternalTaskState(e){switch(e){case"running":case"pausing":case"canceling":return m.RUNNING;case"paused":return m.PAUSED;case"success":return m.SUCCESS;case"canceled":return m.CANCELED;default:return m.ERROR}}class Observer{constructor(e,t,n){if(function isFunction(e){return"function"==typeof e}(e)||null!=t||null!=n)this.next=e,this.error=null!=t?t:void 0,this.complete=null!=n?n:void 0;else{const t=e;this.next=t.next,this.error=t.error,this.complete=t.complete}}}function async(e){return(...t)=>{Promise.resolve().then((()=>e(...t)))}}class XhrConnection{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=u.NO_ERROR,this.sendPromise_=new Promise((e=>{this.xhr_.addEventListener("abort",(()=>{this.errorCode_=u.ABORT,e()})),this.xhr_.addEventListener("error",(()=>{this.errorCode_=u.NETWORK_ERROR,e()})),this.xhr_.addEventListener("load",(()=>{e()}))}))}send(e,t,n,r){if(this.sent_)throw internalError("cannot .send() more than once");if(this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==r)for(const e in r)r.hasOwnProperty(e)&&this.xhr_.setRequestHeader(e,r[e].toString());return void 0!==n?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(!this.sent_)throw internalError("cannot .getErrorCode() before sending");return this.errorCode_}getStatus(){if(!this.sent_)throw internalError("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return-1}}getResponse(){if(!this.sent_)throw internalError("cannot .getResponse() before sending");return this.xhr_.response}getErrorText(){if(!this.sent_)throw internalError("cannot .getErrorText() before sending");return this.xhr_.statusText}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}class XhrTextConnection extends XhrConnection{initXhr(){this.xhr_.responseType="text"}}function newTextConnection(){return new XhrTextConnection}class XhrBytesConnection extends XhrConnection{initXhr(){this.xhr_.responseType="arraybuffer"}}function newBytesConnection(){return new XhrBytesConnection}class XhrBlobConnection extends XhrConnection{initXhr(){this.xhr_.responseType="blob"}}function newBlobConnection(){return new XhrBlobConnection}class UploadTask{isExponentialBackoffExpired(){return this.sleepTime>this.maxSleepTime}constructor(e,t,n=null){this._transferred=0,this._needToFetchStatus=!1,this._needToFetchMetadata=!1,this._observers=[],this._error=void 0,this._uploadUrl=void 0,this._request=void 0,this._chunkMultiplier=1,this._resolve=void 0,this._reject=void 0,this._ref=e,this._blob=t,this._metadata=n,this._mappings=getMappings(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals(c.CANCELED))this._needToFetchStatus=!0,this.completeTransitions_();else{const t=this.isExponentialBackoffExpired();if(isRetryStatusCode(e.status,[])){if(!t)return this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,void this.completeTransitions_();e=retryLimitExceeded()}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals(c.CANCELED)?this.completeTransitions_():(this._error=e,this._transition("error"))},this.sleepTime=0,this.maxSleepTime=this._ref.storage.maxUploadRetryTime,this._promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t,this._start()})),this._promise.then(null,(()=>{}))}_makeProgressCallback(){const e=this._transferred;return t=>this._updateProgress(e+t)}_shouldDoResumable(e){return e.size()>262144}_start(){"running"===this._state&&void 0===this._request&&(this._resumable?void 0===this._uploadUrl?this._createResumable():this._needToFetchStatus?this._fetchStatus():this._needToFetchMetadata?this._fetchMetadata():this.pendingTimeout=setTimeout((()=>{this.pendingTimeout=void 0,this._continueUpload()}),this.sleepTime):this._oneShotUpload())}_resolveToken(e){Promise.all([this._ref.storage._getAuthToken(),this._ref.storage._getAppCheckToken()]).then((([t,n])=>{switch(this._state){case"running":e(t,n);break;case"canceling":this._transition("canceled");break;case"pausing":this._transition("paused")}}))}_createResumable(){this._resolveToken(((e,t)=>{const n=function createResumableUpload(e,t,n,r,o){const s=t.bucketOnlyServerUrl(),i=metadataForUpload_(t,r,o),a={name:i.fullPath},l=makeUrl(s,e.host,e._protocol),c={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":`${r.size()}`,"X-Goog-Upload-Header-Content-Type":i.contentType,"Content-Type":"application/json; charset=utf-8"},u=toResourceString(i,n),h=e.maxUploadRetryTime,d=new RequestInfo(l,"POST",(function handler(e){let t;checkResumeHeader_(e);try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){handlerCheck(!1)}return handlerCheck(isString(t)),t}),h);return d.urlParams=a,d.headers=c,d.body=u,d.errorHandler=sharedErrorHandler(t),d}(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(n,newTextConnection,e,t);this._request=r,r.getPromise().then((e=>{this._request=void 0,this._uploadUrl=e,this._needToFetchStatus=!1,this.completeTransitions_()}),this._errorHandler)}))}_fetchStatus(){const e=this._uploadUrl;this._resolveToken(((t,n)=>{const r=function getResumableUploadStatus(e,t,n,r){const o=e.maxUploadRetryTime,s=new RequestInfo(n,"POST",(function handler(e){const t=checkResumeHeader_(e,["active","final"]);let n=null;try{n=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){handlerCheck(!1)}n||handlerCheck(!1);const o=Number(n);return handlerCheck(!isNaN(o)),new ResumableUploadStatus(o,r.size(),"final"===t)}),o);return s.headers={"X-Goog-Upload-Command":"query"},s.errorHandler=sharedErrorHandler(t),s}(this._ref.storage,this._ref._location,e,this._blob),o=this._ref.storage._makeRequest(r,newTextConnection,t,n);this._request=o,o.getPromise().then((e=>{this._request=void 0,this._updateProgress(e.current),this._needToFetchStatus=!1,e.finalized&&(this._needToFetchMetadata=!0),this.completeTransitions_()}),this._errorHandler)}))}_continueUpload(){const e=f*this._chunkMultiplier,t=new ResumableUploadStatus(this._transferred,this._blob.size()),n=this._uploadUrl;this._resolveToken(((r,o)=>{let s;try{s=continueResumableUpload(this._ref._location,this._ref.storage,n,this._blob,e,this._mappings,t,this._makeProgressCallback())}catch(e){return this._error=e,void this._transition("error")}const i=this._ref.storage._makeRequest(s,newTextConnection,r,o,!1);this._request=i,i.getPromise().then((e=>{this._increaseMultiplier(),this._request=void 0,this._updateProgress(e.current),e.finalized?(this._metadata=e.metadata,this._transition("success")):this.completeTransitions_()}),this._errorHandler)}))}_increaseMultiplier(){2*(f*this._chunkMultiplier)<33554432&&(this._chunkMultiplier*=2)}_fetchMetadata(){this._resolveToken(((e,t)=>{const n=getMetadata$2(this._ref.storage,this._ref._location,this._mappings),r=this._ref.storage._makeRequest(n,newTextConnection,e,t);this._request=r,r.getPromise().then((e=>{this._request=void 0,this._metadata=e,this._transition("success")}),this._metadataErrorHandler)}))}_oneShotUpload(){this._resolveToken(((e,t)=>{const n=multipartUpload(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata),r=this._ref.storage._makeRequest(n,newTextConnection,e,t);this._request=r,r.getPromise().then((e=>{this._request=void 0,this._metadata=e,this._updateProgress(this._blob.size()),this._transition("success")}),this._errorHandler)}))}_updateProgress(e){const t=this._transferred;this._transferred=e,this._transferred!==t&&this._notifyObservers()}_transition(e){if(this._state!==e)switch(e){case"canceling":case"pausing":this._state=e,void 0!==this._request?this._request.cancel():this.pendingTimeout&&(clearTimeout(this.pendingTimeout),this.pendingTimeout=void 0,this.completeTransitions_());break;case"running":const t="paused"===this._state;this._state=e,t&&(this._notifyObservers(),this._start());break;case"paused":case"error":case"success":this._state=e,this._notifyObservers();break;case"canceled":this._error=canceled(),this._state=e,this._notifyObservers()}}completeTransitions_(){switch(this._state){case"pausing":this._transition("paused");break;case"canceling":this._transition("canceled");break;case"running":this._start()}}get snapshot(){const e=taskStateFromInternalTaskState(this._state);return{bytesTransferred:this._transferred,totalBytes:this._blob.size(),state:e,metadata:this._metadata,task:this,ref:this._ref}}on(e,t,n,r){const o=new Observer(t||void 0,n||void 0,r||void 0);return this._addObserver(o),()=>{this._removeObserver(o)}}then(e,t){return this._promise.then(e,t)}catch(e){return this.then(null,e)}_addObserver(e){this._observers.push(e),this._notifyObserver(e)}_removeObserver(e){const t=this._observers.indexOf(e);-1!==t&&this._observers.splice(t,1)}_notifyObservers(){this._finishPromise();this._observers.slice().forEach((e=>{this._notifyObserver(e)}))}_finishPromise(){if(void 0!==this._resolve){let e=!0;switch(taskStateFromInternalTaskState(this._state)){case m.SUCCESS:async(this._resolve.bind(null,this.snapshot))();break;case m.CANCELED:case m.ERROR:async(this._reject.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(taskStateFromInternalTaskState(this._state)){case m.RUNNING:case m.PAUSED:e.next&&async(e.next.bind(e,this.snapshot))();break;case m.SUCCESS:e.complete&&async(e.complete.bind(e))();break;default:e.error&&async(e.error.bind(e,this._error))()}}resume(){const e="paused"===this._state||"pausing"===this._state;return e&&this._transition("running"),e}pause(){const e="running"===this._state;return e&&this._transition("pausing"),e}cancel(){const e="running"===this._state||"pausing"===this._state;return e&&this._transition("canceling"),e}}class Reference{constructor(e,t){this._service=e,this._location=t instanceof Location?t:Location.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new Reference(e,t)}get root(){const e=new Location(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return lastComponent(this._location.path)}get storage(){return this._service}get parent(){const e=function parent(e){if(0===e.length)return null;const t=e.lastIndexOf("/");return-1===t?"":e.slice(0,t)}(this._location.path);if(null===e)return null;const t=new Location(this._location.bucket,e);return new Reference(this._service,t)}_throwIfRoot(e){if(""===this._location.path)throw invalidRootOperation(e)}}function uploadBytes$1(e,t,n){e._throwIfRoot("uploadBytes");const r=multipartUpload(e.storage,e._location,getMappings(),new FbsBlob(t,!0),n);return e.storage.makeRequestWithTokens(r,newTextConnection).then((t=>({metadata:t,ref:e})))}function listAll$1(e){const t={prefixes:[],items:[]};return listAllHelper(e,t).then((()=>t))}async function listAllHelper(e,t,n){const r={pageToken:n},o=await list$1(e,r);t.prefixes.push(...o.prefixes),t.items.push(...o.items),null!=o.nextPageToken&&await listAllHelper(e,t,o.nextPageToken)}function list$1(e,t){null!=t&&"number"==typeof t.maxResults&&validateNumber("options.maxResults",1,1e3,t.maxResults);const n=t||{},r=list$2(e.storage,e._location,"/",n.pageToken,n.maxResults);return e.storage.makeRequestWithTokens(r,newTextConnection)}function updateMetadata$1(e,t){e._throwIfRoot("updateMetadata");const n=function updateMetadata$2(e,t,n,r){const o=makeUrl(t.fullServerUrl(),e.host,e._protocol),s=toResourceString(n,r),i=e.maxOperationRetryTime,a=new RequestInfo(o,"PATCH",metadataHandler(e,r),i);return a.headers={"Content-Type":"application/json; charset=utf-8"},a.body=s,a.errorHandler=objectErrorHandler(t),a}(e.storage,e._location,t,getMappings());return e.storage.makeRequestWithTokens(n,newTextConnection)}function getDownloadURL$1(e){e._throwIfRoot("getDownloadURL");const t=function getDownloadUrl(e,t,n){const r=makeUrl(t.fullServerUrl(),e.host,e._protocol),o=e.maxOperationRetryTime,s=new RequestInfo(r,"GET",downloadUrlHandler(e,n),o);return s.errorHandler=objectErrorHandler(t),s}(e.storage,e._location,getMappings());return e.storage.makeRequestWithTokens(t,newTextConnection).then((e=>{if(null===e)throw function noDownloadURL(){return new StorageError(c.NO_DOWNLOAD_URL,"The given file does not have any download URLs.")}();return e}))}function deleteObject$1(e){e._throwIfRoot("deleteObject");const t=function deleteObject$2(e,t){const n=makeUrl(t.fullServerUrl(),e.host,e._protocol),r=e.maxOperationRetryTime,o=new RequestInfo(n,"DELETE",(function handler(e,t){}),r);return o.successCodes=[200,204],o.errorHandler=objectErrorHandler(t),o}(e.storage,e._location);return e.storage.makeRequestWithTokens(t,newTextConnection)}function _getChild$1(e,t){const n=function child(e,t){const n=t.split("/").filter((e=>e.length>0)).join("/");return 0===e.length?n:e+"/"+n}(e._location.path,t),r=new Location(e._location.bucket,n);return new Reference(e.storage,r)}function refFromPath(e,t){if(e instanceof FirebaseStorageImpl){const n=e;if(null==n._bucket)throw function noDefaultBucket(){return new StorageError(c.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+l+"' property when initializing the app?")}();const r=new Reference(n,n._bucket);return null!=t?refFromPath(r,t):r}return void 0!==t?_getChild$1(e,t):e}function ref$1(e,t){if(t&&function isUrl(e){return/^[A-Za-z]+:\/\//.test(e)}(t)){if(e instanceof FirebaseStorageImpl)return function refFromURL(e,t){return new Reference(e,t)}(e,t);throw invalidArgument("To use ref(service, url), the first argument must be a Storage instance.")}return refFromPath(e,t)}function extractBucket(e,t){const n=null==t?void 0:t[l];return null==n?null:Location.makeFromBucketSpec(n,e)}function connectStorageEmulator$1(e,t,n,r={}){e.host=`${t}:${n}`,e._protocol="http";const{mockUserToken:o}=r;o&&(e._overrideAuthToken="string"==typeof o?o:function createMockUserToken(e,t){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=t||"demo-project",r=e.iat||0,o=e.sub||e.user_id;if(!o)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const s=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:r,exp:r+3600,auth_time:r,sub:o,user_id:o,firebase:{sign_in_provider:"custom",identities:{}}},e);return[base64urlEncodeWithoutPadding(JSON.stringify({alg:"none",type:"JWT"})),base64urlEncodeWithoutPadding(JSON.stringify(s)),""].join(".")}(o,e.app.options.projectId))}class FirebaseStorageImpl{constructor(e,t,n,r,o){this.app=e,this._authProvider=t,this._appCheckProvider=n,this._url=r,this._firebaseVersion=o,this._bucket=null,this._host=a,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,this._bucket=null!=r?Location.makeFromBucketSpec(r,this._host):extractBucket(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=Location.makeFromBucketSpec(this._url,e):this._bucket=extractBucket(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){validateNumber("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){validateNumber("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;const e=this._authProvider.getImmediate({optional:!0});if(e){const t=await e.getToken();if(null!==t)return t.accessToken}return null}async _getAppCheckToken(){if(r(this.app)&&this.app.settings.appCheckToken)return this.app.settings.appCheckToken;const e=this._appCheckProvider.getImmediate({optional:!0});if(e){return(await e.getToken()).token}return null}_delete(){return this._deleted||(this._deleted=!0,this._requests.forEach((e=>e.cancel())),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new Reference(this,e)}_makeRequest(e,t,n,r,o=!0){if(this._deleted)return new FailRequest(appDeleted());{const s=function makeRequest(e,t,n,r,o,s,i=!0){const a=makeQueryString(e.urlParams),l=e.url+a,c=Object.assign({},e.headers);return function addGmpidHeader_(e,t){t&&(e["X-Firebase-GMPID"]=t)}(c,t),function addAuthHeader_(e,t){null!==t&&t.length>0&&(e.Authorization="Firebase "+t)}(c,n),function addVersionHeader_(e,t){e["X-Firebase-Storage-Version"]="webjs/"+(null!=t?t:"AppManager")}(c,s),function addAppCheckHeader_(e,t){null!==t&&(e["X-Firebase-AppCheck"]=t)}(c,r),new NetworkRequest(l,e.method,c,e.body,e.successCodes,e.additionalRetryCodes,e.handler,e.errorHandler,e.timeout,e.progressCallback,o,i)}(e,this._appId,n,r,t,this._firebaseVersion,o);return this._requests.add(s),s.getPromise().then((()=>this._requests.delete(s)),(()=>this._requests.delete(s))),s}}async makeRequestWithTokens(e,t){const[n,r]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,n,r).getPromise()}}const b="@firebase/storage",E="0.13.6-canary.84dfeca39",R="storage";function getBytes(e,t){return function getBytesInternal(e,t){e._throwIfRoot("getBytes");const n=getBytes$1(e.storage,e._location,t);return e.storage.makeRequestWithTokens(n,newBytesConnection).then((e=>void 0!==t?e.slice(0,t):e))}(e=getModularInstance(e),t)}function uploadBytes(e,t,n){return uploadBytes$1(e=getModularInstance(e),t,n)}function uploadString(e,t,n,r){return function uploadString$1(e,t,n=h.RAW,r){e._throwIfRoot("uploadString");const o=dataFromString(n,t),s=Object.assign({},r);return null==s.contentType&&null!=o.contentType&&(s.contentType=o.contentType),uploadBytes$1(e,o.data,s)}(e=getModularInstance(e),t,n,r)}function uploadBytesResumable(e,t,n){return function uploadBytesResumable$1(e,t,n){return e._throwIfRoot("uploadBytesResumable"),new UploadTask(e,new FbsBlob(t),n)}(e=getModularInstance(e),t,n)}function getMetadata(e){return function getMetadata$1(e){e._throwIfRoot("getMetadata");const t=getMetadata$2(e.storage,e._location,getMappings());return e.storage.makeRequestWithTokens(t,newTextConnection)}(e=getModularInstance(e))}function updateMetadata(e,t){return updateMetadata$1(e=getModularInstance(e),t)}function list(e,t){return list$1(e=getModularInstance(e),t)}function listAll(e){return listAll$1(e=getModularInstance(e))}function getDownloadURL(e){return getDownloadURL$1(e=getModularInstance(e))}function deleteObject(e){return deleteObject$1(e=getModularInstance(e))}function ref(e,t){return ref$1(e=getModularInstance(e),t)}function _getChild(e,t){return _getChild$1(e,t)}function getStorage(t=e(),n){t=getModularInstance(t);const r=_getProvider(t,R).getImmediate({identifier:n}),o=getDefaultEmulatorHostnameAndPort("storage");return o&&connectStorageEmulator(r,...o),r}function connectStorageEmulator(e,t,n,r={}){connectStorageEmulator$1(e,t,n,r)}function getBlob(e,t){return function getBlobInternal(e,t){e._throwIfRoot("getBlob");const n=getBytes$1(e.storage,e._location,t);return e.storage.makeRequestWithTokens(n,newBlobConnection).then((e=>void 0!==t?e.slice(0,t):e))}(e=getModularInstance(e),t)}function getStream(e,t){throw new Error("getStream() is only supported by NodeJS builds")}function factory(e,{instanceIdentifier:t}){const n=e.getProvider("app").getImmediate(),r=e.getProvider("auth-internal"),s=e.getProvider("app-check-internal");return new FirebaseStorageImpl(n,r,s,t,o)}!function registerStorage(){t(new Component(R,factory,"PUBLIC").setMultipleInstances(!0)),n(b,E,""),n(b,E,"esm2017")}();export{StorageError,c as StorageErrorCode,h as StringFormat,FbsBlob as _FbsBlob,Location as _Location,g as _TaskEvent,m as _TaskState,UploadTask as _UploadTask,dataFromString as _dataFromString,_getChild,invalidArgument as _invalidArgument,invalidRootOperation as _invalidRootOperation,connectStorageEmulator,deleteObject,getBlob,getBytes,getDownloadURL,getMetadata,getStorage,getStream,list,listAll,ref,updateMetadata,uploadBytes,uploadBytesResumable,uploadString};
//# sourceMappingURL=firebase-storage.js.map

@@ -1,3 +0,3 @@

import{_isFirebaseServerApp as e,_getProvider,getApp as t,_registerComponent as n,registerVersion as s}from"https://www.gstatic.com/firebasejs/11.3.0-canary.70e08cf95/firebase-app.js";class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},s=`${this.service}/${e}`,r=this.errors[e],i=r?function replaceTemplate(e,t){return e.replace(o,((e,n)=>{const s=t[n];return null!=s?String(s):`<${n}?>`}))}(r,n):"Error",a=`${this.serviceName}: ${i} (${s}).`;return new FirebaseError(s,a,n)}}const o=/\{\$([^}]+)}/g;class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}var r;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(r||(r={}));const i={debug:r.DEBUG,verbose:r.VERBOSE,info:r.INFO,warn:r.WARN,error:r.ERROR,silent:r.SILENT},a=r.INFO,c={[r.DEBUG]:"log",[r.VERBOSE]:"log",[r.INFO]:"info",[r.WARN]:"warn",[r.ERROR]:"error"},defaultLogHandler=(e,t,...n)=>{if(t<e.logLevel)return;const s=(new Date).toISOString(),o=c[t];if(!o)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[o](`[${s}] ${e.name}:`,...n)};function __await(e){return this instanceof __await?(this.v=e,this):new __await(e)}function __asyncGenerator(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s,o=n.apply(e,t||[]),r=[];return s=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),verb("next"),verb("throw"),verb("return",(function awaitReturn(e){return function(t){return Promise.resolve(t).then(e,reject)}})),s[Symbol.asyncIterator]=function(){return this},s;function verb(e,t){o[e]&&(s[e]=function(t){return new Promise((function(n,s){r.push([e,t,n,s])>1||resume(e,t)}))},t&&(s[e]=t(s[e])))}function resume(e,t){try{!function step(e){e.value instanceof __await?Promise.resolve(e.value.v).then(fulfill,reject):settle(r[0][2],e)}(o[e](t))}catch(e){settle(r[0][3],e)}}function fulfill(e){resume("next",e)}function reject(e){resume("throw",e)}function settle(e,t){e(t),r.shift(),r.length&&resume(r[0][0],r[0][1])}}"function"==typeof SuppressedError&&SuppressedError;var l="@firebase/vertexai",u="1.0.4-canary.70e08cf95";const d="vertexAI",h="us-central1",p=u;class VertexAIService{constructor(e,t,n,s){var o;this.app=e,this.options=s;const r=null==n?void 0:n.getImmediate({optional:!0}),i=null==t?void 0:t.getImmediate({optional:!0});this.auth=i||null,this.appCheck=r||null,this.location=(null===(o=this.options)||void 0===o?void 0:o.location)||h}_delete(){return Promise.resolve()}}class VertexAIError extends FirebaseError{constructor(e,t,n){const s=`VertexAI: ${t} (${`${d}/${e}`})`;super(e,s),this.code=e,this.customErrorData=n,Error.captureStackTrace&&Error.captureStackTrace(this,VertexAIError),Object.setPrototypeOf(this,VertexAIError.prototype),this.toString=()=>s}}const g=new class Logger{constructor(e){this.name=e,this._logLevel=a,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in r))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?i[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,r.DEBUG,...e),this._logHandler(this,r.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,r.VERBOSE,...e),this._logHandler(this,r.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,r.INFO,...e),this._logHandler(this,r.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,r.WARN,...e),this._logHandler(this,r.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,r.ERROR,...e),this._logHandler(this,r.ERROR,...e)}}("@firebase/vertexai");var f;!function(e){e.GENERATE_CONTENT="generateContent",e.STREAM_GENERATE_CONTENT="streamGenerateContent",e.COUNT_TOKENS="countTokens"}(f||(f={}));class RequestUrl{constructor(e,t,n,s,o){this.model=e,this.task=t,this.apiSettings=n,this.stream=s,this.requestOptions=o}toString(){var e;let t=`${(null===(e=this.requestOptions)||void 0===e?void 0:e.baseUrl)||"https://firebasevertexai.googleapis.com"}/v1beta`;return t+=`/projects/${this.apiSettings.project}`,t+=`/locations/${this.apiSettings.location}`,t+=`/${this.model}`,t+=`:${this.task}`,this.stream&&(t+="?alt=sse"),t}get fullModelString(){let e=`projects/${this.apiSettings.project}`;return e+=`/locations/${this.apiSettings.location}`,e+=`/${this.model}`,e}}async function getHeaders(e){const t=new Headers;if(t.append("Content-Type","application/json"),t.append("x-goog-api-client",function getClientHeaders(){const e=[];return e.push(`gl-js/${p}`),e.push(`fire/${p}`),e.join(" ")}()),t.append("x-goog-api-key",e.apiSettings.apiKey),e.apiSettings.getAppCheckToken){const n=await e.apiSettings.getAppCheckToken();n&&(t.append("X-Firebase-AppCheck",n.token),n.error&&g.warn(`Unable to obtain a valid App Check token: ${n.error.message}`))}if(e.apiSettings.getAuthToken){const n=await e.apiSettings.getAuthToken();n&&t.append("Authorization",`Firebase ${n.accessToken}`)}return t}async function makeRequest(e,t,n,s,o,r){const i=new RequestUrl(e,t,n,s,r);let a,c;try{const l=await async function constructRequest(e,t,n,s,o,r){const i=new RequestUrl(e,t,n,s,r);return{url:i.toString(),fetchOptions:{method:"POST",headers:await getHeaders(i),body:o}}}(e,t,n,s,o,r),u=null!=(null==r?void 0:r.timeout)&&r.timeout>=0?r.timeout:18e4,d=new AbortController;if(c=setTimeout((()=>d.abort()),u),l.fetchOptions.signal=d.signal,a=await fetch(l.url,l.fetchOptions),!a.ok){let e,t="";try{const n=await a.json();t=n.error.message,n.error.details&&(t+=` ${JSON.stringify(n.error.details)}`,e=n.error.details)}catch(e){}if(403===a.status&&e.some((e=>"SERVICE_DISABLED"===e.reason))&&e.some((e=>{var t,n;return null===(n=null===(t=e.links)||void 0===t?void 0:t[0])||void 0===n?void 0:n.description.includes("Google developers console API activation")})))throw new VertexAIError("api-not-enabled",`The Vertex AI in Firebase SDK requires the Vertex AI in Firebase API ('firebasevertexai.googleapis.com') to be enabled in your Firebase project. Enable this API by visiting the Firebase Console at https://console.firebase.google.com/project/${i.apiSettings.project}/genai/ and clicking "Get started". If you enabled this API recently, wait a few minutes for the action to propagate to our systems and then retry.`,{status:a.status,statusText:a.statusText,errorDetails:e});throw new VertexAIError("fetch-error",`Error fetching from ${i}: [${a.status} ${a.statusText}] ${t}`,{status:a.status,statusText:a.statusText,errorDetails:e})}}catch(e){let t=e;throw"fetch-error"!==e.code&&"api-not-enabled"!==e.code&&e instanceof Error&&(t=new VertexAIError("error",`Error fetching from ${i.toString()}: ${e.message}`),t.stack=e.stack),t}finally{c&&clearTimeout(c)}return a}const m=["user","model","function","system"];var E,S,v,y,I,R,O,_,A;function createEnhancedContentResponse(e){e.candidates&&!e.candidates[0].hasOwnProperty("index")&&(e.candidates[0].index=0);const t=function addHelpers(e){return e.text=()=>{if(e.candidates&&e.candidates.length>0){if(e.candidates.length>1&&g.warn(`This response had ${e.candidates.length} candidates. Returning text from the first candidate only. Access response.candidates directly to use the other candidates.`),hadBadFinishReason(e.candidates[0]))throw new VertexAIError("response-error",`Response error: ${formatBlockErrorMessage(e)}. Response body stored in error.response`,{response:e});return function getText(e){var t,n,s,o;const r=[];if(null===(n=null===(t=e.candidates)||void 0===t?void 0:t[0].content)||void 0===n?void 0:n.parts)for(const t of null===(o=null===(s=e.candidates)||void 0===s?void 0:s[0].content)||void 0===o?void 0:o.parts)t.text&&r.push(t.text);return r.length>0?r.join(""):""}(e)}if(e.promptFeedback)throw new VertexAIError("response-error",`Text not available. ${formatBlockErrorMessage(e)}`,{response:e});return""},e.functionCalls=()=>{if(e.candidates&&e.candidates.length>0){if(e.candidates.length>1&&g.warn(`This response had ${e.candidates.length} candidates. Returning function calls from the first candidate only. Access response.candidates directly to use the other candidates.`),hadBadFinishReason(e.candidates[0]))throw new VertexAIError("response-error",`Response error: ${formatBlockErrorMessage(e)}. Response body stored in error.response`,{response:e});return function getFunctionCalls(e){var t,n,s,o;const r=[];if(null===(n=null===(t=e.candidates)||void 0===t?void 0:t[0].content)||void 0===n?void 0:n.parts)for(const t of null===(o=null===(s=e.candidates)||void 0===s?void 0:s[0].content)||void 0===o?void 0:o.parts)t.functionCall&&r.push(t.functionCall);return r.length>0?r:void 0}(e)}if(e.promptFeedback)throw new VertexAIError("response-error",`Function call not available. ${formatBlockErrorMessage(e)}`,{response:e})},e}(e);return t}!function(e){e.HARM_CATEGORY_HATE_SPEECH="HARM_CATEGORY_HATE_SPEECH",e.HARM_CATEGORY_SEXUALLY_EXPLICIT="HARM_CATEGORY_SEXUALLY_EXPLICIT",e.HARM_CATEGORY_HARASSMENT="HARM_CATEGORY_HARASSMENT",e.HARM_CATEGORY_DANGEROUS_CONTENT="HARM_CATEGORY_DANGEROUS_CONTENT"}(E||(E={})),function(e){e.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",e.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",e.BLOCK_ONLY_HIGH="BLOCK_ONLY_HIGH",e.BLOCK_NONE="BLOCK_NONE"}(S||(S={})),function(e){e.SEVERITY="SEVERITY",e.PROBABILITY="PROBABILITY"}(v||(v={})),function(e){e.NEGLIGIBLE="NEGLIGIBLE",e.LOW="LOW",e.MEDIUM="MEDIUM",e.HIGH="HIGH"}(y||(y={})),function(e){e.HARM_SEVERITY_NEGLIGIBLE="HARM_SEVERITY_NEGLIGIBLE",e.HARM_SEVERITY_LOW="HARM_SEVERITY_LOW",e.HARM_SEVERITY_MEDIUM="HARM_SEVERITY_MEDIUM",e.HARM_SEVERITY_HIGH="HARM_SEVERITY_HIGH"}(I||(I={})),function(e){e.SAFETY="SAFETY",e.OTHER="OTHER"}(R||(R={})),function(e){e.STOP="STOP",e.MAX_TOKENS="MAX_TOKENS",e.SAFETY="SAFETY",e.RECITATION="RECITATION",e.OTHER="OTHER"}(O||(O={})),function(e){e.AUTO="AUTO",e.ANY="ANY",e.NONE="NONE"}(_||(_={})),function(e){e.STRING="string",e.NUMBER="number",e.INTEGER="integer",e.BOOLEAN="boolean",e.ARRAY="array",e.OBJECT="object"}(A||(A={}));const w=[O.RECITATION,O.SAFETY];function hadBadFinishReason(e){return!!e.finishReason&&w.includes(e.finishReason)}function formatBlockErrorMessage(e){var t,n,s;let o="";if(e.candidates&&0!==e.candidates.length||!e.promptFeedback){if(null===(s=e.candidates)||void 0===s?void 0:s[0]){const t=e.candidates[0];hadBadFinishReason(t)&&(o+=`Candidate was blocked due to ${t.finishReason}`,t.finishMessage&&(o+=`: ${t.finishMessage}`))}}else o+="Response was blocked",(null===(t=e.promptFeedback)||void 0===t?void 0:t.blockReason)&&(o+=` due to ${e.promptFeedback.blockReason}`),(null===(n=e.promptFeedback)||void 0===n?void 0:n.blockReasonMessage)&&(o+=`: ${e.promptFeedback.blockReasonMessage}`);return o}const C=/^data\: (.*)(?:\n\n|\r\r|\r\n\r\n)/;function processStream(e){const t=function getResponseStream(e){const t=e.getReader();return new ReadableStream({start(e){let n="";return pump();function pump(){return t.read().then((({value:t,done:s})=>{if(s)return n.trim()?void e.error(new VertexAIError("parse-failed","Failed to parse stream")):void e.close();n+=t;let o,r=n.match(C);for(;r;){try{o=JSON.parse(r[1])}catch(t){return void e.error(new VertexAIError("parse-failed",`Error parsing JSON response: "${r[1]}`))}e.enqueue(o),n=n.substring(r[0].length),r=n.match(C)}return pump()}))}}})}(e.body.pipeThrough(new TextDecoderStream("utf8",{fatal:!0}))),[n,s]=t.tee();return{stream:generateResponseSequence(n),response:getResponsePromise(s)}}async function getResponsePromise(e){const t=[],n=e.getReader();for(;;){const{done:e,value:s}=await n.read();if(e){return createEnhancedContentResponse(aggregateResponses(t))}t.push(s)}}function generateResponseSequence(e){return __asyncGenerator(this,arguments,(function*generateResponseSequence_1(){const t=e.getReader();for(;;){const{value:e,done:n}=yield __await(t.read());if(n)break;const s=createEnhancedContentResponse(e);yield yield __await(s)}}))}function aggregateResponses(e){const t=e[e.length-1],n={promptFeedback:null==t?void 0:t.promptFeedback};for(const t of e)if(t.candidates)for(const e of t.candidates){const t=e.index||0;if(n.candidates||(n.candidates=[]),n.candidates[t]||(n.candidates[t]={index:e.index}),n.candidates[t].citationMetadata=e.citationMetadata,n.candidates[t].finishReason=e.finishReason,n.candidates[t].finishMessage=e.finishMessage,n.candidates[t].safetyRatings=e.safetyRatings,e.content&&e.content.parts){n.candidates[t].content||(n.candidates[t].content={role:e.content.role||"user",parts:[]});const s={};for(const o of e.content.parts)o.text&&(s.text=o.text),o.functionCall&&(s.functionCall=o.functionCall),0===Object.keys(s).length&&(s.text=""),n.candidates[t].content.parts.push(s)}}return n}async function generateContentStream(e,t,n,s){return processStream(await makeRequest(t,f.STREAM_GENERATE_CONTENT,e,!0,JSON.stringify(n),s))}async function generateContent(e,t,n,s){const o=await makeRequest(t,f.GENERATE_CONTENT,e,!1,JSON.stringify(n),s);return{response:createEnhancedContentResponse(await o.json())}}function formatSystemInstruction(e){if(null!=e)return"string"==typeof e?{role:"system",parts:[{text:e}]}:e.text?{role:"system",parts:[e]}:e.parts?e.role?e:{role:"system",parts:e.parts}:void 0}function formatNewContent(e){let t=[];if("string"==typeof e)t=[{text:e}];else for(const n of e)"string"==typeof n?t.push({text:n}):t.push(n);return function assignRoleToPartsAndValidateSendMessageRequest(e){const t={role:"user",parts:[]},n={role:"function",parts:[]};let s=!1,o=!1;for(const r of e)"functionResponse"in r?(n.parts.push(r),o=!0):(t.parts.push(r),s=!0);if(s&&o)throw new VertexAIError("invalid-content","Within a single message, FunctionResponse cannot be mixed with other type of Part in the request for sending chat message.");if(!s&&!o)throw new VertexAIError("invalid-content","No Content is provided for sending chat message.");if(s)return t;return n}(t)}function formatGenerateContentInput(e){let t;if(e.contents)t=e;else{t={contents:[formatNewContent(e)]}}return e.systemInstruction&&(t.systemInstruction=formatSystemInstruction(e.systemInstruction)),t}const T=["text","inlineData","functionCall","functionResponse"],b={user:["text","inlineData"],function:["functionResponse"],model:["text","functionCall"],system:["text"]},N={user:["model"],function:["model"],model:["user","function"],system:[]};const x="SILENT_ERROR";class ChatSession{constructor(e,t,n,s){this.model=t,this.params=n,this.requestOptions=s,this._history=[],this._sendPromise=Promise.resolve(),this._apiSettings=e,(null==n?void 0:n.history)&&(!function validateChatHistory(e){let t=null;for(const n of e){const{role:e,parts:s}=n;if(!t&&"user"!==e)throw new VertexAIError("invalid-content",`First Content should be with role 'user', got ${e}`);if(!m.includes(e))throw new VertexAIError("invalid-content",`Each item should include role field. Got ${e} but valid roles are: ${JSON.stringify(m)}`);if(!Array.isArray(s))throw new VertexAIError("invalid-content","Content should have 'parts' but property with an array of Parts");if(0===s.length)throw new VertexAIError("invalid-content","Each Content should have at least one part");const o={text:0,inlineData:0,functionCall:0,functionResponse:0};for(const e of s)for(const t of T)t in e&&(o[t]+=1);const r=b[e];for(const t of T)if(!r.includes(t)&&o[t]>0)throw new VertexAIError("invalid-content",`Content with role '${e}' can't contain '${t}' part`);if(t&&!N[e].includes(t.role))throw new VertexAIError("invalid-content",`Content with role '${e} can't follow '${t.role}'. Valid previous roles: ${JSON.stringify(N)}`);t=n}}(n.history),this._history=n.history)}async getHistory(){return await this._sendPromise,this._history}async sendMessage(e){var t,n,s,o,r;await this._sendPromise;const i=formatNewContent(e),a={safetySettings:null===(t=this.params)||void 0===t?void 0:t.safetySettings,generationConfig:null===(n=this.params)||void 0===n?void 0:n.generationConfig,tools:null===(s=this.params)||void 0===s?void 0:s.tools,toolConfig:null===(o=this.params)||void 0===o?void 0:o.toolConfig,systemInstruction:null===(r=this.params)||void 0===r?void 0:r.systemInstruction,contents:[...this._history,i]};let c={};return this._sendPromise=this._sendPromise.then((()=>generateContent(this._apiSettings,this.model,a,this.requestOptions))).then((e=>{var t,n;if(e.response.candidates&&e.response.candidates.length>0){this._history.push(i);const s={parts:(null===(t=e.response.candidates)||void 0===t?void 0:t[0].content.parts)||[],role:(null===(n=e.response.candidates)||void 0===n?void 0:n[0].content.role)||"model"};this._history.push(s)}else{const t=formatBlockErrorMessage(e.response);t&&g.warn(`sendMessage() was unsuccessful. ${t}. Inspect response object for details.`)}c=e})),await this._sendPromise,c}async sendMessageStream(e){var t,n,s,o,r;await this._sendPromise;const i=formatNewContent(e),a={safetySettings:null===(t=this.params)||void 0===t?void 0:t.safetySettings,generationConfig:null===(n=this.params)||void 0===n?void 0:n.generationConfig,tools:null===(s=this.params)||void 0===s?void 0:s.tools,toolConfig:null===(o=this.params)||void 0===o?void 0:o.toolConfig,systemInstruction:null===(r=this.params)||void 0===r?void 0:r.systemInstruction,contents:[...this._history,i]},c=generateContentStream(this._apiSettings,this.model,a,this.requestOptions);return this._sendPromise=this._sendPromise.then((()=>c)).catch((e=>{throw new Error(x)})).then((e=>e.response)).then((e=>{if(e.candidates&&e.candidates.length>0){this._history.push(i);const t=Object.assign({},e.candidates[0].content);t.role||(t.role="model"),this._history.push(t)}else{const t=formatBlockErrorMessage(e);t&&g.warn(`sendMessageStream() was unsuccessful. ${t}. Inspect response object for details.`)}})).catch((e=>{e.message!==x&&g.error(e)})),c}}class GenerativeModel{constructor(t,n,s){var o,r,i,a;if(!(null===(r=null===(o=t.app)||void 0===o?void 0:o.options)||void 0===r?void 0:r.apiKey))throw new VertexAIError("no-api-key",'The "apiKey" field is empty in the local Firebase config. Firebase VertexAI requires this field to contain a valid API key.');if(!(null===(a=null===(i=t.app)||void 0===i?void 0:i.options)||void 0===a?void 0:a.projectId))throw new VertexAIError("no-project-id",'The "projectId" field is empty in the local Firebase config. Firebase VertexAI requires this field to contain a valid project ID.');if(this._apiSettings={apiKey:t.app.options.apiKey,project:t.app.options.projectId,location:t.location},e(t.app)&&t.app.settings.appCheckToken){const e=t.app.settings.appCheckToken;this._apiSettings.getAppCheckToken=()=>Promise.resolve({token:e})}else t.appCheck&&(this._apiSettings.getAppCheckToken=()=>t.appCheck.getToken());t.auth&&(this._apiSettings.getAuthToken=()=>t.auth.getToken()),n.model.includes("/")?n.model.startsWith("models/")?this.model=`publishers/google/${n.model}`:this.model=n.model:this.model=`publishers/google/models/${n.model}`,this.generationConfig=n.generationConfig||{},this.safetySettings=n.safetySettings||[],this.tools=n.tools,this.toolConfig=n.toolConfig,this.systemInstruction=formatSystemInstruction(n.systemInstruction),this.requestOptions=s||{}}async generateContent(e){const t=formatGenerateContentInput(e);return generateContent(this._apiSettings,this.model,Object.assign({generationConfig:this.generationConfig,safetySettings:this.safetySettings,tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction},t),this.requestOptions)}async generateContentStream(e){const t=formatGenerateContentInput(e);return generateContentStream(this._apiSettings,this.model,Object.assign({generationConfig:this.generationConfig,safetySettings:this.safetySettings,tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction},t),this.requestOptions)}startChat(e){return new ChatSession(this._apiSettings,this.model,Object.assign({tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction},e),this.requestOptions)}async countTokens(e){const t=formatGenerateContentInput(e);return async function countTokens(e,t,n,s){return(await makeRequest(t,f.COUNT_TOKENS,e,!1,JSON.stringify(n),s)).json()}(this._apiSettings,this.model,t)}}class Schema{constructor(e){for(const t in e)this[t]=e[t];this.type=e.type,this.nullable=!!e.hasOwnProperty("nullable")&&!!e.nullable}toJSON(){const e={type:this.type};for(const t in this)this.hasOwnProperty(t)&&void 0!==this[t]&&("required"===t&&this.type!==A.OBJECT||(e[t]=this[t]));return e}static array(e){return new ArraySchema(e,e.items)}static object(e){return new ObjectSchema(e,e.properties,e.optionalProperties)}static string(e){return new StringSchema(e)}static enumString(e){return new StringSchema(e,e.enum)}static integer(e){return new IntegerSchema(e)}static number(e){return new NumberSchema(e)}static boolean(e){return new BooleanSchema(e)}}class IntegerSchema extends Schema{constructor(e){super(Object.assign({type:A.INTEGER},e))}}class NumberSchema extends Schema{constructor(e){super(Object.assign({type:A.NUMBER},e))}}class BooleanSchema extends Schema{constructor(e){super(Object.assign({type:A.BOOLEAN},e))}}class StringSchema extends Schema{constructor(e,t){super(Object.assign({type:A.STRING},e)),this.enum=t}toJSON(){const e=super.toJSON();return this.enum&&(e.enum=this.enum),e}}class ArraySchema extends Schema{constructor(e,t){super(Object.assign({type:A.ARRAY},e)),this.items=t}toJSON(){const e=super.toJSON();return e.items=this.items.toJSON(),e}}class ObjectSchema extends Schema{constructor(e,t,n=[]){super(Object.assign({type:A.OBJECT},e)),this.properties=t,this.optionalProperties=n}toJSON(){const e=super.toJSON();e.properties=Object.assign({},this.properties);const t=[];if(this.optionalProperties)for(const e of this.optionalProperties)if(!this.properties.hasOwnProperty(e))throw new VertexAIError("invalid-schema",`Property "${e}" specified in "optionalProperties" does not exist.`);for(const n in this.properties)this.properties.hasOwnProperty(n)&&(e.properties[n]=this.properties[n].toJSON(),this.optionalProperties.includes(n)||t.push(n));return t.length>0&&(e.required=t),delete e.optionalProperties,e}}function getVertexAI(e=t(),n){e=function getModularInstance(e){return e&&e._delegate?e._delegate:e}(e);return _getProvider(e,d).getImmediate({identifier:(null==n?void 0:n.location)||h})}function getGenerativeModel(e,t,n){if(!t.model)throw new VertexAIError("no-model","Must provide a model name. Example: getGenerativeModel({ model: 'my-model-name' })");return new GenerativeModel(e,t,n)}!function registerVertex(){n(new Component(d,((e,{instanceIdentifier:t})=>{const n=e.getProvider("app").getImmediate(),s=e.getProvider("auth-internal"),o=e.getProvider("app-check-internal");return new VertexAIService(n,s,o,{location:t})}),"PUBLIC").setMultipleInstances(!0)),s(l,u),s(l,u,"esm2017")}();export{ArraySchema,R as BlockReason,BooleanSchema,ChatSession,O as FinishReason,_ as FunctionCallingMode,GenerativeModel,v as HarmBlockMethod,S as HarmBlockThreshold,E as HarmCategory,y as HarmProbability,I as HarmSeverity,IntegerSchema,NumberSchema,ObjectSchema,m as POSSIBLE_ROLES,Schema,A as SchemaType,StringSchema,VertexAIError,getGenerativeModel,getVertexAI};
import{_isFirebaseServerApp as e,_getProvider,getApp as t,_registerComponent as n,registerVersion as s}from"https://www.gstatic.com/firebasejs/11.3.0-canary.84dfeca39/firebase-app.js";class FirebaseError extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,FirebaseError.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},s=`${this.service}/${e}`,r=this.errors[e],i=r?function replaceTemplate(e,t){return e.replace(o,((e,n)=>{const s=t[n];return null!=s?String(s):`<${n}?>`}))}(r,n):"Error",a=`${this.serviceName}: ${i} (${s}).`;return new FirebaseError(s,a,n)}}const o=/\{\$([^}]+)}/g;class Component{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,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}}var r;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(r||(r={}));const i={debug:r.DEBUG,verbose:r.VERBOSE,info:r.INFO,warn:r.WARN,error:r.ERROR,silent:r.SILENT},a=r.INFO,c={[r.DEBUG]:"log",[r.VERBOSE]:"log",[r.INFO]:"info",[r.WARN]:"warn",[r.ERROR]:"error"},defaultLogHandler=(e,t,...n)=>{if(t<e.logLevel)return;const s=(new Date).toISOString(),o=c[t];if(!o)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[o](`[${s}] ${e.name}:`,...n)};function __await(e){return this instanceof __await?(this.v=e,this):new __await(e)}function __asyncGenerator(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s,o=n.apply(e,t||[]),r=[];return s=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),verb("next"),verb("throw"),verb("return",(function awaitReturn(e){return function(t){return Promise.resolve(t).then(e,reject)}})),s[Symbol.asyncIterator]=function(){return this},s;function verb(e,t){o[e]&&(s[e]=function(t){return new Promise((function(n,s){r.push([e,t,n,s])>1||resume(e,t)}))},t&&(s[e]=t(s[e])))}function resume(e,t){try{!function step(e){e.value instanceof __await?Promise.resolve(e.value.v).then(fulfill,reject):settle(r[0][2],e)}(o[e](t))}catch(e){settle(r[0][3],e)}}function fulfill(e){resume("next",e)}function reject(e){resume("throw",e)}function settle(e,t){e(t),r.shift(),r.length&&resume(r[0][0],r[0][1])}}"function"==typeof SuppressedError&&SuppressedError;var l="@firebase/vertexai",u="1.0.4-canary.84dfeca39";const d="vertexAI",h="us-central1",p=u;class VertexAIService{constructor(e,t,n,s){var o;this.app=e,this.options=s;const r=null==n?void 0:n.getImmediate({optional:!0}),i=null==t?void 0:t.getImmediate({optional:!0});this.auth=i||null,this.appCheck=r||null,this.location=(null===(o=this.options)||void 0===o?void 0:o.location)||h}_delete(){return Promise.resolve()}}class VertexAIError extends FirebaseError{constructor(e,t,n){const s=`VertexAI: ${t} (${`${d}/${e}`})`;super(e,s),this.code=e,this.customErrorData=n,Error.captureStackTrace&&Error.captureStackTrace(this,VertexAIError),Object.setPrototypeOf(this,VertexAIError.prototype),this.toString=()=>s}}const f=new class Logger{constructor(e){this.name=e,this._logLevel=a,this._logHandler=defaultLogHandler,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in r))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?i[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,r.DEBUG,...e),this._logHandler(this,r.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,r.VERBOSE,...e),this._logHandler(this,r.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,r.INFO,...e),this._logHandler(this,r.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,r.WARN,...e),this._logHandler(this,r.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,r.ERROR,...e),this._logHandler(this,r.ERROR,...e)}}("@firebase/vertexai");var g;!function(e){e.GENERATE_CONTENT="generateContent",e.STREAM_GENERATE_CONTENT="streamGenerateContent",e.COUNT_TOKENS="countTokens"}(g||(g={}));class RequestUrl{constructor(e,t,n,s,o){this.model=e,this.task=t,this.apiSettings=n,this.stream=s,this.requestOptions=o}toString(){var e;let t=`${(null===(e=this.requestOptions)||void 0===e?void 0:e.baseUrl)||"https://firebasevertexai.googleapis.com"}/v1beta`;return t+=`/projects/${this.apiSettings.project}`,t+=`/locations/${this.apiSettings.location}`,t+=`/${this.model}`,t+=`:${this.task}`,this.stream&&(t+="?alt=sse"),t}get fullModelString(){let e=`projects/${this.apiSettings.project}`;return e+=`/locations/${this.apiSettings.location}`,e+=`/${this.model}`,e}}async function getHeaders(e){const t=new Headers;if(t.append("Content-Type","application/json"),t.append("x-goog-api-client",function getClientHeaders(){const e=[];return e.push(`gl-js/${p}`),e.push(`fire/${p}`),e.join(" ")}()),t.append("x-goog-api-key",e.apiSettings.apiKey),e.apiSettings.getAppCheckToken){const n=await e.apiSettings.getAppCheckToken();n&&(t.append("X-Firebase-AppCheck",n.token),n.error&&f.warn(`Unable to obtain a valid App Check token: ${n.error.message}`))}if(e.apiSettings.getAuthToken){const n=await e.apiSettings.getAuthToken();n&&t.append("Authorization",`Firebase ${n.accessToken}`)}return t}async function makeRequest(e,t,n,s,o,r){const i=new RequestUrl(e,t,n,s,r);let a,c;try{const l=await async function constructRequest(e,t,n,s,o,r){const i=new RequestUrl(e,t,n,s,r);return{url:i.toString(),fetchOptions:{method:"POST",headers:await getHeaders(i),body:o}}}(e,t,n,s,o,r),u=null!=(null==r?void 0:r.timeout)&&r.timeout>=0?r.timeout:18e4,d=new AbortController;if(c=setTimeout((()=>d.abort()),u),l.fetchOptions.signal=d.signal,a=await fetch(l.url,l.fetchOptions),!a.ok){let e,t="";try{const n=await a.json();t=n.error.message,n.error.details&&(t+=` ${JSON.stringify(n.error.details)}`,e=n.error.details)}catch(e){}if(403===a.status&&e.some((e=>"SERVICE_DISABLED"===e.reason))&&e.some((e=>{var t,n;return null===(n=null===(t=e.links)||void 0===t?void 0:t[0])||void 0===n?void 0:n.description.includes("Google developers console API activation")})))throw new VertexAIError("api-not-enabled",`The Vertex AI in Firebase SDK requires the Vertex AI in Firebase API ('firebasevertexai.googleapis.com') to be enabled in your Firebase project. Enable this API by visiting the Firebase Console at https://console.firebase.google.com/project/${i.apiSettings.project}/genai/ and clicking "Get started". If you enabled this API recently, wait a few minutes for the action to propagate to our systems and then retry.`,{status:a.status,statusText:a.statusText,errorDetails:e});throw new VertexAIError("fetch-error",`Error fetching from ${i}: [${a.status} ${a.statusText}] ${t}`,{status:a.status,statusText:a.statusText,errorDetails:e})}}catch(e){let t=e;throw"fetch-error"!==e.code&&"api-not-enabled"!==e.code&&e instanceof Error&&(t=new VertexAIError("error",`Error fetching from ${i.toString()}: ${e.message}`),t.stack=e.stack),t}finally{c&&clearTimeout(c)}return a}const m=["user","model","function","system"];var E,S,v,y,I,R,O,_,A;function createEnhancedContentResponse(e){e.candidates&&!e.candidates[0].hasOwnProperty("index")&&(e.candidates[0].index=0);const t=function addHelpers(e){return e.text=()=>{if(e.candidates&&e.candidates.length>0){if(e.candidates.length>1&&f.warn(`This response had ${e.candidates.length} candidates. Returning text from the first candidate only. Access response.candidates directly to use the other candidates.`),hadBadFinishReason(e.candidates[0]))throw new VertexAIError("response-error",`Response error: ${formatBlockErrorMessage(e)}. Response body stored in error.response`,{response:e});return function getText(e){var t,n,s,o;const r=[];if(null===(n=null===(t=e.candidates)||void 0===t?void 0:t[0].content)||void 0===n?void 0:n.parts)for(const t of null===(o=null===(s=e.candidates)||void 0===s?void 0:s[0].content)||void 0===o?void 0:o.parts)t.text&&r.push(t.text);return r.length>0?r.join(""):""}(e)}if(e.promptFeedback)throw new VertexAIError("response-error",`Text not available. ${formatBlockErrorMessage(e)}`,{response:e});return""},e.functionCalls=()=>{if(e.candidates&&e.candidates.length>0){if(e.candidates.length>1&&f.warn(`This response had ${e.candidates.length} candidates. Returning function calls from the first candidate only. Access response.candidates directly to use the other candidates.`),hadBadFinishReason(e.candidates[0]))throw new VertexAIError("response-error",`Response error: ${formatBlockErrorMessage(e)}. Response body stored in error.response`,{response:e});return function getFunctionCalls(e){var t,n,s,o;const r=[];if(null===(n=null===(t=e.candidates)||void 0===t?void 0:t[0].content)||void 0===n?void 0:n.parts)for(const t of null===(o=null===(s=e.candidates)||void 0===s?void 0:s[0].content)||void 0===o?void 0:o.parts)t.functionCall&&r.push(t.functionCall);return r.length>0?r:void 0}(e)}if(e.promptFeedback)throw new VertexAIError("response-error",`Function call not available. ${formatBlockErrorMessage(e)}`,{response:e})},e}(e);return t}!function(e){e.HARM_CATEGORY_HATE_SPEECH="HARM_CATEGORY_HATE_SPEECH",e.HARM_CATEGORY_SEXUALLY_EXPLICIT="HARM_CATEGORY_SEXUALLY_EXPLICIT",e.HARM_CATEGORY_HARASSMENT="HARM_CATEGORY_HARASSMENT",e.HARM_CATEGORY_DANGEROUS_CONTENT="HARM_CATEGORY_DANGEROUS_CONTENT"}(E||(E={})),function(e){e.BLOCK_LOW_AND_ABOVE="BLOCK_LOW_AND_ABOVE",e.BLOCK_MEDIUM_AND_ABOVE="BLOCK_MEDIUM_AND_ABOVE",e.BLOCK_ONLY_HIGH="BLOCK_ONLY_HIGH",e.BLOCK_NONE="BLOCK_NONE"}(S||(S={})),function(e){e.SEVERITY="SEVERITY",e.PROBABILITY="PROBABILITY"}(v||(v={})),function(e){e.NEGLIGIBLE="NEGLIGIBLE",e.LOW="LOW",e.MEDIUM="MEDIUM",e.HIGH="HIGH"}(y||(y={})),function(e){e.HARM_SEVERITY_NEGLIGIBLE="HARM_SEVERITY_NEGLIGIBLE",e.HARM_SEVERITY_LOW="HARM_SEVERITY_LOW",e.HARM_SEVERITY_MEDIUM="HARM_SEVERITY_MEDIUM",e.HARM_SEVERITY_HIGH="HARM_SEVERITY_HIGH"}(I||(I={})),function(e){e.SAFETY="SAFETY",e.OTHER="OTHER"}(R||(R={})),function(e){e.STOP="STOP",e.MAX_TOKENS="MAX_TOKENS",e.SAFETY="SAFETY",e.RECITATION="RECITATION",e.OTHER="OTHER"}(O||(O={})),function(e){e.AUTO="AUTO",e.ANY="ANY",e.NONE="NONE"}(_||(_={})),function(e){e.STRING="string",e.NUMBER="number",e.INTEGER="integer",e.BOOLEAN="boolean",e.ARRAY="array",e.OBJECT="object"}(A||(A={}));const w=[O.RECITATION,O.SAFETY];function hadBadFinishReason(e){return!!e.finishReason&&w.includes(e.finishReason)}function formatBlockErrorMessage(e){var t,n,s;let o="";if(e.candidates&&0!==e.candidates.length||!e.promptFeedback){if(null===(s=e.candidates)||void 0===s?void 0:s[0]){const t=e.candidates[0];hadBadFinishReason(t)&&(o+=`Candidate was blocked due to ${t.finishReason}`,t.finishMessage&&(o+=`: ${t.finishMessage}`))}}else o+="Response was blocked",(null===(t=e.promptFeedback)||void 0===t?void 0:t.blockReason)&&(o+=` due to ${e.promptFeedback.blockReason}`),(null===(n=e.promptFeedback)||void 0===n?void 0:n.blockReasonMessage)&&(o+=`: ${e.promptFeedback.blockReasonMessage}`);return o}const T=/^data\: (.*)(?:\n\n|\r\r|\r\n\r\n)/;function processStream(e){const t=function getResponseStream(e){const t=e.getReader();return new ReadableStream({start(e){let n="";return pump();function pump(){return t.read().then((({value:t,done:s})=>{if(s)return n.trim()?void e.error(new VertexAIError("parse-failed","Failed to parse stream")):void e.close();n+=t;let o,r=n.match(T);for(;r;){try{o=JSON.parse(r[1])}catch(t){return void e.error(new VertexAIError("parse-failed",`Error parsing JSON response: "${r[1]}`))}e.enqueue(o),n=n.substring(r[0].length),r=n.match(T)}return pump()}))}}})}(e.body.pipeThrough(new TextDecoderStream("utf8",{fatal:!0}))),[n,s]=t.tee();return{stream:generateResponseSequence(n),response:getResponsePromise(s)}}async function getResponsePromise(e){const t=[],n=e.getReader();for(;;){const{done:e,value:s}=await n.read();if(e){return createEnhancedContentResponse(aggregateResponses(t))}t.push(s)}}function generateResponseSequence(e){return __asyncGenerator(this,arguments,(function*generateResponseSequence_1(){const t=e.getReader();for(;;){const{value:e,done:n}=yield __await(t.read());if(n)break;const s=createEnhancedContentResponse(e);yield yield __await(s)}}))}function aggregateResponses(e){const t=e[e.length-1],n={promptFeedback:null==t?void 0:t.promptFeedback};for(const t of e)if(t.candidates)for(const e of t.candidates){const t=e.index||0;if(n.candidates||(n.candidates=[]),n.candidates[t]||(n.candidates[t]={index:e.index}),n.candidates[t].citationMetadata=e.citationMetadata,n.candidates[t].finishReason=e.finishReason,n.candidates[t].finishMessage=e.finishMessage,n.candidates[t].safetyRatings=e.safetyRatings,e.content&&e.content.parts){n.candidates[t].content||(n.candidates[t].content={role:e.content.role||"user",parts:[]});const s={};for(const o of e.content.parts){if(void 0!==o.text){if(""===o.text)continue;s.text=o.text}if(o.functionCall&&(s.functionCall=o.functionCall),0===Object.keys(s).length)throw new VertexAIError("invalid-content","Part should have at least one property, but there are none. This is likely caused by a malformed response from the backend.");n.candidates[t].content.parts.push(s)}}}return n}async function generateContentStream(e,t,n,s){return processStream(await makeRequest(t,g.STREAM_GENERATE_CONTENT,e,!0,JSON.stringify(n),s))}async function generateContent(e,t,n,s){const o=await makeRequest(t,g.GENERATE_CONTENT,e,!1,JSON.stringify(n),s);return{response:createEnhancedContentResponse(await o.json())}}function formatSystemInstruction(e){if(null!=e)return"string"==typeof e?{role:"system",parts:[{text:e}]}:e.text?{role:"system",parts:[e]}:e.parts?e.role?e:{role:"system",parts:e.parts}:void 0}function formatNewContent(e){let t=[];if("string"==typeof e)t=[{text:e}];else for(const n of e)"string"==typeof n?t.push({text:n}):t.push(n);return function assignRoleToPartsAndValidateSendMessageRequest(e){const t={role:"user",parts:[]},n={role:"function",parts:[]};let s=!1,o=!1;for(const r of e)"functionResponse"in r?(n.parts.push(r),o=!0):(t.parts.push(r),s=!0);if(s&&o)throw new VertexAIError("invalid-content","Within a single message, FunctionResponse cannot be mixed with other type of Part in the request for sending chat message.");if(!s&&!o)throw new VertexAIError("invalid-content","No Content is provided for sending chat message.");if(s)return t;return n}(t)}function formatGenerateContentInput(e){let t;if(e.contents)t=e;else{t={contents:[formatNewContent(e)]}}return e.systemInstruction&&(t.systemInstruction=formatSystemInstruction(e.systemInstruction)),t}const C=["text","inlineData","functionCall","functionResponse"],b={user:["text","inlineData"],function:["functionResponse"],model:["text","functionCall"],system:["text"]},N={user:["model"],function:["model"],model:["user","function"],system:[]};const x="SILENT_ERROR";class ChatSession{constructor(e,t,n,s){this.model=t,this.params=n,this.requestOptions=s,this._history=[],this._sendPromise=Promise.resolve(),this._apiSettings=e,(null==n?void 0:n.history)&&(!function validateChatHistory(e){let t=null;for(const n of e){const{role:e,parts:s}=n;if(!t&&"user"!==e)throw new VertexAIError("invalid-content",`First Content should be with role 'user', got ${e}`);if(!m.includes(e))throw new VertexAIError("invalid-content",`Each item should include role field. Got ${e} but valid roles are: ${JSON.stringify(m)}`);if(!Array.isArray(s))throw new VertexAIError("invalid-content","Content should have 'parts' but property with an array of Parts");if(0===s.length)throw new VertexAIError("invalid-content","Each Content should have at least one part");const o={text:0,inlineData:0,functionCall:0,functionResponse:0};for(const e of s)for(const t of C)t in e&&(o[t]+=1);const r=b[e];for(const t of C)if(!r.includes(t)&&o[t]>0)throw new VertexAIError("invalid-content",`Content with role '${e}' can't contain '${t}' part`);if(t&&!N[e].includes(t.role))throw new VertexAIError("invalid-content",`Content with role '${e} can't follow '${t.role}'. Valid previous roles: ${JSON.stringify(N)}`);t=n}}(n.history),this._history=n.history)}async getHistory(){return await this._sendPromise,this._history}async sendMessage(e){var t,n,s,o,r;await this._sendPromise;const i=formatNewContent(e),a={safetySettings:null===(t=this.params)||void 0===t?void 0:t.safetySettings,generationConfig:null===(n=this.params)||void 0===n?void 0:n.generationConfig,tools:null===(s=this.params)||void 0===s?void 0:s.tools,toolConfig:null===(o=this.params)||void 0===o?void 0:o.toolConfig,systemInstruction:null===(r=this.params)||void 0===r?void 0:r.systemInstruction,contents:[...this._history,i]};let c={};return this._sendPromise=this._sendPromise.then((()=>generateContent(this._apiSettings,this.model,a,this.requestOptions))).then((e=>{var t,n;if(e.response.candidates&&e.response.candidates.length>0){this._history.push(i);const s={parts:(null===(t=e.response.candidates)||void 0===t?void 0:t[0].content.parts)||[],role:(null===(n=e.response.candidates)||void 0===n?void 0:n[0].content.role)||"model"};this._history.push(s)}else{const t=formatBlockErrorMessage(e.response);t&&f.warn(`sendMessage() was unsuccessful. ${t}. Inspect response object for details.`)}c=e})),await this._sendPromise,c}async sendMessageStream(e){var t,n,s,o,r;await this._sendPromise;const i=formatNewContent(e),a={safetySettings:null===(t=this.params)||void 0===t?void 0:t.safetySettings,generationConfig:null===(n=this.params)||void 0===n?void 0:n.generationConfig,tools:null===(s=this.params)||void 0===s?void 0:s.tools,toolConfig:null===(o=this.params)||void 0===o?void 0:o.toolConfig,systemInstruction:null===(r=this.params)||void 0===r?void 0:r.systemInstruction,contents:[...this._history,i]},c=generateContentStream(this._apiSettings,this.model,a,this.requestOptions);return this._sendPromise=this._sendPromise.then((()=>c)).catch((e=>{throw new Error(x)})).then((e=>e.response)).then((e=>{if(e.candidates&&e.candidates.length>0){this._history.push(i);const t=Object.assign({},e.candidates[0].content);t.role||(t.role="model"),this._history.push(t)}else{const t=formatBlockErrorMessage(e);t&&f.warn(`sendMessageStream() was unsuccessful. ${t}. Inspect response object for details.`)}})).catch((e=>{e.message!==x&&f.error(e)})),c}}class GenerativeModel{constructor(t,n,s){var o,r,i,a;if(!(null===(r=null===(o=t.app)||void 0===o?void 0:o.options)||void 0===r?void 0:r.apiKey))throw new VertexAIError("no-api-key",'The "apiKey" field is empty in the local Firebase config. Firebase VertexAI requires this field to contain a valid API key.');if(!(null===(a=null===(i=t.app)||void 0===i?void 0:i.options)||void 0===a?void 0:a.projectId))throw new VertexAIError("no-project-id",'The "projectId" field is empty in the local Firebase config. Firebase VertexAI requires this field to contain a valid project ID.');if(this._apiSettings={apiKey:t.app.options.apiKey,project:t.app.options.projectId,location:t.location},e(t.app)&&t.app.settings.appCheckToken){const e=t.app.settings.appCheckToken;this._apiSettings.getAppCheckToken=()=>Promise.resolve({token:e})}else t.appCheck&&(this._apiSettings.getAppCheckToken=()=>t.appCheck.getToken());t.auth&&(this._apiSettings.getAuthToken=()=>t.auth.getToken()),n.model.includes("/")?n.model.startsWith("models/")?this.model=`publishers/google/${n.model}`:this.model=n.model:this.model=`publishers/google/models/${n.model}`,this.generationConfig=n.generationConfig||{},this.safetySettings=n.safetySettings||[],this.tools=n.tools,this.toolConfig=n.toolConfig,this.systemInstruction=formatSystemInstruction(n.systemInstruction),this.requestOptions=s||{}}async generateContent(e){const t=formatGenerateContentInput(e);return generateContent(this._apiSettings,this.model,Object.assign({generationConfig:this.generationConfig,safetySettings:this.safetySettings,tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction},t),this.requestOptions)}async generateContentStream(e){const t=formatGenerateContentInput(e);return generateContentStream(this._apiSettings,this.model,Object.assign({generationConfig:this.generationConfig,safetySettings:this.safetySettings,tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction},t),this.requestOptions)}startChat(e){return new ChatSession(this._apiSettings,this.model,Object.assign({tools:this.tools,toolConfig:this.toolConfig,systemInstruction:this.systemInstruction},e),this.requestOptions)}async countTokens(e){const t=formatGenerateContentInput(e);return async function countTokens(e,t,n,s){return(await makeRequest(t,g.COUNT_TOKENS,e,!1,JSON.stringify(n),s)).json()}(this._apiSettings,this.model,t)}}class Schema{constructor(e){for(const t in e)this[t]=e[t];this.type=e.type,this.nullable=!!e.hasOwnProperty("nullable")&&!!e.nullable}toJSON(){const e={type:this.type};for(const t in this)this.hasOwnProperty(t)&&void 0!==this[t]&&("required"===t&&this.type!==A.OBJECT||(e[t]=this[t]));return e}static array(e){return new ArraySchema(e,e.items)}static object(e){return new ObjectSchema(e,e.properties,e.optionalProperties)}static string(e){return new StringSchema(e)}static enumString(e){return new StringSchema(e,e.enum)}static integer(e){return new IntegerSchema(e)}static number(e){return new NumberSchema(e)}static boolean(e){return new BooleanSchema(e)}}class IntegerSchema extends Schema{constructor(e){super(Object.assign({type:A.INTEGER},e))}}class NumberSchema extends Schema{constructor(e){super(Object.assign({type:A.NUMBER},e))}}class BooleanSchema extends Schema{constructor(e){super(Object.assign({type:A.BOOLEAN},e))}}class StringSchema extends Schema{constructor(e,t){super(Object.assign({type:A.STRING},e)),this.enum=t}toJSON(){const e=super.toJSON();return this.enum&&(e.enum=this.enum),e}}class ArraySchema extends Schema{constructor(e,t){super(Object.assign({type:A.ARRAY},e)),this.items=t}toJSON(){const e=super.toJSON();return e.items=this.items.toJSON(),e}}class ObjectSchema extends Schema{constructor(e,t,n=[]){super(Object.assign({type:A.OBJECT},e)),this.properties=t,this.optionalProperties=n}toJSON(){const e=super.toJSON();e.properties=Object.assign({},this.properties);const t=[];if(this.optionalProperties)for(const e of this.optionalProperties)if(!this.properties.hasOwnProperty(e))throw new VertexAIError("invalid-schema",`Property "${e}" specified in "optionalProperties" does not exist.`);for(const n in this.properties)this.properties.hasOwnProperty(n)&&(e.properties[n]=this.properties[n].toJSON(),this.optionalProperties.includes(n)||t.push(n));return t.length>0&&(e.required=t),delete e.optionalProperties,e}}function getVertexAI(e=t(),n){e=function getModularInstance(e){return e&&e._delegate?e._delegate:e}(e);return _getProvider(e,d).getImmediate({identifier:(null==n?void 0:n.location)||h})}function getGenerativeModel(e,t,n){if(!t.model)throw new VertexAIError("no-model","Must provide a model name. Example: getGenerativeModel({ model: 'my-model-name' })");return new GenerativeModel(e,t,n)}!function registerVertex(){n(new Component(d,((e,{instanceIdentifier:t})=>{const n=e.getProvider("app").getImmediate(),s=e.getProvider("auth-internal"),o=e.getProvider("app-check-internal");return new VertexAIService(n,s,o,{location:t})}),"PUBLIC").setMultipleInstances(!0)),s(l,u),s(l,u,"esm2017")}();export{ArraySchema,R as BlockReason,BooleanSchema,ChatSession,O as FinishReason,_ as FunctionCallingMode,GenerativeModel,v as HarmBlockMethod,S as HarmBlockThreshold,E as HarmCategory,y as HarmProbability,I as HarmSeverity,IntegerSchema,NumberSchema,ObjectSchema,m as POSSIBLE_ROLES,Schema,A as SchemaType,StringSchema,VertexAIError,getGenerativeModel,getVertexAI};
//# sourceMappingURL=firebase-vertexai.js.map
{
"name": "firebase",
"version": "11.3.0-canary.70e08cf95",
"version": "11.3.0-canary.84dfeca39",
"description": "Firebase JavaScript library for web and Node.js",

@@ -402,30 +402,30 @@ "author": "Firebase <firebase-support@google.com> (https://firebase.google.com/)",

"dependencies": {
"@firebase/app": "0.11.0-canary.70e08cf95",
"@firebase/app-compat": "0.2.49-canary.70e08cf95",
"@firebase/app-types": "0.9.3-canary.70e08cf95",
"@firebase/auth": "1.9.0-canary.70e08cf95",
"@firebase/auth-compat": "0.5.18-canary.70e08cf95",
"@firebase/data-connect": "0.3.0-canary.70e08cf95",
"@firebase/database": "1.0.12-canary.70e08cf95",
"@firebase/database-compat": "2.0.3-canary.70e08cf95",
"@firebase/firestore": "4.7.7-canary.70e08cf95",
"@firebase/firestore-compat": "0.3.42-canary.70e08cf95",
"@firebase/functions": "0.12.2-canary.70e08cf95",
"@firebase/functions-compat": "0.3.19-canary.70e08cf95",
"@firebase/installations": "0.6.12-canary.70e08cf95",
"@firebase/installations-compat": "0.2.12-canary.70e08cf95",
"@firebase/messaging": "0.12.16-canary.70e08cf95",
"@firebase/messaging-compat": "0.2.16-canary.70e08cf95",
"@firebase/storage": "0.13.6-canary.70e08cf95",
"@firebase/storage-compat": "0.3.16-canary.70e08cf95",
"@firebase/performance": "0.7.0-canary.70e08cf95",
"@firebase/performance-compat": "0.2.13-canary.70e08cf95",
"@firebase/remote-config": "0.5.0-canary.70e08cf95",
"@firebase/remote-config-compat": "0.2.12-canary.70e08cf95",
"@firebase/analytics": "0.10.11-canary.70e08cf95",
"@firebase/analytics-compat": "0.2.17-canary.70e08cf95",
"@firebase/app-check": "0.8.11-canary.70e08cf95",
"@firebase/app-check-compat": "0.3.18-canary.70e08cf95",
"@firebase/util": "1.10.3-canary.70e08cf95",
"@firebase/vertexai": "1.0.4-canary.70e08cf95"
"@firebase/app": "0.11.0-canary.84dfeca39",
"@firebase/app-compat": "0.2.49-canary.84dfeca39",
"@firebase/app-types": "0.9.3-canary.84dfeca39",
"@firebase/auth": "1.9.0-canary.84dfeca39",
"@firebase/auth-compat": "0.5.18-canary.84dfeca39",
"@firebase/data-connect": "0.3.0-canary.84dfeca39",
"@firebase/database": "1.0.12-canary.84dfeca39",
"@firebase/database-compat": "2.0.3-canary.84dfeca39",
"@firebase/firestore": "4.7.7-canary.84dfeca39",
"@firebase/firestore-compat": "0.3.42-canary.84dfeca39",
"@firebase/functions": "0.12.2-canary.84dfeca39",
"@firebase/functions-compat": "0.3.19-canary.84dfeca39",
"@firebase/installations": "0.6.12-canary.84dfeca39",
"@firebase/installations-compat": "0.2.12-canary.84dfeca39",
"@firebase/messaging": "0.12.16-canary.84dfeca39",
"@firebase/messaging-compat": "0.2.16-canary.84dfeca39",
"@firebase/storage": "0.13.6-canary.84dfeca39",
"@firebase/storage-compat": "0.3.16-canary.84dfeca39",
"@firebase/performance": "0.7.0-canary.84dfeca39",
"@firebase/performance-compat": "0.2.13-canary.84dfeca39",
"@firebase/remote-config": "0.5.0-canary.84dfeca39",
"@firebase/remote-config-compat": "0.2.12-canary.84dfeca39",
"@firebase/analytics": "0.10.11-canary.84dfeca39",
"@firebase/analytics-compat": "0.2.17-canary.84dfeca39",
"@firebase/app-check": "0.8.11-canary.84dfeca39",
"@firebase/app-check-compat": "0.3.18-canary.84dfeca39",
"@firebase/util": "1.10.3-canary.84dfeca39",
"@firebase/vertexai": "1.0.4-canary.84dfeca39"
},

@@ -435,3 +435,3 @@ "devDependencies": {

"@rollup/plugin-commonjs": "21.1.0",
"@rollup/plugin-node-resolve": "13.3.0",
"@rollup/plugin-node-resolve": "16.0.0",
"rollup-plugin-sourcemaps": "0.6.3",

@@ -438,0 +438,0 @@ "@rollup/plugin-terser": "0.4.4",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet